Outbrain · API Governance Rules

Outbrain API Rules

Spectral linting rules defining API design standards and conventions for Outbrain.

4 Rules error 2 warn 2
View Rules File View on GitHub

Rule Categories

outbrain

Rules

warn
outbrain-title-case-summaries
All operation summaries must be Title Case.
$.paths[*][get,post,put,delete,patch].summary
error
outbrain-operation-ids-camel-case
operationId must be camelCase.
$.paths[*][*].operationId
error
outbrain-ob-token-header
Authenticated paths must declare the OB-TOKEN-V1 security scheme.
$.components.securitySchemes.OBTokenAuth
warn
outbrain-base-url-versioning
Production server URL should embed a version (amplify/v0.1).
$.servers[0].url

Spectral Ruleset

Raw ↑
extends: spectral:oas
formats:
  - oas3
rules:
  outbrain-title-case-summaries:
    description: All operation summaries must be Title Case.
    given: $.paths[*][get,post,put,delete,patch].summary
    severity: warn
    then:
      function: pattern
      functionOptions:
        match: '^([A-Z][a-z0-9]*)( [A-Z][a-z0-9]*)*$'
  outbrain-operation-ids-camel-case:
    description: operationId must be camelCase.
    given: $.paths[*][*].operationId
    severity: error
    then:
      function: pattern
      functionOptions:
        match: '^[a-z][a-zA-Z0-9]*$'
  outbrain-ob-token-header:
    description: Authenticated paths must declare the OB-TOKEN-V1 security scheme.
    given: $.components.securitySchemes.OBTokenAuth
    severity: error
    then:
      field: name
      function: pattern
      functionOptions:
        match: '^OB-TOKEN-V1$'
  outbrain-base-url-versioning:
    description: Production server URL should embed a version (amplify/v0.1).
    given: $.servers[0].url
    severity: warn
    then:
      function: pattern
      functionOptions:
        match: 'v[0-9]+\\.[0-9]+|v[0-9]+'