@cotal-ai/auth 0.90.1 → 0.92.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/authority-client.d.ts +70 -3
- package/dist/authority-client.d.ts.map +1 -1
- package/dist/authority-client.js +113 -9
- package/dist/authority-client.js.map +1 -1
- package/dist/chat-parent-pin.d.ts +43 -0
- package/dist/chat-parent-pin.d.ts.map +1 -0
- package/dist/chat-parent-pin.js +115 -0
- package/dist/chat-parent-pin.js.map +1 -0
- package/dist/chat-session-authority.d.ts +120 -0
- package/dist/chat-session-authority.d.ts.map +1 -0
- package/dist/chat-session-authority.js +924 -0
- package/dist/chat-session-authority.js.map +1 -0
- package/dist/chat-session-row.d.ts +117 -0
- package/dist/chat-session-row.d.ts.map +1 -0
- package/dist/chat-session-row.js +358 -0
- package/dist/chat-session-row.js.map +1 -0
- package/dist/chat-session-store.d.ts +126 -0
- package/dist/chat-session-store.d.ts.map +1 -0
- package/dist/chat-session-store.js +392 -0
- package/dist/chat-session-store.js.map +1 -0
- package/dist/commands.d.ts +3 -1
- package/dist/commands.d.ts.map +1 -1
- package/dist/commands.js +527 -125
- package/dist/commands.js.map +1 -1
- package/dist/continuity.js +1 -1
- package/dist/continuity.js.map +1 -1
- package/dist/daemon-flags.d.ts +42 -0
- package/dist/daemon-flags.d.ts.map +1 -0
- package/dist/daemon-flags.js +12 -0
- package/dist/daemon-flags.js.map +1 -0
- package/dist/handle-inspect.d.ts +101 -0
- package/dist/handle-inspect.d.ts.map +1 -0
- package/dist/handle-inspect.js +50 -0
- package/dist/handle-inspect.js.map +1 -0
- package/dist/handle-verification.d.ts +75 -0
- package/dist/handle-verification.d.ts.map +1 -0
- package/dist/handle-verification.js +135 -0
- package/dist/handle-verification.js.map +1 -0
- package/dist/idp.d.ts +23 -1
- package/dist/idp.d.ts.map +1 -1
- package/dist/idp.js +54 -8
- package/dist/idp.js.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/ledger.d.ts +58 -5
- package/dist/ledger.d.ts.map +1 -1
- package/dist/ledger.js +126 -6
- package/dist/ledger.js.map +1 -1
- package/dist/lifecycle-registry.d.ts +1 -70
- package/dist/lifecycle-registry.d.ts.map +1 -1
- package/dist/lifecycle-registry.js +4 -35
- package/dist/lifecycle-registry.js.map +1 -1
- package/dist/login.d.ts +9 -0
- package/dist/login.d.ts.map +1 -1
- package/dist/login.js +53 -8
- package/dist/login.js.map +1 -1
- package/dist/manager-authority.d.ts +59 -3
- package/dist/manager-authority.d.ts.map +1 -1
- package/dist/manager-authority.js +185 -4
- package/dist/manager-authority.js.map +1 -1
- package/dist/native-service-gate.d.ts +14 -3
- package/dist/native-service-gate.d.ts.map +1 -1
- package/dist/native-service-gate.js +34 -20
- package/dist/native-service-gate.js.map +1 -1
- package/dist/native-service-name.d.ts +7 -0
- package/dist/native-service-name.d.ts.map +1 -1
- package/dist/native-service-name.js +15 -6
- package/dist/native-service-name.js.map +1 -1
- package/dist/permissions.js +4 -0
- package/dist/permissions.js.map +1 -1
- package/dist/platform-control.d.ts.map +1 -1
- package/dist/platform-control.js +1 -0
- package/dist/platform-control.js.map +1 -1
- package/dist/provider.d.ts +23 -0
- package/dist/provider.d.ts.map +1 -1
- package/dist/provider.js +252 -44
- package/dist/provider.js.map +1 -1
- package/dist/run-cancel-observation.d.ts +50 -0
- package/dist/run-cancel-observation.d.ts.map +1 -0
- package/dist/run-cancel-observation.js +146 -0
- package/dist/run-cancel-observation.js.map +1 -0
- package/dist/service-adapter.d.ts +6 -0
- package/dist/service-adapter.d.ts.map +1 -0
- package/dist/service-adapter.js +120 -0
- package/dist/service-adapter.js.map +1 -0
- package/dist/service-custody.d.ts +29 -20
- package/dist/service-custody.d.ts.map +1 -1
- package/dist/service-custody.js +37 -167
- package/dist/service-custody.js.map +1 -1
- package/dist/service-endpoint-authority.d.ts +70 -0
- package/dist/service-endpoint-authority.d.ts.map +1 -0
- package/dist/service-endpoint-authority.js +257 -0
- package/dist/service-endpoint-authority.js.map +1 -0
- package/dist/service-host-contract.d.ts +158 -16
- package/dist/service-host-contract.d.ts.map +1 -1
- package/dist/service-host-contract.js +330 -1
- package/dist/service-host-contract.js.map +1 -1
- package/dist/service-host-ops.d.ts +550 -0
- package/dist/service-host-ops.d.ts.map +1 -0
- package/dist/service-host-ops.js +2180 -0
- package/dist/service-host-ops.js.map +1 -0
- package/dist/service-write.d.ts +141 -0
- package/dist/service-write.d.ts.map +1 -0
- package/dist/service-write.js +179 -0
- package/dist/service-write.js.map +1 -0
- package/dist/service.d.ts +115 -3
- package/dist/service.d.ts.map +1 -1
- package/dist/service.js +697 -92
- package/dist/service.js.map +1 -1
- package/dist/store.d.ts +10 -0
- package/dist/store.d.ts.map +1 -1
- package/dist/store.js +25 -8
- package/dist/store.js.map +1 -1
- package/dist/token.d.ts +1 -1
- package/dist/token.d.ts.map +1 -1
- package/dist/token.js +4 -1
- package/dist/token.js.map +1 -1
- package/package.json +16 -7
package/dist/provider.d.ts
CHANGED
|
@@ -15,4 +15,27 @@
|
|
|
15
15
|
*/
|
|
16
16
|
import { type AuthProvider } from "@cotal-ai/core";
|
|
17
17
|
export declare const cotalAuthProvider: AuthProvider;
|
|
18
|
+
/** Where one chat session's requests go and how this machine proves itself there, fixed at its
|
|
19
|
+
* open. `local`: the auth service recorded under this target's own state dir, whose URL and 0600
|
|
20
|
+
* capability are re-read from that dir per request (a restart moves them), under the IdP the open
|
|
21
|
+
* pinned. `remote`: the exchange origin the registry entry pinned at open, capless. The sentinel
|
|
22
|
+
* creds are read once, at open. */
|
|
23
|
+
export type ChatSessionRoute = {
|
|
24
|
+
kind: "local";
|
|
25
|
+
dir: string;
|
|
26
|
+
idpUrl: string;
|
|
27
|
+
sentinelCreds: string;
|
|
28
|
+
} | {
|
|
29
|
+
kind: "remote";
|
|
30
|
+
base: string;
|
|
31
|
+
idpUrl: string;
|
|
32
|
+
sentinelCreds: string;
|
|
33
|
+
};
|
|
34
|
+
/** The open's narrowing check: the route resolved here must be the position the caller resolved.
|
|
35
|
+
* A remote route needs the same exchange origin, a local route needs no `exchangeUrl`, and both need
|
|
36
|
+
* the same IdP, each compared after the normalization that pinned it. Refuses before any request. */
|
|
37
|
+
export declare function assertChatRouteExpected(route: ChatSessionRoute, space: string, expect: {
|
|
38
|
+
idpUrl: string;
|
|
39
|
+
exchangeUrl?: string;
|
|
40
|
+
}): void;
|
|
18
41
|
//# sourceMappingURL=provider.d.ts.map
|
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,
|
|
1
|
+
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAA6H,KAAK,YAAY,EAA6zB,MAAM,gBAAgB,CAAC;AA4Ez+B,eAAO,MAAM,iBAAiB,EAAE,YAyhB/B,CAAC;AA4NF;;;;oCAIoC;AACpC,MAAM,MAAM,gBAAgB,GACxB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,GACrE;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,CAAC;AAoC5E;;sGAEsG;AACtG,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAyBtI"}
|
package/dist/provider.js
CHANGED
|
@@ -14,17 +14,61 @@
|
|
|
14
14
|
* discovery file the daemon writes only after BOTH planes are bound, then confirm /health).
|
|
15
15
|
*/
|
|
16
16
|
import { isLoopbackLiteral, registry } from "@cotal-ai/core";
|
|
17
|
-
import { assertUserAuthInfo, findMesh, homeCotalDir, probeLiveness, spaceSegment } from "@cotal-ai/workspace";
|
|
17
|
+
import { assertUserAuthInfo, credentialFailure, findMesh, homeCotalDir, probeLiveness, spaceSegment } from "@cotal-ai/workspace";
|
|
18
18
|
import { readFileSync } from "node:fs";
|
|
19
|
-
import {
|
|
20
|
-
import {
|
|
19
|
+
import { resolve, sep } from "node:path";
|
|
20
|
+
import { AgentGrantConflictError, EP_ERROR_CODES, EpEnvelopeError } from "@cotal-ai/core";
|
|
21
21
|
import { parseServiceAuthorityEnvelope, parseServiceAuthorityRequest } from "@cotal-ai/core";
|
|
22
22
|
import { readRemoteServiceAuthorityInfo, postRemoteServiceAuthority, serviceAuthorityUrl, withServiceAuthorityBudget, assertServiceViewFreshness } from "./service-authority-client.js";
|
|
23
|
-
import { deleteIdpSpaceCatalog, fetchIdpJwt, hasIdpSessions, hasIdpSpaceCatalog, loadIdpSession, prepareIdpSpaceCatalogs, probeIdpJwks, requireIdpSession } from "./login.js";
|
|
23
|
+
import { deleteIdpSpaceCatalog, fetchIdpJwt, hasIdpSessions, hasIdpSpaceCatalog, loadIdpSession, normalizeIdpUrl, prepareIdpSpaceCatalogs, probeIdpJwks, requireIdpSession } from "./login.js";
|
|
24
24
|
import { deriveOwnerForIdpSubject } from "./derive.js";
|
|
25
|
-
import { findActorUnified, findInteractiveActor,
|
|
25
|
+
import { findActorUnified, findInteractiveActor, hashActorToken, newActorToken, withManagedGrantTransaction } from "./ledger.js";
|
|
26
26
|
import { userAuthTrustFingerprint, validateRetainedManagedAgent } from "./continuity.js";
|
|
27
|
-
import { AUTH_PROVIDER_NAME, authCalloutKey, authClientSentinelKey, authIssuerKey, authOwnerSecretKey, authServiceKeysKey, ensureCalloutAuth, ensureIssuer, ensureOwnerSecret, ensurePinnedIdp, loadAuthServiceInfo, loadCalloutAuth, loadOwnerSecret, loadPinnedIdp, saveServiceKeys, } from "./store.js";
|
|
27
|
+
import { AUTH_PROVIDER_NAME, authCalloutKey, authClientSentinelKey, authIssuerKey, authOwnerSecretKey, authServiceKeysKey, checkPinnedIdp, ensureCalloutAuth, ensureIssuer, ensureOwnerSecret, ensurePinnedIdp, loadAuthServiceInfo, loadCalloutAuth, loadOwnerSecret, loadPinnedIdp, saveServiceKeys, } from "./store.js";
|
|
28
|
+
/** The pre-effect half of {@link cotalAuthProvider.prepareServer}: the space segment, the IdP pin
|
|
29
|
+
* requirement and match, and on a first enable the JWKS probe. Reads only: no directory, pin, key
|
|
30
|
+
* or daemon is created. `prepareServer` runs this same function first and throws its message, so
|
|
31
|
+
* the checks and their sentences cannot drift. The reason is set by which check refused, never by
|
|
32
|
+
* matching message text. */
|
|
33
|
+
async function preflightServerInput({ space, dir, idpUrl }) {
|
|
34
|
+
const refuse = (reason, error) => ({ ok: false, reason, message: error instanceof Error ? error.message : String(error) });
|
|
35
|
+
// Fail BEFORE mutation: a degenerate space (`.`/`..`/empty) must be refused before the IdP
|
|
36
|
+
// probe/pin below can touch anything at a caller-provided dir.
|
|
37
|
+
try {
|
|
38
|
+
spaceSegment(space);
|
|
39
|
+
}
|
|
40
|
+
catch (error) {
|
|
41
|
+
return refuse("invalid", error);
|
|
42
|
+
}
|
|
43
|
+
// An existing pin is read first. An unreadable pin, or one the given `--idp` does not match, is
|
|
44
|
+
// a conflict with persisted state; neither is replaced here.
|
|
45
|
+
let existing;
|
|
46
|
+
try {
|
|
47
|
+
existing = loadPinnedIdp(dir);
|
|
48
|
+
}
|
|
49
|
+
catch (error) {
|
|
50
|
+
return refuse("conflict", error);
|
|
51
|
+
}
|
|
52
|
+
let checked;
|
|
53
|
+
try {
|
|
54
|
+
checked = checkPinnedIdp(dir, idpUrl);
|
|
55
|
+
}
|
|
56
|
+
catch (error) {
|
|
57
|
+
return refuse(existing ? "conflict" : idpUrl === undefined ? "required" : "invalid", error);
|
|
58
|
+
}
|
|
59
|
+
// On a FRESH enable, prove the IdP actually serves a JWKS before a space is provisioned around
|
|
60
|
+
// it. Skip on re-up: an already-pinned IdP was validated at first enable, and re-probing every
|
|
61
|
+
// boot would couple mesh liveness to IdP liveness.
|
|
62
|
+
if (checked.fresh) {
|
|
63
|
+
try {
|
|
64
|
+
await probeIdpJwks(idpUrl ?? checked.pin.url);
|
|
65
|
+
}
|
|
66
|
+
catch (error) {
|
|
67
|
+
return refuse("unavailable", error);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
return { ok: true };
|
|
71
|
+
}
|
|
28
72
|
const READY_TIMEOUT_MS = 15_000;
|
|
29
73
|
/** The pid-bound extension of the readiness wait (#1931): while the daemon the caller LAUNCHED
|
|
30
74
|
* (or found live) is provably alive, the wait continues past READY_TIMEOUT_MS up to this bound.
|
|
@@ -42,9 +86,14 @@ const READY_MAX_WAIT_MS = 60_000;
|
|
|
42
86
|
function pidAlive(pid) {
|
|
43
87
|
return probeLiveness(pid) === "alive";
|
|
44
88
|
}
|
|
89
|
+
const deprovisionSecretKeys = (space) => [authCalloutKey(space), authIssuerKey(space), authOwnerSecretKey(space), authServiceKeysKey(space), authClientSentinelKey(space)];
|
|
45
90
|
export const cotalAuthProvider = {
|
|
46
91
|
kind: "auth-provider",
|
|
47
92
|
name: AUTH_PROVIDER_NAME,
|
|
93
|
+
async requestRemoteRunSubmission({ store, dir, request }) {
|
|
94
|
+
const { endpoint, idpUrl, authorization } = await managerAuthorityEndpoint(store, dir, request.space, "keyed run submission");
|
|
95
|
+
return postManagerAuthority(endpoint, idpUrl, authorization, request, "keyed run submission");
|
|
96
|
+
},
|
|
48
97
|
async requestRemoteRunAdmission({ store, dir, request }) {
|
|
49
98
|
const { endpoint, idpUrl, authorization } = await managerAuthorityEndpoint(store, dir, request.space, "admitting a hosted run");
|
|
50
99
|
return postManagerAuthority(endpoint, idpUrl, authorization, request, "manager run admission");
|
|
@@ -53,6 +102,10 @@ export const cotalAuthProvider = {
|
|
|
53
102
|
const { endpoint, idpUrl, authorization } = await managerAuthorityEndpoint(store, dir, request.space, "issuing hosted run credentials");
|
|
54
103
|
return postManagerAuthority(endpoint, idpUrl, authorization, request, "manager run issuance");
|
|
55
104
|
},
|
|
105
|
+
async requestRemoteRunCancel({ store, dir, request }) {
|
|
106
|
+
const { endpoint, idpUrl, authorization } = await managerAuthorityEndpoint(store, dir, request.space, "cancelling a hosted run");
|
|
107
|
+
return postManagerAuthority(endpoint, idpUrl, authorization, request, "manager run cancel");
|
|
108
|
+
},
|
|
56
109
|
async requestRemoteRunRevoke({ store, dir, request }) {
|
|
57
110
|
const { endpoint, idpUrl, authorization } = await managerAuthorityEndpoint(store, dir, request.space, "revoking a hosted run");
|
|
58
111
|
return postManagerAuthority(endpoint, idpUrl, authorization, request, "manager run revoke");
|
|
@@ -73,18 +126,15 @@ export const cotalAuthProvider = {
|
|
|
73
126
|
},
|
|
74
127
|
hasSpaceCatalog: ({ dir, idpUrl, sub }) => hasIdpSpaceCatalog(dir, idpUrl, sub),
|
|
75
128
|
removeSpaceCatalog: ({ dir, idpUrl, sub }) => deleteIdpSpaceCatalog(dir, idpUrl, sub),
|
|
129
|
+
preflightServer: preflightServerInput,
|
|
76
130
|
async prepareServer(input) {
|
|
77
131
|
const { space, store, dir, idpUrl } = input;
|
|
78
|
-
//
|
|
79
|
-
//
|
|
80
|
-
//
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
// that only errors at the first user connect. Skip on re-up (an already-pinned IdP was validated
|
|
85
|
-
// at first enable; re-probing every boot would couple mesh liveness to IdP liveness).
|
|
86
|
-
if (idpUrl && !loadPinnedIdp(dir))
|
|
87
|
-
await probeIdpJwks(idpUrl);
|
|
132
|
+
// The same read-only checks a caller may already have run through `preflightServer`. They run
|
|
133
|
+
// again here because this call is authoritative: a pin written by another process between the
|
|
134
|
+
// two calls is honored by `ensurePinnedIdp` below exactly as before.
|
|
135
|
+
const verdict = await preflightServerInput({ space, dir, idpUrl });
|
|
136
|
+
if (!verdict.ok)
|
|
137
|
+
throw new Error(verdict.message);
|
|
88
138
|
// Pin the IdP FIRST, so a fresh `up --user-auth` without --idp fails on the config error before
|
|
89
139
|
// any key material is generated.
|
|
90
140
|
const idp = ensurePinnedIdp(dir, idpUrl);
|
|
@@ -103,7 +153,8 @@ export const cotalAuthProvider = {
|
|
|
103
153
|
extraAccounts: [{ pub: callout.account.pub, jwt: callout.account.jwt }],
|
|
104
154
|
publicAuth: publicAuth,
|
|
105
155
|
service: {
|
|
106
|
-
|
|
156
|
+
// The hidden twin of `auth-service`, so `up` does not print the deprecation warning.
|
|
157
|
+
command: "__daemon-auth-service",
|
|
107
158
|
// Readiness = the daemon wrote its discovery file (which it does only after the callout SUB
|
|
108
159
|
// is flushed AND the HTTP listener is bound) and /health answers. Poll until timeoutMs,
|
|
109
160
|
// then THROW with the reason — the caller (`up`) surfaces it loudly (U5), never records a
|
|
@@ -191,7 +242,7 @@ export const cotalAuthProvider = {
|
|
|
191
242
|
throw new Error(`the user-auth service for space "${space}" records pid ${info.pid}, whose liveness cannot be determined - the kernel answered neither "running" nor "no such process" (a seccomp filter or LSM policy does this inside some sandboxes).\n` +
|
|
192
243
|
`Refusing rather than claiming it is down: verify with \`ps -p ${info.pid}\` before restarting anything.`);
|
|
193
244
|
if (!info || !pidAlive(info.pid))
|
|
194
|
-
throw
|
|
245
|
+
throw credentialFailure("unavailable", `the user-auth service for space "${space}" is not running - restart it with \`cotal up\` (or \`cotal auth-service --space ${space} --server <broker>\`)`);
|
|
195
246
|
// Fresh short-lived IdP proof per connect — IdP-side revocation bites HERE, at the next fetch.
|
|
196
247
|
const idpJwt = await fetchIdpJwt(idp.url, session.token);
|
|
197
248
|
let res;
|
|
@@ -204,13 +255,13 @@ export const cotalAuthProvider = {
|
|
|
204
255
|
});
|
|
205
256
|
}
|
|
206
257
|
catch (e) {
|
|
207
|
-
throw
|
|
258
|
+
throw credentialFailure("unavailable", `the user-auth service for space "${space}" did not answer at ${info.url} (${e instanceof Error ? e.message : String(e)}) - restart it with \`cotal up\``);
|
|
208
259
|
}
|
|
209
260
|
if (!res.ok) {
|
|
210
261
|
const body = (await res.json().catch(() => ({})));
|
|
211
262
|
// A refused exchange is an authenticated denial with the reason (an ungranted actor names
|
|
212
263
|
// the grant command); surface it verbatim — the service's copy is already operator-exact.
|
|
213
|
-
throw
|
|
264
|
+
throw credentialFailure("refused", `signed in, but the exchange for actor "${actor}"${view ? ` (view "${view}")` : ""} was refused: ${body.error ?? `HTTP ${res.status}`}`);
|
|
214
265
|
}
|
|
215
266
|
const out = (await res.json().catch(() => ({})));
|
|
216
267
|
if (typeof out.token !== "string" || !out.token)
|
|
@@ -243,6 +294,39 @@ export const cotalAuthProvider = {
|
|
|
243
294
|
return { result, sentinelCreds };
|
|
244
295
|
}, startedAt);
|
|
245
296
|
},
|
|
297
|
+
/** Client side of chat admission: a fresh IdP proof plus the holder HASH. The holder secret
|
|
298
|
+
* itself stays with the caller. The route this open resolved is kept, in this process only, for
|
|
299
|
+
* the session's later bearer exchanges and its retirement. */
|
|
300
|
+
async openChatSession({ store, dir, space, holderHash, label, read, post, ttlSec, expect }) {
|
|
301
|
+
const route = await resolveChatSessionRoute(store, dir, space);
|
|
302
|
+
if (expect !== undefined)
|
|
303
|
+
assertChatRouteExpected(route, space, expect);
|
|
304
|
+
const r = (await postChatSession(route, space, "open", { holderHash, ...(label !== undefined ? { label } : {}), read, post, ttlSec }));
|
|
305
|
+
if (typeof r.actor !== "string" || typeof r.lifecycleUid !== "string" || typeof r.expiresAt !== "number")
|
|
306
|
+
throw new EpEnvelopeError("unavailable", `the chat-session open for space "${space}" answered without a session; a reservation it made is reclaimed by the service's sweep`, undefined, "unknown");
|
|
307
|
+
CHAT_SESSION_ROUTES.set(chatRouteKey(dir, space, r.actor), route);
|
|
308
|
+
return { actor: r.actor, lifecycleUid: r.lifecycleUid, expiresAt: r.expiresAt };
|
|
309
|
+
},
|
|
310
|
+
/** A fresh IdP proof plus the holder proof for one short bearer of the ACTIVE session, sent to
|
|
311
|
+
* the route its open resolved. */
|
|
312
|
+
async chatSessionBearer({ dir, space, actor, holderProof }) {
|
|
313
|
+
const route = pinnedChatSessionRoute(dir, space, actor);
|
|
314
|
+
const r = (await postChatSession(route, space, "bearer", { actor, holderProof }));
|
|
315
|
+
if (typeof r.token !== "string" || r.token === "" || typeof r.exp !== "number")
|
|
316
|
+
throw new EpEnvelopeError("unavailable", `the chat-session bearer exchange for space "${space}" returned no bearer - the auth service build may be stale`, undefined, "not-executed");
|
|
317
|
+
return { bearer: r.token, sentinelCreds: route.sentinelCreds, exp: r.exp };
|
|
318
|
+
},
|
|
319
|
+
/** Retire the session at the route its open resolved. `failed` comes back with its pending
|
|
320
|
+
* reason and is never success; the kept route goes once the retirement is terminal. */
|
|
321
|
+
async retireChatSession({ dir, space, actor, lifecycleUid, holderProof }) {
|
|
322
|
+
const route = pinnedChatSessionRoute(dir, space, actor);
|
|
323
|
+
const r = (await postChatSession(route, space, "retire", { actor, lifecycleUid, holderProof }));
|
|
324
|
+
if (r.outcome !== "retired" && r.outcome !== "alreadyRetired" && r.outcome !== "notStarted" && r.outcome !== "failed")
|
|
325
|
+
throw new EpEnvelopeError("unavailable", `the chat-session retirement for space "${space}" answered without an outcome`, undefined, "unknown");
|
|
326
|
+
if (r.outcome !== "failed")
|
|
327
|
+
CHAT_SESSION_ROUTES.delete(chatRouteKey(dir, space, actor));
|
|
328
|
+
return { outcome: r.outcome, ...(typeof r.pending === "string" ? { pending: r.pending } : {}) };
|
|
329
|
+
},
|
|
246
330
|
async managerServiceAuthority({ store, dir, request }) {
|
|
247
331
|
const { endpoint, idpUrl, authorization } = await managerAuthorityEndpoint(store, dir, request.space, "requesting manager-service authority");
|
|
248
332
|
return postManagerAuthority(endpoint, idpUrl, authorization, request, "manager-service authority");
|
|
@@ -439,16 +523,21 @@ export const cotalAuthProvider = {
|
|
|
439
523
|
* IdP-exchangeable by construction) carrying the agent's ACLs + the hash of a fresh per-agent
|
|
440
524
|
* secret. Upsert semantics rotate the secret on respawn — a captured old secret dies the moment
|
|
441
525
|
* its agent is respawned. */
|
|
442
|
-
async grantAgent({ store, dir, space, owner, actor, scope, allowSubscribe, allowPublish, role, parent, label, lifecycleUid, fresh }) {
|
|
526
|
+
async grantAgent({ store, dir, space, owner, actor, scope, allowSubscribe, allowPublish, role, parent, label, lifecycleUid, fresh, custody }) {
|
|
527
|
+
// Async work first: the callout material is loaded before the transaction, never inside it.
|
|
443
528
|
const callout = await loadCalloutAuth(store, space);
|
|
444
529
|
if (!callout)
|
|
445
530
|
throw new Error(`space "${space}" has no user-auth material under ${dir} - enable it with \`cotal up --user-auth --idp <url>\` before spawning user-mode agents`);
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
531
|
+
if (custody?.kind !== "local-manager" && custody?.kind !== "foreground")
|
|
532
|
+
throw new Error("grantAgent: custody is required and is local-manager or foreground; a remote-manager row is written only by the auth service's enrollment");
|
|
533
|
+
// ONE synchronous transaction: the `fresh` occupancy read, the token mint and the write are
|
|
534
|
+
// decided under the same lock, so no other writer can land between the read and the upsert.
|
|
535
|
+
// An earlier occupancy read by the caller authorizes nothing here; this one is authoritative.
|
|
536
|
+
const actorToken = withManagedGrantTransaction(dir, (tx) => {
|
|
537
|
+
if (fresh && tx.read(owner, actor) !== undefined)
|
|
449
538
|
throw new AgentGrantConflictError(actor);
|
|
450
|
-
const
|
|
451
|
-
|
|
539
|
+
const minted = newActorToken();
|
|
540
|
+
tx.grantManaged({
|
|
452
541
|
owner,
|
|
453
542
|
actor,
|
|
454
543
|
scope,
|
|
@@ -457,31 +546,32 @@ export const cotalAuthProvider = {
|
|
|
457
546
|
...(role ? { role } : {}),
|
|
458
547
|
...(parent ? { parent } : {}),
|
|
459
548
|
...(label ? { label } : {}),
|
|
460
|
-
tokenHash,
|
|
549
|
+
tokenHash: minted.tokenHash,
|
|
461
550
|
lifecycleUid,
|
|
551
|
+
custody,
|
|
462
552
|
});
|
|
463
|
-
return
|
|
464
|
-
}
|
|
465
|
-
|
|
466
|
-
claim.release();
|
|
467
|
-
}
|
|
553
|
+
return minted.actorToken;
|
|
554
|
+
});
|
|
555
|
+
return { actorToken, sentinelCreds: callout.sentinelCreds };
|
|
468
556
|
},
|
|
469
|
-
async revokeAgent({ dir, owner, actor, lifecycleUid, actorToken }) {
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
557
|
+
async revokeAgent({ dir, owner, actor, lifecycleUid, actorToken, expectCustody }) {
|
|
558
|
+
if (expectCustody !== undefined && lifecycleUid === undefined)
|
|
559
|
+
throw new Error("revokeAgent: expectCustody pins an exact lifecycle, so lifecycleUid is required with it");
|
|
560
|
+
// The token check and the removal are one transaction: the row compared is the row removed.
|
|
561
|
+
return withManagedGrantTransaction(dir, (tx) => {
|
|
562
|
+
if (actorToken !== undefined && tx.read(owner, actor)?.tokenHash !== hashActorToken(actorToken))
|
|
473
563
|
return false;
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
}
|
|
564
|
+
if (expectCustody !== undefined)
|
|
565
|
+
return tx.revokeManagedIf(owner, actor, { lifecycleUid: lifecycleUid, custody: expectCustody }) === "revoked";
|
|
566
|
+
return lifecycleUid === undefined ? tx.revokeManaged(owner, actor) : tx.revokeManagedAt(owner, actor, lifecycleUid);
|
|
567
|
+
});
|
|
479
568
|
},
|
|
569
|
+
deprovisionSecretKeys,
|
|
480
570
|
/** The delete half of the seam pair: drop secrets and the client sentinel projection, attempting
|
|
481
571
|
* every key even when one fails (idempotent deletes — a failed pass re-runs as-is), then fail loud
|
|
482
572
|
* with everything that failed. The caller sweeps its non-seam local state only after this. */
|
|
483
573
|
async deprovisionSecrets({ store, space }) {
|
|
484
|
-
const keys =
|
|
574
|
+
const keys = deprovisionSecretKeys(space);
|
|
485
575
|
const failures = [];
|
|
486
576
|
for (const key of keys) {
|
|
487
577
|
try {
|
|
@@ -666,7 +756,7 @@ async function remoteUserCredentials(request) {
|
|
|
666
756
|
});
|
|
667
757
|
}
|
|
668
758
|
catch (e) {
|
|
669
|
-
throw
|
|
759
|
+
throw credentialFailure("unavailable", `the exchange for space "${space}" did not answer at ${exchangeUrl} (${e instanceof Error ? e.message : String(e)}) - check the network, or re-register with \`cotal meshes add ${space} --from <url>\` if the mesh moved`);
|
|
670
760
|
}
|
|
671
761
|
if (!res.ok) {
|
|
672
762
|
const body = (await res.json().catch(() => ({})));
|
|
@@ -677,7 +767,7 @@ async function remoteUserCredentials(request) {
|
|
|
677
767
|
// none, say so rather than presenting the bare HTTP status as if it were the reason - this
|
|
678
768
|
// client cannot tell a real service sentence from a status code dressed up as one.
|
|
679
769
|
const actorLabel = `actor "${actor}"${view ? ` (view "${view}")` : ""}`;
|
|
680
|
-
throw
|
|
770
|
+
throw credentialFailure("refused", body.error
|
|
681
771
|
? `signed in, but the exchange for ${actorLabel} was refused: ${body.error}`
|
|
682
772
|
: `signed in, but the exchange for ${actorLabel} was refused, and the exchange face withheld the reason (HTTP ${res.status})`);
|
|
683
773
|
}
|
|
@@ -686,4 +776,122 @@ async function remoteUserCredentials(request) {
|
|
|
686
776
|
throw new Error(`the exchange at ${exchangeUrl} returned no token - the mesh's auth service build may be stale`);
|
|
687
777
|
return { bearer: out.token, sentinelCreds };
|
|
688
778
|
}
|
|
779
|
+
/** Each open session's route, by `(state dir, space, actor)`, in this process's memory only. The
|
|
780
|
+
* holder secret lives in the same process, so no other process can use the session anyway. */
|
|
781
|
+
const CHAT_SESSION_ROUTES = new Map();
|
|
782
|
+
const chatRouteKey = (dir, space, actor) => `${resolve(dir)}\0${space}\0${actor}`;
|
|
783
|
+
/** The route a later request of an open session must use. A session this process did not open
|
|
784
|
+
* has none, and the request refuses before anything is sent. */
|
|
785
|
+
function pinnedChatSessionRoute(dir, space, actor) {
|
|
786
|
+
const route = CHAT_SESSION_ROUTES.get(chatRouteKey(dir, space, actor));
|
|
787
|
+
if (route === undefined)
|
|
788
|
+
throw new EpEnvelopeError("failed-precondition", `chat session "${actor}" in space "${space}" was not opened by this process; its holder secret and route exist only there - open a new session`, undefined, "not-executed");
|
|
789
|
+
return route;
|
|
790
|
+
}
|
|
791
|
+
/** Resolve a space's chat-session route once, at open: the local service when this machine hosts
|
|
792
|
+
* the space's user-auth material, else the registry entry's pinned exchange origin. */
|
|
793
|
+
async function resolveChatSessionRoute(store, dir, space) {
|
|
794
|
+
const idp = loadPinnedIdp(dir);
|
|
795
|
+
const callout = await loadCalloutAuth(store, space);
|
|
796
|
+
if (idp && callout)
|
|
797
|
+
return { kind: "local", dir, idpUrl: idp.url, sentinelCreds: callout.sentinelCreds };
|
|
798
|
+
const remote = remoteUserAuthEntry(dir, space);
|
|
799
|
+
if (!remote)
|
|
800
|
+
throw new EpEnvelopeError("unimplemented", `space "${space}" has no user-auth material on this machine - run \`cotal up --user-auth\` where the mesh runs, or register a remote user mesh with \`cotal meshes add ${space} --from <url>\``, undefined, "not-executed");
|
|
801
|
+
const u = new URL(pinnedExchangeUrl(remote.endpoints.url, space));
|
|
802
|
+
u.pathname = u.pathname.slice(0, -"/exchange".length);
|
|
803
|
+
let sentinelCreds;
|
|
804
|
+
try {
|
|
805
|
+
sentinelCreds = readFileSync(remote.sentinelCredsPath, "utf8");
|
|
806
|
+
}
|
|
807
|
+
catch (e) {
|
|
808
|
+
throw new EpEnvelopeError("unavailable", `space "${space}" is registered as a remote user mesh but its sentinel credential at ${remote.sentinelCredsPath} cannot be read (${e instanceof Error ? e.message : String(e)}) - re-register with \`cotal meshes add ${space} --from <url>\``, undefined, "not-executed");
|
|
809
|
+
}
|
|
810
|
+
return { kind: "remote", base: u.toString().replace(/\/$/, ""), idpUrl: remote.idp.url, sentinelCreds };
|
|
811
|
+
}
|
|
812
|
+
/** The open's narrowing check: the route resolved here must be the position the caller resolved.
|
|
813
|
+
* A remote route needs the same exchange origin, a local route needs no `exchangeUrl`, and both need
|
|
814
|
+
* the same IdP, each compared after the normalization that pinned it. Refuses before any request. */
|
|
815
|
+
export function assertChatRouteExpected(route, space, expect) {
|
|
816
|
+
const differs = (what) => {
|
|
817
|
+
throw new EpEnvelopeError("failed-precondition", `the user-auth position for space "${space}" is not the one this command resolved (${what}); nothing was sent - run the command again`, undefined, "not-executed");
|
|
818
|
+
};
|
|
819
|
+
let sameIdp;
|
|
820
|
+
try {
|
|
821
|
+
sameIdp = normalizeIdpUrl(route.idpUrl) === normalizeIdpUrl(expect.idpUrl);
|
|
822
|
+
}
|
|
823
|
+
catch {
|
|
824
|
+
return differs("an IdP URL does not normalize");
|
|
825
|
+
}
|
|
826
|
+
if (!sameIdp)
|
|
827
|
+
differs("its IdP changed");
|
|
828
|
+
if (route.kind === "local") {
|
|
829
|
+
if (expect.exchangeUrl !== undefined)
|
|
830
|
+
differs("it resolved a remote mesh, and this machine hosts the space");
|
|
831
|
+
return;
|
|
832
|
+
}
|
|
833
|
+
if (expect.exchangeUrl === undefined)
|
|
834
|
+
differs("it resolved a local mesh, and the registry names a remote one");
|
|
835
|
+
let expected;
|
|
836
|
+
try {
|
|
837
|
+
const u = new URL(pinnedExchangeUrl(expect.exchangeUrl, space));
|
|
838
|
+
u.pathname = u.pathname.slice(0, -"/exchange".length);
|
|
839
|
+
expected = u.toString().replace(/\/$/, "");
|
|
840
|
+
}
|
|
841
|
+
catch {
|
|
842
|
+
return differs("its exchange URL does not normalize");
|
|
843
|
+
}
|
|
844
|
+
if (expected !== route.base)
|
|
845
|
+
differs("its exchange origin changed");
|
|
846
|
+
}
|
|
847
|
+
/** The URL and authorization for one request on a route. A local route re-reads the service record
|
|
848
|
+
* from its own state dir and refuses when that dir's pinned IdP is no longer the one the open used. */
|
|
849
|
+
function chatSessionTarget(route, space, op) {
|
|
850
|
+
if (route.kind === "remote")
|
|
851
|
+
return { url: `${route.base}/chat-session/${op}` };
|
|
852
|
+
if (loadPinnedIdp(route.dir)?.url !== route.idpUrl)
|
|
853
|
+
throw new EpEnvelopeError("failed-precondition", `the user-auth IdP recorded for space "${space}" changed after this chat session opened; open a new session`, undefined, "not-executed");
|
|
854
|
+
const info = loadAuthServiceInfo(route.dir);
|
|
855
|
+
if (info && probeLiveness(info.pid) === "unknown")
|
|
856
|
+
throw new EpEnvelopeError("unavailable", `the user-auth service for space "${space}" records pid ${info.pid}, whose liveness cannot be determined; verify with \`ps -p ${info.pid}\` before restarting anything`, undefined, "not-executed");
|
|
857
|
+
if (!info || !pidAlive(info.pid))
|
|
858
|
+
throw new EpEnvelopeError("unavailable", `the user-auth service for space "${space}" is not running - restart it with \`cotal up\``, undefined, "not-executed");
|
|
859
|
+
return { url: `${info.url}/chat-session/${op}`, authorization: `Bearer ${info.cap}` };
|
|
860
|
+
}
|
|
861
|
+
/** POST one chat-session request with this machine's fresh IdP proof for the route's IdP. Redirects
|
|
862
|
+
* are refused and their outcome is unknown, because whatever answered may have acted first. A
|
|
863
|
+
* refusal keeps the service's own code and its `executed`, `not-executed` or `unknown` outcome; an
|
|
864
|
+
* answer that states no outcome, a transport failure or an unreadable body is unknown. The holder
|
|
865
|
+
* proof rides only the request body, never an error string. */
|
|
866
|
+
async function postChatSession(route, space, op, fields) {
|
|
867
|
+
const target = chatSessionTarget(route, space, op);
|
|
868
|
+
const session = requireIdpSession(homeCotalDir(), route.idpUrl);
|
|
869
|
+
const idpToken = await fetchIdpJwt(route.idpUrl, session.token);
|
|
870
|
+
let res;
|
|
871
|
+
try {
|
|
872
|
+
res = await fetch(target.url, {
|
|
873
|
+
method: "POST",
|
|
874
|
+
redirect: "manual",
|
|
875
|
+
headers: { "content-type": "application/json", ...(target.authorization ? { authorization: target.authorization } : {}) },
|
|
876
|
+
body: JSON.stringify({ idpToken, ...fields }),
|
|
877
|
+
signal: AbortSignal.timeout(60_000),
|
|
878
|
+
});
|
|
879
|
+
}
|
|
880
|
+
catch (e) {
|
|
881
|
+
throw new EpEnvelopeError("unavailable", `the chat-session ${op} for space "${space}" did not answer at ${target.url} (${e instanceof Error ? e.message : String(e)}); its outcome is unknown`, undefined, "unknown");
|
|
882
|
+
}
|
|
883
|
+
if (res.status >= 300 && res.status < 400)
|
|
884
|
+
throw new EpEnvelopeError("unavailable", `the chat-session ${op} endpoint answered ${res.status} with a redirect; redirects are refused and the request's outcome is unknown`, undefined, "unknown");
|
|
885
|
+
const body = (await res.json().catch(() => undefined));
|
|
886
|
+
if (!res.ok) {
|
|
887
|
+
const b = (body ?? {});
|
|
888
|
+
const code = typeof b.code === "string" && EP_ERROR_CODES.includes(b.code) ? b.code : "unavailable";
|
|
889
|
+
const outcome = b.outcome === "executed" || b.outcome === "not-executed" ? b.outcome : "unknown";
|
|
890
|
+
const why = typeof b.error === "string" && b.error !== "" ? b.error : `HTTP ${res.status}`;
|
|
891
|
+
throw new EpEnvelopeError(code, `signed in, but the chat-session ${op} for space "${space}" was refused: ${why}`, undefined, outcome);
|
|
892
|
+
}
|
|
893
|
+
if (body === undefined || body === null || typeof body !== "object")
|
|
894
|
+
throw new EpEnvelopeError("unavailable", `the chat-session ${op} for space "${space}" answered HTTP ${res.status} with a body that could not be read; its outcome is unknown`, undefined, "unknown");
|
|
895
|
+
return body;
|
|
896
|
+
}
|
|
689
897
|
//# sourceMappingURL=provider.js.map
|
package/dist/provider.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"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"}
|