Inrupt · OpenAPI Overlay 1.0.0

API Evangelist enhancements for Inrupt Change Notifications

8 actions 8 updates servers
Generated by API Evangelist Written by API Evangelist tooling for Inrupt's API. It is a proposal applied on top of the contract, not a document Inrupt publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

descriptioncontactx-documentationserversx-conformancex-paginationx-event-typesx-idempotency

Targets 7

$.info
$
$.paths['/subscriptions'].get
$.paths['/subscriptions'].post
$.paths['/subscriptions/{identifier}'].delete
$.components.schemas.Subscription.properties.storage
$.components.securitySchemes.SolidAuthentication

OpenAPI Overlay

Raw ↑
overlay: 1.0.0
info:
  title: API Evangelist enhancements for Inrupt Change Notifications
  version: 1.0.0
x-generated: '2026-08-23'
x-method: generated
x-source: openapi/inrupt-notification-openapi.yaml
x-extends: openapi/inrupt-notification-openapi.yaml
x-note: >-
  Additive only. Every action below records something Inrupt publishes elsewhere (its service
  reference, its hosted deployment, its RFC claims) that the spec itself omits. The original document
  at https://notification.inrupt.com/openapi.yaml is never mutated.
actions:
- target: $.info
  description: Add contact, licence-free description and documentation context absent from info.
  update:
    description: >-
      The ESS Notification Delivery Service lets an authorized agent subscribe to change events on Pod
      resources and on Access Requests and Grants, and receive them as RFC 9421-signed webhook POSTs at
      a remote HTTPS endpoint. Two scopes exist - /subscriptions for authenticated users (delivery is
      further filtered by the subscriber's own authorization on the resource) and /system/subscriptions
      for allow-listed system managers whose legal basis for processing is contract.
    contact:
      name: Inrupt Service Desk
      url: https://inrupt.atlassian.net/servicedesk
    x-documentation: https://docs.inrupt.com/ess/services/service-notification/notification-delivery-service
- target: $
  description: >-
    Add a servers block. The published document declares no servers[], so a tool cannot resolve a
    request URL from the spec alone. ESS is customer-deployed, so the host is templated, with Inrupt's
    own hosted PodSpaces deployment as the default.
  update:
    servers:
    - url: https://notification.{essDomain}
      description: ESS Notification Delivery Service for a given deployment.
      variables:
        essDomain:
          default: inrupt.com
          description: >-
            The ESS deployment domain. inrupt.com is Inrupt's hosted PodSpaces developer preview.
- target: $
  description: Record the standards this service implements, verified against its own documentation.
  update:
    x-conformance:
      error_format: rfc9457
      webhook_signatures: rfc9421
      auth: solid-oidc, oauth2-token-exchange-rfc8693, dpop-rfc9449
      pagination: page/pageSize with RFC 8288 Link rel=next / rel=prev
- target: $.paths['/subscriptions'].get
  description: Document the pagination contract, which is described in the service reference but not in the spec.
  update:
    x-pagination:
      style: page-number
      params: [page, pageSize]
      page_size_max: 100
      page_size_default: 10
      link_headers: ['rel="next"', 'rel="prev"']
- target: $.paths['/subscriptions'].post
  description: Record the event-type enumeration accepted in the request body's type[] array.
  update:
    x-event-types:
    - AccessRequestPending
    - AccessRequestDenied
    - AccessGrantIssued
    - AccessGrantRevoked
    - AccessGrantExpired
    - ResourceCreated
    - ResourceUpdated
    - ResourceDeleted
    - ContainerCreated
    - ContainerUpdated
    - ContainerDeleted
    x-idempotency: >-
      None. Repeating this request creates an additional subscription; there is no client-supplied
      request key and no server-side deduplication.
    x-reversibility:
      operation: removeSubscription
      window: any time while the subscription exists
- target: $.paths['/subscriptions/{identifier}'].delete
  description: Mark the reversal relationship explicitly for agent tooling.
  update:
    x-reverses: createSubscription
- target: $.components.schemas.Subscription.properties.storage
  description: Record the ESS 3.0 canonical-URI requirement, which is a correctness trap for clients.
  update:
    x-required-uri-form: >-
      Must be the canonical resource URI ({storage-id}/sc/{resource-id}), not the path URI
      ({storage-id}/sp/{resource-path}), so the subscription survives a deployment domain change.
- target: $.components.securitySchemes.SolidAuthentication
  description: Describe how the bearer token is actually obtained.
  update:
    description: >-
      A Solid-OIDC access token, or an ESS Access Token obtained by RFC 8693 token exchange against
      https://platform.{essDomain}/access/token. Default ESS Access Token TTL is 5 minutes; treat 401
      as routine and re-exchange.