@kici-dev/orchestrator 0.16.0 → 0.18.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/agent/agent-version.d.ts +12 -21
- package/dist/agent/dispatcher.d.ts +283 -437
- package/dist/agent/host-roster-reaper.d.ts +8 -10
- package/dist/agent/host-roster.d.ts +77 -100
- package/dist/agent/ownership-refusal.d.ts +3 -5
- package/dist/agent/ownership-tracker.d.ts +42 -76
- package/dist/agent/registry.d.ts +121 -233
- package/dist/agent/token-store.d.ts +34 -77
- package/dist/agent-packaging/availability.d.ts +6 -9
- package/dist/agent-packaging/download.d.ts +6 -9
- package/dist/agent-packaging/install-closure.d.ts +9 -12
- package/dist/agent-packaging/node-binary.d.ts +6 -10
- package/dist/agent-packaging/node-runtime-members.d.ts +3 -5
- package/dist/agent-packaging/refresh.d.ts +12 -16
- package/dist/agent-packaging/store.d.ts +5 -6
- package/dist/agent-packaging/upload.d.ts +3 -4
- package/dist/app.d.ts +0 -3
- package/dist/approvals/apply-decision.d.ts +39 -45
- package/dist/approvals/approval-resolver.d.ts +11 -23
- package/dist/approvals/held-run-release-wiring.d.ts +14 -21
- package/dist/approvals/independent-wiring.d.ts +13 -20
- package/dist/approvals/resume-router.d.ts +1 -1
- package/dist/approvals/step-approval-bridge.d.ts +11 -21
- package/dist/approvals/triggerer-subject.d.ts +8 -10
- package/dist/artifacts/artifact-store.d.ts +55 -95
- package/dist/artifacts/failure-messages.d.ts +15 -20
- package/dist/audit/access-log.d.ts +27 -45
- package/dist/audit/sampling-rate-limiter.d.ts +11 -23
- package/dist/cache/agent-job-failed-error.d.ts +2 -3
- package/dist/cache/build-coordinator.d.ts +5 -28
- package/dist/cache/cache-upload-settle.d.ts +11 -11
- package/dist/cache/dep-cache.d.ts +32 -60
- package/dist/cache/dispatch-cache-ref-tracker.d.ts +15 -23
- package/dist/cache/global-eval-round-cache.d.ts +33 -41
- package/dist/cache/pending-builds.d.ts +2 -6
- package/dist/cache/pending-dynamics.d.ts +2 -7
- package/dist/cache/pending-global-evals.d.ts +9 -12
- package/dist/cache/pending-inits.d.ts +11 -22
- package/dist/cache/pending-precursor-db-watcher.d.ts +24 -32
- package/dist/cache/pending-tracker.d.ts +17 -45
- package/dist/cache/precursor-result.d.ts +17 -30
- package/dist/cache/source-cache.d.ts +36 -65
- package/dist/cache/user-cache.d.ts +21 -25
- package/dist/cancel/cancel-held-run.d.ts +13 -16
- package/dist/cancel/cancel-route-answer.d.ts +1 -2
- package/dist/cancel/cancel-run.d.ts +26 -50
- package/dist/cancel/dashboard-cancel-handler.d.ts +2 -2
- package/dist/cancel/peer-job-cancel.d.ts +11 -14
- package/dist/cancel/sweep-stuck-cancelling.d.ts +9 -13
- package/dist/cli/api-client.d.ts +33 -76
- package/dist/cli/commands/access-log.d.ts +4 -24
- package/dist/cli/commands/agent-package.d.ts +7 -15
- package/dist/cli/commands/agent-service/agent-env.d.ts +3 -6
- package/dist/cli/commands/agent-service/index.d.ts +4 -10
- package/dist/cli/commands/agent-service/install.d.ts +4 -11
- package/dist/cli/commands/agent-service/status.d.ts +4 -9
- package/dist/cli/commands/agent-service/upgrade.d.ts +4 -16
- package/dist/cli/commands/agent.d.ts +12 -25
- package/dist/cli/commands/api-key.d.ts +7 -7
- package/dist/cli/commands/attestations-list.d.ts +7 -17
- package/dist/cli/commands/attestations-retry.d.ts +5 -11
- package/dist/cli/commands/attestations-reverify.d.ts +4 -5
- package/dist/cli/commands/attestations.d.ts +3 -8
- package/dist/cli/commands/audit.d.ts +1 -5
- package/dist/cli/commands/backend.d.ts +2 -11
- package/dist/cli/commands/check-run.d.ts +7 -18
- package/dist/cli/commands/cluster-name.d.ts +5 -12
- package/dist/cli/commands/cluster-settings.d.ts +28 -53
- package/dist/cli/commands/cold-store.d.ts +7 -15
- package/dist/cli/commands/config.d.ts +9 -20
- package/dist/cli/commands/context.d.ts +8 -20
- package/dist/cli/commands/dashboard-encryption-key.d.ts +9 -14
- package/dist/cli/commands/db-backup.d.ts +17 -32
- package/dist/cli/commands/db.d.ts +3 -4
- package/dist/cli/commands/debug-bundle.d.ts +3 -10
- package/dist/cli/commands/diagnose.d.ts +3 -14
- package/dist/cli/commands/event-dlq.d.ts +4 -12
- package/dist/cli/commands/event-log.d.ts +2 -20
- package/dist/cli/commands/execution.d.ts +3 -9
- package/dist/cli/commands/firecracker/index.d.ts +3 -6
- package/dist/cli/commands/held-run.d.ts +23 -37
- package/dist/cli/commands/host.d.ts +4 -11
- package/dist/cli/commands/inspect-bundle.d.ts +3 -11
- package/dist/cli/commands/local-hook.d.ts +2 -10
- package/dist/cli/commands/local-trigger.d.ts +2 -2
- package/dist/cli/commands/orchestrator-service/drain.d.ts +3 -6
- package/dist/cli/commands/orchestrator-service/index.d.ts +6 -14
- package/dist/cli/commands/orchestrator-service/install-env.d.ts +25 -49
- package/dist/cli/commands/orchestrator-service/install.d.ts +2 -5
- package/dist/cli/commands/orchestrator-service/status.d.ts +10 -22
- package/dist/cli/commands/orchestrator-service/upgrade.d.ts +6 -15
- package/dist/cli/commands/org-settings.d.ts +5 -11
- package/dist/cli/commands/peer.d.ts +5 -10
- package/dist/cli/commands/queue.d.ts +3 -9
- package/dist/cli/commands/registration.d.ts +4 -8
- package/dist/cli/commands/remote-source.d.ts +6 -12
- package/dist/cli/commands/rotate.d.ts +1 -5
- package/dist/cli/commands/runs.d.ts +1 -30
- package/dist/cli/commands/scaler.d.ts +5 -12
- package/dist/cli/commands/secret.d.ts +1 -9
- package/dist/cli/commands/service-health.d.ts +5 -10
- package/dist/cli/commands/shared/admin-cli-access-log.d.ts +10 -19
- package/dist/cli/commands/shared/bare-metal-binary-check.d.ts +86 -0
- package/dist/cli/commands/shared/cli-action.d.ts +1 -4
- package/dist/cli/commands/shared/confirm.d.ts +5 -10
- package/dist/cli/commands/shared/db.d.ts +1 -12
- package/dist/cli/commands/shared/env-file-mode.d.ts +6 -9
- package/dist/cli/commands/shared/secret-input.d.ts +7 -21
- package/dist/cli/commands/shared/service-verbs.d.ts +6 -12
- package/dist/cli/commands/shared/unbound-context-warning.d.ts +2 -4
- package/dist/cli/commands/shared/upgrade-hooks.d.ts +7 -16
- package/dist/cli/commands/shared/upgrade-safety.d.ts +20 -31
- package/dist/cli/commands/shared/versioned-upgrade.d.ts +83 -161
- package/dist/cli/commands/signing-key.d.ts +4 -9
- package/dist/cli/commands/source-manifest.d.ts +11 -14
- package/dist/cli/commands/source.d.ts +7 -32
- package/dist/cli/commands/token.d.ts +4 -15
- package/dist/cli/commands/trust-policy.d.ts +35 -88
- package/dist/cli/commands/variable.d.ts +3 -5
- package/dist/cli/commands/workflow.d.ts +3 -24
- package/dist/cli/join.d.ts +3 -6
- package/dist/cli/kici-admin.d.ts +11 -29
- package/dist/cli/lazy-deps/cache.d.ts +1 -14
- package/dist/cli/lazy-deps/downloader.d.ts +4 -27
- package/dist/cli/lazy-deps/registry.d.ts +5 -25
- package/dist/cli/local-github-ingress-url.d.ts +5 -7
- package/dist/cli/loopback-callback.d.ts +6 -7
- package/dist/cli/open-browser.d.ts +4 -8
- package/dist/cli/root-option-routing.d.ts +17 -29
- package/dist/cli/service/backup-timer.d.ts +16 -39
- package/dist/cli/service/compose-path.d.ts +3 -7
- package/dist/cli/service/compose.d.ts +12 -30
- package/dist/cli/service/deploy-env.d.ts +6 -18
- package/dist/cli/service/entrypoint.d.ts +14 -25
- package/dist/cli/service/env-assignment.d.ts +6 -17
- package/dist/cli/service/image-digests.d.ts +6 -15
- package/dist/cli/service/index.d.ts +2 -18
- package/dist/cli/service/instance/index-file.d.ts +9 -16
- package/dist/cli/service/instance/manifest.d.ts +33 -59
- package/dist/cli/service/instance/resolve.d.ts +32 -68
- package/dist/cli/service/instance/types.d.ts +12 -29
- package/dist/cli/service/launchd.d.ts +29 -60
- package/dist/cli/service/platform-detect.d.ts +13 -68
- package/dist/cli/service/privilege.d.ts +12 -25
- package/dist/cli/service/shutdown-grace.d.ts +11 -20
- package/dist/cli/service/systemd.d.ts +7 -20
- package/dist/cli/service/types.d.ts +63 -114
- package/dist/cli/service/windows-acl.d.ts +14 -21
- package/dist/cli/service/windows-env-file.d.ts +10 -28
- package/dist/cli/service/windows.d.ts +15 -31
- package/dist/cli/webhook-url-notes.d.ts +4 -6
- package/dist/cli/wizard/agent-wizard.d.ts +3 -14
- package/dist/cli/wizard/orchestrator-wizard.d.ts +12 -37
- package/dist/cli/wizard/prompts.d.ts +6 -16
- package/dist/cli.js +4553 -6556
- package/dist/cluster/cluster-identity.d.ts +20 -32
- package/dist/cluster/cluster-settings-reader.d.ts +50 -77
- package/dist/cluster/coordinator-credential.d.ts +4 -5
- package/dist/cluster/coordinator.d.ts +76 -148
- package/dist/cluster/health-api.d.ts +2 -10
- package/dist/cluster/index.d.ts +1 -6
- package/dist/cluster/instance-heartbeat.d.ts +26 -42
- package/dist/cluster/join-client.d.ts +4 -7
- package/dist/cluster/join-handler.d.ts +3 -7
- package/dist/cluster/join-token.d.ts +13 -27
- package/dist/cluster/leader-gated-scheduler.d.ts +8 -17
- package/dist/cluster/orphan-recovery.d.ts +13 -35
- package/dist/cluster/peer-auth-coordinator.d.ts +2 -8
- package/dist/cluster/peer-client.d.ts +46 -76
- package/dist/cluster/peer-credentials.d.ts +24 -70
- package/dist/cluster/peer-crypto.d.ts +5 -26
- package/dist/cluster/peer-forget.d.ts +3 -3
- package/dist/cluster/peer-handler.d.ts +47 -71
- package/dist/cluster/peer-registry.d.ts +37 -106
- package/dist/cluster/plan-headroom-store.d.ts +4 -6
- package/dist/cluster/raft-state.d.ts +4 -13
- package/dist/cluster/raft.d.ts +18 -53
- package/dist/cluster/reconcile-identity.d.ts +8 -11
- package/dist/cluster/rerouted-job-guard.d.ts +7 -11
- package/dist/cluster/verified-issuer.d.ts +2 -3
- package/dist/cluster/worker-cluster-settings.d.ts +7 -10
- package/dist/cluster/worker-eviction.d.ts +16 -26
- package/dist/cold-store/load-access-log-range.d.ts +15 -31
- package/dist/cold-store/load-event-log-range.d.ts +13 -27
- package/dist/cold-store/load-secret-audit-log-range.d.ts +8 -12
- package/dist/cold-store/orchestrator-cold-store.d.ts +8 -28
- package/dist/cold-store/tables/access-log.d.ts +12 -14
- package/dist/cold-store/tables/event-log.d.ts +4 -8
- package/dist/cold-store/tables/execution-runs.d.ts +6 -11
- package/dist/cold-store/tables/secret-audit-log.d.ts +5 -12
- package/dist/concurrency/dispatch-next-queued.d.ts +13 -25
- package/dist/concurrency/queue-manager.d.ts +22 -54
- package/dist/concurrency/waiters.d.ts +15 -31
- package/dist/config/encryption.d.ts +0 -2
- package/dist/config/loader.d.ts +0 -1
- package/dist/config/reload.d.ts +0 -6
- package/dist/config/resolver.d.ts +0 -4
- package/dist/config/shared-store.d.ts +0 -2
- package/dist/config/types.d.ts +0 -3
- package/dist/content-requirements-cache.d.ts +0 -1
- package/dist/contexts/context-store.d.ts +0 -2
- package/dist/contexts/held-runs.d.ts +0 -2
- package/dist/contexts/variable-store.d.ts +0 -2
- package/dist/dashboard/attestation-filters.d.ts +13 -18
- package/dist/dashboard/handler.d.ts +143 -307
- package/dist/db/client.d.ts +2 -6
- package/dist/db/deferred-index-build.d.ts +8 -10
- package/dist/db/deferred-indexes.d.ts +15 -22
- package/dist/db/migration-provider.d.ts +2 -4
- package/dist/db/migration-test-harness.d.ts +26 -44
- package/dist/db/migrations/001_initial.d.ts +1 -4
- package/dist/db/migrations/002_config_versions_key_version.d.ts +5 -8
- package/dist/db/migrations/003_access_log.d.ts +10 -15
- package/dist/db/migrations/004_rename_bundle_to_source.d.ts +7 -9
- package/dist/db/migrations/005_cold_store_chunk_counter.d.ts +4 -10
- package/dist/db/migrations/006_runs_jobs_steps_archived_at.d.ts +9 -29
- package/dist/db/migrations/007_audit_logs_archived_at.d.ts +11 -30
- package/dist/db/migrations/008_event_log_archived_at.d.ts +14 -29
- package/dist/db/migrations/009_access_log_trigram.d.ts +4 -8
- package/dist/db/migrations/010_cold_store_chunks.d.ts +16 -26
- package/dist/db/migrations/011_drop_source_secrets_notify.d.ts +6 -14
- package/dist/db/migrations/012_peer_credentials_active_uniq.d.ts +9 -14
- package/dist/db/migrations/013_execution_log_bytes.d.ts +5 -13
- package/dist/db/migrations/014_kici_events_lease_retry.d.ts +14 -27
- package/dist/db/migrations/015_org_settings_customer_scoped.d.ts +12 -17
- package/dist/db/migrations/016_org_settings_allow_http_npm.d.ts +4 -6
- package/dist/db/migrations/019_generic_sources_change_notify.d.ts +13 -17
- package/dist/db/migrations/020_org_settings_dashboard_write_policy.d.ts +5 -8
- package/dist/db/migrations/021_check_run_tracking.d.ts +5 -17
- package/dist/db/migrations/022_scaler_manager_state.d.ts +10 -20
- package/dist/db/migrations/023_dispatch_queue_recovery_deadline.d.ts +7 -18
- package/dist/db/migrations/024_dispatch_queue_provisioning_error.d.ts +5 -11
- package/dist/db/migrations/025_init_failure.d.ts +5 -9
- package/dist/db/migrations/027_workflow_timeout.d.ts +5 -13
- package/dist/db/migrations/029_dispatch_queue_attempts.d.ts +4 -10
- package/dist/db/migrations/030_held_runs_env_set_null.d.ts +5 -6
- package/dist/db/migrations/031_dispatch_queue_ack_deadline.d.ts +6 -12
- package/dist/db/migrations/033_org_settings_approval.d.ts +7 -10
- package/dist/db/migrations/034_held_runs_generalize.d.ts +10 -18
- package/dist/db/migrations/035_pending_workflow_contexts.d.ts +4 -5
- package/dist/db/migrations/037_generic_sources_provider_type_local.d.ts +5 -6
- package/dist/db/migrations/038_remote_sources.d.ts +5 -7
- package/dist/db/migrations/045_host_properties.d.ts +5 -9
- package/dist/db/migrations/046_join_token_consumed_by_instance.d.ts +5 -10
- package/dist/db/migrations/048_host_reboot_pending.d.ts +6 -12
- package/dist/db/migrations/049_held_runs_payload.d.ts +3 -8
- package/dist/db/migrations/050_sources_slug.d.ts +4 -5
- package/dist/db/migrations/051_binding_host_pattern.d.ts +7 -10
- package/dist/db/migrations/052_host_reach_metadata.d.ts +8 -11
- package/dist/db/migrations/053_agent_token_single_use.d.ts +6 -10
- package/dist/db/migrations/054_local_working_tree.d.ts +4 -6
- package/dist/db/migrations/055_agent_token_mandatory_labels.d.ts +6 -11
- package/dist/db/migrations/056_execution_jobs_environments.d.ts +4 -11
- package/dist/db/migrations/064_execution_jobs_skipped_environments.d.ts +6 -9
- package/dist/db/migrations/065_pending_attestations.d.ts +9 -12
- package/dist/db/migrations/066_pending_attestations_rejected.d.ts +4 -7
- package/dist/db/migrations/068_request_idempotency.d.ts +7 -9
- package/dist/db/migrations/069_reroute_tunables.d.ts +6 -14
- package/dist/db/migrations/071_batch_accumulation.d.ts +8 -16
- package/dist/db/migrations/072_dispatch_queue_run_id_index.d.ts +3 -9
- package/dist/db/migrations/074_normalize_zero_concurrency_limit.d.ts +4 -7
- package/dist/db/migrations/076_artifacts.d.ts +7 -8
- package/dist/db/migrations/078_org_settings_backup_staleness.d.ts +3 -6
- package/dist/db/migrations/079_org_settings_scaler_spawn_timeout.d.ts +4 -8
- package/dist/db/migrations/080_cluster_settings.d.ts +6 -10
- package/dist/db/migrations/081_org_settings_queue_timeout.d.ts +7 -11
- package/dist/db/migrations/082_host_s3_reachable.d.ts +5 -10
- package/dist/db/migrations/083_org_settings_artifact_caps.d.ts +6 -8
- package/dist/db/migrations/084_orchestrator_signing_keys.d.ts +8 -13
- package/dist/db/migrations/085_cluster_settings_reroute_flap_grace_ms.d.ts +4 -5
- package/dist/db/migrations/086_cluster_settings_max_fanout_hosts.d.ts +3 -3
- package/dist/db/migrations/087_cluster_settings_event_router_rate_limit.d.ts +5 -3
- package/dist/db/migrations/088_cluster_settings_cache_max_tarball_bytes.d.ts +3 -3
- package/dist/db/migrations/089_cluster_settings_cache_ttl_days.d.ts +3 -5
- package/dist/db/migrations/090_cluster_settings_concurrency_wait_timeout_ms.d.ts +3 -6
- package/dist/db/migrations/091_cluster_settings_agent_token_ttl_ms.d.ts +3 -6
- package/dist/db/migrations/092_cluster_settings_version.d.ts +5 -9
- package/dist/db/migrations/094_dashboard_encryption_keys.d.ts +9 -14
- package/dist/db/migrations/095_dashboard_write_policy_tristate.d.ts +2 -6
- package/dist/db/migrations/099_cluster_settings_dashboard_verified_issuer.d.ts +8 -11
- package/dist/db/migrations/101_contexts_hold_expiry_drop_default.d.ts +9 -15
- package/dist/db/migrations/102_dispatch_queue_agent_id.d.ts +6 -11
- package/dist/db/migrations/103_cluster_settings_ownership_db_check_timeout_ms.d.ts +6 -12
- package/dist/db/migrations/104_check_run_terminal_sent.d.ts +8 -14
- package/dist/db/migrations/105_org_trust_policy.d.ts +5 -7
- package/dist/db/migrations/106_cluster_settings_check_run_tracking_ttl_days.d.ts +4 -12
- package/dist/db/migrations/107_check_run_tracking_updated_at_index.d.ts +8 -14
- package/dist/db/migrations/113_execution_runs_workflow_repo_index.d.ts +10 -19
- package/dist/db/migrations/115_global_workflows_cluster_switch.d.ts +2 -3
- package/dist/db/migrations/121_org_settings_allow_untrusted_dockerfile_builds.d.ts +7 -8
- package/dist/db/migrations/122_host_roster_scaler_managed.d.ts +9 -16
- package/dist/db/migrations/123_workflow_registrations_default_branch.d.ts +8 -16
- package/dist/db/migrations/125_org_trust_directory.d.ts +13 -21
- package/dist/db/migrations/126_held_runs_posted_pending_check.d.ts +10 -16
- package/dist/db/migrations/127_org_trust_policy_approval_expiry_seconds.d.ts +8 -16
- package/dist/db/migrations/128_execution_runs_global_eval_round.d.ts +6 -11
- package/dist/db/migrations/129_execution_runs_dispatch_routing_key.d.ts +8 -11
- package/dist/db/migrations/130_scaler_provision_outcomes.d.ts +13 -20
- package/dist/db/migrations/131_execution_jobs_git_credentials.d.ts +12 -22
- package/dist/db/migrations/132_execution_runs_trigger_event.d.ts +6 -16
- package/dist/db/migrations/133_dispatch_queue_source_tar_digest.d.ts +6 -9
- package/dist/db/migrations/140_dispatch_queue_canonical_labels.d.ts +22 -40
- package/dist/db/migrations/143_execution_jobs_precursor_result.d.ts +9 -18
- package/dist/db/migrations/144_execution_runs_registration_window.d.ts +12 -20
- package/dist/db/migrations/147_sealed_job_secrets.d.ts +5 -9
- package/dist/db/migrations/148_cluster_settings_sealed_secrets_retry_backoff_ms.d.ts +7 -13
- package/dist/db/migrations/150_execution_runs_status_epoch.d.ts +6 -11
- package/dist/db/migrations/152_org_settings_cache_upload_settle_timeout.d.ts +5 -8
- package/dist/db/migrations/157_host_roster_identity_source.d.ts +9 -13
- package/dist/db/migrations/159_org_id_widen_to_source_width.d.ts +5 -0
- package/dist/db/migrator.d.ts +17 -25
- package/dist/db/notify-listener.d.ts +8 -11
- package/dist/db/repos/dashboard-encryption-keys-repo.d.ts +9 -10
- package/dist/db/synthetic-job-ids.d.ts +6 -8
- package/dist/db/types.d.ts +531 -1058
- package/dist/deployment/deployment-identity.d.ts +42 -60
- package/dist/diagnostics/bundle-reader.d.ts +3 -15
- package/dist/diagnostics/bundle-writer.d.ts +5 -12
- package/dist/diagnostics/checks/agents.d.ts +1 -7
- package/dist/diagnostics/checks/backup.d.ts +7 -10
- package/dist/diagnostics/checks/certs.d.ts +1 -6
- package/dist/diagnostics/checks/config.d.ts +2 -5
- package/dist/diagnostics/checks/db.d.ts +1 -1
- package/dist/diagnostics/checks/disk.d.ts +1 -6
- package/dist/diagnostics/checks/firecracker-network.d.ts +3 -3
- package/dist/diagnostics/checks/index.d.ts +0 -6
- package/dist/diagnostics/checks/retention.d.ts +3 -6
- package/dist/diagnostics/checks/scaler.d.ts +3 -7
- package/dist/diagnostics/checks/ws.d.ts +1 -6
- package/dist/diagnostics/fleet-collector.d.ts +11 -14
- package/dist/diagnostics/fleet-constants.d.ts +1 -3
- package/dist/diagnostics/fleet-selection.d.ts +3 -7
- package/dist/diagnostics/fleet-topology.d.ts +2 -6
- package/dist/diagnostics/fleet-wiring.d.ts +6 -12
- package/dist/diagnostics/index.d.ts +0 -5
- package/dist/diagnostics/runner.d.ts +4 -8
- package/dist/diagnostics/types.d.ts +10 -21
- package/dist/drain/drain-controller.d.ts +16 -22
- package/dist/entry-helpers.d.ts +0 -2
- package/dist/events/circuit-breaker.d.ts +0 -3
- package/dist/events/event-router.d.ts +1 -2
- package/dist/events/event-store.d.ts +0 -9
- package/dist/events/trust-store.d.ts +0 -3
- package/dist/events/types.d.ts +0 -9
- package/dist/firecracker/host-network.d.ts +24 -30
- package/dist/firecracker/net-interfaces.d.ts +4 -7
- package/dist/helpers/rate-limiter.d.ts +0 -1
- package/dist/index.js +251 -486
- package/dist/metrics/agent-metrics-aggregator.d.ts +24 -67
- package/dist/metrics/metrics-reporter.d.ts +4 -13
- package/dist/metrics/prometheus.d.ts +47 -81
- package/dist/orchestrator-core.d.ts +3 -7
- package/dist/pipeline/content-filter.d.ts +20 -30
- package/dist/pipeline/cross-source-tally.d.ts +7 -8
- package/dist/pipeline/decorating-secret-resolver.d.ts +4 -8
- package/dist/pipeline/degraded-reason.d.ts +3 -4
- package/dist/pipeline/direct-ingress-deps.d.ts +15 -24
- package/dist/pipeline/dispatch-matched-workflow.d.ts +289 -525
- package/dist/pipeline/flatten-lock-steps.d.ts +4 -6
- package/dist/pipeline/global-dispatch-identity.d.ts +5 -10
- package/dist/pipeline/global-eval-round.d.ts +65 -151
- package/dist/pipeline/global-round-hold.d.ts +5 -7
- package/dist/pipeline/held-context-data.d.ts +5 -8
- package/dist/pipeline/held-round-registrations.d.ts +8 -11
- package/dist/pipeline/install-gate.d.ts +15 -25
- package/dist/pipeline/install-secrets-resolver.d.ts +24 -34
- package/dist/pipeline/internal-event-pipeline.d.ts +45 -62
- package/dist/pipeline/invoke-gate.d.ts +27 -40
- package/dist/pipeline/job-contexts.d.ts +19 -36
- package/dist/pipeline/manual-schedule.d.ts +7 -13
- package/dist/pipeline/needs-scheduler.d.ts +29 -46
- package/dist/pipeline/pending-workflow-context.d.ts +14 -28
- package/dist/pipeline/process-webhook.d.ts +88 -123
- package/dist/pipeline/processor.d.ts +209 -355
- package/dist/pipeline/remote-source-store.d.ts +5 -8
- package/dist/pipeline/request-idempotency.d.ts +10 -13
- package/dist/pipeline/rerun-global.d.ts +6 -7
- package/dist/pipeline/rerun-inputs.d.ts +23 -37
- package/dist/pipeline/rerun.d.ts +34 -57
- package/dist/pipeline/resolve-sandbox-grant.d.ts +5 -10
- package/dist/pipeline/resume-workflow.d.ts +28 -34
- package/dist/pipeline/route-or-dispatch-jobs.d.ts +19 -30
- package/dist/pipeline/run-event-context.d.ts +16 -21
- package/dist/pipeline/sandbox-allowlist-reader.d.ts +7 -11
- package/dist/pipeline/security-hold-check.d.ts +56 -80
- package/dist/pipeline/test-pipeline.d.ts +21 -46
- package/dist/pipeline/unbound-job-context.d.ts +6 -9
- package/dist/pipeline/undispatched-hold-checks.d.ts +4 -6
- package/dist/pipeline/wave-scheduler.d.ts +15 -22
- package/dist/pipeline/webhook-payload-store.d.ts +3 -10
- package/dist/pipeline/workflow-lock-at-sha.d.ts +14 -20
- package/dist/policy/dashboard-write-policy.d.ts +1 -1
- package/dist/provider-registry.d.ts +0 -19
- package/dist/providers/generic/index.d.ts +0 -2
- package/dist/providers/generic/normalizer.d.ts +0 -1
- package/dist/providers/generic/verification.d.ts +0 -8
- package/dist/providers/github/auth.d.ts +0 -1
- package/dist/providers/github/changed-files.d.ts +2 -1
- package/dist/providers/github/file-contents.d.ts +0 -4
- package/dist/providers/github/lock-file.d.ts +0 -4
- package/dist/providers/github/normalizer.d.ts +1 -9
- package/dist/providers/local/index.d.ts +1 -2
- package/dist/providers/local/lock-file-fetcher.d.ts +0 -4
- package/dist/providers/local/normalizer.d.ts +0 -10
- package/dist/providers/local/repo-url-builder.d.ts +0 -2
- package/dist/providers/universal-git/clone-token.d.ts +0 -2
- package/dist/providers/universal-git/lock-file.d.ts +0 -2
- package/dist/providers/universal-git/normalizer.d.ts +0 -2
- package/dist/queue/bootstrap.d.ts +3 -15
- package/dist/queue/cleanup.d.ts +29 -50
- package/dist/queue/depth-refresher.d.ts +21 -39
- package/dist/queue/job-queue.d.ts +112 -163
- package/dist/queue/retention.d.ts +23 -36
- package/dist/queue/scheduled-job.d.ts +17 -39
- package/dist/queue/terminalize-unroutable.d.ts +21 -18
- package/dist/queue/unroutable-probe.d.ts +15 -22
- package/dist/registration/extractor.d.ts +0 -6
- package/dist/registration/registration-index.d.ts +0 -6
- package/dist/registration/registration-store.d.ts +0 -9
- package/dist/reporting/agent-failure-category.d.ts +3 -5
- package/dist/reporting/check-run-reporter.d.ts +142 -316
- package/dist/reporting/check-run-summary.d.ts +16 -35
- package/dist/reporting/check-run-tracking-store.d.ts +54 -107
- package/dist/reporting/execution-tracker.d.ts +356 -526
- package/dist/reporting/fs-log-storage.d.ts +31 -33
- package/dist/reporting/job-check-run-completion.d.ts +14 -22
- package/dist/reporting/log-chunk-sink.d.ts +11 -16
- package/dist/reporting/log-pull-handler.d.ts +4 -13
- package/dist/reporting/log-retention.d.ts +3 -4
- package/dist/reporting/log-storage.d.ts +24 -52
- package/dist/reporting/log-writer.d.ts +28 -56
- package/dist/reporting/peer-log-normalize.d.ts +4 -8
- package/dist/reporting/run-aggregator.d.ts +6 -11
- package/dist/reporting/run-summary-fields.d.ts +5 -8
- package/dist/reporting/s3-log-storage.d.ts +31 -50
- package/dist/reporting/step-display-order.d.ts +11 -21
- package/dist/reporting/step-log-buffer.d.ts +7 -28
- package/dist/reporting/step-log-reader.d.ts +11 -19
- package/dist/routes/admin-access-log.d.ts +4 -6
- package/dist/routes/admin-auth.d.ts +19 -38
- package/dist/routes/admin-backends.d.ts +3 -14
- package/dist/routes/admin-cluster-name.d.ts +13 -21
- package/dist/routes/admin-cluster-settings.d.ts +6 -9
- package/dist/routes/admin-config.d.ts +7 -19
- package/dist/routes/admin-contexts.d.ts +6 -13
- package/dist/routes/admin-db.d.ts +5 -10
- package/dist/routes/admin-event-dlq.d.ts +3 -5
- package/dist/routes/admin-event-inspect.d.ts +3 -4
- package/dist/routes/admin-event-log.d.ts +3 -7
- package/dist/routes/admin-events.d.ts +16 -30
- package/dist/routes/admin-held-runs.d.ts +52 -76
- package/dist/routes/admin-maintenance.d.ts +3 -6
- package/dist/routes/admin-orchestrator-drain.d.ts +0 -2
- package/dist/routes/admin-org-settings.d.ts +8 -14
- package/dist/routes/admin-peer-forget.d.ts +0 -1
- package/dist/routes/admin-queue-execution.d.ts +3 -3
- package/dist/routes/admin-registrations.d.ts +3 -12
- package/dist/routes/admin-runs.d.ts +16 -29
- package/dist/routes/admin-scaler-orphans.d.ts +4 -4
- package/dist/routes/admin-scaler-reload.d.ts +5 -8
- package/dist/routes/admin-scheduled-jobs.d.ts +3 -4
- package/dist/routes/admin-sources.d.ts +20 -29
- package/dist/routes/admin-trust-policy.d.ts +31 -48
- package/dist/routes/admin.d.ts +67 -94
- package/dist/routes/caller-identity.d.ts +45 -0
- package/dist/routes/capabilities.d.ts +8 -13
- package/dist/routes/diagnostics.d.ts +2 -10
- package/dist/routes/fleet.d.ts +1 -2
- package/dist/routes/github-webhook.d.ts +2 -5
- package/dist/routes/health.d.ts +6 -19
- package/dist/routes/provenance-oidc.d.ts +3 -3
- package/dist/routes/test-direct.d.ts +46 -0
- package/dist/routes/uploads.d.ts +14 -19
- package/dist/routes/webhooks.d.ts +2 -24
- package/dist/scaler/agent-binary-location.d.ts +77 -0
- package/dist/scaler/agent-fit.d.ts +2 -2
- package/dist/scaler/backend-factory.d.ts +10 -18
- package/dist/scaler/bare-metal-backend.d.ts +28 -45
- package/dist/scaler/claim-store.d.ts +20 -43
- package/dist/scaler/config.d.ts +10 -37
- package/dist/scaler/container-backend.d.ts +22 -35
- package/dist/scaler/container-hostconfig.d.ts +10 -16
- package/dist/scaler/container-routing.d.ts +10 -13
- package/dist/scaler/disk-guard.d.ts +2 -3
- package/dist/scaler/event-backend.d.ts +33 -58
- package/dist/scaler/event-provision-reaper.d.ts +61 -84
- package/dist/scaler/failure-tracker.d.ts +6 -13
- package/dist/scaler/file-tail.d.ts +6 -19
- package/dist/scaler/firecracker-api.d.ts +19 -63
- package/dist/scaler/firecracker-backend.d.ts +142 -258
- package/dist/scaler/host-access.d.ts +7 -10
- package/dist/scaler/index.d.ts +3 -6
- package/dist/scaler/ip-allocator.d.ts +30 -82
- package/dist/scaler/label-matcher.d.ts +14 -35
- package/dist/scaler/log-forwarder.d.ts +6 -25
- package/dist/scaler/machine-ledger.d.ts +39 -86
- package/dist/scaler/manager.d.ts +517 -787
- package/dist/scaler/pending-scale-sweeper.d.ts +8 -11
- package/dist/scaler/reap-orphans.d.ts +8 -12
- package/dist/scaler/resolve-container-auth.d.ts +12 -21
- package/dist/scaler/scaler-events.d.ts +2 -5
- package/dist/scaler/scaler-state-store.d.ts +127 -189
- package/dist/scaler/spawn-errors.d.ts +1 -4
- package/dist/scaler/startup-orphan-sweep.d.ts +3 -4
- package/dist/scaler/startup-tools-check.d.ts +21 -0
- package/dist/scaler/types.d.ts +142 -255
- package/dist/scaler/vm-job-bindings.d.ts +5 -9
- package/dist/scaler/warm-pool.d.ts +46 -93
- package/dist/secrets/audit-logger.d.ts +0 -3
- package/dist/secrets/backend-health.d.ts +0 -9
- package/dist/secrets/backend-registry.d.ts +0 -9
- package/dist/secrets/cleanup.d.ts +0 -1
- package/dist/secrets/config.d.ts +0 -3
- package/dist/secrets/ephemeral-keys.d.ts +0 -3
- package/dist/secrets/pg-secret-store.d.ts +0 -3
- package/dist/secrets/rbac.d.ts +5 -7
- package/dist/secrets/routing-key-scope.d.ts +1 -0
- package/dist/secrets/secret-output-store.d.ts +0 -6
- package/dist/secrets/secret-resolver.d.ts +2 -6
- package/dist/secrets/token-manager.d.ts +1 -4
- package/dist/secrets/vault-secret-store.d.ts +0 -13
- package/dist/security/comment-handler.d.ts +0 -2
- package/dist/security/workflow-diff.d.ts +1 -1
- package/dist/server.js +49004 -53782
- package/dist/sources/source-manager.d.ts +0 -3
- package/dist/sources/source-store.d.ts +0 -9
- package/dist/sources/source-validator.d.ts +0 -3
- package/dist/stale-detector/all-terminal-runs.d.ts +8 -11
- package/dist/stale-detector/gate-deadline-detector.d.ts +14 -19
- package/dist/stale-detector/reboot-deadline-sweep.d.ts +7 -11
- package/dist/stale-detector/stale-dispatch-candidates.d.ts +13 -20
- package/dist/stale-detector/stale-run-detector.d.ts +74 -121
- package/dist/stale-detector/workflow-deadline-detector.d.ts +15 -43
- package/dist/standalone.js +9342 -13077
- package/dist/storage/blob-routes.d.ts +10 -19
- package/dist/storage/filesystem.d.ts +19 -29
- package/dist/storage/index.d.ts +2 -10
- package/dist/storage/key-discriminator.d.ts +8 -10
- package/dist/storage/loopback-guard.d.ts +27 -45
- package/dist/storage/s3.d.ts +26 -53
- package/dist/storage/sign-url.d.ts +7 -22
- package/dist/storage/types.d.ts +46 -72
- package/dist/webhook/event-log.d.ts +0 -2
- package/dist/webhook/generic-sources.d.ts +0 -21
- package/dist/webhook/ingest-admission.d.ts +0 -1
- package/dist/webhook/relay-buffer.d.ts +2 -2
- package/dist/webhook/verify-inbound.d.ts +0 -1
- package/dist/worker/in-memory-execution-tracker.d.ts +9 -31
- package/dist/worker/in-memory-job-queue.d.ts +32 -72
- package/dist/worker/peer-outbox.d.ts +5 -8
- package/dist/worker/reroute-dispatch.d.ts +4 -6
- package/dist/worker/static-agent-token-store.d.ts +6 -27
- package/dist/worker/worker-outbox-relay.d.ts +2 -2
- package/dist/worker/worker-status.d.ts +3 -20
- package/dist/ws/agent-api-registry.d.ts +8 -27
- package/dist/ws/agent-handler.d.ts +63 -110
- package/dist/ws/agent-heartbeat.d.ts +5 -12
- package/dist/ws/bringup-api.d.ts +31 -38
- package/dist/ws/dashboard-backends-handler.d.ts +12 -22
- package/dist/ws/dashboard-context-handler.d.ts +37 -80
- package/dist/ws/dashboard-diagnostics-handler.d.ts +8 -25
- package/dist/ws/dashboard-dispatch-guard.d.ts +3 -4
- package/dist/ws/dashboard-fleet-handler.d.ts +9 -13
- package/dist/ws/dashboard-fleet-write-handler.d.ts +7 -21
- package/dist/ws/dashboard-global-workflows-handler.d.ts +22 -44
- package/dist/ws/dashboard-registrations-handler.d.ts +10 -27
- package/dist/ws/dashboard-run-state-handler.d.ts +10 -13
- package/dist/ws/event-buffer.d.ts +3 -6
- package/dist/ws/execution-status-frame.d.ts +7 -10
- package/dist/ws/failure-messages.d.ts +9 -14
- package/dist/ws/fleet-agent-collector.d.ts +6 -12
- package/dist/ws/fleet-runs-on-all.d.ts +1 -6
- package/dist/ws/git-credential-relay.d.ts +12 -20
- package/dist/ws/inventory-api.d.ts +4 -5
- package/dist/ws/observer-registry.d.ts +14 -59
- package/dist/ws/ownership-gate.d.ts +1 -1
- package/dist/ws/platform-client.d.ts +21 -30
- package/dist/ws/replay-chunker.d.ts +7 -10
- package/dist/ws/server-options.d.ts +5 -9
- package/dist/ws/test-relay-handlers.d.ts +46 -63
- package/installer-image-digests.json +3 -3
- package/package.json +6 -5
- package/sbom.spdx.json +53 -53
- package/dist/__test-helpers__/fake-scaler-state-store.d.ts +0 -24
- package/dist/__test-helpers__/mock-db-query.d.ts +0 -129
- package/dist/__test-helpers__/mock-db.d.ts +0 -134
- package/dist/__test-helpers__/mock-ws.d.ts +0 -13
- package/dist/__test-helpers__/peer-mutual-auth.d.ts +0 -42
- package/dist/__test-helpers__/scratch-db.d.ts +0 -16
- package/dist/__test-helpers__/test-db.d.ts +0 -34
- package/dist/pipeline/dispatch-matched-workflow.test-helpers.d.ts +0 -121
- package/dist/scaler/container-spawn.d.ts +0 -28
|
@@ -11,21 +11,17 @@ export interface SandboxAllowList {
|
|
|
11
11
|
}
|
|
12
12
|
export interface SandboxAllowListReader {
|
|
13
13
|
/**
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
* allowHostNetwork: false }` so a sick DB denies escalation rather than
|
|
17
|
-
* blocking dispatch.
|
|
14
|
+
* Never throws: a DB error or no DB handle degrades to deny-all, so a sick DB
|
|
15
|
+
* denies escalation rather than blocking dispatch.
|
|
18
16
|
*/
|
|
19
17
|
read(orgId: string): Promise<SandboxAllowList>;
|
|
20
18
|
}
|
|
21
19
|
/**
|
|
22
|
-
* Reader for the per-org container-sandbox escape-hatch allow-list
|
|
23
|
-
* matched-workflow dispatch
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
* window on a privilege boundary). The trivial per-dispatch query is the right
|
|
28
|
-
* trade for always-fresh enforcement.
|
|
20
|
+
* Reader for the per-org container-sandbox escape-hatch allow-list, read once per
|
|
21
|
+
* matched-workflow dispatch against one indexed row. Intentionally **uncached**:
|
|
22
|
+
* a security control, so an operator's `sandbox-allowlist` change must apply on
|
|
23
|
+
* the very next dispatch; a cache TTL would open a stale-deny or stale-allow
|
|
24
|
+
* window on a privilege boundary.
|
|
29
25
|
*/
|
|
30
26
|
export declare function createSandboxAllowListReader(deps: {
|
|
31
27
|
db?: Kysely<Database>;
|
|
@@ -3,10 +3,7 @@ import type { Kysely } from 'kysely';
|
|
|
3
3
|
import type { Database } from '../db/types.js';
|
|
4
4
|
/** Resolve the check poster of the provider bundle a routing key is served by. */
|
|
5
5
|
export type ResolveCheckStatusPoster = (routingKey: string) => CheckStatusPoster | undefined;
|
|
6
|
-
/**
|
|
7
|
-
* The `held_runs` columns this module reads. A full `HeldRun` row satisfies it,
|
|
8
|
-
* so every caller passes the row it already loaded rather than a projection.
|
|
9
|
-
*/
|
|
6
|
+
/** The `held_runs` columns this module reads; a full `HeldRun` row satisfies it. */
|
|
10
7
|
export interface SecurityCheckHold {
|
|
11
8
|
id: string;
|
|
12
9
|
org_id: string;
|
|
@@ -16,9 +13,8 @@ export interface SecurityCheckHold {
|
|
|
16
13
|
hold_type: string;
|
|
17
14
|
approval_requirement: unknown;
|
|
18
15
|
/**
|
|
19
|
-
* Whether the pending post reached the provider. Required
|
|
20
|
-
*
|
|
21
|
-
* back to the shape derivation without the compiler saying so.
|
|
16
|
+
* Whether the pending post reached the provider. Required, so a projecting
|
|
17
|
+
* query cannot silently omit it and fall back to the shape derivation.
|
|
22
18
|
*/
|
|
23
19
|
posted_pending_check: boolean | null;
|
|
24
20
|
}
|
|
@@ -62,22 +58,16 @@ export interface SettleSecurityCheckResult {
|
|
|
62
58
|
* Whether this hold put a pending `KiCI Security` check on its commit, and so
|
|
63
59
|
* has one to terminalize when it ends.
|
|
64
60
|
*
|
|
65
|
-
* `posted_pending_check`
|
|
66
|
-
*
|
|
67
|
-
*
|
|
68
|
-
*
|
|
69
|
-
*
|
|
70
|
-
* a
|
|
71
|
-
* CREATES the check run, so the mirror of the stuck-check leak is a fabricated
|
|
72
|
-
* failing check on a pull request.
|
|
73
|
-
*
|
|
74
|
-
* The shape derivation stays for `null` — a row written before the column
|
|
75
|
-
* existed, for which no fact was recorded and an inference is all there is.
|
|
61
|
+
* `posted_pending_check` wins whenever set: it is written `true` only after the
|
|
62
|
+
* provider accepted the post, so it records what HAPPENED. The shape derivation
|
|
63
|
+
* below records what the code INTENDED, and is wrong for a refused post and for
|
|
64
|
+
* a hold with no check poster in `ctx.bundle` — terminalizing those CREATES a
|
|
65
|
+
* fabricated failing check on a pull request. The derivation serves only
|
|
66
|
+
* `null` (a row older than the column).
|
|
76
67
|
*
|
|
77
|
-
* Three sites post
|
|
78
|
-
*
|
|
79
|
-
*
|
|
80
|
-
* `queue_type = 'security'` and posts nothing at all.
|
|
68
|
+
* Three sites post the pending status, and the derivation reads them, not the
|
|
69
|
+
* queue type: an install gate with a security-typed context protection rule
|
|
70
|
+
* carries `queue_type = 'security'` and posts nothing.
|
|
81
71
|
*
|
|
82
72
|
* | Hold | Written by | Posts pending? | Recognised here by |
|
|
83
73
|
* |---|---|---|---|
|
|
@@ -90,11 +80,11 @@ export interface SettleSecurityCheckResult {
|
|
|
90
80
|
* | wait-timer / concurrency hold | the per-env gate | no | none of the above matches |
|
|
91
81
|
* | step approval | `StepApprovalBridge.request` | no | step scope |
|
|
92
82
|
*
|
|
93
|
-
* `approval_requirement` is
|
|
94
|
-
*
|
|
95
|
-
*
|
|
96
|
-
*
|
|
97
|
-
*
|
|
83
|
+
* `approval_requirement` is written by `createHold` and not by `create`, so it
|
|
84
|
+
* identifies exactly the rows `holdJobForApproval` wrote through the approval
|
|
85
|
+
* path (whose post is guarded by `if (hold && …)`). The other `createHold`
|
|
86
|
+
* callers are excluded before it: the install gate by job id, the step bridge
|
|
87
|
+
* by scope.
|
|
98
88
|
*/
|
|
99
89
|
export declare function postedPendingSecurityCheck(hold: SecurityCheckHold): boolean;
|
|
100
90
|
/**
|
|
@@ -102,28 +92,22 @@ export declare function postedPendingSecurityCheck(hold: SecurityCheckHold): boo
|
|
|
102
92
|
* families use: `cancelled` for a rejection, `timed_out` for an elapsed window,
|
|
103
93
|
* `success` for an approval.
|
|
104
94
|
*
|
|
105
|
-
* The subject follows the hold's scope
|
|
106
|
-
*
|
|
107
|
-
*
|
|
108
|
-
*
|
|
109
|
-
* "no longer waiting for approval" would contradict.
|
|
95
|
+
* The subject follows the hold's scope: a workflow-scoped hold owns the whole
|
|
96
|
+
* run, a job-scoped one owns one job and says nothing about the others (a
|
|
97
|
+
* still-pending step-approval hold would contradict a run-wide "no longer
|
|
98
|
+
* waiting for approval").
|
|
110
99
|
*
|
|
111
|
-
* `actor` names whoever ended the hold
|
|
112
|
-
*
|
|
113
|
-
*
|
|
114
|
-
* `/kici reject` handler builds "Rejected by alice via /kici reject") passes no
|
|
115
|
-
* `actor`, so the sentence lands once rather than twice.
|
|
100
|
+
* `actor` names whoever ended the hold (none on expiry). A surface that already
|
|
101
|
+
* writes its attribution into `reason` (`/kici reject`: "Rejected by alice via
|
|
102
|
+
* /kici reject") passes no `actor`, so the sentence lands once.
|
|
116
103
|
*
|
|
117
|
-
* **`actor` is a display name,
|
|
118
|
-
*
|
|
119
|
-
*
|
|
120
|
-
*
|
|
121
|
-
*
|
|
122
|
-
* as "an approver"; leaking the subject reads as `Approved by
|
|
123
|
-
* 8f3a-…-uuid`, on a pull request anyone can open.
|
|
104
|
+
* **`actor` is a display name, published verbatim on a public commit check.**
|
|
105
|
+
* Never an opaque identity-provider subject id: a surface holding one (the
|
|
106
|
+
* dashboard / CLI / MCP applier) resolves it against the org's identity
|
|
107
|
+
* directory first and passes nothing when no single name results — "an
|
|
108
|
+
* approver", never `Approved by 8f3a-…-uuid` on a public pull request.
|
|
124
109
|
*
|
|
125
|
-
* `reason` is normalized to end in terminal punctuation
|
|
126
|
-
* sentence carries none, and without one it runs straight into what follows.
|
|
110
|
+
* `reason` is normalized to end in terminal punctuation.
|
|
127
111
|
*/
|
|
128
112
|
export declare function buildHoldEndedSummary(args: {
|
|
129
113
|
outcome: HoldOutcome;
|
|
@@ -133,12 +117,11 @@ export declare function buildHoldEndedSummary(args: {
|
|
|
133
117
|
via?: string | undefined;
|
|
134
118
|
}): string;
|
|
135
119
|
/**
|
|
136
|
-
* Terminalize the `KiCI Security` check of
|
|
137
|
-
*
|
|
138
|
-
*
|
|
139
|
-
*
|
|
140
|
-
*
|
|
141
|
-
* approval-window sweep — so those surfaces cannot render one event three ways.
|
|
120
|
+
* Terminalize the `KiCI Security` check of an ended hold, with conclusion, title
|
|
121
|
+
* and summary from {@link HoldOutcome}. The single entry point for every surface
|
|
122
|
+
* that ends a hold (the `/kici` comment handler, the dashboard / CLI / MCP
|
|
123
|
+
* applier, the stale detector's approval-window sweep), so they cannot render
|
|
124
|
+
* one event three ways.
|
|
142
125
|
*/
|
|
143
126
|
export declare function settleSecurityCheckForOutcome(args: {
|
|
144
127
|
db: Kysely<Database> | undefined;
|
|
@@ -155,15 +138,10 @@ export declare function settleSecurityCheckForOutcome(args: {
|
|
|
155
138
|
* The dashboard / CLI / MCP applier's entry point into
|
|
156
139
|
* {@link settleSecurityCheckForOutcome}.
|
|
157
140
|
*
|
|
158
|
-
*
|
|
159
|
-
*
|
|
160
|
-
*
|
|
161
|
-
*
|
|
162
|
-
* DROPPED rather than falling back to the subject. So an approve reads
|
|
163
|
-
* "Approved by an approver" at worst, never "Approved by 8f3a-…-uuid".
|
|
164
|
-
*
|
|
165
|
-
* Separate from its caller so the resolve-or-drop step is a unit under test
|
|
166
|
-
* rather than a line in the composition root.
|
|
141
|
+
* The applier holds only an opaque identity-provider subject, and the summary is
|
|
142
|
+
* public. `resolveDisplayName` maps it to the org identity directory's linked
|
|
143
|
+
* account name; when none, the attribution is DROPPED, never the subject. A
|
|
144
|
+
* separate function so the resolve-or-drop step is unit-tested.
|
|
167
145
|
*/
|
|
168
146
|
export declare function settleSecurityCheckForDecision(args: {
|
|
169
147
|
db: Kysely<Database> | undefined;
|
|
@@ -180,23 +158,22 @@ export declare function settleSecurityCheckForDecision(args: {
|
|
|
180
158
|
* Terminalize the `KiCI Security` check of a hold that just ended, under a
|
|
181
159
|
* caller-supplied status and copy.
|
|
182
160
|
*
|
|
183
|
-
* Used directly where one summary
|
|
184
|
-
* workflow-scoped hold reports the same sentence on `KiCI Security`
|
|
185
|
-
*
|
|
186
|
-
*
|
|
161
|
+
* Used directly where one summary must reach BOTH check families (a rejected
|
|
162
|
+
* workflow-scoped hold reports the same, asserted sentence on `KiCI Security`
|
|
163
|
+
* and the event's `kici/…` runs); everything else goes through
|
|
164
|
+
* {@link settleSecurityCheckForOutcome}.
|
|
187
165
|
*
|
|
188
|
-
* Call it AFTER the hold's
|
|
189
|
-
*
|
|
190
|
-
*
|
|
191
|
-
*
|
|
192
|
-
*
|
|
193
|
-
*
|
|
194
|
-
*
|
|
166
|
+
* Call it AFTER the hold's row has left `pending` (the applier flips inside
|
|
167
|
+
* `recordAndReject` / `recordAndRelease`, the comment handler inside `reject` /
|
|
168
|
+
* `approveByQueueType`) and, on an approve, BEFORE the resume, so a replayed
|
|
169
|
+
* dispatch that holds again overwrites this terminal status with its pending
|
|
170
|
+
* one, not the reverse. The ending hold's id is always excluded from the
|
|
171
|
+
* contention query; a sweep that has not flipped its batch yet names the rest
|
|
172
|
+
* in `excludeHoldIds`.
|
|
195
173
|
*
|
|
196
|
-
* Never throws:
|
|
197
|
-
*
|
|
198
|
-
*
|
|
199
|
-
* it says a check was written, not merely that a delegate resolved.
|
|
174
|
+
* Never throws: a provider error must not stop the hold's terminalization.
|
|
175
|
+
* Callers bind suppression to the returned `posted` (a check was written, not
|
|
176
|
+
* merely a delegate resolved).
|
|
200
177
|
*/
|
|
201
178
|
export declare function settleSecurityHoldCheck(args: {
|
|
202
179
|
db: Kysely<Database> | undefined;
|
|
@@ -207,10 +184,9 @@ export declare function settleSecurityHoldCheck(args: {
|
|
|
207
184
|
summary: string;
|
|
208
185
|
excludeHoldIds?: readonly string[] | undefined;
|
|
209
186
|
/**
|
|
210
|
-
* Commits this caller already wrote in the same pass
|
|
211
|
-
*
|
|
212
|
-
*
|
|
213
|
-
* would be a byte-identical provider round-trip.
|
|
187
|
+
* Commits this caller already wrote in the same pass: a sweep's holds on one
|
|
188
|
+
* commit share one check run and identical copy, so a second write is a
|
|
189
|
+
* byte-identical round-trip.
|
|
214
190
|
*/
|
|
215
191
|
skipCommits?: ReadonlySet<string> | undefined;
|
|
216
192
|
}): Promise<SettleSecurityCheckResult>;
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
* Test-trigger adapter for CLI-initiated runs (`kici run`).
|
|
3
3
|
*
|
|
4
4
|
* Resolves the lock file, matched decisions, and fixture-specific concerns
|
|
5
|
-
* (inline-vs-provider lock,
|
|
5
|
+
* (inline-vs-provider lock, fixture-payload storage, the
|
|
6
6
|
* `allow_local_execution` context gate, CLI-secret overlay, in-memory
|
|
7
7
|
* test-run marking), then dispatches each matched workflow through the SAME
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
8
|
+
* core as webhooks (`dispatchMatchedWorkflow`), which supplies needs-DAG
|
|
9
|
+
* scheduling, `expansionMap` fan-out edges, `runsOnAll` host fan-out, and
|
|
10
|
+
* deferred init/dynamic dispatch.
|
|
11
11
|
*
|
|
12
12
|
* Differences from a webhook run:
|
|
13
13
|
* - the synthetic event is injected directly (no provider normalization/dedup);
|
|
@@ -24,13 +24,8 @@
|
|
|
24
24
|
import { type ProcessingDeps } from './processor.js';
|
|
25
25
|
import { type ActorPrincipal } from '@kici-dev/engine';
|
|
26
26
|
import type { CheckMode, HostTargetSelector } from '@kici-dev/engine';
|
|
27
|
-
/**
|
|
28
|
-
* Input for a test trigger request.
|
|
29
|
-
*/
|
|
30
27
|
export interface TestTriggerInput {
|
|
31
|
-
/** Unique fixture identifier from the CLI. */
|
|
32
28
|
fixtureId: string;
|
|
33
|
-
/** The simulated event to inject into the pipeline. */
|
|
34
29
|
event: {
|
|
35
30
|
type: string;
|
|
36
31
|
action?: string;
|
|
@@ -41,15 +36,15 @@ export interface TestTriggerInput {
|
|
|
41
36
|
};
|
|
42
37
|
/** Routing key for provider lookup and lock file fetch. */
|
|
43
38
|
routingKey: string;
|
|
44
|
-
/**
|
|
39
|
+
/** Uploaded tarball reference. */
|
|
45
40
|
uploadId?: string;
|
|
46
|
-
/** Fixture secret context mappings
|
|
41
|
+
/** Fixture secret context mappings `{ contextName: envName }`. */
|
|
47
42
|
secrets?: Record<string, string>;
|
|
48
43
|
/** Base64 X25519+AES-GCM blob of the developer's local secrets ({flat, contexts}). */
|
|
49
44
|
encryptedSecrets?: string;
|
|
50
45
|
/** Base64 ephemeral CLI public key that encrypted `encryptedSecrets`. */
|
|
51
46
|
encryptedSecretsKey?: string;
|
|
52
|
-
/** Direct workflow run
|
|
47
|
+
/** Direct workflow run, bypassing triggers. */
|
|
53
48
|
workflowName?: string;
|
|
54
49
|
/** Resolved overlay metadata for tarball download + decryption. */
|
|
55
50
|
resolvedOverlay?: {
|
|
@@ -57,17 +52,13 @@ export interface TestTriggerInput {
|
|
|
57
52
|
cliPublicKey: string;
|
|
58
53
|
orchestratorPrivateKey: string;
|
|
59
54
|
};
|
|
60
|
-
/**
|
|
55
|
+
/** Trace ID of the HTTP request. */
|
|
61
56
|
requestId: string;
|
|
62
57
|
/**
|
|
63
|
-
* The principal
|
|
64
|
-
* `test.relay.trigger
|
|
65
|
-
*
|
|
66
|
-
*
|
|
67
|
-
* caller, so there is no path that legitimately lacks an actor, and an
|
|
68
|
-
* optional field would let a future caller silently drop attribution — which
|
|
69
|
-
* is exactly how `execution_runs.triggered_by` stayed NULL for every remote
|
|
70
|
-
* test run while the column claimed to hold the initiator.
|
|
58
|
+
* The initiating principal: the one the Platform relays on
|
|
59
|
+
* `test.relay.trigger`, or the admin token's service account on the direct
|
|
60
|
+
* test-run routes. Required so no caller can silently leave
|
|
61
|
+
* `execution_runs.triggered_by` NULL.
|
|
71
62
|
*/
|
|
72
63
|
actor: ActorPrincipal;
|
|
73
64
|
/** JSON-stringified lock file content for local repos with no remote. */
|
|
@@ -75,39 +66,26 @@ export interface TestTriggerInput {
|
|
|
75
66
|
/** When true, repo has no remote -- skip provider lookup, skip clone. */
|
|
76
67
|
fullRepo?: boolean;
|
|
77
68
|
/**
|
|
78
|
-
* Run mode for idempotent steps
|
|
79
|
-
*
|
|
80
|
-
* Omitted means `apply`.
|
|
69
|
+
* Run mode for idempotent steps, set on each job's config and persisted on
|
|
70
|
+
* the run. Omitted means `apply`.
|
|
81
71
|
*/
|
|
82
72
|
checkMode?: CheckMode;
|
|
83
|
-
/**
|
|
84
|
-
* Runtime host narrowing from `kici run --target`. Threaded onto the dispatch
|
|
85
|
-
* context, where it post-filters each runsOnAll job's matched roster.
|
|
86
|
-
*/
|
|
73
|
+
/** `kici run --target`: post-filters each runsOnAll job's matched roster. */
|
|
87
74
|
target?: HostTargetSelector;
|
|
88
75
|
/**
|
|
89
|
-
* Raw
|
|
90
|
-
*
|
|
91
|
-
* workflow's lock dispatch descriptor before dispatch.
|
|
76
|
+
* Raw `kici run --input KEY=VALUE` pairs, validated, coerced and defaulted
|
|
77
|
+
* here against the matched workflow's lock dispatch descriptor.
|
|
92
78
|
*/
|
|
93
79
|
dispatchInputs?: Record<string, string>;
|
|
94
80
|
}
|
|
95
|
-
/**
|
|
96
|
-
* Result of processing a test trigger.
|
|
97
|
-
*/
|
|
98
81
|
interface TestTriggerResult {
|
|
99
|
-
/** Unique run identifier. */
|
|
100
82
|
runId: string;
|
|
101
|
-
/** Whether the test trigger was accepted or rejected. */
|
|
102
83
|
status: 'accepted' | 'rejected';
|
|
103
|
-
/** Reason for rejection (if rejected). */
|
|
104
84
|
reason?: string;
|
|
105
|
-
/** Dispatched job IDs. */
|
|
106
85
|
jobIds: string[];
|
|
107
86
|
/**
|
|
108
|
-
*
|
|
109
|
-
*
|
|
110
|
-
* skipped. Printed by the CLI on acceptance.
|
|
87
|
+
* Warnings the CLI prints on acceptance: one per job whose bound test-run
|
|
88
|
+
* contexts were unavailable (non-test or unconfigured) and skipped.
|
|
111
89
|
*/
|
|
112
90
|
warnings?: string[];
|
|
113
91
|
}
|
|
@@ -121,11 +99,8 @@ export declare function repoIdentityFromInlineInput(input: TestTriggerInput): {
|
|
|
121
99
|
provider: string;
|
|
122
100
|
};
|
|
123
101
|
/**
|
|
124
|
-
* Process a test trigger through the shared dispatch core
|
|
125
|
-
*
|
|
126
|
-
* Resolves the lock file + matched decisions + fixture concerns, then builds a
|
|
127
|
-
* `WorkflowDispatchContext` per matched workflow and calls
|
|
128
|
-
* `dispatchMatchedWorkflow` — the same core the webhook path uses.
|
|
102
|
+
* Process a test trigger through the shared dispatch core: one
|
|
103
|
+
* `WorkflowDispatchContext` per matched workflow, into `dispatchMatchedWorkflow`.
|
|
129
104
|
*/
|
|
130
105
|
export declare function processTestTrigger(input: TestTriggerInput, deps: ProcessingDeps): Promise<TestTriggerResult>;
|
|
131
106
|
export {};
|
|
@@ -1,20 +1,17 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The dispatch-time warning for a job context
|
|
2
|
+
* The dispatch-time warning for a job context with no scope binding.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* the job's context data resolves. Advisory only: it runs after resolution, a
|
|
8
|
-
* failed lookup logs nothing, and the dispatch proceeds unchanged.
|
|
4
|
+
* Secrets reach a job only through scope bindings, so an unbound context
|
|
5
|
+
* delivers none and nothing fails until a step reads one. Advisory only: it runs
|
|
6
|
+
* after resolution, a failed lookup logs nothing, and dispatch is unchanged.
|
|
9
7
|
*/
|
|
10
8
|
import type { Context } from '@kici-dev/engine';
|
|
11
9
|
import type { SecretResolverApi } from '../secrets/secret-resolver.js';
|
|
12
10
|
/** The warning line's message; the structured fields carry the identities. */
|
|
13
11
|
export declare const UNBOUND_JOB_CONTEXT_MESSAGE = "Job binds a context that has no scope binding; it receives no secrets from it";
|
|
14
12
|
/**
|
|
15
|
-
* Warn once
|
|
16
|
-
*
|
|
17
|
-
* a lookup, so a bound context costs nothing here.
|
|
13
|
+
* Warn once per context that resolved no secret and has no scope binding; one
|
|
14
|
+
* that resolved a secret is skipped without a lookup.
|
|
18
15
|
*/
|
|
19
16
|
export declare function warnUnboundJobContexts(args: {
|
|
20
17
|
secretResolver: SecretResolverApi | undefined;
|
|
@@ -5,13 +5,11 @@ import type { CheckRunReporter } from '../reporting/check-run-reporter.js';
|
|
|
5
5
|
/**
|
|
6
6
|
* Complete the check runs of `runId`'s stored workflow dispatch, if it has one.
|
|
7
7
|
*
|
|
8
|
-
* A
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
* is the only place the check-run names can still be derived from.
|
|
8
|
+
* A no-op without a pending workflow context. Call it BEFORE
|
|
9
|
+
* `deletePendingWorkflowContext`: the context is the only source of the
|
|
10
|
+
* check-run names.
|
|
12
11
|
*
|
|
13
|
-
* Never throws:
|
|
14
|
-
* job is to terminalize the run, and a provider error must not stop that.
|
|
12
|
+
* Never throws: a provider error must not stop the caller terminalizing the run.
|
|
15
13
|
*/
|
|
16
14
|
export declare function completeUndispatchedHoldChecks(args: {
|
|
17
15
|
db: Kysely<Database> | undefined;
|
|
@@ -1,18 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Rolling-wave scheduler for bounded fan-out (`maxParallel` / `failFast`).
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* whenever an in-flight slot frees up (or, under `failFast`, skips the held
|
|
9
|
-
* remainder on the first child failure).
|
|
4
|
+
* Like `needs-scheduler.ts`, it fires when a job reaches a terminal state: it
|
|
5
|
+
* releases the next `wave_gated` sibling of a fan-out base when an in-flight
|
|
6
|
+
* slot frees up, or, under `failFast`, skips the held remainder on the first
|
|
7
|
+
* child failure.
|
|
10
8
|
*
|
|
11
|
-
* Pure DB
|
|
12
|
-
* `execution_jobs` keyed by `(run_id, base_job_name)`, so
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
* this module a pure decision function.
|
|
9
|
+
* Pure DB, no in-memory state: every decision is a fresh query on
|
|
10
|
+
* `execution_jobs` keyed by `(run_id, base_job_name)`, so a restart needs no
|
|
11
|
+
* recovery code. The caller performs the DB write (clear `wave_gated` / mark
|
|
12
|
+
* skipped) and the dispatch (`onJobReady`).
|
|
16
13
|
*/
|
|
17
14
|
import type { Kysely } from 'kysely';
|
|
18
15
|
import type { Database } from '../db/types.js';
|
|
@@ -38,23 +35,19 @@ export type WaveResult = {
|
|
|
38
35
|
action: 'noop';
|
|
39
36
|
};
|
|
40
37
|
/**
|
|
41
|
-
*
|
|
42
|
-
*
|
|
43
|
-
*
|
|
44
|
-
*
|
|
45
|
-
*
|
|
46
|
-
* being re-inserted without the policy on release does not break the chain
|
|
47
|
-
* (the still-held siblings carry it). If no sibling carries a policy, this is
|
|
48
|
-
* not a bounded wave → `noop`.
|
|
38
|
+
* The wave policy is read from the base group's rows: every child of a bounded
|
|
39
|
+
* wave carries the same `wave_max_parallel` / `wave_fail_fast`, so a slot
|
|
40
|
+
* re-inserted without the policy on release does not break the chain (the
|
|
41
|
+
* still-held siblings carry it). No sibling with a policy means no bounded
|
|
42
|
+
* wave → `noop`.
|
|
49
43
|
*
|
|
50
44
|
* - `failFast` + a child failure → `skip-remaining` every still-held sibling.
|
|
51
45
|
* - in-flight count `< maxParallel` AND a held sibling exists → `release` the
|
|
52
46
|
* next held sibling (lowest `variant_label`).
|
|
53
47
|
* - otherwise → `noop`.
|
|
54
48
|
*
|
|
55
|
-
* "In-flight" = a non-terminal, non-`wave_gated` child
|
|
56
|
-
*
|
|
57
|
-
* count against the window — its slot is the one we are filling.
|
|
49
|
+
* "In-flight" = a non-terminal, non-`wave_gated` child. The just-completed
|
|
50
|
+
* child is terminal, so its slot is the one being filled.
|
|
58
51
|
*/
|
|
59
52
|
export declare function evaluateWave(db: Kysely<Database>, evaluation: WaveEvaluation): Promise<WaveResult>;
|
|
60
53
|
//# sourceMappingURL=wave-scheduler.d.ts.map
|
|
@@ -1,16 +1,9 @@
|
|
|
1
1
|
import type { LogStorage } from '../reporting/log-storage.js';
|
|
2
|
-
/**
|
|
3
|
-
* Object-storage key holding the webhook payload for a run. Shared by the
|
|
4
|
-
* writers and by the re-run path that copies a payload forward, so the layout
|
|
5
|
-
* is stated once.
|
|
6
|
-
*/
|
|
2
|
+
/** Object-storage key of a run's webhook payload, shared by the writers and the re-run copy. */
|
|
7
3
|
export declare function webhookPayloadPath(runId: string): string;
|
|
8
4
|
/**
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
* A failure is logged and swallowed: the payload is a debugging aid, and losing
|
|
12
|
-
* it must never cost the run that was about to execute. A no-op when the
|
|
13
|
-
* orchestrator has no object storage configured.
|
|
5
|
+
* Best-effort: a failure is logged and swallowed, because losing a debugging
|
|
6
|
+
* aid must never cost the run. A no-op without object storage.
|
|
14
7
|
*/
|
|
15
8
|
export declare function storeWebhookPayload(args: {
|
|
16
9
|
logStorage: LogStorage | undefined;
|
|
@@ -1,22 +1,18 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Load a workflow repository's lock entries
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* global run, and the release of a held evaluation round. Both must run the
|
|
8
|
-
* workflow version the run was created against, never the registration's
|
|
9
|
-
* current one. This module is the one place that resolves it.
|
|
2
|
+
* Load a workflow repository's lock entries at the commit an organization-wide
|
|
3
|
+
* run recorded (`execution_runs.workflow_sha`). The re-run of a finished global
|
|
4
|
+
* run and the release of a held evaluation round act after that repository may
|
|
5
|
+
* have moved on, and must run the version the run was created against, never
|
|
6
|
+
* the registration's current one. This module is the one place that resolves it.
|
|
10
7
|
*/
|
|
11
8
|
import type { LockFile, LockWorkflow } from '@kici-dev/engine';
|
|
12
9
|
import type { ProviderRegistry } from '../provider-registry.js';
|
|
13
10
|
import type { RegisteredWorkflow } from '../registration/registration-index.js';
|
|
14
11
|
import { type DepCacheKey } from '@kici-dev/shared';
|
|
15
12
|
/**
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
* registration.
|
|
13
|
+
* A lock entry is organization-wide when a trigger carries `repos:`. The re-run
|
|
14
|
+
* and the held-round release judge a workflow by its entry at the recorded
|
|
15
|
+
* commit through this one rule, never by the current registration.
|
|
20
16
|
*/
|
|
21
17
|
export declare function isOrganizationWideEntry(entry: LockWorkflow): boolean;
|
|
22
18
|
/**
|
|
@@ -37,14 +33,12 @@ export interface WorkflowLockEntryAtSha {
|
|
|
37
33
|
depCacheKey: DepCacheKey;
|
|
38
34
|
}
|
|
39
35
|
/**
|
|
40
|
-
* The lock entries of `registrations` at `sha`, keyed by workflow name.
|
|
41
|
-
*
|
|
42
|
-
*
|
|
43
|
-
*
|
|
44
|
-
*
|
|
45
|
-
*
|
|
46
|
-
* — the same fetcher a per-repository re-run reads its own lock file with. A
|
|
47
|
-
* workflow the lock file at `sha` does not define is absent from the result.
|
|
36
|
+
* The lock entries of `registrations` at `sha`, keyed by workflow name. Every
|
|
37
|
+
* registration must belong to one workflow repository. When each is already at
|
|
38
|
+
* `sha`, its stored lock entry is that version and nothing is fetched; otherwise
|
|
39
|
+
* the lock file is fetched at `sha` through the registration's own bundle and
|
|
40
|
+
* provider context, the fetcher a per-repository re-run uses. A workflow the
|
|
41
|
+
* lock file at `sha` does not define is absent from the result.
|
|
48
42
|
*
|
|
49
43
|
* Throws, naming the workflow repository, when the lock file cannot be read:
|
|
50
44
|
* the caller refuses rather than falling back to any other version.
|
|
@@ -106,7 +106,7 @@ export declare function assertDashboardWriteAllowed(db: Kysely<Database>, custom
|
|
|
106
106
|
* Merge `updates` into the persisted policy and persist the result.
|
|
107
107
|
* Unknown keys in `updates` are rejected at the Zod schema layer
|
|
108
108
|
* before this function runs (kici-admin already validates). Any
|
|
109
|
-
* operation explicitly set to `
|
|
109
|
+
* operation explicitly set to `'permissive'` is normalized away — the
|
|
110
110
|
* permissive default lives in the absence of the key, keeping the
|
|
111
111
|
* JSONB shape minimal.
|
|
112
112
|
*
|
|
@@ -81,12 +81,6 @@ export interface ProviderBundle {
|
|
|
81
81
|
*/
|
|
82
82
|
export declare class ProviderRegistry {
|
|
83
83
|
private readonly bundles;
|
|
84
|
-
/**
|
|
85
|
-
* Register a provider bundle by routing key.
|
|
86
|
-
*
|
|
87
|
-
* Each routing key gets its own bundle with per-app credentials.
|
|
88
|
-
* Routing keys have the format "{provider}:{id}" (e.g., "github:12345").
|
|
89
|
-
*/
|
|
90
84
|
registerByRoutingKey(routingKey: string, bundle: ProviderBundle): void;
|
|
91
85
|
/**
|
|
92
86
|
* Register the provider-wide default bundle for `type`, stored under the
|
|
@@ -104,9 +98,6 @@ export declare class ProviderRegistry {
|
|
|
104
98
|
*/
|
|
105
99
|
hasExact(routingKey: string): boolean;
|
|
106
100
|
/**
|
|
107
|
-
* Get the provider bundle by routing key.
|
|
108
|
-
* Routing keys have the format "{provider}:{id}" (e.g., "github:12345").
|
|
109
|
-
*
|
|
110
101
|
* A key with no bundle of its own falls back only to its type's default
|
|
111
102
|
* bundle (`{type}:default`, e.g. `generic:default`, which stands in for every
|
|
112
103
|
* plain generic source). It never falls back to another key's bundle: that
|
|
@@ -115,30 +106,20 @@ export declare class ProviderRegistry {
|
|
|
115
106
|
*/
|
|
116
107
|
getByRoutingKey(routingKey: string): ProviderBundle | undefined;
|
|
117
108
|
/**
|
|
118
|
-
* Get just the normalizer for a routing key.
|
|
119
109
|
* Convenience method for webhook handling.
|
|
120
110
|
*/
|
|
121
111
|
getNormalizerByRoutingKey(routingKey: string): WebhookNormalizer | undefined;
|
|
122
|
-
/**
|
|
123
|
-
* Iterate over all registered bundles.
|
|
124
|
-
*/
|
|
125
112
|
getAll(): IterableIterator<[string, ProviderBundle]>;
|
|
126
|
-
/**
|
|
127
|
-
* Get all registered routing keys.
|
|
128
|
-
*/
|
|
129
113
|
getRoutingKeys(): string[];
|
|
130
114
|
/**
|
|
131
|
-
* Remove a routing key and its bundle.
|
|
132
115
|
* Used during config reload when apps are removed.
|
|
133
116
|
*/
|
|
134
117
|
unregister(routingKey: string): boolean;
|
|
135
118
|
/**
|
|
136
|
-
* Check if a routing key is for a generic webhook source.
|
|
137
119
|
* Generic routing keys have the format "generic:{orgId}:{sourceId}".
|
|
138
120
|
*/
|
|
139
121
|
static isGenericRoutingKey(routingKey: string): boolean;
|
|
140
122
|
/**
|
|
141
|
-
* Remove all registered bundles.
|
|
142
123
|
* Used during full config rebuild on reload.
|
|
143
124
|
*/
|
|
144
125
|
clear(): void;
|