@kindgi/platform 0.1.4-rc.0 → 0.1.4-rc.1
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/in-memory/index.d.ts +1 -0
- package/dist/in-memory/index.d.ts.map +1 -1
- package/dist/in-memory/project-binding.d.ts +26 -1
- package/dist/in-memory/project-binding.d.ts.map +1 -1
- package/dist/in-memory/project-binding.js +9 -1
- package/dist/in-memory/project-binding.js.map +1 -1
- package/dist/in-memory/team-binding.d.ts +2 -1
- package/dist/in-memory/team-binding.d.ts.map +1 -1
- package/dist/in-memory/team-binding.js +9 -1
- package/dist/in-memory/team-binding.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/project-binding.d.ts +14 -0
- package/dist/project-binding.d.ts.map +1 -1
- package/dist/team-binding.d.ts +14 -0
- package/dist/team-binding.d.ts.map +1 -1
- package/dist/tenant-hierarchy-binding.d.ts +12 -0
- package/dist/tenant-hierarchy-binding.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/in-memory/index.ts +1 -0
- package/src/in-memory/project-binding.ts +21 -2
- package/src/in-memory/team-binding.ts +12 -1
- package/src/index.ts +1 -0
- package/src/project-binding.ts +16 -0
- package/src/team-binding.ts +16 -0
- package/src/tenant-hierarchy-binding.ts +4 -0
- package/tests/in-memory-project-binding.test.ts +13 -1
- package/tests/in-memory-team-binding.test.ts +8 -1
- package/tests/project-binding.conformance.ts +35 -0
- package/tests/team-binding.conformance.ts +28 -0
|
@@ -6,4 +6,5 @@
|
|
|
6
6
|
export { makeInMemoryOrgBinding } from './org-binding.js';
|
|
7
7
|
export { makeInMemoryTeamBinding } from './team-binding.js';
|
|
8
8
|
export { makeInMemoryProjectBinding } from './project-binding.js';
|
|
9
|
+
export type { InMemoryHierarchyOptions } from './project-binding.js';
|
|
9
10
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/in-memory/index.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AAEH,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/in-memory/index.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AAEH,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAClE,YAAY,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -1,11 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `makeInMemoryProjectBinding` — reference in-memory implementations of
|
|
3
|
+
* `ProjectBinding` + `ProjectMembershipBinding` + `TeamProjectGrantBinding`.
|
|
4
|
+
*
|
|
5
|
+
* Storage: three maps — projects, direct-grant memberships, team-project
|
|
6
|
+
* grants. All share the same tenant-isolation guardrail + return the
|
|
7
|
+
* combined trio so callers wire the whole surface at once. The
|
|
8
|
+
* in-memory adapter keeps the team↔project join (`TeamProjectGrant`)
|
|
9
|
+
* here for simplicity.
|
|
10
|
+
*
|
|
11
|
+
* `create` enforces the `Project.isDefault = true` uniqueness
|
|
12
|
+
* guardrail at write time: creating a second Default in the same
|
|
13
|
+
* tenant resolves to `project-default-already-exists`. A project's
|
|
14
|
+
* slug is unique within its org, and a project without an org's among
|
|
15
|
+
* the tenant's projects without one (`slug-conflict`).
|
|
16
|
+
*/
|
|
17
|
+
import type { OrgId, TenantId } from '@kindgi/types';
|
|
1
18
|
import type { ProjectBinding, ProjectMembershipBinding } from '../project-binding.js';
|
|
2
19
|
import type { TeamProjectGrantBinding } from '../team-project-grant-binding.js';
|
|
20
|
+
/**
|
|
21
|
+
* `orgExists`: whether an org is the tenant's (live). Given, a project or
|
|
22
|
+
* team created in or moved to another org is `org-not-found`, as the
|
|
23
|
+
* durable bindings answer; absent, any `orgId` is taken as it is.
|
|
24
|
+
*/
|
|
25
|
+
export interface InMemoryHierarchyOptions {
|
|
26
|
+
readonly orgExists?: (tenantId: TenantId, orgId: OrgId) => boolean | Promise<boolean>;
|
|
27
|
+
}
|
|
3
28
|
/**
|
|
4
29
|
* Combined factory — returns the three project-related bindings that
|
|
5
30
|
* share underlying storage. Any of them can be plucked out and passed
|
|
6
31
|
* individually to consumers that need just one.
|
|
7
32
|
*/
|
|
8
|
-
export declare function makeInMemoryProjectBinding(): {
|
|
33
|
+
export declare function makeInMemoryProjectBinding(options?: InMemoryHierarchyOptions): {
|
|
9
34
|
readonly projects: ProjectBinding;
|
|
10
35
|
readonly memberships: ProjectMembershipBinding;
|
|
11
36
|
readonly grants: TeamProjectGrantBinding;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-binding.d.ts","sourceRoot":"","sources":["../../src/in-memory/project-binding.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"project-binding.d.ts","sourceRoot":"","sources":["../../src/in-memory/project-binding.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAU,KAAK,EAA2B,QAAQ,EAAU,MAAM,eAAe,CAAC;AAE9F,OAAO,KAAK,EACV,cAAc,EAKd,wBAAwB,EAGzB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAGV,uBAAuB,EACxB,MAAM,kCAAkC,CAAC;AAyB1C;;;;GAIG;AACH,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACvF;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,GAAE,wBAA6B,GAAG;IAClF,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAClC,QAAQ,CAAC,WAAW,EAAE,wBAAwB,CAAC;IAC/C,QAAQ,CAAC,MAAM,EAAE,uBAAuB,CAAC;CAC1C,CA4TA"}
|
|
@@ -17,7 +17,7 @@ function grantKey(teamId, projectId) {
|
|
|
17
17
|
* share underlying storage. Any of them can be plucked out and passed
|
|
18
18
|
* individually to consumers that need just one.
|
|
19
19
|
*/
|
|
20
|
-
export function makeInMemoryProjectBinding() {
|
|
20
|
+
export function makeInMemoryProjectBinding(options = {}) {
|
|
21
21
|
const projectRows = new Map();
|
|
22
22
|
const membershipRows = new Map();
|
|
23
23
|
const grantRows = new Map();
|
|
@@ -60,6 +60,9 @@ export function makeInMemoryProjectBinding() {
|
|
|
60
60
|
if (isDefault && tenantAlreadyHasDefault(tenantId)) {
|
|
61
61
|
return { kind: 'project-default-already-exists' };
|
|
62
62
|
}
|
|
63
|
+
if (spec.orgId !== undefined && (await options.orgExists?.(tenantId, spec.orgId)) === false) {
|
|
64
|
+
return { kind: 'org-not-found', orgId: spec.orgId };
|
|
65
|
+
}
|
|
63
66
|
if (slugTaken(tenantId, spec.orgId, spec.slug)) {
|
|
64
67
|
return { kind: 'slug-conflict', slug: spec.slug };
|
|
65
68
|
}
|
|
@@ -117,6 +120,11 @@ export function makeInMemoryProjectBinding() {
|
|
|
117
120
|
if (patch.orgId !== undefined) {
|
|
118
121
|
nextOrgId = patch.orgId === null ? undefined : patch.orgId;
|
|
119
122
|
}
|
|
123
|
+
if (patch.orgId !== undefined &&
|
|
124
|
+
patch.orgId !== null &&
|
|
125
|
+
(await options.orgExists?.(tenantId, patch.orgId)) === false) {
|
|
126
|
+
return { kind: 'org-not-found', orgId: patch.orgId };
|
|
127
|
+
}
|
|
120
128
|
// The slug it ends up with, where it ends up: a move to another org
|
|
121
129
|
// (or out of one) can meet a project with the same slug there.
|
|
122
130
|
const nextSlug = patch.slug ?? row.slug;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-binding.js","sourceRoot":"","sources":["../../src/in-memory/project-binding.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"project-binding.js","sourceRoot":"","sources":["../../src/in-memory/project-binding.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import type { TeamBinding, TeamMembershipBinding } from '../team-binding.js';
|
|
2
|
+
import type { InMemoryHierarchyOptions } from './project-binding.js';
|
|
2
3
|
/**
|
|
3
4
|
* Combined factory — returns a `TeamBinding` + `TeamMembershipBinding`
|
|
4
5
|
* pair that share underlying storage. The pair is the atomic unit
|
|
5
6
|
* (memberships reference teams; the two must agree on tenant
|
|
6
7
|
* membership at every op).
|
|
7
8
|
*/
|
|
8
|
-
export declare function makeInMemoryTeamBinding(): {
|
|
9
|
+
export declare function makeInMemoryTeamBinding(options?: InMemoryHierarchyOptions): {
|
|
9
10
|
readonly teams: TeamBinding;
|
|
10
11
|
readonly memberships: TeamMembershipBinding;
|
|
11
12
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"team-binding.d.ts","sourceRoot":"","sources":["../../src/in-memory/team-binding.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EACV,WAAW,EAKX,qBAAqB,EAGtB,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"team-binding.d.ts","sourceRoot":"","sources":["../../src/in-memory/team-binding.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EACV,WAAW,EAKX,qBAAqB,EAGtB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAcrE;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,GAAE,wBAA6B,GAAG;IAC/E,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,qBAAqB,CAAC;CAC7C,CAuLA"}
|
|
@@ -15,7 +15,7 @@ function membershipKey(teamId, userId) {
|
|
|
15
15
|
* (memberships reference teams; the two must agree on tenant
|
|
16
16
|
* membership at every op).
|
|
17
17
|
*/
|
|
18
|
-
export function makeInMemoryTeamBinding() {
|
|
18
|
+
export function makeInMemoryTeamBinding(options = {}) {
|
|
19
19
|
const teamRows = new Map();
|
|
20
20
|
const membershipRows = new Map();
|
|
21
21
|
function findTeamInTenant(tenantId, teamId) {
|
|
@@ -34,6 +34,9 @@ export function makeInMemoryTeamBinding() {
|
|
|
34
34
|
}
|
|
35
35
|
const teams = {
|
|
36
36
|
async create(tenantId, spec) {
|
|
37
|
+
if (spec.orgId !== undefined && (await options.orgExists?.(tenantId, spec.orgId)) === false) {
|
|
38
|
+
return { kind: 'org-not-found', orgId: spec.orgId };
|
|
39
|
+
}
|
|
37
40
|
if (slugTaken(tenantId, spec.slug))
|
|
38
41
|
return { kind: 'slug-conflict', slug: spec.slug };
|
|
39
42
|
const id = nextTeamId();
|
|
@@ -78,6 +81,11 @@ export function makeInMemoryTeamBinding() {
|
|
|
78
81
|
if (row === undefined) {
|
|
79
82
|
return { kind: 'team-not-found' };
|
|
80
83
|
}
|
|
84
|
+
if (patch.orgId !== undefined &&
|
|
85
|
+
patch.orgId !== null &&
|
|
86
|
+
(await options.orgExists?.(tenantId, patch.orgId)) === false) {
|
|
87
|
+
return { kind: 'org-not-found', orgId: patch.orgId };
|
|
88
|
+
}
|
|
81
89
|
if (patch.slug !== undefined && slugTaken(tenantId, patch.slug, teamId)) {
|
|
82
90
|
return { kind: 'slug-conflict', slug: patch.slug };
|
|
83
91
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"team-binding.js","sourceRoot":"","sources":["../../src/in-memory/team-binding.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,iCAAiC;
|
|
1
|
+
{"version":3,"file":"team-binding.js","sourceRoot":"","sources":["../../src/in-memory/team-binding.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -13,5 +13,6 @@ export type { TeamBinding, TeamCreateOutcome, TeamListFilter, TeamMembershipAddI
|
|
|
13
13
|
export type { ProjectBinding, ProjectCreateOutcome, ProjectListFilter, ProjectMembershipAddInput, ProjectMembershipAddOutcome, ProjectMembershipBinding, ProjectMembershipUpdateRoleOutcome, ProjectUpdateOutcome, } from './project-binding.js';
|
|
14
14
|
export type { TeamProjectGrant, TeamProjectGrantAddInput, TeamProjectGrantBinding, } from './team-project-grant-binding.js';
|
|
15
15
|
export { makeInMemoryOrgBinding, makeInMemoryTeamBinding, makeInMemoryProjectBinding, } from './in-memory/index.js';
|
|
16
|
+
export type { InMemoryHierarchyOptions } from './in-memory/index.js';
|
|
16
17
|
export type { AddProjectMemberError, AddProjectMemberParams, AddTeamMemberError, AddTeamMemberParams, CreateOrgError, CreateOrgParams, CreateProjectError, CreateProjectParams, CreateTeamError, CreateTeamParams, TenantHierarchyBinding, TenantSummary, } from './tenant-hierarchy-binding.js';
|
|
17
18
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA;;;;;;GAMG;AAEH,mBAAmB,YAAY,CAAC;AAChC,mBAAmB,YAAY,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,YAAY,EACV,UAAU,EACV,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EACV,WAAW,EACX,iBAAiB,EACjB,cAAc,EACd,sBAAsB,EACtB,wBAAwB,EACxB,qBAAqB,EACrB,+BAA+B,EAC/B,iBAAiB,GAClB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACV,cAAc,EACd,oBAAoB,EACpB,iBAAiB,EACjB,yBAAyB,EACzB,2BAA2B,EAC3B,wBAAwB,EACxB,kCAAkC,EAClC,oBAAoB,GACrB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EACV,gBAAgB,EAChB,wBAAwB,EACxB,uBAAuB,GACxB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,0BAA0B,GAC3B,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA;;;;;;GAMG;AAEH,mBAAmB,YAAY,CAAC;AAChC,mBAAmB,YAAY,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,YAAY,EACV,UAAU,EACV,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EACV,WAAW,EACX,iBAAiB,EACjB,cAAc,EACd,sBAAsB,EACtB,wBAAwB,EACxB,qBAAqB,EACrB,+BAA+B,EAC/B,iBAAiB,GAClB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACV,cAAc,EACd,oBAAoB,EACpB,iBAAiB,EACjB,yBAAyB,EACzB,2BAA2B,EAC3B,wBAAwB,EACxB,kCAAkC,EAClC,oBAAoB,GACrB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EACV,gBAAgB,EAChB,wBAAwB,EACxB,uBAAuB,GACxB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,0BAA0B,GAC3B,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAErE,YAAY,EACV,qBAAqB,EACrB,sBAAsB,EACtB,kBAAkB,EAClB,mBAAmB,EACnB,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,mBAAmB,EACnB,eAAe,EACf,gBAAgB,EAChB,sBAAsB,EACtB,aAAa,GACd,MAAM,+BAA+B,CAAC"}
|
|
@@ -133,6 +133,13 @@ export type ProjectCreateOutcome = {
|
|
|
133
133
|
} | {
|
|
134
134
|
/** `spec.isDefault` was `true` and the tenant already has a Default project. */
|
|
135
135
|
readonly kind: 'project-default-already-exists';
|
|
136
|
+
} | {
|
|
137
|
+
/**
|
|
138
|
+
* The org the project would be in isn't one of the tenant's: it never
|
|
139
|
+
* existed, or it was deleted. Nothing changed.
|
|
140
|
+
*/
|
|
141
|
+
readonly kind: 'org-not-found';
|
|
142
|
+
readonly orgId: OrgId;
|
|
136
143
|
};
|
|
137
144
|
/** What `ProjectBinding.update` did. */
|
|
138
145
|
export type ProjectUpdateOutcome = {
|
|
@@ -144,6 +151,13 @@ export type ProjectUpdateOutcome = {
|
|
|
144
151
|
/** Another project in the tenant already has the patched slug. */
|
|
145
152
|
readonly kind: 'slug-conflict';
|
|
146
153
|
readonly slug: string;
|
|
154
|
+
} | {
|
|
155
|
+
/**
|
|
156
|
+
* The org the project would be in isn't one of the tenant's: it never
|
|
157
|
+
* existed, or it was deleted. Nothing changed.
|
|
158
|
+
*/
|
|
159
|
+
readonly kind: 'org-not-found';
|
|
160
|
+
readonly orgId: OrgId;
|
|
147
161
|
};
|
|
148
162
|
/** What `ProjectMembershipBinding.add` did (`ok` when already a member, too). */
|
|
149
163
|
export type ProjectMembershipAddOutcome = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-binding.d.ts","sourceRoot":"","sources":["../src/project-binding.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"project-binding.d.ts","sourceRoot":"","sources":["../src/project-binding.ts"],"names":[],"mappings":"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"}
|
package/dist/team-binding.d.ts
CHANGED
|
@@ -120,6 +120,13 @@ export type TeamCreateOutcome = {
|
|
|
120
120
|
/** Another team in the tenant already has this slug. */
|
|
121
121
|
readonly kind: 'slug-conflict';
|
|
122
122
|
readonly slug: string;
|
|
123
|
+
} | {
|
|
124
|
+
/**
|
|
125
|
+
* The org the team would be in isn't one of the tenant's: it never
|
|
126
|
+
* existed, or it was deleted. Nothing changed.
|
|
127
|
+
*/
|
|
128
|
+
readonly kind: 'org-not-found';
|
|
129
|
+
readonly orgId: OrgId;
|
|
123
130
|
};
|
|
124
131
|
/** What `TeamBinding.update` did. */
|
|
125
132
|
export type TeamUpdateOutcome = {
|
|
@@ -131,6 +138,13 @@ export type TeamUpdateOutcome = {
|
|
|
131
138
|
/** Another team in the tenant already has the patched slug. */
|
|
132
139
|
readonly kind: 'slug-conflict';
|
|
133
140
|
readonly slug: string;
|
|
141
|
+
} | {
|
|
142
|
+
/**
|
|
143
|
+
* The org the team would be in isn't one of the tenant's: it never
|
|
144
|
+
* existed, or it was deleted. Nothing changed.
|
|
145
|
+
*/
|
|
146
|
+
readonly kind: 'org-not-found';
|
|
147
|
+
readonly orgId: OrgId;
|
|
134
148
|
};
|
|
135
149
|
/** What `TeamMembershipBinding.add` did (`ok` when already a member, too). */
|
|
136
150
|
export type TeamMembershipAddOutcome = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"team-binding.d.ts","sourceRoot":"","sources":["../src/team-binding.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"team-binding.d.ts","sourceRoot":"","sources":["../src/team-binding.ts"],"names":[],"mappings":"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"}
|
|
@@ -23,6 +23,12 @@ export type CreateTeamError = {
|
|
|
23
23
|
readonly code: 'slug-conflict';
|
|
24
24
|
readonly message: string;
|
|
25
25
|
readonly cause?: unknown;
|
|
26
|
+
}
|
|
27
|
+
/** `spec.orgId` isn't the tenant's: it never existed, or it was deleted. */
|
|
28
|
+
| {
|
|
29
|
+
readonly code: 'org-not-found';
|
|
30
|
+
readonly message: string;
|
|
31
|
+
readonly orgId: OrgId;
|
|
26
32
|
} | {
|
|
27
33
|
readonly code: 'insert-failed';
|
|
28
34
|
readonly message: string;
|
|
@@ -43,6 +49,12 @@ export type CreateProjectError = {
|
|
|
43
49
|
readonly code: 'slug-conflict';
|
|
44
50
|
readonly message: string;
|
|
45
51
|
readonly cause?: unknown;
|
|
52
|
+
}
|
|
53
|
+
/** `spec.orgId` isn't the tenant's: it never existed, or it was deleted. */
|
|
54
|
+
| {
|
|
55
|
+
readonly code: 'org-not-found';
|
|
56
|
+
readonly message: string;
|
|
57
|
+
readonly orgId: OrgId;
|
|
46
58
|
} | {
|
|
47
59
|
readonly code: 'default-conflict';
|
|
48
60
|
readonly message: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tenant-hierarchy-binding.d.ts","sourceRoot":"","sources":["../src/tenant-hierarchy-binding.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACxF,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAExF,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,MAAM,cAAc,GACtB;IAAE,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GACtF;IAAE,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAE3F,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;CACzB;AAED,MAAM,MAAM,eAAe,GACvB;IAAE,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"tenant-hierarchy-binding.d.ts","sourceRoot":"","sources":["../src/tenant-hierarchy-binding.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACxF,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAExF,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,MAAM,cAAc,GACtB;IAAE,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GACtF;IAAE,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAE3F,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;CACzB;AAED,MAAM,MAAM,eAAe,GACvB;IAAE,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE;AACxF,4EAA4E;GAC1E;IAAE,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAA;CAAE,GACnF;IAAE,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAE3F,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;CACzB;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;CAC5B;AAED,MAAM,MAAM,kBAAkB,GAC1B;IAAE,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE;AACxF,4EAA4E;GAC1E;IAAE,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAA;CAAE,GACnF;IAAE,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GACzF;IAAE,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAE3F,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;CAC5B;AAED,MAAM,MAAM,kBAAkB,GAC1B;IACE,0CAA0C;IAC1C,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B,GACD;IAAE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAExF,MAAM,MAAM,qBAAqB,GAC7B;IACE,6CAA6C;IAC7C,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC;IACnC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B,GACD;IAAE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAExF;;;;;GAKG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;;GAMG;AACH,MAAM,WAAW,sBAAsB;IACrC,SAAS,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC;QAAE,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAA;KAAE,EAAE,cAAc,CAAC,CAAC,CAAC;IAC/F,UAAU,CACR,MAAM,EAAE,gBAAgB,GACvB,OAAO,CAAC,MAAM,CAAC;QAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,eAAe,CAAC,CAAC,CAAC;IACjE,aAAa,CACX,MAAM,EAAE,mBAAmB,GAC1B,OAAO,CAAC,MAAM,CAAC;QAAE,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAA;KAAE,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAC1E,aAAa,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC,CAAC;IACtF,gBAAgB,CAAC,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,qBAAqB,CAAC,CAAC,CAAC;IAC/F;;;;OAIG;IACH,SAAS,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC;CAC9D"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kindgi/platform",
|
|
3
|
-
"version": "0.1.4-rc.
|
|
3
|
+
"version": "0.1.4-rc.1",
|
|
4
4
|
"description": "Multi-tenant hierarchy primitives — the Tenant → Org → Team → Project + User type surface, the `Scope` discriminated access-boundary, binding interfaces for orgs, teams, projects, memberships, team-project grants and the tenant hierarchy, and reference in-memory adapters.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"repository": {
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
"README.md"
|
|
31
31
|
],
|
|
32
32
|
"dependencies": {
|
|
33
|
-
"@kindgi/types": "0.1.4-rc.
|
|
33
|
+
"@kindgi/types": "0.1.4-rc.1"
|
|
34
34
|
},
|
|
35
35
|
"devDependencies": {
|
|
36
36
|
"@types/node": "^22.10.5",
|
package/src/in-memory/index.ts
CHANGED
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
* the tenant's projects without one (`slug-conflict`).
|
|
19
19
|
*/
|
|
20
20
|
|
|
21
|
-
import type { Filter, Page, ProjectId, TeamId, TenantId, UserId } from '@kindgi/types';
|
|
21
|
+
import type { Filter, OrgId, Page, ProjectId, TeamId, TenantId, UserId } from '@kindgi/types';
|
|
22
22
|
|
|
23
23
|
import type {
|
|
24
24
|
ProjectBinding,
|
|
@@ -59,12 +59,21 @@ function grantKey(teamId: TeamId, projectId: ProjectId): string {
|
|
|
59
59
|
return `${teamId}::${projectId}`;
|
|
60
60
|
}
|
|
61
61
|
|
|
62
|
+
/**
|
|
63
|
+
* `orgExists`: whether an org is the tenant's (live). Given, a project or
|
|
64
|
+
* team created in or moved to another org is `org-not-found`, as the
|
|
65
|
+
* durable bindings answer; absent, any `orgId` is taken as it is.
|
|
66
|
+
*/
|
|
67
|
+
export interface InMemoryHierarchyOptions {
|
|
68
|
+
readonly orgExists?: (tenantId: TenantId, orgId: OrgId) => boolean | Promise<boolean>;
|
|
69
|
+
}
|
|
70
|
+
|
|
62
71
|
/**
|
|
63
72
|
* Combined factory — returns the three project-related bindings that
|
|
64
73
|
* share underlying storage. Any of them can be plucked out and passed
|
|
65
74
|
* individually to consumers that need just one.
|
|
66
75
|
*/
|
|
67
|
-
export function makeInMemoryProjectBinding(): {
|
|
76
|
+
export function makeInMemoryProjectBinding(options: InMemoryHierarchyOptions = {}): {
|
|
68
77
|
readonly projects: ProjectBinding;
|
|
69
78
|
readonly memberships: ProjectMembershipBinding;
|
|
70
79
|
readonly grants: TeamProjectGrantBinding;
|
|
@@ -120,6 +129,9 @@ export function makeInMemoryProjectBinding(): {
|
|
|
120
129
|
if (isDefault && tenantAlreadyHasDefault(tenantId)) {
|
|
121
130
|
return { kind: 'project-default-already-exists' };
|
|
122
131
|
}
|
|
132
|
+
if (spec.orgId !== undefined && (await options.orgExists?.(tenantId, spec.orgId)) === false) {
|
|
133
|
+
return { kind: 'org-not-found', orgId: spec.orgId };
|
|
134
|
+
}
|
|
123
135
|
if (slugTaken(tenantId, spec.orgId, spec.slug)) {
|
|
124
136
|
return { kind: 'slug-conflict', slug: spec.slug };
|
|
125
137
|
}
|
|
@@ -177,6 +189,13 @@ export function makeInMemoryProjectBinding(): {
|
|
|
177
189
|
if (patch.orgId !== undefined) {
|
|
178
190
|
nextOrgId = patch.orgId === null ? undefined : patch.orgId;
|
|
179
191
|
}
|
|
192
|
+
if (
|
|
193
|
+
patch.orgId !== undefined &&
|
|
194
|
+
patch.orgId !== null &&
|
|
195
|
+
(await options.orgExists?.(tenantId, patch.orgId)) === false
|
|
196
|
+
) {
|
|
197
|
+
return { kind: 'org-not-found', orgId: patch.orgId };
|
|
198
|
+
}
|
|
180
199
|
// The slug it ends up with, where it ends up: a move to another org
|
|
181
200
|
// (or out of one) can meet a project with the same slug there.
|
|
182
201
|
const nextSlug = patch.slug ?? row.slug;
|
|
@@ -32,6 +32,7 @@ import type {
|
|
|
32
32
|
TeamUpdateOutcome,
|
|
33
33
|
} from '../team-binding.js';
|
|
34
34
|
import type { Team, TeamMembership, TeamPatch, TeamRole, TeamSpec } from '../types.js';
|
|
35
|
+
import type { InMemoryHierarchyOptions } from './project-binding.js';
|
|
35
36
|
|
|
36
37
|
import { nowTimestamp, paginate } from './util.js';
|
|
37
38
|
|
|
@@ -51,7 +52,7 @@ function membershipKey(teamId: TeamId, userId: UserId): string {
|
|
|
51
52
|
* (memberships reference teams; the two must agree on tenant
|
|
52
53
|
* membership at every op).
|
|
53
54
|
*/
|
|
54
|
-
export function makeInMemoryTeamBinding(): {
|
|
55
|
+
export function makeInMemoryTeamBinding(options: InMemoryHierarchyOptions = {}): {
|
|
55
56
|
readonly teams: TeamBinding;
|
|
56
57
|
readonly memberships: TeamMembershipBinding;
|
|
57
58
|
} {
|
|
@@ -74,6 +75,9 @@ export function makeInMemoryTeamBinding(): {
|
|
|
74
75
|
|
|
75
76
|
const teams: TeamBinding = {
|
|
76
77
|
async create(tenantId, spec: TeamSpec): Promise<TeamCreateOutcome> {
|
|
78
|
+
if (spec.orgId !== undefined && (await options.orgExists?.(tenantId, spec.orgId)) === false) {
|
|
79
|
+
return { kind: 'org-not-found', orgId: spec.orgId };
|
|
80
|
+
}
|
|
77
81
|
if (slugTaken(tenantId, spec.slug)) return { kind: 'slug-conflict', slug: spec.slug };
|
|
78
82
|
const id = nextTeamId();
|
|
79
83
|
const now = nowTimestamp();
|
|
@@ -117,6 +121,13 @@ export function makeInMemoryTeamBinding(): {
|
|
|
117
121
|
if (row === undefined) {
|
|
118
122
|
return { kind: 'team-not-found' };
|
|
119
123
|
}
|
|
124
|
+
if (
|
|
125
|
+
patch.orgId !== undefined &&
|
|
126
|
+
patch.orgId !== null &&
|
|
127
|
+
(await options.orgExists?.(tenantId, patch.orgId)) === false
|
|
128
|
+
) {
|
|
129
|
+
return { kind: 'org-not-found', orgId: patch.orgId };
|
|
130
|
+
}
|
|
120
131
|
if (patch.slug !== undefined && slugTaken(tenantId, patch.slug, teamId)) {
|
|
121
132
|
return { kind: 'slug-conflict', slug: patch.slug };
|
|
122
133
|
}
|
package/src/index.ts
CHANGED
package/src/project-binding.ts
CHANGED
|
@@ -158,6 +158,14 @@ export type ProjectCreateOutcome =
|
|
|
158
158
|
| {
|
|
159
159
|
/** `spec.isDefault` was `true` and the tenant already has a Default project. */
|
|
160
160
|
readonly kind: 'project-default-already-exists';
|
|
161
|
+
}
|
|
162
|
+
| {
|
|
163
|
+
/**
|
|
164
|
+
* The org the project would be in isn't one of the tenant's: it never
|
|
165
|
+
* existed, or it was deleted. Nothing changed.
|
|
166
|
+
*/
|
|
167
|
+
readonly kind: 'org-not-found';
|
|
168
|
+
readonly orgId: OrgId;
|
|
161
169
|
};
|
|
162
170
|
|
|
163
171
|
/** What `ProjectBinding.update` did. */
|
|
@@ -171,6 +179,14 @@ export type ProjectUpdateOutcome =
|
|
|
171
179
|
/** Another project in the tenant already has the patched slug. */
|
|
172
180
|
readonly kind: 'slug-conflict';
|
|
173
181
|
readonly slug: string;
|
|
182
|
+
}
|
|
183
|
+
| {
|
|
184
|
+
/**
|
|
185
|
+
* The org the project would be in isn't one of the tenant's: it never
|
|
186
|
+
* existed, or it was deleted. Nothing changed.
|
|
187
|
+
*/
|
|
188
|
+
readonly kind: 'org-not-found';
|
|
189
|
+
readonly orgId: OrgId;
|
|
174
190
|
};
|
|
175
191
|
|
|
176
192
|
/** What `ProjectMembershipBinding.add` did (`ok` when already a member, too). */
|
package/src/team-binding.ts
CHANGED
|
@@ -134,6 +134,14 @@ export type TeamCreateOutcome =
|
|
|
134
134
|
/** Another team in the tenant already has this slug. */
|
|
135
135
|
readonly kind: 'slug-conflict';
|
|
136
136
|
readonly slug: string;
|
|
137
|
+
}
|
|
138
|
+
| {
|
|
139
|
+
/**
|
|
140
|
+
* The org the team would be in isn't one of the tenant's: it never
|
|
141
|
+
* existed, or it was deleted. Nothing changed.
|
|
142
|
+
*/
|
|
143
|
+
readonly kind: 'org-not-found';
|
|
144
|
+
readonly orgId: OrgId;
|
|
137
145
|
};
|
|
138
146
|
|
|
139
147
|
/** What `TeamBinding.update` did. */
|
|
@@ -147,6 +155,14 @@ export type TeamUpdateOutcome =
|
|
|
147
155
|
/** Another team in the tenant already has the patched slug. */
|
|
148
156
|
readonly kind: 'slug-conflict';
|
|
149
157
|
readonly slug: string;
|
|
158
|
+
}
|
|
159
|
+
| {
|
|
160
|
+
/**
|
|
161
|
+
* The org the team would be in isn't one of the tenant's: it never
|
|
162
|
+
* existed, or it was deleted. Nothing changed.
|
|
163
|
+
*/
|
|
164
|
+
readonly kind: 'org-not-found';
|
|
165
|
+
readonly orgId: OrgId;
|
|
150
166
|
};
|
|
151
167
|
|
|
152
168
|
/** What `TeamMembershipBinding.add` did (`ok` when already a member, too). */
|
|
@@ -35,6 +35,8 @@ export interface CreateTeamParams {
|
|
|
35
35
|
|
|
36
36
|
export type CreateTeamError =
|
|
37
37
|
| { readonly code: 'slug-conflict'; readonly message: string; readonly cause?: unknown }
|
|
38
|
+
/** `spec.orgId` isn't the tenant's: it never existed, or it was deleted. */
|
|
39
|
+
| { readonly code: 'org-not-found'; readonly message: string; readonly orgId: OrgId }
|
|
38
40
|
| { readonly code: 'insert-failed'; readonly message: string; readonly cause?: unknown };
|
|
39
41
|
|
|
40
42
|
export interface AddTeamMemberParams {
|
|
@@ -52,6 +54,8 @@ export interface CreateProjectParams {
|
|
|
52
54
|
|
|
53
55
|
export type CreateProjectError =
|
|
54
56
|
| { readonly code: 'slug-conflict'; readonly message: string; readonly cause?: unknown }
|
|
57
|
+
/** `spec.orgId` isn't the tenant's: it never existed, or it was deleted. */
|
|
58
|
+
| { readonly code: 'org-not-found'; readonly message: string; readonly orgId: OrgId }
|
|
55
59
|
| { readonly code: 'default-conflict'; readonly message: string; readonly cause?: unknown }
|
|
56
60
|
| { readonly code: 'insert-failed'; readonly message: string; readonly cause?: unknown };
|
|
57
61
|
|
|
@@ -7,6 +7,18 @@
|
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
9
|
import { makeInMemoryProjectBinding } from '../src/in-memory/project-binding.js';
|
|
10
|
-
import {
|
|
10
|
+
import {
|
|
11
|
+
CONFORMANCE_MISSING_ORG,
|
|
12
|
+
runProjectBindingConformance,
|
|
13
|
+
} from './project-binding.conformance.js';
|
|
11
14
|
|
|
12
15
|
runProjectBindingConformance(makeInMemoryProjectBinding, 'InMemoryProjectBinding');
|
|
16
|
+
// With an org check: every org but the missing one is the tenant's.
|
|
17
|
+
runProjectBindingConformance(
|
|
18
|
+
() =>
|
|
19
|
+
makeInMemoryProjectBinding({
|
|
20
|
+
orgExists: (_tenantId, orgId) => orgId !== CONFORMANCE_MISSING_ORG,
|
|
21
|
+
}),
|
|
22
|
+
'InMemoryProjectBinding (checking orgs)',
|
|
23
|
+
{ checksOrgs: true },
|
|
24
|
+
);
|
|
@@ -7,6 +7,13 @@
|
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
9
|
import { makeInMemoryTeamBinding } from '../src/in-memory/team-binding.js';
|
|
10
|
-
import { runTeamBindingConformance } from './team-binding.conformance.js';
|
|
10
|
+
import { CONFORMANCE_MISSING_ORG, runTeamBindingConformance } from './team-binding.conformance.js';
|
|
11
11
|
|
|
12
12
|
runTeamBindingConformance(makeInMemoryTeamBinding, 'InMemoryTeamBinding');
|
|
13
|
+
// With an org check: every org but the missing one is the tenant's.
|
|
14
|
+
runTeamBindingConformance(
|
|
15
|
+
() =>
|
|
16
|
+
makeInMemoryTeamBinding({ orgExists: (_tenantId, orgId) => orgId !== CONFORMANCE_MISSING_ORG }),
|
|
17
|
+
'InMemoryTeamBinding (checking orgs)',
|
|
18
|
+
{ checksOrgs: true },
|
|
19
|
+
);
|
|
@@ -39,6 +39,11 @@ const TEAM_A = 'team-A' as TeamId;
|
|
|
39
39
|
const TEAM_B = 'team-B' as TeamId;
|
|
40
40
|
const ORG_A = 'org-A' as OrgId;
|
|
41
41
|
const ORG_B = 'org-B' as OrgId;
|
|
42
|
+
/**
|
|
43
|
+
* An org the binding doesn't know (T220), for the `checksOrgs` cases: a
|
|
44
|
+
* binding that checks orgs is made so this one isn't the tenant's.
|
|
45
|
+
*/
|
|
46
|
+
export const CONFORMANCE_MISSING_ORG = 'org-missing' as OrgId;
|
|
42
47
|
|
|
43
48
|
/** Create a project the test expects to succeed; its id. */
|
|
44
49
|
async function createProject(
|
|
@@ -60,6 +65,14 @@ export function runProjectBindingConformance(
|
|
|
60
65
|
readonly grants: TeamProjectGrantBinding;
|
|
61
66
|
},
|
|
62
67
|
label = 'ProjectBinding',
|
|
68
|
+
options: {
|
|
69
|
+
/**
|
|
70
|
+
* The binding checks that an org exists (`CONFORMANCE_MISSING_ORG`
|
|
71
|
+
* doesn't): a project created in or moved to a missing org is
|
|
72
|
+
* `org-not-found`.
|
|
73
|
+
*/
|
|
74
|
+
readonly checksOrgs?: boolean;
|
|
75
|
+
} = {},
|
|
63
76
|
): void {
|
|
64
77
|
describe(`${label} — project CRUD`, () => {
|
|
65
78
|
it('creates + gets a project', async () => {
|
|
@@ -377,4 +390,26 @@ export function runProjectBindingConformance(
|
|
|
377
390
|
expect(await projects.update(T1, id, { slug: 'c', orgId: ORG_A })).toEqual({ kind: 'ok' });
|
|
378
391
|
});
|
|
379
392
|
});
|
|
393
|
+
|
|
394
|
+
if (options.checksOrgs === true) {
|
|
395
|
+
describe(`${label} — an org that isn't the tenant's (T220)`, () => {
|
|
396
|
+
it('creating a project in it: org-not-found, and nothing is created', async () => {
|
|
397
|
+
const { projects } = makeBinding();
|
|
398
|
+
expect(
|
|
399
|
+
await projects.create(T1, { name: 'P', slug: 'p', orgId: CONFORMANCE_MISSING_ORG }),
|
|
400
|
+
).toEqual({ kind: 'org-not-found', orgId: CONFORMANCE_MISSING_ORG });
|
|
401
|
+
expect((await projects.list(T1, { orgId: CONFORMANCE_MISSING_ORG })).items).toEqual([]);
|
|
402
|
+
});
|
|
403
|
+
|
|
404
|
+
it('moving a project to it: org-not-found, and the project stays where it was', async () => {
|
|
405
|
+
const { projects } = makeBinding();
|
|
406
|
+
const id = await createProject(projects, T1, { name: 'P', slug: 'p', orgId: ORG_A });
|
|
407
|
+
expect(await projects.update(T1, id, { orgId: CONFORMANCE_MISSING_ORG })).toEqual({
|
|
408
|
+
kind: 'org-not-found',
|
|
409
|
+
orgId: CONFORMANCE_MISSING_ORG,
|
|
410
|
+
});
|
|
411
|
+
expect((await projects.get(T1, id))?.orgId).toBe(ORG_A);
|
|
412
|
+
});
|
|
413
|
+
});
|
|
414
|
+
}
|
|
380
415
|
}
|
|
@@ -29,6 +29,8 @@ const T2 = 'tenant-2' as TenantId;
|
|
|
29
29
|
const U1 = 'user-1' as UserId;
|
|
30
30
|
const U2 = 'user-2' as UserId;
|
|
31
31
|
const ORG_A = 'org-a' as OrgId;
|
|
32
|
+
/** An org the binding doesn't know (T220), for the `checksOrgs` cases. */
|
|
33
|
+
export const CONFORMANCE_MISSING_ORG = 'org-missing' as OrgId;
|
|
32
34
|
|
|
33
35
|
/** Create a team the test expects to succeed; its id. */
|
|
34
36
|
async function createTeam(teams: TeamBinding, tenantId: TenantId, spec: TeamSpec): Promise<TeamId> {
|
|
@@ -44,6 +46,10 @@ export function runTeamBindingConformance(
|
|
|
44
46
|
readonly memberships: TeamMembershipBinding;
|
|
45
47
|
},
|
|
46
48
|
label = 'TeamBinding',
|
|
49
|
+
options: {
|
|
50
|
+
/** The binding checks that an org exists (`CONFORMANCE_MISSING_ORG` doesn't). */
|
|
51
|
+
readonly checksOrgs?: boolean;
|
|
52
|
+
} = {},
|
|
47
53
|
): void {
|
|
48
54
|
describe(`${label} — team CRUD`, () => {
|
|
49
55
|
it('creates + gets a team with orgId', async () => {
|
|
@@ -236,4 +242,26 @@ export function runTeamBindingConformance(
|
|
|
236
242
|
expect((await teams.get(T1, id))?.slug).toBe('b');
|
|
237
243
|
});
|
|
238
244
|
});
|
|
245
|
+
|
|
246
|
+
if (options.checksOrgs === true) {
|
|
247
|
+
describe(`${label} — an org that isn't the tenant's (T220)`, () => {
|
|
248
|
+
it('creating a team in it: org-not-found, and nothing is created', async () => {
|
|
249
|
+
const { teams } = makeBinding();
|
|
250
|
+
expect(
|
|
251
|
+
await teams.create(T1, { name: 'T', slug: 't', orgId: CONFORMANCE_MISSING_ORG }),
|
|
252
|
+
).toEqual({ kind: 'org-not-found', orgId: CONFORMANCE_MISSING_ORG });
|
|
253
|
+
expect((await teams.list(T1, { orgId: CONFORMANCE_MISSING_ORG })).items).toEqual([]);
|
|
254
|
+
});
|
|
255
|
+
|
|
256
|
+
it('moving a team to it: org-not-found, and the team stays where it was', async () => {
|
|
257
|
+
const { teams } = makeBinding();
|
|
258
|
+
const id = await createTeam(teams, T1, { name: 'T', slug: 't', orgId: ORG_A });
|
|
259
|
+
expect(await teams.update(T1, id, { orgId: CONFORMANCE_MISSING_ORG })).toEqual({
|
|
260
|
+
kind: 'org-not-found',
|
|
261
|
+
orgId: CONFORMANCE_MISSING_ORG,
|
|
262
|
+
});
|
|
263
|
+
expect((await teams.get(T1, id))?.orgId).toBe(ORG_A);
|
|
264
|
+
});
|
|
265
|
+
});
|
|
266
|
+
}
|
|
239
267
|
}
|