Jack Henry & Associates · API Governance Rules

Jack Henry & Associates API Rules

Spectral linting rules defining API design standards and conventions for Jack Henry & Associates.

Jack Henry & Associates API Rules is a Spectral governance ruleset published by Jack Henry & Associates on the APIs.io network, containing 5 lint rules.

The ruleset includes 4 error-severity rules and 1 warning-severity rule.

Tagged areas include Financial Services, Banking, Core Banking, Digital Banking, and Payments.

Rulesets can be applied to your own OpenAPI specs via Spectral to enforce the same governance standards.

5 Rules error 4 warn 1
View Rules File View on GitHub

Rule Categories

banno

Rules

error
banno-consumer-paths-versioned
All Banno Consumer paths MUST live under /a/consumer/api/v0.
$.paths.*~
warn
banno-summary-title-case
Operation summaries should use Title Case.
$.paths[*][get,post,put,delete,patch].summary
error
banno-oidc-required
Consumer endpoints (except discovery) MUST declare openIdConnect security with explicit scopes.
$.paths[*][get,post,put,delete,patch].security
error
banno-scopes-banno-domain
All declared scopes MUST be Banno-issued URIs under https://api.banno.com/.
$.paths[*][get,post,put,delete,patch].security[*].openIdConnect[*]
error
banno-userid-uuid
userId path parameters MUST be uuid-formatted.
$..parameters[?(@.name=='userId')].schema.format

Spectral Ruleset

Raw ↑
extends: [[spectral:oas, all]]
rules:
  banno-consumer-paths-versioned:
    description: All Banno Consumer paths MUST live under /a/consumer/api/v0.
    given: $.paths.*~
    severity: error
    then:
      function: pattern
      functionOptions:
        match: '^/a/consumer/api/v0/'
  banno-summary-title-case:
    description: Operation summaries should use Title Case.
    given: $.paths[*][get,post,put,delete,patch].summary
    severity: warn
    then:
      function: pattern
      functionOptions:
        match: '^([A-Z][a-zA-Z0-9]*\s?)+$'
  banno-oidc-required:
    description: Consumer endpoints (except discovery) MUST declare openIdConnect security with explicit scopes.
    given: $.paths[*][get,post,put,delete,patch].security
    severity: error
    then:
      function: schema
      functionOptions:
        schema:
          type: array
          items:
            type: object
            required: [openIdConnect]
  banno-scopes-banno-domain:
    description: All declared scopes MUST be Banno-issued URIs under https://api.banno.com/.
    given: $.paths[*][get,post,put,delete,patch].security[*].openIdConnect[*]
    severity: error
    then:
      function: pattern
      functionOptions:
        match: '^https://api\.banno\.com/'
  banno-userid-uuid:
    description: userId path parameters MUST be uuid-formatted.
    given: "$..parameters[?(@.name=='userId')].schema.format"
    severity: error
    then:
      function: enumeration
      functionOptions:
        values: [uuid]