Bubble · API Governance Rules
Bubble API Rules
Spectral linting rules defining API design standards and conventions for Bubble.
12 Rules
error 4
warn 6
info 2
Rule Categories
bubble
Rules
error
bubble-info-title-required
Bubble OpenAPI specs must declare info.title.
$.info
error
bubble-info-version-required
Bubble OpenAPI specs must declare info.version.
$.info
warn
bubble-info-license-required
Bubble OpenAPI specs should declare a license block referencing Bubble Terms or Plugin Marketplace Terms.
$.info
error
bubble-server-required
Bubble OpenAPI specs must declare at least one server.
$.servers
error
bubble-bearer-auth-required
Bubble Data API and Workflow API must define bearer authentication via components.securitySchemes.
$.components.securitySchemes.BearerAuth
warn
bubble-operation-summary-title-case
Operation summaries should use Title Case (first letter of each major word capitalized).
$.paths..[?(@.summary)]
warn
bubble-operation-id-camel-case
operationId should be camelCase (createThing, searchThings, triggerWorkflow).
$.paths..[?(@.operationId)]
warn
bubble-tag-required
Each operation should be tagged with one of: Data, Workflow, Action, Element, Thing, Context.
$.paths..[?(@.operationId)]
warn
bubble-rate-limited-response
Operations on the Data API and Workflow API should declare a 429 response (rate limited).
$.paths[?(@property.match(/^\/obj/) || @property.match(/^\/wf/))]..responses
warn
bubble-unauthorized-response
Authenticated operations should declare a 401 response.
$.paths[?(@property.match(/^\/obj/))]..responses
info
bubble-typename-lowercase
The {typename} path parameter must be documented as lowercase with no spaces.
$..parameters[?(@.name=='typename')]
info
bubble-bulk-payload-cap
The /bulk endpoint description should mention the 1,000-record cap per request.
$.paths['/obj/{typename}/bulk'].post