Linter rulesOpenAPIoperation-security-defined
operation-security-defined
Since 0.0.1
Warn if OpenAPI operation does not have any sequrity requirements.
Rule Details
Operations may restrict access to themselves. Specifying this in OpenAPI contracts helps users of the API to understand the security measures and manage their requests accordingly.
This rule checks every operation in an OpenAPI contract and warns when an operation does not have security requirements defined. This includes cases:
- there is no global security requirements defined, and an operation does not override them
- an operation specifically overrides security requirements, resetting them to empty set
Configuration
None.
Examples
Good. Operation inherits non-empty security requirements defined globally.
paths:
/users:
get:
responses:
"200":
description: A list of users.
security:
- api_key: []
components:
securitySchemes:
api_key: ...
Good. Operation defines its own security requirements.
paths:
/users:
get:
security:
- api_key: []
responses:
"200":
description: A list of users.
components:
securitySchemes:
api_key: ...
Bad. Neither OpenAPI schema, nor operation define security requirements
paths:
/users:
get:
responses:
"200":
description: A list of users.
components: ...
Bad. An operation resets security requirements to an empty set
paths:
/users:
get:
security: []
responses:
"200":
description: A list of users.
components:
securitySchemes:
api_key: ...
When Not to Use It
You may disable this rule when your API does not restrict access to itself in any way.
Compatibility
This rule is compatible with all OpenAPI 3.x versions.