@kici-dev/orchestrator 0.0.0 → 0.1.1
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 -6
- package/sbom.spdx.json +14370 -0
- package/index.js +0 -3
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Admin route for triggering scheduled-job ticks out of band.
|
|
3
|
+
*
|
|
4
|
+
* POST /api/v1/admin/scheduled-jobs/:name/trigger
|
|
5
|
+
* Path: :name must be one of the registered OrchestratorScheduledJobName
|
|
6
|
+
* Requires: scheduled_job.trigger role permission (owner + admin roles)
|
|
7
|
+
* Returns: { triggered: true, ok: boolean, durationMs: number, error?: string }
|
|
8
|
+
*
|
|
9
|
+
* Phase A's E2E smoke uses this endpoint to force a cold-store-archive
|
|
10
|
+
* tick without waiting for the hourly cron. Future dashboard "Run now"
|
|
11
|
+
* buttons use it too.
|
|
12
|
+
*
|
|
13
|
+
* The access_log row is written directly (not via the typed
|
|
14
|
+
* AccessLogWriter) because `scheduled_job.trigger` is not in the
|
|
15
|
+
* protocol-level AccessLogAction enum — matching the pattern the
|
|
16
|
+
* scheduler wrapper itself uses for `scheduled_job.tick` failure rows.
|
|
17
|
+
*/
|
|
18
|
+
import { Hono } from 'hono';
|
|
19
|
+
import type { Kysely } from 'kysely';
|
|
20
|
+
import type { Database } from '../db/types.js';
|
|
21
|
+
import type { TokenManager } from '../secrets/token-manager.js';
|
|
22
|
+
import type { RbacEnforcer, Role } from '../secrets/rbac.js';
|
|
23
|
+
export interface AdminScheduledJobsRoutesDeps {
|
|
24
|
+
db: Kysely<Database>;
|
|
25
|
+
tokenManager: TokenManager;
|
|
26
|
+
rbac: RbacEnforcer;
|
|
27
|
+
}
|
|
28
|
+
type AdminEnv = {
|
|
29
|
+
Variables: {
|
|
30
|
+
role: Role;
|
|
31
|
+
userId: string;
|
|
32
|
+
};
|
|
33
|
+
};
|
|
34
|
+
export declare function createAdminScheduledJobsRoutes(deps: AdminScheduledJobsRoutesDeps): Hono<AdminEnv>;
|
|
35
|
+
export {};
|
|
36
|
+
//# sourceMappingURL=admin-scheduled-jobs.d.ts.map
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Admin API routes for webhook source management.
|
|
3
|
+
*
|
|
4
|
+
* Provides CRUD endpoints for managing webhook sources (GitHub Apps, etc.)
|
|
5
|
+
* through the admin API. Source secrets (private keys, webhook secrets) are
|
|
6
|
+
* stored via PgSecretStore and never exposed in list/get responses.
|
|
7
|
+
*
|
|
8
|
+
* All routes are mounted under /api/v1/admin/sources and protected by
|
|
9
|
+
* the admin auth middleware in admin.ts.
|
|
10
|
+
*/
|
|
11
|
+
import { Hono } from 'hono';
|
|
12
|
+
import type { SourceStore } from '../sources/source-store.js';
|
|
13
|
+
interface SourceRouteDeps {
|
|
14
|
+
sourceStore: SourceStore;
|
|
15
|
+
}
|
|
16
|
+
export declare function createSourceRoutes(deps: SourceRouteDeps): Hono;
|
|
17
|
+
export {};
|
|
18
|
+
//# sourceMappingURL=admin-sources.d.ts.map
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Admin API routes for secrets management.
|
|
3
|
+
*
|
|
4
|
+
* Provides CRUD endpoints for contexts, secrets, tokens, audit log queries,
|
|
5
|
+
* and key rotation. All routes are protected by Bearer token authentication
|
|
6
|
+
* and RBAC permission checks.
|
|
7
|
+
*
|
|
8
|
+
* Secret values are write-only -- there is deliberately no "get secret value"
|
|
9
|
+
* endpoint. Values are only read during dispatch resolution.
|
|
10
|
+
*/
|
|
11
|
+
import { Hono } from 'hono';
|
|
12
|
+
import type { TokenManager } from '../secrets/token-manager.js';
|
|
13
|
+
import type { RbacEnforcer, Role } from '../secrets/rbac.js';
|
|
14
|
+
import type { PgSecretStore } from '../secrets/pg-secret-store.js';
|
|
15
|
+
import type { AuditLogger } from '../secrets/audit-logger.js';
|
|
16
|
+
import type { AgentTokenStore } from '../agent/token-store.js';
|
|
17
|
+
import type { AgentRegistry } from '../agent/registry.js';
|
|
18
|
+
import type { SharedConfigStore } from '../config/shared-store.js';
|
|
19
|
+
import type { SourceStore } from '../sources/source-store.js';
|
|
20
|
+
import type { JoinTokenManager } from '../cluster/join-token.js';
|
|
21
|
+
import type { BackendRegistry } from '../secrets/backend-registry.js';
|
|
22
|
+
import type { BackendHealthChecker } from '../secrets/backend-health.js';
|
|
23
|
+
import type { BackendSyncManager } from '@kici-dev/engine';
|
|
24
|
+
import type { Kysely } from 'kysely';
|
|
25
|
+
import type pg from 'pg';
|
|
26
|
+
/**
|
|
27
|
+
* Dependencies for admin API routes.
|
|
28
|
+
*/
|
|
29
|
+
export interface AdminRouteDeps {
|
|
30
|
+
tokenManager: TokenManager;
|
|
31
|
+
rbac: RbacEnforcer;
|
|
32
|
+
secretStore: PgSecretStore;
|
|
33
|
+
auditLogger: AuditLogger;
|
|
34
|
+
/** Optional -- for agent token CRUD endpoints. */
|
|
35
|
+
tokenStore?: AgentTokenStore;
|
|
36
|
+
/**
|
|
37
|
+
* Optional -- for kicking in-flight agent WS on token revoke.
|
|
38
|
+
*
|
|
39
|
+
* The DELETE /api/v1/agent-tokens/:id route calls
|
|
40
|
+
* `agentRegistry.disconnectByTokenId(id)` synchronously after
|
|
41
|
+
* `tokenStore.revoke(id)` so a revoked token loses data-plane
|
|
42
|
+
* authority immediately instead of staying live until the agent
|
|
43
|
+
* itself disconnects. Mirrors the fix on the orch->Platform
|
|
44
|
+
* leg (`disconnectByKeyId`).
|
|
45
|
+
*
|
|
46
|
+
* When unset, the DELETE route returns 503 — agent-token revoke is
|
|
47
|
+
* meaningless without the kick path because a revoked token would
|
|
48
|
+
* still grant in-flight authority for hours-to-days.
|
|
49
|
+
*/
|
|
50
|
+
agentRegistry?: AgentRegistry;
|
|
51
|
+
/**
|
|
52
|
+
* Optional -- fan out the revoke to every peer in a clustered orchestrator.
|
|
53
|
+
*
|
|
54
|
+
* The DELETE /api/v1/agent-tokens/:id route calls this after the synchronous
|
|
55
|
+
* local kick, so every peer's `AgentRegistry.disconnectByTokenId(tokenId)`
|
|
56
|
+
* runs locally and closes its own in-flight WS for the same token. Mirrors
|
|
57
|
+
*'s Valkey fan-out pattern on the orch->Platform leg.
|
|
58
|
+
*
|
|
59
|
+
* Unset on standalone deployments (no peer fabric) -- the local kick alone
|
|
60
|
+
* is sufficient there.
|
|
61
|
+
*/
|
|
62
|
+
broadcastAgentTokenRevoke?: (tokenId: string) => void;
|
|
63
|
+
/** Optional -- for source management endpoints. */
|
|
64
|
+
sourceStore?: SourceStore;
|
|
65
|
+
/** Optional -- for DB migration endpoints. */
|
|
66
|
+
db?: Kysely<any>;
|
|
67
|
+
/** Optional -- for DB migration endpoints. */
|
|
68
|
+
pool?: pg.Pool;
|
|
69
|
+
/** Optional -- for cluster join token creation. */
|
|
70
|
+
joinTokenManager?: JoinTokenManager;
|
|
71
|
+
/** Optional -- for secret backend management endpoints. */
|
|
72
|
+
backendRegistry?: BackendRegistry;
|
|
73
|
+
/** Optional -- for secret backend health checking. */
|
|
74
|
+
backendHealthChecker?: BackendHealthChecker;
|
|
75
|
+
/** Optional -- for secret backend scope sync. */
|
|
76
|
+
backendSyncManager?: BackendSyncManager;
|
|
77
|
+
/**
|
|
78
|
+
* Optional -- for `POST /api/v1/admin/rotate-key`.
|
|
79
|
+
*
|
|
80
|
+
* When set, `rotate-key` re-encrypts `config_versions` alongside
|
|
81
|
+
* `scoped_secrets` in two sequential transactions. When unset (e.g. a
|
|
82
|
+
* secret-store-only admin deployment), config rotation is skipped and the
|
|
83
|
+
* response reports `reEncryptedConfigs: 0`.
|
|
84
|
+
*/
|
|
85
|
+
sharedStore?: SharedConfigStore;
|
|
86
|
+
}
|
|
87
|
+
/** Hono env type for admin routes with context variables. */
|
|
88
|
+
type AdminEnv = {
|
|
89
|
+
Variables: {
|
|
90
|
+
role: Role;
|
|
91
|
+
userId: string;
|
|
92
|
+
routingKey: string | null;
|
|
93
|
+
};
|
|
94
|
+
};
|
|
95
|
+
/**
|
|
96
|
+
* Create admin API routes with Bearer token authentication and RBAC.
|
|
97
|
+
*
|
|
98
|
+
* @param deps - Admin route dependencies (token manager, RBAC, secret store, audit logger, etc.)
|
|
99
|
+
* @returns Hono app with admin routes mounted at /api/v1/admin/*
|
|
100
|
+
*/
|
|
101
|
+
export declare function createAdminRoutes(deps: AdminRouteDeps): Hono<AdminEnv>;
|
|
102
|
+
export {};
|
|
103
|
+
//# sourceMappingURL=admin.d.ts.map
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Orchestrator capability manifest exposed to REST clients (the CLI).
|
|
3
|
+
*
|
|
4
|
+
* The `/capabilities` endpoint returns a small versioned manifest the CLI can
|
|
5
|
+
* read on demand to format actionable errors when it detects a feature gap
|
|
6
|
+
* (e.g. `kici status --logs` against an orchestrator that lacks the logs
|
|
7
|
+
* endpoint). See `docs/architecture/coordinator-worker.md` for the minimum-
|
|
8
|
+
* version semantics this mirrors for the WS connections.
|
|
9
|
+
*
|
|
10
|
+
* Public (no auth) — same security posture as `/health`, which already exposes
|
|
11
|
+
* the orchestrator's version. Version info must be reachable without a token
|
|
12
|
+
* so the CLI can fetch it even when authenticated calls fail with 404/401.
|
|
13
|
+
*/
|
|
14
|
+
import { Hono } from 'hono';
|
|
15
|
+
export interface CapabilitiesManifest {
|
|
16
|
+
/** Orchestrator package version (injected at build time). */
|
|
17
|
+
orchestratorVersion: string;
|
|
18
|
+
/** Protocol version the orchestrator speaks. */
|
|
19
|
+
protocolVersion: number;
|
|
20
|
+
/** Minimum protocol version the orchestrator accepts from peers/clients. */
|
|
21
|
+
minProtocolVersion: number;
|
|
22
|
+
}
|
|
23
|
+
export declare function createCapabilitiesRoutes(): Hono;
|
|
24
|
+
//# sourceMappingURL=capabilities.d.ts.map
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Diagnostic health check HTTP endpoint.
|
|
3
|
+
*
|
|
4
|
+
* Provides GET /admin/diagnose for monitoring system integration.
|
|
5
|
+
* Returns structured JSON with per-check results and overall status.
|
|
6
|
+
*/
|
|
7
|
+
import { Hono } from 'hono';
|
|
8
|
+
import type { DiagnosticDeps } from '../diagnostics/types.js';
|
|
9
|
+
/**
|
|
10
|
+
* Create diagnostic routes.
|
|
11
|
+
*
|
|
12
|
+
* @param deps - Dependencies for diagnostic checks
|
|
13
|
+
* @returns Hono app with /admin/diagnose endpoint
|
|
14
|
+
*/
|
|
15
|
+
export declare function createDiagnosticsRoutes(deps: DiagnosticDeps): Hono;
|
|
16
|
+
//# sourceMappingURL=diagnostics.d.ts.map
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { Kysely } from 'kysely';
|
|
2
|
+
import type { Database } from '../db/types.js';
|
|
3
|
+
export interface HealthRoutesDeps {
|
|
4
|
+
/** Optional DB instance for readiness checks */
|
|
5
|
+
db?: Kysely<Database>;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Create orchestrator health routes with database readiness check.
|
|
9
|
+
*
|
|
10
|
+
* Delegates to the shared health route helper, providing
|
|
11
|
+
* a database connectivity check as the readiness probe.
|
|
12
|
+
*
|
|
13
|
+
* - GET /health - Liveness probe (always 200)
|
|
14
|
+
* - GET /ready - Readiness probe (checks DB if provided)
|
|
15
|
+
*
|
|
16
|
+
* @param deps - Dependencies (optional database for readiness)
|
|
17
|
+
* @returns Hono app with health routes
|
|
18
|
+
*/
|
|
19
|
+
export declare function createHealthRoutes(deps?: HealthRoutesDeps): import("hono").Hono<import("hono/types").BlankEnv, import("hono/types").BlankSchema, "/">;
|
|
20
|
+
//# sourceMappingURL=health.d.ts.map
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* REST endpoints for CLI-initiated test runs.
|
|
3
|
+
*
|
|
4
|
+
* POST /api/v1/test/trigger - Trigger a test run with a fixture event
|
|
5
|
+
* GET /api/v1/test/runs/:runId - Get status of a test run
|
|
6
|
+
* GET /api/v1/test/runs/:runId/logs - Get logs for a test run
|
|
7
|
+
* POST /api/v1/test/cancel - Cancel a running test run
|
|
8
|
+
*
|
|
9
|
+
* All endpoints require Bearer token authentication via the admin token system.
|
|
10
|
+
* The test trigger injects a synthetic event into the existing pipeline,
|
|
11
|
+
* reusing trigger matching and job dispatch.
|
|
12
|
+
*/
|
|
13
|
+
import { Hono } from 'hono';
|
|
14
|
+
import { type TestPipelineDeps } from '../pipeline/test-pipeline.js';
|
|
15
|
+
import type { AppConfig } from '../config.js';
|
|
16
|
+
import type { TokenManager } from '../secrets/token-manager.js';
|
|
17
|
+
import type { Kysely } from 'kysely';
|
|
18
|
+
import type { Database } from '../db/types.js';
|
|
19
|
+
/** Hono env type for test trigger routes with context variables. */
|
|
20
|
+
type TestTriggerEnv = {
|
|
21
|
+
Variables: {
|
|
22
|
+
userId: string;
|
|
23
|
+
routingKey: string | null;
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* Dependencies for test trigger routes.
|
|
28
|
+
* Extends TestPipelineDeps with additional route-specific deps.
|
|
29
|
+
*/
|
|
30
|
+
export interface TestTriggerRouteDeps extends TestPipelineDeps {
|
|
31
|
+
config: AppConfig;
|
|
32
|
+
tokenManager?: TokenManager;
|
|
33
|
+
db: Kysely<Database>;
|
|
34
|
+
cacheStorage?: import('../storage/types.js').CacheStorage;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Create Hono routes for test trigger and cancel endpoints.
|
|
38
|
+
*/
|
|
39
|
+
export declare function createTestTriggerRoutes(deps: TestTriggerRouteDeps): Hono<TestTriggerEnv>;
|
|
40
|
+
export {};
|
|
41
|
+
//# sourceMappingURL=test-trigger.d.ts.map
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* REST endpoints for test run upload management.
|
|
3
|
+
*
|
|
4
|
+
* POST /api/v1/uploads/init - Initialize an upload (returns signed URL + public key)
|
|
5
|
+
* GET /api/v1/uploads/:uploadId/status - Check upload status
|
|
6
|
+
*
|
|
7
|
+
* Uploads support the repo state transfer mechanism: CLI uploads an encrypted
|
|
8
|
+
* tarball of changed files to S3 via a pre-signed URL, then references the
|
|
9
|
+
* upload ID in the test trigger request.
|
|
10
|
+
*/
|
|
11
|
+
import { Hono } from 'hono';
|
|
12
|
+
import type { AppConfig } from '../config.js';
|
|
13
|
+
import type { TokenManager } from '../secrets/token-manager.js';
|
|
14
|
+
import type { Kysely } from 'kysely';
|
|
15
|
+
import type { Database } from '../db/types.js';
|
|
16
|
+
import type { CacheStorage } from '../storage/types.js';
|
|
17
|
+
/**
|
|
18
|
+
* Dependencies for upload routes.
|
|
19
|
+
*/
|
|
20
|
+
export interface UploadRouteDeps {
|
|
21
|
+
config: AppConfig;
|
|
22
|
+
db: Kysely<Database>;
|
|
23
|
+
tokenManager?: TokenManager;
|
|
24
|
+
cacheStorage?: CacheStorage;
|
|
25
|
+
}
|
|
26
|
+
/** Hono env type for upload routes with context variables. */
|
|
27
|
+
type UploadEnv = {
|
|
28
|
+
Variables: {
|
|
29
|
+
userId: string;
|
|
30
|
+
routingKey: string | null;
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* Create Hono routes for upload management endpoints.
|
|
35
|
+
*/
|
|
36
|
+
export declare function createUploadRoutes(deps: UploadRouteDeps): Hono<UploadEnv>;
|
|
37
|
+
export {};
|
|
38
|
+
//# sourceMappingURL=uploads.d.ts.map
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { Hono } from 'hono';
|
|
2
|
+
import type { DedupCache } from '../webhook/dedup.js';
|
|
3
|
+
import type { WebhookInfo } from '../webhook/handler.js';
|
|
4
|
+
import type { GenericSourceManager } from '../webhook/generic-sources.js';
|
|
5
|
+
/**
|
|
6
|
+
* Dependencies for generic webhook routes.
|
|
7
|
+
*/
|
|
8
|
+
export interface GenericWebhookRoutesDeps {
|
|
9
|
+
/** Generic source manager for source lookup and validation */
|
|
10
|
+
sourceManager: GenericSourceManager;
|
|
11
|
+
/** Delivery ID deduplication cache */
|
|
12
|
+
dedup: DedupCache;
|
|
13
|
+
/** Processing callback -- connects to the trigger matching pipeline */
|
|
14
|
+
onWebhook: (info: WebhookInfo) => Promise<void>;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Create generic webhook routes for non-GitHub webhook ingestion.
|
|
18
|
+
*
|
|
19
|
+
* Endpoint: POST /webhook/:orgId/generic/:sourceId
|
|
20
|
+
*
|
|
21
|
+
* Handler flow:
|
|
22
|
+
* 1. Read raw body
|
|
23
|
+
* 2. Look up source from GenericSourceManager
|
|
24
|
+
* 3. Check payload size
|
|
25
|
+
* 4. Rate limit check
|
|
26
|
+
* 5. Verify signature using per-source verification config
|
|
27
|
+
* 6. Extract idempotency key, check dedup
|
|
28
|
+
* 7. Extract event type, check allowed events
|
|
29
|
+
* 8. Normalize and process through pipeline
|
|
30
|
+
* 9. Return response
|
|
31
|
+
*
|
|
32
|
+
* @param deps - Dependencies (source manager, dedup cache, processing callback)
|
|
33
|
+
* @returns Hono app with generic webhook routes
|
|
34
|
+
*/
|
|
35
|
+
export declare function createGenericWebhookRoutes(deps: GenericWebhookRoutesDeps): Hono;
|
|
36
|
+
//# sourceMappingURL=webhooks.d.ts.map
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bare-metal scaler backend implementation.
|
|
3
|
+
*
|
|
4
|
+
* Manages ephemeral agent processes using child_process.spawn.
|
|
5
|
+
* Uses detached process groups for clean killing of entire process trees.
|
|
6
|
+
* All agents are single-use: destroyed after job completion.
|
|
7
|
+
*/
|
|
8
|
+
import { type ToolRequirement } from '@kici-dev/shared';
|
|
9
|
+
import type { AgentTokenStore } from '../agent/token-store.js';
|
|
10
|
+
import type { ScalerBackend, ScalerEntry, ManagedAgent, LabelSetConfig, LogCapture, ResourceRequest, ScalerEventCallback, ValidationResult, EffectiveLimits } from './types.js';
|
|
11
|
+
export interface BareMetalScalerBackendOptions {
|
|
12
|
+
/** Human-readable name for this scaler */
|
|
13
|
+
name: string;
|
|
14
|
+
/** Label sets this backend can provision */
|
|
15
|
+
labelSets: LabelSetConfig[];
|
|
16
|
+
/** Maximum concurrent agents */
|
|
17
|
+
maxAgents: number;
|
|
18
|
+
/** Default resource limits applied when label set has none */
|
|
19
|
+
defaultResources?: ResourceRequest;
|
|
20
|
+
/** Token store for creating ephemeral agent auth tokens. Optional -- when undefined, no token is injected. */
|
|
21
|
+
tokenStore?: AgentTokenStore;
|
|
22
|
+
/** TTL for ephemeral agent tokens in ms. Default: 1 hour. */
|
|
23
|
+
tokenTtlMs?: number;
|
|
24
|
+
/** Agent roles for this scaler. undefined = all, [] = execution only. */
|
|
25
|
+
roles?: string[];
|
|
26
|
+
/**
|
|
27
|
+
* When true, wrap each spawned agent process in a transient systemd scope
|
|
28
|
+
* (`systemd-run --user --scope --slice=kici-scaler`) and translate the
|
|
29
|
+
* job's effective CPU / memory limits into `CPUQuota=` / `MemoryMax=`
|
|
30
|
+
* properties so the kernel cgroup actually enforces the limits. When
|
|
31
|
+
* false (the default), bare-metal stays its historical "advisory limits
|
|
32
|
+
* only" mode — limits drive the scaler's per-machine cap math but no
|
|
33
|
+
* cgroup is created.
|
|
34
|
+
*
|
|
35
|
+
* Linux-only. On macOS / Windows hosts the option is silently a no-op
|
|
36
|
+
* (`systemd-run` does not exist), with a one-time startup warning.
|
|
37
|
+
*/
|
|
38
|
+
enforceCgroups?: boolean;
|
|
39
|
+
}
|
|
40
|
+
export declare class BareMetalScalerBackend implements ScalerBackend {
|
|
41
|
+
readonly type: "bare-metal";
|
|
42
|
+
readonly logsSource = "bare-metal";
|
|
43
|
+
readonly maxAgents: number;
|
|
44
|
+
private _labelSets;
|
|
45
|
+
private readonly name;
|
|
46
|
+
private readonly defaultResources?;
|
|
47
|
+
private readonly tokenStore?;
|
|
48
|
+
private readonly tokenTtlMs;
|
|
49
|
+
private readonly roles;
|
|
50
|
+
private readonly enforceCgroups;
|
|
51
|
+
/** Tracks all managed agent processes */
|
|
52
|
+
private readonly agents;
|
|
53
|
+
/** LogCapture instances for each managed agent (keyed by ManagedAgent.id) */
|
|
54
|
+
private readonly logCaptures;
|
|
55
|
+
constructor(options: BareMetalScalerBackendOptions);
|
|
56
|
+
private warnNetworkPolicy;
|
|
57
|
+
/**
|
|
58
|
+
* Declare required tools for a bare-metal scaler entry.
|
|
59
|
+
*
|
|
60
|
+
* - Every label set's `binaryPath` must be an executable file on disk.
|
|
61
|
+
* - If `KICI_SANDBOX=true` will be forwarded to spawned agents (either via
|
|
62
|
+
* the orchestrator's `KICI_AGENT_ENV_KICI_SANDBOX=true` env var or via a
|
|
63
|
+
* label set's `env.KICI_SANDBOX=true` in scalers.yaml), then `bwrap` must
|
|
64
|
+
* be available on PATH so the agent can actually wrap workflow runners.
|
|
65
|
+
*
|
|
66
|
+
* This check runs at orchestrator startup so misconfiguration fails
|
|
67
|
+
* fast with a clear error instead of crashing every job at dispatch
|
|
68
|
+
* time. On macOS and Windows (where bwrap does not exist) any attempt
|
|
69
|
+
* to enable KICI_SANDBOX will be rejected here.
|
|
70
|
+
*/
|
|
71
|
+
static getRequiredTools(entry: ScalerEntry): ToolRequirement[];
|
|
72
|
+
get labelSets(): LabelSetConfig[];
|
|
73
|
+
getActiveCount(): number;
|
|
74
|
+
spawn(labelSet: string[], agentId: string, orchestratorUrl: string, onEvent?: ScalerEventCallback, effectiveLimits?: EffectiveLimits): Promise<ManagedAgent>;
|
|
75
|
+
getScalerContext(agentId: string): Record<string, unknown> | undefined;
|
|
76
|
+
destroy(managedId: string): Promise<void>;
|
|
77
|
+
/**
|
|
78
|
+
* Get the LogCapture for a managed agent (used by ScalerManager for log forwarding).
|
|
79
|
+
*/
|
|
80
|
+
getLogCapture(managedId: string): LogCapture | undefined;
|
|
81
|
+
shutdownAll(): Promise<void>;
|
|
82
|
+
reload(labelSets: LabelSetConfig[]): ValidationResult;
|
|
83
|
+
/**
|
|
84
|
+
* Build the (command, args) tuple used to spawn an agent process.
|
|
85
|
+
*
|
|
86
|
+
* Two modes:
|
|
87
|
+
* - Direct: returns (binaryPath, []) — the historical bare-metal flow.
|
|
88
|
+
* Used when enforceCgroups is false, the host is non-Linux, or the
|
|
89
|
+
* resolved limits carry no positive cpus/memBytes.
|
|
90
|
+
* - systemd-run scope: returns ('systemd-run', [...]) wrapping the
|
|
91
|
+
* binary in a transient `--user --scope --slice=kici-scaler` cgroup
|
|
92
|
+
* with `CPUQuota=` / `MemoryMax=` properties translated from the
|
|
93
|
+
* effective limits. The scope name embeds `agentId` so each agent is
|
|
94
|
+
* a separately-named transient unit (and `systemctl --user status
|
|
95
|
+
* kici-agent-<agentId>.scope` works).
|
|
96
|
+
*
|
|
97
|
+
* `CPUQuota` is expressed as a percent (1.0 cpus = 100%). `MemoryMax`
|
|
98
|
+
* accepts a raw byte count.
|
|
99
|
+
*/
|
|
100
|
+
private buildSpawnInvocation;
|
|
101
|
+
/**
|
|
102
|
+
* Wait for a process to exit within a timeout.
|
|
103
|
+
* Returns true if the process exited, false if timed out.
|
|
104
|
+
*/
|
|
105
|
+
private waitForExit;
|
|
106
|
+
}
|
|
107
|
+
//# sourceMappingURL=bare-metal-backend.d.ts.map
|