@cat-factory/contracts 0.262.0 → 0.263.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/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/pr-report.d.ts +29 -1
- package/dist/pr-report.d.ts.map +1 -1
- package/dist/pr-report.js +15 -1
- package/dist/pr-report.js.map +1 -1
- package/dist/routes/_shared.d.ts +16 -0
- package/dist/routes/_shared.d.ts.map +1 -1
- package/dist/routes/_shared.js +15 -0
- package/dist/routes/_shared.js.map +1 -1
- package/dist/routes/debug-api.d.ts +18 -0
- package/dist/routes/debug-api.d.ts.map +1 -1
- package/dist/routes/debug-api.js +19 -19
- package/dist/routes/debug-api.js.map +1 -1
- package/dist/routes/notification-webhooks.d.ts +6 -0
- package/dist/routes/notification-webhooks.d.ts.map +1 -1
- package/dist/routes/notification-webhooks.js +7 -7
- package/dist/routes/notification-webhooks.js.map +1 -1
- package/dist/routes/public-api.d.ts +48 -0
- package/dist/routes/public-api.d.ts.map +1 -1
- package/dist/routes/public-api.js +50 -50
- package/dist/routes/public-api.js.map +1 -1
- package/dist/routes/public-decisions.d.ts +82 -0
- package/dist/routes/public-decisions.d.ts.map +1 -1
- package/dist/routes/public-decisions.js +83 -83
- package/dist/routes/public-decisions.js.map +1 -1
- package/dist/routes/public-evidence.d.ts +125 -0
- package/dist/routes/public-evidence.d.ts.map +1 -1
- package/dist/routes/public-evidence.js +26 -5
- package/dist/routes/public-evidence.js.map +1 -1
- package/dist/routes/spec.d.ts +84 -0
- package/dist/routes/spec.d.ts.map +1 -1
- package/dist/routes/spec.js +15 -0
- package/dist/routes/spec.js.map +1 -1
- package/dist/run-evidence.d.ts +152 -0
- package/dist/run-evidence.d.ts.map +1 -0
- package/dist/run-evidence.js +192 -0
- package/dist/run-evidence.js.map +1 -0
- package/dist/run-outcome.d.ts +370 -0
- package/dist/run-outcome.d.ts.map +1 -0
- package/dist/run-outcome.js +540 -0
- package/dist/run-outcome.js.map +1 -0
- package/package.json +1 -1
|
@@ -168,6 +168,8 @@ export declare const createPublicJobContract: {
|
|
|
168
168
|
}, undefined>;
|
|
169
169
|
}, undefined>;
|
|
170
170
|
};
|
|
171
|
+
} & {
|
|
172
|
+
readonly minScope: "write";
|
|
171
173
|
};
|
|
172
174
|
/**
|
|
173
175
|
* List the workspace's headless jobs (newest first, keyset-paginated). Scoped to the
|
|
@@ -224,6 +226,8 @@ export declare const listPublicJobsContract: {
|
|
|
224
226
|
readonly nextCursor: import("valibot").NullableSchema<import("valibot").StringSchema<undefined>, undefined>;
|
|
225
227
|
}, undefined>;
|
|
226
228
|
};
|
|
229
|
+
} & {
|
|
230
|
+
readonly minScope: "read";
|
|
227
231
|
};
|
|
228
232
|
export declare const getPublicJobContract: {
|
|
229
233
|
readonly method: "get";
|
|
@@ -271,6 +275,8 @@ export declare const getPublicJobContract: {
|
|
|
271
275
|
}, undefined>, undefined>;
|
|
272
276
|
}, undefined>;
|
|
273
277
|
};
|
|
278
|
+
} & {
|
|
279
|
+
readonly minScope: "read";
|
|
274
280
|
};
|
|
275
281
|
/**
|
|
276
282
|
* Cancel a headless job run. The escape hatch that makes admitting a PARKING pipeline
|
|
@@ -327,6 +333,8 @@ export declare const cancelPublicJobContract: {
|
|
|
327
333
|
}, undefined>, undefined>;
|
|
328
334
|
}, undefined>;
|
|
329
335
|
};
|
|
336
|
+
} & {
|
|
337
|
+
readonly minScope: "write";
|
|
330
338
|
};
|
|
331
339
|
/** List the workspace's services (board service frames). */
|
|
332
340
|
export declare const listPublicServicesContract: {
|
|
@@ -365,6 +373,8 @@ export declare const listPublicServicesContract: {
|
|
|
365
373
|
}, undefined>, undefined>;
|
|
366
374
|
}, undefined>;
|
|
367
375
|
};
|
|
376
|
+
} & {
|
|
377
|
+
readonly minScope: "read";
|
|
368
378
|
};
|
|
369
379
|
/** Create a task under a service. */
|
|
370
380
|
export declare const createPublicTaskContract: {
|
|
@@ -437,6 +447,8 @@ export declare const createPublicTaskContract: {
|
|
|
437
447
|
readonly pullRequestUrl: import("valibot").NullableSchema<import("valibot").StringSchema<undefined>, undefined>;
|
|
438
448
|
}, undefined>;
|
|
439
449
|
};
|
|
450
|
+
} & {
|
|
451
|
+
readonly minScope: "write";
|
|
440
452
|
};
|
|
441
453
|
/**
|
|
442
454
|
* List a service's tasks (the whole subtree — tasks under the frame and its modules), bounded
|
|
@@ -494,6 +506,8 @@ export declare const listPublicServiceTasksContract: {
|
|
|
494
506
|
readonly nextCursor: import("valibot").NullableSchema<import("valibot").StringSchema<undefined>, undefined>;
|
|
495
507
|
}, undefined>;
|
|
496
508
|
};
|
|
509
|
+
} & {
|
|
510
|
+
readonly minScope: "read";
|
|
497
511
|
};
|
|
498
512
|
/** Get a task's status. */
|
|
499
513
|
export declare const getPublicTaskContract: {
|
|
@@ -539,6 +553,8 @@ export declare const getPublicTaskContract: {
|
|
|
539
553
|
readonly pullRequestUrl: import("valibot").NullableSchema<import("valibot").StringSchema<undefined>, undefined>;
|
|
540
554
|
}, undefined>;
|
|
541
555
|
};
|
|
556
|
+
} & {
|
|
557
|
+
readonly minScope: "read";
|
|
542
558
|
};
|
|
543
559
|
/** Start (run) a task. */
|
|
544
560
|
export declare const startPublicTaskContract: {
|
|
@@ -587,6 +603,8 @@ export declare const startPublicTaskContract: {
|
|
|
587
603
|
readonly pullRequestUrl: import("valibot").NullableSchema<import("valibot").StringSchema<undefined>, undefined>;
|
|
588
604
|
}, undefined>;
|
|
589
605
|
};
|
|
606
|
+
} & {
|
|
607
|
+
readonly minScope: "write";
|
|
590
608
|
};
|
|
591
609
|
/** Edit a task's title/description (pre-start edits). */
|
|
592
610
|
export declare const updatePublicTaskContract: {
|
|
@@ -636,6 +654,8 @@ export declare const updatePublicTaskContract: {
|
|
|
636
654
|
readonly pullRequestUrl: import("valibot").NullableSchema<import("valibot").StringSchema<undefined>, undefined>;
|
|
637
655
|
}, undefined>;
|
|
638
656
|
};
|
|
657
|
+
} & {
|
|
658
|
+
readonly minScope: "write";
|
|
639
659
|
};
|
|
640
660
|
/** Stop a task's in-flight run (records a `cancelled` terminal state, leaving it retryable). */
|
|
641
661
|
export declare const stopPublicTaskContract: {
|
|
@@ -682,6 +702,8 @@ export declare const stopPublicTaskContract: {
|
|
|
682
702
|
readonly pullRequestUrl: import("valibot").NullableSchema<import("valibot").StringSchema<undefined>, undefined>;
|
|
683
703
|
}, undefined>;
|
|
684
704
|
};
|
|
705
|
+
} & {
|
|
706
|
+
readonly minScope: "write";
|
|
685
707
|
};
|
|
686
708
|
/** Retry a task's failed run. */
|
|
687
709
|
export declare const retryPublicTaskContract: {
|
|
@@ -728,6 +750,8 @@ export declare const retryPublicTaskContract: {
|
|
|
728
750
|
readonly pullRequestUrl: import("valibot").NullableSchema<import("valibot").StringSchema<undefined>, undefined>;
|
|
729
751
|
}, undefined>;
|
|
730
752
|
};
|
|
753
|
+
} & {
|
|
754
|
+
readonly minScope: "write";
|
|
731
755
|
};
|
|
732
756
|
/** Read a task's rich run projection (per-step status, subtasks, failure, PR branch). */
|
|
733
757
|
export declare const getPublicRunContract: {
|
|
@@ -787,6 +811,8 @@ export declare const getPublicRunContract: {
|
|
|
787
811
|
}, undefined>, undefined>;
|
|
788
812
|
}, undefined>;
|
|
789
813
|
};
|
|
814
|
+
} & {
|
|
815
|
+
readonly minScope: "read";
|
|
790
816
|
};
|
|
791
817
|
/** Delete a task (and its run history). Destructive — requires an `admin`-scoped key. */
|
|
792
818
|
export declare const deletePublicTaskContract: {
|
|
@@ -822,6 +848,8 @@ export declare const deletePublicTaskContract: {
|
|
|
822
848
|
}, undefined>;
|
|
823
849
|
readonly 204: typeof ContractNoBody;
|
|
824
850
|
};
|
|
851
|
+
} & {
|
|
852
|
+
readonly minScope: "admin";
|
|
825
853
|
};
|
|
826
854
|
/**
|
|
827
855
|
* List the task types this key's workspace may create, with the form each accepts. The discovery
|
|
@@ -888,6 +916,8 @@ export declare const listPublicTaskTypesContract: {
|
|
|
888
916
|
}, undefined>, undefined>;
|
|
889
917
|
}, undefined>;
|
|
890
918
|
};
|
|
919
|
+
} & {
|
|
920
|
+
readonly minScope: "read";
|
|
891
921
|
};
|
|
892
922
|
/** List the workspace's pipelines (id/name/steps + a headless-startable flag). */
|
|
893
923
|
export declare const listPublicPipelinesContract: {
|
|
@@ -926,6 +956,8 @@ export declare const listPublicPipelinesContract: {
|
|
|
926
956
|
}, undefined>, undefined>;
|
|
927
957
|
}, undefined>;
|
|
928
958
|
};
|
|
959
|
+
} & {
|
|
960
|
+
readonly minScope: "read";
|
|
929
961
|
};
|
|
930
962
|
/** List the workspace's OPEN notifications (the inbox). */
|
|
931
963
|
export declare const listPublicNotificationsContract: {
|
|
@@ -1027,6 +1059,8 @@ export declare const listPublicNotificationsContract: {
|
|
|
1027
1059
|
}, undefined>, undefined>;
|
|
1028
1060
|
}, undefined>;
|
|
1029
1061
|
};
|
|
1062
|
+
} & {
|
|
1063
|
+
readonly minScope: "read";
|
|
1030
1064
|
};
|
|
1031
1065
|
/** Act on a notification (run its typed side-effect, then resolve it). Requires an `admin` key. */
|
|
1032
1066
|
export declare const actPublicNotificationContract: {
|
|
@@ -1132,6 +1166,8 @@ export declare const actPublicNotificationContract: {
|
|
|
1132
1166
|
readonly resolvedAt: import("valibot").NullableSchema<import("valibot").NumberSchema<undefined>, undefined>;
|
|
1133
1167
|
}, undefined>;
|
|
1134
1168
|
};
|
|
1169
|
+
} & {
|
|
1170
|
+
readonly minScope: "admin";
|
|
1135
1171
|
};
|
|
1136
1172
|
/** Dismiss a notification without acting on it. */
|
|
1137
1173
|
export declare const dismissPublicNotificationContract: {
|
|
@@ -1237,6 +1273,8 @@ export declare const dismissPublicNotificationContract: {
|
|
|
1237
1273
|
readonly resolvedAt: import("valibot").NullableSchema<import("valibot").NumberSchema<undefined>, undefined>;
|
|
1238
1274
|
}, undefined>;
|
|
1239
1275
|
};
|
|
1276
|
+
} & {
|
|
1277
|
+
readonly minScope: "write";
|
|
1240
1278
|
};
|
|
1241
1279
|
/**
|
|
1242
1280
|
* What the calling key is and what it may do.
|
|
@@ -1285,6 +1323,8 @@ export declare const getPublicIdentityContract: {
|
|
|
1285
1323
|
readonly createdAt: import("valibot").NumberSchema<undefined>;
|
|
1286
1324
|
}, undefined>;
|
|
1287
1325
|
};
|
|
1326
|
+
} & {
|
|
1327
|
+
readonly minScope: "read";
|
|
1288
1328
|
};
|
|
1289
1329
|
/**
|
|
1290
1330
|
* The workspace's usage for the current billing period: the metered budget position plus the
|
|
@@ -1339,6 +1379,8 @@ export declare const getPublicUsageContract: {
|
|
|
1339
1379
|
}, undefined>, undefined>;
|
|
1340
1380
|
}, undefined>;
|
|
1341
1381
|
};
|
|
1382
|
+
} & {
|
|
1383
|
+
readonly minScope: "read";
|
|
1342
1384
|
};
|
|
1343
1385
|
/** List the workspace's live keys: metadata only; a secret is never readable back. */
|
|
1344
1386
|
export declare const listPublicKeysContract: {
|
|
@@ -1382,6 +1424,8 @@ export declare const listPublicKeysContract: {
|
|
|
1382
1424
|
}, undefined>, undefined>;
|
|
1383
1425
|
}, undefined>;
|
|
1384
1426
|
};
|
|
1427
|
+
} & {
|
|
1428
|
+
readonly minScope: "admin";
|
|
1385
1429
|
};
|
|
1386
1430
|
/**
|
|
1387
1431
|
* Mint a key for the calling key's own workspace, returning the raw secret exactly once.
|
|
@@ -1433,6 +1477,8 @@ export declare const createPublicKeyContract: {
|
|
|
1433
1477
|
readonly secret: import("valibot").StringSchema<undefined>;
|
|
1434
1478
|
}, undefined>;
|
|
1435
1479
|
};
|
|
1480
|
+
} & {
|
|
1481
|
+
readonly minScope: "admin";
|
|
1436
1482
|
};
|
|
1437
1483
|
/**
|
|
1438
1484
|
* Revoke a key, and with it every key that key minted. Idempotent.
|
|
@@ -1477,5 +1523,7 @@ export declare const revokePublicKeyContract: {
|
|
|
1477
1523
|
}, undefined>;
|
|
1478
1524
|
readonly 204: typeof ContractNoBody;
|
|
1479
1525
|
};
|
|
1526
|
+
} & {
|
|
1527
|
+
readonly minScope: "admin";
|
|
1480
1528
|
};
|
|
1481
1529
|
//# sourceMappingURL=public-api.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"public-api.d.ts","sourceRoot":"","sources":["../../src/routes/public-api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAqB,MAAM,yBAAyB,CAAA;
|
|
1
|
+
{"version":3,"file":"public-api.d.ts","sourceRoot":"","sources":["../../src/routes/public-api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAqB,MAAM,yBAAyB,CAAA;AAkD3E,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAIpC,CAAA;AAEF,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKrC,CAAA;AAEF,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKrC,CAAA;AAIF;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAQnC,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAQlC,CAAA;AAED,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAQhC,CAAA;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CASnC,CAAA;AAID,4DAA4D;AAC5D,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAOtC,CAAA;AAED,qCAAqC;AACrC,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CASpC,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAS1C,CAAA;AAED,2BAA2B;AAC3B,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAQjC,CAAA;AAED,0BAA0B;AAC1B,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CASnC,CAAA;AAED,yDAAyD;AACzD,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CASpC,CAAA;AAED,gGAAgG;AAChG,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CASlC,CAAA;AAED,iCAAiC;AACjC,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CASnC,CAAA;AAED,yFAAyF;AACzF,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAQhC,CAAA;AAED,yFAAyF;AACzF,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAQpC,CAAA;AAID;;;;GAIG;AACH,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAOvC,CAAA;AAED,kFAAkF;AAClF,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAOvC,CAAA;AASD,2DAA2D;AAC3D,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAO3C,CAAA;AAED,mGAAmG;AACnG,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CASzC,CAAA;AAED,mDAAmD;AACnD,eAAO,MAAM,iCAAiC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAS7C,CAAA;AAID;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAOrC,CAAA;AAID;;;;GAIG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAOlC,CAAA;AAaD,sFAAsF;AACtF,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAOlC,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAQnC,CAAA;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAQnC,CAAA"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { ContractNoBody, defineApiContract } from '@toad-contracts/valibot';
|
|
2
|
-
import { createHeadlessPublicApiKeySchema, createPublicApiKeySchema, createdPublicApiKeySchema, publicApiKeyListResultSchema, } from '../public-api-keys.js';
|
|
2
|
+
import { createHeadlessPublicApiKeySchema, createPublicApiKeySchema, createdPublicApiKeySchema, HEADLESS_KEY_MINT_SCOPE, publicApiKeyListResultSchema, } from '../public-api-keys.js';
|
|
3
3
|
import { notificationSchema } from '../notifications.js';
|
|
4
4
|
import { createPublicJobSchema, createPublicTaskSchema, listPublicJobsQuerySchema, listPublicServiceTasksQuerySchema, publicJobAcceptedSchema, publicIdentitySchema, publicJobListSchema, publicJobSchema, publicNotificationListSchema, publicPipelineListSchema, publicRunSchema, publicServiceListSchema, publicTaskListSchema, publicTaskSchema, publicUsageSchema, startPublicTaskSchema, updatePublicTaskSchema, } from '../public-api.js';
|
|
5
5
|
import { publicTaskTypeListSchema } from '../public-task-types.js';
|
|
6
|
-
import { errorResponses, singleStringParam } from './_shared.js';
|
|
6
|
+
import { errorResponses, singleStringParam, withMinScope } from './_shared.js';
|
|
7
7
|
// ---------------------------------------------------------------------------
|
|
8
8
|
// Public-API route contracts. Two surfaces:
|
|
9
9
|
//
|
|
@@ -44,29 +44,29 @@ export const revokePublicApiKeyContract = defineApiContract({
|
|
|
44
44
|
* resource root; the create used to sit apart at `POST /api/v1/initiatives`, which split the
|
|
45
45
|
* resource across two path roots for no reason a caller could see.
|
|
46
46
|
*/
|
|
47
|
-
export const createPublicJobContract = defineApiContract({
|
|
47
|
+
export const createPublicJobContract = withMinScope('write', defineApiContract({
|
|
48
48
|
method: 'post',
|
|
49
49
|
pathResolver: () => '/api/v1/jobs',
|
|
50
50
|
requestBodySchema: createPublicJobSchema,
|
|
51
51
|
responsesByStatusCode: { 202: publicJobAcceptedSchema, ...errorResponses },
|
|
52
|
-
});
|
|
52
|
+
}));
|
|
53
53
|
/**
|
|
54
54
|
* List the workspace's headless jobs (newest first, keyset-paginated). Scoped to the
|
|
55
55
|
* runs THIS surface created — an internal-anchored run — exactly like the single-job read, so an
|
|
56
56
|
* external key can never enumerate the workspace's ordinary board runs.
|
|
57
57
|
*/
|
|
58
|
-
export const listPublicJobsContract = defineApiContract({
|
|
58
|
+
export const listPublicJobsContract = withMinScope('read', defineApiContract({
|
|
59
59
|
method: 'get',
|
|
60
60
|
pathResolver: () => '/api/v1/jobs',
|
|
61
61
|
requestQuerySchema: listPublicJobsQuerySchema,
|
|
62
62
|
responsesByStatusCode: { 200: publicJobListSchema, ...errorResponses },
|
|
63
|
-
});
|
|
64
|
-
export const getPublicJobContract = defineApiContract({
|
|
63
|
+
}));
|
|
64
|
+
export const getPublicJobContract = withMinScope('read', defineApiContract({
|
|
65
65
|
method: 'get',
|
|
66
66
|
requestPathParamsSchema: idParams,
|
|
67
67
|
pathResolver: ({ id }) => `/api/v1/jobs/${id}`,
|
|
68
68
|
responsesByStatusCode: { 200: publicJobSchema, ...errorResponses },
|
|
69
|
-
});
|
|
69
|
+
}));
|
|
70
70
|
/**
|
|
71
71
|
* Cancel a headless job run. The escape hatch that makes admitting a PARKING pipeline
|
|
72
72
|
* safe (see `docs/initiatives/headless-clarification-loop.md`, D1): a parked run waits for a
|
|
@@ -75,110 +75,110 @@ export const getPublicJobContract = defineApiContract({
|
|
|
75
75
|
* back as-is. Board tasks have had `POST /api/v1/tasks/:taskId/stop` all along; this is its
|
|
76
76
|
* counterpart on the jobs surface.
|
|
77
77
|
*/
|
|
78
|
-
export const cancelPublicJobContract = defineApiContract({
|
|
78
|
+
export const cancelPublicJobContract = withMinScope('write', defineApiContract({
|
|
79
79
|
method: 'post',
|
|
80
80
|
requestPathParamsSchema: idParams,
|
|
81
81
|
pathResolver: ({ id }) => `/api/v1/jobs/${id}/cancel`,
|
|
82
82
|
requestBodySchema: ContractNoBody,
|
|
83
83
|
responsesByStatusCode: { 200: publicJobSchema, ...errorResponses },
|
|
84
|
-
});
|
|
84
|
+
}));
|
|
85
85
|
// ---- basic board workloads: services + tasks (key-authenticated) -----------
|
|
86
86
|
/** List the workspace's services (board service frames). */
|
|
87
|
-
export const listPublicServicesContract = defineApiContract({
|
|
87
|
+
export const listPublicServicesContract = withMinScope('read', defineApiContract({
|
|
88
88
|
method: 'get',
|
|
89
89
|
pathResolver: () => '/api/v1/services',
|
|
90
90
|
responsesByStatusCode: { 200: publicServiceListSchema, ...errorResponses },
|
|
91
|
-
});
|
|
91
|
+
}));
|
|
92
92
|
/** Create a task under a service. */
|
|
93
|
-
export const createPublicTaskContract = defineApiContract({
|
|
93
|
+
export const createPublicTaskContract = withMinScope('write', defineApiContract({
|
|
94
94
|
method: 'post',
|
|
95
95
|
requestPathParamsSchema: serviceIdParams,
|
|
96
96
|
pathResolver: ({ serviceId }) => `/api/v1/services/${serviceId}/tasks`,
|
|
97
97
|
requestBodySchema: createPublicTaskSchema,
|
|
98
98
|
responsesByStatusCode: { 201: publicTaskSchema, ...errorResponses },
|
|
99
|
-
});
|
|
99
|
+
}));
|
|
100
100
|
/**
|
|
101
101
|
* List a service's tasks (the whole subtree — tasks under the frame and its modules), bounded
|
|
102
102
|
* and keyset-paginated with an optional status filter. Ordered by the stable task id, which is
|
|
103
103
|
* deterministic but NOT chronological (see `listPublicServiceTasksQuerySchema`).
|
|
104
104
|
*/
|
|
105
|
-
export const listPublicServiceTasksContract = defineApiContract({
|
|
105
|
+
export const listPublicServiceTasksContract = withMinScope('read', defineApiContract({
|
|
106
106
|
method: 'get',
|
|
107
107
|
requestPathParamsSchema: serviceIdParams,
|
|
108
108
|
requestQuerySchema: listPublicServiceTasksQuerySchema,
|
|
109
109
|
pathResolver: ({ serviceId }) => `/api/v1/services/${serviceId}/tasks`,
|
|
110
110
|
responsesByStatusCode: { 200: publicTaskListSchema, ...errorResponses },
|
|
111
|
-
});
|
|
111
|
+
}));
|
|
112
112
|
/** Get a task's status. */
|
|
113
|
-
export const getPublicTaskContract = defineApiContract({
|
|
113
|
+
export const getPublicTaskContract = withMinScope('read', defineApiContract({
|
|
114
114
|
method: 'get',
|
|
115
115
|
requestPathParamsSchema: taskIdParams,
|
|
116
116
|
pathResolver: ({ taskId }) => `/api/v1/tasks/${taskId}`,
|
|
117
117
|
responsesByStatusCode: { 200: publicTaskSchema, ...errorResponses },
|
|
118
|
-
});
|
|
118
|
+
}));
|
|
119
119
|
/** Start (run) a task. */
|
|
120
|
-
export const startPublicTaskContract = defineApiContract({
|
|
120
|
+
export const startPublicTaskContract = withMinScope('write', defineApiContract({
|
|
121
121
|
method: 'post',
|
|
122
122
|
requestPathParamsSchema: taskIdParams,
|
|
123
123
|
pathResolver: ({ taskId }) => `/api/v1/tasks/${taskId}/start`,
|
|
124
124
|
requestBodySchema: startPublicTaskSchema,
|
|
125
125
|
responsesByStatusCode: { 202: publicTaskSchema, ...errorResponses },
|
|
126
|
-
});
|
|
126
|
+
}));
|
|
127
127
|
/** Edit a task's title/description (pre-start edits). */
|
|
128
|
-
export const updatePublicTaskContract = defineApiContract({
|
|
128
|
+
export const updatePublicTaskContract = withMinScope('write', defineApiContract({
|
|
129
129
|
method: 'patch',
|
|
130
130
|
requestPathParamsSchema: taskIdParams,
|
|
131
131
|
pathResolver: ({ taskId }) => `/api/v1/tasks/${taskId}`,
|
|
132
132
|
requestBodySchema: updatePublicTaskSchema,
|
|
133
133
|
responsesByStatusCode: { 200: publicTaskSchema, ...errorResponses },
|
|
134
|
-
});
|
|
134
|
+
}));
|
|
135
135
|
/** Stop a task's in-flight run (records a `cancelled` terminal state, leaving it retryable). */
|
|
136
|
-
export const stopPublicTaskContract = defineApiContract({
|
|
136
|
+
export const stopPublicTaskContract = withMinScope('write', defineApiContract({
|
|
137
137
|
method: 'post',
|
|
138
138
|
requestPathParamsSchema: taskIdParams,
|
|
139
139
|
pathResolver: ({ taskId }) => `/api/v1/tasks/${taskId}/stop`,
|
|
140
140
|
requestBodySchema: ContractNoBody,
|
|
141
141
|
responsesByStatusCode: { 200: publicTaskSchema, ...errorResponses },
|
|
142
|
-
});
|
|
142
|
+
}));
|
|
143
143
|
/** Retry a task's failed run. */
|
|
144
|
-
export const retryPublicTaskContract = defineApiContract({
|
|
144
|
+
export const retryPublicTaskContract = withMinScope('write', defineApiContract({
|
|
145
145
|
method: 'post',
|
|
146
146
|
requestPathParamsSchema: taskIdParams,
|
|
147
147
|
pathResolver: ({ taskId }) => `/api/v1/tasks/${taskId}/retry`,
|
|
148
148
|
requestBodySchema: ContractNoBody,
|
|
149
149
|
responsesByStatusCode: { 202: publicTaskSchema, ...errorResponses },
|
|
150
|
-
});
|
|
150
|
+
}));
|
|
151
151
|
/** Read a task's rich run projection (per-step status, subtasks, failure, PR branch). */
|
|
152
|
-
export const getPublicRunContract = defineApiContract({
|
|
152
|
+
export const getPublicRunContract = withMinScope('read', defineApiContract({
|
|
153
153
|
method: 'get',
|
|
154
154
|
requestPathParamsSchema: taskIdParams,
|
|
155
155
|
pathResolver: ({ taskId }) => `/api/v1/tasks/${taskId}/run`,
|
|
156
156
|
responsesByStatusCode: { 200: publicRunSchema, ...errorResponses },
|
|
157
|
-
});
|
|
157
|
+
}));
|
|
158
158
|
/** Delete a task (and its run history). Destructive — requires an `admin`-scoped key. */
|
|
159
|
-
export const deletePublicTaskContract = defineApiContract({
|
|
159
|
+
export const deletePublicTaskContract = withMinScope('admin', defineApiContract({
|
|
160
160
|
method: 'delete',
|
|
161
161
|
requestPathParamsSchema: taskIdParams,
|
|
162
162
|
pathResolver: ({ taskId }) => `/api/v1/tasks/${taskId}`,
|
|
163
163
|
responsesByStatusCode: { 204: ContractNoBody, ...errorResponses },
|
|
164
|
-
});
|
|
164
|
+
}));
|
|
165
165
|
// ---- pipeline discovery (key-authenticated) --------------------------------
|
|
166
166
|
/**
|
|
167
167
|
* List the task types this key's workspace may create, with the form each accepts. The discovery
|
|
168
168
|
* half of `createPublicTaskSchema.fields`: a caller reads the descriptors here and fills them
|
|
169
169
|
* there, rather than guessing at a shape the create call would then refuse.
|
|
170
170
|
*/
|
|
171
|
-
export const listPublicTaskTypesContract = defineApiContract({
|
|
171
|
+
export const listPublicTaskTypesContract = withMinScope('read', defineApiContract({
|
|
172
172
|
method: 'get',
|
|
173
173
|
pathResolver: () => '/api/v1/task-types',
|
|
174
174
|
responsesByStatusCode: { 200: publicTaskTypeListSchema, ...errorResponses },
|
|
175
|
-
});
|
|
175
|
+
}));
|
|
176
176
|
/** List the workspace's pipelines (id/name/steps + a headless-startable flag). */
|
|
177
|
-
export const listPublicPipelinesContract = defineApiContract({
|
|
177
|
+
export const listPublicPipelinesContract = withMinScope('read', defineApiContract({
|
|
178
178
|
method: 'get',
|
|
179
179
|
pathResolver: () => '/api/v1/pipelines',
|
|
180
180
|
responsesByStatusCode: { 200: publicPipelineListSchema, ...errorResponses },
|
|
181
|
-
});
|
|
181
|
+
}));
|
|
182
182
|
// ---- notification inbox: merge / confirm / retry the run tails -------------
|
|
183
183
|
// The external counterparts of the SPA's notification-inbox operations, scoped to the
|
|
184
184
|
// key's workspace. They complete the task lifecycle: `act` resolves a human-gated tail
|
|
@@ -186,27 +186,27 @@ export const listPublicPipelinesContract = defineApiContract({
|
|
|
186
186
|
// run), `dismiss` waves a card off. `act` performs a real GitHub merge, so it is the
|
|
187
187
|
// top of the scope ladder (`admin`); `dismiss` is `write`; the list is `read`.
|
|
188
188
|
/** List the workspace's OPEN notifications (the inbox). */
|
|
189
|
-
export const listPublicNotificationsContract = defineApiContract({
|
|
189
|
+
export const listPublicNotificationsContract = withMinScope('read', defineApiContract({
|
|
190
190
|
method: 'get',
|
|
191
191
|
pathResolver: () => '/api/v1/notifications',
|
|
192
192
|
responsesByStatusCode: { 200: publicNotificationListSchema, ...errorResponses },
|
|
193
|
-
});
|
|
193
|
+
}));
|
|
194
194
|
/** Act on a notification (run its typed side-effect, then resolve it). Requires an `admin` key. */
|
|
195
|
-
export const actPublicNotificationContract = defineApiContract({
|
|
195
|
+
export const actPublicNotificationContract = withMinScope('admin', defineApiContract({
|
|
196
196
|
method: 'post',
|
|
197
197
|
requestPathParamsSchema: idParams,
|
|
198
198
|
pathResolver: ({ id }) => `/api/v1/notifications/${id}/act`,
|
|
199
199
|
requestBodySchema: ContractNoBody,
|
|
200
200
|
responsesByStatusCode: { 200: notificationSchema, ...errorResponses },
|
|
201
|
-
});
|
|
201
|
+
}));
|
|
202
202
|
/** Dismiss a notification without acting on it. */
|
|
203
|
-
export const dismissPublicNotificationContract = defineApiContract({
|
|
203
|
+
export const dismissPublicNotificationContract = withMinScope('write', defineApiContract({
|
|
204
204
|
method: 'post',
|
|
205
205
|
requestPathParamsSchema: idParams,
|
|
206
206
|
pathResolver: ({ id }) => `/api/v1/notifications/${id}/dismiss`,
|
|
207
207
|
requestBodySchema: ContractNoBody,
|
|
208
208
|
responsesByStatusCode: { 200: notificationSchema, ...errorResponses },
|
|
209
|
-
});
|
|
209
|
+
}));
|
|
210
210
|
// ---- key introspection (`read` scope) --------------------------------------
|
|
211
211
|
/**
|
|
212
212
|
* What the calling key is and what it may do.
|
|
@@ -220,22 +220,22 @@ export const dismissPublicNotificationContract = defineApiContract({
|
|
|
220
220
|
* Before this, "can I do X" was answerable only by attempting X and reading the `403`, which for
|
|
221
221
|
* a destructive operation is not a check at all.
|
|
222
222
|
*/
|
|
223
|
-
export const getPublicIdentityContract = defineApiContract({
|
|
223
|
+
export const getPublicIdentityContract = withMinScope('read', defineApiContract({
|
|
224
224
|
method: 'get',
|
|
225
225
|
pathResolver: () => '/api/v1/me',
|
|
226
226
|
responsesByStatusCode: { 200: publicIdentitySchema, ...errorResponses },
|
|
227
|
-
});
|
|
227
|
+
}));
|
|
228
228
|
// ---- usage & spend (the external dashboard read) ---------------------------
|
|
229
229
|
/**
|
|
230
230
|
* The workspace's usage for the current billing period: the metered budget position plus the
|
|
231
231
|
* per-model breakdown behind it. Workspace-scoped by construction (the aggregate names no
|
|
232
232
|
* resource ids and no account/user dimension), so `read` is the whole scope story.
|
|
233
233
|
*/
|
|
234
|
-
export const getPublicUsageContract = defineApiContract({
|
|
234
|
+
export const getPublicUsageContract = withMinScope('read', defineApiContract({
|
|
235
235
|
method: 'get',
|
|
236
236
|
pathResolver: () => '/api/v1/usage',
|
|
237
237
|
responsesByStatusCode: { 200: publicUsageSchema, ...errorResponses },
|
|
238
|
-
});
|
|
238
|
+
}));
|
|
239
239
|
// ---- headless key provisioning (`admin` scope) -----------------------------
|
|
240
240
|
// The external counterpart of the session-authed `/public-api-keys` routes above, and the same
|
|
241
241
|
// class of gap the outbound webhook had: a deployment whose operator is headless could reach
|
|
@@ -247,21 +247,21 @@ export const getPublicUsageContract = defineApiContract({
|
|
|
247
247
|
// revoking a key revokes everything it minted (so a leaked provisioning key cannot outlive its
|
|
248
248
|
// own revocation). See `HEADLESS_MINTABLE_SCOPES`.
|
|
249
249
|
/** List the workspace's live keys: metadata only; a secret is never readable back. */
|
|
250
|
-
export const listPublicKeysContract = defineApiContract({
|
|
250
|
+
export const listPublicKeysContract = withMinScope(HEADLESS_KEY_MINT_SCOPE, defineApiContract({
|
|
251
251
|
method: 'get',
|
|
252
252
|
pathResolver: () => '/api/v1/keys',
|
|
253
253
|
responsesByStatusCode: { 200: publicApiKeyListResultSchema, ...errorResponses },
|
|
254
|
-
});
|
|
254
|
+
}));
|
|
255
255
|
/**
|
|
256
256
|
* Mint a key for the calling key's own workspace, returning the raw secret exactly once.
|
|
257
257
|
* Omitting `scope` mints a `write` key. `admin` is refused: see the section note above.
|
|
258
258
|
*/
|
|
259
|
-
export const createPublicKeyContract = defineApiContract({
|
|
259
|
+
export const createPublicKeyContract = withMinScope(HEADLESS_KEY_MINT_SCOPE, defineApiContract({
|
|
260
260
|
method: 'post',
|
|
261
261
|
pathResolver: () => '/api/v1/keys',
|
|
262
262
|
requestBodySchema: createHeadlessPublicApiKeySchema,
|
|
263
263
|
responsesByStatusCode: { 201: createdPublicApiKeySchema, ...errorResponses },
|
|
264
|
-
});
|
|
264
|
+
}));
|
|
265
265
|
/**
|
|
266
266
|
* Revoke a key, and with it every key that key minted. Idempotent.
|
|
267
267
|
*
|
|
@@ -272,10 +272,10 @@ export const createPublicKeyContract = defineApiContract({
|
|
|
272
272
|
* provisioned over this API cannot revoke ITSELF (or anything else); its holder hands it back by
|
|
273
273
|
* asking whoever provisioned it, or the provisioner revokes itself and takes it along.
|
|
274
274
|
*/
|
|
275
|
-
export const revokePublicKeyContract = defineApiContract({
|
|
275
|
+
export const revokePublicKeyContract = withMinScope(HEADLESS_KEY_MINT_SCOPE, defineApiContract({
|
|
276
276
|
method: 'delete',
|
|
277
277
|
requestPathParamsSchema: keyIdParams,
|
|
278
278
|
pathResolver: ({ keyId }) => `/api/v1/keys/${keyId}`,
|
|
279
279
|
responsesByStatusCode: { 204: ContractNoBody, ...errorResponses },
|
|
280
|
-
});
|
|
280
|
+
}));
|
|
281
281
|
//# sourceMappingURL=public-api.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"public-api.js","sourceRoot":"","sources":["../../src/routes/public-api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAC3E,OAAO,EACL,gCAAgC,EAChC,wBAAwB,EACxB,yBAAyB,EACzB,4BAA4B,GAC7B,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AACxD,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,yBAAyB,EACzB,iCAAiC,EACjC,uBAAuB,EACvB,oBAAoB,EACpB,mBAAmB,EACnB,eAAe,EACf,4BAA4B,EAC5B,wBAAwB,EACxB,eAAe,EACf,uBAAuB,EACvB,oBAAoB,EACpB,gBAAgB,EAChB,iBAAiB,EACjB,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAA;AAClE,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"public-api.js","sourceRoot":"","sources":["../../src/routes/public-api.ts"],"names":[],"mappings":"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"}
|