@stigmer/server 3.33.0 → 3.34.0
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/authorization/model/data/authorization-model.json +6 -0
- package/dist/domain/organization/controller.js +14 -4
- package/dist/domain/organization/controller.js.map +1 -1
- package/dist/extensions/gate-slots.d.ts +11 -1
- package/dist/extensions/gate-slots.d.ts.map +1 -1
- package/dist/extensions/gate-slots.js +1 -0
- package/dist/extensions/gate-slots.js.map +1 -1
- package/package.json +6 -6
- package/src/authorization/__tests__/store-tests.test.ts +1 -0
- package/src/authorization/__tests__/wire-permissions.test.ts +0 -6
- package/src/authorization/model/data/authorization-model.json +6 -0
- package/src/domain/organization/controller.ts +17 -4
- package/src/extensions/__tests__/extension-composition.test.ts +49 -3
- package/src/extensions/__tests__/registry.test.ts +3 -0
- package/src/extensions/gate-slots.ts +11 -0
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
"can_manage_cursor_accounts": {},
|
|
15
15
|
"can_manage_identity_accounts": {},
|
|
16
16
|
"can_manage_model_pricing": {},
|
|
17
|
+
"can_manage_plans": {},
|
|
17
18
|
"can_update_usage": {},
|
|
18
19
|
"can_view_access": {},
|
|
19
20
|
"can_view_provider_standing": {},
|
|
@@ -94,6 +95,11 @@
|
|
|
94
95
|
"relation": "operator"
|
|
95
96
|
}
|
|
96
97
|
},
|
|
98
|
+
"can_manage_plans": {
|
|
99
|
+
"computedUserset": {
|
|
100
|
+
"relation": "operator"
|
|
101
|
+
}
|
|
102
|
+
},
|
|
97
103
|
"can_update_usage": {
|
|
98
104
|
"computedUserset": {
|
|
99
105
|
"relation": "operator"
|
|
@@ -62,6 +62,11 @@ function kindOf(ctx) {
|
|
|
62
62
|
* ValidateProto so clients can omit the slug and have it derived before
|
|
63
63
|
* field constraints (slug pattern, 2–15 chars) are checked.
|
|
64
64
|
*
|
|
65
|
+
* The pre-side-effect gate slot splices before Persist, after the last pure
|
|
66
|
+
* step, the session chain's position: every step above it only reads, so a
|
|
67
|
+
* refusal there leaves no organization behind. It is where a limit on
|
|
68
|
+
* which organizations may exist is enforced.
|
|
69
|
+
*
|
|
65
70
|
* The post-persist gate slot splices after Persist, before IndexSearch —
|
|
66
71
|
* the verified Java OrganizationCreateHandler ordering (FGA tuple
|
|
67
72
|
* seeding, billing account getOrCreate: synchronous, a failure fails the
|
|
@@ -79,11 +84,16 @@ async function createOrganization(deps, org, ctx) {
|
|
|
79
84
|
.addStep(newCheckOrgDuplicateStep(deps.store))
|
|
80
85
|
.addStep(newBuildNewStateStep())
|
|
81
86
|
.addStep(newGuardReservedLabelsStep(deps.authorizer))
|
|
82
|
-
.addStep(newCopySlugToIdStep())
|
|
87
|
+
.addStep(newCopySlugToIdStep());
|
|
88
|
+
// The pre-side-effect gate slot (see the doc comment above). Empty in OSS.
|
|
89
|
+
for (const step of stepsForSlot(deps.gateSteps, "org-create:pre-side-effect-gate")) {
|
|
90
|
+
builder.addStep(step);
|
|
91
|
+
}
|
|
92
|
+
builder
|
|
83
93
|
.addStep(newPersistStep(deps.store))
|
|
84
|
-
// The C2 tuple step runs BEFORE the slot — the verified
|
|
85
|
-
// (createAuthorizationTuples → linkManagedOrgToIdentityProvider
|
|
86
|
-
// provisionBillingAccount). No-op with no driver composed.
|
|
94
|
+
// The C2 tuple step runs BEFORE the post-persist slot — the verified
|
|
95
|
+
// Java order (createAuthorizationTuples → linkManagedOrgToIdentityProvider
|
|
96
|
+
// → provisionBillingAccount). No-op with no driver composed.
|
|
87
97
|
.addStep(newCreateAuthorizationTuplesStep(deps.authorizationLifecycle, deps.logger));
|
|
88
98
|
// The ratified post-persist gate slot (blueprint 03 §3a; O4 — see the
|
|
89
99
|
// doc comment above for the inherited failure semantics). Empty in OSS.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controller.js","sourceRoot":"","sources":["../../../src/domain/organization/controller.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"controller.js","sourceRoot":"","sources":["../../../src/domain/organization/controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -43,6 +43,16 @@
|
|
|
43
43
|
* resource, and a team member who is not one of the organization's
|
|
44
44
|
* viewers. Never on `bootstrapPolicy`, the platform's structural lane.
|
|
45
45
|
*
|
|
46
|
+
* The ninth, `org-create:pre-side-effect-gate`: the organization create
|
|
47
|
+
* chain after its last pure step (CopySlugToId) and before Persist, the
|
|
48
|
+
* position the session chain's slot holds. It exists for a refusal that
|
|
49
|
+
* must leave nothing behind: `org-create:post-persist` runs after the row
|
|
50
|
+
* is written, so a limit enforced there would leave the organization it
|
|
51
|
+
* refused. The Cloud refuses a platform-managed organization its
|
|
52
|
+
* integrator's plan does not admit; a licensed deployment's organization
|
|
53
|
+
* limit belongs here too. `apply` delegates to create on its create arm,
|
|
54
|
+
* so the slot fires there as well.
|
|
55
|
+
*
|
|
46
56
|
* Two enforcement layers, deliberately redundant, both derived from the
|
|
47
57
|
* ONE literal tuple below (lockstep by construction):
|
|
48
58
|
* - GateSlotName (compile time): the union of declared slot literals.
|
|
@@ -70,7 +80,7 @@ import type { PipelineStep } from "../pipeline/pipeline.js";
|
|
|
70
80
|
* owner-visible slot additions — each entry cites its chain position in
|
|
71
81
|
* the guidelines' slot table, which must match the splice sites exactly.
|
|
72
82
|
*/
|
|
73
|
-
export declare const GATE_SLOT_NAMES: readonly ["agent-execution-create:pre-side-effect-gate", "agent-execution-recover:pre-side-effect-gate", "agent-execution-submit-approval:gate", "session-create:pre-side-effect-gate", "org-create:post-persist", "sandbox-acquisition:gate", "identity-account-provision:post-persist", "iam-policy-create:pre-side-effect-gate"];
|
|
83
|
+
export declare const GATE_SLOT_NAMES: readonly ["agent-execution-create:pre-side-effect-gate", "agent-execution-recover:pre-side-effect-gate", "agent-execution-submit-approval:gate", "session-create:pre-side-effect-gate", "org-create:post-persist", "sandbox-acquisition:gate", "identity-account-provision:post-persist", "iam-policy-create:pre-side-effect-gate", "org-create:pre-side-effect-gate"];
|
|
74
84
|
/** The declared slot-name union — a registration outside it fails tsc. */
|
|
75
85
|
export type GateSlotName = (typeof GATE_SLOT_NAMES)[number];
|
|
76
86
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gate-slots.d.ts","sourceRoot":"","sources":["../../src/extensions/gate-slots.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"gate-slots.d.ts","sourceRoot":"","sources":["../../src/extensions/gate-slots.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0EG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAE5D;;;;GAIG;AACH,eAAO,MAAM,eAAe,wWAUlB,CAAC;AAEX,0EAA0E;AAC1E,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;AAE5D;;;GAGG;AACH,eAAO,MAAM,mBAAmB,EAAE,WAAW,CAAC,MAAM,CAEnD,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG,WAAW,CACzC,MAAM,EACN,aAAa,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,CACzC,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,SAAS,WAAW,EACnD,SAAS,EAAE,iBAAiB,EAC5B,IAAI,EAAE,YAAY,GACjB,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAOnC"}
|
|
@@ -12,6 +12,7 @@ export const GATE_SLOT_NAMES = [
|
|
|
12
12
|
"sandbox-acquisition:gate",
|
|
13
13
|
"identity-account-provision:post-persist",
|
|
14
14
|
"iam-policy-create:pre-side-effect-gate",
|
|
15
|
+
"org-create:pre-side-effect-gate",
|
|
15
16
|
];
|
|
16
17
|
/**
|
|
17
18
|
* The boot-time declared-slot set — resolveExtensions validates every
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gate-slots.js","sourceRoot":"","sources":["../../src/extensions/gate-slots.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"gate-slots.js","sourceRoot":"","sources":["../../src/extensions/gate-slots.ts"],"names":[],"mappings":"AA+EA;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,6CAA6C;IAC7C,8CAA8C;IAC9C,sCAAsC;IACtC,qCAAqC;IACrC,yBAAyB;IACzB,0BAA0B;IAC1B,yCAAyC;IACzC,wCAAwC;IACxC,iCAAiC;CACzB,CAAC;AAKX;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAwB,IAAI,GAAG,CAC7D,eAAe,CAChB,CAAC;AAWF;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAC1B,SAA4B,EAC5B,IAAkB;IAElB,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IACxC,kDAAkD;IAClD,oEAAoE;IACpE,sEAAsE;IACtE,cAAc;IACd,OAAO,KAA0C,CAAC;AACpD,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stigmer/server",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.34.0",
|
|
4
4
|
"description": "The Stigmer OSS control plane as a composable library: composeServer, the extension registry and the driver seams a composition builds on. The self-contained deployable of the same server is @stigmer/server-slim.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"type": "module",
|
|
@@ -63,11 +63,11 @@
|
|
|
63
63
|
"@connectrpc/connect-node": "^2.0.0",
|
|
64
64
|
"@kubernetes/client-node": "2.0.0",
|
|
65
65
|
"@opentelemetry/api": "^1.9.0",
|
|
66
|
-
"@stigmer/outbound": "3.
|
|
67
|
-
"@stigmer/plugin-package": "3.
|
|
68
|
-
"@stigmer/protos": "3.
|
|
69
|
-
"@stigmer/temporal-codecs": "3.
|
|
70
|
-
"@stigmer/zip-structure": "3.
|
|
66
|
+
"@stigmer/outbound": "3.34.0",
|
|
67
|
+
"@stigmer/plugin-package": "3.34.0",
|
|
68
|
+
"@stigmer/protos": "3.34.0",
|
|
69
|
+
"@stigmer/temporal-codecs": "3.34.0",
|
|
70
|
+
"@stigmer/zip-structure": "3.34.0",
|
|
71
71
|
"@temporalio/activity": "1.16.2",
|
|
72
72
|
"@temporalio/client": "1.16.2",
|
|
73
73
|
"@temporalio/common": "1.16.2",
|
|
@@ -65,6 +65,7 @@ const DOCUMENTS = [
|
|
|
65
65
|
"org-admin-owner-inheritance.fga.yaml",
|
|
66
66
|
"org-shared-environment.fga.yaml",
|
|
67
67
|
"organization-role-assignment.fga.yaml",
|
|
68
|
+
"plan-catalog-manager.fga.yaml",
|
|
68
69
|
"platform-visibility.fga.yaml",
|
|
69
70
|
"plugin-owner.fga.yaml",
|
|
70
71
|
"provider-standing-viewer.fga.yaml",
|
|
@@ -63,12 +63,6 @@ import { builtInModel } from "../model/index.js";
|
|
|
63
63
|
* until its line is removed here.
|
|
64
64
|
*/
|
|
65
65
|
const KNOWN_GAPS: ReadonlyArray<string> = [
|
|
66
|
-
// Contract ahead of model, on purpose: Plan's proto says the relation
|
|
67
|
-
// lands in the model with the entry that serves the kind
|
|
68
|
-
// (apis/ai/stigmer/billing/plan/v1/command.proto), and no edition serves
|
|
69
|
-
// Plan yet.
|
|
70
|
-
"ai.stigmer.billing.plan.v1.PlanCommandController/create asks can_manage_plans on platform",
|
|
71
|
-
"ai.stigmer.billing.plan.v1.PlanCommandController/retire asks can_manage_plans on platform",
|
|
72
66
|
// Artifacts are grantable in kind_meta, but the model defines no access
|
|
73
67
|
// relations on them: https://github.com/stigmer/stigmer/issues/1268.
|
|
74
68
|
"the resource_kind_path lanes ask can_grant_access on artifact",
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
"can_manage_cursor_accounts": {},
|
|
15
15
|
"can_manage_identity_accounts": {},
|
|
16
16
|
"can_manage_model_pricing": {},
|
|
17
|
+
"can_manage_plans": {},
|
|
17
18
|
"can_update_usage": {},
|
|
18
19
|
"can_view_access": {},
|
|
19
20
|
"can_view_provider_standing": {},
|
|
@@ -94,6 +95,11 @@
|
|
|
94
95
|
"relation": "operator"
|
|
95
96
|
}
|
|
96
97
|
},
|
|
98
|
+
"can_manage_plans": {
|
|
99
|
+
"computedUserset": {
|
|
100
|
+
"relation": "operator"
|
|
101
|
+
}
|
|
102
|
+
},
|
|
97
103
|
"can_update_usage": {
|
|
98
104
|
"computedUserset": {
|
|
99
105
|
"relation": "operator"
|
|
@@ -156,6 +156,11 @@ function kindOf(ctx: HandlerContext): ApiResourceKind {
|
|
|
156
156
|
* ValidateProto so clients can omit the slug and have it derived before
|
|
157
157
|
* field constraints (slug pattern, 2–15 chars) are checked.
|
|
158
158
|
*
|
|
159
|
+
* The pre-side-effect gate slot splices before Persist, after the last pure
|
|
160
|
+
* step, the session chain's position: every step above it only reads, so a
|
|
161
|
+
* refusal there leaves no organization behind. It is where a limit on
|
|
162
|
+
* which organizations may exist is enforced.
|
|
163
|
+
*
|
|
159
164
|
* The post-persist gate slot splices after Persist, before IndexSearch —
|
|
160
165
|
* the verified Java OrganizationCreateHandler ordering (FGA tuple
|
|
161
166
|
* seeding, billing account getOrCreate: synchronous, a failure fails the
|
|
@@ -190,11 +195,19 @@ async function createOrganization(
|
|
|
190
195
|
.addStep(newCheckOrgDuplicateStep(deps.store))
|
|
191
196
|
.addStep(newBuildNewStateStep())
|
|
192
197
|
.addStep(newGuardReservedLabelsStep(deps.authorizer))
|
|
193
|
-
.addStep(newCopySlugToIdStep())
|
|
198
|
+
.addStep(newCopySlugToIdStep());
|
|
199
|
+
// The pre-side-effect gate slot (see the doc comment above). Empty in OSS.
|
|
200
|
+
for (const step of stepsForSlot<typeof OrganizationSchema>(
|
|
201
|
+
deps.gateSteps,
|
|
202
|
+
"org-create:pre-side-effect-gate",
|
|
203
|
+
)) {
|
|
204
|
+
builder.addStep(step);
|
|
205
|
+
}
|
|
206
|
+
builder
|
|
194
207
|
.addStep(newPersistStep(deps.store))
|
|
195
|
-
// The C2 tuple step runs BEFORE the slot — the verified
|
|
196
|
-
// (createAuthorizationTuples → linkManagedOrgToIdentityProvider
|
|
197
|
-
// provisionBillingAccount). No-op with no driver composed.
|
|
208
|
+
// The C2 tuple step runs BEFORE the post-persist slot — the verified
|
|
209
|
+
// Java order (createAuthorizationTuples → linkManagedOrgToIdentityProvider
|
|
210
|
+
// → provisionBillingAccount). No-op with no driver composed.
|
|
198
211
|
.addStep(
|
|
199
212
|
newCreateAuthorizationTuplesStep(
|
|
200
213
|
deps.authorizationLifecycle,
|
|
@@ -736,9 +736,10 @@ describe("extension composition (O5 driver substitution)", () => {
|
|
|
736
736
|
/**
|
|
737
737
|
* The O4 gate-slot + status-hook arms: an extension gate spliced into a
|
|
738
738
|
* declared slot refuses with its own ConnectError code and copy — before
|
|
739
|
-
* the side effect on
|
|
740
|
-
* it on the post-persist slot
|
|
741
|
-
* inherited Java semantics — O4
|
|
739
|
+
* the side effect on a pre-side-effect slot (nothing persisted: the
|
|
740
|
+
* session and organization chains), after it on the post-persist slot
|
|
741
|
+
* (the row survives the failed request, the inherited Java semantics — O4
|
|
742
|
+
* verification V1); the status observers
|
|
742
743
|
* see the terminal updateStatus transition exactly once (the Q4
|
|
743
744
|
* phase-change rule) and the response decorator contributes the control
|
|
744
745
|
* signal on the shared reply schema.
|
|
@@ -746,6 +747,7 @@ describe("extension composition (O5 driver substitution)", () => {
|
|
|
746
747
|
describe("extension composition (O4 gate slots + status hooks)", () => {
|
|
747
748
|
const REFUSED_SESSION = "o4-refused-session";
|
|
748
749
|
const REFUSED_ORG_SLUG = "o4refusedorg";
|
|
750
|
+
const PRE_REFUSED_ORG_SLUG = "prerefusedorg";
|
|
749
751
|
let server: ComposedServer;
|
|
750
752
|
let dir: string;
|
|
751
753
|
let portTransport: Transport;
|
|
@@ -777,11 +779,25 @@ describe("extension composition (O4 gate slots + status hooks)", () => {
|
|
|
777
779
|
},
|
|
778
780
|
};
|
|
779
781
|
|
|
782
|
+
const orgPreSideEffectGate: PipelineStep<DescMessage> = {
|
|
783
|
+
name: "FakeOrgPreSideEffectGate",
|
|
784
|
+
execute: (ctx) => {
|
|
785
|
+
const org = ctx.newState as { metadata?: { slug?: string } };
|
|
786
|
+
if (org.metadata?.slug === PRE_REFUSED_ORG_SLUG) {
|
|
787
|
+
throw new ConnectError(
|
|
788
|
+
"fake organization limit reached",
|
|
789
|
+
Code.FailedPrecondition,
|
|
790
|
+
);
|
|
791
|
+
}
|
|
792
|
+
},
|
|
793
|
+
};
|
|
794
|
+
|
|
780
795
|
const gateExtension: ServerExtension = {
|
|
781
796
|
name: "fake-gates-and-hooks",
|
|
782
797
|
gateSteps: new Map<GateSlotName, ReadonlyArray<PipelineStep<DescMessage>>>([
|
|
783
798
|
["session-create:pre-side-effect-gate", [sessionGate]],
|
|
784
799
|
["org-create:post-persist", [orgPostPersistGate]],
|
|
800
|
+
["org-create:pre-side-effect-gate", [orgPreSideEffectGate]],
|
|
785
801
|
]),
|
|
786
802
|
statusTransitionHooks: {
|
|
787
803
|
observers: [
|
|
@@ -892,6 +908,36 @@ describe("extension composition (O4 gate slots + status hooks)", () => {
|
|
|
892
908
|
expect(org.metadata?.slug).toBe(REFUSED_ORG_SLUG);
|
|
893
909
|
});
|
|
894
910
|
|
|
911
|
+
it("a pre-side-effect gate refusal aborts organization create with no row written", async () => {
|
|
912
|
+
const command = createClient(OrganizationCommandController, portTransport);
|
|
913
|
+
const query = createClient(OrganizationQueryController, portTransport);
|
|
914
|
+
|
|
915
|
+
let refused: ConnectError | undefined;
|
|
916
|
+
try {
|
|
917
|
+
await command.create(
|
|
918
|
+
create(OrganizationSchema, {
|
|
919
|
+
apiVersion: "tenancy.stigmer.ai/v1",
|
|
920
|
+
kind: "Organization",
|
|
921
|
+
metadata: { name: "Pre Refused Org", slug: PRE_REFUSED_ORG_SLUG },
|
|
922
|
+
}),
|
|
923
|
+
);
|
|
924
|
+
} catch (error) {
|
|
925
|
+
refused = ConnectError.from(error);
|
|
926
|
+
}
|
|
927
|
+
expect(refused?.code).toBe(Code.FailedPrecondition);
|
|
928
|
+
expect(refused?.rawMessage).toBe("fake organization limit reached");
|
|
929
|
+
|
|
930
|
+
// The slot sits BEFORE Persist: the refused organization was never
|
|
931
|
+
// written, which is the whole reason the slot exists.
|
|
932
|
+
let getError: ConnectError | undefined;
|
|
933
|
+
try {
|
|
934
|
+
await query.get({ value: PRE_REFUSED_ORG_SLUG });
|
|
935
|
+
} catch (error) {
|
|
936
|
+
getError = ConnectError.from(error);
|
|
937
|
+
}
|
|
938
|
+
expect(getError?.code).toBe(Code.NotFound);
|
|
939
|
+
});
|
|
940
|
+
|
|
895
941
|
it("observers see the terminal updateStatus transition once and the decorator contributes the signal", async () => {
|
|
896
942
|
const executionId = "aexec_o4_hooks";
|
|
897
943
|
await server.store.saveResource(
|
|
@@ -488,6 +488,9 @@ describe("resolveExtensions — loud-fail throws (DD-006 §2b)", () => {
|
|
|
488
488
|
// personal-organization ensure and backfill ride it).
|
|
489
489
|
"identity-account-provision:post-persist",
|
|
490
490
|
"org-create:post-persist",
|
|
491
|
+
// The ninth: the organization create chain before Persist, where a
|
|
492
|
+
// limit on which organizations may exist refuses with nothing written.
|
|
493
|
+
"org-create:pre-side-effect-gate",
|
|
491
494
|
"sandbox-acquisition:gate",
|
|
492
495
|
"session-create:pre-side-effect-gate",
|
|
493
496
|
]);
|
|
@@ -43,6 +43,16 @@
|
|
|
43
43
|
* resource, and a team member who is not one of the organization's
|
|
44
44
|
* viewers. Never on `bootstrapPolicy`, the platform's structural lane.
|
|
45
45
|
*
|
|
46
|
+
* The ninth, `org-create:pre-side-effect-gate`: the organization create
|
|
47
|
+
* chain after its last pure step (CopySlugToId) and before Persist, the
|
|
48
|
+
* position the session chain's slot holds. It exists for a refusal that
|
|
49
|
+
* must leave nothing behind: `org-create:post-persist` runs after the row
|
|
50
|
+
* is written, so a limit enforced there would leave the organization it
|
|
51
|
+
* refused. The Cloud refuses a platform-managed organization its
|
|
52
|
+
* integrator's plan does not admit; a licensed deployment's organization
|
|
53
|
+
* limit belongs here too. `apply` delegates to create on its create arm,
|
|
54
|
+
* so the slot fires there as well.
|
|
55
|
+
*
|
|
46
56
|
* Two enforcement layers, deliberately redundant, both derived from the
|
|
47
57
|
* ONE literal tuple below (lockstep by construction):
|
|
48
58
|
* - GateSlotName (compile time): the union of declared slot literals.
|
|
@@ -81,6 +91,7 @@ export const GATE_SLOT_NAMES = [
|
|
|
81
91
|
"sandbox-acquisition:gate",
|
|
82
92
|
"identity-account-provision:post-persist",
|
|
83
93
|
"iam-policy-create:pre-side-effect-gate",
|
|
94
|
+
"org-create:pre-side-effect-gate",
|
|
84
95
|
] as const;
|
|
85
96
|
|
|
86
97
|
/** The declared slot-name union — a registration outside it fails tsc. */
|