@cotal-ai/auth 0.52.0 → 0.53.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/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/ledger-scanner.d.ts +2 -0
- package/dist/ledger-scanner.d.ts.map +1 -1
- package/dist/ledger-scanner.js +2 -1
- package/dist/ledger-scanner.js.map +1 -1
- package/dist/manager-authority.d.ts.map +1 -1
- package/dist/manager-authority.js +7 -5
- package/dist/manager-authority.js.map +1 -1
- package/dist/manager-maintenance.d.ts +18 -0
- package/dist/manager-maintenance.d.ts.map +1 -0
- package/dist/manager-maintenance.js +100 -0
- package/dist/manager-maintenance.js.map +1 -0
- package/dist/plane-claim.d.ts +11 -0
- package/dist/plane-claim.d.ts.map +1 -1
- package/dist/plane-claim.js +44 -1
- package/dist/plane-claim.js.map +1 -1
- package/dist/provider.d.ts.map +1 -1
- package/dist/provider.js +76 -5
- package/dist/provider.js.map +1 -1
- package/dist/service.d.ts +8 -2
- package/dist/service.d.ts.map +1 -1
- package/dist/service.js +89 -5
- package/dist/service.js.map +1 -1
- package/package.json +3 -3
package/dist/provider.js
CHANGED
|
@@ -24,6 +24,15 @@ import { findActorUnified, findInteractiveActor, grantManagedActor, newActorToke
|
|
|
24
24
|
import { userAuthTrustFingerprint, validateRetainedManagedAgent } from "./continuity.js";
|
|
25
25
|
import { AUTH_PROVIDER_NAME, authCalloutKey, authIssuerKey, authOwnerSecretKey, authServiceKeysKey, ensureCalloutAuth, ensureIssuer, ensureOwnerSecret, ensurePinnedIdp, loadAuthServiceInfo, loadCalloutAuth, loadOwnerSecret, loadPinnedIdp, saveServiceKeys, } from "./store.js";
|
|
26
26
|
const READY_TIMEOUT_MS = 15_000;
|
|
27
|
+
/** The pid-bound extension of the readiness wait (#1931): while the daemon the caller LAUNCHED
|
|
28
|
+
* (or found live) is provably alive, the wait continues past READY_TIMEOUT_MS up to this bound.
|
|
29
|
+
* The daemon's startup is bounded work (a plane open that resolves, two listener binds, one
|
|
30
|
+
* discovery write), so a start still unfinished here is a wedge (an open that never returns),
|
|
31
|
+
* and the wait must end in a loud refusal rather than following the daemon forever. A full
|
|
32
|
+
* minute is 4x the base budget with no daemon startup step anywhere near it on a healthy
|
|
33
|
+
* machine; the pre-2.0 era when 15s also served as the sole budget keeps its role for callers
|
|
34
|
+
* that pass no pid. */
|
|
35
|
+
const READY_MAX_WAIT_MS = 60_000;
|
|
27
36
|
/** Present only if PROVEN present. `probeLiveness` resolves EPERM (another user's process) to
|
|
28
37
|
* `alive`, which is the defect this fixes: the old two-state probe called that dead. `unknown`
|
|
29
38
|
* reads as NOT present, matching the behaviour this replaced, because a readiness caller that
|
|
@@ -81,11 +90,25 @@ export const cotalAuthProvider = {
|
|
|
81
90
|
service: {
|
|
82
91
|
command: "auth-service",
|
|
83
92
|
// Readiness = the daemon wrote its discovery file (which it does only after the callout SUB
|
|
84
|
-
// is flushed AND the HTTP listener is bound) and /health answers. Poll until timeoutMs,
|
|
85
|
-
// THROW with the reason — the caller (`up`) surfaces it loudly (U5), never records a
|
|
86
|
-
// user mesh on a half-started service.
|
|
87
|
-
|
|
88
|
-
|
|
93
|
+
// is flushed AND the HTTP listener is bound) and /health answers. Poll until timeoutMs,
|
|
94
|
+
// then THROW with the reason — the caller (`up`) surfaces it loudly (U5), never records a
|
|
95
|
+
// usable user mesh on a half-started service. With `pid`, the wait is bound to the daemon
|
|
96
|
+
// PROCESS (#1931): the clock alone misreported a same-root refresh's live, still-binding
|
|
97
|
+
// daemon as dead at a fixed 15s. Past timeoutMs the wait continues while THAT pid is
|
|
98
|
+
// provably alive, up to maxWaitMs (a wedged daemon still ends in a loud refusal); the
|
|
99
|
+
// moment the pid is provably gone the wait ends at once with the exit, so a dead daemon
|
|
100
|
+
// is never waited on.
|
|
101
|
+
async ready({ dir: stateDir, timeoutMs = READY_TIMEOUT_MS, pid, maxWaitMs = READY_MAX_WAIT_MS }) {
|
|
102
|
+
// `pid` is the daemon process the CALLER launched (or found live): 0/absent means the
|
|
103
|
+
// caller cannot name one (a yielded slot, a spawn failure) and the wait is clock-only.
|
|
104
|
+
// A value that claims to name a process but cannot be one is a caller bug; polling the
|
|
105
|
+
// discovery file to the bound would silently disable the process binding it exists for.
|
|
106
|
+
if (pid !== undefined && pid !== 0 && !(Number.isSafeInteger(pid) && pid > 0))
|
|
107
|
+
throw new Error(`auth service readiness was given a pid that cannot name a process (${pid})`);
|
|
108
|
+
const daemonPid = pid === undefined || pid === 0 ? undefined : pid;
|
|
109
|
+
// Process-bound: the base clock is the floor, the bound the ceiling — a live daemon
|
|
110
|
+
// extends the wait past the old fixed 15s, and nothing extends it past the bound.
|
|
111
|
+
const deadline = Date.now() + (daemonPid === undefined ? timeoutMs : Math.max(timeoutMs, maxWaitMs));
|
|
89
112
|
let lastReason = "the auth service has not written its discovery file yet";
|
|
90
113
|
while (Date.now() < deadline) {
|
|
91
114
|
try {
|
|
@@ -113,8 +136,18 @@ export const cotalAuthProvider = {
|
|
|
113
136
|
catch (e) {
|
|
114
137
|
lastReason = e instanceof Error ? e.message : String(e);
|
|
115
138
|
}
|
|
139
|
+
// The process-bound half of the contract: a daemon that EXITED can never become
|
|
140
|
+
// ready, so the wait ends AT ONCE (not at the clock) and the refusal says so.
|
|
141
|
+
if (daemonPid !== undefined && probeLiveness(daemonPid) === "dead")
|
|
142
|
+
throw new Error(`auth service not ready - the process (pid ${daemonPid}) exited before becoming ready (${lastReason})`);
|
|
116
143
|
await new Promise((r) => setTimeout(r, 200));
|
|
117
144
|
}
|
|
145
|
+
if (daemonPid !== undefined && probeLiveness(daemonPid) === "alive")
|
|
146
|
+
// The bound, and the daemon is STILL alive: name both facts. The daemon did not die,
|
|
147
|
+
// it never finished starting — a plane open that never returns is the wedge case, and
|
|
148
|
+
// this is where the wait stops following it. The pidfile and the service log (which
|
|
149
|
+
// the caller's wrapper appends) are where the operator looks next.
|
|
150
|
+
throw new Error(`auth service not ready after ${maxWaitMs}ms - the process (pid ${daemonPid}) is alive and still starting (${lastReason}); a start this slow is wedged, not slow - stop it with \`cotal down\` and check the service log`);
|
|
118
151
|
// No log-path guess here — the CALLER owns the daemon's log location and appends it.
|
|
119
152
|
throw new Error(`auth service not ready after ${timeoutMs}ms (${lastReason})`);
|
|
120
153
|
},
|
|
@@ -209,6 +242,44 @@ export const cotalAuthProvider = {
|
|
|
209
242
|
throw new Error(`signed in, but manager-service authority was refused: ${body.error ?? `HTTP ${res.status}`}`);
|
|
210
243
|
return body;
|
|
211
244
|
},
|
|
245
|
+
async maintainRemoteManager({ store, dir, request }) {
|
|
246
|
+
const idp = loadPinnedIdp(dir);
|
|
247
|
+
const callout = await loadCalloutAuth(store, request.space);
|
|
248
|
+
let idpUrl;
|
|
249
|
+
let endpoint;
|
|
250
|
+
let authorization;
|
|
251
|
+
if (idp && callout) {
|
|
252
|
+
const info = loadAuthServiceInfo(dir);
|
|
253
|
+
if (!info || !pidAlive(info.pid))
|
|
254
|
+
throw new Error(`the user-auth service for space "${request.space}" is not running - restart it with \`cotal up\` before requesting manager maintenance`);
|
|
255
|
+
idpUrl = idp.url;
|
|
256
|
+
endpoint = `${info.url}/manager-service-authority`;
|
|
257
|
+
authorization = `Bearer ${info.cap}`;
|
|
258
|
+
}
|
|
259
|
+
else {
|
|
260
|
+
const entry = findMesh(request.space);
|
|
261
|
+
const ua = entry?.mode === "user" ? entry.userAuth : undefined;
|
|
262
|
+
if (ua?.remote !== true || typeof ua.endpoints?.url !== "string")
|
|
263
|
+
throw new Error(`space "${request.space}" has no pinned remote manager-authority endpoint - re-register it with \`cotal meshes add ${request.space} --from <url>\``);
|
|
264
|
+
idpUrl = ua.idp.url;
|
|
265
|
+
endpoint = managerAuthorityUrl(ua.endpoints.url, request.space);
|
|
266
|
+
}
|
|
267
|
+
const session = requireIdpSession(homeCotalDir(), idpUrl);
|
|
268
|
+
const idpJwt = await fetchIdpJwt(idpUrl, session.token);
|
|
269
|
+
const response = await fetch(endpoint, {
|
|
270
|
+
method: "POST",
|
|
271
|
+
redirect: "manual",
|
|
272
|
+
headers: { "content-type": "application/json", ...(authorization ? { authorization } : {}) },
|
|
273
|
+
body: JSON.stringify({ idpToken: idpJwt, request }),
|
|
274
|
+
signal: AbortSignal.timeout(30_000),
|
|
275
|
+
}).catch((error) => { throw new Error(`the manager maintenance endpoint for space "${request.space}" did not answer at ${endpoint} (${error instanceof Error ? error.message : String(error)})`); });
|
|
276
|
+
if (response.status >= 300 && response.status < 400)
|
|
277
|
+
throw new Error(`the manager maintenance endpoint answered ${response.status} with redirect Location ${JSON.stringify(response.headers.get("location") ?? "")} - redirects are refused`);
|
|
278
|
+
const body = await response.json().catch(() => ({}));
|
|
279
|
+
if (!response.ok)
|
|
280
|
+
throw new Error(`signed in, but manager maintenance was refused: ${body.error ?? `HTTP ${response.status}`}`);
|
|
281
|
+
return body;
|
|
282
|
+
},
|
|
212
283
|
async scanRemoteManagerGoalIndex({ store, dir, request }) {
|
|
213
284
|
const idp = loadPinnedIdp(dir);
|
|
214
285
|
const callout = await loadCalloutAuth(store, request.space);
|
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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"}
|
package/dist/service.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type ParsedArgs, type RemoteManagerAdminAuthorizationRequest, type RemoteManagerAuthorityRequest, type RemoteRetainedAgentValidationRequest, type SecretStore } from "@cotal-ai/core";
|
|
1
|
+
import { type ParsedArgs, type RemoteManagerAdminAuthorizationRequest, type RemoteManagerAuthorityRequest, type RemoteManagerMaintenanceRequest, type RemoteRetainedAgentValidationRequest, type SecretStore } from "@cotal-ai/core";
|
|
2
2
|
import { type IdpBridge } from "./idp.js";
|
|
3
3
|
import { type ValidatedUserToken } from "./token.js";
|
|
4
4
|
import { pinnedJwksResolver, type UserTokenIssuer } from "./issuer.js";
|
|
@@ -35,6 +35,11 @@ export interface AuthAuthorityPlane {
|
|
|
35
35
|
scope: string[];
|
|
36
36
|
request: RemoteManagerAuthorityRequest;
|
|
37
37
|
}) => Promise<import("@cotal-ai/core").RemoteManagerAuthorityMaterial>;
|
|
38
|
+
maintainRemoteManager: (args: {
|
|
39
|
+
owner: string;
|
|
40
|
+
scope: string[];
|
|
41
|
+
request: RemoteManagerMaintenanceRequest;
|
|
42
|
+
}) => Promise<import("@cotal-ai/core").RemoteManagerMaintenanceResult>;
|
|
38
43
|
validateRetainedAgent: (args: {
|
|
39
44
|
owner: string;
|
|
40
45
|
scope: string[];
|
|
@@ -134,6 +139,7 @@ interface HandlerCtx {
|
|
|
134
139
|
};
|
|
135
140
|
ownerSecret: string | Uint8Array;
|
|
136
141
|
managerServiceAuthority: AuthAuthorityPlane["issueManagerServiceAuthority"];
|
|
142
|
+
maintainRemoteManager: AuthAuthorityPlane["maintainRemoteManager"];
|
|
137
143
|
validateRetainedAgent: AuthAuthorityPlane["validateRetainedAgent"];
|
|
138
144
|
scanManagerGoalIndex: AuthAuthorityPlane["scanManagerGoalIndex"];
|
|
139
145
|
authorizeManagerAdmin: AuthAuthorityPlane["authorizeManagerAdmin"];
|
|
@@ -154,7 +160,7 @@ interface HandlerCtx {
|
|
|
154
160
|
}) => Promise<string>;
|
|
155
161
|
}
|
|
156
162
|
/** Dispatch one already-authenticated manager-authority body through the fixed host validator. */
|
|
157
|
-
export declare function dispatchManagerAuthorityRequest(ctx: Pick<HandlerCtx, "space" | "dir" | "secrets" | "managerServiceAuthority" | "validateRetainedAgent" | "scanManagerGoalIndex" | "authorizeManagerAdmin">, owner: string, body: {
|
|
163
|
+
export declare function dispatchManagerAuthorityRequest(ctx: Pick<HandlerCtx, "space" | "dir" | "secrets" | "managerServiceAuthority" | "maintainRemoteManager" | "validateRetainedAgent" | "scanManagerGoalIndex" | "authorizeManagerAdmin">, owner: string, body: {
|
|
158
164
|
request: unknown;
|
|
159
165
|
}): Promise<unknown>;
|
|
160
166
|
/** The advertised broker address the public bundle carries — the URL participants will dial, so
|
package/dist/service.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"AA2DA,OAAO,
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}
|
package/dist/service.js
CHANGED
|
@@ -57,7 +57,7 @@ import { createServer } from "node:http";
|
|
|
57
57
|
import { connect, credsAuthenticator } from "@nats-io/transport-node";
|
|
58
58
|
import { jetstreamManager } from "@nats-io/jetstream";
|
|
59
59
|
import { Kvm } from "@nats-io/kv";
|
|
60
|
-
import { admissionMediatorGrants, assertDerivedOwnerToken, assertLifecycleToken, assertValidOwnerToken, authorizeTrustedServeSnapshot, commitSiblingIssuance, EpEnvelopeError, ensureAuthorityStores, epAuthBucket, isReachable, mintPublicUserJwt, rawDigest, retirementFrontierStreams, serveIssuanceGateKv, STANDING_RENEWABLE_TTL_SEC } from "@cotal-ai/core";
|
|
60
|
+
import { admissionMediatorGrants, assertDerivedOwnerToken, assertLifecycleToken, assertValidOwnerToken, authorizeTrustedServeSnapshot, commitSiblingIssuance, EpEnvelopeError, ensureAuthorityStores, epAuthBucket, isReachable, mintCreds, mintPublicUserJwt, newIdentity, rawDigest, reconcileEndpointGate, recordsBucket, remoteManagerActors, retirementFrontierStreams, serveIssuanceGateKv, standaloneConnectOpts, STANDING_RENEWABLE_TTL_SEC } from "@cotal-ai/core";
|
|
61
61
|
import { findCotalRoot, userAuthStateDir, workspaceSecretStore } from "@cotal-ai/workspace";
|
|
62
62
|
import { decodeJwt } from "jose";
|
|
63
63
|
import { deriveOwnerForIdpSubject } from "./derive.js";
|
|
@@ -70,6 +70,7 @@ import { issueRemoteManagerAuthority } from "./manager-authority.js";
|
|
|
70
70
|
import { authorizeRemoteRetainedAgentValidation, completeRemoteRetainedAgentValidation, remoteManagerCurrentRegistrationProof } from "./retained-manager-validation.js";
|
|
71
71
|
import { authorizeRemoteManagerGoalIndexScan, completeRemoteManagerGoalIndexScan } from "./manager-goal-index.js";
|
|
72
72
|
import { authorizeRemoteManagerAdmin } from "./manager-admin-authorization.js";
|
|
73
|
+
import { authorizeRemoteManagerMaintenance, completeRemoteManagerMaintenance } from "./manager-maintenance.js";
|
|
73
74
|
import { validateRetainedManagedAgent } from "./continuity.js";
|
|
74
75
|
import { reconstructRemoteManagerServeGrant } from "./manager-contract.js";
|
|
75
76
|
import { authorityBarrierGrants, authorityWriterGrants, openAuthorityClient, openSupervisedConnectReader, remoteManagerIssuerGrants, remoteManagerRegistrationProof } from "./authority-client.js";
|
|
@@ -78,7 +79,7 @@ import { ensureRootCredential } from "./root-credential.js";
|
|
|
78
79
|
import { observeGate, openLifecycleRegistry, readLifecycleHeadForOperation } from "./lifecycle-registry.js";
|
|
79
80
|
import { openAuthLedgerScannerCandidate } from "./ledger-scanner.js";
|
|
80
81
|
import { openRecordsScannerCandidate } from "./records-scanner.js";
|
|
81
|
-
import { acquirePlaneClaim, makeDeliveryAdminPlaneOracle, scannerDeathCopy } from "./plane-claim.js";
|
|
82
|
+
import { acquirePlaneClaim, makeDeliveryAdminPlaneOracle, makeDeliveryAdminPrincipalOracle, scannerDeathCopy } from "./plane-claim.js";
|
|
82
83
|
import { enumerateOperationIntents, resumeAgentTakeover } from "./credential-ledger.js";
|
|
83
84
|
import { makeDeliveryAdminEvictor } from "./barrier-evict.js";
|
|
84
85
|
import { resumeAgentRetirement, runAgentRetirementBarrier } from "./retirement-barrier.js";
|
|
@@ -382,6 +383,18 @@ export async function openAuthAuthorityPlane(opts) {
|
|
|
382
383
|
issue: async ({ actors, request: r }) => {
|
|
383
384
|
const credential = async (key, profile, actor, opts) => mintPublicUserJwt({ space, account: { pub: dataAccount.pub, signingSeed: dataAccount.signingSeed } }, r.identities[key].id, profile, { ...opts, principal: { owner, actor }, lifecycleUid: r.managerLifecycleUid });
|
|
384
385
|
const credentials = {};
|
|
386
|
+
if (r.operation === "renew") {
|
|
387
|
+
const gate = serveIssuanceGateKv(await new Kvm(remoteIssuer.nc).open(epAuthBucket(space)), space, { endpoint: "manager", instanceId: r.instanceId });
|
|
388
|
+
const observed = await gate.observe();
|
|
389
|
+
if (!observed || observed.state !== "open")
|
|
390
|
+
throw new EpEnvelopeError("failed-precondition", "manager-service renewal found no current open manager gate");
|
|
391
|
+
const actors = remoteManagerActors(r.instanceId);
|
|
392
|
+
if (observed.principal !== `${owner}.${actors.serve}`)
|
|
393
|
+
throw new EpEnvelopeError("permission-denied", "manager-service renewal gate does not belong to this authenticated owner and instance");
|
|
394
|
+
const expectedProof = remoteManagerCurrentRegistrationProof(dataAccount.signingSeed, owner, r, observed);
|
|
395
|
+
if (r.registrationProof !== expectedProof)
|
|
396
|
+
throw new EpEnvelopeError("permission-denied", "manager-service renewal proof does not match the current host registration");
|
|
397
|
+
}
|
|
385
398
|
if (r.operation === "prepare" || r.operation === "renew") {
|
|
386
399
|
credentials.supervisor = await credential("supervisor", "remote-manager", actors.supervisor, {
|
|
387
400
|
remoteManager: { instanceId: r.instanceId, owner, actor: actors.supervisor },
|
|
@@ -389,9 +402,8 @@ export async function openAuthAuthorityPlane(opts) {
|
|
|
389
402
|
});
|
|
390
403
|
// The executor receives the exact instance-scoped registration/maintenance surface under
|
|
391
404
|
// a separate nkey and bounded five-minute lifetime. The participant retains it for the
|
|
392
|
-
// immediate goalidx boot sweep and clean service deregistration
|
|
393
|
-
//
|
|
394
|
-
// expiry rather than falling back to an anonymous dial.
|
|
405
|
+
// immediate goalidx boot sweep and clean service deregistration, and renews it in place
|
|
406
|
+
// before maintenance or deregistration once its retained credential is unhealthy.
|
|
395
407
|
credentials.executor = await credential("executor", "remote-manager", actors.executor, {
|
|
396
408
|
remoteManager: { instanceId: r.instanceId, owner, actor: actors.executor },
|
|
397
409
|
expiresInSeconds: 5 * 60,
|
|
@@ -488,6 +500,61 @@ export async function openAuthAuthorityPlane(opts) {
|
|
|
488
500
|
},
|
|
489
501
|
});
|
|
490
502
|
},
|
|
503
|
+
maintainRemoteManager: async ({ owner, scope, request }) => {
|
|
504
|
+
refuseIfFenced();
|
|
505
|
+
const gateKv = await new Kvm(remoteIssuer.nc).open(epAuthBucket(space));
|
|
506
|
+
const authorized = await authorizeRemoteManagerMaintenance({
|
|
507
|
+
owner,
|
|
508
|
+
scope,
|
|
509
|
+
space,
|
|
510
|
+
request,
|
|
511
|
+
scanner,
|
|
512
|
+
observeManagerGate: async (instanceId) => serveIssuanceGateKv(gateKv, space, { endpoint: "manager", instanceId }).observe(),
|
|
513
|
+
});
|
|
514
|
+
const evict = makeDeliveryAdminEvictor({ space, server, dataAccount, log });
|
|
515
|
+
if (authorized.operation === "evict-family-principal") {
|
|
516
|
+
const eviction = await evict(authorized.principal);
|
|
517
|
+
return completeRemoteManagerMaintenance(authorized, owner, { eviction });
|
|
518
|
+
}
|
|
519
|
+
const principalOracle = makeDeliveryAdminPrincipalOracle({ space, server, dataAccount, log });
|
|
520
|
+
const executorIdentity = newIdentity();
|
|
521
|
+
const hostAuth = {
|
|
522
|
+
space,
|
|
523
|
+
operator: { seed: "", jwt: "" },
|
|
524
|
+
account: { pub: dataAccount.pub, seed: "", jwt: "", signingSeed: dataAccount.signingSeed, signingPub: "" },
|
|
525
|
+
sys: { pub: "", jwt: "" },
|
|
526
|
+
};
|
|
527
|
+
const executorCreds = await mintCreds(hostAuth, executorIdentity, "endpoint-serve-executor", {
|
|
528
|
+
endpointServeExecutor: { endpoint: "manager", instanceId: authorized.targetInstanceId },
|
|
529
|
+
expiresInSeconds: 60,
|
|
530
|
+
});
|
|
531
|
+
const maintenanceNc = await connect({
|
|
532
|
+
servers: server,
|
|
533
|
+
...standaloneConnectOpts({ creds: executorCreds, tls: false }),
|
|
534
|
+
maxReconnectAttempts: 0,
|
|
535
|
+
});
|
|
536
|
+
let report;
|
|
537
|
+
try {
|
|
538
|
+
const maintenanceKvm = new Kvm(maintenanceNc);
|
|
539
|
+
report = await reconcileEndpointGate({
|
|
540
|
+
kv: await maintenanceKvm.open(epAuthBucket(space)),
|
|
541
|
+
recordsKv: await maintenanceKvm.open(recordsBucket(space)),
|
|
542
|
+
space,
|
|
543
|
+
endpoint: "manager",
|
|
544
|
+
instanceId: authorized.targetInstanceId,
|
|
545
|
+
probeHolder: async (principal) => {
|
|
546
|
+
const result = await principalOracle(principal);
|
|
547
|
+
return { state: result.state, detail: result.note ?? `delivery-daemon principal sweep, sweepComplete=${String(result.sweepComplete)}` };
|
|
548
|
+
},
|
|
549
|
+
evict: async (principal) => (await evict(principal)).verifiedGone,
|
|
550
|
+
log,
|
|
551
|
+
});
|
|
552
|
+
}
|
|
553
|
+
finally {
|
|
554
|
+
await maintenanceNc.drain().catch(() => maintenanceNc.close());
|
|
555
|
+
}
|
|
556
|
+
return completeRemoteManagerMaintenance(authorized, owner, { reconciliation: report });
|
|
557
|
+
},
|
|
491
558
|
validateRetainedAgent: async ({ owner, scope, request }) => {
|
|
492
559
|
refuseIfFenced();
|
|
493
560
|
return authorizeRemoteRetainedAgentValidation({
|
|
@@ -667,6 +734,20 @@ export async function runAuthService(args, store) {
|
|
|
667
734
|
// Scrub any stale discovery file FIRST — a dead prior daemon's entry must never satisfy a
|
|
668
735
|
// readiness poll for THIS start (the provider's ready() also pid-checks; belt and braces).
|
|
669
736
|
clearAuthServiceInfo(dir);
|
|
737
|
+
// SMOKE-ONLY startup hold: holds THIS daemon's startup between the discovery scrub and the
|
|
738
|
+
// authority-plane open (before any broker or listener footprint), for the pid-bound readiness
|
|
739
|
+
// cells. A live `up` never sets it; when set, it delays this many ms and a plain integer is
|
|
740
|
+
// REQUIRED (a malformed value throws rather than silently starting without the hold).
|
|
741
|
+
{
|
|
742
|
+
const holdRaw = process.env.COTAL_SMOKE_AUTH_STARTUP_HOLD_MS;
|
|
743
|
+
if (holdRaw !== undefined) {
|
|
744
|
+
const hold = Number(holdRaw);
|
|
745
|
+
if (!Number.isSafeInteger(hold) || hold < 0)
|
|
746
|
+
throw new Error(`auth-service: COTAL_SMOKE_AUTH_STARTUP_HOLD_MS must be a non-negative integer (got ${JSON.stringify(holdRaw)})`);
|
|
747
|
+
console.error(`auth-service: smoke startup hold for ${hold}ms (before the authority plane opens)`);
|
|
748
|
+
await new Promise((r) => setTimeout(r, hold));
|
|
749
|
+
}
|
|
750
|
+
}
|
|
670
751
|
const keys = await loadServiceKeys(secrets, space);
|
|
671
752
|
const callout = await loadCalloutAuth(secrets, space);
|
|
672
753
|
const issuer = await loadIssuer(secrets, space);
|
|
@@ -733,6 +814,7 @@ export async function runAuthService(args, store) {
|
|
|
733
814
|
bridgeIdp,
|
|
734
815
|
ownerSecret,
|
|
735
816
|
managerServiceAuthority: plane.issueManagerServiceAuthority,
|
|
817
|
+
maintainRemoteManager: plane.maintainRemoteManager,
|
|
736
818
|
validateRetainedAgent: plane.validateRetainedAgent,
|
|
737
819
|
scanManagerGoalIndex: plane.scanManagerGoalIndex,
|
|
738
820
|
authorizeManagerAdmin: plane.authorizeManagerAdmin,
|
|
@@ -845,6 +927,8 @@ export async function dispatchManagerAuthorityRequest(ctx, owner, body) {
|
|
|
845
927
|
return ctx.scanManagerGoalIndex({ owner, scope: row.scope ?? [], request: body.request });
|
|
846
928
|
if (request.kind === "manager-admin-authorization")
|
|
847
929
|
return ctx.authorizeManagerAdmin({ owner, scope: row.scope ?? [], request: body.request });
|
|
930
|
+
if (request.kind === "manager-service-maintenance")
|
|
931
|
+
return ctx.maintainRemoteManager({ owner, scope: row.scope ?? [], request: body.request });
|
|
848
932
|
return ctx.managerServiceAuthority({ owner, scope: row.scope ?? [], request: body.request });
|
|
849
933
|
}
|
|
850
934
|
/** The loopback face: capability-gated; peers keyed by socket remote address; one shared
|