This message was deleted.
# general
s
This message was deleted.
f
The store name is used to configure the client which reads from Venice. Do you want the tenant information to be visible there, or somehow obscured?
If you want it obscured, then options 1 and 2 cannot achieve that with the regular client. Could still be achieved if you plan to wrap the client into a layer which handles the indirection, but it might get complicated...?
Alternatively, we could perhaps have a store config which is essentially "topicPrefix" and all of the components would need to honor that when crafting topic names. It would be a somewhat complicated refactoring, but maybe cleaner in the end. WDYT?
Also: is it acceptable for this store-tenant mapping to be immutable? Or do you expect it to be mutable?
e
a tenant should be a isolated world, in Pulsar you have both “logical isolation” and “physical isolation” (assign machines/resources per-tenant)
so tenant1 -> store1 is different from tenant2 -> store1
I have a POC in which I allow the storeName to be in the form tenant.namespace.name from the Venice point of view the space of the names of the stores is still flat, there is no hierarchy
but on Pulsar I store the data on topics named like tenant/namespace/store_v1….. and this means that the data of each “tenant/namespace” is logically isolated
I would like to implement authorisation in a way that a “tenant” can access only stores whose name starts with “tenant.” or something like that. I saw that there is some ACL/permissions support in Venice, but I want something that is more strong and not error prone
f
So if you want this:
so tenant1 -> store1 is different from tenant2 -> store1
Within a single Venice deployment, you would need the Venice store name to include the prefix, since store names must be unique. Unless we make tenant/namespace a first-class Venice concept also.
e
exactly, that’s my idea 🙂 I will force my users to name the stores as tenant.namespace.store