← ClaudeAtlas

private-cloud-deliverylisted

Use when selling or shipping the SaaS as a self-hosted, customer-deployed edition. The vendor-pushes-images / customer-runs-everything responsibility split, the per-client registry, the vendor push-and-stop workflow, the IaC handed over, upgrades and rollback, the one-flag product switch, and the commercial artifacts. A fifth deployment shape alongside the Fly guide's four, with no fork and no vendor production access.
konradcinkusz/architecture-standards · ★ 0 · DevOps & Infrastructure · score 72
Install: claude install-skill konradcinkusz/architecture-standards
# Private-cloud delivery: selling the SaaS as self-hosted **Read [`references/PRIVATE-CLOUD-DELIVERY.md`](references/PRIVATE-CLOUD-DELIVERY.md) before applying any of this.** That file is the standard; everything below it is a summary to help you decide whether this skill applies and to check your work afterwards. ## What this standard covers - The model in one paragraph - The responsibility split - The per-client registry - The vendor workflow: push and stop - The IaC you hand over - Upgrades and rollback - The product switch - Commercial artifacts - A fifth shape: public registry, one-command run ## Failure modes | Symptom | Cause | |---|---| | Vendor workflow fails for one client only | Client JSON missing/null fields, or the same-named GitHub Environment lacks the secrets — the error message should already be saying which | | Vendor "just fixes it" in the customer's cloud | Scope creep past the push-only credential; the split in §2 is the contract, decline in writing | | Customer deploy pulls unauthorized | Registry referenced as created-here instead of `existing` + pull grant | | Upgrade works, rollback corrupts | Release contained migrations; rollback was not coordinated (§6) | | Customer environment drifts from the template | Customer edited resources in the portal; the re-run-with-tag lifecycle only holds if the template stays authoritative — say so in the handover doc | | Enterprise features half-enabled | `TenantMode` implemented per-service instead of at token