Queensland University of Technology · API Governance Rules
Queensland University of Technology API Rules
Spectral linting rules defining API design standards and conventions for Queensland University of Technology.
9 Rules
error 5
warn 4
Rule Categories
qut
Rules
error
qut-operator-declared
Every contract in this repository must declare info.x-operator, so no artifact can be silently credited to the institution.
$.info
error
qut-operator-institution-only
Only an institution-operated contract belongs in this repository. A tenant, vendor, registry or federation relationship is recorded in apis.yml, never saved as a contract here.
$.info.x-operator
error
qut-provenance-method-set
Every contract must state how we came to hold it — searched, generated, derived, probed or none. An unmarked artifact reads as though the institution published it.
$.info
error
qut-provenance-source-set
Every derived or probed contract must name the live URL it was derived from.
$.info
error
qut-servers-absolute
servers[] must carry an absolute URL on a host whose operator has been settled. A relative or absent servers block is the `hostless` failure that let 36 Elsevier Pure contracts pass as Manchester's own.
$.servers[*].url
warn
qut-oai-pmh-error-in-200
Any operation on the OAI-PMH endpoint must document that a protocol error arrives as HTTP 200 carrying an element. A client that branches on status code alone will treat a badArgument as a successful harvest.
$.paths['/oai2'].get.description
warn
qut-no-implicit-or-password-grant
QUT ESOE still advertises the implicit and password grants. Both are removed in OAuth 2.1 and discouraged by the OAuth Security BCP. Flagged as a warning against QUT's own contract, not suppressed.
$.components.schemas.TokenRequest.properties.grant_type.enum
warn
qut-pkce-s256-only
code_challenge_method should be restricted to S256. QUT advertises `plain`, which provides no protection against authorization-code interception.
$.paths..parameters[?(@.name=='code_challenge_method')].schema.enum
warn
qut-document-observed-401
Where a probe returned 401, the contract must document the 401 rather than only the 200 it never observed. Documenting an unreachable success is how a profile overstates a footprint.
$.paths[*][*].responses
Spectral Ruleset
Work with this as data
Every ruleset here is available over the APIs.io API and to AI agents over MCP.