@msn-control/liftoff 0.9.7 → 0.9.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/governance/single-maintainer-gitflow/policy.md +93 -9
- package/dist/repository-governance.d.ts +1 -1
- package/dist/repository-governance.js +48 -4
- package/dist/repository-governance.js.map +1 -1
- package/docs/existing-repositories.md +4 -4
- package/docs/prerequisites.md +10 -0
- package/docs/repository-governance.md +77 -5
- package/docs/safety-and-consent.md +10 -0
- package/docs/troubleshooting.md +27 -0
- package/package.json +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
schemaVersion: 1
|
|
3
3
|
profile: single-maintainer-gitflow
|
|
4
|
-
policyVersion: "
|
|
4
|
+
policyVersion: "5"
|
|
5
5
|
state: handoff-generated
|
|
6
6
|
---
|
|
7
7
|
|
|
@@ -71,6 +71,8 @@ workload actually uses that component; a database default does not justify provi
|
|
|
71
71
|
| --- | --- |
|
|
72
72
|
| Storage redundancy | **Dev LRS · Staging ZRS · Production ZRS** |
|
|
73
73
|
| IaC state storage | **ZRS in every environment**, including bootstrap |
|
|
74
|
+
| Local bootstrap state retention | **30 days read-only after verified remote import, then securely delete.** |
|
|
75
|
+
| Azure provider registration | **Derive the minimal namespace set; when auto-registration is disabled, register every missing required provider explicitly before dependent resources.** |
|
|
74
76
|
| Database high availability | **Dev and Staging: no HA. Production: zone-redundant HA.** |
|
|
75
77
|
| Cloud identity for CI | **User-assigned managed identity with OIDC federation** per repository and environment. No app registrations, no client secrets, no long-lived credentials. |
|
|
76
78
|
| Workload scale | **Small — fewer than 1,000 users** |
|
|
@@ -113,7 +115,11 @@ Report before you change anything.
|
|
|
113
115
|
organisation network configurations; billing owner; remote state owner; deterministic resource
|
|
114
116
|
names; non-overlapping address space; Staging VNet, route, private DNS and security topology;
|
|
115
117
|
required outbound policy; current costs and service limits; and dependency-ordered teardown
|
|
116
|
-
owner.
|
|
118
|
+
owner. Determine whether an approved private management path can already reach the remote backend
|
|
119
|
+
and, if not, whether the private-backend cycle requires the bounded local bootstrap below. Derive
|
|
120
|
+
every Azure resource-provider namespace from the approved resource types, record the AzureRM
|
|
121
|
+
registration mode and subscription registration permission, and read each live registration
|
|
122
|
+
state. Any unresolved input is a blocker, not permission to begin a partial bootstrap.
|
|
117
123
|
6. What monitoring and alerting already exists — alert rules, action groups, where they route, and
|
|
118
124
|
which components have no coverage at all. Name the gaps explicitly.
|
|
119
125
|
7. Which components expose a health endpoint, and whether it is shallow (process is alive) or deep
|
|
@@ -173,6 +179,75 @@ private DNS resolution, and live Staging reachability. A standard hosted preflig
|
|
|
173
179
|
and labels before scheduling DAST; the larger-runner job proves the private target path. Missing,
|
|
174
180
|
stale, denied, skipped, or partial evidence fails closed.
|
|
175
181
|
|
|
182
|
+
**Make Azure resource providers ready before dependent provisioning.** Derive and deduplicate the
|
|
183
|
+
minimal namespace inventory from every approved bootstrap, state, network, identity, monitoring, and
|
|
184
|
+
application resource type. A hosted-runner network always requires at least `Microsoft.Network` and
|
|
185
|
+
`GitHub.Network`; include other namespaces only when approved resources use them.
|
|
186
|
+
|
|
187
|
+
Record whether AzureRM automatic provider registration is enabled and whether the execution identity
|
|
188
|
+
has the required subscription registration permission. When automatic registration is enabled and
|
|
189
|
+
sufficient for every planned namespace, do not add duplicate explicit registrations. When
|
|
190
|
+
`resource_provider_registrations = "none"` or equivalent disables it, explicitly register every
|
|
191
|
+
missing required namespace and no unrelated provider.
|
|
192
|
+
|
|
193
|
+
Provider inventory and registration form a `provider-ready` transition before `bootstrap-local`,
|
|
194
|
+
remote state, runner networking, or application resources. An already `Registered` namespace is a
|
|
195
|
+
no-op. An absent, unauthorized, `NotRegistered`, `Registering`, `Unregistering`, or failed namespace
|
|
196
|
+
blocks every dependent and billable resource. Wait for terminal `Registered` readback and order every
|
|
197
|
+
resource directly or transitively after its namespace registration. For the runner stack, all VNet,
|
|
198
|
+
subnet, private DNS, private endpoint, firewall, public IP, NAT, NSG, route, and peering resources
|
|
199
|
+
depend on `Microsoft.Network`; `GitHub.Network/networkSettings` also depends on `GitHub.Network`.
|
|
200
|
+
|
|
201
|
+
Treat successful provider registrations as retained subscription capabilities. Prevent repository
|
|
202
|
+
teardown from unregistering them: remove only repository-owned resources and record that the
|
|
203
|
+
registration may have consumers outside this change. Never infer that an empty resource group or a
|
|
204
|
+
partial apply proves provider readiness.
|
|
205
|
+
|
|
206
|
+
**Register subscription features only for intended capabilities.** A
|
|
207
|
+
`SubscriptionNotRegisteredForFeature` response is not permission to register the named feature.
|
|
208
|
+
First prove that the approved resource design intentionally uses that capability. If it does not,
|
|
209
|
+
correct the resource properties, pinned provider behavior, or API shape and regenerate the no-apply
|
|
210
|
+
plan. Do not broaden subscription features merely to make a failed apply pass.
|
|
211
|
+
|
|
212
|
+
Ordinary Firewall or NAT Standard public IPs do not require BYOIP. If one unexpectedly requests
|
|
213
|
+
`Microsoft.Network/AllowBringYourOwnPublicIpAddress` without an approved custom IP prefix, remove
|
|
214
|
+
properties that accidentally trigger BYOIP or use a reviewed supported API shape that does not
|
|
215
|
+
request BYOIP. Do not register the BYOIP feature as a workaround.
|
|
216
|
+
|
|
217
|
+
**Validate every network service tag's direction and action before apply.** `AzurePlatformDNS` is a
|
|
218
|
+
special outbound tag used only in a Deny rule to disable Azure's default platform DNS; never create an
|
|
219
|
+
Allow rule for that tag. When default Azure DNS remains enabled, no explicit NSG allow is required.
|
|
220
|
+
When approved custom resolvers replace it, allow TCP and UDP port 53 to the exact resolver addresses
|
|
221
|
+
and prove DNS reachability before dependent provisioning.
|
|
222
|
+
|
|
223
|
+
**Break a private-state bootstrap cycle without transferring state.** Prefer an existing approved
|
|
224
|
+
private management path that can reach the remote backend. If none exists and the private backend
|
|
225
|
+
cannot be reached until repository networking and its restricted execution runner exist, an explicitly
|
|
226
|
+
approved minimum local-state bootstrap may create only those access-establishing resources. Its phase
|
|
227
|
+
is `bootstrap-local`, never `remote-ready`, and it cannot authorize application or unrelated
|
|
228
|
+
infrastructure provisioning.
|
|
229
|
+
|
|
230
|
+
Keep that local state encrypted at rest on the approved workstation, excluded from version control,
|
|
231
|
+
and under one writer. Record resource identities and a state checksum without state content. Never
|
|
232
|
+
copy local bootstrap state through GitHub artifacts, repository secrets, ordinary messaging, or
|
|
233
|
+
another unapproved transfer path. Public access to the private state backend remains disabled.
|
|
234
|
+
|
|
235
|
+
From the exact private execution runner, prove private Blob DNS and authenticated backend access,
|
|
236
|
+
initialize the empty repository-owned ZRS backend, and use reviewed declarative imports to adopt every
|
|
237
|
+
bootstrap resource without transferring the local state file. Remote import is verified only when
|
|
238
|
+
each expected live resource identity appears exactly once in remote state, state locking and Blob
|
|
239
|
+
versioning are active, and a clean checkout produces a no-change plan with no create, update, or
|
|
240
|
+
destroy action. If any evidence is missing, the retention clock does not start, local state is not
|
|
241
|
+
deleted, and normal provisioning remains blocked.
|
|
242
|
+
|
|
243
|
+
After verified remote import, freeze the encrypted local bootstrap state as read-only evidence for
|
|
244
|
+
exactly **30 days**. Retained local state must never run plan or apply. At expiry, securely delete the
|
|
245
|
+
encrypted state and every approved temporary copy by destroying the encryption key and removing the
|
|
246
|
+
encrypted files with platform-management evidence where available; do not claim unverifiable sector
|
|
247
|
+
overwrites on copy-on-write filesystems or SSDs. Record the state identity or checksum, remote-import
|
|
248
|
+
evidence, verification and scheduled deletion timestamps, actual deletion timestamp, operator,
|
|
249
|
+
method, and outcome. The deletion record must contain no state payload, credential, or secret output.
|
|
250
|
+
|
|
176
251
|
**Remove in dependency order.** Stop new scheduling and repository access first; delete the larger
|
|
177
252
|
runner; remove repository and workflow access; detach and delete the runner group and hosted-compute
|
|
178
253
|
network configuration; delete the Azure network setting and wait for its service association to be
|
|
@@ -816,7 +891,11 @@ Inspect and report all of the following with evidence before changing anything:
|
|
|
816
891
|
tenant, region, organisation and Azure write authority, enterprise network
|
|
817
892
|
policy, billing, state, deterministic names, address space, route or peering,
|
|
818
893
|
private DNS, inbound denial, strict-domain-egress requirement, explicit
|
|
819
|
-
Firewall Basic or NAT Gateway mode, costs, limits,
|
|
894
|
+
Firewall Basic or NAT Gateway mode, costs, limits, teardown ownership, remote
|
|
895
|
+
backend reachability, any bounded local-bootstrap need, state custody, remote
|
|
896
|
+
import evidence, the fixed 30-day deletion schedule, minimal Azure namespace
|
|
897
|
+
inventory, AzureRM registration mode, registration permission, and terminal
|
|
898
|
+
provider readiness.
|
|
820
899
|
7. Live deployment mechanisms, parallel-version support, version-specific
|
|
821
900
|
origins, traffic volume, statistically valid canary capacity, and provider
|
|
822
901
|
status sources.
|
|
@@ -845,12 +924,17 @@ OpenSpec or Spec Kit workflow. The generated Liftoff policy remains an input;
|
|
|
845
924
|
Liftoff does not own, name, restore, or recreate that active change.
|
|
846
925
|
|
|
847
926
|
When the approved plan includes the runner provisioning exception, treat it as
|
|
848
|
-
a fail-closed state machine
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
927
|
+
a fail-closed state machine. Use an existing private state path when available;
|
|
928
|
+
otherwise progress through approved minimum `bootstrap-local`; delegated private
|
|
929
|
+
namespace inventory and `provider-ready`; subnet and exactly one explicit egress
|
|
930
|
+
mode; Azure network setting and GitHub ID;
|
|
931
|
+
organisation network configuration; selected-access group; bounded larger
|
|
932
|
+
runner; private backend proof; declarative remote import; identity, locking,
|
|
933
|
+
versioning and clean no-change verification; remote-ready state; private DNS and
|
|
934
|
+
live Staging reachability; then DAST eligibility. Freeze verified local state
|
|
935
|
+
read-only for 30 days and delete it with evidence at expiry. Stop at the first
|
|
936
|
+
failed transition and reconcile or remove partial resources in reverse
|
|
937
|
+
dependency order.
|
|
854
938
|
|
|
855
939
|
Author workflows, exact ruleset payloads, runbooks, and documentation first.
|
|
856
940
|
Observe every proposed required context green on all applicable paths, then
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { GeneratedArtifact, ProjectPlan } from './types.js';
|
|
2
2
|
export declare const governancePolicySchemaVersion: 1;
|
|
3
|
-
export declare const governancePolicyVersion: '
|
|
3
|
+
export declare const governancePolicyVersion: '5';
|
|
4
4
|
export declare const governanceContextSchemaVersion: 1;
|
|
5
5
|
export declare const governanceArtifactPaths: {
|
|
6
6
|
readonly policy: readonly ['.liftoff', 'governance', 'policy.md'];
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { readFileSync } from 'node:fs';
|
|
2
2
|
import { supportedStack } from './supported-stack.js';
|
|
3
3
|
export const governancePolicySchemaVersion = 1;
|
|
4
|
-
export const governancePolicyVersion = '
|
|
4
|
+
export const governancePolicyVersion = '5';
|
|
5
5
|
export const governanceContextSchemaVersion = 1;
|
|
6
6
|
export const governanceArtifactPaths = {
|
|
7
7
|
policy: ['.liftoff', 'governance', 'policy.md'],
|
|
@@ -28,7 +28,7 @@ export function renderCanonicalGovernancePolicy() {
|
|
|
28
28
|
const requiredPolicyFragments = [
|
|
29
29
|
'schemaVersion: 1',
|
|
30
30
|
'profile: single-maintainer-gitflow',
|
|
31
|
-
'policyVersion: "
|
|
31
|
+
'policyVersion: "5"',
|
|
32
32
|
'develop` is the integration branch and the **default branch**',
|
|
33
33
|
'main` is production truth',
|
|
34
34
|
'release/X.Y.Z',
|
|
@@ -46,7 +46,7 @@ const requiredPolicyFragments = [
|
|
|
46
46
|
'private Staging DAST genuinely applies',
|
|
47
47
|
'If DAST is inapplicable, provision no runner networking',
|
|
48
48
|
'consume it without creating a duplicate',
|
|
49
|
-
'
|
|
49
|
+
'unresolved input is a blocker',
|
|
50
50
|
'Every Azure runner-network resource, remote state',
|
|
51
51
|
'Staging subscription.',
|
|
52
52
|
"Do not share or depend on another repository's or subscription's firewall",
|
|
@@ -66,9 +66,42 @@ const requiredPolicyFragments = [
|
|
|
66
66
|
'maximum concurrency of one',
|
|
67
67
|
'Remove in dependency order',
|
|
68
68
|
'live Staging reachability',
|
|
69
|
+
'Prefer an existing approved',
|
|
70
|
+
'bootstrap-local',
|
|
71
|
+
'encrypted at rest on the approved workstation',
|
|
72
|
+
'copy local bootstrap state through GitHub artifacts',
|
|
73
|
+
'private Blob DNS and authenticated backend access',
|
|
74
|
+
'reviewed declarative imports',
|
|
75
|
+
'state locking and Blob',
|
|
76
|
+
'clean checkout produces a no-change plan',
|
|
77
|
+
'retention clock does not start',
|
|
78
|
+
'Retained local state must never run plan or apply',
|
|
79
|
+
'destroying the encryption key',
|
|
80
|
+
'The deletion record must contain no state payload',
|
|
69
81
|
'Pre-answered platform defaults',
|
|
70
82
|
'Dev LRS',
|
|
71
83
|
'ZRS in every environment',
|
|
84
|
+
'30 days read-only after verified remote import',
|
|
85
|
+
'Derive the minimal namespace set',
|
|
86
|
+
'Microsoft.Network',
|
|
87
|
+
'GitHub.Network',
|
|
88
|
+
'resource_provider_registrations = "none"',
|
|
89
|
+
'missing required namespace and no unrelated provider',
|
|
90
|
+
'provider-ready',
|
|
91
|
+
'terminal `Registered` readback',
|
|
92
|
+
'directly or transitively after its namespace registration',
|
|
93
|
+
'retained subscription capabilities',
|
|
94
|
+
'teardown from unregistering them',
|
|
95
|
+
'Register subscription features only for intended capabilities',
|
|
96
|
+
'SubscriptionNotRegisteredForFeature',
|
|
97
|
+
'Do not broaden subscription features',
|
|
98
|
+
'Microsoft.Network/AllowBringYourOwnPublicIpAddress',
|
|
99
|
+
'Do not register the BYOIP feature as a workaround',
|
|
100
|
+
"Validate every network service tag's direction and action",
|
|
101
|
+
'AzurePlatformDNS',
|
|
102
|
+
'used only in a Deny rule',
|
|
103
|
+
'Allow rule for that tag',
|
|
104
|
+
'allow TCP and UDP port 53 to the exact resolver addresses',
|
|
72
105
|
'Production: zone-redundant HA',
|
|
73
106
|
'User-assigned managed identity with OIDC federation',
|
|
74
107
|
'Small — fewer than 1,000 users',
|
|
@@ -119,7 +152,18 @@ const forbiddenPolicyFragments = [
|
|
|
119
152
|
'Treat it as an **external prerequisite**',
|
|
120
153
|
'share a firewall across repository subscriptions',
|
|
121
154
|
'NAT Gateway may coexist with Azure Firewall',
|
|
122
|
-
'resource creation is sufficient proof of Staging connectivity'
|
|
155
|
+
'resource creation is sufficient proof of Staging connectivity',
|
|
156
|
+
'retain local bootstrap state indefinitely',
|
|
157
|
+
'upload local bootstrap state as a GitHub artifact',
|
|
158
|
+
'delete local bootstrap state immediately after import',
|
|
159
|
+
'retained local state remains an active backend',
|
|
160
|
+
'provider registration may remain pending while resources are created',
|
|
161
|
+
'register all Azure providers',
|
|
162
|
+
'unregister provider registrations during teardown',
|
|
163
|
+
'resource_provider_registrations = "none" requires no explicit registrations',
|
|
164
|
+
'register AllowBringYourOwnPublicIpAddress for every Standard public IP',
|
|
165
|
+
'Allow AzurePlatformDNS in an outbound NSG rule',
|
|
166
|
+
'register any feature named by SubscriptionNotRegisteredForFeature'
|
|
123
167
|
];
|
|
124
168
|
export function validateGovernancePolicy(policy) {
|
|
125
169
|
const missing = requiredPolicyFragments.filter((fragment) => !policy.includes(fragment));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repository-governance.js","sourceRoot":"","sources":["../src/repository-governance.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"repository-governance.js","sourceRoot":"","sources":["../src/repository-governance.ts"],"names":[],"mappings":"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"}
|
|
@@ -98,10 +98,10 @@ Selecting `none` leaves previously managed handoff files as undeleted orphans
|
|
|
98
98
|
while unrecorded conflicts remain user-owned. No update mode runs an agent or
|
|
99
99
|
activates GitHub settings.
|
|
100
100
|
|
|
101
|
-
Projects carrying governance policy
|
|
102
|
-
managed-core drift. Review the
|
|
103
|
-
|
|
104
|
-
GitHub resources; reconcile any active downstream runner change with version
|
|
101
|
+
Projects carrying governance policy versions 2 through 4 preview policy version 5 as
|
|
102
|
+
managed-core drift. Review the private-runner and bootstrap-state retirement
|
|
103
|
+
contracts before replacement. Updating the handoff never provisions Azure or
|
|
104
|
+
GitHub resources; reconcile any active downstream runner change with version 5
|
|
105
105
|
before applying its infrastructure.
|
|
106
106
|
|
|
107
107
|
The schema-v6 transition releases every legacy non-core artifact into project
|
package/docs/prerequisites.md
CHANGED
|
@@ -47,6 +47,16 @@ Azure and GitHub provisioning authority, Slack, and deployment access are
|
|
|
47
47
|
discovered only during post-push Phase 0 and may be reported as gaps; they do
|
|
48
48
|
not block local generation or authorize cloud mutation.
|
|
49
49
|
|
|
50
|
+
When private backend access creates a runner bootstrap cycle, Phase 0 also
|
|
51
|
+
discovers an existing private management path or proposes the policy's bounded
|
|
52
|
+
encrypted local-state bootstrap. Liftoff itself neither creates nor transfers
|
|
53
|
+
state.
|
|
54
|
+
|
|
55
|
+
Azure governance plans also inspect the AzureRM provider-registration mode,
|
|
56
|
+
derive the minimal required namespace set, and verify subscription registration
|
|
57
|
+
permission. Disabled auto-registration is not a blocker when the approved plan
|
|
58
|
+
can register each missing namespace explicitly before dependent resources.
|
|
59
|
+
|
|
50
60
|
## Preview requirements without writes
|
|
51
61
|
|
|
52
62
|
`liftoff plan` shows both generated artifacts and workstation requirements
|
|
@@ -34,7 +34,7 @@ tools, fail-closed checks, immutable release evidence, build-once promotion,
|
|
|
34
34
|
deployment and rollback, monitoring and health, DORA metrics, ruleset
|
|
35
35
|
sequencing, negative tests, documentation, and workload adaptation.
|
|
36
36
|
|
|
37
|
-
Policy version
|
|
37
|
+
Policy version 5 also fixes platform decisions that generated projects should
|
|
38
38
|
not repeatedly ask users to make:
|
|
39
39
|
|
|
40
40
|
- Dev storage uses LRS; Staging and Production use ZRS. IaC state uses ZRS in
|
|
@@ -47,6 +47,11 @@ not repeatedly ask users to make:
|
|
|
47
47
|
non-LTS major updates ignored.
|
|
48
48
|
- Slack webhooks are required environment-level GitHub Actions secrets so the
|
|
49
49
|
alert path does not depend on private-vault connectivity.
|
|
50
|
+
- Encrypted local bootstrap state is retained read-only for 30 days after
|
|
51
|
+
verified remote import, then securely deleted with dated evidence.
|
|
52
|
+
- Azure resource-provider namespaces are derived from the approved plan. When
|
|
53
|
+
auto-registration is disabled, each missing required namespace is registered
|
|
54
|
+
explicitly before dependent resources.
|
|
50
55
|
|
|
51
56
|
These are applicable defaults, not reasons to create unused resources. A
|
|
52
57
|
managed service is included only when application code consumes it, after its
|
|
@@ -58,7 +63,7 @@ than creating a parallel stack or forcing replacement.
|
|
|
58
63
|
|
|
59
64
|
DAST for a privately networked Staging environment uses an ephemeral
|
|
60
65
|
GitHub-hosted larger runner with Azure VNet injection. Activation reuses a
|
|
61
|
-
suitable existing repository assignment. If none exists, policy version
|
|
66
|
+
suitable existing repository assignment. If none exists, policy version 5
|
|
62
67
|
permits one narrow post-approval exception to provision the Azure network
|
|
63
68
|
setting, organisation hosted-compute network configuration, selected-access
|
|
64
69
|
runner group, and bounded larger runner required by that repository.
|
|
@@ -97,6 +102,73 @@ qualification rather than leaving a required job queued or reporting success.
|
|
|
97
102
|
Teardown reverses those dependencies and removes the Azure network only after
|
|
98
103
|
GitHub scheduling, assignment, and service associations are gone.
|
|
99
104
|
|
|
105
|
+
### Azure resource-provider readiness
|
|
106
|
+
|
|
107
|
+
Phase 0 derives the minimal namespace inventory from every approved Azure
|
|
108
|
+
resource type and records AzureRM's registration mode and the execution
|
|
109
|
+
identity's subscription registration permission. A hosted-runner network always
|
|
110
|
+
requires at least `Microsoft.Network` and `GitHub.Network`; additional providers
|
|
111
|
+
are included only when approved state, identity, monitoring, or application
|
|
112
|
+
resources use them.
|
|
113
|
+
|
|
114
|
+
When AzureRM automatic registration is enabled and sufficient, no duplicate
|
|
115
|
+
explicit resources are added. When
|
|
116
|
+
`resource_provider_registrations = "none"` disables it, every missing required
|
|
117
|
+
namespace is registered explicitly. Dependent and billable resources remain
|
|
118
|
+
blocked until live subscription readback reports each namespace as
|
|
119
|
+
`Registered`.
|
|
120
|
+
|
|
121
|
+
Every explicit resource has a direct or transitive dependency on its namespace
|
|
122
|
+
registration. Existing registrations are no-ops. Pending, unauthorized,
|
|
123
|
+
unregistering, or failed states require a revised no-apply plan rather than
|
|
124
|
+
partial provisioning. Successful registrations remain subscription capabilities
|
|
125
|
+
during repository teardown and are not automatically unregistered.
|
|
126
|
+
|
|
127
|
+
Subscription features are narrower than provider namespaces. A
|
|
128
|
+
`SubscriptionNotRegisteredForFeature` error does not authorize registering the
|
|
129
|
+
named feature unless the approved resource design intentionally uses it.
|
|
130
|
+
Unexpected feature requests require correction of the resource properties,
|
|
131
|
+
provider behavior, or API shape and a revised no-apply plan.
|
|
132
|
+
|
|
133
|
+
Ordinary Firewall and NAT Standard public IPs do not require BYOIP. If such a
|
|
134
|
+
resource requests `Microsoft.Network/AllowBringYourOwnPublicIpAddress` without a
|
|
135
|
+
custom IP prefix, the plan must remove accidental BYOIP properties or use a
|
|
136
|
+
supported API shape; it must not register BYOIP merely to retry.
|
|
137
|
+
|
|
138
|
+
Network service-tag rules also require semantic validation.
|
|
139
|
+
`AzurePlatformDNS` is deny-only for intentionally disabling Azure platform DNS,
|
|
140
|
+
not a valid Allow target. Default platform DNS needs no explicit NSG allow.
|
|
141
|
+
Custom resolvers instead receive TCP and UDP port 53 allows to their exact IP
|
|
142
|
+
addresses.
|
|
143
|
+
|
|
144
|
+
### Private state bootstrap and retention
|
|
145
|
+
|
|
146
|
+
Phase 0 prefers an existing approved private execution path to the
|
|
147
|
+
repository-owned ZRS backend. When public access is disabled and no such path
|
|
148
|
+
exists, an approved governance change may use encrypted local OpenTofu state for
|
|
149
|
+
only the minimum networking, private endpoint, DNS, network setting, and
|
|
150
|
+
restricted runner resources needed to establish access. This
|
|
151
|
+
`bootstrap-local` phase is not remote-ready and cannot authorize application
|
|
152
|
+
provisioning.
|
|
153
|
+
|
|
154
|
+
The local state remains gitignored, single-writer, encrypted on the approved
|
|
155
|
+
workstation, and is never transferred through GitHub artifacts, repository
|
|
156
|
+
secrets, or ordinary messages. From the exact private runner, reviewed import
|
|
157
|
+
declarations adopt the resources into an empty ZRS backend without copying the
|
|
158
|
+
local state file.
|
|
159
|
+
|
|
160
|
+
Remote import is complete only after private Blob access, exact live-to-state
|
|
161
|
+
resource identity, state locking, Blob versioning, and a clean-checkout
|
|
162
|
+
no-change plan are verified. Failure starts no retention clock and keeps normal
|
|
163
|
+
provisioning blocked.
|
|
164
|
+
|
|
165
|
+
At successful verification, the local state becomes evidence-only and read-only
|
|
166
|
+
for exactly 30 days. It cannot run plan or apply. At expiry, its encryption key
|
|
167
|
+
and encrypted files are removed, along with every approved temporary copy. A
|
|
168
|
+
dated record captures the state identity or checksum, verification evidence,
|
|
169
|
+
scheduled and actual deletion, operator, method, and outcome without containing
|
|
170
|
+
state data or secrets.
|
|
171
|
+
|
|
100
172
|
## Release identity and automated completion
|
|
101
173
|
|
|
102
174
|
Staging qualifies the release or hotfix candidate commit and binds it to the
|
|
@@ -172,11 +244,11 @@ conflict remains outside Liftoff ownership and produces `handoff-partial`.
|
|
|
172
244
|
After every conflict is removed or matches the current artifact, the next
|
|
173
245
|
update records the full artifact set as `handoff-generated`.
|
|
174
246
|
|
|
175
|
-
Projects generated with policy
|
|
247
|
+
Projects generated with policy versions 2 through 4 review the version-5 managed-core drift
|
|
176
248
|
before replacement. `liftoff update` changes only the local handoff; it never
|
|
177
249
|
provisions Azure or GitHub resources. Any active downstream runner change based
|
|
178
|
-
on
|
|
179
|
-
|
|
250
|
+
on an older contract must reconcile its plan and implementation with version 5
|
|
251
|
+
before applying cloud or organisation resources.
|
|
180
252
|
|
|
181
253
|
Setting `"governanceProfile": "none"` stops future rendering. Previously managed
|
|
182
254
|
handoff files are reported once as orphans and left on disk; Liftoff never
|
|
@@ -24,6 +24,16 @@ deployment, monitoring, file replacement, machine tools, or project
|
|
|
24
24
|
dependencies. Live activation begins only after commit, push, read-only Phase 0,
|
|
25
25
|
and explicit plan approval.
|
|
26
26
|
|
|
27
|
+
An approved downstream local-state bootstrap remains encrypted, gitignored, and
|
|
28
|
+
single-writer. It is never transferred through GitHub artifacts or secrets,
|
|
29
|
+
becomes read-only after verified remote import, and is securely deleted after
|
|
30
|
+
the fixed 30-day retention period with non-sensitive evidence.
|
|
31
|
+
|
|
32
|
+
Explicit Azure resource-provider registration is limited to namespaces used by
|
|
33
|
+
the approved plan. Registration must reach `Registered` before dependent
|
|
34
|
+
resources, and repository teardown must not unregister the retained
|
|
35
|
+
subscription capability.
|
|
36
|
+
|
|
27
37
|
## CLI self-upgrade boundary
|
|
28
38
|
|
|
29
39
|
`liftoff upgrade` is itself the narrow authorization to replace a supported
|
package/docs/troubleshooting.md
CHANGED
|
@@ -197,6 +197,33 @@ explicit approval before creating any Azure or GitHub resource. Do not replace
|
|
|
197
197
|
missing capability with duplicate scanners, partial provisioning, or
|
|
198
198
|
placeholder success.
|
|
199
199
|
|
|
200
|
+
If a private ZRS state backend cannot be reached because public network access
|
|
201
|
+
is disabled and no approved private management path exists, do not enable
|
|
202
|
+
public access or upload local state to GitHub. Use the policy's explicitly
|
|
203
|
+
approved minimum `bootstrap-local` phase, adopt resources through declarative
|
|
204
|
+
imports from the private runner, verify identity parity, locking, versioning,
|
|
205
|
+
and a clean no-change plan, then retain the frozen local state read-only for 30
|
|
206
|
+
days before secure deletion.
|
|
207
|
+
|
|
208
|
+
If an Azure bootstrap fails with a namespace-not-registered error while
|
|
209
|
+
`resource_provider_registrations = "none"` is configured, do not retry the same
|
|
210
|
+
plan or enable broad auto-registration without review. Derive the provider set
|
|
211
|
+
from the planned resource types, add explicit missing registrations, confirm
|
|
212
|
+
subscription permission and terminal `Registered` readback, then regenerate a
|
|
213
|
+
no-apply plan. VNet-injected runner networking requires both
|
|
214
|
+
`Microsoft.Network` and `GitHub.Network`. Preserve successful registrations
|
|
215
|
+
during teardown.
|
|
216
|
+
|
|
217
|
+
If an ordinary Standard public IP requests
|
|
218
|
+
`Microsoft.Network/AllowBringYourOwnPublicIpAddress`, do not register BYOIP
|
|
219
|
+
unless the approved design actually imports a custom IP prefix. Remove
|
|
220
|
+
accidental feature-triggering properties or use a reviewed supported API shape,
|
|
221
|
+
then regenerate the no-apply plan.
|
|
222
|
+
|
|
223
|
+
Do not use `AzurePlatformDNS` in an Allow NSG rule. The special tag is deny-only
|
|
224
|
+
for disabling default platform DNS. Omit the rule when platform DNS is enabled,
|
|
225
|
+
or allow TCP and UDP 53 to exact custom resolver addresses.
|
|
226
|
+
|
|
200
227
|
Do not run an older Liftoff release to reverse a completed baseline migration.
|
|
201
228
|
Restore the affected generated files and `liftoff.manifest.json` through version
|
|
202
229
|
control, then reinstall from the restored locks.
|