@nacre.work/api 0.30.0 → 0.31.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/adapters.d.ts.map +1 -1
- package/dist/adapters.js +55 -7
- package/dist/adapters.js.map +1 -1
- package/dist/auth.d.ts +9 -4
- package/dist/auth.d.ts.map +1 -1
- package/dist/auth.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/oauth-store.d.ts +6 -5
- package/dist/oauth-store.d.ts.map +1 -1
- package/dist/oauth-store.js.map +1 -1
- package/dist/server.d.ts +13 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +22 -9
- package/dist/server.js.map +1 -1
- package/dist/skill-ceiling.d.ts +91 -0
- package/dist/skill-ceiling.d.ts.map +1 -0
- package/dist/skill-ceiling.js +87 -0
- package/dist/skill-ceiling.js.map +1 -0
- package/dist/skills.d.ts +32 -6
- package/dist/skills.d.ts.map +1 -1
- package/dist/skills.js +65 -15
- package/dist/skills.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `skill` in a delegation's ceiling — and the only file that reads it.
|
|
3
|
+
*
|
|
4
|
+
* The consent screen offers, per layer, "edit this layer's skill", and only on a
|
|
5
|
+
* layer where the person holds `admin`. It is stored as `skill` in that layer's
|
|
6
|
+
* ceiling and is read by `may_write_layer_skill` in docs/skills.md and by
|
|
7
|
+
* nothing else:
|
|
8
|
+
*
|
|
9
|
+
* ```
|
|
10
|
+
* may_write_layer_skill(auth, L) =
|
|
11
|
+
* resolve(person, admin) reaches L
|
|
12
|
+
* ∧ (auth is not a delegation ∨ 'admin' ∈ ceiling(L) ∨ 'skill' ∈ ceiling(L))
|
|
13
|
+
* ```
|
|
14
|
+
*
|
|
15
|
+
* The first clause is the skills adapter's, because it needs the database; the
|
|
16
|
+
* second is `skillCeilingAdmits` below. Three properties hold them, each a case
|
|
17
|
+
* in docs/authz.md:
|
|
18
|
+
*
|
|
19
|
+
* - **`skill` confers nothing the person lacks** (T30). The first clause
|
|
20
|
+
* resolves the *person*, so a delegation whose ceiling holds `skill` on a
|
|
21
|
+
* layer its person only writes is refused, however the consent was stored.
|
|
22
|
+
* - **`skill` confers nothing else** (T29). It is not a `Permission` and
|
|
23
|
+
* `resolve` never sees it: `permissionsOf` strips it from every resolve input
|
|
24
|
+
* `contextFor` builds, so no search, ingest, grant, rename or delete path can
|
|
25
|
+
* be reached through it. A connection whose ceiling is `{skill}` alone
|
|
26
|
+
* resolves to nothing for every verb, which is right — it may edit a skill
|
|
27
|
+
* and do nothing else.
|
|
28
|
+
* - **One reader.** `scripts/check-skill-ceiling.mjs` refuses a comparison
|
|
29
|
+
* against `'skill'` anywhere else in the server's sources, the way
|
|
30
|
+
* `check-admin-gate.mjs` refuses the raw role comparison. A value that grants
|
|
31
|
+
* something is only as safe as the number of places that interpret it.
|
|
32
|
+
*
|
|
33
|
+
* Why a value of its own and not `admin` in the layer's ceiling, which already
|
|
34
|
+
* lets a delegation write the skill: a token from the consent flow reaches REST
|
|
35
|
+
* as well as MCP — `NACRE_JWT_AUDIENCE` is one value — so `admin` would let an
|
|
36
|
+
* MCP client rename the layer, delete it and issue grants on it. Editing what
|
|
37
|
+
* agents are told about a layer is a narrower thing to approve.
|
|
38
|
+
*/
|
|
39
|
+
import type { Permission } from '@nacre.work/core';
|
|
40
|
+
import { type AuthContext } from './auth.js';
|
|
41
|
+
/**
|
|
42
|
+
* A value a delegation's ceiling may hold.
|
|
43
|
+
*
|
|
44
|
+
* Every permission, and `skill`. Stored in `oauth_consents.permissions` and
|
|
45
|
+
* `oauth_consent_layers.permissions`, whose CHECKs admit exactly these
|
|
46
|
+
* (migration 0037).
|
|
47
|
+
*/
|
|
48
|
+
export type CeilingValue = Permission | 'skill';
|
|
49
|
+
/** Every value a ceiling may hold, in the order the contract lists them. */
|
|
50
|
+
export declare const CEILING_VALUES: readonly CeilingValue[];
|
|
51
|
+
/** Whether a string from a request is a ceiling value. */
|
|
52
|
+
export declare const isCeilingValue: (value: string) => value is CeilingValue;
|
|
53
|
+
/**
|
|
54
|
+
* A ceiling as `resolve` takes it: the permissions in it, and not `skill`.
|
|
55
|
+
*
|
|
56
|
+
* This is what keeps `skill` from conferring anything else. `resolve` refuses
|
|
57
|
+
* a permission outside the ceiling before rule 3, so a ceiling of `{skill}`
|
|
58
|
+
* becomes `[]` here — every verb refused, which is what a connection that may
|
|
59
|
+
* only edit a skill should get from every path that is not the skill's.
|
|
60
|
+
*/
|
|
61
|
+
export declare function permissionsOf(values: readonly CeilingValue[]): Permission[];
|
|
62
|
+
/**
|
|
63
|
+
* The second clause of `may_write_layer_skill`: whether the token's ceiling on
|
|
64
|
+
* this layer admits writing its skill.
|
|
65
|
+
*
|
|
66
|
+
* `true` for everything that is not a delegation. Never sufficient on its own —
|
|
67
|
+
* the skills adapter asks it beside `admin` resolved for the person.
|
|
68
|
+
*/
|
|
69
|
+
export declare function skillCeilingAdmits(auth: AuthContext, layerId: string): boolean;
|
|
70
|
+
/**
|
|
71
|
+
* The layers on which the ceiling admits writing a skill, or `undefined` for
|
|
72
|
+
* "every layer" — not a delegation, or one with no narrowing whose connection
|
|
73
|
+
* ceiling admits it.
|
|
74
|
+
*
|
|
75
|
+
* For listings, which cannot ask `skillCeilingAdmits` of a layer they have not
|
|
76
|
+
* found yet. An empty array is a real answer: the delegation may write no
|
|
77
|
+
* layer's skill.
|
|
78
|
+
*/
|
|
79
|
+
export declare function skillCeilingLayers(auth: AuthContext): readonly string[] | undefined;
|
|
80
|
+
/**
|
|
81
|
+
* Whether a delegation's ceiling admits something that needs `need` — a
|
|
82
|
+
* permission, or `skill` for the one write it stands in for.
|
|
83
|
+
*
|
|
84
|
+
* The MCP catalog's question: a tool the ceiling refuses is left out of
|
|
85
|
+
* `tools/list`. For a permission this is the connection's ceiling, the same
|
|
86
|
+
* predicate the request path asks; for `skill` it is whether any layer's
|
|
87
|
+
* ceiling admits writing a skill, so `update_skill` is offered to a connection
|
|
88
|
+
* that may write one somewhere and to nobody else.
|
|
89
|
+
*/
|
|
90
|
+
export declare function ceilingOffers(auth: AuthContext, need: CeilingValue): boolean;
|
|
91
|
+
//# sourceMappingURL=skill-ceiling.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skill-ceiling.d.ts","sourceRoot":"","sources":["../src/skill-ceiling.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAElD,OAAO,EAAqB,KAAK,WAAW,EAAE,MAAM,WAAW,CAAA;AAE/D;;;;;;GAMG;AACH,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,OAAO,CAAA;AAE/C,4EAA4E;AAC5E,eAAO,MAAM,cAAc,EAAE,SAAS,YAAY,EAAwC,CAAA;AAE1F,0DAA0D;AAC1D,eAAO,MAAM,cAAc,GAAI,OAAO,MAAM,KAAG,KAAK,IAAI,YACD,CAAA;AAEvD;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,YAAY,EAAE,GAAG,UAAU,EAAE,CAE3E;AAsBD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAE9E;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,WAAW,GAAG,SAAS,MAAM,EAAE,GAAG,SAAS,CASnF;AAED;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,YAAY,GAAG,OAAO,CAM5E"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { delegationPermits } from './auth.js';
|
|
2
|
+
/** Every value a ceiling may hold, in the order the contract lists them. */
|
|
3
|
+
export const CEILING_VALUES = ['read', 'write', 'admin', 'skill'];
|
|
4
|
+
/** Whether a string from a request is a ceiling value. */
|
|
5
|
+
export const isCeilingValue = (value) => CEILING_VALUES.includes(value);
|
|
6
|
+
/**
|
|
7
|
+
* A ceiling as `resolve` takes it: the permissions in it, and not `skill`.
|
|
8
|
+
*
|
|
9
|
+
* This is what keeps `skill` from conferring anything else. `resolve` refuses
|
|
10
|
+
* a permission outside the ceiling before rule 3, so a ceiling of `{skill}`
|
|
11
|
+
* becomes `[]` here — every verb refused, which is what a connection that may
|
|
12
|
+
* only edit a skill should get from every path that is not the skill's.
|
|
13
|
+
*/
|
|
14
|
+
export function permissionsOf(values) {
|
|
15
|
+
return values.filter((v) => v !== 'skill');
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Whether `value` is in the ceiling on one layer.
|
|
19
|
+
*
|
|
20
|
+
* The connection's ceiling and the layer's own, both: consent refuses a layer
|
|
21
|
+
* set the connection excludes, so the second is already a subset of the first —
|
|
22
|
+
* and asking both anyway is what keeps a row written some other way from being
|
|
23
|
+
* the one place the rule does not hold. A layer outside a narrowing has no
|
|
24
|
+
* ceiling at all; the delegation does not reach it.
|
|
25
|
+
*/
|
|
26
|
+
function inCeiling(auth, layerId, value) {
|
|
27
|
+
const delegation = auth.delegation;
|
|
28
|
+
if (delegation === undefined)
|
|
29
|
+
return true;
|
|
30
|
+
const connection = delegation.permissions;
|
|
31
|
+
if (connection !== undefined && !connection.includes(value))
|
|
32
|
+
return false;
|
|
33
|
+
if (delegation.layers === undefined)
|
|
34
|
+
return true;
|
|
35
|
+
const entry = delegation.layers.find((l) => l.id === layerId);
|
|
36
|
+
if (entry === undefined)
|
|
37
|
+
return false;
|
|
38
|
+
return entry.permissions === undefined || entry.permissions.includes(value);
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* The second clause of `may_write_layer_skill`: whether the token's ceiling on
|
|
42
|
+
* this layer admits writing its skill.
|
|
43
|
+
*
|
|
44
|
+
* `true` for everything that is not a delegation. Never sufficient on its own —
|
|
45
|
+
* the skills adapter asks it beside `admin` resolved for the person.
|
|
46
|
+
*/
|
|
47
|
+
export function skillCeilingAdmits(auth, layerId) {
|
|
48
|
+
return inCeiling(auth, layerId, 'admin') || inCeiling(auth, layerId, 'skill');
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* The layers on which the ceiling admits writing a skill, or `undefined` for
|
|
52
|
+
* "every layer" — not a delegation, or one with no narrowing whose connection
|
|
53
|
+
* ceiling admits it.
|
|
54
|
+
*
|
|
55
|
+
* For listings, which cannot ask `skillCeilingAdmits` of a layer they have not
|
|
56
|
+
* found yet. An empty array is a real answer: the delegation may write no
|
|
57
|
+
* layer's skill.
|
|
58
|
+
*/
|
|
59
|
+
export function skillCeilingLayers(auth) {
|
|
60
|
+
const delegation = auth.delegation;
|
|
61
|
+
if (delegation === undefined)
|
|
62
|
+
return undefined;
|
|
63
|
+
if (delegation.layers === undefined) {
|
|
64
|
+
const connection = delegation.permissions;
|
|
65
|
+
const admits = connection === undefined || connection.includes('admin') || connection.includes('skill');
|
|
66
|
+
return admits ? undefined : [];
|
|
67
|
+
}
|
|
68
|
+
return delegation.layers.filter((l) => skillCeilingAdmits(auth, l.id)).map((l) => l.id);
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Whether a delegation's ceiling admits something that needs `need` — a
|
|
72
|
+
* permission, or `skill` for the one write it stands in for.
|
|
73
|
+
*
|
|
74
|
+
* The MCP catalog's question: a tool the ceiling refuses is left out of
|
|
75
|
+
* `tools/list`. For a permission this is the connection's ceiling, the same
|
|
76
|
+
* predicate the request path asks; for `skill` it is whether any layer's
|
|
77
|
+
* ceiling admits writing a skill, so `update_skill` is offered to a connection
|
|
78
|
+
* that may write one somewhere and to nobody else.
|
|
79
|
+
*/
|
|
80
|
+
export function ceilingOffers(auth, need) {
|
|
81
|
+
if (need === 'skill') {
|
|
82
|
+
const layers = skillCeilingLayers(auth);
|
|
83
|
+
return layers === undefined || layers.length > 0;
|
|
84
|
+
}
|
|
85
|
+
return delegationPermits(auth, need);
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=skill-ceiling.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skill-ceiling.js","sourceRoot":"","sources":["../src/skill-ceiling.ts"],"names":[],"mappings":"AAwCA,OAAO,EAAE,iBAAiB,EAAoB,MAAM,WAAW,CAAA;AAW/D,4EAA4E;AAC5E,MAAM,CAAC,MAAM,cAAc,GAA4B,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;AAE1F,0DAA0D;AAC1D,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAAa,EAAyB,EAAE,CACpE,cAAoC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;AAEvD;;;;;;;GAOG;AACH,MAAM,UAAU,aAAa,CAAC,MAA+B;IAC3D,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAmB,EAAE,CAAC,CAAC,KAAK,OAAO,CAAC,CAAA;AAC7D,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,SAAS,CAAC,IAAiB,EAAE,OAAe,EAAE,KAAmB;IACxE,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAA;IAClC,IAAI,UAAU,KAAK,SAAS;QAAE,OAAO,IAAI,CAAA;IACzC,MAAM,UAAU,GAAG,UAAU,CAAC,WAAW,CAAA;IACzC,IAAI,UAAU,KAAK,SAAS,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAA;IACzE,IAAI,UAAU,CAAC,MAAM,KAAK,SAAS;QAAE,OAAO,IAAI,CAAA;IAChD,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,CAAA;IAC7D,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAA;IACrC,OAAO,KAAK,CAAC,WAAW,KAAK,SAAS,IAAI,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;AAC7E,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAiB,EAAE,OAAe;IACnE,OAAO,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;AAC/E,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAiB;IAClD,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAA;IAClC,IAAI,UAAU,KAAK,SAAS;QAAE,OAAO,SAAS,CAAA;IAC9C,IAAI,UAAU,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QACpC,MAAM,UAAU,GAAG,UAAU,CAAC,WAAW,CAAA;QACzC,MAAM,MAAM,GAAG,UAAU,KAAK,SAAS,IAAI,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;QACvG,OAAO,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAA;IAChC,CAAC;IACD,OAAO,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;AACzF,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,aAAa,CAAC,IAAiB,EAAE,IAAkB;IACjE,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QACrB,MAAM,MAAM,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAA;QACvC,OAAO,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAA;IAClD,CAAC;IACD,OAAO,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;AACtC,CAAC"}
|
package/dist/skills.d.ts
CHANGED
|
@@ -121,15 +121,41 @@ export declare class PostgresSkills implements Skills {
|
|
|
121
121
|
*/
|
|
122
122
|
private visibleLayers;
|
|
123
123
|
/**
|
|
124
|
-
* `
|
|
125
|
-
* and for a delegation the layer inside its narrowing for `admin`.
|
|
124
|
+
* `admin` resolved for the **person**, without the token's ceiling.
|
|
126
125
|
*
|
|
127
|
-
* The
|
|
128
|
-
*
|
|
129
|
-
*
|
|
130
|
-
* the
|
|
126
|
+
* The first clause of `may_write_layer_skill` in docs/skills.md, and the one
|
|
127
|
+
* place a ceiling is deliberately left out of a resolve input. It is safe for
|
|
128
|
+
* exactly one reason: the second clause, `skillCeilingAdmits`, is asked beside
|
|
129
|
+
* it every time, and that clause *is* the ceiling for this one write — `admin`
|
|
130
|
+
* or `skill` in the layer's. A plan from here is never used for anything else.
|
|
131
|
+
*/
|
|
132
|
+
private personAdmin;
|
|
133
|
+
/**
|
|
134
|
+
* `may_write_layer_skill` in docs/skills.md: `admin` resolved on the layer for
|
|
135
|
+
* the person, and a ceiling on that layer holding `admin` or `skill`.
|
|
136
|
+
*
|
|
137
|
+
* `skill` confers nothing the person lacks, because the first clause asks the
|
|
138
|
+
* person; and nothing else, because nothing but `skill-ceiling.ts` reads it.
|
|
131
139
|
*/
|
|
132
140
|
private mayWriteLayer;
|
|
141
|
+
/**
|
|
142
|
+
* The live layers whose skill a **delegation** may write and could not
|
|
143
|
+
* otherwise see.
|
|
144
|
+
*
|
|
145
|
+
* A connection whose ceiling holds `skill` on a layer and nothing else there
|
|
146
|
+
* resolves to no `read` and no `write`, so `visibleLayers` does not reach the
|
|
147
|
+
* layer — and a skill it may write but cannot read is one it can never write,
|
|
148
|
+
* because a write names the version it was based on. So the layers it may
|
|
149
|
+
* write are visible to it as skills, and as nothing else: the catalog, the
|
|
150
|
+
* documents and the search are all `resolve`'s, which never sees `skill`.
|
|
151
|
+
*
|
|
152
|
+
* Empty for everything that is not a delegation, and that is rule 7 rather
|
|
153
|
+
* than an omission: `admin` implies `read`, so every layer whose skill such a
|
|
154
|
+
* caller may write is visible already.
|
|
155
|
+
*/
|
|
156
|
+
private skillWritable;
|
|
157
|
+
/** Every live layer whose skill this caller may see: visible, or writable by its ceiling. */
|
|
158
|
+
private reachableLayers;
|
|
133
159
|
private mayReadLevel;
|
|
134
160
|
private mayWriteLevel;
|
|
135
161
|
private latest;
|
package/dist/skills.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../src/skills.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAML,KAAK,UAAU,EAChB,MAAM,kBAAkB,CAAA;AACzB,OAAO,KAAK,EAAE,IAAI,EAAc,MAAM,IAAI,CAAA;AAE1C,OAAO,EAAc,KAAK,eAAe,EAAE,MAAM,eAAe,CAAA;AAChE,OAAO,
|
|
1
|
+
{"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../src/skills.ts"],"names":[],"mappings":"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"}
|
package/dist/skills.js
CHANGED
|
@@ -10,8 +10,9 @@
|
|
|
10
10
|
*/
|
|
11
11
|
import { activeResolver, checkSkill, DEFAULT_SKILL, withOrg, } from '@nacre.work/core';
|
|
12
12
|
import { contextFor } from './adapters.js';
|
|
13
|
-
import { administers, administersTenants, delegatedLayers
|
|
13
|
+
import { administers, administersTenants, delegatedLayers } from './auth.js';
|
|
14
14
|
import { encodeCursor } from './pagination.js';
|
|
15
|
+
import { skillCeilingAdmits, skillCeilingLayers } from './skill-ceiling.js';
|
|
15
16
|
/** Bytes above which `instructions` carry a pointer rather than the body. */
|
|
16
17
|
export const INSTRUCTIONS_SKILL_LIMIT = 16 * 1024;
|
|
17
18
|
const projection = (alias = '') => ['version', 'files', 'name', 'description', 'has_scripts', 'principal', 'surface', 'connection_id', 'restored_from']
|
|
@@ -110,23 +111,72 @@ export class PostgresSkills {
|
|
|
110
111
|
return new Set(rows.map((r) => r.id));
|
|
111
112
|
}
|
|
112
113
|
/**
|
|
113
|
-
* `
|
|
114
|
-
* and for a delegation the layer inside its narrowing for `admin`.
|
|
114
|
+
* `admin` resolved for the **person**, without the token's ceiling.
|
|
115
115
|
*
|
|
116
|
-
* The
|
|
117
|
-
*
|
|
118
|
-
*
|
|
119
|
-
* the
|
|
116
|
+
* The first clause of `may_write_layer_skill` in docs/skills.md, and the one
|
|
117
|
+
* place a ceiling is deliberately left out of a resolve input. It is safe for
|
|
118
|
+
* exactly one reason: the second clause, `skillCeilingAdmits`, is asked beside
|
|
119
|
+
* it every time, and that clause *is* the ceiling for this one write — `admin`
|
|
120
|
+
* or `skill` in the layer's. A plan from here is never used for anything else.
|
|
121
|
+
*/
|
|
122
|
+
async personAdmin(client, auth) {
|
|
123
|
+
const { ceiling, ...person } = await contextFor(client, auth, this.principalsCache);
|
|
124
|
+
void ceiling;
|
|
125
|
+
return activeResolver().resolve(person, 'admin');
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* `may_write_layer_skill` in docs/skills.md: `admin` resolved on the layer for
|
|
129
|
+
* the person, and a ceiling on that layer holding `admin` or `skill`.
|
|
130
|
+
*
|
|
131
|
+
* `skill` confers nothing the person lacks, because the first clause asks the
|
|
132
|
+
* person; and nothing else, because nothing but `skill-ceiling.ts` reads it.
|
|
120
133
|
*/
|
|
121
134
|
async mayWriteLayer(client, auth, layerId) {
|
|
122
135
|
if (administersTenants(auth))
|
|
123
136
|
return false;
|
|
124
|
-
|
|
125
|
-
if (plan.kind === 'none')
|
|
137
|
+
if (!skillCeilingAdmits(auth, layerId))
|
|
126
138
|
return false;
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
139
|
+
const plan = await this.personAdmin(client, auth);
|
|
140
|
+
return plan.kind === 'all' || (plan.kind === 'scoped' && plan.layers.includes(layerId));
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* The live layers whose skill a **delegation** may write and could not
|
|
144
|
+
* otherwise see.
|
|
145
|
+
*
|
|
146
|
+
* A connection whose ceiling holds `skill` on a layer and nothing else there
|
|
147
|
+
* resolves to no `read` and no `write`, so `visibleLayers` does not reach the
|
|
148
|
+
* layer — and a skill it may write but cannot read is one it can never write,
|
|
149
|
+
* because a write names the version it was based on. So the layers it may
|
|
150
|
+
* write are visible to it as skills, and as nothing else: the catalog, the
|
|
151
|
+
* documents and the search are all `resolve`'s, which never sees `skill`.
|
|
152
|
+
*
|
|
153
|
+
* Empty for everything that is not a delegation, and that is rule 7 rather
|
|
154
|
+
* than an omission: `admin` implies `read`, so every layer whose skill such a
|
|
155
|
+
* caller may write is visible already.
|
|
156
|
+
*/
|
|
157
|
+
async skillWritable(client, auth) {
|
|
158
|
+
if (auth.delegation === undefined || administersTenants(auth))
|
|
159
|
+
return new Set();
|
|
160
|
+
const admitted = skillCeilingLayers(auth);
|
|
161
|
+
if (admitted !== undefined && admitted.length === 0)
|
|
162
|
+
return new Set();
|
|
163
|
+
const plan = await this.personAdmin(client, auth);
|
|
164
|
+
if (plan.kind === 'none')
|
|
165
|
+
return new Set();
|
|
166
|
+
const reached = plan.kind === 'all'
|
|
167
|
+
? admitted
|
|
168
|
+
: admitted === undefined
|
|
169
|
+
? plan.layers
|
|
170
|
+
: plan.layers.filter((id) => admitted.includes(id));
|
|
171
|
+
const { rows } = await client.query(`SELECT id FROM layers
|
|
172
|
+
WHERE org_id = $1 AND deleted_at IS NULL AND ($2::uuid[] IS NULL OR id = ANY($2::uuid[]))`, [auth.orgId, reached === undefined ? null : [...reached]]);
|
|
173
|
+
return new Set(rows.map((r) => r.id));
|
|
174
|
+
}
|
|
175
|
+
/** Every live layer whose skill this caller may see: visible, or writable by its ceiling. */
|
|
176
|
+
async reachableLayers(client, auth) {
|
|
177
|
+
const visible = await this.visibleLayers(client, auth);
|
|
178
|
+
const writable = await this.skillWritable(client, auth);
|
|
179
|
+
return writable.size === 0 ? visible : new Set([...visible, ...writable]);
|
|
130
180
|
}
|
|
131
181
|
mayReadLevel = async (client, auth, level) => {
|
|
132
182
|
switch (level.kind) {
|
|
@@ -137,7 +187,7 @@ export class PostgresSkills {
|
|
|
137
187
|
case 'organization':
|
|
138
188
|
return !administersTenants(auth);
|
|
139
189
|
case 'layer':
|
|
140
|
-
return (await this.
|
|
190
|
+
return (await this.reachableLayers(client, auth)).has(level.layerId);
|
|
141
191
|
}
|
|
142
192
|
};
|
|
143
193
|
mayWriteLevel = async (client, auth, level) => {
|
|
@@ -189,7 +239,7 @@ export class PostgresSkills {
|
|
|
189
239
|
async list(auth, page) {
|
|
190
240
|
const base = withoutFiles(await this.base(auth));
|
|
191
241
|
const layers = await withOrg(this.pool, auth.orgId, async (client) => {
|
|
192
|
-
const visible = await this.
|
|
242
|
+
const visible = await this.reachableLayers(client, auth);
|
|
193
243
|
if (visible.size === 0)
|
|
194
244
|
return { items: [], nextCursor: null };
|
|
195
245
|
// The newest version per layer, and only layers whose newest is live:
|
|
@@ -226,7 +276,7 @@ export class PostgresSkills {
|
|
|
226
276
|
if (id === undefined)
|
|
227
277
|
return undefined;
|
|
228
278
|
// A slug the caller cannot see is a slug that is not there.
|
|
229
|
-
return (await this.
|
|
279
|
+
return (await this.reachableLayers(client, auth)).has(id) ? id : undefined;
|
|
230
280
|
}, this.scope);
|
|
231
281
|
}
|
|
232
282
|
async current(auth, level) {
|
package/dist/skills.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skills.js","sourceRoot":"","sources":["../src/skills.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"skills.js","sourceRoot":"","sources":["../src/skills.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nacre.work/api",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.31.0",
|
|
4
4
|
"description": "Nacre REST API and authorization service",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
"dependencies": {
|
|
30
30
|
"jose": "^6.2.12",
|
|
31
31
|
"pg": "^8.23.0",
|
|
32
|
-
"@nacre.work/core": "0.
|
|
32
|
+
"@nacre.work/core": "0.31.0"
|
|
33
33
|
},
|
|
34
34
|
"devDependencies": {
|
|
35
35
|
"@types/node": "^26.6.2",
|