{ "opencollection": "1.0.0", "info": { "name": "Vijil Console API (Combined) agent-configurations Dome API", "version": "0.1.0" }, "items": [ { "info": { "name": "Dome", "type": "folder" }, "items": [ { "info": { "name": "Register Dome", "type": "http" }, "http": { "method": "POST", "url": "{{baseUrl}}/v1/webhooks/register-dome", "headers": [ { "name": "X-Webhook-Api-Key", "value": "" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Register a Dome instance URL for an agent (called by Dome at runtime).\n\nIdempotent: safe to call on every Dome restart; each call overwrites the\nstored dome_url for that agent's config." }, { "info": { "name": "Create Detection", "type": "http" }, "http": { "method": "POST", "url": "{{baseUrl}}/v1/detections", "body": { "type": "json", "data": "{}" } }, "docs": "Create a new detection request.\n\nThis endpoint accepts a detection request and starts processing it\nasynchronously. The response includes the detection ID which can be\nused to poll for results via GET /detections/{id}.\n\nNote: This endpoint does not require authentication to support\nthe Execution Flow test input feature." }, { "info": { "name": "Get Detection", "type": "http" }, "http": { "method": "GET", "url": "{{baseUrl}}/v1/detections/:detection_id", "params": [ { "name": "detection_id", "value": "", "type": "path" } ] }, "docs": "Get a detection by ID.\n\nReturns the current status and results of a detection.\nStatus values:\n- CREATED: Detection is queued for processing\n- PROCESSING: Detection is being processed\n- COMPLETED: Detection finished successfully\n- ERROR: Detection failed\n\nNote: This endpoint does not require authentication to support\nthe Execution Flow test input feature." }, { "info": { "name": "List Dome Configs", "type": "http" }, "http": { "method": "GET", "url": "{{baseUrl}}/v1/dome-configs", "params": [ { "name": "team_id", "value": "", "type": "query", "description": "Team ID (required)" }, { "name": "agent_id", "value": "", "type": "query", "description": "If set, only configs whose dome_configs.agent_id matches (paginated)." }, { "name": "limit", "value": "", "type": "query", "description": "Page size" }, { "name": "offset", "value": "", "type": "query", "description": "Pagination offset" } ] }, "docs": "List dome configs for the team; optional filter by bound agent_id column." }, { "info": { "name": "Create Dome Config", "type": "http" }, "http": { "method": "POST", "url": "{{baseUrl}}/v1/dome-configs", "params": [ { "name": "team_id", "value": "", "type": "query", "description": "Team ID (required)" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Create a new Dome configuration.\n\nIf no config_body is provided, uses the default configuration.\nA dome config is standalone and can be assigned to multiple agents via the agent's dome_config_id." }, { "info": { "name": "Get Dome Config", "type": "http" }, "http": { "method": "GET", "url": "{{baseUrl}}/v1/dome-configs/:config_id", "params": [ { "name": "config_id", "value": "", "type": "path" }, { "name": "team_id", "value": "", "type": "query", "description": "Team ID (required)" } ] }, "docs": "Get a Dome configuration by ID." }, { "info": { "name": "Update Dome Config", "type": "http" }, "http": { "method": "PUT", "url": "{{baseUrl}}/v1/dome-configs/:config_id", "params": [ { "name": "config_id", "value": "", "type": "path" }, { "name": "team_id", "value": "", "type": "query", "description": "Team ID (required)" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Update a Dome configuration." }, { "info": { "name": "Patch Dome Config", "type": "http" }, "http": { "method": "PATCH", "url": "{{baseUrl}}/v1/dome-configs/:config_id", "params": [ { "name": "config_id", "value": "", "type": "path" }, { "name": "team_id", "value": "", "type": "query", "description": "Team ID (required)" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Partially update a Dome configuration (e.g. set or clear dome instance URL)." }, { "info": { "name": "Delete Dome Config", "type": "http" }, "http": { "method": "DELETE", "url": "{{baseUrl}}/v1/dome-configs/:config_id", "params": [ { "name": "config_id", "value": "", "type": "path" }, { "name": "team_id", "value": "", "type": "query", "description": "Team ID (required)" } ] }, "docs": "Delete a Dome configuration." }, { "info": { "name": "Apply Dome Config", "type": "http" }, "http": { "method": "POST", "url": "{{baseUrl}}/v1/dome-configs/:config_id/apply", "params": [ { "name": "config_id", "value": "", "type": "path" }, { "name": "team_id", "value": "", "type": "query", "description": "Team ID (required)" } ] }, "docs": "Apply a saved dome config: promotes config_pending.json to config.json and binds it to the agent.\n\nBacks up the existing config.json as {config_id}_config.json, promotes\nconfig_pending.json to config.json, and sets the agent's dome_config_id\nand protection_status to domed." }, { "info": { "name": "Get Default Dome Config", "type": "http" }, "http": { "method": "GET", "url": "{{baseUrl}}/v1/default-dome-config" }, "docs": "Get the default Dome configuration.\n\nReturns the default guard configuration for new agents.\nThis endpoint does not require authentication." }, { "info": { "name": "Get Counter Total", "type": "http" }, "http": { "method": "GET", "url": "{{baseUrl}}/v1/telemetry/counters/:metric_name/total", "params": [ { "name": "metric_name", "value": "", "type": "path" }, { "name": "time_range", "value": "", "type": "query", "description": "Time range: 15m, 30m, 1h, 2h, 6h, 1d, 7d, 30d" }, { "name": "evaluation_id", "value": "", "type": "query", "description": "Filter by evaluation ID" }, { "name": "test_id", "value": "", "type": "query", "description": "Filter by test ID" }, { "name": "probe_id", "value": "", "type": "query", "description": "Filter by probe ID" }, { "name": "agent_configuration_id", "value": "", "type": "query", "description": "Filter by agent configuration ID" } ] }, "docs": "Get total counter value." }, { "info": { "name": "Get Counter Time Series", "type": "http" }, "http": { "method": "GET", "url": "{{baseUrl}}/v1/telemetry/counters/:metric_name/time_series", "params": [ { "name": "metric_name", "value": "", "type": "path" }, { "name": "time_range", "value": "", "type": "query", "description": "Time range: 15m, 30m, 1h, 2h, 6h, 1d, 7d, 30d" }, { "name": "evaluation_id", "value": "", "type": "query", "description": "Filter by evaluation ID" }, { "name": "agent_configuration_id", "value": "", "type": "query", "description": "Filter by agent configuration ID" } ] }, "docs": "Get counter time series." }, { "info": { "name": "Get Latency Over Time", "type": "http" }, "http": { "method": "GET", "url": "{{baseUrl}}/v1/telemetry/latency/:metric_name", "params": [ { "name": "metric_name", "value": "", "type": "path" }, { "name": "time_range", "value": "", "type": "query", "description": "Time range: 15m, 30m, 1h, 2h, 6h, 1d, 7d, 30d" }, { "name": "time_window", "value": "", "type": "query", "description": "Time window for aggregation (e.g., '1m', '5m', '15m')" }, { "name": "percentiles", "value": "", "type": "query", "description": "Comma-separated list of percentiles to query (e.g., '0.5,0.95'). If not specified, defaults to [0.5, 0.9, 0.95, 0.99]" }, { "name": "evaluation_id", "value": "", "type": "query", "description": "Filter by evaluation ID" }, { "name": "test_id", "value": "", "type": "query", "description": "Filter by test ID" }, { "name": "probe_id", "value": "", "type": "query", "description": "Filter by probe ID" }, { "name": "agent_configuration_id", "value": "", "type": "query", "description": "Filter by agent configuration ID" } ] }, "docs": "Get latency over time." }, { "info": { "name": "Get Logs", "type": "http" }, "http": { "method": "GET", "url": "{{baseUrl}}/v1/telemetry/logs", "params": [ { "name": "time_range", "value": "", "type": "query", "description": "Window to pull logs for" }, { "name": "service_name", "value": "", "type": "query", "description": "Filter by service_name label" }, { "name": "level", "value": "", "type": "query", "description": "Filter by level label" }, { "name": "job", "value": "", "type": "query", "description": "Filter by job label" }, { "name": "exporter", "value": "", "type": "query", "description": "Filter by exporter label" }, { "name": "agent_configuration_id", "value": "", "type": "query", "description": "Restrict to a specific agent configuration id" }, { "name": "evaluation_id", "value": "", "type": "query", "description": "Restrict logs to an evaluation id" }, { "name": "test_id", "value": "", "type": "query", "description": "Restrict logs to a test id" }, { "name": "probe_id", "value": "", "type": "query", "description": "Restrict logs to a probe id" }, { "name": "search", "value": "", "type": "query", "description": "Substring search applied via LogQL pipeline" }, { "name": "logql", "value": "", "type": "query", "description": "Advanced LogQL expression (overrides generated selector when provided)" }, { "name": "limit", "value": "", "type": "query", "description": "Maximum log lines to return" }, { "name": "direction", "value": "", "type": "query", "description": "Return order for log entries" } ] }, "docs": "Get logs." }, { "info": { "name": "Search Traces", "type": "http" }, "http": { "method": "GET", "url": "{{baseUrl}}/v1/telemetry/traces", "params": [ { "name": "time_range", "value": "", "type": "query", "description": "Window to search for traces" }, { "name": "limit", "value": "", "type": "query", "description": "Maximum number of traces to return" }, { "name": "service_name", "value": "", "type": "query", "description": "Filter by root service" }, { "name": "agent_configuration_id", "value": "", "type": "query", "description": "Filter by agent id" }, { "name": "min_duration_ms", "value": "", "type": "query", "description": "Lower bound on trace duration (ms)" }, { "name": "max_duration_ms", "value": "", "type": "query", "description": "Upper bound on trace duration (ms)" }, { "name": "query", "value": "", "type": "query", "description": "Advanced TraceQL query" } ] }, "docs": "Search traces." }, { "info": { "name": "Get Trace By Id", "type": "http" }, "http": { "method": "GET", "url": "{{baseUrl}}/v1/telemetry/traces/:trace_id", "params": [ { "name": "trace_id", "value": "", "type": "path" } ] }, "docs": "Get trace by ID." } ] } ], "bundled": true }