DBOS · API Governance Rules

DBOS API Rules

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

5 Rules error 2 warn 3
View Rules File View on GitHub

Rule Categories

dbos

Rules

warn
dbos-workflow-decorator-named
Workflow decorators should always carry an explicit name.
$.components.schemas.Workflow.properties.name
warn
dbos-step-retry-bounds
Step retries must have max_attempts and backoff_rate.
$.components.schemas.Step
error
dbos-transaction-isolation-enum
Transaction isolation level must be SERIALIZABLE, REPEATABLE READ, or READ COMMITTED.
$.components.schemas.Transaction.properties.isolation_level
error
dbos-scheduled-cron
Scheduled workflows must define a cron expression.
$.components.schemas.Scheduled.properties.cron
warn
dbos-info-contact
API info should include a contact for the DBOS project.
$.info

Spectral Ruleset

dbos-rules.yml Raw ↑
extends:
  - spectral:oas
rules:
  dbos-workflow-decorator-named:
    description: Workflow decorators should always carry an explicit name.
    given: $.components.schemas.Workflow.properties.name
    severity: warn
    then:
      function: truthy
  dbos-step-retry-bounds:
    description: Step retries must have max_attempts and backoff_rate.
    given: $.components.schemas.Step
    severity: warn
    then:
      field: properties
      function: truthy
  dbos-transaction-isolation-enum:
    description: Transaction isolation level must be SERIALIZABLE, REPEATABLE READ, or READ COMMITTED.
    given: $.components.schemas.Transaction.properties.isolation_level
    severity: error
    then:
      field: enum
      function: truthy
  dbos-scheduled-cron:
    description: Scheduled workflows must define a cron expression.
    given: $.components.schemas.Scheduled.properties.cron
    severity: error
    then:
      function: truthy
  dbos-info-contact:
    description: API info should include a contact for the DBOS project.
    given: $.info
    severity: warn
    then:
      field: contact
      function: truthy