ActonOS
Dashboard
Manualprocessed

Database Version Restriction and Security Waiver Discussion

Strategic changes in database version control with security implications

security-strategyprovisioning

Original calendar title: MVP Slash V 1

May 27, 2026, 12:00 PM

ActonOS summary

Database Version Restriction and Security Waiver Discussion

Date: May 27, 2026

Attendees: There, Other, How, Engineering Team, Product Team

The meeting focused on implementing a new strategy for restricting database versions to enhance security. Only the current version (N) will be available by default, while older versions will require a security risk waiver through SR or API processes. The change aims to address security concerns but could impact customer satisfaction. Notifications to customers are planned for upcoming changes effective from May 28 to June 1.

1. Customer Satisfaction vs. Security Needs

  • Discussed how to balance security demands without negatively impacting customer experience.

Action Items and Follow-ups

0 tracked

No explicit commitments were stated.

Follow-up Points

Nothing flagged.

Additional Notes

  • Need to refine and finalize the API-based waiver process.

Decisions

Nothing flagged.

Open questions

Nothing flagged.

Risks

Nothing flagged.

Commitments

0 found

No commitments found

ActonOS found the transcript, but no concrete owner, action, or follow-up was stated.

Transcript

Hi, how is it going? Alright. This whole security 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 one, Sam. It was more about N minus one like supported cloud, we are kind of restricting and then, yeah, I mean... Was there any kind of fruitful outcome from that call? So, yeah, so I can update quickly, right? So DB and GI both proposal is only N is the available version for provisioning, for patching. Like 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, like restore, like create database from backup. There is a version which we consume when we provision database. So even in that close, 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 mitos 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 one or two or three or four, whatever it is. Initially, I think one 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 of images, it only supports N minus four. 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 one and N minus two 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 still need to design that. So N minus two 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-rated Linux issues are more publicly known and whatnot. And there it is N minus one. So you have N and N minus one, which are available. So N is of course you don't need any waiver. N minus one 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 two being N minus three, four, whatever through SR and for guest anything below N minus one, which by the way, in guest, guest OS is monthly. So basically you're just giving two months of versions in cloud, meaning one is the latest current month, X-rated 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, like, 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, you know, already existing versions. You may have, you know, custom images built with older RUs or whatnot. So those old things will now fail and you'll 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 a multiple time. The problem is this right now, if a customer has like a production databases at a particular version level, right, and is 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, 5000. He's like saying that's the number of fixes. So the next RU and 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. Hey, folks were like, between now and December, we will see how many of these issues we are fixing, right? But for RU 30, 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 I just said is a Yeah, I know, we are hitting customers badly. So I don't know about this MRP thing, 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 it, do we need, because there are monthly fixes, it's a product so buggy. I mean, that's what somebody was saying, right? Like typically, we have like five, six fixes. Yeah, that's what I'm saying, right? But now we have thousands. Yeah, thousands, whatever, right? Yeah, yeah, that's what, that's what is expected. I mean, we'll see, but the number of fixes till this whole thing kind of, whatever this Gen AI or whatever Codex is finding it, my thoughts is 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 were saying, 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 available, everything else is, you have to sign the waiver. Cloud, that's what, I mean, effectively that's what we are doing, but we have some more API-based self-service waivers. Basically we want customers to go to the 19.32, right? Or you, you sign the waiver and accept responsibility for anything that works. We don't want to be responsible. That's the key. You can continue, maybe you have a business case for continuity on whatever 19.whatever, 19 or 20 or 21, whatever your production is, but you need to, somebody in the customer side sees so as to sign that document. Correct. 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, because yesterday, 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. They, they, their thing is there is so much problem with the FIP. Oh, no, no, FIP. But what I'm saying, Warren 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 externalized, but he's trying to understand, you know, are all of these just net new things and will it tail off? I mean like, or are we saying that every time we fix regression is also an X percent of fixes? So, we have to tighten, you know, the real issue here is not that when I get problem from customer, right, I go to my team and say, hey, look, guys, you know, do we have, do we have a test case for this? If there is a test case, what is the result of the test? Did we pass it before we in the, in the, on the main and then on the review, 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, these are all security related ones. And I think what we publicly, I think whoever that V 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 it will, 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, Clarify. 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, then it suddenly, 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 them not because they were calling the code, but they had, because they had a jar file that was conflicting with the jar file that we were using, API that we were using, an old, 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, running install LRGs for every backport. I don't think that's going to happen. Yeah, that's tough. Anyways, okay. Yeah, let's move on to the, I think I put in the server. Say Sabaa. Thanks for joining Sabaa. He's there? Yeah, yeah. We've been missing you for a while, Sabaa. Where are you? Yeah, it comes here. Is this kicking? I know. Sabaa, 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 are going on. No, I think I know, but today I think what I wanted, Prince, I think, you know, we discussed offline and we kind of, tomorrow the engineering kickoff is scheduled for the DBGI and the Donu, Prince, 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 Sabaa. Maybe we can just have a quick 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 Vikash, go ahead, Vikash. 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 Prince also, right? That this is what we will tackle for the Donu DBGI. But we still have a lot of questions 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 Donu 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. Yeah, okay. Okay, Vikash. Yeah, go ahead and then maybe. Sam, I don't know if you have. And we have the recording and the AI thing on, sir. Yeah. Because it's a totally different look. I'm seeing him after a really long time. Yes. Any guesses about? Yeah, yeah, yeah. That concludes. Yeah, yeah, so I'll start with the create collection flow. So basically, this is the new drop down menu value that will be added for the collection type. I think there was some back and forth about whether to 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. Okay, because I put my screen on and I see it again. Let's do one more. One more larger instance. Yeah, that's about I can make out except for database service on dedicated infrastructure. Okay, I can manage to read it. Okay, that's the thing. These are still marks, drafts. So about the prints. The guys have been brainstorming this, but I think I will leave it to you. I don't know if we have been thinking of involving the designers also if needed. But this is just a rough draft marks. Okay. Yeah, cool. Yeah, so in the previous discussions, I think we thought about that. For MVP slash V1, we will go with one major version for OS, guest OS, one major version for GI and major versions for database. I just called it out. The call out is Scorpio. So in the future roadmap, we will support like multi-selectable Linux 9 and 8 for OS and so on. But for V1 slash MVP, we went and one one and model. So, and the other thing is we'll look at it on the next slide. But this is, we are introducing a major version today, when you do update collection for stock, the major versions are not shown here. So this is a new addition to the flow for the stack is. Yeah, and then once they select a new. One question. So the Linux 8 would be a drop down, like what are the values we have to show? Yeah, I think today it's only 8. I think today, actually, today, I think the API has 6, 7, 8, but based on the discussion with TensorFlow, the web UI can only show 8. So we have a filter for that one. So it's a going to be cornered or it's going to be like you need given values. I think that is one that one project probably in the works to offer an API to show the supported extra major and core versions plus streaming versions. But I'll go with that project. If that project G is before this, we can leverage that.

Okay, so should we relay on that feature, that API? This one I will go after that, right? After that pre-create. Yeah, this will go after that, so I think that's another. I think until then we can just play hardcore 8 and then I think GI and GBI I think today already. Yeah, and it should be totally independent of what you select. Yeah, but yeah, these are the multi-select drop downs in the future, but for now, single select for OS and GI, multi-select for deep. It shows a double though, right? Because for GI, it's in 19, C800BA. Yeah, I mean, I can change it, but I just called out for P100. That's correct. Yeah, I mean, I put the note here saying for it's only single select for OS and GI, but I think that's the thing. And it should be 26A, right? No more 22. Yeah, I mean, there should be only one API for P1. For API. Yeah. And the other change that is happening here is the when they click edit search criteria here, the other change is that so previously the major versions were being shown here for the search criteria. So we moved, the proposal is that it will be moved here, and the drawer will be simplified to only show these basic criteria, nothing else. And we will select the moving the release version and the systems software release versions for from here. So basically this will be the simplified search criteria. This would be permanently for all irrespective of the version. So only for stack we are moving. Oh, okay. Let's call it out. I think it's there. Yeah, I think just mention for all except this time collection type. We can add an extra note. Yeah, so only for this collection type we are removing. This one and the one we already shipped for the big one. This is the second extract type, right? So we have the GI and OS and this is GI OS DB for both of them, we will use this pattern. Okay. The other ones we have 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 in the same format as well. I think there was a previous conversation that simplified the whole thing. 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 we don't want to focus on it. And this is basically after they run the search in progress. But the only other thing I will mention is that today the search criteria kind of migrated where it is treating a stack cycle. They have to open the drawer with the legacy and 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 bundle and then they can add the targets later. That's just I don't think many people are doing, but we are just aligning with the other collection types. It's all or nothing, right? All or nothing or... So today, like if you go to a DB collection, you don't, you can skip the search criteria altogether and just select the major version for DB and hit create. So when you see the targets, targets would be under that table, right? But 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 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 hit create. That is the regular flow, right? Even if you don't add search criteria, you just create and then add targets 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 Prakash is calling out. Yeah, I think today the behaviour 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 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. So this is there for all collections, all five collections. You're saying that that is a different, I think, enhancement we should call. 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 behaviour is. The only change is that the API errors out if you don't add any targets. Today, 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 the only thing. That's it. Your feedback, Sabha, is that, you know, that should we change the interface of how we add... The targets are not required, right? So, we don't need to show that table. You can go to edit search criteria, then fill in, then they select targets, we can show the table. And we're just looking at 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 can see, they enter the search criteria and hit search. Then once the search is done, this table will be populated. And now for the new stack type, the proposal is the table will become like a tree table to show like a hierarchy of the trustees and associated databases like China resources, basically. And we can discuss this in the presentation if we can simplify it further. But for now, I think we will... This would be permanently for all irrespective of the stack. So, only for the stack we are moving. Oh, okay. Let's call it out. I think it's there. Yeah, I think just mention for all except this time collection type. We can add an extra note. Yeah, so only for this collection type we are removing. This one and the one we already shipped, the big one. This is the second stack type, right? So, we have the GI and OS, this is GI OS DB for both of them. We will use this pattern. Okay. 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 in the same format as well. I think there was a previous conversation that simplified the whole thing. 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 we don't want to focus on it. And this is basically after they run the search in progress. But the only other thing I will mention is that today the search criteria kind of migrated where it's creating a stack cycle. They have to open the drawer with legacy and 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 bundle and then they can add the targets later. That's just a, I don't think many people will do it, but we are just aligning with the other collection types. Well, it's all or nothing, right? All or nothing or... I mean, today like if you go to a DB collection, you don't, you can skip the search criteria altogether and just select the search criteria and hit create. So when you see the targets, targets would be under the, that table, right? Right, but 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 Sabha, basically what we're saying is that your 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 How these filters, to begin with, like I'm supposed to come back with filters, can be multi-select and because the targets can span across departments, we can try to see if we can simplify any of these other columns, but for now, the idea is that it would be like actually a table with these three columns or showing the individual company questions, the current questions. This thing came from UX designer or you guys made it? We tabled that from the UI. I'm not sure whether we have a key table now, but we just have the expand and 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 key 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, Sabha? So for example, let's say 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 get back, like whether we do support in our current framework that we are using. It is there in the framework. I don't know whether Jet supports or not. You'll have to find out. We have not implemented any key table. We have just have the one expanded row. So what I'm saying is like, if we don't 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 Sabha, this whole thing was populated as part of the search criteria results. Remember, like if you go back, right. But then 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. Sabha, 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 kinds of things. So one side, I thought we will once we get to the jobs, right, we will have individual target type screens. Correct. Yeah. So target types, 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 one has one GI job, one OS job, and 15 database jobs, so and it is all operating as one vertical job, right? So if let's say of the 15, let's say database four and seven failed, then you can do retry on them. But what I'm saying is, if we have five VM clusters. No, no, five VM clusters are very good. That is clear. No, no, wait, wait. If you have five VM clusters with 25 databases. Each or in... Across. 25 databases in one screen as database results. 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 will have job number one, which is VM cluster one, and it will have underneath that one entry will be for GI update for the VM cluster. If you kind of draw a parallel to today, the single component here is the database, right? 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 the, in our, in a database collection. Oh yeah, yeah. But here the collection is on the VM cluster, right? So database is just the sub-resource, right? This is the vertical job starting at the OS, right? I know, I know. But even what I'm saying, on the results page, right, we will show, have 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 parallel. Yeah, but only, correct. No, let me give you a bigger example then. Let's say there are 10 VM clusters. Correct. Okay. Okay. There are 100 databases. Each, each. Across. Across, across. Total. Ten VM plus, 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 the criteria and all the things are there. There are 10 GA targets, there are 10 OS targets, there are 100 DB targets, right? Now, we are thinking of passing all this, a big of this, right? We are going to give them the images, everything, right? They are giving them an update. Now, the customer is to now look at the results. Hey, how is my update going? Correct. Will we still have the interleaved screen where the 100 databases will be interleaved between the OS and for each 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 target. Yes, 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 time equals zero. But more importantly, yeah, so the filter is the second, but Sam, 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, just, yeah, but it is in the respective context of it. 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 are all progressing as one job. The second VM cluster will have GI job, OS job, and 100 databases underneath it, right? Yeah. So basically, it will be just like the interleaved, however, 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... 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, you 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, Sam. This is the same as the... No, wait, Sam, I'm kind of trying to close the loop here with Prince, Kannan, Vikas, right? The customer should be able to create a screen that has only databases and decide on that. Once a job is done, it is not like as it is going, right? Yeah, yeah, yeah. So for some, it would be a blacklist 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 blacklist. 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, there are no databases that you see in the screen.

Correct, correct. So then, that's what I'm saying. Correct, so then, how will they... Correct, so then how will they... goes to the GA screen, for that particular for GA, he will say something is failed or whatever it is, right? No, but this hundred databases, I'm see the association is on the hierarchy from the... That is interesting because he already, he knows it. No, but we know it, but where does he associate that? Let's say we give a pane 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 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 as individually. So he can go and manage those. Only thing is that when you're doing this, when you look at the database, it should show progressing if the database does not fail, right? If it's waiting for the next node, things are going on, that's fine. But if he goes through the GA screen, that's the GI, he will say something is failed or whatever it is, right? No, but this hundred databases, Sam see the association is on the hierarchy from the... That's the interesting thing because he already, he knows it. No, but we know it, but where does he associate that? Let's say we give a pane 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 then the OS and then GA, right? These three as individually. So he can go and manage those. Only thing is that when you're doing this, when you look at the database, it should show progressing if the database does not fail, right? If it's waiting for the next node, things are going on, that's fine. But if he goes to the GA, he will see it's a failure. Right, right. So Sam, you're still thinking that it is hierarchical, right, Sam? I think it's... No, I think that, yeah, I think Sam is saying that... Yeah. The user interface, right, it will get so confusing to the customer. He needs to feel like, you know, I have... I can submit a hundred databases, right? And then I see the job results. Now he should have that same experience when it comes to vertical in terms of at least handling the... Submitting is different because we all know that it's a different way of submission, but the result handling, the output, the progress, you know, the replay, whatever, that experience of should be very similar to what he's doing if he's doing only databases or if he's doing only GI or only OS. Even the retry, you are saying that it will be separate things then. What is that? Even the retry, you are saying that somebody just goes... The retry will be on the same component, right? He will see what failed, right? OS failed, go retry on the OS and then he will continue on the other ones, on the vertical, right? But the GA or DB will not show failure at that point. Otherwise, you know, these failures will just multiply. One failure on the OS will say GI failure, 10 databases failure. And then the guy will get confused saying, Hey, what am I supposed to look at, right? Or is he going to visually correlate these 10 and all those things, right? That is why I'm saying there is so much promising, no noise. There's nothing to complain, no noise. But wherever there is noise, we have to show it and make him look at the one part of it that needs action. Because see, these hundred databases with the 10 OS and 20, I'm not going to fit in one screen. And then also the failure database is MLCD, the association is on the hierarchy from the... If you're submitting 100 databases patching, they're all in progress. Something failed, say the 90 was failed. If you buckled it to the top and showed the failure on the top, right? Yeah, well, that depends on the default sort you are applying on the column. So if you are slicing the date column, then the default sort is not like... No, the sort should bubble up the failure symbol, right? That's normal. It's just how we represent the information based on the feature and the sort. So Sam, this one we can look at, but one question I had, like, so for example, just to break that down, right? So you're in this example saying 10 VM clusters. So technically, just for the sake of just to counter what you just said, right? You'll have a, if you go by the OS, each component has its own page. You'll have a page where 10 GI jobs are listed, 10 OS jobs are listed and hundred database jobs are listed. It happens to be interleaved. That's like something which the engineer knows about, right? The end person who's looking at it, you have three lists of things. Now, based on our thing, we know that, you know, each of those clusters and the, you know, first all, you know, because we start OS here. Right, right. So then show a bar thing, hey, this is part of the vertical. But visually, right, we should, we should get his attention to look at only the thing that he needs to act on. Sure, sure. And that part we are achieving. If that is the objective that we are achieving here also, but let me just kind of finish like the thought which you had, right? So you have 10, 3 tabs, just for sake of having 10, 10, 10, 100, right? So now the question is, if you have an OS failure, which is the first thing which is happening, let's say VM cluster 1 to 1 through 10, you know, whatever, 9 of them are progressing, 8, one has failed, right? Now GI has not started for any of them, database has not started for any of them because in this format, OS is what is going to be like the first one which is running. No, they don't concurrently. I don't think that will be the case, but whatever, where the OS has crossed over, it has gone ahead with GI, it has gone ahead with DB. Right, right, right. But what I'm saying is just at the beginning, right? When OS is the component which is being patched, at that time GI and OS, they will be showing some kind of state like in progress, correct? Because... No, not started, right? I mean, just started and you 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 GI 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, like typically they should all take similar-ish 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 GI. On that first VM, we are still talking about just the first VM. And then now that one failure has happened on the OS, now you have the option to click on that. That was VM cluster or first VM of the... First VM because remember, all of... Yeah, yeah, correct. And it is happening across these three tabs, basically. Because first tab is only GI jobs and they are all operating on the GI. I mean, first tab is OS tab. They're 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 hundred databases. So the way this progress, you are envisioning and maybe you are thinking is slightly different, but let's just see what you're saying, right? No, but the point is going to be, right? No, no, but we had all of this in one page. It is like all parent-child. No, I'm just saying that is not visually friendly to the user. No, but then... See, 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? Each component has its own page. You'll have a page where 10 GI jobs are listed, 10 OS jobs are listed and hundred database jobs are listed. It happens to be interleaved. That's like something which the engineer knows about, right? The end person who's looking at it, you have three lists of things. Now, based on our thing, we know that, you know, each of those clusters and the first all, you know, because we start OS here. Right, right. So then show a bar thing, hey, this is part of the vertical. But visually, right, we should get his attention to look at only the thing that he needs to act on. Sure, sure. And that part we are achieving. If that is the objective that we are achieving here also, but let me just kind of And the first database, all are going to be done together. That is when one VM will be done. Then the second VM, OS will be done, GI will be done, and the second, each of those 10 databases, one, one, one, one, one, one will be done. You see what I'm saying, Sabha? So basically, splitting into multiple pages, I know you can do, but the key part here is how do you address like a 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, sorry, it can no longer say in progress because you're not even started. You are in progress, but your GI... Technically, right, the way it works, right, when I take a VM, right, the databases, services get stopped, databases get stopped, the GI 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 showing in progress. Yeah, but, okay, so then the question, that's what I was trying to say, that now... So 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. No, no, wait, wait, wait. The point in showing that is, if you want to show 10 databases failed because the GI failed, right, the customer is going to see a lot of failures. And what is he supposed to do? Okay, I'm not going to let him. No, no, no, no, the databases are not going to be shown as complete. If you go, 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, 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... The thing is, visually, right, the display based on the type would be more convenient. And it's what I would say, it's, it gives the same experience to the customer, whether it does a single target or it does both. Right. I don't know, you know, you're no longer making somebody click a different tab. No, no, no, no, you're telling me, right, if GI is in progress or GI's in failure, database also shows in progress, right? Even if it is stuck, okay, and it is showing progress, it still needs to go to the GI error log for the OS screen. Correct, and that's what, yeah, correct, and that's what we are trying to get to, 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, GI has failed on the second VM, and let's say all the other eight 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 GI 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 GI has failed. And then let's take actually all three in one shot. And in another example, because only if these two, the other eight were progressing, and let's say imagine that on VM cluster, another single VM cluster, eight of them have failed. So basically, seven 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 are related to it. So first interface will be, you'll have 10 jobs. I'm just trying to play out what Vikas is saying in other troubleshooting modes, right? So if you just have a nested list, you'll have 10 jobs, of which seven 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 seven 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 the 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 component. Yeah, that's right. Yeah, because it's just the way we have ingested the payload is how we are troubleshooting our experience of payload. But it is a function of wherever the failure is. So second job, you will open, you will see 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 has completed, and when you open database, you will see, oh, yeah, I know. That's what I was saying. 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, 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... Again, my, what I'm saying is, visually, right, the display based on the type would be more convenient. And it's, what I would say is it's, it gives the same experience to the customer whether it does a single target or whether it does both. Right? I don't know, you know, but you're no longer making somebody click a different tab. No, no, no, no, no. The databases are not going to be shown as complete. 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, 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... 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, 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... Yeah, because it's just the way we have ingested the payload is how we are troubleshooting our experience of payload. But it is a function of wherever the failure is. So second job, you will open, you will see 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 has completed, and when you open database, you will see, oh, there were, I don't know. When you open, see, it's not the screen and it stopped to visualize what is the customer looking at. Yeah, I think this one we can show, right? I mean, maybe, because we said it will be flat, we did not get to that presentation though. Because do you have that presentation? The idea was that the action, the individual jobs would also expand. It will look like this. Yeah, but you know, because you have your example here, right? It says there's only one database. Imagine there are 10 databases. How is the screen look? If it shows only one VM cluster, it is not for the remaining. It does not have the database lines. That's a misunderstanding of the UI pattern, which does make us, if we don't, yeah, I can quickly draw that. It's about like this, right? Like if you have like this kind of a list, then this is what would happen. You can do this kind of a presentation of the option where you can page in it. There's a progressive loading. Yeah, so this Now, how will the screen look like if there are 10 databases on each VM cluster? Yeah, and 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... No, no, they will go off the screen. Correct. So these things are the same pattern as adding the databases, right? And are we allowing for one component to go through without the other one unless it's taken out of the stack, right? No, you can retry, right? Rollback, 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? Rollback, yes. Retry in one cluster where there are 10 databases, if the GI fails, there is no need to say retry for GI and the database. No, no, you don't have to. Correct. You don't have to. I'm saying here, you show, maybe you have tabs, right? You show the whatever VM clusters on one tab and the databases on another tab. And the only need 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? 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 for now. But no, it's a small one because they go together. 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 are doing vertical. That I completely, that is something worth exploring. But if you are 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, no, right now, the way it has been implemented, OS and GI are bundled in one response, right? And we have rollback or reward or continue retry for combined OS and GI. We don't have it individually. If we can do it individually, I would put them in separate screens. Correct. Okay, so if they were a way, which is what we are going towards, so you are saying, in that case, you will have three tabs, one is for OS, one is for GI, one is for DB. Yeah, here I am kind of taking the current situation, but if you go to databases, right, then you want to be able to see, hey, I got a hundred databases, you know, how many have completed, how many have failed, and how many are progressing, right? Those kinds of things are visible on a database collection screen, and that is what I want to bring the same experience. Yeah, but Sam, so I hope it is not because of what is seen on the screen. What is seen on the screen is 10. Whether you are 100 or whether you are in here, right? Here, the only difference between the two barring Sabha's comment on the OS, the 10 is screened, but the hundred is not seen, right? No, no, Sam, on a page, you can only see 10 or whatever the limit is, 50, right? That is based on the viewport, right? Even if you see 50, nothing will happen here. So the difference is, you will have the presentation, you are saying, you will have a table with 10 entries for OS, right? So they may or may not happen in the screen, depending on, we are all operating on a certain screen resolution. You will still have to scroll, right? You may still have to scroll, even for that 10, so you will have a screen for 10 OSs, 10 GIs, and you will have a screen for 100 DBs. They will all, let's say, the pagination size for all of them is 5. That's what I've said. So on first page also you will scroll, second page also you will scroll, third page also you will scroll. Correct? But the difference between that present, so total we have 100 plus, whatever, 10 plus 10, 120 rows across three tabs. That is one model, and we have not explored it, but we will explore and come back. But just to kind of clarify, the current presentation is not very complex. Barring Sabha's comment that if the compad itself is not supported, then we have a different problem, but that's a technical problem, and first we need to align what we want, right? So the user experience. So the current problem is very clean, right? You always have, it's a fixed function. It's always 10 rows. No matter what. And you only interact rows. And those not collapsed. In all collapsed. All collapsed, because you will only interact when there is a failure. So if there is a failure on one database, the color gets propagated to that row. Then only you will interact with it. Otherwise, you don't have to open it. Correct? If everything is perfect. 10 rows, DBGI rows, everything is good. Utilization of the summaries. Yeah, you will get, yeah, so now that's a different, now I'm seeing versus summary. So if you want to say, right-click, open all rows, what you will get is, let's say, they are all evenly distributed, like let's say there are 10, 10, 10 in each cluster. What you will get is 10 rows which are existing parent rows, and within each you will get 10. So 100 plus. So you will have 100 plus and 110 rows fixed. No matter what. You will have 110 rows and the open-close collapse will determine what you are viewing, see. That is the net net. And you will still have scroll. So instead of 120 rows across three tabs, you will have 110 rows if it's fully open on one tab. That is the present. Now the question is, how do you do RC, right? You only interact if the first row is read. First row is read means something in your stack has gone down. Right? Whether it is DBGI. So if, let's say, that's why I was saying that dividing of 10 rows and seven rows are all green, you don't touch it, you don't open it, you don't need to care because everything is going as planned. One of them is read. Let's say last three are read. First one you open, OS has failed. So the minute you open, you will have an entry for OS. OS and GI is that entry itself. You will see, oh, OS has failed, retry. Databases, all 10 of them are all in progress. You don't interact with it, but it is open. The second one you open, OS has succeeded, GI has failed. That also is on the same row which you opened and interact with it. You right-click and say retry GI or roll back GI, whatever you want, but you open 10 databases, they are not progressed. They are all like in progress. Third row you open, you see OS and GI are marked as green. It's on the same row. And then the 10 databases, 1, 2, 3, 4 databases are all successful. 7, 8, 9, 10 have failed. Now there you can do right-click each or you can do right-click. The way I see it, from a customer perspective, it seems this is a little bit more tedious. You need to go and then uncollapse those, expand those, right? Otherwise you have to switch between tabs and make the correlation that which is the parent and which is the child. That is the concept, right? It's right there, right? 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 belongs to which. Yeah, but the database is paid, right? You can go click on the database, retry, whatever it is, right? And you know the dependent components 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 compute the GI, it will compute the OS, then it will go to the third node, right? It'll do all of the 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, see, the way customers see it, right, it sounds like, you know, they understand this. There's a hierarchy here, but for them, there is a database team, there's an infrastructure team, you know, it may most likely be in West Coast, that's how it is. In the 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 are 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, it's 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. We have to, we have to play that out, Sam. I'm just thinking because the key part there is like, the one 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 mistake 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 the handle of 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, or rollback for that matter. So remember... You can still do it here. 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 failure in different VM clusters on the database tab, right? 10 databases. The only reason we'll show a failure there is because the database patching failed. All right. Right? The cause of the GI or OS. So the action to retry on all of them is completely valid. So, 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, again, 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 are failed at that point. Now there is an action where the guy says, I want to remove GA, you know, from the vertical stack. Right? So when he does that, at that point, we have to kind of, kind of hide those things. Not show failures from the GA part because they are reverted. 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. Because now, I think, 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. Yeah, yeah. From a customer's action perspective, the simplest way, the direct way for him to act on it is the main thing. Correct. 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, again, 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 are failed at that point. Now, there is an action where the guy says, hey, I want to remove GA, you know, from the vertical stack. Right? So when he does that, at that point, we have to kind of, kind of hide those things. Not show failures from the GA part because they are reverted, 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. Because now, I think, 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. Yeah, yeah. From a customer's action perspective, the simplest way, the direct way for him to act on it is the main thing. Right? So we don't have MP part, right? And the nothing for him to do is with his fine. It's fine. 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. Yeah. That one person is going to be the, there is no two different owners. Basically. The owner is submitting it. No, that submitting owner has the responsibility to bring up the database GA and the OS. Because that won't happen because the guy will think of 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's 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're right, since that may be right. OS guy will probably not know DB for sure. I mean, likely, not for sure, but there's a chance that the guy who's doing with OS Linux and all that. But Sam, but still, right, the person who's 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's submitting the job is not the one who's troubleshooting, then whoever comes, then they have to have read privileges 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… We have something of a group, right? Based on the group. Correct, but that group will have all privileges, all three level privileges. This is what I'm saying. But you are saying that maybe I'm a database admin, I have… See, if there are a thousand databases, right, you can't have, like, you know, one admin guy who's submitting it to be able to do everything. You can't… No, I think the team will coordinate with others, but I think the…

But the UX is, yeah. So let me tell you, right? The database owners will need to be able to handle database, right? And on the failure part of it. Not on the failure part of it. No, I think what Vikas suggested here, right, I know Sam, I think the way it is is, you have this association, at the point of failures, Prince, what Vikas said is to, can we have a filter to just say, hey, this is the whole stack, but I just want to see what are all the databases involved and then… That we can filter it. But they are all still parent-child relationships. So you will see… I think we should still have the parent-child thing. That's what I feel, but I don't know. If we don't have that parent-child thing, sometimes we don't even know if the Uber guy is expecting somebody to just go independently and do the databases because the Uber guy has some… Become on the relationship, right? Even on the database tab, right? We can have a mark indicating this is part of a vertical. Correct, correct. That we need to have it. It's not that, you know, we have been keeping him ignorant of that. Right? I mean, the whole collection itself is vertical, so that… But the key part here is, to Sabah's point, right, this whole… If we are saying that it is like going VM1 is going, there are four VMs in a cluster, VM1 is going DB, I mean, sorry, OS, GI, and all five database instances. Then it is going VM2, DB, GI, and all five database instances. That is… Right, right. But what I'm saying is that relationship during creation is not established because it's a separate. Yeah, looking at it from a developer perspective, from a customer perspective, from an operator perspective, right? He doesn't care, you know, what sequence it is or when it is happening. For him, right, my application is 100 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'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. VM1's GI is going on. Now database instance 1 is going on, right? Otherwise, it will be… Yeah, I mean, like, if you slip… Yeah, if you slip the presentation, then you have to explain that in the work request of the child that your parent's 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 saying when Guru was asking, will it show as executing or will it not start or something, right? Correct. 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 a single job has not started. They will be like, anything, don't have a hardback for others. They will be like, oh, two hours, 40 minutes. They will feel reasonless for two hours, 43 minutes, nothing happened in the database. So, if we 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 perspective, from a customer perspective and operator perspective, right? He doesn't care, you know, what sequence it is or when it is happening. For him, right, my application is a hundred databases. I need to make sure if my databases are getting that's not good for you. It's taking too long. Longer, yeah. Other component is 16,000 in between, which, you know, which gives understand data. Correct. So in fact, so the statement, if we go with this kind of presentation, advantage to this kind of presentation is you can do right click on this tab and create a report if you're a database guy and not have other components. There is other kind of reporting benefits to this, this view, because then you are truly in a statement of vertical or non-vertical. You can have database be linked database. The expand and collapse, right? That model is not so friendly to me. Those are friendly. 110 in a row. 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 give me all the vertical jobs, you will have 10 rows sent back. And inside that you have progress of give me the GI update, OS update, and so you have only 10 rows coming back. The other one which you're talking about, you will have, give me all the vertical jobs. 10 rows, see, if there is nothing visual about it, right? So I'm okay with that. You have 10 rows, but each row will have a collapse and expand, right? Yeah, correct. 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 it. So, okay, then that is another thing, right? Because API, if you design it the way you are saying, like 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. Wait, wait, wait. 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 separate job ID? We discussed that, right? Yeah, so each job ID will have a target like the project. So it will be clustered or database hosted. Okay, so you will already always have 120 jobs. If you are having different, you know, size job numbers and sub, you have to show them anyway, right? Yeah, so basically, you will have 120 job IDs, a job OS. Right? Yeah, yeah, yeah. Okay. So then We will go back. Yeah, we will go back and then I think. Show the pros and cons of that. Yeah, no, no. Yeah. We have this where. Yeah. Yeah. 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 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. You know what they did, right? They delegated the database part of it to the internal customers.

vertical also? It is vertical. But right now, the database is not part of the vertical, right? It's only OS plus GI. Yeah, so see, that's where, right? Because once you dedicate... But I'm saying, when they go to a database, they will want that model to continue. That is, what will have the difference will be 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 physically delegated to them. They will still submit their jobs, okay? Right? But it will get executed as part of a vertical and they will be informed, hey, you know, we are doing the vertical this weekend. So you guys monitor your database jobs. You guys have submitted it. When they have submitted, it will go into a queue and then it will get executed as part of a vertical. 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. Because sometimes they may have a round of patching where there is only database, right? Some security fixes come in, some new image for database, so it 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 in 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 plus one GI, right? Yeah. Yeah. Yeah. I mean, the cardinality is not in higher. 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 we split, will not change. But I do think that at the time of creation, if you don't have this parent-child relationship, 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... From the job part of it, not in the creation part. In the job part of it, nothing changes, right? They have done... 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... See, when you have a side panel, they can also be kind of reference resources. It doesn't mean it is a side, right? So parent-child relationships, do we need that fleet 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 plus one GI, right? Yeah. Yeah. Yeah. I mean, the cardinality is not in higher. 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 we 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... Only the job part of it. Not in the creation part. In the job part of it, nothing changes. Right. They have done... 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... See, when you have a side panel, they can also be kind of reference resources. It doesn't mean it is a side or anything, right? So parent-child relationships, do we need that fleet 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 plus one GI, right? Yeah. Yeah. Yeah. I mean, the cardinality is not in higher. 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 you 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... Only the job part of it, not in the creation part. The job part of it, nothing changes, right? They have done... 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 side or anything, right? So parent-child relationships, do we need that fleet 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. But if 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 plus one GI, right? Yeah. Yeah. Yeah. I mean, the cardinality is not in higher. 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 we 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... Only the job part of it, not in the creation part. In the job part of it, nothing changes, right? They have done... 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... Let's see, when you have a side panel, they can also be kind of reference resources. It doesn't mean it is a side or anything, right? So parent-child relationship, do we need that fleet 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 plus one GI, right? Yeah. Yeah. Yeah. I mean, the cardinality is not in higher. 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 we split, will not change. But I do think that at 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. So we will go with this, see all these things. Anyway, friends, 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 craft that, yes, we will do 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. Correct. Okay. API is fine. I mean, it's just data, right? Correct. Correct, sir. I think that's a 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. Yeah, Sabha, I please also have on your inputs because the one thing Sabha, I think, is all these things are ideally, it would have been better with the UX designer and the things where I think we kind of focused that, Prince, Vikas, they had these things, right? But I want your inputs also, Sabha. Okay. Yeah. I think that we can have some finer discussions around that. I'm saying like, can we move the kickoff itself so that like I can have the concrete answer for this train and that. 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. By the time project kickoff, we will, you know, we will close out all these things. So because that way main is see, we can't need that EPS and hopefully one more question because jobs is flatten, flattened. So in the example, it will be 120 job IDs of which 100 will have related job ID posted, correct? Yeah. But in the initial creation, when you have the parent-child work subriders saying, is it a flat list of, is it 120 targets or is it 10 targets with children targets? Okay. Then we have got API is good. You are, okay. API is good. So the main work is there, right? Because that's the work. So you and me will discuss. Okay, good. So that means we are not changing much in the, and nothing of what's last some Sam said about custom image dropped down. None of that impacted the number of gold version and the representation also. Yeah. But that did not impact your Vikas any, nothing. Doesn't 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. Okay. Then I'm going to jump to another call also. Okay. Thanks. Thank you so much.