- Add mask_api_key() and is_masked_or_placeholder() to llm_provider service - Return masked keys in all provider CRUD endpoints - Reject masked/placeholder keys in fetch_models and test_provider_config - Show masked key with Change button in ProviderConfig.svelte edit form - Exclude masked keys from fetch-models, test, and submit payloads on frontend - Update semantics-core skill with clarified complexity tier rules - Switch agent modes from subagent to all
310 lines
8.4 KiB
JSON
310 lines
8.4 KiB
JSON
{
|
|
"/audit": {
|
|
"get": {
|
|
"tags": [
|
|
"Audit Logging"
|
|
],
|
|
"summary": "Get Audit Logs",
|
|
"description": "Get all audit logs with filtering and pagination.\n\nReturns a paginated response of audit logs matching the specified filters.\n\nNote: object_team_id and object_key_hash use Prisma JSON path filtering,\nwhich requires PostgreSQL.",
|
|
"operationId": "get_audit_logs_audit_get",
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "page",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"default": 1,
|
|
"title": "Page"
|
|
}
|
|
},
|
|
{
|
|
"name": "page_size",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer",
|
|
"maximum": 100,
|
|
"minimum": 1,
|
|
"default": 10,
|
|
"title": "Page Size"
|
|
}
|
|
},
|
|
{
|
|
"name": "changed_by",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Filter by user or system that performed the action",
|
|
"title": "Changed By"
|
|
},
|
|
"description": "Filter by user or system that performed the action"
|
|
},
|
|
{
|
|
"name": "changed_by_api_key",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Filter by API key hash that performed the action",
|
|
"title": "Changed By Api Key"
|
|
},
|
|
"description": "Filter by API key hash that performed the action"
|
|
},
|
|
{
|
|
"name": "action",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Filter by action type (create, update, delete)",
|
|
"title": "Action"
|
|
},
|
|
"description": "Filter by action type (create, update, delete)"
|
|
},
|
|
{
|
|
"name": "table_name",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Filter by table name that was modified",
|
|
"title": "Table Name"
|
|
},
|
|
"description": "Filter by table name that was modified"
|
|
},
|
|
{
|
|
"name": "object_id",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Filter by ID of the object that was modified",
|
|
"title": "Object Id"
|
|
},
|
|
"description": "Filter by ID of the object that was modified"
|
|
},
|
|
{
|
|
"name": "start_date",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Filter logs after this date",
|
|
"title": "Start Date"
|
|
},
|
|
"description": "Filter logs after this date"
|
|
},
|
|
{
|
|
"name": "end_date",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Filter logs before this date",
|
|
"title": "End Date"
|
|
},
|
|
"description": "Filter logs before this date"
|
|
},
|
|
{
|
|
"name": "object_team_id",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Filter by team_id present in before_value or updated_values JSON (PostgreSQL only)",
|
|
"title": "Object Team Id"
|
|
},
|
|
"description": "Filter by team_id present in before_value or updated_values JSON (PostgreSQL only)"
|
|
},
|
|
{
|
|
"name": "object_key_hash",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Filter by token (key hash) present in before_value or updated_values JSON (PostgreSQL only)",
|
|
"title": "Object Key Hash"
|
|
},
|
|
"description": "Filter by token (key hash) present in before_value or updated_values JSON (PostgreSQL only)"
|
|
},
|
|
{
|
|
"name": "sort_by",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Column to sort by (e.g. 'updated_at', 'action', 'table_name')",
|
|
"title": "Sort By"
|
|
},
|
|
"description": "Column to sort by (e.g. 'updated_at', 'action', 'table_name')"
|
|
},
|
|
{
|
|
"name": "sort_order",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "string",
|
|
"description": "Sort order ('asc' or 'desc')",
|
|
"default": "desc",
|
|
"title": "Sort Order"
|
|
},
|
|
"description": "Sort order ('asc' or 'desc')"
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PaginatedAuditLogResponse"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/audit/{id}": {
|
|
"get": {
|
|
"tags": [
|
|
"Audit Logging"
|
|
],
|
|
"summary": "Get Audit Log By Id",
|
|
"description": "Get detailed information about a specific audit log entry by its ID.\n\nArgs:\n id (str): The unique identifier of the audit log entry\n\nReturns:\n AuditLogResponse: Detailed information about the audit log entry\n\nRaises:\n HTTPException: If the audit log is not found or if there's a database connection error",
|
|
"operationId": "get_audit_log_by_id_audit__id__get",
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"title": "Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AuditLogResponse"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "Audit log not found"
|
|
},
|
|
"500": {
|
|
"description": "Database connection error"
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} |