| email required | string <email> (Email) |
| password required | string (Password) <= 255 characters |
Name (string) or Name (null) (Name) |
{- "email": "user@example.com",
- "password": "string",
- "name": "string"
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "email": "string",
- "name": "string",
- "role": "owner",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}Show who an invitation is for, before the invitee has an account.
Unauthenticated by necessity — the whole point is that this person cannot sign in yet. It discloses nothing the token holder does not already have: the address it was issued to, the role it grants, and when it lapses. It does not reveal whether the instance has other users, or who they are.
Shares the cheap /status bucket rather than the register bucket: previewing is a read, and it must not consume the quota the invitee needs to actually redeem. Unknown, expired and used tokens all return the same 400.
| token required | string (Token) |
{- "email": "string",
- "role": "owner",
- "expires_at": "2019-08-24T14:15:22Z"
}Redeem an invitation into an account, and sign the new user straight in.
Reachable regardless of registration_mode — that is the entire point:
an owner-issued, single-use, expiring, address-bound invitation is a
different mechanism from the instance-wide door, so a closed instance can
still onboard exactly the people its owner named.
On the register rate-limit bucket, so guessing tokens costs the same as hammering signup.
| token required | string (Token) |
| password required | string (Password) <= 255 characters |
Name (string) or Name (null) (Name) |
{- "password": "string",
- "name": "string"
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "email": "string",
- "name": "string",
- "role": "owner",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}| email required | string (Email) [ 3 .. 320 ] characters |
| password required | string (Password) [ 8 .. 255 ] characters |
{- "email": "string",
- "password": "stringst"
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "email": "string",
- "name": "string",
- "role": "owner",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}| token required | string (Token) [ 1 .. 512 ] characters |
| new_password required | string (New Password) <= 255 characters |
{- "token": "string",
- "new_password": "string"
}{- "message": "string"
}Outstanding invitations. Owner-only: this is the roster of pending access.
[- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "email": "string",
- "role": "owner",
- "invited_by_user_id": "14555a01-60ac-4fbb-b4da-2c40f2467b11",
- "expires_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "is_expired": true
}
]Invite one person, at a role the owner picks.
OwnerUserDep is owner-only AND rejects API keys of any scope, so minting
an account always requires an interactive owner session — an automation
token can never conjure a new identity.
The redeem link is returned in the body, not merely emailed: SMTP is optional and unconfigured on many instances, so a body-only path is the one that always works. It appears here and nowhere else.
| email required | string <email> (Email) |
| role | string (UserRole) Default: "editor" Enum: "owner" "editor" "viewer" |
{- "email": "user@example.com",
- "role": "owner"
}{- "invitation": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "email": "string",
- "role": "owner",
- "invited_by_user_id": "14555a01-60ac-4fbb-b4da-2c40f2467b11",
- "expires_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "is_expired": true
}, - "accept_path": "string",
- "expires_at": "2019-08-24T14:15:22Z"
}| limit | integer (Limit) [ 1 .. 1000 ] Default: 200 |
| offset | integer (Offset) >= 0 Default: 0 |
[- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "email": "string",
- "name": "string",
- "role": "owner",
- "created_at": "2019-08-24T14:15:22Z"
}
]| user_id required | string <uuid> (User Id) |
| role required | string (UserRole) Enum: "owner" "editor" "viewer" |
{- "role": "owner"
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "email": "string",
- "name": "string",
- "role": "owner",
- "created_at": "2019-08-24T14:15:22Z"
}[- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "slug": "string",
- "description": "string",
- "app_version_keep_releases": 5,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "summary": {
- "event_type_count": 0,
- "event_count": 0,
- "active_event_count": 0,
- "implemented_event_count": 0,
- "review_pending_event_count": 0,
- "archived_event_count": 0,
- "variable_count": 0,
- "scan_count": 0,
- "alert_destination_count": 0,
- "alert_rule_count": 0,
- "monitoring_signal_count": 0,
- "firing_monitor_count": 0,
- "open_incident_count": 0,
- "failing_scan_config_count": 0,
- "latest_scan_job": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "scan_config_id": "73831784-3bab-4614-8856-92f95dec4914",
- "scan_name": "string",
- "status": "pending",
- "started_at": "2019-08-24T14:15:22Z",
- "completed_at": "2019-08-24T14:15:22Z",
- "result_summary": { },
- "error_message": "string",
- "created_at": "2019-08-24T14:15:22Z"
}, - "latest_signal": {
- "scan_config_id": "73831784-3bab-4614-8856-92f95dec4914",
- "scan_name": "string",
- "scope_type": "project_total",
- "scope_ref": "string",
- "scope_name": "string",
- "state": "string",
- "bucket": "2019-08-24T14:15:22Z",
- "actual_count": 0,
- "expected_count": 0,
- "z_score": 0,
- "direction": "spike"
}
}, - "is_demo": false,
- "generation_status": "pending",
- "generation_stage": "string",
- "generation_error": "string",
- "demo_recipe_version": "string",
- "demo_seeded_at": "2019-08-24T14:15:22Z",
- "demo_last_tick_at": "2019-08-24T14:15:22Z",
- "created_by_user_id": "209f54c4-4c33-43bc-9c6a-ef4c65ad7473"
}
]| name required | string (Name) [ 1 .. 255 ] characters |
| slug required | string (Slug) [ 1 .. 255 ] characters ^[a-z0-9]+(?:-[a-z0-9]+)*$ |
| description | string (Description) Default: "" |
| app_version_keep_releases | integer (App Version Keep Releases) [ 1 .. 100 ] Default: 5 |
{- "name": "string",
- "slug": "string",
- "description": "",
- "app_version_keep_releases": 5
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "slug": "string",
- "description": "string",
- "app_version_keep_releases": 5,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "summary": {
- "event_type_count": 0,
- "event_count": 0,
- "active_event_count": 0,
- "implemented_event_count": 0,
- "review_pending_event_count": 0,
- "archived_event_count": 0,
- "variable_count": 0,
- "scan_count": 0,
- "alert_destination_count": 0,
- "alert_rule_count": 0,
- "monitoring_signal_count": 0,
- "firing_monitor_count": 0,
- "open_incident_count": 0,
- "failing_scan_config_count": 0,
- "latest_scan_job": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "scan_config_id": "73831784-3bab-4614-8856-92f95dec4914",
- "scan_name": "string",
- "status": "pending",
- "started_at": "2019-08-24T14:15:22Z",
- "completed_at": "2019-08-24T14:15:22Z",
- "result_summary": { },
- "error_message": "string",
- "created_at": "2019-08-24T14:15:22Z"
}, - "latest_signal": {
- "scan_config_id": "73831784-3bab-4614-8856-92f95dec4914",
- "scan_name": "string",
- "scope_type": "project_total",
- "scope_ref": "string",
- "scope_name": "string",
- "state": "string",
- "bucket": "2019-08-24T14:15:22Z",
- "actual_count": 0,
- "expected_count": 0,
- "z_score": 0,
- "direction": "spike"
}
}, - "is_demo": false,
- "generation_status": "pending",
- "generation_stage": "string",
- "generation_error": "string",
- "demo_recipe_version": "string",
- "demo_seeded_at": "2019-08-24T14:15:22Z",
- "demo_last_tick_at": "2019-08-24T14:15:22Z",
- "created_by_user_id": "209f54c4-4c33-43bc-9c6a-ef4c65ad7473"
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "slug": "string",
- "description": "string",
- "app_version_keep_releases": 5,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "summary": {
- "event_type_count": 0,
- "event_count": 0,
- "active_event_count": 0,
- "implemented_event_count": 0,
- "review_pending_event_count": 0,
- "archived_event_count": 0,
- "variable_count": 0,
- "scan_count": 0,
- "alert_destination_count": 0,
- "alert_rule_count": 0,
- "monitoring_signal_count": 0,
- "firing_monitor_count": 0,
- "open_incident_count": 0,
- "failing_scan_config_count": 0,
- "latest_scan_job": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "scan_config_id": "73831784-3bab-4614-8856-92f95dec4914",
- "scan_name": "string",
- "status": "pending",
- "started_at": "2019-08-24T14:15:22Z",
- "completed_at": "2019-08-24T14:15:22Z",
- "result_summary": { },
- "error_message": "string",
- "created_at": "2019-08-24T14:15:22Z"
}, - "latest_signal": {
- "scan_config_id": "73831784-3bab-4614-8856-92f95dec4914",
- "scan_name": "string",
- "scope_type": "project_total",
- "scope_ref": "string",
- "scope_name": "string",
- "state": "string",
- "bucket": "2019-08-24T14:15:22Z",
- "actual_count": 0,
- "expected_count": 0,
- "z_score": 0,
- "direction": "spike"
}
}, - "is_demo": false,
- "generation_status": "pending",
- "generation_stage": "string",
- "generation_error": "string",
- "demo_recipe_version": "string",
- "demo_seeded_at": "2019-08-24T14:15:22Z",
- "demo_last_tick_at": "2019-08-24T14:15:22Z",
- "created_by_user_id": "209f54c4-4c33-43bc-9c6a-ef4c65ad7473"
}Abandon this user's in-flight demo provision, if one is still seeding.
Deliberately ungated by the kill switch: it only ever removes work. Declared
before /demo/{slug}/reset so the literal path is never shadowed.
{- "cancelled": true,
- "slug": "string"
}Re-seed a demo in place. Restricted to the demo's creator or an owner.
| slug required | string (Slug) |
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "slug": "string",
- "description": "string",
- "app_version_keep_releases": 5,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "summary": {
- "event_type_count": 0,
- "event_count": 0,
- "active_event_count": 0,
- "implemented_event_count": 0,
- "review_pending_event_count": 0,
- "archived_event_count": 0,
- "variable_count": 0,
- "scan_count": 0,
- "alert_destination_count": 0,
- "alert_rule_count": 0,
- "monitoring_signal_count": 0,
- "firing_monitor_count": 0,
- "open_incident_count": 0,
- "failing_scan_config_count": 0,
- "latest_scan_job": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "scan_config_id": "73831784-3bab-4614-8856-92f95dec4914",
- "scan_name": "string",
- "status": "pending",
- "started_at": "2019-08-24T14:15:22Z",
- "completed_at": "2019-08-24T14:15:22Z",
- "result_summary": { },
- "error_message": "string",
- "created_at": "2019-08-24T14:15:22Z"
}, - "latest_signal": {
- "scan_config_id": "73831784-3bab-4614-8856-92f95dec4914",
- "scan_name": "string",
- "scope_type": "project_total",
- "scope_ref": "string",
- "scope_name": "string",
- "state": "string",
- "bucket": "2019-08-24T14:15:22Z",
- "actual_count": 0,
- "expected_count": 0,
- "z_score": 0,
- "direction": "spike"
}
}, - "is_demo": false,
- "generation_status": "pending",
- "generation_stage": "string",
- "generation_error": "string",
- "demo_recipe_version": "string",
- "demo_seeded_at": "2019-08-24T14:15:22Z",
- "demo_last_tick_at": "2019-08-24T14:15:22Z",
- "created_by_user_id": "209f54c4-4c33-43bc-9c6a-ef4c65ad7473"
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "slug": "string",
- "description": "string",
- "app_version_keep_releases": 5,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "summary": {
- "event_type_count": 0,
- "event_count": 0,
- "active_event_count": 0,
- "implemented_event_count": 0,
- "review_pending_event_count": 0,
- "archived_event_count": 0,
- "variable_count": 0,
- "scan_count": 0,
- "alert_destination_count": 0,
- "alert_rule_count": 0,
- "monitoring_signal_count": 0,
- "firing_monitor_count": 0,
- "open_incident_count": 0,
- "failing_scan_config_count": 0,
- "latest_scan_job": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "scan_config_id": "73831784-3bab-4614-8856-92f95dec4914",
- "scan_name": "string",
- "status": "pending",
- "started_at": "2019-08-24T14:15:22Z",
- "completed_at": "2019-08-24T14:15:22Z",
- "result_summary": { },
- "error_message": "string",
- "created_at": "2019-08-24T14:15:22Z"
}, - "latest_signal": {
- "scan_config_id": "73831784-3bab-4614-8856-92f95dec4914",
- "scan_name": "string",
- "scope_type": "project_total",
- "scope_ref": "string",
- "scope_name": "string",
- "state": "string",
- "bucket": "2019-08-24T14:15:22Z",
- "actual_count": 0,
- "expected_count": 0,
- "z_score": 0,
- "direction": "spike"
}
}, - "is_demo": false,
- "generation_status": "pending",
- "generation_stage": "string",
- "generation_error": "string",
- "demo_recipe_version": "string",
- "demo_seeded_at": "2019-08-24T14:15:22Z",
- "demo_last_tick_at": "2019-08-24T14:15:22Z",
- "created_by_user_id": "209f54c4-4c33-43bc-9c6a-ef4c65ad7473"
}| slug required | string (Slug) |
Name (string) or Name (null) (Name) | |
Slug (string) or Slug (null) (Slug) | |
Description (string) or Description (null) (Description) | |
| app_version_keep_releases | integer (App Version Keep Releases) [ 1 .. 100 ] |
{- "name": "string",
- "slug": "string",
- "description": "string",
- "app_version_keep_releases": 1
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "slug": "string",
- "description": "string",
- "app_version_keep_releases": 5,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "summary": {
- "event_type_count": 0,
- "event_count": 0,
- "active_event_count": 0,
- "implemented_event_count": 0,
- "review_pending_event_count": 0,
- "archived_event_count": 0,
- "variable_count": 0,
- "scan_count": 0,
- "alert_destination_count": 0,
- "alert_rule_count": 0,
- "monitoring_signal_count": 0,
- "firing_monitor_count": 0,
- "open_incident_count": 0,
- "failing_scan_config_count": 0,
- "latest_scan_job": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "scan_config_id": "73831784-3bab-4614-8856-92f95dec4914",
- "scan_name": "string",
- "status": "pending",
- "started_at": "2019-08-24T14:15:22Z",
- "completed_at": "2019-08-24T14:15:22Z",
- "result_summary": { },
- "error_message": "string",
- "created_at": "2019-08-24T14:15:22Z"
}, - "latest_signal": {
- "scan_config_id": "73831784-3bab-4614-8856-92f95dec4914",
- "scan_name": "string",
- "scope_type": "project_total",
- "scope_ref": "string",
- "scope_name": "string",
- "state": "string",
- "bucket": "2019-08-24T14:15:22Z",
- "actual_count": 0,
- "expected_count": 0,
- "z_score": 0,
- "direction": "spike"
}
}, - "is_demo": false,
- "generation_status": "pending",
- "generation_stage": "string",
- "generation_error": "string",
- "demo_recipe_version": "string",
- "demo_seeded_at": "2019-08-24T14:15:22Z",
- "demo_last_tick_at": "2019-08-24T14:15:22Z",
- "created_by_user_id": "209f54c4-4c33-43bc-9c6a-ef4c65ad7473"
}Owner-only: clear every anomaly (+ breakdown) in the project's period.
Destructive and irreversible. Derived monitoring signals disappear with the anomalies they are computed from.
| slug required | string (Slug) |
Before (string) or Before (null) (Before) | |
After (string) or After (null) (After) |
{- "before": "2019-08-24T14:15:22Z",
- "after": "2019-08-24T14:15:22Z"
}{- "metric_anomalies": 0,
- "metric_breakdown_anomalies": 0
}Owner-only: clear every schema + distribution drift in the project's period.
Destructive and irreversible.
| slug required | string (Slug) |
Before (string) or Before (null) (Before) | |
After (string) or After (null) (After) |
{- "before": "2019-08-24T14:15:22Z",
- "after": "2019-08-24T14:15:22Z"
}{- "schema_drifts": 0,
- "distribution_drifts": 0
}Owner-only: drop the variables a scan minted that nothing refers to.
A scan creates a variable for every placeholder it discovers and has never
retired one, so a project whose warehouse holds a JSON column keyed by
user-typed text accumulates a row per key forever (tripl-10h4). This deletes
only rows that a scan created, no human has edited, no event field value
names, and that carry no observed context, drift or override — see
core.variable_retirement for why "no observed context" alone is not
enough to be safe.
dry_run defaults to true, so the first call is always a preview. It
returns the same counts the real pass would, broken down by why each
surviving row was kept.
| slug required | string (Slug) |
Branch (string) or Branch (null) (Branch) Plan branch id (UUID) to read and write instead of the main branch. |
| mode | string (Mode) Default: "delete" Enum: "delete" "exclude" |
| dry_run | boolean (Dry Run) Default: true |
{- "mode": "delete",
- "dry_run": true
}{- "scanned": 0,
- "retirable": 0,
- "retired": 0,
- "kept_referenced": 0,
- "kept_observed": 0,
- "kept_documented": 0,
- "kept_user_edited": 0,
- "kept_excluded": 0
}| slug required | string (Slug) |
Event Type Id (string) or Event Type Id (null) (Event Type Id) | |
Search (string) or Search (null) (Search) | |
Array of Status (strings) or Status (null) (Status) | |
Tag (string) or Tag (null) (Tag) | |
Silent Since Days (integer) or Silent Since Days (null) (Silent Since Days) | |
Reviewed (boolean) or Reviewed (null) (Reviewed) | |
Field Value (string) or Field Value (null) (Field Value) | |
Meta Value (string) or Meta Value (null) (Meta Value) | |
| offset | integer (Offset) >= 0 Default: 0 |
| limit | integer (Limit) [ 1 .. 10000 ] Default: 200 |
| order_by | string (Order By) Default: "catalog" Enum: "catalog" "volume" |
Branch (string) or Branch (null) (Branch) Plan branch id (UUID) to read and write instead of the main branch. |
{- "items": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
- "event_type_id": "a4ec4c3c-a3de-4a8a-983f-1791e72cea83",
- "name": "string",
- "description": "string",
- "order": 0,
- "status": "draft",
- "sunset_at": "2019-08-24T14:15:22Z",
- "last_seen_at": "2019-08-24T14:15:22Z",
- "owner_id": "8826ee2e-7933-4665-aef2-2393f84a0d05",
- "reviewed": false,
- "metric_breakdown_columns": [ ],
- "drift_count": 0,
- "monitored": false,
- "tags": [ ],
- "field_values": [ ],
- "meta_values": [ ],
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
], - "total": 0
}| slug required | string (Slug) |
Branch (string) or Branch (null) (Branch) Plan branch id (UUID) to read and write instead of the main branch. |
| event_type_id required | string <uuid> (Event Type Id) |
| name required | string (Name) [ 1 .. 500 ] characters |
| description | string (Description) Default: "" |
| status | string (EventStatus) Default: "draft" Enum: "draft" "in_review" "ready_for_dev" "implemented" "live" "deprecated" "archived" |
Sunset At (string) or Sunset At (null) (Sunset At) | |
Owner Id (string) or Owner Id (null) (Owner Id) | |
| reviewed | boolean (Reviewed) Default: false |
| metric_breakdown_columns | Array of strings (Metric Breakdown Columns) Default: [] |
| tags | Array of strings (Tags) Default: [] |
Array of objects (Field Values) Default: [] | |
Array of objects (Meta Values) Default: [] |
{- "event_type_id": "a4ec4c3c-a3de-4a8a-983f-1791e72cea83",
- "name": "string",
- "description": "",
- "status": "draft",
- "sunset_at": "2019-08-24T14:15:22Z",
- "owner_id": "8826ee2e-7933-4665-aef2-2393f84a0d05",
- "reviewed": false,
- "metric_breakdown_columns": [ ],
- "tags": [ ],
- "field_values": [ ],
- "meta_values": [ ]
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
- "event_type_id": "a4ec4c3c-a3de-4a8a-983f-1791e72cea83",
- "event_type": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "display_name": "string",
- "color": "string"
}, - "name": "string",
- "description": "string",
- "order": 0,
- "status": "draft",
- "sunset_at": "2019-08-24T14:15:22Z",
- "last_seen_at": "2019-08-24T14:15:22Z",
- "owner_id": "8826ee2e-7933-4665-aef2-2393f84a0d05",
- "reviewed": false,
- "metric_breakdown_columns": [ ],
- "drift_count": 0,
- "tags": [ ],
- "field_values": [ ],
- "meta_values": [ ],
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "warnings": [
- "string"
]
}| slug required | string (Slug) |
Branch (string) or Branch (null) (Branch) Plan branch id (UUID) to read and write instead of the main branch. |
| event_type_id required | string <uuid> (Event Type Id) |
| name required | string (Name) [ 1 .. 500 ] characters |
| description | string (Description) Default: "" |
| status | string (EventStatus) Default: "draft" Enum: "draft" "in_review" "ready_for_dev" "implemented" "live" "deprecated" "archived" |
Sunset At (string) or Sunset At (null) (Sunset At) | |
Owner Id (string) or Owner Id (null) (Owner Id) | |
| reviewed | boolean (Reviewed) Default: false |
| metric_breakdown_columns | Array of strings (Metric Breakdown Columns) Default: [] |
| tags | Array of strings (Tags) Default: [] |
Array of objects (Field Values) Default: [] | |
Array of objects (Meta Values) Default: [] |
[- {
- "event_type_id": "a4ec4c3c-a3de-4a8a-983f-1791e72cea83",
- "name": "string",
- "description": "",
- "status": "draft",
- "sunset_at": "2019-08-24T14:15:22Z",
- "owner_id": "8826ee2e-7933-4665-aef2-2393f84a0d05",
- "reviewed": false,
- "metric_breakdown_columns": [ ],
- "tags": [ ],
- "field_values": [ ],
- "meta_values": [ ]
}
][- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
- "event_type_id": "a4ec4c3c-a3de-4a8a-983f-1791e72cea83",
- "event_type": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "display_name": "string",
- "color": "string"
}, - "name": "string",
- "description": "string",
- "order": 0,
- "status": "draft",
- "sunset_at": "2019-08-24T14:15:22Z",
- "last_seen_at": "2019-08-24T14:15:22Z",
- "owner_id": "8826ee2e-7933-4665-aef2-2393f84a0d05",
- "reviewed": false,
- "metric_breakdown_columns": [ ],
- "drift_count": 0,
- "tags": [ ],
- "field_values": [ ],
- "meta_values": [ ],
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
]| slug required | string (Slug) |
Branch (string) or Branch (null) (Branch) Plan branch id (UUID) to read and write instead of the main branch. |
| event_ids required | Array of strings <uuid> (Event Ids) non-empty [ items <uuid > ] |
{- "event_ids": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
]
}{- "detail": [
- {
- "loc": [
- "string"
], - "msg": "string",
- "type": "string",
- "input": null,
- "ctx": { }
}
]
}| slug required | string (Slug) |
Branch (string) or Branch (null) (Branch) Plan branch id (UUID) to read and write instead of the main branch. |
| event_ids required | Array of strings <uuid> (Event Ids) non-empty [ items <uuid > ] |
EventStatus (string) or null | |
Sunset At (string) or Sunset At (null) (Sunset At) | |
Owner Id (string) or Owner Id (null) (Owner Id) | |
Reviewed (boolean) or Reviewed (null) (Reviewed) |
{- "event_ids": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
], - "status": "draft",
- "sunset_at": "2019-08-24T14:15:22Z",
- "owner_id": "8826ee2e-7933-4665-aef2-2393f84a0d05",
- "reviewed": true
}{- "detail": [
- {
- "loc": [
- "string"
], - "msg": "string",
- "type": "string",
- "input": null,
- "ctx": { }
}
]
}| slug required | string (Slug) |
Branch (string) or Branch (null) (Branch) Plan branch id (UUID) to read and write instead of the main branch. |
| event_ids required | Array of strings <uuid> (Event Ids) non-empty [ items <uuid > ] |
{- "event_ids": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
]
}[- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
- "event_type_id": "a4ec4c3c-a3de-4a8a-983f-1791e72cea83",
- "event_type": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "display_name": "string",
- "color": "string"
}, - "name": "string",
- "description": "string",
- "order": 0,
- "status": "draft",
- "sunset_at": "2019-08-24T14:15:22Z",
- "last_seen_at": "2019-08-24T14:15:22Z",
- "owner_id": "8826ee2e-7933-4665-aef2-2393f84a0d05",
- "reviewed": false,
- "metric_breakdown_columns": [ ],
- "drift_count": 0,
- "tags": [ ],
- "field_values": [ ],
- "meta_values": [ ],
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
]| slug required | string (Slug) |
| event_id required | string <uuid> (Event Id) |
Branch (string) or Branch (null) (Branch) Plan branch id (UUID) to read and write instead of the main branch. |
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
- "event_type_id": "a4ec4c3c-a3de-4a8a-983f-1791e72cea83",
- "event_type": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "display_name": "string",
- "color": "string"
}, - "name": "string",
- "description": "string",
- "order": 0,
- "status": "draft",
- "sunset_at": "2019-08-24T14:15:22Z",
- "last_seen_at": "2019-08-24T14:15:22Z",
- "owner_id": "8826ee2e-7933-4665-aef2-2393f84a0d05",
- "reviewed": false,
- "metric_breakdown_columns": [ ],
- "drift_count": 0,
- "tags": [ ],
- "field_values": [ ],
- "meta_values": [ ],
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}| slug required | string (Slug) |
| event_id required | string <uuid> (Event Id) |
Branch (string) or Branch (null) (Branch) Plan branch id (UUID) to read and write instead of the main branch. |
Name (string) or Name (null) (Name) | |
Description (string) or Description (null) (Description) | |
EventStatus (string) or null | |
Sunset At (string) or Sunset At (null) (Sunset At) | |
Owner Id (string) or Owner Id (null) (Owner Id) | |
Reviewed (boolean) or Reviewed (null) (Reviewed) | |
Array of Metric Breakdown Columns (strings) or Metric Breakdown Columns (null) (Metric Breakdown Columns) | |
Array of Tags (strings) or Tags (null) (Tags) | |
Array of Field Values (objects) or Field Values (null) (Field Values) | |
Array of Meta Values (objects) or Meta Values (null) (Meta Values) |
{- "name": "string",
- "description": "string",
- "status": "draft",
- "sunset_at": "2019-08-24T14:15:22Z",
- "owner_id": "8826ee2e-7933-4665-aef2-2393f84a0d05",
- "reviewed": true,
- "metric_breakdown_columns": [
- "string"
], - "tags": [
- "string"
], - "field_values": [
- {
- "field_definition_id": "56ae8bcc-3ec2-44c3-a99e-07fd08a66513",
- "value": "string"
}
], - "meta_values": [
- {
- "meta_field_definition_id": "b93ee3e8-4680-4ebd-9e21-28662a5f2d1c",
- "value": "string"
}
]
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
- "event_type_id": "a4ec4c3c-a3de-4a8a-983f-1791e72cea83",
- "event_type": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "display_name": "string",
- "color": "string"
}, - "name": "string",
- "description": "string",
- "order": 0,
- "status": "draft",
- "sunset_at": "2019-08-24T14:15:22Z",
- "last_seen_at": "2019-08-24T14:15:22Z",
- "owner_id": "8826ee2e-7933-4665-aef2-2393f84a0d05",
- "reviewed": false,
- "metric_breakdown_columns": [ ],
- "drift_count": 0,
- "tags": [ ],
- "field_values": [ ],
- "meta_values": [ ],
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "warnings": [
- "string"
]
}| slug required | string (Slug) |
| event_id required | string <uuid> (Event Id) |
Branch (string) or Branch (null) (Branch) Plan branch id (UUID) to read and write instead of the main branch. |
{- "detail": [
- {
- "loc": [
- "string"
], - "msg": "string",
- "type": "string",
- "input": null,
- "ctx": { }
}
]
}| slug required | string (Slug) |
| event_id required | string <uuid> (Event Id) |
Branch (string) or Branch (null) (Branch) Plan branch id (UUID) to read and write instead of the main branch. |
[- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "event_id": "a7a26ff2-e851-45b6-9634-d595f45458b7",
- "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",
- "user_email": "string",
- "field": "string",
- "old_value": "string",
- "new_value": "string",
- "created_at": "2019-08-24T14:15:22Z"
}
]| slug required | string (Slug) |
| event_id required | string <uuid> (Event Id) |
Branch (string) or Branch (null) (Branch) Plan branch id (UUID) to read and write instead of the main branch. |
| direction required | string (Direction) Enum: "up" "down" |
Array of Visible Event Ids (strings) or Visible Event Ids (null) (Visible Event Ids) |
{- "direction": "up",
- "visible_event_ids": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
]
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
- "event_type_id": "a4ec4c3c-a3de-4a8a-983f-1791e72cea83",
- "event_type": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "display_name": "string",
- "color": "string"
}, - "name": "string",
- "description": "string",
- "order": 0,
- "status": "draft",
- "sunset_at": "2019-08-24T14:15:22Z",
- "last_seen_at": "2019-08-24T14:15:22Z",
- "owner_id": "8826ee2e-7933-4665-aef2-2393f84a0d05",
- "reviewed": false,
- "metric_breakdown_columns": [ ],
- "drift_count": 0,
- "tags": [ ],
- "field_values": [ ],
- "meta_values": [ ],
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}| slug required | string (Slug) |
Branch (string) or Branch (null) (Branch) Plan branch id (UUID) to read and write instead of the main branch. |
[- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
- "name": "string",
- "display_name": "string",
- "description": "string",
- "color": "string",
- "order": 0,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "field_definitions": [ ]
}
]| slug required | string (Slug) |
Branch (string) or Branch (null) (Branch) Plan branch id (UUID) to read and write instead of the main branch. |
| name required | string (Name) [ 1 .. 100 ] characters |
| display_name required | string (Display Name) [ 1 .. 255 ] characters |
| description | string (Description) Default: "" |
| color | string (Color) ^#[0-9a-fA-F]{6}$ Default: "#6366f1" |
| order | integer (Order) Default: 0 |
Array of objects (Field Definitions) |
{- "name": "string",
- "display_name": "string",
- "description": "",
- "color": "#6366f1",
- "order": 0,
- "field_definitions": [
- {
- "name": "string",
- "display_name": "string",
- "field_type": "string",
- "is_required": false,
- "enum_options": [
- "string"
], - "description": "",
- "order": 0,
- "sensitivity": "none",
- "contract_required_max_null_rate": 1,
- "contract_regex": "string",
- "contract_min_value": 0,
- "contract_max_value": 0,
- "contract_max_bad_rate": 0
}
]
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
- "name": "string",
- "display_name": "string",
- "description": "string",
- "color": "string",
- "order": 0,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "field_definitions": [ ]
}| slug required | string (Slug) |
| event_type_id required | string <uuid> (Event Type Id) |
Branch (string) or Branch (null) (Branch) Plan branch id (UUID) to read and write instead of the main branch. |
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
- "name": "string",
- "display_name": "string",
- "description": "string",
- "color": "string",
- "order": 0,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "field_definitions": [ ]
}| slug required | string (Slug) |
| event_type_id required | string <uuid> (Event Type Id) |
Branch (string) or Branch (null) (Branch) Plan branch id (UUID) to read and write instead of the main branch. |
Display Name (string) or Display Name (null) (Display Name) | |
Description (string) or Description (null) (Description) | |
Color (string) or Color (null) (Color) | |
Order (integer) or Order (null) (Order) |
{- "display_name": "string",
- "description": "string",
- "color": "string",
- "order": 0
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
- "name": "string",
- "display_name": "string",
- "description": "string",
- "color": "string",
- "order": 0,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "field_definitions": [ ]
}| slug required | string (Slug) |
| event_type_id required | string <uuid> (Event Type Id) |
Branch (string) or Branch (null) (Branch) Plan branch id (UUID) to read and write instead of the main branch. |
{- "detail": [
- {
- "loc": [
- "string"
], - "msg": "string",
- "type": "string",
- "input": null,
- "ctx": { }
}
]
}| slug required | string (Slug) |
| event_type_id required | string <uuid> (Event Type Id) |
{- "items": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "event_type_id": "a4ec4c3c-a3de-4a8a-983f-1791e72cea83",
- "scan_config_id": "73831784-3bab-4614-8856-92f95dec4914",
- "field_name": "string",
- "drift_type": "new_field",
- "observed_type": "string",
- "declared_type": "string",
- "sample_value": "string",
- "status": "open",
- "resolution_note": "string",
- "snoozed_until": "2019-08-24T14:15:22Z",
- "resolved_at": "2019-08-24T14:15:22Z",
- "resolved_by": "d0d57369-b08b-4db8-8952-8cdeedd9aebc",
- "detected_at": "2019-08-24T14:15:22Z"
}
], - "total": 0
}| slug required | string (Slug) |
| drift_id required | string <uuid> (Drift Id) |
| action required | string (Action) Enum: "accept" "snooze" "false_positive" "reopen" |
Note (string) or Note (null) (Note) | |
Snoozed Until (string) or Snoozed Until (null) (Snoozed Until) | |
| force | boolean (Force) Default: false Override the guard that refuses to accept a missing_field drift for a column a scan config's event name format builds event names from (tripl-3mmh). API-only escape hatch for a project-wide config that names the column but never scans this event type; requires a note explaining why, which lands in the audit record. The UI does not offer it — a warning next to an Accept button is a thing operators click past, and clicking past it is what caused the outage. |
{- "action": "accept",
- "note": "string",
- "snoozed_until": "2019-08-24T14:15:22Z",
- "force": false
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "event_type_id": "a4ec4c3c-a3de-4a8a-983f-1791e72cea83",
- "scan_config_id": "73831784-3bab-4614-8856-92f95dec4914",
- "field_name": "string",
- "drift_type": "new_field",
- "observed_type": "string",
- "declared_type": "string",
- "sample_value": "string",
- "status": "open",
- "resolution_note": "string",
- "snoozed_until": "2019-08-24T14:15:22Z",
- "resolved_at": "2019-08-24T14:15:22Z",
- "resolved_by": "d0d57369-b08b-4db8-8952-8cdeedd9aebc",
- "detected_at": "2019-08-24T14:15:22Z"
}| slug required | string (Slug) |
| event_type_id required | string <uuid> (Event Type Id) |
[- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "event_type_id": "a4ec4c3c-a3de-4a8a-983f-1791e72cea83",
- "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",
- "user_email": "string",
- "user_name": "string",
- "granted_by": "a8e4a498-f971-4203-a849-4967743579d4",
- "created_at": "2019-08-24T14:15:22Z"
}
]| slug required | string (Slug) |
| event_type_id required | string <uuid> (Event Type Id) |
| user_id required | string <uuid> (User Id) |
{- "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5"
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "event_type_id": "a4ec4c3c-a3de-4a8a-983f-1791e72cea83",
- "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",
- "user_email": "string",
- "user_name": "string",
- "granted_by": "a8e4a498-f971-4203-a849-4967743579d4",
- "created_at": "2019-08-24T14:15:22Z"
}| slug required | string (Slug) |
| event_type_id required | string <uuid> (Event Type Id) |
Branch (string) or Branch (null) (Branch) Plan branch id (UUID) to read and write instead of the main branch. |
[- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "event_type_id": "a4ec4c3c-a3de-4a8a-983f-1791e72cea83",
- "name": "string",
- "display_name": "string",
- "field_type": "string",
- "is_required": true,
- "enum_options": [
- null
], - "description": "string",
- "order": 0,
- "sensitivity": "none",
- "contract_required_max_null_rate": 0,
- "contract_regex": "string",
- "contract_min_value": 0,
- "contract_max_value": 0,
- "contract_max_bad_rate": 0
}
]| slug required | string (Slug) |
| event_type_id required | string <uuid> (Event Type Id) |
Branch (string) or Branch (null) (Branch) Plan branch id (UUID) to read and write instead of the main branch. |
| name required | string (Name) [ 1 .. 100 ] characters |
| display_name required | string (Display Name) [ 1 .. 255 ] characters |
| field_type required | string (FieldDefinitionType) Enum: "string" "number" "boolean" "json" "enum" "url" |
| is_required | boolean (Is Required) Default: false |
Array of Enum Options (strings) or Enum Options (null) (Enum Options) | |
| description | string (Description) Default: "" |
| order | integer (Order) Default: 0 |
| sensitivity | string (Sensitivity) Default: "none" Enum: "none" "pii" "phi" "financial" "secret" |
Contract Required Max Null Rate (number) or Contract Required Max Null Rate (null) (Contract Required Max Null Rate) | |
Contract Regex (string) or Contract Regex (null) (Contract Regex) | |
Contract Min Value (number) or Contract Min Value (null) (Contract Min Value) | |
Contract Max Value (number) or Contract Max Value (null) (Contract Max Value) | |
| contract_max_bad_rate | number (Contract Max Bad Rate) [ 0 .. 1 ] Default: 0 |
{- "name": "string",
- "display_name": "string",
- "field_type": "string",
- "is_required": false,
- "enum_options": [
- "string"
], - "description": "",
- "order": 0,
- "sensitivity": "none",
- "contract_required_max_null_rate": 1,
- "contract_regex": "string",
- "contract_min_value": 0,
- "contract_max_value": 0,
- "contract_max_bad_rate": 0
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "event_type_id": "a4ec4c3c-a3de-4a8a-983f-1791e72cea83",
- "name": "string",
- "display_name": "string",
- "field_type": "string",
- "is_required": true,
- "enum_options": [
- null
], - "description": "string",
- "order": 0,
- "sensitivity": "none",
- "contract_required_max_null_rate": 0,
- "contract_regex": "string",
- "contract_min_value": 0,
- "contract_max_value": 0,
- "contract_max_bad_rate": 0
}| slug required | string (Slug) |
| event_type_id required | string <uuid> (Event Type Id) |
Branch (string) or Branch (null) (Branch) Plan branch id (UUID) to read and write instead of the main branch. |
required | Array of objects (Fields) non-empty | ||||||||||||||||||||||||||
Array (non-empty)
| |||||||||||||||||||||||||||
{- "fields": [
- {
- "name": "string",
- "display_name": "string",
- "field_type": "string",
- "is_required": false,
- "enum_options": [
- "string"
], - "description": "",
- "order": 0,
- "sensitivity": "none",
- "contract_required_max_null_rate": 1,
- "contract_regex": "string",
- "contract_min_value": 0,
- "contract_max_value": 0,
- "contract_max_bad_rate": 0
}
]
}[- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "event_type_id": "a4ec4c3c-a3de-4a8a-983f-1791e72cea83",
- "name": "string",
- "display_name": "string",
- "field_type": "string",
- "is_required": true,
- "enum_options": [
- null
], - "description": "string",
- "order": 0,
- "sensitivity": "none",
- "contract_required_max_null_rate": 0,
- "contract_regex": "string",
- "contract_min_value": 0,
- "contract_max_value": 0,
- "contract_max_bad_rate": 0
}
]| slug required | string (Slug) |
| event_type_id required | string <uuid> (Event Type Id) |
Branch (string) or Branch (null) (Branch) Plan branch id (UUID) to read and write instead of the main branch. |
| field_ids required | Array of strings <uuid> (Field Ids) [ items <uuid > ] |
{- "field_ids": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
]
}[- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "event_type_id": "a4ec4c3c-a3de-4a8a-983f-1791e72cea83",
- "name": "string",
- "display_name": "string",
- "field_type": "string",
- "is_required": true,
- "enum_options": [
- null
], - "description": "string",
- "order": 0,
- "sensitivity": "none",
- "contract_required_max_null_rate": 0,
- "contract_regex": "string",
- "contract_min_value": 0,
- "contract_max_value": 0,
- "contract_max_bad_rate": 0
}
]| slug required | string (Slug) |
| event_type_id required | string <uuid> (Event Type Id) |
| field_id required | string <uuid> (Field Id) |
Branch (string) or Branch (null) (Branch) Plan branch id (UUID) to read and write instead of the main branch. |
Display Name (string) or Display Name (null) (Display Name) | |
FieldDefinitionType (string) or null | |
Is Required (boolean) or Is Required (null) (Is Required) | |
Array of Enum Options (strings) or Enum Options (null) (Enum Options) | |
Description (string) or Description (null) (Description) | |
Order (integer) or Order (null) (Order) | |
Sensitivity (string) or null | |
Contract Required Max Null Rate (number) or Contract Required Max Null Rate (null) (Contract Required Max Null Rate) | |
Contract Regex (string) or Contract Regex (null) (Contract Regex) | |
Contract Min Value (number) or Contract Min Value (null) (Contract Min Value) | |
Contract Max Value (number) or Contract Max Value (null) (Contract Max Value) | |
Contract Max Bad Rate (number) or Contract Max Bad Rate (null) (Contract Max Bad Rate) |
{- "display_name": "string",
- "field_type": "string",
- "is_required": true,
- "enum_options": [
- "string"
], - "description": "string",
- "order": 0,
- "sensitivity": "none",
- "contract_required_max_null_rate": 1,
- "contract_regex": "string",
- "contract_min_value": 0,
- "contract_max_value": 0,
- "contract_max_bad_rate": 1
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "event_type_id": "a4ec4c3c-a3de-4a8a-983f-1791e72cea83",
- "name": "string",
- "display_name": "string",
- "field_type": "string",
- "is_required": true,
- "enum_options": [
- null
], - "description": "string",
- "order": 0,
- "sensitivity": "none",
- "contract_required_max_null_rate": 0,
- "contract_regex": "string",
- "contract_min_value": 0,
- "contract_max_value": 0,
- "contract_max_bad_rate": 0
}| slug required | string (Slug) |
| event_type_id required | string <uuid> (Event Type Id) |
| field_id required | string <uuid> (Field Id) |
Branch (string) or Branch (null) (Branch) Plan branch id (UUID) to read and write instead of the main branch. |
{- "detail": [
- {
- "loc": [
- "string"
], - "msg": "string",
- "type": "string",
- "input": null,
- "ctx": { }
}
]
}| slug required | string (Slug) |
Branch (string) or Branch (null) (Branch) Plan branch id (UUID) to read and write instead of the main branch. |
[- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
- "name": "string",
- "display_name": "string",
- "field_type": "string",
- "is_required": true,
- "enum_options": [
- null
], - "default_value": "string",
- "link_template": "string",
- "order": 0,
- "sensitivity": "none"
}
]| slug required | string (Slug) |
Branch (string) or Branch (null) (Branch) Plan branch id (UUID) to read and write instead of the main branch. |
| name required | string (Name) [ 1 .. 100 ] characters |
| display_name required | string (Display Name) [ 1 .. 255 ] characters |
| field_type required | string (MetaFieldType) Enum: "string" "url" "boolean" "enum" "date" |
| is_required | boolean (Is Required) Default: false |
Array of Enum Options (strings) or Enum Options (null) (Enum Options) | |
Default Value (string) or Default Value (null) (Default Value) | |
Link Template (string) or Link Template (null) (Link Template) | |
| order | integer (Order) Default: 0 |
| sensitivity | string (Sensitivity) Default: "none" Enum: "none" "pii" "phi" "financial" "secret" |
{- "name": "string",
- "display_name": "string",
- "field_type": "string",
- "is_required": false,
- "enum_options": [
- "string"
], - "default_value": "string",
- "link_template": "string",
- "order": 0,
- "sensitivity": "none"
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
- "name": "string",
- "display_name": "string",
- "field_type": "string",
- "is_required": true,
- "enum_options": [
- null
], - "default_value": "string",
- "link_template": "string",
- "order": 0,
- "sensitivity": "none"
}| slug required | string (Slug) |
| meta_field_id required | string <uuid> (Meta Field Id) |
Branch (string) or Branch (null) (Branch) Plan branch id (UUID) to read and write instead of the main branch. |
Display Name (string) or Display Name (null) (Display Name) | |
MetaFieldType (string) or null | |
Is Required (boolean) or Is Required (null) (Is Required) | |
Array of Enum Options (strings) or Enum Options (null) (Enum Options) | |
Default Value (string) or Default Value (null) (Default Value) | |
Link Template (string) or Link Template (null) (Link Template) | |
Order (integer) or Order (null) (Order) | |
Sensitivity (string) or null |
{- "display_name": "string",
- "field_type": "string",
- "is_required": true,
- "enum_options": [
- "string"
], - "default_value": "string",
- "link_template": "string",
- "order": 0,
- "sensitivity": "none"
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
- "name": "string",
- "display_name": "string",
- "field_type": "string",
- "is_required": true,
- "enum_options": [
- null
], - "default_value": "string",
- "link_template": "string",
- "order": 0,
- "sensitivity": "none"
}| slug required | string (Slug) |
| meta_field_id required | string <uuid> (Meta Field Id) |
Branch (string) or Branch (null) (Branch) Plan branch id (UUID) to read and write instead of the main branch. |
{- "detail": [
- {
- "loc": [
- "string"
], - "msg": "string",
- "type": "string",
- "input": null,
- "ctx": { }
}
]
}| slug required | string (Slug) |
Branch (string) or Branch (null) (Branch) Plan branch id (UUID) to read and write instead of the main branch. |
| variable_ids required | Array of strings <uuid> (Variable Ids) non-empty [ items <uuid > ] |
VariableType (string) or null | |
Description (string) or Description (null) (Description) | |
Array of Allowed Values Add (strings) or Allowed Values Add (null) (Allowed Values Add) | |
Array of Allowed Values Remove (strings) or Allowed Values Remove (null) (Allowed Values Remove) |
{- "variable_ids": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
], - "variable_type": "string",
- "description": "string",
- "allowed_values_add": [
- "string"
], - "allowed_values_remove": [
- "string"
]
}{- "detail": [
- {
- "loc": [
- "string"
], - "msg": "string",
- "type": "string",
- "input": null,
- "ctx": { }
}
]
}| slug required | string (Slug) |
Branch (string) or Branch (null) (Branch) Plan branch id (UUID) to read and write instead of the main branch. |
| variable_ids required | Array of strings <uuid> (Variable Ids) non-empty [ items <uuid > ] |
{- "variable_ids": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
]
}{- "detail": [
- {
- "loc": [
- "string"
], - "msg": "string",
- "type": "string",
- "input": null,
- "ctx": { }
}
]
}| slug required | string (Slug) |
Variable Id (string) or Variable Id (null) (Variable Id) | |
Event Id (string) or Event Id (null) (Event Id) |
{- "items": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "variable_id": "8339bd98-4109-4958-960a-f55d5e3ec302",
- "variable_name": "string",
- "event_id": "a7a26ff2-e851-45b6-9634-d595f45458b7",
- "event_name": "string",
- "scan_config_id": "73831784-3bab-4614-8856-92f95dec4914",
- "observed_values": [ ],
- "status": "open",
- "resolution_note": "string",
- "snoozed_until": "2019-08-24T14:15:22Z",
- "resolved_at": "2019-08-24T14:15:22Z",
- "resolved_by": "d0d57369-b08b-4db8-8952-8cdeedd9aebc",
- "detected_at": "2019-08-24T14:15:22Z"
}
], - "total": 0
}| slug required | string (Slug) |
| drift_id required | string <uuid> (Drift Id) |
| action required | string (Action) Enum: "accept" "snooze" "false_positive" "reopen" |
| scope | string (Scope) Default: "global" Enum: "global" "event" |
Note (string) or Note (null) (Note) | |
Snoozed Until (string) or Snoozed Until (null) (Snoozed Until) |
{- "action": "accept",
- "scope": "global",
- "note": "string",
- "snoozed_until": "2019-08-24T14:15:22Z"
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "variable_id": "8339bd98-4109-4958-960a-f55d5e3ec302",
- "variable_name": "string",
- "event_id": "a7a26ff2-e851-45b6-9634-d595f45458b7",
- "event_name": "string",
- "scan_config_id": "73831784-3bab-4614-8856-92f95dec4914",
- "observed_values": [ ],
- "status": "open",
- "resolution_note": "string",
- "snoozed_until": "2019-08-24T14:15:22Z",
- "resolved_at": "2019-08-24T14:15:22Z",
- "resolved_by": "d0d57369-b08b-4db8-8952-8cdeedd9aebc",
- "detected_at": "2019-08-24T14:15:22Z"
}| slug required | string (Slug) |
| offset | integer (Offset) >= 0 Default: 0 |
| limit | integer (Limit) [ 1 .. 5000 ] Default: 200 |
| usage | string (Usage) Default: "all" Enum: "all" "used" "unused" Narrow to the variables nothing refers to ('unused' — exactly the set the retirement sweep would take) or to their complement ('used'). Declared as an enum rather than a free string so an unknown value is a 422 and not a 500 (tripl-57g0). |
Branch (string) or Branch (null) (Branch) Plan branch id (UUID) to read and write instead of the main branch. |
{- "items": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
- "name": "string",
- "source_name": "string",
- "variable_type": "string",
- "description": "string",
- "allowed_values": [ ],
- "bindings": [ ],
- "excluded_from_scans": false,
- "event_count": 0,
- "context_count": 0,
- "low_context_count": 0,
- "high_context_count": 0,
- "sample_values": [ ],
- "open_drift_count": 0,
- "event_names": [ ]
}
], - "total": 0
}| slug required | string (Slug) |
Branch (string) or Branch (null) (Branch) Plan branch id (UUID) to read and write instead of the main branch. |
| name required | string (Name) [ 1 .. 100 ] characters ^[a-z][a-z0-9_]*$ |
| variable_type | string (VariableType) Default: "string" Enum: "string" "number" "boolean" "date" "datetime" "json" "string_array" "number_array" |
| description | string (Description) Default: "" |
| allowed_values | Array of strings (Allowed Values) <= 500 items |
| bindings | Array of strings (Bindings) <= 100 items |
{- "name": "string",
- "variable_type": "string",
- "description": "",
- "allowed_values": [
- "string"
], - "bindings": [
- "string"
]
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
- "name": "string",
- "source_name": "string",
- "variable_type": "string",
- "description": "string",
- "allowed_values": [ ],
- "bindings": [ ],
- "excluded_from_scans": false,
- "event_count": 0,
- "context_count": 0,
- "low_context_count": 0,
- "high_context_count": 0,
- "sample_values": [ ],
- "open_drift_count": 0,
- "event_names": [ ]
}| slug required | string (Slug) |
| variable_id required | string <uuid> (Variable Id) |
Branch (string) or Branch (null) (Branch) Plan branch id (UUID) to read and write instead of the main branch. |
[- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "variable_id": "8339bd98-4109-4958-960a-f55d5e3ec302",
- "variable_name": "string",
- "event_id": "a7a26ff2-e851-45b6-9634-d595f45458b7",
- "event_name": "string",
- "field_definition_id": "56ae8bcc-3ec2-44c3-a99e-07fd08a66513",
- "field_name": "string",
- "field_display_name": "string",
- "source_column": "string",
- "value_kind": "low",
- "observed_count": 0,
- "values": [ ]
}
]| slug required | string (Slug) |
| variable_id required | string <uuid> (Variable Id) |
Branch (string) or Branch (null) (Branch) Plan branch id (UUID) to read and write instead of the main branch. |
[- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "variable_id": "8339bd98-4109-4958-960a-f55d5e3ec302",
- "event_id": "a7a26ff2-e851-45b6-9634-d595f45458b7",
- "event_name": "string",
- "values": [ ]
}
]| slug required | string (Slug) |
| variable_id required | string <uuid> (Variable Id) |
| event_id required | string <uuid> (Event Id) |
Branch (string) or Branch (null) (Branch) Plan branch id (UUID) to read and write instead of the main branch. |
| values required | Array of strings (Values) <= 500 items |
{- "values": [
- "string"
]
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "variable_id": "8339bd98-4109-4958-960a-f55d5e3ec302",
- "event_id": "a7a26ff2-e851-45b6-9634-d595f45458b7",
- "event_name": "string",
- "values": [ ]
}| slug required | string (Slug) |
| variable_id required | string <uuid> (Variable Id) |
| event_id required | string <uuid> (Event Id) |
Branch (string) or Branch (null) (Branch) Plan branch id (UUID) to read and write instead of the main branch. |
{- "detail": [
- {
- "loc": [
- "string"
], - "msg": "string",
- "type": "string",
- "input": null,
- "ctx": { }
}
]
}| slug required | string (Slug) |
| variable_id required | string <uuid> (Variable Id) |
Branch (string) or Branch (null) (Branch) Plan branch id (UUID) to read and write instead of the main branch. |
Name (string) or Name (null) (Name) | |
VariableType (string) or null | |
Description (string) or Description (null) (Description) | |
Array of Allowed Values (strings) or Allowed Values (null) (Allowed Values) | |
Array of Bindings (strings) or Bindings (null) (Bindings) | |
Excluded From Scans (boolean) or Excluded From Scans (null) (Excluded From Scans) |
{- "name": "string",
- "variable_type": "string",
- "description": "string",
- "allowed_values": [
- "string"
], - "bindings": [
- "string"
], - "excluded_from_scans": true
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
- "name": "string",
- "source_name": "string",
- "variable_type": "string",
- "description": "string",
- "allowed_values": [ ],
- "bindings": [ ],
- "excluded_from_scans": false,
- "event_count": 0,
- "context_count": 0,
- "low_context_count": 0,
- "high_context_count": 0,
- "sample_values": [ ],
- "open_drift_count": 0,
- "event_names": [ ]
}| slug required | string (Slug) |
| variable_id required | string <uuid> (Variable Id) |
Branch (string) or Branch (null) (Branch) Plan branch id (UUID) to read and write instead of the main branch. |
{- "detail": [
- {
- "loc": [
- "string"
], - "msg": "string",
- "type": "string",
- "input": null,
- "ctx": { }
}
]
}| slug required | string (Slug) |
Branch (string) or Branch (null) (Branch) Plan branch id (UUID) to read and write instead of the main branch. |
[- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
- "source_event_type_id": "e101ab89-ea5f-45aa-b5b7-983418675185",
- "target_event_type_id": "825466c9-7393-4184-b9b0-7c4b77ed3fa0",
- "source_field_id": "7b9c5fa5-6c9c-40e1-9dc3-cb2d44ecb47a",
- "target_field_id": "64e4f54c-73d3-4f44-9b1b-25ec59b9d085",
- "relation_type": "string",
- "description": "string"
}
]| slug required | string (Slug) |
Branch (string) or Branch (null) (Branch) Plan branch id (UUID) to read and write instead of the main branch. |
| source_event_type_id required | string <uuid> (Source Event Type Id) |
| target_event_type_id required | string <uuid> (Target Event Type Id) |
| source_field_id required | string <uuid> (Source Field Id) |
| target_field_id required | string <uuid> (Target Field Id) |
| relation_type | string (Relation Type) Default: "belongs_to" |
| description | string (Description) Default: "" |
{- "source_event_type_id": "e101ab89-ea5f-45aa-b5b7-983418675185",
- "target_event_type_id": "825466c9-7393-4184-b9b0-7c4b77ed3fa0",
- "source_field_id": "7b9c5fa5-6c9c-40e1-9dc3-cb2d44ecb47a",
- "target_field_id": "64e4f54c-73d3-4f44-9b1b-25ec59b9d085",
- "relation_type": "belongs_to",
- "description": ""
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
- "source_event_type_id": "e101ab89-ea5f-45aa-b5b7-983418675185",
- "target_event_type_id": "825466c9-7393-4184-b9b0-7c4b77ed3fa0",
- "source_field_id": "7b9c5fa5-6c9c-40e1-9dc3-cb2d44ecb47a",
- "target_field_id": "64e4f54c-73d3-4f44-9b1b-25ec59b9d085",
- "relation_type": "string",
- "description": "string"
}| slug required | string (Slug) |
| relation_id required | string <uuid> (Relation Id) |
Branch (string) or Branch (null) (Branch) Plan branch id (UUID) to read and write instead of the main branch. |
{- "detail": [
- {
- "loc": [
- "string"
], - "msg": "string",
- "type": "string",
- "input": null,
- "ctx": { }
}
]
}[- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "data_source_id": "0e1e9a56-7994-41e2-9003-96f8ebac19a2",
- "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
- "event_type_id": "a4ec4c3c-a3de-4a8a-983f-1791e72cea83",
- "name": "string",
- "base_query": "string",
- "event_type_column": "string",
- "time_column": "string",
- "event_name_format": "string",
- "json_value_paths": [
- "string"
], - "event_group_rules": [
- {
- "name": "string",
- "condition_logic": "all",
- "conditions": [
- {
- "field": "string",
- "pattern": "string"
}
]
}
], - "metric_breakdown_columns": [
- "string"
], - "metric_breakdown_values_limit": 0,
- "distribution_drift_fields": [
- "string"
], - "cardinality_threshold": 0,
- "interval": "15m",
- "replay_chunk_interval": "15m",
- "scan_lookback_hours": 0,
- "scan_row_limit": 0,
- "metrics_row_limit": 0,
- "app_version_column": "string",
- "app_version_keep_releases": 0,
- "app_version_prerelease_pattern": "string",
- "app_version_active_share_min": 0,
- "platform_column": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
]| slug required | string (Slug) |
| data_source_id required | string <uuid> (Data Source Id) |
Event Type Id (string) or Event Type Id (null) (Event Type Id) | |
| name required | string (Name) [ 1 .. 255 ] characters |
| base_query required | string (Base Query) non-empty |
Event Type Column (string) or Event Type Column (null) (Event Type Column) | |
Time Column (string) or Time Column (null) (Time Column) | |
Event Name Format (string) or Event Name Format (null) (Event Name Format) | |
| json_value_paths | Array of strings (Json Value Paths) |
Array of objects (Event Group Rules) | |
| metric_breakdown_columns | Array of strings (Metric Breakdown Columns) |
Metric Breakdown Values Limit (integer) or Metric Breakdown Values Limit (null) (Metric Breakdown Values Limit) | |
| distribution_drift_fields | Array of strings (Distribution Drift Fields) |
| cardinality_threshold | integer (Cardinality Threshold) >= 1 Default: 100 |
ScanInterval (string) or null | |
ScanInterval (string) or null | |
Scan Lookback Hours (integer) or Scan Lookback Hours (null) (Scan Lookback Hours) | |
Scan Row Limit (integer) or Scan Row Limit (null) (Scan Row Limit) | |
Metrics Row Limit (integer) or Metrics Row Limit (null) (Metrics Row Limit) | |
App Version Column (string) or App Version Column (null) (App Version Column) | |
App Version Keep Releases (integer) or App Version Keep Releases (null) (App Version Keep Releases) Deprecated Deprecated compatibility mirror of Project.app_version_keep_releases; caller values are ignored. | |
App Version Prerelease Pattern (string) or App Version Prerelease Pattern (null) (App Version Prerelease Pattern) | |
App Version Active Share Min (number) or App Version Active Share Min (null) (App Version Active Share Min) | |
Platform Column (string) or Platform Column (null) (Platform Column) |
{- "data_source_id": "0e1e9a56-7994-41e2-9003-96f8ebac19a2",
- "event_type_id": "a4ec4c3c-a3de-4a8a-983f-1791e72cea83",
- "name": "string",
- "base_query": "string",
- "event_type_column": "string",
- "time_column": "string",
- "event_name_format": "string",
- "json_value_paths": [
- "string"
], - "event_group_rules": [
- {
- "name": "string",
- "condition_logic": "all",
- "conditions": [
- {
- "field": "string",
- "pattern": "string"
}
]
}
], - "metric_breakdown_columns": [
- "string"
], - "metric_breakdown_values_limit": 1,
- "distribution_drift_fields": [
- "string"
], - "cardinality_threshold": 100,
- "interval": "15m",
- "replay_chunk_interval": "15m",
- "scan_lookback_hours": 1,
- "scan_row_limit": 1,
- "metrics_row_limit": 1,
- "app_version_column": "string",
- "app_version_keep_releases": 1,
- "app_version_prerelease_pattern": "string",
- "app_version_active_share_min": 0,
- "platform_column": "string"
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "data_source_id": "0e1e9a56-7994-41e2-9003-96f8ebac19a2",
- "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
- "event_type_id": "a4ec4c3c-a3de-4a8a-983f-1791e72cea83",
- "name": "string",
- "base_query": "string",
- "event_type_column": "string",
- "time_column": "string",
- "event_name_format": "string",
- "json_value_paths": [
- "string"
], - "event_group_rules": [
- {
- "name": "string",
- "condition_logic": "all",
- "conditions": [
- {
- "field": "string",
- "pattern": "string"
}
]
}
], - "metric_breakdown_columns": [
- "string"
], - "metric_breakdown_values_limit": 0,
- "distribution_drift_fields": [
- "string"
], - "cardinality_threshold": 0,
- "interval": "15m",
- "replay_chunk_interval": "15m",
- "scan_lookback_hours": 0,
- "scan_row_limit": 0,
- "metrics_row_limit": 0,
- "app_version_column": "string",
- "app_version_keep_releases": 0,
- "app_version_prerelease_pattern": "string",
- "app_version_active_share_min": 0,
- "platform_column": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}Enqueue a preview job; poll GET /preview-jobs/{job_id} for the result.
| slug required | string (Slug) |
| data_source_id required | string <uuid> (Data Source Id) |
| base_query required | string (Base Query) non-empty |
| limit | integer (Limit) [ 1 .. 50 ] Default: 10 |
| json_value_paths | Array of strings (Json Value Paths) |
Time Column (string) or Time Column (null) (Time Column) | |
Scan Lookback Hours (integer) or Scan Lookback Hours (null) (Scan Lookback Hours) | |
| include_json_paths | boolean (Include Json Paths) Default: false |
{- "data_source_id": "0e1e9a56-7994-41e2-9003-96f8ebac19a2",
- "base_query": "string",
- "limit": 10,
- "json_value_paths": [
- "string"
], - "time_column": "string",
- "scan_lookback_hours": 1,
- "include_json_paths": false
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "status": "pending",
- "started_at": "2019-08-24T14:15:22Z",
- "completed_at": "2019-08-24T14:15:22Z",
- "result_summary": { },
- "error_message": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}| slug required | string (Slug) |
| job_id required | string <uuid> (Job Id) |
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "status": "pending",
- "started_at": "2019-08-24T14:15:22Z",
- "completed_at": "2019-08-24T14:15:22Z",
- "result_summary": { },
- "error_message": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}Enqueue a dry-run; poll GET /dry-run-jobs/{job_id} for the result.
Owner-only for the same reason preview is: the SQL is free text from a draft, executed verbatim against a stored warehouse credential.
| slug required | string (Slug) |
Scan Config Id (string) or Scan Config Id (null) (Scan Config Id) | |
Data Source Id (string) or Data Source Id (null) (Data Source Id) | |
Base Query (string) or Base Query (null) (Base Query) | |
Event Type Id (string) or Event Type Id (null) (Event Type Id) | |
Event Type Column (string) or Event Type Column (null) (Event Type Column) | |
Time Column (string) or Time Column (null) (Time Column) | |
Event Name Format (string) or Event Name Format (null) (Event Name Format) | |
Array of objects (Event Group Rules) | |
| json_value_paths | Array of strings (Json Value Paths) |
| cardinality_threshold | integer (Cardinality Threshold) >= 1 Default: 100 |
App Version Column (string) or App Version Column (null) (App Version Column) | |
Platform Column (string) or Platform Column (null) (Platform Column) | |
Scan Lookback Hours (integer) or Scan Lookback Hours (null) (Scan Lookback Hours) | |
| sample_row_limit | integer (Sample Row Limit) [ 100 .. 20000 ] Default: 5000 |
{- "scan_config_id": "73831784-3bab-4614-8856-92f95dec4914",
- "data_source_id": "0e1e9a56-7994-41e2-9003-96f8ebac19a2",
- "base_query": "string",
- "event_type_id": "a4ec4c3c-a3de-4a8a-983f-1791e72cea83",
- "event_type_column": "string",
- "time_column": "string",
- "event_name_format": "string",
- "event_group_rules": [
- {
- "name": "string",
- "condition_logic": "all",
- "conditions": [
- {
- "field": "string",
- "pattern": "string"
}
]
}
], - "json_value_paths": [
- "string"
], - "cardinality_threshold": 100,
- "app_version_column": "string",
- "platform_column": "string",
- "scan_lookback_hours": 1,
- "sample_row_limit": 5000
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "status": "pending",
- "started_at": "2019-08-24T14:15:22Z",
- "completed_at": "2019-08-24T14:15:22Z",
- "result_summary": {
- "window_from": "2019-08-24T14:15:22Z",
- "window_to": "2019-08-24T14:15:22Z",
- "sampled_rows": 0,
- "sample_row_limit": 0,
- "sample_is_complete": true,
- "breakdown_combinations": 0,
- "events": [
- {
- "name": "string",
- "source_name": "string",
- "event_type": "string",
- "approx_row_count": 0,
- "share_of_sample": 0,
- "status": "new",
- "grouped_by_rule": "string",
- "count_confidence": "exact"
}
], - "events_truncated": false,
- "max_events_reached": false,
- "fields": [
- {
- "name": "string",
- "type": "json",
- "status": "new",
- "event_type": "string"
}
], - "templated_columns": [
- {
- "column": "string",
- "distinct_values": 0,
- "threshold": 0
}
], - "reserved_columns": [
- "string"
], - "unmapped_columns": [
- "string"
], - "warnings": [
- "string"
], - "errors": [
- "string"
]
}, - "error_message": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}| slug required | string (Slug) |
| job_id required | string <uuid> (Job Id) |
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "status": "pending",
- "started_at": "2019-08-24T14:15:22Z",
- "completed_at": "2019-08-24T14:15:22Z",
- "result_summary": {
- "window_from": "2019-08-24T14:15:22Z",
- "window_to": "2019-08-24T14:15:22Z",
- "sampled_rows": 0,
- "sample_row_limit": 0,
- "sample_is_complete": true,
- "breakdown_combinations": 0,
- "events": [
- {
- "name": "string",
- "source_name": "string",
- "event_type": "string",
- "approx_row_count": 0,
- "share_of_sample": 0,
- "status": "new",
- "grouped_by_rule": "string",
- "count_confidence": "exact"
}
], - "events_truncated": false,
- "max_events_reached": false,
- "fields": [
- {
- "name": "string",
- "type": "json",
- "status": "new",
- "event_type": "string"
}
], - "templated_columns": [
- {
- "column": "string",
- "distinct_values": 0,
- "threshold": 0
}
], - "reserved_columns": [
- "string"
], - "unmapped_columns": [
- "string"
], - "warnings": [
- "string"
], - "errors": [
- "string"
]
}, - "error_message": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}| slug required | string (Slug) |
| scan_id required | string <uuid> (Scan Id) |
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "data_source_id": "0e1e9a56-7994-41e2-9003-96f8ebac19a2",
- "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
- "event_type_id": "a4ec4c3c-a3de-4a8a-983f-1791e72cea83",
- "name": "string",
- "base_query": "string",
- "event_type_column": "string",
- "time_column": "string",
- "event_name_format": "string",
- "json_value_paths": [
- "string"
], - "event_group_rules": [
- {
- "name": "string",
- "condition_logic": "all",
- "conditions": [
- {
- "field": "string",
- "pattern": "string"
}
]
}
], - "metric_breakdown_columns": [
- "string"
], - "metric_breakdown_values_limit": 0,
- "distribution_drift_fields": [
- "string"
], - "cardinality_threshold": 0,
- "interval": "15m",
- "replay_chunk_interval": "15m",
- "scan_lookback_hours": 0,
- "scan_row_limit": 0,
- "metrics_row_limit": 0,
- "app_version_column": "string",
- "app_version_keep_releases": 0,
- "app_version_prerelease_pattern": "string",
- "app_version_active_share_min": 0,
- "platform_column": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}| slug required | string (Slug) |
| scan_id required | string <uuid> (Scan Id) |
Event Type Id (string) or Event Type Id (null) (Event Type Id) | |
Name (string) or Name (null) (Name) | |
Base Query (string) or Base Query (null) (Base Query) | |
Event Type Column (string) or Event Type Column (null) (Event Type Column) | |
Time Column (string) or Time Column (null) (Time Column) | |
Event Name Format (string) or Event Name Format (null) (Event Name Format) | |
Array of Json Value Paths (strings) or Json Value Paths (null) (Json Value Paths) | |
Array of Event Group Rules (objects) or Event Group Rules (null) (Event Group Rules) | |
Array of Metric Breakdown Columns (strings) or Metric Breakdown Columns (null) (Metric Breakdown Columns) | |
Metric Breakdown Values Limit (integer) or Metric Breakdown Values Limit (null) (Metric Breakdown Values Limit) | |
Array of Distribution Drift Fields (strings) or Distribution Drift Fields (null) (Distribution Drift Fields) | |
Cardinality Threshold (integer) or Cardinality Threshold (null) (Cardinality Threshold) | |
ScanInterval (string) or null | |
ScanInterval (string) or null | |
Scan Lookback Hours (integer) or Scan Lookback Hours (null) (Scan Lookback Hours) | |
Scan Row Limit (integer) or Scan Row Limit (null) (Scan Row Limit) | |
Metrics Row Limit (integer) or Metrics Row Limit (null) (Metrics Row Limit) | |
App Version Column (string) or App Version Column (null) (App Version Column) | |
App Version Keep Releases (integer) or App Version Keep Releases (null) (App Version Keep Releases) Deprecated Deprecated compatibility mirror of Project.app_version_keep_releases; caller values are ignored. | |
App Version Prerelease Pattern (string) or App Version Prerelease Pattern (null) (App Version Prerelease Pattern) | |
App Version Active Share Min (number) or App Version Active Share Min (null) (App Version Active Share Min) | |
Platform Column (string) or Platform Column (null) (Platform Column) |
{- "event_type_id": "a4ec4c3c-a3de-4a8a-983f-1791e72cea83",
- "name": "string",
- "base_query": "string",
- "event_type_column": "string",
- "time_column": "string",
- "event_name_format": "string",
- "json_value_paths": [
- "string"
], - "event_group_rules": [
- {
- "name": "string",
- "condition_logic": "all",
- "conditions": [
- {
- "field": "string",
- "pattern": "string"
}
]
}
], - "metric_breakdown_columns": [
- "string"
], - "metric_breakdown_values_limit": 1,
- "distribution_drift_fields": [
- "string"
], - "cardinality_threshold": 1,
- "interval": "15m",
- "replay_chunk_interval": "15m",
- "scan_lookback_hours": 1,
- "scan_row_limit": 1,
- "metrics_row_limit": 1,
- "app_version_column": "string",
- "app_version_keep_releases": 1,
- "app_version_prerelease_pattern": "string",
- "app_version_active_share_min": 0,
- "platform_column": "string"
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "data_source_id": "0e1e9a56-7994-41e2-9003-96f8ebac19a2",
- "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
- "event_type_id": "a4ec4c3c-a3de-4a8a-983f-1791e72cea83",
- "name": "string",
- "base_query": "string",
- "event_type_column": "string",
- "time_column": "string",
- "event_name_format": "string",
- "json_value_paths": [
- "string"
], - "event_group_rules": [
- {
- "name": "string",
- "condition_logic": "all",
- "conditions": [
- {
- "field": "string",
- "pattern": "string"
}
]
}
], - "metric_breakdown_columns": [
- "string"
], - "metric_breakdown_values_limit": 0,
- "distribution_drift_fields": [
- "string"
], - "cardinality_threshold": 0,
- "interval": "15m",
- "replay_chunk_interval": "15m",
- "scan_lookback_hours": 0,
- "scan_row_limit": 0,
- "metrics_row_limit": 0,
- "app_version_column": "string",
- "app_version_keep_releases": 0,
- "app_version_prerelease_pattern": "string",
- "app_version_active_share_min": 0,
- "platform_column": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}Per-event platform presence matrix for the scan's platform_column.
Empty when the scan has no platform_column set (the platform dimension is inert), so callers can render the panel unconditionally.
| slug required | string (Slug) |
| scan_id required | string <uuid> (Scan Id) |
{- "scan_config_id": "73831784-3bab-4614-8856-92f95dec4914",
- "platform_column": "string",
- "platforms": [
- "string"
], - "items": [
- {
- "event_id": "a7a26ff2-e851-45b6-9634-d595f45458b7",
- "event_name": "string",
- "present_platforms": [
- "string"
]
}
]
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "scan_config_id": "73831784-3bab-4614-8856-92f95dec4914",
- "status": "pending",
- "started_at": "2019-08-24T14:15:22Z",
- "completed_at": "2019-08-24T14:15:22Z",
- "result_summary": { },
- "error_message": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}| slug required | string (Slug) |
| scan_id required | string <uuid> (Scan Id) |
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "scan_config_id": "73831784-3bab-4614-8856-92f95dec4914",
- "status": "pending",
- "started_at": "2019-08-24T14:15:22Z",
- "completed_at": "2019-08-24T14:15:22Z",
- "result_summary": { },
- "error_message": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}| slug required | string (Slug) |
| scan_id required | string <uuid> (Scan Id) |
| time_from required | string <date-time> (Time From) |
| time_to required | string <date-time> (Time To) |
{- "time_from": "2019-08-24T14:15:22Z",
- "time_to": "2019-08-24T14:15:22Z"
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "scan_config_id": "73831784-3bab-4614-8856-92f95dec4914",
- "status": "pending",
- "started_at": "2019-08-24T14:15:22Z",
- "completed_at": "2019-08-24T14:15:22Z",
- "result_summary": { },
- "error_message": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}Newest jobs first, capped.
This was uncapped, and the Scans tab fans it out over every scan config on a 10-second poll: production configs hold 1,366-1,551 jobs each, so an open tab pulled roughly 4,400 rows every 10 seconds and rendered them unvirtualized (tripl-jfm3.107).
| slug required | string (Slug) |
| scan_id required | string <uuid> (Scan Id) |
| limit | integer (Limit) [ 1 .. 200 ] Default: 50 |
[- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "scan_config_id": "73831784-3bab-4614-8856-92f95dec4914",
- "status": "pending",
- "started_at": "2019-08-24T14:15:22Z",
- "completed_at": "2019-08-24T14:15:22Z",
- "result_summary": { },
- "error_message": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
]| slug required | string (Slug) |
| scan_id required | string <uuid> (Scan Id) |
| job_id required | string <uuid> (Job Id) |
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "scan_config_id": "73831784-3bab-4614-8856-92f95dec4914",
- "status": "pending",
- "started_at": "2019-08-24T14:15:22Z",
- "completed_at": "2019-08-24T14:15:22Z",
- "result_summary": { },
- "error_message": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}| slug required | string (Slug) |
| scan_id required | string <uuid> (Scan Id) |
| job_id required | string <uuid> (Job Id) |
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "scan_config_id": "73831784-3bab-4614-8856-92f95dec4914",
- "status": "pending",
- "started_at": "2019-08-24T14:15:22Z",
- "completed_at": "2019-08-24T14:15:22Z",
- "result_summary": { },
- "error_message": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}| slug required | string (Slug) |
Event Type Id (string) or Event Type Id (null) (Event Type Id) | |
Search (string) or Search (null) (Search) | |
Tag (string) or Tag (null) (Tag) | |
Array of Status (strings) or Status (null) (Status) | |
From (string) or From (null) (From) | |
To (string) or To (null) (To) |
{- "scope": "string",
- "scan_config_id": "73831784-3bab-4614-8856-92f95dec4914",
- "scan_config_name": "string",
- "event_id": "a7a26ff2-e851-45b6-9634-d595f45458b7",
- "event_type_id": "a4ec4c3c-a3de-4a8a-983f-1791e72cea83",
- "interval": "15m",
- "latest_signal": {
- "scan_config_id": "73831784-3bab-4614-8856-92f95dec4914",
- "scope_type": "project_total",
- "scope_ref": "string",
- "state": "string",
- "event_id": "a7a26ff2-e851-45b6-9634-d595f45458b7",
- "event_type_id": "a4ec4c3c-a3de-4a8a-983f-1791e72cea83",
- "bucket": "2019-08-24T14:15:22Z",
- "actual_count": 0,
- "expected_count": 0,
- "stddev": 0,
- "z_score": 0,
- "direction": "spike",
- "relative_effect": 0,
- "scope_name": "string",
- "incident_child": false
}, - "sigma_threshold": 4,
- "data": [
- {
- "bucket": "2019-08-24T14:15:22Z",
- "count": 0,
- "expected_count": 0,
- "stddev": 0,
- "detector_kind": "string",
- "is_anomaly": false,
- "anomaly_direction": "spike",
- "z_score": 0
}
], - "forecast": [ ]
}| slug required | string (Slug) |
| event_ids required | Array of strings <uuid> (Event Ids) [ items <uuid > ] |
Time From (string) or Time From (null) (Time From) | |
Time To (string) or Time To (null) (Time To) |
{- "event_ids": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
], - "time_from": "2019-08-24T14:15:22Z",
- "time_to": "2019-08-24T14:15:22Z"
}[- {
- "event_id": "a7a26ff2-e851-45b6-9634-d595f45458b7",
- "scan_config_id": "73831784-3bab-4614-8856-92f95dec4914",
- "interval": "15m",
- "total_count": 0,
- "data": [
- {
- "bucket": "2019-08-24T14:15:22Z",
- "count": 0,
- "expected_count": 0,
- "stddev": 0,
- "detector_kind": "string",
- "is_anomaly": false,
- "anomaly_direction": "spike",
- "z_score": 0
}
]
}
]| slug required | string (Slug) |
| window_hours | integer (Window Hours) [ 1 .. 720 ] Default: 48 |
| limit | integer (Limit) [ 1 .. 100 ] Default: 6 |
[- {
- "event_id": "a7a26ff2-e851-45b6-9634-d595f45458b7",
- "name": "string",
- "event_type_id": "a4ec4c3c-a3de-4a8a-983f-1791e72cea83",
- "total_count": 0
}
]| slug required | string (Slug) |
Scan Config Id (string) or Scan Config Id (null) (Scan Config Id) | |
From (string) or From (null) (From) | |
To (string) or To (null) (To) |
{- "scope": "string",
- "scan_config_id": "73831784-3bab-4614-8856-92f95dec4914",
- "scan_config_name": "string",
- "event_id": "a7a26ff2-e851-45b6-9634-d595f45458b7",
- "event_type_id": "a4ec4c3c-a3de-4a8a-983f-1791e72cea83",
- "interval": "15m",
- "latest_signal": {
- "scan_config_id": "73831784-3bab-4614-8856-92f95dec4914",
- "scope_type": "project_total",
- "scope_ref": "string",
- "state": "string",
- "event_id": "a7a26ff2-e851-45b6-9634-d595f45458b7",
- "event_type_id": "a4ec4c3c-a3de-4a8a-983f-1791e72cea83",
- "bucket": "2019-08-24T14:15:22Z",
- "actual_count": 0,
- "expected_count": 0,
- "stddev": 0,
- "z_score": 0,
- "direction": "spike",
- "relative_effect": 0,
- "scope_name": "string",
- "incident_child": false
}, - "sigma_threshold": 4,
- "data": [
- {
- "bucket": "2019-08-24T14:15:22Z",
- "count": 0,
- "expected_count": 0,
- "stddev": 0,
- "detector_kind": "string",
- "is_anomaly": false,
- "anomaly_direction": "spike",
- "z_score": 0
}
], - "forecast": [ ]
}| slug required | string (Slug) |
| event_id required | string <uuid> (Event Id) |
From (string) or From (null) (From) | |
To (string) or To (null) (To) |
{- "scope": "string",
- "scan_config_id": "73831784-3bab-4614-8856-92f95dec4914",
- "scan_config_name": "string",
- "event_id": "a7a26ff2-e851-45b6-9634-d595f45458b7",
- "event_type_id": "a4ec4c3c-a3de-4a8a-983f-1791e72cea83",
- "interval": "15m",
- "latest_signal": {
- "scan_config_id": "73831784-3bab-4614-8856-92f95dec4914",
- "scope_type": "project_total",
- "scope_ref": "string",
- "state": "string",
- "event_id": "a7a26ff2-e851-45b6-9634-d595f45458b7",
- "event_type_id": "a4ec4c3c-a3de-4a8a-983f-1791e72cea83",
- "bucket": "2019-08-24T14:15:22Z",
- "actual_count": 0,
- "expected_count": 0,
- "stddev": 0,
- "z_score": 0,
- "direction": "spike",
- "relative_effect": 0,
- "scope_name": "string",
- "incident_child": false
}, - "sigma_threshold": 4,
- "data": [
- {
- "bucket": "2019-08-24T14:15:22Z",
- "count": 0,
- "expected_count": 0,
- "stddev": 0,
- "detector_kind": "string",
- "is_anomaly": false,
- "anomaly_direction": "spike",
- "z_score": 0
}
], - "forecast": [ ]
}| slug required | string (Slug) |
| event_id required | string <uuid> (Event Id) |
Column (string) or Column (null) (Column) | |
From (string) or From (null) (From) | |
To (string) or To (null) (To) |
{- "event_id": "a7a26ff2-e851-45b6-9634-d595f45458b7",
- "scan_config_id": "73831784-3bab-4614-8856-92f95dec4914",
- "interval": "15m",
- "columns": [
- "string"
], - "selected_column": "string",
- "series": [
- {
- "breakdown_value": "string",
- "is_other": false,
- "total_count": 0,
- "data": [
- {
- "bucket": "2019-08-24T14:15:22Z",
- "count": 0,
- "expected_count": 0,
- "stddev": 0,
- "detector_kind": "string",
- "is_anomaly": false,
- "anomaly_direction": "spike",
- "z_score": 0
}
], - "parity_anomalies": [ ]
}
]
}| slug required | string (Slug) |
| event_type_id required | string <uuid> (Event Type Id) |
From (string) or From (null) (From) | |
To (string) or To (null) (To) |
{- "scope": "string",
- "scan_config_id": "73831784-3bab-4614-8856-92f95dec4914",
- "scan_config_name": "string",
- "event_id": "a7a26ff2-e851-45b6-9634-d595f45458b7",
- "event_type_id": "a4ec4c3c-a3de-4a8a-983f-1791e72cea83",
- "interval": "15m",
- "latest_signal": {
- "scan_config_id": "73831784-3bab-4614-8856-92f95dec4914",
- "scope_type": "project_total",
- "scope_ref": "string",
- "state": "string",
- "event_id": "a7a26ff2-e851-45b6-9634-d595f45458b7",
- "event_type_id": "a4ec4c3c-a3de-4a8a-983f-1791e72cea83",
- "bucket": "2019-08-24T14:15:22Z",
- "actual_count": 0,
- "expected_count": 0,
- "stddev": 0,
- "z_score": 0,
- "direction": "spike",
- "relative_effect": 0,
- "scope_name": "string",
- "incident_child": false
}, - "sigma_threshold": 4,
- "data": [
- {
- "bucket": "2019-08-24T14:15:22Z",
- "count": 0,
- "expected_count": 0,
- "stddev": 0,
- "detector_kind": "string",
- "is_anomaly": false,
- "anomaly_direction": "spike",
- "z_score": 0
}
], - "forecast": [ ]
}Cacheable no-args variant. For filtering by a large event-id list
(>>a few), prefer POST /anomalies/signals/query — GET's query-string
overflow is real once you cross ~50 ids (proxy/browser limits).
expanded=true (the AnomaliesPage view) also surfaces per-event scopes
and keeps each incident's child rows, tagged incident_child rather than
collapsed into the parent project_total signal.
| slug required | string (Slug) |
Array of Event Id (strings) or Event Id (null) (Event Id) | |
| expanded | boolean (Expanded) Default: false |
[- {
- "scan_config_id": "73831784-3bab-4614-8856-92f95dec4914",
- "scope_type": "project_total",
- "scope_ref": "string",
- "state": "string",
- "event_id": "a7a26ff2-e851-45b6-9634-d595f45458b7",
- "event_type_id": "a4ec4c3c-a3de-4a8a-983f-1791e72cea83",
- "bucket": "2019-08-24T14:15:22Z",
- "actual_count": 0,
- "expected_count": 0,
- "stddev": 0,
- "z_score": 0,
- "direction": "spike",
- "relative_effect": 0,
- "scope_name": "string",
- "incident_child": false
}
]| slug required | string (Slug) |
| event_ids | Array of strings <uuid> (Event Ids) [ items <uuid > ] Default: [] |
{- "event_ids": [ ]
}[- {
- "scan_config_id": "73831784-3bab-4614-8856-92f95dec4914",
- "scope_type": "project_total",
- "scope_ref": "string",
- "state": "string",
- "event_id": "a7a26ff2-e851-45b6-9634-d595f45458b7",
- "event_type_id": "a4ec4c3c-a3de-4a8a-983f-1791e72cea83",
- "bucket": "2019-08-24T14:15:22Z",
- "actual_count": 0,
- "expected_count": 0,
- "stddev": 0,
- "z_score": 0,
- "direction": "spike",
- "relative_effect": 0,
- "scope_name": "string",
- "incident_child": false
}
]Top-N breakdown rows that "moved" a given anomaly bucket, |z| desc.
| slug required | string (Slug) |
| scan_config_id required | string <uuid> (Scan Config Id) |
| scope_type required | string (MetricScopeType) Enum: "project_total" "event_type" "event" "schema" "distribution" "release_regression" "metric" "variable_value_drift" |
| scope_ref required | string (Scope Ref) |
| bucket required | string <date-time> (Bucket) |
| limit | integer (Limit) [ 1 .. 100 ] Default: 10 |
[- {
- "breakdown_column": "string",
- "breakdown_value": "string",
- "is_other": true,
- "actual_count": 0,
- "expected_count": 0,
- "stddev": 0,
- "z_score": 0,
- "direction": "spike"
}
]7×24 hour-of-day × weekday heatmap of volume and anomaly density.
| slug required | string (Slug) |
| scan_config_id required | string <uuid> (Scan Config Id) |
| scope_type required | string (MetricScopeType) Enum: "project_total" "event_type" "event" "schema" "distribution" "release_regression" "metric" "variable_value_drift" |
| scope_ref required | string (Scope Ref) |
From (string) or From (null) (From) | |
To (string) or To (null) (To) |
{- "scan_config_id": "73831784-3bab-4614-8856-92f95dec4914",
- "scope_type": "project_total",
- "scope_ref": "string",
- "cells": [
- {
- "weekday": 0,
- "hour": 0,
- "count": 0,
- "anomaly_count": 0
}
], - "max_count": 0,
- "total_count": 0,
- "interval": "string",
- "hourly_resolution": true
}Per-bucket count timeline for one breakdown_value (drill-down).
| slug required | string (Slug) |
| scan_config_id required | string <uuid> (Scan Config Id) |
| scope_type required | string (MetricScopeType) Enum: "project_total" "event_type" "event" "schema" "distribution" "release_regression" "metric" "variable_value_drift" |
| scope_ref required | string (Scope Ref) |
| breakdown_column required | string (Breakdown Column) |
| breakdown_value required | string (Breakdown Value) |
| is_other | boolean (Is Other) Default: false |
From (string) or From (null) (From) | |
To (string) or To (null) (To) |
{- "scan_config_id": "73831784-3bab-4614-8856-92f95dec4914",
- "scope_type": "project_total",
- "scope_ref": "string",
- "breakdown_column": "string",
- "breakdown_value": "string",
- "is_other": true,
- "interval": "15m",
- "data": [
- {
- "bucket": "2019-08-24T14:15:22Z",
- "count": 0
}
]
}| slug required | string (Slug) |
| scan_config_id required | string <uuid> (Scan Config Id) |
| scope_type | string (MetricScopeType) Default: "project_total" Enum: "project_total" "event_type" "event" "schema" "distribution" "release_regression" "metric" "variable_value_drift" |
Scope Ref (string) or Scope Ref (null) (Scope Ref) | |
From (string) or From (null) (From) | |
To (string) or To (null) (To) |
{- "scan_config_id": "73831784-3bab-4614-8856-92f95dec4914",
- "scope_type": "project_total",
- "scope_ref": "string",
- "event_id": "a7a26ff2-e851-45b6-9634-d595f45458b7",
- "event_type_id": "a4ec4c3c-a3de-4a8a-983f-1791e72cea83",
- "app_version_column": "string",
- "interval": "15m",
- "latest_version": "string",
- "sigma_threshold": 4,
- "versions": [
- {
- "version": "string",
- "is_other": false,
- "is_latest": false,
- "is_active": false
}
], - "series": [
- {
- "version": "string",
- "is_other": false,
- "is_latest": false,
- "is_active": false,
- "total_count": 0,
- "data": [
- {
- "bucket": "2019-08-24T14:15:22Z",
- "count": 0,
- "expected_count": 0,
- "stddev": 0,
- "detector_kind": "string",
- "is_anomaly": false,
- "anomaly_direction": "spike",
- "z_score": 0
}
]
}
]
}| slug required | string (Slug) |
| scan_config_id required | string <uuid> (Scan Config Id) |
From (string) or From (null) (From) | |
To (string) or To (null) (To) |
{- "scan_config_id": "73831784-3bab-4614-8856-92f95dec4914",
- "scope_type": "project_total",
- "scope_ref": "string",
- "event_id": "a7a26ff2-e851-45b6-9634-d595f45458b7",
- "event_type_id": "a4ec4c3c-a3de-4a8a-983f-1791e72cea83",
- "app_version_column": "string",
- "interval": "15m",
- "latest_version": "string",
- "sigma_threshold": 4,
- "versions": [
- {
- "version": "string",
- "is_other": false,
- "is_latest": false,
- "is_active": false
}
], - "series": [
- {
- "version": "string",
- "is_other": false,
- "is_latest": false,
- "is_active": false,
- "total_count": 0,
- "data": [
- {
- "bucket": "2019-08-24T14:15:22Z",
- "count": 0,
- "expected_count": 0,
- "stddev": 0,
- "detector_kind": "string",
- "is_anomaly": false,
- "anomaly_direction": "spike",
- "z_score": 0
}
]
}
], - "totals": [
- {
- "bucket": "2019-08-24T14:15:22Z",
- "count": 0
}
]
}| slug required | string (Slug) |
| scan_config_id required | string <uuid> (Scan Config Id) |
MetricScopeType (string) or Scope Type (null) (Scope Type) |
{- "scan_config_id": "73831784-3bab-4614-8856-92f95dec4914",
- "app_version_column": "string",
- "latest_version": "string",
- "comparability": [
- {
- "scope_type": "project_total",
- "comparable": true,
- "reason": "comparable",
- "version": "string",
- "previous_version": "string",
- "emerging_share": 0,
- "max_emerging_share": 0
}
], - "items": [
- {
- "scope_type": "project_total",
- "scope_ref": "string",
- "scope_name": "string",
- "event_id": "a7a26ff2-e851-45b6-9634-d595f45458b7",
- "event_type_id": "a4ec4c3c-a3de-4a8a-983f-1791e72cea83",
- "kind": "missing",
- "version": "string",
- "previous_version": "string",
- "observed_count": 0,
- "expected_count": 0,
- "ratio": 0,
- "share_prev": 0,
- "share_new": 0,
- "release_share": 0,
- "window_from": "2019-08-24T14:15:22Z",
- "window_to": "2019-08-24T14:15:22Z"
}
]
}| slug required | string (Slug) |
| scope_type required | string (MetricScopeType) Enum: "project_total" "event_type" "event" "schema" "distribution" "release_regression" "metric" "variable_value_drift" |
| scope_ref required | string (Scope Ref) |
Scan Config Id (string) or Scan Config Id (null) (Scan Config Id) | |
From (string) or From (null) (From) | |
To (string) or To (null) (To) |
{- "scope": "string",
- "scan_config_id": "73831784-3bab-4614-8856-92f95dec4914",
- "event_type_id": "a4ec4c3c-a3de-4a8a-983f-1791e72cea83",
- "fields": [
- "string"
], - "data": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "scan_config_id": "73831784-3bab-4614-8856-92f95dec4914",
- "event_type_id": "a4ec4c3c-a3de-4a8a-983f-1791e72cea83",
- "field_name": "string",
- "bucket": "2019-08-24T14:15:22Z",
- "psi": 0,
- "band": "stable",
- "baseline_total": 0,
- "current_total": 0,
- "top_movers": [
- {
- "value": "string",
- "baseline_share": 0,
- "current_share": 0,
- "contribution": 0
}
]
}
]
}| slug required | string (Slug) |
ShadowEventStatus (string) or Status (null) (Status) | |
| limit | integer (Limit) [ 1 .. 500 ] Default: 100 |
{- "items": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "scan_config_id": "73831784-3bab-4614-8856-92f95dec4914",
- "scan_config_name": "string",
- "event_type_id": "a4ec4c3c-a3de-4a8a-983f-1791e72cea83",
- "event_type_name": "string",
- "event_name": "string",
- "observed_count": 0,
- "first_seen_at": "2019-08-24T14:15:22Z",
- "last_seen_at": "2019-08-24T14:15:22Z",
- "status": "new",
- "accepted_event_id": "3a56afd4-ee40-4247-af75-6068f6a2b721"
}
], - "total": 0,
- "new_count": 0
}| slug required | string (Slug) |
| candidate_id required | string <uuid> (Candidate Id) |
Branch (string) or Branch (null) (Branch) Plan branch id (UUID) to read and write instead of the main branch. |
Event Type Id (string) or Event Type Id (null) (Event Type Id) | |
Name (string) or Name (null) (Name) |
{- "event_type_id": "a4ec4c3c-a3de-4a8a-983f-1791e72cea83",
- "name": "string"
}{- "candidate_id": "2f28f791-f0fd-4155-a356-c24e996beeda",
- "event_id": "a7a26ff2-e851-45b6-9634-d595f45458b7",
- "status": "new"
}| slug required | string (Slug) |
| days | integer (Days) [ 1 .. 365 ] Default: 30 |
{- "items": [
- {
- "event_id": "a7a26ff2-e851-45b6-9634-d595f45458b7",
- "name": "string",
- "event_type_id": "a4ec4c3c-a3de-4a8a-983f-1791e72cea83",
- "event_type_name": "string",
- "last_seen_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z"
}
], - "total": 0,
- "days": 0
}| slug required | string (Slug) |
Branch (string) or Branch (null) (Branch) Plan branch id (UUID) to read and write instead of the main branch. |
| event_ids required | Array of strings <uuid> (Event Ids) non-empty [ items <uuid > ] |
| status | string (EventStatus) Default: "archived" Enum: "draft" "in_review" "ready_for_dev" "implemented" "live" "deprecated" "archived" |
{- "event_ids": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
], - "status": "draft"
}{- "event_ids": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
], - "status": "draft",
- "archived_count": 0
}| slug required | string (Slug) |
| days | integer (Days) [ 1 .. 180 ] Default: 14 |
Scan Config Id (string) or Scan Config Id (null) (Scan Config Id) |
{- "items": [
- {
- "bucket": "2019-08-24T14:15:22Z",
- "total_count": 0,
- "matched_count": 0
}
], - "summary": {
- "total_count": 0,
- "matched_count": 0,
- "coverage_pct": 0
}, - "days": 0
}List a project's branches.
include_diff_counts fills each feature branch's ahead /
behind_base from a single shared main snapshot, so a branches list does
not need one /branches/{id}/diff call per row. It is opt-in because it
makes the response cost N+1 plan snapshots; leave it off when you only need
the branch rows.
| slug required | string (Slug) |
| include_diff_counts | boolean (Include Diff Counts) Default: false |
{- "items": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
- "name": "string",
- "kind": "main",
- "status": "draft",
- "description": "string",
- "base_revision_id": "3ded3faf-b36b-49f9-84eb-022d2acef61c",
- "created_by": "ee824cad-d7a6-4f48-87dc-e8461a9201c4",
- "merged_at": "2019-08-24T14:15:22Z",
- "merged_by": "4f4607b3-7f91-40a2-97ed-fdb9b72f68b8",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "ahead": 0,
- "behind_base": true
}
], - "total": 0
}| slug required | string (Slug) |
| name required | string (Name) |
| description | string (Description) Default: "" |
{- "name": "string",
- "description": ""
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
- "name": "string",
- "kind": "main",
- "status": "draft",
- "description": "string",
- "base_revision_id": "3ded3faf-b36b-49f9-84eb-022d2acef61c",
- "created_by": "ee824cad-d7a6-4f48-87dc-e8461a9201c4",
- "merged_at": "2019-08-24T14:15:22Z",
- "merged_by": "4f4607b3-7f91-40a2-97ed-fdb9b72f68b8",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "ahead": 0,
- "behind_base": true
}| slug required | string (Slug) |
| branch_id required | string <uuid> (Branch Id) |
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
- "name": "string",
- "kind": "main",
- "status": "draft",
- "description": "string",
- "base_revision_id": "3ded3faf-b36b-49f9-84eb-022d2acef61c",
- "created_by": "ee824cad-d7a6-4f48-87dc-e8461a9201c4",
- "merged_at": "2019-08-24T14:15:22Z",
- "merged_by": "4f4607b3-7f91-40a2-97ed-fdb9b72f68b8",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "ahead": 0,
- "behind_base": true,
- "reviewers": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",
- "created_at": "2019-08-24T14:15:22Z"
}
], - "approvals": [
- {
- "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",
- "approved_at": "2019-08-24T14:15:22Z",
- "stale": true
}
]
}| slug required | string (Slug) |
| branch_id required | string <uuid> (Branch Id) |
| action required | string (Action) Enum: "submit" "request_changes" "approve" "reopen" "close" |
{- "action": "submit"
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
- "name": "string",
- "kind": "main",
- "status": "draft",
- "description": "string",
- "base_revision_id": "3ded3faf-b36b-49f9-84eb-022d2acef61c",
- "created_by": "ee824cad-d7a6-4f48-87dc-e8461a9201c4",
- "merged_at": "2019-08-24T14:15:22Z",
- "merged_by": "4f4607b3-7f91-40a2-97ed-fdb9b72f68b8",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "ahead": 0,
- "behind_base": true,
- "reviewers": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",
- "created_at": "2019-08-24T14:15:22Z"
}
], - "approvals": [
- {
- "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",
- "approved_at": "2019-08-24T14:15:22Z",
- "stale": true
}
]
}| slug required | string (Slug) |
| branch_id required | string <uuid> (Branch Id) |
| user_id required | string <uuid> (User Id) |
{- "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5"
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",
- "created_at": "2019-08-24T14:15:22Z"
}| slug required | string (Slug) |
| branch_id required | string <uuid> (Branch Id) |
[- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "branch_id": "7a4e8e99-89f2-4a0f-b66c-fc595dda2dbc",
- "parent_id": "1c6ca187-e61f-4301-8dcb-0e9749e89eef",
- "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",
- "body": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
]| slug required | string (Slug) |
| branch_id required | string <uuid> (Branch Id) |
| body required | string (Body) |
Parent Id (string) or Parent Id (null) (Parent Id) |
{- "body": "string",
- "parent_id": "1c6ca187-e61f-4301-8dcb-0e9749e89eef"
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "branch_id": "7a4e8e99-89f2-4a0f-b66c-fc595dda2dbc",
- "parent_id": "1c6ca187-e61f-4301-8dcb-0e9749e89eef",
- "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",
- "body": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}| slug required | string (Slug) |
| branch_id required | string <uuid> (Branch Id) |
{- "entries": [
- {
- "entity_type": "event_type",
- "kind": "added",
- "name": "string",
- "parent": "string",
- "entity_id": "string",
- "changes": [
- "string"
], - "field_changes": [
- {
- "field": "string",
- "before": null,
- "after": null,
- "items": [
- {
- "key": "string",
- "kind": "added",
- "before": null,
- "after": null
}
]
}
], - "before": { },
- "after": { }
}
], - "summary": {
- "property1": 0,
- "property2": 0
}, - "behind_base": true
}| slug required | string (Slug) |
| branch_id required | string <uuid> (Branch Id) |
| entity_type required | string (Entity Type) Enum: "event_type" "field_definition" "event" "variable" "meta_field" "relation" |
| name required | string (Name) |
Parent (string) or Parent (null) (Parent) | |
Field (string) or Field (null) (Field) |
{- "entity_type": "event_type",
- "name": "string",
- "parent": "string",
- "field": "string"
}{- "entries": [
- {
- "entity_type": "event_type",
- "kind": "added",
- "name": "string",
- "parent": "string",
- "entity_id": "string",
- "changes": [
- "string"
], - "field_changes": [
- {
- "field": "string",
- "before": null,
- "after": null,
- "items": [
- {
- "key": "string",
- "kind": "added",
- "before": null,
- "after": null
}
]
}
], - "before": { },
- "after": { }
}
], - "summary": {
- "property1": 0,
- "property2": 0
}, - "behind_base": true
}| slug required | string (Slug) |
| branch_id required | string <uuid> (Branch Id) |
{- "entities": [
- {
- "entity_type": "string",
- "name": "string",
- "fields": [
- {
- "field": "string",
- "base": { },
- "ours": { },
- "theirs": { },
- "choice": "ours"
}
]
}
], - "unresolved_count": 0
}| slug required | string (Slug) |
| branch_id required | string <uuid> (Branch Id) |
| entity_type required | string (Entity Type) |
| entity_name required | string (Entity Name) |
| field_name required | string (Field Name) |
| choice required | string (MergeResolutionChoice) Enum: "ours" "theirs" |
{- "entity_type": "string",
- "entity_name": "string",
- "field_name": "string",
- "choice": "ours"
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "branch_id": "7a4e8e99-89f2-4a0f-b66c-fc595dda2dbc",
- "entity_type": "string",
- "entity_name": "string",
- "field_name": "string",
- "choice": "ours",
- "resolved_by": "d0d57369-b08b-4db8-8952-8cdeedd9aebc",
- "created_at": "2019-08-24T14:15:22Z"
}| slug required | string (Slug) |
| branch_id required | string <uuid> (Branch Id) |
| resolution_id required | string <uuid> (Resolution Id) |
{- "detail": [
- {
- "loc": [
- "string"
], - "msg": "string",
- "type": "string",
- "input": null,
- "ctx": { }
}
]
}| slug required | string (Slug) |
| branch_id required | string <uuid> (Branch Id) |
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
- "name": "string",
- "kind": "main",
- "status": "draft",
- "description": "string",
- "base_revision_id": "3ded3faf-b36b-49f9-84eb-022d2acef61c",
- "created_by": "ee824cad-d7a6-4f48-87dc-e8461a9201c4",
- "merged_at": "2019-08-24T14:15:22Z",
- "merged_by": "4f4607b3-7f91-40a2-97ed-fdb9b72f68b8",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "ahead": 0,
- "behind_base": true,
- "reviewers": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",
- "created_at": "2019-08-24T14:15:22Z"
}
], - "approvals": [
- {
- "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",
- "approved_at": "2019-08-24T14:15:22Z",
- "stale": true
}
]
}| slug required | string (Slug) |
| summary | string (Summary) <= 2000 characters Default: "" |
{- "summary": ""
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
- "summary": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "created_by": "ee824cad-d7a6-4f48-87dc-e8461a9201c4",
- "entity_counts": {
- "property1": 0,
- "property2": 0
}, - "payload": { }
}| slug required | string (Slug) |
| offset | integer (Offset) >= 0 Default: 0 |
| limit | integer (Limit) [ 1 .. 200 ] Default: 50 |
{- "items": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
- "summary": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "created_by": "ee824cad-d7a6-4f48-87dc-e8461a9201c4",
- "entity_counts": {
- "property1": 0,
- "property2": 0
}
}
], - "total": 0
}| slug required | string (Slug) |
| revision_id required | string <uuid> (Revision Id) |
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
- "summary": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "created_by": "ee824cad-d7a6-4f48-87dc-e8461a9201c4",
- "entity_counts": {
- "property1": 0,
- "property2": 0
}, - "payload": { }
}| slug required | string (Slug) |
| revision_id required | string <uuid> (Revision Id) |
| compare_to required | string <uuid> (Compare To) |
{- "revision_id": "f8f7f022-982b-4bef-ba7d-4bb808fdbe2a",
- "compare_to": "846220e4-43c3-4942-997b-fe1dae7730fc",
- "entries": [
- {
- "entity_type": "event_type",
- "kind": "added",
- "name": "string",
- "parent": "string",
- "entity_id": "string",
- "changes": [
- "string"
], - "field_changes": [
- {
- "field": "string",
- "before": null,
- "after": null,
- "items": [
- {
- "key": "string",
- "kind": "added",
- "before": null,
- "after": null
}
]
}
], - "before": { },
- "after": { }
}
], - "summary": {
- "property1": 0,
- "property2": 0
}
}| slug required | string (Slug) |
ChartAnnotationScopeType (string) or Scope Type (null) (Scope Type) | |
Scope Ref (string) or Scope Ref (null) (Scope Ref) | |
Time From (string) or Time From (null) (Time From) | |
Time To (string) or Time To (null) (Time To) |
[- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
- "scope_type": "project_total",
- "scope_ref": "string",
- "bucket": "2019-08-24T14:15:22Z",
- "label": "string",
- "description": "string",
- "color": "string",
- "created_by_user_id": "209f54c4-4c33-43bc-9c6a-ef4c65ad7473",
- "created_at": "2019-08-24T14:15:22Z"
}
]| slug required | string (Slug) |
| bucket required | string <date-time> (Bucket) |
| label required | string (Label) [ 1 .. 200 ] characters |
Description (string) or Description (null) (Description) | |
| color | string (Color) <= 20 characters Default: "#ef4444" |
ChartAnnotationScopeType (string) or null | |
Scope Ref (string) or Scope Ref (null) (Scope Ref) |
{- "bucket": "2019-08-24T14:15:22Z",
- "label": "string",
- "description": "string",
- "color": "#ef4444",
- "scope_type": "project_total",
- "scope_ref": "string"
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
- "scope_type": "project_total",
- "scope_ref": "string",
- "bucket": "2019-08-24T14:15:22Z",
- "label": "string",
- "description": "string",
- "color": "string",
- "created_by_user_id": "209f54c4-4c33-43bc-9c6a-ef4c65ad7473",
- "created_at": "2019-08-24T14:15:22Z"
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
- "anomaly_detection_enabled": true,
- "detect_project_total": true,
- "detect_event_types": true,
- "detect_events": true,
- "detect_metrics": true,
- "baseline_window_buckets": 0,
- "min_history_buckets": 0,
- "sigma_threshold": 0,
- "min_expected_count": 0,
- "recent_signal_window_hours": 0,
- "anomaly_ingestion_settling_minutes": 0,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}| slug required | string (Slug) |
Anomaly Detection Enabled (boolean) or Anomaly Detection Enabled (null) (Anomaly Detection Enabled) | |
Detect Project Total (boolean) or Detect Project Total (null) (Detect Project Total) | |
Detect Event Types (boolean) or Detect Event Types (null) (Detect Event Types) | |
Detect Events (boolean) or Detect Events (null) (Detect Events) | |
Detect Metrics (boolean) or Detect Metrics (null) (Detect Metrics) | |
Baseline Window Buckets (integer) or Baseline Window Buckets (null) (Baseline Window Buckets) | |
Min History Buckets (integer) or Min History Buckets (null) (Min History Buckets) | |
Sigma Threshold (number) or Sigma Threshold (null) (Sigma Threshold) | |
Min Expected Count (integer) or Min Expected Count (null) (Min Expected Count) | |
Recent Signal Window Hours (integer) or Recent Signal Window Hours (null) (Recent Signal Window Hours) | |
Anomaly Ingestion Settling Minutes (integer) or Anomaly Ingestion Settling Minutes (null) (Anomaly Ingestion Settling Minutes) |
{- "anomaly_detection_enabled": true,
- "detect_project_total": true,
- "detect_event_types": true,
- "detect_events": true,
- "detect_metrics": true,
- "baseline_window_buckets": 1,
- "min_history_buckets": 1,
- "sigma_threshold": 0.1,
- "min_expected_count": 0,
- "recent_signal_window_hours": 1,
- "anomaly_ingestion_settling_minutes": 1440
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
- "anomaly_detection_enabled": true,
- "detect_project_total": true,
- "detect_event_types": true,
- "detect_events": true,
- "detect_metrics": true,
- "baseline_window_buckets": 0,
- "min_history_buckets": 0,
- "sigma_threshold": 0,
- "min_expected_count": 0,
- "recent_signal_window_hours": 0,
- "anomaly_ingestion_settling_minutes": 0,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}{- "items": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "scan_config_id": "73831784-3bab-4614-8856-92f95dec4914",
- "scan_config_name": "string",
- "scope_type": "string",
- "scope_ref": "string",
- "scope_name": "string",
- "sigma_threshold": 0,
- "min_expected_count": 0,
- "false_positive_count": 0,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
], - "total": 0
}Undo one false-positive ratchet: the scope returns to the project setting.
| slug required | string (Slug) |
| override_id required | string <uuid> (Override Id) |
{- "detail": [
- {
- "loc": [
- "string"
], - "msg": "string",
- "type": "string",
- "input": null,
- "ctx": { }
}
]
}[- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
- "type": "slack",
- "name": "string",
- "enabled": true,
- "webhook_set": true,
- "bot_token_set": true,
- "chat_id": "string",
- "target_url_set": true,
- "webhook_header_name": "string",
- "email_recipients": "string",
- "email_from_address": "string",
- "email_subject_template": "string",
- "jira_base_url": "string",
- "jira_auth_email": "string",
- "jira_api_token_set": true,
- "jira_project_key": "string",
- "jira_issue_type": "string",
- "linear_api_key_set": true,
- "linear_team_id": "string",
- "linear_state_id": "string",
- "linear_label_ids": "string",
- "is_local": false,
- "delivery_count": 0,
- "incident_count": 0,
- "rules": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "destination_id": "f73cdd0c-5b5d-4102-9dde-c2ec04ceba9e",
- "scan_config_id": "73831784-3bab-4614-8856-92f95dec4914",
- "name": "string",
- "enabled": true,
- "include_project_total": true,
- "include_event_types": true,
- "include_events": true,
- "include_schema_drifts": true,
- "include_distribution_drifts": true,
- "include_variable_value_drifts": true,
- "include_release_regressions": true,
- "include_metrics": true,
- "notify_on_spike": true,
- "notify_on_drop": true,
- "ai_explanation_enabled": true,
- "min_percent_delta": 0,
- "min_absolute_delta": 0,
- "min_expected_count": 0,
- "cooldown_minutes": 0,
- "message_template": "string",
- "items_template": "string",
- "message_format": "plain",
- "filters": [
- {
- "field": "event_type",
- "operator": "eq",
- "values": [
- "string"
], - "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}
], - "muted": true,
- "muted_until": "2019-08-24T14:15:22Z",
- "total_deliveries": 0,
- "last_delivery_at": "2019-08-24T14:15:22Z",
- "last_delivery_status": "pending",
- "incident_count": 0,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
], - "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
]| slug required | string (Slug) |
| type required | string (AlertDestinationType) Enum: "slack" "telegram" "webhook" "email" "jira" "linear" "demo_sink" |
| name required | string (Name) |
| enabled | boolean (Enabled) Default: true |
Webhook Url (string) or Webhook Url (null) (Webhook Url) | |
Bot Token (string) or Bot Token (null) (Bot Token) | |
Chat Id (string) or Chat Id (null) (Chat Id) | |
Target Url (string) or Target Url (null) (Target Url) | |
Webhook Header Name (string) or Webhook Header Name (null) (Webhook Header Name) | |
Webhook Header Value (string) or Webhook Header Value (null) (Webhook Header Value) | |
Email Recipients (string) or Email Recipients (null) (Email Recipients) | |
Email From Address (string) or Email From Address (null) (Email From Address) | |
Email Subject Template (string) or Email Subject Template (null) (Email Subject Template) | |
Jira Base Url (string) or Jira Base Url (null) (Jira Base Url) | |
Jira Auth Email (string) or Jira Auth Email (null) (Jira Auth Email) | |
Jira Api Token (string) or Jira Api Token (null) (Jira Api Token) | |
Jira Project Key (string) or Jira Project Key (null) (Jira Project Key) | |
Jira Issue Type (string) or Jira Issue Type (null) (Jira Issue Type) | |
Linear Api Key (string) or Linear Api Key (null) (Linear Api Key) | |
Linear Team Id (string) or Linear Team Id (null) (Linear Team Id) | |
Linear State Id (string) or Linear State Id (null) (Linear State Id) | |
Linear Label Ids (string) or Linear Label Ids (null) (Linear Label Ids) |
{- "type": "slack",
- "name": "string",
- "enabled": true,
- "webhook_url": "string",
- "bot_token": "string",
- "chat_id": "string",
- "target_url": "string",
- "webhook_header_name": "string",
- "webhook_header_value": "string",
- "email_recipients": "string",
- "email_from_address": "string",
- "email_subject_template": "string",
- "jira_base_url": "string",
- "jira_auth_email": "string",
- "jira_api_token": "string",
- "jira_project_key": "string",
- "jira_issue_type": "string",
- "linear_api_key": "string",
- "linear_team_id": "string",
- "linear_state_id": "string",
- "linear_label_ids": "string"
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
- "type": "slack",
- "name": "string",
- "enabled": true,
- "webhook_set": true,
- "bot_token_set": true,
- "chat_id": "string",
- "target_url_set": true,
- "webhook_header_name": "string",
- "email_recipients": "string",
- "email_from_address": "string",
- "email_subject_template": "string",
- "jira_base_url": "string",
- "jira_auth_email": "string",
- "jira_api_token_set": true,
- "jira_project_key": "string",
- "jira_issue_type": "string",
- "linear_api_key_set": true,
- "linear_team_id": "string",
- "linear_state_id": "string",
- "linear_label_ids": "string",
- "is_local": false,
- "delivery_count": 0,
- "incident_count": 0,
- "rules": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "destination_id": "f73cdd0c-5b5d-4102-9dde-c2ec04ceba9e",
- "scan_config_id": "73831784-3bab-4614-8856-92f95dec4914",
- "name": "string",
- "enabled": true,
- "include_project_total": true,
- "include_event_types": true,
- "include_events": true,
- "include_schema_drifts": true,
- "include_distribution_drifts": true,
- "include_variable_value_drifts": true,
- "include_release_regressions": true,
- "include_metrics": true,
- "notify_on_spike": true,
- "notify_on_drop": true,
- "ai_explanation_enabled": true,
- "min_percent_delta": 0,
- "min_absolute_delta": 0,
- "min_expected_count": 0,
- "cooldown_minutes": 0,
- "message_template": "string",
- "items_template": "string",
- "message_format": "plain",
- "filters": [
- {
- "field": "event_type",
- "operator": "eq",
- "values": [
- "string"
], - "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}
], - "muted": true,
- "muted_until": "2019-08-24T14:15:22Z",
- "total_deliveries": 0,
- "last_delivery_at": "2019-08-24T14:15:22Z",
- "last_delivery_status": "pending",
- "incident_count": 0,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
], - "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}{- "monitors": [
- {
- "rule_id": "728c1541-d6d1-4290-9a53-cdf01dd32d60",
- "rule_name": "string",
- "destination_id": "f73cdd0c-5b5d-4102-9dde-c2ec04ceba9e",
- "destination_name": "string",
- "destination_type": "string",
- "enabled": true,
- "status": "firing",
- "active_scope_count": 0,
- "firing_scope_count": 0,
- "last_anomaly_at": "2019-08-24T14:15:22Z",
- "last_notified_at": "2019-08-24T14:15:22Z",
- "notify_on_spike": true,
- "notify_on_drop": true,
- "min_percent_delta": 0,
- "min_expected_count": 0,
- "cooldown_minutes": 0,
- "muted": true,
- "muted_until": "2019-08-24T14:15:22Z"
}
], - "firing_count": 0,
- "warning_count": 0,
- "healthy_count": 0,
- "total": 0,
- "scope_readiness": {
- "variable_value_drift": true,
- "distribution_drift": true
}
}| slug required | string (Slug) |
| destination_id required | string <uuid> (Destination Id) |
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
- "type": "slack",
- "name": "string",
- "enabled": true,
- "webhook_set": true,
- "bot_token_set": true,
- "chat_id": "string",
- "target_url_set": true,
- "webhook_header_name": "string",
- "email_recipients": "string",
- "email_from_address": "string",
- "email_subject_template": "string",
- "jira_base_url": "string",
- "jira_auth_email": "string",
- "jira_api_token_set": true,
- "jira_project_key": "string",
- "jira_issue_type": "string",
- "linear_api_key_set": true,
- "linear_team_id": "string",
- "linear_state_id": "string",
- "linear_label_ids": "string",
- "is_local": false,
- "delivery_count": 0,
- "incident_count": 0,
- "rules": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "destination_id": "f73cdd0c-5b5d-4102-9dde-c2ec04ceba9e",
- "scan_config_id": "73831784-3bab-4614-8856-92f95dec4914",
- "name": "string",
- "enabled": true,
- "include_project_total": true,
- "include_event_types": true,
- "include_events": true,
- "include_schema_drifts": true,
- "include_distribution_drifts": true,
- "include_variable_value_drifts": true,
- "include_release_regressions": true,
- "include_metrics": true,
- "notify_on_spike": true,
- "notify_on_drop": true,
- "ai_explanation_enabled": true,
- "min_percent_delta": 0,
- "min_absolute_delta": 0,
- "min_expected_count": 0,
- "cooldown_minutes": 0,
- "message_template": "string",
- "items_template": "string",
- "message_format": "plain",
- "filters": [
- {
- "field": "event_type",
- "operator": "eq",
- "values": [
- "string"
], - "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}
], - "muted": true,
- "muted_until": "2019-08-24T14:15:22Z",
- "total_deliveries": 0,
- "last_delivery_at": "2019-08-24T14:15:22Z",
- "last_delivery_status": "pending",
- "incident_count": 0,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
], - "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}| slug required | string (Slug) |
| destination_id required | string <uuid> (Destination Id) |
Name (string) or Name (null) (Name) | |
Enabled (boolean) or Enabled (null) (Enabled) | |
Webhook Url (string) or Webhook Url (null) (Webhook Url) | |
Bot Token (string) or Bot Token (null) (Bot Token) | |
Chat Id (string) or Chat Id (null) (Chat Id) | |
Target Url (string) or Target Url (null) (Target Url) | |
Webhook Header Name (string) or Webhook Header Name (null) (Webhook Header Name) | |
Webhook Header Value (string) or Webhook Header Value (null) (Webhook Header Value) | |
Email Recipients (string) or Email Recipients (null) (Email Recipients) | |
Email From Address (string) or Email From Address (null) (Email From Address) | |
Email Subject Template (string) or Email Subject Template (null) (Email Subject Template) | |
Jira Base Url (string) or Jira Base Url (null) (Jira Base Url) | |
Jira Auth Email (string) or Jira Auth Email (null) (Jira Auth Email) | |
Jira Api Token (string) or Jira Api Token (null) (Jira Api Token) | |
Jira Project Key (string) or Jira Project Key (null) (Jira Project Key) | |
Jira Issue Type (string) or Jira Issue Type (null) (Jira Issue Type) | |
Linear Api Key (string) or Linear Api Key (null) (Linear Api Key) | |
Linear Team Id (string) or Linear Team Id (null) (Linear Team Id) | |
Linear State Id (string) or Linear State Id (null) (Linear State Id) | |
Linear Label Ids (string) or Linear Label Ids (null) (Linear Label Ids) |
{- "name": "string",
- "enabled": true,
- "webhook_url": "string",
- "bot_token": "string",
- "chat_id": "string",
- "target_url": "string",
- "webhook_header_name": "string",
- "webhook_header_value": "string",
- "email_recipients": "string",
- "email_from_address": "string",
- "email_subject_template": "string",
- "jira_base_url": "string",
- "jira_auth_email": "string",
- "jira_api_token": "string",
- "jira_project_key": "string",
- "jira_issue_type": "string",
- "linear_api_key": "string",
- "linear_team_id": "string",
- "linear_state_id": "string",
- "linear_label_ids": "string"
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
- "type": "slack",
- "name": "string",
- "enabled": true,
- "webhook_set": true,
- "bot_token_set": true,
- "chat_id": "string",
- "target_url_set": true,
- "webhook_header_name": "string",
- "email_recipients": "string",
- "email_from_address": "string",
- "email_subject_template": "string",
- "jira_base_url": "string",
- "jira_auth_email": "string",
- "jira_api_token_set": true,
- "jira_project_key": "string",
- "jira_issue_type": "string",
- "linear_api_key_set": true,
- "linear_team_id": "string",
- "linear_state_id": "string",
- "linear_label_ids": "string",
- "is_local": false,
- "delivery_count": 0,
- "incident_count": 0,
- "rules": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "destination_id": "f73cdd0c-5b5d-4102-9dde-c2ec04ceba9e",
- "scan_config_id": "73831784-3bab-4614-8856-92f95dec4914",
- "name": "string",
- "enabled": true,
- "include_project_total": true,
- "include_event_types": true,
- "include_events": true,
- "include_schema_drifts": true,
- "include_distribution_drifts": true,
- "include_variable_value_drifts": true,
- "include_release_regressions": true,
- "include_metrics": true,
- "notify_on_spike": true,
- "notify_on_drop": true,
- "ai_explanation_enabled": true,
- "min_percent_delta": 0,
- "min_absolute_delta": 0,
- "min_expected_count": 0,
- "cooldown_minutes": 0,
- "message_template": "string",
- "items_template": "string",
- "message_format": "plain",
- "filters": [
- {
- "field": "event_type",
- "operator": "eq",
- "values": [
- "string"
], - "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}
], - "muted": true,
- "muted_until": "2019-08-24T14:15:22Z",
- "total_deliveries": 0,
- "last_delivery_at": "2019-08-24T14:15:22Z",
- "last_delivery_status": "pending",
- "incident_count": 0,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
], - "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}Send one fixed test message through this destination's real channel.
Editor-only: it puts a message in somebody's Slack/Telegram/inbox and, for a
tracker destination, opens a ticket. Always 200 — a channel refusal is the
answer the caller asked for, not a server fault (see
AlertDestinationTestResponse).
Recorded in the audit log rather than as an AlertDelivery, so the Delivery
log keeps meaning "an alert fired"; see services/_alerting_test_send.
| slug required | string (Slug) |
| destination_id required | string <uuid> (Destination Id) |
{- "ok": true,
- "error": "string",
- "sent_at": "2019-08-24T14:15:22Z"
}| slug required | string (Slug) |
| destination_id required | string <uuid> (Destination Id) |
| name required | string (Name) |
| enabled | boolean (Enabled) Default: true |
Scan Config Id (string) or Scan Config Id (null) (Scan Config Id) | |
| include_project_total | boolean (Include Project Total) Default: true |
| include_event_types | boolean (Include Event Types) Default: true |
| include_events | boolean (Include Events) Default: true |
| include_schema_drifts | boolean (Include Schema Drifts) Default: false |
| include_distribution_drifts | boolean (Include Distribution Drifts) Default: false |
| include_variable_value_drifts | boolean (Include Variable Value Drifts) Default: false |
| include_release_regressions | boolean (Include Release Regressions) Default: false |
| include_metrics | boolean (Include Metrics) Default: false |
| notify_on_spike | boolean (Notify On Spike) Default: true |
| notify_on_drop | boolean (Notify On Drop) Default: true |
| ai_explanation_enabled | boolean (Ai Explanation Enabled) Default: false |
| min_percent_delta | number (Min Percent Delta) >= 0 Default: 100 |
| min_absolute_delta | number (Min Absolute Delta) >= 0 Default: 0 |
| min_expected_count | number (Min Expected Count) >= 0 Default: 0 |
| cooldown_minutes | integer (Cooldown Minutes) >= 1 Default: 1440 |
Message Template (string) or Message Template (null) (Message Template) | |
Items Template (string) or Items Template (null) (Items Template) | |
| message_format | string (AlertMessageFormat) Default: "plain" Enum: "plain" "slack_mrkdwn" "telegram_html" "telegram_markdownv2" |
Array of objects (Filters) |
{- "name": "string",
- "enabled": true,
- "scan_config_id": "73831784-3bab-4614-8856-92f95dec4914",
- "include_project_total": true,
- "include_event_types": true,
- "include_events": true,
- "include_schema_drifts": false,
- "include_distribution_drifts": false,
- "include_variable_value_drifts": false,
- "include_release_regressions": false,
- "include_metrics": false,
- "notify_on_spike": true,
- "notify_on_drop": true,
- "ai_explanation_enabled": false,
- "min_percent_delta": 100,
- "min_absolute_delta": 0,
- "min_expected_count": 0,
- "cooldown_minutes": 1440,
- "message_template": "string",
- "items_template": "string",
- "message_format": "plain",
- "filters": [
- {
- "field": "event_type",
- "operator": "eq",
- "values": [
- "string"
]
}
]
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "destination_id": "f73cdd0c-5b5d-4102-9dde-c2ec04ceba9e",
- "scan_config_id": "73831784-3bab-4614-8856-92f95dec4914",
- "name": "string",
- "enabled": true,
- "include_project_total": true,
- "include_event_types": true,
- "include_events": true,
- "include_schema_drifts": true,
- "include_distribution_drifts": true,
- "include_variable_value_drifts": true,
- "include_release_regressions": true,
- "include_metrics": true,
- "notify_on_spike": true,
- "notify_on_drop": true,
- "ai_explanation_enabled": true,
- "min_percent_delta": 0,
- "min_absolute_delta": 0,
- "min_expected_count": 0,
- "cooldown_minutes": 0,
- "message_template": "string",
- "items_template": "string",
- "message_format": "plain",
- "filters": [
- {
- "field": "event_type",
- "operator": "eq",
- "values": [
- "string"
], - "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}
], - "muted": true,
- "muted_until": "2019-08-24T14:15:22Z",
- "total_deliveries": 0,
- "last_delivery_at": "2019-08-24T14:15:22Z",
- "last_delivery_status": "pending",
- "incident_count": 0,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}| slug required | string (Slug) |
| destination_id required | string <uuid> (Destination Id) |
| rule_id required | string <uuid> (Rule Id) |
Name (string) or Name (null) (Name) | |
Enabled (boolean) or Enabled (null) (Enabled) | |
Scan Config Id (string) or Scan Config Id (null) (Scan Config Id) | |
Include Project Total (boolean) or Include Project Total (null) (Include Project Total) | |
Include Event Types (boolean) or Include Event Types (null) (Include Event Types) | |
Include Events (boolean) or Include Events (null) (Include Events) | |
Include Schema Drifts (boolean) or Include Schema Drifts (null) (Include Schema Drifts) | |
Include Distribution Drifts (boolean) or Include Distribution Drifts (null) (Include Distribution Drifts) | |
Include Variable Value Drifts (boolean) or Include Variable Value Drifts (null) (Include Variable Value Drifts) | |
Include Release Regressions (boolean) or Include Release Regressions (null) (Include Release Regressions) | |
Include Metrics (boolean) or Include Metrics (null) (Include Metrics) | |
Notify On Spike (boolean) or Notify On Spike (null) (Notify On Spike) | |
Notify On Drop (boolean) or Notify On Drop (null) (Notify On Drop) | |
Ai Explanation Enabled (boolean) or Ai Explanation Enabled (null) (Ai Explanation Enabled) | |
Min Percent Delta (number) or Min Percent Delta (null) (Min Percent Delta) | |
Min Absolute Delta (number) or Min Absolute Delta (null) (Min Absolute Delta) | |
Min Expected Count (number) or Min Expected Count (null) (Min Expected Count) | |
Cooldown Minutes (integer) or Cooldown Minutes (null) (Cooldown Minutes) | |
Message Template (string) or Message Template (null) (Message Template) | |
Items Template (string) or Items Template (null) (Items Template) | |
AlertMessageFormat (string) or null | |
Array of Filters (objects) or Filters (null) (Filters) |
{- "name": "string",
- "enabled": true,
- "scan_config_id": "73831784-3bab-4614-8856-92f95dec4914",
- "include_project_total": true,
- "include_event_types": true,
- "include_events": true,
- "include_schema_drifts": true,
- "include_distribution_drifts": true,
- "include_variable_value_drifts": true,
- "include_release_regressions": true,
- "include_metrics": true,
- "notify_on_spike": true,
- "notify_on_drop": true,
- "ai_explanation_enabled": true,
- "min_percent_delta": 0,
- "min_absolute_delta": 0,
- "min_expected_count": 0,
- "cooldown_minutes": 1,
- "message_template": "string",
- "items_template": "string",
- "message_format": "plain",
- "filters": [
- {
- "field": "event_type",
- "operator": "eq",
- "values": [
- "string"
]
}
]
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "destination_id": "f73cdd0c-5b5d-4102-9dde-c2ec04ceba9e",
- "scan_config_id": "73831784-3bab-4614-8856-92f95dec4914",
- "name": "string",
- "enabled": true,
- "include_project_total": true,
- "include_event_types": true,
- "include_events": true,
- "include_schema_drifts": true,
- "include_distribution_drifts": true,
- "include_variable_value_drifts": true,
- "include_release_regressions": true,
- "include_metrics": true,
- "notify_on_spike": true,
- "notify_on_drop": true,
- "ai_explanation_enabled": true,
- "min_percent_delta": 0,
- "min_absolute_delta": 0,
- "min_expected_count": 0,
- "cooldown_minutes": 0,
- "message_template": "string",
- "items_template": "string",
- "message_format": "plain",
- "filters": [
- {
- "field": "event_type",
- "operator": "eq",
- "values": [
- "string"
], - "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}
], - "muted": true,
- "muted_until": "2019-08-24T14:15:22Z",
- "total_deliveries": 0,
- "last_delivery_at": "2019-08-24T14:15:22Z",
- "last_delivery_status": "pending",
- "incident_count": 0,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}| slug required | string (Slug) |
| destination_id required | string <uuid> (Destination Id) |
| rule_id required | string <uuid> (Rule Id) |
{- "detail": [
- {
- "loc": [
- "string"
], - "msg": "string",
- "type": "string",
- "input": null,
- "ctx": { }
}
]
}| slug required | string (Slug) |
| destination_id required | string <uuid> (Destination Id) |
| rule_id required | string <uuid> (Rule Id) |
| days | integer (Days) [ 1 .. 90 ] Default: 7 |
Cooldown Minutes Override (integer) or Cooldown Minutes Override (null) (Cooldown Minutes Override) | |
Min Percent Delta Override (number) or Min Percent Delta Override (null) (Min Percent Delta Override) | |
Min Expected Count Override (number) or Min Expected Count Override (null) (Min Expected Count Override) | |
Sigma Threshold Override (number) or Sigma Threshold Override (null) (Sigma Threshold Override) |
{- "rule_id": "728c1541-d6d1-4290-9a53-cdf01dd32d60",
- "rule_name": "string",
- "days": 0,
- "window_from": "2019-08-24T14:15:22Z",
- "window_to": "2019-08-24T14:15:22Z",
- "anomalies_considered": 0,
- "matched_before_cooldown": 0,
- "firings": [
- {
- "anomaly_id": "ad2dfd01-0c70-4540-950a-db06805bc49d",
- "scope_type": "project_total",
- "scope_ref": "string",
- "scope_name": "string",
- "event_type_id": "a4ec4c3c-a3de-4a8a-983f-1791e72cea83",
- "event_id": "a7a26ff2-e851-45b6-9634-d595f45458b7",
- "drift_field": "string",
- "drift_type": "new_field",
- "sample_value": "string",
- "bucket": "2019-08-24T14:15:22Z",
- "direction": "spike",
- "actual_count": 0,
- "expected_count": 0,
- "absolute_delta": 0,
- "percent_delta": 0,
- "rendered_item": "string"
}
], - "noisy": true,
- "cooldown_minutes_used": 0,
- "cooldown_minutes_saved": 0,
- "min_percent_delta_used": 0,
- "min_percent_delta_saved": 0,
- "min_expected_count_used": 0,
- "min_expected_count_saved": 0,
- "sigma_threshold_used": 0,
- "sigma_threshold_saved": 0,
- "rendered_message": "string"
}| slug required | string (Slug) |
AlertDeliveryStatus (string) or Status (null) (Status) | |
AlertDestinationType (string) or Channel (null) (Channel) | |
Destination Id (string) or Destination Id (null) (Destination Id) | |
Rule Id (string) or Rule Id (null) (Rule Id) | |
Scan Config Id (string) or Scan Config Id (null) (Scan Config Id) | |
Correlation Group Id (string) or Correlation Group Id (null) (Correlation Group Id) | |
| ungrouped | boolean (Ungrouped) Default: false |
Date From (string) or Date From (null) (Date From) | |
Date To (string) or Date To (null) (Date To) | |
| offset | integer (Offset) >= 0 Default: 0 |
| limit | integer (Limit) [ 1 .. 200 ] Default: 50 |
{- "items": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
- "scan_config_id": "73831784-3bab-4614-8856-92f95dec4914",
- "scan_job_id": "9221fb1e-ebca-47f1-a680-9436e6250294",
- "destination_id": "f73cdd0c-5b5d-4102-9dde-c2ec04ceba9e",
- "rule_id": "728c1541-d6d1-4290-9a53-cdf01dd32d60",
- "destination_name": "string",
- "rule_name": "string",
- "scan_name": "string",
- "status": "pending",
- "channel": "slack",
- "matched_count": 0,
- "payload_snapshot": { },
- "error_message": "string",
- "is_local": false,
- "is_simulated": false,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "sent_at": "2019-08-24T14:15:22Z"
}
], - "total": 0
}| slug required | string (Slug) |
| delivery_id required | string <uuid> (Delivery Id) |
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
- "scan_config_id": "73831784-3bab-4614-8856-92f95dec4914",
- "scan_job_id": "9221fb1e-ebca-47f1-a680-9436e6250294",
- "destination_id": "f73cdd0c-5b5d-4102-9dde-c2ec04ceba9e",
- "rule_id": "728c1541-d6d1-4290-9a53-cdf01dd32d60",
- "destination_name": "string",
- "rule_name": "string",
- "scan_name": "string",
- "status": "pending",
- "channel": "slack",
- "matched_count": 0,
- "payload_snapshot": { },
- "error_message": "string",
- "is_local": false,
- "is_simulated": false,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "sent_at": "2019-08-24T14:15:22Z",
- "items": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "delivery_id": "9892f438-d31c-4ff2-bc84-146525b292ff",
- "scope_type": "project_total",
- "scope_ref": "string",
- "scope_name": "string",
- "event_type_id": "a4ec4c3c-a3de-4a8a-983f-1791e72cea83",
- "event_id": "a7a26ff2-e851-45b6-9634-d595f45458b7",
- "bucket": "2019-08-24T14:15:22Z",
- "direction": "spike",
- "actual_count": 0,
- "expected_count": 0,
- "absolute_delta": 0,
- "percent_delta": 0,
- "details_path": "string",
- "monitoring_path": "string",
- "drift_field": "string",
- "drift_type": "new_field",
- "sample_value": "string",
- "correlation_group_id": "b19a17a6-148a-445e-8ea5-cdb43c47c564"
}
]
}| slug required | string (Slug) |
| delivery_id required | string <uuid> (Delivery Id) |
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
- "scan_config_id": "73831784-3bab-4614-8856-92f95dec4914",
- "scan_job_id": "9221fb1e-ebca-47f1-a680-9436e6250294",
- "destination_id": "f73cdd0c-5b5d-4102-9dde-c2ec04ceba9e",
- "rule_id": "728c1541-d6d1-4290-9a53-cdf01dd32d60",
- "destination_name": "string",
- "rule_name": "string",
- "scan_name": "string",
- "status": "pending",
- "channel": "slack",
- "matched_count": 0,
- "payload_snapshot": { },
- "error_message": "string",
- "is_local": false,
- "is_simulated": false,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "sent_at": "2019-08-24T14:15:22Z",
- "items": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "delivery_id": "9892f438-d31c-4ff2-bc84-146525b292ff",
- "scope_type": "project_total",
- "scope_ref": "string",
- "scope_name": "string",
- "event_type_id": "a4ec4c3c-a3de-4a8a-983f-1791e72cea83",
- "event_id": "a7a26ff2-e851-45b6-9634-d595f45458b7",
- "bucket": "2019-08-24T14:15:22Z",
- "direction": "spike",
- "actual_count": 0,
- "expected_count": 0,
- "absolute_delta": 0,
- "percent_delta": 0,
- "details_path": "string",
- "monitoring_path": "string",
- "drift_field": "string",
- "drift_type": "new_field",
- "sample_value": "string",
- "correlation_group_id": "b19a17a6-148a-445e-8ea5-cdb43c47c564"
}
]
}| slug required | string (Slug) |
| rule_id required | string <uuid> (Rule Id) |
{- "rule_id": "728c1541-d6d1-4290-9a53-cdf01dd32d60",
- "rule_name": "string",
- "destination_id": "f73cdd0c-5b5d-4102-9dde-c2ec04ceba9e",
- "destination_name": "string",
- "destination_type": "string",
- "enabled": true,
- "status": "firing",
- "active_scope_count": 0,
- "firing_scope_count": 0,
- "last_anomaly_at": "2019-08-24T14:15:22Z",
- "last_notified_at": "2019-08-24T14:15:22Z",
- "notify_on_spike": true,
- "notify_on_drop": true,
- "min_percent_delta": 0,
- "min_expected_count": 0,
- "cooldown_minutes": 0,
- "muted": true,
- "muted_until": "2019-08-24T14:15:22Z",
- "rule_enabled": true,
- "destination_enabled": true,
- "scan_config_id": "73831784-3bab-4614-8856-92f95dec4914",
- "scan_name": "string",
- "include_project_total": true,
- "include_event_types": true,
- "include_events": true,
- "include_schema_drifts": true,
- "include_distribution_drifts": true,
- "include_variable_value_drifts": true,
- "include_release_regressions": true,
- "include_metrics": true,
- "total_deliveries": 0,
- "last_delivery_at": "2019-08-24T14:15:22Z",
- "last_delivery_status": "pending",
- "scope_readiness": {
- "variable_value_drift": true,
- "distribution_drift": true
}
}| slug required | string (Slug) |
| rule_id required | string <uuid> (Rule Id) |
| muted_until required | string <date-time> (Muted Until) |
{- "muted_until": "2019-08-24T14:15:22Z"
}{- "rule_id": "728c1541-d6d1-4290-9a53-cdf01dd32d60",
- "rule_name": "string",
- "destination_id": "f73cdd0c-5b5d-4102-9dde-c2ec04ceba9e",
- "destination_name": "string",
- "destination_type": "string",
- "enabled": true,
- "status": "firing",
- "active_scope_count": 0,
- "firing_scope_count": 0,
- "last_anomaly_at": "2019-08-24T14:15:22Z",
- "last_notified_at": "2019-08-24T14:15:22Z",
- "notify_on_spike": true,
- "notify_on_drop": true,
- "min_percent_delta": 0,
- "min_expected_count": 0,
- "cooldown_minutes": 0,
- "muted": true,
- "muted_until": "2019-08-24T14:15:22Z",
- "rule_enabled": true,
- "destination_enabled": true,
- "scan_config_id": "73831784-3bab-4614-8856-92f95dec4914",
- "scan_name": "string",
- "include_project_total": true,
- "include_event_types": true,
- "include_events": true,
- "include_schema_drifts": true,
- "include_distribution_drifts": true,
- "include_variable_value_drifts": true,
- "include_release_regressions": true,
- "include_metrics": true,
- "total_deliveries": 0,
- "last_delivery_at": "2019-08-24T14:15:22Z",
- "last_delivery_status": "pending",
- "scope_readiness": {
- "variable_value_drift": true,
- "distribution_drift": true
}
}| slug required | string (Slug) |
| rule_id required | string <uuid> (Rule Id) |
{- "rule_id": "728c1541-d6d1-4290-9a53-cdf01dd32d60",
- "rule_name": "string",
- "destination_id": "f73cdd0c-5b5d-4102-9dde-c2ec04ceba9e",
- "destination_name": "string",
- "destination_type": "string",
- "enabled": true,
- "status": "firing",
- "active_scope_count": 0,
- "firing_scope_count": 0,
- "last_anomaly_at": "2019-08-24T14:15:22Z",
- "last_notified_at": "2019-08-24T14:15:22Z",
- "notify_on_spike": true,
- "notify_on_drop": true,
- "min_percent_delta": 0,
- "min_expected_count": 0,
- "cooldown_minutes": 0,
- "muted": true,
- "muted_until": "2019-08-24T14:15:22Z",
- "rule_enabled": true,
- "destination_enabled": true,
- "scan_config_id": "73831784-3bab-4614-8856-92f95dec4914",
- "scan_name": "string",
- "include_project_total": true,
- "include_event_types": true,
- "include_events": true,
- "include_schema_drifts": true,
- "include_distribution_drifts": true,
- "include_variable_value_drifts": true,
- "include_release_regressions": true,
- "include_metrics": true,
- "total_deliveries": 0,
- "last_delivery_at": "2019-08-24T14:15:22Z",
- "last_delivery_status": "pending",
- "scope_readiness": {
- "variable_value_drift": true,
- "distribution_drift": true
}
}| slug required | string (Slug) |
AlertInboxStatus (string) or Status (null) (Status) | |
| offset | integer (Offset) >= 0 Default: 0 |
| limit | integer (Limit) [ 1 .. 200 ] Default: 50 |
{- "items": [
- {
- "correlation_group_id": "b19a17a6-148a-445e-8ea5-cdb43c47c564",
- "status": "open",
- "muted": true,
- "muted_until": "2019-08-24T14:15:22Z",
- "note": "string",
- "false_positive_count": 0,
- "item_count": 0,
- "delivery_count": 0,
- "latest_bucket": "2019-08-24T14:15:22Z",
- "latest_delivery_at": "2019-08-24T14:15:22Z",
- "first_delivery_at": "2019-08-24T14:15:22Z",
- "direction": "spike",
- "actual_count": 0,
- "expected_count": 0,
- "percent_delta": 0,
- "max_abs_percent_delta": 0,
- "scope_type": "project_total",
- "scope_ref": "string",
- "event_id": "a7a26ff2-e851-45b6-9634-d595f45458b7",
- "scope_types": [
- "project_total"
], - "scope_names": [
- "string"
], - "destination_names": [
- "string"
], - "rule_names": [
- "string"
], - "rules": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string"
}
], - "scan_names": [
- "string"
], - "acted_at": "2019-08-24T14:15:22Z",
- "acted_by": "50e8e0b1-ff34-4096-b99a-166ff9492477",
- "acted_by_name": "string"
}
], - "total": 0,
- "window_truncated_at": "2019-08-24T14:15:22Z"
}Apply one triage decision to a selection of incidents (tripl-gpfr).
A shortcut for N clicks on the sibling single-incident route, not a new kind of object: the decision is copied into each incident's own state. The service validates every id before mutating anything and commits once, so this either applies to the whole selection or to none of it.
| slug required | string (Slug) |
| correlation_group_ids required | Array of strings <uuid> (Correlation Group Ids) [ 1 .. 200 ] items [ items <uuid > ] |
| action required | string (Action) Enum: "acknowledge" "resolve" "mute" "reopen" "false_positive" "note" |
Note (string) or Note (null) (Note) | |
Muted Until (string) or Muted Until (null) (Muted Until) |
{- "correlation_group_ids": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
], - "action": "acknowledge",
- "note": "string",
- "muted_until": "2019-08-24T14:15:22Z"
}{- "groups": [
- {
- "correlation_group_id": "b19a17a6-148a-445e-8ea5-cdb43c47c564",
- "status": "open",
- "muted": true,
- "muted_until": "2019-08-24T14:15:22Z",
- "note": "string",
- "false_positive_count": 0,
- "item_count": 0,
- "delivery_count": 0,
- "latest_bucket": "2019-08-24T14:15:22Z",
- "latest_delivery_at": "2019-08-24T14:15:22Z",
- "first_delivery_at": "2019-08-24T14:15:22Z",
- "direction": "spike",
- "actual_count": 0,
- "expected_count": 0,
- "percent_delta": 0,
- "max_abs_percent_delta": 0,
- "scope_type": "project_total",
- "scope_ref": "string",
- "event_id": "a7a26ff2-e851-45b6-9634-d595f45458b7",
- "scope_types": [
- "project_total"
], - "scope_names": [
- "string"
], - "destination_names": [
- "string"
], - "rule_names": [
- "string"
], - "rules": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string"
}
], - "scan_names": [
- "string"
], - "acted_at": "2019-08-24T14:15:22Z",
- "acted_by": "50e8e0b1-ff34-4096-b99a-166ff9492477",
- "acted_by_name": "string"
}
], - "batch_id": "4da22c97-b7d5-4e31-8c3a-03870ebc7b20",
- "overrides_written": 0
}Resolve one incident by id, ignoring the list's lookback window.
Alert messages deep-link the incident they describe, and the reader opens them late; before this route the link landed on a page of 20 unrelated incidents with no explanation (tripl-oxkt.7).
| slug required | string (Slug) |
| correlation_group_id required | string <uuid> (Correlation Group Id) |
{- "correlation_group_id": "b19a17a6-148a-445e-8ea5-cdb43c47c564",
- "status": "open",
- "muted": true,
- "muted_until": "2019-08-24T14:15:22Z",
- "note": "string",
- "false_positive_count": 0,
- "item_count": 0,
- "delivery_count": 0,
- "latest_bucket": "2019-08-24T14:15:22Z",
- "latest_delivery_at": "2019-08-24T14:15:22Z",
- "first_delivery_at": "2019-08-24T14:15:22Z",
- "direction": "spike",
- "actual_count": 0,
- "expected_count": 0,
- "percent_delta": 0,
- "max_abs_percent_delta": 0,
- "scope_type": "project_total",
- "scope_ref": "string",
- "event_id": "a7a26ff2-e851-45b6-9634-d595f45458b7",
- "scope_types": [
- "project_total"
], - "scope_names": [
- "string"
], - "destination_names": [
- "string"
], - "rule_names": [
- "string"
], - "rules": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string"
}
], - "scan_names": [
- "string"
], - "acted_at": "2019-08-24T14:15:22Z",
- "acted_by": "50e8e0b1-ff34-4096-b99a-166ff9492477",
- "acted_by_name": "string"
}| slug required | string (Slug) |
| correlation_group_id required | string <uuid> (Correlation Group Id) |
| action required | string (Action) Enum: "acknowledge" "resolve" "mute" "reopen" "false_positive" "note" |
Note (string) or Note (null) (Note) | |
Muted Until (string) or Muted Until (null) (Muted Until) |
{- "action": "acknowledge",
- "note": "string",
- "muted_until": "2019-08-24T14:15:22Z"
}{- "group": {
- "correlation_group_id": "b19a17a6-148a-445e-8ea5-cdb43c47c564",
- "status": "open",
- "muted": true,
- "muted_until": "2019-08-24T14:15:22Z",
- "note": "string",
- "false_positive_count": 0,
- "item_count": 0,
- "delivery_count": 0,
- "latest_bucket": "2019-08-24T14:15:22Z",
- "latest_delivery_at": "2019-08-24T14:15:22Z",
- "first_delivery_at": "2019-08-24T14:15:22Z",
- "direction": "spike",
- "actual_count": 0,
- "expected_count": 0,
- "percent_delta": 0,
- "max_abs_percent_delta": 0,
- "scope_type": "project_total",
- "scope_ref": "string",
- "event_id": "a7a26ff2-e851-45b6-9634-d595f45458b7",
- "scope_types": [
- "project_total"
], - "scope_names": [
- "string"
], - "destination_names": [
- "string"
], - "rule_names": [
- "string"
], - "rules": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string"
}
], - "scan_names": [
- "string"
], - "acted_at": "2019-08-24T14:15:22Z",
- "acted_by": "50e8e0b1-ff34-4096-b99a-166ff9492477",
- "acted_by_name": "string"
}, - "overrides_written": 0
}[- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
- "name": "string",
- "db_type": "clickhouse",
- "is_synthetic": true,
- "host": "string",
- "port": 0,
- "database_name": "string",
- "username": "string",
- "password_set": true,
- "timeout_seconds": 0,
- "json_path_discovery": "all",
- "connection_settings": {
- "location": "string",
- "maximum_bytes_billed": 0,
- "dataset_allowlist": [
- "string"
], - "sslmode": "disable",
- "sslrootcert": "string",
- "sslcert": "string",
- "search_path": "string",
- "sslkey_set": false
}, - "last_test_at": "2019-08-24T14:15:22Z",
- "last_test_status": "success",
- "last_test_message": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
]| name required | string (Name) [ 1 .. 255 ] characters |
| db_type required | string (DBType) Enum: "clickhouse" "postgres" "bigquery" "synthetic" |
| host required | string (Host) [ 1 .. 500 ] characters |
| port | integer (Port) [ 1 .. 65535 ] Default: 8123 |
| database_name required | string (Database Name) [ 1 .. 255 ] characters |
| username | string (Username) Default: "" |
| password | string (Password) Default: "" |
Timeout Seconds (integer) or Timeout Seconds (null) (Timeout Seconds) | |
Json Path Discovery (string) or Json Path Discovery (null) (Json Path Discovery) | |
ClickHouseSettings (object) or PostgresSettings (object) or BigQuerySettings (object) or SyntheticSettings (object) or Connection Settings (null) (Connection Settings) |
{- "name": "string",
- "db_type": "clickhouse",
- "host": "string",
- "port": 8123,
- "database_name": "string",
- "username": "",
- "password": "",
- "timeout_seconds": 1,
- "json_path_discovery": "all",
- "connection_settings": { }
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
- "name": "string",
- "db_type": "clickhouse",
- "is_synthetic": true,
- "host": "string",
- "port": 0,
- "database_name": "string",
- "username": "string",
- "password_set": true,
- "timeout_seconds": 0,
- "json_path_discovery": "all",
- "connection_settings": {
- "location": "string",
- "maximum_bytes_billed": 0,
- "dataset_allowlist": [
- "string"
], - "sslmode": "disable",
- "sslrootcert": "string",
- "sslcert": "string",
- "search_path": "string",
- "sslkey_set": false
}, - "last_test_at": "2019-08-24T14:15:22Z",
- "last_test_status": "success",
- "last_test_message": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
- "name": "string",
- "db_type": "clickhouse",
- "is_synthetic": true,
- "host": "string",
- "port": 0,
- "database_name": "string",
- "username": "string",
- "password_set": true,
- "timeout_seconds": 0,
- "json_path_discovery": "all",
- "connection_settings": {
- "location": "string",
- "maximum_bytes_billed": 0,
- "dataset_allowlist": [
- "string"
], - "sslmode": "disable",
- "sslrootcert": "string",
- "sslcert": "string",
- "search_path": "string",
- "sslkey_set": false
}, - "last_test_at": "2019-08-24T14:15:22Z",
- "last_test_status": "success",
- "last_test_message": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}| ds_id required | string <uuid> (Ds Id) |
Name (string) or Name (null) (Name) | |
DBType (string) or null | |
Host (string) or Host (null) (Host) | |
Port (integer) or Port (null) (Port) | |
Database Name (string) or Database Name (null) (Database Name) | |
Username (string) or Username (null) (Username) | |
Password (string) or Password (null) (Password) | |
Timeout Seconds (integer) or Timeout Seconds (null) (Timeout Seconds) | |
Json Path Discovery (string) or Json Path Discovery (null) (Json Path Discovery) | |
ClickHouseSettings (object) or PostgresSettings (object) or BigQuerySettings (object) or SyntheticSettings (object) or Connection Settings (null) (Connection Settings) |
{- "name": "string",
- "db_type": "clickhouse",
- "host": "string",
- "port": 1,
- "database_name": "string",
- "username": "string",
- "password": "string",
- "timeout_seconds": 1,
- "json_path_discovery": "all",
- "connection_settings": { }
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
- "name": "string",
- "db_type": "clickhouse",
- "is_synthetic": true,
- "host": "string",
- "port": 0,
- "database_name": "string",
- "username": "string",
- "password_set": true,
- "timeout_seconds": 0,
- "json_path_discovery": "all",
- "connection_settings": {
- "location": "string",
- "maximum_bytes_billed": 0,
- "dataset_allowlist": [
- "string"
], - "sslmode": "disable",
- "sslrootcert": "string",
- "sslcert": "string",
- "search_path": "string",
- "sslkey_set": false
}, - "last_test_at": "2019-08-24T14:15:22Z",
- "last_test_status": "success",
- "last_test_message": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}| ds_id required | string <uuid> (Ds Id) |
| window_hours | integer (Window Hours) [ 1 .. 720 ] Default: 48 |
{- "events_tracked": 0,
- "volume_window": 0,
- "window_hours": 0,
- "throughput": [
- {
- "bucket": "2019-08-24T14:15:22Z",
- "count": 0
}
]
}{- "success": true,
- "message": "string",
- "tested_at": "2019-08-24T14:15:22Z",
- "data_source": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
- "name": "string",
- "db_type": "clickhouse",
- "is_synthetic": true,
- "host": "string",
- "port": 0,
- "database_name": "string",
- "username": "string",
- "password_set": true,
- "timeout_seconds": 0,
- "json_path_discovery": "all",
- "connection_settings": {
- "location": "string",
- "maximum_bytes_billed": 0,
- "dataset_allowlist": [
- "string"
], - "sslmode": "disable",
- "sslrootcert": "string",
- "sslcert": "string",
- "search_path": "string",
- "sslkey_set": false
}, - "last_test_at": "2019-08-24T14:15:22Z",
- "last_test_status": "success",
- "last_test_message": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
}| slug required | string (Slug) |
| event_id required | string <uuid> (Event Id) |
[- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "event_id": "a7a26ff2-e851-45b6-9634-d595f45458b7",
- "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
- "kind": "photo",
- "original_filename": "string",
- "content_type": "string",
- "size_bytes": 0,
- "storage_backend": "local",
- "sort_order": 0,
- "url": "string",
- "external_url": "string",
- "uploaded_by_user_id": "9fdcaa70-9955-45b2-9821-39697e7541f8",
- "created_at": "2019-08-24T14:15:22Z"
}
]| slug required | string (Slug) |
| event_id required | string <uuid> (Event Id) |
| file required | string <application/octet-stream> (File) |
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "event_id": "a7a26ff2-e851-45b6-9634-d595f45458b7",
- "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
- "kind": "photo",
- "original_filename": "string",
- "content_type": "string",
- "size_bytes": 0,
- "storage_backend": "local",
- "sort_order": 0,
- "url": "string",
- "external_url": "string",
- "uploaded_by_user_id": "9fdcaa70-9955-45b2-9821-39697e7541f8",
- "created_at": "2019-08-24T14:15:22Z"
}| slug required | string (Slug) |
| event_id required | string <uuid> (Event Id) |
| photo_ids required | Array of strings <uuid> (Photo Ids) [ items <uuid > ] |
{- "photo_ids": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
]
}[- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "event_id": "a7a26ff2-e851-45b6-9634-d595f45458b7",
- "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
- "kind": "photo",
- "original_filename": "string",
- "content_type": "string",
- "size_bytes": 0,
- "storage_backend": "local",
- "sort_order": 0,
- "url": "string",
- "external_url": "string",
- "uploaded_by_user_id": "9fdcaa70-9955-45b2-9821-39697e7541f8",
- "created_at": "2019-08-24T14:15:22Z"
}
]Stream the photo bytes through the API.
Used for the local backend (where blobs aren't web-reachable) and as a fallback if GCS URL generation ever fails. GCS-backed photos normally redirect to a signed URL on the list response, so this endpoint is rarely hit in production.
| slug required | string (Slug) |
| event_id required | string <uuid> (Event Id) |
| photo_id required | string <uuid> (Photo Id) |
null| slug required | string (Slug) |
| event_id required | string <uuid> (Event Id) |
| url required | string (Url) [ 1 .. 2000 ] characters |
| title | string (Title) <= 500 characters Default: "" |
{- "url": "string",
- "title": ""
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "event_id": "a7a26ff2-e851-45b6-9634-d595f45458b7",
- "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
- "kind": "photo",
- "original_filename": "string",
- "content_type": "string",
- "size_bytes": 0,
- "storage_backend": "local",
- "sort_order": 0,
- "url": "string",
- "external_url": "string",
- "uploaded_by_user_id": "9fdcaa70-9955-45b2-9821-39697e7541f8",
- "created_at": "2019-08-24T14:15:22Z"
}| slug required | string (Slug) |
| event_id required | string <uuid> (Event Id) |
| photo_id required | string <uuid> (Photo Id) |
[- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "photo_id": "50c42bd2-615e-4fec-a325-0e5c4d3d73d3",
- "parent_id": "1c6ca187-e61f-4301-8dcb-0e9749e89eef",
- "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",
- "body": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
]| slug required | string (Slug) |
| event_id required | string <uuid> (Event Id) |
| photo_id required | string <uuid> (Photo Id) |
| body required | string (Body) [ 1 .. 4000 ] characters |
Parent Id (string) or Parent Id (null) (Parent Id) |
{- "body": "string",
- "parent_id": "1c6ca187-e61f-4301-8dcb-0e9749e89eef"
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "photo_id": "50c42bd2-615e-4fec-a325-0e5c4d3d73d3",
- "parent_id": "1c6ca187-e61f-4301-8dcb-0e9749e89eef",
- "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",
- "body": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}| slug required | string (Slug) |
| event_id required | string <uuid> (Event Id) |
| photo_id required | string <uuid> (Photo Id) |
| comment_id required | string <uuid> (Comment Id) |
{- "detail": [
- {
- "loc": [
- "string"
], - "msg": "string",
- "type": "string",
- "input": null,
- "ctx": { }
}
]
}| slug required | string (Slug) |
| q required | string (Q) [ 1 .. 500 ] characters |
Array of Types (strings) or Types (null) (Types) | |
| include_archived | boolean (Include Archived) Default: false |
| limit | integer (Limit) [ 1 .. 100 ] Default: 20 |
Branch (string) or Branch (null) (Branch) Plan branch id (UUID) to read and write instead of the main branch. |
{- "items": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "entity_type": "event",
- "entity_id": "8161163a-f227-466f-bc01-090a01e80165",
- "parent_event_id": "244d15ba-4793-4516-8d39-3fb250c8abf5",
- "event_id": "a7a26ff2-e851-45b6-9634-d595f45458b7",
- "name": "string",
- "implemented": true,
- "variable_values": [ ],
- "title": "string",
- "subtitle": "",
- "description": "",
- "snippet": "",
- "route_path": "string",
- "score": 0,
- "confidence": 0,
- "highlights": [ ],
- "semantic_used": false
}
], - "total": 0,
- "truncated": false,
- "semantic_used": false
}| slug required | string (Slug) |
Branch (string) or Branch (null) (Branch) Plan branch id (UUID) to read and write instead of the main branch. |
{- "documents_indexed": 0,
- "embeddings_scheduled": false
}| slug required | string (Slug) |
Branch (string) or Branch (null) (Branch) Plan branch id (UUID) to read and write instead of the main branch. |
| event_id required | string <uuid> (Event Id) |
{- "event_id": "a7a26ff2-e851-45b6-9634-d595f45458b7"
}{- "description": "string",
- "field_suggestions": [
- {
- "field_name": "string",
- "description": "string"
}
]
}| slug required | string (Slug) |
Branch (string) or Branch (null) (Branch) Plan branch id (UUID) to read and write instead of the main branch. |
| event_type_id required | string <uuid> (Event Type Id) |
{- "event_type_id": "a4ec4c3c-a3de-4a8a-983f-1791e72cea83"
}{- "description": "string",
- "field_suggestions": [
- {
- "field_name": "string",
- "description": "string"
}
]
}| slug required | string (Slug) |
Branch (string) or Branch (null) (Branch) Plan branch id (UUID) to read and write instead of the main branch. |
| question required | string (Question) [ 3 .. 500 ] characters |
{- "question": "string"
}{- "answer": "string",
- "sources": [
- {
- "title": "string",
- "entity_type": "string",
- "route_path": "string"
}
], - "semantic_used": true
}[- {
- "id": "string",
- "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
- "project_slug": "string",
- "project_name": "string",
- "type": "anomaly",
- "severity": "high",
- "title": "string",
- "detail": "string",
- "occurred_at": "2019-08-24T14:15:22Z",
- "target_path": "string"
}
]| slug required | string (Slug) |
| limit | integer (Limit) [ 1 .. 100 ] Default: 20 |
[- {
- "id": "string",
- "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
- "project_slug": "string",
- "project_name": "string",
- "type": "anomaly",
- "severity": "high",
- "title": "string",
- "detail": "string",
- "occurred_at": "2019-08-24T14:15:22Z",
- "target_path": "string"
}
]Project Slug (string) or Project Slug (null) (Project Slug) | |
Action (string) or Action (null) (Action) | |
User Id (string) or User Id (null) (User Id) | |
User Email (string) or User Email (null) (User Email) | |
Since (string) or Since (null) (Since) | |
Until (string) or Until (null) (Until) | |
| limit | integer (Limit) [ 1 .. 200 ] Default: 50 |
| offset | integer (Offset) >= 0 Default: 0 |
{- "items": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "created_at": "2019-08-24T14:15:22Z",
- "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",
- "user_email": "string",
- "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
- "project_slug": "string",
- "branch_id": "7a4e8e99-89f2-4a0f-b66c-fc595dda2dbc",
- "branch_name": "string",
- "action": "string",
- "target_type": "string",
- "target_id": "d3bcdc92-4191-401b-ad0c-42056c6efab9",
- "target_name": "string"
}
], - "total": 0
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "created_at": "2019-08-24T14:15:22Z",
- "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",
- "user_email": "string",
- "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
- "project_slug": "string",
- "branch_id": "7a4e8e99-89f2-4a0f-b66c-fc595dda2dbc",
- "branch_name": "string",
- "action": "string",
- "target_type": "string",
- "target_id": "d3bcdc92-4191-401b-ad0c-42056c6efab9",
- "target_name": "string",
- "payload": { }
}[- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "key_prefix": "string",
- "scope": "read",
- "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
- "expires_at": "2019-08-24T14:15:22Z",
- "revoked_at": "2019-08-24T14:15:22Z",
- "last_used_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z"
}
]| name required | string (Name) [ 1 .. 100 ] characters |
| scope | string (ApiKeyScope) Default: "read" Enum: "read" "write" |
Expires In Days (integer) or Expires In Days (null) (Expires In Days) | |
Project Slug (string) or Project Slug (null) (Project Slug) |
{- "name": "string",
- "scope": "read",
- "expires_in_days": 1,
- "project_slug": "string"
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "key_prefix": "string",
- "scope": "read",
- "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
- "expires_at": "2019-08-24T14:15:22Z",
- "revoked_at": "2019-08-24T14:15:22Z",
- "last_used_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "token": "string"
}{- "runtime": {
- "app_base_url": "string",
- "scan_row_limit_default": 0,
- "metrics_row_limit_default": 0
}, - "security": {
- "cors_allow_origins": "string",
- "session_cookie_name": "string",
- "session_ttl_hours": 0,
- "session_cookie_secure": true,
- "security_headers_enabled": true,
- "hsts_enabled": true,
- "hsts_max_age_seconds": 0,
- "content_security_policy": "string",
- "rate_limit_enabled": true,
- "rate_limit_login_per_minute": 0,
- "rate_limit_register_per_hour": 0,
- "rate_limit_trust_forwarded_for": true,
- "registration_mode": "open"
}, - "storage": {
- "photo_storage_backend": "string",
- "photo_local_dir": "string",
- "photo_max_size_mb": 0,
- "photo_allowed_mime": "string",
- "gcs_photo_bucket": "string",
- "gcs_photo_credentials_path": "string",
- "gcs_photo_public": true,
- "gcs_photo_signed_url_ttl_seconds": 0
}, - "observability": {
- "request_id_header": "string",
- "log_level": "string",
- "log_json": true,
- "prometheus_metrics_enabled": true,
- "otel_exporter_otlp_endpoint": "string",
- "otel_service_name": "string"
}, - "email": {
- "smtp_host": "string",
- "smtp_port": 0,
- "smtp_username": "string",
- "smtp_password_configured": true,
- "smtp_use_tls": true,
- "smtp_from_address": "string"
}, - "ai": {
- "ai_enabled": true,
- "ai_base_url": "string",
- "ai_model": "string",
- "ai_api_key_configured": true,
- "ai_timeout_seconds": 0,
- "ai_max_output_tokens": 0,
- "describe_system_prompt": "string",
- "ask_system_prompt": "string",
- "alert_explanation_system_prompt": "string",
- "search_embeddings_enabled": true,
- "search_embedding_provider": "string",
- "search_embedding_model": "string",
- "search_embedding_api_key_configured": true,
- "search_embedding_dimensions": 0,
- "search_embedding_base_url": "string"
}, - "system": {
- "debug": true,
- "database_url_configured": true,
- "sync_database_url_configured": true,
- "rabbitmq_url_configured": true,
- "redis_url_configured": true,
- "encryption_key_configured": true,
- "openai_api_key_configured": true,
- "alembic_revision": "string",
- "alembic_head_revision": "string",
- "alembic_up_to_date": true
}, - "overridden_fields": [
- "string"
], - "sources": {
- "property1": "env",
- "property2": "env"
}
}Upsert service overrides. Intentionally identical to PATCH: unset fields are left untouched (partial update), not reset. Kept as a stable alias for clients that issue PUT; settings are a sparse override map with no full "replace all" semantics.
RuntimeSettingsUpdate (object) or null | |
SecuritySettingsUpdate (object) or null | |
StorageSettingsUpdate (object) or null | |
ObservabilitySettingsUpdate (object) or null | |
EmailSettingsUpdate (object) or null | |
AiSettingsUpdate (object) or null |
{- "runtime": {
- "app_base_url": "string",
- "scan_row_limit_default": 1,
- "metrics_row_limit_default": 1
}, - "security": {
- "cors_allow_origins": "string",
- "session_cookie_name": "string",
- "session_ttl_hours": 1,
- "session_cookie_secure": true,
- "security_headers_enabled": true,
- "hsts_enabled": true,
- "hsts_max_age_seconds": 0,
- "content_security_policy": "string",
- "rate_limit_enabled": true,
- "rate_limit_login_per_minute": 0,
- "rate_limit_register_per_hour": 0,
- "rate_limit_trust_forwarded_for": true,
- "registration_mode": "open"
}, - "storage": {
- "photo_storage_backend": "string",
- "photo_local_dir": "string",
- "photo_max_size_mb": 1,
- "photo_allowed_mime": "string",
- "gcs_photo_bucket": "string",
- "gcs_photo_credentials_path": "string",
- "gcs_photo_public": true,
- "gcs_photo_signed_url_ttl_seconds": 1
}, - "observability": {
- "request_id_header": "string",
- "log_level": "string",
- "log_json": true,
- "prometheus_metrics_enabled": true,
- "otel_exporter_otlp_endpoint": "string",
- "otel_service_name": "string"
}, - "email": {
- "smtp_host": "string",
- "smtp_port": 1,
- "smtp_username": "string",
- "smtp_password": "string",
- "smtp_use_tls": true,
- "smtp_from_address": "string"
}, - "ai": {
- "ai_enabled": true,
- "ai_base_url": "string",
- "ai_model": "string",
- "ai_api_key": "string",
- "ai_timeout_seconds": 1,
- "ai_max_output_tokens": 1,
- "describe_system_prompt": "string",
- "ask_system_prompt": "string",
- "alert_explanation_system_prompt": "string",
- "search_embeddings_enabled": true,
- "search_embedding_provider": "string",
- "search_embedding_model": "string",
- "search_embedding_api_key": "string"
}
}{- "runtime": {
- "app_base_url": "string",
- "scan_row_limit_default": 0,
- "metrics_row_limit_default": 0
}, - "security": {
- "cors_allow_origins": "string",
- "session_cookie_name": "string",
- "session_ttl_hours": 0,
- "session_cookie_secure": true,
- "security_headers_enabled": true,
- "hsts_enabled": true,
- "hsts_max_age_seconds": 0,
- "content_security_policy": "string",
- "rate_limit_enabled": true,
- "rate_limit_login_per_minute": 0,
- "rate_limit_register_per_hour": 0,
- "rate_limit_trust_forwarded_for": true,
- "registration_mode": "open"
}, - "storage": {
- "photo_storage_backend": "string",
- "photo_local_dir": "string",
- "photo_max_size_mb": 0,
- "photo_allowed_mime": "string",
- "gcs_photo_bucket": "string",
- "gcs_photo_credentials_path": "string",
- "gcs_photo_public": true,
- "gcs_photo_signed_url_ttl_seconds": 0
}, - "observability": {
- "request_id_header": "string",
- "log_level": "string",
- "log_json": true,
- "prometheus_metrics_enabled": true,
- "otel_exporter_otlp_endpoint": "string",
- "otel_service_name": "string"
}, - "email": {
- "smtp_host": "string",
- "smtp_port": 0,
- "smtp_username": "string",
- "smtp_password_configured": true,
- "smtp_use_tls": true,
- "smtp_from_address": "string"
}, - "ai": {
- "ai_enabled": true,
- "ai_base_url": "string",
- "ai_model": "string",
- "ai_api_key_configured": true,
- "ai_timeout_seconds": 0,
- "ai_max_output_tokens": 0,
- "describe_system_prompt": "string",
- "ask_system_prompt": "string",
- "alert_explanation_system_prompt": "string",
- "search_embeddings_enabled": true,
- "search_embedding_provider": "string",
- "search_embedding_model": "string",
- "search_embedding_api_key_configured": true,
- "search_embedding_dimensions": 0,
- "search_embedding_base_url": "string"
}, - "system": {
- "debug": true,
- "database_url_configured": true,
- "sync_database_url_configured": true,
- "rabbitmq_url_configured": true,
- "redis_url_configured": true,
- "encryption_key_configured": true,
- "openai_api_key_configured": true,
- "alembic_revision": "string",
- "alembic_head_revision": "string",
- "alembic_up_to_date": true
}, - "overridden_fields": [
- "string"
], - "sources": {
- "property1": "env",
- "property2": "env"
}
}RuntimeSettingsUpdate (object) or null | |
SecuritySettingsUpdate (object) or null | |
StorageSettingsUpdate (object) or null | |
ObservabilitySettingsUpdate (object) or null | |
EmailSettingsUpdate (object) or null | |
AiSettingsUpdate (object) or null |
{- "runtime": {
- "app_base_url": "string",
- "scan_row_limit_default": 1,
- "metrics_row_limit_default": 1
}, - "security": {
- "cors_allow_origins": "string",
- "session_cookie_name": "string",
- "session_ttl_hours": 1,
- "session_cookie_secure": true,
- "security_headers_enabled": true,
- "hsts_enabled": true,
- "hsts_max_age_seconds": 0,
- "content_security_policy": "string",
- "rate_limit_enabled": true,
- "rate_limit_login_per_minute": 0,
- "rate_limit_register_per_hour": 0,
- "rate_limit_trust_forwarded_for": true,
- "registration_mode": "open"
}, - "storage": {
- "photo_storage_backend": "string",
- "photo_local_dir": "string",
- "photo_max_size_mb": 1,
- "photo_allowed_mime": "string",
- "gcs_photo_bucket": "string",
- "gcs_photo_credentials_path": "string",
- "gcs_photo_public": true,
- "gcs_photo_signed_url_ttl_seconds": 1
}, - "observability": {
- "request_id_header": "string",
- "log_level": "string",
- "log_json": true,
- "prometheus_metrics_enabled": true,
- "otel_exporter_otlp_endpoint": "string",
- "otel_service_name": "string"
}, - "email": {
- "smtp_host": "string",
- "smtp_port": 1,
- "smtp_username": "string",
- "smtp_password": "string",
- "smtp_use_tls": true,
- "smtp_from_address": "string"
}, - "ai": {
- "ai_enabled": true,
- "ai_base_url": "string",
- "ai_model": "string",
- "ai_api_key": "string",
- "ai_timeout_seconds": 1,
- "ai_max_output_tokens": 1,
- "describe_system_prompt": "string",
- "ask_system_prompt": "string",
- "alert_explanation_system_prompt": "string",
- "search_embeddings_enabled": true,
- "search_embedding_provider": "string",
- "search_embedding_model": "string",
- "search_embedding_api_key": "string"
}
}{- "runtime": {
- "app_base_url": "string",
- "scan_row_limit_default": 0,
- "metrics_row_limit_default": 0
}, - "security": {
- "cors_allow_origins": "string",
- "session_cookie_name": "string",
- "session_ttl_hours": 0,
- "session_cookie_secure": true,
- "security_headers_enabled": true,
- "hsts_enabled": true,
- "hsts_max_age_seconds": 0,
- "content_security_policy": "string",
- "rate_limit_enabled": true,
- "rate_limit_login_per_minute": 0,
- "rate_limit_register_per_hour": 0,
- "rate_limit_trust_forwarded_for": true,
- "registration_mode": "open"
}, - "storage": {
- "photo_storage_backend": "string",
- "photo_local_dir": "string",
- "photo_max_size_mb": 0,
- "photo_allowed_mime": "string",
- "gcs_photo_bucket": "string",
- "gcs_photo_credentials_path": "string",
- "gcs_photo_public": true,
- "gcs_photo_signed_url_ttl_seconds": 0
}, - "observability": {
- "request_id_header": "string",
- "log_level": "string",
- "log_json": true,
- "prometheus_metrics_enabled": true,
- "otel_exporter_otlp_endpoint": "string",
- "otel_service_name": "string"
}, - "email": {
- "smtp_host": "string",
- "smtp_port": 0,
- "smtp_username": "string",
- "smtp_password_configured": true,
- "smtp_use_tls": true,
- "smtp_from_address": "string"
}, - "ai": {
- "ai_enabled": true,
- "ai_base_url": "string",
- "ai_model": "string",
- "ai_api_key_configured": true,
- "ai_timeout_seconds": 0,
- "ai_max_output_tokens": 0,
- "describe_system_prompt": "string",
- "ask_system_prompt": "string",
- "alert_explanation_system_prompt": "string",
- "search_embeddings_enabled": true,
- "search_embedding_provider": "string",
- "search_embedding_model": "string",
- "search_embedding_api_key_configured": true,
- "search_embedding_dimensions": 0,
- "search_embedding_base_url": "string"
}, - "system": {
- "debug": true,
- "database_url_configured": true,
- "sync_database_url_configured": true,
- "rabbitmq_url_configured": true,
- "redis_url_configured": true,
- "encryption_key_configured": true,
- "openai_api_key_configured": true,
- "alembic_revision": "string",
- "alembic_head_revision": "string",
- "alembic_up_to_date": true
}, - "overridden_fields": [
- "string"
], - "sources": {
- "property1": "env",
- "property2": "env"
}
}{- "ai": {
- "ai_enabled": true,
- "ai_base_url": "string",
- "ai_model": "string",
- "ai_api_key_configured": true,
- "ai_timeout_seconds": 0,
- "ai_max_output_tokens": 0,
- "describe_system_prompt": "string",
- "ask_system_prompt": "string",
- "alert_explanation_system_prompt": "string",
- "search_embeddings_enabled": true,
- "search_embedding_provider": "string",
- "search_embedding_model": "string",
- "search_embedding_api_key_configured": true,
- "search_embedding_dimensions": 0,
- "search_embedding_base_url": "string"
}, - "overridden_fields": [
- "string"
], - "sources": {
- "property1": "env",
- "property2": "env"
}
}Upsert AI overrides (partial: only fields present in the request body are applied, via exclude_unset). PUT — not PATCH — because the frontend AI settings form calls this endpoint; semantics are upsert, not replace-all.
Ai Enabled (boolean) or Ai Enabled (null) (Ai Enabled) | |
Ai Base Url (string) or Ai Base Url (null) (Ai Base Url) | |
Ai Model (string) or Ai Model (null) (Ai Model) | |
Ai Api Key (string) or Ai Api Key (null) (Ai Api Key) | |
Ai Timeout Seconds (integer) or Ai Timeout Seconds (null) (Ai Timeout Seconds) | |
Ai Max Output Tokens (integer) or Ai Max Output Tokens (null) (Ai Max Output Tokens) | |
Describe System Prompt (string) or Describe System Prompt (null) (Describe System Prompt) | |
Ask System Prompt (string) or Ask System Prompt (null) (Ask System Prompt) | |
Alert Explanation System Prompt (string) or Alert Explanation System Prompt (null) (Alert Explanation System Prompt) | |
Search Embeddings Enabled (boolean) or Search Embeddings Enabled (null) (Search Embeddings Enabled) | |
Search Embedding Provider (string) or Search Embedding Provider (null) (Search Embedding Provider) | |
Search Embedding Model (string) or Search Embedding Model (null) (Search Embedding Model) | |
Search Embedding Api Key (string) or Search Embedding Api Key (null) (Search Embedding Api Key) |
{- "ai_enabled": true,
- "ai_base_url": "string",
- "ai_model": "string",
- "ai_api_key": "string",
- "ai_timeout_seconds": 1,
- "ai_max_output_tokens": 1,
- "describe_system_prompt": "string",
- "ask_system_prompt": "string",
- "alert_explanation_system_prompt": "string",
- "search_embeddings_enabled": true,
- "search_embedding_provider": "string",
- "search_embedding_model": "string",
- "search_embedding_api_key": "string"
}{- "ai": {
- "ai_enabled": true,
- "ai_base_url": "string",
- "ai_model": "string",
- "ai_api_key_configured": true,
- "ai_timeout_seconds": 0,
- "ai_max_output_tokens": 0,
- "describe_system_prompt": "string",
- "ask_system_prompt": "string",
- "alert_explanation_system_prompt": "string",
- "search_embeddings_enabled": true,
- "search_embedding_provider": "string",
- "search_embedding_model": "string",
- "search_embedding_api_key_configured": true,
- "search_embedding_dimensions": 0,
- "search_embedding_base_url": "string"
}, - "overridden_fields": [
- "string"
], - "sources": {
- "property1": "env",
- "property2": "env"
}
}| prompt | string (Prompt) [ 1 .. 500 ] characters Default: "Reply with the word ok if the LLM connection works." |
{- "prompt": "Reply with the word ok if the LLM connection works."
}{- "ok": true,
- "message": "string"
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
- "min_approvals": 0,
- "block_self_approval": true,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}Owner-only: min_approvals/block_self_approval govern what editors may merge, so editors must not be able to loosen the policy on themselves.
| slug required | string (Slug) |
Min Approvals (integer) or Min Approvals (null) (Min Approvals) | |
Block Self Approval (boolean) or Block Self Approval (null) (Block Self Approval) |
{- "min_approvals": 100,
- "block_self_approval": true
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
- "min_approvals": 0,
- "block_self_approval": true,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
- "enabled": true,
- "tracker_type": "string",
- "base_url": "string",
- "project_key": "string",
- "auth_email": "string",
- "issue_type": "string",
- "api_token_set": true,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}Owner-only: the tracker config stores an API token and drives outbound ticket creation, so editors must not be able to point it at their own Jira.
| slug required | string (Slug) |
Enabled (boolean) or Enabled (null) (Enabled) | |
Tracker Type (string) or Tracker Type (null) (Tracker Type) | |
Base Url (string) or Base Url (null) (Base Url) | |
Project Key (string) or Project Key (null) (Project Key) | |
Auth Email (string) or Auth Email (null) (Auth Email) | |
Api Token (string) or Api Token (null) (Api Token) | |
Issue Type (string) or Issue Type (null) (Issue Type) |
{- "enabled": true,
- "tracker_type": "string",
- "base_url": "string",
- "project_key": "string",
- "auth_email": "string",
- "api_token": "string",
- "issue_type": "string"
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
- "enabled": true,
- "tracker_type": "string",
- "base_url": "string",
- "project_key": "string",
- "auth_email": "string",
- "issue_type": "string",
- "api_token_set": true,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}| slug required | string (Slug) |
Array of Status (strings) or Status (null) (Status) | |
MetricKind (string) or Kind (null) (Kind) | |
Search (string) or Search (null) (Search) | |
| offset | integer (Offset) >= 0 Default: 0 |
| limit | integer (Limit) [ 1 .. 1000 ] Default: 200 |
{- "items": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
- "name": "string",
- "display_name": "string",
- "description": "string",
- "color": "string",
- "order": 0,
- "unit": "string",
- "status": "draft",
- "owner_id": "8826ee2e-7933-4665-aef2-2393f84a0d05",
- "reviewed": true,
- "kind": "sql",
- "aggregation": "count",
- "composition": "single",
- "interval": "15m",
- "anomaly_detection_enabled": true,
- "last_collected_at": "2019-08-24T14:15:22Z",
- "last_collection_status": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "latest_value": 0,
- "latest_bucket": "2019-08-24T14:15:22Z",
- "latest_signal": {
- "scan_config_id": "73831784-3bab-4614-8856-92f95dec4914",
- "scope_type": "project_total",
- "scope_ref": "string",
- "state": "string",
- "event_id": "a7a26ff2-e851-45b6-9634-d595f45458b7",
- "event_type_id": "a4ec4c3c-a3de-4a8a-983f-1791e72cea83",
- "bucket": "2019-08-24T14:15:22Z",
- "actual_count": 0,
- "expected_count": 0,
- "stddev": 0,
- "z_score": 0,
- "direction": "spike",
- "relative_effect": 0,
- "scope_name": "string",
- "incident_child": false
}, - "spark": [ ]
}
], - "total": 0,
- "active_total": 0
}| slug required | string (Slug) |
| kind | string (Kind) Default: "fact" Value: "fact" |
| composition | string (MetricComposition) Default: "single" Enum: "single" "ratio" "per_distinct_user" How an
|
| interval required | string (ScanInterval) Enum: "15m" "1h" "6h" "1d" "1w" |
ScanInterval (string) or null | |
Fact Table Id (string) or Fact Table Id (null) (Fact Table Id) | |
MetricAggregation (string) or null | |
Measure Column (string) or Measure Column (null) (Measure Column) | |
Distinct Column (string) or Distinct Column (null) (Distinct Column) | |
Row Filter (string) or Row Filter (null) (Row Filter) | |
| row_filters | Array of strings (Row Filters) <= 100 items |
Filter Sql (string) or Filter Sql (null) (Filter Sql) | |
Array of objects (Conditions) <= 100 items | |
FactOperand (object) or null | |
FactOperand (object) or null | |
| name required | string (Name) [ 1 .. 255 ] characters |
| display_name required | string (Display Name) [ 1 .. 255 ] characters |
| description | string (Description) Default: "" |
| color | string (Color) ^#[0-9a-fA-F]{6}$ Default: "#6366f1" |
| order | integer (Order) Default: 0 |
Unit (string) or Unit (null) (Unit) | |
| status | string (MetricStatus) Default: "draft" Enum: "draft" "active" "archived" Simple catalog lifecycle for metrics (no dev-implementation states). |
Owner Id (string) or Owner Id (null) (Owner Id) | |
| reviewed | boolean (Reviewed) Default: false |
| breakdown_columns | Array of strings (Breakdown Columns) |
Breakdown Values Limit (integer) or Breakdown Values Limit (null) (Breakdown Values Limit) | |
App Version Column (string) or App Version Column (null) (App Version Column) | |
Platform Column (string) or Platform Column (null) (Platform Column) | |
| anomaly_detection_enabled | boolean (Anomaly Detection Enabled) Default: true |
{- "kind": "fact",
- "composition": "single",
- "interval": "15m",
- "replay_chunk_interval": "15m",
- "fact_table_id": "aa244fd0-16b6-42fe-82eb-98caad9349d4",
- "aggregation": "count",
- "measure_column": "string",
- "distinct_column": "string",
- "row_filter": "string",
- "row_filters": [
- "string"
], - "filter_sql": "string",
- "conditions": [
- {
- "column": "string",
- "operator": "eq",
- "value": "string"
}
], - "numerator": {
- "fact_table_id": "aa244fd0-16b6-42fe-82eb-98caad9349d4",
- "aggregation": "count",
- "measure_column": "string",
- "distinct_column": "string",
- "row_filter": "string",
- "row_filters": [
- "string"
], - "filter_sql": "string",
- "conditions": [
- {
- "column": "string",
- "operator": "eq",
- "value": "string"
}
]
}, - "denominator": {
- "fact_table_id": "aa244fd0-16b6-42fe-82eb-98caad9349d4",
- "aggregation": "count",
- "measure_column": "string",
- "distinct_column": "string",
- "row_filter": "string",
- "row_filters": [
- "string"
], - "filter_sql": "string",
- "conditions": [
- {
- "column": "string",
- "operator": "eq",
- "value": "string"
}
]
}, - "name": "string",
- "display_name": "string",
- "description": "",
- "color": "#6366f1",
- "order": 0,
- "unit": "string",
- "status": "draft",
- "owner_id": "8826ee2e-7933-4665-aef2-2393f84a0d05",
- "reviewed": false,
- "breakdown_columns": [
- "string"
], - "breakdown_values_limit": 1,
- "app_version_column": "string",
- "platform_column": "string",
- "anomaly_detection_enabled": true
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
- "name": "string",
- "display_name": "string",
- "description": "string",
- "color": "string",
- "order": 0,
- "unit": "string",
- "status": "draft",
- "owner_id": "8826ee2e-7933-4665-aef2-2393f84a0d05",
- "reviewed": true,
- "kind": "sql",
- "aggregation": "count",
- "composition": "single",
- "config": { },
- "fact_table_id": "aa244fd0-16b6-42fe-82eb-98caad9349d4",
- "breakdown_columns": [
- "string"
], - "breakdown_values_limit": 0,
- "app_version_column": "string",
- "platform_column": "string",
- "data_source_id": "0e1e9a56-7994-41e2-9003-96f8ebac19a2",
- "interval": "15m",
- "replay_chunk_interval": "15m",
- "numerator_event_id": "b7e516c9-befe-4e7c-b6d4-948ebc2b6aa3",
- "numerator_event_type_id": "2d62d44d-9e47-4eb8-b485-3f840a6cbc15",
- "denominator_event_id": "8010165e-e206-4e23-86d0-aaabd41a5b8e",
- "denominator_event_type_id": "f4aa7204-3b19-407f-87ef-aa32ff2312c7",
- "anomaly_detection_enabled": true,
- "last_collected_at": "2019-08-24T14:15:22Z",
- "last_collection_status": "string",
- "last_collection_error": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}| slug required | string (Slug) |
| metric_ids required | Array of strings <uuid> (Metric Ids) non-empty [ items <uuid > ] |
MetricStatus (string) or null | |
Owner Id (string) or Owner Id (null) (Owner Id) | |
Reviewed (boolean) or Reviewed (null) (Reviewed) | |
Anomaly Detection Enabled (boolean) or Anomaly Detection Enabled (null) (Anomaly Detection Enabled) |
{- "metric_ids": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
], - "status": "draft",
- "owner_id": "8826ee2e-7933-4665-aef2-2393f84a0d05",
- "reviewed": true,
- "anomaly_detection_enabled": true
}{- "detail": [
- {
- "loc": [
- "string"
], - "msg": "string",
- "type": "string",
- "input": null,
- "ctx": { }
}
]
}Stateless dry-run of a sql-kind metric SELECT (editor-gated).
Validates the SQL with the same safety gate the worker uses and executes it
against the data source over the last 50 buckets of the requested interval
(hard-capped at 200 rows); nothing is persisted. Expected user mistakes —
bad SQL, missing time/value columns, warehouse errors — return 200 with
error set so the editor can render them inline; unknown data source is
a 404.
| slug required | string (Slug) |
| data_source_id required | string <uuid> (Data Source Id) |
| sql required | string (Sql) non-empty |
| time_column required | string (Time Column) [ 1 .. 255 ] characters |
Value Column (string) or Value Column (null) (Value Column) | |
| interval required | string (ScanInterval) Enum: "15m" "1h" "6h" "1d" "1w" |
{- "data_source_id": "0e1e9a56-7994-41e2-9003-96f8ebac19a2",
- "sql": "string",
- "time_column": "string",
- "value_column": "string",
- "interval": "15m"
}{- "columns": [
- "string"
], - "points": [
- {
- "bucket": "2019-08-24T14:15:22Z",
- "value": 0
}
], - "point_count": 0,
- "truncated": false,
- "error": "string"
}Stateless dry-run of ONE fact operand's row filter (editor-gated).
The body is the operand a save would send. Its filters are compiled by the
worker's own resolver for the fact table's data-source dialect and the
resulting query is executed with a 1-row cap over a bounded recent window;
nothing is persisted. Expected user mistakes — an unknown named filter, SQL
the warehouse rejects, a measure column the filtered query does not project —
return 200 with error set so the filter editor can render them inline.
An unknown project or fact table is a 404.
| slug required | string (Slug) |
| fact_table_id required | string <uuid> (Fact Table Id) |
| aggregation required | string (MetricAggregation) Enum: "count" "sum" "avg" "min" "max" "count_distinct" Aggregation applied by a |
Measure Column (string) or Measure Column (null) (Measure Column) | |
Distinct Column (string) or Distinct Column (null) (Distinct Column) | |
Row Filter (string) or Row Filter (null) (Row Filter) | |
| row_filters | Array of strings (Row Filters) <= 100 items |
Filter Sql (string) or Filter Sql (null) (Filter Sql) | |
Array of objects (Conditions) <= 100 items |
{- "fact_table_id": "aa244fd0-16b6-42fe-82eb-98caad9349d4",
- "aggregation": "count",
- "measure_column": "string",
- "distinct_column": "string",
- "row_filter": "string",
- "row_filters": [
- "string"
], - "filter_sql": "string",
- "conditions": [
- {
- "column": "string",
- "operator": "eq",
- "value": "string"
}
]
}{- "columns": [
- "string"
], - "row_count": 0,
- "error": "string"
}| slug required | string (Slug) |
| metric_ids required | Array of strings <uuid> (Metric Ids) non-empty [ items <uuid > ] |
{- "metric_ids": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
]
}[- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
- "name": "string",
- "display_name": "string",
- "description": "string",
- "color": "string",
- "order": 0,
- "unit": "string",
- "status": "draft",
- "owner_id": "8826ee2e-7933-4665-aef2-2393f84a0d05",
- "reviewed": true,
- "kind": "sql",
- "aggregation": "count",
- "composition": "single",
- "config": { },
- "fact_table_id": "aa244fd0-16b6-42fe-82eb-98caad9349d4",
- "breakdown_columns": [
- "string"
], - "breakdown_values_limit": 0,
- "app_version_column": "string",
- "platform_column": "string",
- "data_source_id": "0e1e9a56-7994-41e2-9003-96f8ebac19a2",
- "interval": "15m",
- "replay_chunk_interval": "15m",
- "numerator_event_id": "b7e516c9-befe-4e7c-b6d4-948ebc2b6aa3",
- "numerator_event_type_id": "2d62d44d-9e47-4eb8-b485-3f840a6cbc15",
- "denominator_event_id": "8010165e-e206-4e23-86d0-aaabd41a5b8e",
- "denominator_event_type_id": "f4aa7204-3b19-407f-87ef-aa32ff2312c7",
- "anomaly_detection_enabled": true,
- "last_collected_at": "2019-08-24T14:15:22Z",
- "last_collection_status": "string",
- "last_collection_error": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
]| slug required | string (Slug) |
| metric_id required | string <uuid> (Metric Id) |
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
- "name": "string",
- "display_name": "string",
- "description": "string",
- "color": "string",
- "order": 0,
- "unit": "string",
- "status": "draft",
- "owner_id": "8826ee2e-7933-4665-aef2-2393f84a0d05",
- "reviewed": true,
- "kind": "sql",
- "aggregation": "count",
- "composition": "single",
- "config": { },
- "fact_table_id": "aa244fd0-16b6-42fe-82eb-98caad9349d4",
- "breakdown_columns": [
- "string"
], - "breakdown_values_limit": 0,
- "app_version_column": "string",
- "platform_column": "string",
- "data_source_id": "0e1e9a56-7994-41e2-9003-96f8ebac19a2",
- "interval": "15m",
- "replay_chunk_interval": "15m",
- "numerator_event_id": "b7e516c9-befe-4e7c-b6d4-948ebc2b6aa3",
- "numerator_event_type_id": "2d62d44d-9e47-4eb8-b485-3f840a6cbc15",
- "denominator_event_id": "8010165e-e206-4e23-86d0-aaabd41a5b8e",
- "denominator_event_type_id": "f4aa7204-3b19-407f-87ef-aa32ff2312c7",
- "anomaly_detection_enabled": true,
- "last_collected_at": "2019-08-24T14:15:22Z",
- "last_collection_status": "string",
- "last_collection_error": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "next_collection_at": "2019-08-24T14:15:22Z",
- "collection_due": false
}| slug required | string (Slug) |
| metric_id required | string <uuid> (Metric Id) |
Display Name (string) or Display Name (null) (Display Name) | |
Description (string) or Description (null) (Description) | |
Color (string) or Color (null) (Color) | |
Order (integer) or Order (null) (Order) | |
Unit (string) or Unit (null) (Unit) | |
MetricStatus (string) or null | |
Owner Id (string) or Owner Id (null) (Owner Id) | |
Reviewed (boolean) or Reviewed (null) (Reviewed) | |
Array of Breakdown Columns (strings) or Breakdown Columns (null) (Breakdown Columns) | |
Breakdown Values Limit (integer) or Breakdown Values Limit (null) (Breakdown Values Limit) | |
App Version Column (string) or App Version Column (null) (App Version Column) | |
Platform Column (string) or Platform Column (null) (Platform Column) | |
Anomaly Detection Enabled (boolean) or Anomaly Detection Enabled (null) (Anomaly Detection Enabled) | |
Definition (any) or Definition (null) (Definition) |
{- "display_name": "string",
- "description": "string",
- "color": "string",
- "order": 0,
- "unit": "string",
- "status": "draft",
- "owner_id": "8826ee2e-7933-4665-aef2-2393f84a0d05",
- "reviewed": true,
- "breakdown_columns": [
- "string"
], - "breakdown_values_limit": 1,
- "app_version_column": "string",
- "platform_column": "string",
- "anomaly_detection_enabled": true,
- "definition": {
- "kind": "fact",
- "composition": "single",
- "interval": "15m",
- "replay_chunk_interval": "15m",
- "fact_table_id": "aa244fd0-16b6-42fe-82eb-98caad9349d4",
- "aggregation": "count",
- "measure_column": "string",
- "distinct_column": "string",
- "row_filter": "string",
- "row_filters": [
- "string"
], - "filter_sql": "string",
- "conditions": [
- {
- "column": "string",
- "operator": "eq",
- "value": "string"
}
], - "numerator": {
- "fact_table_id": "aa244fd0-16b6-42fe-82eb-98caad9349d4",
- "aggregation": "count",
- "measure_column": "string",
- "distinct_column": "string",
- "row_filter": "string",
- "row_filters": [
- "string"
], - "filter_sql": "string",
- "conditions": [
- {
- "column": "string",
- "operator": "eq",
- "value": "string"
}
]
}, - "denominator": {
- "fact_table_id": "aa244fd0-16b6-42fe-82eb-98caad9349d4",
- "aggregation": "count",
- "measure_column": "string",
- "distinct_column": "string",
- "row_filter": "string",
- "row_filters": [
- "string"
], - "filter_sql": "string",
- "conditions": [
- {
- "column": "string",
- "operator": "eq",
- "value": "string"
}
]
}
}
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
- "name": "string",
- "display_name": "string",
- "description": "string",
- "color": "string",
- "order": 0,
- "unit": "string",
- "status": "draft",
- "owner_id": "8826ee2e-7933-4665-aef2-2393f84a0d05",
- "reviewed": true,
- "kind": "sql",
- "aggregation": "count",
- "composition": "single",
- "config": { },
- "fact_table_id": "aa244fd0-16b6-42fe-82eb-98caad9349d4",
- "breakdown_columns": [
- "string"
], - "breakdown_values_limit": 0,
- "app_version_column": "string",
- "platform_column": "string",
- "data_source_id": "0e1e9a56-7994-41e2-9003-96f8ebac19a2",
- "interval": "15m",
- "replay_chunk_interval": "15m",
- "numerator_event_id": "b7e516c9-befe-4e7c-b6d4-948ebc2b6aa3",
- "numerator_event_type_id": "2d62d44d-9e47-4eb8-b485-3f840a6cbc15",
- "denominator_event_id": "8010165e-e206-4e23-86d0-aaabd41a5b8e",
- "denominator_event_type_id": "f4aa7204-3b19-407f-87ef-aa32ff2312c7",
- "anomaly_detection_enabled": true,
- "last_collected_at": "2019-08-24T14:15:22Z",
- "last_collection_status": "string",
- "last_collection_error": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}Return a saved fact metric's primary dependency-batch SQL without running it.
| slug required | string (Slug) |
| metric_id required | string <uuid> (Metric Id) |
{- "queries": [
- {
- "role": "primary",
- "label": "string",
- "fact_table_id": "aa244fd0-16b6-42fe-82eb-98caad9349d4",
- "fact_table_name": "string",
- "interval": "string",
- "window_from": "2019-08-24T14:15:22Z",
- "window_to": "2019-08-24T14:15:22Z",
- "metric_ids": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
], - "sql": "string"
}
], - "breakdown_queries_omitted": true
}| slug required | string (Slug) |
| metric_id required | string <uuid> (Metric Id) |
From (string) or From (null) (From) | |
To (string) or To (null) (To) |
{- "metric_id": "e3216117-28d7-4548-9b5f-7e08a760b2c7",
- "scope": "metric",
- "scan_config_id": "73831784-3bab-4614-8856-92f95dec4914",
- "interval": "15m",
- "latest_signal": {
- "scan_config_id": "73831784-3bab-4614-8856-92f95dec4914",
- "scope_type": "project_total",
- "scope_ref": "string",
- "state": "string",
- "event_id": "a7a26ff2-e851-45b6-9634-d595f45458b7",
- "event_type_id": "a4ec4c3c-a3de-4a8a-983f-1791e72cea83",
- "bucket": "2019-08-24T14:15:22Z",
- "actual_count": 0,
- "expected_count": 0,
- "stddev": 0,
- "z_score": 0,
- "direction": "spike",
- "relative_effect": 0,
- "scope_name": "string",
- "incident_child": false
}, - "data": [
- {
- "bucket": "2019-08-24T14:15:22Z",
- "value": 0,
- "expected_count": 0,
- "stddev": 0,
- "is_anomaly": false,
- "anomaly_direction": "spike",
- "z_score": 0
}
], - "forecast": [ ]
}| slug required | string (Slug) |
| metric_id required | string <uuid> (Metric Id) |
Column (string) or Column (null) (Column) | |
From (string) or From (null) (From) | |
To (string) or To (null) (To) |
{- "metric_id": "e3216117-28d7-4548-9b5f-7e08a760b2c7",
- "scan_config_id": "73831784-3bab-4614-8856-92f95dec4914",
- "interval": "15m",
- "columns": [
- "string"
], - "selected_column": "string",
- "series": [
- {
- "breakdown_value": "string",
- "is_other": false,
- "total_value": 0,
- "data": [
- {
- "bucket": "2019-08-24T14:15:22Z",
- "value": 0,
- "expected_count": 0,
- "stddev": 0,
- "is_anomaly": false,
- "anomaly_direction": "spike",
- "z_score": 0
}
]
}
]
}| slug required | string (Slug) |
| metric_id required | string <uuid> (Metric Id) |
From (string) or From (null) (From) | |
To (string) or To (null) (To) |
{- "metric_id": "e3216117-28d7-4548-9b5f-7e08a760b2c7",
- "scan_config_id": "73831784-3bab-4614-8856-92f95dec4914",
- "app_version_column": "string",
- "interval": "15m",
- "latest_version": "string",
- "versions": [
- {
- "version": "string",
- "is_other": false,
- "is_latest": false,
- "is_active": false
}
], - "series": [
- {
- "version": "string",
- "is_other": false,
- "is_latest": false,
- "is_active": false,
- "total_value": 0,
- "data": [
- {
- "bucket": "2019-08-24T14:15:22Z",
- "value": 0,
- "expected_count": 0,
- "stddev": 0,
- "is_anomaly": false,
- "anomaly_direction": "spike",
- "z_score": 0
}
]
}
]
}Trigger an immediate backfill collection from one metric (editor-gated).
SQL/event-composition metrics dispatch alone. A fact metric refreshes every fact table reachable through its operands and recalculates all active fact metrics using those tables in shared batches (the clicked metric is included even when draft). Returns 202 once queued; warehouse queries run in workers. Unknown metric -> 404.
| slug required | string (Slug) |
| metric_id required | string <uuid> (Metric Id) |
{- "metric_id": "e3216117-28d7-4548-9b5f-7e08a760b2c7",
- "status": "queued",
- "window_from": "2019-08-24T14:15:22Z",
- "window_to": "2019-08-24T14:15:22Z",
- "task_id": "string",
- "metric_count": 1
}| slug required | string (Slug) |
| metric_id required | string <uuid> (Metric Id) |
| direction required | string (Direction) Enum: "up" "down" |
Array of Visible Metric Ids (strings) or Visible Metric Ids (null) (Visible Metric Ids) |
{- "direction": "up",
- "visible_metric_ids": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
]
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
- "name": "string",
- "display_name": "string",
- "description": "string",
- "color": "string",
- "order": 0,
- "unit": "string",
- "status": "draft",
- "owner_id": "8826ee2e-7933-4665-aef2-2393f84a0d05",
- "reviewed": true,
- "kind": "sql",
- "aggregation": "count",
- "composition": "single",
- "config": { },
- "fact_table_id": "aa244fd0-16b6-42fe-82eb-98caad9349d4",
- "breakdown_columns": [
- "string"
], - "breakdown_values_limit": 0,
- "app_version_column": "string",
- "platform_column": "string",
- "data_source_id": "0e1e9a56-7994-41e2-9003-96f8ebac19a2",
- "interval": "15m",
- "replay_chunk_interval": "15m",
- "numerator_event_id": "b7e516c9-befe-4e7c-b6d4-948ebc2b6aa3",
- "numerator_event_type_id": "2d62d44d-9e47-4eb8-b485-3f840a6cbc15",
- "denominator_event_id": "8010165e-e206-4e23-86d0-aaabd41a5b8e",
- "denominator_event_type_id": "f4aa7204-3b19-407f-87ef-aa32ff2312c7",
- "anomaly_detection_enabled": true,
- "last_collected_at": "2019-08-24T14:15:22Z",
- "last_collection_status": "string",
- "last_collection_error": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}| slug required | string (Slug) |
Search (string) or Search (null) (Search) | |
| offset | integer (Offset) >= 0 Default: 0 |
| limit | integer (Limit) [ 1 .. 1000 ] Default: 200 |
{- "items": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
- "name": "string",
- "display_name": "string",
- "description": "string",
- "color": "string",
- "order": 0,
- "data_source_id": "0e1e9a56-7994-41e2-9003-96f8ebac19a2",
- "timestamp_column": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
], - "total": 0
}| slug required | string (Slug) |
| name required | string (Name) [ 1 .. 255 ] characters |
| display_name required | string (Display Name) [ 1 .. 255 ] characters |
| description | string (Description) Default: "" |
| color | string (Color) ^#[0-9a-fA-F]{6}$ Default: "#6366f1" |
Data Source Id (string) or Data Source Id (null) (Data Source Id) | |
| sql required | string (Sql) non-empty |
| timestamp_column required | string (Timestamp Column) [ 1 .. 255 ] characters |
Array of objects (Columns) | |
| identifier_columns | Array of strings (Identifier Columns) |
Array of objects (Row Filters) <= 100 items |
{- "name": "string",
- "display_name": "string",
- "description": "",
- "color": "#6366f1",
- "data_source_id": "0e1e9a56-7994-41e2-9003-96f8ebac19a2",
- "sql": "string",
- "timestamp_column": "string",
- "columns": [
- {
- "name": "string",
- "type": "string",
- "native_type": "string"
}
], - "identifier_columns": [
- "string"
], - "row_filters": [
- {
- "name": "string",
- "sql": "string"
}
]
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
- "name": "string",
- "display_name": "string",
- "description": "string",
- "color": "string",
- "order": 0,
- "data_source_id": "0e1e9a56-7994-41e2-9003-96f8ebac19a2",
- "sql": "string",
- "timestamp_column": "string",
- "columns": [
- {
- "name": "string",
- "type": "string",
- "native_type": "string"
}
], - "identifier_columns": [
- "string"
], - "row_filters": [
- {
- "name": "string",
- "sql": "string"
}
], - "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}| slug required | string (Slug) |
Data Source Id (string) or Data Source Id (null) (Data Source Id) | |
| sql required | string (Sql) non-empty |
Timestamp Column (string) or Timestamp Column (null) (Timestamp Column) |
{- "data_source_id": "0e1e9a56-7994-41e2-9003-96f8ebac19a2",
- "sql": "string",
- "timestamp_column": "string"
}{- "columns": [
- {
- "name": "string",
- "type": "string",
- "native_type": "string"
}
], - "identifier_candidates": [
- "string"
], - "sample_rows": [
- { }
]
}| slug required | string (Slug) |
| fact_table_id required | string <uuid> (Fact Table Id) |
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
- "name": "string",
- "display_name": "string",
- "description": "string",
- "color": "string",
- "order": 0,
- "data_source_id": "0e1e9a56-7994-41e2-9003-96f8ebac19a2",
- "sql": "string",
- "timestamp_column": "string",
- "columns": [
- {
- "name": "string",
- "type": "string",
- "native_type": "string"
}
], - "identifier_columns": [
- "string"
], - "row_filters": [
- {
- "name": "string",
- "sql": "string"
}
], - "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}| slug required | string (Slug) |
| fact_table_id required | string <uuid> (Fact Table Id) |
Display Name (string) or Display Name (null) (Display Name) | |
Description (string) or Description (null) (Description) | |
Color (string) or Color (null) (Color) | |
Order (integer) or Order (null) (Order) | |
Data Source Id (string) or Data Source Id (null) (Data Source Id) | |
Sql (string) or Sql (null) (Sql) | |
Timestamp Column (string) or Timestamp Column (null) (Timestamp Column) | |
Array of Columns (objects) or Columns (null) (Columns) | |
Array of Identifier Columns (strings) or Identifier Columns (null) (Identifier Columns) | |
Array of Row Filters (objects) or Row Filters (null) (Row Filters) |
{- "display_name": "string",
- "description": "string",
- "color": "string",
- "order": 0,
- "data_source_id": "0e1e9a56-7994-41e2-9003-96f8ebac19a2",
- "sql": "string",
- "timestamp_column": "string",
- "columns": [
- {
- "name": "string",
- "type": "string",
- "native_type": "string"
}
], - "identifier_columns": [
- "string"
], - "row_filters": [
- {
- "name": "string",
- "sql": "string"
}
]
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
- "name": "string",
- "display_name": "string",
- "description": "string",
- "color": "string",
- "order": 0,
- "data_source_id": "0e1e9a56-7994-41e2-9003-96f8ebac19a2",
- "sql": "string",
- "timestamp_column": "string",
- "columns": [
- {
- "name": "string",
- "type": "string",
- "native_type": "string"
}
], - "identifier_columns": [
- "string"
], - "row_filters": [
- {
- "name": "string",
- "sql": "string"
}
], - "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}Read-only: tickets are opened by the merge worker, never by a client.
Auth matches the other branch reads — any authenticated project reader, via
the router-level get_current_user dependency; no editor gate, because
nothing here mutates.
| slug required | string (Slug) |
| branch_id required | string <uuid> (Branch Id) |
[- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
- "branch_id": "7a4e8e99-89f2-4a0f-b66c-fc595dda2dbc",
- "tracker_type": "string",
- "external_id": "string",
- "external_key": "string",
- "external_url": "string",
- "status": "string",
- "summary": "string",
- "event_ids": [
- "string"
], - "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "closed_at": "2019-08-24T14:15:22Z"
}
]