But during testing just now it seems like you don’t even need to include the entity name so this works just as well (as far as I can tell without extensive testing):
/**
* @param spaceDb - in format 'space/database'
* @param entityPubId - the public ID, a number
*/
function makeEntityUrl(spaceDb, entityPubId) {
return `https://test-sandbox.fibery.io/${spaceDb.replace(" ", "_")}/${entityPubId}`;
}
const r = makeEntityUrl('Example Space/Database A', 2)
console.log(r) // https://test-sandbox.fibery.io/Example_Space/Database_A/2
I’m curious to know what sensitive info you think is exposed by having sequential identifiers?
Given that they are not re-used, it doesn’t tell you how many entities exist in a given database (since 101 might be created and 100 deleted).
It doesn’t tell you when they were created (in date/time terms) although you can deduce that one entity was created after another.
Typically business related stuff. In those cases you do not delete the previous entries, you change their status as closed or irrelevant.
Hence you expose the amount when someone tries to reach the top number.
And thus the URL always works even when you rename the space (app) , folder, move the entity among spaces, etc.
I am not saying replace the context aware URLs (those are for some visual and browser tab completion convenience), I am saying for the links sharing - UUIDs are better.
I’m not sure I understand what you mean by ‘reaching the top number’. Are you saying that users can deduce the total number of entities in a given database?
That is not quite the case, as I said, since it only tells you how many have been created to date, and not how many are actually in use.
If that bothers you, then you can randomly create a whole bunch of dummy entities and immediately delete them to obfuscate this information(!)
FYI, the Fibery URLs for entities do not actually need the name, as Dimitri points out above.
Also, because of the way UUIDs are formed, they actually reveal more info than the public ID
So it’s the space name/database name that is particularly sensitive, more so than the entity id?
It wouldn’t be so bad if it showed the following, right?