I guess we'll end up with those, I think the recording out there, because there's still a lot of fun. Yeah. So I'll have to do extra things. And we'll have to wait for the time in the same place. I'll have to do extra things. I'll have to do extra things. And I'll have to do extra things. Yeah. So I think we'll get started. We have lots of things on the agenda today. So I'm working. I'm going to present a little bit of our integration team and what we've been working on. We also have with us Chandra, who is part of the team, and Morten Svannes, which is kind of hijacked from the security and pattern team as part of today's presentation. We will be starting with a little bit of the overview of the team itself. We'll be talking about active projects through the Executive Pro AFI. We'll be switching out to demos, with the Java demos, but we'll quickly get through those just because we have a good time. We only have none like it this day. And then we will have half an hour with OpenID Connect and the integration on how that works for teachers too. And specifically we'll be using people over that demo. As I said, I'm Morten Hansen, so there are multiple mortens in our team. So I'm the Morten H guy. We also have one colleague who's working out of Ireland. He's kind of a product lead and a technical lead. We have a full-time engineer. He's also just working for us about a year now. And we have Chandra working with Chandra and Kevin also with us for part-time supporting the project. So I'm just going to jump into it. So lately we've kind of switched in stacks a bit. We've been trying, through the years, we've been trying many things from Python to Node.js and different things. And we kind of settled down, I think, on a good stack that seems to be working well for us. At this call it's Java, what we've been using for a long time. It's based on... On top of that, we're using Spring Boot, which should hopefully be familiar to you if you have been using Java already. And we're using Apache Camel as an integration framework itself, which is based on this kind of enterprise database we've had there, I'm sure, and we all kind of flow control and so on. And it has a bunch of components for HTTP and all other things, which you will see very very soon. We're also using, for not all of our projects, we're using some kind of data on that. It's a nice little language for doing JSON to JSON transformations. And actually, I'm Q. It's just basically a Q-ing system. You can put stuff on the queue and you can put it out using another script. Again, we're going to see them off that later on. We have been building our own stuff on top of this. So we have our Java SDK that we've been working on. It's still early, early days, but it's kind of good enough to be used. And on top of that, we have built our own Camel components. So, again, we will see how it works first. We also use a lot of hotel monitoring, but I will show you that later and we will see how it works. And there's a bunch of testing stuff also, which I will not get into today, but we have examples of that in other post stories. But it's basically the main step. You will see the standardized stuff also in the ECS-2 core. And the only kind of difference is that we actually use some of this public show metadata packages as part of our integration pipeline. As I said, we have a simple Java SDK. The main thing it provides is basically a client to talk to ECS-2, which takes a little bit of your authentication protocol. We might be using API tokens, what's called the TATS now or personal access tokens, or it might be using this basic code. Hopefully, in the future, we will build on that and support public protocols also, but right now, those are the things we support. We also generate a full model of ECS-2. So for every version of ECS-2, we are actually generating the full model for every version basically. So you have, I would say, close approximation to the ECS-2 model. It's not the one-to-one. There are certain things that require fees as well and they're not 100% there yet, but these will get better over time. So at some point, you will kind of be able to say, give it authorization units. It's not going to be authorization units from ECS-2, but it's going to be one that has a lot of utility methods around it that kind of helps you communicate with ECS-2 basically, without having to create your old tasks again and again and again. Although I will be doing that since some of these demos. The link is there. So you can please feel free to start playing it out. Give us PRs if you have any bugs and generally just talk to us if you have any issues with it. Every more interesting thing when it comes to the integration is that based on the Javis-2 KVL, we also built out the camel component. These are two specific camel components. Again, it kind of takes some of this kind of tedious work. We talk to the ECS-2, posting tons of ECS-2, going back and forth, back and forth and all of the kind of things. And then kind of a nicer model, nicer abstraction. Again, I will show you the demo this soon, but you will see that you can do your simple stuff that give me all the organics on ECS-2. Again, point to the item type. So we point it to the full task name. In this case, it's version 2.8.1. And the path you want to and then the fields you want. So, you know, this difficult field field to start playing in ECS-2. Yeah. So I have some demos, but is there any questions before I jump on the demo time? It's not part of this. So the first something I'll show you. I think we can move this one. Yeah, sorry. So guys are just reorganizing everything. Yeah. So again, I will have to be a bit quick here. It's a pretty much a standardized spring group application. So you will recognize the spring application run and so on. What is new here is that we are building two clients. Again, this is using the Java SDK. We have set up again, all these examples will be online later. So that's why I'm going to leave it pretty quick, but you can go through these examples later and you can have a look. Basically, it's setting up our application purpose while we are pointing to the instances. In this case, we want to synchronize some organets. So we have a master or a base or a starting part and then we have a target. So there are multiple targets here, but in this case we have an application between two instances. So whenever something is added to demo one, it will be also added to demo two. It's a simple straightforward example, but something that's a very difficult use case and a very difficult integration case, right? You want to, there might be data elements, there might be category options, there might be options as there might be something else, but you want to synchronize what you're doing between multiple instances. So again, using this application file that I'm building two clients. And we're building two clients. So it also has two spring beans. So we have one called this as client target onto this two client source, right? Nothing to press there at all. And again, please stop me if you want to give any information. So just with this ask. So that's part of the Java SDK. So the dishes to try this part of the Java SDK. No, we're just depending on the Java SDK. So the Java SDK is here as we have it as a dependency. We see some of it was here. We actually, we are linking to that. The common component, which also driving the Java SDK itself. So the dishes part of this is not something I'm creating here. My project is something that's been pulled in part of the SDK. So it's basically creating our, we have two clients to configure one. It knows it's going to be sourced, which is a demo one. The target knows my, my, my, my, my connections with demo two. So the first, first, first round we're going to do. So it's a little bit. But don't worry. It's pretty straightforward. So we set it up a timer basically. And then again, this is up to you how often you want to do this every night or you want to do this. In this case every 10 seconds. But. That's all this really means it's just a fixed rate of every 10 seconds it will run this route that we're going to talk about. Yeah. And this is just the name of the route itself. So whenever you see something, the log, you know, it would be called read organics. It's something just by default, it would be called something generated like route one or something. Just to name it. And then again, you'll see here. This is what we're doing. What we're trying to do. We are trying to get all the organics. We're trying to get all the organics. We're trying to get all the organics. We're trying to get all the organics. From the source. And we are also setting super parameters to that request. So. I'm not going to go into all the details, but as you probably know, we have this parent. Hardly. So you usually want to order by level. So it means that you're also going to get level one first and level two level three and so on. So you don't get this missing a kind of reference issue. In this case, we do all of them. Which is depending on what you want to do, depending on how many organics, it might not be a good idea. It might be better there. We are also not doing any last. The field training is just a simple example. We are just going down to level two. So. We have only one level, but you know, if you might have a very deep tree, you might not want to see that all levels. So I'm just going to let that. And then we are these other fields. We are interested. Right. So you might do many more. It might be different. You might want to have translations and so on. And in this case, we do get simple, just for the typical, the code, the name, short name, description, open date, and the parent, respond with five parameters to make it work at all. And in this, this particular case, we are not using this generated. Generated classes. So we are, we are instead using just a simple long book. So again, just to show that you can use what we want. We don't have to use the provided domain classes. This is a very straightforward example. I know exactly what I want. And in this case, it's very, very simple. So I just created a very simple number of class, which just helps you. Yeah. Yeah. Yeah. So you see, basically this is Java, right? So it's not dynamic.  And in this case, you just get exactly what you need and nothing else. But again, that's kind of up to you. You can use our own classes. You cannot, depends on the worst of your target thing and so on.  So the point is coming from here. Come this to learn. You basically got to end up with a single bytes, right.  So what do we do with that? Well, this is actually just injecting the same, but I'm not sure that that called into Jason. Oh, from just into this, or this record class. And now you have an organization in this class with all the organization in this person in that class. And now to make it simple for ourselves. Instead of, you know, potentially this could be 10,000, we could call this one thousand ordinance. So we're doing a simple split. Or split we could basically think of as a follow-up. So you're not taking. This organization units were using what's called. It's a simple pattern. They're basically. Extracting just the ordinance. And that's a list and now all this list that you can look to one by one by one. And in this case, we're doing nothing at all with it because our target is also dishes too. You don't need to transform it much. You just kind of just repackages it back into the JSON. And in this case, again, this is managed during that, I decided to start up an artist. So this is an internal queue that's been started up with your application. So now it's all just doing is putting it on this topic. So one on one organics that we have, we will put on this topic. And that's it. That's all that's happening right now. But we also have the receiving side. Again, on the receiving side now. And remember, this could have been two separate instances, two different servers or whatever, right? So this is why we're kind of splitting it up. If you have all of these in the same shower, you might not always want to use this, although it can give you some robustness, especially if you're going to be handling that topic with a lot of things that might take some time to process one by one. So it does make sense. So here on the receiving side, remember, we were just sending JSON. So basically, the text screen. So okay, so what we do now, again, we want to name the route because it just makes it a bit nicer. We again, unmask for it. But remember now, not to the organization units, but we're receiving one on one organization unit. So we just did that today getting a full organics. We're doing a little bit of processing. Again, this is just to make it easier for ourselves. And this is a show. Instead of using the organization unit endpoint, in this case, I'm using the metadata endpoint. And I'm also, I just want to show you that I'm actually using the classes from our, sorry, just a little bit. Okay. So it's actually using the classes from SDK in this case. The receiving side is using the classes from the SDK. I just want to show you that how that works. And so in some exciting issues, it has simple noble classes. And the receiving side now they're using from the SDK. And you're wrapping it in a metadata wrapper.  We just have a list of organizations. Again, all of this stuff we see here, set organization units. All of that stuff is auto generated for you by the SDK. So that's something that's just available for you. And after we're doing this little processing, this could also be done is that converter and the money based doing this. And this is just a simple way of doing it. We again, just setting and updating the body of the message. So Camel knows what is what is currently processing. And if you see here, this is the last one. We are posting. You have to remember we are posting now, the path metadata, the body, the user itself, and the client. Of course, in this case, it's a target. Remember, before you have the client source, this is the client target. This is demo two. And we will show you quickly how that actually works. This is demo two. So any questions for that before I will actually show you the demo? Again, all the code will be available. It's currently in the private repository, but you'll be made public, maybe tonight or something. And it's linked from the slides. Yeah, I guess. Yeah, because a job is just as simple as that. Yeah, we don't have to. And in this case, we even sort of embedded Artemis. And but but it's just the way of showing up. And you cannot use many other protocols like stomp and everything that there's also for no customer or everyone to use. So that's just a way of showing to you, basically. And I mean, you can do that. So, okay, so what they're showing us from online to show how to have those things are working. So it will show you is for our rapid pro integration, something called hot IO, which is basically as little between UI and Office. And it works as a UI both for XMP Artemis and UI for the tablet itself. So you can see the round some of it. Yes. Yes. Yes. Well, we don't have to write. So that was the particular sample. So you can just use it for SDK. Yeah. This is what they're using SDK. What is this? Yeah. So this is again using the SDK and even the SDK, the main model. So this is all coming from the SDK. On this receiving side, this is all from the SDK. Yeah. So it doesn't have to be, it doesn't have to be. That's up to you. I mean, that's, that does not have to be. What you need to do is sometimes you can know the version you're working with, right? But they might, if you go back to like 3.3, like a geometry would be very different from 2.9 for example. So you need to know this kind of stuff. But if you have a need to convert, this is the place where you would convert those kind of things, right? So you could create or convert before it. Yeah. Because if you go back long enough, we had, so say for example, you had the polygon as a one column, and then they had an actual coordinates of one column, but we have to go back to the geometry field, right? So you could potentially do that as part of the integration. If that's something you need. Well, you need to know. I mean, there's no magic here, right? So all of this, this domain model is modeled after the version of a target. So if the version you come from is not compatible, you will need to take care of that. There's no magic here. It's not fun yet. So yeah, so this is a target, yes. So again, we are reading from one side is in source, and then we are targeting the other side using the client target. Again, we have to move on because the time is going to be slightly if you don't. I will show you the example. The people on the line can see this. I'm not even touching let me try. So while we're doing that, I just want to show you. So yeah, this is demo one and demo two. I hope you can see this. I have to hear me. I just want to show you what's currently there on the same unit. You'll see there's only one called country. And then on the other side, because we're also using the savings for another demo, I basically set up the same, same here. Now we have, so we have the same organization that you will see in a while. And it has the same year. So in this case, right now they are all in the same. So let's start up our script. And so now we are running the Springfield project. All it's really doing is kind of building the file itself. Of course, you could build the jar file. In this case, I'm not doing that. Then we will just wait for it to show up. Should I make it smaller again? So now it's up and running. You have about a 10 second delay here, but I've never done something on the screen. So I'm sorry for that. Anyways, so there's not much happening because obviously, there's no difference. So there's nothing much for it to do. So let's see, you can create now in demo one, you create a new one, you just call it something like this. This is a live demo by the way. So I'm hoping this is working. So now we have another one at level two. Of course, we did it now. I think we have to have that 10 seconds. You see now, when the screen updates, you will see now in demo two, we already have a hook available. So you're sorry for the delay. Yeah, that was missing now. As you will see here now, it's already there. So the same way, if I want to go back here, I can go to hook up again. I can say also, right, so then we just go back here. I will save it call it also go back to demo here. And I was called also here also. I mean, it's a simple example, but it's just some of the things you can do using this kind of integration strips. And this is something we also going to focus a lot on going forward in the integration team in general is to support these as to these as two integrations. So this kind of thing, of course, you have to handle errors, what if the surveys down, what if you want to do partial tree synchronization, what if you don't have access to read by to that instance, a lot of things to consider. This is a simple example, but but it just shows you how to be done using a recipe. So right now, no, but that's because of something else. We'll get back to soon. So if that was case, you really kind of have to over the wall stuff. And that's a bit more complicated because we don't really have a good removal of the dishes too. So basically, you just if you remove say also from instance one, all the script now we'll see is that we have country, some country, but that exists. But it doesn't do more stuff. So we go back here. Let's just get here. Yeah. And that's kind of how the hard side is. And in the same case, if I now remove country, now, do the same as I would complain, because all the other wouldn't even complain because nothing has happened. There's something about events, which we'll talk about later. I have to hurry up a bit. But what I will show you something later that we have is just doing this in a much more smarter way. But if you're doing great read and the leads updates, you can get a notification and you can react to that notification basically, which is a lot better way of handling it. Because right now, as I said, when you believe something, it just gets gone from the input, but you don't know why or how it's done. Who did it or not really much. I mean, that's up to you. And I mean, right now, this is my data. But there's nothing stopping you from using the same approach with data values or whatever you want to do or enrollments or. Yeah. But to remember that, again, this is a quite simple abstraction right now. So and when it comes to enrollment and tracker, there's going to be a lot of issues that you'll have to kind of take care of yourself. That's just how it is.  Yeah, it starts with high cloud. Even if you say that I can get cloud with the source adaptive experience subscriber or any standard changes. So in this case, it just pulls. Yeah, yeah, it's just, it just pulls, pulls, it just can timer. Hopefully, I mean, ideally, in the future, we will have, you can do from this just through, and then you just listen to events, for example, that don't become the ideal thing that or it's very easy in camel to set up an H2P server. So you just have to use from the server endpoints, and I really get some of the server endpoints that push you to start, start around. It's much, much, much better in the big units. Exactly. Exactly. We're gonna have to, but we're sorry I think that's only negative. Okay, I do have another example, but I think I will skip it now just because of the time. We will show you later, we will talk about keep look. We also show that we also have a bit of a keep lock integration. But we were sure that that's a demo when the market is talking about OpenID Connect. Other than that, are there any more questions before I have a one? Again, the repository is linked from the slides to be able to get all these examples. And you can also ask me if you want. It's all on the tab. Yeah. All the examples today is on the tab. They are linked from the slides. So I just want to talk about some of the other projects we've been doing. We also been working with WTO EMC to create an integration with WTO Flow and WTO Base. So as you probably know, our packaging team in Austin, they have been basically creating all these packages for different dollar show standards. And one of them is for the A5, which is the adverse event reporting. So if you get the COVID vaccine and you have a bad effect, bad reaction to that. That's usually important in a global system called WTO Flow. And that ends up in another system called WTO Base. And now we have created a small script for that that basically allows you to have automated that process. It does not currently work. If your integration, that's quite difficult with WTO flows right now. Hopefully in the future, you'll be able to do that. We also want them generally to double check what's coming out. That's what we've been told. So that's what's happening right now. But we can schedule a weekly email or a daily email or so on to basically any kind of inbox. Then you'll just get a list of similar with all the new cases, then you can import that into WTO Flow. And we also have an API for it where you can just also go and this last option parameter is saying maybe all from yesterday or whatever you want. So that's one of the things we've been working on. The current multiple countries trying to start this up. And also just work with Maldives, but there's also a lot, there's also some more I hope to put it into a few other countries in Africa. So it's being used more and more. I will switch over now to Shatran. So I will stop sharing my screen. Thank you. One of the new stages that we have at first using the average performance and the average performance because I'll try to quickly go through this one because I think modern has more interesting stuff and suppresses for us. So what would be more one of these cases where we integrated VHIS with VHIS too. But in this case, we have VHIS 2 on one side and then we have something called RapidPro on the other side. But this is going to be the structure in most of the innovation cases. So we have two more systems. And all the systems know how to talk with some kind of data representation language, which is GSM in this case. And also they know how to use some kind of a transfer. So in this case, VHIS 2 uses HTTP and RapidPro uses HTTP, so which makes things much simpler. And in between when trying to integrate these two components, we have one of our plug-in that we have developed using the VHIS 2 panel components. And then we have also used something called data sonnet, which is kind of like a scripting language which supports transforming payload from one form to another. So in this case, it's GSM. And I mean, we can even use data sonnet to transform from GSM to GSM or GSM to GSM. So those kinds of things are supported by data sonnet. So when it comes to RapidPro, I think almost all of you have seen real-time programs where you are expected to, you know, work for the participants. So you can simply SMS with some type of a code and then the participant's ID or something. So the system automatically captures that code and, you know, increase the number of words for all the participants. So that is kind of like the most basic thing that can be implemented with RapidPro. So instead of handling such a basic thing, RapidPro provides us the ability to create a message to us, which are more complex than which kind of, you know, presents with questions for users. And then when the user sends us with the response, it automatically captures that response. And then it can decide to present users with more questions or enter flow and create one large payload, which includes all the responses from the user. So for instance, if we get a simple example, so I mean, if you take this event itself, we can create an RapidPro flow to capture the number of participants from each piece. So I mean, a user can initiate that flow with some type of a code, maybe his Asia, it can be anything. So once the correct SMS, the RapidPro initiates a message flow and it can start asking questions. So it can first ask how many users from his Vietnam and then the user can respond with let's say 10 or something. And then RapidPro registers that in the messaging workflow. I mean, it can be like his Vietnam 10 or something like that. So it is basically building a JSON structure, including all the responses from the user. And then once that response is recorded and that is a valid response, RapidPro will move on to the next question and ask how many participants from his India, so something like that. So it can go on like that until the flow is completed. And at the end of the flow, RapidPro saves that response as a single JSON object or even we can configure RapidPro to call an external webhook. So in the RapidPro to VHIS to interpretation, what we mainly want to do is capture some community level aggregated data from RapidPro users and then send them over to VHIS to in the form of data value sets. So in order to do that, as you already know, your data value sets needs to have some kind of an organization unit binding. So for that, we need to know which user is sending these requests to RapidPro and as well as the organization unit where the user belongs to. So in order to facilitate that, the first functional requirement that we have identified is synchronizing users. So what happens here is the first page users with valid phone numbers from VHIS. So it's going to get that as a JSON payload as we have previously seen. And then it's going to transform that JSON payload into a format where RapidPro understands as RapidPro contact. So in VHIS we have VHIS to users and in RapidPro we have RapidPro contacts. So it's basically doing this transformation from VHIS to users, RapidPro contacts. And it also includes VHIS to organization unit ID as an additional parameter in the RapidPro contact. So when we receive a message, I mean RapidPro identifies users based on the phone number. So now when the message is received, RapidPro knows which user from VHIS who has sent this message, as well as the VHIS to organization unit that belongs to that user. And I will come back to broadcast remind us later. And the next functional requirement is, I mean, this is the main requirement of the entire integration that is to transfer reports from the RapidPro users or RapidPro contacts directly to the VHIS to system. So when the RapidPro contact sends us a message, RapidPro first going to work that user through that messaging flow and capture all the information that needs to be captured from the user. And it's going to create one large data set, which includes all the responses from the user. And then if we have configured RapidPro to call a webhook, I mean, we have two approaches for doing this. Either we can configure a webhook so that it will call one of the webhook that we have exposed through our integration component. And then it will transfer all the information as RapidPro gets them in real time. Or we have another approach where the integration component can call periodically RapidPro or RapidPro with a flow ID and some kind of time stamp so that it will get all the new events that appears after the time stamp specified. And once our integration component receives some kind of a message or an event from RapidPro, then it can call back RapidPro and ask RapidPro for the information about the user that has sent this message. For instance, our integration component now has all the data to create the data value set, but it does not know the organization. So it can again go back to RapidPro and ask for the organization unit where this user belongs to. And then finally it can create the entire payload that should be sent over to the data value sets API and simply call DHIs to data value sets API through the DHIs to camera components. And then we have broadcast reminders which is also a functional requirement. So if a data value set is kind of like expiring then the integration component can periodically check for the expiring data value sets and remind the users to enter data if they are behind the schedule. And there are some non-functional requirements for this integration as well. So the first one, the first kind of most important one is reliability. So that means if RapidPro registers a message from the user and if the user completes the flow without any errors then we should guarantee that it's going to be delivered to the DHIs for users and create the data set that completed. And then some of the common non-functional requirements are security and maintainability and also the integration solution should be fast enough because now we have discussed only about use case where one user sends an SMS but in production environment there can be hundreds or thousands of user sending concurrent SMSs and dealing with multiple concurrent flows. So all these accepted messages should be highly delivered with an acceptable truth and low latency. And the last non-functional income that we have identified is extensibility. So this was useful in Uganda case. So by the way this has been successfully deployed in Uganda. So in their requirement there's another component in between our integration component and DHIs too. So they have another homegrown solution which accepts messages from the from our integration solution and that that shows that solution kind of do some kind of auditing and stuff and then they normally deliver those messages to DHIs too. So extensibility is important. So we can easily you know switch components. So if you don't want to submit messages directly to the DHIs we should be able to simply change some of the available codes and deliver that message to something else. And apart from that we are also providing management and monitoring tools and also tools for recovery. So we are using how-to-use for management and monitoring which is kind of a jmx-based tool which is natively supported by Camel as well. So with this tool we can stop and close out if that is required. So if there's some kind of maintenance going on we can simply close some of that out. So we don't- we will not- we will kind of stop accepting messages on that route temporarily. And also we can- we will be failure. So if there's- if RapidPro has successfully accepted the message but if it has failed when delivering that to DHIs too. So we can simply be in those failures and you know manually address them if that is possible. And also throughout the Camel routes we can you know add info logs or debug logs or logs at any level. And this how- how TIO is capable of you know taking those logs registered then provide an interface, a nice interface to meet those logs later. And also it provides the ability to analyze latency so we can see which route takes more time. I mean if the route is taking a significant amount of time we can you know easily debug why it's happening and things like that. And also we have ht for h2 database for recovery. So I mean we kind of use that as the data channel. So if something fails we simply save the entire payload into h2 database so it can be later analyzed and we post manually if that is required. And also it acts as a repository for logs and it can be used for because it registers which RapidPro uses the same same term as age and whether it was delivered then all those things so it can be easily used for debugging as well. Sorry Auditing. Yeah that's about it. We are not actually sending any events to dhi's to with the same user. We are using we are using some kind of a common user for sending all the events. We use user just to identify the organization. No we don't have to code anything. I mean there's an option to code as well that is required. I mean if there's some kind of a custom version which is hard to implement we can code it. But it provides a user interface where you can bracket the components and configure them. Yeah it's like a dialog. Yeah map flows supports Facebook messages, WhatsApp messages and all those things so we can do it as well. Yes it's available on dhi's to dithub. Yeah now we can dhi's to dithub and if we type RapidPro then there's no problem. So let's let's continue. We don't have that much time so I will try to be with the last class. Just a little bit about our kind of approach to fire going forward. As you probably know we tried at some point created this kind of real end of fire to dhi's to adapter, dhi's to fire adapter to waste chinking. It didn't really go that well. I mean it is being used but it was never deployed anywhere by us or by Oslo itself. So we kind of switched kind of folks a little bit when it comes to fire and we kind of tried to support specific use cases. So again we are using the same stack as we just have gone to the RapidPro with the example of the organ sink and everything. And so going forward we will be very much more specific when it comes to dhi's to fire integrations that might be synchronizing your locations and your organizations, synchronizing your code base or cosystems and other sets and so on. So just a little bit very quickly about that kind of how that approaches. We do have some examples already that this isn't one of the linked repositories. So feel free to kind of look into that if there's something that interests you. We have been working also a little bit with Paho just doing a little bit of this kind of fresh clear response stuff which basically maps dhi's to events. So that allows us to hopefully in the future we will also be able to see these kind of events as fresh mirrors basically. And again there's an example there that you can have a look at. We have a couple other conferences, one of them was the annual conference in the summer. Again there's three or four examples there using SDK, using data sonnet and a few other things to create bundles. So MCSD is basically a profile for organization units as simple as that. And it's basically showing you four ways of implementing that using SDK. Some of them using data sonnet, some of them are not. So please have a look at that and that's the public repository. And all the examples from today will be on this currently private but will be made public soon. So please go there if you have to look at any of the demos I've shown you today. And there is also the key of demo that will be shown soon. And we do have a new website which is probably the most important part of this new fire strategy. Feel free to go there. We have this new fancy website, also a new website that is new page on the digital station 2.org. And it kind of goes through a little bit about our standing on fire going forward and the technologies, the profile we're targeting. And so please have a look at this time of course. There is also a link to the presentation we did in the summer which again is showing a lot of the same stuff I'm showing you today. So please have a look at that if that's interesting. It goes a little bit more in details regarding how this fire site has been used. And if you go all the way down you will also see some links to more examples that we have made. So this is probably kind of the deep place to go if you want to know anything about fire initiatives too. We'll be updating this going forward whenever there's a new project we'll be doing using fire, it will be added here. And whenever there's a new presentation it will also be added here. So please have a look at that. That's just up now a couple of days ago. So this is kind of fresh. So a little bit about what's happening in the future with the integration team, what are planned ideas. So as I said, kind of switching gears a little bit and doing something that we probably should have done a lot to start with is that we're going to focus a lot on these two integrations specifically as I showed you the organized sync stuff. That's going to be kind of leading to the product itself, something you can just download and you can implement on your server. You potentially have a source and then multiple targets that you want to synchronize with. Potentially some parameters depending on if you want to synchronize the full tree, partial or what you want to actually synchronize. And of course you don't necessarily just want to organize, you want to organize groups, the group sets, you might have attributes on it. So it's a bit more complicated than what I showed you today. Of course it's a lot more involved in just synchronizing some small parts of the ordinance. We want to expand that maybe specifically to offset categories, category option potentially and kind of build on that until we have again a kind of more full-fledged product. But this is again a long term plan. It's not a six-month a year and also going forward in general. Potentially there might be data integration there also happening. Again, focus on this whole fire rate makes sense. If you have a real fire need in your country, not because you just some dollars telling you you need fire, but if you have an actual system with fire, you want these just to work with that to make the integration happen. We are very, very happy to support with that. The email was in the start-up of the fire. So you just send us an email. Again, please have a system fire ready because there's a lot of people coming to us. They just want fire and they don't know the profile, the targeting. They don't have a fire system in place. They don't have anything. So we want to support real-world use cases. So if you have something, please come to us with that. Another thing that's more and more important is that working with DHS2 core itself. I'm also part of the passion team supporting this instance of sensibility in DHS2. As I said, event works. This is the first up-coming that will be the N240. Well, the initial version will be the N240. API gateways is another one allowing you to call out to other systems without having to use the core or anything like that. But you can have a properly set up authentication happening with encrypted passwords and so on.  Another way we really want to influence DHS2 is system identifiers and how that's working currently is not great. So at least we have the code field, single code. We don't know what the code represents. We want to expand on that. We want to maybe model it a little bit on fire, but there are also other identify systems out there. We want to kind of look into how we can do that in a better way. And of course code is in general. Again, these are two options sets. They get the job done, but they're not great. They can do the code missing the context, the missing release to build those kind of things. So that's something we also want to work with the team on. And maybe the bigger thing is there will be an integration academy in March. The exact dates will be announced soon. It's probably happening in Rwanda, in March, mid-March or something, or the end of March. But again, the dates will be announced in your usual places. I will reduce time on minutes and then I will hand it over to more people to open up the next stuff. Again, I just want to tell you that the event work stuff is a much more interesting way of doing the organizing I showed you today. We're going to focus on web hooks to start it. So something happening in issues three, for example, you get new organets, you will support the target being web hook, but in the future, the target can be Kafka, it can be actually M2, it can be anything that you want to support, basically. And that's kind of the idea here that without tying the source to the target, it will support multiple things here. But again, for 240, it's going to be metadata and probably only web hooks. We will see what you have time for, of course. And another thing is that we have this internal Optimus Queue being used for all this and so on. And this is not meant as a direct replacement, but it might potentially be in future that we can reuse this event for the same things. And I'm hoping for it. So I have a very experimental demo. I just want to show you how it's going to work. Hopefully it will work. This is again a live demo. So yeah, I have a very simple, this is nothing that's publicized yet, by the way. So this is not something you can test out yourself right now, but I'm just running a very simple demo. This is a dictionary locally. It has CLI on database, so it's nothing special. If you go to the web hooks endpoint, you'll see currently it has no web hooks at all. So nothing special there. Of course, it should be started with no web hooks. So let's create the web hook. So in this case, again, oh, this is still very small. So again, you see this, yes, of course, the name has, in this case, has something stable at the UAD, which is always recommended. The path in this case is just metadata. You will see that the actual path of the source is going to happen with the metadata.OrganizationUnit.The UAD of the object being affected, but you could just listen to all metadata using this. There will be much more options here, including field field and so on. But right now, all you can say is, even this path, I will list this path only. And you can have targets. In this case, I only have one target, but you can press multiple targets. So you put the target multiple instances, or you want to do one web hook and one Kafka and one something else, but should be all these important. So you just set the type in this case, of course, web hook. I have another date here, I will show you soon how that works. And this type, I'm using API token. So this is not just API token, by the way, this is something that's implemented on the receiving side. So this allows you to do, if the gateway self needs an authentication we support HTTP basic and API token for that. So you can just enter that here, or you just switch out type, API token to type HTTP basic, and then they will automatically assume you mean a basic authentication, and then you have a username also as your field, as your fields. Okay, so let me just send that to the system. Hopefully it's okay. Okay, one web hook created. Thanks for your work. We'll see if we have the web hook. All right, so we have the stuff here. Right now, the topics are so unencrypted that they will be in the future. Again, this is a starting point. You can also set stuff like custom headers, if you have other stuff you want to do, maybe the authentication is not using the right headers, so you want to set up your own API token or whatever the might be, so you can add whatever headers you want to that request. Okay, so let's see here now. Let me start up the other demo. So I have created a small little project here. As I said, this is Solicitation Spring with Tree and Spring 206 and Zendredi K17. Nothing special. I'm just receiving the web hook request, getting the payload, and pulling out authorization header from that. Then I'm double checking again here I have a hard-coded API token that's checking that it equals without 401, not authorized, and then we're just printing out basically what you want to receive. So what makes this interesting is again, for the future, maybe not the last name, but you can actually run this as a binary. So one of the things that's very cool about distributions of Spring coming out is that you can actually build a project as a binary. So in this case, I can run this up. I don't even need to have Java installed in this case. It's a full binary that contains everything you want. This allows you to push that into a Docker or a real type, whatever you want. It makes a really lightweight container. Okay, it's up and running. So let's see if we, as I said, this started up, I mean, say for one second. Just to compare, if I'm starting up, she started with normal Spring with, I'll do this also, sorry, just as a comparison, because this is something that's very interesting. And Solic Hamilton does not support Spring with 3 yet, but it will in the future. It doesn't take much longer in this case. It's just 1.1 second, but you can see the, it's a lot quicker, right? So the native, it just starts up immediately. But again, let's just use the native one. Okay. So let's go back to my Postman. Let's close this down. And let's create a new organet. Let's move forward. Even though this is Elioan, I'm not adding any parent. I'm just doing it simple. So you're going to end up with two roots, but it doesn't really matter for this test case. So I'm sending this in. Okay. Two of all created. Perfect. I can go back. Go back to my listener. You'll see the order is not 401. Sorry, the authentication was correct. You'll see the actual path is metadata, organization unit, dot the UAD. In this case, again, this is just like a progress that how it is to look is will be different. But it's going to have the same as operation that was supposed to create operation. And then you have the full payload. Again, you probably don't want the full payload. So there will be a few building support and so on. And so again, we go back to Postman. You can do a little bit of updates. Let's just call it, I don't know, call it the country two percent. It doesn't really matter. And again, we're sending it in. Again, there was a 200 okay. Now, another one is the descent. The same path because it's the same object with the other way. And now the op is update. And now maybe the most important thing we should not really do is deletions. So now I'm going to delete the organics I created. Again, 200 okay. This time, you will not get the full payload, but it will say, okay, this is again the path. The operation this time is delete. And this is the object. It's just the idea of the object. So usually now I can actually react to deletions of organization in this deletion too. If you are synchronizing with an external service, it's not always as easy as doing that because obviously if you have a long running system like that, you might have data linked with us on. But again, that goes back to the complexities of organizing. But again, now that is we have the option of reacting to deletions. You have options to react to deletions of organizations. Yeah, this is a quick demo. I have to switch over to what Ness. Is there any question with this before it comes in here? But I think we will just move on. Okay, so I will hand it over to Mod Green. Yeah, so I'm just going to briefly talk about OpenID Connect. So, yeah, OpenID Connect is provide your agnostic single-sign-on solution. It works with the organization as such a multiple consultant to share a central service. One way of saying it, so this is basically what we are going to demo right today. We can also very easily use it in that business. So, I don't know if you know about OpenID Connect and what we do, but it's a very common solution map for OpenID Connect. So, we're just saying like logging the build without logging the tracebook and stuff like that. That's OpenID Connect. So, it's often used in launches that already has a national education, I think, show digital education system where the government typically has a server and probably session of kind of ex-care of writing that service. So, for example, like KS in Norway and they implemented a COVID vaccine system, but they're using openID Connect with their existing government and the solution that was openID Connect. So, openID Connect was really already in three business. So, that's been supported since 2025. I think KS was the first that actually took place. So, it's been in production for a while now. It's very easy to set up the first minimal integration. So, yeah, we can demo that now. So, yeah, we also support just the web problems, which I'm really finding actually supports logging right now. So, there's the challenges to this. So, yeah, the challenges that they could play. Yeah, emergencies that, yeah, but do all the role management and do the session part, state, fire, and so on. So, yeah, that's kind of a challenge. It's central authentication system. So, for example, yeah, that fire case, because they think they've made their systems, solutions, and they go there to solve this problem, to have a secure system that also administers these roles and these should have was openID Connect. All of those authentication. There's no authorization, there's no role management, but they're doing authentication. So, yeah, we're looking into that now. So, maybe I have some kind of visual, you know, their tools that people that want to use this can kind of stop using. So, yeah, one challenge also, you can see a demo layer when you're logging out from physical instances, there's no automatic kind of synchronization with the sessions on the other instances. So, yeah, there's some links there. We'll see some examples with Marla. So, yeah, we're going to do a quick demo now. Come on, Jim. Yeah, he's saying about how Marla sets up that. If you use something like the code, you're not just into the DCS to set up other systems. So, if you have six systems in your country, I don't know what you have, but just six systems or two or so or six systems, that's everything. If you can't do this, you also get the Sahara system across many different systems. Yeah. So, I hope I didn't connect this already. So, in this system, there's like everybody's using that now, and it looks like it's going to stop. So, this is just going to show you the configuration, some books to set up the configuration, which is necessary. So, basically we have, in this case, three configuration demos of DCS2. They're all of the same. So, you're just going to show you one of them. So, just going to show you one of them. They're basically the same. There's a little bit of small, small changes to all of them. I'm going to let Marla talk, but that's basically all. So, you're just going to show me one now and we can talk about that. Yeah. Just going to show you quickly, like an example of how it can become computer. So, you can actually have multiple OpenID Connect providers also. So, on the front page of the DHS, sorry, you can actually have like one button when logging with tCloud and one button logging with Google. So, it's not like, yeah, one at the same time. So, yeah. So, this is like the minimum OpenID Connect part. So, this is the tried ID and the client secret. That's like the under redirect URL. That's the key most important information. So, this is, this one is more just pointing to the tCloud server. But this, all these URLs are actually standardized in a way that every provider actually provides them from URL. So, you can do dynamic registration with this configuration. You don't support that right now. That's the minimum setup. Yeah. I'm not going to show you exactly how the tCloud, the tCloud is very easy to start with digital mode. You start it up in like a demo, and you put up some bytes on the website. So, we have tCloud running here. So, we're just going to add a user. That's username. Yeah. So, that's it. So, here the email is going to be the, what's called the mapping name. So, you're going to have a user in the DHS server that has mapped this email as the mapping value. That's it. There's no role management down there. This is just a minimum setup. So, yeah. Now we see this sign-in tCloud. So, this comes from the configuration that you showed it and what might be generated from that config. So, yeah. There's more providers. It just comes in here. So, now another big tCloud. Sign in with the tCloud. So, yeah. tCloud supports, like, when you're provisioning like a user, you can send an email and it has to change the password first and then send it. And the way is to do that for user provision. Now we're going to just run our code. So, now I can go to the other instance, log out that already. But, yeah. So, in the automata, we get logged in there without going to the login screen or something in tCloud. So, this is like the thing. So, the sessions are not automatically synchronized there. But they're already logged in to tCloud to send it directly there. So, that's the demo. Again, the bigger issue is synchronization of your users. That's the biggest problem. Yeah, but then we have created the email ID and the user ID. Exactly. And that should work. So, we are working on a little bit of tooling around tCloud and DHS2. I'll show you where it's simple. This is the last thing we're going to do today. I'm just going to go back to what Martin did here and I'm going to delete it, because I don't want to do this manually. I think that's boring. So, I just delete. So, now it's gone again. So, we go back to the instance here. All this bad native. I guess because the session is not perfect. That's why. So, I'm just going to show you that in the material we have. So, now in tCloud there's no test user. But of course, the reason it's even work was that we had this user in all three instances. And that's one problem just to handle. It's the DHS2 uses synchronization. But now you have to have tCloud. And now you have another place where you have to add the same users. So, that's something we want to help you a little bit. So, we have three users here. But in this case, we are just using passwords, right? So, they're not using the external computation at all. But we do have one user called test user. The same as Martin just created. It has, this one clicked, the external of only fact. So, what do you really want to do ideally now? We want to just take a look at this server and put this test user inside of kCloud automatically. And for that we have, again, this is very much working progress. You will require a few topics as well. But again, as Martin said, there will be this one right up on this at some point. But then I want to show you now. We're using the user integration at THS2. And we are just pulling directly from the demo tree. Again, maybe we're going to use the SDK and the kernel component as we saw before. We have to have a set list of targets. So, this is the key to be targeting. And then we have the token that we have. And again, this is something that we can probably write up at some point, but it is pretty straightforward to get your API token to make this work. But you're doing an API token. If not, you will get access to mine, of course. So, again, this model is quite similar to what we had before with the organizing. So, again, this time, of course, the big change here is, hold on, make it bigger again. Sorry. In this case, I'm just doing it once. Again, we can do this every night whatever timing you want to do. I make sure that the external auth is necessary because those are the, in my case, those are the only three, the ones I want to care about. Your case might be different. You do what you want to do. You might have other fields to see on that user reference and so on. What we don't really care about is the ID. In this case, it's not being used actually, but usually it might be nice to have the UID also in the user name. Of course, it's important, the email, and then it is disabled or not. So, if you should get disabled and keep your list up, allowing logging with that. This case, we're just pulling directly from the user's endpoints. Again, we're doing the unmask learning, set it as before, splitting as we do before, and then we're sending one-on-one user updates over the wire that we usually have in this. Then, on the receiving end, so usually the most interesting end. Pretty much as before, we unmask in that back into the user class. In this case, since Key Club has a different domain than the users too, I have created some logbook classes to model exactly what's required for Key Club. Again, the demo will be available. You'll see here, it looks a bit different from this as well. The way it handles, for example, credentials and so on, passwords and so on. It's a bit different than this as well, but that's fine. So that's why we have to transform it. Again, one of the biggest issues we're going to see is passwords. It's just that there's not explosive password. That's a good thing, but it does require a credential on the receiving side. In this case, we should find a set of emails, so the user has to use email to verify the first end of the end. Really not, so we're just setting a static password. We do add an action, which means that the first end of the end, they will have to change the password, so they'll have to change immediately. So you can email them the some generated password and say, okay, please log in with this one, but then you have to change. And of course, if the user is unable to not. And again, we're setting the body. This is the new body that Camel cares about. In this case, since we are not targeting these just too, we cannot use these just too as the receiving property. But the good thing about Camel, it has components for all kinds of things, including many different HTTP clients. So we are setting the method to be a post, because we are posting something to the endpoints. The authorization is using the bearer token, so we're just putting down the token we had already in the property file. This will have to be authenticated. The contact is what we're setting, because we're setting JSON. And this is the end point we're sending to the system, especially users. And then we just end up loading out the result. And I'm not sure if I have it open here already. Oh, yeah, I do. So again, you can see that we don't have the user. And again, you can only run once, because that's my timer I set up in front of it. So in the starting app, I feel like you see something. Hopefully the token has expired. It might have. Yeah, for once. Sorry, the token has expired. So that's how it works. Sorry for that. So hopefully now it should be working. Unless we have changed something else in the server, I don't think we have. This is the demo. The end result is that we should have the user. So if that doesn't happen, we just know that the actual. Okay, right. This is the key club. If this time it was successful, you go back to the key club, you can refresh. We have the test user. Right. So now we have the test user here. If you go into here, you will see that it has some credentials and so on. So yeah, nothing too exciting, but at least worked. And now we can go back to one of our instances of this as well. We make sure we have that. We already love that. And we allow that. And then we should be able to sign in with key club. Okay, we set this aesthetic password. Remember, so let's just copy that. So we have that one. And we go back in here now. Also, and this test user and also remember that if you set the action, so what happens now, you need to change your password to activate your account. Then we change the password to something very secure like hello. And now we are logged in again using this one. So the next time we go out here, login here. And then let's put in different instance. So this is demo four again. And let's just verify that it's still working. And it's working fine. So now you kind of get the same result. It's just this time I was a little bit more automated that you get the key club user automatically created. So that's a different so this is a kind of project. This is the integration project. So this is just a way of synchronizing the users again using the SDK. Yeah, and this demo will also be available in the same repository. Yeah, I'm also going to write some tutorials. Yeah, there are a few steps involved when it comes to actual integration, because we have to get to talking and the kind of users that have set up some authorities and so on. So there will be some guides around that. You can still, it's okay. So you can have a mix. Some users can use a password. Some can use a key club. So we have a mix. You're still allowed to... Yeah, that's why when the key club is logged in, it just fully directs the business too. It will verify the key club that you're logged in already, and then there's no login. Demo for now, you didn't have to actually go in and do anything, right? All you did was to click on the button, but you still have to click on the button. So there's no automatic, but if you got the instance, you already logged in. Exactly. It's just because I auto-filled it. That's why it looked like a user password, but I did just click on the button. The user password is because it was not allowed to use that at all. All right, I think that's it. We're a bit over time. Sorry for that. Are there any kind of final questions before we end? If not, I think we are okay for the day. Just a quick couple of points. Firstly, big hand to Morten and Chatterer as well. Thank you very much. And if anyone online or watching is back ready to ask any questions for any of you, what's the best way to get in touch? Integration at tisha2.org is one of the easiest. Excellent. Thank you very much. I think we've got the lunch now, and we'll be back in 50 minutes.


Hello everyone. Welcome to Options with Doug. Streaming live daily on Bookmap Discord and the Bookmap YouTube channel at 1.30 p.m. Eastern Time. And before I get started, I need to go through the disclosures. General disclosure, all bookmap limited materials, information, and presentations are for educational purposes only and should not be considered specific investment advice nor recommendations. Risk disclosure, training futures, equities, and options involves substantial risk of loss and is not suitable for all investors. Past performance is not necessarily indicative of future results. As a reminder, the focus of my presentation and the focus of the Options-Doug Chat in Discord is options, order flow, the impact of options markets on stocks and futures, and the influence of market maker hedging flow on price action. I have a two-step process for trading and the first is planning and I use positional analysis and I look at how traders and market makers are positioned in the options market and how those positions change from day to day to help develop a thesis regarding the expected volatility and trading range for the day as well as a directional bias. And the second step in my process is execution and I look at real-time order flow in Bookmap and real-time market maker hedging flow and Spot Gamma Hero to confirm my thesis and for setups for entries and exits. And questions and comments are welcome and I will be watching Chat in Discord and actually I need to update this. This is now Options-Doug. The WITH is gone so it's I'll update these slides for Monday. Bookmap did a reorganization of Discord so again this is Options-Doug and I will be watching again, watching Chat in that channel in Discord as well as YouTube for questions. So again questions and comments are welcome. Alright let's get started. What I want to talk about today is briefly go over economic data and events and then talk about our positional analysis and then I want to talk about a something that happens on Fridays, expiration Friday. This is a this is just a weekly expiration not a not a big monthly expiration but we can look for certain behavior with stocks and I'll talk about that. That's a call gamma unwind and then we'll look at setups. So first of all news for today the last and I might have been the only significant economic data of the week was consumer sentiment. They came out at 10 a.m. Eastern time and I think the market initially had a little bit of a bearish reaction and then rallied after that. So that was today the consumer sentiment came in a little bit better than previous and a little bit better than forecast and then next week so this week was kind of a reprieve from economic data and events and then it starts up next week with the CPI on the 14th Tuesday the 14th and fixed expiration on Wednesday the 15th and then the big monthly options expiration on Friday February 17th. Okay let's go over our positional analysis now and I'm going to start let's get over to bookmap and the ES futures and then before I dive into that I'm going to start with a bigger picture and view here and this is SPX in a 20-day chart this is thinkorswim showing just price and levels these spot gamma levels these are updated for today these are these levels are provided in a script for spot gamma subscribers for thinkorswim and a number of other platforms and here this is the levels shown in thinkorswim again a big picture chart showing SPX this is the put wall down here at 3,900 and then the key gamma strike at 4,000 and the call wall up here at 4,200 and then these are the levels that are in play today and we'll look at a one-minute chart to get a closer look at that so that is a one-hour chart and now let's take a look a closer look and this is a one-minute chart again SPX looking at the same script and the 40-50 level SPX this is SPX 40-50 level below and then the volatility trigger and zero gamma level above and then the 4,100 level all up here above okay let's go to book map now so this is the S&P 500 futures these are the levels on my chart they should be pretty accurate now this is the spot gamma cloud notes excuse me spot gamma cloud notes provided again to spot gamma subscribers and for book map the way it works is these levels are updated automatically whereas in thinkorswim I have to manually update them but here in book map they're updated automatically and this is showing key SPX levels converted to an equivalent ES number so right now spot gamma is adding 10 points to SPX to come up with an equivalent ES number and that's pretty close I calculated it at just a little bit below 10 so this is good enough so there's the volatility trigger above and that is at SPX 40 40 95 and then here is the 40 the 40-50 below and that was noted as support in the spot gamma am founders note and know that is right next to the lower edge of the expected move for the week at the four again at the SPX 40 50 level so the things to note here is first of all the support at this 40 50 level and this is a at 8 a.m. Eastern time and then the next level support was the spy 405 level and that was noted as support and the spot gamma am founders note as well and that is shown here and this is shown in this second column here these are my cloud notes and what I do is I mark the key spy levels as well as the support and resistance levels that are noted in the spot gamma am founders note so the things to note here again first of all the test of the 40 50 support level at around 8 a.m. and that held a support know the chain note the change in order flow here from pink dots and then aggressive buyers start coming in with market buy orders and that's shown by the green dots there at that at that support level and then the second support at the 405 spy 405 level and that was just after the 10 a.m. data the quick drop and then the move higher let's we can zoom in on this a little bit and a quick run up to the spy 408 volatility trigger and then a move back down to this level and we don't know what that is so note that's just a little bit before 11 a.m. let's go over to the spy chart and there it is the spy 406 level so let's go back to ES and then there's this reversal at 4095 so that is the only that's the only level that I have here on my chart that I can't explain with a you know a quick look at the spy or spx chart then a move back down to this support level and this was noted this is 4065 noted in the spot gamma a.m. founders note then a move back to the 408 level spy 408 volatility trigger so even if you didn't have hero all you had with with these levels you can trade order flow around these levels and there was a comment in and discord bookmap discord just a few minutes ago JC was talking about coincidence at certain levels I'm not quite sure exactly what levels he was talking about but this is what led me to bookmap and spot gamma in the first place what is price react at certain levels and the combination of bookmap and spot gamma has answered that question for me so you know here I'm showing the importance if you trade if you trade ES both spy and spx levels are very important and price often reacts around those levels okay so that is that's the S&P 500 and we'll look at we'll look at setups in the and we'll look at setups in the S&P 500 there are some really good setups with hero divergences so again the point here is the combination of spy and spx levels you know it's some it can be time-consuming to to note all this but I think it's worth it to to understand where price is most likely to react and reverse and you know as we seen well we've seen here in this chart okay shifts and levels so nothing there's nothing really which was kind of surprising to me given the you know given the move down yesterday for the S&P 500 and QQQ the only shift down was a shift down one point and the spy volatility trigger from 409 to 408 and remember yesterday there were some discrepancies about the SPX volatility and zero gamma levels so I'm not you know I didn't didn't check and compare those so again not the call the main levels the put wall call wall key gamma strike for SPX and spy there were no changes yesterday and you know again I think that's a little bit a little bit odd they are potentially the trading yesterday was concentrated as and zero DTE options and there was no change no significant changes are significant changes in the open interest were not significant enough to change these key levels so I hope that makes sense so again I you know I don't know but it's you know it is what it is so no no significant change in the key levels okay so let's take a look now at the gamma charts okay let me check for questions all right so first of all let's say retest of order flow at 1035 that's 4075 so that is the highest support level that I have for SPX was 4065 so that's this level right here converted up to the ES 4075 so at 1035 where is that so that is the that's the move down at so rejection of the volatility trigger the 408 volatility trigger yes I think that may be a little bit far away and I have the volatility trigger at 4095 so I think this spy 408 volatility volatility trigger was in play at that time okay so JC was agreeing with that and so let's go ask just curious if EOS ES gets to 4075 is a long possible and certainly yes all right let's take a look at so maybe I got something wrong so let's first of all let's go I would confirm that with with order flow and with hedging flow so we'll take a look at hero in just a minute so let's take a look now at let's go to the founders note let me just get rid of these right so this is what I was looking at so this is 4065 so that is SPX 4065 and spy 405 noted as support and there it is at ES 4075 so that's the support so I think this this reaction from 1035 to about 11 was from spy 408 to 406 so this is what let's see this is the we draw it with this so there's the reaction around 1030 at the 408 volatility trigger and then the move down to 406 so that's what I was looking at that's the levels that I was looking at all right let's go back all right so the 4075 possible long yes again we'll look at hero there's a question how can I learn about the key gamma level concept and so there go to the spot gamma website there's plenty of free information there and watch my videos watch the spot gamma YouTube videos so there are a lot of spot gamma concepts but I suggest just starting with the the support center on the spot gamma website okay so that is that's the yeah the SMD 500 ES spy and SPX all those levels are in play and let's go take a look at the gamma charts and we can see where some of these levels come from so these are the absolute gamma levels and this is the zero line and above that line this is positive gamma or call gamma this is market makers position market makers position at these levels so positive gamma or call gamma above and that show by the black lines and negative gamma or put gamma shown below with the teal lines and this is showing the SPX 4000 strike that's still the key gamma strike 3900 is the put wall and then 4200 up here is the call wall so the key gamma strike is the strike is the absolute gamma strike the strike with the largest absolute gamma and the put wall is the strike with the largest net negative gamma and that can be expected to act as support and then the call wall is the strike with the largest net positive gamma and that can be expected to act as resistance so notice all the gamma is really concentrated are mostly concentrated above the 4000 level for SPX let's take a look at spy and here's the 410 key gamma strike and then 400 is the put wall that's pretty obvious the strike with the largest net negative gamma and notice now the gamma concentrated really the put gamma concentrated mostly between 400 and 410 and you know of course there's some down below and then call gamma concentrated above the 410 level and now 415 is the call wall so 400 is the put wall 410 is the key gamma strike and 415 is the call wall okay there's a question in YouTube may ask a question about whether today is a little put Vanna rally and yes and it's not because the weekly it is because of short-term options or short-term puts not necessarily because it is a weekly expiration just because traders were trading long-term puts and I'll talk about more about that and that was a reason for a big reason for my bullish thesis today for the S&P 500 so yeah and there was also again caught talk about call gamma unwind and some stocks okay so that's spy and recall a few days ago we were looking at the concentration of gamma between 410 and 420 and now that has really kind of gone away and gamma is mostly concentrated in the 410 to 415 level and then let's take a look at Nasdaq so gamma is pretty well spread across call gamma mostly above the 300 levels the key gamma strike call gamma mainly concentrated above and plenty of put gamma down below okay let's take a look now at take a look now at the data and we'll take a look at gamma notional and this is market makers position on the gamma curve and now gamma notional has shifted to negative for SPX spy and QQQ so the shift this week has been been gradually more negative for the most part or actually the last yeah for the most part this week one day of up our shift positive at the rest of the days gamma notional has shifted more negative so now SPX gamma notional is negative from positive 154 yesterday to minus 151 today so what this means is again market makers position for SPX and spy now are both negative gamma this means that market that traders are long puts market makers are short puts they have to sell futures as price decreases to hedge their delta exposure and important for today they have to they can buy back futures if price increases or implied volatility drops so they're trading in a negative gamma environment they're trading with price to hedge their delta exposure and that tends to increase volatility since they're trading in the direction of prices price falls and then as price increases their delta exposure decreases and they can buy back their short hedges so SPX again yesterday went from went from positive yesterday to negative today and then yesterday spy gamma notional was minus 691 and today minus 1284 so more negative for spy and then yesterday QQQ gamma notional was minus 104 and today it's minus 272 so a shift so that now all SPX spy and QQQ market makers position on the gamma curve for all those all those instruments is negative let's take a look at the quick look at the Vanna charts and it confirms it's just a visual representation of what I'm showing about talking about so this is SPX this is showing that market makers delta notional delta exposure will increase slightly as price drops and the green curve shows that as well as the Vanna effect and that's the change with delta with their delta exposure as implied volatility changes again and that's the Vanna effect and the black line shows how market makers delta exposure changes as time passes and that is the and that is the charm effect the change in delta as time passes so it's a little bit more pronounced with spy steeper curve so again this works both ways as price decreases market makers have to sell futures and as price increases they can buy back those short futures and then finally here's QQQ all right next thing I want to take a look at is my key gamma strike list and again this but well so first of all this is just a simple spreadsheet and I track the key gamma strike for all the stocks on my watch list the right column is showing the previous key gamma strike that was from yesterday the current key gamma strike column shows the key gamma strike for today and it's a I like to track how these change from day to day and I color code the color code the numbers just to make it easy to look at so here I can see that Nvidia key gamma strike increased from yesterday and Microsoft the key gamma strike dropped from yesterday so again this is just a simple spreadsheet just a quick visual reference okay so given all this my thesis for the day I was looking for a little bit higher volatility than yesterday due to the all the gamma notion will be coming more more negative and I again I was for the S&P 500 I was was bullish and again I thought this was this key gamma strike list was kind of odd given the drop yesterday so anyway my for the S&P 500 my thesis was bullish and that was primarily based on this information here so talking about the there was a question about a put Vanna rally before and that's really I think what what's in play today are helping you know adding fuel to any move higher so implied volatility increased yesterday the puts that traders bought or want to buy are becoming more expensive so this is noting this is from the spot gamma am founders note that to continue or sustain the downside momentum they need to continue selling hedging so traders as price drops market makers have to sell futures so that needs to happen to sustain this downside momentum and noting that a pause in the outside price reaction immediately starts to decay these short dated puts remember the shorter dated puts have higher gamma and this like likely draws dealer buying flows so this is what what I read the reason that I was bullish today is looking for any move higher and a drop in implied volatility for traders are for market makers to be able to buy back their short hedges due to these shorter term shorter term puts quickly losing value okay so I hope that makes sense so looking for the put Vanna effect today because of the increase in volatility yesterday and the trade in short term puts okay let's let me go through questions okay there's a question about oh from trader HE question about ES and think or swim so let's go we'll take a quick look at that let's go to ES the trade stats so if you're trying to determine whether trades puts and calls were bought or sold and I would look at spy over ES but if you do want to look at ES I would look at this let's just look at calls for example showing that traders are calls trading on the ask and trading on the bid so I would assume that traders are buying calls any any trades on the ask I would assume they're buying and any on the bid I would assume they're selling and you're asking about puts so the same thing so we can take a look at puts so it's pretty even 177,000 versus 168 so more of a difference in calls trader selling calls and it looks like they're slightly according to this buying puts over selling puts but pretty even for puts all right let's talk about the call gamma unwind and there were some questions about this so let's take a look at and how to how to determine this how to use it and what you know what you can do about it how to trade it so what I do is I sort my watch list by this next expiry gamma percentage so that's the percentage of gamma that's expiring today and I'm sorting by the highest number so at the top of the list there's coinbase snowflake Netflix Tesla Disney and Nvidia and what I'm looking at is this date right here so this is today top gamma expiry today so then what I do is I'll go through this list and I'm looking for some sort of extreme so this would just quickly look at this composite view chart the red shows that this is entirely put dominated so I'm looking for a call gamma on one I'm looking for a stock where traders have been buying calls all wake and if you look back and discord as well as on Twitter for the post last week of meta I showed a good good example of this so coin that's not a not a candidate snowflake yes so there is some call gamma above 175 and these are 35% expiring today so these calls are going to be losing value due to charm for sure so their calls are quickly losing value as expiration approaches this afternoon and probably could be Vanna as well and again recall I showed in the meta example implied volatility dropping during the day so snowflake is a candidate Netflix not so much I think the 400 level it looks pretty insignificant so here's Tesla and here's the example that I want to show so Tesla call gamma above 215 let's take a look at the put and call impact chart so we can see where call gamma dominates above that level that's showing the that shown by the orange line the call gamma line up below the put gamma line right so let's go back take a look and generally I'm looking for this number to be greater than 30% that's what that's what spot gamma recommends so and Nvidia was actually in play to it's a little bit less than 30% and we'll look at both Tesla and Nvidia and typically for this weekly call gamma unwind this will happen with on bullish weeks or stocks that have been bullish during the week trader subind calls and typically for a weekly expiration this is going to be related more to or occur more with high beta stocks like like all these examples here Coinbase snowflake Netflix Tesla not Disney but Nvidia so all these stocks you know actively trade are very volatile compared to the S&P 500 and as I recall both Tesla and Nvidia were strong this week so we'll take a look at Tesla so again that this the way this works is that traders buy calls that expire on Friday and market makers sell the calls so they have to buy stock to hedge their delta exposure so they're long stock and then as these calls lose lose value at the end of the week due to charm the drop in the change in delta due to the change in time the passage of time as well as Vanna drop and implied volatility so these calls are losing value market makers delta exposure decreases and they no longer need these stock edges so the way that I do this again I I sort my list by this next expiry gamma percentage then I check the percentage make sure it's close to or above 30% then I look at the date and then I go down here and I check whether there have some calls call domination or put domination and this is what I'm doing for stocks for call gamma unwind and then now I'm going to confirm that with order flow so let's go to Tesla and I'm going to go to hero now and let's let's zoom in on the morning and let's see what traders were doing and so there we go in the morning quick run up and then traders started selling calls they were buying puts the whole time so this orange line shows initially they were buying calls they started selling calls and the blue line shows they were buying puts from the open all right let's go to book map now and see what what order flow looks like and I'm going to zoom in on this just on the first first moves in the morning so recall that traders well first of all we're anticipating a call gamma unwind order flow definitely confirms that as well as hedging flow so we see the traders are buying puts they're selling calls and order flow I I think I'd love to trade Tesla order flow is so clear in here look at the look at all the pink dots these are aggressive sellers market sell orders and then notice the the shift here here's a double bottom all the green dots coming in and if you are short that that tells you it's time to get out and if you want to go long you know certainly there was a a long worth five or six points here and very easy to see in order flow here you know that's just what makes this order flow and seeing this visualized in book map and I don't think you could see anything like this in a candlestick chart just makes trading Tesla and this is pretty typical for Tesla so easy to see so again for Tesla we were anticipating a call gamma unwind and that's what happened in the morning and let's let's zoom out and take a look at the entire chart now and see if that's continuing so some up and down for Tesla mostly down confirmed by order flow pink dots down green dots up pink dots down CVD confirming that cumulative volume delta and let's go back and take a look at hero and hedging flow is confirming price action again as well mostly mostly in the morning session the strongest correlation was here in the morning all right there's Tesla and let's go take a look at one other one other stock on the list now recall that Nvidia had about 26% gamma expiring today so bearish for the most part not as quite as clear confirmation as Tesla so let's go take a look at book map now we'll take a look at Nvidia and great shorted Nvidia here and a reversal at the 220 hedgewall and that baby that may not be correct I may have typed that wrong let's go let's go check that in equity hub I think 220 may be the call wall no that is right 220 is the is the hedgewall 230 is the call wall 225 is the key gamma strike and then 210 is the put wall all right so reversal at the 220 hedgewall and a move down to liquidity targets at 214 to 12 and then the 210 put wall and this was anticipated because of the call gamma unwind and then confirm with hedging flow and order flow all right let's go take a look at it hero again zoom in a little bit in the morning so this is pretty typical of Nvidia recently there is confirmation but it's not quite as clear as Tesla for example but still certainly confirmed in with order flow and anticipation of the call gamma unwind let's just go back in and I don't think we looked at this so what I'm looking at is the call gamma above the 235 level so again that's far out of the money quickly losing value and market makers are unwinding their long stock edges is their delta exposure decreases and then snowflake is one other stock and again call gamma above the 175 level let's go take a look at snowflake and more of a stronger confirmation there and it looks like some great pullback entries here as hero is moving lower throughout the day so there you go there's the call gamma unwind three three good examples and you look at this for arm again I gave the process so I I've got a watch list this is Friday a weekly expiration and I'm looking for stocks with an amount of gamma expiring greater typically greater than 30% today and some call domination some calls above and looking for market makers to unwind their long stock edges is their delta exposure increases as the calls lose value due to charm and Vanna right so that's snowflake so again three examples Tesla and video snowflake all right let's take a look at the S&P vomiter again remember bullish thesis based on if price increases all these short-term puts are going to lose value so this is kind of the the opposite reaction from the call gamma unwind and again recall that the SPX and spy gamma notional was negative today and then spy gamma notional in particular was was quite negative at 12 minus 1284 so there were quite a quite a few divergence long setups so I'm drawing a line corresponding with hero the purple line and the white line is price and there's the first setup just right after the 10 a.m. data as price drops and traders are taking have already started taking positive delta positions about 945 and that continues not quite as strong but leading to another long setup just before 11 a.m. and recall we did show the levels where these were price was likely to react showed them on the ES and the spy chart and here's another setup long setup about 1220 hero continues strong and price reverse is higher all right let me there's looks like quite a conversation going on here in in discord let me see if there's anything that I need to answer and JC says yeah next time you have to bring cookies if you're late for trade or HE I agree so right do market makers short ES simultaneously as they sell puts or something that they do at the end of the day so it depends on the instrument so their market makers are buying and selling ES futures to hedge options trades in SPX and spy and they do that differently so for SPX this is pit traded and often those and you know could be between institutions so often those trades are hedged as or before they're actually placed so on the other hand spy trades are traded spy is traded electronically and market makers have to hedge those trades pretty quickly generally certainly differently than SPX so when I'm looking at the options trades for the S&P 500 I look at spy and so does Brent with spot gamma the founder spot gamma and he discusses this so but this is something especially for spy no they're not waiting until the end of the day they're doing that sometime during the day I think it depends on you know they want to remain fairly delta-neutral so whenever whatever they have to do to remain delta-neutral okay and there was a question about gamma notional or the yet JC is responding with the information about gamma notional so thanks for that so again the timing of it depends on whether it is SPX or spy and for spy it's typically not necessarily immediately but certainly they're not waiting until the end of the day okay I'm still following the following the questions and you Lee 73 ask of all out of all spot gamma futures how would you rank them I can't do that so I I'm showing in my webinars every day I talk about what's important to me and I'm not leaving anything out and I'm not adding anything extra so there's a lot to take in so again I'm talking about I'm showing and talking about everything that's important and I'm going over my positional analysis which is based on static data from spot gamma that is generated a lot based on open interest that is provided once a day once top once during the night and spot gamma adds their own proprietary information to that gamma and then that's important to have a framework for the day what what you expect to happen and then I'm looking at real-time order flow and spot gamma real-time order flow or hedging flow and spot gamma hero and real-time order flow on book map so I can't I can't rank them and I'm not sure why you would why would why would you want to do that you know I think it's all important if I if I was trying to make a decision about how much money I wanted to spend for a subscription you know I talked about before if you just had the levels just a basic spot gamma subscription had the levels you could trade around those with order flow and I think that hero adds certainly adds an extra level of confluence to me and that's very important so again I'm not not keeping anything out this is what I look at every day and these right another question to see where liquidity are above and below and I look at liquidity as a as a price target and so for liquidity and spot gamma levels and I'm reading through the last think the last question here normally trade close to spot gamma levels or far away toward levels and both so I look at if price is moving up and there's a spot gamma level above or a liquidity level above I assume that as a as a target and then as price approaches I assume but confirm with order flow and hedging flow that it may be resistance for example so you know we saw on these charts charts before price reacting at at the levels let's go back and take a look at book map let's go back to ES now you know and I've showed all these examples a price and this is looks like you know pretty much a range bound day price reacting at all these SPX and spy SPX and spy levels so for example here let's zoom in go to this morning move as price move down I was looking at the 4065 that's SPX 4065 level and the spy 405 level as support and a target as price move down and then order flow and hedging flow both confirmed that these one of these levels would act as support and price moved higher and as it turns out the 408 spy 408 volatility trigger and notice the liquidity there at that level that's shown by the the orange shading there that acted as a target and then as resistance okay I hope that answers the question all right so that's really all that I wanted to look at those are the best setups the long setups and the S&P 500 and then the short setups and and long as well for Tesla NY and the call gamma unwind stocks let me check for final questions okay so again it today what really the keys for today we're first understanding these levels where they were and whether they were likely to act as supported resistance and then understanding how market makers were positioned on the gamma curve for both the S&P 500 as well as stock so in the S&P 500 we saw that gamma notional was negative for for the S&P 500 particularly spy and expected to that that to be related to a lot of short-term puts and watching implied volatility drop and price rising then knowing that those puts were quickly losing value and market makers could buy back their short hedges so that was what was driving a bullish thesis today for the S&P 500 and then just the opposite for stocks that had a lot of gamma expiring today and had some call domination at some level knowing that market makers as those calls lost value due to Vanna and charm market makers would be able to sell their long hedges so knowing the levels and how market makers were positioned on the gamma curve and both the S&P 500 and the stocks I think were the those were the keys for the for the day so anyway that's all I have I think I've answered all your questions I hope thanks for your questions and comments thanks for watching and I will see you on Monday thanks again bye


JXD and who are you? Yeah, my name is Sherry. And who are you? My name is Jojo. And this is a new JXD right here. What is the size of the screen? The set screen is 7 inch. 7 inch? Yeah. And resolution? Solution is Nevada. 1080p? 1080p and can you play? Yes. Let's try playing on the screen. So this is NVIDIA Tegra K1. Game player machine. So what is the history of JXD? You make many game players before? Yes, we have made this game for a long time back. We started the business in 1995. 1995 to make game players? No, no, no. Our company was established from 1995. But only this game player is new product. It's our company new product. But it's still a little time, no? You've been doing the game player years. It's a long time and a long history. Yeah. This is K1. A stable, fast video game player with HDMI output. Can we look at the connector on the side? So this is HDMI? Yes, this is HDMI. HDMI, the buttons here. And singularity. You put that there. That's cool. Can you hold there? Micro SD. And all this kind of stuff. Is already available? Yes, already available. Since when? This year MP the product. So mass production is available? And how much it cost? What's the price? It cost US$200. For how many pieces? For 1,000 pieces. Already have big order? Yes, we already got a big order from China Market. China Market is already good? What do you say in Europe? USA not yet, but they start for this year. Cool. And you also have other player over there? This one? Yes. What is CPU in here? CPU. What is the CPU in that one? This is Rockchips 3188? This is from last year? Last year model? Yes, this is old model for last year product. How successful is this? Yes, this product is selling very good in China Market. So only in China people like to play the game? Not in USA and in Europe? Not in America, we got some others.