Britive · AsyncAPI Specification

Britive Events Webhooks

Version

View Spec View on GitHub CompanyPrivileged Access ManagementIdentity and Access ManagementCloud SecurityZero Standing PrivilegesJust-In-Time AccessNon-Human IdentitySecrets ManagementAgentic AICybersecurityAsyncAPIEvents

AsyncAPI Specification

Raw ↑
generated: '2026-08-08'
method: derived
source: >-
  openapi/britive-services-api-openapi.yml (Audit Log Webhooks + Shared Signals tags),
  https://docs.britive.com/docs/shared-signals-framework.md,
  https://docs.britive.com/docs/managing-shared-signals.md,
  https://docs.britive.com/docs/notification-medium.md
asyncapi_published: false
asyncapi_note: >-
  Britive publishes no AsyncAPI document. It does have a real, two-directional event surface —
  outbound audit-log webhooks and a full Shared Signals Framework implementation — so this is a
  genuine gap rather than an absent surface. The event catalogue below is derived from the
  published REST operations and the SSF documentation; it is not fabricated and it is not an
  AsyncAPI substitute.

surfaces:

- name: Audit log webhooks
  direction: outbound
  kind: webhook
  transport: HTTPS POST to a configured notification medium
  description: >-
    A tenant can register webhooks that deliver audit-log events matching a filter expression.
    The webhook is bound to a notification medium rather than to a raw URL, so the delivery
    channel (Teams incoming webhook, Slack, email) is configured separately.
  configuration:
    operations:
    - {operationId: getAuditLogWebhooks, method: GET, path: /api/logs/webhooks}
    - {operationId: saveAuditLogWebhook, method: POST, path: /api/logs/webhooks}
    - {operationId: getAuditLogWebhookByNotificationMediumId, method: GET, path: '/api/logs/webhooks/{notificationMediumId}'}
    - {operationId: deleteAuditLogWebhookByNotificationMediumId, method: DELETE, path: '/api/logs/webhooks/{notificationMediumId}'}
    schema: AuditLogWebhook {notificationMediumId, filter, description}
  event_vocabulary:
    discoverable: true
    how: >-
      The filterable field vocabulary is returned by GET /api/logs/fields (getFields) and the
      operator vocabulary by GET /api/logs/operators (getOperators). The event types themselves
      are therefore discoverable at runtime rather than enumerated in a static catalog.
    example_event_types_seen_in_docs: [ADMIN_ACCESS_CHECKIN]
  payload_schema:
    published: false
    note: >-
      No schema is published for what Britive actually POSTs to a webhook. A consumer cannot
      code against the delivery payload without observing it live.
  delivery_semantics:
    published: false
    note: No retry policy, delivery guarantee, ordering guarantee, signature/HMAC verification scheme or replay-protection mechanism is documented.

- name: Shared Signals Framework — receivers (Britive as transmitter)
  direction: outbound
  kind: SSF / SET
  standards: [SSF, CAEP, RISC, 'SET (RFC 8417)']
  description: >-
    Britive transmits security events to registered external receivers (a SIEM, an IdP). An admin
    registers a receiver URL with optional custom headers, then maps Britive event types to
    standard CAEP/RISC event URIs.
  configuration:
    operations:
    - {operationId: listSsfReceivers, method: GET, path: /api/ssf/admin/receivers}
    - {operationId: createSsfReceiver, method: POST, path: /api/ssf/admin/receivers}
    - {operationId: getSsfReceiver, method: GET, path: '/api/ssf/admin/receivers/{receiverId}'}
    - {operationId: updateSsfReceiver, method: PATCH, path: '/api/ssf/admin/receivers/{receiverId}'}
    - {operationId: deleteSsfReceiver, method: DELETE, path: '/api/ssf/admin/receivers/{receiverId}'}
    - {operationId: getReceiverMappings, method: GET, path: '/api/ssf/admin/receivers/{receiverId}/mappings'}
    - {operationId: putReceiverMappings, method: PUT, path: '/api/ssf/admin/receivers/{receiverId}/mappings'}
    schemas: [Receiver, ReceiverMappings, 'ReceiverEventMapping {britiveEventType, eventUri}']
  event_catalog:
    discoverable: true
    operation: {operationId: getSsfCatalog, method: GET, path: /api/ssf/admin/catalog}
    schemas: ['SsfEventDefinition {type, uri, name, description}', 'BritiveEventTypeDefinition {type, displayName, description}']
    note: >-
      The supported event and action vocabulary is served by the API itself rather than published
      as a static document — good runtime discoverability, invisible to anyone reading the docs.
  documented_examples:
  - 'Britive "Disable User" mapped to the RISC account-disabled signal, delivered to a SIEM.'

- name: Shared Signals Framework — issuers (Britive as receiver)
  direction: inbound
  kind: SSF / SET
  standards: [SSF, CAEP, RISC, 'SET (RFC 8417)']
  description: >-
    Britive consumes security events from a registered external transmitter (Okta, Entra ID) and
    maps each external event URI to a Britive action taken on the affected identity.
  configuration:
    operations:
    - {operationId: listSsfIssuers, method: GET, path: /api/ssf/admin/issuers}
    - {operationId: createSsfIssuer, method: POST, path: /api/ssf/admin/issuers}
    - {operationId: getSsfIssuer, method: GET, path: '/api/ssf/admin/issuers/{issuerId}'}
    - {operationId: updateSsfIssuer, method: PATCH, path: '/api/ssf/admin/issuers/{issuerId}'}
    - {operationId: deleteSsfIssuer, method: DELETE, path: '/api/ssf/admin/issuers/{issuerId}'}
    - {operationId: getIssuerMappings, method: GET, path: '/api/ssf/admin/issuers/{issuerId}/mappings'}
    - {operationId: putIssuerMappings, method: PUT, path: '/api/ssf/admin/issuers/{issuerId}/mappings'}
    schemas: [Issuer, IssuerMappings, 'EventActionMapping {eventUri, action}']
  actions:
  - {name: Force Checkin, severity: least, effect: 'Revokes all of the identity''s active privileged access sessions; the identity can re-authenticate and check out again.'}
  - {name: Force Logout, severity: moderate, effect: 'Force Checkin plus invalidation of all active authentication sessions; full re-authentication required.'}
  - {name: Disable User, severity: most, effect: 'Force Logout plus disabling the account until an administrator re-enables it.'}
  note: Actions are cumulative — each more severe action includes everything the less severe one does.
  timing_caveat: >-
    Britive's own documentation warns that because of caching in the API layer an identity may
    retain access briefly after a Force Logout or Disable User action.

- name: Shared Signals results
  direction: query
  description: >-
    Every processed event, inbound and outbound, is logged with event type, subject, action taken,
    outcome, timestamp and direction.
  operations:
  - {operationId: querySsfResults, method: GET, path: /api/ssf/results}
  retention: 90 days

- name: Notification mediums
  direction: outbound
  kind: notification
  description: >-
    The delivery channels used for approval requests, secret-rotation notices and audit-log
    webhooks — email, email with a one-time magic link, Slack (app or bot token), Microsoft Teams
    (app or channel incoming webhook).
  configuration:
    operations:
    - {operationId: getNotificationMediums, method: GET, path: /api/v1/notification-service/notificationmediums}
    - {operationId: createNotificationMedium, method: POST, path: /api/v1/notification-service/notificationmediums}
    - {operationId: getNotificationMedium, method: GET, path: '/api/v1/notification-service/notificationmediums/{id}'}
    - {operationId: updateNotificationMedium, method: PATCH, path: '/api/v1/notification-service/notificationmediums/{id}'}
    - {operationId: deleteNotificationMedium, method: DELETE, path: '/api/v1/notification-service/notificationmediums/{id}'}
    - {operationId: getChannelsForNotificationMediumId, method: GET, path: '/api/v1/notification-service/notificationmediums/{id}/channels'}

gaps:
- No AsyncAPI document for any of the three event surfaces.
- No published payload schema for the audit-log webhook delivery.
- No webhook signature or HMAC verification scheme documented — a receiver cannot verify that a delivery came from Britive.
- No retry, ordering or delivery-guarantee statement for webhooks or SSF transmission.
- No streaming surface (no SSE, WebSocket or message-queue integration) is published.

Work with this as data

Every AsyncAPI spec here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for asyncapi

4 MCP tools reach this
  • find_asyncapisBrowse and filter every AsyncAPI spec in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This AsyncAPI spec
curl "https://apis.io/api/v1/asyncapis/britive-events-webhooks"
All asyncapi
curl "https://apis.io/api/v1/asyncapis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.