@cyanautomation/kaseki-agent 1.13.1 → 1.14.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/README.md +17 -0
- package/dist/kaseki-api-service.d.ts.map +1 -1
- package/dist/kaseki-api-service.js +15 -0
- package/dist/kaseki-api-service.js.map +1 -1
- package/dist/openapi-spec-generator.d.ts +13 -0
- package/dist/openapi-spec-generator.d.ts.map +1 -0
- package/dist/openapi-spec-generator.js +1098 -0
- package/dist/openapi-spec-generator.js.map +1 -0
- package/package.json +7 -3
- package/scripts/generate-openapi-spec.js +56 -0
package/README.md
CHANGED
|
@@ -334,6 +334,21 @@ kaseki-agent serve
|
|
|
334
334
|
kaseki-agent serve --port 9000
|
|
335
335
|
```
|
|
336
336
|
|
|
337
|
+
**Interactive API Documentation:**
|
|
338
|
+
|
|
339
|
+
When the API service is running, access the interactive Swagger UI for exploring and testing all endpoints:
|
|
340
|
+
|
|
341
|
+
```
|
|
342
|
+
http://localhost:8080/docs
|
|
343
|
+
```
|
|
344
|
+
|
|
345
|
+
This provides an interactive interface to:
|
|
346
|
+
- Browse all endpoints organized by category
|
|
347
|
+
- View request/response schemas
|
|
348
|
+
- Test endpoints with "Try it out" feature
|
|
349
|
+
- Authorize with your API key
|
|
350
|
+
- Access the raw OpenAPI specification at `/api/openapi.json`
|
|
351
|
+
|
|
337
352
|
**API Endpoints:**
|
|
338
353
|
|
|
339
354
|
- `GET /health` — Service health check
|
|
@@ -343,6 +358,8 @@ kaseki-agent serve --port 9000
|
|
|
343
358
|
- `GET /api/runs/:id/logs` — Stream logs
|
|
344
359
|
- `GET /api/runs/:id/results` — Get results
|
|
345
360
|
|
|
361
|
+
For complete endpoint documentation, see [docs/API.md](docs/API.md).
|
|
362
|
+
|
|
346
363
|
---
|
|
347
364
|
|
|
348
365
|
## Configuration
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kaseki-api-service.d.ts","sourceRoot":"","sources":["../src/kaseki-api-service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"kaseki-api-service.d.ts","sourceRoot":"","sources":["../src/kaseki-api-service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAGnC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAOvD,KAAK,YAAY,GAAG;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;IAC1C,cAAc,EAAE,cAAc,CAAC;IAC/B,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,KAAK,CAAC;CAChC,CAAC;AAEF,wBAAgB,sBAAsB,CAAC,EACrC,MAAM,EACN,SAAS,EACT,cAAc,EACd,gBAAgB,EAChB,gBAAuB,EACvB,IAAmB,GACpB,EAAE,YAAY,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CA0ClD;AAED,wBAAgB,0BAA0B,CACxC,OAAO,GAAE,MAA8B,EACvC,YAAY,GAAE,MAAW,GACxB,IAAI,CAcN"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import express from 'express';
|
|
2
|
+
import swaggerUi from 'swagger-ui-express';
|
|
2
3
|
import { loadConfig } from './kaseki-api-config.js';
|
|
3
4
|
import { JobScheduler } from './job-scheduler.js';
|
|
4
5
|
import { WebhookManager } from './webhook-manager.js';
|
|
@@ -7,6 +8,7 @@ import { PreFlightValidator } from './pre-flight-validator.js';
|
|
|
7
8
|
import { createApiRouter } from './kaseki-api-routes.js';
|
|
8
9
|
import { createEventLogger } from './logger.js';
|
|
9
10
|
import { ResultCache } from './result-cache.js';
|
|
11
|
+
import { generateOpenAPISpec } from './openapi-spec-generator.js';
|
|
10
12
|
export function createGracefulShutdown({ server, scheduler, webhookManager, idempotencyStore, forceExitAfterMs = 8000, exit = process.exit, }) {
|
|
11
13
|
const logger = createEventLogger('kaseki-api');
|
|
12
14
|
return async (signal) => {
|
|
@@ -96,6 +98,16 @@ async function main() {
|
|
|
96
98
|
// Create Express app
|
|
97
99
|
const app = express();
|
|
98
100
|
app.use(express.json());
|
|
101
|
+
// Generate OpenAPI specification
|
|
102
|
+
const openApiSpec = generateOpenAPISpec();
|
|
103
|
+
// Mount Swagger UI documentation
|
|
104
|
+
app.use('/docs', swaggerUi.serve, swaggerUi.setup(openApiSpec, {
|
|
105
|
+
customCss: '.topbar { display: none }',
|
|
106
|
+
}));
|
|
107
|
+
// Mount OpenAPI spec endpoint
|
|
108
|
+
app.get('/api/openapi.json', (_req, res) => {
|
|
109
|
+
res.json(openApiSpec);
|
|
110
|
+
});
|
|
99
111
|
// Create shared artifact content cache
|
|
100
112
|
const artifactCache = new ResultCache({
|
|
101
113
|
maxEntries: config.artifactCacheMaxEntries,
|
|
@@ -116,12 +128,15 @@ async function main() {
|
|
|
116
128
|
app.use('/', apiRouter);
|
|
117
129
|
// Start server
|
|
118
130
|
const server = app.listen(config.port, () => {
|
|
131
|
+
const baseUrl = `http://localhost:${config.port}`;
|
|
119
132
|
logger.event('service_started', {
|
|
120
133
|
port: config.port,
|
|
121
134
|
logLevel: config.logLevel,
|
|
122
135
|
maxConcurrentRuns: config.maxConcurrentRuns,
|
|
123
136
|
resultsDir: config.resultsDir,
|
|
124
137
|
nodeVersion: process.versions.node,
|
|
138
|
+
swaggerDocumentationUrl: `${baseUrl}/docs`,
|
|
139
|
+
openApiSpecUrl: `${baseUrl}/api/openapi.json`,
|
|
125
140
|
});
|
|
126
141
|
});
|
|
127
142
|
// Graceful shutdown
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kaseki-api-service.js","sourceRoot":"","sources":["../src/kaseki-api-service.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAE9B,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"kaseki-api-service.js","sourceRoot":"","sources":["../src/kaseki-api-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OpenAPI Spec Generator for Kaseki Agent API
|
|
3
|
+
*
|
|
4
|
+
* This module constructs an OpenAPI 3.1 specification for the Kaseki Agent API.
|
|
5
|
+
* The spec is generated at build time and served dynamically at runtime.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Generate a complete OpenAPI 3.1 specification for the Kaseki Agent API.
|
|
9
|
+
* This spec is generated from route definitions and request/response types.
|
|
10
|
+
*/
|
|
11
|
+
export declare function generateOpenAPISpec(): Record<string, unknown>;
|
|
12
|
+
export default generateOpenAPISpec;
|
|
13
|
+
//# sourceMappingURL=openapi-spec-generator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openapi-spec-generator.d.ts","sourceRoot":"","sources":["../src/openapi-spec-generator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAimC7D;AAED,eAAe,mBAAmB,CAAC"}
|