celestia · API Governance Rules

celestia API Rules

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

4 Rules warn 4
View Rules File View on GitHub

Rule Categories

celestia

Rules

warn
celestia-info-license-apache
Celestia OpenAPI specs must declare Apache-2.0 licensing.
$.info.license
warn
celestia-bearer-auth-required
Celestia Node JSON-RPC endpoints require a bearer auth token.
$.components.securitySchemes.BearerAuth
warn
celestia-method-namespace-prefix
Celestia JSON-RPC method enums must use a module-prefixed name like 'blob.Submit'.
$..method.enum[*]
warn
celestia-tag-title-case
Top-level tags must use Title Case.
$.tags[*].name

Spectral Ruleset

Raw ↑
extends:
  - [spectral:oas, all]
rules:
  celestia-info-license-apache:
    description: Celestia OpenAPI specs must declare Apache-2.0 licensing.
    severity: warn
    given: $.info.license
    then:
      - field: name
        function: pattern
        functionOptions:
          match: '^Apache-2\.0$'
  celestia-bearer-auth-required:
    description: Celestia Node JSON-RPC endpoints require a bearer auth token.
    severity: warn
    given: $.components.securitySchemes.BearerAuth
    then:
      - field: scheme
        function: pattern
        functionOptions:
          match: '^bearer$'
  celestia-method-namespace-prefix:
    description: Celestia JSON-RPC method enums must use a module-prefixed name like 'blob.Submit'.
    severity: warn
    given: $..method.enum[*]
    then:
      function: pattern
      functionOptions:
        match: '^(blob|header|share|state|das|fraud|node|p2p|da|blobstream)\.[A-Z][A-Za-z]+$'
  celestia-tag-title-case:
    description: Top-level tags must use Title Case.
    severity: warn
    given: $.tags[*].name
    then:
      function: pattern
      functionOptions:
        match: '^([A-Z][a-z0-9]*)([A-Z0-9][a-z0-9]*|2P)*$'