Database Version and Security Waiver Implementation
Discussion on Version Control and Security Waivers
Original calendar title: MVP Slash P 1
May 22, 2026, 12:00 PM
ActonOS summary
Database Version and Security Waiver Implementation
Date: May 22, 2026
Attendees: There, Stack, Other, How, But, Flutter, Saba, Akash, Engineering Team, Product Team, Implementation Team
The meeting focused on implementing strict version control for databases with associated security waivers. The plan includes restricting database and guest OS versions to 'N', with provisions for older versions requiring security waivers. Key concerns included customer notifications and maintaining system consistency amid numerous security fixes.
1. Security Waivers
- A system to manage the provisioning of older versions via API with waivers.
2. Notify Customers
- Begin the communication strategy for notifying customers of the change in database version policy.
Action Items and Follow-ups
1 trackedIn progress
Notify Customers: Akash will Begin the communication strategy for notifying customers of the change in database version policy.
Next step: Follow up with Akash if there is no update in 2 days.
Follow-up Points
Nothing flagged.
Additional Notes
- Plan to analyze the regression impact of security fixes and improve quality control.
Decisions
Nothing flagged.
Open questions
Nothing flagged.
Risks
Nothing flagged.
Commitments
1 foundNotify Customers
mediumopenBegin the communication strategy for notifying customers of the change in database version policy.
Akash
No deadline
Transcript
All right, how's it going? All right. This whole security, the discussion is just getting more intense. Last 10 minutes, I didn't check Slack and there are 2300 messages. It looks like something is going on. Yesterday, we had one call with Warren. I mean, it was more about N and N minus 1 supported cloud. We are kind of restricting. Was there any kind of fruitful outcome from that call? So I can update quickly, right? So DB and GI both proposal is only N is the available versions for provisioning, for patching. There are three proposals, three milestones. One is the immediate, two weeks, within two weeks milestone. So only N is allowed for provisioning, patching, and backup restore, restore, create database from backup. That is a version which we consume when we provision database. So even in that flow. So only N is allowed. If you need older, then short term, short term meaning in the next two weeks, what we are going to deploy, given all this mythos and all that, you can file an SR and you can accept responsibility for the security risk if you want to provision or patch using older N minus 1 or 2 or 3 or 4, whatever it is. Initially, I think Warren was like, once you sign the waiver, how does it matter? You can go N minus whatever, 9, 10. Then we kind of had a back and forth because already cloud only supports for stock images, it only supports N minus 4. So long story short, that came down to through exception, SR exception, you can take any version if you like, but you have to assume the security risk. So that is a two to three weeks proposal. OS, same thing, only N. OS meaning guests only N through without exception, only N is available both for VM plus provisioning and guest service patching. Then the medium term, which is right after like four to six weeks out, is N continues to be available without any issue. N minus 1 and N minus 2 for DB and GI will be available through a security risk waiver, but you don't have to file SR. It will be through some cloud API. There will be some cloud attribute which stores your intention, where you sign the waiver in blood or something, whatever. We need to design that. So N minus 2 is going to be available through API, but same, security waiver is required. For some odd reason, I think there was a big debate that in X-ray data, Linux issues are more publicly known and whatnot. And there it is N minus 1. So you have N and N minus 1, which are available. So N is, of course, you don't need any waiver. N minus 1 through API, you will have a security waiver you have to sign and assume responsibility. And then anything below this, for DBGI, below N minus 2 being N minus 3, 4, whatever, through SR, and for guest, anything below N minus 1, which by the way, in guest OS is monthly. So basically, you're just giving two months of versions in cloud, meaning one is the latest current month, X-ray image, and then one month before through the whatever security waiver, API security waiver. And then everything below that, if you want to use, you have to file SR and whatever. The SR will have some automated approval thing where you will have to accept the terms of the security impact to applying something older or using something older to create also, you will need that waiver. So that's where the conversation is right now. Nothing to do with MRP yet. That will be like a separate discussion. So, but the decision is made that today or tomorrow, because two weeks from now, if we are implementing this, we have to send a notification out and reach out to all the bigger customers because they may already be halfway through using the API for already existing versions. You may have custom images built with older values or whatnot. So those all things will now fail and you will have to raise an SR in the short term. So that notification, that customer notification will be sent out, I think we have like next three, four days, and I think the effective dates may be from when this will happen is May 28th or June 1st or 2nd. I mean, between that time frame, between 28th and 1st. Yeah, that's where this is. It's pretty crazy that we are kind of, you know, changing the acceptable versions. Already our customers are not very happy with what we support and now we are making it even smaller. So, but yeah, I mean, that's multiple times. The problem is this height. If a customer has like a production database at a particular version level, right, and he's expanding on it, he needs exactly the same version. We cannot tell him, right? We discussed all of that. So whatever thing which I did not realize that in this, whatever MRP or I don't know whether it is DBGI combined, but some numbers which one is saying in this, whatever May and June MRP, like we are looking at 5000 fixes per month, security fixes, 5000. He's like saying that's the number of fixes. So the next RU and then the MRP is inside that RU is almost non-negotiable. If you are not on it, then we don't want to be responsible for it. You may have a database and he is like saying... So that's what you were saying that if, are we changing the rules perpetually? So he's like, we will see, folks were like, between now and December, we will see how many of these issues we are fixing. Right, but for RU 13, whatever, this one, 32, right? 32 and 33 for sure is like the fixes are way too much. And that is more of an MRP decision. The number of fixes are so huge that we will have to force them to take MRPs also. Right now, all this logic is... The problem is this height. If a customer has like a production database at a particular version level, right? And he's expanding on it, he needs exactly the same version. We cannot tell him, right? We discussed all of that, that have whatever thing which I did not realize that in this whatever MRP or I don't know whether it is DBGI combined, but some numbers which one is saying in this whatever May and June MRP, like we are looking at 5000 fixes per month, security fixes, 5000. He's like saying that's the number of fixes. So the next RU and then the MRP is inside that RU is almost non-negotiable. If you are not on it, then we don't want to be responsible for it. You may have a database and he's like saying... This is like a one-time decision. That's what you were saying that if, are we changing the rules perpetually? So he's like, we will see, folks were like, between now and December, we will see how many of these issues we are fixing. Right, but for RU 13, whatever, this one 32, right? 32 and 33 for sure is like the fixes are way too much. And that is more of an MRP decision. The number of fixes are so huge that we will have to force them to take MRPs also. Right now, all this logic is... Yeah, I know, we are hitting customers badly. So I don't know about this MRP thing, you know, you know, it's just been around, but we are not publicizing it a lot, right? So they are saying, why in the heck is CSE doing it? Because it needs like monthly fixes, these are products so buggy. I mean, that's what somebody was saying, right? Like, typically, we have like five, six fixes monthly. But now we have thousands. Yeah, yeah, thousands, right. Even MRP will have thousands and thousands. That's what is expected. I mean, you'll see, but the number of fixes till this whole thing kind of, whatever this Gen AI or whatever Codex is finding it, Mythos, or whatever, whoever is finding these things, till it gets to a point where at some point, let's say, just make it up, like you always say, let's say by December, the most of the fixes are in, and after that, every time you run this, it comes back to a normal level, which is mostly whatever normal product fixes we do, it's only the data. But this is all historically, whatever we have, is getting exposed, and we don't want to assume responsibility. So on-prem, they completely turned it off, right? So only NS is available, everything else is, you have to sign the waiver. Cloud, that's what, I mean, effectively, that's what we're doing, but we have some more API-based services waivers. Basically, we want customers to go to the 19.32, right? Or you sign the waiver and accept responsibility for it. We don't want to be responsible. That's the key. You can continue, maybe you have a business case for continuing to be on whatever, 19.13 or 20 or 21, whatever your production is, but you need to have somebody in the customer side see so as to sign that document. That's what we want. See, we got a notification from one customer saying, oh yeah, there's so many issues in 19.30. Yeah, that's a different... I don't know how we... I think it's an action item. Those guys, you know, they mix up the tooling versus the content, you know? So... The thing is, there is so much wrong with their FIP. Oh, no, no, no. But what I'm saying, one yesterday asked an even more nuanced statistic. He was saying that, can somebody tell me for DBGI and X-ray data, the number of regression bugs which are caused by our security fixes or any fixes which we deem necessary, because those are also introducing regressions. So are we tracking the regressions from security fixes separately? Because that is another, like, customers will be saying, are these all net new problems? Are we fixing something? Are your fixes causing more problems? You know, but he's like, of course, we're not externalizing, but he is trying to understand, you know, are all of these just net new things and we will tail off? Or are we saying that every time we fix, regression is also an X percentage of fixes? So... I mean, we have to tighten, you know, the real issue here is not that, because when I get a problem from a customer, right, I go to my team and say, hey, look, guys, you know, do we have a test case for this? If there's a test case, what is the result of the test? Did we pass it before we, on the main and on the audio, did it work correctly before we shipped it to customer, right? That is my line of thinking, because we, development writers cannot anticipate and fix every bug, okay, right? So the focus should be, rather than, you know, saying there are more and more bugs going to customers, we should be looking at how can we reduce that by building a better quality control. Right. So Sam, I mean, again, I think here the overall quality control is, I don't know what the focus is, but secure bees are all security-related ones. And I think what we publicly, I think whoever that bees sent out that email, right, like evals, right? I forgot the first name. The email from our EVP, assuring all customers is that we will make sure that all publicly found, like, you know, security vulnerabilities will be fixed in our code base, right? And he is also coming to some date every month. I think it's the 18th of every month, right? So that, and it is, this is a new world, right, Sam? I think, I don't know. No, it's public ones. It's not things that Codex found or something. Correct, correct. So, which is exactly the public ones, but the thousands, the thousands are coming from Codex and Kiwi and this and that. Correct, correct. And it's not like they're not introducing regressions, right? Yeah, yeah, yeah. I mean, there was that one, you know, XML path validation thing that, you know, it worked fine on 23, but then, you know, it got backported to 19 and then it broke the installer because nobody runs install LRGs when backporting something to 19. And it broke not because they were calling the code, but because they had a jar file that was conflicting with the jar file that we were using, API that we were using. An old XML parsing jar. So, you know, that kind of thing, I don't know how we could improve the quality control to find it other than, like, you know, I mean, to install LRGs for every backport. I don't think that's going to happen. Yeah, it's tough. Anyways, okay. Yeah, let's move on to the, I think I put in the subha. Say subha. Thanks for joining subha. He's there? Yeah, yeah. We've been missing you for a while, subha. Where are you? It's okay. I know. Subha, your audio is not there. Can you hear me now? Yeah, now we can hear you. Oh, yeah. So I escaped from you guys. And some things have gone wrong. No, I think, yeah, I know. But today, I think what I wanted, I think, you know, we discussed offline and we kind of, tomorrow, the engineering kickoff is scheduled for the DBGI and the DomU, right? What we discussed. So I thought we will just walk through that thing with, I think, Sam and Jonathan had been there, but including subha. Maybe we can just have a peek walk through of what we are going to present even in the kickoff. Right? That we fully, we know what is the picture. So maybe Vikas, go ahead Vikas. Go ahead and share the story. But Sam, this is all the things that we have been discussing, right? And so we have a consensus now with the Prince also, right? That this is what we will tackle for the DomU DBGI. But we will have a discussion still about the full post story and other things, right? But the idea now is, this piece is aligned with that other thing, Prince. I think that is what is the bottom line, right? The DB, DomU and GI that we are doing is workable into our higher model that you have been discussing for the post and things. Right? Makes sense? Yeah. Okay. Okay, Vikas. Yeah, go ahead and then maybe. Sam, I don't know if you have. We have the recording and the AI thing on, sir. Because it's a totally different look, I'm seeing him after a really long time. Any guesses about? Yeah, yeah, yeah, that's it. That's it. One feature here. All experiences. Good. Okay, let's go on. Okay, we are good. Yeah, so I guess we'll start with the create collection flow. So basically, like, this is a new drop-down menu value that will be added for the collection time. And of course, I think there was some back and forth about whether we use a different pattern, but I think for now, for this project, we'll go with this pattern, just showing a new drop-down value. Hey, because I put my screen and, when I see it again, create again. It's okay, I can't make out the letters. You do one more. One more larger. Yeah, just about I can make out except for database service on dedicated infrastructure. Okay, I can manage to read it. Okay. Okay, yeah, just a thing, these are still marks, drafts. Subha, Prince, Vikash has been brainstorming this, but I think I will leave it to you, or I don't know, Prince, we have been thinking of involving the designers also if needed, right? But this is just a rough draft marks. Okay, yeah, go ahead. In the previous discussions, I think we thought rather that for MVP slash P1, we will go with one major version for OS, just one major version for GA and major versions for database. I just call it out, the call out the Scorpio. So in the future roadmap, we will support like multi-select support in the next nine and eight for OS and so on, but for P1 slash MVP, we went one major version for GA and one major version for GI and one-one major versions for plugins and so on. And the other thing is, we'll look at it on the next slide, but this is, we are introducing a major version limit to today's the today when you do a create collection for stack, the major versions are not shown here. So this is a new like addition to the flow for the stack is. Yeah, and then once they select, Yeah, like one more one question. So the Linux 8 would be a dropdown, like what are the values we have to show? Would you? Yeah, I think today it's only eight. I think today, actually, today, I think the API has six, seven, eight, but based on the discussion with Kesar, it makes sense. The web UI can only show eight. I guess we don't have to show one. So we have a filter for that one. It's a point to be called or it's going to be like you need even values. Oh, I think there is one, one project probably in the works to offer an API that we show the supported, actually a major version plus release versions plus previous versions, but at the moment for the time being, if that project GS before the same, we can leverage that. Okay, so should we relay on that feature, that API? I think we'll go after that, right? After that preview. Yeah, this will go after that, so I think until then we can just maybe hardcode 8 and then put all the targets. And GI and DB, I think, today already. Yeah, it should be totally independent of what you select. Yeah, but yeah, these are the multi-select dropdowns in the future. But for now, it's single-select for OS and GI, multi-select for DB. It shows double though, right? Because for GI, I see 19, 600 BA. Yeah, and I can change it, but I just called out for P1. But that's pretty correct, right? Yeah, I mean, I put the note here saying for it's only single-select for OS and GI, but I think we can add an extra note. Yeah, so only for this collection type. This one and the one we already shipped, Salvat. This is the second extract type, right? So we have the GI in OS, and this is GI OS DB for both of them. We will use this pattern. The other ones we've not scoped. Maybe it will all line up, but we don't want to increase scope and go and look at DB and single collections right now. Maybe it will just work the same format as well. I think there was a previous conversation that simplified the whole system. Yeah, so that's why we are just focusing on the stack for now. And then maybe these changes will propagate to other collection types also, but right now not what to focus on. This is basically after the search. And the other thing I'll mention is that today the search criteria kind of migrated. Wherever it's creating a stack cycle, they have to open the drawer. With the legacy going forward, they don't have to do that. They can just hit create after specifying the major versions. So this will align with the single component collections like DB or GI. Basically they can create like an empty collection just with the major versions bundled, and then they can add the targets later. And that's just, I don't think many people are doing it, but we are just aligning with other collection types. Well, it's all or nothing, right? All or nothing or... Today, like if you go to a DB collection, you can skip the search criteria altogether and just select the major version for DB and hit create. So when we see the targets, targets would be under that table, right? In a DB case, that's not required. You can just go with an empty target and still create the collection. So we are just aligning this to that. So that's what we are saying is that the targets is not a required thing for you to define your collection. You can just say that I have a collection and then you can add targets post-create or during create. Before the API would error out. That's just a minor thing, the thing we need to kind of, you know, like... So what is this table then? No, no, this table is if you hit search criteria, you add 50 targets and you click create, that is the regular flow, right? Even if you don't add search criteria, you just create and then add target later, that is also, that was not supported for Stack before. So we are just saying we're correcting that, that you don't, targets are not required to create a collection. You can add targets post-create. That is how all other collections are and Stack will also follow the same part. This is nothing new we are saying. You can add targets and create or without targets also you can create. That's the only thing Akash is calling out. Yeah, I think today the behavior is the create button is disabled. So we're just saying that this will always be enabled. This will be enabled as soon as they enter the major versions. Can we totally remove the table only if they hit on the search criteria after they choose target, we can show this table. It would be confusing, right? We show tables with no items to display. But basically, so now that's a different UX discussion which we need to do, right? So this is there for all selections, right? All five elections. You're saying that that is a different, I think, enhancement we should work on. Previously, like we should have some targets, right? No, zero state, we never have targets in any other collection. And when you hit search criteria, you find it and then add it, then it shows up here. That's how the current behavior is. The only change is that the API errors out if you don't add any targets. Today, it is, that is true for other collections here. I mean, for stack collection, we just removing that restriction that you are allowed to create a collection without targets. But that's not the emphasis. We are just aligning with whatever is existing. And we can change that pattern also, but let's keep that as a separate thing. Okay. That's it. Your feedback, Sabha, is that, you know, that should we change the interface of how we add... Targets are not required, right? So we don't need to show that table. If they go to edit search criteria, then fill in, then they select targets, we can show the table. I'm just looking at the current implementation. So current, all collections have that table. We can remove that. Yeah. Okay, let's... We can take that as a side enhancement. Yeah, okay. Because I think Sam also provided feedback. We'll probably change that whole add targets experience as a separate focused item to make it slightly different. We have some ideas, but then that will kind of deviate from this whole vertical. We have to get the DBGI OS out. So that one, maybe it will come before and then we can use that presentation. Maybe it will come after, but we don't have to overload this project with that enhancement of, you know, target selection, if you will. Okay. So edit search criteria for this use case is only to choose some targets if the user wants to. Yeah, which is true for all the collection types, all five collection types. Okay. And then as you enter the search criteria and hit search, then once the search is done, this table will be populated. And then for the new stack type, the proposal is the table will become like a tree table to show like a hierarchy of the trusters and associated databases like China resources, basically. And we can discuss this and presentation if we can simplify it further, but for now, I think we will. So what is this table then? No, no, this table is if you hit search criteria, you add 50 targets and you click create, that is the regular flow, right? Even if you don't add search criteria, you just create and then add target later, that is also, that was not supported for stack before. So we are just saying we are correcting that, that you don't, targets are not required to create a collection. You can add targets post create. That is how all others collections are and stack will also follow the same part. This is nothing new we are saying. You can add targets and create or without targets also you can create. That's the only thing Akash is calling out. Yeah, I think today the behavior is the create button is disabled. So we're just saying that this will always be enabled. This will be enabled as soon as they enter the major versions. Can we totally remove the table only if they hit on the search criteria after they choose target, we can show this table. It would be confusing, right? We show tables with no items to display. But, but basically, so now that's a different UX discussion which we need to do, right? So this is there for all selections, right? All five elections. You're saying that that is a different, I think, enhancement we should work on. Previous, like we should have some targets, right? No, zero state, we never have targets in any of the collections. Okay. And when you hit search criteria, you find it and then add it, then it shows up here. That's how the current behavior is. The only change is that the API errors out if you don't add any targets. Today, it is, that is true for other, other collections here. I mean, for stack collection, we just removing that restriction that you are allowed to create a collection without targets. But that's not the emphasis. We are just aligning with whatever is existing. And we can change that pattern also, but let's keep that as a separate thing. Okay. Yeah, that's all. That's the only thing. That's it. Your feedback, Sabha, is that, you know, that should we change the interface of how we add... Targets are not required, right? So we don't need to show that table. If they go to edit search criteria, then fill in, then they select targets, we can show the table. I'm just looking at the current implementation. So currently all collections have that table. We can remove that. Yeah. Okay. Let's... We can take that as a side enhancement. Yeah. Okay. Because I think Sam also provided feedback. We'll probably change that whole add targets experience as a separate focused item to make it like slightly different. We have some ideas, but then that will kind of deviate from this whole vertical. We have to get the DBGI OS out. So that one, maybe it will come before and then we can use that presentation. Maybe it will come after, but we don't have to overload this project with that enhancement of, you know, target selection, if you will. Okay. So edit search criteria for this use case is only to choose some targets if the user wants to. Yeah, which is true for all the collection types, all five collection types. Okay. And then as you enter the search criteria and hit search, then These filters, to begin with, like the filters can be multi-selected because the targets can span across compartments. We can try to see if we can simplify any of these other columns, but for now, the idea is that we actually table with these three columns or join the individual compartment questions, the current questions. This thing came from UX design or you guys made it? We tabled that from the UI. I am not sure whether we have a table now, but we just have the expanded collapse. I will have to take a look at the library. We haven't implemented any key table. We have just have the one expanded row. So if we don't support tree table like this, we may have to revisit. The selection could be in your side panel for each row. But then how will we do that, Saba? So for example, let's say a first cluster has five databases, second cluster has, so are you saying that it will be a two-step interaction? Yeah, if you go back to the screen that you are showing. Yeah, this one I will get back whether we do support in our current framework that we are using. If it is there in the framework, I do not know whether it supports or not. I will have to find out. We have not implemented any key table. We have just have the one expanded row. So what I am saying is that if we do not have that support, we will have your three dots in the first row VM cluster. When you click on it to view or select databases, then the side panel will come there you will see the list of databases for that VM cluster. But Saba, this whole thing was populated as part of the search criteria results. Remember, if you go back, right? But have we can filter on the client side if all the results are in one API response. Right. We could do it. So if I am not able to achieve this right, the alternative pattern is have your three dots on the first row VM cluster, then select databases would be one of the row actions that will show the panel. The panel would list the databases. From there, user can choose the databases. When they close the panel, we will show the expanded row with the databases comma separated. And if you want to see the version, we can show the metadata, but if you are seeing n number of databases, then this page would be really crowded. Yeah, but Saba, this pattern is not just this. Later on, on each of these databases, we are offering rollback, retry, those kinds of operations. This structure, right, is not just during create. This is how the jobs will be. This is how the actions will be. These are the jobs will be. And each of those individual things which have failures will have retry, rollback, those kind of things. So one size, I thought we will once we get to the jobs, right, we will have individual target type screens. Correct. Yes, but it is all under the parent, right? So let's say you have one VM cluster, you have five databases underneath it, right? And this whole job is one action, right? So if let's say the VM cluster 1 has one GI job, one OS job, and 15 database jobs, so and it is all operating as one vertical job, right? So let's say of the 15, let's say database 4 and 7 failed, then you can do retry on them. No, no, but what I'm saying is if we have five VM clusters... No, no, five VM clusters is very good. That is clear. If you have five VM clusters with 25 databases... Each or across? 25 databases in one screen as a database result. No, no, no. So how many does one VM cluster have? That is the key. Is it 25 each or 25 across? Across. Across. So how many? This whole presentation is about how much each has. So you'll have job number 1, which is VM cluster 1, and it will have underneath that one entry will be for GI update for the VM cluster. If you kind of follow the panel today, the single component here is the database. The database there in that list of job they show, right, they can belong to multiple VM clusters, right? No, they cannot. One database can only belong to one VM cluster. No, no. Those set of databases in our database collection. Oh, yeah, yeah. But here the collection is on the VM cluster, right? So databases is just the sub-resource, right? This is the vertical job starting at the OS, right? I know, I know. But even then, I'm saying on the results page, right, we will show a screen only for databases, right? All databases that are part of that collection. No, Sam, like independently, the databases doesn't mean anything because the database update happens for, let's say, if that database is a four-node VM cluster, right? VM1's GI, OS, and one database instance gets done, right? No, but they all will get done in parallel. Yeah, but only, correct. But then, no, let me give you a bigger example then. Let's say there are 10 VM clusters. Correct. Okay. Correct. There are 100 databases. Each? Across. Across. Across, across. Total. So let's say ten VM clusters, which means 10 GA, 10 OS, and 100 databases. Correct. Right? Correct. Now, this is one collection, the vertical collection. Correct. So let's say we created this collection based on a criteria and all those things are there. There are 10 more GA targets, there are 10 OS targets, and there are 100 DB targets, right? Now, we are thinking of passing on this, update of this, right? We have already given the images everything, right? We are thinking of an update. Now, the customer wants to now look at the results. Hey, how is my update going? Correct. Will we still have an interleaved screen where the 100 databases will be interleaved between the OS and the VM cluster, or are we saying there will be a job screen that will show only the 100 databases, similar to the individual database target, right? And there is a job screen that will show only the 100. Yeah, so essentially, the presentation will be like this, but they can filter, right? If they want to filter, they can apply the filter saying, I only want to see DB kind of jobs, or I want to see GI jobs or OS jobs. So the filter is what will help them to populate the table based on what, if they want to focus on only one target, then they can add a filter saying, target type equals D. But more importantly, yeah, so the filter is the second part, Sam, but the main question is, in those 100 databases, imagine they are all evenly distributed around 10 different VM clusters, right? So the progress is different. So your database job is dependent on each instance, GI and OS completing, right? Yeah, but all 100 databases are potentially concurrently progressing, right? Concurrently progressing. Yeah, but it is in the respective context of your, so the vertical job will be, you will have job ID 1, which has GI job, OS job, and all the 10 databases underneath it. They're all progressing as one job. The second VM cluster will have GI job, OS job, and 10 databases underneath it, right? So basically, it will be just like the interleaved, like whatever the, because your retry and rollback and all of that are tied to your OS and GI, correct? So it will be just like the interleaved, the way it is executing is how it will present it. Are you thinking of... What I'm saying is, right, those 100 databases, a customer should be able to see that on one screen, right? And then monitor the progress. And when they're all done, he can go to the failed ones, and then, you know, do you remember the last column, right? The last column had a drop-down. You can say, you know, rollback or continue, right? So that time you have to come back some. This is the same as the collection, right? No, wait, Subbar. I'm kind of trying to close the loop here with Prince, Kannan, Vikas, right? The customer should be able to see a screen. There's only databases. And decide on that once a job is done, right? They don't want like as it is going, right? Yeah, yeah, yeah. So Sam, it would be a flat list of 100 databases, or we refer to hierarchy. Yeah, that's what the question is. The hierarchy exists, but the visibility in terms of the customer, you know, looking at the results and acting on them, right? Would be a flat list. That's what I'm thinking. So Sam, how will we do the retry of, because database jobs are not the only ones, right? So for one database, let's say the GI is hung. So then where will you go for the GI retry? No, they're not ready to see this thing in the screen. Correct, correct. So then, that's what I'm saying. So then, at the same time... Correct, so that how will they... Right, but with this hundred database system see the association is on the hierarchy from the... Correct, I mean, that is the intention because he already knows it. No, but he knows it, but where does he associate that? Let's say we give a thing that, hey, these are hundred databases. How does he associate that this database is involved with this vertical collection? I mean, this particular cluster ID. On the point of execution, you know, it should look like, you know, the one execution should look like if you have submitted a hundred databases and 10 OS and 10 GA, right? These three is individually. So he can go and manage those. Only thing is that when you're doing this and you look at the database, they will show progressing if the database has not failed, right? If it's waiting for the next node, things are going on, that's fine. But if he goes to the GA screen, that's for GA, he will say something is failed or whatever it is, right? No, but this hundred databases MCV, the association is on the hierarchy from the... Correct, that is the intention because he already knows it. No, but he knows it, but where does he associate that? Let's say we give a thing that, hey, these are hundred databases. How does he associate that this database is involved with this vertical collection? And that is the intuitive because he already... When it goes to the GA screen, that's for GA. He will say something is failed or whatever it is, right? No, but this hundred databases MCV, the association is on the hierarchy from the... I mean, that is the intuitive because he already... Yeah, but what I'm saying is just at the beginning, right? When OS is the component which is being patched, at that time GA and OS, they will be showing some kind of state like in progress, correct? Because... No, they are not started, right? I mean, they just started and they will get started. So in this case, if it's combined job, it might show in progress, yes. Yeah, right, so basically, right, so the GA all 10 will show in progress and DB all 100 will show in progress. But really, the job has just started on 10 VM clusters for the OS to happen. And just for now, let's say, and just for sake of this discussion, all these VM clusters are all four-node clusters. So first VM is going on, typically they should all take similarish time. So let's say one of them failed, the OS job failed on one of the VM clusters. So now that failure has happened and then the other nine have progressed to GA. On that first VM, we are still talking about just the first VM, right? And then now that one failure has happened on the OS, now you have the option to click on that. What was VM cluster or VM of the... First VM, because remember, all of... Yeah, correct. And it is happening across these three tabs, basically. Because the first tab is only GI jobs and they are all operating on the GI. I mean, first tab is OS tab. They are all operating on the first VM of all those 10 clusters. Then after that, they will operate on the first VM of all the 10 GIs. Then it will operate on the first database instance on all 100 databases. So the way this progresses, you are envisioning and maybe you are thinking slightly different. But let's just see what you're saying, right? No, that was going to be, right? No, but we had all of this in one page. It is like all parent-child. No, no, I'm just saying that it's not visually friendly to the user. Because they are all in progress. If we are seeing like hundreds of databases, right? Showing it to you in one page, it's not going to be... No, no, it's not hundreds of, right? Those hundred are like each... Let's say, again, just to make this example more simpler, right? One VM cluster has 10 databases. So you have each row has 10, 10 databases in it. But they are related because the first VM cluster's first VM and the first GA... and the first database, all are going to be done together. That is when one VM will be done. Then the second VM, so OS will be done, GI will be done, and the second, each of those ten databases, one, one, one, one, one will be done. You see what I'm saying, Sabha? So basically, splitting it into multiple pages and all, UI we can do, but the key part here is how do you address like in failure, right? So first, let's just say OS has failed. The first component has failed on VM cluster 8, and that means that, you know, now, the minute that failure happens, that means your GI and database are stuck. They will not progress. Correct. Correct. So you have, let's say, one entry in the GI page, which will have some state saying that, you know, it cannot no longer be failed. It will sort of, sorry, it can no longer say in progress because you're not even started. You are in progress, but your GI... Right. Technically, right, the way it works, right, can I take a VM, right? The databases, services get stopped, the databases get stopped, the GA gets stopped, then the OS patching starts. You cannot do the OS until you get these guys down. Correct. So it's in progress, technically. I don't think, you know, it's all up and running and stuff, right? Correct. So it is correct, but that is not... It would be wrong in showing in progress. Yeah, but, okay, so then the question, that's what I was trying to say, that now... If you go, if you have one page that has nothing but databases in it, then some of those databases are marked in progress, but really they're not progressing because they're underlying GI failed. The point in showing that is, if you want to show 10 databases failed because the GA failed, right, the customer is going to see a lot of fails. And what is it supposed to do? Okay, I'm not going to... No, no, no, the databases are not going to show us to me. If you go to a page with 100 databases and they all look happy, but some of them aren't going forward and the rest of them are, then, you know, I'm just saying it would be nice to have some way of telling the ones that are stuck because they're waiting for something else that failed from the ones that are happy and they're... The reason I'm saying is, visually, right, the display based on the type would be more convenient. And it's what I would say, it gives the same experience to the customer whether it does a single target or whether it does bulk. Right? I don't know, you know, you're no longer making somebody click different tabs. So that's what I'm saying, right? If GA is in progress or GA has failed, database also shows in progress, right? Even if it is stuck, okay, and it is showing progress, it still needs to go to the GA error log or the OS screen. Correct, and that's what, yeah, correct. And that's what we are trying to get to, right, Sam, that to do troubleshooting, it is not that all 100 databases are... So even whether you put it on three tabs or on a single tab with parent-child relationship, the way to troubleshoot will be, in this case, let's say VM cluster 1, I mean VM cluster 8, OS has failed on the first VM, VM cluster 2, GA has failed on the second VM. And let's say all the other 8 are progressing as expected, right? So when you see failure, you will see jobs today, what Vikas is presenting is, you will see 10 vertical jobs, just 10. I'll give another example, because let's say OS and GA fails, 100 databases, say 11 databases failed on different clusters. Sure, so that also we will take, but let me just finish this one. But same, actually, that's a beautiful example because both your example and this example have the same number of clicks to troubleshoot is what I was saying. First, let's just finish this one, right? One VM, OS has failed, one GA has failed. And then let's take actually all three in one shot. And in another example, because only these two, the other 8 were progressing, and let's say imagine that, you know, on VM cluster, another single VM cluster, 8 of them have failed. So basically, 7 jobs are running and all databases are progressing, no problem. So if you go look at the vertical jobs list, you will first of all see 10 entries. We all agree? Any questions there? 10 jobs, 10 vertical jobs, because there are 10 VM clusters and they're related to it. So first interface will be, you'll have 10 jobs. I'm just trying to play out what Vikas is saying and how the troubleshooting works, right? So if you just have a nested list, you'll have 10 jobs, of which 7 will say in progress because they have no issues. One of them will say failed, that is on OS. Other will say GI failed, which is on the GI component. And the third job will say failed, and when you open it, you will see the database failed. Let's say 11 databases have failed. So wherever you have failure in your stack, amongst the three components, it gets updated and shown on the job, which is a composite of all the components which needs to be updated, right? But you will have 10 jobs, and you know 7 you don't have to interact with. Three you have to interact with. The minute you click the first one, you will see, oh, OS has failed. Then you interact with it. But rest of it, you don't have to interact with. You don't have to interact with the GI job or the database job when you open the top. That's the thing. Yeah, that's what, yeah, because it's just the way we have ingested the payload is how we are troubleshooting our experience, the payload. But it is a function of wherever the failure is. So second job, you will open, you will say OS has completed, GI has failed, you will interact with the GI component. But again, you will not open the database or do anything with the database because databases have not even progressed, right? And then the third one, you will see, when you open the job, you will see OS has completed, GI is completed, and when you open database, you will see, oh, there were, I don't know. When you open, see, it's not the machine. The thing is, visually, right, the display based on the type would be more convenient. And it's what I would say, it gives the same experience to the customer whether it does a single target or whether it does bulk. Right? I don't know, you know, but you're no longer, now you're making somebody click different tabs. No, no, no, wait, wait, wait. The point in showing that is, if you want to show 10 databases fail because the GA failed, right, the customer is going to see a lot of fails. And what is it supposed to do? Okay, I'm not going to... No, no, no, the databases are not going to show us to me. If you go to a page with 100 databases and they all look happy, you know, but some of them aren't going forward and the rest of them are, then, you know, that's, I'm just saying it would be nice to have some way of telling the ones that are stuck because they're waiting for something else that failed from the ones that are happy and they're... You can imagine, a lot of the lot of things is visually, right, the display based on the type would be more convenient. And it's, what I would say is, it gives the same experience to the customer whether it does a single target or whether it does bulk. Right? I don't know, you know, but... you're no longer making somebody click different tabs. No, no, no, wait, wait, wait. You're telling me, right, if GA is in progress or GA is in failure, database also shows in progress, right? Even if it is stuck, okay, and it's showing progress, it still needs to go to the GA error log or the OS screen. Correct, and that's, yeah, correct. And that's what we're trying to get to, right, Sam? That to do troubleshooting, it is not that all 100 databases are... So even whether you put it on three tabs or on a single tab with parent-child relationship, the way to troubleshoot will be, in this case, let's say VM cluster 1, I mean VM cluster 8, OS has failed on the first VM, VM cluster 2, GA has failed on the second VM. And let's say all the other 8 are progressing as expected, right? So when you see failure, you will see jobs today, what Vikas is presenting is, you will see 10 vertical jobs, just 10. I'll give another example, because let's say OS and GA success, the 100 databases, say 11 databases failed on different clusters. Sure, so that also we will take, but let me just finish this one. But Sam, actually, that's a beautiful example, because both your example and this example have the same number of clicks to troubleshoot, is what I was saying. First, let's just finish this one, right? One VM, OS has failed, one GA has failed. And then let's take actually all three in one shot. And in another example, because only these two, the other 8 were progressing, and let's say imagine that, you know, on VM cluster, another single VM cluster, Now, how will this thing look like if there are 10 databases on each VM cluster? Yeah, then for each VM cluster, you will have the Node More button. How many lines will be there for that? 11. If you have a VM cluster that has 10 databases, you'll have 11 rows. So that screen is already used up mostly. But the other things will be collapsed because first of all, the first VM cluster will be collapsed. It'll go off the screen. Correct. So these are the exact things. This one we can still maybe somehow hack it together. I think it's confusing. But the main thing is that this structure is how the actions and jobs are also planned. Because each of those entries have its own dot dot dot. And it has its own lifecycle staging. Retry only this entry, not its parent. Or there is an option saying retry this parent with all its children. Yeah, that's still possible. It's the same pattern, same pattern as adding the databases, right? And are we allowing for one counter to go through without the other one unless it's taken out of the stack, right? No, you can retry, right? Roll back, yes, but retry if you fix something, you can retry all failed databases in one shot under the cluster or you can retry the whole job or the GI, right? Retry is allowed, right? Roll back, yes. Retry in one cluster where there are 10 databases. If the GI fails, there's no need to say retry for GI and the database. No, no, not, we don't have to. But if, yeah, correct, you don't have to. That's what I'm saying here, you show, maybe you have tabs, right? You show the whatever VM classes on one tab and the databases on another tab. There will be an option to have the hierarchy thing, but that would be like, you know, the panel for the child resources if you want to retry. Yeah, but then how will we see the running progress unless without opening the panel? Like only a database collection in job screen. But Sam, this already we did for GI and OS, right? Even if you have zero databases, and if I just want to do OS and GI, should we have two tabs or one tab? Let's forget databases. OS and GI are bundled together, right? Currently, it's a small one because they go together. But no, if you... There's no separate matrix. But then this whole notion of like whether my GI is progressing, OS is progressing, are we talking about just because it's VM clusters and databases are different resources? What is the philosophy behind it, right? One philosophy is that each component I want to see, which is the original, each OS is a collection, GI is a collection. It is a collection. The presentation is the same, no matter whether you're doing vertical. That I completely, that is something worth exploring. But if you're saying OS and GI is combined payload because they have a relationship, then the database is also part of that combined payload, right? No, no, it's not there. Right now, the way it has been implemented, OS and GI are bundled in one resource. Right? And we have rollback or rework or continue retry for combined OS and GI. We don't have it individually. If you can do it individually, I would put them in separate screens. Correct. Otherwise, you have to switch between tabs and make the correlation that which is the parent, which is the child. That is super complex. It's right there. No, Sam, but the tab is only there, but you still have to build that relationship, right? From there, you have to find out which parent. You don't need to know which parent that belongs to. You don't need to know which parent is which. He can go click on the database, retry. Now resume or whatever it is, right? And, you know, the dependent component will proceed. If you look at our vertical stack implementation, let's say on the second node, the fifth database. Now I'm giving an example. It perhaps is not technically what we want, but for argument's sake, let's take it this way. When it does a retry on the fifth database on the second node, right? And it goes through, right? It will go through the other stack components. It will go complete the GI. It will complete the OS. Then it will go to the third node, right? It will do all other stuff. So he doesn't need to really know the dependency. He just says, where is the failure? Well, then I'm looking at the failure. I decide what to do. And I act on it. That's all. That is how, see, the way customers see it, right, it sounds like, you know, they understand this hierarchy here, but for them, there is a database team, there's an infrastructure team, you know, and most likely in Redscore, that's how it is. And in Buffer, I don't know how it is, but I'm assuming, yeah, that's how it is in Buffer also. Because the database part of it, right, they're given out to the respective departments. They handle it. And then the infrastructure part of it is handled by the central team, right? So it depends on, you know, the same thing. As long as we tell those guys, hey, look, you know, there is something that is still going on, you don't need to do any action. That's fine. And for us to get them to look at it and do that action as quickly as possible, with minimum clicks, with minimum expansion, with minimum scrolling, that's the best. I mean, we have to play that out, Sam. I'm just thinking, because the key part there is, like, only last question I have, retry in that example. It's a very minor issue, but we don't need to pivot our whole UX based on that. So in this example, let's say I opened up one of the VM clusters. This is the major issue because... No, no, but retry meaning individual retry versus... Yeah, so if I want to say that I want to retry all of the ones which are part of this cluster, then you need to handle the parent. But is that, do you see that as a use case or... because that's where I off the bat without doing any rollback for that matter. So remember... How will you do it? You don't have a relationship with each other, right? No, that's not the thing. It's not dependent that way. Let's say there are 10 databases that show a failure in different VM clusters, on the database tab, right? 10 databases. The only reason we show a failure there is because the database testing failed. Correct. Right? The colors of the GI or OS. So the action to retry on all of them is completely valid. But the action to retry a subset of it is probably not important enough. Like, for example, those 10 databases are across two clusters. So just retry cluster 1's database and cluster 2's database, probably not. Probably not, yeah. Because it just continues and it does... It's a collection for him, right? He wants to get all of it done, right? So he says retry on the whole lot. And he can go to the OS plus GA also and say retry on all of them because that's where they have failed at that point. Now, there is an action where the guy says, hey, I want to remove GA from the vertical stack, right? So when he does that, at that point, we have to kind of hide those things. Not show failures from the GA part because they are reverted and it's not being done. But the OS plus DB operation is getting done, right? So at that point, we won't show failures because of GA because it's reverted on any cluster. But still, I get your point. I think, see, what you are saying is you still... We have to maintain the association, but we should be able to see these individual components holistically in the database. From a customer's action perspective, the simplest way, the direct way for him to act on it is the main thing. The two parts are also crucial, right? I think whoever, whichever customer is going to go do this vertical, that one person is going to be the owner for all the three components. That one person is going to be the... There is no two different owners. The owner is submitting it. No, that submitting owner has the responsibility to bring up the database GA and the OS. That won't happen because the guy... Think about it this way. When the jobs are there, the guy who is an expert in the GA part of it will not know the DB part of it. The guy who is doing the DB part of it will not know the GA part of it. He will not know the GA part of it. DB and GA probably may know, but you are right. OS guy will probably not know DB for sure. I mean, not for sure, but there is a chance that the guy who is doing the OS Linux and all that. But still, right, the person who is doing vertical privilege model wise, there is... When we say guy, right, we have to step back and say that somebody who has update privileges on all three to do software update is the only one who can submit this job. That means they have to have full access and ability to define payload all of that. So then if the person who is submitting the job is not the one who is troubleshooting, then whoever comes, then they have to have read permissions on different different resources. So I don't know if that is true, right? Because if I, like I am a DB user, I have... Correct, but that group will have all privileges, all three level privileges is what I am saying. But you are saying that maybe I am a database admin, I have... See, if there are a thousand databases, right, you can't have like, you know, one admin guy who is submitting it and to be able to do everything. I think the team will coordinate with others, but I think the prints. So if you split the presentation, then you have to explain that in the work request of the child that your parents' certain component is going on. Otherwise they will think that, oh, it is taking such a long time and is my database update even started? That is why I was asking when, who was asking, will it show as executing or will it not start at all or something, right? Correct. So, yeah, because otherwise you will think that database patching is being... And the way you are describing, somebody comes to this cycle and they are only watching this tab, which is kind of very... To me, I have to go back and think what it means. That means rest of the tabs, they are not have access to, they don't watch. Then they will be like, oh, two hours, 43 minutes. Database is going on. Open the work request. Like even now, single job has not started. They will be like, don't have hardback for others. They will be like, oh, two hours, 43 minutes. The reason I saw two hours, 43 minutes, nothing happened to the database. So if you split it, it will become a different kind of model, but it has other benefits because then this whole thing... Yeah, I mean, from a developer's perspective, from a customer perspective, from an operator perspective, right? He doesn't care, you know, what sequence it is or when it is out. For him, right? My application is a hundred databases. I need to make sure if my databases are getting done or not. Yeah, if anything, if we do this flatten view, yeah, one of the things will be because you see, if it is sitting on progress to Jonathan's point, right? And if you're on a database page and let's say all of them say progress, then the work request needs to say that currently doing vertical patching of your OS. It has to say that, right? Then it will say currently doing GI patching of your VM1. In fact, it has to say exactly database instance 1 is running on VM1. VM1's OS is going on. VM, you know, VM1's GI is going on. Now database instance 1 is going on, right? Otherwise, it will be... Yeah, I mean, like if you split, yeah, if you split the representation, then you have to explain that in the work request of the child that your parents' certain component is going on. Otherwise, they will think that, oh, it is taking such a long time and is my database update even... Start, you know, that is why I was kidding when he was asking, will it show as executing or will it not start at all or something, right? Correct. So, yeah, because otherwise you will think that database patching is being... And if the way you are describing, somebody comes to this cycle and they are only watching this tab, which is kind of very... To me, I have to go back and think what it means. That means rest of the tabs, they are not have access to, they don't watch. Then they will be like, oh, two hours, 43 minutes. Database is going on. Open the work request. Like even not a single job has not started. They will be like, don't have hardback for others. They will be like, oh, two hours, 40 minutes. There has been reason I saw two hours, 43 minutes, nothing happened to the database. So if you split it, it will become a different kind of model, but it has other benefits because then this whole thing... Yeah, I mean, from a developer's perspective, from a customer perspective, from an operator's perspective, right? He doesn't care, you know, what sequence it is or when it is out. For him, right? My application is a hundred databases. I need to make sure if my databases are getting done or not. Yeah, if anything, if we do this flattened view, yeah, one of the things will be because you see, if it is sitting on progress to Jonathan's point, right? And if you are on a database page and let's say all of them say progress, then the work request needs to say that currently doing vertical patching of your OS. It has to say that, right? Then it will say currently doing GI patching of your VM1. In fact, it has to say exactly database instance 1 is running on VM1. VM1's OS is going on. VM, you know, VM1's GI is going on. Now database instance 1 is going on, right? Otherwise, it will be... Yeah, I mean, like if you split, yeah, if you split the representation, then you have to explain that in the work request of the child that your parents' certain component is going on. Otherwise, they will think that, oh, it is taking such a long time and is my database update even started? That is why I was kidding when he was asking, will it show as executing or will it not start at all or something, right? Correct. So, yeah, because otherwise you will think that database patching is being... And if the way you are describing, somebody comes to this cycle and they are only watching this tab, which is kind of very... To me, I have to go back and think what it means. That means rest of the tabs, they are not have access to, they don't watch. Then they will be like, oh, two hours, 43 minutes. Database is going on. Open the work request. Like even not a single job has not started. They will be like, don't have hardback for others. They will be like, oh, two hours, 40 minutes. There has been reason I saw two hours, 43 minutes, nothing happened to the database. So, if you split it, it will become a different kind of model, but it has other benefits because then this whole thing... Yeah, I mean, from a developer's perspective, from a customer perspective, from an operator's perspective, right does not work for you. It's taking too long. No, there are other components like that in between, which you know, which he has to understand. Correct. So in fact, so if the statement, if we go with this kind of presentation, advantage to this kind of presentation is you can do right-click of this tab and create a report if you are a database guy and not have other components. There is other kind of reporting benefits to this view because then you are truly in a statement of vertical or non-vertical, you can have database be like databases. It comes to volume, right? Big volumes. That doesn't look practical to me. That's all. The one which where the extra parents are added to the job, basically, see, the other tab, let's say like 100 entries, here you will have 110 entries. You know, the expand and collapse, right? That model is not so friendly to me. This is friendly. 110 entries. And you're talking about UI. If you get a get call, I don't know how we are doing it, but if you do a programmatic get call of giving all the vertical jobs, you will have 10 rows sent back. And inside that you have progress of giving the GI update or OS update. And so you have only 10 rows coming back. The other one which you're talking about, you will have giving all the vertical jobs. 10 rows, see, there is nothing visual about it, right? So I'm okay with that. You know, 10 rows, but each row will have a collapse and expand. Right? Yeah. Yeah, that is fine. That part is not the problem. Right. So, oh, wait. So the visual part of it in terms of clicking and scrolling, right, that is the part that I'm looking at, not the API part of that. So, okay, then that is another thing, right? Because API, if you design it the way you are saying flat, three separate tabs, that also means 120 rows will be sent back because 100 jobs will be database jobs, 10 will be GI jobs, and 10 will be OS jobs. If you say, give me all jobs in this vertical maintenance cycle, you will get 120 jobs back. Right? The other one... No, no, no, no. Wait, wait. Because it's the how it is. Yeah, I mean, no, no, that's not how it is. The one which Vikas is presenting, it will give 10. Then you can do a param saying, give me GI, give me OS, or give me DB, and then you can do a subquery from that job ID. Right? I mean, I don't know, Vikas, do you have database as a segment job ID? We discussed that. Yeah, yeah. So each job ID will have a target like the branch. So it will be trusted or database hosted. Okay, so basically... Yeah, there are 10 job and trial job. Yeah, related job. Yeah. Okay. So you will already always have 120 jobs. Don't talk so much of data anyway. If you are having different, you know, child job numbers on top, you have to show them anyway, right? Yeah, so basically, you will have 120 job IDs, a job OS. Correct? Yeah, yeah, yeah. So then, yeah, we'll go back and then I think... Yeah, we'll go back and then I think... Yeah, no, no, we'll have this here. Yeah. Yeah. You to figure out what do you think is the best for customers. No, no, but I think this is very good because you are saying, see, your whole point of view is from an operator. We are thinking too close to the implementation. I think we'll do one round and see and if we clearly identify something which is lacking or by one in one way or the other, then we will have otherwise, I think either of them will work. And there is advantages to... Because from an operator's standpoint, you're right. I just care about databases. I don't know the structure, right? So, and other way around also, I just care about differences and... You know what they did, right? They delegated the database part of it to the internal customers. Vertical also, but right now of course the database is not part of vertical, right? It's only OS plus GI. Yeah, so see that's right, because once you dedicate... But I'm saying when they go to database, they will want that model to continue. That is, what the difference will be from, from their perspective is, so the same guys who are doing database today, the departments, right, the finance or whatever, or whatever it is, they will be specifically delegated to them. They will still submit their jobs, okay, right? But it will get executed as part of a vertical loop and they'll be informed, hey, you know, we are doing the vertical this weekend, so you guys monitor your database jobs. You guys have submitted it, and they have submitted, it will go into a queue and then it will get executed as part of vertical loop, but they will be asked to monitor their jobs, their database jobs. And at that point, you know, their experience should be pretty much the same as what they have seen earlier. They will be with a single target because sometimes they may have a round of patching where there is only database, right? Some security fixes come in, it's a new image for database, so they can't say, hey, this is vertical, I'm seeing I've got to go through this, this is not vertical, I've got to go through this, right? You give them the same experience. But in real life, that's how it is, at least on the ones that we know. But once we do this splitting, right, I think that keeping OS and GI in one payload also is kind of a little more confusing. We may have to... It's like one-to-one is to one, right? It's not too bad. You mean resource to number of, I mean, the number of resources are just one-to-one. One OS, one GI, right? Yeah. Yeah, yeah. I mean, the cardinality is not n. Exactly, yeah. So that's not too bad. Yeah. Yeah, it's more of complete. So, okay, we'll, we'll, we'll, I don't think because it will not, like all the other decisions we made, even if it's split, will not change. But I do think that at the time of creation, if you don't have this parent-child relationship, and then how is the vertical aspect kind of driven, like the mental model that this is vertical, how does customer know that this database is related to this VM cluster, right? That part is not yet... On the job part of it, not on the creation part. On the job part of it, nothing changes, right? Yeah, so the creation part of it also someone mentioned, right, that you will not be able to show you parent-child like that. You will have to do kind of like a, see, when you have a side panel, they can also be kind of reference resources. It doesn't mean it is a child or anything, right? So parent-child relationships, do we need that tree to show that? Or can we just get away with, because then you can also argue technically that at the time of creation, the screen, yeah, this is vertical, I'm seeing I've got to go through this, this is not vertical, I've got to go through this, right? You give them the same experience. But in real life, that's how it is, at least on the ones that we know. But once we do this splitting, right, I think that keeping OS and GI in one payload also is kind of a little more confusing. We may have to... It's like one-to-one is to one, right? It's not too bad. You mean resource to number of, I mean, the number of resources are just one-to-one. One OS, one GI, right? Yeah, yeah. Yeah, I mean, the cardinality is not n. Exactly, yeah. So that's not too bad. Yeah. Yeah, it's more of complete. So okay, we'll, we'll, I don't think, because it will not, like all the other decisions we made, even if it's split, will not change. But I do think that at the time of creation, if you don't have this parent-child relationship, and then how is the vertical aspect kind of driven, like the mental model that this is vertical, how does customer know that this database is related to this VM cluster, right? That part is not yet... On the job part of it, not on the creation part. On the job part of it, nothing changes, right? They have done it once. Yeah, so the creation part of it, also someone mentioned, right, that we will not be able to show you parent-child like that. We will have to do kind of like a, let's see, when you have a side panel, they can also be kind of reference resources. It doesn't mean it is a child or anything, right? So parent-child relationships, do we need that tree to show that? Or can we just get away with, because then you can also argue technically that at the time of creation, the screen, yeah, this is vertical, I'm seeing I've got to go through this, this is not vertical, I've got to go through this, right? You give them the same experience. But in real life, that's how it is, at least on the ones that we know. But once we do this splitting, right, I think that keeping OS and GI in one payload also is kind of a little more confusing. We may have to... It's like one-to-one is to one, right? It's not too bad. But you mean resource to number of, I mean, the number of resources are just... One OS, one GI, right? Yeah, yeah. Yeah, I mean, the cardinality is not n. Exactly, yeah. So that's not too bad. Yeah. Yeah, it's more of complete. So, okay, we'll, we'll... I don't think, because it will not, like all the other decisions we made, even if it's split, will not change. But I do think that at the time of creation, if you don't have this parent-child relationship, and then how is the vertical aspect kind of driven, like the mental model that this is vertical, how does customer know that this database is related to this VM cluster, right? That part is not yet... On the job part of it, not on the creation part. On the job part of it, nothing changes, right? They have done the job. Yeah, so the creation part of it, also someone mentioned, right, that we will not be able to show you parent-child like that. We will have to do kind of like a... Let's see, when you have a side panel, they can also be kind of reference resources. It doesn't mean it is a child or anything, right? So parent-child relationships, do we need that tree to show that? Or can we just get away with... Because then you can also argue technically that at the time of creation, the screen, yeah, this is vertical, I'm seeing I've got to go through this, this is not vertical, I've got to go through this, right? You give them the same experience. But in real life, that's how it is, at least on the ones that we know. But once we do this splitting, right, I think that keeping OS and GI in one payload also is kind of a little more confusing. We may have to... It's like one-to-one is to one, right? It's not too bad. But you mean resource to number of, I mean, the number of resources are just... One OS, one GI, right? Yeah. Yeah, yeah. I mean, the cardinality is not n. Exactly, yeah. So that's not too bad. Yeah. Yeah, it's more of complete. So, okay, we'll... I don't think, because it will not, like all the other decisions we made, even if it's split, will not change. But I do think that at the time of creation, if you don't have this parent-child relationship, and then how is the vertical aspect kind of driven, like the mental model that this is vertical, how does customer know that this database is related to this VM cluster, right? That part is not yet... On the job part of it, not on the creation part. On the job part of it, nothing changes, right? They have done the job. Yeah, so the creation part of it, also someone mentioned, right, that we will not be able to show you parent-child like that. We will have to do kind of like a... Let's see, when you have a side panel, they can also be kind of reference resources. It doesn't mean it is a child or anything, right? So parent-child relationships, do we need that tree to show that? Or can we just get away with... Because then you can also argue technically that at the time of creation, the screen, yeah, this is vertical, I'm seeing I've got to go through this, this is not vertical, I've got to go through this, right? You give them the same experience. But in real life, that's how it is in the... At least on the ones that we know. Yeah, I think we can accommodate that. But main thing, let us know that, you know, Sam's comment plus if you say that trees are out, then we have other problems, right? But if we can solve Sam's concerns and if trees are available, then we, you know, we keep it in the mix, right? So let us know, sir, what is the situation on tree? Because that tree thing I'm using in all other proposals also. So it's a very important... I'll get back on that. We haven't implemented yet, but we do have one row expansion, but multiple child resources we don't have yet. And also the ability to check, this is multi-select, the one which I, the proposal I'm working on is single select. So three expansion with, I mean, here he's not showing it, but the one which he was showing, right, the pattern, three expansion multi-row with multi or single select, that is the pattern eventually we want. I mean, not in this project, but that is the, I'm talking about a different project that I'm using that. So if multi-row is not there or multi-select is not there or single select is not there, then we have to come up with alternatives for it. Okay, so Vikas, now coming about the staging, right? If we decide how we are going to ask for images based on version for the database. Yeah, that's the thing, the first screen, right? I think, uh... I kind of forget, but where do we, where do we ask for this? Image selection based on the version. Image selection based on the... Yeah, let's say a cluster has some 1980 databases and 126 databases, right? Both need to be patched. We need to ask for the image for 19 image for 26. You say it on the target or goal. Yeah, the target, target. Yeah, this is the presentation, Sam. Yeah, this is the, yeah, so this is doing, that's doing create maintenance cycle and actions having access to the image model. The idea is that during stage, we will use the first actions resource principle to access the image and stage again. So, but that, that's, that that's my responsible to set up. And even in Oracle stock, I think the more there will be a few more properties, I think, uh, the release month, and then we will maybe depending on how the MRP implementation goes, maybe it will be a normal image or it will be a normal image underscore MRP1, MRP2. And then the key part then will become when was it released, the month, date, and whether it has a security yes, no, whatever. So there will be more metadata even on the stock image other than the version. So a simple drop down may not cut it. Like at least custom, it will not. Maybe it will work for stock image, simple drop down now, but that simple drop down will also have more identifier properties in the future. So we can, that UX is not a problem. But can you go back to your UX which you were presenting to Sam, like the one in the back. So Sam, the idea is that whether your target version is actually this UX also will improve, right? Because target version, yeah, I mean, target version is derived from the stock image or customer image. And if you're doing a customer image, you will have some more attributes to show that, you know. Okay. Yeah. But, but yeah, I think. So I think I was thinking, hey, Sam, I think tomorrow somebody will be there, right, Sam, from your end to pick up, right? Yeah, Flutter will be there. Flutter will be there. Okay. So anyway, we will go with this. See, all these things. Anyway, friends, we, I think this has to go more rounds with a little more broader audience. And probably I don't know if you're having plans to review with the one and others also, right, friends, at some point. Yeah, so we'll have to, yeah, so we'll have to come up with that story of the review. But what I was hoping is that, yeah, we'll do a full, yeah, we'll craft that. Yes, we will. Yeah, we'll craft that. But I think the idea is the API should not kind of have much impact. Like even what Sam's coming, how we can achieve it with the existing ones, right? Correct. Then I think we have a story. Correct. Okay. API is fine. I mean, it's just data, right? Correct. Correct. So I think that's the part. So we'll go with that tomorrow and then we will kind of rehash these things as we move up with the user experience. Yes, I please also have and then your inputs, because the one thing, Sam, I think is all these things are ideally would have been better with the UX designer and things, but I think we kind of focused that, Prince, because they had these things, right? But I want your inputs also, Sam, okay? We need more of the kickoff con. Yeah. After the kickoff. I think that we can have some finer discussions. I'm saying like, can we move the kickoff itself so that I can have the concrete answer for this. No, I think let's do this because this kickoff has been. So this is the engineering kickoff. This is not the project kickoff. So we still have time to do. By the time project kickoff, we will close out all these things. So because that way, main is see, Vikas needs that EPS and one more question Vikas, the jobs is flattened. So in the example, it will be 120 job IDs of which 100 will have a related job ID posted, correct? But in the initial creation, when you have the parent-child, what Saba is saying, is it a flat list of, is it 120 targets or is it 10 targets with children targets? Okay, then me have got API is good. You are, okay, API is good. So the main work is there, right? Because that, so you and we will discuss. Okay, good. So that means we are not changing much in the, and nothing of what's last Sam said about custom image, it dropped down. None of that impacted the number of gold version and the representation also. Yeah, I understood the custom image. Yeah, but that did not impact your Vikas anything, nothing does not impact you, right? Because the gold version presentation, multiple gold versions, having the gold version and the version is derived from custom image. None of those things are impacted. Yeah, I mean, I think like, so, basically, we are mapping into the number of major versions in the collection. And if you, even if you have additional metadata, you only care about the version, but all of that is just for the customer to make a choice, right? If you're coming from API, you just plug in the gold version. So all nine can see databases with no discussion, all 26 systems, whatever database system, no discussion. We are not going to subsequent. They can say, oh, more 19.x to 19.y and more 19.8 to 19.v. We are not going to have that type of thing. No, no, what I'm saying is for the API user and when I'm doing this target version setting in the cycle, if I say 19.31, the only thing you care about from the custom image is the final OSID, right? You just have to go in the OSID. You have no other metadata, right? All the things we're talking about, target versions, stock image, we'll have extra data, all of that, that is all coming from some other thing, right? We have the database update ID, okay, update ID or other. So basically, none of those things change your current, so it looks like API things have not been changed. So, so, Saba, your point, I think you should ask the engineering kickoff, right? Because Saba will have this and then we will kind of see, like, like Prince said, the UX may have some transformation, right? Saba, that we can have discussions. Sure. Okay, okay, okay, then I'm going to jump to another call also. Okay, thanks for the time. Thank you, sir. Yeah.