@kici-dev/orchestrator 0.0.0 → 0.1.2
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/LICENSE +661 -0
- package/README.md +1 -6
- package/dist/__test-helpers__/mock-db.d.ts +103 -0
- package/dist/__test-helpers__/mock-ws.d.ts +13 -0
- package/dist/agent/dispatcher.d.ts +231 -0
- package/dist/agent/ownership-tracker.d.ts +46 -0
- package/dist/agent/registry.d.ts +255 -0
- package/dist/agent/token-store.d.ts +96 -0
- package/dist/app.d.ts +234 -0
- package/dist/audit/access-log.d.ts +92 -0
- package/dist/audit/sampling-rate-limiter.d.ts +41 -0
- package/dist/cache/build-coordinator.d.ts +42 -0
- package/dist/cache/dep-cache.d.ts +51 -0
- package/dist/cache/index.d.ts +16 -0
- package/dist/cache/pending-builds.d.ts +14 -0
- package/dist/cache/pending-dynamics.d.ts +15 -0
- package/dist/cache/pending-inits.d.ts +19 -0
- package/dist/cache/pending-tracker.d.ts +65 -0
- package/dist/cache/source-cache.d.ts +30 -0
- package/dist/cli/api-client.d.ts +411 -0
- package/dist/cli/commands/access-log.d.ts +30 -0
- package/dist/cli/commands/agent-service/index.d.ts +15 -0
- package/dist/cli/commands/agent-service/install.d.ts +9 -0
- package/dist/cli/commands/agent-service/logs.d.ts +9 -0
- package/dist/cli/commands/agent-service/restart.d.ts +8 -0
- package/dist/cli/commands/agent-service/start.d.ts +8 -0
- package/dist/cli/commands/agent-service/status.d.ts +10 -0
- package/dist/cli/commands/agent-service/stop.d.ts +8 -0
- package/dist/cli/commands/agent-service/uninstall.d.ts +9 -0
- package/dist/cli/commands/agent-service/upgrade.d.ts +11 -0
- package/dist/cli/commands/agent.d.ts +10 -0
- package/dist/cli/commands/api-key.d.ts +12 -0
- package/dist/cli/commands/audit.d.ts +9 -0
- package/dist/cli/commands/backend.d.ts +17 -0
- package/dist/cli/commands/cold-store-impl.d.ts +101 -0
- package/dist/cli/commands/cold-store.d.ts +30 -0
- package/dist/cli/commands/config.d.ts +16 -0
- package/dist/cli/commands/db.d.ts +19 -0
- package/dist/cli/commands/debug-bundle.d.ts +16 -0
- package/dist/cli/commands/diagnose.d.ts +15 -0
- package/dist/cli/commands/environment.d.ts +24 -0
- package/dist/cli/commands/event-dlq.d.ts +19 -0
- package/dist/cli/commands/event-log.d.ts +27 -0
- package/dist/cli/commands/event.d.ts +4 -0
- package/dist/cli/commands/execution.d.ts +17 -0
- package/dist/cli/commands/inspect-bundle.d.ts +16 -0
- package/dist/cli/commands/maintenance.d.ts +4 -0
- package/dist/cli/commands/orchestrator-service/index.d.ts +12 -0
- package/dist/cli/commands/orchestrator-service/install.d.ts +10 -0
- package/dist/cli/commands/orchestrator-service/logs.d.ts +10 -0
- package/dist/cli/commands/orchestrator-service/restart.d.ts +8 -0
- package/dist/cli/commands/orchestrator-service/start.d.ts +8 -0
- package/dist/cli/commands/orchestrator-service/status.d.ts +10 -0
- package/dist/cli/commands/orchestrator-service/stop.d.ts +8 -0
- package/dist/cli/commands/orchestrator-service/uninstall.d.ts +9 -0
- package/dist/cli/commands/orchestrator-service/upgrade.d.ts +12 -0
- package/dist/cli/commands/org-settings.d.ts +17 -0
- package/dist/cli/commands/peer.d.ts +13 -0
- package/dist/cli/commands/queue.d.ts +16 -0
- package/dist/cli/commands/registration.d.ts +18 -0
- package/dist/cli/commands/rotate.d.ts +9 -0
- package/dist/cli/commands/runs.d.ts +34 -0
- package/dist/cli/commands/secret.d.ts +12 -0
- package/dist/cli/commands/shared/db.d.ts +16 -0
- package/dist/cli/commands/shared/versioned-upgrade.d.ts +38 -0
- package/dist/cli/commands/source.d.ts +24 -0
- package/dist/cli/commands/token.d.ts +10 -0
- package/dist/cli/commands/workflow.d.ts +31 -0
- package/dist/cli/join.d.ts +14 -0
- package/dist/cli/kici-admin.d.ts +13 -0
- package/dist/cli/lazy-deps/cache.d.ts +17 -0
- package/dist/cli/lazy-deps/downloader.d.ts +33 -0
- package/dist/cli/lazy-deps/registry.d.ts +43 -0
- package/dist/cli/service/compose.d.ts +25 -0
- package/dist/cli/service/index.d.ts +24 -0
- package/dist/cli/service/launchd.d.ts +34 -0
- package/dist/cli/service/platform-detect.d.ts +59 -0
- package/dist/cli/service/systemd.d.ts +41 -0
- package/dist/cli/service/types.d.ts +91 -0
- package/dist/cli/service/windows.d.ts +20 -0
- package/dist/cli/wizard/agent-wizard.d.ts +24 -0
- package/dist/cli/wizard/orchestrator-wizard.d.ts +38 -0
- package/dist/cli/wizard/prompts.d.ts +23 -0
- package/dist/cli.js +11435 -0
- package/dist/cluster/cluster-identity.d.ts +59 -0
- package/dist/cluster/coordinator.d.ts +204 -0
- package/dist/cluster/health-api.d.ts +30 -0
- package/dist/cluster/index.d.ts +24 -0
- package/dist/cluster/join-client.d.ts +75 -0
- package/dist/cluster/join-handler.d.ts +58 -0
- package/dist/cluster/join-token.d.ts +94 -0
- package/dist/cluster/orphan-recovery.d.ts +67 -0
- package/dist/cluster/peer-client.d.ts +190 -0
- package/dist/cluster/peer-credentials.d.ts +108 -0
- package/dist/cluster/peer-crypto.d.ts +57 -0
- package/dist/cluster/peer-handler.d.ts +97 -0
- package/dist/cluster/peer-registry.d.ts +186 -0
- package/dist/cluster/raft-state.d.ts +36 -0
- package/dist/cluster/raft.d.ts +140 -0
- package/dist/cold-store/load-access-log-range.d.ts +73 -0
- package/dist/cold-store/load-event-log-range.d.ts +62 -0
- package/dist/cold-store/load-secret-audit-log-range.d.ts +38 -0
- package/dist/cold-store/orchestrator-cold-store.d.ts +58 -0
- package/dist/cold-store/tables/access-log.d.ts +80 -0
- package/dist/cold-store/tables/event-log.d.ts +70 -0
- package/dist/cold-store/tables/execution-jobs.d.ts +63 -0
- package/dist/cold-store/tables/execution-runs.d.ts +81 -0
- package/dist/cold-store/tables/execution-steps.d.ts +65 -0
- package/dist/cold-store/tables/secret-audit-log.d.ts +77 -0
- package/dist/concurrency/dispatch-next-queued.d.ts +63 -0
- package/dist/concurrency/group-tracker.d.ts +51 -0
- package/dist/concurrency/index.d.ts +3 -0
- package/dist/concurrency/queue-manager.d.ts +68 -0
- package/dist/concurrency/waiters.d.ts +58 -0
- package/dist/config/encryption.d.ts +82 -0
- package/dist/config/env-overlay.d.ts +45 -0
- package/dist/config/index.d.ts +16 -0
- package/dist/config/loader.d.ts +26 -0
- package/dist/config/reload.d.ts +113 -0
- package/dist/config/resolver.d.ts +47 -0
- package/dist/config/schema.d.ts +210 -0
- package/dist/config/shared-store.d.ts +142 -0
- package/dist/config/types.d.ts +218 -0
- package/dist/config.d.ts +249 -0
- package/dist/cron/cron-scheduler.d.ts +78 -0
- package/dist/cron/cron-store.d.ts +38 -0
- package/dist/dashboard/handler.d.ts +243 -0
- package/dist/db/client.d.ts +13 -0
- package/dist/db/migration-provider.d.ts +9 -0
- package/dist/db/migrations/001_initial.d.ts +8 -0
- package/dist/db/migrations/002_config_versions_key_version.d.ts +16 -0
- package/dist/db/migrations/003_access_log.d.ts +26 -0
- package/dist/db/migrations/004_rename_bundle_to_source.d.ts +19 -0
- package/dist/db/migrations/005_cold_store_chunk_counter.d.ts +19 -0
- package/dist/db/migrations/006_runs_jobs_steps_archived_at.d.ts +38 -0
- package/dist/db/migrations/007_audit_logs_archived_at.d.ts +42 -0
- package/dist/db/migrations/008_event_log_archived_at.d.ts +40 -0
- package/dist/db/migrations/009_access_log_trigram.d.ts +15 -0
- package/dist/db/migrations/010_cold_store_chunks.d.ts +34 -0
- package/dist/db/migrations/011_drop_source_secrets_notify.d.ts +21 -0
- package/dist/db/migrations/012_peer_credentials_active_uniq.d.ts +28 -0
- package/dist/db/migrations/013_execution_log_bytes.d.ts +21 -0
- package/dist/db/migrations/014_kici_events_lease_retry.d.ts +36 -0
- package/dist/db/migrations/015_org_settings_customer_scoped.d.ts +30 -0
- package/dist/db/migrations/016_org_settings_allow_http_npm.d.ts +15 -0
- package/dist/db/migrations/017_org_id_widen.d.ts +4 -0
- package/dist/db/migrations/018_org_id_prefix_backfill.d.ts +4 -0
- package/dist/db/migrator.d.ts +32 -0
- package/dist/db/types.d.ts +1266 -0
- package/dist/diagnostics/bundle-reader.d.ts +48 -0
- package/dist/diagnostics/bundle-writer.d.ts +57 -0
- package/dist/diagnostics/checks/agents.d.ts +10 -0
- package/dist/diagnostics/checks/certs.d.ts +9 -0
- package/dist/diagnostics/checks/config.d.ts +10 -0
- package/dist/diagnostics/checks/db.d.ts +9 -0
- package/dist/diagnostics/checks/disk.d.ts +9 -0
- package/dist/diagnostics/checks/index.d.ts +17 -0
- package/dist/diagnostics/checks/ws.d.ts +9 -0
- package/dist/diagnostics/index.d.ts +13 -0
- package/dist/diagnostics/runner.d.ts +23 -0
- package/dist/diagnostics/types.d.ts +38 -0
- package/dist/entry-helpers.d.ts +93 -0
- package/dist/environments/binding-store.d.ts +27 -0
- package/dist/environments/environment-store.d.ts +74 -0
- package/dist/environments/held-runs.d.ts +64 -0
- package/dist/environments/index.d.ts +10 -0
- package/dist/environments/protection/branch-gate.d.ts +5 -0
- package/dist/environments/protection/concurrency-gate.d.ts +7 -0
- package/dist/environments/protection/pipeline.d.ts +18 -0
- package/dist/environments/protection/reviewer-gate.d.ts +7 -0
- package/dist/environments/protection/trust-gate.d.ts +7 -0
- package/dist/environments/protection/wait-timer-gate.d.ts +7 -0
- package/dist/environments/variable-store.d.ts +39 -0
- package/dist/events/circuit-breaker.d.ts +33 -0
- package/dist/events/event-emitter.d.ts +55 -0
- package/dist/events/event-retry-scanner.d.ts +52 -0
- package/dist/events/event-router.d.ts +183 -0
- package/dist/events/event-store.d.ts +157 -0
- package/dist/events/trust-store.d.ts +54 -0
- package/dist/events/types.d.ts +61 -0
- package/dist/helpers/ip-extraction.d.ts +29 -0
- package/dist/helpers/rate-limiter.d.ts +23 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.js +772 -0
- package/dist/lockfile-cache.d.ts +39 -0
- package/dist/metrics/agent-metrics-aggregator.d.ts +116 -0
- package/dist/metrics/metrics-reporter.d.ts +40 -0
- package/dist/metrics/prometheus.d.ts +261 -0
- package/dist/metrics/scheduled-jobs.d.ts +20 -0
- package/dist/orchestrator-core.d.ts +193 -0
- package/dist/pipeline/dispatch-matched-workflow.d.ts +102 -0
- package/dist/pipeline/inline-eval.d.ts +28 -0
- package/dist/pipeline/install-secrets-resolver.d.ts +73 -0
- package/dist/pipeline/manual-schedule.d.ts +21 -0
- package/dist/pipeline/needs-scheduler.d.ts +85 -0
- package/dist/pipeline/process-webhook.d.ts +38 -0
- package/dist/pipeline/processor.d.ts +326 -0
- package/dist/pipeline/rerun.d.ts +79 -0
- package/dist/pipeline/test-pipeline.d.ts +110 -0
- package/dist/provider-registry.d.ts +122 -0
- package/dist/providers/generic/index.d.ts +23 -0
- package/dist/providers/generic/normalizer.d.ts +112 -0
- package/dist/providers/generic/verification.d.ts +47 -0
- package/dist/providers/github/auth.d.ts +60 -0
- package/dist/providers/github/changed-files.d.ts +51 -0
- package/dist/providers/github/check-status-poster.d.ts +35 -0
- package/dist/providers/github/contributor-resolver.d.ts +30 -0
- package/dist/providers/github/index.d.ts +20 -0
- package/dist/providers/github/lock-file.d.ts +32 -0
- package/dist/providers/github/normalizer.d.ts +103 -0
- package/dist/providers/github/repo-url.d.ts +35 -0
- package/dist/providers/internal/index.d.ts +32 -0
- package/dist/providers/internal/lock-file-fetcher.d.ts +34 -0
- package/dist/providers/internal/normalizer.d.ts +89 -0
- package/dist/providers/internal/repo-url-builder.d.ts +42 -0
- package/dist/providers/universal-git/changed-files.d.ts +42 -0
- package/dist/providers/universal-git/clone-token.d.ts +83 -0
- package/dist/providers/universal-git/config.d.ts +192 -0
- package/dist/providers/universal-git/index.d.ts +55 -0
- package/dist/providers/universal-git/lock-file.d.ts +71 -0
- package/dist/providers/universal-git/normalizer.d.ts +90 -0
- package/dist/providers/universal-git/repo-url.d.ts +50 -0
- package/dist/providers/universal-git/ssh-auth.d.ts +94 -0
- package/dist/queue/bootstrap.d.ts +50 -0
- package/dist/queue/cleanup.d.ts +41 -0
- package/dist/queue/depth-refresher.d.ts +65 -0
- package/dist/queue/job-queue.d.ts +343 -0
- package/dist/queue/scheduled-job.d.ts +91 -0
- package/dist/registration/extractor.d.ts +44 -0
- package/dist/registration/registration-index.d.ts +162 -0
- package/dist/registration/registration-store.d.ts +111 -0
- package/dist/reporting/check-run-summary.d.ts +102 -0
- package/dist/reporting/commit-status.d.ts +382 -0
- package/dist/reporting/execution-tracker.d.ts +538 -0
- package/dist/reporting/fs-log-storage.d.ts +41 -0
- package/dist/reporting/log-pull-handler.d.ts +35 -0
- package/dist/reporting/log-storage.d.ts +70 -0
- package/dist/reporting/log-writer.d.ts +45 -0
- package/dist/reporting/s3-log-storage.d.ts +42 -0
- package/dist/reporting/step-log-buffer.d.ts +57 -0
- package/dist/routes/admin-access-log.d.ts +34 -0
- package/dist/routes/admin-backends.d.ts +28 -0
- package/dist/routes/admin-config.d.ts +57 -0
- package/dist/routes/admin-db.d.ts +20 -0
- package/dist/routes/admin-environments.d.ts +42 -0
- package/dist/routes/admin-errors.d.ts +4 -0
- package/dist/routes/admin-event-dlq.d.ts +39 -0
- package/dist/routes/admin-event-log.d.ts +42 -0
- package/dist/routes/admin-events.d.ts +46 -0
- package/dist/routes/admin-maintenance.d.ts +22 -0
- package/dist/routes/admin-org-settings.d.ts +29 -0
- package/dist/routes/admin-queue-execution.d.ts +27 -0
- package/dist/routes/admin-registrations.d.ts +37 -0
- package/dist/routes/admin-runs.d.ts +57 -0
- package/dist/routes/admin-scheduled-jobs.d.ts +36 -0
- package/dist/routes/admin-sources.d.ts +18 -0
- package/dist/routes/admin.d.ts +103 -0
- package/dist/routes/capabilities.d.ts +24 -0
- package/dist/routes/diagnostics.d.ts +16 -0
- package/dist/routes/health.d.ts +20 -0
- package/dist/routes/test-trigger.d.ts +41 -0
- package/dist/routes/uploads.d.ts +38 -0
- package/dist/routes/webhooks.d.ts +36 -0
- package/dist/scaler/bare-metal-backend.d.ts +107 -0
- package/dist/scaler/config.d.ts +303 -0
- package/dist/scaler/container-backend.d.ts +125 -0
- package/dist/scaler/file-tail.d.ts +23 -0
- package/dist/scaler/firecracker-api.d.ts +100 -0
- package/dist/scaler/firecracker-backend.d.ts +263 -0
- package/dist/scaler/index.d.ts +24 -0
- package/dist/scaler/ip-allocator.d.ts +177 -0
- package/dist/scaler/label-matcher.d.ts +73 -0
- package/dist/scaler/log-forwarder.d.ts +54 -0
- package/dist/scaler/machine-ledger.d.ts +160 -0
- package/dist/scaler/manager.d.ts +338 -0
- package/dist/scaler/nftables.d.ts +85 -0
- package/dist/scaler/types.d.ts +388 -0
- package/dist/scaler/warm-pool.d.ts +81 -0
- package/dist/secrets/audit-logger.d.ts +65 -0
- package/dist/secrets/backend-health.d.ts +60 -0
- package/dist/secrets/backend-registry.d.ts +68 -0
- package/dist/secrets/backend-sync.d.ts +40 -0
- package/dist/secrets/cleanup.d.ts +40 -0
- package/dist/secrets/config.d.ts +51 -0
- package/dist/secrets/crypto.d.ts +49 -0
- package/dist/secrets/ephemeral-keys.d.ts +49 -0
- package/dist/secrets/index.d.ts +17 -0
- package/dist/secrets/pg-secret-store.d.ts +105 -0
- package/dist/secrets/rbac.d.ts +47 -0
- package/dist/secrets/secret-output-store.d.ts +46 -0
- package/dist/secrets/secret-resolver.d.ts +137 -0
- package/dist/secrets/source-credentials.d.ts +61 -0
- package/dist/secrets/token-manager.d.ts +63 -0
- package/dist/secrets/vault-secret-store.d.ts +85 -0
- package/dist/security/comment-handler.d.ts +67 -0
- package/dist/security/contributor-cache.d.ts +75 -0
- package/dist/security/global-workflow-policy.d.ts +72 -0
- package/dist/security/lock-source.d.ts +34 -0
- package/dist/security/trust-resolver.d.ts +108 -0
- package/dist/security/workflow-diff.d.ts +26 -0
- package/dist/server.d.ts +17 -0
- package/dist/server.js +48055 -0
- package/dist/sources/index.d.ts +10 -0
- package/dist/sources/source-manager.d.ts +63 -0
- package/dist/sources/source-store.d.ts +79 -0
- package/dist/sources/source-validator.d.ts +16 -0
- package/dist/stale-detector/stale-run-detector.d.ts +109 -0
- package/dist/standalone.d.ts +20 -0
- package/dist/standalone.js +41546 -0
- package/dist/storage/blob-routes.d.ts +20 -0
- package/dist/storage/filesystem.d.ts +60 -0
- package/dist/storage/index.d.ts +20 -0
- package/dist/storage/s3.d.ts +68 -0
- package/dist/storage/sign-url.d.ts +45 -0
- package/dist/storage/types.d.ts +98 -0
- package/dist/webhook/dedup.d.ts +44 -0
- package/dist/webhook/event-log.d.ts +83 -0
- package/dist/webhook/generic-sources.d.ts +169 -0
- package/dist/webhook/handler.d.ts +23 -0
- package/dist/webhook/relay-buffer.d.ts +96 -0
- package/dist/webhook/verify-inbound.d.ts +78 -0
- package/dist/worker/in-memory-execution-tracker.d.ts +94 -0
- package/dist/worker/in-memory-job-queue.d.ts +74 -0
- package/dist/worker/static-agent-token-store.d.ts +58 -0
- package/dist/worker/worker-status.d.ts +36 -0
- package/dist/worker-core.d.ts +74 -0
- package/dist/ws/agent-api-registry.d.ts +49 -0
- package/dist/ws/agent-handler.d.ts +176 -0
- package/dist/ws/agent-heartbeat.d.ts +45 -0
- package/dist/ws/dashboard-backends-handler.d.ts +51 -0
- package/dist/ws/dashboard-diagnostics-handler.d.ts +56 -0
- package/dist/ws/dashboard-env-handler.d.ts +107 -0
- package/dist/ws/dashboard-global-workflows-handler.d.ts +72 -0
- package/dist/ws/dashboard-registrations-handler.d.ts +84 -0
- package/dist/ws/event-buffer.d.ts +16 -0
- package/dist/ws/observer-handler.d.ts +42 -0
- package/dist/ws/observer-registry.d.ts +88 -0
- package/dist/ws/platform-client.d.ts +270 -0
- package/dist/ws/server-options.d.ts +15 -0
- package/package.json +87 -7
- package/sbom.spdx.json +14370 -0
- package/index.js +0 -3
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { type Kysely } from 'kysely';
|
|
2
|
+
/**
|
|
3
|
+
* Access log: one row per read or orchestrator-admin mutation attributable
|
|
4
|
+
* to an ActorPrincipal (dashboard user, api_key, service_account, platform
|
|
5
|
+
* operator break-glass, or system). Backs:
|
|
6
|
+
*
|
|
7
|
+
* - dashboard "Data access" tab (dashboard.access-log.list message)
|
|
8
|
+
* - orchestrator admin HTTP route GET /api/v1/admin/access-log
|
|
9
|
+
* - kici-admin `access-log` CLI subcommand
|
|
10
|
+
*
|
|
11
|
+
* Covers reads + orchestrator-admin mutations uniformly. `secret_audit_log`
|
|
12
|
+
* stays the source of truth for secret *mutation* events (kept separate for
|
|
13
|
+
* historical reasons and different retention expectations); access_log
|
|
14
|
+
* records secret *reveals* with full actor attribution.
|
|
15
|
+
*
|
|
16
|
+
* `source` distinguishes platform_proxy vs admin_http vs admin_cli entry
|
|
17
|
+
* points. `actor_meta` captures the variant-specific extras that don't fit
|
|
18
|
+
* in the flat (actor_type, actor_id) columns — ownerSub for api_key,
|
|
19
|
+
* reason for platform_operator.
|
|
20
|
+
*
|
|
21
|
+
* Retention is TTL-based via expires_at; packages/orchestrator/src/queue/
|
|
22
|
+
* cleanup.ts picks up the prune pass.
|
|
23
|
+
*/
|
|
24
|
+
export declare function up(db: Kysely<any>): Promise<void>;
|
|
25
|
+
export declare function down(db: Kysely<any>): Promise<void>;
|
|
26
|
+
//# sourceMappingURL=003_access_log.d.ts.map
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Rename `dispatch_queue.bundle_url` / `bundle_hash` → `source_tar_url` /
|
|
3
|
+
* `source_tar_hash`.
|
|
4
|
+
*
|
|
5
|
+
* The cached build artifact changed from a Rolldown-bundled `.compiled.mjs`
|
|
6
|
+
* (keyed under `bundles/{contentHash}.js` in S3) to a raw `.kici/` source
|
|
7
|
+
* tarball (keyed under `source/{contentHash}.tar.gz`). The agent extracts it
|
|
8
|
+
* and imports the workflow via the shared oxc-transform ESM loader hook
|
|
9
|
+
* instead of running Rolldown at runtime.
|
|
10
|
+
*
|
|
11
|
+
* Pre-release rename: no data preservation needed. Any rows referencing the
|
|
12
|
+
* old bundle URLs will fail their contentHash lookup once the new SCHEMA_V4
|
|
13
|
+
* cache prefix lands, and the orchestrator will schedule a fresh build job —
|
|
14
|
+
* same as any other cache miss.
|
|
15
|
+
*/
|
|
16
|
+
import type { Kysely } from 'kysely';
|
|
17
|
+
export declare function up(db: Kysely<unknown>): Promise<void>;
|
|
18
|
+
export declare function down(db: Kysely<unknown>): Promise<void>;
|
|
19
|
+
//# sourceMappingURL=004_rename_bundle_to_source.d.ts.map
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { type Kysely } from 'kysely';
|
|
2
|
+
/**
|
|
3
|
+
* Cold-store chunk counter table.
|
|
4
|
+
*
|
|
5
|
+
* Tracks per-(db, table, tenant) archived-chunk metadata so the
|
|
6
|
+
* `cold_store_chunks_total` Prometheus gauge and the
|
|
7
|
+
* `kici-admin cold-store list-chunks` CLI can report totals without
|
|
8
|
+
* issuing S3 LIST calls (expensive + rate-limited).
|
|
9
|
+
*
|
|
10
|
+
* Phase A creates the table empty; the cold-store archiver
|
|
11
|
+
* (Phase B+) updates it transactionally with every successful chunk
|
|
12
|
+
* write via `INSERT ... ON CONFLICT (db, table_name, tenant_id) DO
|
|
13
|
+
* UPDATE SET chunk_count = chunk_count + EXCLUDED.chunk_count, ...`.
|
|
14
|
+
*
|
|
15
|
+
* sections 5 and 8.
|
|
16
|
+
*/
|
|
17
|
+
export declare function up(db: Kysely<unknown>): Promise<void>;
|
|
18
|
+
export declare function down(db: Kysely<unknown>): Promise<void>;
|
|
19
|
+
//# sourceMappingURL=005_cold_store_chunk_counter.d.ts.map
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { type Kysely } from 'kysely';
|
|
2
|
+
/**
|
|
3
|
+
* `execution_runs` / `execution_jobs` / `execution_steps` cold-store
|
|
4
|
+
* schema additions.
|
|
5
|
+
*
|
|
6
|
+
* Phase C of the cold-storage archival system. See
|
|
7
|
+
*
|
|
8
|
+
* Each table gets `archived_at TIMESTAMPTZ NULL` and
|
|
9
|
+
* `archive_object_key TEXT NULL` (set inside the archive tx before the
|
|
10
|
+
* DELETE; survivors carry NULL — same pattern as Phase B's migration
|
|
11
|
+
* 004 for `run_events`).
|
|
12
|
+
*
|
|
13
|
+
* Tenant column denormalization: the orchestrator side partitions by
|
|
14
|
+
* `routing_key`, but only `execution_runs` carries the column today.
|
|
15
|
+
* `execution_jobs` and `execution_steps` reference the run by `run_id`
|
|
16
|
+
* and would otherwise need a 3-table JOIN at every archive cycle. We
|
|
17
|
+
* denormalize `routing_key` onto both tables and backfill from the
|
|
18
|
+
* existing run rows. Backfill is one-shot inside this migration. New
|
|
19
|
+
* inserts must populate the column going forward (enforced at the
|
|
20
|
+
* application layer in the same phase).
|
|
21
|
+
*
|
|
22
|
+
* The denormalized column is left NULLable for safety: if an insert
|
|
23
|
+
* site is missed in the rollout, the row still lands in PG; the
|
|
24
|
+
* cold-store adapter's `listEligiblePartitions` skips NULLs (no
|
|
25
|
+
* tenant ⇒ no archive). A follow-up migration may tighten to NOT NULL
|
|
26
|
+
* once we're confident every insert site is updated.
|
|
27
|
+
*
|
|
28
|
+
* Composite indexes added for the archiver's
|
|
29
|
+
* `listEligiblePartitions` discovery query
|
|
30
|
+
* (`GROUP BY routing_key, DATE(created_at)`):
|
|
31
|
+
*
|
|
32
|
+
* - `idx_execution_runs_routing_key_created (routing_key, created_at)`
|
|
33
|
+
* - `idx_execution_jobs_routing_key_created (routing_key, created_at)`
|
|
34
|
+
* - `idx_execution_steps_routing_key_created (routing_key, created_at)`
|
|
35
|
+
*/
|
|
36
|
+
export declare function up(db: Kysely<unknown>): Promise<void>;
|
|
37
|
+
export declare function down(db: Kysely<unknown>): Promise<void>;
|
|
38
|
+
//# sourceMappingURL=006_runs_jobs_steps_archived_at.d.ts.map
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { type Kysely } from 'kysely';
|
|
2
|
+
/**
|
|
3
|
+
* `secret_audit_log` and `access_log` cold-store schema additions, plus
|
|
4
|
+
* the removal of `access_log`'s `expires_at`-based hard delete.
|
|
5
|
+
*
|
|
6
|
+
* Phase D of the cold-storage archival system. See
|
|
7
|
+
*
|
|
8
|
+
* Both tables get the same `archived_at TIMESTAMPTZ NULL` /
|
|
9
|
+
* `archive_object_key TEXT NULL` pair that Phase B added to `run_events`
|
|
10
|
+
* (`packages/platform/src/db/migrations/004_run_events_archived_at.ts`)
|
|
11
|
+
* and Phase C added to `execution_runs` / `execution_jobs` /
|
|
12
|
+
* `execution_steps` (`006_runs_jobs_steps_archived_at.ts`). Set inside
|
|
13
|
+
* the archive transaction before the DELETE; survivors carry NULL.
|
|
14
|
+
*
|
|
15
|
+
* `secret_audit_log` gets a composite
|
|
16
|
+
* `idx_secret_audit_log_routing_timestamp (routing_key, timestamp)` so
|
|
17
|
+
* the archiver's per-tenant scan can use a single index. The existing
|
|
18
|
+
* `idx_secret_audit_log_timestamp` is single-column and would force a
|
|
19
|
+
* filter step.
|
|
20
|
+
*
|
|
21
|
+
* `access_log` already has `access_log_org_created_idx (org_id,
|
|
22
|
+
* created_at DESC)`, which is sufficient for the per-tenant scan
|
|
23
|
+
* (range scans use either direction).
|
|
24
|
+
*
|
|
25
|
+
* Drops `access_log.expires_at` column and `access_log_expires_idx`.
|
|
26
|
+
* Until Phase D, `expires_at` powered a 90-day hard-delete sweep in
|
|
27
|
+
* `packages/orchestrator/src/audit/access-log.ts:cleanup` (called from
|
|
28
|
+
* `packages/orchestrator/src/queue/cleanup.ts:runCleanup` step 5). With
|
|
29
|
+
* cold-store, `access_log` rows older than 30 days are archived rather
|
|
30
|
+
* than deleted, so the TTL becomes effectively "forever". Keeping the
|
|
31
|
+
* column would mean either (a) double-evicting rows or (b) silently
|
|
32
|
+
* mismatching the new contract. Drop it.
|
|
33
|
+
*
|
|
34
|
+
* Per the project's "no backward compatibility (pre-release)" rule,
|
|
35
|
+
* `down()` recreates `expires_at` with a default of `now() + 90 days`
|
|
36
|
+
* — best effort; rows inserted between `up()` and a hypothetical
|
|
37
|
+
* `down()` would not have meaningful retention bounds. Acceptable for
|
|
38
|
+
* staging.
|
|
39
|
+
*/
|
|
40
|
+
export declare function up(db: Kysely<unknown>): Promise<void>;
|
|
41
|
+
export declare function down(db: Kysely<unknown>): Promise<void>;
|
|
42
|
+
//# sourceMappingURL=007_audit_logs_archived_at.d.ts.map
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { type Kysely } from 'kysely';
|
|
2
|
+
/**
|
|
3
|
+
* `event_log` cold-store schema additions plus removal of the
|
|
4
|
+
* `expires_at`-based 30-day hard delete.
|
|
5
|
+
*
|
|
6
|
+
* Phase E of the cold-storage archival system. See
|
|
7
|
+
* §10
|
|
8
|
+
* Phase E.
|
|
9
|
+
*
|
|
10
|
+
* Adds the same `archived_at TIMESTAMPTZ NULL` /
|
|
11
|
+
* `archive_object_key TEXT NULL` pair Phase D added on this side
|
|
12
|
+
* (`007_audit_logs_archived_at.ts`). Set inside the archive
|
|
13
|
+
* transaction before the DELETE; survivors carry NULL.
|
|
14
|
+
*
|
|
15
|
+
* Adds `idx_event_log_routing_received` on `(routing_key, received_at)`
|
|
16
|
+
* because the orchestrator-side cold-store partitions `event_log` by
|
|
17
|
+
* `routing_key` (NOT NULL on this table; no synthetic-tenant fallback
|
|
18
|
+
* is needed). The existing `event_log_org_received_idx` is keyed by
|
|
19
|
+
* `org_id`, fine for dashboard queries but not the per-tenant
|
|
20
|
+
* archiver scan.
|
|
21
|
+
*
|
|
22
|
+
* Drops `event_log.expires_at` and the matching
|
|
23
|
+
* `event_log_expires_at_idx` index. Until Phase E, `expires_at`
|
|
24
|
+
* powered the 30-day hard-delete sweep in
|
|
25
|
+
* `packages/orchestrator/src/webhook/event-log.ts:cleanup`, called
|
|
26
|
+
* from `packages/orchestrator/src/queue/cleanup.ts:runCleanup` step 4
|
|
27
|
+
* (which also deleted the per-row `payload_key` blob from object
|
|
28
|
+
* storage). With cold-store, rows older than 30 days are archived
|
|
29
|
+
* rather than deleted; the per-row `payload_key` blob is retained
|
|
30
|
+
* indefinitely so the dashboard delivery-detail page can still load
|
|
31
|
+
* the body for archived deliveries.
|
|
32
|
+
*
|
|
33
|
+
* Per the project's "no backward compatibility (pre-release)" rule,
|
|
34
|
+
* `down()` recreates `expires_at` with a default of `now() + 30 days`
|
|
35
|
+
* — best effort; rows inserted between `up()` and a hypothetical
|
|
36
|
+
* `down()` would not have meaningful retention bounds.
|
|
37
|
+
*/
|
|
38
|
+
export declare function up(db: Kysely<unknown>): Promise<void>;
|
|
39
|
+
export declare function down(db: Kysely<unknown>): Promise<void>;
|
|
40
|
+
//# sourceMappingURL=008_event_log_archived_at.d.ts.map
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { type Kysely } from 'kysely';
|
|
2
|
+
/**
|
|
3
|
+
* Trigram (pg_trgm) index on access_log.error_message for the federated
|
|
4
|
+
* Activity page's full-text search (`q` parameter).
|
|
5
|
+
*
|
|
6
|
+
* Matches the Platform counterpart in `008_audit_log_trigram.ts` which
|
|
7
|
+
* indexes `audit_log.details::text`.
|
|
8
|
+
*
|
|
9
|
+
* Idempotent: `CREATE EXTENSION IF NOT EXISTS` and `CREATE INDEX IF NOT
|
|
10
|
+
* EXISTS` are both safe to re-run. No CONCURRENTLY because Kysely runs
|
|
11
|
+
* migrations inside a transaction; the lock is brief on a sampled table.
|
|
12
|
+
*/
|
|
13
|
+
export declare function up(db: Kysely<unknown>): Promise<void>;
|
|
14
|
+
export declare function down(db: Kysely<unknown>): Promise<void>;
|
|
15
|
+
//# sourceMappingURL=009_access_log_trigram.d.ts.map
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { type Kysely } from 'kysely';
|
|
2
|
+
/**
|
|
3
|
+
* Cold-store chunk index — Phase 2 (cold-store purge).
|
|
4
|
+
*
|
|
5
|
+
* One row per archived chunk that the GC sweep can later purge from S3.
|
|
6
|
+
* Inserted inside the same transaction as `markArchivedAndDelete` so a
|
|
7
|
+
* chunk is either fully recorded (S3 + index + rollup + audit) or fully
|
|
8
|
+
* absent (no orphan rows).
|
|
9
|
+
*
|
|
10
|
+
* Schema notes:
|
|
11
|
+
*
|
|
12
|
+
* - `chunk_id` is the deterministic 16-hex chunk filename stem; primary
|
|
13
|
+
* key is `(db, table_name, chunk_id)` so the framework can `DELETE`
|
|
14
|
+
* without scanning. The `db` column matches `cold_store_chunk_counts`
|
|
15
|
+
* (always `'orchestrator'` here, included for shape parity with the
|
|
16
|
+
* Platform-side migration).
|
|
17
|
+
* - `bucket` is the S3 prefix segment (`'30d'` / `'180d'` / `'1y'` /
|
|
18
|
+
* `'2y'` / `'forever'`). Carried for `cold-store list-chunks` /
|
|
19
|
+
* `list-purgeable` filtering.
|
|
20
|
+
* - `max_cold_days` is the row-level retention horizon — TEXT to
|
|
21
|
+
* accommodate both numeric values and the literal `'forever'`. The
|
|
22
|
+
* GC sweep checks `max_cold_days != 'forever' AND now() > archived_at
|
|
23
|
+
* + (max_cold_days || ' days')::interval`.
|
|
24
|
+
* - `object_key` is the full S3 key of the data chunk; the GC sweep
|
|
25
|
+
* uses this to issue `DeleteObject` directly without recomputing the
|
|
26
|
+
* key from the prefix.
|
|
27
|
+
*
|
|
28
|
+
* Pre-Phase-2 chunks (v1 manifest) are NOT in this table — they live
|
|
29
|
+
* forever. Adapters that don't opt into per-bucket archival via
|
|
30
|
+
* `coldTtlDays` don't insert here either.
|
|
31
|
+
*/
|
|
32
|
+
export declare function up(db: Kysely<unknown>): Promise<void>;
|
|
33
|
+
export declare function down(db: Kysely<unknown>): Promise<void>;
|
|
34
|
+
//# sourceMappingURL=010_cold_store_chunks.d.ts.map
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { type Kysely } from 'kysely';
|
|
2
|
+
/**
|
|
3
|
+
* Drop the `source_secrets_change_trigger` and the
|
|
4
|
+
* `notify_source_secrets_change()` plpgsql function.
|
|
5
|
+
*
|
|
6
|
+
* Both were used by the (now removed) `WebhookSecretManager` which
|
|
7
|
+
* subscribed via LISTEN/NOTIFY to detect changes to webhook secret rows in
|
|
8
|
+
* `scoped_secrets` and pushed them to the multi-tenant Platform via the
|
|
9
|
+
* `source.secrets` WS message. After the chunked-relay cutover the
|
|
10
|
+
* orchestrator never pushes secret material to Platform -- Platform asks
|
|
11
|
+
* the orchestrator to verify each inbound webhook on demand and the
|
|
12
|
+
* verifier reads secrets directly from `PgSecretStore` -- so the trigger
|
|
13
|
+
* is dead code and only emits NOTIFY traffic that nobody listens to.
|
|
14
|
+
*
|
|
15
|
+
* `down` re-creates the function + trigger as they were originally defined
|
|
16
|
+
* in `001_initial.ts`. They wake up no consumer until the `WebhookSecretManager`
|
|
17
|
+
* is restored, so this migration is safe to roll back.
|
|
18
|
+
*/
|
|
19
|
+
export declare function up(db: Kysely<unknown>): Promise<void>;
|
|
20
|
+
export declare function down(db: Kysely<unknown>): Promise<void>;
|
|
21
|
+
//# sourceMappingURL=011_drop_source_secrets_notify.d.ts.map
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { type Kysely } from 'kysely';
|
|
2
|
+
/**
|
|
3
|
+
* Add a partial unique index on `peer_credentials (instance_id) WHERE
|
|
4
|
+
* revoked_at IS NULL` so two ACTIVE rows for the same `instance_id` become a
|
|
5
|
+
* database-level impossibility.
|
|
6
|
+
*
|
|
7
|
+
* Background: `PeerCredentialStore.save()` historically ran an `UPDATE …
|
|
8
|
+
* SET revoked_at = NOW()` followed by an `INSERT` without a transaction or
|
|
9
|
+
* unique constraint. When a joining peer fanned out N peer-clients in
|
|
10
|
+
* parallel (one per coordinator), each coordinator's `save()` could run its
|
|
11
|
+
* `UPDATE` before the others' `INSERT`s committed — both `UPDATE`s revoked
|
|
12
|
+
* nothing and both `INSERT`s succeeded, leaving 2+ ACTIVE rows for the same
|
|
13
|
+
* `instance_id`. The peer's local credential file then ended up holding a
|
|
14
|
+
* hash that a later concurrent `save()` had revoked, causing an endless
|
|
15
|
+
* "Peer HMAC proof invalid" loop. See
|
|
16
|
+
* for the
|
|
17
|
+
* full incident write-up (DB rows + log evidence from real staging deploys).
|
|
18
|
+
*
|
|
19
|
+
* The `up()` first dedupes any pre-existing duplicates (revoke all but the
|
|
20
|
+
* newest active row per `instance_id`) — required because earlier migrations
|
|
21
|
+
* predate the constraint and existing staging DBs already have the dupes.
|
|
22
|
+
*
|
|
23
|
+
* `down()` only drops the index; it does NOT undo the dedupe (there's no
|
|
24
|
+
* safe way to recreate revoked rows, and the dedupe is monotonic).
|
|
25
|
+
*/
|
|
26
|
+
export declare function up(db: Kysely<unknown>): Promise<void>;
|
|
27
|
+
export declare function down(db: Kysely<unknown>): Promise<void>;
|
|
28
|
+
//# sourceMappingURL=012_peer_credentials_active_uniq.d.ts.map
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { type Kysely } from 'kysely';
|
|
2
|
+
/**
|
|
3
|
+
* Add `log_bytes BIGINT NOT NULL DEFAULT 0` columns to `execution_runs` and
|
|
4
|
+
* `execution_jobs` so the orchestrator can persist the per-job and per-run
|
|
5
|
+
* raw log byte totals reported by agents on terminal `step.status`.
|
|
6
|
+
*
|
|
7
|
+
* Used by the operator-side `kici_org_log_bytes` capacity-planning gauge on
|
|
8
|
+
* the Platform (Platform mirrors these columns via WS replication and runs
|
|
9
|
+
* the aggregation query — same DB-derived pattern as
|
|
10
|
+
* `kici_org_executions_count` and `kici_org_agent_minutes`).
|
|
11
|
+
*
|
|
12
|
+
* Default 0 keeps existing rows valid without a backfill: pre-existing runs
|
|
13
|
+
* predate this column and report as zero log-bytes, which is the correct
|
|
14
|
+
* operator-visibility value (we never had the agent telemetry to compute a
|
|
15
|
+
* real total for them).
|
|
16
|
+
*
|
|
17
|
+
* Idempotent (`ADD COLUMN IF NOT EXISTS`).
|
|
18
|
+
*/
|
|
19
|
+
export declare function up(db: Kysely<unknown>): Promise<void>;
|
|
20
|
+
export declare function down(db: Kysely<unknown>): Promise<void>;
|
|
21
|
+
//# sourceMappingURL=013_execution_log_bytes.d.ts.map
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { type Kysely } from 'kysely';
|
|
2
|
+
/**
|
|
3
|
+
* Add lease + retry + DLQ columns to `kici_events` so the EventRouter can
|
|
4
|
+
* deliver events at-least-once with bounded retries and a visible
|
|
5
|
+
* dead-letter queue.
|
|
6
|
+
*
|
|
7
|
+
* Before this migration, EventRouter used `claimForProcessing` (UPDATE
|
|
8
|
+
* processed=true WHERE processed=false RETURNING *) and dispatched after
|
|
9
|
+
* the row was already marked processed. If `onEventMatched` threw, the
|
|
10
|
+
* event was silently lost. Same loss surface for cron fires, since
|
|
11
|
+
* `tryClaimFire` and `eventStore.write` were two separate transactions:
|
|
12
|
+
* a crash between them advanced `cron_last_fired.last_fired_at` without
|
|
13
|
+
* persisting the event row.
|
|
14
|
+
*
|
|
15
|
+
* After this migration:
|
|
16
|
+
* - `claimed_at`, `claimed_by`: lease-based claim. Replaces the
|
|
17
|
+
* "flip processed=true upfront" pattern. A lease is taken on dispatch,
|
|
18
|
+
* released on success (processed=true) or failure (cleared + retry scheduled).
|
|
19
|
+
* - `attempts`: incremented on each lease attempt. Enables bounded retry.
|
|
20
|
+
* - `last_error`: most recent dispatch failure message (truncated by
|
|
21
|
+
* application code to 4 KB).
|
|
22
|
+
* - `next_retry_at`: earliest moment the leader-only retry scanner should
|
|
23
|
+
* re-publish `pg_notify` for this event.
|
|
24
|
+
* - `dlq_at`, `dlq_reason`: terminal DLQ marker. Once `dlq_at IS NOT NULL`
|
|
25
|
+
* the row is no longer eligible for lease/retry. Surfaced in the
|
|
26
|
+
* dashboard admin DLQ page.
|
|
27
|
+
*
|
|
28
|
+
* Partial indexes keep these new lookups cheap without blowing up the index
|
|
29
|
+
* size on the hot path (most rows are processed=true and irrelevant to the
|
|
30
|
+
* scanner).
|
|
31
|
+
*
|
|
32
|
+
* Idempotent (`ADD COLUMN IF NOT EXISTS` + `CREATE INDEX IF NOT EXISTS`).
|
|
33
|
+
*/
|
|
34
|
+
export declare function up(db: Kysely<unknown>): Promise<void>;
|
|
35
|
+
export declare function down(db: Kysely<unknown>): Promise<void>;
|
|
36
|
+
//# sourceMappingURL=014_kici_events_lease_retry.d.ts.map
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { type Kysely } from 'kysely';
|
|
2
|
+
/**
|
|
3
|
+
* Org-scope `org_settings` and qualify each glob entry by source.
|
|
4
|
+
*
|
|
5
|
+
* `org_settings` was keyed by `routing_key`, meaning each webhook
|
|
6
|
+
* source had its own independent global-workflow configuration. With multi-
|
|
7
|
+
* source orgs, the dashboard's per-org settings page only ever showed the
|
|
8
|
+
* first source it found and silently hid the rest.
|
|
9
|
+
*
|
|
10
|
+
* This migration:
|
|
11
|
+
*
|
|
12
|
+
* 1. Adds a `customer_id text` column.
|
|
13
|
+
* 2. Backfills `customer_id` from `sources` / `generic_webhook_sources` by
|
|
14
|
+
* `routing_key`. Rows whose `routing_key` cannot be resolved (orphans
|
|
15
|
+
* from deleted sources) are dropped — they were already unreachable.
|
|
16
|
+
* 3. Converts the three repo-list `text[]` columns to `jsonb` arrays of
|
|
17
|
+
* `{routingKey?: string, pattern: string}` entries. Each existing entry
|
|
18
|
+
* is qualified with its original `routing_key` so semantics are preserved
|
|
19
|
+
* verbatim — a glob that previously only saw events on `github:42` still
|
|
20
|
+
* only sees events on `github:42`.
|
|
21
|
+
* 4. Merges rows by `customer_id`. `global_workflows_enabled` collapses with
|
|
22
|
+
* logical OR; the three list columns concatenate.
|
|
23
|
+
* 5. Drops the old `routing_key` column and PK; new PK is `customer_id`.
|
|
24
|
+
*
|
|
25
|
+
* Idempotent: a re-run on an already-migrated DB sees `customer_id` exists
|
|
26
|
+
* and the list columns are already jsonb, so it is a no-op.
|
|
27
|
+
*/
|
|
28
|
+
export declare function up(db: Kysely<unknown>): Promise<void>;
|
|
29
|
+
export declare function down(db: Kysely<unknown>): Promise<void>;
|
|
30
|
+
//# sourceMappingURL=015_org_settings_customer_scoped.d.ts.map
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { type Kysely } from 'kysely';
|
|
2
|
+
/**
|
|
3
|
+
* Add `org_settings.allow_http_npm_registries boolean NOT NULL DEFAULT false`.
|
|
4
|
+
*
|
|
5
|
+
* Operators flip this on a per-org basis to permit `http://` (non-HTTPS)
|
|
6
|
+
* registry URLs in workflow `registries:` declarations. By default only
|
|
7
|
+
* `https://` registries are accepted, with an automatic exemption for
|
|
8
|
+
* loopback / `*.local` / private link-local hosts so dev fixtures
|
|
9
|
+
* (Verdaccio at `http://verdaccio.local:4873`) keep working.
|
|
10
|
+
*
|
|
11
|
+
* Idempotent: a re-run on a DB that already has the column is a no-op.
|
|
12
|
+
*/
|
|
13
|
+
export declare function up(db: Kysely<unknown>): Promise<void>;
|
|
14
|
+
export declare function down(db: Kysely<unknown>): Promise<void>;
|
|
15
|
+
//# sourceMappingURL=016_org_settings_allow_http_npm.d.ts.map
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Auto-migrate module with PostgreSQL advisory lock for HA safety.
|
|
3
|
+
*
|
|
4
|
+
* Uses pg_advisory_lock to ensure only one orchestrator instance runs
|
|
5
|
+
* migrations at a time, preventing conflicts in multi-instance deployments.
|
|
6
|
+
*/
|
|
7
|
+
import { type MigrationResult } from 'kysely/migration';
|
|
8
|
+
import type { Kysely } from 'kysely';
|
|
9
|
+
import type pg from 'pg';
|
|
10
|
+
interface MigrateOptions {
|
|
11
|
+
db: Kysely<any>;
|
|
12
|
+
pool: pg.Pool;
|
|
13
|
+
}
|
|
14
|
+
interface MigrationStatusEntry {
|
|
15
|
+
name: string;
|
|
16
|
+
status: 'applied' | 'pending';
|
|
17
|
+
appliedAt?: Date;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Run all pending migrations with an advisory lock for concurrency safety.
|
|
21
|
+
*
|
|
22
|
+
* Acquires pg_advisory_lock before migrating to prevent concurrent
|
|
23
|
+
* migration attempts from multiple orchestrator instances. The lock
|
|
24
|
+
* is always released in the finally block, even on error.
|
|
25
|
+
*/
|
|
26
|
+
export declare function runMigrations(opts: MigrateOptions): Promise<MigrationResult[]>;
|
|
27
|
+
/**
|
|
28
|
+
* Get migration status (applied/pending) without running anything.
|
|
29
|
+
*/
|
|
30
|
+
export declare function getMigrationStatus(opts: MigrateOptions): Promise<MigrationStatusEntry[]>;
|
|
31
|
+
export {};
|
|
32
|
+
//# sourceMappingURL=migrator.d.ts.map
|