V2: Vendor — Provision server for a tenant #41

Closed
opened 2026-04-09 21:24:06 +02:00 by claude · 1 comment
Owner

User Story: As a vendor, I want to provision a server for a tenant so they have a running Cameleer instance.

Acceptance Criteria:

  • SaaS creates cameleer3-server + server-ui containers via Docker API
  • Correct env vars: database URL, ClickHouse URL, tenant ID, OIDC config, license token
  • Containers join cameleer + cameleer-traefik networks
  • Traefik labels route /t/{slug}/* to tenant's server
  • Health check passes (poll /actuator/health, timeout 60s)
  • License pushed to server via M2M API
  • Tenant status transitions PROVISIONING → ACTIVE
  • Pluggable interface (TenantProvisioner) supports Docker now, K8s later

Spec: docs/superpowers/specs/2026-04-09-platform-redesign.md — Section 3
API: Part of POST /api/vendor/tenants flow

**User Story:** As a vendor, I want to provision a server for a tenant so they have a running Cameleer instance. **Acceptance Criteria:** - SaaS creates cameleer3-server + server-ui containers via Docker API - Correct env vars: database URL, ClickHouse URL, tenant ID, OIDC config, license token - Containers join `cameleer` + `cameleer-traefik` networks - Traefik labels route `/t/{slug}/*` to tenant's server - Health check passes (poll /actuator/health, timeout 60s) - License pushed to server via M2M API - Tenant status transitions PROVISIONING → ACTIVE - Pluggable interface (`TenantProvisioner`) supports Docker now, K8s later **Spec:** `docs/superpowers/specs/2026-04-09-platform-redesign.md` — Section 3 **API:** Part of `POST /api/vendor/tenants` flow
claude added the platforminfraday-1 labels 2026-04-09 21:24:06 +02:00
Author
Owner

All acceptance criteria implemented: DockerTenantProvisioner creates server + UI containers via Docker API, correct env vars, tenant + traefik + shared networks, Traefik labels for /t/{slug}/*, health check polling, license + OIDC push via M2M API, status transition PROVISIONING → ACTIVE, pluggable TenantProvisioner interface. Closing.

All acceptance criteria implemented: `DockerTenantProvisioner` creates server + UI containers via Docker API, correct env vars, tenant + traefik + shared networks, Traefik labels for `/t/{slug}/*`, health check polling, license + OIDC push via M2M API, status transition PROVISIONING → ACTIVE, pluggable `TenantProvisioner` interface. Closing.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: cameleer/cameleer-saas#41