1 00:00:00,880 --> 00:00:02,480 Hey, everybody. Thank you for tuning back in 2 00:00:02,480 --> 00:00:04,240 to the Automation Show. My name is Sean 3 00:00:04,240 --> 00:00:05,299 Tanny from Insights. 4 00:00:05,599 --> 00:00:07,279 And in this episode, I actually have a 5 00:00:07,279 --> 00:00:10,980 special guest join me, Travis Cox from Inductive 6 00:00:11,039 --> 00:00:14,179 Automation to tell us all about Ignition 8.3. 7 00:00:14,494 --> 00:00:16,094 He's gonna run through the new features, and 8 00:00:16,094 --> 00:00:17,934 he's gonna give us a demo. And whether 9 00:00:17,934 --> 00:00:19,695 you're watching or listening, I think you're gonna 10 00:00:19,695 --> 00:00:22,175 find this very interesting. And I really appreciate 11 00:00:22,175 --> 00:00:25,134 Travis coming on, and I appreciate Inductive Automation 12 00:00:25,134 --> 00:00:26,734 sponsoring this episode so I could bring it 13 00:00:26,734 --> 00:00:28,859 to you completely ad free. So with that 14 00:00:28,859 --> 00:00:30,300 said, let's go ahead and jump into this 15 00:00:30,300 --> 00:00:32,699 week's episode of the automation show and learn 16 00:00:32,699 --> 00:00:34,559 all about Inductive Automation's 17 00:00:35,100 --> 00:00:36,799 Ignition 8.3. 18 00:00:37,259 --> 00:00:39,579 Travis, welcome to the show. I'm excited to 19 00:00:39,579 --> 00:00:43,840 learn today about what's new in Ignition 8.3. 20 00:00:44,175 --> 00:00:46,255 And, but before we jump into that, I 21 00:00:46,255 --> 00:00:48,094 was hoping we you could, take a moment 22 00:00:48,094 --> 00:00:49,954 and introduce yourself to our audience. 23 00:00:50,895 --> 00:00:53,375 Yeah. Thanks, Sean, for having me. So, my 24 00:00:53,375 --> 00:00:55,375 name is Travis Cox. I'm the chief technology 25 00:00:55,375 --> 00:00:57,155 evangelist here in Ductspot Automation. 26 00:00:57,640 --> 00:00:59,159 I just tell people I speak the gospel 27 00:00:59,159 --> 00:01:01,320 of Ignition. That's what I do. I've been 28 00:01:01,320 --> 00:01:03,559 with the company for almost twenty two years. 29 00:01:03,960 --> 00:01:05,799 I I was the the third employee there, 30 00:01:05,799 --> 00:01:07,799 and I've always sat more on the technical 31 00:01:07,799 --> 00:01:10,299 side, helping customers, you know, with their architectures, 32 00:01:10,519 --> 00:01:12,944 applying best practices, filling figuring out how to 33 00:01:13,025 --> 00:01:14,165 to integrate solutions, 34 00:01:14,625 --> 00:01:16,704 figure out how to really leverage, you know, 35 00:01:16,704 --> 00:01:18,144 Ignition and to to kinda get to the 36 00:01:18,144 --> 00:01:19,045 art of the possible. 37 00:01:19,424 --> 00:01:20,625 So I'm really excited to be here with 38 00:01:20,625 --> 00:01:23,104 you and to share Ignition 8.3. It's exciting 39 00:01:23,104 --> 00:01:23,604 release. 40 00:01:23,984 --> 00:01:26,305 Yeah. I'm excited too to see what's new 41 00:01:26,305 --> 00:01:28,340 in it because I I I love following 42 00:01:28,340 --> 00:01:29,939 your updates. You guys do a great job 43 00:01:29,939 --> 00:01:31,319 even on the minor points, 44 00:01:31,700 --> 00:01:33,859 keeping your, your customers up to speed on 45 00:01:33,859 --> 00:01:35,700 what's going on. And I really felt just 46 00:01:35,700 --> 00:01:37,700 from reading the updates, like, you're really doing 47 00:01:37,700 --> 00:01:39,000 a good job trying to incorporate 48 00:01:39,459 --> 00:01:41,079 requests from the customer 49 00:01:41,424 --> 00:01:43,825 into your product, which is always very much 50 00:01:43,825 --> 00:01:45,984 appreciated. So, let me turn it back to 51 00:01:45,984 --> 00:01:48,224 you. Let's learn what's new. Alright. Yeah. So 52 00:01:48,224 --> 00:01:50,144 we're gonna do a guided tour through Ignition 53 00:01:50,144 --> 00:01:51,125 8.3. 54 00:01:51,344 --> 00:01:53,584 It's a big release. There's so many new 55 00:01:53,584 --> 00:01:55,870 features in there. So we're gonna we're get 56 00:01:55,870 --> 00:01:57,630 the big hitting ones. You know, there's many 57 00:01:57,630 --> 00:01:58,829 other smaller ones, but, 58 00:01:59,549 --> 00:02:00,989 here we'll give you a a good tour 59 00:02:00,989 --> 00:02:02,909 and we'll kinda show those in act live 60 00:02:02,909 --> 00:02:04,349 in action and give you a good sense 61 00:02:04,349 --> 00:02:06,209 of of what that has to offer. 62 00:02:06,590 --> 00:02:07,090 So 63 00:02:07,950 --> 00:02:08,770 let's start 64 00:02:09,165 --> 00:02:11,645 with just a little bit information about 8.3. 65 00:02:11,885 --> 00:02:14,844 We released it on September 16, this year. 66 00:02:14,844 --> 00:02:16,365 This is a couple months ago. We leased 67 00:02:16,365 --> 00:02:18,544 it at our conference, ICC conference, 68 00:02:18,844 --> 00:02:20,764 and this has been a release that's been, 69 00:02:20,764 --> 00:02:22,540 you know, going on for a couple years, 70 00:02:22,780 --> 00:02:25,180 and it's it's it's a comprehensive update to 71 00:02:25,180 --> 00:02:26,240 the Ignition platform. 72 00:02:26,860 --> 00:02:29,280 There's a lot of things that we've, 73 00:02:29,659 --> 00:02:31,740 we had, you know, we've we've seen our 74 00:02:31,740 --> 00:02:33,599 vision that we wanted to have for Ignition, 75 00:02:33,875 --> 00:02:35,254 and this release really, 76 00:02:35,634 --> 00:02:36,995 took a little while, but we actually are 77 00:02:36,995 --> 00:02:39,875 able to realize, that vision. And really it's 78 00:02:39,875 --> 00:02:41,794 to to bring the worlds of OT and 79 00:02:41,794 --> 00:02:42,614 IT together, 80 00:02:43,074 --> 00:02:45,074 so that we can obviously leverage the best 81 00:02:45,074 --> 00:02:47,235 that OT has, but also leverage the best 82 00:02:47,235 --> 00:02:49,110 that IT has and bring in the latest 83 00:02:49,110 --> 00:02:51,530 and greatest technologies into the OT landscape. 84 00:02:51,909 --> 00:02:53,349 I think it's a really important thing to 85 00:02:53,349 --> 00:02:54,550 be able to do for how people want 86 00:02:54,550 --> 00:02:56,949 to deploy systems, manage these systems, the types 87 00:02:56,949 --> 00:02:58,650 of things they're trying to connect to. 88 00:02:59,110 --> 00:03:01,030 So we really wanted to design this this 89 00:03:01,030 --> 00:03:03,375 version to be the the world's most powerful, 90 00:03:03,594 --> 00:03:06,094 open, and flexible application development platform. 91 00:03:07,034 --> 00:03:07,534 So 92 00:03:07,995 --> 00:03:09,995 the the big focus on this release is 93 00:03:09,995 --> 00:03:12,875 to unlock data's full potential. We've added more 94 00:03:12,875 --> 00:03:13,375 connectors, 95 00:03:13,914 --> 00:03:15,455 especially drivers to PLCs. 96 00:03:16,030 --> 00:03:18,049 We've added connectors things like Kafka 97 00:03:18,349 --> 00:03:20,430 and, ways to be able to move data 98 00:03:20,430 --> 00:03:22,030 around in some unique ways that we'll show 99 00:03:22,030 --> 00:03:22,769 here today. 100 00:03:23,709 --> 00:03:26,430 We've also simplified project workflow, so people that 101 00:03:26,430 --> 00:03:29,229 are building HMI and SCADA applications with our 102 00:03:29,229 --> 00:03:30,370 perspective module. 103 00:03:31,014 --> 00:03:34,215 There's drawing tools, there's new form components, there's 104 00:03:34,215 --> 00:03:35,355 just easier ways, 105 00:03:35,735 --> 00:03:37,895 to build those applications to get that to 106 00:03:37,895 --> 00:03:39,115 where you want it to go. 107 00:03:39,895 --> 00:03:41,974 And a big focus of this release is 108 00:03:41,974 --> 00:03:43,974 how to manage and configure the systems with 109 00:03:43,974 --> 00:03:46,569 ease and that now people are deploying lots 110 00:03:46,569 --> 00:03:48,650 of systems out there, especially at the edge, 111 00:03:48,650 --> 00:03:49,930 and you have lots of them. You wanna 112 00:03:49,930 --> 00:03:51,610 be able to to manage them, make that 113 00:03:51,610 --> 00:03:52,349 part easier, 114 00:03:52,889 --> 00:03:54,730 and also to leverage kind of the best 115 00:03:54,730 --> 00:03:56,409 in class, you know, tools out there for 116 00:03:56,409 --> 00:03:58,189 things like version control and DevOps, 117 00:03:58,544 --> 00:04:00,324 which we'll go through and show today. 118 00:04:00,784 --> 00:04:03,025 And it's all about deploying and securing these 119 00:04:03,025 --> 00:04:03,844 large systems 120 00:04:04,305 --> 00:04:06,305 and how we can, you know, make that 121 00:04:06,305 --> 00:04:08,224 as efficient as possible and handle, you know, 122 00:04:08,224 --> 00:04:10,245 millions of data points that are out there. 123 00:04:10,560 --> 00:04:12,580 And there's a lot of enhancements to 124 00:04:12,879 --> 00:04:13,379 optimizations 125 00:04:13,760 --> 00:04:16,720 and security in this release that, that aid 126 00:04:16,720 --> 00:04:18,660 in those larger scale out systems. 127 00:04:19,279 --> 00:04:20,879 And of course this is an LTS release, 128 00:04:20,879 --> 00:04:22,879 so it means long term support, which means 129 00:04:22,879 --> 00:04:24,404 that it's supported for five years. 130 00:04:25,524 --> 00:04:27,685 So, we're gonna continue adding critical fixes and 131 00:04:27,685 --> 00:04:29,925 minor features to this release as we go 132 00:04:29,925 --> 00:04:32,245 along and, they get that peace of mind, 133 00:04:32,245 --> 00:04:34,404 you know, that this is gonna be, stable 134 00:04:34,404 --> 00:04:35,625 and will be supported, 135 00:04:36,165 --> 00:04:38,730 for that term for that that duration there. 136 00:04:39,290 --> 00:04:41,770 So that's a little bit about Ignition 8.3. 137 00:04:41,770 --> 00:04:43,210 What we really wanna do is go and 138 00:04:43,210 --> 00:04:45,449 see these features in action. So here's here's 139 00:04:45,449 --> 00:04:46,889 what we're gonna take a look at today. 140 00:04:46,889 --> 00:04:49,210 We're gonna look at the new redesigned Ignition 141 00:04:49,210 --> 00:04:50,750 gateway, the the web UI, 142 00:04:51,205 --> 00:04:53,685 and, it's a better UI UX experience. We're 143 00:04:53,685 --> 00:04:55,605 gonna show what that has to offer. We'll 144 00:04:55,605 --> 00:04:56,985 look at our new historian, 145 00:04:58,165 --> 00:05:01,605 especially with our embedded historians built into Ignition 146 00:05:01,605 --> 00:05:02,504 based on the QuestDB. 147 00:05:03,045 --> 00:05:04,425 We'll take a look at perspective, 148 00:05:05,129 --> 00:05:08,189 and, that's that's the native HTML five visualization 149 00:05:08,490 --> 00:05:10,650 and the drawing tools and the offline forms 150 00:05:10,650 --> 00:05:12,410 that are part of that. We'll show a 151 00:05:12,410 --> 00:05:14,810 small but mighty feature called Alarm Metrics, and 152 00:05:14,810 --> 00:05:16,250 we'll look at Event Streams. This is a 153 00:05:16,250 --> 00:05:18,845 brand new module. This is a low code, 154 00:05:18,845 --> 00:05:20,785 no code way of moving data around, 155 00:05:21,245 --> 00:05:23,085 with the Kafka connector that we have with 156 00:05:23,085 --> 00:05:23,585 that. 157 00:05:23,965 --> 00:05:26,064 And then we'll end up with some DevOps. 158 00:05:26,205 --> 00:05:28,705 We'll show version control, the new rest API, 159 00:05:29,165 --> 00:05:31,750 and this exciting feature called deployment modes that 160 00:05:31,750 --> 00:05:33,930 allows you to have, environment separation. 161 00:05:34,310 --> 00:05:35,750 So that's kind of the goal here for 162 00:05:35,750 --> 00:05:36,550 today and, 163 00:05:37,029 --> 00:05:38,870 you know, Sean, if you have you wanna 164 00:05:38,870 --> 00:05:40,470 dive in any point, have any questions, you 165 00:05:40,470 --> 00:05:41,449 know, feel free. 166 00:05:41,910 --> 00:05:44,490 You know, so we're gonna we're gonna hit 167 00:05:44,550 --> 00:05:46,310 hit all these features and give you a 168 00:05:46,310 --> 00:05:47,444 good sense of how they work. 169 00:05:48,645 --> 00:05:51,524 Let's start with the new redesigned Ignition Gateway 170 00:05:51,524 --> 00:05:52,904 webpage. So I have Ignition 171 00:05:53,205 --> 00:05:55,444 installed on my local machine here. Of course, 172 00:05:55,444 --> 00:05:57,605 it is super easy to go website, and 173 00:05:57,605 --> 00:05:59,125 you can go to the downloads page of 174 00:05:59,125 --> 00:05:59,785 the website, 175 00:06:00,459 --> 00:06:02,939 and there you can, download Ignition for your 176 00:06:02,939 --> 00:06:03,759 operating system. 177 00:06:04,139 --> 00:06:06,539 There's Windows, Linux, and Mac installers. There's also 178 00:06:06,539 --> 00:06:08,699 a Docker image. You can go and deploy 179 00:06:08,699 --> 00:06:09,839 that super easily. 180 00:06:10,379 --> 00:06:12,699 We also have, some Helm charts that you 181 00:06:12,699 --> 00:06:14,459 could deploy through Kubernetes. There's a lot of 182 00:06:14,459 --> 00:06:16,314 options for how to get Ignition out there 183 00:06:16,314 --> 00:06:17,675 and it runs in a two hour trial 184 00:06:17,675 --> 00:06:19,194 period. So you can everything I'm gonna show 185 00:06:19,194 --> 00:06:20,894 you today, you can go and play with 186 00:06:20,954 --> 00:06:22,235 and at the end of two hours, you 187 00:06:22,235 --> 00:06:23,915 just press the reset button, you try again 188 00:06:23,915 --> 00:06:25,915 for another two hours. So you can fully 189 00:06:25,915 --> 00:06:28,139 evaluate every part of Ignition in that way. 190 00:06:28,379 --> 00:06:31,100 So here is my, Ignition 8.3 on my 191 00:06:31,100 --> 00:06:33,360 local machine. This is the new web UI 192 00:06:33,740 --> 00:06:35,180 and for those of you who are brand 193 00:06:35,180 --> 00:06:36,860 new to Ignition, if you install eight point 194 00:06:36,860 --> 00:06:38,699 eight point three, it's gonna be very intuitive 195 00:06:38,699 --> 00:06:40,460 and easy to start with. People that are 196 00:06:40,460 --> 00:06:42,860 familiar with the older release, Ignition 8.1 and 197 00:06:42,860 --> 00:06:44,625 before, it's gonna be a little bit different. 198 00:06:44,865 --> 00:06:46,464 But the idea was to guide you to 199 00:06:46,464 --> 00:06:47,604 places very quickly 200 00:06:47,904 --> 00:06:49,824 and to combine the idea of status and 201 00:06:49,824 --> 00:06:51,365 configuration in one view. 202 00:06:51,985 --> 00:06:54,464 So if I'm not logged in, all I 203 00:06:54,464 --> 00:06:55,745 can do is be able to go and 204 00:06:55,745 --> 00:06:56,245 see, 205 00:06:56,569 --> 00:06:58,089 what this server is and be able to 206 00:06:58,089 --> 00:07:00,250 launch those applications that were built out as 207 00:07:00,250 --> 00:07:02,170 well as launch the designer. But as soon 208 00:07:02,170 --> 00:07:03,610 as we go ahead and log in, this 209 00:07:03,610 --> 00:07:05,449 is where we can actually go and modify 210 00:07:05,449 --> 00:07:06,110 the config. 211 00:07:06,569 --> 00:07:08,089 And we have a couple different areas. We 212 00:07:08,089 --> 00:07:10,235 have our platform area, which is all the 213 00:07:10,235 --> 00:07:10,735 configuration 214 00:07:11,115 --> 00:07:13,274 for the the Ignition platform as at the 215 00:07:13,274 --> 00:07:14,654 top level, especially security. 216 00:07:15,034 --> 00:07:16,974 There's connections to things like MQTT 217 00:07:17,354 --> 00:07:19,774 and Kafka and databases and devices. 218 00:07:20,314 --> 00:07:22,235 There's network where we can get to the 219 00:07:22,235 --> 00:07:25,079 gateway network and our enterprise administration module and 220 00:07:25,240 --> 00:07:28,360 configuring the web server. There's services for things 221 00:07:28,360 --> 00:07:30,360 like our story and our tag system, our 222 00:07:30,360 --> 00:07:33,419 alarming system, all the information about those services 223 00:07:33,560 --> 00:07:35,479 as well as, of course, diagnostics to see 224 00:07:35,479 --> 00:07:36,620 how Ignition's performing, 225 00:07:37,240 --> 00:07:38,939 get a quick glance at all of that. 226 00:07:39,399 --> 00:07:41,085 So if if I look at the platform, 227 00:07:41,145 --> 00:07:42,745 one of my favorite features of this web 228 00:07:42,745 --> 00:07:44,904 UI is this overview page right here because 229 00:07:44,904 --> 00:07:46,425 it gives all the config at a glance. 230 00:07:46,425 --> 00:07:48,444 I can see everything that's happening, what's configured, 231 00:07:48,504 --> 00:07:50,985 and what's possibly going wrong all in one 232 00:07:50,985 --> 00:07:52,345 view. And so you can see here I've 233 00:07:52,345 --> 00:07:53,884 actually got a database connection 234 00:07:54,329 --> 00:07:55,930 that has an error. So if I expand 235 00:07:55,930 --> 00:07:58,329 that, there's my local database. It's faulted. Looks 236 00:07:58,329 --> 00:07:59,850 like I have an access denied. I can 237 00:07:59,850 --> 00:08:01,850 go straight over to that area and I 238 00:08:01,850 --> 00:08:04,110 can get more details on the error message. 239 00:08:04,250 --> 00:08:05,769 Of course, I can then just go ahead 240 00:08:05,769 --> 00:08:07,370 and and I have the wrong password here. 241 00:08:07,370 --> 00:08:08,889 So I'm gonna go ahead and update that 242 00:08:08,889 --> 00:08:09,389 password 243 00:08:09,714 --> 00:08:10,535 in this config, 244 00:08:11,314 --> 00:08:13,314 save those changes, and now it's valid, ready 245 00:08:13,314 --> 00:08:15,555 to go. With that, go back up here 246 00:08:15,555 --> 00:08:17,555 to my platform overview. I can see that 247 00:08:17,555 --> 00:08:18,995 that issue is taken care of and this 248 00:08:18,995 --> 00:08:21,154 one's okay, but really easy to see that 249 00:08:21,154 --> 00:08:22,774 that information at a glance. 250 00:08:23,240 --> 00:08:24,759 Also, if you didn't know where something's at, 251 00:08:24,759 --> 00:08:25,879 you can go up here and just, like, 252 00:08:25,879 --> 00:08:28,279 go search. Let's go device connections or devices 253 00:08:28,279 --> 00:08:29,480 and go right to it. I can see 254 00:08:29,480 --> 00:08:31,400 the devices that are configured. So it's a 255 00:08:31,400 --> 00:08:33,399 really quick way to see what's going on 256 00:08:33,399 --> 00:08:35,080 and to to see the status of config 257 00:08:35,080 --> 00:08:36,840 all in that one view. So we really 258 00:08:36,840 --> 00:08:38,440 think this is gonna be a much easier 259 00:08:38,440 --> 00:08:40,975 way to to manage all those connections and 260 00:08:40,975 --> 00:08:42,195 to manage all that configuration, 261 00:08:42,815 --> 00:08:43,554 very quickly. 262 00:08:43,855 --> 00:08:45,934 So that's a a very important feature is, 263 00:08:46,095 --> 00:08:48,115 we always wanna make the UI UX experience 264 00:08:48,175 --> 00:08:50,495 much better for Ignition people when they're in 265 00:08:50,495 --> 00:08:52,575 the gateway configuration as well as in the 266 00:08:52,575 --> 00:08:53,795 designer for Ignition. 267 00:08:54,899 --> 00:08:56,419 The next feature we're gonna look at is 268 00:08:56,419 --> 00:08:59,940 the industrial historian solution suite. So we've always 269 00:08:59,940 --> 00:09:02,740 had, Historian built into Ignition. If I go 270 00:09:02,740 --> 00:09:04,899 to my, services down here, this is where 271 00:09:04,899 --> 00:09:05,960 I go to my Historians, 272 00:09:06,580 --> 00:09:08,259 and we could we've always been able to 273 00:09:08,259 --> 00:09:09,639 connect to SQL databases. 274 00:09:09,975 --> 00:09:11,575 So with that with that, we can log 275 00:09:11,575 --> 00:09:14,315 data to MySQL, Microsoft SQL Server, Postgres, 276 00:09:14,934 --> 00:09:16,454 you name it. And a lot of people 277 00:09:16,454 --> 00:09:18,875 are using Postgres with a time scale extension, 278 00:09:19,414 --> 00:09:21,654 which is the time series database extension to 279 00:09:21,654 --> 00:09:23,975 that. So kind of combining relational and time 280 00:09:23,975 --> 00:09:24,875 series together. 281 00:09:25,580 --> 00:09:26,860 So we still have that, of course, with 282 00:09:26,860 --> 00:09:28,080 Ignition 8.3, 283 00:09:28,139 --> 00:09:30,220 but now we've introduced a brand new core 284 00:09:30,220 --> 00:09:32,860 Historian. And this is a built in Historian. 285 00:09:32,860 --> 00:09:34,700 It's kind of it's built into Ignition. It's 286 00:09:34,860 --> 00:09:36,379 it comes with it out of the box. 287 00:09:36,379 --> 00:09:38,080 It's embedded inside of Ignition, 288 00:09:38,424 --> 00:09:40,504 but it is not proprietary. It is based 289 00:09:40,504 --> 00:09:41,884 on open source technology. 290 00:09:42,264 --> 00:09:43,245 It's based on QuestDB. 291 00:09:44,105 --> 00:09:46,285 It's a very popular time series database. 292 00:09:46,665 --> 00:09:48,985 It's very performant and we've been able to 293 00:09:48,985 --> 00:09:51,705 do benchmarking with bringing millions of data points 294 00:09:51,705 --> 00:09:53,579 and and be able to not affect the 295 00:09:53,579 --> 00:09:54,860 query speed to be able to bring that 296 00:09:54,860 --> 00:09:56,379 data back. So we think this is perfect 297 00:09:56,379 --> 00:09:58,940 for brand new users who are coming in, 298 00:09:58,940 --> 00:10:01,179 they can install Ignition and they can have 299 00:10:01,179 --> 00:10:02,779 a greater story and built in. They can 300 00:10:02,779 --> 00:10:04,799 log data for a couple years, no problem. 301 00:10:05,115 --> 00:10:06,634 And, a lot of people are then looking 302 00:10:06,634 --> 00:10:08,394 at what's my final resting place. Am I 303 00:10:08,394 --> 00:10:09,754 going to the cloud or going to a 304 00:10:09,754 --> 00:10:11,274 corporate data center? What are we doing with 305 00:10:11,274 --> 00:10:12,634 that? But this is a great way to 306 00:10:12,634 --> 00:10:15,034 start. All you gotta do is simply create 307 00:10:15,034 --> 00:10:17,375 one. I'm gonna call it local historian. 308 00:10:18,840 --> 00:10:20,920 And, we can go down here and specify 309 00:10:20,920 --> 00:10:23,240 pruning, which you can delete old data or 310 00:10:23,240 --> 00:10:25,420 archiving where we can archive data into, 311 00:10:25,799 --> 00:10:29,160 a folder after some time period and, that's 312 00:10:29,160 --> 00:10:30,920 it. I'll create the historian. Now I have 313 00:10:30,920 --> 00:10:32,674 it ready to go. Of course, we can 314 00:10:32,674 --> 00:10:34,355 go to our designer. I can go to 315 00:10:34,355 --> 00:10:35,794 any tag I have in the system. So 316 00:10:35,794 --> 00:10:37,714 I'm gonna go to these realistic tags, right 317 00:10:37,714 --> 00:10:38,534 click edit, 318 00:10:39,154 --> 00:10:41,714 come down here, turn on the historian, go 319 00:10:41,714 --> 00:10:44,434 to that local historian here. That's it. Press 320 00:10:44,434 --> 00:10:46,440 okay. All the data is now being logged 321 00:10:46,759 --> 00:10:48,299 directly in that embedded, 322 00:10:49,000 --> 00:10:50,059 time series database. 323 00:10:50,519 --> 00:10:52,360 And it's super easy from that point. I 324 00:10:52,360 --> 00:10:53,879 can go over here to my charts. I 325 00:10:53,879 --> 00:10:55,720 can expand. I could see those tags are 326 00:10:55,720 --> 00:10:57,559 logged. Bring it on. Boom. I can see 327 00:10:57,559 --> 00:10:59,100 the data coming in very quickly. 328 00:10:59,480 --> 00:11:01,399 So very, very fast way to get started 329 00:11:01,399 --> 00:11:02,139 with the historian. 330 00:11:02,495 --> 00:11:04,254 All that data, of course, is easily to 331 00:11:04,254 --> 00:11:05,235 get out of Ignition, 332 00:11:05,774 --> 00:11:06,995 you know, from there. 333 00:11:07,534 --> 00:11:09,615 And, just just to mention, we have an 334 00:11:09,615 --> 00:11:12,574 SDK. It is possible to actually extend this 335 00:11:12,574 --> 00:11:15,134 list of Historians, these engines, with your own 336 00:11:15,134 --> 00:11:16,654 if you wanted to. We have a great 337 00:11:16,654 --> 00:11:17,154 API, 338 00:11:18,029 --> 00:11:20,589 that allows anybody to extend. So we've actually 339 00:11:20,589 --> 00:11:21,809 had some some partners, 340 00:11:22,350 --> 00:11:25,709 who've created extend extensions to to their storage 341 00:11:25,709 --> 00:11:26,209 formats. 342 00:11:27,549 --> 00:11:30,589 Most notably is, Flow software with Timebase. They've 343 00:11:30,589 --> 00:11:32,115 been able to build that as a module. 344 00:11:32,115 --> 00:11:35,875 So lots of cool stuff that's possible with 345 00:11:35,875 --> 00:11:37,154 this new historian area. That looked like it 346 00:11:37,154 --> 00:11:38,995 was really easy to do. It seemed like, 347 00:11:38,995 --> 00:11:40,834 and correct me if I'm wrong, the goal 348 00:11:40,834 --> 00:11:42,375 of doing that core historian 349 00:11:43,475 --> 00:11:45,059 was, as you just showed, 350 00:11:45,539 --> 00:11:47,000 to be able to set up your historian 351 00:11:47,059 --> 00:11:49,299 in under a minute. Whereas if I was 352 00:11:49,299 --> 00:11:51,460 going to SQL Server, install SQL is it's 353 00:11:51,460 --> 00:11:53,620 a whole other thing I have to go 354 00:11:53,620 --> 00:11:55,240 through. And so 355 00:11:55,779 --> 00:11:57,460 was was that what it was? I mean, 356 00:11:57,460 --> 00:11:58,820 did you just want people to be get 357 00:11:58,820 --> 00:12:00,044 it be able to get it and start 358 00:12:00,284 --> 00:12:03,325 collecting data right away without having or forcing 359 00:12:03,325 --> 00:12:05,325 them to really, like, install a SQL Server 360 00:12:05,325 --> 00:12:07,024 or MySQL or something else? 361 00:12:07,565 --> 00:12:09,964 Yeah. Exactly. I mean, SQL database has been 362 00:12:09,964 --> 00:12:11,404 great. And from the very beginning of this 363 00:12:11,404 --> 00:12:13,220 company, we've logged data to a database. You 364 00:12:13,220 --> 00:12:15,299 know, we have that bridge between OPC server 365 00:12:15,299 --> 00:12:17,720 and a SQL database. Yeah. But that requires 366 00:12:17,779 --> 00:12:20,340 people to install database and to also then 367 00:12:20,340 --> 00:12:22,660 manage it. While a lot of IT departments 368 00:12:22,660 --> 00:12:25,139 are doing that for for the the OT 369 00:12:25,139 --> 00:12:27,460 side, some companies don't have, you know, IT 370 00:12:27,460 --> 00:12:29,394 department who can manage that. And so it 371 00:12:29,514 --> 00:12:31,754 it's an expertise level that some people just, 372 00:12:31,995 --> 00:12:33,674 you know, they that they just don't don't 373 00:12:33,674 --> 00:12:36,154 have. Whereas with this, they don't have to 374 00:12:36,154 --> 00:12:37,434 worry about any of that. It all comes 375 00:12:37,434 --> 00:12:39,355 in. There's not installing any anything outside of 376 00:12:39,355 --> 00:12:42,610 Ignition and is based on, you know, modern 377 00:12:42,610 --> 00:12:45,730 technology that is very performant and, gives you 378 00:12:45,730 --> 00:12:47,569 a lot of power. So absolutely. Wanna we 379 00:12:47,569 --> 00:12:50,370 wanna make that that journey to Ignition, especially 380 00:12:50,370 --> 00:12:51,990 for the new people, really simple. 381 00:12:52,529 --> 00:12:54,449 Yeah. That was that was simple. I love 382 00:12:54,449 --> 00:12:56,355 the workflow there, how you went through that. 383 00:12:56,595 --> 00:12:58,595 And, you had a trend going, a historical 384 00:12:58,595 --> 00:13:00,274 trend going in no time. I think you 385 00:13:00,274 --> 00:13:01,475 did the whole thing in under a minute, 386 00:13:01,475 --> 00:13:03,315 which was impressive. So let me turn it 387 00:13:03,315 --> 00:13:05,634 back to you. Yeah. Absolutely. And that's that's 388 00:13:05,634 --> 00:13:07,634 the goal. We wanna we we our our 389 00:13:07,634 --> 00:13:09,580 motto is kinda first make it possible and 390 00:13:09,580 --> 00:13:11,820 then make it really easy and that's, that's 391 00:13:11,820 --> 00:13:13,740 what we've done here with the historian for 392 00:13:13,740 --> 00:13:14,240 sure. 393 00:13:14,700 --> 00:13:16,779 And that's, goes to our next area which 394 00:13:16,779 --> 00:13:20,160 is our drawing, tools and our application editor, 395 00:13:20,875 --> 00:13:22,634 and the the forms to be able to 396 00:13:22,634 --> 00:13:24,634 build forms and and and to have offline 397 00:13:24,634 --> 00:13:26,074 forms. And I'll show you what that looks 398 00:13:26,074 --> 00:13:26,735 like here. 399 00:13:27,434 --> 00:13:29,674 So let's start with the drawing tools. You 400 00:13:29,674 --> 00:13:32,875 know, we've have a visualization system called perspective 401 00:13:32,875 --> 00:13:34,475 and that's where you're and you saw me 402 00:13:34,475 --> 00:13:36,074 kind of in there already where I with 403 00:13:36,074 --> 00:13:38,220 this trend. This is where we can build, 404 00:13:38,220 --> 00:13:40,539 you know, screens and build the applications that 405 00:13:40,539 --> 00:13:43,580 we have. And, we've had, you know, various 406 00:13:43,580 --> 00:13:45,440 symbols in inside of Ignition 407 00:13:46,139 --> 00:13:47,659 like, you know, motors and pumps, and we 408 00:13:47,659 --> 00:13:50,220 have a lot of, SVGs that, come with 409 00:13:50,220 --> 00:13:51,600 the simple factory graphics. 410 00:13:52,065 --> 00:13:53,264 But a lot of people want to be 411 00:13:53,264 --> 00:13:56,065 able to edit SPGs inside of our designer 412 00:13:56,065 --> 00:13:57,184 as well as to be able to create 413 00:13:57,184 --> 00:13:59,105 ones from scratch. And that's what we've added 414 00:13:59,105 --> 00:14:02,065 here, in 8.3 with perspective. I can go 415 00:14:02,065 --> 00:14:04,065 over here to our drawing component, drag it 416 00:14:04,065 --> 00:14:05,339 on the screen, and I can go in 417 00:14:05,339 --> 00:14:07,419 here and simply let's say, I wanna make 418 00:14:07,419 --> 00:14:09,600 this a 100 by a 100. 419 00:14:10,059 --> 00:14:11,339 I can go in and let's say I 420 00:14:11,339 --> 00:14:13,100 just wanna undo something as simple as drawing 421 00:14:13,100 --> 00:14:15,259 a circle. I know it's not very exciting, 422 00:14:15,259 --> 00:14:16,940 but for people who have been editing a 423 00:14:16,940 --> 00:14:19,345 perspective before 08/2003, it was not as easy 424 00:14:19,345 --> 00:14:21,125 to draw a circle as it is now, 425 00:14:21,585 --> 00:14:23,904 with these drawing tools. And so with that 426 00:14:23,904 --> 00:14:25,504 I can go over, I can change the 427 00:14:25,504 --> 00:14:26,485 color of this, 428 00:14:27,105 --> 00:14:27,764 you know, 429 00:14:28,305 --> 00:14:30,725 let's go here make it, make it red. 430 00:14:31,460 --> 00:14:33,460 And so super easy to make that press 431 00:14:33,460 --> 00:14:35,059 apply. Now I have an SVG. This is 432 00:14:35,059 --> 00:14:37,000 a simple SVG, but I've got an SVG. 433 00:14:37,779 --> 00:14:39,620 And there's lots of graphics that way. I 434 00:14:39,620 --> 00:14:41,540 can go up here to our symbol factories 435 00:14:41,540 --> 00:14:42,740 is what we've had in there. So, for 436 00:14:42,740 --> 00:14:44,565 example, I take this motor. I could take 437 00:14:44,565 --> 00:14:46,965 the motor in here, and I can then 438 00:14:46,965 --> 00:14:48,245 go edit it. Let's say, you know, I 439 00:14:48,245 --> 00:14:50,245 didn't like this circle up here. I wanna 440 00:14:50,245 --> 00:14:51,225 get rid of that, 441 00:14:51,684 --> 00:14:54,404 and or I want to bind or link 442 00:14:54,404 --> 00:14:56,024 this square to the color, 443 00:14:56,669 --> 00:14:58,429 you know, to the the the PLC and 444 00:14:58,429 --> 00:15:00,110 change the color. Well, we can do that 445 00:15:00,110 --> 00:15:02,269 really easily. So here's my SVG. It can 446 00:15:02,269 --> 00:15:03,950 take the square. I click on the the 447 00:15:03,950 --> 00:15:05,870 bind next to the fill. I can link 448 00:15:05,870 --> 00:15:07,309 that to a tag. Let's say, we go 449 00:15:07,309 --> 00:15:10,965 over here to our writable integer one tag, 450 00:15:11,925 --> 00:15:14,504 and, I'll do a little map that says 451 00:15:14,725 --> 00:15:16,884 if the value is zero one two, we're 452 00:15:16,884 --> 00:15:19,045 gonna go to a color, and zero, I'll 453 00:15:19,045 --> 00:15:20,884 make it red, one, I'll make it green, 454 00:15:20,884 --> 00:15:22,825 kind of the classic sense here. 455 00:15:23,605 --> 00:15:25,699 Let me do two and press okay. So 456 00:15:25,699 --> 00:15:27,699 now I've got the binding on there and 457 00:15:27,699 --> 00:15:29,779 press apply and now I've got an SVG 458 00:15:29,779 --> 00:15:31,620 that I've edited. I can also, of course, 459 00:15:31,620 --> 00:15:34,179 change that shape or modify all within that 460 00:15:34,179 --> 00:15:36,120 drawing editor very quickly 461 00:15:36,579 --> 00:15:38,579 and, at this point if I if the 462 00:15:38,579 --> 00:15:40,259 value changes, let's go down here and make 463 00:15:40,259 --> 00:15:41,584 this set to a one. 464 00:15:42,284 --> 00:15:43,804 You can see it's green. Right? Simple as 465 00:15:43,804 --> 00:15:45,565 that, in turn being able to do it. 466 00:15:45,565 --> 00:15:47,884 Now another part that's really, I think, important 467 00:15:47,884 --> 00:15:49,404 is that if I can make this let's 468 00:15:49,404 --> 00:15:49,904 go, 469 00:15:50,845 --> 00:15:53,565 80 pixels tall. I can actually add text 470 00:15:53,565 --> 00:15:54,690 right inside here. 471 00:15:55,250 --> 00:15:57,649 So let's say I make this, you know, 472 00:15:57,649 --> 00:15:58,549 motor one 473 00:15:59,330 --> 00:16:01,330 and this is SVG text and the reason 474 00:16:01,330 --> 00:16:04,289 that's important is that that automatically scales. So 475 00:16:04,289 --> 00:16:06,450 if you've got a HMI screen where you've 476 00:16:06,450 --> 00:16:08,154 got a bunch of text on there, you 477 00:16:08,154 --> 00:16:10,714 can have that combined with the SVGs, and, 478 00:16:10,714 --> 00:16:12,414 really, it makes that a lot easier, 479 00:16:12,875 --> 00:16:14,875 for the scaling, for what you're trying to 480 00:16:14,875 --> 00:16:15,855 accomplish there. 481 00:16:16,634 --> 00:16:19,674 So you have an s SVG editor inside 482 00:16:19,674 --> 00:16:20,495 of your application. 483 00:16:21,049 --> 00:16:22,250 And when you open it up, to me, 484 00:16:22,250 --> 00:16:24,169 it kinda reminds me of Paint. Right? So 485 00:16:24,169 --> 00:16:25,870 everybody's familiar with Windows Paint, 486 00:16:26,490 --> 00:16:27,549 but on steroids. 487 00:16:28,009 --> 00:16:31,129 And you're even editing your symbol factory graphics 488 00:16:31,129 --> 00:16:32,589 in there and adding animation 489 00:16:32,970 --> 00:16:35,825 in the editor, tying the the property, like, 490 00:16:35,825 --> 00:16:37,985 the color property of a tag or or 491 00:16:37,985 --> 00:16:40,304 the color property of an a part of 492 00:16:40,304 --> 00:16:41,044 an object 493 00:16:41,345 --> 00:16:43,125 to a tag all with inside 494 00:16:43,664 --> 00:16:44,404 that editor. 495 00:16:44,865 --> 00:16:47,100 And by adding the text in there, now 496 00:16:47,100 --> 00:16:49,279 you have scalable vector graphics, 497 00:16:49,899 --> 00:16:52,299 you know, the features of scalable vector graphics 498 00:16:52,299 --> 00:16:54,139 with the text so that no matter what 499 00:16:54,139 --> 00:16:55,899 size you make it, it's not hunting for 500 00:16:55,899 --> 00:16:57,279 a font size. It's actually 501 00:16:57,659 --> 00:16:59,600 scaling like you'd want it to scale, 502 00:17:00,295 --> 00:17:02,795 and maintaining that that perspective. I mean, that's 503 00:17:02,855 --> 00:17:05,335 that's impressive. And so the new thing here 504 00:17:05,335 --> 00:17:07,994 is it's a new interface, easy to use, 505 00:17:08,855 --> 00:17:09,815 flow as far as, 506 00:17:10,535 --> 00:17:12,535 using the editing. It it sound like you 507 00:17:12,535 --> 00:17:14,535 did have this feature in before, but you've 508 00:17:14,535 --> 00:17:16,670 updated it. Am I correct? So we actually 509 00:17:16,670 --> 00:17:18,430 didn't have the drawing editor at all. I 510 00:17:18,430 --> 00:17:19,789 mean, for s p g's you can you 511 00:17:19,789 --> 00:17:21,470 can bring the s p g's in but 512 00:17:21,470 --> 00:17:22,609 what it looked like 513 00:17:22,990 --> 00:17:25,309 was, essentially an s p g with all 514 00:17:25,309 --> 00:17:28,109 these elements over here and you're like, what 515 00:17:28,109 --> 00:17:29,329 is this path? 516 00:17:29,869 --> 00:17:31,464 Oh. Yep. And and it was very hard. 517 00:17:31,464 --> 00:17:32,664 So obviously, if you wanna edit it, it 518 00:17:32,664 --> 00:17:33,565 makes that difficult. 519 00:17:34,025 --> 00:17:35,944 If you wanted to bind binding is the 520 00:17:35,944 --> 00:17:38,184 is the the combination of the the editor 521 00:17:38,184 --> 00:17:40,345 with the binding is really powerful and nobody 522 00:17:40,345 --> 00:17:42,424 has to go outside in a third party 523 00:17:42,424 --> 00:17:44,585 SVG editor and then use that and then 524 00:17:44,585 --> 00:17:45,359 bring it back. 525 00:17:45,759 --> 00:17:47,759 That's cool. So it's really nice. And then, 526 00:17:47,759 --> 00:17:49,440 of course, you can also take an SVG 527 00:17:49,440 --> 00:17:51,279 that you have outside of Ignition. I can 528 00:17:51,279 --> 00:17:53,119 drag it in. So I've got this is 529 00:17:53,119 --> 00:17:55,039 our logo. I'm bringing it in and embedding 530 00:17:55,039 --> 00:17:56,500 it. So there we go. 531 00:17:56,880 --> 00:17:58,720 And of course, I can go in real 532 00:17:58,720 --> 00:17:59,994 quick. If If I have one, I wanna 533 00:17:59,994 --> 00:18:01,914 make some changes. I wanna remove these the 534 00:18:01,914 --> 00:18:04,315 text down here. Boom. Boom. And I've got 535 00:18:04,315 --> 00:18:06,315 that logo and that was just really easy 536 00:18:06,315 --> 00:18:08,474 to make those quick modifications. When you're building 537 00:18:08,474 --> 00:18:09,454 these kind of screens, 538 00:18:09,755 --> 00:18:12,139 it's really nice to have that editor just 539 00:18:12,139 --> 00:18:13,500 to go quick. You know, nobody wants to 540 00:18:13,500 --> 00:18:15,419 have to worry with multiple tools. Right? Just 541 00:18:15,419 --> 00:18:16,700 wanna do it all right there in the 542 00:18:16,700 --> 00:18:17,200 designer. 543 00:18:18,460 --> 00:18:21,440 Yeah. Absolutely. Absolutely. That's amazing. I love it. 544 00:18:22,940 --> 00:18:24,644 Along with that, another thing people have been 545 00:18:24,644 --> 00:18:26,005 trying to do, of course, when you're building 546 00:18:26,005 --> 00:18:28,005 applications, you're not just building HMI SCADA screens, 547 00:18:28,005 --> 00:18:30,164 you're also building forms. You know, people entering 548 00:18:30,164 --> 00:18:31,144 in data manually. 549 00:18:31,445 --> 00:18:33,305 And, you know, you were doing that before 550 00:18:33,684 --> 00:18:36,085 by adding in text fields on the screens. 551 00:18:36,085 --> 00:18:38,505 Right? Or adding buttons on there to save, 552 00:18:38,869 --> 00:18:40,950 and labels, and and drop down lists, and 553 00:18:40,950 --> 00:18:43,750 all these individual components. That's great, but that 554 00:18:43,750 --> 00:18:45,670 can be time consuming in building out the 555 00:18:45,670 --> 00:18:46,170 form. 556 00:18:46,549 --> 00:18:48,090 And so what we have now 557 00:18:48,869 --> 00:18:52,009 is a new component in perspective for forms, 558 00:18:52,150 --> 00:18:53,785 and and a couple different examples. But if 559 00:18:53,785 --> 00:18:56,105 I drag this on here, it's one component 560 00:18:56,105 --> 00:18:57,945 where I can define the entirety of the 561 00:18:57,945 --> 00:19:00,285 form, all the form fields, the validation, 562 00:19:00,585 --> 00:19:02,345 and it does all the submission and all 563 00:19:02,345 --> 00:19:03,245 that for you. 564 00:19:03,705 --> 00:19:05,830 And the the biggest reason is so that 565 00:19:05,830 --> 00:19:07,509 we can make it easier to build forms, 566 00:19:07,509 --> 00:19:09,910 and it can also have dynamic forms, but 567 00:19:09,910 --> 00:19:11,750 it's to get to a place where we 568 00:19:11,750 --> 00:19:13,430 can have offline forms. This is where I'm 569 00:19:13,430 --> 00:19:15,529 gonna where I'm gonna lead to end with. 570 00:19:15,910 --> 00:19:17,830 So that this first component here allows me 571 00:19:17,830 --> 00:19:19,350 to go in. I can simply say, you 572 00:19:19,350 --> 00:19:21,855 know what? Let's go down here to here's 573 00:19:21,855 --> 00:19:22,994 our text widget, 574 00:19:23,934 --> 00:19:25,694 and let's say I want this label to 575 00:19:25,694 --> 00:19:28,335 be first name. Right? So you change that 576 00:19:28,335 --> 00:19:31,055 first name. Here's the text and text. I 577 00:19:31,055 --> 00:19:32,035 want that validation 578 00:19:32,575 --> 00:19:35,714 here to, I'm gonna do a required field. 579 00:19:36,109 --> 00:19:38,190 So it's a required field. It means if 580 00:19:38,190 --> 00:19:39,869 I'm in the run time and I go 581 00:19:39,869 --> 00:19:41,549 next, it's gonna say, hey, no. You gotta 582 00:19:41,549 --> 00:19:43,549 fill this field. It's all done for you, 583 00:19:43,549 --> 00:19:44,529 all built in 584 00:19:44,830 --> 00:19:46,590 and there's all sorts of different widgets. So 585 00:19:46,590 --> 00:19:48,414 let's say I wanna do another one and 586 00:19:48,414 --> 00:19:50,914 this widget's gonna be a, you know, password 587 00:19:50,974 --> 00:19:53,694 or URL or drop down or checkbox or 588 00:19:53,694 --> 00:19:55,295 any of these things. So I can do 589 00:19:55,295 --> 00:19:57,134 a drop down and in the drop down 590 00:19:57,134 --> 00:19:58,994 I could specify multiple options. 591 00:19:59,375 --> 00:20:01,315 So let's do option one 592 00:20:02,470 --> 00:20:04,730 and then I'll do another one here, 593 00:20:05,109 --> 00:20:06,089 option two. 594 00:20:09,029 --> 00:20:11,669 And, this seems a little bit like there's 595 00:20:11,669 --> 00:20:13,429 a lot of config over here. We're gonna 596 00:20:13,429 --> 00:20:15,190 be adding an editor to this to make 597 00:20:15,190 --> 00:20:17,465 it easier for that. But what's important is 598 00:20:17,465 --> 00:20:20,105 that I can actually bind this whole thing 599 00:20:20,105 --> 00:20:21,945 to a query or something and make this 600 00:20:21,945 --> 00:20:24,025 dynamic, which is really powerful to be able 601 00:20:24,025 --> 00:20:25,785 to do. So you can see I can 602 00:20:25,785 --> 00:20:28,025 really build out these forms pretty quick. And, 603 00:20:28,265 --> 00:20:30,279 I've got a form already built out. So 604 00:20:30,279 --> 00:20:32,859 this one here, this machine safety inspection checklist. 605 00:20:33,559 --> 00:20:36,599 And this one, I am, when it's submitting, 606 00:20:36,599 --> 00:20:38,920 it's firing a submission event and we're actually 607 00:20:38,920 --> 00:20:39,900 handling that, 608 00:20:40,440 --> 00:20:41,180 this inspection, 609 00:20:42,440 --> 00:20:44,279 so that it can actually log to a 610 00:20:44,279 --> 00:20:46,525 database very easily. And And whether I'm doing 611 00:20:46,525 --> 00:20:47,765 it from the browser or if I'm doing 612 00:20:47,765 --> 00:20:49,325 it from my native app, it's gonna be 613 00:20:49,325 --> 00:20:51,244 able to guarantee that when they when they 614 00:20:51,244 --> 00:20:52,924 submit it that it's gonna get there. It's 615 00:20:52,924 --> 00:20:53,825 gonna be stored. 616 00:20:54,445 --> 00:20:56,525 And so I can easily then let's go 617 00:20:56,525 --> 00:20:58,545 launch let's go launch this client. 618 00:20:59,180 --> 00:21:00,779 Here, I'm in my browser. Let's go and 619 00:21:00,779 --> 00:21:01,599 say compressor 620 00:21:03,579 --> 00:21:06,380 one. I'm doing inspection. This is Travis doing 621 00:21:06,380 --> 00:21:06,880 it, 622 00:21:07,500 --> 00:21:09,359 and I'm gonna check these boxes. 623 00:21:09,900 --> 00:21:10,400 There 624 00:21:11,019 --> 00:21:12,079 was a problem. 625 00:21:13,099 --> 00:21:14,964 So we do that, submit it, and that 626 00:21:14,964 --> 00:21:16,484 form was was submitted. Now if I go 627 00:21:16,484 --> 00:21:18,164 to my database, I can look at my 628 00:21:18,164 --> 00:21:20,244 inspection form and there sure enough, there's a 629 00:21:20,244 --> 00:21:22,184 record in there for that inspection. 630 00:21:22,804 --> 00:21:24,264 But what's really cool here, 631 00:21:24,724 --> 00:21:27,365 is I'm gonna show you now the native 632 00:21:27,365 --> 00:21:27,660 app, 633 00:21:28,619 --> 00:21:30,559 because this is where it gets real powerful 634 00:21:30,619 --> 00:21:31,119 especially 635 00:21:32,220 --> 00:21:35,099 for being offline. So let me mirror my 636 00:21:35,099 --> 00:21:35,599 phone. 637 00:21:35,900 --> 00:21:38,539 Alright. So I'm gonna add this application to 638 00:21:38,539 --> 00:21:40,140 my phone. So I'm gonna go down to 639 00:21:40,140 --> 00:21:41,440 my Ignition server. 640 00:21:42,460 --> 00:21:44,615 There we go. This one. Here's my demo 641 00:21:44,615 --> 00:21:46,534 application. So let's edit that one. I'm gonna 642 00:21:46,534 --> 00:21:48,534 make it available offline. So you can see 643 00:21:48,534 --> 00:21:50,474 right now it's downloading it top left, 644 00:21:50,855 --> 00:21:52,855 and, I'm not offline right now, but if 645 00:21:52,855 --> 00:21:54,534 I go in, I can use that form. 646 00:21:54,534 --> 00:21:56,214 That's that's great. I can enter the data. 647 00:21:56,214 --> 00:21:57,914 But let's say I was offline. 648 00:21:58,440 --> 00:21:59,720 So for the sake of this, what I'm 649 00:21:59,720 --> 00:22:00,859 gonna do real quick 650 00:22:01,559 --> 00:22:02,700 is I'm just gonna, 651 00:22:03,480 --> 00:22:05,000 stop Ignition for a moment, 652 00:22:05,319 --> 00:22:06,859 since I'm all on the same machine. 653 00:22:07,319 --> 00:22:09,000 And I'm gonna it's gonna make this thing 654 00:22:09,000 --> 00:22:09,659 go offline. 655 00:22:10,039 --> 00:22:12,200 So we're gonna mirror my phone again and 656 00:22:12,200 --> 00:22:13,880 you're gonna see what this looks like an 657 00:22:13,880 --> 00:22:14,174 offline 658 00:22:15,055 --> 00:22:16,095 way. Alright. So let's go back in there. 659 00:22:16,095 --> 00:22:17,295 Of course, it's gonna it's not gonna be 660 00:22:17,295 --> 00:22:18,735 able to connect to the gateway. It's gonna 661 00:22:18,735 --> 00:22:20,835 be, hey. You know, I'm I'm disconnected, 662 00:22:21,375 --> 00:22:23,455 and, it's still gonna run, still gonna work. 663 00:22:23,455 --> 00:22:25,134 So if I'm not if I'm out there, 664 00:22:25,134 --> 00:22:26,595 no Wi Fi, no cellular, 665 00:22:26,975 --> 00:22:28,975 I can still go in and, let's say, 666 00:22:28,975 --> 00:22:30,330 pump. We're gonna do 667 00:22:30,789 --> 00:22:31,930 pump, one, 668 00:22:32,309 --> 00:22:34,650 and this is me doing it, 669 00:22:35,350 --> 00:22:37,750 and here we go. Let's go and just 670 00:22:37,750 --> 00:22:40,950 everything everything looks good. Submit that, and here, 671 00:22:40,950 --> 00:22:42,630 what's happening, you see it's added to the 672 00:22:42,630 --> 00:22:43,690 offline queue. 673 00:22:44,125 --> 00:22:45,644 So if I go and look, there's a 674 00:22:45,644 --> 00:22:47,404 queue, submission queue, and when I get back 675 00:22:47,404 --> 00:22:50,865 in range, this data will automatically happen. So 676 00:22:51,005 --> 00:22:53,724 let's let's bring Ignition back up, and we're 677 00:22:53,724 --> 00:22:56,144 gonna see this data automatically 678 00:22:56,769 --> 00:22:59,170 getting come come back into Ignition. And this 679 00:22:59,170 --> 00:23:01,170 is what's really powerful is to be able 680 00:23:01,170 --> 00:23:03,650 to I can still have this application work 681 00:23:03,650 --> 00:23:04,950 even though I'm offline. 682 00:23:05,329 --> 00:23:07,970 So here, it's almost ready. There it goes. 683 00:23:07,970 --> 00:23:08,609 It was, 684 00:23:09,009 --> 00:23:11,375 brought back up. Let's go in here, refresh, 685 00:23:11,434 --> 00:23:12,174 and now 686 00:23:13,914 --> 00:23:16,154 there's my pump. It got it got added 687 00:23:16,154 --> 00:23:17,134 to the database. 688 00:23:17,595 --> 00:23:19,475 So a really powerful feature to be able 689 00:23:19,475 --> 00:23:21,275 to build these forms, especially to have these 690 00:23:21,275 --> 00:23:23,799 forms available offline when I'm not connected to 691 00:23:23,799 --> 00:23:25,640 that server no matter where I happen to 692 00:23:25,640 --> 00:23:26,140 be, 693 00:23:26,519 --> 00:23:28,119 to be able to to do these, different 694 00:23:28,119 --> 00:23:29,559 things. And we're gonna be adding here just 695 00:23:29,559 --> 00:23:31,720 shortly. We're gonna add a a signature field 696 00:23:31,720 --> 00:23:34,360 and the ability to take pictures from your 697 00:23:34,360 --> 00:23:36,460 phone and and add in the form. 698 00:23:36,855 --> 00:23:38,535 Now on on the phone, were you use 699 00:23:38,615 --> 00:23:40,615 using a web browser or is it the 700 00:23:40,615 --> 00:23:43,494 Ignition app? I was using the Perspective native 701 00:23:43,494 --> 00:23:46,054 app on iOS and Android that's available in 702 00:23:46,054 --> 00:23:47,355 the stores. It's free. 703 00:23:47,815 --> 00:23:50,134 And that is what when you sort it's 704 00:23:50,134 --> 00:23:51,839 it's stored in that app. It's stored in 705 00:23:51,839 --> 00:23:53,519 that queue in that app. Perfect. And then 706 00:23:53,519 --> 00:23:55,279 when when I'm back in range, it just 707 00:23:55,279 --> 00:23:57,299 automatically sends those back to the gateway. 708 00:23:57,920 --> 00:23:59,599 So that way everything is is good to 709 00:23:59,599 --> 00:24:01,920 go. It does we wouldn't have that functionality 710 00:24:01,920 --> 00:24:03,759 directly in a browser. So that's why we 711 00:24:03,759 --> 00:24:05,279 have to have the native app on on 712 00:24:05,279 --> 00:24:06,019 those devices. 713 00:24:06,384 --> 00:24:07,744 Well, that's why I was asking. And I, 714 00:24:07,744 --> 00:24:08,944 you know, I think it's a good, you 715 00:24:08,944 --> 00:24:11,105 know, you know, standard operating procedure. If you're 716 00:24:11,105 --> 00:24:12,464 gonna go out and fill in all these 717 00:24:12,464 --> 00:24:14,944 new offline forms now where you may not 718 00:24:14,944 --> 00:24:17,285 have any Wi Fi or any Internet, 719 00:24:18,304 --> 00:24:20,304 you can come back in, open the app 720 00:24:20,304 --> 00:24:21,845 back up, and make sure it synchronizes. 721 00:24:22,279 --> 00:24:23,480 Yeah. I think we're a lot of us 722 00:24:23,480 --> 00:24:25,559 are used to that operating procedure with, like, 723 00:24:25,559 --> 00:24:27,799 you know, phones or videos or anything we 724 00:24:27,799 --> 00:24:29,480 do with our phone where it's cached, and 725 00:24:29,480 --> 00:24:31,399 we gotta come back in and synchronize it. 726 00:24:31,399 --> 00:24:32,519 I know I do it a lot when 727 00:24:32,519 --> 00:24:34,404 I'm at a trade show taking pictures. I 728 00:24:34,404 --> 00:24:35,684 gotta get back on the Wi Fi and 729 00:24:35,684 --> 00:24:37,144 sync them all up to the server. 730 00:24:37,525 --> 00:24:39,285 So, no. That makes a lot of sense 731 00:24:39,285 --> 00:24:41,924 in it. Very straightforward. And I noticed today, 732 00:24:41,924 --> 00:24:44,484 you're editing this all using the property panel 733 00:24:44,484 --> 00:24:46,884 on the right hand side. You're duplicating. You're 734 00:24:46,884 --> 00:24:49,349 editing. You're changing the the type of fields, 735 00:24:49,349 --> 00:24:51,829 you're changing their text, the titles, the the 736 00:24:51,829 --> 00:24:54,390 format, whether they're required or not. But did 737 00:24:54,390 --> 00:24:56,089 you say that in the future, you're gonna 738 00:24:56,150 --> 00:24:58,070 pull an editor in right on the form 739 00:24:58,070 --> 00:24:58,570 itself? 740 00:24:59,029 --> 00:25:01,275 Yeah. We're gonna do, an editor like like 741 00:25:01,275 --> 00:25:02,875 with the SVG when you pop up that 742 00:25:02,875 --> 00:25:03,994 box and be able to change it. We're 743 00:25:03,994 --> 00:25:05,755 gonna do one for the forms. It's a 744 00:25:05,755 --> 00:25:07,035 obvious place to do it. We want to 745 00:25:07,035 --> 00:25:08,875 get this feature out and have people to 746 00:25:08,875 --> 00:25:09,994 be able to take advantage of it. But, 747 00:25:09,994 --> 00:25:11,355 yeah, we're gonna make it so it's easier 748 00:25:11,355 --> 00:25:13,195 to build that for, you know, new people. 749 00:25:13,195 --> 00:25:14,394 They're not they're not having to right click 750 00:25:14,394 --> 00:25:16,500 and duplicate and change all these properties. It 751 00:25:16,500 --> 00:25:19,079 it is a pretty deep property structure here. 752 00:25:19,700 --> 00:25:21,220 And we did that for to make it 753 00:25:21,220 --> 00:25:21,720 dynamic, 754 00:25:22,019 --> 00:25:23,779 but we're gonna make come back around. Again, 755 00:25:23,779 --> 00:25:25,380 make it possible, then make it easy. That's 756 00:25:25,380 --> 00:25:27,079 kind of the the goal always. 757 00:25:28,180 --> 00:25:29,640 Awesome. Looks great. 758 00:25:30,265 --> 00:25:32,664 Cool. Well, let's let's move on to, our 759 00:25:32,664 --> 00:25:34,664 next, we have we have three more features 760 00:25:34,664 --> 00:25:36,825 to show out, show off here. The next 761 00:25:36,825 --> 00:25:38,664 one's Alarm Metrics. This is a very simple 762 00:25:38,664 --> 00:25:41,164 one, a small but but mighty feature. 763 00:25:41,625 --> 00:25:42,845 So here, for example, 764 00:25:44,190 --> 00:25:45,710 if I look at my writable, I've got 765 00:25:45,710 --> 00:25:47,569 a couple alarms, this buoy and this integer. 766 00:25:47,869 --> 00:25:49,869 And so if I make this boolean go 767 00:25:49,869 --> 00:25:51,329 true right now, it'd be active. 768 00:25:51,630 --> 00:25:52,029 And, 769 00:25:52,670 --> 00:25:54,269 you know, individually, I can look at the 770 00:25:54,269 --> 00:25:55,404 alarms, see if they're active. I can look 771 00:25:55,404 --> 00:25:57,005 at the alarm status component and see what's 772 00:25:57,005 --> 00:25:58,765 happening. But sometimes you wanna be able to 773 00:25:58,765 --> 00:26:00,765 know if there's any alarms that are active 774 00:26:00,765 --> 00:26:02,765 within a folder and below. And so we've 775 00:26:02,765 --> 00:26:05,644 now added this alarm metrics metadata to every 776 00:26:05,644 --> 00:26:07,805 folder. Every folder can can use it where 777 00:26:07,805 --> 00:26:09,904 I can see if anything inside is active 778 00:26:09,964 --> 00:26:12,299 or what state the alarms are in within 779 00:26:12,539 --> 00:26:14,539 with with that folder and below. Same thing 780 00:26:14,539 --> 00:26:15,759 for a UDT instance, 781 00:26:16,460 --> 00:26:18,539 and again, it could be as as throughout 782 00:26:18,539 --> 00:26:20,619 the entire hierarchy, you can use that and 783 00:26:20,619 --> 00:26:22,400 I can simply just bind, 784 00:26:22,945 --> 00:26:24,945 you know, something on the screen to that 785 00:26:25,105 --> 00:26:26,785 any of these properties. Like, I could bind 786 00:26:26,785 --> 00:26:28,465 the circle to the has active and if 787 00:26:28,465 --> 00:26:30,305 it's active, I can make it red. So 788 00:26:30,305 --> 00:26:32,965 very, very easy. Again, small and mighty feature. 789 00:26:33,105 --> 00:26:35,080 Nobody has to worry about figuring out, you 790 00:26:35,080 --> 00:26:36,680 know, that. We just give you the data 791 00:26:36,680 --> 00:26:38,539 right there in the in the tag, 792 00:26:39,240 --> 00:26:39,740 database 793 00:26:40,519 --> 00:26:42,220 so you can just use it directly. 794 00:26:42,920 --> 00:26:44,920 So for people who have been wanting this 795 00:26:44,920 --> 00:26:46,440 for a while, it's kind of a pain 796 00:26:46,440 --> 00:26:48,119 to do it yourself. So with this, it 797 00:26:48,119 --> 00:26:48,619 just 798 00:26:48,974 --> 00:26:50,494 it just it's right there. Right? You just 799 00:26:50,494 --> 00:26:51,315 can use it. 800 00:26:51,855 --> 00:26:53,535 So that's a small but mighty one. I 801 00:26:53,535 --> 00:26:55,054 always love bringing that in there because it's, 802 00:26:55,054 --> 00:26:56,974 you know, not every improvement is major. Right? 803 00:26:56,974 --> 00:26:58,575 Some of them are little things that really 804 00:26:58,575 --> 00:26:59,634 make a big impact. 805 00:27:00,335 --> 00:27:01,954 The next one is a huge, 806 00:27:02,575 --> 00:27:04,609 a new module that's a really, really powerful 807 00:27:04,609 --> 00:27:06,149 module called Event Streams. 808 00:27:06,450 --> 00:27:07,669 And what I wanna do 809 00:27:08,210 --> 00:27:09,649 is I wanted to take a moment just 810 00:27:09,649 --> 00:27:11,329 to kinda talk about this, and then I'll 811 00:27:11,329 --> 00:27:13,970 show the demo. Event Streams is a way 812 00:27:13,970 --> 00:27:16,710 to move data between different sources and destinations. 813 00:27:17,009 --> 00:27:18,265 And we've always been able to do that 814 00:27:18,265 --> 00:27:19,945 in Ignition, but we've been pretty prescriptive about 815 00:27:19,945 --> 00:27:21,625 it. You know, for example, I wanna take 816 00:27:21,625 --> 00:27:23,705 tag data and write it to MQTT using 817 00:27:23,705 --> 00:27:24,205 Sparkplug 818 00:27:24,585 --> 00:27:26,285 or I wanna log it to a database. 819 00:27:26,424 --> 00:27:27,404 We've had various, 820 00:27:27,865 --> 00:27:29,769 ways you can you can do that and 821 00:27:29,769 --> 00:27:31,369 some people use scripting to go above and 822 00:27:31,369 --> 00:27:33,049 beyond. Well, we didn't want to have people 823 00:27:33,049 --> 00:27:34,329 have to write a lot of code. So 824 00:27:34,329 --> 00:27:35,769 event streams is a way to have a 825 00:27:35,769 --> 00:27:37,690 low code, no code environment to move data 826 00:27:37,690 --> 00:27:40,170 around. And the idea is that you build 827 00:27:40,170 --> 00:27:42,089 these streams, and every stream can have a 828 00:27:42,089 --> 00:27:43,715 source. So I can look for data coming 829 00:27:43,715 --> 00:27:47,075 from a MQTT topic, a Kafka topic. I 830 00:27:47,075 --> 00:27:49,235 look for come from a tag, a message 831 00:27:49,235 --> 00:27:51,634 queuing system, a database. And when that data 832 00:27:51,634 --> 00:27:53,634 comes in, we can then filter it, we 833 00:27:53,634 --> 00:27:55,315 can transform it, we can batch it, and 834 00:27:55,315 --> 00:27:57,160 then we can send it somewhere. And that 835 00:27:57,160 --> 00:27:59,000 could be sending it to another database or 836 00:27:59,000 --> 00:28:00,460 another broker or queue, 837 00:28:00,759 --> 00:28:02,839 or send it to a REST API, whatever 838 00:28:02,839 --> 00:28:04,519 you wanna do. And this is, we're not 839 00:28:04,519 --> 00:28:06,759 being prescriptive at all. You can decide how 840 00:28:06,759 --> 00:28:08,680 you wanna hook up these sources and these 841 00:28:08,680 --> 00:28:09,180 destinations, 842 00:28:10,200 --> 00:28:11,900 through throughout what you're building. 843 00:28:12,295 --> 00:28:14,394 And that's the the power of event streams. 844 00:28:14,615 --> 00:28:16,454 And so let's go over here to our 845 00:28:16,454 --> 00:28:18,454 designer and there's this new area for event 846 00:28:18,454 --> 00:28:20,295 streams. I can break break build a new 847 00:28:20,295 --> 00:28:23,174 stream and let's show Kafka first. So I'm 848 00:28:23,174 --> 00:28:25,340 gonna do Kafka and you see there's different 849 00:28:25,340 --> 00:28:26,880 sources here MQTT, 850 00:28:27,820 --> 00:28:30,160 tags, Kafka, event listeners, 851 00:28:30,460 --> 00:28:30,960 HTTP. 852 00:28:31,340 --> 00:28:33,519 There's multiple different ones. I'm gonna do Kafka 853 00:28:33,820 --> 00:28:35,600 and I'm gonna listen for a particular, 854 00:28:36,220 --> 00:28:38,674 Kafka topic. So I've got actually a a 855 00:28:38,674 --> 00:28:41,474 Kafka connector already, configured. So let me go 856 00:28:41,474 --> 00:28:42,615 over here to my gateway 857 00:28:43,474 --> 00:28:45,174 and log in. I wanna show 858 00:28:45,634 --> 00:28:46,855 under the services, 859 00:28:47,474 --> 00:28:48,535 if I go to connections, 860 00:28:49,490 --> 00:28:51,730 service connectors, there is the ability for you 861 00:28:51,730 --> 00:28:53,490 to create new Kafka connection. We're gonna add 862 00:28:53,490 --> 00:28:55,509 multiple service connectors as we go forward. 863 00:28:55,809 --> 00:28:57,570 So I'm already connected to a local, 864 00:28:58,049 --> 00:29:00,130 broker, and with that I can go and 865 00:29:00,130 --> 00:29:01,650 listen for things to change. So I'm gonna 866 00:29:01,650 --> 00:29:04,264 listen for ignition messages to come in. I'm 867 00:29:04,264 --> 00:29:05,644 gonna call this one ignition 868 00:29:06,024 --> 00:29:06,524 group, 869 00:29:06,984 --> 00:29:07,484 30. 870 00:29:08,024 --> 00:29:08,524 And, 871 00:29:08,904 --> 00:29:10,744 when that data comes in, it's gonna be 872 00:29:10,744 --> 00:29:13,224 a JSON object. I could filter it to 873 00:29:13,224 --> 00:29:14,505 get rid of certain things if I didn't 874 00:29:14,505 --> 00:29:16,744 want the message. I can transform it, manipulate 875 00:29:16,744 --> 00:29:18,345 that message. I can buffer it to make 876 00:29:18,345 --> 00:29:20,069 sure it gets somewhere. And then, of course, 877 00:29:20,069 --> 00:29:22,250 we can handle it. Handling is most important 878 00:29:22,309 --> 00:29:23,669 where I can send it somewhere. Let's say 879 00:29:23,669 --> 00:29:25,049 I wanna log this to a database. 880 00:29:25,429 --> 00:29:28,069 I can go insert it into a table 881 00:29:28,069 --> 00:29:28,569 called 882 00:29:29,109 --> 00:29:30,730 let's go down here to Kafka 883 00:29:31,109 --> 00:29:31,609 messages. 884 00:29:32,055 --> 00:29:34,615 I'll store a timestamp into the timestamp field 885 00:29:34,615 --> 00:29:35,755 and we'll do three, 886 00:29:37,414 --> 00:29:38,475 columns, machine, 887 00:29:39,414 --> 00:29:39,914 status, 888 00:29:40,695 --> 00:29:41,914 and temperature. 889 00:29:42,695 --> 00:29:44,555 And these are a string 890 00:29:45,095 --> 00:29:47,515 a string and a float. 891 00:29:47,849 --> 00:29:49,130 And what I'm gonna do is I'm gonna 892 00:29:49,130 --> 00:29:51,849 grab data from the the payload. So the 893 00:29:51,849 --> 00:29:53,929 first is event dot data dot machine. That's 894 00:29:53,929 --> 00:29:57,049 the machine part of that JSON message. The 895 00:29:57,049 --> 00:29:59,529 second one is a a status part of 896 00:29:59,529 --> 00:30:01,289 the message, and the last one is a 897 00:30:01,289 --> 00:30:03,585 temperature. And this is a this is a 898 00:30:03,904 --> 00:30:06,144 expression ignition, and you could do really whatever 899 00:30:06,144 --> 00:30:07,684 you want. Combine things together, 900 00:30:08,065 --> 00:30:10,464 use our expression functions, all that good stuff. 901 00:30:10,464 --> 00:30:12,404 So now I'm gonna insert this record, 902 00:30:12,865 --> 00:30:15,184 into Kafka from that Kafka message. So go 903 00:30:15,184 --> 00:30:17,105 ahead and save it. You can see that 904 00:30:17,105 --> 00:30:19,740 nothing's coming in yet. No. Nothing's there. I'm 905 00:30:19,740 --> 00:30:22,779 gonna go run a outside program here just 906 00:30:22,779 --> 00:30:24,299 just to be able to send a a 907 00:30:24,299 --> 00:30:26,059 record. So it's gonna say this should send 908 00:30:26,140 --> 00:30:27,119 here's the payload, 909 00:30:27,660 --> 00:30:30,539 two Ignition messages. It did. Here's the one 910 00:30:30,539 --> 00:30:32,400 that came in. It went to the database. 911 00:30:32,644 --> 00:30:33,764 And in fact, if I go to my 912 00:30:33,764 --> 00:30:35,704 database, look at Kafka messages, 913 00:30:36,164 --> 00:30:38,804 boom. There's that record. Quite simple, easy for 914 00:30:38,804 --> 00:30:39,704 that to happen. 915 00:30:40,325 --> 00:30:42,244 And what's great is I can send more 916 00:30:42,244 --> 00:30:44,004 than that more than just that one place. 917 00:30:44,004 --> 00:30:45,444 Let's say I also wanted to log it 918 00:30:45,444 --> 00:30:46,744 to m or send it to MQTT. 919 00:30:47,400 --> 00:30:49,320 Let's send it out there. Let's go to 920 00:30:49,320 --> 00:30:52,039 MQTT Explorer. I'll connect here. So we're gonna 921 00:30:52,039 --> 00:30:54,200 go to database and MQTT at the same 922 00:30:54,200 --> 00:30:56,299 time. So let's go and 923 00:30:56,680 --> 00:30:58,460 send another record. Boom. 924 00:30:58,840 --> 00:31:01,340 Now here's here's event streams. There's that MQTT 925 00:31:01,400 --> 00:31:03,505 stream, another record that came through. And that 926 00:31:03,505 --> 00:31:05,825 went to the database as well. So we 927 00:31:05,825 --> 00:31:07,424 can go and do as much as we 928 00:31:07,424 --> 00:31:09,345 want and we can have lots of sources, 929 00:31:09,345 --> 00:31:11,345 lots of handlers, lots of different places that 930 00:31:11,345 --> 00:31:13,744 we can hook this data up. It's quite 931 00:31:13,744 --> 00:31:16,565 powerful. Last thing I'll show real quick is 932 00:31:17,289 --> 00:31:19,210 let's do a load. Let's send a 100,000 933 00:31:19,210 --> 00:31:22,250 records. Let's watch this thing load up, because 934 00:31:22,250 --> 00:31:24,109 this is where the buffering and all that 935 00:31:24,170 --> 00:31:26,009 importance comes in so that we don't lose 936 00:31:26,009 --> 00:31:28,329 that data, that it gets there. And you're 937 00:31:28,329 --> 00:31:31,049 gonna see that we're handling now we're about 938 00:31:31,049 --> 00:31:33,825 50,000 records we're handling. And in just a 939 00:31:33,825 --> 00:31:36,144 few seconds, we're gonna have all 100,000 940 00:31:36,144 --> 00:31:39,184 records from Kafka going through falling to Kafka, 941 00:31:39,184 --> 00:31:40,944 being logged to a database, and sent to 942 00:31:40,944 --> 00:31:44,224 the MQTT server just like that. And boom, 943 00:31:44,224 --> 00:31:46,384 there we go. We've now handled all of 944 00:31:46,384 --> 00:31:48,740 that data. And so it's a really great 945 00:31:48,740 --> 00:31:50,200 way, really high performing, 946 00:31:50,740 --> 00:31:53,140 easy way to move data around. Nobody's writing 947 00:31:53,140 --> 00:31:54,980 code. We're gonna be able to do this, 948 00:31:55,380 --> 00:31:57,619 by just simply setting up these different streams, 949 00:31:57,619 --> 00:31:59,380 and there's all sorts of different ways that 950 00:31:59,380 --> 00:31:59,954 we can, 951 00:32:00,355 --> 00:32:01,974 different ways that we can do this. 952 00:32:02,674 --> 00:32:04,034 So I'm not gonna show every one of 953 00:32:04,034 --> 00:32:04,694 them, but 954 00:32:04,994 --> 00:32:06,835 kinda get the sense of of just the 955 00:32:06,835 --> 00:32:08,994 the power that could be there. And what's 956 00:32:08,994 --> 00:32:11,015 really cool is that this is also extensible 957 00:32:11,075 --> 00:32:13,414 through the SDK. You can add additional sources. 958 00:32:13,474 --> 00:32:14,855 You can add additional handlers 959 00:32:15,420 --> 00:32:17,500 and as a module, and we, as induct 960 00:32:17,580 --> 00:32:19,340 Adaptive Automation, are planning to add a lot 961 00:32:19,340 --> 00:32:19,840 more. 962 00:32:20,380 --> 00:32:22,380 We we wanna go to Google PubSub and 963 00:32:22,380 --> 00:32:25,259 AWS services, Azure services, all sorts of different 964 00:32:25,259 --> 00:32:27,500 places that we can use that will really 965 00:32:27,500 --> 00:32:29,200 make this even more and more powerful. 966 00:32:30,015 --> 00:32:31,615 Alright. As much as I'd love to show 967 00:32:31,615 --> 00:32:33,295 every feature off of of the event streams, 968 00:32:33,295 --> 00:32:35,535 I could I can do a whole session 969 00:32:35,535 --> 00:32:37,215 just on that module, but it's a really 970 00:32:37,215 --> 00:32:38,674 powerful one for sure. 971 00:32:39,134 --> 00:32:40,654 Let's move on to, 972 00:32:41,055 --> 00:32:44,109 this next one, which is, probably my favorite. 973 00:32:44,109 --> 00:32:45,950 I think this is the the crowd favorite 974 00:32:45,950 --> 00:32:48,450 of Ignition 8.3. Arguably the most important, 975 00:32:49,070 --> 00:32:52,269 feature of this entire release is the version 976 00:32:52,269 --> 00:32:54,990 control, the DevOps version control, REST API, and 977 00:32:54,990 --> 00:32:57,695 deployment modes. So let's go back, 978 00:32:58,654 --> 00:33:00,575 and first and foremost, let's let's kinda talk 979 00:33:00,575 --> 00:33:01,394 about the 980 00:33:01,855 --> 00:33:02,914 the source control. 981 00:33:03,375 --> 00:33:06,095 So I'm gonna bring this over. All of 982 00:33:06,095 --> 00:33:08,735 our configuration in Ignition 8.3 is stored in 983 00:33:08,735 --> 00:33:11,159 the file system as JSON files. There is 984 00:33:11,159 --> 00:33:13,659 no more internal databases. It is all 985 00:33:13,960 --> 00:33:16,039 readable easy JSON files. If I go to 986 00:33:16,039 --> 00:33:16,539 config 987 00:33:16,839 --> 00:33:18,299 and I go to my resources, 988 00:33:18,759 --> 00:33:21,019 my core, if I go down to Ignition, 989 00:33:22,039 --> 00:33:25,224 here's my database connection. There's that local database 990 00:33:25,224 --> 00:33:27,964 connection as JSON. Just simple. It's right there, 991 00:33:28,424 --> 00:33:30,184 on that server, easy to see. If I 992 00:33:30,184 --> 00:33:32,525 look at my tags, so here's my realistic 993 00:33:32,585 --> 00:33:34,365 tags, just done right there. 994 00:33:34,904 --> 00:33:36,605 You know, I see them all all these 995 00:33:36,744 --> 00:33:39,244 all these the configuration. I can make modifications 996 00:33:39,544 --> 00:33:41,570 to that and have that being read into 997 00:33:41,570 --> 00:33:44,710 Ignition, but more importantly, I can have this 998 00:33:44,850 --> 00:33:46,150 committed to a repository. 999 00:33:46,769 --> 00:33:48,369 And that's what I wanna show here real 1000 00:33:48,369 --> 00:33:49,090 real briefly. 1001 00:33:49,650 --> 00:33:51,269 In that I've got a GitHub, 1002 00:33:51,970 --> 00:33:55,505 repository set up, and I want to make 1003 00:33:55,565 --> 00:33:56,944 that my data directory, 1004 00:33:57,404 --> 00:33:58,384 that. So 1005 00:33:59,005 --> 00:34:00,065 let's go over here 1006 00:34:00,365 --> 00:34:02,544 and let's get into our data directory 1007 00:34:03,005 --> 00:34:04,924 and, I'm just gonna run a couple of 1008 00:34:04,924 --> 00:34:06,944 the simple commands. So git init 1009 00:34:08,099 --> 00:34:09,640 and then git commit. 1010 00:34:11,219 --> 00:34:13,480 So we'll commit our first one. 1011 00:34:15,380 --> 00:34:17,000 So we're gonna do that. And then, 1012 00:34:17,380 --> 00:34:18,900 last thing I'll do is I'll put it 1013 00:34:18,900 --> 00:34:19,800 in that directory. 1014 00:34:23,565 --> 00:34:24,625 Alright. So, 1015 00:34:25,724 --> 00:34:27,805 if I go add this I I'll use 1016 00:34:27,805 --> 00:34:29,485 a tool now so we can actually see 1017 00:34:29,485 --> 00:34:29,985 this. 1018 00:34:32,364 --> 00:34:34,050 Let's go into here. Perfect. 1019 00:34:35,329 --> 00:34:37,329 I'm gonna bring this over. And so here 1020 00:34:37,329 --> 00:34:37,989 we go. 1021 00:34:38,369 --> 00:34:39,809 So I could see all this stuff. Here's 1022 00:34:39,809 --> 00:34:41,650 GitHub Desktop. I could see all these changes. 1023 00:34:41,650 --> 00:34:44,070 I can say, you know, here's my initial 1024 00:34:45,010 --> 00:34:47,489 commit, and I can commit all these, and 1025 00:34:47,489 --> 00:34:49,424 I can push those to that repository 1026 00:34:49,724 --> 00:34:51,105 and have everything available. 1027 00:34:51,484 --> 00:34:51,724 And, 1028 00:34:52,525 --> 00:34:53,964 I'm not gonna show all the different backs 1029 00:34:53,964 --> 00:34:55,484 and forths, but if every time I make 1030 00:34:55,484 --> 00:34:57,724 a change, I can see those changes that 1031 00:34:57,724 --> 00:34:59,565 are happening and that will get brought into 1032 00:34:59,565 --> 00:35:00,224 that repository 1033 00:35:00,630 --> 00:35:02,549 and that we can use makes it really, 1034 00:35:02,549 --> 00:35:04,250 really easy to work with, 1035 00:35:04,869 --> 00:35:06,469 and to be able to see and track 1036 00:35:06,469 --> 00:35:08,089 those changes over time, 1037 00:35:08,789 --> 00:35:11,269 and have that full version control. The other 1038 00:35:11,269 --> 00:35:12,869 part that's really powerful is that if I 1039 00:35:12,869 --> 00:35:15,349 did want to change something let's open this 1040 00:35:15,349 --> 00:35:17,315 in I'm I'm gonna open this in Sublime. 1041 00:35:18,175 --> 00:35:20,734 Let's say that I I wanna set this 1042 00:35:20,734 --> 00:35:21,135 last, 1043 00:35:21,775 --> 00:35:23,934 this this tag realistic seven. I want this 1044 00:35:23,934 --> 00:35:24,994 to be called temperature. 1045 00:35:25,534 --> 00:35:27,855 Boom. I save that. Now if I pull 1046 00:35:27,855 --> 00:35:30,530 from repository, it came back, I can then 1047 00:35:30,530 --> 00:35:31,269 go over 1048 00:35:31,730 --> 00:35:32,230 to, 1049 00:35:33,409 --> 00:35:35,670 my system. I can scan for that change, 1050 00:35:35,889 --> 00:35:38,230 and you can see that in my realistic 1051 00:35:38,289 --> 00:35:38,789 folder, 1052 00:35:39,250 --> 00:35:39,989 it is 1053 00:35:40,369 --> 00:35:43,190 now from six or seven to temperature. 1054 00:35:43,594 --> 00:35:45,355 So very easy for us to kinda do 1055 00:35:45,355 --> 00:35:47,674 that that full version control with the the 1056 00:35:47,674 --> 00:35:49,594 files and the file system. So let me 1057 00:35:49,594 --> 00:35:51,914 ask you about this. It seems like so 1058 00:35:51,914 --> 00:35:54,974 now that Ignition is a 100% JSON, 1059 00:35:55,355 --> 00:35:57,434 everything all your all your configuration is stored 1060 00:35:57,434 --> 00:35:58,255 in that format. 1061 00:35:59,130 --> 00:36:01,049 It sounds like you could use you can 1062 00:36:01,049 --> 00:36:03,130 use GitHub like you just showed, but could 1063 00:36:03,130 --> 00:36:05,849 you use other DevOps packages as well? I 1064 00:36:05,849 --> 00:36:08,730 imagine that go ahead. Yeah. For sure. You 1065 00:36:08,730 --> 00:36:10,569 can use whatever you like. I mean, some 1066 00:36:10,569 --> 00:36:12,224 people are gonna go to GitHub. Some people 1067 00:36:12,224 --> 00:36:14,345 might have GitLab which is like the open 1068 00:36:14,345 --> 00:36:16,466 source version on prem or you can use 1069 00:36:16,466 --> 00:36:19,117 any real any system that you want. And 1070 00:36:19,117 --> 00:36:21,237 or of course, maybe you're not storing repo. 1071 00:36:21,237 --> 00:36:23,358 You're you're you're just bringing in files and 1072 00:36:23,358 --> 00:36:25,479 managing it manually. I mean, the idea is 1073 00:36:25,479 --> 00:36:27,599 that we want the config to be just 1074 00:36:27,840 --> 00:36:30,000 available in a easy way. Of course, it's 1075 00:36:30,000 --> 00:36:31,440 on the Ignition server. Right? You have to 1076 00:36:31,440 --> 00:36:33,460 access the server, but that you could, 1077 00:36:34,000 --> 00:36:36,000 you know, it's easy to modify or when 1078 00:36:36,000 --> 00:36:37,760 I deploy a new system, I could deploy 1079 00:36:37,760 --> 00:36:38,500 it with configuration 1080 00:36:38,800 --> 00:36:40,655 already there. We're not trying to hide any 1081 00:36:40,655 --> 00:36:42,414 of that inside of a binary file. Right? 1082 00:36:42,414 --> 00:36:43,855 We want it to be available and easy 1083 00:36:43,855 --> 00:36:44,594 to track. 1084 00:36:45,215 --> 00:36:47,215 Yeah. No. That's amazing. And especially if you 1085 00:36:47,215 --> 00:36:48,755 have to do wholesale changes, 1086 00:36:49,295 --> 00:36:50,735 it might be easier to do it this 1087 00:36:50,735 --> 00:36:52,655 way than to do it in the editor. 1088 00:36:52,655 --> 00:36:54,414 Not that I'm an expert on using your 1089 00:36:54,414 --> 00:36:57,210 your software, but I can definitely see from 1090 00:36:57,590 --> 00:37:00,230 other products I've used that just, you know, 1091 00:37:00,230 --> 00:37:02,090 do a notepad plus plus sometimes 1092 00:37:02,390 --> 00:37:04,309 is the easiest way to make bulk changes. 1093 00:37:04,309 --> 00:37:06,710 So that's very interesting. Yes. So you guys 1094 00:37:06,710 --> 00:37:08,309 have worked with GitHub. Do do you guys 1095 00:37:08,309 --> 00:37:10,230 use GitHub yourself, or do you use another 1096 00:37:10,230 --> 00:37:10,695 package? 1097 00:37:12,375 --> 00:37:14,454 We so we use that for we use 1098 00:37:14,454 --> 00:37:16,855 GitHub for, you know, our source control for, 1099 00:37:16,855 --> 00:37:18,535 of course, Ignition, and then our we have 1100 00:37:18,535 --> 00:37:20,695 teams inside of Inductive that are managing our 1101 00:37:20,695 --> 00:37:23,219 CRM that's written Ignition and other tools. And 1102 00:37:23,219 --> 00:37:25,380 we use, GitHub for to manage all the 1103 00:37:25,380 --> 00:37:27,460 source, of that now. We've converted all the 1104 00:37:27,460 --> 00:37:28,900 a three because we can now do every 1105 00:37:28,900 --> 00:37:31,000 part of the configuration that way, which is 1106 00:37:31,059 --> 00:37:32,900 which is really great because because then we 1107 00:37:32,900 --> 00:37:35,780 can have separated out separate development environments or 1108 00:37:35,780 --> 00:37:37,239 we can then have our own branches 1109 00:37:37,755 --> 00:37:38,154 for, 1110 00:37:38,554 --> 00:37:40,875 developers. We can then make PRs to, you 1111 00:37:40,875 --> 00:37:43,275 know, to bring into production. We can use 1112 00:37:43,275 --> 00:37:45,514 that full dev you know, the deployment or, 1113 00:37:45,514 --> 00:37:46,894 you know, development methodology, 1114 00:37:47,514 --> 00:37:48,954 and we can use it now with Ignition, 1115 00:37:48,954 --> 00:37:51,355 which is great. That's amazing. And I interrupted 1116 00:37:51,355 --> 00:37:52,989 you. What did you wanna talk about? There 1117 00:37:52,989 --> 00:37:53,650 was something 1118 00:37:54,110 --> 00:37:55,869 else. Oh, no. I think we're that I 1119 00:37:55,869 --> 00:37:57,489 was that was the main thing, 1120 00:37:57,950 --> 00:38:00,030 I already had my folder set up as 1121 00:38:00,030 --> 00:38:00,530 a, 1122 00:38:01,309 --> 00:38:02,989 for that repo and I cleared out the 1123 00:38:02,989 --> 00:38:04,670 repo. So didn't I didn't push it in 1124 00:38:04,670 --> 00:38:06,135 there because I messed it up. But, 1125 00:38:06,614 --> 00:38:08,474 it's really easy with this config, 1126 00:38:08,934 --> 00:38:11,014 to have all that as JSON files and, 1127 00:38:11,014 --> 00:38:12,875 you know, and it's it's it's 1128 00:38:13,255 --> 00:38:16,315 it's all visible. Right? That's right there. So 1129 00:38:16,614 --> 00:38:18,375 that leads us to the next part, which 1130 00:38:18,375 --> 00:38:18,869 is, 1131 00:38:19,430 --> 00:38:20,950 to be able to go one step further, 1132 00:38:20,950 --> 00:38:23,050 which is how can I access that configuration, 1133 00:38:23,750 --> 00:38:26,010 you know, through through through third party tools? 1134 00:38:26,309 --> 00:38:27,990 And that's where the REST API comes into 1135 00:38:27,990 --> 00:38:29,910 play. And what I wanna mention is that 1136 00:38:29,910 --> 00:38:32,565 the entirety of this Web UI, everything you 1137 00:38:32,565 --> 00:38:34,664 see in this Web UI is accessible 1138 00:38:35,045 --> 00:38:36,885 in the Rest API. It's now built into 1139 00:38:36,885 --> 00:38:39,224 Ignition. So in fact, we built the new, 1140 00:38:39,684 --> 00:38:41,625 Web UI against that API. 1141 00:38:42,085 --> 00:38:44,400 So any any button that's in here, you 1142 00:38:44,400 --> 00:38:46,339 could do a third party tool like Ansible 1143 00:38:46,400 --> 00:38:48,800 or in your perspective application or whatever you 1144 00:38:48,800 --> 00:38:50,960 want. And so the way you you use 1145 00:38:50,960 --> 00:38:51,460 it 1146 00:38:51,839 --> 00:38:53,440 is you go down to the platform, you 1147 00:38:53,440 --> 00:38:54,739 add an API key. 1148 00:38:55,039 --> 00:38:56,739 I'm gonna call this token, 1149 00:38:57,644 --> 00:38:59,324 and I don't have a security right now. 1150 00:38:59,324 --> 00:39:01,164 So I'm gonna use my read write, 1151 00:39:01,485 --> 00:39:04,364 some privileges for that. I'll create it. Here's 1152 00:39:04,364 --> 00:39:05,025 my token. 1153 00:39:05,965 --> 00:39:07,644 I've got it now for use. I'm gonna 1154 00:39:07,644 --> 00:39:09,425 use you can use Postman or Retool. 1155 00:39:09,769 --> 00:39:11,929 I'm gonna use this tool called Insomnia. I'm 1156 00:39:11,929 --> 00:39:13,469 gonna put my token in here. 1157 00:39:13,849 --> 00:39:16,109 And and so now I could call, 1158 00:39:16,730 --> 00:39:19,289 you know, endpoints on there. Now before I 1159 00:39:19,289 --> 00:39:20,569 I call one, how do I know what 1160 00:39:20,569 --> 00:39:22,889 endpoints are there? Well, you go to local 1161 00:39:22,889 --> 00:39:24,644 host or you go to your a your 1162 00:39:24,644 --> 00:39:26,565 server and you go slash open API and 1163 00:39:26,565 --> 00:39:28,405 we give you we self document all the 1164 00:39:28,405 --> 00:39:30,565 different APIs that are part of Ignition. So 1165 00:39:30,565 --> 00:39:32,405 by looking at, like, devices and I wanted 1166 00:39:32,405 --> 00:39:33,945 to list out all of devices, 1167 00:39:34,244 --> 00:39:36,085 here's the endpoint that's there and how to 1168 00:39:36,085 --> 00:39:37,364 use it. And you can see there's a 1169 00:39:37,364 --> 00:39:38,985 whole slew of them by modules, 1170 00:39:39,659 --> 00:39:40,400 over here. 1171 00:39:41,019 --> 00:39:42,699 So if I go back in, I call 1172 00:39:42,699 --> 00:39:44,219 this you know, I wanna list all my 1173 00:39:44,219 --> 00:39:44,960 device connections. 1174 00:39:45,260 --> 00:39:46,799 There I go. There's my dairy 1175 00:39:47,179 --> 00:39:48,780 and, I have two of them and there's 1176 00:39:48,780 --> 00:39:50,400 my other one that's just my simulator. 1177 00:39:50,699 --> 00:39:52,699 So if I wanna get my device database 1178 00:39:52,699 --> 00:39:56,385 connections, there's my local MariaDB connection that's there. 1179 00:39:56,385 --> 00:39:57,905 And I can see all of the the 1180 00:39:57,905 --> 00:40:01,744 stat status, all the the the, metrics that 1181 00:40:01,744 --> 00:40:02,325 are there. 1182 00:40:03,345 --> 00:40:04,864 I can see all of the health checks. 1183 00:40:04,864 --> 00:40:07,110 Everything that's as part of this comes back 1184 00:40:07,190 --> 00:40:08,010 on this API. 1185 00:40:08,470 --> 00:40:10,550 Not only can you do that, you can 1186 00:40:10,550 --> 00:40:12,630 you can do actions, if you have the 1187 00:40:12,630 --> 00:40:13,450 right privileges. 1188 00:40:14,070 --> 00:40:15,910 And so I'm gonna add an OPC UA 1189 00:40:15,910 --> 00:40:17,530 device. Me, I'm gonna add a new PLC 1190 00:40:17,670 --> 00:40:19,690 to Ignition. So let's go over your connections, 1191 00:40:20,070 --> 00:40:21,930 devices. I got two right now. 1192 00:40:22,309 --> 00:40:23,085 Let's go whoops. 1193 00:40:23,644 --> 00:40:25,505 Let's go add the, 1194 00:40:26,204 --> 00:40:28,525 Modbus. So here I'm adding a Modbus connection. 1195 00:40:28,525 --> 00:40:31,405 Here's the config for it, and, boom. Let's 1196 00:40:31,405 --> 00:40:32,385 send that in. 1197 00:40:32,925 --> 00:40:34,925 And look, there it is, ready to go. 1198 00:40:34,925 --> 00:40:36,819 And it's gonna try to connect, but I 1199 00:40:36,819 --> 00:40:39,539 can now easily work with that this config. 1200 00:40:39,539 --> 00:40:41,059 In fact, we're gonna make a playbook for 1201 00:40:41,059 --> 00:40:43,139 Ansible that people can use for all the 1202 00:40:43,139 --> 00:40:45,000 different actions that are part of Ignition. 1203 00:40:46,019 --> 00:40:48,179 It really allows you to extend that even 1204 00:40:48,179 --> 00:40:48,679 further. 1205 00:40:49,434 --> 00:40:51,114 That's pretty amazing. But I do have to 1206 00:40:51,114 --> 00:40:53,594 ask, like, when we're building a skater HMI 1207 00:40:53,594 --> 00:40:55,914 system, a lot of times we'll have passwords 1208 00:40:55,914 --> 00:40:57,914 that we have to put in somewhere. That's 1209 00:40:57,914 --> 00:41:00,074 not in plain text, right, in the JSON 1210 00:41:00,074 --> 00:41:02,234 file, is it? No. So that's a good 1211 00:41:02,234 --> 00:41:04,230 question. And this is a feature that I 1212 00:41:04,309 --> 00:41:06,949 I wasn't gonna show off necessarily, but it's 1213 00:41:06,949 --> 00:41:07,929 an important one. 1214 00:41:08,469 --> 00:41:10,250 So if I look at a database connection, 1215 00:41:10,309 --> 00:41:11,289 we are storing, 1216 00:41:11,829 --> 00:41:14,230 passwords in here. Right? And that password is 1217 00:41:14,230 --> 00:41:14,730 embedded. 1218 00:41:15,510 --> 00:41:17,510 So, you know, if I look at the 1219 00:41:17,510 --> 00:41:19,914 file let's go and look at that database 1220 00:41:19,914 --> 00:41:22,474 connection. There's my local. You can see that 1221 00:41:22,474 --> 00:41:23,135 the password 1222 00:41:23,835 --> 00:41:26,734 is embedded, but it's it's encrypted. Right? So 1223 00:41:26,875 --> 00:41:29,434 all that they're not seeing plain text. But 1224 00:41:29,434 --> 00:41:30,734 that in lies the problem. 1225 00:41:31,114 --> 00:41:33,194 All IT departments don't want that, even the 1226 00:41:33,194 --> 00:41:34,980 encrypted password, to be in the config. Meaning, 1227 00:41:34,980 --> 00:41:36,739 if I take a backup of Ignition and 1228 00:41:36,739 --> 00:41:37,880 I give it to you, 1229 00:41:38,179 --> 00:41:40,820 you have my encrypted password. Which means, if 1230 00:41:40,820 --> 00:41:41,780 I were to be able to be on 1231 00:41:41,780 --> 00:41:43,860 your network and connected your systems, I can 1232 00:41:43,860 --> 00:41:45,780 run my Ignition with your backup and connect 1233 00:41:45,780 --> 00:41:48,074 to your systems. Right? And which is potentially 1234 00:41:48,135 --> 00:41:50,454 a bad thing. Yeah. So what where are 1235 00:41:50,454 --> 00:41:52,295 you going now is we have the ability 1236 00:41:52,295 --> 00:41:55,094 to use, this is referenced, to use secrets 1237 00:41:55,094 --> 00:41:57,355 providers, external external secrets providers. 1238 00:41:58,215 --> 00:41:59,195 And that is 1239 00:42:00,000 --> 00:42:01,760 here where I can add one to things 1240 00:42:01,760 --> 00:42:03,699 like HashiCorp Vault or Bitwarden 1241 00:42:04,000 --> 00:42:06,159 or other tools are out there and I 1242 00:42:06,159 --> 00:42:08,800 can have them manage the passwords and certificates 1243 00:42:08,800 --> 00:42:10,640 encryption keys and I can pull it into 1244 00:42:10,640 --> 00:42:11,140 Ignition, 1245 00:42:11,519 --> 00:42:12,960 if I need to. So if I create 1246 00:42:13,039 --> 00:42:14,579 I'm gonna use one internal here, 1247 00:42:15,255 --> 00:42:16,154 called internal. 1248 00:42:17,014 --> 00:42:19,494 And, you know, the idea if I add 1249 00:42:19,494 --> 00:42:21,835 a secret to this, let's call it database 1250 00:42:22,454 --> 00:42:22,855 and, 1251 00:42:23,414 --> 00:42:24,394 give it a password, 1252 00:42:25,174 --> 00:42:25,994 that instead 1253 00:42:26,775 --> 00:42:27,275 of 1254 00:42:27,734 --> 00:42:30,074 embedding it let's go to my database connection, 1255 00:42:30,694 --> 00:42:31,194 edit, 1256 00:42:31,789 --> 00:42:33,630 we're gonna reference. We're gonna reference in that 1257 00:42:33,630 --> 00:42:36,429 internal provider and that database key. And so 1258 00:42:36,429 --> 00:42:37,730 if I look at the config, 1259 00:42:38,109 --> 00:42:40,429 the config is quite simple. Right? Where is 1260 00:42:40,429 --> 00:42:41,730 it where is it coming from? 1261 00:42:42,030 --> 00:42:44,190 And, but it acts exactly the same way. 1262 00:42:44,190 --> 00:42:46,905 So that's an important distinction, something we're always 1263 00:42:46,905 --> 00:42:49,385 doing to improve the security posture of Ignition, 1264 00:42:49,385 --> 00:42:51,625 doing more and more. But these external secrets 1265 00:42:51,625 --> 00:42:53,965 providers are becoming commonplace, and IT departments 1266 00:42:54,265 --> 00:42:56,585 want every system to go against them. And, 1267 00:42:56,585 --> 00:42:58,364 of course, now Ignition can play, 1268 00:42:58,839 --> 00:43:00,920 play in that game and that whole system 1269 00:43:00,920 --> 00:43:02,599 is is is part of the SDK so 1270 00:43:02,599 --> 00:43:04,940 you can extend that with other custom ones. 1271 00:43:05,000 --> 00:43:06,760 There's you know, we always try to make 1272 00:43:06,760 --> 00:43:08,519 it if we don't we don't directly do 1273 00:43:08,519 --> 00:43:10,539 it, make it possible with that SDK. 1274 00:43:11,480 --> 00:43:11,980 Nice. 1275 00:43:13,074 --> 00:43:14,994 Alright. So I know we're going a little 1276 00:43:14,994 --> 00:43:16,914 long, but I'm gonna add one quick last 1277 00:43:16,914 --> 00:43:18,695 one, which is our deployment modes. 1278 00:43:18,994 --> 00:43:19,315 And, 1279 00:43:20,035 --> 00:43:22,055 this is, an important feature 1280 00:43:22,515 --> 00:43:23,015 for, 1281 00:43:23,954 --> 00:43:25,574 you know, be able to have an environmental 1282 00:43:25,795 --> 00:43:26,934 separation. So, 1283 00:43:27,235 --> 00:43:28,375 let me go over here. 1284 00:43:28,859 --> 00:43:31,019 Where people wanna have development, staging, and production. 1285 00:43:31,019 --> 00:43:33,579 And there's differences in these environments. For example, 1286 00:43:33,579 --> 00:43:36,000 a development system might have a a simulator 1287 00:43:36,059 --> 00:43:36,559 PLC, 1288 00:43:36,940 --> 00:43:38,940 whereas staging might have the test PLC, and 1289 00:43:38,940 --> 00:43:40,539 of course, you need production. You might have 1290 00:43:40,539 --> 00:43:43,105 different databases in staging and production. There's these 1291 00:43:43,105 --> 00:43:45,125 differences, these nuances in the configuration. 1292 00:43:45,825 --> 00:43:47,985 And what we've done is make that allow 1293 00:43:47,985 --> 00:43:50,385 you to define those nuances right directly in 1294 00:43:50,385 --> 00:43:52,385 Ignition. So I can add a mode, for 1295 00:43:52,385 --> 00:43:53,844 example, I can add development 1296 00:43:54,864 --> 00:43:55,844 as a mode, 1297 00:43:56,380 --> 00:43:58,219 and I can then go into my config. 1298 00:43:58,219 --> 00:43:59,920 Let's say I go to my database connection. 1299 00:44:00,059 --> 00:44:01,599 I can provide an override 1300 00:44:02,300 --> 00:44:03,039 for development. 1301 00:44:03,820 --> 00:44:06,480 And, if I look at that, it's inheriting 1302 00:44:06,539 --> 00:44:08,300 the core, and I can actually then make 1303 00:44:08,300 --> 00:44:09,039 a modification, 1304 00:44:09,755 --> 00:44:11,355 say, you know what? This is actually gonna 1305 00:44:11,355 --> 00:44:13,114 be a different IP address or a different 1306 00:44:13,114 --> 00:44:16,094 database or whatever it is for our development 1307 00:44:16,315 --> 00:44:16,815 environment. 1308 00:44:17,195 --> 00:44:19,434 And right now, I'm running the core, but 1309 00:44:19,434 --> 00:44:21,195 we can we have a flag you specify 1310 00:44:21,195 --> 00:44:22,954 in Ignition. When you when you install Ignition, 1311 00:44:22,954 --> 00:44:24,300 you can say, I want that to be 1312 00:44:24,300 --> 00:44:26,140 a developed environment. In which case, when it 1313 00:44:26,140 --> 00:44:27,440 starts up, it'll pull 1314 00:44:27,739 --> 00:44:30,559 all the configuration for that branch, that development, 1315 00:44:31,260 --> 00:44:33,340 branch, whereas my production system would pull the 1316 00:44:33,340 --> 00:44:35,420 production. So now I can actually have all 1317 00:44:35,420 --> 00:44:36,000 my config 1318 00:44:36,539 --> 00:44:37,440 in our repository 1319 00:44:38,140 --> 00:44:38,640 all 1320 00:44:39,105 --> 00:44:40,005 combined together, 1321 00:44:40,545 --> 00:44:42,304 but it's safe to move from one environment 1322 00:44:42,304 --> 00:44:44,224 to the x because each environment is gonna 1323 00:44:44,224 --> 00:44:45,364 pull its configuration 1324 00:44:45,744 --> 00:44:47,744 based on the mode that it's it's defined 1325 00:44:47,744 --> 00:44:50,144 in. And this is if you don't have 1326 00:44:50,144 --> 00:44:52,385 this, you gotta be careful about what you 1327 00:44:52,385 --> 00:44:54,385 commit or what you bring from one environment 1328 00:44:54,385 --> 00:44:54,840 to the 1329 00:44:55,400 --> 00:44:56,059 With this, 1330 00:44:56,360 --> 00:44:58,119 it's all safe because we have been able 1331 00:44:58,119 --> 00:45:00,599 to give you that separation for all the 1332 00:45:00,599 --> 00:45:04,119 config that you have. And, again, huge, huge 1333 00:45:04,680 --> 00:45:06,519 I say small. It's not really small, but, 1334 00:45:06,519 --> 00:45:08,380 like, it's very, very mighty because, 1335 00:45:09,035 --> 00:45:11,055 it makes it so much easier to understand 1336 00:45:11,195 --> 00:45:12,815 how the configuration works. 1337 00:45:13,835 --> 00:45:14,335 So 1338 00:45:14,954 --> 00:45:16,735 those are that's the big tour 1339 00:45:17,114 --> 00:45:17,515 of, 1340 00:45:17,994 --> 00:45:19,515 of Ignition 8.3. 1341 00:45:19,515 --> 00:45:21,835 There's many other features that are are in 1342 00:45:21,835 --> 00:45:22,320 there, 1343 00:45:22,719 --> 00:45:23,920 and you can say take a look at 1344 00:45:23,920 --> 00:45:25,599 the the change logs and change take a 1345 00:45:25,599 --> 00:45:27,599 look at the documentation. There's lots of videos, 1346 00:45:27,599 --> 00:45:28,960 lots of good stuff out there to kind 1347 00:45:28,960 --> 00:45:31,599 of see all the different features in action. 1348 00:45:31,599 --> 00:45:32,960 And what we can't wait to do is 1349 00:45:32,960 --> 00:45:34,480 continue to develop on these, and we can't 1350 00:45:34,480 --> 00:45:36,320 wait to see what people do with all 1351 00:45:36,320 --> 00:45:37,539 these amazing features, 1352 00:45:37,965 --> 00:45:39,644 and the types of applications they're they're gonna 1353 00:45:39,644 --> 00:45:41,565 be able to to get to and the, 1354 00:45:41,565 --> 00:45:43,164 you know, the the pain points that they 1355 00:45:43,164 --> 00:45:43,825 can solve, 1356 00:45:44,204 --> 00:45:46,605 with this really. So I'm excited to be 1357 00:45:46,605 --> 00:45:48,125 able to show everybody this, and, you know, 1358 00:45:48,125 --> 00:45:50,045 if anybody has any questions and wants to 1359 00:45:50,045 --> 00:45:52,190 connect me on LinkedIn or just, you know, 1360 00:45:52,190 --> 00:45:54,190 just connect with me, we'd love to, do 1361 00:45:54,190 --> 00:45:55,630 that if you have if you have questions, 1362 00:45:56,190 --> 00:45:58,269 and or you wanna a deeper dive yourself 1363 00:45:58,269 --> 00:45:59,250 into this release. 1364 00:45:59,630 --> 00:46:02,029 So, yeah, that that's it, Sean, from my 1365 00:46:02,029 --> 00:46:02,529 side. 1366 00:46:03,069 --> 00:46:05,150 Well, Travis, I really enjoyed that. You went 1367 00:46:05,150 --> 00:46:06,804 through a lot of stuff in a short 1368 00:46:06,804 --> 00:46:09,204 period of time, and you explained it very 1369 00:46:09,204 --> 00:46:11,364 well. I appreciate you doing that. And, you 1370 00:46:11,364 --> 00:46:13,285 know, explaining it as you did the live 1371 00:46:13,285 --> 00:46:15,204 demo, which I think those listening, we get 1372 00:46:15,204 --> 00:46:17,364 a large percentage of our audience who listens 1373 00:46:17,364 --> 00:46:18,210 and doesn't watch. 1374 00:46:18,769 --> 00:46:20,690 And so I really appreciate you being descriptive 1375 00:46:20,690 --> 00:46:22,289 like that and explaining what you were doing 1376 00:46:22,289 --> 00:46:24,369 as you were going. And, I mean, this 1377 00:46:24,369 --> 00:46:25,109 list of, 1378 00:46:26,130 --> 00:46:28,050 new features, this isn't the entire list, but 1379 00:46:28,050 --> 00:46:30,150 what you showed us today was pretty impressive. 1380 00:46:30,525 --> 00:46:32,204 And I'm sure your customers out there are 1381 00:46:32,204 --> 00:46:34,525 pretty excited to get their hands on 8.3. 1382 00:46:34,525 --> 00:46:36,605 So, I really appreciate you coming on the 1383 00:46:36,605 --> 00:46:38,525 show and doing this demo, and, I'll give 1384 00:46:38,525 --> 00:46:39,585 you the last word. 1385 00:46:40,605 --> 00:46:42,605 Yeah. No. I and you know what? We're 1386 00:46:42,605 --> 00:46:44,464 we're all changing industry for the better. 1387 00:46:44,764 --> 00:46:46,429 I I would love to hear, you know, 1388 00:46:46,429 --> 00:46:48,269 feedback on what you guys are doing with 1389 00:46:48,269 --> 00:46:50,909 these things. Go check it out. Connect with 1390 00:46:50,909 --> 00:46:52,429 me if you have questions and, 1391 00:46:53,069 --> 00:46:55,150 and or connect, you know, we we're happy 1392 00:46:55,150 --> 00:46:56,589 to, you know, do more of these kinds 1393 00:46:56,589 --> 00:46:58,510 of things. And and I I appreciate Sean, 1394 00:46:58,670 --> 00:47:00,190 being on the show and be able to 1395 00:47:00,190 --> 00:47:02,295 to share off this amazing new release. So 1396 00:47:02,295 --> 00:47:03,734 thank you so much. Well, I hope you 1397 00:47:03,734 --> 00:47:05,494 enjoy that episode. And I wanna thank Travis 1398 00:47:05,494 --> 00:47:07,494 for coming on the show and bringing us 1399 00:47:07,494 --> 00:47:10,135 up to speed on Ignition 8.3. 1400 00:47:10,135 --> 00:47:11,414 I've heard from a lot of you out 1401 00:47:11,414 --> 00:47:12,875 there that you use this software. 1402 00:47:13,175 --> 00:47:14,614 And, you know, even if you don't, it's 1403 00:47:14,614 --> 00:47:16,054 great to know what the other guys are 1404 00:47:16,054 --> 00:47:19,039 doing. Right? So I really appreciate Inductive Automation 1405 00:47:19,039 --> 00:47:20,960 sponsoring this episode so it could be released 1406 00:47:20,960 --> 00:47:23,679 ad free, and, you guys could just enjoy 1407 00:47:23,679 --> 00:47:25,219 this update about Ignition. 1408 00:47:25,519 --> 00:47:27,478 And with that, I wanna wish you all 1409 00:47:27,478 --> 00:47:29,719 good health and happiness. And until next time, 1410 00:47:29,719 --> 00:47:30,378 my friends, 1411 00:47:31,318 --> 00:47:31,818 peace.