{"users":[{"id":2,"username":"Leonor_Marques","avatar_template":"/user_avatar/community.criticalmanufacturing.com/leonor_marques/{size}/1074_2.png","flair_name":"cm_staff","flair_url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/original/2X/6/68f58210a5e256ee87dfbdddf313fbf597a64582.png","flair_bg_color":"00558C","flair_group_id":50,"primary_group_name":"cm_staff","admin":true,"moderator":true,"trust_level":4},{"id":109,"username":"Cesar_Meira","avatar_template":"https://avatars.discourse-cdn.com/v4/letter/c/54ee81/{size}.png","flair_name":"cm_staff","flair_url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/original/2X/6/68f58210a5e256ee87dfbdddf313fbf597a64582.png","flair_bg_color":"00558C","flair_group_id":50,"primary_group_name":"cm_staff","trust_level":1},{"id":12,"username":"timmy_shih","avatar_template":"https://avatars.discourse-cdn.com/v4/letter/t/b9bd4f/{size}.png","flair_name":"CustomersAndPartners","flair_group_id":51,"primary_group_name":"CustomersAndPartners","trust_level":1},{"id":3,"username":"Joao_Roque","avatar_template":"/user_avatar/community.criticalmanufacturing.com/joao_roque/{size}/24_2.png","flair_name":"cm_staff","flair_url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/original/2X/6/68f58210a5e256ee87dfbdddf313fbf597a64582.png","flair_bg_color":"00558C","flair_group_id":50,"primary_group_name":"cm_staff","admin":true,"moderator":true,"trust_level":3},{"id":252,"username":"Ruben_Moreira","avatar_template":"https://avatars.discourse-cdn.com/v4/letter/r/c2a13f/{size}.png","flair_name":"cm_staff","flair_url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/original/2X/6/68f58210a5e256ee87dfbdddf313fbf597a64582.png","flair_bg_color":"00558C","flair_group_id":50,"primary_group_name":"cm_staff","trust_level":1},{"id":120,"username":"Rodrigo_Cordeiro","avatar_template":"/user_avatar/community.criticalmanufacturing.com/rodrigo_cordeiro/{size}/1304_2.png","flair_name":"cm_staff","flair_url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/original/2X/6/68f58210a5e256ee87dfbdddf313fbf597a64582.png","flair_bg_color":"00558C","flair_group_id":50,"primary_group_name":"cm_staff","trust_level":1},{"id":116,"username":"Pedro_Fernandes","avatar_template":"https://avatars.discourse-cdn.com/v4/letter/p/a9adbd/{size}.png","flair_name":"cm_staff","flair_url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/original/2X/6/68f58210a5e256ee87dfbdddf313fbf597a64582.png","flair_bg_color":"00558C","flair_group_id":50,"primary_group_name":"cm_staff","trust_level":0},{"id":359,"username":"Jeana_Sansocie","avatar_template":"https://avatars.discourse-cdn.com/v4/letter/j/c37758/{size}.png","trust_level":0},{"id":155,"username":"Sofia_Santos","avatar_template":"/user_avatar/community.criticalmanufacturing.com/sofia_santos/{size}/1140_2.png","flair_name":"cm_staff","flair_url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/original/2X/6/68f58210a5e256ee87dfbdddf313fbf597a64582.png","flair_bg_color":"00558C","flair_group_id":50,"primary_group_name":"cm_staff","trust_level":1},{"id":119,"username":"Ricardo_Magalhaes","avatar_template":"https://avatars.discourse-cdn.com/v4/letter/r/4da419/{size}.png","flair_name":"cm_staff","flair_url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/original/2X/6/68f58210a5e256ee87dfbdddf313fbf597a64582.png","flair_bg_color":"00558C","flair_group_id":50,"primary_group_name":"cm_staff","trust_level":3},{"id":118,"username":"Ricardo_Cunha","avatar_template":"/user_avatar/community.criticalmanufacturing.com/ricardo_cunha/{size}/1133_2.png","flair_name":"cm_staff","flair_url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/original/2X/6/68f58210a5e256ee87dfbdddf313fbf597a64582.png","flair_bg_color":"00558C","flair_group_id":50,"primary_group_name":"cm_staff","trust_level":3},{"id":38,"username":"Jose_Goncalves","avatar_template":"https://avatars.discourse-cdn.com/v4/letter/j/c37758/{size}.png","flair_name":"cm_staff","flair_url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/original/2X/6/68f58210a5e256ee87dfbdddf313fbf597a64582.png","flair_bg_color":"00558C","flair_group_id":50,"primary_group_name":"cm_staff","trust_level":2}],"primary_groups":[{"id":50,"name":"cm_staff"},{"id":51,"name":"CustomersAndPartners"}],"flair_groups":[{"id":50,"name":"cm_staff","flair_url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/original/2X/6/68f58210a5e256ee87dfbdddf313fbf597a64582.png","flair_bg_color":"00558C","flair_color":""},{"id":51,"name":"CustomersAndPartners","flair_url":null,"flair_bg_color":"","flair_color":""}],"topic_list":{"can_create_topic":false,"filter":"latest","more_topics_url":"/c/dev-blog/7?page=1","per_page":30,"top_tags":[{"id":13,"name":"equipment","slug":"equipment"},{"id":5,"name":"v11.3","slug":"v11-3"},{"id":26,"name":"medical-devices","slug":"medical-devices"},{"id":43,"name":"cm-dev-team","slug":"cm-dev-team"},{"id":24,"name":"electronics","slug":"electronics"}],"topics":[{"fancy_title":"About the Blog","fancy_title_localized":false,"locale":"en","id":17,"title":"About the Blog","slug":"about-the-blog","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2026-07-10T17:38:29.376Z","last_posted_at":"2026-07-10T17:38:29.382Z","bumped":true,"bumped_at":"2026-07-10T17:38:29.376Z","archetype":"regular","unseen":false,"pinned":true,"unpinned":null,"excerpt":"Curated long-form technical and community content, migrated from devblog and continuing forward. Authorship is invitation-only to preserve editorial voice. \nPost here if… \n\nYou are a CM staff member or invited contributo&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[],"tags_descriptions":{},"views":45,"like_count":1,"has_summary":false,"last_poster_username":"Leonor_Marques","category_id":7,"op_like_count":1,"pinned_globally":false,"featured_link":null,"is_nested_view":true,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":2,"primary_group_id":50,"flair_group_id":50}]},{"fancy_title":"MES Code Performance Quick Tips","fancy_title_localized":false,"locale":null,"id":724,"title":"MES Code Performance Quick Tips","slug":"mes-code-performance-quick-tips","posts_count":2,"reply_count":0,"highest_post_number":2,"image_url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/1X/e5c62750fd2bd52e2c65695d23cc6bc6cccbe931_2_896x1024.jpeg","created_at":"2024-07-22T00:00:00.000Z","last_posted_at":"2026-10-20T07:51:00.565Z","bumped":true,"bumped_at":"2026-10-20T07:51:00.565Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"As developers, we often focus on functionality, ensuring that our code achieves the desired outcomes. However, how this code is written can significantly influence the speed, resource consumption, and scalability of the &hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":2481,"height":2835,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/original/1X/e5c62750fd2bd52e2c65695d23cc6bc6cccbe931.jpeg"},{"max_width":1024,"max_height":1024,"width":896,"height":1024,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/1X/e5c62750fd2bd52e2c65695d23cc6bc6cccbe931_2_896x1024.jpeg"},{"max_width":800,"max_height":800,"width":700,"height":800,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/1X/e5c62750fd2bd52e2c65695d23cc6bc6cccbe931_2_700x800.jpeg"},{"max_width":600,"max_height":600,"width":525,"height":600,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/1X/e5c62750fd2bd52e2c65695d23cc6bc6cccbe931_2_525x600.jpeg"},{"max_width":400,"max_height":400,"width":350,"height":400,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/1X/e5c62750fd2bd52e2c65695d23cc6bc6cccbe931_2_350x400.jpeg"},{"max_width":300,"max_height":300,"width":262,"height":300,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/1X/e5c62750fd2bd52e2c65695d23cc6bc6cccbe931_2_262x300.jpeg"},{"max_width":200,"max_height":200,"width":175,"height":200,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/1X/e5c62750fd2bd52e2c65695d23cc6bc6cccbe931_2_175x200.jpeg"}],"tags":[],"tags_descriptions":{},"views":77,"like_count":0,"has_summary":false,"last_poster_username":"timmy_shih","category_id":7,"op_like_count":0,"pinned_globally":false,"featured_link":null,"is_nested_view":true,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Original Poster","user_id":109,"primary_group_id":50,"flair_group_id":50},{"extras":"latest","description":"Most Recent Poster","user_id":12,"primary_group_id":51,"flair_group_id":51}]},{"fancy_title":"Auditing an MES Project as Telemetry","fancy_title_localized":false,"locale":"en","id":941,"title":"Auditing an MES Project as Telemetry","slug":"auditing-an-mes-project-as-telemetry","posts_count":3,"reply_count":1,"highest_post_number":3,"image_url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/2X/1/1cc4693ca7c8c6b196effaad8ad8bcb779db92d5_2_1024x526.png","created_at":"2026-10-14T00:00:00.000Z","last_posted_at":"2026-10-16T14:40:58.818Z","bumped":true,"bumped_at":"2026-10-16T14:40:58.818Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Ask how big a customer’s MES customization is and you get a shrug, a gut feeling or a spreadsheet that went stale two releases ago. That makes estimating, upgrades and governance guesswork. \nWe built cmf audit, a plugi&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":2535,"height":1304,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/original/2X/1/1cc4693ca7c8c6b196effaad8ad8bcb779db92d5.png"},{"max_width":1024,"max_height":1024,"width":1024,"height":526,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/2X/1/1cc4693ca7c8c6b196effaad8ad8bcb779db92d5_2_1024x526.png"},{"max_width":800,"max_height":800,"width":800,"height":411,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/2X/1/1cc4693ca7c8c6b196effaad8ad8bcb779db92d5_2_800x411.png"},{"max_width":600,"max_height":600,"width":600,"height":308,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/2X/1/1cc4693ca7c8c6b196effaad8ad8bcb779db92d5_2_600x308.png"},{"max_width":400,"max_height":400,"width":400,"height":205,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/2X/1/1cc4693ca7c8c6b196effaad8ad8bcb779db92d5_2_400x205.png"},{"max_width":300,"max_height":300,"width":300,"height":154,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/2X/1/1cc4693ca7c8c6b196effaad8ad8bcb779db92d5_2_300x154.png"},{"max_width":200,"max_height":200,"width":200,"height":102,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/2X/1/1cc4693ca7c8c6b196effaad8ad8bcb779db92d5_2_200x102.png"}],"tags":[],"tags_descriptions":{},"views":38,"like_count":4,"has_summary":false,"last_poster_username":"Joao_Roque","category_id":7,"op_like_count":4,"pinned_globally":false,"featured_link":null,"is_nested_view":true,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":3,"primary_group_id":50,"flair_group_id":50},{"extras":null,"description":"Recent Poster","user_id":252,"primary_group_id":50,"flair_group_id":50}]},{"fancy_title":"MQTT vs Sparkplug for Equipment Integration with Critical Manufacturing MES","fancy_title_localized":false,"locale":"en","id":926,"title":"MQTT vs Sparkplug for Equipment Integration with Critical Manufacturing MES","slug":"mqtt-vs-sparkplug-for-equipment-integration-with-critical-manufacturing-mes","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/original/2X/9/95a02ef1c8f88ee2fd0b317a1f8ad155443b5cee.png","created_at":"2026-10-12T08:17:12.220Z","last_posted_at":"2026-10-12T08:17:12.458Z","bumped":true,"bumped_at":"2026-10-12T08:17:12.458Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"MQTT revolutionized IoT communication by providing a lightweight and efficient way for devices to exchange data. However, as industrial systems grew in size and complexity, engineers discovered that moving data was only &hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":768,"height":512,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/original/2X/9/95a02ef1c8f88ee2fd0b317a1f8ad155443b5cee.png"},{"max_width":600,"max_height":600,"width":600,"height":400,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/2X/9/95a02ef1c8f88ee2fd0b317a1f8ad155443b5cee_2_600x400.png"},{"max_width":400,"max_height":400,"width":400,"height":266,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/2X/9/95a02ef1c8f88ee2fd0b317a1f8ad155443b5cee_2_400x266.png"},{"max_width":300,"max_height":300,"width":300,"height":200,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/2X/9/95a02ef1c8f88ee2fd0b317a1f8ad155443b5cee_2_300x200.png"},{"max_width":200,"max_height":200,"width":200,"height":133,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/2X/9/95a02ef1c8f88ee2fd0b317a1f8ad155443b5cee_2_200x133.png"}],"tags":[{"id":5,"name":"v11.3","slug":"v11-3"},{"id":13,"name":"equipment","slug":"equipment"},{"id":26,"name":"medical-devices","slug":"medical-devices"}],"tags_descriptions":{},"views":194,"like_count":2,"has_summary":false,"last_poster_username":"Rodrigo_Cordeiro","category_id":7,"op_like_count":2,"pinned_globally":false,"featured_link":null,"is_nested_view":true,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":120,"primary_group_id":50,"flair_group_id":50}]},{"fancy_title":"Zero Downtime MES System Upgrades","fancy_title_localized":false,"locale":null,"id":719,"title":"Zero Downtime MES System Upgrades","slug":"zero-downtime-mes-system-upgrades","posts_count":3,"reply_count":1,"highest_post_number":3,"image_url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/1X/bbb4464b1cd6bb5d6ea6483d9f37f0839c8198e2_2_1024x623.png","created_at":"2025-08-26T00:00:00.000Z","last_posted_at":"2026-10-08T09:31:58.351Z","bumped":true,"bumped_at":"2026-10-08T09:31:58.351Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Have you ever felt that unnerving sensation when performing a system upgrade? You’re thinking the upgrade might take too long, or that something wrong could happen. \nIndeed, among other, these are two issues that often w&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":1835,"height":1117,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/original/1X/bbb4464b1cd6bb5d6ea6483d9f37f0839c8198e2.png"},{"max_width":1024,"max_height":1024,"width":1024,"height":623,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/1X/bbb4464b1cd6bb5d6ea6483d9f37f0839c8198e2_2_1024x623.png"},{"max_width":800,"max_height":800,"width":800,"height":486,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/1X/bbb4464b1cd6bb5d6ea6483d9f37f0839c8198e2_2_800x486.png"},{"max_width":600,"max_height":600,"width":600,"height":365,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/1X/bbb4464b1cd6bb5d6ea6483d9f37f0839c8198e2_2_600x365.png"},{"max_width":400,"max_height":400,"width":400,"height":243,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/1X/bbb4464b1cd6bb5d6ea6483d9f37f0839c8198e2_2_400x243.png"},{"max_width":300,"max_height":300,"width":300,"height":182,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/1X/bbb4464b1cd6bb5d6ea6483d9f37f0839c8198e2_2_300x182.png"},{"max_width":200,"max_height":200,"width":200,"height":121,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/1X/bbb4464b1cd6bb5d6ea6483d9f37f0839c8198e2_2_200x121.png"}],"tags":[],"tags_descriptions":{},"views":105,"like_count":3,"has_summary":false,"last_poster_username":"Leonor_Marques","category_id":7,"op_like_count":1,"pinned_globally":false,"featured_link":null,"is_nested_view":true,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Original Poster","user_id":116,"primary_group_id":50,"flair_group_id":50},{"extras":null,"description":"Recent Poster","user_id":359,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":2,"primary_group_id":50,"flair_group_id":50}]},{"fancy_title":"Not All Equipment Data is Equal","fancy_title_localized":false,"locale":"en","id":878,"title":"Not All Equipment Data is Equal","slug":"not-all-equipment-data-is-equal","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/2X/8/888266381af086f000329f3a03a22bd17a89382c_2_1024x682.jpeg","created_at":"2026-09-29T08:34:36.340Z","last_posted_at":"2026-09-29T08:34:36.514Z","bumped":true,"bumped_at":"2026-09-29T08:34:36.514Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Introduction\nConnected equipment can provide a rich set of manufacturing information beyond simple production outcomes. During normal operation, it continuously generates data that describes both the state of the equipme&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":1536,"height":1024,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/original/2X/8/888266381af086f000329f3a03a22bd17a89382c.jpeg"},{"max_width":1024,"max_height":1024,"width":1024,"height":682,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/2X/8/888266381af086f000329f3a03a22bd17a89382c_2_1024x682.jpeg"},{"max_width":800,"max_height":800,"width":800,"height":533,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/2X/8/888266381af086f000329f3a03a22bd17a89382c_2_800x533.jpeg"},{"max_width":600,"max_height":600,"width":600,"height":400,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/2X/8/888266381af086f000329f3a03a22bd17a89382c_2_600x400.jpeg"},{"max_width":400,"max_height":400,"width":400,"height":266,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/2X/8/888266381af086f000329f3a03a22bd17a89382c_2_400x266.jpeg"},{"max_width":300,"max_height":300,"width":300,"height":200,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/2X/8/888266381af086f000329f3a03a22bd17a89382c_2_300x200.jpeg"},{"max_width":200,"max_height":200,"width":200,"height":133,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/2X/8/888266381af086f000329f3a03a22bd17a89382c_2_200x133.jpeg"}],"tags":[{"id":5,"name":"v11.3","slug":"v11-3"},{"id":13,"name":"equipment","slug":"equipment"},{"id":26,"name":"medical-devices","slug":"medical-devices"}],"tags_descriptions":{},"views":121,"like_count":6,"has_summary":false,"last_poster_username":"Rodrigo_Cordeiro","category_id":7,"op_like_count":6,"pinned_globally":false,"featured_link":null,"is_nested_view":true,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":120,"primary_group_id":50,"flair_group_id":50}]},{"fancy_title":"Running C# Code in Connect IoT","fancy_title_localized":false,"locale":"en","id":874,"title":"Running C# Code in Connect IoT","slug":"running-c-code-in-connect-iot","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/2X/d/d7d88ac1a75ef3f10dbab0670c1661a4097ea89c_2_1024x488.png","created_at":"2026-09-22T00:00:00.000Z","last_posted_at":"2026-09-22T00:00:00.000Z","bumped":false,"bumped_at":"2026-09-22T00:00:00.000Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Some months ago we showcased how we could have python as the main tool for building tasks Python Code task. This made sense as the people who would interact with Data platform and analytics were data engineers and pyth&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":1906,"height":910,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/original/2X/d/d7d88ac1a75ef3f10dbab0670c1661a4097ea89c.png"},{"max_width":1024,"max_height":1024,"width":1024,"height":488,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/2X/d/d7d88ac1a75ef3f10dbab0670c1661a4097ea89c_2_1024x488.png"},{"max_width":800,"max_height":800,"width":800,"height":381,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/2X/d/d7d88ac1a75ef3f10dbab0670c1661a4097ea89c_2_800x381.png"},{"max_width":600,"max_height":600,"width":600,"height":286,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/2X/d/d7d88ac1a75ef3f10dbab0670c1661a4097ea89c_2_600x286.png"},{"max_width":400,"max_height":400,"width":400,"height":190,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/2X/d/d7d88ac1a75ef3f10dbab0670c1661a4097ea89c_2_400x190.png"},{"max_width":300,"max_height":300,"width":300,"height":143,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/2X/d/d7d88ac1a75ef3f10dbab0670c1661a4097ea89c_2_300x143.png"},{"max_width":200,"max_height":200,"width":200,"height":95,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/2X/d/d7d88ac1a75ef3f10dbab0670c1661a4097ea89c_2_200x95.png"}],"tags":[{"id":5,"name":"v11.3","slug":"v11-3"},{"id":13,"name":"equipment","slug":"equipment"}],"tags_descriptions":{},"views":143,"like_count":3,"has_summary":false,"last_poster_username":"Joao_Roque","category_id":7,"op_like_count":3,"pinned_globally":false,"featured_link":null,"is_nested_view":true,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":3,"primary_group_id":50,"flair_group_id":50}]},{"fancy_title":"Integrating with OIB: Board Gatekeeper and Eventing","fancy_title_localized":false,"locale":"en","id":835,"title":"Integrating with OIB: Board Gatekeeper and Eventing","slug":"integrating-with-oib-board-gatekeeper-and-eventing","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/2X/d/dd62802f91e585988e9de152a08d467d9958865c_2_1024x428.png","created_at":"2026-09-08T00:00:00.000Z","last_posted_at":"2026-09-08T00:00:00.000Z","bumped":false,"bumped_at":"2026-09-08T00:00:00.000Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Right now, on some SMT line, a printed circuit board is sitting motionless in a conveyor while the line waits — because a web service has not yet said whether that board may continue. \nThat is ASMPT WORKS OIB working e&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":1861,"height":779,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/original/2X/d/dd62802f91e585988e9de152a08d467d9958865c.png"},{"max_width":1024,"max_height":1024,"width":1024,"height":428,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/2X/d/dd62802f91e585988e9de152a08d467d9958865c_2_1024x428.png"},{"max_width":800,"max_height":800,"width":800,"height":334,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/2X/d/dd62802f91e585988e9de152a08d467d9958865c_2_800x334.png"},{"max_width":600,"max_height":600,"width":600,"height":251,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/2X/d/dd62802f91e585988e9de152a08d467d9958865c_2_600x251.png"},{"max_width":400,"max_height":400,"width":400,"height":167,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/2X/d/dd62802f91e585988e9de152a08d467d9958865c_2_400x167.png"},{"max_width":300,"max_height":300,"width":300,"height":125,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/2X/d/dd62802f91e585988e9de152a08d467d9958865c_2_300x125.png"},{"max_width":200,"max_height":200,"width":200,"height":83,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/2X/d/dd62802f91e585988e9de152a08d467d9958865c_2_200x83.png"}],"tags":[],"tags_descriptions":{},"views":43,"like_count":0,"has_summary":false,"last_poster_username":"Joao_Roque","category_id":7,"op_like_count":0,"pinned_globally":false,"featured_link":null,"is_nested_view":true,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":3,"primary_group_id":50,"flair_group_id":50}]},{"fancy_title":"Running .NET Tests on Linux","fancy_title_localized":false,"locale":"en","id":875,"title":"Running .NET Tests on Linux","slug":"running-net-tests-on-linux","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/original/2X/7/719101cca12cb39cb147a17c34b4e0cbbdaa0598.png","created_at":"2026-09-07T00:00:00.000Z","last_posted_at":"2026-09-07T00:00:00.000Z","bumped":false,"bumped_at":"2026-09-07T00:00:00.000Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"I’m going to start with a disclaimer: I only joined Critical Manufacturing after the switch to WSL for local development. Therefore, for me, WSL (or Linux in general) is the default dev environment. This means that, when&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":863,"height":148,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/original/2X/7/719101cca12cb39cb147a17c34b4e0cbbdaa0598.png"},{"max_width":800,"max_height":800,"width":800,"height":137,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/2X/7/719101cca12cb39cb147a17c34b4e0cbbdaa0598_2_800x137.png"},{"max_width":600,"max_height":600,"width":600,"height":102,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/2X/7/719101cca12cb39cb147a17c34b4e0cbbdaa0598_2_600x102.png"},{"max_width":400,"max_height":400,"width":400,"height":68,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/2X/7/719101cca12cb39cb147a17c34b4e0cbbdaa0598_2_400x68.png"},{"max_width":300,"max_height":300,"width":300,"height":51,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/2X/7/719101cca12cb39cb147a17c34b4e0cbbdaa0598_2_300x51.png"},{"max_width":200,"max_height":200,"width":200,"height":34,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/2X/7/719101cca12cb39cb147a17c34b4e0cbbdaa0598_2_200x34.png"}],"tags":[{"id":43,"name":"cm-dev-team","slug":"cm-dev-team"}],"tags_descriptions":{},"views":63,"like_count":4,"has_summary":false,"last_poster_username":"Sofia_Santos","category_id":7,"op_like_count":4,"pinned_globally":false,"featured_link":null,"is_nested_view":true,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":155,"primary_group_id":50,"flair_group_id":50}]},{"fancy_title":"Turbo Charging your Code Tasks","fancy_title_localized":false,"locale":"en","id":776,"title":"Turbo Charging your Code Tasks","slug":"turbo-charging-your-code-tasks","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/2X/2/20a27cdcc94845df523f56b6b7c93fb354313087_2_1024x548.png","created_at":"2026-08-17T00:00:00.000Z","last_posted_at":"2026-08-17T00:00:00.000Z","bumped":false,"bumped_at":"2026-08-17T00:00:00.000Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"In previous blog posts we talked about how we could fully migrate a code task into a customization task and then have it reuseable across the system. Today, we are focusing on a little known middle road approach. We ke&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":1664,"height":891,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/original/2X/2/20a27cdcc94845df523f56b6b7c93fb354313087.png"},{"max_width":1024,"max_height":1024,"width":1024,"height":548,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/2X/2/20a27cdcc94845df523f56b6b7c93fb354313087_2_1024x548.png"},{"max_width":800,"max_height":800,"width":800,"height":428,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/2X/2/20a27cdcc94845df523f56b6b7c93fb354313087_2_800x428.png"},{"max_width":600,"max_height":600,"width":600,"height":321,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/2X/2/20a27cdcc94845df523f56b6b7c93fb354313087_2_600x321.png"},{"max_width":400,"max_height":400,"width":400,"height":214,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/2X/2/20a27cdcc94845df523f56b6b7c93fb354313087_2_400x214.png"},{"max_width":300,"max_height":300,"width":300,"height":160,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/2X/2/20a27cdcc94845df523f56b6b7c93fb354313087_2_300x160.png"},{"max_width":200,"max_height":200,"width":200,"height":107,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/2X/2/20a27cdcc94845df523f56b6b7c93fb354313087_2_200x107.png"}],"tags":[],"tags_descriptions":{},"views":45,"like_count":0,"has_summary":false,"last_poster_username":"Joao_Roque","category_id":7,"op_like_count":0,"pinned_globally":false,"featured_link":null,"is_nested_view":true,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":3,"primary_group_id":50,"flair_group_id":50}]},{"fancy_title":"A Plausible Wrong Number Is Worse Than No Number","fancy_title_localized":false,"locale":null,"id":757,"title":"A Plausible Wrong Number Is Worse Than No Number","slug":"a-plausible-wrong-number-is-worse-than-no-number","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2026-08-04T00:00:00.000Z","last_posted_at":"2026-08-04T00:00:00.000Z","bumped":false,"bumped_at":"2026-08-04T00:00:00.000Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"A few years ago I was working on a SAP integration, and the first stretch of every conversation went sideways over a single word: Product. \nThe SAP consultant kept saying “Product.” In SAP’s vocabulary, a Product is the &hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[],"tags_descriptions":{},"views":63,"like_count":2,"has_summary":false,"last_poster_username":"Ricardo_Magalhaes","category_id":7,"op_like_count":2,"pinned_globally":false,"featured_link":null,"is_nested_view":true,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":119,"primary_group_id":50,"flair_group_id":50}]},{"fancy_title":"Reports, Rebuilt: SSRS to Stimulsoft, and the ClickHouse Pipeline in Between","fancy_title_localized":false,"locale":"en","id":777,"title":"Reports, Rebuilt: SSRS to Stimulsoft, and the ClickHouse Pipeline in Between","slug":"reports-rebuilt-ssrs-to-stimulsoft-and-the-clickhouse-pipeline-in-between","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/2X/e/e702731d94b5874778d67dfa96f91bcb10264cd5_2_1023x558.jpeg","created_at":"2026-07-30T00:00:00.000Z","last_posted_at":"2026-07-30T00:00:00.000Z","bumped":false,"bumped_at":"2026-07-30T00:00:00.000Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Replacing a reporting stack is never really about reporting. It’s about admitting that the database keeping your factory running should never be the same database answering “how many units did we scrap last Tuesday.” \nT&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":1517,"height":827,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/original/2X/e/e702731d94b5874778d67dfa96f91bcb10264cd5.jpeg"},{"max_width":1024,"max_height":1024,"width":1023,"height":558,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/2X/e/e702731d94b5874778d67dfa96f91bcb10264cd5_2_1023x558.jpeg"},{"max_width":800,"max_height":800,"width":800,"height":436,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/2X/e/e702731d94b5874778d67dfa96f91bcb10264cd5_2_800x436.jpeg"},{"max_width":600,"max_height":600,"width":600,"height":327,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/2X/e/e702731d94b5874778d67dfa96f91bcb10264cd5_2_600x327.jpeg"},{"max_width":400,"max_height":400,"width":400,"height":218,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/2X/e/e702731d94b5874778d67dfa96f91bcb10264cd5_2_400x218.jpeg"},{"max_width":300,"max_height":300,"width":300,"height":163,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/2X/e/e702731d94b5874778d67dfa96f91bcb10264cd5_2_300x163.jpeg"},{"max_width":200,"max_height":200,"width":200,"height":109,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/2X/e/e702731d94b5874778d67dfa96f91bcb10264cd5_2_200x109.jpeg"}],"tags":[],"tags_descriptions":{},"views":45,"like_count":1,"has_summary":false,"last_poster_username":"Joao_Roque","category_id":7,"op_like_count":1,"pinned_globally":false,"featured_link":null,"is_nested_view":true,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":3,"primary_group_id":50,"flair_group_id":50}]},{"fancy_title":"The Integration Engine, Three Layers Deep","fancy_title_localized":false,"locale":"en","id":793,"title":"The Integration Engine, Three Layers Deep","slug":"the-integration-engine-three-layers-deep","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/2X/4/412150235a7327d1124dc417077cbb8d5d13fbb7_2_1024x682.jpeg","created_at":"2026-07-29T00:00:00.000Z","last_posted_at":"2026-07-29T00:00:00.000Z","bumped":false,"bumped_at":"2026-07-29T00:00:00.000Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"If your integration layer can’t survive the ERP going down for maintenance, you don’t have an integration layer you have a dependency. \nA recap of blog A Closer Look at Integration Entries and Integration Entries, Part&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":1536,"height":1024,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/original/2X/4/412150235a7327d1124dc417077cbb8d5d13fbb7.jpeg"},{"max_width":1024,"max_height":1024,"width":1024,"height":682,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/2X/4/412150235a7327d1124dc417077cbb8d5d13fbb7_2_1024x682.jpeg"},{"max_width":800,"max_height":800,"width":800,"height":533,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/2X/4/412150235a7327d1124dc417077cbb8d5d13fbb7_2_800x533.jpeg"},{"max_width":600,"max_height":600,"width":600,"height":400,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/2X/4/412150235a7327d1124dc417077cbb8d5d13fbb7_2_600x400.jpeg"},{"max_width":400,"max_height":400,"width":400,"height":266,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/2X/4/412150235a7327d1124dc417077cbb8d5d13fbb7_2_400x266.jpeg"},{"max_width":300,"max_height":300,"width":300,"height":200,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/2X/4/412150235a7327d1124dc417077cbb8d5d13fbb7_2_300x200.jpeg"},{"max_width":200,"max_height":200,"width":200,"height":133,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/2X/4/412150235a7327d1124dc417077cbb8d5d13fbb7_2_200x133.jpeg"}],"tags":[],"tags_descriptions":{},"views":26,"like_count":2,"has_summary":false,"last_poster_username":"Joao_Roque","category_id":7,"op_like_count":2,"pinned_globally":false,"featured_link":null,"is_nested_view":true,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":3,"primary_group_id":50,"flair_group_id":50}]},{"fancy_title":"Blueprint vs. Building: How MES&rsquo;s Data Model Actually Works","fancy_title_localized":false,"locale":"en","id":774,"title":"Blueprint vs. Building: How MES's Data Model Actually Works","slug":"blueprint-vs-building-how-mess-data-model-actually-works","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/2X/5/500294c9dd1c5a853d9bfa117d511355ba6292d1_2_1024x682.jpeg","created_at":"2026-07-28T00:00:00.000Z","last_posted_at":"2026-07-28T00:00:00.000Z","bumped":false,"bumped_at":"2026-07-28T00:00:00.000Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Most enterprise software gives you two options when the out-of-the-box data model doesn’t fit: fork the code, or live without the feature. CM MES was built to reject that choice entirely. \nOverview\n\nThe MES dynamic mod&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":1536,"height":1024,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/original/2X/5/500294c9dd1c5a853d9bfa117d511355ba6292d1.jpeg"},{"max_width":1024,"max_height":1024,"width":1024,"height":682,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/2X/5/500294c9dd1c5a853d9bfa117d511355ba6292d1_2_1024x682.jpeg"},{"max_width":800,"max_height":800,"width":800,"height":533,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/2X/5/500294c9dd1c5a853d9bfa117d511355ba6292d1_2_800x533.jpeg"},{"max_width":600,"max_height":600,"width":600,"height":400,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/2X/5/500294c9dd1c5a853d9bfa117d511355ba6292d1_2_600x400.jpeg"},{"max_width":400,"max_height":400,"width":400,"height":266,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/2X/5/500294c9dd1c5a853d9bfa117d511355ba6292d1_2_400x266.jpeg"},{"max_width":300,"max_height":300,"width":300,"height":200,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/2X/5/500294c9dd1c5a853d9bfa117d511355ba6292d1_2_300x200.jpeg"},{"max_width":200,"max_height":200,"width":200,"height":133,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/2X/5/500294c9dd1c5a853d9bfa117d511355ba6292d1_2_200x133.jpeg"}],"tags":[],"tags_descriptions":{},"views":34,"like_count":0,"has_summary":false,"last_poster_username":"Joao_Roque","category_id":7,"op_like_count":0,"pinned_globally":false,"featured_link":null,"is_nested_view":true,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":3,"primary_group_id":50,"flair_group_id":50}]},{"fancy_title":"MES Security in Three Layers: Features, Objects, and the One Everyone Skips","fancy_title_localized":false,"locale":"en","id":775,"title":"MES Security in Three Layers: Features, Objects, and the One Everyone Skips","slug":"mes-security-in-three-layers-features-objects-and-the-one-everyone-skips","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/2X/5/59ddd83403cf8d01671ea828e96a938e5e602996_2_1024x682.jpeg","created_at":"2026-07-27T00:00:00.000Z","last_posted_at":"2026-07-27T00:00:00.000Z","bumped":false,"bumped_at":"2026-07-27T00:00:00.000Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"You can hide every button an operator shouldn’t touch. You can build a role tree that mirrors your org chart down to the last supervisor. And none of it matters if the API sitting underneath your GUI doesn’t check perm&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":1536,"height":1024,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/original/2X/5/59ddd83403cf8d01671ea828e96a938e5e602996.jpeg"},{"max_width":1024,"max_height":1024,"width":1024,"height":682,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/2X/5/59ddd83403cf8d01671ea828e96a938e5e602996_2_1024x682.jpeg"},{"max_width":800,"max_height":800,"width":800,"height":533,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/2X/5/59ddd83403cf8d01671ea828e96a938e5e602996_2_800x533.jpeg"},{"max_width":600,"max_height":600,"width":600,"height":400,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/2X/5/59ddd83403cf8d01671ea828e96a938e5e602996_2_600x400.jpeg"},{"max_width":400,"max_height":400,"width":400,"height":266,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/2X/5/59ddd83403cf8d01671ea828e96a938e5e602996_2_400x266.jpeg"},{"max_width":300,"max_height":300,"width":300,"height":200,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/2X/5/59ddd83403cf8d01671ea828e96a938e5e602996_2_300x200.jpeg"},{"max_width":200,"max_height":200,"width":200,"height":133,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/2X/5/59ddd83403cf8d01671ea828e96a938e5e602996_2_200x133.jpeg"}],"tags":[],"tags_descriptions":{},"views":32,"like_count":2,"has_summary":false,"last_poster_username":"Joao_Roque","category_id":7,"op_like_count":2,"pinned_globally":false,"featured_link":null,"is_nested_view":true,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":3,"primary_group_id":50,"flair_group_id":50}]},{"fancy_title":"Understanding UI Pages: How They Really Work","fancy_title_localized":false,"locale":"en","id":772,"title":"Understanding UI Pages: How They Really Work","slug":"understanding-ui-pages-how-they-really-work","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/2X/b/beab40589b5698a4ed977d9d34d71925f11f4903_2_1024x487.jpeg","created_at":"2026-07-24T00:00:00.000Z","last_posted_at":"2026-07-24T00:00:00.000Z","bumped":false,"bumped_at":"2026-07-24T00:00:00.000Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"UI Pages a low code designer to build your MES cockpits. \nOverview\n\nWe will address what a UI Page is made of, how its pieces connect, and through a live build of a real page where implementations quietly go wrong. Fir&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":2227,"height":1061,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/original/2X/b/beab40589b5698a4ed977d9d34d71925f11f4903.jpeg"},{"max_width":1024,"max_height":1024,"width":1024,"height":487,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/2X/b/beab40589b5698a4ed977d9d34d71925f11f4903_2_1024x487.jpeg"},{"max_width":800,"max_height":800,"width":800,"height":381,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/2X/b/beab40589b5698a4ed977d9d34d71925f11f4903_2_800x381.jpeg"},{"max_width":600,"max_height":600,"width":600,"height":285,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/2X/b/beab40589b5698a4ed977d9d34d71925f11f4903_2_600x285.jpeg"},{"max_width":400,"max_height":400,"width":400,"height":190,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/2X/b/beab40589b5698a4ed977d9d34d71925f11f4903_2_400x190.jpeg"},{"max_width":300,"max_height":300,"width":300,"height":142,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/2X/b/beab40589b5698a4ed977d9d34d71925f11f4903_2_300x142.jpeg"},{"max_width":200,"max_height":200,"width":200,"height":95,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/2X/b/beab40589b5698a4ed977d9d34d71925f11f4903_2_200x95.jpeg"}],"tags":[],"tags_descriptions":{},"views":38,"like_count":1,"has_summary":false,"last_poster_username":"Joao_Roque","category_id":7,"op_like_count":1,"pinned_globally":false,"featured_link":null,"is_nested_view":true,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":3,"primary_group_id":50,"flair_group_id":50}]},{"fancy_title":"Understanding Dynamic Execution Extensions (DEEs): How They Really Work","fancy_title_localized":false,"locale":"en","id":765,"title":"Understanding Dynamic Execution Extensions (DEEs): How They Really Work","slug":"understanding-dynamic-execution-extensions-dees-how-they-really-work","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/2X/b/b9228cbd143785527dbf3bb6a37ac057ffef3c72_2_1024x514.png","created_at":"2026-07-24T00:00:00.000Z","last_posted_at":"2026-07-24T00:00:00.000Z","bumped":false,"bumped_at":"2026-07-24T00:00:00.000Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Most developers learn how to create a Dynamic Execution Extension (DEE) long before they understand how the execution pipeline underneath it actually works. That gap doesn’t matter on a small project. It matters enormo&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":1173,"height":589,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/original/2X/b/b9228cbd143785527dbf3bb6a37ac057ffef3c72.png"},{"max_width":1024,"max_height":1024,"width":1024,"height":514,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/2X/b/b9228cbd143785527dbf3bb6a37ac057ffef3c72_2_1024x514.png"},{"max_width":800,"max_height":800,"width":800,"height":401,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/2X/b/b9228cbd143785527dbf3bb6a37ac057ffef3c72_2_800x401.png"},{"max_width":600,"max_height":600,"width":600,"height":301,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/2X/b/b9228cbd143785527dbf3bb6a37ac057ffef3c72_2_600x301.png"},{"max_width":400,"max_height":400,"width":400,"height":200,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/2X/b/b9228cbd143785527dbf3bb6a37ac057ffef3c72_2_400x200.png"},{"max_width":300,"max_height":300,"width":300,"height":150,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/2X/b/b9228cbd143785527dbf3bb6a37ac057ffef3c72_2_300x150.png"},{"max_width":200,"max_height":200,"width":200,"height":100,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/2X/b/b9228cbd143785527dbf3bb6a37ac057ffef3c72_2_200x100.png"}],"tags":[],"tags_descriptions":{},"views":62,"like_count":3,"has_summary":false,"last_poster_username":"Joao_Roque","category_id":7,"op_like_count":3,"pinned_globally":false,"featured_link":null,"is_nested_view":true,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":3,"primary_group_id":50,"flair_group_id":50}]},{"fancy_title":"Medical Devices Template 1.3.0: What&rsquo;s New","fancy_title_localized":false,"locale":null,"id":730,"title":"Medical Devices Template 1.3.0: What's New","slug":"medical-devices-template-1-3-0-whats-new","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/1X/9a09a52d5a7adce7b97cb65b4e1155484189c6e4_2_1024x124.png","created_at":"2026-07-03T00:00:00.000Z","last_posted_at":"2026-07-03T00:00:00.000Z","bumped":false,"bumped_at":"2026-07-03T00:00:00.000Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"In June 2026, the Medical Devices Template Team released version 1.3.0. This is a minor release, but it brings a meaningful set of enhancements to two of the areas that matter most in a regulated manufacturing environme&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":1657,"height":202,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/original/1X/9a09a52d5a7adce7b97cb65b4e1155484189c6e4.png"},{"max_width":1024,"max_height":1024,"width":1024,"height":124,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/1X/9a09a52d5a7adce7b97cb65b4e1155484189c6e4_2_1024x124.png"},{"max_width":800,"max_height":800,"width":800,"height":97,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/1X/9a09a52d5a7adce7b97cb65b4e1155484189c6e4_2_800x97.png"},{"max_width":600,"max_height":600,"width":600,"height":73,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/1X/9a09a52d5a7adce7b97cb65b4e1155484189c6e4_2_600x73.png"},{"max_width":400,"max_height":400,"width":400,"height":48,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/1X/9a09a52d5a7adce7b97cb65b4e1155484189c6e4_2_400x48.png"},{"max_width":300,"max_height":300,"width":300,"height":36,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/1X/9a09a52d5a7adce7b97cb65b4e1155484189c6e4_2_300x36.png"},{"max_width":200,"max_height":200,"width":200,"height":24,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/1X/9a09a52d5a7adce7b97cb65b4e1155484189c6e4_2_200x24.png"}],"tags":[],"tags_descriptions":{},"views":50,"like_count":1,"has_summary":false,"last_poster_username":"Ricardo_Cunha","category_id":7,"op_like_count":1,"pinned_globally":false,"featured_link":null,"is_nested_view":true,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":118,"primary_group_id":50,"flair_group_id":50}]},{"fancy_title":"The Command That Makes Code Task Debt Payable","fancy_title_localized":false,"locale":"en","id":367,"title":"The Command That Makes Code Task Debt Payable","slug":"the-command-that-makes-code-task-debt-payable","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/1X/135596b8b9cbf106930f3cc65822796e60c60d0b_2_1024x528.jpeg","created_at":"2026-07-02T00:00:00.000Z","last_posted_at":"2026-07-02T00:00:00.000Z","bumped":false,"bumped_at":"2026-07-02T00:00:00.000Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"There’s a little known command in the CM CLI: cmf dev iot convertCodeTasks. It converts your existing code tasks into proper custom tasks automatically. This post is about why you might want that and what you gain when&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":2097,"height":1083,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/original/1X/135596b8b9cbf106930f3cc65822796e60c60d0b.jpeg"},{"max_width":1024,"max_height":1024,"width":1024,"height":528,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/1X/135596b8b9cbf106930f3cc65822796e60c60d0b_2_1024x528.jpeg"},{"max_width":800,"max_height":800,"width":800,"height":413,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/1X/135596b8b9cbf106930f3cc65822796e60c60d0b_2_800x413.jpeg"},{"max_width":600,"max_height":600,"width":600,"height":309,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/1X/135596b8b9cbf106930f3cc65822796e60c60d0b_2_600x309.jpeg"},{"max_width":400,"max_height":400,"width":400,"height":206,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/1X/135596b8b9cbf106930f3cc65822796e60c60d0b_2_400x206.jpeg"},{"max_width":300,"max_height":300,"width":300,"height":154,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/1X/135596b8b9cbf106930f3cc65822796e60c60d0b_2_300x154.jpeg"},{"max_width":200,"max_height":200,"width":200,"height":103,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/1X/135596b8b9cbf106930f3cc65822796e60c60d0b_2_200x103.jpeg"}],"tags":[],"tags_descriptions":{},"views":20,"like_count":0,"has_summary":false,"last_poster_username":"Joao_Roque","category_id":7,"op_like_count":0,"pinned_globally":false,"featured_link":null,"is_nested_view":true,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":3,"primary_group_id":50,"flair_group_id":50}]},{"fancy_title":"Making the MES UI yours: Dynamically Injecting Wizard Steps and Entity Pages","fancy_title_localized":false,"locale":"en","id":368,"title":"Making the MES UI yours: Dynamically Injecting Wizard Steps and Entity Pages","slug":"making-the-mes-ui-yours-dynamically-injecting-wizard-steps-and-entity-pages","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/1X/f3a90bf1517bb09bcee87070cbc3afea5a9b7218_2_1024x502.png","created_at":"2026-07-01T00:00:00.000Z","last_posted_at":"2026-07-01T00:00:00.000Z","bumped":false,"bumped_at":"2026-07-01T00:00:00.000Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"The world of manufacturing is not just complex, it’s highly dynamic. This means your software has to be optimized, not just for performance but also for dealing with change. \nThis is why CM MES UI is not a closed syste&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":1903,"height":933,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/original/1X/f3a90bf1517bb09bcee87070cbc3afea5a9b7218.png"},{"max_width":1024,"max_height":1024,"width":1024,"height":502,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/1X/f3a90bf1517bb09bcee87070cbc3afea5a9b7218_2_1024x502.png"},{"max_width":800,"max_height":800,"width":800,"height":392,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/1X/f3a90bf1517bb09bcee87070cbc3afea5a9b7218_2_800x392.png"},{"max_width":600,"max_height":600,"width":600,"height":294,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/1X/f3a90bf1517bb09bcee87070cbc3afea5a9b7218_2_600x294.png"},{"max_width":400,"max_height":400,"width":400,"height":196,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/1X/f3a90bf1517bb09bcee87070cbc3afea5a9b7218_2_400x196.png"},{"max_width":300,"max_height":300,"width":300,"height":147,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/1X/f3a90bf1517bb09bcee87070cbc3afea5a9b7218_2_300x147.png"},{"max_width":200,"max_height":200,"width":200,"height":98,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/1X/f3a90bf1517bb09bcee87070cbc3afea5a9b7218_2_200x98.png"}],"tags":[],"tags_descriptions":{},"views":25,"like_count":0,"has_summary":false,"last_poster_username":"Joao_Roque","category_id":7,"op_like_count":0,"pinned_globally":false,"featured_link":null,"is_nested_view":true,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":3,"primary_group_id":50,"flair_group_id":50}]},{"fancy_title":"Ephemeral Controllers: Applying a Familiar Pattern to MES","fancy_title_localized":false,"locale":"en","id":369,"title":"Ephemeral Controllers: Applying a Familiar Pattern to MES","slug":"ephemeral-controllers-applying-a-familiar-pattern-to-mes","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/1X/86f24259f9f5812fbcae77f99895d4a7f2016f13_2_1024x517.png","created_at":"2026-06-30T00:00:00.000Z","last_posted_at":"2026-06-30T00:00:00.000Z","bumped":false,"bumped_at":"2026-06-30T00:00:00.000Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"When you need to query a third-party on demand — not maintain a persistent session — Connect IoT’s always-on model becomes the wrong tool. Here’s a pattern for bridging that gap. \n\n \n \n\nOverview\n\nCritical Manufacturing&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":1304,"height":659,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/original/1X/86f24259f9f5812fbcae77f99895d4a7f2016f13.png"},{"max_width":1024,"max_height":1024,"width":1024,"height":517,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/1X/86f24259f9f5812fbcae77f99895d4a7f2016f13_2_1024x517.png"},{"max_width":800,"max_height":800,"width":800,"height":404,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/1X/86f24259f9f5812fbcae77f99895d4a7f2016f13_2_800x404.png"},{"max_width":600,"max_height":600,"width":600,"height":303,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/1X/86f24259f9f5812fbcae77f99895d4a7f2016f13_2_600x303.png"},{"max_width":400,"max_height":400,"width":400,"height":202,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/1X/86f24259f9f5812fbcae77f99895d4a7f2016f13_2_400x202.png"},{"max_width":300,"max_height":300,"width":300,"height":151,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/1X/86f24259f9f5812fbcae77f99895d4a7f2016f13_2_300x151.png"},{"max_width":200,"max_height":200,"width":200,"height":101,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/1X/86f24259f9f5812fbcae77f99895d4a7f2016f13_2_200x101.png"}],"tags":[],"tags_descriptions":{},"views":17,"like_count":0,"has_summary":false,"last_poster_username":"Joao_Roque","category_id":7,"op_like_count":0,"pinned_globally":false,"featured_link":null,"is_nested_view":true,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":3,"primary_group_id":50,"flair_group_id":50}]},{"fancy_title":"Automatic Edge Deploy with Business Scenarios","fancy_title_localized":false,"locale":"en","id":370,"title":"Automatic Edge Deploy with Business Scenarios","slug":"automatic-edge-deploy-with-business-scenarios","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/1X/9f8fbb1fce08ea864a8352f7d109c447134623db_2_1024x578.png","created_at":"2026-06-29T00:00:00.000Z","last_posted_at":"2026-06-29T00:00:00.000Z","bumped":false,"bumped_at":"2026-06-29T00:00:00.000Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Overview\n\nIn Guaranteed Outcomes: Building Deterministic Chat Workflows with Business Scenarios we did a deep dive on using business scenarios and in Edge Deploy we explained how the automatic edge deploy works with C&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":1671,"height":944,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/original/1X/9f8fbb1fce08ea864a8352f7d109c447134623db.png"},{"max_width":1024,"max_height":1024,"width":1024,"height":578,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/1X/9f8fbb1fce08ea864a8352f7d109c447134623db_2_1024x578.png"},{"max_width":800,"max_height":800,"width":800,"height":451,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/1X/9f8fbb1fce08ea864a8352f7d109c447134623db_2_800x451.png"},{"max_width":600,"max_height":600,"width":600,"height":338,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/1X/9f8fbb1fce08ea864a8352f7d109c447134623db_2_600x338.png"},{"max_width":400,"max_height":400,"width":400,"height":225,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/1X/9f8fbb1fce08ea864a8352f7d109c447134623db_2_400x225.png"},{"max_width":300,"max_height":300,"width":300,"height":169,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/1X/9f8fbb1fce08ea864a8352f7d109c447134623db_2_300x169.png"},{"max_width":200,"max_height":200,"width":200,"height":112,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/1X/9f8fbb1fce08ea864a8352f7d109c447134623db_2_200x112.png"}],"tags":[],"tags_descriptions":{},"views":19,"like_count":0,"has_summary":false,"last_poster_username":"Joao_Roque","category_id":7,"op_like_count":0,"pinned_globally":false,"featured_link":null,"is_nested_view":true,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":3,"primary_group_id":50,"flair_group_id":50}]},{"fancy_title":"Building an RSA encryption flow with Connect IoT","fancy_title_localized":false,"locale":"en","id":371,"title":"Building an RSA encryption flow with Connect IoT","slug":"building-an-rsa-encryption-flow-with-connect-iot","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/1X/19a696dc64d65905884f78d6d21560c183416cbf_2_1024x505.png","created_at":"2026-06-25T00:00:00.000Z","last_posted_at":"2026-06-25T00:00:00.000Z","bumped":false,"bumped_at":"2026-06-25T00:00:00.000Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Shared secrets are a liability. Every device that holds a password is a device that can leak one. RSA flips that model — and in manufacturing environments where equipment outlives the engineers who deployed it, that di&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":1903,"height":940,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/original/1X/19a696dc64d65905884f78d6d21560c183416cbf.png"},{"max_width":1024,"max_height":1024,"width":1024,"height":505,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/1X/19a696dc64d65905884f78d6d21560c183416cbf_2_1024x505.png"},{"max_width":800,"max_height":800,"width":800,"height":395,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/1X/19a696dc64d65905884f78d6d21560c183416cbf_2_800x395.png"},{"max_width":600,"max_height":600,"width":600,"height":296,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/1X/19a696dc64d65905884f78d6d21560c183416cbf_2_600x296.png"},{"max_width":400,"max_height":400,"width":400,"height":197,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/1X/19a696dc64d65905884f78d6d21560c183416cbf_2_400x197.png"},{"max_width":300,"max_height":300,"width":300,"height":148,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/1X/19a696dc64d65905884f78d6d21560c183416cbf_2_300x148.png"},{"max_width":200,"max_height":200,"width":200,"height":98,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/1X/19a696dc64d65905884f78d6d21560c183416cbf_2_200x98.png"}],"tags":[],"tags_descriptions":{},"views":10,"like_count":0,"has_summary":false,"last_poster_username":"Joao_Roque","category_id":7,"op_like_count":0,"pinned_globally":false,"featured_link":null,"is_nested_view":true,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":3,"primary_group_id":50,"flair_group_id":50}]},{"fancy_title":"Guaranteed Outcomes: Building Deterministic Chat Workflows with Business Scenarios","fancy_title_localized":false,"locale":"en","id":372,"title":"Guaranteed Outcomes: Building Deterministic Chat Workflows with Business Scenarios","slug":"guaranteed-outcomes-building-deterministic-chat-workflows-with-business-scenarios","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/1X/976a89c9576e43d65349f4e339e9e7a0fe86a30d_2_1024x491.png","created_at":"2026-06-11T00:00:00.000Z","last_posted_at":"2026-06-11T00:00:00.000Z","bumped":false,"bumped_at":"2026-06-11T00:00:00.000Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"The rise of AI has brought action and insight through a normal conversation. We’ve been building a lot of support for leveraging AI flows From Insight to Action: AI That Actually Does Something and Data Platform - Agen&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":1905,"height":914,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/original/1X/976a89c9576e43d65349f4e339e9e7a0fe86a30d.png"},{"max_width":1024,"max_height":1024,"width":1024,"height":491,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/1X/976a89c9576e43d65349f4e339e9e7a0fe86a30d_2_1024x491.png"},{"max_width":800,"max_height":800,"width":800,"height":383,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/1X/976a89c9576e43d65349f4e339e9e7a0fe86a30d_2_800x383.png"},{"max_width":600,"max_height":600,"width":600,"height":287,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/1X/976a89c9576e43d65349f4e339e9e7a0fe86a30d_2_600x287.png"},{"max_width":400,"max_height":400,"width":400,"height":191,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/1X/976a89c9576e43d65349f4e339e9e7a0fe86a30d_2_400x191.png"},{"max_width":300,"max_height":300,"width":300,"height":143,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/1X/976a89c9576e43d65349f4e339e9e7a0fe86a30d_2_300x143.png"},{"max_width":200,"max_height":200,"width":200,"height":95,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/1X/976a89c9576e43d65349f4e339e9e7a0fe86a30d_2_200x95.png"}],"tags":[],"tags_descriptions":{},"views":15,"like_count":0,"has_summary":false,"last_poster_username":"Joao_Roque","category_id":7,"op_like_count":0,"pinned_globally":false,"featured_link":null,"is_nested_view":true,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":3,"primary_group_id":50,"flair_group_id":50}]},{"fancy_title":"Scheduled Action - Planned roll-outs made easy","fancy_title_localized":false,"locale":"en","id":373,"title":"Scheduled Action - Planned roll-outs made easy","slug":"scheduled-action-planned-roll-outs-made-easy","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/1X/d84ce51bfa736b2ff6a6c922095069b2e58ac088_2_1023x581.png","created_at":"2026-05-22T00:00:00.000Z","last_posted_at":"2026-05-22T00:00:00.000Z","bumped":false,"bumped_at":"2026-05-22T00:00:00.000Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"The Critical Manufacturing MES version 11.3 brought about a set of exciting features. One that grabbed my attention were the Automation Scheduled Actions, not just for the use cases that they solve out-of-the-box but o&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":1666,"height":946,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/original/1X/d84ce51bfa736b2ff6a6c922095069b2e58ac088.png"},{"max_width":1024,"max_height":1024,"width":1023,"height":581,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/1X/d84ce51bfa736b2ff6a6c922095069b2e58ac088_2_1023x581.png"},{"max_width":800,"max_height":800,"width":800,"height":454,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/1X/d84ce51bfa736b2ff6a6c922095069b2e58ac088_2_800x454.png"},{"max_width":600,"max_height":600,"width":600,"height":340,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/1X/d84ce51bfa736b2ff6a6c922095069b2e58ac088_2_600x340.png"},{"max_width":400,"max_height":400,"width":400,"height":227,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/1X/d84ce51bfa736b2ff6a6c922095069b2e58ac088_2_400x227.png"},{"max_width":300,"max_height":300,"width":300,"height":170,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/1X/d84ce51bfa736b2ff6a6c922095069b2e58ac088_2_300x170.png"},{"max_width":200,"max_height":200,"width":200,"height":113,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/1X/d84ce51bfa736b2ff6a6c922095069b2e58ac088_2_200x113.png"}],"tags":[],"tags_descriptions":{},"views":11,"like_count":0,"has_summary":false,"last_poster_username":"Joao_Roque","category_id":7,"op_like_count":0,"pinned_globally":false,"featured_link":null,"is_nested_view":true,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":3,"primary_group_id":50,"flair_group_id":50}]},{"fancy_title":"Equipment Qualification in MES: A fundamental Control for Validated Manufacturing Environments. Part II","fancy_title_localized":false,"locale":"en","id":728,"title":"Equipment Qualification in MES: A fundamental Control for Validated Manufacturing Environments. Part II","slug":"equipment-qualification-in-mes-a-fundamental-control-for-validated-manufacturing-environments-part-ii","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/original/1X/e2a85c88fe5de8fb0a6dc54db4368eb217859650.png","created_at":"2026-05-14T00:00:00.000Z","last_posted_at":"2026-05-14T00:00:00.000Z","bumped":false,"bumped_at":"2026-05-14T00:00:00.000Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"This blog serves as a complement to the first one I published on the Equipment Qualification functionality: Equipment Qualification – Part I. While the initial article introduced the fundamental concepts and the overall &hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":502,"height":333,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/original/1X/e2a85c88fe5de8fb0a6dc54db4368eb217859650.png"},{"max_width":400,"max_height":400,"width":400,"height":265,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/1X/e2a85c88fe5de8fb0a6dc54db4368eb217859650_2_400x265.png"},{"max_width":300,"max_height":300,"width":300,"height":199,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/1X/e2a85c88fe5de8fb0a6dc54db4368eb217859650_2_300x199.png"},{"max_width":200,"max_height":200,"width":200,"height":132,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/1X/e2a85c88fe5de8fb0a6dc54db4368eb217859650_2_200x132.png"}],"tags":[],"tags_descriptions":{},"views":30,"like_count":0,"has_summary":false,"last_poster_username":"Jose_Goncalves","category_id":7,"op_like_count":0,"pinned_globally":false,"featured_link":null,"is_nested_view":true,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":38,"primary_group_id":50,"flair_group_id":50}]},{"fancy_title":"AI as a Development Partner - Part 2 - Spec Driven Development","fancy_title_localized":false,"locale":null,"id":733,"title":"AI as a Development Partner - Part 2 - Spec Driven Development","slug":"ai-as-a-development-partner-part-2-spec-driven-development","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/1X/95a8229f337da9a8e8604ea6827c38f7625cedbf_2_1024x80.png","created_at":"2026-04-28T00:00:00.000Z","last_posted_at":"2026-04-28T00:00:00.000Z","bumped":false,"bumped_at":"2026-04-28T00:00:00.000Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"In the previous post, we explored how AI can assist in the development process by generating code snippets and providing suggestions. In this second part, we will take it a step further by implementing a real-life featu&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":1701,"height":133,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/original/1X/95a8229f337da9a8e8604ea6827c38f7625cedbf.png"},{"max_width":1024,"max_height":1024,"width":1024,"height":80,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/1X/95a8229f337da9a8e8604ea6827c38f7625cedbf_2_1024x80.png"},{"max_width":800,"max_height":800,"width":800,"height":62,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/1X/95a8229f337da9a8e8604ea6827c38f7625cedbf_2_800x62.png"},{"max_width":600,"max_height":600,"width":600,"height":46,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/1X/95a8229f337da9a8e8604ea6827c38f7625cedbf_2_600x46.png"},{"max_width":400,"max_height":400,"width":400,"height":31,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/1X/95a8229f337da9a8e8604ea6827c38f7625cedbf_2_400x31.png"},{"max_width":300,"max_height":300,"width":300,"height":23,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/1X/95a8229f337da9a8e8604ea6827c38f7625cedbf_2_300x23.png"},{"max_width":200,"max_height":200,"width":200,"height":15,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/1X/95a8229f337da9a8e8604ea6827c38f7625cedbf_2_200x15.png"}],"tags":[],"tags_descriptions":{},"views":22,"like_count":0,"has_summary":false,"last_poster_username":"Ricardo_Cunha","category_id":7,"op_like_count":0,"pinned_globally":false,"featured_link":null,"is_nested_view":true,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":118,"primary_group_id":50,"flair_group_id":50}]},{"fancy_title":"Data Platform - Agentic Use-Case","fancy_title_localized":false,"locale":"en","id":374,"title":"Data Platform - Agentic Use-Case","slug":"data-platform-agentic-use-case","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/1X/4b1dccfa0909c03ef0955033c6e588a0173d8301_2_1024x605.png","created_at":"2026-04-24T00:00:00.000Z","last_posted_at":"2026-04-24T00:00:00.000Z","bumped":false,"bumped_at":"2026-04-24T00:00:00.000Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"All the code presented here is available at github and github. \n\nWhat if instead of gibberish alarms, red lights and panic, you could have a detailed assessment of what went wrong and contextualized on what was going w&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":1814,"height":1073,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/original/1X/4b1dccfa0909c03ef0955033c6e588a0173d8301.png"},{"max_width":1024,"max_height":1024,"width":1024,"height":605,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/1X/4b1dccfa0909c03ef0955033c6e588a0173d8301_2_1024x605.png"},{"max_width":800,"max_height":800,"width":800,"height":473,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/1X/4b1dccfa0909c03ef0955033c6e588a0173d8301_2_800x473.png"},{"max_width":600,"max_height":600,"width":600,"height":354,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/1X/4b1dccfa0909c03ef0955033c6e588a0173d8301_2_600x354.png"},{"max_width":400,"max_height":400,"width":400,"height":236,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/1X/4b1dccfa0909c03ef0955033c6e588a0173d8301_2_400x236.png"},{"max_width":300,"max_height":300,"width":300,"height":177,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/1X/4b1dccfa0909c03ef0955033c6e588a0173d8301_2_300x177.png"},{"max_width":200,"max_height":200,"width":200,"height":118,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/1X/4b1dccfa0909c03ef0955033c6e588a0173d8301_2_200x118.png"}],"tags":[],"tags_descriptions":{},"views":23,"like_count":0,"has_summary":false,"last_poster_username":"Joao_Roque","category_id":7,"op_like_count":0,"pinned_globally":false,"featured_link":null,"is_nested_view":true,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":3,"primary_group_id":50,"flair_group_id":50}]},{"fancy_title":"MQTT Simulator to UNS Journey","fancy_title_localized":false,"locale":"en","id":731,"title":"MQTT Simulator to UNS Journey","slug":"mqtt-simulator-to-uns-journey","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/1X/9a5a8754a798c32a7a103dd71d744859e82aef08_2_1024x539.jpeg","created_at":"2026-04-17T00:00:00.000Z","last_posted_at":"2026-04-17T00:00:00.000Z","bumped":false,"bumped_at":"2026-04-17T00:00:00.000Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"In this blog post, we’ll use a simulator developed with the IoT Test Orchestrator to feed a pipeline with equipment data collected via MQTT and transform that data into UNS (Unified Namespace) topics. \nBut wait… why do w&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":1173,"height":618,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/original/1X/9a5a8754a798c32a7a103dd71d744859e82aef08.jpeg"},{"max_width":1024,"max_height":1024,"width":1024,"height":539,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/1X/9a5a8754a798c32a7a103dd71d744859e82aef08_2_1024x539.jpeg"},{"max_width":800,"max_height":800,"width":800,"height":421,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/1X/9a5a8754a798c32a7a103dd71d744859e82aef08_2_800x421.jpeg"},{"max_width":600,"max_height":600,"width":600,"height":316,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/1X/9a5a8754a798c32a7a103dd71d744859e82aef08_2_600x316.jpeg"},{"max_width":400,"max_height":400,"width":400,"height":210,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/1X/9a5a8754a798c32a7a103dd71d744859e82aef08_2_400x210.jpeg"},{"max_width":300,"max_height":300,"width":300,"height":158,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/1X/9a5a8754a798c32a7a103dd71d744859e82aef08_2_300x158.jpeg"},{"max_width":200,"max_height":200,"width":200,"height":105,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/1X/9a5a8754a798c32a7a103dd71d744859e82aef08_2_200x105.jpeg"}],"tags":[{"id":13,"name":"equipment","slug":"equipment"}],"tags_descriptions":{},"views":33,"like_count":0,"has_summary":false,"last_poster_username":"Rodrigo_Cordeiro","category_id":7,"op_like_count":0,"pinned_globally":false,"featured_link":null,"is_nested_view":true,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":120,"primary_group_id":50,"flair_group_id":50}]},{"fancy_title":"Data Platform with OData - Low Code","fancy_title_localized":false,"locale":"en","id":375,"title":"Data Platform with OData - Low Code","slug":"data-platform-with-odata-low-code","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/1X/2e5bf334873b27332847e3fa786314ea62524db7_2_1024x513.png","created_at":"2026-04-14T00:00:00.000Z","last_posted_at":"2026-04-14T00:00:00.000Z","bumped":false,"bumped_at":"2026-04-14T00:00:00.000Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"All the code presented here is available at github and github. \n\n \n \n\nWhat is OData?\n\n\nEvery analytics team building an API reinvents the same query language. OData solved this in 2014. Your BI tools already speak it. \n&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":2494,"height":1250,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/original/1X/2e5bf334873b27332847e3fa786314ea62524db7.png"},{"max_width":1024,"max_height":1024,"width":1024,"height":513,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/1X/2e5bf334873b27332847e3fa786314ea62524db7_2_1024x513.png"},{"max_width":800,"max_height":800,"width":800,"height":400,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/1X/2e5bf334873b27332847e3fa786314ea62524db7_2_800x400.png"},{"max_width":600,"max_height":600,"width":600,"height":300,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/1X/2e5bf334873b27332847e3fa786314ea62524db7_2_600x300.png"},{"max_width":400,"max_height":400,"width":400,"height":200,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/1X/2e5bf334873b27332847e3fa786314ea62524db7_2_400x200.png"},{"max_width":300,"max_height":300,"width":300,"height":150,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/1X/2e5bf334873b27332847e3fa786314ea62524db7_2_300x150.png"},{"max_width":200,"max_height":200,"width":200,"height":100,"url":"https://canada1.discourse-cdn.com/flex050/uploads/community_criticalmanufacturing/optimized/1X/2e5bf334873b27332847e3fa786314ea62524db7_2_200x100.png"}],"tags":[],"tags_descriptions":{},"views":20,"like_count":0,"has_summary":false,"last_poster_username":"Joao_Roque","category_id":7,"op_like_count":0,"pinned_globally":false,"featured_link":null,"is_nested_view":true,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":3,"primary_group_id":50,"flair_group_id":50}]}]}}