As of now, we don’t plan to expose the /assign endpoint in Slash. The reason being, the UID counter is shared by tenants in multi-tenancy. A malicious user can ask for 2^64 UIDs causing the whole cluster to run out of UIDs.
Other than this, same UID can be used by multiple tenants.
Suppose on namespace-1 a user does this mutation
<0x1> <name> "alice" .
<0x1> <age> 15 .
and then on namespace-2 a user does similar mutation
<0x1> <name> "bob" .
<0x1> <age> 12 .
We don’t prevent user of namespace-2 from using the same UID. It is just that user of namespace 1 will see the node <0x1> as:
<0x1> ----name--- <alice>
|
|____ age ____ 15
while the user of namespace-2 will see it as,
<0x1> ----name--- <bob>
|
|____ age ____ 12
while actually it will have 4 edges, something like this:
<0x1> ----(2name)--- <bob>
|----(1name)--- <alice>
|----(1age)--- 15
|____ (2age) ____ 12
For your use case, you can assume that all the UIDs are owned by you.