Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
Shahzad_Ahsan
Creator III
Creator III

Sheet Id from QMC vs URL

Hi 

I had a confusion with the sheet Id.

I have used sheet level security for one of my App and I have mentioned sheet id from QMC,  meanwhile I have used buttons on the sheets to navigate between sheets by sheet Id. 

First of all It was not navigating to respective sheet which I mentioned. Then I went to "Dev-Hub" > Single Configurator > Selected my App and I found sheet Id in the URL . and I found that URL sheet Id is different from QMC > App Object sheet id

So, for sheet level security I have used sheet id from QMC and for navigation, I have used URL sheet Id and it is working fine.

Is this the right approach??

Labels (1)
1 Solution

Accepted Solutions
ricklabs
Contributor
Contributor

The 2 IDs refer to the same Object.

The ID coming from the QMC > App Objects is the internal ID in the System, the format is always UUID (4bee8401-e85d-4804-84e6-02c265cc86c9), it's unique among all objects. It is used internally only.

While the ID coming from Dev-Hub>Single Configurator is the "Engine ObjectID" which can be of any format, and it's unique per Application. It's used mainly in navigation and integration. it's visible and accessible from any URL.

So the answer to your question:

I believe the main reason behind having 2 IDs, is for security purposes, not to expose the internal ID and make it visible in any URL.

View solution in original post

9 Replies
ricklabs
Contributor
Contributor

The "Sheet ID" displayed on the top of the Single Configurator in the Dev-Hub, or the one in the URL are the correct ID for the sheet.

Shahzad_Ahsan
Creator III
Creator III
Author

But, while giving Sheet Level Security I use sheetId from QMC > App Objects and that works fine.

My question is why there is 2 sheet ids??

 

ricklabs
Contributor
Contributor

The 2 IDs refer to the same Object.

The ID coming from the QMC > App Objects is the internal ID in the System, the format is always UUID (4bee8401-e85d-4804-84e6-02c265cc86c9), it's unique among all objects. It is used internally only.

While the ID coming from Dev-Hub>Single Configurator is the "Engine ObjectID" which can be of any format, and it's unique per Application. It's used mainly in navigation and integration. it's visible and accessible from any URL.

So the answer to your question:

I believe the main reason behind having 2 IDs, is for security purposes, not to expose the internal ID and make it visible in any URL.

Shahzad_Ahsan
Creator III
Creator III
Author

Thanks for your explanation. This is clear to me.

While working on navigation I was using internal sheet id (QMC > App Object) and was not working. Then I realized their is 2 sheets Ids. Now it is all fine. 

mgranillo
Specialist
Specialist

Is there a way to tie the engine ID to the internal ID? I need to change the owner on a sheet in the QMC but I cant identify the correct sheet because we have a lot of personal sheets with the same name. I'm able to obtain the engine ID but then can't tie it to the entry in the QMC

Sivapriya_d
Creator
Creator

Hi @mgranillo ,

I do have a same issue. In my application there are duplicate sheets with the same name. Couldn't able to identify these sheets in QMC as the Sheet ID is different from hub.

Got any workaround /Solution for this?

 

 

Thanks,

Siva

mgranillo
Specialist
Specialist

I use the operations monitor to tie the two.  You'll see an engineObjectId and appObjectId loaded in the app

mplautz
Contributor III
Contributor III

This one response solved my problem that I had too. Thank you.

mplautz
Contributor III
Contributor III

I actually identified a more pertinent reason that there is both an internal object ID and an engine object ID. (I found out the hard way.)

Every sheet has a unique internal object ID. No matter what. However, the engine object ID of a sheet (that is visible from the URL) stays consistent with the app that it is in. This means that when you duplicate an app, the engine object ID is retained for each sheet (even though the app ID might be different). This also means that if you publish the same app to different streams, the same sheets will all have the same engine object ID (as visible in the URL) in each of the different apps, even though (a) the app IDs are different and (b) the internal object IDs of each sheet are different.

So it is less about security and more of an engineering design decision.