ADR-0017: Deployment profiles with ConnectSoft-managed SaaS as default¶
Decision
This page records a decision and its status. A Proposed decision is not binding; an Accepted decision is binding on the Factory until amended or superseded.
- Status: Accepted 2026-10-09 by the product owner (decision D29; closes Q-04)
- Date: 2026-10-09
- Deciders: Dmitry Khaymov (product owner)
- Tags: deployment, topology, operations
Context¶
The original target architecture names four deployment patterns (SaaS, hybrid, customer on-premises, hybrid compute) without a default, and the packet left ownership of deployment and operations open (Q-04). Every design page needs to know which placement to assume and which others it must not break.
Decision¶
- Default profile:
saas-default— ConnectSoft operates control plane, runtime and data in Azure, tenant-isolated per canonical ADR-0100, in a tenant-selectable region (ADR-0019). - Supported profiles:
hybrid,on-prem,hybrid-compute— designed with identical contracts, trust rules, authority rules and observability; differences are confined to placement, network, secrets, upgrades and support. - Each service model entry declares the profiles it supports; a service that cannot run in a profile says so and why.
- Pulumi remains the infrastructure-as-code engine in every profile (ADR-0004).
Consequences¶
- Positive: one reference deployment for every design page; the hybrid and on-premises profiles stay reachable because the contracts never assume SaaS-only.
- Negative: hybrid and on-premises operations need runbooks and a shared-responsibility matrix per contract; those are later platform work.
- Neutral: the deployment-profiles page is the single place that shows per-profile placement.
Alternatives considered¶
| Alternative | Why not chosen |
|---|---|
| Customer-operated as default | Slows the first governed workflow and duplicates operations knowledge before the product exists |
| Four equal profiles, no default | Every page would need four variants; no reference to verify against |