Plugin directory / Knowledge / dsh-multi-tenant
dsh-multi-tenant
Verified · install-tested on dsh GuoMonth
What it does
Multi-tenant SaaS extension for DeepSeek Harness (DSH): tenant identity, session isolation, authorization, tenant-aware MCP, and audit.
Works — verified, early-stage project
Multi-tenant SaaS extension for DeepSeek Harness (DSH): tenant identity, session isolation, authorization, tenant-aware MCP, and audit. It installs cleanly and boots without issues in our testing. It's early-stage but functional.
“Verified” means our automated CI actually ran dsh plugin add in a clean profile and it booted — nothing more. Feature descriptions and version compatibility are the author’s claims. This is not a security audit and not an endorsement of third-party code.
README
dsh-multi-tenant
OIDC, membership authorization and native DSH access, with a Kubernetes AgentEnvironment for each user. The current tested runtime implements that workspace as a Cell from dsh-isolated-runtime.
Cell MVP alpha. Two-user and real-model regression passed. 0.9.0-alpha.1 uses npm latest, a default installation channel, not a stability promise. Breaking changes are allowed; historical compatibility, upgrades and seamless recovery are not promised.
Fixed release boundary
DSH is exactly 0.1.5-rc.2, source fb2c4b9e698e30edb738bca4cf0618587db7d203. Each release locks the publicly pullable Cell and Operator images by @sha256 digest, with matching runtime source and DSH identity in cell-release.json (platform) / release.json (runtime). Pin the deployed platform image by digest too. npm latest selects a package at installation; it does not authorize moving image tags or a DSH version range at runtime.
Breaking updates are allowed: publish a new explicit combination, update configuration/state expectations as needed and validate the affected flow. No compatibility shim, historical upgrade or migration promise is required. Published artifact identities stay immutable. The public runtime pair is locked to v0.3.0-alpha.1, Linux/amd64. Exact digests are in the release manifest. Null digests block publication.
Start
An administrator first configures Kubernetes, the platform-mode Cell Operator, OIDC, DNS/TLS, storage and permissions. The platform needs direct Kubernetes API and Cell Pod-IP connectivity; run it in the cluster. Running npx on an ordinary host does not provide cluster networking.
Runtime setup: npx [email protected] manifests prints the pinned Operator/CRD/RBAC YAML for administrator review and deployment. Its release command prints the fixed Cell image and DSH version. This replaces the old standalone launcher; the runtime npm package does not run a second user-facing server.
# Node.js 24+
npx dsh-multi-tenant@latest start --config /private/config.json
The command runs in the foreground. SIGINT/SIGTERM stop the platform and retain Cells/data; SIGHUP reloads membership. Record the resolved exact npm version and image digests for deployment; do not resolve latest on every restart. This release does not create kind clusters.
See the alpha startup guide for existing-cluster deployment, configuration and administrative commands.
Unpublished cell-mvp-v1 source candidate
This branch targets [email protected]; it is not published. Published 0.9.0-alpha.1 and npm @latest retain the calibrated-profile configuration above and do not accept the candidate schema. The Connector is bound to runtime source ed914317e98a93752e8af4f7831c384fc1e92f13; Cell and Operator image digests remain null because these local candidate images are not a public release. See the candidate setup guide. DSH remains pinned to 0.1.5-rc.2.
The local candidate passed MVP internal acceptance on 2026-09-22, including native Bash subprocesses and deployment without calibration; this does not publish the candidate.
Ownership
The current request path is Envoy TLS/routing → platform openid-client OIDC and admission → Node Connector → Go launcher → DSH. Envoy does not perform platform login or tenant authorization.
| Component | Owns | Does not own |
|---|---|---|
dsh-multi-tenant |
OIDC, trusted membership, user protocols, parent/child sessions, durable allocation intent, authorized proxy | Pod/PVC controllers or runtime image builds |
dsh-isolated-runtime |
Current Cell Operator/images, resource identity/lifecycle, restricted Connector | User login, membership or platform sessions |
| DSH | Native Web, application sessions, tools and model calls | Platform tenant authorization |
AgentEnvironment direction
Kubernetes is the runtime direction; Process and Docker runtime backends are not planned as supported alternatives. AgentEnvironment is the product concept. The local integration trial selected upstream agent-sandbox core: W1 will map the product directly to Sandbox, without a second CRD or controller. The existing Cell implementation and legacy provider source have not yet been removed; that cleanup is planned for W1. This design is not implemented by the current candidate. See AgentEnvironment design and Issue #104.
One AgentEnvironment is the user's persistent DSH environment and is intended to contain multiple DSH conversations sharing that workspace. The currently tested Cell preserves its workspace data and native DSH state across Pod replacement. This demonstrates Cell-level persistence; it does not establish session-level isolation for home files or OAuth/CLI credentials.
The current release remains limited to one cluster, one platform replica and a fixed version combination; it does not add HA or a recovery system.
Real alpha test
Captured from the 2026-09-20 OIDC → Cell → native DSH session. deepseek-flash wrote/read a file and read an uploaded attachment. This is DSH's native UI; model credentials are not supplied by this project.


The regression report distinguishes cluster, local socket and fixture evidence. The release record and startup guide describe the published package and its limits.
Historical Process/Docker SDK and workbench material is outside the current Cell installation path and remains only as historical source/evidence. MIT; bundled dependencies retain their licenses in THIRD_PARTY_NOTICES.
Install
Install the catalog once, then DeepSeek Harness can find and install any plugin from this site automatically:
dsh plugin add dshbase-catalog Then say "install dsh-multi-tenant for me" — your agent finds it in the directory and installs it. Docs: dshbase-catalog · verified packs.
This plugin is GitHub source (not published to npm) — install it straight from the repo:
Web profile:
dsh plugin --profile web add github:GuoMonth/dsh-multi-tenant Headless (CLI) profile:
dsh plugin --profile headless add github:GuoMonth/dsh-multi-tenant Test report
Verified: L1 install + L2 load + L3 runtime from GitHub source on dsh 0.1.0-rc.6.
When to use it
Give the agent a memory, a knowledge base, or a retrieval layer so it stops forgetting context between sessions.
Who it's for
Users running long projects who want the agent to remember decisions, docs, and preferences without re-explaining.
For developers — extending it
The memory/retrieval backend is the seam — plug a new store, tune what gets distilled, or add citation and audit trails.