Skip to content

Commit 88df130

Browse files
committed
docs(core,rest): name cloud's mounted variant "licence-gated", not "cloud-private"
Five measurement narratives in packages/core/src/security and packages/rest/src said the reproduction ran with "the real cloud-private `@objectstack/organizations`" (or "`Organizations` plugin"). Under ADR-0132 D3 "one name, two packages" that adjective is ambiguous, not simply false: it is true of the licence-gated subclass cloud's own app mounts, and false of the package name, which resolves in this workspace to an Apache-2.0 member of it. All five take the same adjective, chosen once: `licence-gated`, the tree's established spelling for cloud's variant (plugin-security README.md, plugin-auth/src/tenancy-service.ts, service-cluster/src/multi-node-gate-mount.ts, spec/src/kernel/platform-capabilities.ts, and the CHANGELOGs of four packages all read "a private, licence-gated subclass"). Where the adjective sat on the bare package NAME the referent noun `subclass` is added with it, so the gate attaches to the variant and never to the Apache-2.0 package. Comment prose only: no runtime string, no export, no test assertion and no behaviour moves. Claude-Session: https://claude.ai/code/session_01CqmCgU5RGDoJYhHUMVp2af Co-authored-by: Claude <noreply@anthropic.com>
1 parent a84f61a commit 88df130

5 files changed

Lines changed: 13 additions & 12 deletions

‎packages/core/src/security/resolve-authz-context.test.ts‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1601,7 +1601,7 @@ describe('the in-memory ObjectQL double honours `limit` (#10978)', () => {
16011601
*
16021602
* ## What was measured, before the guard existed
16031603
*
1604-
* On a live `isolated` boot with the real cloud-private `Organizations` plugin
1604+
* On a live `isolated` boot with the real licence-gated `Organizations` plugin
16051605
* and a file-backed sqlite store, a session whose owner had been removed
16061606
* through better-auth's OWN `/organization/remove-member` — driven by the org
16071607
* owner, 200, the `sys_member` row really deleted — went on READING that

‎packages/core/src/security/resolve-authz-context.ts‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -480,7 +480,7 @@ export async function resolveAuthzContext(input: ResolveAuthzInput): Promise<Res
480480
// The block above asks "is this stamped organization still backed by a
481481
// membership?" and, until this card, asked it ONLY of an API key. A browser
482482
// session's `activeOrganizationId` reached `ctx.tenantId` unread: measured on
483-
// a live `isolated` boot with the real cloud-private `Organizations` plugin,
483+
// a live `isolated` boot with the real licence-gated `Organizations` plugin,
484484
// a session whose owner had been removed through better-auth's OWN
485485
// `/organization/remove-member` (driven by the org owner, 200, the
486486
// `sys_member` row really deleted) went on READING that organization's rows

‎packages/rest/src/rest-api-plugin.ts‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -297,9 +297,9 @@ export function createRestApiPlugin(config: RestApiPluginConfig = {}): Plugin {
297297
// organization's rows (GET 200) and WROTE a new one into it (POST
298298
// 201, the row read back from the store carrying the other
299299
// organization's id). objectstack#15163 measured it on the
300-
// framework; cloud#1982 reproduced it with the real, cloud-private
301-
// `@objectstack/organizations` mounted, which adds no request-time
302-
// refusal of its own.
300+
// framework; cloud#1982 reproduced it with the real, licence-gated
301+
// `@objectstack/organizations` subclass mounted, which adds no
302+
// request-time refusal of its own.
303303
//
304304
// ## Why this is NOT `authServiceProvider`'s catch-all
305305
//

‎packages/rest/src/single-kernel-isolated-api-key-matrix.test.ts‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,10 @@
1818
* | organization-less key | **200 total 0 (silent) · 403** | **401** |
1919
*
2020
* objectstack#15163 measured it on the framework; cloud#1982 reproduced it on
21-
* `apps/objectos-ee` with the REAL cloud-private `@objectstack/organizations`
22-
* mounted, reading the written row back out of the sqlite file — the enterprise
23-
* plugin adds no request-time refusal, so the blast radius was every walled
24-
* deployment.
21+
* `apps/objectos-ee` with the REAL licence-gated `@objectstack/organizations`
22+
* subclass mounted, reading the written row back out of the sqlite file — the
23+
* enterprise plugin adds no request-time refusal, so the blast radius was
24+
* every walled deployment.
2525
*
2626
* ## Why the fixture is shaped the way it is
2727
*

‎packages/rest/src/single-kernel-isolated-session-org-claim-matrix.test.ts‎

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,10 @@
88
* ## What was measured, before this guard existed
99
*
1010
* On a real `objectstack serve` of cloud's `apps/objectos-ee` — 44 plugins, the
11-
* REAL cloud-private `@objectstack/organizations`, `Tenancy: isolated`,
12-
* `SqlDriver(better-sqlite3)` on a FILE — a browser session whose
13-
* `activeOrganizationId` pointed at an organization its owner had LEFT:
11+
* REAL licence-gated `@objectstack/organizations` subclass,
12+
* `Tenancy: isolated`, `SqlDriver(better-sqlite3)` on a FILE — a browser
13+
* session whose `activeOrganizationId` pointed at an organization its owner
14+
* had LEFT:
1415
*
1516
* | after the membership ended | GET | POST | the row, read back from the sqlite file |
1617
* |:--|:--|:--|:--|

0 commit comments

Comments
 (0)