feat(api): add contract-safe jobs read endpoints

This commit is contained in:
chick
2026-07-18 00:23:45 +08:00
parent e46e81ea77
commit e45b011bb8
6 changed files with 922 additions and 0 deletions
+4
View File
@@ -24,6 +24,8 @@ import { DeleteInstanceOperation } from './application/operations/delete-instanc
import type { SecretStore } from './infrastructure/secrets/secret-store.js';
import { registerInstanceRoutes } from './interface/http/instance-routes.js';
import { registerEventRoutes } from './interface/http/event-routes.js';
import { JobQueryService } from './application/jobs/job-query-service.js';
import { registerJobRoutes } from './interface/http/job-routes.js';
export interface SafeControlPlaneUpstream extends ConnectionTransport {
request: UpstreamSessionClientOptions['request'];
@@ -42,6 +44,7 @@ export interface ControlPlaneApp extends FastifyInstance {
}
export function buildControlPlaneApp(options: ControlPlaneOptions): ControlPlaneApp {
const eventJournal = new EventJournal(options.db);
const jobs = new JobQueryService(options.db);
const instances = options.now
? new InstanceService({ db: options.db, store: options.store, now: options.now })
: new InstanceService({ db: options.db, store: options.store });
@@ -86,6 +89,7 @@ export function buildControlPlaneApp(options: ControlPlaneOptions): ControlPlane
registerDeletionPreparationRoute: false,
});
registerOperationRoutes(app, operationCatalogRegistry, secureExecution, deletion);
registerJobRoutes(app, { jobs });
registerEventRoutes(app, {
journal: eventJournal,
...(options.authenticateEventStream