railiance-apps/docs/vergabe-demo-company-binding.md
tegwick effd0a3170
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s
docs: unblock demo pilot login provisioning
Assistant: codex
Assistant-Model: gpt-6-astra
Assistant-Session: 01a07ff8-19d0-7820-b4d0-1353833cb7fc
2026-09-11 22:00:38 +02:00

77 lines
5.3 KiB
Markdown

# Vergabe demo-company deployment binding
Prepared 2026-09-11 under RAPPS-WP-0014-T02 and VERGABE-WP-0019-T03/T04.
Native tenant creation is verified; application placement and onboarding remain pending.
| Item | Binding / execution status |
| --- | --- |
| Tenant | `tenant:trial:demo-company`; display `demo-company`; active, version 1; native operator create/readback verified |
| Purpose / data | New demo workspace; synthetic data only; no existing data import |
| Initial accounts | `demo-user1`, `demo-user2`, ordinary members; creation and private credential setup pending |
| Operator / acceptance | Bernd Worsch via authenticated existing operator path |
| Cluster | Railiance01, kube-system UID `a553c742-0115-43d4-99a4-a5ca56fe0786` |
| Proposed namespace | `vergabe-demo-company`; create separately from historical installations |
| Helm release | `vergabe-teilnahme` within that namespace |
| Image source | Tenant-path source `9345a1bb1a92ac0ee3b2dc6443a3d299e6754e70`; CI smoke 43 / publication 44 passed |
| Image digest | `forgejo.coulomb.social/coulomb/vergabe-teilnahme@sha256:cebe8ca6218cc89f903e8a69e06ac50d3812526d4119cf4da485cc173f674b68` |
| Chart baseline | 0.2.0 at railiance-apps `9491744e5adab4464070c164d7172a7392ae1e15` |
| Resources | One Recreate replica, CPU request 60m / limit 1000m, memory request 256Mi / limit 1Gi |
| Selected URL | `https://vergabe-teilnahme.coulomb.social/demo-company/`; one product host, exact tenant path |
| Public edge | DNS, TLS and login abuse-control configuration pending; expected target 92.205.62.239 |
| Proposed database / role | Fresh `vergabe_demo_company` / `vergabe_demo_company` on `databases/apps-pg`; platform provisioning/custody pending |
| Runtime Secret | `vergabe-demo-env` in the dedicated namespace; platform delivery pending, no secret values in this packet |
| Media / app state | Separate `vergabe-teilnahme-media` 5Gi and `vergabe-teilnahme-app-state` 1Gi PVCs, local-path; native creation pending |
| Recovery / support | Existing RAPPS-WP-0014-T03 retains off-host recovery point, isolated restore, rollback and operating responsibility evidence |
The target database is a proposed new consumer, not permission to reuse or
overwrite `vergabe_db`. Refresh managed-consumer count, placement and migration
demand before applying. Tenant creation itself does not depend on this hostname.
## Native tenant and identity execution
Use the existing User Engine portal at `https://users.92-205-62-239.nip.io`.
Its `/login` uses KeyCape and the registered native callback. The authenticated
platform form creates `tenant:trial:demo-company` through Tenant Engine. Record
the response and read back the exact tenant before creating memberships. Do not
substitute a service actor, fabricate verified claims, or bypass policy on denial.
Native login and operator creation succeeded at 19:03:18 UTC. Tenant Engine
confirms demo-company active/version 1; User Engine contains the first
administrator with invited status. A subsequent Create login failed with an
LLDAP service-login 401. The operator completed NK-WP-0036-T04's attended
credential-reference repair: provider and consumer login now pass, independently
verified with a directory read; the provider password and image are unchanged.
Retry native Create login for the existing intended user and verify password
setup. No directory identity is inferred from the user-domain record.
Create two ordinary memberships through User Engine. Confirm how the identity
provisioner assigns login names before provisioning the requested demo names;
do not invent deliverable email addresses or send invitations to third parties.
The current product uses separately provisioned Django accounts, with no staff
or superuser flags. Preserve the mapping to this tenant's isolated deployment.
This establishes a platform tenant and a bounded app pilot, not completed SSO.
## Hostname and deployment execution
`helm/vergabe-demo-company-values.proposed.yaml` retains 60m resources and the
selected product host, APP_BASE_PATH=/demo-company and published immutable
digest. The chart does not create ingress or DNS.
The edge must match exactly /demo-company or /demo-company/, canonicalize the
bare path and strip the prefix. It must keep private media on the app route and
apply TLS and the admitted abuse-control policy. Do not route neighboring paths
to this instance. Company/data separation remains the dedicated database and
volumes, not a forwarded header or browser path.
On 2026-09-11 the selected product hostname resolves to 80.158.43.29; Railiance01
is 92.205.62.239. No DNS changes have been made. A single product DNS/certificate
serves this arrangement; tenants do not need their own subdomains.
Complete platform database/Secret provisioning and the source-backed namespace,
network and public edge manifests before deployment. Then migrate the fresh
database, deploy, provision the demo app accounts, and perform the two-user
workflow plus restart/isolated-restore checks in the existing owner tasks.
Only then record the demo environment as available for use.
Validation on 2026-09-11: Helm lint passed. Rendering the proposed values
produced the pinned digest, one Recreate replica, 60m CPU request, matching
Django/probe hosts, and two distinct retained PVCs. This is local manifest
verification; it is not native deployment or tenant-creation evidence.