Tensor · API Governance Rules

Tensor API Rules

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

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

Rule Categories

tensor

Rules

warn
tensor-info-title
Operation summaries should be Title Case.
$.paths[*][*].summary
error
tensor-require-api-key
All operations must require the x-tensor-api-key API key security scheme.
$.paths[*][*]
warn
tensor-base-url
Servers should use the api.mainnet.tensordev.io base URL.
$.servers[*].url
warn
tensor-snake-or-camel-params
Query and path parameter names should be camelCase.
$.paths[*][*].parameters[*].name
warn
tensor-operation-id-camel
Operation IDs should be camelCase.
$.paths[*][*].operationId
error
tensor-tx-response-shape
TX API operations must return a `txs` array of base64-encoded transactions.
$.paths[?(@property=~"^/api/v1/tx/")].*.responses.200.content.application/json.schema

Spectral Ruleset

Raw ↑
extends:
- spectral:oas
rules:
  tensor-info-title:
    description: Operation summaries should be Title Case.
    severity: warn
    given: $.paths[*][*].summary
    then:
      function: pattern
      functionOptions:
        match: '^([A-Z][a-zA-Z0-9-]*)(\s+[A-Z][a-zA-Z0-9-]*)*$'
  tensor-require-api-key:
    description: All operations must require the x-tensor-api-key API key security scheme.
    severity: error
    given: $.paths[*][*]
    then:
      field: security
      function: truthy
  tensor-base-url:
    description: Servers should use the api.mainnet.tensordev.io base URL.
    severity: warn
    given: $.servers[*].url
    then:
      function: pattern
      functionOptions:
        match: '^https://api\.mainnet\.tensordev\.io.*'
  tensor-snake-or-camel-params:
    description: Query and path parameter names should be camelCase.
    severity: warn
    given: $.paths[*][*].parameters[*].name
    then:
      function: pattern
      functionOptions:
        match: '^[a-z][a-zA-Z0-9]*$'
  tensor-operation-id-camel:
    description: Operation IDs should be camelCase.
    severity: warn
    given: $.paths[*][*].operationId
    then:
      function: pattern
      functionOptions:
        match: '^[a-z][a-zA-Z0-9]*$'
  tensor-tx-response-shape:
    description: TX API operations must return a `txs` array of base64-encoded transactions.
    severity: error
    given: $.paths[?(@property=~"^/api/v1/tx/")].*.responses.200.content.application/json.schema
    then:
      function: truthy