External record API
Publish versioned service, deployment, and ticket summaries for approved context on mapped Solarius resources.
External records belong to one customer integration. A mapped record adds external context without changing a native finding, policy, or infrastructure resource.
Use the shared request contract for authentication, pagination, preconditions, idempotency, and common errors. Exact response members are defined in API data types and the downloadable OpenAPI contract.
List external records
/api/v1/connector/organizations/{organization_id}/integrations/{integration_id}/recordsLists records owned by this custom integration.
limitintegeroptionalNumber of records; bounds are inclusive.
50rule1–200cursorstringoptionalOpaque continuation; preserve the original filters.
Returns a data array of ExternalRecord records, pagination.next_cursor, and request_id.
Read an external record
/api/v1/connector/organizations/{organization_id}/integrations/{integration_id}/records/{external_id}Returns the external record, assigned resource key, and current ETag.
Returns data as ExternalRecord, plus request_id.
Create or replace an external record
/api/v1/connector/organizations/{organization_id}/integrations/{integration_id}/records/{external_id}Creates or replaces a custom service, deployment, or ticket summary.
Requires Idempotency-Key.
Use If-None-Match: * to create and If-Match with the record ETag to replace. Creation returns 201; replacement returns 200. Missing preconditions return 428; stale or conflicting preconditions return 412.
External IDs match [A-Za-z0-9_-]{1,128}. Omitted labels become {}; other fields are required. Kind cannot change.
Visibility in native product context additionally requires an active external_context grant and explicit mapping. Connector assigns revisions; callers cannot overwrite a native product record.
kindstringrequiredImmutable record category after creation.
namestringrequiredName shown beside mapped native resources.
urlstringrequiredHTTPS link to the source record; credentials and fragments are rejected.
statestringrequiredExternal lifecycle summary, not a Guard enforcement result.
labelsobjectoptionalSelected label keys and string values; at most 20 entries.
{}Returns data as ExternalRecord, plus request_id.
Returns the created ExternalRecord in data, its ETag, and request_id.
Delete an external record
/api/v1/connector/organizations/{organization_id}/integrations/{integration_id}/records/{external_id}Removes present custom context and marks its mappings stale.
Requires If-Match from a current read.
Emits external.record.removed for authorized receivers. Journal history and previously exported copies retain their separate retention. A mapping is not silently rebound if an external ID is recreated; review a replacement resource key.
Returns no body.