@tokensrc/codex 1.14.16 → 1.14.18
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/README.md +73 -71
- package/dist/client.d.ts +21 -16
- package/dist/client.js +198 -116
- package/dist/client.js.map +1 -1
- package/dist/command-directory.js +3 -2
- package/dist/command-directory.js.map +1 -1
- package/dist/commands.d.ts +0 -1
- package/dist/commands.js +479 -273
- package/dist/commands.js.map +1 -1
- package/dist/credentials.d.ts +3 -75
- package/dist/credentials.js +2 -338
- package/dist/credentials.js.map +1 -1
- package/dist/index.d.ts +2 -8
- package/dist/index.js +2 -8
- package/dist/index.js.map +1 -1
- package/dist/managed-credential-v3-envelope.d.ts +38 -14
- package/dist/managed-credential-v3-envelope.js +116 -25
- package/dist/managed-credential-v3-envelope.js.map +1 -1
- package/dist/managed-credential-v3-flow.d.ts +0 -17
- package/dist/managed-credential-v3-flow.js +107 -110
- package/dist/managed-credential-v3-flow.js.map +1 -1
- package/dist/managed-credential-v3.d.ts +0 -8
- package/dist/managed-credential-v3.js +0 -23
- package/dist/managed-credential-v3.js.map +1 -1
- package/dist/profile.d.ts +2 -6
- package/dist/profile.js +26 -23
- package/dist/profile.js.map +1 -1
- package/dist/protocol.d.ts +1284 -799
- package/dist/protocol.js +494 -277
- package/dist/protocol.js.map +1 -1
- package/dist/request-bound-device-v6-flow.d.ts +42 -0
- package/dist/request-bound-device-v6-flow.js +403 -0
- package/dist/request-bound-device-v6-flow.js.map +1 -0
- package/dist/request-bound-device-v6-state.d.ts +397 -0
- package/dist/request-bound-device-v6-state.js +221 -0
- package/dist/request-bound-device-v6-state.js.map +1 -0
- package/dist/selection.d.ts +5 -0
- package/dist/selection.js +20 -2
- package/dist/selection.js.map +1 -1
- package/dist/token-pool-v4-upload-flow.js +5 -1
- package/dist/token-pool-v4-upload-flow.js.map +1 -1
- package/package.json +2 -2
- package/dist/credential-supervisor.d.ts +0 -17
- package/dist/credential-supervisor.js +0 -84
- package/dist/credential-supervisor.js.map +0 -1
- package/dist/enrollment-envelope.d.ts +0 -18
- package/dist/enrollment-envelope.js +0 -112
- package/dist/enrollment-envelope.js.map +0 -1
- package/dist/enrollment-flow.d.ts +0 -27
- package/dist/enrollment-flow.js +0 -224
- package/dist/enrollment-flow.js.map +0 -1
- package/dist/migration-login-batch.d.ts +0 -66
- package/dist/migration-login-batch.js +0 -202
- package/dist/migration-login-batch.js.map +0 -1
- package/dist/retirement-flow.d.ts +0 -38
- package/dist/retirement-flow.js +0 -78
- package/dist/retirement-flow.js.map +0 -1
- package/dist/short-lived-delivery-flow.d.ts +0 -41
- package/dist/short-lived-delivery-flow.js +0 -141
- package/dist/short-lived-delivery-flow.js.map +0 -1
- package/dist/short-lived-delivery-journal.d.ts +0 -34
- package/dist/short-lived-delivery-journal.js +0 -137
- package/dist/short-lived-delivery-journal.js.map +0 -1
- package/dist/short-lived-delivery.d.ts +0 -26
- package/dist/short-lived-delivery.js +0 -139
- package/dist/short-lived-delivery.js.map +0 -1
|
@@ -1,22 +1,11 @@
|
|
|
1
1
|
import { createCipheriv, createDecipheriv, createPublicKey, diffieHellman, generateKeyPairSync, hkdfSync, randomBytes } from "node:crypto";
|
|
2
2
|
import { CodexServiceError } from "./errors.js";
|
|
3
|
-
import { CodexV3FullCredentialBundleSchema, CodexV5DeviceSessionBundleSchema, CodexTokenPoolV4AssignmentTargetSchema } from "./protocol.js";
|
|
3
|
+
import { CodexV3FullCredentialBundleSchema, CodexV5DeviceSessionBundleSchema, CodexV6FullCredentialBundleSchema, CodexTokenPoolV4AssignmentTargetSchema } from "./protocol.js";
|
|
4
4
|
const ALGORITHM = "X25519-HKDF-SHA256-AES-256-GCM";
|
|
5
5
|
const ENROLLMENT_KDF = "active-code-inbox/codex-enrollment-candidate/key/v1\0";
|
|
6
6
|
const DELIVERY_KDF = "active-code-inbox/codex-short-lived-delivery/key/v1\0";
|
|
7
7
|
const BASE64URL = /^[A-Za-z0-9_-]+$/u;
|
|
8
8
|
const MAX_TOKEN_BYTES = 65_536;
|
|
9
|
-
export function codexV3EnrollmentAad(input) {
|
|
10
|
-
return Buffer.from(JSON.stringify({
|
|
11
|
-
schemaVersion: 3,
|
|
12
|
-
purpose: "ENROLLMENT",
|
|
13
|
-
tenant: required(input.tenantId, "tenantId"),
|
|
14
|
-
subject: required(input.subject, "subject"),
|
|
15
|
-
clientRequestId: required(input.clientRequestId, "clientRequestId"),
|
|
16
|
-
idempotencyKey: required(input.idempotencyKey, "idempotencyKey"),
|
|
17
|
-
keyId: required(input.keyId, "keyId")
|
|
18
|
-
}), "utf8");
|
|
19
|
-
}
|
|
20
9
|
export function codexV3GenerationReportAad(input) {
|
|
21
10
|
return Buffer.from(JSON.stringify({
|
|
22
11
|
schemaVersion: 4,
|
|
@@ -48,27 +37,32 @@ export function codexV5GenerationReportAad(input) {
|
|
|
48
37
|
keyId: required(input.keyId, "keyId")
|
|
49
38
|
}), "utf8");
|
|
50
39
|
}
|
|
51
|
-
export function
|
|
40
|
+
export function sealCodexV3GenerationReport(input) {
|
|
52
41
|
return sealToServer({
|
|
53
42
|
ingress: input.ingress,
|
|
54
|
-
aad:
|
|
43
|
+
aad: codexV3GenerationReportAad({ ...input, keyId: input.ingress.keyId }),
|
|
55
44
|
plaintext: {
|
|
56
|
-
schemaVersion:
|
|
45
|
+
schemaVersion: 4,
|
|
57
46
|
refreshToken: secret(input.credentials.refreshToken, "refreshToken"),
|
|
58
47
|
accessToken: secret(input.credentials.accessToken, "accessToken"),
|
|
59
48
|
idToken: secret(input.credentials.idToken, "idToken"),
|
|
60
49
|
providerAccountId: required(input.credentials.providerAccountId, "providerAccountId"),
|
|
61
50
|
expiresAt: instant(input.credentials.expiresAt, "expiresAt")
|
|
62
51
|
},
|
|
63
|
-
request: (envelope) => ({
|
|
52
|
+
request: (envelope) => ({
|
|
53
|
+
clientRequestId: input.clientRequestId,
|
|
54
|
+
expectedGenerationVersion: input.expectedGenerationVersion,
|
|
55
|
+
rotationMode: input.rotationMode,
|
|
56
|
+
envelope
|
|
57
|
+
})
|
|
64
58
|
});
|
|
65
59
|
}
|
|
66
|
-
export function
|
|
60
|
+
export function sealCodexV5GenerationReport(input) {
|
|
67
61
|
return sealToServer({
|
|
68
62
|
ingress: input.ingress,
|
|
69
|
-
aad:
|
|
63
|
+
aad: codexV5GenerationReportAad({ ...input, keyId: input.ingress.keyId }),
|
|
70
64
|
plaintext: {
|
|
71
|
-
schemaVersion:
|
|
65
|
+
schemaVersion: 5,
|
|
72
66
|
refreshToken: secret(input.credentials.refreshToken, "refreshToken"),
|
|
73
67
|
accessToken: secret(input.credentials.accessToken, "accessToken"),
|
|
74
68
|
idToken: secret(input.credentials.idToken, "idToken"),
|
|
@@ -76,19 +70,40 @@ export function sealCodexV3GenerationReport(input) {
|
|
|
76
70
|
expiresAt: instant(input.credentials.expiresAt, "expiresAt")
|
|
77
71
|
},
|
|
78
72
|
request: (envelope) => ({
|
|
73
|
+
schemaVersion: 5,
|
|
79
74
|
clientRequestId: input.clientRequestId,
|
|
75
|
+
installationId: input.installationId,
|
|
76
|
+
sessionId: input.sessionId,
|
|
77
|
+
authorityEpoch: input.authorityEpoch,
|
|
80
78
|
expectedGenerationVersion: input.expectedGenerationVersion,
|
|
81
79
|
rotationMode: input.rotationMode,
|
|
82
80
|
envelope
|
|
83
81
|
})
|
|
84
82
|
});
|
|
85
83
|
}
|
|
86
|
-
export function
|
|
84
|
+
export function codexV6GenerationReportAad(input) {
|
|
85
|
+
return Buffer.from(JSON.stringify({
|
|
86
|
+
schemaVersion: 6,
|
|
87
|
+
purpose: "REQUEST_DEVICE_GENERATION_REPORT",
|
|
88
|
+
tenant: required(input.tenantId, "tenantId"),
|
|
89
|
+
subject: required(input.subject, "subject"),
|
|
90
|
+
requestId: required(input.requestId, "requestId"),
|
|
91
|
+
bindingId: required(input.bindingId, "bindingId"),
|
|
92
|
+
installationId: required(input.installationId, "installationId"),
|
|
93
|
+
credentialLineageId: required(input.credentialLineageId, "credentialLineageId"),
|
|
94
|
+
clientRequestId: required(input.clientRequestId, "clientRequestId"),
|
|
95
|
+
idempotencyKey: required(input.idempotencyKey, "idempotencyKey"),
|
|
96
|
+
expectedGenerationVersion: positive(input.expectedGenerationVersion, "expectedGenerationVersion"),
|
|
97
|
+
rotationMode: input.rotationMode,
|
|
98
|
+
keyId: required(input.keyId, "keyId")
|
|
99
|
+
}), "utf8");
|
|
100
|
+
}
|
|
101
|
+
export function sealCodexV6GenerationReport(input) {
|
|
87
102
|
return sealToServer({
|
|
88
103
|
ingress: input.ingress,
|
|
89
|
-
aad:
|
|
104
|
+
aad: codexV6GenerationReportAad({ ...input, keyId: input.ingress.keyId }),
|
|
90
105
|
plaintext: {
|
|
91
|
-
schemaVersion:
|
|
106
|
+
schemaVersion: 6,
|
|
92
107
|
refreshToken: secret(input.credentials.refreshToken, "refreshToken"),
|
|
93
108
|
accessToken: secret(input.credentials.accessToken, "accessToken"),
|
|
94
109
|
idToken: secret(input.credentials.idToken, "idToken"),
|
|
@@ -96,11 +111,10 @@ export function sealCodexV5GenerationReport(input) {
|
|
|
96
111
|
expiresAt: instant(input.credentials.expiresAt, "expiresAt")
|
|
97
112
|
},
|
|
98
113
|
request: (envelope) => ({
|
|
99
|
-
schemaVersion:
|
|
114
|
+
schemaVersion: 6,
|
|
100
115
|
clientRequestId: input.clientRequestId,
|
|
116
|
+
bindingId: input.bindingId,
|
|
101
117
|
installationId: input.installationId,
|
|
102
|
-
sessionId: input.sessionId,
|
|
103
|
-
authorityEpoch: input.authorityEpoch,
|
|
104
118
|
expectedGenerationVersion: input.expectedGenerationVersion,
|
|
105
119
|
rotationMode: input.rotationMode,
|
|
106
120
|
envelope
|
|
@@ -342,6 +356,83 @@ export function openCodexV5DeviceSession(input) {
|
|
|
342
356
|
key.fill(0);
|
|
343
357
|
}
|
|
344
358
|
}
|
|
359
|
+
export function codexV6FullCredentialDeliveryAad(input) {
|
|
360
|
+
const delivery = input.delivery;
|
|
361
|
+
return Buffer.from(JSON.stringify({
|
|
362
|
+
schemaVersion: 6,
|
|
363
|
+
purpose: "REQUEST_DEVICE_FULL_DELIVERY",
|
|
364
|
+
tenant: required(input.tenantId, "tenantId"),
|
|
365
|
+
subject: required(input.subject, "subject"),
|
|
366
|
+
requestId: required(delivery.requestId, "requestId"),
|
|
367
|
+
bindingId: required(delivery.bindingId, "bindingId"),
|
|
368
|
+
installationId: required(delivery.installationId, "installationId"),
|
|
369
|
+
managedAccountId: required(delivery.managedAccountId, "managedAccountId"),
|
|
370
|
+
providerAccountId: required(delivery.providerAccountId, "providerAccountId"),
|
|
371
|
+
credentialLineageId: required(delivery.credentialLineageId, "credentialLineageId"),
|
|
372
|
+
generationVersion: positive(delivery.generationVersion, "generationVersion"),
|
|
373
|
+
deliveryId: required(delivery.id, "deliveryId"),
|
|
374
|
+
clientRequestId: required(delivery.clientRequestId, "clientRequestId"),
|
|
375
|
+
issuedAt: instant(delivery.issuedAt, "issuedAt"),
|
|
376
|
+
credentialExpiresAt: instant(delivery.credentialExpiresAt, "credentialExpiresAt"),
|
|
377
|
+
ackExpiresAt: instant(delivery.ackExpiresAt, "ackExpiresAt")
|
|
378
|
+
}), "utf8");
|
|
379
|
+
}
|
|
380
|
+
export function openCodexV6FullCredentialDelivery(input) {
|
|
381
|
+
const delivery = input.response.delivery;
|
|
382
|
+
if (input.privateKey.asymmetricKeyType !== "x25519" || delivery.envelope.version !== 1
|
|
383
|
+
|| delivery.envelope.algorithm !== ALGORITHM) {
|
|
384
|
+
throw invalidEnvelope("The account service returned an unsupported v6 delivery envelope.");
|
|
385
|
+
}
|
|
386
|
+
const ephemeral = decodeBase64url(delivery.envelope.ephemeralPublicKey, 32, "Invalid v6 delivery public key.");
|
|
387
|
+
const salt = decodeBase64url(delivery.envelope.salt, 32, "Invalid v6 delivery salt.");
|
|
388
|
+
const nonce = decodeBase64url(delivery.envelope.nonce, 12, "Invalid v6 delivery nonce.");
|
|
389
|
+
const tag = decodeBase64url(delivery.envelope.authenticationTag, 16, "Invalid v6 delivery tag.");
|
|
390
|
+
const ciphertext = decodeBase64url(delivery.envelope.ciphertext, undefined, "Invalid v6 delivery ciphertext.");
|
|
391
|
+
const remote = createPublicKey({
|
|
392
|
+
key: { kty: "OKP", crv: "X25519", x: ephemeral.toString("base64url") }, format: "jwk"
|
|
393
|
+
});
|
|
394
|
+
const sharedSecret = diffieHellman({ privateKey: input.privateKey, publicKey: remote });
|
|
395
|
+
const key = Buffer.from(hkdfSync("sha256", sharedSecret, salt, Buffer.from(`${DELIVERY_KDF}${delivery.id}`, "utf8"), 32));
|
|
396
|
+
let plaintext;
|
|
397
|
+
const aad = codexV6FullCredentialDeliveryAad({
|
|
398
|
+
tenantId: input.tenantId, subject: input.subject, delivery
|
|
399
|
+
});
|
|
400
|
+
try {
|
|
401
|
+
const decipher = createDecipheriv("aes-256-gcm", key, nonce, { authTagLength: 16 });
|
|
402
|
+
decipher.setAAD(aad);
|
|
403
|
+
decipher.setAuthTag(tag);
|
|
404
|
+
plaintext = Buffer.concat([decipher.update(ciphertext), decipher.final()]);
|
|
405
|
+
const parsed = CodexV6FullCredentialBundleSchema.safeParse(JSON.parse(plaintext.toString("utf8")));
|
|
406
|
+
if (!parsed.success)
|
|
407
|
+
throw invalidEnvelope("The account service returned an invalid v6 credential bundle.");
|
|
408
|
+
const bundle = parsed.data;
|
|
409
|
+
if (bundle.deliveryId !== delivery.id || bundle.requestId !== delivery.requestId
|
|
410
|
+
|| bundle.bindingId !== delivery.bindingId || bundle.installationId !== delivery.installationId
|
|
411
|
+
|| bundle.managedAccountId !== delivery.managedAccountId
|
|
412
|
+
|| bundle.providerAccountId !== delivery.providerAccountId
|
|
413
|
+
|| bundle.credentialLineageId !== delivery.credentialLineageId
|
|
414
|
+
|| bundle.generationVersion !== delivery.generationVersion
|
|
415
|
+
|| bundle.expiresAt !== delivery.credentialExpiresAt) {
|
|
416
|
+
throw invalidEnvelope("The v6 credential bundle does not match its device binding.");
|
|
417
|
+
}
|
|
418
|
+
if (Date.parse(bundle.expiresAt) <= (input.now ?? Date.now())
|
|
419
|
+
|| Date.parse(delivery.ackExpiresAt) <= (input.now ?? Date.now())) {
|
|
420
|
+
throw new CodexServiceError("The v6 credential delivery has expired.", "request_device_delivery_expired");
|
|
421
|
+
}
|
|
422
|
+
return bundle;
|
|
423
|
+
}
|
|
424
|
+
catch (error) {
|
|
425
|
+
if (error instanceof CodexServiceError)
|
|
426
|
+
throw error;
|
|
427
|
+
throw invalidEnvelope("Unable to authenticate the v6 credential delivery.");
|
|
428
|
+
}
|
|
429
|
+
finally {
|
|
430
|
+
aad.fill(0);
|
|
431
|
+
plaintext?.fill(0);
|
|
432
|
+
sharedSecret.fill(0);
|
|
433
|
+
key.fill(0);
|
|
434
|
+
}
|
|
435
|
+
}
|
|
345
436
|
function decodeBase64url(value, length, message) {
|
|
346
437
|
if (!value || !BASE64URL.test(value))
|
|
347
438
|
throw invalidEnvelope(message);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"managed-credential-v3-envelope.js","sourceRoot":"","sources":["../src/managed-credential-v3-envelope.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"managed-credential-v3-envelope.js","sourceRoot":"","sources":["../src/managed-credential-v3-envelope.ts"],"names":[],"mappings":"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"}
|
|
@@ -23,23 +23,6 @@ export declare function executeCodexTokenPoolV4Delivery(input: {
|
|
|
23
23
|
newId?: () => string;
|
|
24
24
|
now?: () => number;
|
|
25
25
|
}): Promise<ManagedCodexV3EnrollmentResult>;
|
|
26
|
-
export declare function executeManagedCodexV3Login(input: {
|
|
27
|
-
client: V3Client;
|
|
28
|
-
tenantId: string;
|
|
29
|
-
env?: NodeJS.ProcessEnv;
|
|
30
|
-
deviceAuth?: boolean;
|
|
31
|
-
newId?: () => string;
|
|
32
|
-
now?: () => number;
|
|
33
|
-
wait?: (milliseconds: number) => Promise<void>;
|
|
34
|
-
}): Promise<ManagedCodexV3EnrollmentResult>;
|
|
35
|
-
export declare function executeManagedCodexV3Upload(input: {
|
|
36
|
-
client: V3Client;
|
|
37
|
-
tenantId: string;
|
|
38
|
-
env?: NodeJS.ProcessEnv;
|
|
39
|
-
newId?: () => string;
|
|
40
|
-
now?: () => number;
|
|
41
|
-
wait?: (milliseconds: number) => Promise<void>;
|
|
42
|
-
}): Promise<ManagedCodexV3EnrollmentResult>;
|
|
43
26
|
export declare function reconcilePendingManagedCodexV3Operation(input: {
|
|
44
27
|
client: V3Client;
|
|
45
28
|
tenantId: string;
|
|
@@ -1,16 +1,34 @@
|
|
|
1
1
|
import { randomUUID } from "node:crypto";
|
|
2
|
-
import { withOneShotCodexLogin } from "./enrollment-login.js";
|
|
3
2
|
import { CodexServiceError } from "./errors.js";
|
|
4
|
-
import { codexV3CredentialDigests, commitManagedCodexV3GenerationReport, installManagedCodexV3Credentials, markManagedCodexV3DeliveryAcknowledged, readManagedCodexV3State,
|
|
5
|
-
import { createCodexV3DeliveryKeyPair, openCodexV3FullCredentialDelivery,
|
|
6
|
-
import { clearManagedCodexV3OperationJournal, clearManagedCodexV3ReportJournal, openManagedCodexV3DeliveryJournalKey, quarantineManagedCodexV3ReportJournal, readManagedCodexV3OperationJournal, readManagedCodexV3ReportJournal, replaceExpiredManagedCodexV3Delivery, replaceManagedCodexV3OperationWithDelivery,
|
|
3
|
+
import { codexV3CredentialDigests, commitManagedCodexV3GenerationReport, installManagedCodexV3Credentials, markManagedCodexV3DeliveryAcknowledged, readManagedCodexV3State, withManagedCodexV3CredentialObservation } from "./managed-credential-v3.js";
|
|
4
|
+
import { createCodexV3DeliveryKeyPair, openCodexV3FullCredentialDelivery, sealCodexV3GenerationReport } from "./managed-credential-v3-envelope.js";
|
|
5
|
+
import { clearManagedCodexV3OperationJournal, clearManagedCodexV3ReportJournal, openManagedCodexV3DeliveryJournalKey, quarantineManagedCodexV3ReportJournal, readManagedCodexV3OperationJournal, readManagedCodexV3ReportJournal, replaceExpiredManagedCodexV3Delivery, replaceManagedCodexV3OperationWithDelivery, writeManagedCodexV3ReportJournal, writeManagedCodexV4DeliveryJournal } from "./managed-credential-v3-journal.js";
|
|
7
6
|
export async function executeCodexTokenPoolV4Delivery(input) {
|
|
8
7
|
const newId = input.newId ?? randomUUID;
|
|
9
8
|
const now = input.now ?? Date.now;
|
|
10
9
|
const subject = await input.client.getCurrentActorSubject();
|
|
11
|
-
|
|
10
|
+
let pending = await readManagedCodexV3OperationJournal(input.env);
|
|
12
11
|
if (pending) {
|
|
13
|
-
|
|
12
|
+
const replaced = pendingDeliveryWasReplaced(pending, {
|
|
13
|
+
tenantId: input.tenantId,
|
|
14
|
+
subject,
|
|
15
|
+
assignmentId: input.assignment.assignmentId,
|
|
16
|
+
managedAccountId: input.assignment.managedAccountId,
|
|
17
|
+
providerAccountId: input.assignment.providerAccountId,
|
|
18
|
+
lineageId: input.assignment.lineageId,
|
|
19
|
+
generationVersion: input.assignment.currentGenerationVersion
|
|
20
|
+
});
|
|
21
|
+
const alreadyInstalled = replaced && pending.kind === "DELIVERY"
|
|
22
|
+
? deliveryJournalHasLocalInstall(pending, await readManagedCodexV3State(input.env))
|
|
23
|
+
: false;
|
|
24
|
+
if (replaced && !alreadyInstalled) {
|
|
25
|
+
// The assignment directory is authoritative and no credential from this
|
|
26
|
+
// journal has been installed. Retire only this exact pre-install request
|
|
27
|
+
// so the replacement lineage receives a fresh client key and ACK chain.
|
|
28
|
+
await clearManagedCodexV3OperationJournal(pending, input.env);
|
|
29
|
+
pending = undefined;
|
|
30
|
+
}
|
|
31
|
+
else if (pending.kind !== "DELIVERY" || pending.tenantId !== input.tenantId
|
|
14
32
|
|| pending.subject !== subject || pending.assignmentId !== input.assignment.assignmentId
|
|
15
33
|
|| pending.managedAccountId !== input.assignment.managedAccountId
|
|
16
34
|
|| pending.providerAccountId !== input.assignment.providerAccountId
|
|
@@ -18,14 +36,16 @@ export async function executeCodexTokenPoolV4Delivery(input) {
|
|
|
18
36
|
|| pending.generationVersion !== input.assignment.currentGenerationVersion) {
|
|
19
37
|
throw new CodexServiceError("A different v4 credential delivery is already pending.", "managed_codex_v4_state_conflict", 409);
|
|
20
38
|
}
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
39
|
+
else {
|
|
40
|
+
return completeDeliveryJournal({
|
|
41
|
+
client: input.client,
|
|
42
|
+
journal: pending,
|
|
43
|
+
env: input.env,
|
|
44
|
+
newId,
|
|
45
|
+
now,
|
|
46
|
+
enrollmentReplayed: true
|
|
47
|
+
});
|
|
48
|
+
}
|
|
29
49
|
}
|
|
30
50
|
if (!input.assignment.deliveryEligible || input.assignment.authorityMode !== "SERVER_VALIDATING") {
|
|
31
51
|
throw new CodexServiceError("The selected v4 token-pool assignment is not ready for first delivery.", "client_credential_lineage_not_ready", 409);
|
|
@@ -56,80 +76,6 @@ export async function executeCodexTokenPoolV4Delivery(input) {
|
|
|
56
76
|
enrollmentReplayed: false
|
|
57
77
|
});
|
|
58
78
|
}
|
|
59
|
-
export async function executeManagedCodexV3Login(input) {
|
|
60
|
-
const resumed = await reconcilePendingManagedCodexV3Operation(input);
|
|
61
|
-
if (resumed)
|
|
62
|
-
return resumed;
|
|
63
|
-
const configuration = await input.client.getV3EnrollmentConfiguration();
|
|
64
|
-
const subject = await input.client.getCurrentActorSubject();
|
|
65
|
-
return withOneShotCodexLogin({
|
|
66
|
-
mode: input.deviceAuth ? "device" : "browser",
|
|
67
|
-
env: input.env
|
|
68
|
-
}, async (credentials) => {
|
|
69
|
-
if (!credentials.providerAccountId) {
|
|
70
|
-
throw new CodexServiceError("Official Codex login did not expose a provider account id.", "invalid_managed_codex_v3_credentials");
|
|
71
|
-
}
|
|
72
|
-
const accessPayload = credentials.accessToken.split(".")[1];
|
|
73
|
-
const exp = accessPayload ? tokenExpiry(credentials.accessToken) : undefined;
|
|
74
|
-
if (!exp)
|
|
75
|
-
throw new CodexServiceError("Official Codex login did not expose a usable access-token expiry.", "invalid_managed_codex_v3_credentials");
|
|
76
|
-
return executeManagedCodexV3Enrollment({
|
|
77
|
-
...input,
|
|
78
|
-
configuration: configuration.ingress,
|
|
79
|
-
subject,
|
|
80
|
-
credentials: {
|
|
81
|
-
refreshToken: credentials.refreshToken,
|
|
82
|
-
accessToken: credentials.accessToken,
|
|
83
|
-
idToken: credentials.idToken,
|
|
84
|
-
providerAccountId: credentials.providerAccountId,
|
|
85
|
-
expiresAt: new Date(exp).toISOString()
|
|
86
|
-
}
|
|
87
|
-
});
|
|
88
|
-
});
|
|
89
|
-
}
|
|
90
|
-
export async function executeManagedCodexV3Upload(input) {
|
|
91
|
-
const resumed = await reconcilePendingManagedCodexV3Operation(input);
|
|
92
|
-
if (resumed)
|
|
93
|
-
return resumed;
|
|
94
|
-
const configuration = await input.client.getV3EnrollmentConfiguration();
|
|
95
|
-
const subject = await input.client.getCurrentActorSubject();
|
|
96
|
-
return withCurrentCodexFullCredentials(input.env ?? process.env, async (credentials) => executeManagedCodexV3Enrollment({
|
|
97
|
-
...input,
|
|
98
|
-
configuration: configuration.ingress,
|
|
99
|
-
subject,
|
|
100
|
-
credentials
|
|
101
|
-
}));
|
|
102
|
-
}
|
|
103
|
-
async function executeManagedCodexV3Enrollment(input) {
|
|
104
|
-
const newId = input.newId ?? randomUUID;
|
|
105
|
-
const now = input.now ?? Date.now;
|
|
106
|
-
const clientRequestId = newId();
|
|
107
|
-
const enrollmentKey = newId();
|
|
108
|
-
const envelope = sealCodexV3Enrollment({
|
|
109
|
-
tenantId: input.tenantId,
|
|
110
|
-
subject: input.subject,
|
|
111
|
-
clientRequestId,
|
|
112
|
-
idempotencyKey: enrollmentKey,
|
|
113
|
-
ingress: input.configuration,
|
|
114
|
-
credentials: input.credentials
|
|
115
|
-
});
|
|
116
|
-
const timestamp = new Date(now()).toISOString();
|
|
117
|
-
const journal = await writeManagedCodexV3OperationJournal({
|
|
118
|
-
schemaVersion: 3,
|
|
119
|
-
kind: "ENROLLMENT",
|
|
120
|
-
tenantId: input.tenantId,
|
|
121
|
-
subject: input.subject,
|
|
122
|
-
clientRequestId,
|
|
123
|
-
idempotencyKey: enrollmentKey,
|
|
124
|
-
providerAccountId: input.credentials.providerAccountId,
|
|
125
|
-
envelope,
|
|
126
|
-
createdAt: timestamp,
|
|
127
|
-
updatedAt: timestamp
|
|
128
|
-
}, input.env);
|
|
129
|
-
if (journal.kind !== "ENROLLMENT")
|
|
130
|
-
throw new Error("Unexpected v3 operation journal.");
|
|
131
|
-
return completeEnrollmentJournal({ ...input, journal });
|
|
132
|
-
}
|
|
133
79
|
async function completeEnrollmentJournal(input) {
|
|
134
80
|
const newId = input.newId ?? randomUUID;
|
|
135
81
|
const now = input.now ?? Date.now;
|
|
@@ -186,14 +132,27 @@ async function completeEnrollmentJournal(input) {
|
|
|
186
132
|
async function completeDeliveryJournal(input) {
|
|
187
133
|
const newId = input.newId ?? randomUUID;
|
|
188
134
|
const now = input.now ?? Date.now;
|
|
189
|
-
const delivery = await
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
135
|
+
const delivery = await (async () => {
|
|
136
|
+
try {
|
|
137
|
+
return await postResolveReplay({
|
|
138
|
+
post: () => input.client.createV3FullCredentialDelivery(input.journal.assignmentId, {
|
|
139
|
+
schemaVersion: 4,
|
|
140
|
+
clientRequestId: input.journal.clientRequestId,
|
|
141
|
+
clientKey: input.journal.clientKey
|
|
142
|
+
}, input.journal.idempotencyKey),
|
|
143
|
+
resolve: () => input.client.resolveV3FullCredentialDelivery(input.journal.assignmentId, input.journal.clientRequestId)
|
|
144
|
+
});
|
|
145
|
+
}
|
|
146
|
+
catch (error) {
|
|
147
|
+
if (credentialReauthenticationRequired(error)) {
|
|
148
|
+
// The Server made a deterministic decision that no credential was
|
|
149
|
+
// delivered. Retaining this request would replay the permanently
|
|
150
|
+
// rejected lineage after an administrator installs a replacement.
|
|
151
|
+
await clearManagedCodexV3OperationJournal(input.journal, input.env);
|
|
152
|
+
}
|
|
153
|
+
throw error;
|
|
154
|
+
}
|
|
155
|
+
})();
|
|
197
156
|
let bundle;
|
|
198
157
|
try {
|
|
199
158
|
bundle = openCodexV3FullCredentialDelivery({
|
|
@@ -229,6 +188,15 @@ async function completeDeliveryJournal(input) {
|
|
|
229
188
|
renewExpiredDelivery: false
|
|
230
189
|
});
|
|
231
190
|
}
|
|
191
|
+
if (deliveredLineageReplacedJournal(input.journal, delivery, bundle)
|
|
192
|
+
&& !deliveryJournalHasLocalInstall(input.journal, await readManagedCodexV3State(input.env))) {
|
|
193
|
+
// Decryption authenticates the Server response, and the assignment/account
|
|
194
|
+
// tuple still matches. A changed lineage tuple therefore represents an
|
|
195
|
+
// administrator replacement, not an unknown mutation outcome. Nothing has
|
|
196
|
+
// been installed yet, so only the exact stale recovery journal is removed.
|
|
197
|
+
await clearManagedCodexV3OperationJournal(input.journal, input.env);
|
|
198
|
+
throw new CodexServiceError("The pending Codex delivery was replaced by a newer credential lineage; retry with the current assignment.", "managed_codex_v3_lineage_replaced", 409);
|
|
199
|
+
}
|
|
232
200
|
if (bundle.providerAccountId !== input.journal.providerAccountId
|
|
233
201
|
|| bundle.lineageId !== input.journal.lineageId
|
|
234
202
|
|| bundle.managedAccountId !== input.journal.managedAccountId
|
|
@@ -312,9 +280,19 @@ export async function reconcilePendingManagedCodexV3Operation(input) {
|
|
|
312
280
|
const journal = await readManagedCodexV3OperationJournal(input.env);
|
|
313
281
|
if (!journal)
|
|
314
282
|
return undefined;
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
283
|
+
try {
|
|
284
|
+
return await (journal.kind === "ENROLLMENT"
|
|
285
|
+
? completeEnrollmentJournal({ ...input, journal })
|
|
286
|
+
: completeDeliveryJournal({ ...input, journal, enrollmentReplayed: true }));
|
|
287
|
+
}
|
|
288
|
+
catch (error) {
|
|
289
|
+
if (error instanceof CodexServiceError
|
|
290
|
+
&& error.code === "managed_codex_v3_lineage_replaced"
|
|
291
|
+
&& error.status === 409) {
|
|
292
|
+
return undefined;
|
|
293
|
+
}
|
|
294
|
+
throw error;
|
|
295
|
+
}
|
|
318
296
|
}
|
|
319
297
|
async function resumePendingManagedCodexV3Ack(input) {
|
|
320
298
|
const state = await readManagedCodexV3State(input.env);
|
|
@@ -611,17 +589,36 @@ function resultMayBeUnknown(error) {
|
|
|
611
589
|
return error.status === undefined || error.status >= 500
|
|
612
590
|
|| error.code === "invalid_codex_service_response";
|
|
613
591
|
}
|
|
614
|
-
function
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
592
|
+
function credentialReauthenticationRequired(error) {
|
|
593
|
+
return error instanceof CodexServiceError && error.status === 409
|
|
594
|
+
&& ["client_credential_expired", "codex_account_needs_reauth"].includes(error.code);
|
|
595
|
+
}
|
|
596
|
+
function pendingDeliveryWasReplaced(pending, current) {
|
|
597
|
+
return pending.kind === "DELIVERY"
|
|
598
|
+
&& pending.tenantId === current.tenantId
|
|
599
|
+
&& pending.subject === current.subject
|
|
600
|
+
&& pending.assignmentId === current.assignmentId
|
|
601
|
+
&& pending.managedAccountId === current.managedAccountId
|
|
602
|
+
&& pending.providerAccountId === current.providerAccountId
|
|
603
|
+
&& (pending.lineageId !== current.lineageId
|
|
604
|
+
|| pending.generationVersion !== current.generationVersion);
|
|
605
|
+
}
|
|
606
|
+
function deliveredLineageReplacedJournal(journal, response, bundle) {
|
|
607
|
+
return response.delivery.assignmentId === journal.assignmentId
|
|
608
|
+
&& bundle.managedAccountId === journal.managedAccountId
|
|
609
|
+
&& bundle.providerAccountId === journal.providerAccountId
|
|
610
|
+
&& (bundle.lineageId !== journal.lineageId
|
|
611
|
+
|| bundle.generationVersion !== journal.generationVersion);
|
|
612
|
+
}
|
|
613
|
+
function deliveryJournalHasLocalInstall(journal, state) {
|
|
614
|
+
return state != null
|
|
615
|
+
&& state.tenantId === journal.tenantId
|
|
616
|
+
&& state.assignmentId === journal.assignmentId
|
|
617
|
+
&& state.managedAccountId === journal.managedAccountId
|
|
618
|
+
&& state.providerAccountId === journal.providerAccountId
|
|
619
|
+
&& state.lineageId === journal.lineageId
|
|
620
|
+
&& state.generationVersion === journal.generationVersion
|
|
621
|
+
&& state.ackIdempotencyKey === journal.ackIdempotencyKey;
|
|
625
622
|
}
|
|
626
623
|
function errorCode(error) {
|
|
627
624
|
return typeof error?.code === "string"
|