@kici-dev/orchestrator 0.4.0 → 0.6.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/__test-helpers__/fake-scaler-state-store.d.ts +24 -0
- package/dist/__test-helpers__/mock-db-query.d.ts +130 -0
- package/dist/__test-helpers__/mock-db.d.ts +27 -0
- package/dist/agent/agent-version.d.ts +34 -0
- package/dist/agent/dispatcher.d.ts +151 -13
- package/dist/agent/host-roster.d.ts +37 -5
- package/dist/agent/registry.d.ts +2 -0
- package/dist/app.d.ts +56 -7
- package/dist/approvals/apply-decision.d.ts +67 -19
- package/dist/approvals/held-run-release-wiring.d.ts +45 -0
- package/dist/approvals/independent-wiring.d.ts +55 -0
- package/dist/approvals/resume-router.d.ts +9 -0
- package/dist/approvals/triggerer-subject.d.ts +37 -0
- package/dist/cache/dep-cache.d.ts +54 -10
- package/dist/cache/global-eval-round-cache.d.ts +95 -0
- package/dist/cache/index.d.ts +3 -0
- package/dist/cache/pending-global-evals.d.ts +42 -0
- package/dist/cache/pending-inits.d.ts +10 -0
- package/dist/cli/api-client.d.ts +18 -0
- package/dist/cli/commands/cluster-settings.d.ts +52 -3
- package/dist/cli/commands/diagnose.d.ts +6 -0
- package/dist/cli/commands/held-run.d.ts +58 -0
- package/dist/cli/commands/runs.d.ts +1 -0
- package/dist/cli/commands/trust-policy.d.ts +117 -12
- package/dist/cli/kici-admin.d.ts +10 -0
- package/dist/cli.js +2770 -938
- package/dist/cluster/cluster-identity.d.ts +3 -3
- package/dist/cluster/cluster-settings-reader.d.ts +59 -1
- package/dist/cluster/coordinator.d.ts +44 -0
- package/dist/cluster/index.d.ts +4 -0
- package/dist/cluster/peer-handler.d.ts +19 -0
- package/dist/cluster/peer-registry.d.ts +17 -0
- package/dist/cluster/plan-headroom-store.d.ts +26 -0
- package/dist/cluster/worker-eviction.d.ts +69 -0
- package/dist/cold-store/load-event-log-range.d.ts +10 -3
- package/dist/cold-store/load-secret-audit-log-range.d.ts +4 -3
- package/dist/cold-store/tables/secret-audit-log.d.ts +4 -3
- package/dist/config.d.ts +48 -21
- package/dist/content-requirements-cache.d.ts +55 -0
- package/dist/contexts/held-runs.d.ts +123 -16
- package/dist/contexts/protection/aggregate.d.ts +3 -2
- package/dist/contexts/protection/branch-gate.d.ts +15 -0
- package/dist/contexts/protection/concurrency-gate.d.ts +8 -2
- package/dist/contexts/protection/pipeline.d.ts +18 -0
- package/dist/contexts/release-queued-holds.d.ts +35 -0
- package/dist/dashboard/attestation-filters.d.ts +8 -0
- package/dist/dashboard/handler.d.ts +6 -24
- package/dist/db/migrations/109_cluster_settings_cache_knobs.d.ts +4 -0
- package/dist/db/migrations/110_cluster_settings_global_eval_knobs.d.ts +4 -0
- package/dist/db/migrations/111_cluster_settings_global_eval_wait.d.ts +4 -0
- package/dist/db/migrations/112_execution_runs_workflow_repo.d.ts +4 -0
- package/dist/db/migrations/113_execution_runs_workflow_repo_index.d.ts +30 -0
- package/dist/db/migrations/114_ingest_queue_claim.d.ts +4 -0
- package/dist/db/migrations/115_global_workflows_cluster_switch.d.ts +9 -0
- package/dist/db/migrations/116_org_plan_headroom.d.ts +4 -0
- package/dist/db/migrations/117_invoke_gate_proxy_jobs.d.ts +4 -0
- package/dist/db/migrations/118_invoke_gate_scheduling.d.ts +4 -0
- package/dist/db/migrations/119_scaler_ha_ownership.d.ts +4 -0
- package/dist/db/migrations/120_cluster_settings_scaler_reaper.d.ts +4 -0
- package/dist/db/migrations/121_org_settings_allow_untrusted_dockerfile_builds.d.ts +19 -0
- package/dist/db/migrations/122_host_roster_scaler_managed.d.ts +25 -0
- package/dist/db/migrations/123_workflow_registrations_default_branch.d.ts +24 -0
- package/dist/db/migrations/124_cluster_settings_provision_backoff.d.ts +4 -0
- package/dist/db/migrations/125_org_trust_directory.d.ts +30 -0
- package/dist/db/migrations/126_held_runs_posted_pending_check.d.ts +28 -0
- package/dist/db/migrations/127_org_trust_policy_approval_expiry_seconds.d.ts +26 -0
- package/dist/db/migrations/128_execution_runs_global_eval_round.d.ts +23 -0
- package/dist/db/migrations/129_execution_runs_dispatch_routing_key.d.ts +24 -0
- package/dist/db/migrations/130_scaler_provision_outcomes.d.ts +32 -0
- package/dist/db/types.d.ts +428 -12
- package/dist/entry-helpers.d.ts +28 -0
- package/dist/events/event-emitter.d.ts +22 -0
- package/dist/events/event-router.d.ts +87 -1
- package/dist/events/types.d.ts +2 -23
- package/dist/git/credential-broker.d.ts +94 -0
- package/dist/git/inherited-secret.d.ts +24 -0
- package/dist/git/installation-token.d.ts +38 -0
- package/dist/git/job-context.d.ts +13 -0
- package/dist/index.js +324 -84
- package/dist/metrics/agent-metrics-aggregator.d.ts +4 -4
- package/dist/metrics/prometheus.d.ts +170 -3
- package/dist/oidc/oidc-mint-registration.d.ts +7 -3
- package/dist/orchestrator-core.d.ts +91 -24
- package/dist/pipeline/content-filter.d.ts +71 -0
- package/dist/pipeline/direct-ingress-deps.d.ts +100 -0
- package/dist/pipeline/dispatch-matched-workflow.d.ts +521 -11
- package/dist/pipeline/global-eval-round.d.ts +307 -0
- package/dist/pipeline/internal-event-pipeline.d.ts +140 -0
- package/dist/pipeline/invoke-gate.d.ts +164 -0
- package/dist/pipeline/job-contexts.d.ts +16 -17
- package/dist/pipeline/needs-scheduler.d.ts +13 -0
- package/dist/pipeline/process-webhook.d.ts +126 -31
- package/dist/pipeline/processor.d.ts +282 -23
- package/dist/pipeline/rerun.d.ts +21 -0
- package/dist/pipeline/resume-workflow.d.ts +40 -7
- package/dist/pipeline/route-or-dispatch-jobs.d.ts +15 -0
- package/dist/pipeline/security-hold-check.d.ts +217 -0
- package/dist/pipeline/test-pipeline.d.ts +12 -0
- package/dist/pipeline/undispatched-hold-checks.d.ts +23 -0
- package/dist/pipeline/webhook-payload-store.d.ts +20 -0
- package/dist/policy/dashboard-write-policy-listener.d.ts +62 -0
- package/dist/policy/dashboard-write-policy.d.ts +14 -0
- package/dist/provenance/backfill-run.d.ts +10 -1
- package/dist/provider-registry.d.ts +47 -4
- package/dist/providers/github/check-status-poster.d.ts +33 -3
- package/dist/providers/github/commit-message.d.ts +20 -0
- package/dist/providers/github/file-contents.d.ts +40 -0
- package/dist/providers/github/index.d.ts +2 -2
- package/dist/providers/github/normalizer.d.ts +3 -2
- package/dist/providers/local/normalizer.d.ts +3 -5
- package/dist/providers/universal-git/config.d.ts +2 -0
- package/dist/providers/universal-git/index.d.ts +11 -2
- package/dist/providers/universal-git/normalizer.d.ts +10 -0
- package/dist/queue/cleanup.d.ts +7 -1
- package/dist/queue/job-queue.d.ts +112 -7
- package/dist/queue/terminalize-unroutable.d.ts +13 -0
- package/dist/registration/extractor.d.ts +3 -3
- package/dist/registration/registration-index.d.ts +7 -0
- package/dist/registration/registration-run-match.d.ts +47 -0
- package/dist/registration/registration-store.d.ts +22 -0
- package/dist/reporting/check-run-reporter.d.ts +146 -2
- package/dist/reporting/check-run-summary.d.ts +25 -1
- package/dist/reporting/execution-tracker.d.ts +324 -9
- package/dist/reporting/log-chunk-sink.d.ts +8 -5
- package/dist/reporting/run-aggregator.d.ts +4 -14
- package/dist/reporting/step-display-order.d.ts +43 -0
- package/dist/routes/admin-held-runs.d.ts +142 -0
- package/dist/routes/admin-org-settings.d.ts +5 -0
- package/dist/routes/admin-trust-policy.d.ts +34 -6
- package/dist/routes/admin.d.ts +15 -0
- package/dist/scaler/backend-factory.d.ts +55 -0
- package/dist/scaler/bare-metal-backend.d.ts +43 -5
- package/dist/scaler/claim-store.d.ts +119 -0
- package/dist/scaler/config.d.ts +4 -0
- package/dist/scaler/container-backend.d.ts +18 -4
- package/dist/scaler/container-routing.d.ts +23 -0
- package/dist/scaler/container-spawn.d.ts +28 -0
- package/dist/scaler/event-backend.d.ts +124 -0
- package/dist/scaler/event-provision-reaper.d.ts +350 -0
- package/dist/scaler/failure-tracker.d.ts +1 -1
- package/dist/scaler/firecracker-backend.d.ts +33 -6
- package/dist/scaler/index.d.ts +11 -1
- package/dist/scaler/label-matcher.d.ts +4 -3
- package/dist/scaler/manager.d.ts +905 -76
- package/dist/scaler/resolve-container-auth.d.ts +45 -0
- package/dist/scaler/scaler-events.d.ts +11 -0
- package/dist/scaler/scaler-state-store.d.ts +294 -10
- package/dist/scaler/types.d.ts +131 -13
- package/dist/scaler/warm-pool.d.ts +132 -29
- package/dist/security/comment-handler.d.ts +50 -11
- package/dist/security/global-workflow-policy.d.ts +52 -12
- package/dist/security/identity-link.d.ts +60 -0
- package/dist/security/lock-source.d.ts +11 -13
- package/dist/security/reduced-privilege-note.d.ts +59 -0
- package/dist/security/trust-directory-store.d.ts +233 -0
- package/dist/security/trust-policy-gate.d.ts +94 -59
- package/dist/security/trust-policy-store.d.ts +3 -0
- package/dist/security/trust-resolver.d.ts +14 -98
- package/dist/server.d.ts +11 -1
- package/dist/server.js +56329 -42234
- package/dist/stale-detector/gate-deadline-detector.d.ts +52 -0
- package/dist/stale-detector/stale-run-detector.d.ts +61 -3
- package/dist/standalone.js +37619 -23570
- package/dist/webhook/ingest-accept.d.ts +70 -0
- package/dist/webhook/ingest-overflow-buffer.d.ts +35 -4
- package/dist/webhook/ingest-overflow-replayer.d.ts +50 -6
- package/dist/worker/in-memory-job-queue.d.ts +1 -1
- package/dist/ws/agent-handler.d.ts +31 -4
- package/dist/ws/dashboard-context-handler.d.ts +28 -4
- package/dist/ws/dashboard-global-workflows-handler.d.ts +36 -9
- package/dist/ws/execution-status-frame.d.ts +32 -0
- package/dist/ws/failure-messages.d.ts +2 -0
- package/dist/ws/git-credential-relay.d.ts +39 -0
- package/dist/ws/oidc-token-relay.d.ts +6 -11
- package/dist/ws/platform-client.d.ts +68 -9
- package/dist/ws/test-relay-handlers.d.ts +35 -10
- package/installer-image-digests.json +3 -3
- package/package.json +24 -19
- package/sbom.spdx.json +868 -821
- package/dist/approvals/team-membership-lookup.d.ts +0 -13
- package/dist/pipeline/inline-eval.d.ts +0 -44
- package/dist/providers/github/contributor-resolver.d.ts +0 -30
- package/dist/security/contributor-cache.d.ts +0 -83
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type StateReplayRun, type OrchestratorToPlatformMessage, type WebhookRelay, type WebhookRelayResult, type TrustPolicyUpdate, type StaleCheckrunCleanup, type DashboardRunDetailRequest, type DashboardRunStructuredRequest, type DashboardRunStateRequest, type DashboardRunsListRequest, type DashboardRunsFiltersRequest, type DashboardSourcesListRequest, type DashboardStepLogsRequest, type DashboardAttestationsListRequest, type DashboardAttestationsListAllRequest, type DashboardAttestationGetRequest, type DashboardAttestationRetryRequest, type DashboardArtifactsListRequest, type DashboardOrchLogsRequest, type RunRerunRequest, type ManualScheduleRequest, type RunCancelRequest, type DashboardPayloadRequest, type DashboardPlatformToOrchMessage, type TestRelayRequest, type DashboardDiagnosticsRequest, type DashboardScalerCapacityRequest, type DashboardScalerAgentsRequest, type DashboardFleetHostsRequest, type DashboardFleetHostRequest, type DashboardFleetPreviewRequest, type DashboardFleetWorkflowsForHostRequest, type JoinRequest, type JoinResponse, type DeploymentIdentity, type OrchCapabilities, type OrchRole } from '@kici-dev/engine';
|
|
2
|
+
import type { PlanHeadroomStore } from '../cluster/plan-headroom-store.js';
|
|
2
3
|
import { RelayBufferRegistry, type RelayStartMeta } from '../webhook/relay-buffer.js';
|
|
3
4
|
import type { AdmitResult } from '../webhook/ingest-admission.js';
|
|
4
5
|
/**
|
|
@@ -36,6 +37,20 @@ export type ReplaySendResult = {
|
|
|
36
37
|
*/
|
|
37
38
|
export type { ProviderSource } from '../entry-helpers.js';
|
|
38
39
|
import type { ProviderSource } from '../entry-helpers.js';
|
|
40
|
+
/**
|
|
41
|
+
* Hard ceiling on how long an admitted fire-and-forget relay pipeline may hold
|
|
42
|
+
* its admission slot before it is force-released. A pipeline running longer than
|
|
43
|
+
* this is treated as hung; releasing its slot (idempotently) prevents a
|
|
44
|
+
* permanent slot leak that would otherwise shrink capacity for every future
|
|
45
|
+
* webhook. Well above any legitimate ingest-pipeline duration.
|
|
46
|
+
*
|
|
47
|
+
* Exported because it is also the hard bound on anything a webhook waits for
|
|
48
|
+
* inline: the global eval round caps its raised wait ceiling at this value,
|
|
49
|
+
* since a ceiling past the point the relay force-releases the pipeline buys
|
|
50
|
+
* latency and no verdict. Two copies of "5 minutes" with nothing coupling them
|
|
51
|
+
* is exactly the pair that drifts.
|
|
52
|
+
*/
|
|
53
|
+
export declare const ADMITTED_PIPELINE_LIFETIME_MS: number;
|
|
39
54
|
export interface PlatformClientOptions {
|
|
40
55
|
/** WebSocket URL of the Platform relay. */
|
|
41
56
|
url: string;
|
|
@@ -100,6 +115,27 @@ export interface PlatformClientOptions {
|
|
|
100
115
|
}) => void;
|
|
101
116
|
/** Optional callback invoked after successful authentication and source registration. */
|
|
102
117
|
onAuthenticated?: () => void;
|
|
118
|
+
/**
|
|
119
|
+
* Returns this coordinator's currently-connected worker peers for the
|
|
120
|
+
* `cluster.membership` snapshot. Undefined on a non-coordinator (or when
|
|
121
|
+
* clustering is off) → no membership is reported.
|
|
122
|
+
*/
|
|
123
|
+
getWorkerPeers?: () => Array<{
|
|
124
|
+
instanceId: string;
|
|
125
|
+
}>;
|
|
126
|
+
/**
|
|
127
|
+
* Persisted cache of the Platform-pushed worker ceiling. Written on every
|
|
128
|
+
* `plan.headroom`, read by `getWorkerCeiling`. Undefined → the coordinator
|
|
129
|
+
* receives no ceiling and admits worker joins freely.
|
|
130
|
+
*/
|
|
131
|
+
planHeadroomStore?: PlanHeadroomStore;
|
|
132
|
+
/**
|
|
133
|
+
* Reconcile this coordinator's workers against a pushed ceiling. Invoked on
|
|
134
|
+
* EVERY `plan.headroom` frame with the frame's `evictExcess` flag, so a raised
|
|
135
|
+
* ceiling (or a cleared `evictExcess`) can cancel an in-flight drain, not only
|
|
136
|
+
* start one. Undefined → no eviction reconciliation.
|
|
137
|
+
*/
|
|
138
|
+
onPlanCeiling?: (ceiling: number, evictExcess: boolean) => void;
|
|
103
139
|
/**
|
|
104
140
|
* Optional callback invoked when the Platform surfaces the orchestrator's
|
|
105
141
|
* canonical org id on `auth.success`. Used to auto-provision the
|
|
@@ -181,16 +217,12 @@ export interface PlatformClientOptions {
|
|
|
181
217
|
/** Custom orchestrator capabilities to merge with ORCH_CAPABILITIES in auth.request. */
|
|
182
218
|
orchCapabilities?: Partial<OrchCapabilities>;
|
|
183
219
|
/**
|
|
184
|
-
* Test-only
|
|
185
|
-
*
|
|
220
|
+
* Test-only fault-injection transform over the advertised capability manifest,
|
|
221
|
+
* supplied only by the build-time test double to reproduce an older /
|
|
222
|
+
* sourceless orchestrator that predates a given dashboard capability. Undefined
|
|
223
|
+
* (the shipped default) means identity — the full capability set is advertised.
|
|
186
224
|
*/
|
|
187
|
-
|
|
188
|
-
/**
|
|
189
|
-
* Test-only. Comma-separated `dashboard.*` request types to drop from the
|
|
190
|
-
* advertised capability manifest (config `KICI_TEST_OMIT_DASHBOARD_REQUEST_TYPES`).
|
|
191
|
-
* Only honored when `testMode` is true; production leaves both unset.
|
|
192
|
-
*/
|
|
193
|
-
testOmitDashboardRequestTypes?: string;
|
|
225
|
+
capabilitiesTransform?: (c: OrchCapabilities) => OrchCapabilities;
|
|
194
226
|
/**
|
|
195
227
|
* Verify a reassembled inbound webhook from the chunked relay path.
|
|
196
228
|
*
|
|
@@ -255,6 +287,7 @@ export declare class PlatformClient {
|
|
|
255
287
|
private _state;
|
|
256
288
|
private readonly eventBuffer;
|
|
257
289
|
private heartbeatTimer;
|
|
290
|
+
private membershipTimer;
|
|
258
291
|
private reconnectTimer;
|
|
259
292
|
private reconnectAttempts;
|
|
260
293
|
/** Armed on auth; resets the backoff only if the connection survives it. */
|
|
@@ -307,6 +340,9 @@ export declare class PlatformClient {
|
|
|
307
340
|
private readonly onLogPullRequest?;
|
|
308
341
|
private readonly onPeerDiscover?;
|
|
309
342
|
private readonly onAuthenticated?;
|
|
343
|
+
private readonly getWorkerPeers?;
|
|
344
|
+
private readonly planHeadroomStore?;
|
|
345
|
+
private readonly onPlanCeiling?;
|
|
310
346
|
private readonly onOrgIdentified?;
|
|
311
347
|
private readonly onProvenanceIssuer?;
|
|
312
348
|
private readonly onDashboardRunDetail?;
|
|
@@ -518,6 +554,29 @@ export declare class PlatformClient {
|
|
|
518
554
|
private flushBuffer;
|
|
519
555
|
private startHeartbeat;
|
|
520
556
|
private stopHeartbeat;
|
|
557
|
+
/** How often a coordinator re-sends its membership snapshot. */
|
|
558
|
+
private static readonly CLUSTER_MEMBERSHIP_INTERVAL_MS;
|
|
559
|
+
/**
|
|
560
|
+
* Send the current worker-peer snapshot to the Platform.
|
|
561
|
+
*
|
|
562
|
+
* A snapshot, not a delta: a dropped frame self-heals on the next send. A
|
|
563
|
+
* no-op when the client is not authenticated or has no worker-peer source.
|
|
564
|
+
*/
|
|
565
|
+
sendClusterMembership(): void;
|
|
566
|
+
private startClusterMembership;
|
|
567
|
+
private stopClusterMembership;
|
|
568
|
+
/**
|
|
569
|
+
* Store the Platform's worker ceiling and act on an eviction directive.
|
|
570
|
+
*
|
|
571
|
+
* The stored value survives a Platform disconnect and a coordinator restart,
|
|
572
|
+
* which is what makes the fail-open stance bounded rather than unlimited.
|
|
573
|
+
*/
|
|
574
|
+
private onPlanHeadroom;
|
|
575
|
+
/**
|
|
576
|
+
* The ceiling this coordinator enforces, or `null` when none was ever
|
|
577
|
+
* received — in which case worker joins are admitted freely.
|
|
578
|
+
*/
|
|
579
|
+
getWorkerCeiling(): Promise<number | null>;
|
|
521
580
|
private scheduleReconnect;
|
|
522
581
|
private clearStabilityTimer;
|
|
523
582
|
private cancelReconnect;
|
|
@@ -24,15 +24,6 @@ export interface TestRelayHandlerDeps extends ProcessingDeps {
|
|
|
24
24
|
agentRegistry: NonNullable<ProcessingDeps['agentRegistry']>;
|
|
25
25
|
cacheStorage?: CacheStorage;
|
|
26
26
|
logStorage?: LogStorage;
|
|
27
|
-
/**
|
|
28
|
-
* Log writer that owns the in-flight append tracking. The logs cursor
|
|
29
|
-
* handler drains its pending appends for a terminal run before computing the
|
|
30
|
-
* `done` flag, so the final (fire-and-forget) log chunk can't be lost to a
|
|
31
|
-
* race with the run-status transition.
|
|
32
|
-
*/
|
|
33
|
-
logWriter?: {
|
|
34
|
-
drain(runId: string): Promise<void>;
|
|
35
|
-
};
|
|
36
27
|
accessLog?: AccessLogWriter;
|
|
37
28
|
/** Canonical org id this orchestrator is bound to (for access_log attribution). */
|
|
38
29
|
orgId?: string | null;
|
|
@@ -79,7 +70,41 @@ export interface TestRunStatusPayload {
|
|
|
79
70
|
}>;
|
|
80
71
|
done: boolean;
|
|
81
72
|
}
|
|
82
|
-
/**
|
|
73
|
+
/**
|
|
74
|
+
* Snapshot a run's status + per-job status. `done` is true at a terminal run state.
|
|
75
|
+
*
|
|
76
|
+
* ## Why this does not check ownership, even though the run now records an owner
|
|
77
|
+
*
|
|
78
|
+
* `handleTestTrigger` records the initiator on `execution_runs.triggered_by`,
|
|
79
|
+
* so comparing `msg.actor` against it here looks like free defence in depth. It
|
|
80
|
+
* is not, for three reasons that are worth writing down because the idea
|
|
81
|
+
* recurs.
|
|
82
|
+
*
|
|
83
|
+
* **The orchestrator cannot authenticate the actor.** It is asserted by the
|
|
84
|
+
* Platform over the authenticated control-plane connection; nothing here can
|
|
85
|
+
* verify it. A Platform that is lying can name any principal and pass the
|
|
86
|
+
* check, so enforcing would defend only against a Platform that reports the
|
|
87
|
+
* actor faithfully and forgets to check ownership — not against a hostile one.
|
|
88
|
+
*
|
|
89
|
+
* **The two gates would disagree.** The Platform deliberately admits a caller
|
|
90
|
+
* with unrestricted repository scope alongside the creator, because such a
|
|
91
|
+
* caller can already read these runs through the dashboard run plane. Repo
|
|
92
|
+
* patterns do not exist on this tier — only the actor arrives — so an
|
|
93
|
+
* organization owner reading a developer's run would be allowed there and
|
|
94
|
+
* refused here. Closing that would mean the Platform asserting "this caller is
|
|
95
|
+
* unrestricted", which is the first problem again with extra steps.
|
|
96
|
+
*
|
|
97
|
+
* **The version skew runs the wrong way.** This component is customer-deployed
|
|
98
|
+
* and versions independently of the Platform, so an orchestrator upgraded to
|
|
99
|
+
* enforce would start refusing legitimate reads against a Platform that has not
|
|
100
|
+
* changed — a break the customer triggers and we cannot roll back. Fail-closed
|
|
101
|
+
* is right for a security control and wrong for a compatibility surface, and
|
|
102
|
+
* this is both.
|
|
103
|
+
*
|
|
104
|
+
* So the actor is recorded, not enforced. Enforcing here needs the caller's
|
|
105
|
+
* effective authorization scope on the wire (so one policy is evaluated rather
|
|
106
|
+
* than two), and an actor this tier can establish independently.
|
|
107
|
+
*/
|
|
83
108
|
export declare function handleTestRunStatus(msg: TestRelayRunStatusRequest, deps: TestRelayHandlerDeps): Promise<TestRunStatusPayload | {
|
|
84
109
|
error: string;
|
|
85
110
|
}>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "0.
|
|
2
|
+
"version": "0.6.0",
|
|
3
3
|
"images": {
|
|
4
|
-
"kici-agent": "sha256:
|
|
5
|
-
"kici-orchestrator": "sha256:
|
|
4
|
+
"kici-agent": "sha256:6a6dad749ae8a520774139588b6b83d194dcddc5fec58ed46207e0654eb9bc27",
|
|
5
|
+
"kici-orchestrator": "sha256:86cc2e5c316492bffce415ac55989681491de25085258f411928ed19ad7a36fb"
|
|
6
6
|
}
|
|
7
7
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kici-dev/orchestrator",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.0",
|
|
4
4
|
"description": "Customer-deployable orchestrator for the KiCI CI/CD stack. Receives webhook events (direct or via Platform relay), matches triggers against the lock file, and dispatches jobs to connected agents.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ci",
|
|
@@ -30,6 +30,8 @@
|
|
|
30
30
|
"files": [
|
|
31
31
|
"dist",
|
|
32
32
|
"!dist/**/*.map",
|
|
33
|
+
"!dist/server-test.d.ts",
|
|
34
|
+
"!dist/testing",
|
|
33
35
|
"sbom.spdx.json",
|
|
34
36
|
"installer-image-digests.json"
|
|
35
37
|
],
|
|
@@ -54,38 +56,41 @@
|
|
|
54
56
|
"standalone.js": "src/standalone.ts",
|
|
55
57
|
"cli.js": "src/cli/kici-admin.ts",
|
|
56
58
|
"index.js": "src/index.ts"
|
|
59
|
+
},
|
|
60
|
+
"devEntries": {
|
|
61
|
+
"server-test.js": "src/server-test.ts"
|
|
57
62
|
}
|
|
58
63
|
},
|
|
59
64
|
"dependencies": {
|
|
60
|
-
"@aws-sdk/client-kms": "^3.
|
|
61
|
-
"@aws-sdk/client-s3": "^3.
|
|
62
|
-
"@aws-sdk/lib-storage": "^3.
|
|
63
|
-
"@aws-sdk/s3-request-presigner": "^3.
|
|
64
|
-
"@hono/node-server": "^2.
|
|
65
|
-
"@inquirer/prompts": "^8.
|
|
66
|
-
"@octokit/auth-app": "^8.
|
|
65
|
+
"@aws-sdk/client-kms": "^3.1121.0",
|
|
66
|
+
"@aws-sdk/client-s3": "^3.1121.0",
|
|
67
|
+
"@aws-sdk/lib-storage": "^3.1121.0",
|
|
68
|
+
"@aws-sdk/s3-request-presigner": "^3.1121.0",
|
|
69
|
+
"@hono/node-server": "^2.1.1",
|
|
70
|
+
"@inquirer/prompts": "^8.7.0",
|
|
71
|
+
"@octokit/auth-app": "^8.3.0",
|
|
67
72
|
"@octokit/rest": "^22.0.1",
|
|
68
73
|
"archiver": "^8.0.0",
|
|
69
74
|
"commander": "^15.0.0",
|
|
70
75
|
"croner": "^10.0.1",
|
|
71
76
|
"dockerode": "^5.0.1",
|
|
72
|
-
"hashi-vault-js": "^0.5.
|
|
73
|
-
"hono": "^4.
|
|
74
|
-
"jose": "^6.
|
|
77
|
+
"hashi-vault-js": "^0.5.3",
|
|
78
|
+
"hono": "^4.13.2",
|
|
79
|
+
"jose": "^6.2.10",
|
|
75
80
|
"jsonpath-plus": "^10.4.0",
|
|
76
81
|
"jszip": "^3.10.1",
|
|
77
82
|
"kysely": "^0.29.4",
|
|
78
83
|
"lru-cache": "^11.5.2",
|
|
79
|
-
"nanoid": "^6.0.
|
|
80
|
-
"pg": "^8.
|
|
81
|
-
"picomatch": "^4.0.
|
|
84
|
+
"nanoid": "^6.0.1",
|
|
85
|
+
"pg": "^8.23.0",
|
|
86
|
+
"picomatch": "^4.0.7",
|
|
82
87
|
"strip-ansi": "^7.2.0",
|
|
83
|
-
"tar": "^7.5.
|
|
84
|
-
"ws": "^8.21.
|
|
88
|
+
"tar": "^7.5.22",
|
|
89
|
+
"ws": "^8.21.3",
|
|
85
90
|
"yaml": "^2.9.0",
|
|
86
91
|
"zod": "^4.4.3",
|
|
87
|
-
"@kici-dev/
|
|
88
|
-
"@kici-dev/
|
|
92
|
+
"@kici-dev/shared": "0.6.0",
|
|
93
|
+
"@kici-dev/engine": "0.6.0"
|
|
89
94
|
},
|
|
90
95
|
"kici": {
|
|
91
96
|
"metrics": {
|
|
@@ -100,7 +105,7 @@
|
|
|
100
105
|
"@types/dockerode": "^4.0.1",
|
|
101
106
|
"@types/ws": "^8.18.1",
|
|
102
107
|
"kysely-ctl": "^0.21.0",
|
|
103
|
-
"@kici-dev/agent": "0.
|
|
108
|
+
"@kici-dev/agent": "0.6.0"
|
|
104
109
|
},
|
|
105
110
|
"scripts": {
|
|
106
111
|
"build": "node ../../scripts/build-service.mjs && tsgo --emitDeclarationOnly",
|