@cotal-ai/auth 0.57.0 → 0.59.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/auth-admin.d.ts +10 -0
- package/dist/auth-admin.d.ts.map +1 -1
- package/dist/auth-admin.js +162 -213
- package/dist/auth-admin.js.map +1 -1
- package/dist/auth-service-contract.d.ts +64 -0
- package/dist/auth-service-contract.d.ts.map +1 -0
- package/dist/auth-service-contract.js +131 -0
- package/dist/auth-service-contract.js.map +1 -0
- package/dist/authority-client.d.ts +16 -0
- package/dist/authority-client.d.ts.map +1 -1
- package/dist/authority-client.js +65 -1
- package/dist/authority-client.js.map +1 -1
- package/dist/barrier-evict.d.ts +7 -0
- package/dist/barrier-evict.d.ts.map +1 -1
- package/dist/barrier-evict.js +83 -21
- package/dist/barrier-evict.js.map +1 -1
- package/dist/callout.d.ts.map +1 -1
- package/dist/callout.js +9 -3
- package/dist/callout.js.map +1 -1
- package/dist/commands.js +18 -11
- package/dist/commands.js.map +1 -1
- package/dist/grant-command.d.ts +9 -8
- package/dist/grant-command.d.ts.map +1 -1
- package/dist/grant-command.js +9 -8
- package/dist/grant-command.js.map +1 -1
- package/dist/idp.d.ts +10 -1
- package/dist/idp.d.ts.map +1 -1
- package/dist/idp.js +11 -3
- package/dist/idp.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/issuer.d.ts +3 -1
- package/dist/issuer.d.ts.map +1 -1
- package/dist/issuer.js +6 -2
- package/dist/issuer.js.map +1 -1
- package/dist/ledger.d.ts +6 -7
- package/dist/ledger.d.ts.map +1 -1
- package/dist/ledger.js +1 -1
- package/dist/ledger.js.map +1 -1
- package/dist/managed-agent-enrollment.d.ts +29 -1
- package/dist/managed-agent-enrollment.d.ts.map +1 -1
- package/dist/managed-agent-enrollment.js +45 -1
- package/dist/managed-agent-enrollment.js.map +1 -1
- package/dist/manager-authority.d.ts +102 -1
- package/dist/manager-authority.d.ts.map +1 -1
- package/dist/manager-authority.js +276 -16
- package/dist/manager-authority.js.map +1 -1
- package/dist/manager-contract.d.ts +4 -0
- package/dist/manager-contract.d.ts.map +1 -1
- package/dist/manager-contract.js +7 -1
- package/dist/manager-contract.js.map +1 -1
- package/dist/permissions.d.ts +15 -1
- package/dist/permissions.d.ts.map +1 -1
- package/dist/permissions.js +20 -1
- package/dist/permissions.js.map +1 -1
- package/dist/provider.d.ts.map +1 -1
- package/dist/provider.js +44 -11
- package/dist/provider.js.map +1 -1
- package/dist/service.d.ts +90 -2
- package/dist/service.d.ts.map +1 -1
- package/dist/service.js +628 -155
- package/dist/service.js.map +1 -1
- package/dist/session-redemption.d.ts +51 -0
- package/dist/session-redemption.d.ts.map +1 -0
- package/dist/session-redemption.js +61 -0
- package/dist/session-redemption.js.map +1 -0
- package/dist/token.d.ts +15 -2
- package/dist/token.d.ts.map +1 -1
- package/dist/token.js +30 -3
- package/dist/token.js.map +1 -1
- package/package.json +6 -6
|
@@ -1,4 +1,31 @@
|
|
|
1
|
-
import { EpEnvelopeError, assertDerivedOwnerToken, assertLifecycleToken, assertValidOwnerToken, managedRetirementOpId, remoteManagerActors, } from "@cotal-ai/core";
|
|
1
|
+
import { EpEnvelopeError, assertDerivedOwnerToken, assertLifecycleToken, assertValidOwnerToken, managedRetirementOpId, remoteManagerActors, EP_RAIL_V1, admissionKey, admissionSnapshot, createRunAdmission, isIssuedCaller, issuedPermitsSubject, parseEpSubject, } from "@cotal-ai/core";
|
|
2
|
+
import { timingSafeEqual } from "node:crypto";
|
|
3
|
+
import { remoteManagerCurrentRegistrationProof } from "./retained-manager-validation.js";
|
|
4
|
+
/** Host-only renewal authorization. The embedding host supplies a fresh gate and active run
|
|
5
|
+
* observation from its authoritative stores, never coordinates asserted by the participant. */
|
|
6
|
+
export async function authorizeRemoteManagerRenewal(args) {
|
|
7
|
+
const r = parseRemoteManagerAuthorityRequest(args.request);
|
|
8
|
+
if (r.operation !== "renewStandingBundle" && r.operation !== "renewRunDriver")
|
|
9
|
+
requestError("requires a renewal operation");
|
|
10
|
+
if (r.space !== args.space || r.accountPublicKey !== args.accountPublicKey)
|
|
11
|
+
throw new EpEnvelopeError("permission-denied", "manager-service renewal is bound to the host-assigned space and account");
|
|
12
|
+
const gate = await args.observeManagerGate(r.instanceId);
|
|
13
|
+
if (!gate || gate.state !== "open")
|
|
14
|
+
throw new EpEnvelopeError("failed-precondition", "manager-service renewal has no open registration gate");
|
|
15
|
+
if (gate.principal !== `${args.owner}.${remoteManagerActors(r.instanceId).serve}`)
|
|
16
|
+
throw new EpEnvelopeError("permission-denied", "manager-service renewal gate belongs to another owner");
|
|
17
|
+
if (gate.processEpoch !== r.processEpoch)
|
|
18
|
+
throw new EpEnvelopeError("conflict", "manager-service renewal processEpoch is stale");
|
|
19
|
+
const expected = remoteManagerCurrentRegistrationProof(args.proofSecret, args.owner, r, gate);
|
|
20
|
+
if (!timingSafeEqual(Buffer.from(r.registrationProof), Buffer.from(expected)))
|
|
21
|
+
throw new EpEnvelopeError("permission-denied", "manager-service renewal proof does not match the current registration");
|
|
22
|
+
if (r.operation === "renewRunDriver") {
|
|
23
|
+
const run = await args.observeRun(r.run.runId);
|
|
24
|
+
if (!run || run.state !== "running" || run.instanceId !== r.instanceId || run.holder !== r.run.holder ||
|
|
25
|
+
run.takeoverId !== r.run.takeoverId || run.epoch !== r.run.epoch || run.fencingToken !== r.run.fencingToken)
|
|
26
|
+
throw new EpEnvelopeError("conflict", "manager-service run renewal does not hold the activated run and takeover fence");
|
|
27
|
+
}
|
|
28
|
+
}
|
|
2
29
|
function requestError(what) {
|
|
3
30
|
throw new EpEnvelopeError("bad-request", `manager-service authority request ${what}`);
|
|
4
31
|
}
|
|
@@ -7,14 +34,14 @@ export function parseRemoteManagerAuthorityRequest(raw) {
|
|
|
7
34
|
if (raw === null || typeof raw !== "object" || Array.isArray(raw))
|
|
8
35
|
requestError("must be an object");
|
|
9
36
|
const o = raw;
|
|
10
|
-
const allowed = new Set(["v", "kind", "operation", "space", "actor", "instanceId", "managerLifecycleUid", "requestId", "registrationProof", "session", "retirement", "contractArtifacts", "identities"]);
|
|
37
|
+
const allowed = new Set(["v", "kind", "operation", "space", "actor", "instanceId", "managerLifecycleUid", "requestId", "registrationProof", "session", "retirement", "contractArtifacts", "identities", "accountPublicKey", "processEpoch", "run"]);
|
|
11
38
|
for (const key of Object.keys(o))
|
|
12
39
|
if (!allowed.has(key))
|
|
13
40
|
requestError(`carries unknown field ${JSON.stringify(key)} (the protocol is closed)`);
|
|
14
41
|
if (o.v !== 1 || o.kind !== "manager-service-authority")
|
|
15
42
|
requestError('must carry { v: 1, kind: "manager-service-authority" }');
|
|
16
|
-
if (o.operation !== "prepare" && o.operation !== "activate" && o.operation !== "renew" && o.operation !== "session" && o.operation !== "retire")
|
|
17
|
-
requestError('operation must be "prepare", "activate", "renew", "session", or "
|
|
43
|
+
if (o.operation !== "prepare" && o.operation !== "activate" && o.operation !== "renew" && o.operation !== "session" && o.operation !== "retire" && o.operation !== "renewStandingBundle" && o.operation !== "renewRunDriver")
|
|
44
|
+
requestError('operation must be "prepare", "activate", "renew", "session", "retire", "renewStandingBundle", or "renewRunDriver"');
|
|
18
45
|
for (const key of ["space", "actor", "instanceId", "managerLifecycleUid", "requestId"])
|
|
19
46
|
if (typeof o[key] !== "string" || o[key].length === 0)
|
|
20
47
|
requestError(`requires non-empty ${key}`);
|
|
@@ -24,12 +51,39 @@ export function parseRemoteManagerAuthorityRequest(raw) {
|
|
|
24
51
|
requestError("requestId must be a 22-64 character idempotency token");
|
|
25
52
|
if (o.operation === "prepare" && (o.registrationProof !== undefined || o.contractArtifacts !== undefined))
|
|
26
53
|
requestError("prepare must not carry registrationProof or contractArtifacts");
|
|
27
|
-
if (
|
|
54
|
+
if (o.operation !== "prepare" && (typeof o.registrationProof !== "string" || !/^sha256:[0-9a-f]{64}$/.test(o.registrationProof)))
|
|
28
55
|
requestError(`${o.operation} requires a sha256 registrationProof`);
|
|
29
56
|
if (o.operation === "activate" && (!Array.isArray(o.contractArtifacts) || o.contractArtifacts.length === 0 || o.contractArtifacts.length > 64))
|
|
30
57
|
requestError("activate requires 1-64 canonical manager contractArtifacts");
|
|
31
|
-
if (
|
|
58
|
+
if (o.operation !== "activate" && o.contractArtifacts !== undefined)
|
|
32
59
|
requestError(`${o.operation} must not carry contractArtifacts`);
|
|
60
|
+
const renewal = o.operation === "renewStandingBundle" || o.operation === "renewRunDriver";
|
|
61
|
+
if (renewal) {
|
|
62
|
+
if (typeof o.accountPublicKey !== "string" || !/^A[A-Z2-7]{55}$/.test(o.accountPublicKey))
|
|
63
|
+
requestError(`${o.operation} requires an accountPublicKey`);
|
|
64
|
+
if (typeof o.processEpoch !== "number" || !Number.isSafeInteger(o.processEpoch) || o.processEpoch < 0)
|
|
65
|
+
requestError(`${o.operation} requires a non-negative processEpoch`);
|
|
66
|
+
}
|
|
67
|
+
else if (o.accountPublicKey !== undefined || o.processEpoch !== undefined)
|
|
68
|
+
requestError(`${o.operation} must not carry accountPublicKey or processEpoch`);
|
|
69
|
+
let run;
|
|
70
|
+
if (o.operation === "renewRunDriver") {
|
|
71
|
+
const r = o.run;
|
|
72
|
+
if (!r || Object.keys(r).sort().join(",") !== "driverId,epoch,fencingToken,holder,mediatorId,runId,takeoverId")
|
|
73
|
+
requestError("renewRunDriver requires exactly runId, holder, takeoverId, epoch, fencingToken, driverId, mediatorId");
|
|
74
|
+
if (typeof r.runId !== "string" || !/^run-[0-9a-f]{32}$/.test(r.runId) ||
|
|
75
|
+
typeof r.holder !== "string" || !/^[A-Za-z0-9_.-]{1,256}$/.test(r.holder) ||
|
|
76
|
+
typeof r.takeoverId !== "string" || !/^[0-9a-f]{16}$/.test(r.takeoverId) ||
|
|
77
|
+
typeof r.epoch !== "number" || !Number.isSafeInteger(r.epoch) || r.epoch < 1 ||
|
|
78
|
+
typeof r.fencingToken !== "number" || !Number.isSafeInteger(r.fencingToken) || r.fencingToken < 1 ||
|
|
79
|
+
typeof r.driverId !== "string" || !/^U[A-Z2-7]{55}$/.test(r.driverId) ||
|
|
80
|
+
typeof r.mediatorId !== "string" || !/^U[A-Z2-7]{55}$/.test(r.mediatorId) || r.driverId === r.mediatorId ||
|
|
81
|
+
!r.holder.endsWith(`.${r.takeoverId}`))
|
|
82
|
+
requestError("renewRunDriver requires valid runId, holder, takeoverId, epoch, fencingToken, and distinct driverId/mediatorId");
|
|
83
|
+
run = r;
|
|
84
|
+
}
|
|
85
|
+
else if (o.run !== undefined)
|
|
86
|
+
requestError(`${o.operation} must not carry run`);
|
|
33
87
|
if (o.operation === "session") {
|
|
34
88
|
const s = o.session;
|
|
35
89
|
if (!s || typeof s.id !== "string" || !/^U[A-Z2-7]{55}$/.test(s.id) || s.endpoint !== "manager" ||
|
|
@@ -94,6 +148,8 @@ export function parseRemoteManagerAuthorityRequest(raw) {
|
|
|
94
148
|
managerLifecycleUid: o.managerLifecycleUid,
|
|
95
149
|
requestId: o.requestId,
|
|
96
150
|
...(typeof o.registrationProof === "string" ? { registrationProof: o.registrationProof } : {}),
|
|
151
|
+
...(renewal ? { accountPublicKey: o.accountPublicKey, processEpoch: o.processEpoch } : {}),
|
|
152
|
+
...(run ? { run } : {}),
|
|
97
153
|
...(o.session && typeof o.session === "object" ? { session: o.session } : {}),
|
|
98
154
|
...(retirement ? { retirement } : {}),
|
|
99
155
|
...(Array.isArray(o.contractArtifacts) ? { contractArtifacts: o.contractArtifacts } : {}),
|
|
@@ -109,24 +165,38 @@ export async function issueRemoteManagerAuthority(args) {
|
|
|
109
165
|
const ids = Object.values(r.identities).map((identity) => identity.id);
|
|
110
166
|
if (r.retirement)
|
|
111
167
|
ids.push(r.retirement.id);
|
|
168
|
+
if (r.run)
|
|
169
|
+
ids.push(r.run.driverId, r.run.mediatorId);
|
|
112
170
|
if (new Set(ids).size !== ids.length)
|
|
113
171
|
throw new EpEnvelopeError("bad-request", "manager-service identities must be distinct; one nkey cannot collapse separate authority lifetimes");
|
|
172
|
+
if (r.operation === "renewStandingBundle" || r.operation === "renewRunDriver") {
|
|
173
|
+
if (!args.authorizeRenewal)
|
|
174
|
+
throw new EpEnvelopeError("unavailable", `manager-service ${r.operation} needs a host-owned current-account and duty-fence authorization`);
|
|
175
|
+
await args.authorizeRenewal({ owner: args.owner, request: r });
|
|
176
|
+
}
|
|
114
177
|
const issued = await args.issue({ owner: args.owner, actors, request: r });
|
|
115
178
|
const credentials = issued.credentials;
|
|
116
|
-
const required = r.operation === "
|
|
117
|
-
? ["supervisor", "executor"]
|
|
118
|
-
: r.operation === "
|
|
119
|
-
? ["
|
|
120
|
-
: r.operation === "
|
|
179
|
+
const required = r.operation === "renewStandingBundle"
|
|
180
|
+
? ["supervisor", "executor", "serve", "goalWriter", "sessionLedger"]
|
|
181
|
+
: r.operation === "renewRunDriver"
|
|
182
|
+
? ["runDriver", "runMediator"]
|
|
183
|
+
: r.operation === "prepare"
|
|
121
184
|
? ["supervisor", "executor"]
|
|
122
|
-
: r.operation === "
|
|
123
|
-
? ["
|
|
124
|
-
: r.operation === "
|
|
125
|
-
? ["
|
|
126
|
-
:
|
|
185
|
+
: r.operation === "activate"
|
|
186
|
+
? ["serve", "goalWriter", "sessionLedger"]
|
|
187
|
+
: r.operation === "renew"
|
|
188
|
+
? ["supervisor", "executor"]
|
|
189
|
+
: r.operation === "session"
|
|
190
|
+
? ["sessionServing"]
|
|
191
|
+
: r.operation === "retire"
|
|
192
|
+
? ["retirementRequester"]
|
|
193
|
+
: ["supervisor", "executor", "serve", "goalWriter", "sessionLedger"];
|
|
127
194
|
for (const name of required)
|
|
128
195
|
if (!(name in credentials))
|
|
129
196
|
throw new EpEnvelopeError("internal", `manager-service ${r.operation} did not issue required credential ${name}`);
|
|
197
|
+
if ((r.operation === "renewStandingBundle" || r.operation === "renewRunDriver") &&
|
|
198
|
+
Object.keys(credentials).sort().join(",") !== [...required].sort().join(","))
|
|
199
|
+
throw new EpEnvelopeError("internal", `manager-service ${r.operation} returned credentials outside its closed profile set`);
|
|
130
200
|
const issuedAt = (args.now ?? Date.now)();
|
|
131
201
|
const exps = Object.values(credentials).map((credential) => credential.exp * 1000);
|
|
132
202
|
return {
|
|
@@ -140,6 +210,8 @@ export async function issueRemoteManagerAuthority(args) {
|
|
|
140
210
|
lifecycleUid: r.managerLifecycleUid,
|
|
141
211
|
requestId: r.requestId,
|
|
142
212
|
...(r.registrationProof ? { registrationProof: r.registrationProof } : {}),
|
|
213
|
+
...(r.accountPublicKey ? { accountPublicKey: r.accountPublicKey, processEpoch: r.processEpoch } : {}),
|
|
214
|
+
...(r.run ? { run: r.run } : {}),
|
|
143
215
|
...(r.retirement ? { retirement: r.retirement } : {}),
|
|
144
216
|
issuedAt,
|
|
145
217
|
expiresAt: Math.min(...exps),
|
|
@@ -149,4 +221,192 @@ export async function issueRemoteManagerAuthority(args) {
|
|
|
149
221
|
credentials,
|
|
150
222
|
};
|
|
151
223
|
}
|
|
224
|
+
function admissionError(what) {
|
|
225
|
+
throw new EpEnvelopeError("bad-request", `manager run admission request ${what}`);
|
|
226
|
+
}
|
|
227
|
+
/** Closed parser for {@link RemoteRunAdmissionRequest}: unknown fields refuse, never ignored. */
|
|
228
|
+
export function parseRemoteRunAdmissionRequest(raw) {
|
|
229
|
+
if (raw === null || typeof raw !== "object" || Array.isArray(raw))
|
|
230
|
+
admissionError("must be an object");
|
|
231
|
+
const o = raw;
|
|
232
|
+
const allowed = ["v", "kind", "space", "actor", "instanceId", "managerLifecycleUid", "requestId", "registrationProof", "accountPublicKey", "processEpoch", "identities", "run"];
|
|
233
|
+
for (const k of Object.keys(o))
|
|
234
|
+
if (!allowed.includes(k))
|
|
235
|
+
admissionError(`has unknown field ${k}`);
|
|
236
|
+
if (o.v !== 1 || o.kind !== "manager-run-admission")
|
|
237
|
+
admissionError("must be v1 manager-run-admission");
|
|
238
|
+
for (const k of ["space", "actor", "instanceId", "managerLifecycleUid", "requestId", "accountPublicKey"])
|
|
239
|
+
if (typeof o[k] !== "string" || o[k].length === 0)
|
|
240
|
+
admissionError(`requires ${k}`);
|
|
241
|
+
assertLifecycleToken(o.instanceId, "instanceId");
|
|
242
|
+
assertLifecycleToken(o.managerLifecycleUid, "managerLifecycleUid");
|
|
243
|
+
if (typeof o.registrationProof !== "string" || !/^sha256:[0-9a-f]{64}$/.test(o.registrationProof))
|
|
244
|
+
admissionError("requires a sha256 registrationProof");
|
|
245
|
+
if (!Number.isSafeInteger(o.processEpoch) || o.processEpoch < 0)
|
|
246
|
+
admissionError("requires a non-negative processEpoch");
|
|
247
|
+
const ids = o.identities;
|
|
248
|
+
const names = ["supervisor", "executor", "serve", "goalWriter", "sessionLedger"];
|
|
249
|
+
if (ids === null || typeof ids !== "object" || Object.keys(ids).sort().join(",") !== [...names].sort().join(","))
|
|
250
|
+
admissionError("requires exactly the five manager identities");
|
|
251
|
+
const identities = Object.fromEntries(names.map((n) => {
|
|
252
|
+
const v = ids[n];
|
|
253
|
+
if (v === null || typeof v !== "object" || Object.keys(v).join(",") !== "id" || typeof v.id !== "string")
|
|
254
|
+
admissionError(`identity ${n} must be { id }`);
|
|
255
|
+
return [n, { id: v.id }];
|
|
256
|
+
}));
|
|
257
|
+
const run = o.run;
|
|
258
|
+
if (run === null || typeof run !== "object" || Object.keys(run).sort().join(",") !== "runId,subject" ||
|
|
259
|
+
typeof run.runId !== "string" || !/^run-[0-9a-f]{32}$/.test(run.runId) || typeof run.subject !== "string")
|
|
260
|
+
admissionError("requires exactly run.runId (host-minted) and run.subject");
|
|
261
|
+
return {
|
|
262
|
+
v: 1, kind: "manager-run-admission", space: o.space, actor: o.actor, instanceId: o.instanceId,
|
|
263
|
+
managerLifecycleUid: o.managerLifecycleUid, requestId: o.requestId, registrationProof: o.registrationProof,
|
|
264
|
+
accountPublicKey: o.accountPublicKey, processEpoch: o.processEpoch, identities,
|
|
265
|
+
run: { runId: run.runId, subject: run.subject },
|
|
266
|
+
};
|
|
267
|
+
}
|
|
268
|
+
/** Authenticate the requesting registered manager: assigned space/account, open gate owned by this
|
|
269
|
+
* owner's serve actor, current process epoch, and the current-registration proof. */
|
|
270
|
+
async function authenticateRegisteredManager(r, args, what) {
|
|
271
|
+
if (r.space !== args.space || r.accountPublicKey !== args.accountPublicKey)
|
|
272
|
+
throw new EpEnvelopeError("permission-denied", `manager-service ${what} is bound to the host-assigned space and account`);
|
|
273
|
+
const gate = await args.observeManagerGate(r.instanceId);
|
|
274
|
+
if (!gate || gate.state !== "open")
|
|
275
|
+
throw new EpEnvelopeError("failed-precondition", `manager-service ${what} has no open registration gate`);
|
|
276
|
+
if (gate.principal !== `${args.owner}.${remoteManagerActors(r.instanceId).serve}`)
|
|
277
|
+
throw new EpEnvelopeError("permission-denied", `manager-service ${what} gate belongs to another owner`);
|
|
278
|
+
if (gate.processEpoch !== r.processEpoch)
|
|
279
|
+
throw new EpEnvelopeError("conflict", `manager-service ${what} processEpoch is stale`);
|
|
280
|
+
const expected = remoteManagerCurrentRegistrationProof(args.proofSecret, args.owner, r, gate);
|
|
281
|
+
if (!timingSafeEqual(Buffer.from(r.registrationProof), Buffer.from(expected)))
|
|
282
|
+
throw new EpEnvelopeError("permission-denied", `manager-service ${what} proof does not match the current registration`);
|
|
283
|
+
}
|
|
284
|
+
/**
|
|
285
|
+
* Host-side first-run admission for a registered signerless manager. The manager is trusted only to
|
|
286
|
+
* forward the `ep.v1` request subject it served (delegation to the registered host, not a proof of
|
|
287
|
+
* an arbitrary message). Everything else is derived here: the caller and generation come from the
|
|
288
|
+
* subject, the evidence and live sources from the issued store, the ceiling from that evidence.
|
|
289
|
+
* Every refusal happens before the create; an exact retry returns the admission already written.
|
|
290
|
+
*/
|
|
291
|
+
export async function admitRemoteRun(args) {
|
|
292
|
+
const r = parseRemoteRunAdmissionRequest(args.request);
|
|
293
|
+
await authenticateRegisteredManager(r, args, "run admission");
|
|
294
|
+
const parsed = parseEpSubject(r.run.subject);
|
|
295
|
+
if (!r.run.subject.startsWith(`cotal.${r.space}.`) || parsed === null || parsed.plane !== "request" || parsed.rail !== EP_RAIL_V1 ||
|
|
296
|
+
parsed.endpoint !== args.endpoint || parsed.command !== "run-start" || parsed.target !== null ||
|
|
297
|
+
(parsed.route === "inst" && parsed.instanceId !== r.instanceId) || !isIssuedCaller(parsed.caller))
|
|
298
|
+
throw new EpEnvelopeError("permission-denied", "manager run admission needs the served v1 run-start subject of this space, endpoint and instance with an issued caller");
|
|
299
|
+
const caller = parsed.caller;
|
|
300
|
+
const ref = { space: r.space, owner: caller.owner, actor: caller.actor, uid: caller.uid, generation: caller.generation };
|
|
301
|
+
const resolved = await args.issued.resolve(ref, args.sourceIsLive);
|
|
302
|
+
const e = resolved.evidence.ref;
|
|
303
|
+
if (e.space !== ref.space || e.owner !== ref.owner || e.actor !== ref.actor || e.uid !== ref.uid || e.generation !== ref.generation)
|
|
304
|
+
throw new EpEnvelopeError("permission-denied", "manager run admission evidence names another issued reference");
|
|
305
|
+
if (!issuedPermitsSubject(resolved.evidence.permissions.publish, r.run.subject))
|
|
306
|
+
throw new EpEnvelopeError("permission-denied", "the caller's issued ceiling does not permit this run-start subject");
|
|
307
|
+
const admission = {
|
|
308
|
+
version: 1, space: r.space, endpoint: args.endpoint, runId: r.run.runId, instanceId: r.instanceId,
|
|
309
|
+
caller, ceiling: resolved.evidence.permissions,
|
|
310
|
+
provenance: { kind: "issued", ref, resolvedRevision: resolved.revision },
|
|
311
|
+
admittedAt: (args.now ?? Date.now)(),
|
|
312
|
+
};
|
|
313
|
+
try {
|
|
314
|
+
const revision = await createRunAdmission(args.admissions, admission);
|
|
315
|
+
return { v: 1, kind: "manager-run-admission", requestId: r.requestId, runId: r.run.runId, revision, admission: admissionSnapshot(admission) };
|
|
316
|
+
}
|
|
317
|
+
catch (err) {
|
|
318
|
+
if (!(err instanceof EpEnvelopeError) || err.code !== "conflict")
|
|
319
|
+
throw err;
|
|
320
|
+
const entry = await args.admissions.get(admissionKey(args.endpoint, r.run.runId));
|
|
321
|
+
if (entry === null)
|
|
322
|
+
throw err;
|
|
323
|
+
const written = admissionSnapshot(JSON.parse(new TextDecoder().decode(entry.value)));
|
|
324
|
+
const p = written.provenance;
|
|
325
|
+
if (written.instanceId !== r.instanceId || p.kind !== "issued" || p.ref.owner !== ref.owner || p.ref.actor !== ref.actor ||
|
|
326
|
+
p.ref.uid !== ref.uid || p.ref.generation !== ref.generation)
|
|
327
|
+
throw new EpEnvelopeError("conflict", `run ${r.run.runId} is already admitted for another caller or instance`);
|
|
328
|
+
return { v: 1, kind: "manager-run-admission", requestId: r.requestId, runId: r.run.runId, revision: entry.revision, admission: written };
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
const NKEY_USER = /^U[A-Z2-7]{55}$/;
|
|
332
|
+
const ID_TOKEN = /^[A-Za-z0-9_-]{1,64}$/;
|
|
333
|
+
/** Closed parser for {@link RemoteRunAttemptRequest}. */
|
|
334
|
+
export function parseRemoteRunAttemptRequest(raw) {
|
|
335
|
+
if (raw === null || typeof raw !== "object" || Array.isArray(raw))
|
|
336
|
+
admissionError("must be an object");
|
|
337
|
+
const o = raw;
|
|
338
|
+
if (o.kind !== "manager-run-attempt")
|
|
339
|
+
admissionError("must be v1 manager-run-attempt");
|
|
340
|
+
const { attempt, operator, ...rest } = o;
|
|
341
|
+
if ((attempt === undefined) === (operator === undefined))
|
|
342
|
+
admissionError("carries exactly one of attempt or operator");
|
|
343
|
+
const base = parseRemoteRunAdmissionRequest({ ...rest, kind: "manager-run-admission", run: { runId: `run-${"0".repeat(32)}`, subject: "" } });
|
|
344
|
+
const { run: _run, kind: _kind, ...registered } = base;
|
|
345
|
+
const plain = (v, keys, optional = []) => {
|
|
346
|
+
if (v === null || typeof v !== "object" || Array.isArray(v))
|
|
347
|
+
admissionError("attempt/operator must be an object");
|
|
348
|
+
const k = Object.keys(v);
|
|
349
|
+
if (k.some((x) => !keys.includes(x) && !optional.includes(x)) || keys.some((x) => !k.includes(x)))
|
|
350
|
+
admissionError(`attempt/operator must carry exactly ${keys.join(", ")}`);
|
|
351
|
+
return v;
|
|
352
|
+
};
|
|
353
|
+
const runIdOk = (v) => typeof v === "string" && /^run-[0-9a-f]{32}$/.test(v);
|
|
354
|
+
if (attempt !== undefined) {
|
|
355
|
+
const a = plain(attempt, ["runId", "takeoverId", "epoch", "fencingToken", "driverId", "mediatorId"]);
|
|
356
|
+
if (!runIdOk(a.runId) || typeof a.takeoverId !== "string" || !ID_TOKEN.test(a.takeoverId) ||
|
|
357
|
+
!Number.isSafeInteger(a.epoch) || a.epoch < 1 || !Number.isSafeInteger(a.fencingToken) || a.fencingToken < 1 ||
|
|
358
|
+
typeof a.driverId !== "string" || !NKEY_USER.test(a.driverId) || typeof a.mediatorId !== "string" || !NKEY_USER.test(a.mediatorId) || a.driverId === a.mediatorId)
|
|
359
|
+
admissionError("attempt requires a run id, takeover id, positive epoch/fencingToken and distinct driver/mediator nkeys");
|
|
360
|
+
return { ...registered, kind: "manager-run-attempt", attempt: { runId: a.runId, takeoverId: a.takeoverId, epoch: a.epoch, fencingToken: a.fencingToken, driverId: a.driverId, mediatorId: a.mediatorId } };
|
|
361
|
+
}
|
|
362
|
+
const op = plain(operator, ["id", "takeoverId"], ["runId", "answers"]);
|
|
363
|
+
if (typeof op.id !== "string" || !NKEY_USER.test(op.id) || typeof op.takeoverId !== "string" || !ID_TOKEN.test(op.takeoverId) ||
|
|
364
|
+
(op.runId !== undefined && !runIdOk(op.runId)))
|
|
365
|
+
admissionError("operator requires an nkey id, a takeover id and an optional run id");
|
|
366
|
+
let answers;
|
|
367
|
+
if (op.answers !== undefined) {
|
|
368
|
+
const t = plain(op.answers, ["token"]);
|
|
369
|
+
if (typeof t.token !== "string" || !ID_TOKEN.test(t.token) || op.runId !== undefined)
|
|
370
|
+
admissionError("operator answers carries exactly one checkpoint token and no run id");
|
|
371
|
+
answers = { token: t.token };
|
|
372
|
+
}
|
|
373
|
+
return { ...registered, kind: "manager-run-attempt", operator: { id: op.id, takeoverId: op.takeoverId, ...(op.runId !== undefined ? { runId: op.runId } : {}), ...(answers ? { answers } : {}) } };
|
|
374
|
+
}
|
|
375
|
+
/**
|
|
376
|
+
* Host-only authorization for {@link RemoteRunAttemptRequest}. Every coordinate the returned grant
|
|
377
|
+
* pins is derived from host stores: the admission must exist unrevoked on this instance, the
|
|
378
|
+
* attempt must be exactly the next epoch/fencing token the run record implies (1/1 for a first
|
|
379
|
+
* attempt with no record, as stock `start` launches), and an answer must name a waiting pause.
|
|
380
|
+
* Refuses before the host signs anything.
|
|
381
|
+
*/
|
|
382
|
+
export async function authorizeRemoteRunAttempt(args) {
|
|
383
|
+
const r = parseRemoteRunAttemptRequest(args.request);
|
|
384
|
+
await authenticateRegisteredManager(r, args, "run attempt");
|
|
385
|
+
const admitted = async (runId) => {
|
|
386
|
+
const view = await args.readAdmission(runId);
|
|
387
|
+
if (view.revoked !== undefined)
|
|
388
|
+
throw new EpEnvelopeError("permission-denied", `run ${runId} was revoked; a revoked run is issued nothing (SPEC 14.8)`);
|
|
389
|
+
if (view.admission.instanceId !== r.instanceId || view.admission.endpoint !== args.endpoint || view.admission.space !== r.space)
|
|
390
|
+
throw new EpEnvelopeError("permission-denied", `run ${runId} was admitted on another manager instance or endpoint`);
|
|
391
|
+
return view.admission;
|
|
392
|
+
};
|
|
393
|
+
if (r.attempt) {
|
|
394
|
+
const a = r.attempt;
|
|
395
|
+
const admission = await admitted(a.runId);
|
|
396
|
+
const status = await args.readRunStatus(a.runId);
|
|
397
|
+
if (status?.state === "completed" || status?.state === "failed")
|
|
398
|
+
throw new EpEnvelopeError("failed-precondition", `run ${a.runId} is ${status.state}; a terminal run gets no new attempt`);
|
|
399
|
+
if (a.epoch !== (status?.epoch ?? 0) + 1 || a.fencingToken !== (status?.fencingToken ?? 0) + 1)
|
|
400
|
+
throw new EpEnvelopeError("conflict", `run ${a.runId} attempt must be the next recorded epoch/fencing token`);
|
|
401
|
+
const pin = { endpoint: args.endpoint, runId: a.runId, owner: admission.caller.owner, takeoverId: a.takeoverId, instanceId: r.instanceId, epoch: a.epoch };
|
|
402
|
+
return { kind: "attempt", driver: { id: a.driverId, profile: "run-driver", runDriver: pin }, mediator: { id: a.mediatorId, profile: "run-mediator", runMediator: { ...pin } } };
|
|
403
|
+
}
|
|
404
|
+
const op = r.operator;
|
|
405
|
+
if (op.runId !== undefined)
|
|
406
|
+
await admitted(op.runId);
|
|
407
|
+
if (op.answers !== undefined && !(await args.checkpointWaiting(op.answers.token)))
|
|
408
|
+
throw new EpEnvelopeError("failed-precondition", "run operator answers only a checkpoint that is still waiting");
|
|
409
|
+
const runOperator = { endpoint: args.endpoint, takeoverId: op.takeoverId, ...(op.runId !== undefined ? { runId: op.runId } : {}), ...(op.answers ? { answers: op.answers } : {}) };
|
|
410
|
+
return { kind: "operator", operator: { id: op.id, profile: "run-operator", runOperator } };
|
|
411
|
+
}
|
|
152
412
|
//# sourceMappingURL=manager-authority.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager-authority.js","sourceRoot":"","sources":["../src/manager-authority.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,uBAAuB,EACvB,oBAAoB,EACpB,qBAAqB,EACrB,qBAAqB,EACrB,mBAAmB,GAGpB,MAAM,gBAAgB,CAAC;AAiBxB,SAAS,YAAY,CAAC,IAAY;IAChC,MAAM,IAAI,eAAe,CAAC,aAAa,EAAE,qCAAqC,IAAI,EAAE,CAAC,CAAC;AACxF,CAAC;AAED,oGAAoG;AACpG,MAAM,UAAU,kCAAkC,CAAC,GAAY;IAC7D,IAAI,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,YAAY,CAAC,mBAAmB,CAAC,CAAC;IACrG,MAAM,CAAC,GAAG,GAA8B,CAAC;IACzC,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,qBAAqB,EAAE,WAAW,EAAE,mBAAmB,EAAE,SAAS,EAAE,YAAY,EAAE,mBAAmB,EAAE,YAAY,CAAC,CAAC,CAAC;IACzM,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,YAAY,CAAC,yBAAyB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;IAC/I,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,2BAA2B;QAAE,YAAY,CAAC,wDAAwD,CAAC,CAAC;IAChI,IAAI,CAAC,CAAC,SAAS,KAAK,SAAS,IAAI,CAAC,CAAC,SAAS,KAAK,UAAU,IAAI,CAAC,CAAC,SAAS,KAAK,OAAO,IAAI,CAAC,CAAC,SAAS,KAAK,SAAS,IAAI,CAAC,CAAC,SAAS,KAAK,QAAQ;QAC7I,YAAY,CAAC,0EAA0E,CAAC,CAAC;IAC3F,KAAK,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,qBAAqB,EAAE,WAAW,CAAU;QAC7F,IAAI,OAAO,CAAC,CAAC,GAAG,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC;YAAE,YAAY,CAAC,sBAAsB,GAAG,EAAE,CAAC,CAAC;IACnG,oBAAoB,CAAC,CAAC,CAAC,UAAoB,EAAE,8BAA8B,CAAC,CAAC;IAC7E,oBAAoB,CAAC,CAAC,CAAC,mBAA6B,EAAE,gCAAgC,CAAC,CAAC;IACxF,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC,CAAC,SAAmB,CAAC;QAAE,YAAY,CAAC,uDAAuD,CAAC,CAAC;IACjI,IAAI,CAAC,CAAC,SAAS,KAAK,SAAS,IAAI,CAAC,CAAC,CAAC,iBAAiB,KAAK,SAAS,IAAI,CAAC,CAAC,iBAAiB,KAAK,SAAS,CAAC;QACvG,YAAY,CAAC,+DAA+D,CAAC,CAAC;IAChF,IAAI,CAAC,CAAC,CAAC,SAAS,KAAK,UAAU,IAAI,CAAC,CAAC,SAAS,KAAK,OAAO,IAAI,CAAC,CAAC,SAAS,KAAK,SAAS,IAAI,CAAC,CAAC,SAAS,KAAK,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,iBAAiB,KAAK,QAAQ,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC;QACrN,YAAY,CAAC,GAAG,CAAC,CAAC,SAAS,sCAAsC,CAAC,CAAC;IACrE,IAAI,CAAC,CAAC,SAAS,KAAK,UAAU,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,iBAAiB,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,iBAAiB,CAAC,MAAM,GAAG,EAAE,CAAC;QAC5I,YAAY,CAAC,4DAA4D,CAAC,CAAC;IAC7E,IAAI,CAAC,CAAC,CAAC,SAAS,KAAK,OAAO,IAAI,CAAC,CAAC,SAAS,KAAK,SAAS,IAAI,CAAC,CAAC,SAAS,KAAK,QAAQ,CAAC,IAAI,CAAC,CAAC,iBAAiB,KAAK,SAAS;QACzH,YAAY,CAAC,GAAG,CAAC,CAAC,SAAS,mCAAmC,CAAC,CAAC;IAClE,IAAI,CAAC,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QAC9B,MAAM,CAAC,GAAG,CAAC,CAAC,OAA8C,CAAC;QAC3D,IAAI,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,KAAK,QAAQ,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,QAAQ,KAAK,SAAS;YAC3F,OAAO,CAAC,CAAC,SAAS,KAAK,QAAQ,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC;YAC3I,OAAO,CAAC,CAAC,GAAG,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;YACzE,YAAY,CAAC,sEAAsE,CAAC,CAAC;IACzF,CAAC;SAAM,IAAI,CAAC,CAAC,OAAO,KAAK,SAAS;QAAE,YAAY,CAAC,GAAG,CAAC,CAAC,SAAS,yBAAyB,CAAC,CAAC;IAC1F,IAAI,UAAuD,CAAC;IAC5D,IAAI,CAAC,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;QAC7B,MAAM,CAAC,GAAG,CAAC,CAAC,UAAiD,CAAC;QAC9D,IAAI,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,2BAA2B;YACvE,YAAY,CAAC,qEAAqE,CAAC,CAAC;QACtF,MAAM,MAAM,GAAG,CAAC,CAAC,MAA6C,CAAC;QAC/D,IAAI,OAAO,CAAC,CAAC,EAAE,KAAK,QAAQ,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YACzD,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,0BAA0B;YAC9E,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,IAAI,OAAO,MAAM,CAAC,YAAY,KAAK,QAAQ;YAC/G,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,UAAU,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,UAAU,GAAG,CAAC;YAC3H,YAAY,CAAC,uGAAuG,CAAC,CAAC;QACxH,oBAAoB,CAAC,MAAM,CAAC,YAAY,EAAE,kDAAkD,CAAC,CAAC;QAC9F,oBAAoB,CAAC,CAAC,CAAC,IAAI,EAAE,mCAAmC,CAAC,CAAC;QAClE,IAAI,CAAC,CAAC,IAAI,KAAK,qBAAqB,CAAC,MAAM,CAAC,YAAY,CAAC;YACvD,YAAY,CAAC,iFAAiF,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;QACvH,UAAU,GAAG;YACX,EAAE,EAAE,CAAC,CAAC,EAAE;YACR,MAAM,EAAE;gBACN,KAAK,EAAE,uBAAuB,CAAC,MAAM,CAAC,KAAK,CAAC;gBAC5C,KAAK,EAAE,qBAAqB,CAAC,MAAM,CAAC,KAAK,CAAC;gBAC1C,YAAY,EAAE,MAAM,CAAC,YAAY;aAClC;YACD,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,UAAU,EAAE,CAAC,CAAC,UAAU;SACzB,CAAC;IACJ,CAAC;SAAM,IAAI,CAAC,CAAC,UAAU,KAAK,SAAS;QAAE,YAAY,CAAC,GAAG,CAAC,CAAC,SAAS,4BAA4B,CAAC,CAAC;IAChG,MAAM,GAAG,GAAG,CAAC,CAAC,UAAU,CAAC;IACzB,IAAI,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,YAAY,CAAC,qBAAqB,CAAC,CAAC;IACvG,MAAM,KAAK,GAAG,CAAC,YAAY,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE,eAAe,CAAU,CAAC;IAC1F,MAAM,KAAK,GAAG,GAA8B,CAAC;IAC7C,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,YAAY,CAAC,mCAAmC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC7I,MAAM,UAAU,GAAG,EAAiD,CAAC;IACrE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;QACzB,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,IAAc,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI;YACpH,YAAY,CAAC,cAAc,IAAI,yBAAyB,CAAC,CAAC;QAC5D,MAAM,EAAE,GAAI,IAAyB,CAAC,EAAE,CAAC;QACzC,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC;YAAE,YAAY,CAAC,cAAc,IAAI,yBAAyB,CAAC,CAAC;QACrH,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC;IAC5B,CAAC;IACD,OAAO;QACL,CAAC,EAAE,CAAC;QACJ,IAAI,EAAE,2BAA2B;QACjC,SAAS,EAAE,CAAC,CAAC,SAAS;QACtB,KAAK,EAAE,CAAC,CAAC,KAAe;QACxB,KAAK,EAAE,CAAC,CAAC,KAAe;QACxB,UAAU,EAAE,CAAC,CAAC,UAAoB;QAClC,mBAAmB,EAAE,CAAC,CAAC,mBAA6B;QACpD,SAAS,EAAE,CAAC,CAAC,SAAmB;QAChC,GAAG,CAAC,OAAO,CAAC,CAAC,iBAAiB,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,CAAC,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9F,GAAG,CAAC,CAAC,CAAC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAmD,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzH,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,CAAC,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzF,UAAU;KACX,CAAC;AACJ,CAAC;AAED,yFAAyF;AACzF,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAAC,IAAqC;IACrF,MAAM,CAAC,GAAG,kCAAkC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3D,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC;QACnC,MAAM,IAAI,eAAe,CAAC,mBAAmB,EAAE,gFAAgF,CAAC,CAAC;IACnI,MAAM,MAAM,GAAG,mBAAmB,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IACjD,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACvE,IAAI,CAAC,CAAC,UAAU;QAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IAC5C,IAAI,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,MAAM;QAClC,MAAM,IAAI,eAAe,CAAC,aAAa,EAAE,oGAAoG,CAAC,CAAC;IACjJ,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;IAC3E,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;IACvC,MAAM,QAAQ,GAAG,CAAC,CAAC,SAAS,KAAK,SAAS;QACxC,CAAC,CAAC,CAAC,YAAY,EAAE,UAAU,CAAC;QAC5B,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,UAAU;YAC1B,CAAC,CAAC,CAAC,OAAO,EAAE,YAAY,EAAE,eAAe,CAAC;YAC1C,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,OAAO;gBACvB,CAAC,CAAC,CAAC,YAAY,EAAE,UAAU,CAAC;gBAC9B,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS;oBACzB,CAAC,CAAC,CAAC,gBAAgB,CAAC;oBACpB,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,QAAQ;wBACxB,CAAC,CAAC,CAAC,qBAAqB,CAAC;wBAC3B,CAAC,CAAC,CAAC,YAAY,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE,eAAe,CAAC,CAAC;IAC3E,KAAK,MAAM,IAAI,IAAI,QAAQ;QACzB,IAAI,CAAC,CAAC,IAAI,IAAI,WAAW,CAAC;YACxB,MAAM,IAAI,eAAe,CAAC,UAAU,EAAE,mBAAmB,CAAC,CAAC,SAAS,sCAAsC,IAAI,EAAE,CAAC,CAAC;IACtH,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IAC1C,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAW,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC;IACpF,OAAO;QACL,CAAC,EAAE,CAAC;QACJ,IAAI,EAAE,2BAA2B;QACjC,SAAS,EAAE,CAAC,CAAC,SAAS;QACtB,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,UAAU,EAAE,CAAC,CAAC,UAAU;QACxB,YAAY,EAAE,CAAC,CAAC,mBAAmB;QACnC,SAAS,EAAE,CAAC,CAAC,SAAS;QACtB,GAAG,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,CAAC,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1E,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrD,QAAQ;QACR,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;QAC5B,MAAM;QACN,UAAU,EAAE,CAAC,CAAC,UAAU;QACxB,GAAG,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,qBAAqB,EAAE,MAAM,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAChG,WAAW;KACZ,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"manager-authority.js","sourceRoot":"","sources":["../src/manager-authority.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,4 +3,8 @@ import { type EpGateState, type RemoteManagerAuthorityRequest } from "@cotal-ai/
|
|
|
3
3
|
* protocol verifies the submitted cluster document matches this exact security-relevant shape;
|
|
4
4
|
* schemas remain content-addressed artifacts and their digests ride each command. */
|
|
5
5
|
export declare function reconstructRemoteManagerServeGrant(request: RemoteManagerAuthorityRequest, owner: string, _serveActor: string, observed: EpGateState): import("@cotal-ai/core").EpServeGrant;
|
|
6
|
+
/** One grant derivation for activation (the submitted canonical document) and standing renewal
|
|
7
|
+
* (the document the registered service spec names in the content store). Renewal carries no
|
|
8
|
+
* artifacts, so the same surface is re-derived from registered state rather than from the request. */
|
|
9
|
+
export declare function remoteManagerServeGrantFromCluster(request: Pick<RemoteManagerAuthorityRequest, "space" | "instanceId">, owner: string, document: unknown, observed: EpGateState): import("@cotal-ai/core").EpServeGrant;
|
|
6
10
|
//# sourceMappingURL=manager-contract.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager-contract.d.ts","sourceRoot":"","sources":["../src/manager-contract.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,WAAW,EAChB,KAAK,6BAA6B,EACnC,MAAM,gBAAgB,CAAC;AAExB;;qFAEqF;AACrF,wBAAgB,kCAAkC,CAChD,OAAO,EAAE,6BAA6B,EACtC,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"manager-contract.d.ts","sourceRoot":"","sources":["../src/manager-contract.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,WAAW,EAChB,KAAK,6BAA6B,EACnC,MAAM,gBAAgB,CAAC;AAExB;;qFAEqF;AACrF,wBAAgB,kCAAkC,CAChD,OAAO,EAAE,6BAA6B,EACtC,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,WAAW,yCAQtB;AAED;;sGAEsG;AACtG,wBAAgB,kCAAkC,CAChD,OAAO,EAAE,IAAI,CAAC,6BAA6B,EAAE,OAAO,GAAG,YAAY,CAAC,EACpE,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,OAAO,EACjB,QAAQ,EAAE,WAAW,yCA6CtB"}
|
package/dist/manager-contract.js
CHANGED
|
@@ -4,7 +4,13 @@ import { authorizeTrustedServeSnapshot, contractDigest, remoteManagerActors, } f
|
|
|
4
4
|
* schemas remain content-addressed artifacts and their digests ride each command. */
|
|
5
5
|
export function reconstructRemoteManagerServeGrant(request, owner, _serveActor, observed) {
|
|
6
6
|
const artifacts = request.contractArtifacts ?? [];
|
|
7
|
-
|
|
7
|
+
return remoteManagerServeGrantFromCluster(request, owner, artifacts.find((value) => value && typeof value === "object" && value.urn === "ai.cotal.manager"), observed);
|
|
8
|
+
}
|
|
9
|
+
/** One grant derivation for activation (the submitted canonical document) and standing renewal
|
|
10
|
+
* (the document the registered service spec names in the content store). Renewal carries no
|
|
11
|
+
* artifacts, so the same surface is re-derived from registered state rather than from the request. */
|
|
12
|
+
export function remoteManagerServeGrantFromCluster(request, owner, document, observed) {
|
|
13
|
+
const cluster = document;
|
|
8
14
|
if (!cluster || !Number.isSafeInteger(cluster.revision) || !Array.isArray(cluster.commands) || cluster.commands.length === 0)
|
|
9
15
|
throw new Error("manager-service activation did not carry the canonical manager cluster document");
|
|
10
16
|
const surface = Object.create(null);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager-contract.js","sourceRoot":"","sources":["../src/manager-contract.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,6BAA6B,EAC7B,cAAc,EACd,mBAAmB,GAIpB,MAAM,gBAAgB,CAAC;AAExB;;qFAEqF;AACrF,MAAM,UAAU,kCAAkC,CAChD,OAAsC,EACtC,KAAa,EACb,WAAmB,EACnB,QAAqB;IAErB,MAAM,SAAS,GAAG,OAAO,CAAC,iBAAiB,IAAI,EAAE,CAAC;IAClD,
|
|
1
|
+
{"version":3,"file":"manager-contract.js","sourceRoot":"","sources":["../src/manager-contract.ts"],"names":[],"mappings":"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"}
|
package/dist/permissions.d.ts
CHANGED
|
@@ -6,7 +6,20 @@
|
|
|
6
6
|
* and resolves the agent's channel ACL server-side, then hands core a `MintPrincipal`.
|
|
7
7
|
*/
|
|
8
8
|
import { type MintOpts } from "@cotal-ai/core";
|
|
9
|
-
import type { ValidatedUserToken } from "./token.js";
|
|
9
|
+
import type { UserTokenSession, ValidatedUserToken } from "./token.js";
|
|
10
|
+
/** #2312: the identity plane's session decision (see `session-redemption.ts`). */
|
|
11
|
+
export type SessionVerifier = (principal: {
|
|
12
|
+
owner: string;
|
|
13
|
+
actor: string;
|
|
14
|
+
lifecycleUid?: string;
|
|
15
|
+
}, claim: {
|
|
16
|
+
endpoint: string;
|
|
17
|
+
sessionId: string;
|
|
18
|
+
epoch: number;
|
|
19
|
+
}) => Promise<UserTokenSession>;
|
|
20
|
+
/** Out-of-band key on a session-caller permission set: the grant expiry (unix seconds) the callout
|
|
21
|
+
* binds the minted JWT to, instead of the bearer's. Stripped before the JWT is encoded. */
|
|
22
|
+
export declare const SESSION_EXP = "__cotalSessionExp";
|
|
10
23
|
/** The per-agent channel/role ACL a user-mode grant needs — resolved SERVER-SIDE (the spawn ledger /
|
|
11
24
|
* persona registry, keyed by the authenticated principal), because the user token carries the identity
|
|
12
25
|
* and capabilities but NOT the channel read/post ACL. Injected by the composition root that launches the
|
|
@@ -30,4 +43,5 @@ export type AclResolver = (t: ValidatedUserToken) => Pick<MintOpts, "allowSubscr
|
|
|
30
43
|
*/
|
|
31
44
|
export declare function calloutPermissions(resolveAcl: AclResolver): (t: ValidatedUserToken, connId: string) => Record<string, unknown>;
|
|
32
45
|
export declare function calloutPermissions(resolveAcl: AclResolver, authorizeManagerCaller: (owner: string, instanceId: string) => Promise<void>): (t: ValidatedUserToken, connId: string) => Record<string, unknown> | Promise<Record<string, unknown>>;
|
|
46
|
+
export declare function calloutPermissions(resolveAcl: AclResolver, authorizeManagerCaller: (owner: string, instanceId: string) => Promise<void>, verifySession: SessionVerifier): (t: ValidatedUserToken, connId: string) => Record<string, unknown> | Promise<Record<string, unknown>>;
|
|
33
47
|
//# sourceMappingURL=permissions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../src/permissions.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAA+D,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE5G,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../src/permissions.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAA+D,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE5G,OAAO,KAAK,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEvE,kFAAkF;AAClF,MAAM,MAAM,eAAe,GAAG,CAC5B,SAAS,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,EAClE,KAAK,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,KAC1D,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAE/B;4FAC4F;AAC5F,eAAO,MAAM,WAAW,sBAAsB,CAAC;AAE/C;;;8FAG8F;AAC9F,MAAM,MAAM,WAAW,GAAG,CACxB,CAAC,EAAE,kBAAkB,KAClB,IAAI,CAAC,QAAQ,EAAE,gBAAgB,GAAG,cAAc,GAAG,MAAM,GAAG,cAAc,CAAC,GAAG;IACjF;iGAC6F;IAC7F,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,WAAW,GAAG,CAAC,CAAC,EAAE,kBAAkB,EAAE,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAChI,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,WAAW,EACvB,sBAAsB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GAC3E,CAAC,CAAC,EAAE,kBAAkB,EAAE,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AACzG,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,WAAW,EACvB,sBAAsB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,EAC5E,aAAa,EAAE,eAAe,GAC7B,CAAC,CAAC,EAAE,kBAAkB,EAAE,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC"}
|
package/dist/permissions.js
CHANGED
|
@@ -7,7 +7,10 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import { permissionsFor, assertDerivedOwnerToken } from "@cotal-ai/core";
|
|
9
9
|
import { VIEW_REQUIRED_SCOPE } from "./token.js";
|
|
10
|
-
|
|
10
|
+
/** Out-of-band key on a session-caller permission set: the grant expiry (unix seconds) the callout
|
|
11
|
+
* binds the minted JWT to, instead of the bearer's. Stripped before the JWT is encoded. */
|
|
12
|
+
export const SESSION_EXP = "__cotalSessionExp";
|
|
13
|
+
export function calloutPermissions(resolveAcl, authorizeManagerCaller, verifySession) {
|
|
11
14
|
return (t, connId) => {
|
|
12
15
|
assertDerivedOwnerToken(t.owner); // user-mode owners are derived — never `local`, never an nkey
|
|
13
16
|
const caps = t.act.scope ?? [];
|
|
@@ -49,6 +52,22 @@ export function calloutPermissions(resolveAcl, authorizeManagerCaller) {
|
|
|
49
52
|
throw new Error(`callout permissions: view "${t.act.view}" without capability "${need}" in act.scope - refusing to mint`);
|
|
50
53
|
if (t.act.view === "manager-service")
|
|
51
54
|
throw new Error('callout permissions: "manager-service" is a typed material exchange, not a connect profile; raw view bearers are refused');
|
|
55
|
+
if (t.act.view === "session-caller") {
|
|
56
|
+
// #2312: the SAME `session-caller` rows the static arm mints, for the ONE session the
|
|
57
|
+
// identity plane re-verifies here against the live session row (the exchange already did
|
|
58
|
+
// once; a session ended or a manager restarted since then refuses at this mint).
|
|
59
|
+
const claim = t.act.session;
|
|
60
|
+
if (!verifySession)
|
|
61
|
+
throw new Error("callout permissions: session-caller needs the server-side session verifier");
|
|
62
|
+
return verifySession({ owner: t.owner, actor: t.act.actor, lifecycleUid: t.act.lifecycleUid }, { endpoint: claim.endpoint, sessionId: claim.sessionId, epoch: claim.epoch }).then((s) => {
|
|
63
|
+
if (s.exp !== claim.exp)
|
|
64
|
+
throw new Error("callout permissions: the session row's expiry is not the bearer's session claim");
|
|
65
|
+
return {
|
|
66
|
+
...permissionsFor("session-caller", t.space, principal, { sessionCaller: { endpoint: s.endpoint, sessionId: s.sessionId, epoch: s.epoch } }),
|
|
67
|
+
[SESSION_EXP]: s.exp,
|
|
68
|
+
};
|
|
69
|
+
});
|
|
70
|
+
}
|
|
52
71
|
if (t.act.view === "manager-caller") {
|
|
53
72
|
const instanceId = t.act.managerInstanceId;
|
|
54
73
|
if (!authorizeManagerCaller)
|
package/dist/permissions.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permissions.js","sourceRoot":"","sources":["../src/permissions.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,cAAc,EAAE,uBAAuB,EAAqC,MAAM,gBAAgB,CAAC;AAC5G,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"permissions.js","sourceRoot":"","sources":["../src/permissions.ts"],"names":[],"mappings":"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"}
|
package/dist/provider.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAsD,KAAK,YAAY,
|
|
1
|
+
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAsD,KAAK,YAAY,EAAgyB,MAAM,gBAAgB,CAAC;AA6Cr4B,eAAO,MAAM,iBAAiB,EAAE,YAimB/B,CAAC"}
|