Can each tenant have specific properties and how?

Description

I need help with Tenant specific settings like, in my case, each Tenant need to have its own title, description and reference email, just like it has activityStatus property. Also if possible, it should have specific access permission by RBAC.
Can anyone help me set up that with TS weaviate-client v3?

Thank you!

Hello!

[quote=“zzzzela, post:1, topic:9330”]
in my case, each Tenant need to have its own title, description and reference email, just like it has activityStatus property. [/quote]

This is sadly currently not possible, you could do a feature request: Issues · weaviate/weaviate · GitHub

But you can use the tennat name as title and store the other info in a different collection?

Also if possible, it should have specific access permission by RBAC.

RBAC is still in preview and currently you can only filter access by collection. Per-tenant might come later: Authorization & RBAC | Weaviate

Currently only the python client has support to add/assign RBAC roles, but the other clients will follow

Thank you very much for your response @Dirk

But you can use the tennat name as title and store the other info in a different collection?

Can you please help me on how could i do that? I’m struggling because as far as I can see, cross references are per object, not per tenant. Please look at this code I have for now:

const myCollection = client.collections.get('MyCollection')

  const configCollection = client.collections.get('ConfigCollection')

  const tenantA = myCollection.withTenant('TenantA')

  await tenantA.data.referenceAdd({
    from: {
      id: myCollection.id,
      property: 'hasConfig'
    },
    to: {
      id: configCollection.id
    }
  })

So far, i dont know how could I add some data in config collection, that should reference each tenant, for example “description” property from “ConfigCollection” for tenantA?

Thank you upfront!

I would create two collections:

  • your multi-tenant collection as you are using it right now
  • a second collection tenantInfo where you store more info about the tenant
    • set the vectorizer to “none”
    • add a property name, description etc
    • when you want to get the extra info you can query the extra collection with a filter name==your_tenant_name

don’t think there is currently a different way to do it :thinking:

Thank you! And sorry once again for this beginner question. I come from Postgres + pgvector, so all this NoSQL stuff is still a bit confusing to me. :expressionless:

No worries, happy to help!

This is somewhat of a workaround, feel free to add a feature request here: Issues · weaviate/weaviate · GitHub