Skip to content

[v1.38] Document namespaces#429

Open
g-despot wants to merge 7 commits into
v1-38/mainfrom
v1-38/namespaces
Open

[v1.38] Document namespaces#429
g-despot wants to merge 7 commits into
v1-38/mainfrom
v1-38/namespaces

Conversation

@g-despot
Copy link
Copy Markdown
Contributor

@g-despot g-despot commented May 27, 2026

Summary

Documents the v1.38 Preview namespaces feature — cluster-level isolation where every collection and alias belongs to exactly one namespace. Namespaced principals see short names (Movies); the cluster stores qualified names (customer1:Movies). One cluster can host many isolated logical "customer clusters".

Companion to server PR weaviate/weaviate#11128 and Python client PR weaviate/weaviate-python-client#2033.

What's documented

Phase 1 (collections + aliases scoped per namespace, operator-managed DB users); Phase 2/3 flagged as designed-but-not-shipped. Two framings repeated throughout:

  • Namespaces ≠ multi-tenancy — namespaces scope collections across the cluster; multi-tenancy scopes data within one collection. Orthogonal.
  • New clusters onlyNAMESPACES_ENABLED=true can't be retrofitted, and a cluster that has run with it can't be downgraded.

Changes

New:

  • concepts/namespaces.md — concept page: prerequisites, principal model (DB user / static API key / OIDC), name resolution, limits, blocked surfaces, cross-feature interactions.
  • configuration/namespaces.mdx — operator how-to: enable, REST CRUD, bootstrap a namespaced DB user. Python examples in <Tabs>.
  • _includes/namespaces-overview.mdx — shared overview + terminology (principal, operator, name resolution…), reused on both pages.
  • _includes/code/howto/namespaces.py — runnable Python snippet, wired into tests/test_python.py (skips until the #2033 client ships).
  • tests/docker-compose-namespaces.yml — namespace-enabled test instance.

Updated: concepts/data.md, manage-collections/multi-tenancy.mdx + collection-aliases.mdx, configuration/rbac/index.mdx, deploy/configuration/oidc.md, env-vars/index.md (new rows: NAMESPACES_ENABLED, DISABLE_GRAPHQL, REPLICATION_MAXIMUM_FACTOR, OIDC claims), concepts + configuration index cards, sidebars.js.

Status / test plan

  • yarn build clean (cross-links/anchors resolve).
  • Namespace CRUD + roles + permissions verified against 1.38.0-rc.0 with the #2033 client.
  • Namespaced DB-user creation is blocked by a client/server skew (branch client lacks namespace=; the rc.0 server expects it in the request body). Re-verify once #2033 reconciles with the release image, then unskip the test and pin the released client version.

Other clients (TS/Java/C#/Go) have no typed namespace methods yet — use REST.

Copy link
Copy Markdown

@orca-security-eu orca-security-eu Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Orca Security Scan Summary

Status Check Issues by priority
Passed Passed Infrastructure as Code high 0   medium 0   low 0   info 0 View in Orca
Passed Passed SAST high 0   medium 0   low 0   info 0 View in Orca
Passed Passed Secrets high 0   medium 0   low 0   info 0 View in Orca
Passed Passed Vulnerabilities high 0   medium 0   low 0   info 0 View in Orca

# where <node-name> is a current storage candidate from
# client.cluster.nodes().
ns = client.namespaces.create(name="customer1")
print(ns.name, ns.home_node, ns.state)
if ns is None:
print("not found")
else:
print(ns.name, ns.home_node, ns.state)
Comment thread _includes/code/howto/namespaces.py Fixed
# Bind the new DB user to a namespace. The user is stored internally as
# `customer1:api_user` and can only see resources in `customer1`.
api_key = client.users.db.create(user_id="api_user", namespace="customer1")
print(api_key)
Copy link
Copy Markdown

@orca-security-eu orca-security-eu Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Orca Security Scan Summary

Status Check Issues by priority
Passed Passed Infrastructure as Code high 0   medium 1   low 1   info 3 View in Orca
Passed Passed SAST high 0   medium 0   low 0   info 0 View in Orca
Passed Passed Secrets high 0   medium 0   low 0   info 0 View in Orca
Passed Passed Vulnerabilities high 0   medium 0   low 0   info 0 View in Orca
🛡️ The following IaC misconfigurations have been detected
NAME FILE
medium Controller creating containers without dropped capabilities ...mpose-namespaces.yml View in code
low Container Traffic Not Bound to Host Interface ...mpose-namespaces.yml View in code
info Container Healthcheck Not Defined ...mpose-namespaces.yml View in code
info Docker Compose Restart Policy On-Failure Not Set to 5 ...mpose-namespaces.yml View in code
info Ensure that, if applicable, SELinux security options are set (Automated) ...mpose-namespaces.yml View in code

@g-despot g-despot changed the title [v1.38] Document namespaces (cluster-level tenant isolation) [v1.38] Document namespaces May 29, 2026
@g-despot g-despot changed the base branch from main to v1-38/main May 29, 2026 11:58
Copy link
Copy Markdown

@orca-security-eu orca-security-eu Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Orca Security Scan Summary

Status Check Issues by priority
Passed Passed Secrets high 0   medium 0   low 0   info 0 View in Orca

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants