@kici-dev/engine 0.1.15 → 0.1.17
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/approval/types.d.ts +56 -0
- package/dist/approval/types.js +42 -0
- package/dist/audit/access-log-policy.js +5 -1
- package/dist/audit/activity.js +1 -1
- package/dist/audit/retention-policy.js +9 -1
- package/dist/bundler/index.js +1 -1
- package/dist/bundler/rolldown-config.js +1 -1
- package/dist/env/environment-allowlist.js +1 -1
- package/dist/environment/index.js +1 -1
- package/dist/environment/scope-resolver.js +1 -1
- package/dist/environment/types.d.ts +8 -0
- package/dist/environment/types.js +1 -1
- package/dist/fanout/materialize.d.ts +67 -0
- package/dist/fanout/materialize.js +119 -0
- package/dist/index.d.ts +4 -2
- package/dist/index.js +10 -8
- package/dist/labels.js +1 -1
- package/dist/matrix/expand.d.ts +43 -0
- package/dist/matrix/expand.js +66 -0
- package/dist/matrix/format.d.ts +10 -0
- package/dist/matrix/format.js +19 -0
- package/dist/metrics/catalog-policy.js +8 -3
- package/dist/metrics/metric-catalog.generated.d.ts +1 -1
- package/dist/metrics/metric-catalog.generated.js +2 -2
- package/dist/protocol/analytics-events.js +1 -1
- package/dist/protocol/cluster-name.js +1 -1
- package/dist/protocol/dashboard-global-workflows.js +1 -1
- package/dist/protocol/dashboard-write-operations.js +1 -1
- package/dist/protocol/event-log-payload.js +1 -1
- package/dist/protocol/messages/access-log.d.ts +25 -5
- package/dist/protocol/messages/access-log.js +5 -1
- package/dist/protocol/messages/actor.js +1 -1
- package/dist/protocol/messages/auth.d.ts +1 -0
- package/dist/protocol/messages/auth.js +11 -2
- package/dist/protocol/messages/browser.js +1 -1
- package/dist/protocol/messages/capabilities.js +1 -1
- package/dist/protocol/messages/common.js +1 -1
- package/dist/protocol/messages/dashboard-global-workflows.js +1 -1
- package/dist/protocol/messages/dashboard.d.ts +1030 -50
- package/dist/protocol/messages/dashboard.js +377 -7
- package/dist/protocol/messages/event-log.js +1 -1
- package/dist/protocol/messages/execution-status.d.ts +13 -1
- package/dist/protocol/messages/execution-status.js +13 -3
- package/dist/protocol/messages/join.js +1 -1
- package/dist/protocol/messages/log-pull.js +1 -1
- package/dist/protocol/messages/observe.d.ts +1 -0
- package/dist/protocol/messages/oidc-token-relay.d.ts +31 -0
- package/dist/protocol/messages/oidc-token-relay.js +34 -0
- package/dist/protocol/messages/orchestrator-agent.d.ts +161 -0
- package/dist/protocol/messages/orchestrator-agent.js +117 -4
- package/dist/protocol/messages/peer.d.ts +76 -0
- package/dist/protocol/messages/peer.js +37 -2
- package/dist/protocol/messages/platform-orchestrator.d.ts +187 -10
- package/dist/protocol/messages/platform-orchestrator.js +13 -2
- package/dist/protocol/messages/run-events.js +1 -1
- package/dist/protocol/messages/scaler-event.js +1 -1
- package/dist/protocol/messages/source-registration.d.ts +7 -6
- package/dist/protocol/messages/source-registration.js +7 -6
- package/dist/protocol/version.js +1 -1
- package/dist/provenance/bundle.d.ts +54 -0
- package/dist/provenance/bundle.js +53 -0
- package/dist/provenance/dsse.d.ts +39 -0
- package/dist/provenance/dsse.js +53 -0
- package/dist/provenance/schema.d.ts +407 -0
- package/dist/provenance/schema.js +143 -0
- package/dist/provenance/verify.d.ts +71 -0
- package/dist/provenance/verify.js +135 -0
- package/dist/provider/changed-files-fetcher.js +1 -1
- package/dist/provider/check-run-conclusion.js +1 -1
- package/dist/provider/check-status-poster.js +1 -1
- package/dist/provider/clone-token-provider.js +1 -1
- package/dist/provider/contributor-resolver.js +1 -1
- package/dist/provider/index.js +1 -1
- package/dist/provider/lock-file-fetcher.js +1 -1
- package/dist/provider/lock-file-parse-error.js +3 -1
- package/dist/provider/repo-url-builder.js +1 -1
- package/dist/provider/types.d.ts +2 -2
- package/dist/provider/types.js +1 -1
- package/dist/provider/webhook-normalizer.js +1 -1
- package/dist/registration/registerable-trigger-type.js +1 -1
- package/dist/scaler/resource-types.js +1 -1
- package/dist/scaler/scaler-backend-type.js +1 -1
- package/dist/secrets/index.js +1 -1
- package/dist/secrets/types.js +1 -1
- package/dist/state-machine/index.js +1 -1
- package/dist/state-machine/machine.js +1 -1
- package/dist/state-machine/types.js +1 -1
- package/dist/trigger/decision-trace.js +1 -1
- package/dist/trigger/jsonpath-matcher.js +1 -1
- package/dist/trigger/matcher.js +1 -1
- package/dist/trigger/trigger-event-type.js +1 -1
- package/dist/trigger/types.d.ts +34 -1
- package/dist/trigger/types.js +14 -5
- package/dist/webhook/signature.js +1 -1
- package/dist/ws/close-codes.js +1 -1
- package/dist/ws/rate-limiter.js +3 -1
- package/dist/ws/ws-like.js +1 -1
- package/package.json +23 -1
- package/sbom.spdx.json +55 -5
- package/dist/protocol/messages/observe.js +0 -70
- package/dist/protocol/messages/test-run.js +0 -52
- /package/dist/{chunk-gOLHoazu.js → chunk-BTugEXQM.js} +0 -0
|
@@ -1,11 +1,14 @@
|
|
|
1
|
-
import "../../chunk-
|
|
1
|
+
import "../../chunk-BTugEXQM.js";
|
|
2
2
|
import { actorPrincipalSchema } from "./actor.js";
|
|
3
3
|
import { initFailureSchema } from "./execution-status.js";
|
|
4
4
|
import { SourceSubtype } from "./source-registration.js";
|
|
5
|
+
import { kiciBundleSchema } from "../../provenance/bundle.js";
|
|
5
6
|
import { dashboardAccessLogListRequestSchema, dashboardAccessLogListResponseSchema } from "./access-log.js";
|
|
6
7
|
import { dashboardOrchLogsRequestSchema, dashboardOrchLogsResponseSchema } from "./run-events.js";
|
|
7
8
|
import { EventLogSource, EventLogStatus, PayloadOmittedReason } from "./event-log.js";
|
|
8
9
|
import { ScalerBackendType } from "../../scaler/scaler-backend-type.js";
|
|
10
|
+
import { ApprovalDecision, HoldScope, approverClauseSchema } from "../../approval/types.js";
|
|
11
|
+
import { IfFailedPolicy } from "../../trigger/types.js";
|
|
9
12
|
import { globalWorkflowsGetRequestSchema, globalWorkflowsGetResponseSchema, globalWorkflowsUpdateRequestSchema, globalWorkflowsUpdateResponseSchema } from "./dashboard-global-workflows.js";
|
|
10
13
|
import { z } from "zod";
|
|
11
14
|
//#region src/protocol/messages/dashboard.ts
|
|
@@ -63,6 +66,16 @@ const dashboardJobDetailSchema = z.object({
|
|
|
63
66
|
* the job is a synthetic `rejected-*` or `init-failed-*` row; status will be 'failed'.
|
|
64
67
|
*/
|
|
65
68
|
initFailure: initFailureSchema.optional(),
|
|
69
|
+
/**
|
|
70
|
+
* Upstream dependency edges for this job (one entry per `needs` declaration),
|
|
71
|
+
* resolved by the orchestrator from execution_job_needs. `upstreamName` is the
|
|
72
|
+
* upstream job name; `ifFailed` is the per-edge failure policy. null/absent when
|
|
73
|
+
* the job has no upstreams.
|
|
74
|
+
*/
|
|
75
|
+
needs: z.array(z.object({
|
|
76
|
+
upstreamName: z.string(),
|
|
77
|
+
ifFailed: IfFailedPolicy
|
|
78
|
+
})).nullable().optional(),
|
|
66
79
|
steps: z.array(dashboardStepDetailSchema)
|
|
67
80
|
});
|
|
68
81
|
/** Trust context from orchestrator execution_runs (populated for PR-triggered runs). */
|
|
@@ -96,6 +109,36 @@ const dashboardStepLogsResponseSchema = z.object({
|
|
|
96
109
|
totalLines: z.number(),
|
|
97
110
|
error: z.string().optional()
|
|
98
111
|
});
|
|
112
|
+
/** Request the build-provenance attestations for a run. */
|
|
113
|
+
const dashboardAttestationsListRequestSchema = z.object({
|
|
114
|
+
type: z.literal("dashboard.attestations.list"),
|
|
115
|
+
requestId: z.string(),
|
|
116
|
+
actor: actorPrincipalSchema,
|
|
117
|
+
runId: z.string()
|
|
118
|
+
});
|
|
119
|
+
/**
|
|
120
|
+
* Single attestation in the list response, with its bundle inlined from object
|
|
121
|
+
* storage so the dashboard verifies it without a second fetch. The bundle is a
|
|
122
|
+
* KiCI Mode-A bundle (`@kici-dev/engine/provenance/bundle`).
|
|
123
|
+
*/
|
|
124
|
+
const attestationListItemSchema = z.object({
|
|
125
|
+
id: z.string(),
|
|
126
|
+
jobId: z.string(),
|
|
127
|
+
jobName: z.string().nullable(),
|
|
128
|
+
subjectName: z.string(),
|
|
129
|
+
subjectDigest: z.string(),
|
|
130
|
+
mode: z.string(),
|
|
131
|
+
mediaType: z.string(),
|
|
132
|
+
createdAt: z.string(),
|
|
133
|
+
bundle: kiciBundleSchema
|
|
134
|
+
});
|
|
135
|
+
/** Response with the run's attestations (correlates to dashboard.attestations.list). */
|
|
136
|
+
const dashboardAttestationsListResponseSchema = z.object({
|
|
137
|
+
type: z.literal("dashboard.attestations.list.response"),
|
|
138
|
+
requestId: z.string(),
|
|
139
|
+
attestations: z.array(attestationListItemSchema),
|
|
140
|
+
error: z.string().optional()
|
|
141
|
+
});
|
|
99
142
|
/**
|
|
100
143
|
* Run-summary projection from the orchestrator's execution_runs table.
|
|
101
144
|
*
|
|
@@ -520,7 +563,23 @@ const concurrencyStrategySchema = z.enum(["queue", "cancel-pending"]);
|
|
|
520
563
|
const envListRequestSchema = z.object({
|
|
521
564
|
type: z.literal("dashboard.environments.list"),
|
|
522
565
|
requestId: z.string(),
|
|
523
|
-
actor: actorPrincipalSchema
|
|
566
|
+
actor: actorPrincipalSchema,
|
|
567
|
+
/**
|
|
568
|
+
* When true, each returned environment carries its reachable secret key
|
|
569
|
+
* names (never values) in `secretKeys`. Used by the developer CLI's
|
|
570
|
+
* `kici secrets list` / `kici types` commands.
|
|
571
|
+
*/
|
|
572
|
+
includeSecrets: z.boolean().optional(),
|
|
573
|
+
/**
|
|
574
|
+
* Target org the read must be scoped to, carried per-request by the Platform
|
|
575
|
+
* (the validated `:orgId` path param). The orchestrator honors this over its
|
|
576
|
+
* static connection-level org so a Platform-first `kici run remote` org —
|
|
577
|
+
* anchored only by `remote_sources` — sees its own environments even when the
|
|
578
|
+
* orchestrator's connection also serves a webhook source for a different org.
|
|
579
|
+
* Absent on the legacy customer-dashboard path, where the connection org is
|
|
580
|
+
* already the request org.
|
|
581
|
+
*/
|
|
582
|
+
orgId: z.string().optional()
|
|
524
583
|
});
|
|
525
584
|
const envListResponseSchema = z.object({
|
|
526
585
|
type: z.literal("dashboard.environments.list.response"),
|
|
@@ -533,7 +592,13 @@ const envListResponseSchema = z.object({
|
|
|
533
592
|
enabled: z.boolean(),
|
|
534
593
|
allowLocalExecution: z.boolean(),
|
|
535
594
|
createdAt: z.coerce.string(),
|
|
536
|
-
updatedAt: z.coerce.string()
|
|
595
|
+
updatedAt: z.coerce.string(),
|
|
596
|
+
/**
|
|
597
|
+
* Distinct secret key names reachable from this environment's scope
|
|
598
|
+
* bindings (never values). Present only when the request set
|
|
599
|
+
* `includeSecrets: true`.
|
|
600
|
+
*/
|
|
601
|
+
secretKeys: z.array(z.string()).optional()
|
|
537
602
|
})).optional(),
|
|
538
603
|
error: z.string().optional()
|
|
539
604
|
});
|
|
@@ -906,7 +971,20 @@ const heldRunsListResponseSchema = z.object({
|
|
|
906
971
|
reason: z.string().nullable(),
|
|
907
972
|
expiresAt: z.coerce.string().nullable(),
|
|
908
973
|
contributorUsername: z.string().nullable().optional(),
|
|
909
|
-
trustTier: z.string().nullable().optional()
|
|
974
|
+
trustTier: z.string().nullable().optional(),
|
|
975
|
+
jobId: z.string().optional(),
|
|
976
|
+
holdScope: HoldScope.optional(),
|
|
977
|
+
stepIndex: z.number().nullable().optional(),
|
|
978
|
+
requirement: z.object({
|
|
979
|
+
clauses: z.array(approverClauseSchema),
|
|
980
|
+
reason: z.string().nullable().optional()
|
|
981
|
+
}).nullable().optional(),
|
|
982
|
+
decisions: z.array(z.object({
|
|
983
|
+
approverUserId: z.string(),
|
|
984
|
+
decision: ApprovalDecision,
|
|
985
|
+
clausesSatisfied: z.array(approverClauseSchema).nullable().optional(),
|
|
986
|
+
createdAt: z.coerce.string()
|
|
987
|
+
})).optional()
|
|
910
988
|
})).optional(),
|
|
911
989
|
error: z.string().optional()
|
|
912
990
|
});
|
|
@@ -1298,10 +1376,128 @@ const backendTestResponseSchema = z.object({
|
|
|
1298
1376
|
latencyMs: z.number().optional(),
|
|
1299
1377
|
error: z.string().optional()
|
|
1300
1378
|
});
|
|
1379
|
+
/** Enum of the five test-relay control message types (request side). */
|
|
1380
|
+
const TestRelayType = z.enum([
|
|
1381
|
+
"test.relay.uploads.init",
|
|
1382
|
+
"test.relay.trigger",
|
|
1383
|
+
"test.relay.run.status",
|
|
1384
|
+
"test.relay.run.logs",
|
|
1385
|
+
"test.relay.cancel"
|
|
1386
|
+
]);
|
|
1387
|
+
/** Request an external presigned upload URL for the overlay tarball. */
|
|
1388
|
+
const testRelayUploadsInitRequestSchema = z.object({
|
|
1389
|
+
type: z.literal("test.relay.uploads.init"),
|
|
1390
|
+
requestId: z.string(),
|
|
1391
|
+
actor: actorPrincipalSchema,
|
|
1392
|
+
routingKey: z.string(),
|
|
1393
|
+
sha: z.string().optional(),
|
|
1394
|
+
fileCount: z.number().optional(),
|
|
1395
|
+
compressedSize: z.number().optional()
|
|
1396
|
+
});
|
|
1397
|
+
/** Response with the external presigned upload URL + ephemeral encryption key. */
|
|
1398
|
+
const testRelayUploadsInitResponseSchema = z.object({
|
|
1399
|
+
type: z.literal("test.relay.uploads.init.response"),
|
|
1400
|
+
requestId: z.string(),
|
|
1401
|
+
uploadId: z.string().optional(),
|
|
1402
|
+
signedUrl: z.string().optional(),
|
|
1403
|
+
publicKey: z.string().optional(),
|
|
1404
|
+
expiresIn: z.number().optional(),
|
|
1405
|
+
error: z.string().optional()
|
|
1406
|
+
});
|
|
1407
|
+
/** Trigger a remote test run (mirrors the orchestrator's TestTriggerInput). */
|
|
1408
|
+
const testRelayTriggerRequestSchema = z.object({
|
|
1409
|
+
type: z.literal("test.relay.trigger"),
|
|
1410
|
+
requestId: z.string(),
|
|
1411
|
+
actor: actorPrincipalSchema,
|
|
1412
|
+
routingKey: z.string(),
|
|
1413
|
+
fixtureId: z.string(),
|
|
1414
|
+
event: z.object({
|
|
1415
|
+
type: z.string(),
|
|
1416
|
+
action: z.string().optional(),
|
|
1417
|
+
targetBranch: z.string(),
|
|
1418
|
+
sourceBranch: z.string().optional(),
|
|
1419
|
+
payload: z.record(z.string(), z.unknown()),
|
|
1420
|
+
changedFiles: z.array(z.string()).optional()
|
|
1421
|
+
}),
|
|
1422
|
+
workflowName: z.string().optional(),
|
|
1423
|
+
uploadId: z.string().optional(),
|
|
1424
|
+
cliPublicKey: z.string().optional(),
|
|
1425
|
+
inlineLockFile: z.string().optional(),
|
|
1426
|
+
fullRepo: z.boolean().optional(),
|
|
1427
|
+
secrets: z.record(z.string(), z.string()).optional(),
|
|
1428
|
+
encryptedSecrets: z.string().optional(),
|
|
1429
|
+
encryptedSecretsKey: z.string().optional()
|
|
1430
|
+
});
|
|
1431
|
+
/** Response acknowledging a triggered run. */
|
|
1432
|
+
const testRelayTriggerResponseSchema = z.object({
|
|
1433
|
+
type: z.literal("test.relay.trigger.response"),
|
|
1434
|
+
requestId: z.string(),
|
|
1435
|
+
runId: z.string().optional(),
|
|
1436
|
+
status: z.enum(["accepted", "rejected"]).optional(),
|
|
1437
|
+
reason: z.string().optional(),
|
|
1438
|
+
jobIds: z.array(z.string()).optional(),
|
|
1439
|
+
error: z.string().optional()
|
|
1440
|
+
});
|
|
1441
|
+
/** Request a snapshot of a run's status. */
|
|
1442
|
+
const testRelayRunStatusRequestSchema = z.object({
|
|
1443
|
+
type: z.literal("test.relay.run.status"),
|
|
1444
|
+
requestId: z.string(),
|
|
1445
|
+
actor: actorPrincipalSchema,
|
|
1446
|
+
runId: z.string()
|
|
1447
|
+
});
|
|
1448
|
+
/** Response carrying a run-status snapshot. */
|
|
1449
|
+
const testRelayRunStatusResponseSchema = z.object({
|
|
1450
|
+
type: z.literal("test.relay.run.status.response"),
|
|
1451
|
+
requestId: z.string(),
|
|
1452
|
+
runId: z.string().optional(),
|
|
1453
|
+
status: z.string().optional(),
|
|
1454
|
+
jobs: z.array(z.object({
|
|
1455
|
+
jobId: z.string(),
|
|
1456
|
+
jobName: z.string(),
|
|
1457
|
+
status: z.string(),
|
|
1458
|
+
exitCode: z.number().nullable().optional(),
|
|
1459
|
+
errorMessage: z.string().nullable().optional()
|
|
1460
|
+
})).optional(),
|
|
1461
|
+
done: z.boolean().optional(),
|
|
1462
|
+
error: z.string().optional()
|
|
1463
|
+
});
|
|
1464
|
+
/** Request the next chunk of a run's logs from a cursor. */
|
|
1465
|
+
const testRelayRunLogsRequestSchema = z.object({
|
|
1466
|
+
type: z.literal("test.relay.run.logs"),
|
|
1467
|
+
requestId: z.string(),
|
|
1468
|
+
actor: actorPrincipalSchema,
|
|
1469
|
+
runId: z.string(),
|
|
1470
|
+
cursor: z.number()
|
|
1471
|
+
});
|
|
1472
|
+
/** Response carrying the next log chunk + a monotonic cursor. */
|
|
1473
|
+
const testRelayRunLogsResponseSchema = z.object({
|
|
1474
|
+
type: z.literal("test.relay.run.logs.response"),
|
|
1475
|
+
requestId: z.string(),
|
|
1476
|
+
lines: z.array(z.string()).optional(),
|
|
1477
|
+
nextCursor: z.number().optional(),
|
|
1478
|
+
done: z.boolean().optional(),
|
|
1479
|
+
error: z.string().optional()
|
|
1480
|
+
});
|
|
1481
|
+
/** Request to cancel a run. */
|
|
1482
|
+
const testRelayCancelRequestSchema = z.object({
|
|
1483
|
+
type: z.literal("test.relay.cancel"),
|
|
1484
|
+
requestId: z.string(),
|
|
1485
|
+
actor: actorPrincipalSchema,
|
|
1486
|
+
runId: z.string().optional(),
|
|
1487
|
+
branch: z.string().optional()
|
|
1488
|
+
});
|
|
1489
|
+
/** Response acknowledging a cancel. */
|
|
1490
|
+
const testRelayCancelResponseSchema = z.object({
|
|
1491
|
+
type: z.literal("test.relay.cancel.response"),
|
|
1492
|
+
requestId: z.string(),
|
|
1493
|
+
cancelled: z.boolean().optional(),
|
|
1494
|
+
error: z.string().optional()
|
|
1495
|
+
});
|
|
1301
1496
|
/** Dashboard messages flowing from Platform to Orchestrator. */
|
|
1302
1497
|
const dashboardPlatformToOrchSchema = z.discriminatedUnion("type", [
|
|
1303
1498
|
dashboardRunDetailRequestSchema,
|
|
1304
1499
|
dashboardStepLogsRequestSchema,
|
|
1500
|
+
dashboardAttestationsListRequestSchema,
|
|
1305
1501
|
dashboardRunsListRequestSchema,
|
|
1306
1502
|
dashboardRunsFiltersRequestSchema,
|
|
1307
1503
|
dashboardSourcesListRequestSchema,
|
|
@@ -1354,12 +1550,18 @@ const dashboardPlatformToOrchSchema = z.discriminatedUnion("type", [
|
|
|
1354
1550
|
dashboardEventDlqDiscardRequestSchema,
|
|
1355
1551
|
globalWorkflowsGetRequestSchema,
|
|
1356
1552
|
globalWorkflowsUpdateRequestSchema,
|
|
1357
|
-
dashboardAccessLogListRequestSchema
|
|
1553
|
+
dashboardAccessLogListRequestSchema,
|
|
1554
|
+
testRelayUploadsInitRequestSchema,
|
|
1555
|
+
testRelayTriggerRequestSchema,
|
|
1556
|
+
testRelayRunStatusRequestSchema,
|
|
1557
|
+
testRelayRunLogsRequestSchema,
|
|
1558
|
+
testRelayCancelRequestSchema
|
|
1358
1559
|
]);
|
|
1359
1560
|
/** Dashboard messages flowing from Orchestrator to Platform. */
|
|
1360
1561
|
const dashboardOrchToPlatformSchema = z.discriminatedUnion("type", [
|
|
1361
1562
|
dashboardRunDetailResponseSchema,
|
|
1362
1563
|
dashboardStepLogsResponseSchema,
|
|
1564
|
+
dashboardAttestationsListResponseSchema,
|
|
1363
1565
|
dashboardRunsListResponseSchema,
|
|
1364
1566
|
dashboardRunsFiltersResponseSchema,
|
|
1365
1567
|
dashboardSourcesListResponseSchema,
|
|
@@ -1412,7 +1614,12 @@ const dashboardOrchToPlatformSchema = z.discriminatedUnion("type", [
|
|
|
1412
1614
|
dashboardEventDlqDiscardResponseSchema,
|
|
1413
1615
|
globalWorkflowsGetResponseSchema,
|
|
1414
1616
|
globalWorkflowsUpdateResponseSchema,
|
|
1415
|
-
dashboardAccessLogListResponseSchema
|
|
1617
|
+
dashboardAccessLogListResponseSchema,
|
|
1618
|
+
testRelayUploadsInitResponseSchema,
|
|
1619
|
+
testRelayTriggerResponseSchema,
|
|
1620
|
+
testRelayRunStatusResponseSchema,
|
|
1621
|
+
testRelayRunLogsResponseSchema,
|
|
1622
|
+
testRelayCancelResponseSchema
|
|
1416
1623
|
]);
|
|
1417
1624
|
/** REST API response for run detail (jobs with nested steps). */
|
|
1418
1625
|
const dashboardRunDetailApiResponseSchema = z.object({
|
|
@@ -1431,6 +1638,169 @@ const dashboardStepLogsApiResponseSchema = z.object({
|
|
|
1431
1638
|
lines: z.array(z.string()),
|
|
1432
1639
|
totalLines: z.number()
|
|
1433
1640
|
});
|
|
1641
|
+
/**
|
|
1642
|
+
* REST API response for the run attestations list. The orchestrator-relayed
|
|
1643
|
+
* `attestations` array is augmented by Platform with the provenance trust root
|
|
1644
|
+
* from its own `oidcIssuer` config: `trustedIssuer` is the issuer the dashboard
|
|
1645
|
+
* pins each bundle's identity token to (never the bundle's own `iss`), and
|
|
1646
|
+
* `jwksUri` is the discovery JWKS endpoint the dashboard fetches to verify.
|
|
1647
|
+
* Both are null when the Platform has no provenance issuer configured — the
|
|
1648
|
+
* dashboard then lists + downloads the bundles but renders the badge as
|
|
1649
|
+
* "verification unavailable".
|
|
1650
|
+
*/
|
|
1651
|
+
const dashboardAttestationsApiResponseSchema = z.object({
|
|
1652
|
+
trustedIssuer: z.string().nullable(),
|
|
1653
|
+
jwksUri: z.string().nullable(),
|
|
1654
|
+
attestations: z.array(attestationListItemSchema)
|
|
1655
|
+
});
|
|
1656
|
+
/** Resolved user identity attached to run attribution fields. */
|
|
1657
|
+
const runListPrincipalUserSchema = z.object({
|
|
1658
|
+
sub: z.string(),
|
|
1659
|
+
email: z.string().nullable(),
|
|
1660
|
+
displayName: z.string().nullable()
|
|
1661
|
+
});
|
|
1662
|
+
/** Source identity attached to a run summary. */
|
|
1663
|
+
const runListSourceSchema = z.object({
|
|
1664
|
+
routingKey: z.string(),
|
|
1665
|
+
name: z.string().nullable(),
|
|
1666
|
+
subtype: SourceSubtype.nullable(),
|
|
1667
|
+
provider: z.string()
|
|
1668
|
+
});
|
|
1669
|
+
/** Single run summary in the paginated run list. */
|
|
1670
|
+
const runListItemSchema = z.object({
|
|
1671
|
+
runId: z.string(),
|
|
1672
|
+
workflowName: z.string(),
|
|
1673
|
+
status: z.string(),
|
|
1674
|
+
repoIdentifier: z.string().nullable(),
|
|
1675
|
+
sha: z.string().nullable(),
|
|
1676
|
+
ref: z.string().nullable(),
|
|
1677
|
+
triggerEvent: z.string().nullable(),
|
|
1678
|
+
commitMessage: z.string().nullable(),
|
|
1679
|
+
jobCount: z.number().nullable(),
|
|
1680
|
+
startedAt: z.coerce.string().nullable(),
|
|
1681
|
+
completedAt: z.coerce.string().nullable(),
|
|
1682
|
+
durationMs: z.number().nullable(),
|
|
1683
|
+
parentRunId: z.string().nullable(),
|
|
1684
|
+
originalRunId: z.string().nullable(),
|
|
1685
|
+
triggeredBy: z.string().nullable(),
|
|
1686
|
+
triggeredByUser: runListPrincipalUserSchema.nullable(),
|
|
1687
|
+
cancelledBy: z.string().nullable(),
|
|
1688
|
+
cancelledByUser: runListPrincipalUserSchema.nullable(),
|
|
1689
|
+
failureReason: z.string().optional(),
|
|
1690
|
+
hadCompileJob: z.boolean(),
|
|
1691
|
+
compileJobId: z.string().nullable(),
|
|
1692
|
+
source: runListSourceSchema.nullable()
|
|
1693
|
+
});
|
|
1694
|
+
/** Paginated run list response envelope. */
|
|
1695
|
+
const runListResponseSchema = z.object({
|
|
1696
|
+
runs: z.array(runListItemSchema),
|
|
1697
|
+
total: z.number(),
|
|
1698
|
+
page: z.number(),
|
|
1699
|
+
pageSize: z.number(),
|
|
1700
|
+
hasMore: z.boolean()
|
|
1701
|
+
});
|
|
1702
|
+
const diagnosticsInfraAgentSchema = z.object({
|
|
1703
|
+
agentId: z.string(),
|
|
1704
|
+
labels: z.array(z.string()),
|
|
1705
|
+
platform: z.string(),
|
|
1706
|
+
arch: z.string(),
|
|
1707
|
+
activeJobs: z.number(),
|
|
1708
|
+
maxConcurrency: z.number(),
|
|
1709
|
+
lastHeartbeatAt: z.number(),
|
|
1710
|
+
registeredAt: z.number(),
|
|
1711
|
+
version: z.string().nullable().optional(),
|
|
1712
|
+
hostname: z.string().nullable().optional(),
|
|
1713
|
+
osRelease: z.string().nullable().optional(),
|
|
1714
|
+
osVersion: z.string().nullable().optional(),
|
|
1715
|
+
totalMemoryMb: z.number().nullable().optional(),
|
|
1716
|
+
cpuCount: z.number().nullable().optional(),
|
|
1717
|
+
nodeVersion: z.string().nullable().optional(),
|
|
1718
|
+
memoryUsedMb: z.number().nullable().optional(),
|
|
1719
|
+
memoryAvailableMb: z.number().nullable().optional(),
|
|
1720
|
+
uptimeSeconds: z.number().nullable().optional(),
|
|
1721
|
+
runningAsUser: z.string().nullable().optional(),
|
|
1722
|
+
runningAsUid: z.number().nullable().optional(),
|
|
1723
|
+
scalerName: z.string().nullable().optional()
|
|
1724
|
+
});
|
|
1725
|
+
const diagnosticsInfraScalerSchema = z.object({
|
|
1726
|
+
name: z.string(),
|
|
1727
|
+
type: z.string(),
|
|
1728
|
+
maxAgents: z.number(),
|
|
1729
|
+
activeAgents: z.number(),
|
|
1730
|
+
labelSets: z.array(z.array(z.string())),
|
|
1731
|
+
config: z.record(z.string(), z.unknown()).optional(),
|
|
1732
|
+
hosts: z.array(z.string()).optional()
|
|
1733
|
+
});
|
|
1734
|
+
const diagnosticsInfraOrchestratorSchema = z.object({
|
|
1735
|
+
connectionId: z.string(),
|
|
1736
|
+
clusterName: z.string().nullable().optional(),
|
|
1737
|
+
instanceId: z.string().nullable().optional(),
|
|
1738
|
+
routingKeys: z.array(z.string()),
|
|
1739
|
+
connected: z.boolean(),
|
|
1740
|
+
connectedAt: z.number().nullable().optional(),
|
|
1741
|
+
lastHeartbeat: z.number().nullable().optional(),
|
|
1742
|
+
version: z.string().nullable().optional(),
|
|
1743
|
+
mode: z.string().nullable().optional(),
|
|
1744
|
+
role: z.string().nullable().optional(),
|
|
1745
|
+
raftRole: z.string().nullable().optional(),
|
|
1746
|
+
raftTerm: z.number().nullable().optional(),
|
|
1747
|
+
raftLeaderId: z.string().nullable().optional(),
|
|
1748
|
+
scalerBackends: z.array(z.string()),
|
|
1749
|
+
s3LogAccess: z.boolean().nullable().optional(),
|
|
1750
|
+
agentCount: z.number(),
|
|
1751
|
+
runningJobs: z.number(),
|
|
1752
|
+
queuedJobs: z.number(),
|
|
1753
|
+
pendingLabelGaps: z.array(z.string()),
|
|
1754
|
+
agents: z.array(diagnosticsInfraAgentSchema),
|
|
1755
|
+
hostname: z.string().nullable().optional(),
|
|
1756
|
+
osRelease: z.string().nullable().optional(),
|
|
1757
|
+
osVersion: z.string().nullable().optional(),
|
|
1758
|
+
totalMemoryMb: z.number().nullable().optional(),
|
|
1759
|
+
cpuCount: z.number().nullable().optional(),
|
|
1760
|
+
nodeVersion: z.string().nullable().optional(),
|
|
1761
|
+
memoryUsedMb: z.number().nullable().optional(),
|
|
1762
|
+
memoryAvailableMb: z.number().nullable().optional(),
|
|
1763
|
+
uptimeSeconds: z.number().nullable().optional(),
|
|
1764
|
+
runningAsUser: z.string().nullable().optional(),
|
|
1765
|
+
runningAsUid: z.number().nullable().optional(),
|
|
1766
|
+
statefulAgentCount: z.number(),
|
|
1767
|
+
statefulHosts: z.array(z.string()),
|
|
1768
|
+
scalers: z.array(diagnosticsInfraScalerSchema),
|
|
1769
|
+
dependencyHealth: z.array(z.object({
|
|
1770
|
+
name: z.string(),
|
|
1771
|
+
status: z.enum([
|
|
1772
|
+
"pass",
|
|
1773
|
+
"warn",
|
|
1774
|
+
"fail"
|
|
1775
|
+
]),
|
|
1776
|
+
message: z.string().nullable(),
|
|
1777
|
+
details: z.record(z.string(), z.unknown()).optional(),
|
|
1778
|
+
durationMs: z.number().optional()
|
|
1779
|
+
})).optional(),
|
|
1780
|
+
error: z.string().optional()
|
|
1781
|
+
});
|
|
1782
|
+
const diagnosticsInfraAlertSchema = z.object({
|
|
1783
|
+
type: z.string(),
|
|
1784
|
+
message: z.string(),
|
|
1785
|
+
severity: z.string()
|
|
1786
|
+
});
|
|
1787
|
+
const diagnosticsInfrastructureResponseSchema = z.object({
|
|
1788
|
+
orchestrators: z.array(diagnosticsInfraOrchestratorSchema),
|
|
1789
|
+
alerts: z.array(diagnosticsInfraAlertSchema),
|
|
1790
|
+
latestVersion: z.string().nullable().optional()
|
|
1791
|
+
});
|
|
1792
|
+
const diagnosticsExecutionMetricsSchema = z.object({
|
|
1793
|
+
totalRuns: z.number(),
|
|
1794
|
+
successRate: z.number(),
|
|
1795
|
+
avgDurationSeconds: z.number(),
|
|
1796
|
+
queuedJobs: z.number(),
|
|
1797
|
+
runningJobs: z.number()
|
|
1798
|
+
});
|
|
1799
|
+
const diagnosticsSummaryResponseSchema = z.object({
|
|
1800
|
+
connections: z.array(z.unknown()),
|
|
1801
|
+
executionMetrics: diagnosticsExecutionMetricsSchema,
|
|
1802
|
+
orphanedConnections: z.number()
|
|
1803
|
+
});
|
|
1434
1804
|
/** Single infrastructure event for a run (from run_events table). */
|
|
1435
1805
|
const runEventSchema = z.object({
|
|
1436
1806
|
id: z.string(),
|
|
@@ -1489,6 +1859,6 @@ const orgMemberSchema = z.object({
|
|
|
1489
1859
|
/** Response for org members list endpoint. */
|
|
1490
1860
|
const memberListResponseSchema = z.object({ members: z.array(orgMemberSchema) });
|
|
1491
1861
|
//#endregion
|
|
1492
|
-
export { EnvDeleteErrorCode, EventLogPayloadStreamError, HeldRunQueueType, HeldRunStatus, backendGetRequestSchema, backendGetResponseSchema, backendItemSchema, backendSyncRequestSchema, backendSyncResponseSchema, backendTestRequestSchema, backendTestResponseSchema, backendsListRequestSchema, backendsListResponseSchema, backendsSyncAllRequestSchema, backendsSyncAllResponseSchema, browserEventLogPayloadChunkSchema, dashboardDiagnosticsRequestSchema, dashboardDiagnosticsResponseSchema, dashboardEventDlqCountRequestSchema, dashboardEventDlqDiscardRequestSchema, dashboardEventDlqListItemSchema, dashboardEventDlqListRequestSchema, dashboardEventDlqRetryRequestSchema, dashboardEventLogDetailRequestSchema, dashboardEventLogListRequestSchema, dashboardEventLogPayloadChunkSchema, dashboardEventLogPayloadStreamRequestSchema, dashboardJobDetailSchema, dashboardOrchToPlatformSchema, dashboardPayloadRequestSchema, dashboardPlatformToOrchSchema, dashboardRunDetailApiResponseSchema, dashboardRunDetailRequestSchema, dashboardRunDetailResponseSchema, dashboardRunSummarySchema, dashboardRunsFiltersRequestSchema, dashboardRunsFiltersResponseSchema, dashboardRunsListRequestSchema, dashboardRunsListResponseSchema, dashboardScalerAgentsRequestSchema, dashboardScalerAgentsResponseSchema, dashboardScalerCapacityRequestSchema, dashboardScalerCapacityResponseSchema, dashboardSourceSummarySchema, dashboardSourcesListRequestSchema, dashboardSourcesListResponseSchema, dashboardStepLogsApiResponseSchema, dashboardStepLogsRequestSchema, dashboardStepLogsResponseSchema, envBindingsListRequestSchema, envBindingsSetRequestSchema, envCreateRequestSchema, envDeleteRequestSchema, envGetRequestSchema, envHistoryRequestSchema, envListRequestSchema, envSecretDeleteRequestSchema, envSecretScopeCreateRequestSchema, envSecretScopeDeleteRequestSchema, envSecretScopeRenameRequestSchema, envSecretSetRequestSchema, envSecretsListRequestSchema, envSourceOverrideDeleteRequestSchema, envSourceOverrideSetRequestSchema, envSourceOverridesListRequestSchema, envTestAccessSetRequestSchema, envUpdateRequestSchema, envVarDeleteRequestSchema, envVarSetRequestSchema, envVarsListRequestSchema, eventLogListItemSchema, heldRunApproveRequestSchema, heldRunRejectRequestSchema, heldRunsListRequestSchema, identityLinkItemSchema, identityLinkListResponseSchema, manualScheduleRequestSchema, memberIdentityLinkSchema, memberListResponseSchema, memberRoleAssignmentSchema, orgMemberSchema, registrationDeleteRequestSchema, registrationDisableRequestSchema, registrationItemSchema, registrationsListRequestSchema, registrationsListResponseSchema, runCancelRequestSchema, runEventSchema, runLineageResponseSchema, runRerunRequestSchema, trustPolicyResponseSchema };
|
|
1862
|
+
export { EnvDeleteErrorCode, EventLogPayloadStreamError, HeldRunQueueType, HeldRunStatus, TestRelayType, attestationListItemSchema, backendGetRequestSchema, backendGetResponseSchema, backendItemSchema, backendSyncRequestSchema, backendSyncResponseSchema, backendTestRequestSchema, backendTestResponseSchema, backendsListRequestSchema, backendsListResponseSchema, backendsSyncAllRequestSchema, backendsSyncAllResponseSchema, browserEventLogPayloadChunkSchema, dashboardAttestationsApiResponseSchema, dashboardAttestationsListRequestSchema, dashboardAttestationsListResponseSchema, dashboardDiagnosticsRequestSchema, dashboardDiagnosticsResponseSchema, dashboardEventDlqCountRequestSchema, dashboardEventDlqDiscardRequestSchema, dashboardEventDlqListItemSchema, dashboardEventDlqListRequestSchema, dashboardEventDlqRetryRequestSchema, dashboardEventLogDetailRequestSchema, dashboardEventLogListRequestSchema, dashboardEventLogPayloadChunkSchema, dashboardEventLogPayloadStreamRequestSchema, dashboardJobDetailSchema, dashboardOrchToPlatformSchema, dashboardPayloadRequestSchema, dashboardPlatformToOrchSchema, dashboardRunDetailApiResponseSchema, dashboardRunDetailRequestSchema, dashboardRunDetailResponseSchema, dashboardRunSummarySchema, dashboardRunsFiltersRequestSchema, dashboardRunsFiltersResponseSchema, dashboardRunsListRequestSchema, dashboardRunsListResponseSchema, dashboardScalerAgentsRequestSchema, dashboardScalerAgentsResponseSchema, dashboardScalerCapacityRequestSchema, dashboardScalerCapacityResponseSchema, dashboardSourceSummarySchema, dashboardSourcesListRequestSchema, dashboardSourcesListResponseSchema, dashboardStepLogsApiResponseSchema, dashboardStepLogsRequestSchema, dashboardStepLogsResponseSchema, diagnosticsInfrastructureResponseSchema, diagnosticsSummaryResponseSchema, envBindingsListRequestSchema, envBindingsSetRequestSchema, envCreateRequestSchema, envDeleteRequestSchema, envGetRequestSchema, envHistoryRequestSchema, envListRequestSchema, envSecretDeleteRequestSchema, envSecretScopeCreateRequestSchema, envSecretScopeDeleteRequestSchema, envSecretScopeRenameRequestSchema, envSecretSetRequestSchema, envSecretsListRequestSchema, envSourceOverrideDeleteRequestSchema, envSourceOverrideSetRequestSchema, envSourceOverridesListRequestSchema, envTestAccessSetRequestSchema, envUpdateRequestSchema, envVarDeleteRequestSchema, envVarSetRequestSchema, envVarsListRequestSchema, eventLogListItemSchema, heldRunApproveRequestSchema, heldRunRejectRequestSchema, heldRunsListRequestSchema, identityLinkItemSchema, identityLinkListResponseSchema, manualScheduleRequestSchema, memberIdentityLinkSchema, memberListResponseSchema, memberRoleAssignmentSchema, orgMemberSchema, registrationDeleteRequestSchema, registrationDisableRequestSchema, registrationItemSchema, registrationsListRequestSchema, registrationsListResponseSchema, runCancelRequestSchema, runEventSchema, runLineageResponseSchema, runListItemSchema, runListResponseSchema, runRerunRequestSchema, testRelayCancelRequestSchema, testRelayCancelResponseSchema, testRelayRunLogsRequestSchema, testRelayRunLogsResponseSchema, testRelayRunStatusRequestSchema, testRelayRunStatusResponseSchema, testRelayTriggerRequestSchema, testRelayTriggerResponseSchema, testRelayUploadsInitRequestSchema, testRelayUploadsInitResponseSchema, trustPolicyResponseSchema };
|
|
1493
1863
|
|
|
1494
1864
|
//# sourceMappingURL=dashboard.js.map
|
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
/**
|
|
2
|
+
/**
|
|
3
|
+
* Status values for execution runs (execution_runs table).
|
|
4
|
+
*
|
|
5
|
+
* `held` = the run is paused at the workflow install gate (a `registries:` /
|
|
6
|
+
* `installEnv:` protection rule returned hold/wait/queue). It is alive and
|
|
7
|
+
* resumable — NOT terminal — so it is deliberately absent from
|
|
8
|
+
* `TERMINAL_RUN_STATES`. On release (reviewer approve, wait-timer expiry,
|
|
9
|
+
* concurrency slot free) the run resumes into job dispatch; on reject it
|
|
10
|
+
* transitions to `cancelled`.
|
|
11
|
+
*/
|
|
3
12
|
export declare const ExecutionRunStatus: z.ZodEnum<{
|
|
4
13
|
success: "success";
|
|
5
14
|
pending: "pending";
|
|
@@ -7,6 +16,7 @@ export declare const ExecutionRunStatus: z.ZodEnum<{
|
|
|
7
16
|
failed: "failed";
|
|
8
17
|
cancelled: "cancelled";
|
|
9
18
|
cancelling: "cancelling";
|
|
19
|
+
held: "held";
|
|
10
20
|
}>;
|
|
11
21
|
export type ExecutionRunStatus = z.infer<typeof ExecutionRunStatus>;
|
|
12
22
|
/** Status values for execution jobs (execution_jobs table + job.status protocol messages). */
|
|
@@ -146,6 +156,7 @@ export declare const executionStatusSchema: z.ZodObject<{
|
|
|
146
156
|
failed: "failed";
|
|
147
157
|
cancelled: "cancelled";
|
|
148
158
|
cancelling: "cancelling";
|
|
159
|
+
held: "held";
|
|
149
160
|
}>;
|
|
150
161
|
repoIdentifier: z.ZodOptional<z.ZodString>;
|
|
151
162
|
sha: z.ZodOptional<z.ZodString>;
|
|
@@ -263,6 +274,7 @@ export declare const stateReplaySchema: z.ZodObject<{
|
|
|
263
274
|
failed: "failed";
|
|
264
275
|
cancelled: "cancelled";
|
|
265
276
|
cancelling: "cancelling";
|
|
277
|
+
held: "held";
|
|
266
278
|
}>;
|
|
267
279
|
routingKey: z.ZodOptional<z.ZodString>;
|
|
268
280
|
repoIdentifier: z.ZodOptional<z.ZodString>;
|
|
@@ -1,14 +1,24 @@
|
|
|
1
|
-
import "../../chunk-
|
|
1
|
+
import "../../chunk-BTugEXQM.js";
|
|
2
2
|
import { z } from "zod";
|
|
3
3
|
//#region src/protocol/messages/execution-status.ts
|
|
4
|
-
/**
|
|
4
|
+
/**
|
|
5
|
+
* Status values for execution runs (execution_runs table).
|
|
6
|
+
*
|
|
7
|
+
* `held` = the run is paused at the workflow install gate (a `registries:` /
|
|
8
|
+
* `installEnv:` protection rule returned hold/wait/queue). It is alive and
|
|
9
|
+
* resumable — NOT terminal — so it is deliberately absent from
|
|
10
|
+
* `TERMINAL_RUN_STATES`. On release (reviewer approve, wait-timer expiry,
|
|
11
|
+
* concurrency slot free) the run resumes into job dispatch; on reject it
|
|
12
|
+
* transitions to `cancelled`.
|
|
13
|
+
*/
|
|
5
14
|
const ExecutionRunStatus = z.enum([
|
|
6
15
|
"pending",
|
|
7
16
|
"running",
|
|
8
17
|
"success",
|
|
9
18
|
"failed",
|
|
10
19
|
"cancelled",
|
|
11
|
-
"cancelling"
|
|
20
|
+
"cancelling",
|
|
21
|
+
"held"
|
|
12
22
|
]);
|
|
13
23
|
/** Status values for execution jobs (execution_jobs table + job.status protocol messages). */
|
|
14
24
|
const ExecutionJobStatus = z.enum([
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
/**
|
|
3
|
+
* agent.api method name for the provenance ID-token relay.
|
|
4
|
+
*
|
|
5
|
+
* Single source of truth: both the orchestrator's relay-handler registration
|
|
6
|
+
* and the SDK `ctx.kici.oidc.token()` wrapper import this constant, so the
|
|
7
|
+
* wire method name lives in exactly one place.
|
|
8
|
+
*/
|
|
9
|
+
export declare const OIDC_TOKEN_REQUEST_METHOD = "oidc.token.request";
|
|
10
|
+
/**
|
|
11
|
+
* Params an agent sends with an OIDC_TOKEN_REQUEST_METHOD call. The agent
|
|
12
|
+
* supplies only the job it is running plus the requested token audience; the
|
|
13
|
+
* orchestrator binds the mint to the job the agent actually owns and derives
|
|
14
|
+
* every identity claim server-side, so the agent never asserts a repo/ref.
|
|
15
|
+
*/
|
|
16
|
+
export declare const oidcTokenRequestParamsSchema: z.ZodObject<{
|
|
17
|
+
jobId: z.ZodString;
|
|
18
|
+
audience: z.ZodString;
|
|
19
|
+
}, z.core.$strip>;
|
|
20
|
+
export type OidcTokenRequestParams = z.infer<typeof oidcTokenRequestParamsSchema>;
|
|
21
|
+
/**
|
|
22
|
+
* Result the orchestrator returns to the agent: the minted short-lived JWT
|
|
23
|
+
* plus its lifetime and identifier.
|
|
24
|
+
*/
|
|
25
|
+
export declare const oidcTokenResultSchema: z.ZodObject<{
|
|
26
|
+
token: z.ZodString;
|
|
27
|
+
expiresIn: z.ZodNumber;
|
|
28
|
+
jti: z.ZodString;
|
|
29
|
+
}, z.core.$strip>;
|
|
30
|
+
export type OidcTokenResult = z.infer<typeof oidcTokenResultSchema>;
|
|
31
|
+
//# sourceMappingURL=oidc-token-relay.d.ts.map
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import "../../chunk-BTugEXQM.js";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
//#region src/protocol/messages/oidc-token-relay.ts
|
|
4
|
+
/**
|
|
5
|
+
* agent.api method name for the provenance ID-token relay.
|
|
6
|
+
*
|
|
7
|
+
* Single source of truth: both the orchestrator's relay-handler registration
|
|
8
|
+
* and the SDK `ctx.kici.oidc.token()` wrapper import this constant, so the
|
|
9
|
+
* wire method name lives in exactly one place.
|
|
10
|
+
*/
|
|
11
|
+
const OIDC_TOKEN_REQUEST_METHOD = "oidc.token.request";
|
|
12
|
+
/**
|
|
13
|
+
* Params an agent sends with an OIDC_TOKEN_REQUEST_METHOD call. The agent
|
|
14
|
+
* supplies only the job it is running plus the requested token audience; the
|
|
15
|
+
* orchestrator binds the mint to the job the agent actually owns and derives
|
|
16
|
+
* every identity claim server-side, so the agent never asserts a repo/ref.
|
|
17
|
+
*/
|
|
18
|
+
const oidcTokenRequestParamsSchema = z.object({
|
|
19
|
+
jobId: z.string().min(1),
|
|
20
|
+
audience: z.string().min(1).max(255)
|
|
21
|
+
});
|
|
22
|
+
/**
|
|
23
|
+
* Result the orchestrator returns to the agent: the minted short-lived JWT
|
|
24
|
+
* plus its lifetime and identifier.
|
|
25
|
+
*/
|
|
26
|
+
const oidcTokenResultSchema = z.object({
|
|
27
|
+
token: z.string(),
|
|
28
|
+
expiresIn: z.number().int().positive(),
|
|
29
|
+
jti: z.string()
|
|
30
|
+
});
|
|
31
|
+
//#endregion
|
|
32
|
+
export { OIDC_TOKEN_REQUEST_METHOD, oidcTokenRequestParamsSchema, oidcTokenResultSchema };
|
|
33
|
+
|
|
34
|
+
//# sourceMappingURL=oidc-token-relay.js.map
|