@pipeline-builder/api-core 0.0.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 +202 -0
- package/README.md +98 -0
- package/lib/constants/ai-providers.d.ts +52 -0
- package/lib/constants/ai-providers.js +129 -0
- package/lib/constants/http-status.d.ts +20 -0
- package/lib/constants/http-status.js +26 -0
- package/lib/constants/index.d.ts +3 -0
- package/lib/constants/index.js +6 -0
- package/lib/constants/time.d.ts +10 -0
- package/lib/constants/time.js +13 -0
- package/lib/errors/app-errors.d.ts +30 -0
- package/lib/errors/app-errors.js +53 -0
- package/lib/errors/index.d.ts +1 -0
- package/lib/errors/index.js +4 -0
- package/lib/helpers/access-helpers.d.ts +63 -0
- package/lib/helpers/access-helpers.js +82 -0
- package/lib/helpers/crud-helpers.d.ts +9 -0
- package/lib/helpers/crud-helpers.js +23 -0
- package/lib/helpers/index.d.ts +6 -0
- package/lib/helpers/index.js +9 -0
- package/lib/helpers/org-hierarchy-http.d.ts +74 -0
- package/lib/helpers/org-hierarchy-http.js +144 -0
- package/lib/helpers/org-hierarchy.d.ts +57 -0
- package/lib/helpers/org-hierarchy.js +110 -0
- package/lib/helpers/restore-helpers.d.ts +49 -0
- package/lib/helpers/restore-helpers.js +78 -0
- package/lib/helpers/sse-helpers.d.ts +20 -0
- package/lib/helpers/sse-helpers.js +45 -0
- package/lib/index.d.ts +58 -0
- package/lib/index.js +71 -0
- package/lib/middleware/auth.d.ts +208 -0
- package/lib/middleware/auth.js +588 -0
- package/lib/middleware/index.d.ts +3 -0
- package/lib/middleware/index.js +6 -0
- package/lib/middleware/mongo-sanitize.d.ts +32 -0
- package/lib/middleware/mongo-sanitize.js +100 -0
- package/lib/middleware/step-up.d.ts +45 -0
- package/lib/middleware/step-up.js +138 -0
- package/lib/openapi/extend-zod.d.ts +1 -0
- package/lib/openapi/extend-zod.js +6 -0
- package/lib/openapi/index.d.ts +2 -0
- package/lib/openapi/index.js +5 -0
- package/lib/openapi/registry.d.ts +17 -0
- package/lib/openapi/registry.js +38 -0
- package/lib/openapi/routes/ask-routes.d.ts +7 -0
- package/lib/openapi/routes/ask-routes.js +62 -0
- package/lib/openapi/routes/billing-routes.d.ts +1 -0
- package/lib/openapi/routes/billing-routes.js +66 -0
- package/lib/openapi/routes/image-registry-routes.d.ts +7 -0
- package/lib/openapi/routes/image-registry-routes.js +98 -0
- package/lib/openapi/routes/index.d.ts +5 -0
- package/lib/openapi/routes/index.js +28 -0
- package/lib/openapi/routes/message-routes.d.ts +1 -0
- package/lib/openapi/routes/message-routes.js +105 -0
- package/lib/openapi/routes/pipeline-routes.d.ts +1 -0
- package/lib/openapi/routes/pipeline-routes.js +105 -0
- package/lib/openapi/routes/pipeline-template-routes.d.ts +1 -0
- package/lib/openapi/routes/pipeline-template-routes.js +61 -0
- package/lib/openapi/routes/plugin-routes.d.ts +1 -0
- package/lib/openapi/routes/plugin-routes.js +96 -0
- package/lib/openapi/routes/quota-routes.d.ts +1 -0
- package/lib/openapi/routes/quota-routes.js +62 -0
- package/lib/openapi/schema-registry.d.ts +25 -0
- package/lib/openapi/schema-registry.js +91 -0
- package/lib/routes/health.d.ts +41 -0
- package/lib/routes/health.js +82 -0
- package/lib/routes/index.d.ts +1 -0
- package/lib/routes/index.js +4 -0
- package/lib/services/audit-spool.d.ts +80 -0
- package/lib/services/audit-spool.js +172 -0
- package/lib/services/cache-service.d.ts +124 -0
- package/lib/services/cache-service.js +276 -0
- package/lib/services/circuit-breaker.d.ts +45 -0
- package/lib/services/circuit-breaker.js +138 -0
- package/lib/services/compliance-client.d.ts +46 -0
- package/lib/services/compliance-client.js +128 -0
- package/lib/services/compliance-event-subscriber.d.ts +16 -0
- package/lib/services/compliance-event-subscriber.js +72 -0
- package/lib/services/durable-event-bus.d.ts +96 -0
- package/lib/services/durable-event-bus.js +204 -0
- package/lib/services/entity-events.d.ts +48 -0
- package/lib/services/entity-events.js +79 -0
- package/lib/services/env-redis.d.ts +44 -0
- package/lib/services/env-redis.js +94 -0
- package/lib/services/http-client.d.ts +143 -0
- package/lib/services/http-client.js +335 -0
- package/lib/services/index.d.ts +18 -0
- package/lib/services/index.js +20 -0
- package/lib/services/leader-lock.d.ts +45 -0
- package/lib/services/leader-lock.js +85 -0
- package/lib/services/quota.d.ts +130 -0
- package/lib/services/quota.js +264 -0
- package/lib/services/remote-audit-client.d.ts +160 -0
- package/lib/services/remote-audit-client.js +390 -0
- package/lib/services/retry-strategy.d.ts +74 -0
- package/lib/services/retry-strategy.js +118 -0
- package/lib/services/scheduler.d.ts +41 -0
- package/lib/services/scheduler.js +86 -0
- package/lib/services/service-boot.d.ts +20 -0
- package/lib/services/service-boot.js +28 -0
- package/lib/services/sse-ticket-store.d.ts +51 -0
- package/lib/services/sse-ticket-store.js +130 -0
- package/lib/services/token-revocation.d.ts +52 -0
- package/lib/services/token-revocation.js +120 -0
- package/lib/testing/tier-mock.d.ts +44 -0
- package/lib/testing/tier-mock.js +65 -0
- package/lib/types/audit-events.d.ts +69 -0
- package/lib/types/audit-events.js +4 -0
- package/lib/types/catalog-metadata.d.ts +36 -0
- package/lib/types/catalog-metadata.js +21 -0
- package/lib/types/common.d.ts +255 -0
- package/lib/types/common.js +41 -0
- package/lib/types/error-codes.d.ts +54 -0
- package/lib/types/error-codes.js +107 -0
- package/lib/types/feature-flags.d.ts +36 -0
- package/lib/types/feature-flags.js +128 -0
- package/lib/types/http.d.ts +27 -0
- package/lib/types/http.js +4 -0
- package/lib/types/index.d.ts +11 -0
- package/lib/types/index.js +14 -0
- package/lib/types/permissions.d.ts +65 -0
- package/lib/types/permissions.js +131 -0
- package/lib/types/pipeline-template.d.ts +30 -0
- package/lib/types/pipeline-template.js +13 -0
- package/lib/types/pipeline.d.ts +59 -0
- package/lib/types/pipeline.js +31 -0
- package/lib/types/quota-tiers.d.ts +79 -0
- package/lib/types/quota-tiers.js +221 -0
- package/lib/types/visibility.d.ts +20 -0
- package/lib/types/visibility.js +22 -0
- package/lib/utils/alias-resolver.d.ts +37 -0
- package/lib/utils/alias-resolver.js +68 -0
- package/lib/utils/audit.d.ts +15 -0
- package/lib/utils/audit.js +39 -0
- package/lib/utils/aws-scrub.d.ts +11 -0
- package/lib/utils/aws-scrub.js +67 -0
- package/lib/utils/compliance-attributes.d.ts +6 -0
- package/lib/utils/compliance-attributes.js +69 -0
- package/lib/utils/concurrency.d.ts +9 -0
- package/lib/utils/concurrency.js +29 -0
- package/lib/utils/crash-handlers.d.ts +18 -0
- package/lib/utils/crash-handlers.js +36 -0
- package/lib/utils/env.d.ts +28 -0
- package/lib/utils/env.js +54 -0
- package/lib/utils/headers.d.ts +18 -0
- package/lib/utils/headers.js +21 -0
- package/lib/utils/identity.d.ts +40 -0
- package/lib/utils/identity.js +51 -0
- package/lib/utils/index.d.ts +17 -0
- package/lib/utils/index.js +20 -0
- package/lib/utils/logger.d.ts +38 -0
- package/lib/utils/logger.js +174 -0
- package/lib/utils/metric-emitter.d.ts +36 -0
- package/lib/utils/metric-emitter.js +32 -0
- package/lib/utils/object.d.ts +13 -0
- package/lib/utils/object.js +18 -0
- package/lib/utils/params.d.ts +150 -0
- package/lib/utils/params.js +206 -0
- package/lib/utils/response.d.ts +117 -0
- package/lib/utils/response.js +223 -0
- package/lib/utils/safe-require.d.ts +13 -0
- package/lib/utils/safe-require.js +19 -0
- package/lib/utils/secret-encryption.d.ts +176 -0
- package/lib/utils/secret-encryption.js +374 -0
- package/lib/utils/ssrf.d.ts +30 -0
- package/lib/utils/ssrf.js +106 -0
- package/lib/validation/ai-schemas.d.ts +56 -0
- package/lib/validation/ai-schemas.js +78 -0
- package/lib/validation/common-schemas.d.ts +133 -0
- package/lib/validation/common-schemas.js +94 -0
- package/lib/validation/index.d.ts +7 -0
- package/lib/validation/index.js +10 -0
- package/lib/validation/message-schemas.d.ts +160 -0
- package/lib/validation/message-schemas.js +156 -0
- package/lib/validation/middleware.d.ts +72 -0
- package/lib/validation/middleware.js +65 -0
- package/lib/validation/pipeline-schemas.d.ts +181 -0
- package/lib/validation/pipeline-schemas.js +101 -0
- package/lib/validation/pipeline-template-schemas.d.ts +155 -0
- package/lib/validation/pipeline-template-schemas.js +66 -0
- package/lib/validation/plugin-schemas.d.ts +171 -0
- package/lib/validation/plugin-schemas.js +81 -0
- package/openapi.yaml +292 -0
- package/package.json +167 -0
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
// Copyright 2026 Pipeline Builder Contributors
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
import { registry } from '../registry.js';
|
|
4
|
+
const tags = ['Image Registry'];
|
|
5
|
+
const auth = [{ bearerAuth: [] }];
|
|
6
|
+
/**
|
|
7
|
+
* OpenAPI definitions for the image-registry service (api/image-registry): the
|
|
8
|
+
* Docker-registry token endpoint (`/token`), the org-scoped image API
|
|
9
|
+
* (`/api/images`), and the admin API (`/api/admin`). Image read/write is gated by
|
|
10
|
+
* the `registry:read` / `registry:write` permissions.
|
|
11
|
+
*/
|
|
12
|
+
export function registerImageRegistryRoutes() {
|
|
13
|
+
registry.registerPath({
|
|
14
|
+
method: 'get',
|
|
15
|
+
path: '/token',
|
|
16
|
+
summary: 'Mint a Docker registry token',
|
|
17
|
+
description: 'OAuth2-style token endpoint for `docker`/`crane`/`buildctl` clients. Verifies Basic-auth creds (a platform JWT or user login) and issues a scoped bearer token for pull/push.',
|
|
18
|
+
tags,
|
|
19
|
+
responses: { 200: { description: 'Registry access token' }, 401: { description: 'Invalid credentials' } },
|
|
20
|
+
});
|
|
21
|
+
registry.registerPath({
|
|
22
|
+
method: 'get',
|
|
23
|
+
path: '/api/images',
|
|
24
|
+
summary: 'List images',
|
|
25
|
+
description: "List the organization's container images in the registry.",
|
|
26
|
+
tags,
|
|
27
|
+
security: auth,
|
|
28
|
+
responses: { 200: { description: 'Image list' }, 403: { description: 'registry:read required' } },
|
|
29
|
+
});
|
|
30
|
+
registry.registerPath({
|
|
31
|
+
method: 'get',
|
|
32
|
+
path: '/api/images/{name}/tags',
|
|
33
|
+
summary: 'List image tags',
|
|
34
|
+
tags,
|
|
35
|
+
security: auth,
|
|
36
|
+
responses: { 200: { description: 'Tag list' }, 404: { description: 'Image not found' } },
|
|
37
|
+
});
|
|
38
|
+
registry.registerPath({
|
|
39
|
+
method: 'get',
|
|
40
|
+
path: '/api/images/{name}/manifests/{reference}',
|
|
41
|
+
summary: 'Get an image manifest',
|
|
42
|
+
tags,
|
|
43
|
+
security: auth,
|
|
44
|
+
responses: { 200: { description: 'OCI manifest / index' }, 404: { description: 'Manifest not found' } },
|
|
45
|
+
});
|
|
46
|
+
registry.registerPath({
|
|
47
|
+
method: 'get',
|
|
48
|
+
path: '/api/images/{name}/blobs/{digest}',
|
|
49
|
+
summary: 'Get an image blob',
|
|
50
|
+
tags,
|
|
51
|
+
security: auth,
|
|
52
|
+
responses: { 200: { description: 'Blob content' }, 404: { description: 'Blob not found' } },
|
|
53
|
+
});
|
|
54
|
+
registry.registerPath({
|
|
55
|
+
method: 'post',
|
|
56
|
+
path: '/api/images/copy',
|
|
57
|
+
summary: 'Copy an image',
|
|
58
|
+
description: 'Server-side copy of an image between repositories. Requires both registry:read and registry:write.',
|
|
59
|
+
tags,
|
|
60
|
+
security: auth,
|
|
61
|
+
responses: { 200: { description: 'Image copied' }, 403: { description: 'registry:read + registry:write required' } },
|
|
62
|
+
});
|
|
63
|
+
registry.registerPath({
|
|
64
|
+
method: 'delete',
|
|
65
|
+
path: '/api/images/{name}',
|
|
66
|
+
summary: 'Delete an image repository',
|
|
67
|
+
tags,
|
|
68
|
+
security: auth,
|
|
69
|
+
responses: { 200: { description: 'Repository deleted' }, 403: { description: 'registry:write required' } },
|
|
70
|
+
});
|
|
71
|
+
registry.registerPath({
|
|
72
|
+
method: 'delete',
|
|
73
|
+
path: '/api/images/{name}/manifests/{reference}',
|
|
74
|
+
summary: 'Delete an image manifest/tag',
|
|
75
|
+
tags,
|
|
76
|
+
security: auth,
|
|
77
|
+
responses: { 200: { description: 'Manifest deleted' }, 403: { description: 'registry:write required' } },
|
|
78
|
+
});
|
|
79
|
+
registry.registerPath({
|
|
80
|
+
method: 'get',
|
|
81
|
+
path: '/api/admin/storage/{prefix}',
|
|
82
|
+
summary: 'Registry storage rollup',
|
|
83
|
+
description: 'Storage usage rollup under a prefix (registry:read).',
|
|
84
|
+
tags,
|
|
85
|
+
security: auth,
|
|
86
|
+
responses: { 200: { description: 'Storage usage' }, 403: { description: 'registry:read required' } },
|
|
87
|
+
});
|
|
88
|
+
registry.registerPath({
|
|
89
|
+
method: 'post',
|
|
90
|
+
path: '/api/admin/gc',
|
|
91
|
+
summary: 'Run registry garbage collection',
|
|
92
|
+
description: 'Trigger blob/manifest garbage collection (registry:write).',
|
|
93
|
+
tags,
|
|
94
|
+
security: auth,
|
|
95
|
+
responses: { 202: { description: 'GC started' }, 403: { description: 'registry:write required' } },
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtcmVnaXN0cnktcm91dGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL29wZW5hcGkvcm91dGVzL2ltYWdlLXJlZ2lzdHJ5LXJvdXRlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDO0FBRXRDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUxQyxNQUFNLElBQUksR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUM7QUFDaEMsTUFBTSxJQUFJLEdBQUcsQ0FBQyxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBRWxDOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLDJCQUEyQjtJQUN6QyxRQUFRLENBQUMsWUFBWSxDQUFDO1FBQ3BCLE1BQU0sRUFBRSxLQUFLO1FBQ2IsSUFBSSxFQUFFLFFBQVE7UUFDZCxPQUFPLEVBQUUsOEJBQThCO1FBQ3ZDLFdBQVcsRUFBRSwrS0FBK0s7UUFDNUwsSUFBSTtRQUNKLFNBQVMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLFdBQVcsRUFBRSx1QkFBdUIsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLFdBQVcsRUFBRSxxQkFBcUIsRUFBRSxFQUFFO0tBQzFHLENBQUMsQ0FBQztJQUVILFFBQVEsQ0FBQyxZQUFZLENBQUM7UUFDcEIsTUFBTSxFQUFFLEtBQUs7UUFDYixJQUFJLEVBQUUsYUFBYTtRQUNuQixPQUFPLEVBQUUsYUFBYTtRQUN0QixXQUFXLEVBQUUsMkRBQTJEO1FBQ3hFLElBQUk7UUFDSixRQUFRLEVBQUUsSUFBSTtRQUNkLFNBQVMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxXQUFXLEVBQUUsd0JBQXdCLEVBQUUsRUFBRTtLQUNsRyxDQUFDLENBQUM7SUFFSCxRQUFRLENBQUMsWUFBWSxDQUFDO1FBQ3BCLE1BQU0s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LDREQUE0RDtRQUN6RSxJQUFJO1FBQ0osUUFBUSxFQUFFLElBQUk7UUFDZCxTQUFTLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsV0FBVyxFQUFFLHlCQUF5QixFQUFFLEVBQUU7S0FDbkcsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG5pbXBvcnQgeyByZWdpc3RyeSB9IGZyb20gJy4uL3JlZ2lzdHJ5LmpzJztcblxuY29uc3QgdGFncyA9IFsnSW1hZ2UgUmVnaXN0cnknXTtcbmNvbnN0IGF1dGggPSBbeyBiZWFyZXJBdXRoOiBbXSB9XTtcblxuLyoqXG4gKiBPcGVuQVBJIGRlZmluaXRpb25zIGZvciB0aGUgaW1hZ2UtcmVnaXN0cnkgc2VydmljZSAoYXBpL2ltYWdlLXJlZ2lzdHJ5KTogdGhlXG4gKiBEb2NrZXItcmVnaXN0cnkgdG9rZW4gZW5kcG9pbnQgKGAvdG9rZW5gKSwgdGhlIG9yZy1zY29wZWQgaW1hZ2UgQVBJXG4gKiAoYC9hcGkvaW1hZ2VzYCksIGFuZCB0aGUgYWRtaW4gQVBJIChgL2FwaS9hZG1pbmApLiBJbWFnZSByZWFkL3dyaXRlIGlzIGdhdGVkIGJ5XG4gKiB0aGUgYHJlZ2lzdHJ5OnJlYWRgIC8gYHJlZ2lzdHJ5OndyaXRlYCBwZXJtaXNzaW9ucy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlZ2lzdGVySW1hZ2VSZWdpc3RyeVJvdXRlcygpOiB2b2lkIHtcbiAgcmVnaXN0cnkucmVnaXN0ZXJQYXRoKHtcbiAgICBtZXRob2Q6ICdnZXQnLFxuICAgIHBhdGg6ICcvdG9rZW4nLFxuICAgIHN1bW1hcnk6ICdNaW50IGEgRG9ja2VyIHJlZ2lzdHJ5IHRva2VuJyxcbiAgICBkZXNjcmlwdGlvbjogJ09BdXRoMi1zdHlsZSB0b2tlbiBlbmRwb2ludCBmb3IgYGRvY2tlcmAvYGNyYW5lYC9gYnVpbGRjdGxgIGNsaWVudHMuIFZlcmlmaWVzIEJhc2ljLWF1dGggY3JlZHMgKGEgcGxhdGZvcm0gSldUIG9yIHVzZXIgbG9naW4pIGFuZCBpc3N1ZXMgYSBzY29wZWQgYmVhcmVyIHRva2VuIGZvciBwdWxsL3B1c2guJyxcbiAgICB0YWdzLFxuICAgIHJlc3BvbnNlczogeyAyMDA6IHsgZGVzY3JpcHRpb246ICdSZWdpc3RyeSBhY2Nlc3MgdG9rZW4nIH0sIDQwMTogeyBkZXNjcmlwdGlvbjogJ0ludmFsaWQgY3JlZGVudGlhbHMnIH0gfSxcbiAgfSk7XG5cbiAgcmVnaXN0cnkucmVnaXN0ZXJQYXRoKHtcbiAgICBtZXRob2Q6ICdnZXQnLFxuICAgIHBhdGg6ICcvYXBpL2ltYWdlcycsXG4gICAgc3VtbWFyeTogJ0xpc3QgaW1hZ2VzJyxcbiAgICBkZXNjcmlwdGlvbjogXCJMaXN0IHRoZSBvcmdhbml6YXRpb24ncyBjb250YWluZXIgaW1hZ2VzIGluIHRoZSByZWdpc3RyeS5cIixcbiAgICB0YWdzLFxuICAgIHNlY3VyaXR5OiBhdXRoLFxuICAgIHJlc3BvbnNlczogeyAyMDA6IHsgZGVzY3JpcHRpb246ICdJbWFnZSBsaXN0JyB9LCA0MDM6IHsgZGVzY3JpcHRpb246ICdyZWdpc3RyeTpyZWFkIHJlcXVpcmVkJyB9IH0sXG4gIH0pO1xuXG4gIHJlZ2lzdHJ5LnJlZ2lzdGVyUGF0aCh7XG4gICAgbWV0aG9kOiAnZ2V0JyxcbiAgICBwYXRoOiAnL2FwaS9pbWFnZXMve25hbWV9L3RhZ3MnLFxuICAgIHN1bW1hcnk6ICdMaXN0IGltYWdlIHRhZ3MnLFxuICAgIHRhZ3MsXG4gICAgc2VjdXJpdHk6IGF1dGgsXG4gICAgcmVzcG9uc2VzOiB7IDIwMDogeyBkZXNjcmlwdGlvbjogJ1RhZyBsaXN0JyB9LCA0MDQ6IHsgZGVzY3JpcHRpb246ICdJbWFnZSBub3QgZm91bmQnIH0gfSxcbiAgfSk7XG5cbiAgcmVnaXN0cnkucmVnaXN0ZXJQYXRoKHtcbiAgICBtZXRob2Q6ICdnZXQnLFxuICAgIHBhdGg6ICcvYXBpL2ltYWdlcy97bmFtZX0vbWFuaWZlc3RzL3tyZWZlcmVuY2V9JyxcbiAgICBzdW1tYXJ5OiAnR2V0IGFuIGltYWdlIG1hbmlmZXN0JyxcbiAgICB0YWdzLFxuICAgIHNlY3VyaXR5OiBhdXRoLFxuICAgIHJlc3BvbnNlczogeyAyMDA6IHsgZGVzY3JpcHRpb246ICdPQ0kgbWFuaWZlc3QgLyBpbmRleCcgfSwgNDA0OiB7IGRlc2NyaXB0aW9uOiAnTWFuaWZlc3Qgbm90IGZvdW5kJyB9IH0sXG4gIH0pO1xuXG4gIHJlZ2lzdHJ5LnJlZ2lzdGVyUGF0aCh7XG4gICAgbWV0aG9kOiAnZ2V0JyxcbiAgICBwYXRoOiAnL2FwaS9pbWFnZXMve25hbWV9L2Jsb2JzL3tkaWdlc3R9JyxcbiAgICBzdW1tYXJ5OiAnR2V0IGFuIGltYWdlIGJsb2InLFxuICAgIHRhZ3MsXG4gICAgc2VjdXJpdHk6IGF1dGgsXG4gICAgcmVzcG9uc2VzOiB7IDIwMDogeyBkZXNjcmlwdGlvbjogJ0Jsb2IgY29udGVudCcgfSwgNDA0OiB7IGRlc2NyaXB0aW9uOiAnQmxvYiBub3QgZm91bmQnIH0gfSxcbiAgfSk7XG5cbiAgcmVnaXN0cnkucmVnaXN0ZXJQYXRoKHtcbiAgICBtZXRob2Q6ICdwb3N0JyxcbiAgICBwYXRoOiAnL2FwaS9pbWFnZXMvY29weScsXG4gICAgc3VtbWFyeTogJ0NvcHkgYW4gaW1hZ2UnLFxuICAgIGRlc2NyaXB0aW9uOiAnU2VydmVyLXNpZGUgY29weSBvZiBhbiBpbWFnZSBiZXR3ZWVuIHJlcG9zaXRvcmllcy4gUmVxdWlyZXMgYm90aCByZWdpc3RyeTpyZWFkIGFuZCByZWdpc3RyeTp3cml0ZS4nLFxuICAgIHRhZ3MsXG4gICAgc2VjdXJpdHk6IGF1dGgsXG4gICAgcmVzcG9uc2VzOiB7IDIwMDogeyBkZXNjcmlwdGlvbjogJ0ltYWdlIGNvcGllZCcgfSwgNDAzOiB7IGRlc2NyaXB0aW9uOiAncmVnaXN0cnk6cmVhZCArIHJlZ2lzdHJ5OndyaXRlIHJlcXVpcmVkJyB9IH0sXG4gIH0pO1xuXG4gIHJlZ2lzdHJ5LnJlZ2lzdGVyUGF0aCh7XG4gICAgbWV0aG9kOiAnZGVsZXRlJyxcbiAgICBwYXRoOiAnL2FwaS9pbWFnZXMve25hbWV9JyxcbiAgICBzdW1tYXJ5OiAnRGVsZXRlIGFuIGltYWdlIHJlcG9zaXRvcnknLFxuICAgIHRhZ3MsXG4gICAgc2VjdXJpdHk6IGF1dGgsXG4gICAgcmVzcG9uc2VzOiB7IDIwMDogeyBkZXNjcmlwdGlvbjogJ1JlcG9zaXRvcnkgZGVsZXRlZCcgfSwgNDAzOiB7IGRlc2NyaXB0aW9uOiAncmVnaXN0cnk6d3JpdGUgcmVxdWlyZWQnIH0gfSxcbiAgfSk7XG5cbiAgcmVnaXN0cnkucmVnaXN0ZXJQYXRoKHtcbiAgICBtZXRob2Q6ICdkZWxldGUnLFxuICAgIHBhdGg6ICcvYXBpL2ltYWdlcy97bmFtZX0vbWFuaWZlc3RzL3tyZWZlcmVuY2V9JyxcbiAgICBzdW1tYXJ5OiAnRGVsZXRlIGFuIGltYWdlIG1hbmlmZXN0L3RhZycsXG4gICAgdGFncyxcbiAgICBzZWN1cml0eTogYXV0aCxcbiAgICByZXNwb25zZXM6IHsgMjAwOiB7IGRlc2NyaXB0aW9uOiAnTWFuaWZlc3QgZGVsZXRlZCcgfSwgNDAzOiB7IGRlc2NyaXB0aW9uOiAncmVnaXN0cnk6d3JpdGUgcmVxdWlyZWQnIH0gfSxcbiAgfSk7XG5cbiAgcmVnaXN0cnkucmVnaXN0ZXJQYXRoKHtcbiAgICBtZXRob2Q6ICdnZXQnLFxuICAgIHBhdGg6ICcvYXBpL2FkbWluL3N0b3JhZ2Uve3ByZWZpeH0nLFxuICAgIHN1bW1hcnk6ICdSZWdpc3RyeSBzdG9yYWdlIHJvbGx1cCcsXG4gICAgZGVzY3JpcHRpb246ICdTdG9yYWdlIHVzYWdlIHJvbGx1cCB1bmRlciBhIHByZWZpeCAocmVnaXN0cnk6cmVhZCkuJyxcbiAgICB0YWdzLFxuICAgIHNlY3VyaXR5OiBhdXRoLFxuICAgIHJlc3BvbnNlczogeyAyMDA6IHsgZGVzY3JpcHRpb246ICdTdG9yYWdlIHVzYWdlJyB9LCA0MDM6IHsgZGVzY3JpcHRpb246ICdyZWdpc3RyeTpyZWFkIHJlcXVpcmVkJyB9IH0sXG4gIH0pO1xuXG4gIHJlZ2lzdHJ5LnJlZ2lzdGVyUGF0aCh7XG4gICAgbWV0aG9kOiAncG9zdCcsXG4gICAgcGF0aDogJy9hcGkvYWRtaW4vZ2MnLFxuICAgIHN1bW1hcnk6ICdSdW4gcmVnaXN0cnkgZ2FyYmFnZSBjb2xsZWN0aW9uJyxcbiAgICBkZXNjcmlwdGlvbjogJ1RyaWdnZXIgYmxvYi9tYW5pZmVzdCBnYXJiYWdlIGNvbGxlY3Rpb24gKHJlZ2lzdHJ5OndyaXRlKS4nLFxuICAgIHRhZ3MsXG4gICAgc2VjdXJpdHk6IGF1dGgsXG4gICAgcmVzcG9uc2VzOiB7IDIwMjogeyBkZXNjcmlwdGlvbjogJ0dDIHN0YXJ0ZWQnIH0sIDQwMzogeyBkZXNjcmlwdGlvbjogJ3JlZ2lzdHJ5OndyaXRlIHJlcXVpcmVkJyB9IH0sXG4gIH0pO1xufVxuIl19
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
// Copyright 2026 Pipeline Builder Contributors
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
import { registerAskRoutes } from './ask-routes.js';
|
|
4
|
+
import { registerBillingRoutes } from './billing-routes.js';
|
|
5
|
+
import { registerImageRegistryRoutes } from './image-registry-routes.js';
|
|
6
|
+
import { registerMessageRoutes } from './message-routes.js';
|
|
7
|
+
import { registerPipelineRoutes } from './pipeline-routes.js';
|
|
8
|
+
import { registerPipelineTemplateRoutes } from './pipeline-template-routes.js';
|
|
9
|
+
import { registerPluginRoutes } from './plugin-routes.js';
|
|
10
|
+
import { registerQuotaRoutes } from './quota-routes.js';
|
|
11
|
+
/**
|
|
12
|
+
* Register all OpenAPI route definitions with the shared registry.
|
|
13
|
+
* Call this once during spec generation initialization.
|
|
14
|
+
*/
|
|
15
|
+
export function registerAllRoutes() {
|
|
16
|
+
registerAskRoutes();
|
|
17
|
+
registerBillingRoutes();
|
|
18
|
+
registerImageRegistryRoutes();
|
|
19
|
+
registerMessageRoutes();
|
|
20
|
+
registerPipelineRoutes();
|
|
21
|
+
registerPipelineTemplateRoutes();
|
|
22
|
+
registerPluginRoutes();
|
|
23
|
+
registerQuotaRoutes();
|
|
24
|
+
// NOTE: compliance + reporting (large multi-router surfaces) and platform/auth
|
|
25
|
+
// are not yet registered — follow-on, and intentionally omitted rather than
|
|
26
|
+
// shipping inaccurate paths.
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvb3BlbmFwaS9yb3V0ZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQUV0QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN6RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMvRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUV4RDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsaUJBQWlCO0lBQy9CLGlCQUFpQixFQUFFLENBQUM7SUFDcEIscUJBQXFCLEVBQUUsQ0FBQztJQUN4QiwyQkFBMkIsRUFBRSxDQUFDO0lBQzlCLHFCQUFxQixFQUFFLENBQUM7SUFDeEIsc0JBQXNCLEVBQUUsQ0FBQztJQUN6Qiw4QkFBOEIsRUFBRSxDQUFDO0lBQ2pDLG9CQUFvQixFQUFFLENBQUM7SUFDdkIsbUJBQW1CLEVBQUUsQ0FBQztJQUN0QiwrRUFBK0U7SUFDL0UsNEVBQTRFO0lBQzVFLDZCQUE2QjtBQUMvQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbmltcG9ydCB7IHJlZ2lzdGVyQXNrUm91dGVzIH0gZnJvbSAnLi9hc2stcm91dGVzLmpzJztcbmltcG9ydCB7IHJlZ2lzdGVyQmlsbGluZ1JvdXRlcyB9IGZyb20gJy4vYmlsbGluZy1yb3V0ZXMuanMnO1xuaW1wb3J0IHsgcmVnaXN0ZXJJbWFnZVJlZ2lzdHJ5Um91dGVzIH0gZnJvbSAnLi9pbWFnZS1yZWdpc3RyeS1yb3V0ZXMuanMnO1xuaW1wb3J0IHsgcmVnaXN0ZXJNZXNzYWdlUm91dGVzIH0gZnJvbSAnLi9tZXNzYWdlLXJvdXRlcy5qcyc7XG5pbXBvcnQgeyByZWdpc3RlclBpcGVsaW5lUm91dGVzIH0gZnJvbSAnLi9waXBlbGluZS1yb3V0ZXMuanMnO1xuaW1wb3J0IHsgcmVnaXN0ZXJQaXBlbGluZVRlbXBsYXRlUm91dGVzIH0gZnJvbSAnLi9waXBlbGluZS10ZW1wbGF0ZS1yb3V0ZXMuanMnO1xuaW1wb3J0IHsgcmVnaXN0ZXJQbHVnaW5Sb3V0ZXMgfSBmcm9tICcuL3BsdWdpbi1yb3V0ZXMuanMnO1xuaW1wb3J0IHsgcmVnaXN0ZXJRdW90YVJvdXRlcyB9IGZyb20gJy4vcXVvdGEtcm91dGVzLmpzJztcblxuLyoqXG4gKiBSZWdpc3RlciBhbGwgT3BlbkFQSSByb3V0ZSBkZWZpbml0aW9ucyB3aXRoIHRoZSBzaGFyZWQgcmVnaXN0cnkuXG4gKiBDYWxsIHRoaXMgb25jZSBkdXJpbmcgc3BlYyBnZW5lcmF0aW9uIGluaXRpYWxpemF0aW9uLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVnaXN0ZXJBbGxSb3V0ZXMoKTogdm9pZCB7XG4gIHJlZ2lzdGVyQXNrUm91dGVzKCk7XG4gIHJlZ2lzdGVyQmlsbGluZ1JvdXRlcygpO1xuICByZWdpc3RlckltYWdlUmVnaXN0cnlSb3V0ZXMoKTtcbiAgcmVnaXN0ZXJNZXNzYWdlUm91dGVzKCk7XG4gIHJlZ2lzdGVyUGlwZWxpbmVSb3V0ZXMoKTtcbiAgcmVnaXN0ZXJQaXBlbGluZVRlbXBsYXRlUm91dGVzKCk7XG4gIHJlZ2lzdGVyUGx1Z2luUm91dGVzKCk7XG4gIHJlZ2lzdGVyUXVvdGFSb3V0ZXMoKTtcbiAgLy8gTk9URTogY29tcGxpYW5jZSArIHJlcG9ydGluZyAobGFyZ2UgbXVsdGktcm91dGVyIHN1cmZhY2VzKSBhbmQgcGxhdGZvcm0vYXV0aFxuICAvLyBhcmUgbm90IHlldCByZWdpc3RlcmVkIOKAlCBmb2xsb3ctb24sIGFuZCBpbnRlbnRpb25hbGx5IG9taXR0ZWQgcmF0aGVyIHRoYW5cbiAgLy8gc2hpcHBpbmcgaW5hY2N1cmF0ZSBwYXRocy5cbn1cbiJdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function registerMessageRoutes(): void;
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
// Copyright 2026 Pipeline Builder Contributors
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
import { registry } from '../registry.js';
|
|
4
|
+
const tags = ['Messages'];
|
|
5
|
+
const auth = [{ bearerAuth: [] }];
|
|
6
|
+
export function registerMessageRoutes() {
|
|
7
|
+
registry.registerPath({
|
|
8
|
+
method: 'get',
|
|
9
|
+
path: '/messages',
|
|
10
|
+
summary: 'List inbox messages',
|
|
11
|
+
description: 'List root messages (inbox) with optional filtering by type and pagination.',
|
|
12
|
+
tags,
|
|
13
|
+
security: auth,
|
|
14
|
+
responses: { 200: { description: 'Paginated list of messages' } },
|
|
15
|
+
});
|
|
16
|
+
registry.registerPath({
|
|
17
|
+
method: 'get',
|
|
18
|
+
path: '/messages/announcements',
|
|
19
|
+
summary: 'List announcements',
|
|
20
|
+
description: 'List announcement messages only.',
|
|
21
|
+
tags,
|
|
22
|
+
security: auth,
|
|
23
|
+
responses: { 200: { description: 'List of announcements' } },
|
|
24
|
+
});
|
|
25
|
+
registry.registerPath({
|
|
26
|
+
method: 'get',
|
|
27
|
+
path: '/messages/conversations',
|
|
28
|
+
summary: 'List conversations',
|
|
29
|
+
description: 'List conversation messages only.',
|
|
30
|
+
tags,
|
|
31
|
+
security: auth,
|
|
32
|
+
responses: { 200: { description: 'List of conversations' } },
|
|
33
|
+
});
|
|
34
|
+
registry.registerPath({
|
|
35
|
+
method: 'get',
|
|
36
|
+
path: '/messages/unread/count',
|
|
37
|
+
summary: 'Get unread count',
|
|
38
|
+
description: 'Get the number of unread messages for the current organization.',
|
|
39
|
+
tags,
|
|
40
|
+
security: auth,
|
|
41
|
+
responses: { 200: { description: 'Unread message count' } },
|
|
42
|
+
});
|
|
43
|
+
registry.registerPath({
|
|
44
|
+
method: 'get',
|
|
45
|
+
path: '/messages/{id}',
|
|
46
|
+
summary: 'Get message by ID',
|
|
47
|
+
tags,
|
|
48
|
+
security: auth,
|
|
49
|
+
responses: { 200: { description: 'Message details' }, 404: { description: 'Not found' } },
|
|
50
|
+
});
|
|
51
|
+
registry.registerPath({
|
|
52
|
+
method: 'get',
|
|
53
|
+
path: '/messages/{id}/thread',
|
|
54
|
+
summary: 'Get message thread',
|
|
55
|
+
description: 'Get all messages in a thread including the root message and replies.',
|
|
56
|
+
tags,
|
|
57
|
+
security: auth,
|
|
58
|
+
responses: { 200: { description: 'Thread messages sorted by date' } },
|
|
59
|
+
});
|
|
60
|
+
registry.registerPath({
|
|
61
|
+
method: 'post',
|
|
62
|
+
path: '/messages',
|
|
63
|
+
summary: 'Create a message',
|
|
64
|
+
description: 'Create a new announcement or conversation message.',
|
|
65
|
+
tags,
|
|
66
|
+
security: auth,
|
|
67
|
+
responses: { 201: { description: 'Message created' }, 400: { description: 'Validation error' } },
|
|
68
|
+
});
|
|
69
|
+
registry.registerPath({
|
|
70
|
+
method: 'post',
|
|
71
|
+
path: '/messages/{id}/reply',
|
|
72
|
+
summary: 'Reply to a message',
|
|
73
|
+
description: 'Create a reply in an existing message thread.',
|
|
74
|
+
tags,
|
|
75
|
+
security: auth,
|
|
76
|
+
responses: { 201: { description: 'Reply created' }, 404: { description: 'Parent message not found' } },
|
|
77
|
+
});
|
|
78
|
+
registry.registerPath({
|
|
79
|
+
method: 'put',
|
|
80
|
+
path: '/messages/{id}/read',
|
|
81
|
+
summary: 'Mark message as read',
|
|
82
|
+
tags,
|
|
83
|
+
security: auth,
|
|
84
|
+
responses: { 200: { description: 'Message marked as read' } },
|
|
85
|
+
});
|
|
86
|
+
registry.registerPath({
|
|
87
|
+
method: 'put',
|
|
88
|
+
path: '/messages/{id}/thread/read',
|
|
89
|
+
summary: 'Mark thread as read',
|
|
90
|
+
description: 'Mark all messages in a thread as read.',
|
|
91
|
+
tags,
|
|
92
|
+
security: auth,
|
|
93
|
+
responses: { 200: { description: 'Thread marked as read' } },
|
|
94
|
+
});
|
|
95
|
+
registry.registerPath({
|
|
96
|
+
method: 'delete',
|
|
97
|
+
path: '/messages/{id}',
|
|
98
|
+
summary: 'Delete a message',
|
|
99
|
+
description: 'Soft-delete a message.',
|
|
100
|
+
tags,
|
|
101
|
+
security: auth,
|
|
102
|
+
responses: { 200: { description: 'Message deleted' }, 404: { description: 'Not found' } },
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS1yb3V0ZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvb3BlbmFwaS9yb3V0ZXMvbWVzc2FnZS1yb3V0ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQUV0QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFMUMsTUFBTSxJQUFJLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUMxQixNQUFNLElBQUksR0FBRyxDQUFDLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFFbEMsTUFBTSxVQUFVLHFCQUFxQjtJQUNuQyxRQUFRLENBQUMsWUFBWSxDQUFDO1FBQ3BCLE1BQU0sRUFBRSxLQUFLO1FBQ2IsSUFBSSxFQUFFLFdBQVc7UUFDakIsT0FBTyxFQUFFLHFCQUFxQjtRQUM5QixXQUFXLEVBQUUsNEVBQTRFO1FBQ3pGLElBQUk7UUFDSixRQUFRLEVBQUUsSUFBSTtRQUNkLFNBQVMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLFdBQVcsRUFBRSw0QkFBNEIsRUFBRSxFQUFFO0tBQ2xFLENBQUMsQ0FBQztJQUVILFFBQVEsQ0FBQyxZQUFZLENBQUM7UUFDcEIsTUFBTSxFQUFFLEtBQUs7UUFDYixJQUFJLEVBQUUseUJBQXlCO1FBQy9CLE9BQU8sRUFBRSxvQkFBb0I7UUFDN0IsV0FBVyxFQUFFLGtDQUFrQztRQUMvQyxJQUFJO1FBQ0osUUFBUSxFQUFFLElBQUk7UUFDZCxTQUFTLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxXQUFXLEVBQUUsdUJBQXVCLEVBQUUsRUFBRTtLQUM3RCxDQUFDLENBQUM7SUFFSCxRQUFRLENBQUMsWUFBWSxDQUFDO1FBQ3BCLE1BQU0sRUFBRSxLQUFLO1FBQ2IsSUFBSSxFQUFFLHlCQUF5QjtRQUMvQixPQUFPLEVBQUUsb0JBQW9CO1FBQzdCLFdBQVcsRUFBRSxrQ0FBa0M7UUFDL0MsSUFB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QWdCO1FBQ3RCLE9BQU8sRUFBRSxrQkFBa0I7UUFDM0IsV0FBVyxFQUFFLHdCQUF3QjtRQUNyQyxJQUFJO1FBQ0osUUFBUSxFQUFFLElBQUk7UUFDZCxTQUFTLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLEVBQUU7S0FDMUYsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG5pbXBvcnQgeyByZWdpc3RyeSB9IGZyb20gJy4uL3JlZ2lzdHJ5LmpzJztcblxuY29uc3QgdGFncyA9IFsnTWVzc2FnZXMnXTtcbmNvbnN0IGF1dGggPSBbeyBiZWFyZXJBdXRoOiBbXSB9XTtcblxuZXhwb3J0IGZ1bmN0aW9uIHJlZ2lzdGVyTWVzc2FnZVJvdXRlcygpOiB2b2lkIHtcbiAgcmVnaXN0cnkucmVnaXN0ZXJQYXRoKHtcbiAgICBtZXRob2Q6ICdnZXQnLFxuICAgIHBhdGg6ICcvbWVzc2FnZXMnLFxuICAgIHN1bW1hcnk6ICdMaXN0IGluYm94IG1lc3NhZ2VzJyxcbiAgICBkZXNjcmlwdGlvbjogJ0xpc3Qgcm9vdCBtZXNzYWdlcyAoaW5ib3gpIHdpdGggb3B0aW9uYWwgZmlsdGVyaW5nIGJ5IHR5cGUgYW5kIHBhZ2luYXRpb24uJyxcbiAgICB0YWdzLFxuICAgIHNlY3VyaXR5OiBhdXRoLFxuICAgIHJlc3BvbnNlczogeyAyMDA6IHsgZGVzY3JpcHRpb246ICdQYWdpbmF0ZWQgbGlzdCBvZiBtZXNzYWdlcycgfSB9LFxuICB9KTtcblxuICByZWdpc3RyeS5yZWdpc3RlclBhdGgoe1xuICAgIG1ldGhvZDogJ2dldCcsXG4gICAgcGF0aDogJy9tZXNzYWdlcy9hbm5vdW5jZW1lbnRzJyxcbiAgICBzdW1tYXJ5OiAnTGlzdCBhbm5vdW5jZW1lbnRzJyxcbiAgICBkZXNjcmlwdGlvbjogJ0xpc3QgYW5ub3VuY2VtZW50IG1lc3NhZ2VzIG9ubHkuJyxcbiAgICB0YWdzLFxuICAgIHNlY3VyaXR5OiBhdXRoLFxuICAgIHJlc3BvbnNlczogeyAyMDA6IHsgZGVzY3JpcHRpb246ICdMaXN0IG9mIGFubm91bmNlbWVudHMnIH0gfSxcbiAgfSk7XG5cbiAgcmVnaXN0cnkucmVnaXN0ZXJQYXRoKHtcbiAgICBtZXRob2Q6ICdnZXQnLFxuICAgIHBhdGg6ICcvbWVzc2FnZXMvY29udmVyc2F0aW9ucycsXG4gICAgc3VtbWFyeTogJ0xpc3QgY29udmVyc2F0aW9ucycsXG4gICAgZGVzY3JpcHRpb246ICdMaXN0IGNvbnZlcnNhdGlvbiBtZXNzYWdlcyBvbmx5LicsXG4gICAgdGFncyxcbiAgICBzZWN1cml0eTogYXV0aCxcbiAgICByZXNwb25zZXM6IHsgMjAwOiB7IGRlc2NyaXB0aW9uOiAnTGlzdCBvZiBjb252ZXJzYXRpb25zJyB9IH0sXG4gIH0pO1xuXG4gIHJlZ2lzdHJ5LnJlZ2lzdGVyUGF0aCh7XG4gICAgbWV0aG9kOiAnZ2V0JyxcbiAgICBwYXRoOiAnL21lc3NhZ2VzL3VucmVhZC9jb3VudCcsXG4gICAgc3VtbWFyeTogJ0dldCB1bnJlYWQgY291bnQnLFxuICAgIGRlc2NyaXB0aW9uOiAnR2V0IHRoZSBudW1iZXIgb2YgdW5yZWFkIG1lc3NhZ2VzIGZvciB0aGUgY3VycmVudCBvcmdhbml6YXRpb24uJyxcbiAgICB0YWdzLFxuICAgIHNlY3VyaXR5OiBhdXRoLFxuICAgIHJlc3BvbnNlczogeyAyMDA6IHsgZGVzY3JpcHRpb246ICdVbnJlYWQgbWVzc2FnZSBjb3VudCcgfSB9LFxuICB9KTtcblxuICByZWdpc3RyeS5yZWdpc3RlclBhdGgoe1xuICAgIG1ldGhvZDogJ2dldCcsXG4gICAgcGF0aDogJy9tZXNzYWdlcy97aWR9JyxcbiAgICBzdW1tYXJ5OiAnR2V0IG1lc3NhZ2UgYnkgSUQnLFxuICAgIHRhZ3MsXG4gICAgc2VjdXJpdHk6IGF1dGgsXG4gICAgcmVzcG9uc2VzOiB7IDIwMDogeyBkZXNjcmlwdGlvbjogJ01lc3NhZ2UgZGV0YWlscycgfSwgNDA0OiB7IGRlc2NyaXB0aW9uOiAnTm90IGZvdW5kJyB9IH0sXG4gIH0pO1xuXG4gIHJlZ2lzdHJ5LnJlZ2lzdGVyUGF0aCh7XG4gICAgbWV0aG9kOiAnZ2V0JyxcbiAgICBwYXRoOiAnL21lc3NhZ2VzL3tpZH0vdGhyZWFkJyxcbiAgICBzdW1tYXJ5OiAnR2V0IG1lc3NhZ2UgdGhyZWFkJyxcbiAgICBkZXNjcmlwdGlvbjogJ0dldCBhbGwgbWVzc2FnZXMgaW4gYSB0aHJlYWQgaW5jbHVkaW5nIHRoZSByb290IG1lc3NhZ2UgYW5kIHJlcGxpZXMuJyxcbiAgICB0YWdzLFxuICAgIHNlY3VyaXR5OiBhdXRoLFxuICAgIHJlc3BvbnNlczogeyAyMDA6IHsgZGVzY3JpcHRpb246ICdUaHJlYWQgbWVzc2FnZXMgc29ydGVkIGJ5IGRhdGUnIH0gfSxcbiAgfSk7XG5cbiAgcmVnaXN0cnkucmVnaXN0ZXJQYXRoKHtcbiAgICBtZXRob2Q6ICdwb3N0JyxcbiAgICBwYXRoOiAnL21lc3NhZ2VzJyxcbiAgICBzdW1tYXJ5OiAnQ3JlYXRlIGEgbWVzc2FnZScsXG4gICAgZGVzY3JpcHRpb246ICdDcmVhdGUgYSBuZXcgYW5ub3VuY2VtZW50IG9yIGNvbnZlcnNhdGlvbiBtZXNzYWdlLicsXG4gICAgdGFncyxcbiAgICBzZWN1cml0eTogYXV0aCxcbiAgICByZXNwb25zZXM6IHsgMjAxOiB7IGRlc2NyaXB0aW9uOiAnTWVzc2FnZSBjcmVhdGVkJyB9LCA0MDA6IHsgZGVzY3JpcHRpb246ICdWYWxpZGF0aW9uIGVycm9yJyB9IH0sXG4gIH0pO1xuXG4gIHJlZ2lzdHJ5LnJlZ2lzdGVyUGF0aCh7XG4gICAgbWV0aG9kOiAncG9zdCcsXG4gICAgcGF0aDogJy9tZXNzYWdlcy97aWR9L3JlcGx5JyxcbiAgICBzdW1tYXJ5OiAnUmVwbHkgdG8gYSBtZXNzYWdlJyxcbiAgICBkZXNjcmlwdGlvbjogJ0NyZWF0ZSBhIHJlcGx5IGluIGFuIGV4aXN0aW5nIG1lc3NhZ2UgdGhyZWFkLicsXG4gICAgdGFncyxcbiAgICBzZWN1cml0eTogYXV0aCxcbiAgICByZXNwb25zZXM6IHsgMjAxOiB7IGRlc2NyaXB0aW9uOiAnUmVwbHkgY3JlYXRlZCcgfSwgNDA0OiB7IGRlc2NyaXB0aW9uOiAnUGFyZW50IG1lc3NhZ2Ugbm90IGZvdW5kJyB9IH0sXG4gIH0pO1xuXG4gIHJlZ2lzdHJ5LnJlZ2lzdGVyUGF0aCh7XG4gICAgbWV0aG9kOiAncHV0JyxcbiAgICBwYXRoOiAnL21lc3NhZ2VzL3tpZH0vcmVhZCcsXG4gICAgc3VtbWFyeTogJ01hcmsgbWVzc2FnZSBhcyByZWFkJyxcbiAgICB0YWdzLFxuICAgIHNlY3VyaXR5OiBhdXRoLFxuICAgIHJlc3BvbnNlczogeyAyMDA6IHsgZGVzY3JpcHRpb246ICdNZXNzYWdlIG1hcmtlZCBhcyByZWFkJyB9IH0sXG4gIH0pO1xuXG4gIHJlZ2lzdHJ5LnJlZ2lzdGVyUGF0aCh7XG4gICAgbWV0aG9kOiAncHV0JyxcbiAgICBwYXRoOiAnL21lc3NhZ2VzL3tpZH0vdGhyZWFkL3JlYWQnLFxuICAgIHN1bW1hcnk6ICdNYXJrIHRocmVhZCBhcyByZWFkJyxcbiAgICBkZXNjcmlwdGlvbjogJ01hcmsgYWxsIG1lc3NhZ2VzIGluIGEgdGhyZWFkIGFzIHJlYWQuJyxcbiAgICB0YWdzLFxuICAgIHNlY3VyaXR5OiBhdXRoLFxuICAgIHJlc3BvbnNlczogeyAyMDA6IHsgZGVzY3JpcHRpb246ICdUaHJlYWQgbWFya2VkIGFzIHJlYWQnIH0gfSxcbiAgfSk7XG5cbiAgcmVnaXN0cnkucmVnaXN0ZXJQYXRoKHtcbiAgICBtZXRob2Q6ICdkZWxldGUnLFxuICAgIHBhdGg6ICcvbWVzc2FnZXMve2lkfScsXG4gICAgc3VtbWFyeTogJ0RlbGV0ZSBhIG1lc3NhZ2UnLFxuICAgIGRlc2NyaXB0aW9uOiAnU29mdC1kZWxldGUgYSBtZXNzYWdlLicsXG4gICAgdGFncyxcbiAgICBzZWN1cml0eTogYXV0aCxcbiAgICByZXNwb25zZXM6IHsgMjAwOiB7IGRlc2NyaXB0aW9uOiAnTWVzc2FnZSBkZWxldGVkJyB9LCA0MDQ6IHsgZGVzY3JpcHRpb246ICdOb3QgZm91bmQnIH0gfSxcbiAgfSk7XG59XG4iXX0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function registerPipelineRoutes(): void;
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
// Copyright 2026 Pipeline Builder Contributors
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
import { registry } from '../registry.js';
|
|
4
|
+
const tags = ['Pipelines'];
|
|
5
|
+
const auth = [{ bearerAuth: [] }];
|
|
6
|
+
export function registerPipelineRoutes() {
|
|
7
|
+
registry.registerPath({
|
|
8
|
+
method: 'get',
|
|
9
|
+
path: '/pipelines',
|
|
10
|
+
summary: 'List pipelines',
|
|
11
|
+
description: 'List pipelines with pagination, filtering, and sorting.',
|
|
12
|
+
tags,
|
|
13
|
+
security: auth,
|
|
14
|
+
responses: { 200: { description: 'Paginated list of pipelines' }, 401: { description: 'Unauthorized' } },
|
|
15
|
+
});
|
|
16
|
+
registry.registerPath({
|
|
17
|
+
method: 'get',
|
|
18
|
+
path: '/pipelines/find',
|
|
19
|
+
summary: 'Find a single pipeline',
|
|
20
|
+
description: 'Find a single pipeline matching the query filters.',
|
|
21
|
+
tags,
|
|
22
|
+
security: auth,
|
|
23
|
+
responses: { 200: { description: 'Pipeline found' }, 404: { description: 'Not found' } },
|
|
24
|
+
});
|
|
25
|
+
registry.registerPath({
|
|
26
|
+
method: 'get',
|
|
27
|
+
path: '/pipelines/{id}',
|
|
28
|
+
summary: 'Get pipeline by ID',
|
|
29
|
+
tags,
|
|
30
|
+
security: auth,
|
|
31
|
+
responses: { 200: { description: 'Pipeline details' }, 404: { description: 'Not found' } },
|
|
32
|
+
});
|
|
33
|
+
registry.registerPath({
|
|
34
|
+
method: 'get',
|
|
35
|
+
path: '/pipelines/{id}/scorecard',
|
|
36
|
+
summary: 'Get a pipeline maturity scorecard',
|
|
37
|
+
description: 'Per-pipeline maturity scorecard blending compliance posture with DORA performance bands into a 0–100 score and letter grade. Requires the `advanced_reporting` feature.',
|
|
38
|
+
tags,
|
|
39
|
+
security: auth,
|
|
40
|
+
responses: { 200: { description: 'Scorecard' }, 403: { description: 'Feature not enabled' }, 404: { description: 'Not found' } },
|
|
41
|
+
});
|
|
42
|
+
registry.registerPath({
|
|
43
|
+
method: 'get',
|
|
44
|
+
path: '/pipelines/scorecard',
|
|
45
|
+
summary: 'Org-wide scorecard roll-up (software-health leaderboard)',
|
|
46
|
+
description: 'Grades every pipeline in the organization and returns a ranked leaderboard plus aggregate stats (pipeline count, average score, grade distribution). Bounded per request. Requires the `advanced_reporting` feature.',
|
|
47
|
+
tags,
|
|
48
|
+
security: auth,
|
|
49
|
+
responses: { 200: { description: 'Org-wide scorecard roll-up' }, 403: { description: 'Feature not enabled' } },
|
|
50
|
+
});
|
|
51
|
+
registry.registerPath({
|
|
52
|
+
method: 'post',
|
|
53
|
+
path: '/pipelines',
|
|
54
|
+
summary: 'Create a pipeline',
|
|
55
|
+
description: 'Create a new pipeline configuration. Checks pipeline quota.',
|
|
56
|
+
tags,
|
|
57
|
+
security: auth,
|
|
58
|
+
responses: { 201: { description: 'Pipeline created' }, 400: { description: 'Validation error' }, 429: { description: 'Quota exceeded' } },
|
|
59
|
+
});
|
|
60
|
+
registry.registerPath({
|
|
61
|
+
method: 'put',
|
|
62
|
+
path: '/pipelines/{id}',
|
|
63
|
+
summary: 'Update a pipeline',
|
|
64
|
+
tags,
|
|
65
|
+
security: auth,
|
|
66
|
+
responses: { 200: { description: 'Pipeline updated' }, 404: { description: 'Not found' } },
|
|
67
|
+
});
|
|
68
|
+
registry.registerPath({
|
|
69
|
+
method: 'delete',
|
|
70
|
+
path: '/pipelines/{id}',
|
|
71
|
+
summary: 'Delete a pipeline',
|
|
72
|
+
description: 'Soft-delete a pipeline by setting isActive to false.',
|
|
73
|
+
tags,
|
|
74
|
+
security: auth,
|
|
75
|
+
responses: { 200: { description: 'Pipeline deleted' }, 404: { description: 'Not found' } },
|
|
76
|
+
});
|
|
77
|
+
registry.registerPath({
|
|
78
|
+
method: 'get',
|
|
79
|
+
path: '/pipelines/providers',
|
|
80
|
+
summary: 'List AI providers',
|
|
81
|
+
description: 'List AI providers configured for pipeline generation.',
|
|
82
|
+
tags,
|
|
83
|
+
security: auth,
|
|
84
|
+
responses: { 200: { description: 'List of available AI providers with models' } },
|
|
85
|
+
});
|
|
86
|
+
registry.registerPath({
|
|
87
|
+
method: 'post',
|
|
88
|
+
path: '/pipelines/generate',
|
|
89
|
+
summary: 'Generate pipeline via AI',
|
|
90
|
+
description: 'Generate a BuilderProps configuration from a natural language prompt. Returns the complete result when done.',
|
|
91
|
+
tags,
|
|
92
|
+
security: auth,
|
|
93
|
+
responses: { 200: { description: 'Generated pipeline configuration' }, 400: { description: 'Validation error' } },
|
|
94
|
+
});
|
|
95
|
+
registry.registerPath({
|
|
96
|
+
method: 'post',
|
|
97
|
+
path: '/pipelines/generate/stream',
|
|
98
|
+
summary: 'Stream pipeline generation via AI',
|
|
99
|
+
description: 'Generate a BuilderProps configuration from a natural language prompt. Streams partial results as SSE events.',
|
|
100
|
+
tags,
|
|
101
|
+
security: auth,
|
|
102
|
+
responses: { 200: { description: 'SSE event stream of partial pipeline objects' }, 400: { description: 'Validation error' } },
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZWxpbmUtcm91dGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL29wZW5hcGkvcm91dGVzL3BpcGVsaW5lLXJvdXRlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDO0FBRXRDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUxQyxNQUFNLElBQUksR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBQzNCLE1BQU0sSUFBSSxHQUFHLENBQUMsRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUVsQyxNQUFNLFVBQVUsc0JBQXNCO0lBQ3BDLFFBQVEsQ0FBQyxZQUFZLENBQUM7UUFDcEIsTUFBTSxFQUFFLEtBQUs7UUFDYixJQUFJLEVBQUUsWUFBWTtRQUNsQixPQUFPLEVBQUUsZ0JBQWdCO1FBQ3pCLFdBQVcsRUFBRSx5REFBeUQ7UUFDdEUsSUFBSTtRQUNKLFFBQVEsRUFBRSxJQUFJO1FBQ2QsU0FBUyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsV0FBVyxFQUFFLDZCQUE2QixFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxFQUFFO0tBQ3pHLENBQUMsQ0FBQztJQUVILFFBQVEsQ0FBQyxZQUFZLENBQUM7UUFDcEIsTUFBTSxFQUFFLEtBQUs7UUFDYixJQUFJLEVBQUUsaUJBQWlCO1FBQ3ZCLE9BQU8sRUFBRSx3QkFBd0I7UUFDakMsV0FBVyxFQUFFLG9EQUFvRDtRQUNqRSxJQUFJO1FBQ0osUUFBUSxFQUFFLElBQUk7UUFDZCxTQUFTLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLEVBQUU7S0FDekYsQ0FBQyxDQUFDO0lBRUgsUUFBUSxDQUFDLFlBQVksQ0FBQztRQUNwQixNQUFNLEVBQUUs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QUVILFFBQVEsQ0FBQyxZQUFZLENBQUM7UUFDcEIsTUFBTSxFQUFFLE1BQU07UUFDZCxJQUFJLEVBQUUscUJBQXFCO1FBQzNCLE9BQU8sRUFBRSwwQkFBMEI7UUFDbkMsV0FBVyxFQUFFLDhHQUE4RztRQUMzSCxJQUFJO1FBQ0osUUFBUSxFQUFFLElBQUk7UUFDZCxTQUFTLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxXQUFXLEVBQUUsa0NBQWtDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxXQUFXLEVBQUUsa0JBQWtCLEVBQUUsRUFBRTtLQUNsSCxDQUFDLENBQUM7SUFFSCxRQUFRLENBQUMsWUFBWSxDQUFDO1FBQ3BCLE1BQU0sRUFBRSxNQUFNO1FBQ2QsSUFBSSxFQUFFLDRCQUE0QjtRQUNsQyxPQUFPLEVBQUUsbUNBQW1DO1FBQzVDLFdBQVcsRUFBRSw4R0FBOEc7UUFDM0gsSUFBSTtRQUNKLFFBQVEsRUFBRSxJQUFJO1FBQ2QsU0FBUyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsV0FBVyxFQUFFLDhDQUE4QyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsV0FBVyxFQUFFLGtCQUFrQixFQUFFLEVBQUU7S0FDOUgsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG5pbXBvcnQgeyByZWdpc3RyeSB9IGZyb20gJy4uL3JlZ2lzdHJ5LmpzJztcblxuY29uc3QgdGFncyA9IFsnUGlwZWxpbmVzJ107XG5jb25zdCBhdXRoID0gW3sgYmVhcmVyQXV0aDogW10gfV07XG5cbmV4cG9ydCBmdW5jdGlvbiByZWdpc3RlclBpcGVsaW5lUm91dGVzKCk6IHZvaWQge1xuICByZWdpc3RyeS5yZWdpc3RlclBhdGgoe1xuICAgIG1ldGhvZDogJ2dldCcsXG4gICAgcGF0aDogJy9waXBlbGluZXMnLFxuICAgIHN1bW1hcnk6ICdMaXN0IHBpcGVsaW5lcycsXG4gICAgZGVzY3JpcHRpb246ICdMaXN0IHBpcGVsaW5lcyB3aXRoIHBhZ2luYXRpb24sIGZpbHRlcmluZywgYW5kIHNvcnRpbmcuJyxcbiAgICB0YWdzLFxuICAgIHNlY3VyaXR5OiBhdXRoLFxuICAgIHJlc3BvbnNlczogeyAyMDA6IHsgZGVzY3JpcHRpb246ICdQYWdpbmF0ZWQgbGlzdCBvZiBwaXBlbGluZXMnIH0sIDQwMTogeyBkZXNjcmlwdGlvbjogJ1VuYXV0aG9yaXplZCcgfSB9LFxuICB9KTtcblxuICByZWdpc3RyeS5yZWdpc3RlclBhdGgoe1xuICAgIG1ldGhvZDogJ2dldCcsXG4gICAgcGF0aDogJy9waXBlbGluZXMvZmluZCcsXG4gICAgc3VtbWFyeTogJ0ZpbmQgYSBzaW5nbGUgcGlwZWxpbmUnLFxuICAgIGRlc2NyaXB0aW9uOiAnRmluZCBhIHNpbmdsZSBwaXBlbGluZSBtYXRjaGluZyB0aGUgcXVlcnkgZmlsdGVycy4nLFxuICAgIHRhZ3MsXG4gICAgc2VjdXJpdHk6IGF1dGgsXG4gICAgcmVzcG9uc2VzOiB7IDIwMDogeyBkZXNjcmlwdGlvbjogJ1BpcGVsaW5lIGZvdW5kJyB9LCA0MDQ6IHsgZGVzY3JpcHRpb246ICdOb3QgZm91bmQnIH0gfSxcbiAgfSk7XG5cbiAgcmVnaXN0cnkucmVnaXN0ZXJQYXRoKHtcbiAgICBtZXRob2Q6ICdnZXQnLFxuICAgIHBhdGg6ICcvcGlwZWxpbmVzL3tpZH0nLFxuICAgIHN1bW1hcnk6ICdHZXQgcGlwZWxpbmUgYnkgSUQnLFxuICAgIHRhZ3MsXG4gICAgc2VjdXJpdHk6IGF1dGgsXG4gICAgcmVzcG9uc2VzOiB7IDIwMDogeyBkZXNjcmlwdGlvbjogJ1BpcGVsaW5lIGRldGFpbHMnIH0sIDQwNDogeyBkZXNjcmlwdGlvbjogJ05vdCBmb3VuZCcgfSB9LFxuICB9KTtcblxuICByZWdpc3RyeS5yZWdpc3RlclBhdGgoe1xuICAgIG1ldGhvZDogJ2dldCcsXG4gICAgcGF0aDogJy9waXBlbGluZXMve2lkfS9zY29yZWNhcmQnLFxuICAgIHN1bW1hcnk6ICdHZXQgYSBwaXBlbGluZSBtYXR1cml0eSBzY29yZWNhcmQnLFxuICAgIGRlc2NyaXB0aW9uOiAnUGVyLXBpcGVsaW5lIG1hdHVyaXR5IHNjb3JlY2FyZCBibGVuZGluZyBjb21wbGlhbmNlIHBvc3R1cmUgd2l0aCBET1JBIHBlcmZvcm1hbmNlIGJhbmRzIGludG8gYSAw4oCTMTAwIHNjb3JlIGFuZCBsZXR0ZXIgZ3JhZGUuIFJlcXVpcmVzIHRoZSBgYWR2YW5jZWRfcmVwb3J0aW5nYCBmZWF0dXJlLicsXG4gICAgdGFncyxcbiAgICBzZWN1cml0eTogYXV0aCxcbiAgICByZXNwb25zZXM6IHsgMjAwOiB7IGRlc2NyaXB0aW9uOiAnU2NvcmVjYXJkJyB9LCA0MDM6IHsgZGVzY3JpcHRpb246ICdGZWF0dXJlIG5vdCBlbmFibGVkJyB9LCA0MDQ6IHsgZGVzY3JpcHRpb246ICdOb3QgZm91bmQnIH0gfSxcbiAgfSk7XG5cbiAgcmVnaXN0cnkucmVnaXN0ZXJQYXRoKHtcbiAgICBtZXRob2Q6ICdnZXQnLFxuICAgIHBhdGg6ICcvcGlwZWxpbmVzL3Njb3JlY2FyZCcsXG4gICAgc3VtbWFyeTogJ09yZy13aWRlIHNjb3JlY2FyZCByb2xsLXVwIChzb2Z0d2FyZS1oZWFsdGggbGVhZGVyYm9hcmQpJyxcbiAgICBkZXNjcmlwdGlvbjogJ0dyYWRlcyBldmVyeSBwaXBlbGluZSBpbiB0aGUgb3JnYW5pemF0aW9uIGFuZCByZXR1cm5zIGEgcmFua2VkIGxlYWRlcmJvYXJkIHBsdXMgYWdncmVnYXRlIHN0YXRzIChwaXBlbGluZSBjb3VudCwgYXZlcmFnZSBzY29yZSwgZ3JhZGUgZGlzdHJpYnV0aW9uKS4gQm91bmRlZCBwZXIgcmVxdWVzdC4gUmVxdWlyZXMgdGhlIGBhZHZhbmNlZF9yZXBvcnRpbmdgIGZlYXR1cmUuJyxcbiAgICB0YWdzLFxuICAgIHNlY3VyaXR5OiBhdXRoLFxuICAgIHJlc3BvbnNlczogeyAyMDA6IHsgZGVzY3JpcHRpb246ICdPcmctd2lkZSBzY29yZWNhcmQgcm9sbC11cCcgfSwgNDAzOiB7IGRlc2NyaXB0aW9uOiAnRmVhdHVyZSBub3QgZW5hYmxlZCcgfSB9LFxuICB9KTtcblxuICByZWdpc3RyeS5yZWdpc3RlclBhdGgoe1xuICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgIHBhdGg6ICcvcGlwZWxpbmVzJyxcbiAgICBzdW1tYXJ5OiAnQ3JlYXRlIGEgcGlwZWxpbmUnLFxuICAgIGRlc2NyaXB0aW9uOiAnQ3JlYXRlIGEgbmV3IHBpcGVsaW5lIGNvbmZpZ3VyYXRpb24uIENoZWNrcyBwaXBlbGluZSBxdW90YS4nLFxuICAgIHRhZ3MsXG4gICAgc2VjdXJpdHk6IGF1dGgsXG4gICAgcmVzcG9uc2VzOiB7IDIwMTogeyBkZXNjcmlwdGlvbjogJ1BpcGVsaW5lIGNyZWF0ZWQnIH0sIDQwMDogeyBkZXNjcmlwdGlvbjogJ1ZhbGlkYXRpb24gZXJyb3InIH0sIDQyOTogeyBkZXNjcmlwdGlvbjogJ1F1b3RhIGV4Y2VlZGVkJyB9IH0sXG4gIH0pO1xuXG4gIHJlZ2lzdHJ5LnJlZ2lzdGVyUGF0aCh7XG4gICAgbWV0aG9kOiAncHV0JyxcbiAgICBwYXRoOiAnL3BpcGVsaW5lcy97aWR9JyxcbiAgICBzdW1tYXJ5OiAnVXBkYXRlIGEgcGlwZWxpbmUnLFxuICAgIHRhZ3MsXG4gICAgc2VjdXJpdHk6IGF1dGgsXG4gICAgcmVzcG9uc2VzOiB7IDIwMDogeyBkZXNjcmlwdGlvbjogJ1BpcGVsaW5lIHVwZGF0ZWQnIH0sIDQwNDogeyBkZXNjcmlwdGlvbjogJ05vdCBmb3VuZCcgfSB9LFxuICB9KTtcblxuICByZWdpc3RyeS5yZWdpc3RlclBhdGgoe1xuICAgIG1ldGhvZDogJ2RlbGV0ZScsXG4gICAgcGF0aDogJy9waXBlbGluZXMve2lkfScsXG4gICAgc3VtbWFyeTogJ0RlbGV0ZSBhIHBpcGVsaW5lJyxcbiAgICBkZXNjcmlwdGlvbjogJ1NvZnQtZGVsZXRlIGEgcGlwZWxpbmUgYnkgc2V0dGluZyBpc0FjdGl2ZSB0byBmYWxzZS4nLFxuICAgIHRhZ3MsXG4gICAgc2VjdXJpdHk6IGF1dGgsXG4gICAgcmVzcG9uc2VzOiB7IDIwMDogeyBkZXNjcmlwdGlvbjogJ1BpcGVsaW5lIGRlbGV0ZWQnIH0sIDQwNDogeyBkZXNjcmlwdGlvbjogJ05vdCBmb3VuZCcgfSB9LFxuICB9KTtcblxuICByZWdpc3RyeS5yZWdpc3RlclBhdGgoe1xuICAgIG1ldGhvZDogJ2dldCcsXG4gICAgcGF0aDogJy9waXBlbGluZXMvcHJvdmlkZXJzJyxcbiAgICBzdW1tYXJ5OiAnTGlzdCBBSSBwcm92aWRlcnMnLFxuICAgIGRlc2NyaXB0aW9uOiAnTGlzdCBBSSBwcm92aWRlcnMgY29uZmlndXJlZCBmb3IgcGlwZWxpbmUgZ2VuZXJhdGlvbi4nLFxuICAgIHRhZ3MsXG4gICAgc2VjdXJpdHk6IGF1dGgsXG4gICAgcmVzcG9uc2VzOiB7IDIwMDogeyBkZXNjcmlwdGlvbjogJ0xpc3Qgb2YgYXZhaWxhYmxlIEFJIHByb3ZpZGVycyB3aXRoIG1vZGVscycgfSB9LFxuICB9KTtcblxuICByZWdpc3RyeS5yZWdpc3RlclBhdGgoe1xuICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgIHBhdGg6ICcvcGlwZWxpbmVzL2dlbmVyYXRlJyxcbiAgICBzdW1tYXJ5OiAnR2VuZXJhdGUgcGlwZWxpbmUgdmlhIEFJJyxcbiAgICBkZXNjcmlwdGlvbjogJ0dlbmVyYXRlIGEgQnVpbGRlclByb3BzIGNvbmZpZ3VyYXRpb24gZnJvbSBhIG5hdHVyYWwgbGFuZ3VhZ2UgcHJvbXB0LiBSZXR1cm5zIHRoZSBjb21wbGV0ZSByZXN1bHQgd2hlbiBkb25lLicsXG4gICAgdGFncyxcbiAgICBzZWN1cml0eTogYXV0aCxcbiAgICByZXNwb25zZXM6IHsgMjAwOiB7IGRlc2NyaXB0aW9uOiAnR2VuZXJhdGVkIHBpcGVsaW5lIGNvbmZpZ3VyYXRpb24nIH0sIDQwMDogeyBkZXNjcmlwdGlvbjogJ1ZhbGlkYXRpb24gZXJyb3InIH0gfSxcbiAgfSk7XG5cbiAgcmVnaXN0cnkucmVnaXN0ZXJQYXRoKHtcbiAgICBtZXRob2Q6ICdwb3N0JyxcbiAgICBwYXRoOiAnL3BpcGVsaW5lcy9nZW5lcmF0ZS9zdHJlYW0nLFxuICAgIHN1bW1hcnk6ICdTdHJlYW0gcGlwZWxpbmUgZ2VuZXJhdGlvbiB2aWEgQUknLFxuICAgIGRlc2NyaXB0aW9uOiAnR2VuZXJhdGUgYSBCdWlsZGVyUHJvcHMgY29uZmlndXJhdGlvbiBmcm9tIGEgbmF0dXJhbCBsYW5ndWFnZSBwcm9tcHQuIFN0cmVhbXMgcGFydGlhbCByZXN1bHRzIGFzIFNTRSBldmVudHMuJyxcbiAgICB0YWdzLFxuICAgIHNlY3VyaXR5OiBhdXRoLFxuICAgIHJlc3BvbnNlczogeyAyMDA6IHsgZGVzY3JpcHRpb246ICdTU0UgZXZlbnQgc3RyZWFtIG9mIHBhcnRpYWwgcGlwZWxpbmUgb2JqZWN0cycgfSwgNDAwOiB7IGRlc2NyaXB0aW9uOiAnVmFsaWRhdGlvbiBlcnJvcicgfSB9LFxuICB9KTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function registerPipelineTemplateRoutes(): void;
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
// Copyright 2026 Pipeline Builder Contributors
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
import { registry } from '../registry.js';
|
|
4
|
+
const tags = ['Pipeline Templates'];
|
|
5
|
+
const auth = [{ bearerAuth: [] }];
|
|
6
|
+
export function registerPipelineTemplateRoutes() {
|
|
7
|
+
registry.registerPath({
|
|
8
|
+
method: 'get',
|
|
9
|
+
path: '/pipeline-templates',
|
|
10
|
+
summary: 'List pipeline templates',
|
|
11
|
+
description: 'List golden-path pipeline templates with pagination and filtering. Visibility is a three-rung ladder: `private` (author only), `org` (everyone in the owning org), `public` (the org, its teams, and — for the system org — every org). Optional `visibility` query param narrows within what the caller can already see.',
|
|
12
|
+
tags,
|
|
13
|
+
security: auth,
|
|
14
|
+
responses: { 200: { description: 'Paginated list of templates' }, 401: { description: 'Unauthorized' } },
|
|
15
|
+
});
|
|
16
|
+
registry.registerPath({
|
|
17
|
+
method: 'get',
|
|
18
|
+
path: '/pipeline-templates/{id}',
|
|
19
|
+
summary: 'Get a pipeline template by ID',
|
|
20
|
+
tags,
|
|
21
|
+
security: auth,
|
|
22
|
+
responses: { 200: { description: 'Template details' }, 404: { description: 'Not found' } },
|
|
23
|
+
});
|
|
24
|
+
registry.registerPath({
|
|
25
|
+
method: 'post',
|
|
26
|
+
path: '/pipeline-templates/{id}/instantiate',
|
|
27
|
+
summary: 'Instantiate a template',
|
|
28
|
+
description: 'Render a template into a concrete pipeline `props` by supplying its declared inputs. The returned props are submitted through the normal pipeline-create endpoint (compliance + quota apply there).',
|
|
29
|
+
tags,
|
|
30
|
+
security: auth,
|
|
31
|
+
responses: { 200: { description: 'Resolved pipeline props' }, 400: { description: 'Invalid inputs' }, 404: { description: 'Not found' } },
|
|
32
|
+
});
|
|
33
|
+
registry.registerPath({
|
|
34
|
+
method: 'post',
|
|
35
|
+
path: '/pipeline-templates',
|
|
36
|
+
summary: 'Create a pipeline template',
|
|
37
|
+
description: 'Author a golden-path template. Requires `templates:write`; `visibility: public` additionally requires `templates:publish` (a caller without it is clamped to `org`). Defaults to `private` — a personal draft only the author can see.',
|
|
38
|
+
tags,
|
|
39
|
+
security: auth,
|
|
40
|
+
responses: { 201: { description: 'Template created' }, 400: { description: 'Validation error' }, 403: { description: 'Forbidden' }, 409: { description: 'A template with that name already exists in the organization' } },
|
|
41
|
+
});
|
|
42
|
+
registry.registerPath({
|
|
43
|
+
method: 'put',
|
|
44
|
+
path: '/pipeline-templates/{id}',
|
|
45
|
+
summary: 'Update a pipeline template',
|
|
46
|
+
description: 'Requires `templates:write`, plus `templates:publish` for a `public` template and authorship for a `private` one.',
|
|
47
|
+
tags,
|
|
48
|
+
security: auth,
|
|
49
|
+
responses: { 200: { description: 'Template updated' }, 403: { description: 'Forbidden' }, 404: { description: 'Not found' } },
|
|
50
|
+
});
|
|
51
|
+
registry.registerPath({
|
|
52
|
+
method: 'delete',
|
|
53
|
+
path: '/pipeline-templates/{id}',
|
|
54
|
+
summary: 'Delete a pipeline template',
|
|
55
|
+
description: 'Same authority as update: `templates:write`, plus `templates:publish` for a `public` template and authorship for a `private` one.',
|
|
56
|
+
tags,
|
|
57
|
+
security: auth,
|
|
58
|
+
responses: { 200: { description: 'Template deleted' }, 403: { description: 'Forbidden' }, 404: { description: 'Not found' } },
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZWxpbmUtdGVtcGxhdGUtcm91dGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL29wZW5hcGkvcm91dGVzL3BpcGVsaW5lLXRlbXBsYXRlLXJvdXRlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDO0FBRXRDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUxQyxNQUFNLElBQUksR0FBRyxDQUFDLG9CQUFvQixDQUFDLENBQUM7QUFDcEMsTUFBTSxJQUFJLEdBQUcsQ0FBQyxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBRWxDLE1BQU0sVUFBVSw4QkFBOEI7SUFDNUMsUUFBUSxDQUFDLFlBQVksQ0FBQztRQUNwQixNQUFNLEVBQUUsS0FBSztRQUNiLElBQUksRUFBRSxxQkFBcUI7UUFDM0IsT0FBTyxFQUFFLHlCQUF5QjtRQUNsQyxXQUFXLEVBQUUsMlRBQTJUO1FBQ3hVLElBQUk7UUFDSixRQUFRLEVBQUUsSUFBSTtRQUNkLFNBQVMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLFdBQVcsRUFBRSw2QkFBNkIsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsRUFBRTtLQUN6RyxDQUFDLENBQUM7SUFFSCxRQUFRLENBQUMsWUFBWSxDQUFDO1FBQ3BCLE1BQU0sRUFBRSxLQUFLO1FBQ2IsSUFBSSxFQUFFLDBCQUEwQjtRQUNoQyxPQUFPLEVBQUUsK0JBQStCO1FBQ3hDLElBQUk7UUFDSixRQUFRLEVBQUUsSUFBSTtRQUNkLFNBQVMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLFdBQVcsRUFBRSxrQkFBa0IsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsRUFBRTtLQUMzRixDQUFDLENBQUM7SUFFSCxRQUFRLENBQUMsWUFBWSxDQUFDO1FBQ3BCLE1BQU0sRUFBRSxNQUFNO1FBQ2QsSUFBSSxFQUFFLHNDQUFzQztRQUM1QyxPQUFPLEVBQUUsd0JBQXdCO1FBQ2pDLFdBQVcsRUFBRSxxTUFBcU07UUFDbE4sSUFBSTtRQUNKLFFBQVEsRUFBRSxJQUFJO1FBQ2QsU0FBUyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsV0FBVyxFQUFFLHlCQUF5QixFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxFQUFFO0tBQzFJLENBQUMsQ0FBQztJQUVILFFBQVEsQ0FBQyxZQUFZLENBQUM7UUFDcEIsTUFBTSxFQUFFLE1BQU07UUFDZCxJQUFJLEVBQUUscUJBQXFCO1FBQzNCLE9BQU8sRUFBRSw0QkFBNEI7UUFDckMsV0FBVyxFQUFFLHdPQUF3TztRQUNyUCxJQUFJO1FBQ0osUUFBUSxFQUFFLElBQUk7UUFDZCxTQUFTLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxXQUFXLEVBQUUsa0JBQWtCLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxXQUFXLEVBQUUsa0JBQWtCLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsV0FBVyxFQUFFLDhEQUE4RCxFQUFFLEVBQUU7S0FDM04sQ0FBQyxDQUFDO0lBRUgsUUFBUSxDQUFDLFlBQVksQ0FBQztRQUNwQixNQUFNLEVBQUUsS0FBSztRQUNiLElBQUksRUFBRSwwQkFBMEI7UUFDaEMsT0FBTyxFQUFFLDRCQUE0QjtRQUNyQyxXQUFXLEVBQUUsa0hBQWtIO1FBQy9ILElBQUk7UUFDSixRQUFRLEVBQUUsSUFBSTtRQUNkLFNBQVMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLFdBQVcsRUFBRSxrQkFBa0IsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLEVBQUU7S0FDOUgsQ0FBQyxDQUFDO0lBRUgsUUFBUSxDQUFDLFlBQVksQ0FBQztRQUNwQixNQUFNLEVBQUUsUUFBUTtRQUNoQixJQUFJLEVBQUUsMEJBQTBCO1FBQ2hDLE9BQU8sRUFBRSw0QkFBNEI7UUFDckMsV0FBVyxFQUFFLG1JQUFtSTtRQUNoSixJQUFJO1FBQ0osUUFBUSxFQUFFLElBQUk7UUFDZCxTQUFTLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxXQUFXLEVBQUUsa0JBQWtCLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxFQUFFO0tBQzlILENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAyNiBQaXBlbGluZSBCdWlsZGVyIENvbnRyaWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuaW1wb3J0IHsgcmVnaXN0cnkgfSBmcm9tICcuLi9yZWdpc3RyeS5qcyc7XG5cbmNvbnN0IHRhZ3MgPSBbJ1BpcGVsaW5lIFRlbXBsYXRlcyddO1xuY29uc3QgYXV0aCA9IFt7IGJlYXJlckF1dGg6IFtdIH1dO1xuXG5leHBvcnQgZnVuY3Rpb24gcmVnaXN0ZXJQaXBlbGluZVRlbXBsYXRlUm91dGVzKCk6IHZvaWQge1xuICByZWdpc3RyeS5yZWdpc3RlclBhdGgoe1xuICAgIG1ldGhvZDogJ2dldCcsXG4gICAgcGF0aDogJy9waXBlbGluZS10ZW1wbGF0ZXMnLFxuICAgIHN1bW1hcnk6ICdMaXN0IHBpcGVsaW5lIHRlbXBsYXRlcycsXG4gICAgZGVzY3JpcHRpb246ICdMaXN0IGdvbGRlbi1wYXRoIHBpcGVsaW5lIHRlbXBsYXRlcyB3aXRoIHBhZ2luYXRpb24gYW5kIGZpbHRlcmluZy4gVmlzaWJpbGl0eSBpcyBhIHRocmVlLXJ1bmcgbGFkZGVyOiBgcHJpdmF0ZWAgKGF1dGhvciBvbmx5KSwgYG9yZ2AgKGV2ZXJ5b25lIGluIHRoZSBvd25pbmcgb3JnKSwgYHB1YmxpY2AgKHRoZSBvcmcsIGl0cyB0ZWFtcywgYW5kIOKAlCBmb3IgdGhlIHN5c3RlbSBvcmcg4oCUIGV2ZXJ5IG9yZykuIE9wdGlvbmFsIGB2aXNpYmlsaXR5YCBxdWVyeSBwYXJhbSBuYXJyb3dzIHdpdGhpbiB3aGF0IHRoZSBjYWxsZXIgY2FuIGFscmVhZHkgc2VlLicsXG4gICAgdGFncyxcbiAgICBzZWN1cml0eTogYXV0aCxcbiAgICByZXNwb25zZXM6IHsgMjAwOiB7IGRlc2NyaXB0aW9uOiAnUGFnaW5hdGVkIGxpc3Qgb2YgdGVtcGxhdGVzJyB9LCA0MDE6IHsgZGVzY3JpcHRpb246ICdVbmF1dGhvcml6ZWQnIH0gfSxcbiAgfSk7XG5cbiAgcmVnaXN0cnkucmVnaXN0ZXJQYXRoKHtcbiAgICBtZXRob2Q6ICdnZXQnLFxuICAgIHBhdGg6ICcvcGlwZWxpbmUtdGVtcGxhdGVzL3tpZH0nLFxuICAgIHN1bW1hcnk6ICdHZXQgYSBwaXBlbGluZSB0ZW1wbGF0ZSBieSBJRCcsXG4gICAgdGFncyxcbiAgICBzZWN1cml0eTogYXV0aCxcbiAgICByZXNwb25zZXM6IHsgMjAwOiB7IGRlc2NyaXB0aW9uOiAnVGVtcGxhdGUgZGV0YWlscycgfSwgNDA0OiB7IGRlc2NyaXB0aW9uOiAnTm90IGZvdW5kJyB9IH0sXG4gIH0pO1xuXG4gIHJlZ2lzdHJ5LnJlZ2lzdGVyUGF0aCh7XG4gICAgbWV0aG9kOiAncG9zdCcsXG4gICAgcGF0aDogJy9waXBlbGluZS10ZW1wbGF0ZXMve2lkfS9pbnN0YW50aWF0ZScsXG4gICAgc3VtbWFyeTogJ0luc3RhbnRpYXRlIGEgdGVtcGxhdGUnLFxuICAgIGRlc2NyaXB0aW9uOiAnUmVuZGVyIGEgdGVtcGxhdGUgaW50byBhIGNvbmNyZXRlIHBpcGVsaW5lIGBwcm9wc2AgYnkgc3VwcGx5aW5nIGl0cyBkZWNsYXJlZCBpbnB1dHMuIFRoZSByZXR1cm5lZCBwcm9wcyBhcmUgc3VibWl0dGVkIHRocm91Z2ggdGhlIG5vcm1hbCBwaXBlbGluZS1jcmVhdGUgZW5kcG9pbnQgKGNvbXBsaWFuY2UgKyBxdW90YSBhcHBseSB0aGVyZSkuJyxcbiAgICB0YWdzLFxuICAgIHNlY3VyaXR5OiBhdXRoLFxuICAgIHJlc3BvbnNlczogeyAyMDA6IHsgZGVzY3JpcHRpb246ICdSZXNvbHZlZCBwaXBlbGluZSBwcm9wcycgfSwgNDAwOiB7IGRlc2NyaXB0aW9uOiAnSW52YWxpZCBpbnB1dHMnIH0sIDQwNDogeyBkZXNjcmlwdGlvbjogJ05vdCBmb3VuZCcgfSB9LFxuICB9KTtcblxuICByZWdpc3RyeS5yZWdpc3RlclBhdGgoe1xuICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgIHBhdGg6ICcvcGlwZWxpbmUtdGVtcGxhdGVzJyxcbiAgICBzdW1tYXJ5OiAnQ3JlYXRlIGEgcGlwZWxpbmUgdGVtcGxhdGUnLFxuICAgIGRlc2NyaXB0aW9uOiAnQXV0aG9yIGEgZ29sZGVuLXBhdGggdGVtcGxhdGUuIFJlcXVpcmVzIGB0ZW1wbGF0ZXM6d3JpdGVgOyBgdmlzaWJpbGl0eTogcHVibGljYCBhZGRpdGlvbmFsbHkgcmVxdWlyZXMgYHRlbXBsYXRlczpwdWJsaXNoYCAoYSBjYWxsZXIgd2l0aG91dCBpdCBpcyBjbGFtcGVkIHRvIGBvcmdgKS4gRGVmYXVsdHMgdG8gYHByaXZhdGVgIOKAlCBhIHBlcnNvbmFsIGRyYWZ0IG9ubHkgdGhlIGF1dGhvciBjYW4gc2VlLicsXG4gICAgdGFncyxcbiAgICBzZWN1cml0eTogYXV0aCxcbiAgICByZXNwb25zZXM6IHsgMjAxOiB7IGRlc2NyaXB0aW9uOiAnVGVtcGxhdGUgY3JlYXRlZCcgfSwgNDAwOiB7IGRlc2NyaXB0aW9uOiAnVmFsaWRhdGlvbiBlcnJvcicgfSwgNDAzOiB7IGRlc2NyaXB0aW9uOiAnRm9yYmlkZGVuJyB9LCA0MDk6IHsgZGVzY3JpcHRpb246ICdBIHRlbXBsYXRlIHdpdGggdGhhdCBuYW1lIGFscmVhZHkgZXhpc3RzIGluIHRoZSBvcmdhbml6YXRpb24nIH0gfSxcbiAgfSk7XG5cbiAgcmVnaXN0cnkucmVnaXN0ZXJQYXRoKHtcbiAgICBtZXRob2Q6ICdwdXQnLFxuICAgIHBhdGg6ICcvcGlwZWxpbmUtdGVtcGxhdGVzL3tpZH0nLFxuICAgIHN1bW1hcnk6ICdVcGRhdGUgYSBwaXBlbGluZSB0ZW1wbGF0ZScsXG4gICAgZGVzY3JpcHRpb246ICdSZXF1aXJlcyBgdGVtcGxhdGVzOndyaXRlYCwgcGx1cyBgdGVtcGxhdGVzOnB1Ymxpc2hgIGZvciBhIGBwdWJsaWNgIHRlbXBsYXRlIGFuZCBhdXRob3JzaGlwIGZvciBhIGBwcml2YXRlYCBvbmUuJyxcbiAgICB0YWdzLFxuICAgIHNlY3VyaXR5OiBhdXRoLFxuICAgIHJlc3BvbnNlczogeyAyMDA6IHsgZGVzY3JpcHRpb246ICdUZW1wbGF0ZSB1cGRhdGVkJyB9LCA0MDM6IHsgZGVzY3JpcHRpb246ICdGb3JiaWRkZW4nIH0sIDQwNDogeyBkZXNjcmlwdGlvbjogJ05vdCBmb3VuZCcgfSB9LFxuICB9KTtcblxuICByZWdpc3RyeS5yZWdpc3RlclBhdGgoe1xuICAgIG1ldGhvZDogJ2RlbGV0ZScsXG4gICAgcGF0aDogJy9waXBlbGluZS10ZW1wbGF0ZXMve2lkfScsXG4gICAgc3VtbWFyeTogJ0RlbGV0ZSBhIHBpcGVsaW5lIHRlbXBsYXRlJyxcbiAgICBkZXNjcmlwdGlvbjogJ1NhbWUgYXV0aG9yaXR5IGFzIHVwZGF0ZTogYHRlbXBsYXRlczp3cml0ZWAsIHBsdXMgYHRlbXBsYXRlczpwdWJsaXNoYCBmb3IgYSBgcHVibGljYCB0ZW1wbGF0ZSBhbmQgYXV0aG9yc2hpcCBmb3IgYSBgcHJpdmF0ZWAgb25lLicsXG4gICAgdGFncyxcbiAgICBzZWN1cml0eTogYXV0aCxcbiAgICByZXNwb25zZXM6IHsgMjAwOiB7IGRlc2NyaXB0aW9uOiAnVGVtcGxhdGUgZGVsZXRlZCcgfSwgNDAzOiB7IGRlc2NyaXB0aW9uOiAnRm9yYmlkZGVuJyB9LCA0MDQ6IHsgZGVzY3JpcHRpb246ICdOb3QgZm91bmQnIH0gfSxcbiAgfSk7XG59XG4iXX0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function registerPluginRoutes(): void;
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
// Copyright 2026 Pipeline Builder Contributors
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
import { registry } from '../registry.js';
|
|
4
|
+
const tags = ['Plugins'];
|
|
5
|
+
const auth = [{ bearerAuth: [] }];
|
|
6
|
+
export function registerPluginRoutes() {
|
|
7
|
+
registry.registerPath({
|
|
8
|
+
method: 'get',
|
|
9
|
+
path: '/plugins',
|
|
10
|
+
summary: 'List plugins',
|
|
11
|
+
description: 'List plugins with pagination, filtering, and sorting.',
|
|
12
|
+
tags,
|
|
13
|
+
security: auth,
|
|
14
|
+
responses: { 200: { description: 'Paginated list of plugins' }, 401: { description: 'Unauthorized' } },
|
|
15
|
+
});
|
|
16
|
+
registry.registerPath({
|
|
17
|
+
method: 'get',
|
|
18
|
+
path: '/plugins/find',
|
|
19
|
+
summary: 'Find a single plugin',
|
|
20
|
+
description: 'Find a single plugin matching the query filters.',
|
|
21
|
+
tags,
|
|
22
|
+
security: auth,
|
|
23
|
+
responses: { 200: { description: 'Plugin found' }, 404: { description: 'Not found' } },
|
|
24
|
+
});
|
|
25
|
+
registry.registerPath({
|
|
26
|
+
method: 'get',
|
|
27
|
+
path: '/plugins/{id}',
|
|
28
|
+
summary: 'Get plugin by ID',
|
|
29
|
+
tags,
|
|
30
|
+
security: auth,
|
|
31
|
+
responses: { 200: { description: 'Plugin details' }, 404: { description: 'Not found' } },
|
|
32
|
+
});
|
|
33
|
+
registry.registerPath({
|
|
34
|
+
method: 'post',
|
|
35
|
+
path: '/plugins',
|
|
36
|
+
summary: 'Upload a plugin',
|
|
37
|
+
description: 'Upload a plugin ZIP file with spec. Builds Docker image and saves to database.',
|
|
38
|
+
tags,
|
|
39
|
+
security: auth,
|
|
40
|
+
responses: { 202: { description: 'Plugin build queued' }, 400: { description: 'Validation error' }, 429: { description: 'Quota exceeded' } },
|
|
41
|
+
});
|
|
42
|
+
registry.registerPath({
|
|
43
|
+
method: 'put',
|
|
44
|
+
path: '/plugins/{id}',
|
|
45
|
+
summary: 'Update a plugin',
|
|
46
|
+
tags,
|
|
47
|
+
security: auth,
|
|
48
|
+
responses: { 200: { description: 'Plugin updated' }, 404: { description: 'Not found' } },
|
|
49
|
+
});
|
|
50
|
+
registry.registerPath({
|
|
51
|
+
method: 'delete',
|
|
52
|
+
path: '/plugins/{id}',
|
|
53
|
+
summary: 'Delete a plugin',
|
|
54
|
+
description: 'Soft-delete a plugin by setting isActive to false.',
|
|
55
|
+
tags,
|
|
56
|
+
security: auth,
|
|
57
|
+
responses: { 200: { description: 'Plugin deleted' }, 404: { description: 'Not found' } },
|
|
58
|
+
});
|
|
59
|
+
registry.registerPath({
|
|
60
|
+
method: 'get',
|
|
61
|
+
path: '/plugins/providers',
|
|
62
|
+
summary: 'List AI providers',
|
|
63
|
+
description: 'List AI providers configured for plugin generation.',
|
|
64
|
+
tags,
|
|
65
|
+
security: auth,
|
|
66
|
+
responses: { 200: { description: 'List of available AI providers with models' } },
|
|
67
|
+
});
|
|
68
|
+
registry.registerPath({
|
|
69
|
+
method: 'post',
|
|
70
|
+
path: '/plugins/generate',
|
|
71
|
+
summary: 'Generate plugin via AI',
|
|
72
|
+
description: 'Generate a plugin configuration and Dockerfile from a natural language prompt.',
|
|
73
|
+
tags,
|
|
74
|
+
security: auth,
|
|
75
|
+
responses: { 200: { description: 'Generated plugin configuration and Dockerfile' }, 400: { description: 'Validation error' } },
|
|
76
|
+
});
|
|
77
|
+
registry.registerPath({
|
|
78
|
+
method: 'post',
|
|
79
|
+
path: '/plugins/generate/stream',
|
|
80
|
+
summary: 'Stream plugin generation via AI',
|
|
81
|
+
description: 'Generate plugin configuration from a natural language prompt. Streams partial results as SSE events.',
|
|
82
|
+
tags,
|
|
83
|
+
security: auth,
|
|
84
|
+
responses: { 200: { description: 'SSE event stream of partial plugin objects' }, 400: { description: 'Validation error' } },
|
|
85
|
+
});
|
|
86
|
+
registry.registerPath({
|
|
87
|
+
method: 'post',
|
|
88
|
+
path: '/plugins/deploy-generated',
|
|
89
|
+
summary: 'Deploy AI-generated plugin',
|
|
90
|
+
description: 'Build Docker image from AI-generated Dockerfile and save plugin to database. Requires admin.',
|
|
91
|
+
tags,
|
|
92
|
+
security: auth,
|
|
93
|
+
responses: { 202: { description: 'Plugin build queued' }, 400: { description: 'Validation error' }, 403: { description: 'Admin required' }, 429: { description: 'Quota exceeded' } },
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLXJvdXRlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9vcGVuYXBpL3JvdXRlcy9wbHVnaW4tcm91dGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0M7QUFFdEMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTFDLE1BQU0sSUFBSSxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDekIsTUFBTSxJQUFJLEdBQUcsQ0FBQyxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBRWxDLE1BQU0sVUFBVSxvQkFBb0I7SUFDbEMsUUFBUSxDQUFDLFlBQVksQ0FBQztRQUNwQixNQUFNLEVBQUUsS0FBSztRQUNiLElBQUksRUFBRSxVQUFVO1FBQ2hCLE9BQU8sRUFBRSxjQUFjO1FBQ3ZCLFdBQVcsRUFBRSx1REFBdUQ7UUFDcEUsSUFBSTtRQUNKLFFBQVEsRUFBRSxJQUFJO1FBQ2QsU0FBUyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsV0FBVyxFQUFFLDJCQUEyQixFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxFQUFFO0tBQ3ZHLENBQUMsQ0FBQztJQUVILFFBQVEsQ0FBQyxZQUFZLENBQUM7UUFDcEIsTUFBTSxFQUFFLEtBQUs7UUFDYixJQUFJLEVBQUUsZUFBZTtRQUNyQixPQUFPLEVBQUUsc0JBQXNCO1FBQy9CLFdBQVcsRUFBRSxrREFBa0Q7UUFDL0QsSUFBSTtRQUNKLFFBQVEsRUFBRSxJQUFJO1FBQ2QsU0FBUyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsRUFBRTtLQUN2RixDQUFDLENBQUM7SUFFSCxRQUFRLENBQUMsWUFBWSxDQUFDO1FBQ3BCLE1BQU0sRUFBRSxLQUFLO1FBQ2Is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LEVBQUUsMkJBQTJCO1FBQ2pDLE9BQU8sRUFBRSw0QkFBNEI7UUFDckMsV0FBVyxFQUFFLDhGQUE4RjtRQUMzRyxJQUFJO1FBQ0osUUFBUSxFQUFFLElBQUk7UUFDZCxTQUFTLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxXQUFXLEVBQUUscUJBQXFCLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxXQUFXLEVBQUUsa0JBQWtCLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsRUFBRTtLQUNyTCxDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbmltcG9ydCB7IHJlZ2lzdHJ5IH0gZnJvbSAnLi4vcmVnaXN0cnkuanMnO1xuXG5jb25zdCB0YWdzID0gWydQbHVnaW5zJ107XG5jb25zdCBhdXRoID0gW3sgYmVhcmVyQXV0aDogW10gfV07XG5cbmV4cG9ydCBmdW5jdGlvbiByZWdpc3RlclBsdWdpblJvdXRlcygpOiB2b2lkIHtcbiAgcmVnaXN0cnkucmVnaXN0ZXJQYXRoKHtcbiAgICBtZXRob2Q6ICdnZXQnLFxuICAgIHBhdGg6ICcvcGx1Z2lucycsXG4gICAgc3VtbWFyeTogJ0xpc3QgcGx1Z2lucycsXG4gICAgZGVzY3JpcHRpb246ICdMaXN0IHBsdWdpbnMgd2l0aCBwYWdpbmF0aW9uLCBmaWx0ZXJpbmcsIGFuZCBzb3J0aW5nLicsXG4gICAgdGFncyxcbiAgICBzZWN1cml0eTogYXV0aCxcbiAgICByZXNwb25zZXM6IHsgMjAwOiB7IGRlc2NyaXB0aW9uOiAnUGFnaW5hdGVkIGxpc3Qgb2YgcGx1Z2lucycgfSwgNDAxOiB7IGRlc2NyaXB0aW9uOiAnVW5hdXRob3JpemVkJyB9IH0sXG4gIH0pO1xuXG4gIHJlZ2lzdHJ5LnJlZ2lzdGVyUGF0aCh7XG4gICAgbWV0aG9kOiAnZ2V0JyxcbiAgICBwYXRoOiAnL3BsdWdpbnMvZmluZCcsXG4gICAgc3VtbWFyeTogJ0ZpbmQgYSBzaW5nbGUgcGx1Z2luJyxcbiAgICBkZXNjcmlwdGlvbjogJ0ZpbmQgYSBzaW5nbGUgcGx1Z2luIG1hdGNoaW5nIHRoZSBxdWVyeSBmaWx0ZXJzLicsXG4gICAgdGFncyxcbiAgICBzZWN1cml0eTogYXV0aCxcbiAgICByZXNwb25zZXM6IHsgMjAwOiB7IGRlc2NyaXB0aW9uOiAnUGx1Z2luIGZvdW5kJyB9LCA0MDQ6IHsgZGVzY3JpcHRpb246ICdOb3QgZm91bmQnIH0gfSxcbiAgfSk7XG5cbiAgcmVnaXN0cnkucmVnaXN0ZXJQYXRoKHtcbiAgICBtZXRob2Q6ICdnZXQnLFxuICAgIHBhdGg6ICcvcGx1Z2lucy97aWR9JyxcbiAgICBzdW1tYXJ5OiAnR2V0IHBsdWdpbiBieSBJRCcsXG4gICAgdGFncyxcbiAgICBzZWN1cml0eTogYXV0aCxcbiAgICByZXNwb25zZXM6IHsgMjAwOiB7IGRlc2NyaXB0aW9uOiAnUGx1Z2luIGRldGFpbHMnIH0sIDQwNDogeyBkZXNjcmlwdGlvbjogJ05vdCBmb3VuZCcgfSB9LFxuICB9KTtcblxuICByZWdpc3RyeS5yZWdpc3RlclBhdGgoe1xuICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgIHBhdGg6ICcvcGx1Z2lucycsXG4gICAgc3VtbWFyeTogJ1VwbG9hZCBhIHBsdWdpbicsXG4gICAgZGVzY3JpcHRpb246ICdVcGxvYWQgYSBwbHVnaW4gWklQIGZpbGUgd2l0aCBzcGVjLiBCdWlsZHMgRG9ja2VyIGltYWdlIGFuZCBzYXZlcyB0byBkYXRhYmFzZS4nLFxuICAgIHRhZ3MsXG4gICAgc2VjdXJpdHk6IGF1dGgsXG4gICAgcmVzcG9uc2VzOiB7IDIwMjogeyBkZXNjcmlwdGlvbjogJ1BsdWdpbiBidWlsZCBxdWV1ZWQnIH0sIDQwMDogeyBkZXNjcmlwdGlvbjogJ1ZhbGlkYXRpb24gZXJyb3InIH0sIDQyOTogeyBkZXNjcmlwdGlvbjogJ1F1b3RhIGV4Y2VlZGVkJyB9IH0sXG4gIH0pO1xuXG4gIHJlZ2lzdHJ5LnJlZ2lzdGVyUGF0aCh7XG4gICAgbWV0aG9kOiAncHV0JyxcbiAgICBwYXRoOiAnL3BsdWdpbnMve2lkfScsXG4gICAgc3VtbWFyeTogJ1VwZGF0ZSBhIHBsdWdpbicsXG4gICAgdGFncyxcbiAgICBzZWN1cml0eTogYXV0aCxcbiAgICByZXNwb25zZXM6IHsgMjAwOiB7IGRlc2NyaXB0aW9uOiAnUGx1Z2luIHVwZGF0ZWQnIH0sIDQwNDogeyBkZXNjcmlwdGlvbjogJ05vdCBmb3VuZCcgfSB9LFxuICB9KTtcblxuICByZWdpc3RyeS5yZWdpc3RlclBhdGgoe1xuICAgIG1ldGhvZDogJ2RlbGV0ZScsXG4gICAgcGF0aDogJy9wbHVnaW5zL3tpZH0nLFxuICAgIHN1bW1hcnk6ICdEZWxldGUgYSBwbHVnaW4nLFxuICAgIGRlc2NyaXB0aW9uOiAnU29mdC1kZWxldGUgYSBwbHVnaW4gYnkgc2V0dGluZyBpc0FjdGl2ZSB0byBmYWxzZS4nLFxuICAgIHRhZ3MsXG4gICAgc2VjdXJpdHk6IGF1dGgsXG4gICAgcmVzcG9uc2VzOiB7IDIwMDogeyBkZXNjcmlwdGlvbjogJ1BsdWdpbiBkZWxldGVkJyB9LCA0MDQ6IHsgZGVzY3JpcHRpb246ICdOb3QgZm91bmQnIH0gfSxcbiAgfSk7XG5cbiAgcmVnaXN0cnkucmVnaXN0ZXJQYXRoKHtcbiAgICBtZXRob2Q6ICdnZXQnLFxuICAgIHBhdGg6ICcvcGx1Z2lucy9wcm92aWRlcnMnLFxuICAgIHN1bW1hcnk6ICdMaXN0IEFJIHByb3ZpZGVycycsXG4gICAgZGVzY3JpcHRpb246ICdMaXN0IEFJIHByb3ZpZGVycyBjb25maWd1cmVkIGZvciBwbHVnaW4gZ2VuZXJhdGlvbi4nLFxuICAgIHRhZ3MsXG4gICAgc2VjdXJpdHk6IGF1dGgsXG4gICAgcmVzcG9uc2VzOiB7IDIwMDogeyBkZXNjcmlwdGlvbjogJ0xpc3Qgb2YgYXZhaWxhYmxlIEFJIHByb3ZpZGVycyB3aXRoIG1vZGVscycgfSB9LFxuICB9KTtcblxuICByZWdpc3RyeS5yZWdpc3RlclBhdGgoe1xuICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgIHBhdGg6ICcvcGx1Z2lucy9nZW5lcmF0ZScsXG4gICAgc3VtbWFyeTogJ0dlbmVyYXRlIHBsdWdpbiB2aWEgQUknLFxuICAgIGRlc2NyaXB0aW9uOiAnR2VuZXJhdGUgYSBwbHVnaW4gY29uZmlndXJhdGlvbiBhbmQgRG9ja2VyZmlsZSBmcm9tIGEgbmF0dXJhbCBsYW5ndWFnZSBwcm9tcHQuJyxcbiAgICB0YWdzLFxuICAgIHNlY3VyaXR5OiBhdXRoLFxuICAgIHJlc3BvbnNlczogeyAyMDA6IHsgZGVzY3JpcHRpb246ICdHZW5lcmF0ZWQgcGx1Z2luIGNvbmZpZ3VyYXRpb24gYW5kIERvY2tlcmZpbGUnIH0sIDQwMDogeyBkZXNjcmlwdGlvbjogJ1ZhbGlkYXRpb24gZXJyb3InIH0gfSxcbiAgfSk7XG5cbiAgcmVnaXN0cnkucmVnaXN0ZXJQYXRoKHtcbiAgICBtZXRob2Q6ICdwb3N0JyxcbiAgICBwYXRoOiAnL3BsdWdpbnMvZ2VuZXJhdGUvc3RyZWFtJyxcbiAgICBzdW1tYXJ5OiAnU3RyZWFtIHBsdWdpbiBnZW5lcmF0aW9uIHZpYSBBSScsXG4gICAgZGVzY3JpcHRpb246ICdHZW5lcmF0ZSBwbHVnaW4gY29uZmlndXJhdGlvbiBmcm9tIGEgbmF0dXJhbCBsYW5ndWFnZSBwcm9tcHQuIFN0cmVhbXMgcGFydGlhbCByZXN1bHRzIGFzIFNTRSBldmVudHMuJyxcbiAgICB0YWdzLFxuICAgIHNlY3VyaXR5OiBhdXRoLFxuICAgIHJlc3BvbnNlczogeyAyMDA6IHsgZGVzY3JpcHRpb246ICdTU0UgZXZlbnQgc3RyZWFtIG9mIHBhcnRpYWwgcGx1Z2luIG9iamVjdHMnIH0sIDQwMDogeyBkZXNjcmlwdGlvbjogJ1ZhbGlkYXRpb24gZXJyb3InIH0gfSxcbiAgfSk7XG5cbiAgcmVnaXN0cnkucmVnaXN0ZXJQYXRoKHtcbiAgICBtZXRob2Q6ICdwb3N0JyxcbiAgICBwYXRoOiAnL3BsdWdpbnMvZGVwbG95LWdlbmVyYXRlZCcsXG4gICAgc3VtbWFyeTogJ0RlcGxveSBBSS1nZW5lcmF0ZWQgcGx1Z2luJyxcbiAgICBkZXNjcmlwdGlvbjogJ0J1aWxkIERvY2tlciBpbWFnZSBmcm9tIEFJLWdlbmVyYXRlZCBEb2NrZXJmaWxlIGFuZCBzYXZlIHBsdWdpbiB0byBkYXRhYmFzZS4gUmVxdWlyZXMgYWRtaW4uJyxcbiAgICB0YWdzLFxuICAgIHNlY3VyaXR5OiBhdXRoLFxuICAgIHJlc3BvbnNlczogeyAyMDI6IHsgZGVzY3JpcHRpb246ICdQbHVnaW4gYnVpbGQgcXVldWVkJyB9LCA0MDA6IHsgZGVzY3JpcHRpb246ICdWYWxpZGF0aW9uIGVycm9yJyB9LCA0MDM6IHsgZGVzY3JpcHRpb246ICdBZG1pbiByZXF1aXJlZCcgfSwgNDI5OiB7IGRlc2NyaXB0aW9uOiAnUXVvdGEgZXhjZWVkZWQnIH0gfSxcbiAgfSk7XG59XG4iXX0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function registerQuotaRoutes(): void;
|