2026-03-23 18:16:15 +01:00
|
|
|
/**
|
|
|
|
|
* This file was auto-generated by openapi-typescript.
|
|
|
|
|
* Do not make direct changes to the file.
|
|
|
|
|
*/
|
Add React UI with Execution Explorer, auth, and standalone deployment
- Scaffold Vite + React + TypeScript frontend in ui/ with full design
system (dark/light themes) matching the HTML mockups
- Implement Execution Explorer page: search filters, results table with
expandable processor tree and exchange detail sidebar, pagination
- Add UI authentication: UiAuthController (login/refresh endpoints),
JWT filter handles ui: subject prefix, CORS configuration
- Shared components: StatusPill, DurationBar, StatCard, AppBadge,
FilterChip, Pagination — all using CSS Modules with design tokens
- API client layer: openapi-fetch with auth middleware, TanStack Query
hooks for search/detail/snapshot queries, Zustand for state
- Standalone deployment: Nginx Dockerfile, K8s Deployment + ConfigMap +
NodePort (30080), runtime config.js for API base URL
- Embedded mode: maven-resources-plugin copies ui/dist into JAR static
resources, SPA forward controller for client-side routing
- CI/CD: UI build step, Docker build/push for server-ui image, K8s
deploy step for UI, UI credential secrets
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 13:59:22 +01:00
|
|
|
|
|
|
|
|
export interface paths {
|
2026-03-23 18:16:15 +01:00
|
|
|
"/admin/users/{userId}": {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: never;
|
|
|
|
|
path?: never;
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
/** Get user by ID with RBAC detail */
|
|
|
|
|
get: operations["getUser"];
|
|
|
|
|
/** Update user display name or email */
|
|
|
|
|
put: operations["updateUser"];
|
|
|
|
|
post?: never;
|
|
|
|
|
/** Delete user */
|
|
|
|
|
delete: operations["deleteUser"];
|
|
|
|
|
options?: never;
|
|
|
|
|
head?: never;
|
|
|
|
|
patch?: never;
|
|
|
|
|
trace?: never;
|
|
|
|
|
};
|
|
|
|
|
"/admin/thresholds": {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: never;
|
|
|
|
|
path?: never;
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
/** Get current threshold configuration */
|
|
|
|
|
get: operations["getThresholds"];
|
|
|
|
|
/** Update threshold configuration */
|
|
|
|
|
put: operations["updateThresholds"];
|
|
|
|
|
post?: never;
|
|
|
|
|
delete?: never;
|
|
|
|
|
options?: never;
|
|
|
|
|
head?: never;
|
|
|
|
|
patch?: never;
|
|
|
|
|
trace?: never;
|
|
|
|
|
};
|
|
|
|
|
"/admin/roles/{id}": {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: never;
|
|
|
|
|
path?: never;
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
/** Get role by ID with effective principals */
|
|
|
|
|
get: operations["getRole"];
|
|
|
|
|
/** Update a custom role */
|
|
|
|
|
put: operations["updateRole"];
|
|
|
|
|
post?: never;
|
|
|
|
|
/** Delete a custom role */
|
|
|
|
|
delete: operations["deleteRole"];
|
|
|
|
|
options?: never;
|
|
|
|
|
head?: never;
|
|
|
|
|
patch?: never;
|
|
|
|
|
trace?: never;
|
|
|
|
|
};
|
|
|
|
|
"/admin/oidc": {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: never;
|
|
|
|
|
path?: never;
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
/** Get OIDC configuration */
|
|
|
|
|
get: operations["getConfig"];
|
|
|
|
|
/** Save OIDC configuration */
|
|
|
|
|
put: operations["saveConfig"];
|
|
|
|
|
post?: never;
|
|
|
|
|
/** Delete OIDC configuration */
|
|
|
|
|
delete: operations["deleteConfig"];
|
|
|
|
|
options?: never;
|
|
|
|
|
head?: never;
|
|
|
|
|
patch?: never;
|
|
|
|
|
trace?: never;
|
|
|
|
|
};
|
|
|
|
|
"/admin/groups/{id}": {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: never;
|
|
|
|
|
path?: never;
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
/** Get group by ID with effective roles */
|
|
|
|
|
get: operations["getGroup"];
|
|
|
|
|
/** Update group name or parent */
|
|
|
|
|
put: operations["updateGroup"];
|
|
|
|
|
post?: never;
|
|
|
|
|
/** Delete group */
|
|
|
|
|
delete: operations["deleteGroup"];
|
|
|
|
|
options?: never;
|
|
|
|
|
head?: never;
|
|
|
|
|
patch?: never;
|
|
|
|
|
trace?: never;
|
|
|
|
|
};
|
|
|
|
|
"/search/executions": {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: never;
|
|
|
|
|
path?: never;
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
/** Search executions with basic filters */
|
|
|
|
|
get: operations["searchGet"];
|
|
|
|
|
put?: never;
|
|
|
|
|
/** Advanced search with all filters */
|
|
|
|
|
post: operations["searchPost"];
|
|
|
|
|
delete?: never;
|
|
|
|
|
options?: never;
|
|
|
|
|
head?: never;
|
|
|
|
|
patch?: never;
|
|
|
|
|
trace?: never;
|
|
|
|
|
};
|
|
|
|
|
"/data/metrics": {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: never;
|
|
|
|
|
path?: never;
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
get?: never;
|
|
|
|
|
put?: never;
|
|
|
|
|
/**
|
|
|
|
|
* Ingest agent metrics
|
|
|
|
|
* @description Accepts an array of MetricsSnapshot objects
|
|
|
|
|
*/
|
|
|
|
|
post: operations["ingestMetrics"];
|
|
|
|
|
delete?: never;
|
|
|
|
|
options?: never;
|
|
|
|
|
head?: never;
|
|
|
|
|
patch?: never;
|
|
|
|
|
trace?: never;
|
|
|
|
|
};
|
|
|
|
|
"/data/executions": {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: never;
|
|
|
|
|
path?: never;
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
get?: never;
|
|
|
|
|
put?: never;
|
|
|
|
|
/**
|
|
|
|
|
* Ingest route execution data
|
|
|
|
|
* @description Accepts a single RouteExecution or an array of RouteExecutions
|
|
|
|
|
*/
|
|
|
|
|
post: operations["ingestExecutions"];
|
|
|
|
|
delete?: never;
|
|
|
|
|
options?: never;
|
|
|
|
|
head?: never;
|
|
|
|
|
patch?: never;
|
|
|
|
|
trace?: never;
|
|
|
|
|
};
|
|
|
|
|
"/data/diagrams": {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: never;
|
|
|
|
|
path?: never;
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
get?: never;
|
|
|
|
|
put?: never;
|
|
|
|
|
/**
|
|
|
|
|
* Ingest route diagram data
|
|
|
|
|
* @description Accepts a single RouteGraph or an array of RouteGraphs
|
|
|
|
|
*/
|
|
|
|
|
post: operations["ingestDiagrams"];
|
|
|
|
|
delete?: never;
|
|
|
|
|
options?: never;
|
|
|
|
|
head?: never;
|
|
|
|
|
patch?: never;
|
|
|
|
|
trace?: never;
|
|
|
|
|
};
|
|
|
|
|
"/auth/refresh": {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: never;
|
|
|
|
|
path?: never;
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
get?: never;
|
|
|
|
|
put?: never;
|
|
|
|
|
/** Refresh access token */
|
|
|
|
|
post: operations["refresh"];
|
|
|
|
|
delete?: never;
|
|
|
|
|
options?: never;
|
|
|
|
|
head?: never;
|
|
|
|
|
patch?: never;
|
|
|
|
|
trace?: never;
|
|
|
|
|
};
|
|
|
|
|
"/auth/oidc/callback": {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: never;
|
|
|
|
|
path?: never;
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
get?: never;
|
|
|
|
|
put?: never;
|
|
|
|
|
/** Exchange OIDC authorization code for JWTs */
|
|
|
|
|
post: operations["callback"];
|
|
|
|
|
delete?: never;
|
|
|
|
|
options?: never;
|
|
|
|
|
head?: never;
|
|
|
|
|
patch?: never;
|
|
|
|
|
trace?: never;
|
|
|
|
|
};
|
|
|
|
|
"/auth/login": {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: never;
|
|
|
|
|
path?: never;
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
get?: never;
|
|
|
|
|
put?: never;
|
|
|
|
|
/** Login with local credentials */
|
|
|
|
|
post: operations["login"];
|
|
|
|
|
delete?: never;
|
|
|
|
|
options?: never;
|
|
|
|
|
head?: never;
|
|
|
|
|
patch?: never;
|
|
|
|
|
trace?: never;
|
|
|
|
|
};
|
|
|
|
|
"/agents/{id}/refresh": {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: never;
|
|
|
|
|
path?: never;
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
get?: never;
|
|
|
|
|
put?: never;
|
|
|
|
|
/**
|
|
|
|
|
* Refresh access token
|
|
|
|
|
* @description Issues a new access JWT from a valid refresh token
|
|
|
|
|
*/
|
|
|
|
|
post: operations["refresh_1"];
|
|
|
|
|
delete?: never;
|
|
|
|
|
options?: never;
|
|
|
|
|
head?: never;
|
|
|
|
|
patch?: never;
|
|
|
|
|
trace?: never;
|
|
|
|
|
};
|
|
|
|
|
"/agents/{id}/heartbeat": {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: never;
|
|
|
|
|
path?: never;
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
get?: never;
|
|
|
|
|
put?: never;
|
|
|
|
|
/**
|
|
|
|
|
* Agent heartbeat ping
|
|
|
|
|
* @description Updates the agent's last heartbeat timestamp
|
|
|
|
|
*/
|
|
|
|
|
post: operations["heartbeat"];
|
|
|
|
|
delete?: never;
|
|
|
|
|
options?: never;
|
|
|
|
|
head?: never;
|
|
|
|
|
patch?: never;
|
|
|
|
|
trace?: never;
|
|
|
|
|
};
|
|
|
|
|
"/agents/{id}/commands": {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: never;
|
|
|
|
|
path?: never;
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
get?: never;
|
|
|
|
|
put?: never;
|
|
|
|
|
/**
|
|
|
|
|
* Send command to a specific agent
|
|
|
|
|
* @description Sends a config-update, deep-trace, or replay command to the specified agent
|
|
|
|
|
*/
|
|
|
|
|
post: operations["sendCommand"];
|
|
|
|
|
delete?: never;
|
|
|
|
|
options?: never;
|
|
|
|
|
head?: never;
|
|
|
|
|
patch?: never;
|
|
|
|
|
trace?: never;
|
|
|
|
|
};
|
|
|
|
|
"/agents/{id}/commands/{commandId}/ack": {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: never;
|
|
|
|
|
path?: never;
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
get?: never;
|
|
|
|
|
put?: never;
|
|
|
|
|
/**
|
|
|
|
|
* Acknowledge command receipt
|
|
|
|
|
* @description Agent acknowledges that it has received and processed a command
|
|
|
|
|
*/
|
|
|
|
|
post: operations["acknowledgeCommand"];
|
|
|
|
|
delete?: never;
|
|
|
|
|
options?: never;
|
|
|
|
|
head?: never;
|
|
|
|
|
patch?: never;
|
|
|
|
|
trace?: never;
|
|
|
|
|
};
|
|
|
|
|
"/agents/register": {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: never;
|
|
|
|
|
path?: never;
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
get?: never;
|
|
|
|
|
put?: never;
|
|
|
|
|
/**
|
|
|
|
|
* Register an agent
|
|
|
|
|
* @description Registers a new agent or re-registers an existing one. Requires bootstrap token in Authorization header.
|
|
|
|
|
*/
|
|
|
|
|
post: operations["register"];
|
|
|
|
|
delete?: never;
|
|
|
|
|
options?: never;
|
|
|
|
|
head?: never;
|
|
|
|
|
patch?: never;
|
|
|
|
|
trace?: never;
|
|
|
|
|
};
|
|
|
|
|
"/agents/groups/{group}/commands": {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: never;
|
|
|
|
|
path?: never;
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
get?: never;
|
|
|
|
|
put?: never;
|
|
|
|
|
/**
|
|
|
|
|
* Send command to all agents in a group
|
|
|
|
|
* @description Sends a command to all LIVE agents in the specified group
|
|
|
|
|
*/
|
|
|
|
|
post: operations["sendGroupCommand"];
|
|
|
|
|
delete?: never;
|
|
|
|
|
options?: never;
|
|
|
|
|
head?: never;
|
|
|
|
|
patch?: never;
|
|
|
|
|
trace?: never;
|
|
|
|
|
};
|
|
|
|
|
"/agents/commands": {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: never;
|
|
|
|
|
path?: never;
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
get?: never;
|
|
|
|
|
put?: never;
|
|
|
|
|
/**
|
|
|
|
|
* Broadcast command to all live agents
|
|
|
|
|
* @description Sends a command to all agents currently in LIVE state
|
|
|
|
|
*/
|
|
|
|
|
post: operations["broadcastCommand"];
|
|
|
|
|
delete?: never;
|
|
|
|
|
options?: never;
|
|
|
|
|
head?: never;
|
|
|
|
|
patch?: never;
|
|
|
|
|
trace?: never;
|
|
|
|
|
};
|
|
|
|
|
"/admin/users": {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: never;
|
|
|
|
|
path?: never;
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
/** List all users with RBAC detail */
|
|
|
|
|
get: operations["listUsers"];
|
|
|
|
|
put?: never;
|
|
|
|
|
/** Create a local user */
|
|
|
|
|
post: operations["createUser"];
|
|
|
|
|
delete?: never;
|
|
|
|
|
options?: never;
|
|
|
|
|
head?: never;
|
|
|
|
|
patch?: never;
|
|
|
|
|
trace?: never;
|
|
|
|
|
};
|
|
|
|
|
"/admin/users/{userId}/roles/{roleId}": {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: never;
|
|
|
|
|
path?: never;
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
get?: never;
|
|
|
|
|
put?: never;
|
|
|
|
|
/** Assign a role to a user */
|
|
|
|
|
post: operations["assignRoleToUser"];
|
|
|
|
|
/** Remove a role from a user */
|
|
|
|
|
delete: operations["removeRoleFromUser"];
|
|
|
|
|
options?: never;
|
|
|
|
|
head?: never;
|
|
|
|
|
patch?: never;
|
|
|
|
|
trace?: never;
|
|
|
|
|
};
|
|
|
|
|
"/admin/users/{userId}/groups/{groupId}": {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: never;
|
|
|
|
|
path?: never;
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
get?: never;
|
|
|
|
|
put?: never;
|
|
|
|
|
/** Add a user to a group */
|
|
|
|
|
post: operations["addUserToGroup"];
|
|
|
|
|
/** Remove a user from a group */
|
|
|
|
|
delete: operations["removeUserFromGroup"];
|
|
|
|
|
options?: never;
|
|
|
|
|
head?: never;
|
|
|
|
|
patch?: never;
|
|
|
|
|
trace?: never;
|
|
|
|
|
};
|
|
|
|
|
"/admin/roles": {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: never;
|
|
|
|
|
path?: never;
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
/** List all roles (system and custom) */
|
|
|
|
|
get: operations["listRoles"];
|
|
|
|
|
put?: never;
|
|
|
|
|
/** Create a custom role */
|
|
|
|
|
post: operations["createRole"];
|
|
|
|
|
delete?: never;
|
|
|
|
|
options?: never;
|
|
|
|
|
head?: never;
|
|
|
|
|
patch?: never;
|
|
|
|
|
trace?: never;
|
|
|
|
|
};
|
|
|
|
|
"/admin/oidc/test": {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: never;
|
|
|
|
|
path?: never;
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
get?: never;
|
|
|
|
|
put?: never;
|
|
|
|
|
/** Test OIDC provider connectivity */
|
|
|
|
|
post: operations["testConnection"];
|
|
|
|
|
delete?: never;
|
|
|
|
|
options?: never;
|
|
|
|
|
head?: never;
|
|
|
|
|
patch?: never;
|
|
|
|
|
trace?: never;
|
|
|
|
|
};
|
|
|
|
|
"/admin/groups": {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: never;
|
|
|
|
|
path?: never;
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
/** List all groups with hierarchy and effective roles */
|
|
|
|
|
get: operations["listGroups"];
|
|
|
|
|
put?: never;
|
|
|
|
|
/** Create a new group */
|
|
|
|
|
post: operations["createGroup"];
|
|
|
|
|
delete?: never;
|
|
|
|
|
options?: never;
|
|
|
|
|
head?: never;
|
|
|
|
|
patch?: never;
|
|
|
|
|
trace?: never;
|
|
|
|
|
};
|
|
|
|
|
"/admin/groups/{id}/roles/{roleId}": {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: never;
|
|
|
|
|
path?: never;
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
get?: never;
|
|
|
|
|
put?: never;
|
|
|
|
|
/** Assign a role to a group */
|
|
|
|
|
post: operations["assignRoleToGroup"];
|
|
|
|
|
/** Remove a role from a group */
|
|
|
|
|
delete: operations["removeRoleFromGroup"];
|
|
|
|
|
options?: never;
|
|
|
|
|
head?: never;
|
|
|
|
|
patch?: never;
|
|
|
|
|
trace?: never;
|
|
|
|
|
};
|
|
|
|
|
"/admin/database/queries/{pid}/kill": {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: never;
|
|
|
|
|
path?: never;
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
get?: never;
|
|
|
|
|
put?: never;
|
|
|
|
|
/** Terminate a query by PID */
|
|
|
|
|
post: operations["killQuery"];
|
|
|
|
|
delete?: never;
|
|
|
|
|
options?: never;
|
|
|
|
|
head?: never;
|
|
|
|
|
patch?: never;
|
|
|
|
|
trace?: never;
|
|
|
|
|
};
|
|
|
|
|
"/search/stats": {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: never;
|
|
|
|
|
path?: never;
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
/** Aggregate execution stats (P99 latency, active count) */
|
|
|
|
|
get: operations["stats"];
|
|
|
|
|
put?: never;
|
|
|
|
|
post?: never;
|
|
|
|
|
delete?: never;
|
|
|
|
|
options?: never;
|
|
|
|
|
head?: never;
|
|
|
|
|
patch?: never;
|
|
|
|
|
trace?: never;
|
|
|
|
|
};
|
|
|
|
|
"/search/stats/timeseries": {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: never;
|
|
|
|
|
path?: never;
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
/** Bucketed time-series stats over a time window */
|
|
|
|
|
get: operations["timeseries"];
|
|
|
|
|
put?: never;
|
|
|
|
|
post?: never;
|
|
|
|
|
delete?: never;
|
|
|
|
|
options?: never;
|
|
|
|
|
head?: never;
|
|
|
|
|
patch?: never;
|
|
|
|
|
trace?: never;
|
|
|
|
|
};
|
|
|
|
|
"/routes/metrics": {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: never;
|
|
|
|
|
path?: never;
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
/**
|
|
|
|
|
* Get route metrics
|
|
|
|
|
* @description Returns aggregated performance metrics per route for the given time window
|
|
|
|
|
*/
|
|
|
|
|
get: operations["getMetrics"];
|
|
|
|
|
put?: never;
|
|
|
|
|
post?: never;
|
|
|
|
|
delete?: never;
|
|
|
|
|
options?: never;
|
|
|
|
|
head?: never;
|
|
|
|
|
patch?: never;
|
|
|
|
|
trace?: never;
|
|
|
|
|
};
|
|
|
|
|
"/routes/catalog": {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: never;
|
|
|
|
|
path?: never;
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
/**
|
|
|
|
|
* Get route catalog
|
|
|
|
|
* @description Returns all applications with their routes, agents, and health status
|
|
|
|
|
*/
|
|
|
|
|
get: operations["getCatalog"];
|
|
|
|
|
put?: never;
|
|
|
|
|
post?: never;
|
|
|
|
|
delete?: never;
|
|
|
|
|
options?: never;
|
|
|
|
|
head?: never;
|
|
|
|
|
patch?: never;
|
|
|
|
|
trace?: never;
|
|
|
|
|
};
|
|
|
|
|
"/executions/{executionId}": {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: never;
|
|
|
|
|
path?: never;
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
/** Get execution detail with nested processor tree */
|
|
|
|
|
get: operations["getDetail"];
|
|
|
|
|
put?: never;
|
|
|
|
|
post?: never;
|
|
|
|
|
delete?: never;
|
|
|
|
|
options?: never;
|
|
|
|
|
head?: never;
|
|
|
|
|
patch?: never;
|
|
|
|
|
trace?: never;
|
|
|
|
|
};
|
|
|
|
|
"/executions/{executionId}/processors/{index}/snapshot": {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: never;
|
|
|
|
|
path?: never;
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
/** Get exchange snapshot for a specific processor */
|
|
|
|
|
get: operations["getProcessorSnapshot"];
|
|
|
|
|
put?: never;
|
|
|
|
|
post?: never;
|
|
|
|
|
delete?: never;
|
|
|
|
|
options?: never;
|
|
|
|
|
head?: never;
|
|
|
|
|
patch?: never;
|
|
|
|
|
trace?: never;
|
|
|
|
|
};
|
|
|
|
|
"/diagrams": {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: never;
|
|
|
|
|
path?: never;
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
/**
|
|
|
|
|
* Find diagram by application group and route ID
|
|
|
|
|
* @description Resolves group to agent IDs and finds the latest diagram for the route
|
|
|
|
|
*/
|
|
|
|
|
get: operations["findByGroupAndRoute"];
|
|
|
|
|
put?: never;
|
|
|
|
|
post?: never;
|
|
|
|
|
delete?: never;
|
|
|
|
|
options?: never;
|
|
|
|
|
head?: never;
|
|
|
|
|
patch?: never;
|
|
|
|
|
trace?: never;
|
|
|
|
|
};
|
|
|
|
|
"/diagrams/{contentHash}/render": {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: never;
|
|
|
|
|
path?: never;
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
/**
|
|
|
|
|
* Render a route diagram
|
|
|
|
|
* @description Returns SVG (default) or JSON layout based on Accept header
|
|
|
|
|
*/
|
|
|
|
|
get: operations["renderDiagram"];
|
|
|
|
|
put?: never;
|
|
|
|
|
post?: never;
|
|
|
|
|
delete?: never;
|
|
|
|
|
options?: never;
|
|
|
|
|
head?: never;
|
|
|
|
|
patch?: never;
|
|
|
|
|
trace?: never;
|
|
|
|
|
};
|
|
|
|
|
"/auth/oidc/config": {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: never;
|
|
|
|
|
path?: never;
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
/** Get OIDC config for SPA login flow */
|
|
|
|
|
get: operations["getConfig_1"];
|
|
|
|
|
put?: never;
|
|
|
|
|
post?: never;
|
|
|
|
|
delete?: never;
|
|
|
|
|
options?: never;
|
|
|
|
|
head?: never;
|
|
|
|
|
patch?: never;
|
|
|
|
|
trace?: never;
|
|
|
|
|
};
|
|
|
|
|
"/agents": {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: never;
|
|
|
|
|
path?: never;
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
/**
|
|
|
|
|
* List all agents
|
|
|
|
|
* @description Returns all registered agents with runtime metrics, optionally filtered by status and/or group
|
|
|
|
|
*/
|
|
|
|
|
get: operations["listAgents"];
|
|
|
|
|
put?: never;
|
|
|
|
|
post?: never;
|
|
|
|
|
delete?: never;
|
|
|
|
|
options?: never;
|
|
|
|
|
head?: never;
|
|
|
|
|
patch?: never;
|
|
|
|
|
trace?: never;
|
|
|
|
|
};
|
|
|
|
|
"/agents/{id}/events": {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: never;
|
|
|
|
|
path?: never;
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
/**
|
|
|
|
|
* Open SSE event stream
|
|
|
|
|
* @description Opens a Server-Sent Events stream for the specified agent. Commands (config-update, deep-trace, replay) are pushed as events. Ping keepalive comments sent every 15 seconds.
|
|
|
|
|
*/
|
|
|
|
|
get: operations["events"];
|
|
|
|
|
put?: never;
|
|
|
|
|
post?: never;
|
|
|
|
|
delete?: never;
|
|
|
|
|
options?: never;
|
|
|
|
|
head?: never;
|
|
|
|
|
patch?: never;
|
|
|
|
|
trace?: never;
|
|
|
|
|
};
|
|
|
|
|
"/agents/events-log": {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: never;
|
|
|
|
|
path?: never;
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
/**
|
|
|
|
|
* Query agent events
|
|
|
|
|
* @description Returns agent lifecycle events, optionally filtered by app and/or agent ID
|
|
|
|
|
*/
|
|
|
|
|
get: operations["getEvents"];
|
|
|
|
|
put?: never;
|
|
|
|
|
post?: never;
|
|
|
|
|
delete?: never;
|
|
|
|
|
options?: never;
|
|
|
|
|
head?: never;
|
|
|
|
|
patch?: never;
|
|
|
|
|
trace?: never;
|
|
|
|
|
};
|
|
|
|
|
"/admin/rbac/stats": {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: never;
|
|
|
|
|
path?: never;
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
/** Get RBAC statistics for the dashboard */
|
|
|
|
|
get: operations["getStats"];
|
|
|
|
|
put?: never;
|
|
|
|
|
post?: never;
|
|
|
|
|
delete?: never;
|
|
|
|
|
options?: never;
|
|
|
|
|
head?: never;
|
|
|
|
|
patch?: never;
|
|
|
|
|
trace?: never;
|
|
|
|
|
};
|
|
|
|
|
"/admin/opensearch/status": {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: never;
|
|
|
|
|
path?: never;
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
/** Get OpenSearch cluster status and version */
|
|
|
|
|
get: operations["getStatus"];
|
|
|
|
|
put?: never;
|
|
|
|
|
post?: never;
|
|
|
|
|
delete?: never;
|
|
|
|
|
options?: never;
|
|
|
|
|
head?: never;
|
|
|
|
|
patch?: never;
|
|
|
|
|
trace?: never;
|
|
|
|
|
};
|
|
|
|
|
"/admin/opensearch/pipeline": {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: never;
|
|
|
|
|
path?: never;
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
/** Get indexing pipeline statistics */
|
|
|
|
|
get: operations["getPipeline"];
|
|
|
|
|
put?: never;
|
|
|
|
|
post?: never;
|
|
|
|
|
delete?: never;
|
|
|
|
|
options?: never;
|
|
|
|
|
head?: never;
|
|
|
|
|
patch?: never;
|
|
|
|
|
trace?: never;
|
|
|
|
|
};
|
|
|
|
|
"/admin/opensearch/performance": {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: never;
|
|
|
|
|
path?: never;
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
/** Get OpenSearch performance metrics */
|
|
|
|
|
get: operations["getPerformance"];
|
|
|
|
|
put?: never;
|
|
|
|
|
post?: never;
|
|
|
|
|
delete?: never;
|
|
|
|
|
options?: never;
|
|
|
|
|
head?: never;
|
|
|
|
|
patch?: never;
|
|
|
|
|
trace?: never;
|
|
|
|
|
};
|
|
|
|
|
"/admin/opensearch/indices": {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: never;
|
|
|
|
|
path?: never;
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
/** Get OpenSearch indices with pagination */
|
|
|
|
|
get: operations["getIndices"];
|
|
|
|
|
put?: never;
|
|
|
|
|
post?: never;
|
|
|
|
|
delete?: never;
|
|
|
|
|
options?: never;
|
|
|
|
|
head?: never;
|
|
|
|
|
patch?: never;
|
|
|
|
|
trace?: never;
|
|
|
|
|
};
|
|
|
|
|
"/admin/database/tables": {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: never;
|
|
|
|
|
path?: never;
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
/** Get table sizes and row counts */
|
|
|
|
|
get: operations["getTables"];
|
|
|
|
|
put?: never;
|
|
|
|
|
post?: never;
|
|
|
|
|
delete?: never;
|
|
|
|
|
options?: never;
|
|
|
|
|
head?: never;
|
|
|
|
|
patch?: never;
|
|
|
|
|
trace?: never;
|
|
|
|
|
};
|
|
|
|
|
"/admin/database/status": {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: never;
|
|
|
|
|
path?: never;
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
/** Get database connection status and version */
|
|
|
|
|
get: operations["getStatus_1"];
|
|
|
|
|
put?: never;
|
|
|
|
|
post?: never;
|
|
|
|
|
delete?: never;
|
|
|
|
|
options?: never;
|
|
|
|
|
head?: never;
|
|
|
|
|
patch?: never;
|
|
|
|
|
trace?: never;
|
|
|
|
|
};
|
|
|
|
|
"/admin/database/queries": {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: never;
|
|
|
|
|
path?: never;
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
/** Get active queries */
|
|
|
|
|
get: operations["getQueries"];
|
|
|
|
|
put?: never;
|
|
|
|
|
post?: never;
|
|
|
|
|
delete?: never;
|
|
|
|
|
options?: never;
|
|
|
|
|
head?: never;
|
|
|
|
|
patch?: never;
|
|
|
|
|
trace?: never;
|
|
|
|
|
};
|
|
|
|
|
"/admin/database/pool": {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: never;
|
|
|
|
|
path?: never;
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
/** Get HikariCP connection pool stats */
|
|
|
|
|
get: operations["getPool"];
|
|
|
|
|
put?: never;
|
|
|
|
|
post?: never;
|
|
|
|
|
delete?: never;
|
|
|
|
|
options?: never;
|
|
|
|
|
head?: never;
|
|
|
|
|
patch?: never;
|
|
|
|
|
trace?: never;
|
|
|
|
|
};
|
|
|
|
|
"/admin/audit": {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: never;
|
|
|
|
|
path?: never;
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
/** Search audit log entries with pagination */
|
|
|
|
|
get: operations["getAuditLog"];
|
|
|
|
|
put?: never;
|
|
|
|
|
post?: never;
|
|
|
|
|
delete?: never;
|
|
|
|
|
options?: never;
|
|
|
|
|
head?: never;
|
|
|
|
|
patch?: never;
|
|
|
|
|
trace?: never;
|
|
|
|
|
};
|
|
|
|
|
"/admin/opensearch/indices/{name}": {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: never;
|
|
|
|
|
path?: never;
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
get?: never;
|
|
|
|
|
put?: never;
|
|
|
|
|
post?: never;
|
|
|
|
|
/** Delete an OpenSearch index */
|
|
|
|
|
delete: operations["deleteIndex"];
|
|
|
|
|
options?: never;
|
|
|
|
|
head?: never;
|
|
|
|
|
patch?: never;
|
|
|
|
|
trace?: never;
|
|
|
|
|
};
|
2026-03-13 18:20:08 +01:00
|
|
|
}
|
2026-03-23 18:16:15 +01:00
|
|
|
export type webhooks = Record<string, never>;
|
2026-03-14 14:24:33 +01:00
|
|
|
export interface components {
|
2026-03-23 18:16:15 +01:00
|
|
|
schemas: {
|
|
|
|
|
UpdateUserRequest: {
|
|
|
|
|
displayName?: string;
|
|
|
|
|
email?: string;
|
|
|
|
|
};
|
|
|
|
|
/** @description Database monitoring thresholds */
|
|
|
|
|
DatabaseThresholdsRequest: {
|
|
|
|
|
/**
|
|
|
|
|
* Format: int32
|
|
|
|
|
* @description Connection pool usage warning threshold (percentage)
|
|
|
|
|
*/
|
|
|
|
|
connectionPoolWarning?: number;
|
|
|
|
|
/**
|
|
|
|
|
* Format: int32
|
|
|
|
|
* @description Connection pool usage critical threshold (percentage)
|
|
|
|
|
*/
|
|
|
|
|
connectionPoolCritical?: number;
|
|
|
|
|
/**
|
|
|
|
|
* Format: double
|
|
|
|
|
* @description Query duration warning threshold (seconds)
|
|
|
|
|
*/
|
|
|
|
|
queryDurationWarning?: number;
|
|
|
|
|
/**
|
|
|
|
|
* Format: double
|
|
|
|
|
* @description Query duration critical threshold (seconds)
|
|
|
|
|
*/
|
|
|
|
|
queryDurationCritical?: number;
|
|
|
|
|
};
|
|
|
|
|
/** @description OpenSearch monitoring thresholds */
|
|
|
|
|
OpenSearchThresholdsRequest: {
|
|
|
|
|
/** @description Cluster health warning threshold (GREEN, YELLOW, RED) */
|
|
|
|
|
clusterHealthWarning?: string;
|
|
|
|
|
/** @description Cluster health critical threshold (GREEN, YELLOW, RED) */
|
|
|
|
|
clusterHealthCritical?: string;
|
|
|
|
|
/**
|
|
|
|
|
* Format: int32
|
|
|
|
|
* @description Queue depth warning threshold
|
|
|
|
|
*/
|
|
|
|
|
queueDepthWarning?: number;
|
|
|
|
|
/**
|
|
|
|
|
* Format: int32
|
|
|
|
|
* @description Queue depth critical threshold
|
|
|
|
|
*/
|
|
|
|
|
queueDepthCritical?: number;
|
|
|
|
|
/**
|
|
|
|
|
* Format: int32
|
|
|
|
|
* @description JVM heap usage warning threshold (percentage)
|
|
|
|
|
*/
|
|
|
|
|
jvmHeapWarning?: number;
|
|
|
|
|
/**
|
|
|
|
|
* Format: int32
|
|
|
|
|
* @description JVM heap usage critical threshold (percentage)
|
|
|
|
|
*/
|
|
|
|
|
jvmHeapCritical?: number;
|
|
|
|
|
/**
|
|
|
|
|
* Format: int32
|
|
|
|
|
* @description Failed document count warning threshold
|
|
|
|
|
*/
|
|
|
|
|
failedDocsWarning?: number;
|
|
|
|
|
/**
|
|
|
|
|
* Format: int32
|
|
|
|
|
* @description Failed document count critical threshold
|
|
|
|
|
*/
|
|
|
|
|
failedDocsCritical?: number;
|
|
|
|
|
};
|
|
|
|
|
/** @description Threshold configuration for admin monitoring */
|
|
|
|
|
ThresholdConfigRequest: {
|
|
|
|
|
database: components["schemas"]["DatabaseThresholdsRequest"];
|
|
|
|
|
opensearch: components["schemas"]["OpenSearchThresholdsRequest"];
|
|
|
|
|
};
|
|
|
|
|
DatabaseThresholds: {
|
|
|
|
|
/** Format: int32 */
|
|
|
|
|
connectionPoolWarning?: number;
|
|
|
|
|
/** Format: int32 */
|
|
|
|
|
connectionPoolCritical?: number;
|
|
|
|
|
/** Format: double */
|
|
|
|
|
queryDurationWarning?: number;
|
|
|
|
|
/** Format: double */
|
|
|
|
|
queryDurationCritical?: number;
|
|
|
|
|
};
|
|
|
|
|
OpenSearchThresholds: {
|
|
|
|
|
clusterHealthWarning?: string;
|
|
|
|
|
clusterHealthCritical?: string;
|
|
|
|
|
/** Format: int32 */
|
|
|
|
|
queueDepthWarning?: number;
|
|
|
|
|
/** Format: int32 */
|
|
|
|
|
queueDepthCritical?: number;
|
|
|
|
|
/** Format: int32 */
|
|
|
|
|
jvmHeapWarning?: number;
|
|
|
|
|
/** Format: int32 */
|
|
|
|
|
jvmHeapCritical?: number;
|
|
|
|
|
/** Format: int32 */
|
|
|
|
|
failedDocsWarning?: number;
|
|
|
|
|
/** Format: int32 */
|
|
|
|
|
failedDocsCritical?: number;
|
|
|
|
|
};
|
|
|
|
|
ThresholdConfig: {
|
|
|
|
|
database?: components["schemas"]["DatabaseThresholds"];
|
|
|
|
|
opensearch?: components["schemas"]["OpenSearchThresholds"];
|
|
|
|
|
};
|
|
|
|
|
UpdateRoleRequest: {
|
|
|
|
|
name?: string;
|
|
|
|
|
description?: string;
|
|
|
|
|
scope?: string;
|
|
|
|
|
};
|
|
|
|
|
/** @description OIDC configuration update request */
|
|
|
|
|
OidcAdminConfigRequest: {
|
|
|
|
|
enabled?: boolean;
|
|
|
|
|
issuerUri?: string;
|
|
|
|
|
clientId?: string;
|
|
|
|
|
clientSecret?: string;
|
|
|
|
|
rolesClaim?: string;
|
|
|
|
|
defaultRoles?: string[];
|
|
|
|
|
autoSignup?: boolean;
|
|
|
|
|
displayNameClaim?: string;
|
|
|
|
|
};
|
|
|
|
|
/** @description Error response */
|
|
|
|
|
ErrorResponse: {
|
|
|
|
|
message: string;
|
|
|
|
|
};
|
|
|
|
|
/** @description OIDC configuration for admin management */
|
|
|
|
|
OidcAdminConfigResponse: {
|
|
|
|
|
configured?: boolean;
|
|
|
|
|
enabled?: boolean;
|
|
|
|
|
issuerUri?: string;
|
|
|
|
|
clientId?: string;
|
|
|
|
|
clientSecretSet?: boolean;
|
|
|
|
|
rolesClaim?: string;
|
|
|
|
|
defaultRoles?: string[];
|
|
|
|
|
autoSignup?: boolean;
|
|
|
|
|
displayNameClaim?: string;
|
|
|
|
|
};
|
|
|
|
|
UpdateGroupRequest: {
|
|
|
|
|
name?: string;
|
|
|
|
|
/** Format: uuid */
|
|
|
|
|
parentGroupId?: string;
|
|
|
|
|
};
|
|
|
|
|
SearchRequest: {
|
|
|
|
|
status?: string;
|
|
|
|
|
/** Format: date-time */
|
|
|
|
|
timeFrom?: string;
|
|
|
|
|
/** Format: date-time */
|
|
|
|
|
timeTo?: string;
|
|
|
|
|
/** Format: int64 */
|
|
|
|
|
durationMin?: number;
|
|
|
|
|
/** Format: int64 */
|
|
|
|
|
durationMax?: number;
|
|
|
|
|
correlationId?: string;
|
|
|
|
|
text?: string;
|
|
|
|
|
textInBody?: string;
|
|
|
|
|
textInHeaders?: string;
|
|
|
|
|
textInErrors?: string;
|
|
|
|
|
routeId?: string;
|
|
|
|
|
agentId?: string;
|
|
|
|
|
processorType?: string;
|
refactor: rename group/groupName to application/applicationName
The execution-related "group" concept actually represents the
application name. Rename all Java fields, API parameters, and frontend
types from groupName→applicationName and group→application for clarity.
- Java records: ExecutionSummary, ExecutionDetail, ExecutionDocument,
ExecutionRecord, ProcessorRecord
- API params: SearchRequest.group→application, SearchController
@RequestParam group→application
- Services: IngestionService, DetailService, SearchIndexer, StatsStore
- Frontend: schema.d.ts, Dashboard, ExchangeDetail, RouteDetail,
executions query hooks
Database column names (group_name) and OpenSearch field names are
unchanged — only the API-facing Java/TS field names are renamed.
RBAC group references (groups table, GroupRepository, GroupsTab) are
a separate domain concept and are NOT affected by this change.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-23 21:21:38 +01:00
|
|
|
application?: string;
|
2026-03-23 18:16:15 +01:00
|
|
|
agentIds?: string[];
|
|
|
|
|
/** Format: int32 */
|
|
|
|
|
offset?: number;
|
|
|
|
|
/** Format: int32 */
|
|
|
|
|
limit?: number;
|
|
|
|
|
sortField?: string;
|
|
|
|
|
sortDir?: string;
|
|
|
|
|
};
|
|
|
|
|
ExecutionSummary: {
|
|
|
|
|
executionId: string;
|
|
|
|
|
routeId: string;
|
|
|
|
|
agentId: string;
|
refactor: rename group/groupName to application/applicationName
The execution-related "group" concept actually represents the
application name. Rename all Java fields, API parameters, and frontend
types from groupName→applicationName and group→application for clarity.
- Java records: ExecutionSummary, ExecutionDetail, ExecutionDocument,
ExecutionRecord, ProcessorRecord
- API params: SearchRequest.group→application, SearchController
@RequestParam group→application
- Services: IngestionService, DetailService, SearchIndexer, StatsStore
- Frontend: schema.d.ts, Dashboard, ExchangeDetail, RouteDetail,
executions query hooks
Database column names (group_name) and OpenSearch field names are
unchanged — only the API-facing Java/TS field names are renamed.
RBAC group references (groups table, GroupRepository, GroupsTab) are
a separate domain concept and are NOT affected by this change.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-23 21:21:38 +01:00
|
|
|
applicationName: string;
|
2026-03-23 18:16:15 +01:00
|
|
|
status: string;
|
|
|
|
|
/** Format: date-time */
|
|
|
|
|
startTime: string;
|
|
|
|
|
/** Format: date-time */
|
|
|
|
|
endTime: string;
|
|
|
|
|
/** Format: int64 */
|
|
|
|
|
durationMs: number;
|
|
|
|
|
correlationId: string;
|
|
|
|
|
errorMessage: string;
|
|
|
|
|
diagramContentHash: string;
|
|
|
|
|
};
|
|
|
|
|
SearchResultExecutionSummary: {
|
|
|
|
|
data: components["schemas"]["ExecutionSummary"][];
|
|
|
|
|
/** Format: int64 */
|
|
|
|
|
total: number;
|
|
|
|
|
/** Format: int32 */
|
|
|
|
|
offset: number;
|
|
|
|
|
/** Format: int32 */
|
|
|
|
|
limit: number;
|
|
|
|
|
};
|
|
|
|
|
RefreshRequest: {
|
|
|
|
|
refreshToken?: string;
|
|
|
|
|
};
|
|
|
|
|
/** @description JWT token pair */
|
|
|
|
|
AuthTokenResponse: {
|
|
|
|
|
accessToken: string;
|
|
|
|
|
refreshToken: string;
|
|
|
|
|
displayName: string;
|
|
|
|
|
/** @description OIDC id_token for end-session logout (only present after OIDC login) */
|
|
|
|
|
idToken?: string;
|
|
|
|
|
};
|
|
|
|
|
CallbackRequest: {
|
|
|
|
|
code?: string;
|
|
|
|
|
redirectUri?: string;
|
|
|
|
|
};
|
|
|
|
|
LoginRequest: {
|
|
|
|
|
username?: string;
|
|
|
|
|
password?: string;
|
|
|
|
|
};
|
|
|
|
|
/** @description Agent token refresh request */
|
|
|
|
|
AgentRefreshRequest: {
|
|
|
|
|
refreshToken: string;
|
|
|
|
|
};
|
|
|
|
|
/** @description Refreshed access and refresh tokens */
|
|
|
|
|
AgentRefreshResponse: {
|
|
|
|
|
accessToken: string;
|
|
|
|
|
refreshToken: string;
|
|
|
|
|
};
|
|
|
|
|
/** @description Command to send to agent(s) */
|
|
|
|
|
CommandRequest: {
|
|
|
|
|
/** @description Command type: config-update, deep-trace, or replay */
|
|
|
|
|
type: string;
|
|
|
|
|
/** @description Command payload JSON */
|
|
|
|
|
payload?: Record<string, never>;
|
|
|
|
|
};
|
|
|
|
|
/** @description Result of sending a command to a single agent */
|
|
|
|
|
CommandSingleResponse: {
|
|
|
|
|
commandId: string;
|
|
|
|
|
status: string;
|
|
|
|
|
};
|
|
|
|
|
/** @description Agent registration payload */
|
|
|
|
|
AgentRegistrationRequest: {
|
|
|
|
|
agentId: string;
|
|
|
|
|
name: string;
|
|
|
|
|
/** @default default */
|
|
|
|
|
group: string;
|
|
|
|
|
version?: string;
|
|
|
|
|
routeIds?: string[];
|
|
|
|
|
capabilities?: {
|
|
|
|
|
[key: string]: Record<string, never>;
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
/** @description Agent registration result with JWT tokens and SSE endpoint */
|
|
|
|
|
AgentRegistrationResponse: {
|
|
|
|
|
agentId: string;
|
|
|
|
|
sseEndpoint: string;
|
|
|
|
|
/** Format: int64 */
|
|
|
|
|
heartbeatIntervalMs?: number;
|
|
|
|
|
serverPublicKey: string;
|
|
|
|
|
accessToken: string;
|
|
|
|
|
refreshToken: string;
|
|
|
|
|
};
|
|
|
|
|
/** @description Result of broadcasting a command to multiple agents */
|
|
|
|
|
CommandBroadcastResponse: {
|
|
|
|
|
commandIds: string[];
|
|
|
|
|
/** Format: int32 */
|
|
|
|
|
targetCount?: number;
|
|
|
|
|
};
|
|
|
|
|
CreateUserRequest: {
|
|
|
|
|
username?: string;
|
|
|
|
|
displayName?: string;
|
|
|
|
|
email?: string;
|
|
|
|
|
password?: string;
|
|
|
|
|
};
|
|
|
|
|
GroupSummary: {
|
|
|
|
|
/** Format: uuid */
|
|
|
|
|
id?: string;
|
|
|
|
|
name?: string;
|
|
|
|
|
};
|
|
|
|
|
RoleSummary: {
|
|
|
|
|
/** Format: uuid */
|
|
|
|
|
id?: string;
|
|
|
|
|
name?: string;
|
|
|
|
|
system?: boolean;
|
|
|
|
|
source?: string;
|
|
|
|
|
};
|
|
|
|
|
UserDetail: {
|
|
|
|
|
userId?: string;
|
|
|
|
|
provider?: string;
|
|
|
|
|
email?: string;
|
|
|
|
|
displayName?: string;
|
|
|
|
|
/** Format: date-time */
|
|
|
|
|
createdAt?: string;
|
|
|
|
|
directRoles?: components["schemas"]["RoleSummary"][];
|
|
|
|
|
directGroups?: components["schemas"]["GroupSummary"][];
|
|
|
|
|
effectiveRoles?: components["schemas"]["RoleSummary"][];
|
|
|
|
|
effectiveGroups?: components["schemas"]["GroupSummary"][];
|
|
|
|
|
};
|
|
|
|
|
CreateRoleRequest: {
|
|
|
|
|
name?: string;
|
|
|
|
|
description?: string;
|
|
|
|
|
scope?: string;
|
|
|
|
|
};
|
|
|
|
|
/** @description OIDC provider connectivity test result */
|
|
|
|
|
OidcTestResult: {
|
|
|
|
|
status: string;
|
|
|
|
|
authorizationEndpoint: string;
|
|
|
|
|
};
|
|
|
|
|
CreateGroupRequest: {
|
|
|
|
|
name?: string;
|
|
|
|
|
/** Format: uuid */
|
|
|
|
|
parentGroupId?: string;
|
|
|
|
|
};
|
|
|
|
|
ExecutionStats: {
|
|
|
|
|
/** Format: int64 */
|
|
|
|
|
totalCount: number;
|
|
|
|
|
/** Format: int64 */
|
|
|
|
|
failedCount: number;
|
|
|
|
|
/** Format: int64 */
|
|
|
|
|
avgDurationMs: number;
|
|
|
|
|
/** Format: int64 */
|
|
|
|
|
p99LatencyMs: number;
|
|
|
|
|
/** Format: int64 */
|
|
|
|
|
activeCount: number;
|
|
|
|
|
/** Format: int64 */
|
|
|
|
|
totalToday: number;
|
|
|
|
|
/** Format: int64 */
|
|
|
|
|
prevTotalCount: number;
|
|
|
|
|
/** Format: int64 */
|
|
|
|
|
prevFailedCount: number;
|
|
|
|
|
/** Format: int64 */
|
|
|
|
|
prevAvgDurationMs: number;
|
|
|
|
|
/** Format: int64 */
|
|
|
|
|
prevP99LatencyMs: number;
|
|
|
|
|
};
|
|
|
|
|
StatsTimeseries: {
|
|
|
|
|
buckets: components["schemas"]["TimeseriesBucket"][];
|
|
|
|
|
};
|
|
|
|
|
TimeseriesBucket: {
|
|
|
|
|
/** Format: date-time */
|
|
|
|
|
time: string;
|
|
|
|
|
/** Format: int64 */
|
|
|
|
|
totalCount: number;
|
|
|
|
|
/** Format: int64 */
|
|
|
|
|
failedCount: number;
|
|
|
|
|
/** Format: int64 */
|
|
|
|
|
avgDurationMs: number;
|
|
|
|
|
/** Format: int64 */
|
|
|
|
|
p99DurationMs: number;
|
|
|
|
|
/** Format: int64 */
|
|
|
|
|
activeCount: number;
|
|
|
|
|
};
|
|
|
|
|
/** @description Aggregated route performance metrics */
|
|
|
|
|
RouteMetrics: {
|
|
|
|
|
routeId: string;
|
|
|
|
|
appId: string;
|
|
|
|
|
/** Format: int64 */
|
|
|
|
|
exchangeCount: number;
|
|
|
|
|
/** Format: double */
|
|
|
|
|
successRate: number;
|
|
|
|
|
/** Format: double */
|
|
|
|
|
avgDurationMs: number;
|
|
|
|
|
/** Format: double */
|
|
|
|
|
p99DurationMs: number;
|
|
|
|
|
/** Format: double */
|
|
|
|
|
errorRate: number;
|
|
|
|
|
/** Format: double */
|
|
|
|
|
throughputPerSec: number;
|
|
|
|
|
sparkline: number[];
|
|
|
|
|
};
|
|
|
|
|
/** @description Summary of an agent instance for sidebar display */
|
|
|
|
|
AgentSummary: {
|
|
|
|
|
id: string;
|
|
|
|
|
name: string;
|
|
|
|
|
status: string;
|
|
|
|
|
/** Format: double */
|
|
|
|
|
tps: number;
|
|
|
|
|
};
|
|
|
|
|
/** @description Application catalog entry with routes and agents */
|
|
|
|
|
AppCatalogEntry: {
|
|
|
|
|
appId: string;
|
|
|
|
|
routes: components["schemas"]["RouteSummary"][];
|
|
|
|
|
agents: components["schemas"]["AgentSummary"][];
|
|
|
|
|
/** Format: int32 */
|
|
|
|
|
agentCount: number;
|
|
|
|
|
health: string;
|
|
|
|
|
/** Format: int64 */
|
|
|
|
|
exchangeCount: number;
|
|
|
|
|
};
|
|
|
|
|
/** @description Summary of a route within an application */
|
|
|
|
|
RouteSummary: {
|
|
|
|
|
routeId: string;
|
|
|
|
|
/** Format: int64 */
|
|
|
|
|
exchangeCount: number;
|
|
|
|
|
/** Format: date-time */
|
|
|
|
|
lastSeen: string;
|
|
|
|
|
};
|
|
|
|
|
ExecutionDetail: {
|
|
|
|
|
executionId: string;
|
|
|
|
|
routeId: string;
|
|
|
|
|
agentId: string;
|
|
|
|
|
status: string;
|
|
|
|
|
/** Format: date-time */
|
|
|
|
|
startTime: string;
|
|
|
|
|
/** Format: date-time */
|
|
|
|
|
endTime: string;
|
|
|
|
|
/** Format: int64 */
|
|
|
|
|
durationMs: number;
|
|
|
|
|
correlationId: string;
|
|
|
|
|
exchangeId: string;
|
|
|
|
|
errorMessage: string;
|
|
|
|
|
errorStackTrace: string;
|
|
|
|
|
diagramContentHash: string;
|
|
|
|
|
processors: components["schemas"]["ProcessorNode"][];
|
refactor: rename group/groupName to application/applicationName
The execution-related "group" concept actually represents the
application name. Rename all Java fields, API parameters, and frontend
types from groupName→applicationName and group→application for clarity.
- Java records: ExecutionSummary, ExecutionDetail, ExecutionDocument,
ExecutionRecord, ProcessorRecord
- API params: SearchRequest.group→application, SearchController
@RequestParam group→application
- Services: IngestionService, DetailService, SearchIndexer, StatsStore
- Frontend: schema.d.ts, Dashboard, ExchangeDetail, RouteDetail,
executions query hooks
Database column names (group_name) and OpenSearch field names are
unchanged — only the API-facing Java/TS field names are renamed.
RBAC group references (groups table, GroupRepository, GroupsTab) are
a separate domain concept and are NOT affected by this change.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-23 21:21:38 +01:00
|
|
|
applicationName?: string;
|
2026-03-23 18:16:15 +01:00
|
|
|
children?: components["schemas"]["ProcessorNode"][];
|
|
|
|
|
};
|
|
|
|
|
ProcessorNode: {
|
|
|
|
|
processorId: string;
|
|
|
|
|
processorType: string;
|
|
|
|
|
status: string;
|
|
|
|
|
/** Format: date-time */
|
|
|
|
|
startTime: string;
|
|
|
|
|
/** Format: date-time */
|
|
|
|
|
endTime: string;
|
|
|
|
|
/** Format: int64 */
|
|
|
|
|
durationMs: number;
|
|
|
|
|
diagramNodeId: string;
|
|
|
|
|
errorMessage: string;
|
|
|
|
|
errorStackTrace: string;
|
|
|
|
|
children: components["schemas"]["ProcessorNode"][];
|
|
|
|
|
};
|
|
|
|
|
DiagramLayout: {
|
|
|
|
|
/** Format: double */
|
|
|
|
|
width?: number;
|
|
|
|
|
/** Format: double */
|
|
|
|
|
height?: number;
|
|
|
|
|
nodes?: components["schemas"]["PositionedNode"][];
|
|
|
|
|
edges?: components["schemas"]["PositionedEdge"][];
|
|
|
|
|
};
|
|
|
|
|
PositionedEdge: {
|
|
|
|
|
sourceId?: string;
|
|
|
|
|
targetId?: string;
|
|
|
|
|
label?: string;
|
|
|
|
|
points?: number[][];
|
|
|
|
|
};
|
|
|
|
|
PositionedNode: {
|
|
|
|
|
id?: string;
|
|
|
|
|
label?: string;
|
|
|
|
|
type?: string;
|
|
|
|
|
/** Format: double */
|
|
|
|
|
x?: number;
|
|
|
|
|
/** Format: double */
|
|
|
|
|
y?: number;
|
|
|
|
|
/** Format: double */
|
|
|
|
|
width?: number;
|
|
|
|
|
/** Format: double */
|
|
|
|
|
height?: number;
|
|
|
|
|
};
|
|
|
|
|
/** @description OIDC configuration for SPA login flow */
|
|
|
|
|
OidcPublicConfigResponse: {
|
|
|
|
|
issuer: string;
|
|
|
|
|
clientId: string;
|
|
|
|
|
authorizationEndpoint: string;
|
|
|
|
|
/** @description Present if the provider supports RP-initiated logout */
|
|
|
|
|
endSessionEndpoint?: string;
|
|
|
|
|
};
|
|
|
|
|
/** @description Agent instance summary with runtime metrics */
|
|
|
|
|
AgentInstanceResponse: {
|
|
|
|
|
id: string;
|
|
|
|
|
name: string;
|
|
|
|
|
group: string;
|
|
|
|
|
status: string;
|
|
|
|
|
routeIds: string[];
|
|
|
|
|
/** Format: date-time */
|
|
|
|
|
registeredAt: string;
|
|
|
|
|
/** Format: date-time */
|
|
|
|
|
lastHeartbeat: string;
|
|
|
|
|
/** Format: double */
|
|
|
|
|
tps: number;
|
|
|
|
|
/** Format: double */
|
|
|
|
|
errorRate: number;
|
|
|
|
|
/** Format: int32 */
|
|
|
|
|
activeRoutes: number;
|
|
|
|
|
/** Format: int32 */
|
|
|
|
|
totalRoutes: number;
|
|
|
|
|
/** Format: int64 */
|
|
|
|
|
uptimeSeconds: number;
|
|
|
|
|
};
|
|
|
|
|
SseEmitter: {
|
|
|
|
|
/** Format: int64 */
|
|
|
|
|
timeout?: number;
|
|
|
|
|
};
|
|
|
|
|
/** @description Agent lifecycle event */
|
|
|
|
|
AgentEventResponse: {
|
|
|
|
|
/** Format: int64 */
|
|
|
|
|
id: number;
|
|
|
|
|
agentId: string;
|
|
|
|
|
appId: string;
|
|
|
|
|
eventType: string;
|
|
|
|
|
detail: string;
|
|
|
|
|
/** Format: date-time */
|
|
|
|
|
timestamp: string;
|
|
|
|
|
};
|
|
|
|
|
RoleDetail: {
|
|
|
|
|
/** Format: uuid */
|
|
|
|
|
id?: string;
|
|
|
|
|
name?: string;
|
|
|
|
|
description?: string;
|
|
|
|
|
scope?: string;
|
|
|
|
|
system?: boolean;
|
|
|
|
|
/** Format: date-time */
|
|
|
|
|
createdAt?: string;
|
|
|
|
|
assignedGroups?: components["schemas"]["GroupSummary"][];
|
|
|
|
|
directUsers?: components["schemas"]["UserSummary"][];
|
|
|
|
|
effectivePrincipals?: components["schemas"]["UserSummary"][];
|
|
|
|
|
};
|
|
|
|
|
UserSummary: {
|
|
|
|
|
userId?: string;
|
|
|
|
|
displayName?: string;
|
|
|
|
|
provider?: string;
|
|
|
|
|
};
|
|
|
|
|
RbacStats: {
|
|
|
|
|
/** Format: int32 */
|
|
|
|
|
userCount?: number;
|
|
|
|
|
/** Format: int32 */
|
|
|
|
|
activeUserCount?: number;
|
|
|
|
|
/** Format: int32 */
|
|
|
|
|
groupCount?: number;
|
|
|
|
|
/** Format: int32 */
|
|
|
|
|
maxGroupDepth?: number;
|
|
|
|
|
/** Format: int32 */
|
|
|
|
|
roleCount?: number;
|
|
|
|
|
};
|
|
|
|
|
/** @description OpenSearch cluster status */
|
|
|
|
|
OpenSearchStatusResponse: {
|
|
|
|
|
/** @description Whether the cluster is reachable */
|
|
|
|
|
reachable?: boolean;
|
|
|
|
|
/** @description Cluster health status (GREEN, YELLOW, RED) */
|
|
|
|
|
clusterHealth?: string;
|
|
|
|
|
/** @description OpenSearch version */
|
|
|
|
|
version?: string;
|
|
|
|
|
/**
|
|
|
|
|
* Format: int32
|
|
|
|
|
* @description Number of nodes in the cluster
|
|
|
|
|
*/
|
|
|
|
|
nodeCount?: number;
|
|
|
|
|
/** @description OpenSearch host */
|
|
|
|
|
host?: string;
|
|
|
|
|
};
|
|
|
|
|
/** @description Search indexing pipeline statistics */
|
|
|
|
|
PipelineStatsResponse: {
|
|
|
|
|
/**
|
|
|
|
|
* Format: int32
|
|
|
|
|
* @description Current queue depth
|
|
|
|
|
*/
|
|
|
|
|
queueDepth?: number;
|
|
|
|
|
/**
|
|
|
|
|
* Format: int32
|
|
|
|
|
* @description Maximum queue size
|
|
|
|
|
*/
|
|
|
|
|
maxQueueSize?: number;
|
|
|
|
|
/**
|
|
|
|
|
* Format: int64
|
|
|
|
|
* @description Number of failed indexing operations
|
|
|
|
|
*/
|
|
|
|
|
failedCount?: number;
|
|
|
|
|
/**
|
|
|
|
|
* Format: int64
|
|
|
|
|
* @description Number of successfully indexed documents
|
|
|
|
|
*/
|
|
|
|
|
indexedCount?: number;
|
|
|
|
|
/**
|
|
|
|
|
* Format: int64
|
|
|
|
|
* @description Debounce interval in milliseconds
|
|
|
|
|
*/
|
|
|
|
|
debounceMs?: number;
|
|
|
|
|
/**
|
|
|
|
|
* Format: double
|
|
|
|
|
* @description Current indexing rate (docs/sec)
|
|
|
|
|
*/
|
|
|
|
|
indexingRate?: number;
|
|
|
|
|
/**
|
|
|
|
|
* Format: date-time
|
|
|
|
|
* @description Timestamp of last indexed document
|
|
|
|
|
*/
|
|
|
|
|
lastIndexedAt?: string;
|
|
|
|
|
};
|
|
|
|
|
/** @description OpenSearch performance metrics */
|
|
|
|
|
PerformanceResponse: {
|
|
|
|
|
/**
|
|
|
|
|
* Format: double
|
|
|
|
|
* @description Query cache hit rate (0.0-1.0)
|
|
|
|
|
*/
|
|
|
|
|
queryCacheHitRate?: number;
|
|
|
|
|
/**
|
|
|
|
|
* Format: double
|
|
|
|
|
* @description Request cache hit rate (0.0-1.0)
|
|
|
|
|
*/
|
|
|
|
|
requestCacheHitRate?: number;
|
|
|
|
|
/**
|
|
|
|
|
* Format: double
|
|
|
|
|
* @description Average search latency in milliseconds
|
|
|
|
|
*/
|
|
|
|
|
searchLatencyMs?: number;
|
|
|
|
|
/**
|
|
|
|
|
* Format: double
|
|
|
|
|
* @description Average indexing latency in milliseconds
|
|
|
|
|
*/
|
|
|
|
|
indexingLatencyMs?: number;
|
|
|
|
|
/**
|
|
|
|
|
* Format: int64
|
|
|
|
|
* @description JVM heap used in bytes
|
|
|
|
|
*/
|
|
|
|
|
jvmHeapUsedBytes?: number;
|
|
|
|
|
/**
|
|
|
|
|
* Format: int64
|
|
|
|
|
* @description JVM heap max in bytes
|
|
|
|
|
*/
|
|
|
|
|
jvmHeapMaxBytes?: number;
|
|
|
|
|
};
|
|
|
|
|
/** @description OpenSearch index information */
|
|
|
|
|
IndexInfoResponse: {
|
|
|
|
|
/** @description Index name */
|
|
|
|
|
name?: string;
|
|
|
|
|
/**
|
|
|
|
|
* Format: int64
|
|
|
|
|
* @description Document count
|
|
|
|
|
*/
|
|
|
|
|
docCount?: number;
|
|
|
|
|
/** @description Human-readable index size */
|
|
|
|
|
size?: string;
|
|
|
|
|
/**
|
|
|
|
|
* Format: int64
|
|
|
|
|
* @description Index size in bytes
|
|
|
|
|
*/
|
|
|
|
|
sizeBytes?: number;
|
|
|
|
|
/** @description Index health status */
|
|
|
|
|
health?: string;
|
|
|
|
|
/**
|
|
|
|
|
* Format: int32
|
|
|
|
|
* @description Number of primary shards
|
|
|
|
|
*/
|
|
|
|
|
primaryShards?: number;
|
|
|
|
|
/**
|
|
|
|
|
* Format: int32
|
|
|
|
|
* @description Number of replica shards
|
|
|
|
|
*/
|
|
|
|
|
replicaShards?: number;
|
|
|
|
|
};
|
|
|
|
|
/** @description Paginated list of OpenSearch indices */
|
|
|
|
|
IndicesPageResponse: {
|
|
|
|
|
/** @description Index list for current page */
|
|
|
|
|
indices?: components["schemas"]["IndexInfoResponse"][];
|
|
|
|
|
/**
|
|
|
|
|
* Format: int64
|
|
|
|
|
* @description Total number of indices
|
|
|
|
|
*/
|
|
|
|
|
totalIndices?: number;
|
|
|
|
|
/**
|
|
|
|
|
* Format: int64
|
|
|
|
|
* @description Total document count across all indices
|
|
|
|
|
*/
|
|
|
|
|
totalDocs?: number;
|
|
|
|
|
/** @description Human-readable total size */
|
|
|
|
|
totalSize?: string;
|
|
|
|
|
/**
|
|
|
|
|
* Format: int32
|
|
|
|
|
* @description Current page number (0-based)
|
|
|
|
|
*/
|
|
|
|
|
page?: number;
|
|
|
|
|
/**
|
|
|
|
|
* Format: int32
|
|
|
|
|
* @description Page size
|
|
|
|
|
*/
|
|
|
|
|
pageSize?: number;
|
|
|
|
|
/**
|
|
|
|
|
* Format: int32
|
|
|
|
|
* @description Total number of pages
|
|
|
|
|
*/
|
|
|
|
|
totalPages?: number;
|
|
|
|
|
};
|
|
|
|
|
GroupDetail: {
|
|
|
|
|
/** Format: uuid */
|
|
|
|
|
id?: string;
|
|
|
|
|
name?: string;
|
|
|
|
|
/** Format: uuid */
|
|
|
|
|
parentGroupId?: string;
|
|
|
|
|
/** Format: date-time */
|
|
|
|
|
createdAt?: string;
|
|
|
|
|
directRoles?: components["schemas"]["RoleSummary"][];
|
|
|
|
|
effectiveRoles?: components["schemas"]["RoleSummary"][];
|
|
|
|
|
members?: components["schemas"]["UserSummary"][];
|
|
|
|
|
childGroups?: components["schemas"]["GroupSummary"][];
|
|
|
|
|
};
|
|
|
|
|
/** @description Table size and row count information */
|
|
|
|
|
TableSizeResponse: {
|
|
|
|
|
/** @description Table name */
|
|
|
|
|
tableName?: string;
|
|
|
|
|
/**
|
|
|
|
|
* Format: int64
|
|
|
|
|
* @description Approximate row count
|
|
|
|
|
*/
|
|
|
|
|
rowCount?: number;
|
|
|
|
|
/** @description Human-readable data size */
|
|
|
|
|
dataSize?: string;
|
|
|
|
|
/** @description Human-readable index size */
|
|
|
|
|
indexSize?: string;
|
|
|
|
|
/**
|
|
|
|
|
* Format: int64
|
|
|
|
|
* @description Data size in bytes
|
|
|
|
|
*/
|
|
|
|
|
dataSizeBytes?: number;
|
|
|
|
|
/**
|
|
|
|
|
* Format: int64
|
|
|
|
|
* @description Index size in bytes
|
|
|
|
|
*/
|
|
|
|
|
indexSizeBytes?: number;
|
|
|
|
|
};
|
|
|
|
|
/** @description Database connection and version status */
|
|
|
|
|
DatabaseStatusResponse: {
|
|
|
|
|
/** @description Whether the database is reachable */
|
|
|
|
|
connected?: boolean;
|
|
|
|
|
/** @description PostgreSQL version string */
|
|
|
|
|
version?: string;
|
|
|
|
|
/** @description Database host */
|
|
|
|
|
host?: string;
|
|
|
|
|
/** @description Current schema search path */
|
|
|
|
|
schema?: string;
|
|
|
|
|
/** @description Whether TimescaleDB extension is available */
|
|
|
|
|
timescaleDb?: boolean;
|
|
|
|
|
};
|
|
|
|
|
/** @description Currently running database query */
|
|
|
|
|
ActiveQueryResponse: {
|
|
|
|
|
/**
|
|
|
|
|
* Format: int32
|
|
|
|
|
* @description Backend process ID
|
|
|
|
|
*/
|
|
|
|
|
pid?: number;
|
|
|
|
|
/**
|
|
|
|
|
* Format: double
|
|
|
|
|
* @description Query duration in seconds
|
|
|
|
|
*/
|
|
|
|
|
durationSeconds?: number;
|
|
|
|
|
/** @description Backend state (active, idle, etc.) */
|
|
|
|
|
state?: string;
|
|
|
|
|
/** @description SQL query text */
|
|
|
|
|
query?: string;
|
|
|
|
|
};
|
|
|
|
|
/** @description HikariCP connection pool statistics */
|
|
|
|
|
ConnectionPoolResponse: {
|
|
|
|
|
/**
|
|
|
|
|
* Format: int32
|
|
|
|
|
* @description Number of currently active connections
|
|
|
|
|
*/
|
|
|
|
|
activeConnections?: number;
|
|
|
|
|
/**
|
|
|
|
|
* Format: int32
|
|
|
|
|
* @description Number of idle connections
|
|
|
|
|
*/
|
|
|
|
|
idleConnections?: number;
|
|
|
|
|
/**
|
|
|
|
|
* Format: int32
|
|
|
|
|
* @description Number of threads waiting for a connection
|
|
|
|
|
*/
|
|
|
|
|
pendingThreads?: number;
|
|
|
|
|
/**
|
|
|
|
|
* Format: int64
|
|
|
|
|
* @description Maximum wait time in milliseconds
|
|
|
|
|
*/
|
|
|
|
|
maxWaitMs?: number;
|
|
|
|
|
/**
|
|
|
|
|
* Format: int32
|
|
|
|
|
* @description Maximum pool size
|
|
|
|
|
*/
|
|
|
|
|
maxPoolSize?: number;
|
|
|
|
|
};
|
|
|
|
|
/** @description Paginated audit log entries */
|
|
|
|
|
AuditLogPageResponse: {
|
|
|
|
|
/** @description Audit log entries */
|
|
|
|
|
items?: components["schemas"]["AuditRecord"][];
|
|
|
|
|
/**
|
|
|
|
|
* Format: int64
|
|
|
|
|
* @description Total number of matching entries
|
|
|
|
|
*/
|
|
|
|
|
totalCount?: number;
|
|
|
|
|
/**
|
|
|
|
|
* Format: int32
|
|
|
|
|
* @description Current page number (0-based)
|
|
|
|
|
*/
|
|
|
|
|
page?: number;
|
|
|
|
|
/**
|
|
|
|
|
* Format: int32
|
|
|
|
|
* @description Page size
|
|
|
|
|
*/
|
|
|
|
|
pageSize?: number;
|
|
|
|
|
/**
|
|
|
|
|
* Format: int32
|
|
|
|
|
* @description Total number of pages
|
|
|
|
|
*/
|
|
|
|
|
totalPages?: number;
|
|
|
|
|
};
|
|
|
|
|
AuditRecord: {
|
|
|
|
|
/** Format: int64 */
|
|
|
|
|
id?: number;
|
|
|
|
|
/** Format: date-time */
|
|
|
|
|
timestamp?: string;
|
|
|
|
|
username?: string;
|
|
|
|
|
action?: string;
|
|
|
|
|
/** @enum {string} */
|
|
|
|
|
category?: "INFRA" | "AUTH" | "USER_MGMT" | "CONFIG" | "RBAC";
|
|
|
|
|
target?: string;
|
|
|
|
|
detail?: {
|
|
|
|
|
[key: string]: Record<string, never>;
|
|
|
|
|
};
|
|
|
|
|
/** @enum {string} */
|
|
|
|
|
result?: "SUCCESS" | "FAILURE";
|
|
|
|
|
ipAddress?: string;
|
|
|
|
|
userAgent?: string;
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
responses: never;
|
|
|
|
|
parameters: never;
|
|
|
|
|
requestBodies: never;
|
|
|
|
|
headers: never;
|
|
|
|
|
pathItems: never;
|
|
|
|
|
}
|
|
|
|
|
export type $defs = Record<string, never>;
|
|
|
|
|
export interface operations {
|
|
|
|
|
getUser: {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: never;
|
|
|
|
|
path: {
|
|
|
|
|
userId: string;
|
|
|
|
|
};
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
requestBody?: never;
|
|
|
|
|
responses: {
|
|
|
|
|
/** @description User found */
|
|
|
|
|
200: {
|
|
|
|
|
headers: {
|
|
|
|
|
[name: string]: unknown;
|
|
|
|
|
};
|
|
|
|
|
content: {
|
|
|
|
|
"*/*": components["schemas"]["UserDetail"];
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
/** @description User not found */
|
|
|
|
|
404: {
|
|
|
|
|
headers: {
|
|
|
|
|
[name: string]: unknown;
|
|
|
|
|
};
|
|
|
|
|
content: {
|
|
|
|
|
"*/*": components["schemas"]["UserDetail"];
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
updateUser: {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: never;
|
|
|
|
|
path: {
|
|
|
|
|
userId: string;
|
|
|
|
|
};
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
requestBody: {
|
|
|
|
|
content: {
|
|
|
|
|
"application/json": components["schemas"]["UpdateUserRequest"];
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
responses: {
|
|
|
|
|
/** @description User updated */
|
|
|
|
|
200: {
|
|
|
|
|
headers: {
|
|
|
|
|
[name: string]: unknown;
|
|
|
|
|
};
|
|
|
|
|
content?: never;
|
|
|
|
|
};
|
|
|
|
|
/** @description User not found */
|
|
|
|
|
404: {
|
|
|
|
|
headers: {
|
|
|
|
|
[name: string]: unknown;
|
|
|
|
|
};
|
|
|
|
|
content?: never;
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
deleteUser: {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: never;
|
|
|
|
|
path: {
|
|
|
|
|
userId: string;
|
|
|
|
|
};
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
requestBody?: never;
|
|
|
|
|
responses: {
|
|
|
|
|
/** @description User deleted */
|
|
|
|
|
204: {
|
|
|
|
|
headers: {
|
|
|
|
|
[name: string]: unknown;
|
|
|
|
|
};
|
|
|
|
|
content?: never;
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
getThresholds: {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: never;
|
|
|
|
|
path?: never;
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
requestBody?: never;
|
|
|
|
|
responses: {
|
|
|
|
|
/** @description OK */
|
|
|
|
|
200: {
|
|
|
|
|
headers: {
|
|
|
|
|
[name: string]: unknown;
|
|
|
|
|
};
|
|
|
|
|
content: {
|
|
|
|
|
"*/*": components["schemas"]["ThresholdConfig"];
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
updateThresholds: {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: never;
|
|
|
|
|
path?: never;
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
requestBody: {
|
|
|
|
|
content: {
|
|
|
|
|
"application/json": components["schemas"]["ThresholdConfigRequest"];
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
responses: {
|
|
|
|
|
/** @description OK */
|
|
|
|
|
200: {
|
|
|
|
|
headers: {
|
|
|
|
|
[name: string]: unknown;
|
|
|
|
|
};
|
|
|
|
|
content: {
|
|
|
|
|
"*/*": components["schemas"]["ThresholdConfig"];
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
getRole: {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: never;
|
|
|
|
|
path: {
|
|
|
|
|
id: string;
|
|
|
|
|
};
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
requestBody?: never;
|
|
|
|
|
responses: {
|
|
|
|
|
/** @description Role found */
|
|
|
|
|
200: {
|
|
|
|
|
headers: {
|
|
|
|
|
[name: string]: unknown;
|
|
|
|
|
};
|
|
|
|
|
content: {
|
|
|
|
|
"*/*": components["schemas"]["RoleDetail"];
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
/** @description Role not found */
|
|
|
|
|
404: {
|
|
|
|
|
headers: {
|
|
|
|
|
[name: string]: unknown;
|
|
|
|
|
};
|
|
|
|
|
content: {
|
|
|
|
|
"*/*": components["schemas"]["RoleDetail"];
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
updateRole: {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: never;
|
|
|
|
|
path: {
|
|
|
|
|
id: string;
|
|
|
|
|
};
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
requestBody: {
|
|
|
|
|
content: {
|
|
|
|
|
"application/json": components["schemas"]["UpdateRoleRequest"];
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
responses: {
|
|
|
|
|
/** @description Role updated */
|
|
|
|
|
200: {
|
|
|
|
|
headers: {
|
|
|
|
|
[name: string]: unknown;
|
|
|
|
|
};
|
|
|
|
|
content?: never;
|
|
|
|
|
};
|
|
|
|
|
/** @description Cannot modify system role */
|
|
|
|
|
403: {
|
|
|
|
|
headers: {
|
|
|
|
|
[name: string]: unknown;
|
|
|
|
|
};
|
|
|
|
|
content?: never;
|
|
|
|
|
};
|
|
|
|
|
/** @description Role not found */
|
|
|
|
|
404: {
|
|
|
|
|
headers: {
|
|
|
|
|
[name: string]: unknown;
|
|
|
|
|
};
|
|
|
|
|
content?: never;
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
deleteRole: {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: never;
|
|
|
|
|
path: {
|
|
|
|
|
id: string;
|
|
|
|
|
};
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
requestBody?: never;
|
|
|
|
|
responses: {
|
|
|
|
|
/** @description Role deleted */
|
|
|
|
|
204: {
|
|
|
|
|
headers: {
|
|
|
|
|
[name: string]: unknown;
|
|
|
|
|
};
|
|
|
|
|
content?: never;
|
|
|
|
|
};
|
|
|
|
|
/** @description Cannot delete system role */
|
|
|
|
|
403: {
|
|
|
|
|
headers: {
|
|
|
|
|
[name: string]: unknown;
|
|
|
|
|
};
|
|
|
|
|
content?: never;
|
|
|
|
|
};
|
|
|
|
|
/** @description Role not found */
|
|
|
|
|
404: {
|
|
|
|
|
headers: {
|
|
|
|
|
[name: string]: unknown;
|
|
|
|
|
};
|
|
|
|
|
content?: never;
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
getConfig: {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: never;
|
|
|
|
|
path?: never;
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
requestBody?: never;
|
|
|
|
|
responses: {
|
|
|
|
|
/** @description Current OIDC configuration (client_secret masked) */
|
|
|
|
|
200: {
|
|
|
|
|
headers: {
|
|
|
|
|
[name: string]: unknown;
|
|
|
|
|
};
|
|
|
|
|
content: {
|
|
|
|
|
"*/*": components["schemas"]["OidcAdminConfigResponse"];
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
saveConfig: {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: never;
|
|
|
|
|
path?: never;
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
requestBody: {
|
|
|
|
|
content: {
|
|
|
|
|
"application/json": components["schemas"]["OidcAdminConfigRequest"];
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
responses: {
|
|
|
|
|
/** @description Configuration saved */
|
|
|
|
|
200: {
|
|
|
|
|
headers: {
|
|
|
|
|
[name: string]: unknown;
|
|
|
|
|
};
|
|
|
|
|
content: {
|
|
|
|
|
"*/*": components["schemas"]["OidcAdminConfigResponse"];
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
/** @description Invalid configuration */
|
|
|
|
|
400: {
|
|
|
|
|
headers: {
|
|
|
|
|
[name: string]: unknown;
|
|
|
|
|
};
|
|
|
|
|
content: {
|
|
|
|
|
"*/*": components["schemas"]["ErrorResponse"];
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
deleteConfig: {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: never;
|
|
|
|
|
path?: never;
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
requestBody?: never;
|
|
|
|
|
responses: {
|
|
|
|
|
/** @description Configuration deleted */
|
|
|
|
|
204: {
|
|
|
|
|
headers: {
|
|
|
|
|
[name: string]: unknown;
|
|
|
|
|
};
|
|
|
|
|
content?: never;
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
getGroup: {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: never;
|
|
|
|
|
path: {
|
|
|
|
|
id: string;
|
|
|
|
|
};
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
requestBody?: never;
|
|
|
|
|
responses: {
|
|
|
|
|
/** @description Group found */
|
|
|
|
|
200: {
|
|
|
|
|
headers: {
|
|
|
|
|
[name: string]: unknown;
|
|
|
|
|
};
|
|
|
|
|
content: {
|
|
|
|
|
"*/*": components["schemas"]["GroupDetail"];
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
/** @description Group not found */
|
|
|
|
|
404: {
|
|
|
|
|
headers: {
|
|
|
|
|
[name: string]: unknown;
|
|
|
|
|
};
|
|
|
|
|
content: {
|
|
|
|
|
"*/*": components["schemas"]["GroupDetail"];
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
updateGroup: {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: never;
|
|
|
|
|
path: {
|
|
|
|
|
id: string;
|
|
|
|
|
};
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
requestBody: {
|
|
|
|
|
content: {
|
|
|
|
|
"application/json": components["schemas"]["UpdateGroupRequest"];
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
responses: {
|
|
|
|
|
/** @description Group updated */
|
|
|
|
|
200: {
|
|
|
|
|
headers: {
|
|
|
|
|
[name: string]: unknown;
|
|
|
|
|
};
|
|
|
|
|
content?: never;
|
|
|
|
|
};
|
|
|
|
|
/** @description Group not found */
|
|
|
|
|
404: {
|
|
|
|
|
headers: {
|
|
|
|
|
[name: string]: unknown;
|
|
|
|
|
};
|
|
|
|
|
content?: never;
|
|
|
|
|
};
|
|
|
|
|
/** @description Cycle detected in group hierarchy */
|
|
|
|
|
409: {
|
|
|
|
|
headers: {
|
|
|
|
|
[name: string]: unknown;
|
|
|
|
|
};
|
|
|
|
|
content?: never;
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
deleteGroup: {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: never;
|
|
|
|
|
path: {
|
|
|
|
|
id: string;
|
|
|
|
|
};
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
requestBody?: never;
|
|
|
|
|
responses: {
|
|
|
|
|
/** @description Group deleted */
|
|
|
|
|
204: {
|
|
|
|
|
headers: {
|
|
|
|
|
[name: string]: unknown;
|
|
|
|
|
};
|
|
|
|
|
content?: never;
|
|
|
|
|
};
|
|
|
|
|
/** @description Group not found */
|
|
|
|
|
404: {
|
|
|
|
|
headers: {
|
|
|
|
|
[name: string]: unknown;
|
|
|
|
|
};
|
|
|
|
|
content?: never;
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
searchGet: {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: {
|
|
|
|
|
status?: string;
|
|
|
|
|
timeFrom?: string;
|
|
|
|
|
timeTo?: string;
|
|
|
|
|
correlationId?: string;
|
|
|
|
|
text?: string;
|
|
|
|
|
routeId?: string;
|
|
|
|
|
agentId?: string;
|
|
|
|
|
processorType?: string;
|
|
|
|
|
group?: string;
|
|
|
|
|
offset?: number;
|
|
|
|
|
limit?: number;
|
|
|
|
|
sortField?: string;
|
|
|
|
|
sortDir?: string;
|
|
|
|
|
};
|
|
|
|
|
header?: never;
|
|
|
|
|
path?: never;
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
requestBody?: never;
|
|
|
|
|
responses: {
|
|
|
|
|
/** @description OK */
|
|
|
|
|
200: {
|
|
|
|
|
headers: {
|
|
|
|
|
[name: string]: unknown;
|
|
|
|
|
};
|
|
|
|
|
content: {
|
|
|
|
|
"*/*": components["schemas"]["SearchResultExecutionSummary"];
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
searchPost: {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: never;
|
|
|
|
|
path?: never;
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
requestBody: {
|
|
|
|
|
content: {
|
|
|
|
|
"application/json": components["schemas"]["SearchRequest"];
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
responses: {
|
|
|
|
|
/** @description OK */
|
|
|
|
|
200: {
|
|
|
|
|
headers: {
|
|
|
|
|
[name: string]: unknown;
|
|
|
|
|
};
|
|
|
|
|
content: {
|
|
|
|
|
"*/*": components["schemas"]["SearchResultExecutionSummary"];
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
ingestMetrics: {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: never;
|
|
|
|
|
path?: never;
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
requestBody: {
|
|
|
|
|
content: {
|
|
|
|
|
"application/json": string;
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
responses: {
|
|
|
|
|
/** @description Data accepted for processing */
|
|
|
|
|
202: {
|
|
|
|
|
headers: {
|
|
|
|
|
[name: string]: unknown;
|
|
|
|
|
};
|
|
|
|
|
content?: never;
|
|
|
|
|
};
|
|
|
|
|
/** @description Buffer full, retry later */
|
|
|
|
|
503: {
|
|
|
|
|
headers: {
|
|
|
|
|
[name: string]: unknown;
|
|
|
|
|
};
|
|
|
|
|
content?: never;
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
ingestExecutions: {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: never;
|
|
|
|
|
path?: never;
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
requestBody: {
|
|
|
|
|
content: {
|
|
|
|
|
"application/json": string;
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
responses: {
|
|
|
|
|
/** @description Data accepted for processing */
|
|
|
|
|
202: {
|
|
|
|
|
headers: {
|
|
|
|
|
[name: string]: unknown;
|
|
|
|
|
};
|
|
|
|
|
content?: never;
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
ingestDiagrams: {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: never;
|
|
|
|
|
path?: never;
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
requestBody: {
|
|
|
|
|
content: {
|
|
|
|
|
"application/json": string;
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
responses: {
|
|
|
|
|
/** @description Data accepted for processing */
|
|
|
|
|
202: {
|
|
|
|
|
headers: {
|
|
|
|
|
[name: string]: unknown;
|
|
|
|
|
};
|
|
|
|
|
content?: never;
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
refresh: {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: never;
|
|
|
|
|
path?: never;
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
requestBody: {
|
|
|
|
|
content: {
|
|
|
|
|
"application/json": components["schemas"]["RefreshRequest"];
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
responses: {
|
|
|
|
|
/** @description Token refreshed */
|
|
|
|
|
200: {
|
|
|
|
|
headers: {
|
|
|
|
|
[name: string]: unknown;
|
|
|
|
|
};
|
|
|
|
|
content: {
|
|
|
|
|
"*/*": components["schemas"]["AuthTokenResponse"];
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
/** @description Invalid refresh token */
|
|
|
|
|
401: {
|
|
|
|
|
headers: {
|
|
|
|
|
[name: string]: unknown;
|
|
|
|
|
};
|
|
|
|
|
content: {
|
|
|
|
|
"*/*": components["schemas"]["ErrorResponse"];
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
callback: {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: never;
|
|
|
|
|
path?: never;
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
requestBody: {
|
|
|
|
|
content: {
|
|
|
|
|
"application/json": components["schemas"]["CallbackRequest"];
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
responses: {
|
|
|
|
|
/** @description Authentication successful */
|
|
|
|
|
200: {
|
|
|
|
|
headers: {
|
|
|
|
|
[name: string]: unknown;
|
|
|
|
|
};
|
|
|
|
|
content: {
|
|
|
|
|
"*/*": components["schemas"]["AuthTokenResponse"];
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
/** @description OIDC authentication failed */
|
|
|
|
|
401: {
|
|
|
|
|
headers: {
|
|
|
|
|
[name: string]: unknown;
|
|
|
|
|
};
|
|
|
|
|
content: {
|
|
|
|
|
"*/*": components["schemas"]["ErrorResponse"];
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
/** @description Account not provisioned */
|
|
|
|
|
403: {
|
|
|
|
|
headers: {
|
|
|
|
|
[name: string]: unknown;
|
|
|
|
|
};
|
|
|
|
|
content: {
|
|
|
|
|
"*/*": components["schemas"]["ErrorResponse"];
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
/** @description OIDC not configured or disabled */
|
|
|
|
|
404: {
|
|
|
|
|
headers: {
|
|
|
|
|
[name: string]: unknown;
|
|
|
|
|
};
|
|
|
|
|
content: {
|
|
|
|
|
"*/*": components["schemas"]["AuthTokenResponse"];
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
login: {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: never;
|
|
|
|
|
path?: never;
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
requestBody: {
|
|
|
|
|
content: {
|
|
|
|
|
"application/json": components["schemas"]["LoginRequest"];
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
responses: {
|
|
|
|
|
/** @description Login successful */
|
|
|
|
|
200: {
|
|
|
|
|
headers: {
|
|
|
|
|
[name: string]: unknown;
|
|
|
|
|
};
|
|
|
|
|
content: {
|
|
|
|
|
"*/*": components["schemas"]["AuthTokenResponse"];
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
/** @description Invalid credentials */
|
|
|
|
|
401: {
|
|
|
|
|
headers: {
|
|
|
|
|
[name: string]: unknown;
|
|
|
|
|
};
|
|
|
|
|
content: {
|
|
|
|
|
"*/*": components["schemas"]["ErrorResponse"];
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
refresh_1: {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: never;
|
|
|
|
|
path: {
|
|
|
|
|
id: string;
|
|
|
|
|
};
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
requestBody: {
|
|
|
|
|
content: {
|
|
|
|
|
"application/json": components["schemas"]["AgentRefreshRequest"];
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
responses: {
|
|
|
|
|
/** @description New access token issued */
|
|
|
|
|
200: {
|
|
|
|
|
headers: {
|
|
|
|
|
[name: string]: unknown;
|
|
|
|
|
};
|
|
|
|
|
content: {
|
|
|
|
|
"*/*": components["schemas"]["AgentRefreshResponse"];
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
/** @description Invalid or expired refresh token */
|
|
|
|
|
401: {
|
|
|
|
|
headers: {
|
|
|
|
|
[name: string]: unknown;
|
|
|
|
|
};
|
|
|
|
|
content: {
|
|
|
|
|
"*/*": components["schemas"]["AgentRefreshResponse"];
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
/** @description Agent not found */
|
|
|
|
|
404: {
|
|
|
|
|
headers: {
|
|
|
|
|
[name: string]: unknown;
|
|
|
|
|
};
|
|
|
|
|
content: {
|
|
|
|
|
"*/*": components["schemas"]["AgentRefreshResponse"];
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
heartbeat: {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: never;
|
|
|
|
|
path: {
|
|
|
|
|
id: string;
|
|
|
|
|
};
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
requestBody?: never;
|
|
|
|
|
responses: {
|
|
|
|
|
/** @description Heartbeat accepted */
|
|
|
|
|
200: {
|
|
|
|
|
headers: {
|
|
|
|
|
[name: string]: unknown;
|
|
|
|
|
};
|
|
|
|
|
content?: never;
|
|
|
|
|
};
|
|
|
|
|
/** @description Agent not registered */
|
|
|
|
|
404: {
|
|
|
|
|
headers: {
|
|
|
|
|
[name: string]: unknown;
|
|
|
|
|
};
|
|
|
|
|
content?: never;
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
sendCommand: {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: never;
|
|
|
|
|
path: {
|
|
|
|
|
id: string;
|
|
|
|
|
};
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
requestBody: {
|
|
|
|
|
content: {
|
|
|
|
|
"application/json": components["schemas"]["CommandRequest"];
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
responses: {
|
|
|
|
|
/** @description Command accepted */
|
|
|
|
|
202: {
|
|
|
|
|
headers: {
|
|
|
|
|
[name: string]: unknown;
|
|
|
|
|
};
|
|
|
|
|
content: {
|
|
|
|
|
"*/*": components["schemas"]["CommandSingleResponse"];
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
/** @description Invalid command payload */
|
|
|
|
|
400: {
|
|
|
|
|
headers: {
|
|
|
|
|
[name: string]: unknown;
|
|
|
|
|
};
|
|
|
|
|
content: {
|
|
|
|
|
"*/*": components["schemas"]["CommandSingleResponse"];
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
/** @description Agent not registered */
|
|
|
|
|
404: {
|
|
|
|
|
headers: {
|
|
|
|
|
[name: string]: unknown;
|
|
|
|
|
};
|
|
|
|
|
content: {
|
|
|
|
|
"*/*": components["schemas"]["CommandSingleResponse"];
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
acknowledgeCommand: {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: never;
|
|
|
|
|
path: {
|
|
|
|
|
id: string;
|
|
|
|
|
commandId: string;
|
|
|
|
|
};
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
requestBody?: never;
|
|
|
|
|
responses: {
|
|
|
|
|
/** @description Command acknowledged */
|
|
|
|
|
200: {
|
|
|
|
|
headers: {
|
|
|
|
|
[name: string]: unknown;
|
|
|
|
|
};
|
|
|
|
|
content?: never;
|
|
|
|
|
};
|
|
|
|
|
/** @description Command not found */
|
|
|
|
|
404: {
|
|
|
|
|
headers: {
|
|
|
|
|
[name: string]: unknown;
|
|
|
|
|
};
|
|
|
|
|
content?: never;
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
register: {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: never;
|
|
|
|
|
path?: never;
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
requestBody: {
|
|
|
|
|
content: {
|
|
|
|
|
"application/json": components["schemas"]["AgentRegistrationRequest"];
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
responses: {
|
|
|
|
|
/** @description Agent registered successfully */
|
|
|
|
|
200: {
|
|
|
|
|
headers: {
|
|
|
|
|
[name: string]: unknown;
|
|
|
|
|
};
|
|
|
|
|
content: {
|
|
|
|
|
"*/*": components["schemas"]["AgentRegistrationResponse"];
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
/** @description Invalid registration payload */
|
|
|
|
|
400: {
|
|
|
|
|
headers: {
|
|
|
|
|
[name: string]: unknown;
|
|
|
|
|
};
|
|
|
|
|
content: {
|
|
|
|
|
"*/*": components["schemas"]["ErrorResponse"];
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
/** @description Missing or invalid bootstrap token */
|
|
|
|
|
401: {
|
|
|
|
|
headers: {
|
|
|
|
|
[name: string]: unknown;
|
|
|
|
|
};
|
|
|
|
|
content: {
|
|
|
|
|
"*/*": components["schemas"]["AgentRegistrationResponse"];
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
sendGroupCommand: {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: never;
|
|
|
|
|
path: {
|
|
|
|
|
group: string;
|
|
|
|
|
};
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
requestBody: {
|
|
|
|
|
content: {
|
|
|
|
|
"application/json": components["schemas"]["CommandRequest"];
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
responses: {
|
|
|
|
|
/** @description Commands accepted */
|
|
|
|
|
202: {
|
|
|
|
|
headers: {
|
|
|
|
|
[name: string]: unknown;
|
|
|
|
|
};
|
|
|
|
|
content: {
|
|
|
|
|
"*/*": components["schemas"]["CommandBroadcastResponse"];
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
/** @description Invalid command payload */
|
|
|
|
|
400: {
|
|
|
|
|
headers: {
|
|
|
|
|
[name: string]: unknown;
|
|
|
|
|
};
|
|
|
|
|
content: {
|
|
|
|
|
"*/*": components["schemas"]["CommandBroadcastResponse"];
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
broadcastCommand: {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: never;
|
|
|
|
|
path?: never;
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
requestBody: {
|
|
|
|
|
content: {
|
|
|
|
|
"application/json": components["schemas"]["CommandRequest"];
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
responses: {
|
|
|
|
|
/** @description Commands accepted */
|
|
|
|
|
202: {
|
|
|
|
|
headers: {
|
|
|
|
|
[name: string]: unknown;
|
|
|
|
|
};
|
|
|
|
|
content: {
|
|
|
|
|
"*/*": components["schemas"]["CommandBroadcastResponse"];
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
/** @description Invalid command payload */
|
|
|
|
|
400: {
|
|
|
|
|
headers: {
|
|
|
|
|
[name: string]: unknown;
|
|
|
|
|
};
|
|
|
|
|
content: {
|
|
|
|
|
"*/*": components["schemas"]["CommandBroadcastResponse"];
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
listUsers: {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: never;
|
|
|
|
|
path?: never;
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
requestBody?: never;
|
|
|
|
|
responses: {
|
|
|
|
|
/** @description User list returned */
|
|
|
|
|
200: {
|
|
|
|
|
headers: {
|
|
|
|
|
[name: string]: unknown;
|
|
|
|
|
};
|
|
|
|
|
content: {
|
|
|
|
|
"*/*": components["schemas"]["UserDetail"][];
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
createUser: {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: never;
|
|
|
|
|
path?: never;
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
requestBody: {
|
|
|
|
|
content: {
|
|
|
|
|
"application/json": components["schemas"]["CreateUserRequest"];
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
responses: {
|
|
|
|
|
/** @description User created */
|
|
|
|
|
200: {
|
|
|
|
|
headers: {
|
|
|
|
|
[name: string]: unknown;
|
|
|
|
|
};
|
|
|
|
|
content: {
|
|
|
|
|
"*/*": components["schemas"]["UserDetail"];
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
assignRoleToUser: {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: never;
|
|
|
|
|
path: {
|
|
|
|
|
userId: string;
|
|
|
|
|
roleId: string;
|
|
|
|
|
};
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
requestBody?: never;
|
|
|
|
|
responses: {
|
|
|
|
|
/** @description Role assigned */
|
|
|
|
|
200: {
|
|
|
|
|
headers: {
|
|
|
|
|
[name: string]: unknown;
|
|
|
|
|
};
|
|
|
|
|
content?: never;
|
|
|
|
|
};
|
|
|
|
|
/** @description User or role not found */
|
|
|
|
|
404: {
|
|
|
|
|
headers: {
|
|
|
|
|
[name: string]: unknown;
|
|
|
|
|
};
|
|
|
|
|
content?: never;
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
removeRoleFromUser: {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: never;
|
|
|
|
|
path: {
|
|
|
|
|
userId: string;
|
|
|
|
|
roleId: string;
|
|
|
|
|
};
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
requestBody?: never;
|
|
|
|
|
responses: {
|
|
|
|
|
/** @description Role removed */
|
|
|
|
|
204: {
|
|
|
|
|
headers: {
|
|
|
|
|
[name: string]: unknown;
|
|
|
|
|
};
|
|
|
|
|
content?: never;
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
addUserToGroup: {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: never;
|
|
|
|
|
path: {
|
|
|
|
|
userId: string;
|
|
|
|
|
groupId: string;
|
|
|
|
|
};
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
requestBody?: never;
|
|
|
|
|
responses: {
|
|
|
|
|
/** @description User added to group */
|
|
|
|
|
200: {
|
|
|
|
|
headers: {
|
|
|
|
|
[name: string]: unknown;
|
|
|
|
|
};
|
|
|
|
|
content?: never;
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
removeUserFromGroup: {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: never;
|
|
|
|
|
path: {
|
|
|
|
|
userId: string;
|
|
|
|
|
groupId: string;
|
|
|
|
|
};
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
requestBody?: never;
|
|
|
|
|
responses: {
|
|
|
|
|
/** @description User removed from group */
|
|
|
|
|
204: {
|
|
|
|
|
headers: {
|
|
|
|
|
[name: string]: unknown;
|
|
|
|
|
};
|
|
|
|
|
content?: never;
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
listRoles: {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: never;
|
|
|
|
|
path?: never;
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
requestBody?: never;
|
|
|
|
|
responses: {
|
|
|
|
|
/** @description Role list returned */
|
|
|
|
|
200: {
|
|
|
|
|
headers: {
|
|
|
|
|
[name: string]: unknown;
|
|
|
|
|
};
|
|
|
|
|
content: {
|
|
|
|
|
"*/*": components["schemas"]["RoleDetail"][];
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
createRole: {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: never;
|
|
|
|
|
path?: never;
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
requestBody: {
|
|
|
|
|
content: {
|
|
|
|
|
"application/json": components["schemas"]["CreateRoleRequest"];
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
responses: {
|
|
|
|
|
/** @description Role created */
|
|
|
|
|
200: {
|
|
|
|
|
headers: {
|
|
|
|
|
[name: string]: unknown;
|
|
|
|
|
};
|
|
|
|
|
content: {
|
|
|
|
|
"*/*": {
|
|
|
|
|
[key: string]: string;
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
testConnection: {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: never;
|
|
|
|
|
path?: never;
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
requestBody?: never;
|
|
|
|
|
responses: {
|
|
|
|
|
/** @description Provider reachable */
|
|
|
|
|
200: {
|
|
|
|
|
headers: {
|
|
|
|
|
[name: string]: unknown;
|
|
|
|
|
};
|
|
|
|
|
content: {
|
|
|
|
|
"*/*": components["schemas"]["OidcTestResult"];
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
/** @description Provider unreachable or misconfigured */
|
|
|
|
|
400: {
|
|
|
|
|
headers: {
|
|
|
|
|
[name: string]: unknown;
|
|
|
|
|
};
|
|
|
|
|
content: {
|
|
|
|
|
"*/*": components["schemas"]["ErrorResponse"];
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
listGroups: {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: never;
|
|
|
|
|
path?: never;
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
requestBody?: never;
|
|
|
|
|
responses: {
|
|
|
|
|
/** @description Group list returned */
|
|
|
|
|
200: {
|
|
|
|
|
headers: {
|
|
|
|
|
[name: string]: unknown;
|
|
|
|
|
};
|
|
|
|
|
content: {
|
|
|
|
|
"*/*": components["schemas"]["GroupDetail"][];
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
createGroup: {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: never;
|
|
|
|
|
path?: never;
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
requestBody: {
|
|
|
|
|
content: {
|
|
|
|
|
"application/json": components["schemas"]["CreateGroupRequest"];
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
responses: {
|
|
|
|
|
/** @description Group created */
|
|
|
|
|
200: {
|
|
|
|
|
headers: {
|
|
|
|
|
[name: string]: unknown;
|
|
|
|
|
};
|
|
|
|
|
content: {
|
|
|
|
|
"*/*": {
|
|
|
|
|
[key: string]: string;
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
assignRoleToGroup: {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: never;
|
|
|
|
|
path: {
|
|
|
|
|
id: string;
|
|
|
|
|
roleId: string;
|
|
|
|
|
};
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
requestBody?: never;
|
|
|
|
|
responses: {
|
|
|
|
|
/** @description Role assigned to group */
|
|
|
|
|
200: {
|
|
|
|
|
headers: {
|
|
|
|
|
[name: string]: unknown;
|
|
|
|
|
};
|
|
|
|
|
content?: never;
|
|
|
|
|
};
|
|
|
|
|
/** @description Group not found */
|
|
|
|
|
404: {
|
|
|
|
|
headers: {
|
|
|
|
|
[name: string]: unknown;
|
|
|
|
|
};
|
|
|
|
|
content?: never;
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
removeRoleFromGroup: {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: never;
|
|
|
|
|
path: {
|
|
|
|
|
id: string;
|
|
|
|
|
roleId: string;
|
|
|
|
|
};
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
requestBody?: never;
|
|
|
|
|
responses: {
|
|
|
|
|
/** @description Role removed from group */
|
|
|
|
|
204: {
|
|
|
|
|
headers: {
|
|
|
|
|
[name: string]: unknown;
|
|
|
|
|
};
|
|
|
|
|
content?: never;
|
|
|
|
|
};
|
|
|
|
|
/** @description Group not found */
|
|
|
|
|
404: {
|
|
|
|
|
headers: {
|
|
|
|
|
[name: string]: unknown;
|
|
|
|
|
};
|
|
|
|
|
content?: never;
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
killQuery: {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: never;
|
|
|
|
|
path: {
|
|
|
|
|
pid: number;
|
|
|
|
|
};
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
requestBody?: never;
|
|
|
|
|
responses: {
|
|
|
|
|
/** @description OK */
|
|
|
|
|
200: {
|
|
|
|
|
headers: {
|
|
|
|
|
[name: string]: unknown;
|
|
|
|
|
};
|
|
|
|
|
content?: never;
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
stats: {
|
|
|
|
|
parameters: {
|
|
|
|
|
query: {
|
|
|
|
|
from: string;
|
|
|
|
|
to?: string;
|
|
|
|
|
routeId?: string;
|
refactor: rename group/groupName to application/applicationName
The execution-related "group" concept actually represents the
application name. Rename all Java fields, API parameters, and frontend
types from groupName→applicationName and group→application for clarity.
- Java records: ExecutionSummary, ExecutionDetail, ExecutionDocument,
ExecutionRecord, ProcessorRecord
- API params: SearchRequest.group→application, SearchController
@RequestParam group→application
- Services: IngestionService, DetailService, SearchIndexer, StatsStore
- Frontend: schema.d.ts, Dashboard, ExchangeDetail, RouteDetail,
executions query hooks
Database column names (group_name) and OpenSearch field names are
unchanged — only the API-facing Java/TS field names are renamed.
RBAC group references (groups table, GroupRepository, GroupsTab) are
a separate domain concept and are NOT affected by this change.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-23 21:21:38 +01:00
|
|
|
application?: string;
|
2026-03-23 18:16:15 +01:00
|
|
|
};
|
|
|
|
|
header?: never;
|
|
|
|
|
path?: never;
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
requestBody?: never;
|
|
|
|
|
responses: {
|
|
|
|
|
/** @description OK */
|
|
|
|
|
200: {
|
|
|
|
|
headers: {
|
|
|
|
|
[name: string]: unknown;
|
|
|
|
|
};
|
|
|
|
|
content: {
|
|
|
|
|
"*/*": components["schemas"]["ExecutionStats"];
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
timeseries: {
|
|
|
|
|
parameters: {
|
|
|
|
|
query: {
|
|
|
|
|
from: string;
|
|
|
|
|
to?: string;
|
|
|
|
|
buckets?: number;
|
|
|
|
|
routeId?: string;
|
refactor: rename group/groupName to application/applicationName
The execution-related "group" concept actually represents the
application name. Rename all Java fields, API parameters, and frontend
types from groupName→applicationName and group→application for clarity.
- Java records: ExecutionSummary, ExecutionDetail, ExecutionDocument,
ExecutionRecord, ProcessorRecord
- API params: SearchRequest.group→application, SearchController
@RequestParam group→application
- Services: IngestionService, DetailService, SearchIndexer, StatsStore
- Frontend: schema.d.ts, Dashboard, ExchangeDetail, RouteDetail,
executions query hooks
Database column names (group_name) and OpenSearch field names are
unchanged — only the API-facing Java/TS field names are renamed.
RBAC group references (groups table, GroupRepository, GroupsTab) are
a separate domain concept and are NOT affected by this change.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-23 21:21:38 +01:00
|
|
|
application?: string;
|
2026-03-23 18:16:15 +01:00
|
|
|
};
|
|
|
|
|
header?: never;
|
|
|
|
|
path?: never;
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
requestBody?: never;
|
|
|
|
|
responses: {
|
|
|
|
|
/** @description OK */
|
|
|
|
|
200: {
|
|
|
|
|
headers: {
|
|
|
|
|
[name: string]: unknown;
|
|
|
|
|
};
|
|
|
|
|
content: {
|
|
|
|
|
"*/*": components["schemas"]["StatsTimeseries"];
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
getMetrics: {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: {
|
|
|
|
|
from?: string;
|
|
|
|
|
to?: string;
|
|
|
|
|
appId?: string;
|
|
|
|
|
};
|
|
|
|
|
header?: never;
|
|
|
|
|
path?: never;
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
requestBody?: never;
|
|
|
|
|
responses: {
|
|
|
|
|
/** @description Metrics returned */
|
|
|
|
|
200: {
|
|
|
|
|
headers: {
|
|
|
|
|
[name: string]: unknown;
|
|
|
|
|
};
|
|
|
|
|
content: {
|
|
|
|
|
"*/*": components["schemas"]["RouteMetrics"][];
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
getCatalog: {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: never;
|
|
|
|
|
path?: never;
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
requestBody?: never;
|
|
|
|
|
responses: {
|
|
|
|
|
/** @description Catalog returned */
|
|
|
|
|
200: {
|
|
|
|
|
headers: {
|
|
|
|
|
[name: string]: unknown;
|
|
|
|
|
};
|
|
|
|
|
content: {
|
|
|
|
|
"*/*": components["schemas"]["AppCatalogEntry"][];
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
getDetail: {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: never;
|
|
|
|
|
path: {
|
|
|
|
|
executionId: string;
|
|
|
|
|
};
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
requestBody?: never;
|
|
|
|
|
responses: {
|
|
|
|
|
/** @description Execution detail found */
|
|
|
|
|
200: {
|
|
|
|
|
headers: {
|
|
|
|
|
[name: string]: unknown;
|
|
|
|
|
};
|
|
|
|
|
content: {
|
|
|
|
|
"*/*": components["schemas"]["ExecutionDetail"];
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
/** @description Execution not found */
|
|
|
|
|
404: {
|
|
|
|
|
headers: {
|
|
|
|
|
[name: string]: unknown;
|
|
|
|
|
};
|
|
|
|
|
content: {
|
|
|
|
|
"*/*": components["schemas"]["ExecutionDetail"];
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
getProcessorSnapshot: {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: never;
|
|
|
|
|
path: {
|
|
|
|
|
executionId: string;
|
|
|
|
|
index: number;
|
|
|
|
|
};
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
requestBody?: never;
|
|
|
|
|
responses: {
|
|
|
|
|
/** @description Snapshot data */
|
|
|
|
|
200: {
|
|
|
|
|
headers: {
|
|
|
|
|
[name: string]: unknown;
|
|
|
|
|
};
|
|
|
|
|
content: {
|
|
|
|
|
"*/*": {
|
|
|
|
|
[key: string]: string;
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
/** @description Snapshot not found */
|
|
|
|
|
404: {
|
|
|
|
|
headers: {
|
|
|
|
|
[name: string]: unknown;
|
|
|
|
|
};
|
|
|
|
|
content: {
|
|
|
|
|
"*/*": {
|
|
|
|
|
[key: string]: string;
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
findByGroupAndRoute: {
|
|
|
|
|
parameters: {
|
|
|
|
|
query: {
|
|
|
|
|
group: string;
|
|
|
|
|
routeId: string;
|
|
|
|
|
};
|
|
|
|
|
header?: never;
|
|
|
|
|
path?: never;
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
requestBody?: never;
|
|
|
|
|
responses: {
|
|
|
|
|
/** @description Diagram layout returned */
|
|
|
|
|
200: {
|
|
|
|
|
headers: {
|
|
|
|
|
[name: string]: unknown;
|
|
|
|
|
};
|
|
|
|
|
content: {
|
|
|
|
|
"*/*": components["schemas"]["DiagramLayout"];
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
/** @description No diagram found for the given group and route */
|
|
|
|
|
404: {
|
|
|
|
|
headers: {
|
|
|
|
|
[name: string]: unknown;
|
|
|
|
|
};
|
|
|
|
|
content: {
|
|
|
|
|
"*/*": components["schemas"]["DiagramLayout"];
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
renderDiagram: {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: never;
|
|
|
|
|
path: {
|
|
|
|
|
contentHash: string;
|
|
|
|
|
};
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
requestBody?: never;
|
|
|
|
|
responses: {
|
|
|
|
|
/** @description Diagram rendered successfully */
|
|
|
|
|
200: {
|
|
|
|
|
headers: {
|
|
|
|
|
[name: string]: unknown;
|
|
|
|
|
};
|
|
|
|
|
content: {
|
|
|
|
|
"image/svg+xml": string;
|
|
|
|
|
"application/json": components["schemas"]["DiagramLayout"];
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
/** @description Diagram not found */
|
|
|
|
|
404: {
|
|
|
|
|
headers: {
|
|
|
|
|
[name: string]: unknown;
|
|
|
|
|
};
|
|
|
|
|
content: {
|
|
|
|
|
"*/*": Record<string, never>;
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
getConfig_1: {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: never;
|
|
|
|
|
path?: never;
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
requestBody?: never;
|
|
|
|
|
responses: {
|
|
|
|
|
/** @description OIDC configuration */
|
|
|
|
|
200: {
|
|
|
|
|
headers: {
|
|
|
|
|
[name: string]: unknown;
|
|
|
|
|
};
|
|
|
|
|
content: {
|
|
|
|
|
"*/*": components["schemas"]["OidcPublicConfigResponse"];
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
/** @description OIDC not configured or disabled */
|
|
|
|
|
404: {
|
|
|
|
|
headers: {
|
|
|
|
|
[name: string]: unknown;
|
|
|
|
|
};
|
|
|
|
|
content: {
|
|
|
|
|
"*/*": components["schemas"]["OidcPublicConfigResponse"];
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
/** @description Failed to retrieve OIDC provider metadata */
|
|
|
|
|
500: {
|
|
|
|
|
headers: {
|
|
|
|
|
[name: string]: unknown;
|
|
|
|
|
};
|
|
|
|
|
content: {
|
|
|
|
|
"*/*": components["schemas"]["ErrorResponse"];
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
listAgents: {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: {
|
|
|
|
|
status?: string;
|
|
|
|
|
group?: string;
|
|
|
|
|
};
|
|
|
|
|
header?: never;
|
|
|
|
|
path?: never;
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
requestBody?: never;
|
|
|
|
|
responses: {
|
|
|
|
|
/** @description Agent list returned */
|
|
|
|
|
200: {
|
|
|
|
|
headers: {
|
|
|
|
|
[name: string]: unknown;
|
|
|
|
|
};
|
|
|
|
|
content: {
|
|
|
|
|
"*/*": components["schemas"]["AgentInstanceResponse"][];
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
/** @description Invalid status filter */
|
|
|
|
|
400: {
|
|
|
|
|
headers: {
|
|
|
|
|
[name: string]: unknown;
|
|
|
|
|
};
|
|
|
|
|
content: {
|
|
|
|
|
"*/*": components["schemas"]["ErrorResponse"];
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
events: {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: {
|
|
|
|
|
/** @description Last received event ID (no replay, acknowledged only) */
|
|
|
|
|
"Last-Event-ID"?: string;
|
|
|
|
|
};
|
|
|
|
|
path: {
|
|
|
|
|
id: string;
|
|
|
|
|
};
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
requestBody?: never;
|
|
|
|
|
responses: {
|
|
|
|
|
/** @description SSE stream opened */
|
|
|
|
|
200: {
|
|
|
|
|
headers: {
|
|
|
|
|
[name: string]: unknown;
|
|
|
|
|
};
|
|
|
|
|
content: {
|
|
|
|
|
"text/event-stream": components["schemas"]["SseEmitter"];
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
/** @description Agent not registered */
|
|
|
|
|
404: {
|
|
|
|
|
headers: {
|
|
|
|
|
[name: string]: unknown;
|
|
|
|
|
};
|
|
|
|
|
content: {
|
|
|
|
|
"text/event-stream": components["schemas"]["SseEmitter"];
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
getEvents: {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: {
|
|
|
|
|
appId?: string;
|
|
|
|
|
agentId?: string;
|
|
|
|
|
from?: string;
|
|
|
|
|
to?: string;
|
|
|
|
|
limit?: number;
|
|
|
|
|
};
|
|
|
|
|
header?: never;
|
|
|
|
|
path?: never;
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
requestBody?: never;
|
|
|
|
|
responses: {
|
|
|
|
|
/** @description Events returned */
|
|
|
|
|
200: {
|
|
|
|
|
headers: {
|
|
|
|
|
[name: string]: unknown;
|
|
|
|
|
};
|
|
|
|
|
content: {
|
|
|
|
|
"*/*": components["schemas"]["AgentEventResponse"][];
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
getStats: {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: never;
|
|
|
|
|
path?: never;
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
requestBody?: never;
|
|
|
|
|
responses: {
|
|
|
|
|
/** @description RBAC stats returned */
|
|
|
|
|
200: {
|
|
|
|
|
headers: {
|
|
|
|
|
[name: string]: unknown;
|
|
|
|
|
};
|
|
|
|
|
content: {
|
|
|
|
|
"*/*": components["schemas"]["RbacStats"];
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
getStatus: {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: never;
|
|
|
|
|
path?: never;
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
requestBody?: never;
|
|
|
|
|
responses: {
|
|
|
|
|
/** @description OK */
|
|
|
|
|
200: {
|
|
|
|
|
headers: {
|
|
|
|
|
[name: string]: unknown;
|
|
|
|
|
};
|
|
|
|
|
content: {
|
|
|
|
|
"*/*": components["schemas"]["OpenSearchStatusResponse"];
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
getPipeline: {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: never;
|
|
|
|
|
path?: never;
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
requestBody?: never;
|
|
|
|
|
responses: {
|
|
|
|
|
/** @description OK */
|
|
|
|
|
200: {
|
|
|
|
|
headers: {
|
|
|
|
|
[name: string]: unknown;
|
|
|
|
|
};
|
|
|
|
|
content: {
|
|
|
|
|
"*/*": components["schemas"]["PipelineStatsResponse"];
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
getPerformance: {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: never;
|
|
|
|
|
path?: never;
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
requestBody?: never;
|
|
|
|
|
responses: {
|
|
|
|
|
/** @description OK */
|
|
|
|
|
200: {
|
|
|
|
|
headers: {
|
|
|
|
|
[name: string]: unknown;
|
|
|
|
|
};
|
|
|
|
|
content: {
|
|
|
|
|
"*/*": components["schemas"]["PerformanceResponse"];
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
getIndices: {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: {
|
|
|
|
|
page?: number;
|
|
|
|
|
size?: number;
|
|
|
|
|
search?: string;
|
|
|
|
|
};
|
|
|
|
|
header?: never;
|
|
|
|
|
path?: never;
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
requestBody?: never;
|
|
|
|
|
responses: {
|
|
|
|
|
/** @description OK */
|
|
|
|
|
200: {
|
|
|
|
|
headers: {
|
|
|
|
|
[name: string]: unknown;
|
|
|
|
|
};
|
|
|
|
|
content: {
|
|
|
|
|
"*/*": components["schemas"]["IndicesPageResponse"];
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
getTables: {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: never;
|
|
|
|
|
path?: never;
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
requestBody?: never;
|
|
|
|
|
responses: {
|
|
|
|
|
/** @description OK */
|
|
|
|
|
200: {
|
|
|
|
|
headers: {
|
|
|
|
|
[name: string]: unknown;
|
|
|
|
|
};
|
|
|
|
|
content: {
|
|
|
|
|
"*/*": components["schemas"]["TableSizeResponse"][];
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
getStatus_1: {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: never;
|
|
|
|
|
path?: never;
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
requestBody?: never;
|
|
|
|
|
responses: {
|
|
|
|
|
/** @description OK */
|
|
|
|
|
200: {
|
|
|
|
|
headers: {
|
|
|
|
|
[name: string]: unknown;
|
|
|
|
|
};
|
|
|
|
|
content: {
|
|
|
|
|
"*/*": components["schemas"]["DatabaseStatusResponse"];
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
getQueries: {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: never;
|
|
|
|
|
path?: never;
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
requestBody?: never;
|
|
|
|
|
responses: {
|
|
|
|
|
/** @description OK */
|
|
|
|
|
200: {
|
|
|
|
|
headers: {
|
|
|
|
|
[name: string]: unknown;
|
|
|
|
|
};
|
|
|
|
|
content: {
|
|
|
|
|
"*/*": components["schemas"]["ActiveQueryResponse"][];
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
getPool: {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: never;
|
|
|
|
|
path?: never;
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
requestBody?: never;
|
|
|
|
|
responses: {
|
|
|
|
|
/** @description OK */
|
|
|
|
|
200: {
|
|
|
|
|
headers: {
|
|
|
|
|
[name: string]: unknown;
|
|
|
|
|
};
|
|
|
|
|
content: {
|
|
|
|
|
"*/*": components["schemas"]["ConnectionPoolResponse"];
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
getAuditLog: {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: {
|
|
|
|
|
username?: string;
|
|
|
|
|
category?: string;
|
|
|
|
|
search?: string;
|
|
|
|
|
from?: string;
|
|
|
|
|
to?: string;
|
|
|
|
|
sort?: string;
|
|
|
|
|
order?: string;
|
|
|
|
|
page?: number;
|
|
|
|
|
size?: number;
|
|
|
|
|
};
|
|
|
|
|
header?: never;
|
|
|
|
|
path?: never;
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
requestBody?: never;
|
|
|
|
|
responses: {
|
|
|
|
|
/** @description OK */
|
|
|
|
|
200: {
|
|
|
|
|
headers: {
|
|
|
|
|
[name: string]: unknown;
|
|
|
|
|
};
|
|
|
|
|
content: {
|
|
|
|
|
"*/*": components["schemas"]["AuditLogPageResponse"];
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
deleteIndex: {
|
|
|
|
|
parameters: {
|
|
|
|
|
query?: never;
|
|
|
|
|
header?: never;
|
|
|
|
|
path: {
|
|
|
|
|
name: string;
|
|
|
|
|
};
|
|
|
|
|
cookie?: never;
|
|
|
|
|
};
|
|
|
|
|
requestBody?: never;
|
|
|
|
|
responses: {
|
|
|
|
|
/** @description OK */
|
|
|
|
|
200: {
|
|
|
|
|
headers: {
|
|
|
|
|
[name: string]: unknown;
|
|
|
|
|
};
|
|
|
|
|
content?: never;
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
Add React UI with Execution Explorer, auth, and standalone deployment
- Scaffold Vite + React + TypeScript frontend in ui/ with full design
system (dark/light themes) matching the HTML mockups
- Implement Execution Explorer page: search filters, results table with
expandable processor tree and exchange detail sidebar, pagination
- Add UI authentication: UiAuthController (login/refresh endpoints),
JWT filter handles ui: subject prefix, CORS configuration
- Shared components: StatusPill, DurationBar, StatCard, AppBadge,
FilterChip, Pagination — all using CSS Modules with design tokens
- API client layer: openapi-fetch with auth middleware, TanStack Query
hooks for search/detail/snapshot queries, Zustand for state
- Standalone deployment: Nginx Dockerfile, K8s Deployment + ConfigMap +
NodePort (30080), runtime config.js for API base URL
- Embedded mode: maven-resources-plugin copies ui/dist into JAR static
resources, SPA forward controller for client-side routing
- CI/CD: UI build step, Docker build/push for server-ui image, K8s
deploy step for UI, UI credential secrets
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 13:59:22 +01:00
|
|
|
}
|