@spacefast/common 0.0.21 → 0.0.24
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/dist/agents/connect-targets.d.ts +9 -6
- package/dist/agents/connect-targets.js +9 -6
- package/dist/config/domains.d.ts +1 -1
- package/dist/config/domains.js +1 -0
- package/dist/config/index.d.ts +0 -1
- package/dist/config/index.js +0 -1
- package/dist/contracts/abuse.d.ts +2 -0
- package/dist/contracts/abuse.js +12 -0
- package/dist/contracts/access.d.ts +121 -9
- package/dist/contracts/access.js +73 -9
- package/dist/contracts/activity.d.ts +1 -1
- package/dist/contracts/activity.js +0 -9
- package/dist/contracts/api-keys.d.ts +21 -21
- package/dist/contracts/beta.js +1 -1
- package/dist/contracts/billing.d.ts +1 -34
- package/dist/contracts/billing.js +4 -53
- package/dist/contracts/builds.d.ts +8 -8
- package/dist/contracts/builds.js +10 -3
- package/dist/contracts/cli.d.ts +10 -0
- package/dist/contracts/cli.js +10 -0
- package/dist/contracts/collab-public.d.ts +63 -0
- package/dist/contracts/collab-public.js +46 -0
- package/dist/contracts/comments.d.ts +283 -54
- package/dist/contracts/comments.js +173 -52
- package/dist/contracts/common.d.ts +3 -3
- package/dist/contracts/device-auth.d.ts +6 -6
- package/dist/contracts/device-auth.js +1 -1
- package/dist/contracts/docs.d.ts +5 -5
- package/dist/contracts/domains.d.ts +36 -36
- package/dist/contracts/enums.d.ts +33 -30
- package/dist/contracts/enums.js +52 -38
- package/dist/contracts/error-code-meta.d.ts +37 -126
- package/dist/contracts/error-code-meta.js +12 -41
- package/dist/contracts/error-codes.d.ts +1 -1
- package/dist/contracts/error-codes.js +10 -32
- package/dist/contracts/execution.d.ts +35 -57
- package/dist/contracts/execution.js +41 -40
- package/dist/contracts/feature-lifecycle-core.d.ts +0 -6
- package/dist/contracts/feature-lifecycle-core.js +2 -31
- package/dist/contracts/feature-lifecycle.d.ts +8 -38
- package/dist/contracts/feature-lifecycle.js +16 -48
- package/dist/contracts/features.d.ts +15 -13
- package/dist/contracts/features.js +39 -38
- package/dist/contracts/functions.d.ts +97 -70
- package/dist/contracts/functions.js +101 -34
- package/dist/contracts/git.d.ts +1 -1
- package/dist/contracts/grants.d.ts +7 -3
- package/dist/contracts/grants.js +18 -9
- package/dist/contracts/internal.d.ts +14 -1
- package/dist/contracts/internal.js +17 -7
- package/dist/contracts/oauth-resources.d.ts +4 -3
- package/dist/contracts/oauth-resources.js +12 -3
- package/dist/contracts/operations.d.ts +90 -5
- package/dist/contracts/operations.js +75 -1
- package/dist/contracts/pages.d.ts +6 -1
- package/dist/contracts/pages.js +24 -1
- package/dist/contracts/plan-policy.d.ts +1 -3
- package/dist/contracts/plan-policy.js +1 -2
- package/dist/contracts/platform.d.ts +61 -148
- package/dist/contracts/platform.js +70 -126
- package/dist/contracts/publish-archive.d.ts +498 -0
- package/dist/contracts/publish-archive.js +25 -0
- package/dist/contracts/resources.d.ts +12 -24
- package/dist/contracts/resources.js +32 -12
- package/dist/contracts/runtime-api.d.ts +369 -175
- package/dist/contracts/runtime-api.js +372 -348
- package/dist/contracts/runtime-app.d.ts +127 -120
- package/dist/contracts/runtime-app.js +19 -10
- package/dist/contracts/runtime-db.d.ts +1 -1
- package/dist/contracts/runtime-services.d.ts +219 -0
- package/dist/contracts/runtime-services.js +437 -0
- package/dist/contracts/runtime-storage.d.ts +45 -32
- package/dist/contracts/runtime-storage.js +30 -8
- package/dist/contracts/space-config.d.ts +10 -16
- package/dist/contracts/space-config.js +14 -10
- package/dist/contracts/spaces.d.ts +241 -436
- package/dist/contracts/spaces.js +128 -145
- package/dist/contracts/superadmin-activity.d.ts +57 -4
- package/dist/contracts/superadmin-activity.js +48 -2
- package/dist/contracts/superadmin-search.d.ts +126 -0
- package/dist/contracts/superadmin-search.js +61 -0
- package/dist/contracts/superadmin-spaces.d.ts +358 -89
- package/dist/contracts/superadmin-spaces.js +97 -24
- package/dist/contracts/superadmin-teams.d.ts +28 -10
- package/dist/contracts/superadmin-teams.js +5 -8
- package/dist/contracts/superadmin.d.ts +0 -32
- package/dist/contracts/superadmin.js +3 -11
- package/dist/contracts/tags.d.ts +9 -9
- package/dist/contracts/teams.d.ts +44 -2
- package/dist/contracts/teams.js +43 -23
- package/dist/contracts/transfers.d.ts +0 -49
- package/dist/contracts/transfers.js +2 -6
- package/dist/contracts/usage.d.ts +61 -0
- package/dist/contracts/usage.js +64 -0
- package/dist/contracts/variables.d.ts +2 -7
- package/dist/contracts/variables.js +6 -5
- package/dist/contracts/webhooks.d.ts +2 -2
- package/dist/contracts/zero.d.ts +87 -56
- package/dist/contracts/zero.js +82 -20
- package/dist/dashboard-paths/index.d.ts +1 -1
- package/dist/dashboard-paths/index.js +1 -0
- package/dist/docs/agent-prose.d.ts +1 -1
- package/dist/docs/agent-prose.js +62 -66
- package/dist/docs/agent-setup.js +49 -23
- package/dist/docs/agent-solutions.d.ts +4 -4
- package/dist/docs/agent-solutions.js +8 -8
- package/dist/docs/catalog.d.ts +19 -19
- package/dist/docs/catalog.js +30 -19
- package/dist/docs/error-docs.js +63 -151
- package/dist/docs/skills.d.ts +3 -3
- package/dist/docs/skills.js +1 -1
- package/dist/test-helpers/fetch-stub.d.ts +16 -0
- package/dist/test-helpers/fetch-stub.js +24 -0
- package/dist/utils/build-settings.js +9 -3
- package/dist/utils/canonical-json.d.ts +10 -0
- package/dist/utils/canonical-json.js +21 -0
- package/dist/utils/cast-transport.d.ts +28 -0
- package/dist/utils/cast-transport.js +52 -0
- package/dist/utils/claim-token.d.ts +0 -8
- package/dist/utils/claim-token.js +3 -15
- package/dist/utils/credential-policy.d.ts +1 -1
- package/dist/utils/env-file.d.ts +17 -0
- package/dist/utils/env-file.js +96 -0
- package/dist/utils/error-code.d.ts +2 -0
- package/dist/utils/error-code.js +7 -0
- package/dist/utils/generate-space-name.d.ts +8 -10
- package/dist/utils/generate-space-name.js +206 -21
- package/dist/utils/grant-decision.fixtures.json +2938 -0
- package/dist/utils/grants.d.ts +2 -0
- package/dist/utils/grants.js +25 -2
- package/dist/utils/gravatar.d.ts +9 -0
- package/dist/utils/gravatar.js +31 -0
- package/dist/utils/idempotency.d.ts +6 -0
- package/dist/utils/idempotency.js +28 -0
- package/dist/utils/local-space-state.d.ts +1 -5
- package/dist/utils/local-space-state.js +7 -26
- package/dist/utils/page-fonts.d.ts +2 -2
- package/dist/utils/page-fonts.js +22 -4
- package/dist/utils/pages.d.ts +1 -2
- package/dist/utils/pages.js +21 -5
- package/dist/utils/publish-form-data.d.ts +12 -0
- package/dist/utils/publish-form-data.js +10 -0
- package/dist/utils/publish-policy.d.ts +20 -0
- package/dist/utils/publish-policy.fixtures.json +397 -0
- package/dist/utils/publish-policy.js +36 -19
- package/dist/utils/push-new.d.ts +7 -0
- package/dist/utils/push-new.js +7 -0
- package/dist/utils/query-keys.d.ts +0 -1
- package/dist/utils/query-keys.js +0 -1
- package/dist/utils/runtime-paths.d.ts +5 -0
- package/dist/utils/runtime-paths.js +5 -0
- package/dist/utils/runtime-upload-batch.d.ts +0 -5
- package/dist/utils/runtime-upload-batch.js +1 -27
- package/dist/utils/runtime-upload.d.ts +3 -13
- package/dist/utils/runtime-upload.js +4 -14
- package/dist/utils/space-config.d.ts +0 -33
- package/dist/utils/space-config.js +5 -326
- package/dist/utils/storage-policy.d.ts +1 -1
- package/dist/utils/storage-policy.js +3 -1
- package/dist/utils/structured-error.d.ts +14 -0
- package/dist/utils/structured-error.js +22 -0
- package/dist/utils/version-path.js +12 -3
- package/dist/vocabulary.d.ts +5 -3
- package/dist/vocabulary.js +13 -10
- package/package.json +10 -5
- package/dist/config/postgres-budget.d.ts +0 -129
- package/dist/config/postgres-budget.js +0 -140
- package/dist/config/postgres-budget.json +0 -51
- package/dist/contracts/archives.d.ts +0 -331
- package/dist/contracts/archives.js +0 -120
- package/dist/contracts/deployments.d.ts +0 -574
- package/dist/contracts/deployments.js +0 -97
- package/dist/contracts/sites.d.ts +0 -416
- package/dist/contracts/sites.js +0 -168
- package/dist/contracts/superadmin-queues.d.ts +0 -414
- package/dist/contracts/superadmin-queues.js +0 -202
- package/dist/contracts/superadmin-runtime.d.ts +0 -27
- package/dist/contracts/superadmin-runtime.js +0 -38
- package/dist/index.d.ts +0 -1
- package/dist/index.js +0 -1
- package/dist/utils/api.d.ts +0 -4
- package/dist/utils/api.js +0 -13
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { FeatureRegistryEntry } from "./feature-lifecycle-core.js";
|
|
2
2
|
import type { PlanCode } from "./features.js";
|
|
3
|
-
export {
|
|
4
|
-
export type {
|
|
3
|
+
export { FEATURE_OWNER_IDS, FEATURE_STAGES, freezeFeatureRegistryEntry, validateFeatureLifecycleRegistry, } from "./feature-lifecycle-core.js";
|
|
4
|
+
export type { FeatureOwnerId, FeatureRegistryEntry, FeatureStage, } from "./feature-lifecycle-core.js";
|
|
5
5
|
type RuntimeFeaturePolicy = {
|
|
6
6
|
readonly enabledInDevelopment?: boolean;
|
|
7
7
|
readonly enabledForA8c: boolean;
|
|
@@ -25,7 +25,6 @@ declare const featureEntries: readonly [{
|
|
|
25
25
|
readonly enabledForA8c: true;
|
|
26
26
|
readonly planDefaults: {};
|
|
27
27
|
};
|
|
28
|
-
readonly assignmentScopes: readonly ["team", "global"];
|
|
29
28
|
readonly docs: null;
|
|
30
29
|
readonly owner: "team:commerce";
|
|
31
30
|
readonly requires: readonly [];
|
|
@@ -33,7 +32,6 @@ declare const featureEntries: readonly [{
|
|
|
33
32
|
readonly reviewAfter: "2026-08-11";
|
|
34
33
|
readonly removeAfter: null;
|
|
35
34
|
readonly gaAt: null;
|
|
36
|
-
readonly allowedActorPolicies: readonly ["request_actor"];
|
|
37
35
|
readonly downRamp: {
|
|
38
36
|
readonly code: "paid_acquisition_stop";
|
|
39
37
|
readonly summary: "Deny new acquisition; allow cancel, portal, provider reconciliation and purchase recovery.";
|
|
@@ -50,7 +48,6 @@ declare const featureEntries: readonly [{
|
|
|
50
48
|
readonly enabledForA8c: true;
|
|
51
49
|
readonly planDefaults: {};
|
|
52
50
|
};
|
|
53
|
-
readonly assignmentScopes: readonly ["global"];
|
|
54
51
|
readonly docs: {
|
|
55
52
|
readonly channel: "public";
|
|
56
53
|
readonly slug: "/docs/publishing/anonymous";
|
|
@@ -62,7 +59,6 @@ declare const featureEntries: readonly [{
|
|
|
62
59
|
readonly reviewAfter: "2026-07-26";
|
|
63
60
|
readonly removeAfter: "2026-08-11";
|
|
64
61
|
readonly gaAt: "2026-07-12";
|
|
65
|
-
readonly allowedActorPolicies: readonly ["request_actor", "global_policy"];
|
|
66
62
|
readonly downRamp: {
|
|
67
63
|
readonly code: "anonymous_publish_stop";
|
|
68
64
|
readonly summary: "Deny new anonymous content/version/upload authorization or commit/finalize/promote/push side effects; already-issued bounded staging ingress stays quarantined, while static serving and service cleanup remain.";
|
|
@@ -95,7 +91,6 @@ declare const featureEntries: readonly [{
|
|
|
95
91
|
readonly surface: true;
|
|
96
92
|
readonly defaultEnabled: false;
|
|
97
93
|
readonly runtime: null;
|
|
98
|
-
readonly assignmentScopes: readonly ["user", "team", "global"];
|
|
99
94
|
readonly docs: {
|
|
100
95
|
readonly channel: "handbook";
|
|
101
96
|
readonly slug: "/features/domains/catalog";
|
|
@@ -107,7 +102,6 @@ declare const featureEntries: readonly [{
|
|
|
107
102
|
readonly reviewAfter: "2026-08-11";
|
|
108
103
|
readonly removeAfter: "2026-10-10";
|
|
109
104
|
readonly gaAt: null;
|
|
110
|
-
readonly allowedActorPolicies: readonly ["request_actor"];
|
|
111
105
|
readonly downRamp: {
|
|
112
106
|
readonly code: "domain_catalog_hide";
|
|
113
107
|
readonly summary: "Hide authenticated catalog; public suggestions, availability and WHOIS remain.";
|
|
@@ -125,7 +119,6 @@ declare const featureEntries: readonly [{
|
|
|
125
119
|
readonly enabledForA8c: true;
|
|
126
120
|
readonly planDefaults: {};
|
|
127
121
|
};
|
|
128
|
-
readonly assignmentScopes: readonly ["user", "team", "global"];
|
|
129
122
|
readonly docs: {
|
|
130
123
|
readonly channel: "handbook";
|
|
131
124
|
readonly slug: "/features/domains/registration";
|
|
@@ -137,7 +130,6 @@ declare const featureEntries: readonly [{
|
|
|
137
130
|
readonly reviewAfter: "2026-08-11";
|
|
138
131
|
readonly removeAfter: "2026-10-10";
|
|
139
132
|
readonly gaAt: null;
|
|
140
|
-
readonly allowedActorPolicies: readonly ["request_actor", "persisted_request_actor"];
|
|
141
133
|
readonly downRamp: {
|
|
142
134
|
readonly code: "domain_registration_stop";
|
|
143
135
|
readonly summary: "Deny new customer mutations and unstarted provider submits; generic existing-domain read plus service-only reconciliation/compensation for externally committed work continue.";
|
|
@@ -155,7 +147,6 @@ declare const featureEntries: readonly [{
|
|
|
155
147
|
readonly enabledForA8c: true;
|
|
156
148
|
readonly planDefaults: {};
|
|
157
149
|
};
|
|
158
|
-
readonly assignmentScopes: readonly ["user", "team", "global"];
|
|
159
150
|
readonly docs: {
|
|
160
151
|
readonly channel: "handbook";
|
|
161
152
|
readonly slug: "/features/domains/dns-management";
|
|
@@ -167,7 +158,6 @@ declare const featureEntries: readonly [{
|
|
|
167
158
|
readonly reviewAfter: "2026-08-11";
|
|
168
159
|
readonly removeAfter: "2026-10-10";
|
|
169
160
|
readonly gaAt: null;
|
|
170
|
-
readonly allowedActorPolicies: readonly ["request_actor", "persisted_request_actor"];
|
|
171
161
|
readonly downRamp: {
|
|
172
162
|
readonly code: "dns_management_stop";
|
|
173
163
|
readonly summary: "Deny customer mutation and unstarted provider apply; generic authoritative read plus service-only rollback/reconciliation for externally committed work continue.";
|
|
@@ -184,7 +174,6 @@ declare const featureEntries: readonly [{
|
|
|
184
174
|
readonly enabledForA8c: true;
|
|
185
175
|
readonly planDefaults: {};
|
|
186
176
|
};
|
|
187
|
-
readonly assignmentScopes: readonly ["team", "global"];
|
|
188
177
|
readonly docs: {
|
|
189
178
|
readonly channel: "handbook";
|
|
190
179
|
readonly slug: "/features/domains/wpcom-dns";
|
|
@@ -196,7 +185,6 @@ declare const featureEntries: readonly [{
|
|
|
196
185
|
readonly reviewAfter: "2026-08-11";
|
|
197
186
|
readonly removeAfter: "2026-10-10";
|
|
198
187
|
readonly gaAt: null;
|
|
199
|
-
readonly allowedActorPolicies: readonly ["request_actor"];
|
|
200
188
|
readonly downRamp: {
|
|
201
189
|
readonly code: "wpcom_dns_stop";
|
|
202
190
|
readonly summary: "Deny new automation; service/operator detach and reconciliation continue.";
|
|
@@ -213,7 +201,6 @@ declare const featureEntries: readonly [{
|
|
|
213
201
|
readonly enabledForA8c: true;
|
|
214
202
|
readonly planDefaults: {};
|
|
215
203
|
};
|
|
216
|
-
readonly assignmentScopes: readonly ["user", "team", "global"];
|
|
217
204
|
readonly docs: {
|
|
218
205
|
readonly channel: "handbook";
|
|
219
206
|
readonly slug: "/features/domains/domain-connect";
|
|
@@ -225,7 +212,6 @@ declare const featureEntries: readonly [{
|
|
|
225
212
|
readonly reviewAfter: "2026-08-11";
|
|
226
213
|
readonly removeAfter: "2026-10-10";
|
|
227
214
|
readonly gaAt: null;
|
|
228
|
-
readonly allowedActorPolicies: readonly ["request_actor", "persisted_request_actor"];
|
|
229
215
|
readonly downRamp: {
|
|
230
216
|
readonly code: "domain_connect_stop";
|
|
231
217
|
readonly summary: "Deny new setup and every uncommitted callback; after an authenticated external commit, narrowly typed service-only reconciliation or compensation continues idempotently.";
|
|
@@ -244,7 +230,6 @@ declare const featureEntries: readonly [{
|
|
|
244
230
|
readonly internal: true;
|
|
245
231
|
};
|
|
246
232
|
};
|
|
247
|
-
readonly assignmentScopes: readonly ["team", "global"];
|
|
248
233
|
readonly docs: {
|
|
249
234
|
readonly channel: "public";
|
|
250
235
|
readonly slug: "/docs/spaces/proxy-routes";
|
|
@@ -256,7 +241,6 @@ declare const featureEntries: readonly [{
|
|
|
256
241
|
readonly reviewAfter: "2026-08-11";
|
|
257
242
|
readonly removeAfter: "2026-10-10";
|
|
258
243
|
readonly gaAt: null;
|
|
259
|
-
readonly allowedActorPolicies: readonly ["resource_team"];
|
|
260
244
|
readonly downRamp: {
|
|
261
245
|
readonly code: "proxy_binding_stop";
|
|
262
246
|
readonly summary: "Deny new binds; discoverable authenticated read/detach plus service reconciliation continue.";
|
|
@@ -265,7 +249,7 @@ declare const featureEntries: readonly [{
|
|
|
265
249
|
readonly cohort: "launch";
|
|
266
250
|
readonly key: "collab.notices";
|
|
267
251
|
readonly name: "Realtime notices";
|
|
268
|
-
readonly description: "
|
|
252
|
+
readonly description: "Live: the Space notice room. Turns on the dashboard's realtime comment feed and the overlay's notice chips. Not an authorization — who may watch a Space's feed is decided by its Grants.";
|
|
269
253
|
readonly stage: "internal";
|
|
270
254
|
readonly surface: false;
|
|
271
255
|
readonly defaultEnabled: false;
|
|
@@ -273,7 +257,6 @@ declare const featureEntries: readonly [{
|
|
|
273
257
|
readonly enabledForA8c: true;
|
|
274
258
|
readonly planDefaults: {};
|
|
275
259
|
};
|
|
276
|
-
readonly assignmentScopes: readonly ["team", "global"];
|
|
277
260
|
readonly docs: null;
|
|
278
261
|
readonly owner: "team:collaboration";
|
|
279
262
|
readonly requires: readonly [];
|
|
@@ -281,7 +264,6 @@ declare const featureEntries: readonly [{
|
|
|
281
264
|
readonly reviewAfter: "2026-08-11";
|
|
282
265
|
readonly removeAfter: null;
|
|
283
266
|
readonly gaAt: null;
|
|
284
|
-
readonly allowedActorPolicies: readonly ["resource_team"];
|
|
285
267
|
readonly downRamp: {
|
|
286
268
|
readonly code: "notices_stop";
|
|
287
269
|
readonly summary: "Stop mint/publish; service/operator revoke and cleanup continue.";
|
|
@@ -309,7 +291,6 @@ declare const featureEntries: readonly [{
|
|
|
309
291
|
readonly enabledForA8c: true;
|
|
310
292
|
readonly planDefaults: {};
|
|
311
293
|
};
|
|
312
|
-
readonly assignmentScopes: readonly ["team", "global"];
|
|
313
294
|
readonly docs: {
|
|
314
295
|
readonly channel: "public";
|
|
315
296
|
readonly slug: "/docs/apps";
|
|
@@ -321,7 +302,6 @@ declare const featureEntries: readonly [{
|
|
|
321
302
|
readonly reviewAfter: null;
|
|
322
303
|
readonly removeAfter: "2026-11-01";
|
|
323
304
|
readonly gaAt: "2026-08-05";
|
|
324
|
-
readonly allowedActorPolicies: readonly ["request_actor", "resource_team"];
|
|
325
305
|
readonly downRamp: {
|
|
326
306
|
readonly code: "dedicated_runtime_stop";
|
|
327
307
|
readonly summary: "Deny customer mutation and new placement/materialization immediately; serve-time revocation of already-materialized output lands with the deferred runtime-proof slice; operator recovery/export/delete remain; downloaded bytes cannot be recalled.";
|
|
@@ -345,7 +325,6 @@ declare const featureEntries: readonly [{
|
|
|
345
325
|
readonly surface: true;
|
|
346
326
|
readonly defaultEnabled: false;
|
|
347
327
|
readonly runtime: null;
|
|
348
|
-
readonly assignmentScopes: readonly ["team", "global"];
|
|
349
328
|
readonly docs: {
|
|
350
329
|
readonly channel: "handbook";
|
|
351
330
|
readonly slug: "/features/build/content-pipeline";
|
|
@@ -357,7 +336,6 @@ declare const featureEntries: readonly [{
|
|
|
357
336
|
readonly reviewAfter: "2026-08-11";
|
|
358
337
|
readonly removeAfter: "2026-10-10";
|
|
359
338
|
readonly gaAt: null;
|
|
360
|
-
readonly allowedActorPolicies: readonly ["resource_team"];
|
|
361
339
|
readonly downRamp: {
|
|
362
340
|
readonly code: "content_pipeline_stop";
|
|
363
341
|
readonly summary: "Deny next build/finalize; completed immutable output remains.";
|
|
@@ -375,7 +353,6 @@ declare const featureEntries: readonly [{
|
|
|
375
353
|
readonly enabledForA8c: true;
|
|
376
354
|
readonly planDefaults: {};
|
|
377
355
|
};
|
|
378
|
-
readonly assignmentScopes: readonly ["team", "global"];
|
|
379
356
|
readonly docs: {
|
|
380
357
|
readonly channel: "public";
|
|
381
358
|
readonly slug: "/docs/tags";
|
|
@@ -387,7 +364,6 @@ declare const featureEntries: readonly [{
|
|
|
387
364
|
readonly reviewAfter: "2026-08-11";
|
|
388
365
|
readonly removeAfter: "2026-10-10";
|
|
389
366
|
readonly gaAt: null;
|
|
390
|
-
readonly allowedActorPolicies: readonly ["request_actor", "resource_team"];
|
|
391
367
|
readonly downRamp: {
|
|
392
368
|
readonly code: "tags_stop";
|
|
393
369
|
readonly summary: "Deny every customer Tag API and dynamic module delivery; internal operator export/cleanup and platform-generated inert marker bytes remain.";
|
|
@@ -404,19 +380,17 @@ declare const featureEntries: readonly [{
|
|
|
404
380
|
readonly enabledForA8c: true;
|
|
405
381
|
readonly planDefaults: {};
|
|
406
382
|
};
|
|
407
|
-
readonly assignmentScopes: readonly ["team", "global"];
|
|
408
383
|
readonly docs: {
|
|
409
384
|
readonly channel: "public";
|
|
410
385
|
readonly slug: "/docs/apps/zero";
|
|
411
386
|
readonly feedbackUrl: null;
|
|
412
387
|
};
|
|
413
388
|
readonly owner: "team:zero";
|
|
414
|
-
readonly requires: readonly [
|
|
389
|
+
readonly requires: readonly [];
|
|
415
390
|
readonly lifecycleAdoptedAt: "2026-07-12";
|
|
416
391
|
readonly reviewAfter: null;
|
|
417
392
|
readonly removeAfter: "2026-11-01";
|
|
418
393
|
readonly gaAt: "2026-08-05";
|
|
419
|
-
readonly allowedActorPolicies: readonly ["resource_team"];
|
|
420
394
|
readonly downRamp: {
|
|
421
395
|
readonly code: "zero_stop";
|
|
422
396
|
readonly summary: "Stop activation/invocation; operator export/delete/migration recovery remain.";
|
|
@@ -426,14 +400,13 @@ declare const featureEntries: readonly [{
|
|
|
426
400
|
readonly key: "functions";
|
|
427
401
|
readonly name: "Spacefast Functions";
|
|
428
402
|
readonly description: string;
|
|
429
|
-
readonly stage: "
|
|
403
|
+
readonly stage: "ga";
|
|
430
404
|
readonly surface: true;
|
|
431
|
-
readonly defaultEnabled:
|
|
405
|
+
readonly defaultEnabled: true;
|
|
432
406
|
readonly runtime: {
|
|
433
407
|
readonly enabledForA8c: true;
|
|
434
408
|
readonly planDefaults: {};
|
|
435
409
|
};
|
|
436
|
-
readonly assignmentScopes: readonly ["team", "global"];
|
|
437
410
|
readonly docs: {
|
|
438
411
|
readonly channel: "public";
|
|
439
412
|
readonly slug: "/docs/apps/functions";
|
|
@@ -442,10 +415,9 @@ declare const featureEntries: readonly [{
|
|
|
442
415
|
readonly owner: "team:zero";
|
|
443
416
|
readonly requires: readonly [];
|
|
444
417
|
readonly lifecycleAdoptedAt: "2026-07-27";
|
|
445
|
-
readonly reviewAfter:
|
|
418
|
+
readonly reviewAfter: null;
|
|
446
419
|
readonly removeAfter: "2026-11-01";
|
|
447
|
-
readonly gaAt:
|
|
448
|
-
readonly allowedActorPolicies: readonly ["resource_team"];
|
|
420
|
+
readonly gaAt: "2026-08-12";
|
|
449
421
|
readonly downRamp: {
|
|
450
422
|
readonly code: "functions_stop";
|
|
451
423
|
readonly summary: string;
|
|
@@ -463,7 +435,6 @@ declare const featureEntries: readonly [{
|
|
|
463
435
|
readonly enabledForA8c: true;
|
|
464
436
|
readonly planDefaults: {};
|
|
465
437
|
};
|
|
466
|
-
readonly assignmentScopes: readonly ["user", "team", "global"];
|
|
467
438
|
readonly docs: {
|
|
468
439
|
readonly channel: "public";
|
|
469
440
|
readonly slug: "/docs/spaces/rename";
|
|
@@ -475,7 +446,6 @@ declare const featureEntries: readonly [{
|
|
|
475
446
|
readonly reviewAfter: "2026-08-11";
|
|
476
447
|
readonly removeAfter: "2026-10-10";
|
|
477
448
|
readonly gaAt: "2026-07-27";
|
|
478
|
-
readonly allowedActorPolicies: readonly ["request_actor"];
|
|
479
449
|
readonly downRamp: {
|
|
480
450
|
readonly code: "slug_rename_stop";
|
|
481
451
|
readonly summary: "Deny new slug renames while already-committed hostname redirects and runtime convergence continue.";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { freezeFeatureRegistryEntry } from "./feature-lifecycle-core.js";
|
|
2
|
-
export {
|
|
2
|
+
export { FEATURE_OWNER_IDS, FEATURE_STAGES, freezeFeatureRegistryEntry, validateFeatureLifecycleRegistry, } from "./feature-lifecycle-core.js";
|
|
3
3
|
const featureEntries = Object.freeze([
|
|
4
4
|
{
|
|
5
5
|
cohort: "launch",
|
|
@@ -13,7 +13,6 @@ const featureEntries = Object.freeze([
|
|
|
13
13
|
enabledForA8c: true,
|
|
14
14
|
planDefaults: {},
|
|
15
15
|
},
|
|
16
|
-
assignmentScopes: ["team", "global"],
|
|
17
16
|
docs: null,
|
|
18
17
|
owner: "team:commerce",
|
|
19
18
|
requires: [],
|
|
@@ -21,7 +20,6 @@ const featureEntries = Object.freeze([
|
|
|
21
20
|
reviewAfter: "2026-08-11",
|
|
22
21
|
removeAfter: null,
|
|
23
22
|
gaAt: null,
|
|
24
|
-
allowedActorPolicies: ["request_actor"],
|
|
25
23
|
downRamp: {
|
|
26
24
|
code: "paid_acquisition_stop",
|
|
27
25
|
summary: "Deny new acquisition; allow cancel, portal, provider reconciliation and purchase recovery.",
|
|
@@ -39,7 +37,6 @@ const featureEntries = Object.freeze([
|
|
|
39
37
|
enabledForA8c: true,
|
|
40
38
|
planDefaults: {},
|
|
41
39
|
},
|
|
42
|
-
assignmentScopes: ["global"],
|
|
43
40
|
docs: {
|
|
44
41
|
channel: "public",
|
|
45
42
|
slug: "/docs/publishing/anonymous",
|
|
@@ -51,7 +48,6 @@ const featureEntries = Object.freeze([
|
|
|
51
48
|
reviewAfter: "2026-07-26",
|
|
52
49
|
removeAfter: "2026-08-11",
|
|
53
50
|
gaAt: "2026-07-12",
|
|
54
|
-
allowedActorPolicies: ["request_actor", "global_policy"],
|
|
55
51
|
downRamp: {
|
|
56
52
|
code: "anonymous_publish_stop",
|
|
57
53
|
summary: "Deny new anonymous content/version/upload authorization or commit/finalize/promote/push side effects; already-issued bounded staging ingress stays quarantined, while static serving and service cleanup remain.",
|
|
@@ -87,7 +83,6 @@ const featureEntries = Object.freeze([
|
|
|
87
83
|
surface: true,
|
|
88
84
|
defaultEnabled: false,
|
|
89
85
|
runtime: null,
|
|
90
|
-
assignmentScopes: ["user", "team", "global"],
|
|
91
86
|
docs: {
|
|
92
87
|
channel: "handbook",
|
|
93
88
|
slug: "/features/domains/catalog",
|
|
@@ -99,7 +94,6 @@ const featureEntries = Object.freeze([
|
|
|
99
94
|
reviewAfter: "2026-08-11",
|
|
100
95
|
removeAfter: "2026-10-10",
|
|
101
96
|
gaAt: null,
|
|
102
|
-
allowedActorPolicies: ["request_actor"],
|
|
103
97
|
downRamp: {
|
|
104
98
|
code: "domain_catalog_hide",
|
|
105
99
|
summary: "Hide authenticated catalog; public suggestions, availability and WHOIS remain.",
|
|
@@ -118,7 +112,6 @@ const featureEntries = Object.freeze([
|
|
|
118
112
|
enabledForA8c: true,
|
|
119
113
|
planDefaults: {},
|
|
120
114
|
},
|
|
121
|
-
assignmentScopes: ["user", "team", "global"],
|
|
122
115
|
docs: {
|
|
123
116
|
channel: "handbook",
|
|
124
117
|
slug: "/features/domains/registration",
|
|
@@ -130,7 +123,6 @@ const featureEntries = Object.freeze([
|
|
|
130
123
|
reviewAfter: "2026-08-11",
|
|
131
124
|
removeAfter: "2026-10-10",
|
|
132
125
|
gaAt: null,
|
|
133
|
-
allowedActorPolicies: ["request_actor", "persisted_request_actor"],
|
|
134
126
|
downRamp: {
|
|
135
127
|
code: "domain_registration_stop",
|
|
136
128
|
summary: "Deny new customer mutations and unstarted provider submits; generic existing-domain read plus service-only reconciliation/compensation for externally committed work continue.",
|
|
@@ -149,7 +141,6 @@ const featureEntries = Object.freeze([
|
|
|
149
141
|
enabledForA8c: true,
|
|
150
142
|
planDefaults: {},
|
|
151
143
|
},
|
|
152
|
-
assignmentScopes: ["user", "team", "global"],
|
|
153
144
|
docs: {
|
|
154
145
|
channel: "handbook",
|
|
155
146
|
slug: "/features/domains/dns-management",
|
|
@@ -161,7 +152,6 @@ const featureEntries = Object.freeze([
|
|
|
161
152
|
reviewAfter: "2026-08-11",
|
|
162
153
|
removeAfter: "2026-10-10",
|
|
163
154
|
gaAt: null,
|
|
164
|
-
allowedActorPolicies: ["request_actor", "persisted_request_actor"],
|
|
165
155
|
downRamp: {
|
|
166
156
|
code: "dns_management_stop",
|
|
167
157
|
summary: "Deny customer mutation and unstarted provider apply; generic authoritative read plus service-only rollback/reconciliation for externally committed work continue.",
|
|
@@ -179,7 +169,6 @@ const featureEntries = Object.freeze([
|
|
|
179
169
|
enabledForA8c: true,
|
|
180
170
|
planDefaults: {},
|
|
181
171
|
},
|
|
182
|
-
assignmentScopes: ["team", "global"],
|
|
183
172
|
docs: {
|
|
184
173
|
channel: "handbook",
|
|
185
174
|
slug: "/features/domains/wpcom-dns",
|
|
@@ -191,7 +180,6 @@ const featureEntries = Object.freeze([
|
|
|
191
180
|
reviewAfter: "2026-08-11",
|
|
192
181
|
removeAfter: "2026-10-10",
|
|
193
182
|
gaAt: null,
|
|
194
|
-
allowedActorPolicies: ["request_actor"],
|
|
195
183
|
downRamp: {
|
|
196
184
|
code: "wpcom_dns_stop",
|
|
197
185
|
summary: "Deny new automation; service/operator detach and reconciliation continue.",
|
|
@@ -209,7 +197,6 @@ const featureEntries = Object.freeze([
|
|
|
209
197
|
enabledForA8c: true,
|
|
210
198
|
planDefaults: {},
|
|
211
199
|
},
|
|
212
|
-
assignmentScopes: ["user", "team", "global"],
|
|
213
200
|
docs: {
|
|
214
201
|
channel: "handbook",
|
|
215
202
|
slug: "/features/domains/domain-connect",
|
|
@@ -221,7 +208,6 @@ const featureEntries = Object.freeze([
|
|
|
221
208
|
reviewAfter: "2026-08-11",
|
|
222
209
|
removeAfter: "2026-10-10",
|
|
223
210
|
gaAt: null,
|
|
224
|
-
allowedActorPolicies: ["request_actor", "persisted_request_actor"],
|
|
225
211
|
downRamp: {
|
|
226
212
|
code: "domain_connect_stop",
|
|
227
213
|
summary: "Deny new setup and every uncommitted callback; after an authenticated external commit, narrowly typed service-only reconciliation or compensation continues idempotently.",
|
|
@@ -241,7 +227,6 @@ const featureEntries = Object.freeze([
|
|
|
241
227
|
internal: true,
|
|
242
228
|
},
|
|
243
229
|
},
|
|
244
|
-
assignmentScopes: ["team", "global"],
|
|
245
230
|
docs: {
|
|
246
231
|
channel: "public",
|
|
247
232
|
slug: "/docs/spaces/proxy-routes",
|
|
@@ -253,7 +238,6 @@ const featureEntries = Object.freeze([
|
|
|
253
238
|
reviewAfter: "2026-08-11",
|
|
254
239
|
removeAfter: "2026-10-10",
|
|
255
240
|
gaAt: null,
|
|
256
|
-
allowedActorPolicies: ["resource_team"],
|
|
257
241
|
downRamp: {
|
|
258
242
|
code: "proxy_binding_stop",
|
|
259
243
|
summary: "Deny new binds; discoverable authenticated read/detach plus service reconciliation continue.",
|
|
@@ -263,7 +247,7 @@ const featureEntries = Object.freeze([
|
|
|
263
247
|
cohort: "launch",
|
|
264
248
|
key: "collab.notices",
|
|
265
249
|
name: "Realtime notices",
|
|
266
|
-
description: "
|
|
250
|
+
description: "Live: the Space notice room. Turns on the dashboard's realtime comment feed and the overlay's notice chips. Not an authorization — who may watch a Space's feed is decided by its Grants.",
|
|
267
251
|
stage: "internal",
|
|
268
252
|
surface: false,
|
|
269
253
|
defaultEnabled: false,
|
|
@@ -271,7 +255,6 @@ const featureEntries = Object.freeze([
|
|
|
271
255
|
enabledForA8c: true,
|
|
272
256
|
planDefaults: {},
|
|
273
257
|
},
|
|
274
|
-
assignmentScopes: ["team", "global"],
|
|
275
258
|
docs: null,
|
|
276
259
|
owner: "team:collaboration",
|
|
277
260
|
requires: [],
|
|
@@ -279,7 +262,6 @@ const featureEntries = Object.freeze([
|
|
|
279
262
|
reviewAfter: "2026-08-11",
|
|
280
263
|
removeAfter: null,
|
|
281
264
|
gaAt: null,
|
|
282
|
-
allowedActorPolicies: ["resource_team"],
|
|
283
265
|
downRamp: {
|
|
284
266
|
code: "notices_stop",
|
|
285
267
|
summary: "Stop mint/publish; service/operator revoke and cleanup continue.",
|
|
@@ -301,9 +283,8 @@ const featureEntries = Object.freeze([
|
|
|
301
283
|
key: "sites.dedicated_runtime",
|
|
302
284
|
name: "Dedicated runtime sites",
|
|
303
285
|
description: "Allows teams to create dedicated WP.Cloud sites and place team spaces on them.",
|
|
304
|
-
//
|
|
305
|
-
//
|
|
306
|
-
// allocate the isolated infrastructure it exposes.
|
|
286
|
+
// Every Space owns its runtime site. The flag remains only as the
|
|
287
|
+
// operational down-ramp for new placement and materialization.
|
|
307
288
|
stage: "ga",
|
|
308
289
|
surface: true,
|
|
309
290
|
defaultEnabled: true,
|
|
@@ -312,7 +293,6 @@ const featureEntries = Object.freeze([
|
|
|
312
293
|
enabledForA8c: true,
|
|
313
294
|
planDefaults: {},
|
|
314
295
|
},
|
|
315
|
-
assignmentScopes: ["team", "global"],
|
|
316
296
|
docs: {
|
|
317
297
|
channel: "public",
|
|
318
298
|
slug: "/docs/apps",
|
|
@@ -324,7 +304,6 @@ const featureEntries = Object.freeze([
|
|
|
324
304
|
reviewAfter: null,
|
|
325
305
|
removeAfter: "2026-11-01",
|
|
326
306
|
gaAt: "2026-08-05",
|
|
327
|
-
allowedActorPolicies: ["request_actor", "resource_team"],
|
|
328
307
|
downRamp: {
|
|
329
308
|
code: "dedicated_runtime_stop",
|
|
330
309
|
summary: "Deny customer mutation and new placement/materialization immediately; serve-time revocation of already-materialized output lands with the deferred runtime-proof slice; operator recovery/export/delete remain; downloaded bytes cannot be recalled.",
|
|
@@ -350,7 +329,6 @@ const featureEntries = Object.freeze([
|
|
|
350
329
|
surface: true,
|
|
351
330
|
defaultEnabled: false,
|
|
352
331
|
runtime: null,
|
|
353
|
-
assignmentScopes: ["team", "global"],
|
|
354
332
|
docs: {
|
|
355
333
|
channel: "handbook",
|
|
356
334
|
slug: "/features/build/content-pipeline",
|
|
@@ -362,7 +340,6 @@ const featureEntries = Object.freeze([
|
|
|
362
340
|
reviewAfter: "2026-08-11",
|
|
363
341
|
removeAfter: "2026-10-10",
|
|
364
342
|
gaAt: null,
|
|
365
|
-
allowedActorPolicies: ["resource_team"],
|
|
366
343
|
downRamp: {
|
|
367
344
|
code: "content_pipeline_stop",
|
|
368
345
|
summary: "Deny next build/finalize; completed immutable output remains.",
|
|
@@ -381,7 +358,6 @@ const featureEntries = Object.freeze([
|
|
|
381
358
|
enabledForA8c: true,
|
|
382
359
|
planDefaults: {},
|
|
383
360
|
},
|
|
384
|
-
assignmentScopes: ["team", "global"],
|
|
385
361
|
docs: {
|
|
386
362
|
channel: "public",
|
|
387
363
|
slug: "/docs/tags",
|
|
@@ -393,7 +369,6 @@ const featureEntries = Object.freeze([
|
|
|
393
369
|
reviewAfter: "2026-08-11",
|
|
394
370
|
removeAfter: "2026-10-10",
|
|
395
371
|
gaAt: null,
|
|
396
|
-
allowedActorPolicies: ["request_actor", "resource_team"],
|
|
397
372
|
downRamp: {
|
|
398
373
|
code: "tags_stop",
|
|
399
374
|
summary: "Deny every customer Tag API and dynamic module delivery; internal operator export/cleanup and platform-generated inert marker bytes remain.",
|
|
@@ -404,8 +379,8 @@ const featureEntries = Object.freeze([
|
|
|
404
379
|
key: "zero",
|
|
405
380
|
name: "Spacefast Zero",
|
|
406
381
|
description: "Enables Spacefast Zero command surfaces and hosted Zero app workflows.",
|
|
407
|
-
// Zero is public. The flag remains only as the canonical
|
|
408
|
-
// down-ramp
|
|
382
|
+
// Zero is public on every plan. The flag remains only as the canonical
|
|
383
|
+
// operational down-ramp.
|
|
409
384
|
stage: "ga",
|
|
410
385
|
surface: true,
|
|
411
386
|
defaultEnabled: true,
|
|
@@ -413,19 +388,17 @@ const featureEntries = Object.freeze([
|
|
|
413
388
|
enabledForA8c: true,
|
|
414
389
|
planDefaults: {},
|
|
415
390
|
},
|
|
416
|
-
assignmentScopes: ["team", "global"],
|
|
417
391
|
docs: {
|
|
418
392
|
channel: "public",
|
|
419
393
|
slug: "/docs/apps/zero",
|
|
420
394
|
feedbackUrl: null,
|
|
421
395
|
},
|
|
422
396
|
owner: "team:zero",
|
|
423
|
-
requires: [
|
|
397
|
+
requires: [],
|
|
424
398
|
lifecycleAdoptedAt: "2026-07-12",
|
|
425
399
|
reviewAfter: null,
|
|
426
400
|
removeAfter: "2026-11-01",
|
|
427
401
|
gaAt: "2026-08-05",
|
|
428
|
-
allowedActorPolicies: ["resource_team"],
|
|
429
402
|
downRamp: {
|
|
430
403
|
code: "zero_stop",
|
|
431
404
|
summary: "Stop activation/invocation; operator export/delete/migration recovery remain.",
|
|
@@ -437,32 +410,29 @@ const featureEntries = Object.freeze([
|
|
|
437
410
|
name: "Spacefast Functions",
|
|
438
411
|
description: "Dispatches a version's dynamic requests to the execution host. Compiling the worker at publish is not gated: " +
|
|
439
412
|
"the CLI always ships the bundle, and this flag decides whether anything runs it.",
|
|
440
|
-
// Functions
|
|
441
|
-
//
|
|
442
|
-
stage: "
|
|
413
|
+
// Functions is public on every plan. The flag remains only as the
|
|
414
|
+
// operational down-ramp for dispatch.
|
|
415
|
+
stage: "ga",
|
|
443
416
|
surface: true,
|
|
444
|
-
defaultEnabled:
|
|
417
|
+
defaultEnabled: true,
|
|
445
418
|
runtime: {
|
|
446
419
|
enabledForA8c: true,
|
|
447
420
|
planDefaults: {},
|
|
448
421
|
},
|
|
449
|
-
assignmentScopes: ["team", "global"],
|
|
450
422
|
docs: {
|
|
451
423
|
channel: "public",
|
|
452
424
|
slug: "/docs/apps/functions",
|
|
453
425
|
feedbackUrl: null,
|
|
454
426
|
},
|
|
455
427
|
owner: "team:zero",
|
|
456
|
-
//
|
|
457
|
-
//
|
|
458
|
-
//
|
|
459
|
-
// way it is not for a capsule.
|
|
428
|
+
// A worker executes on Cloudflare rather than on the space's box and
|
|
429
|
+
// reaches the database only through the broker, so dispatch has no
|
|
430
|
+
// dedicated-runtime lifecycle dependency.
|
|
460
431
|
requires: [],
|
|
461
432
|
lifecycleAdoptedAt: "2026-07-27",
|
|
462
|
-
reviewAfter:
|
|
433
|
+
reviewAfter: null,
|
|
463
434
|
removeAfter: "2026-11-01",
|
|
464
|
-
gaAt:
|
|
465
|
-
allowedActorPolicies: ["resource_team"],
|
|
435
|
+
gaAt: "2026-08-12",
|
|
466
436
|
downRamp: {
|
|
467
437
|
code: "functions_stop",
|
|
468
438
|
summary: "Stop emitting dispatch configuration at finalize; published bundles stay on disk as inert content and the " +
|
|
@@ -483,7 +453,6 @@ const featureEntries = Object.freeze([
|
|
|
483
453
|
enabledForA8c: true,
|
|
484
454
|
planDefaults: {},
|
|
485
455
|
},
|
|
486
|
-
assignmentScopes: ["user", "team", "global"],
|
|
487
456
|
docs: {
|
|
488
457
|
channel: "public",
|
|
489
458
|
slug: "/docs/spaces/rename",
|
|
@@ -495,7 +464,6 @@ const featureEntries = Object.freeze([
|
|
|
495
464
|
reviewAfter: "2026-08-11",
|
|
496
465
|
removeAfter: "2026-10-10",
|
|
497
466
|
gaAt: "2026-07-27",
|
|
498
|
-
allowedActorPolicies: ["request_actor"],
|
|
499
467
|
downRamp: {
|
|
500
468
|
code: "slug_rename_stop",
|
|
501
469
|
summary: "Deny new slug renames while already-committed hostname redirects and runtime convergence continue.",
|