Ory permission API
The permission API from Ory — 4 operation(s) for permission.
The permission API from Ory — 4 operation(s) for permission.
openapi: 3.0.3
info:
contact:
email: hi@ory.sh
description: 'Documentation for all of Ory Hydra''s APIs.
'
license:
name: Apache 2.0
title: Ory Hydra api permission API
version: ''
tags:
- name: permission
paths:
/relation-tuples/batch/check:
post:
description: To learn how relationship tuples and the check works, head over to [the documentation](https://www.ory.com/docs/keto/concepts/api-overview).
operationId: batchCheckPermission
parameters:
- in: query
name: max-depth
schema:
format: int64
type: integer
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/batchCheckPermissionBody'
x-originalParamName: Body
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/batchCheckPermissionResult'
description: batchCheckPermissionResult
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/errorGeneric'
description: errorGeneric
default:
content:
application/json:
schema:
$ref: '#/components/schemas/errorGeneric'
description: errorGeneric
summary: Batch check permissions
tags:
- permission
x-ory-ratelimit-bucket: keto-public-high
/relation-tuples/check:
get:
description: To learn how relationship tuples and the check works, head over to [the documentation](https://www.ory.com/docs/keto/concepts/api-overview).
operationId: checkPermissionOrError
parameters:
- description: Namespace of the Relationship
in: query
name: namespace
schema:
type: string
- description: Object of the Relationship
in: query
name: object
schema:
type: string
- description: Relation of the Relationship
in: query
name: relation
schema:
type: string
- description: SubjectID of the Relationship
in: query
name: subject_id
schema:
type: string
- description: Namespace of the Subject Set
in: query
name: subject_set.namespace
schema:
type: string
- description: Object of the Subject Set
in: query
name: subject_set.object
schema:
type: string
- description: Relation of the Subject Set
in: query
name: subject_set.relation
schema:
type: string
- in: query
name: max-depth
schema:
format: int64
type: integer
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/checkPermissionResult'
description: checkPermissionResult
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/errorGeneric'
description: errorGeneric
'403':
content:
application/json:
schema:
$ref: '#/components/schemas/checkPermissionResult'
description: checkPermissionResult
default:
content:
application/json:
schema:
$ref: '#/components/schemas/errorGeneric'
description: errorGeneric
summary: Check a permission
tags:
- permission
x-ory-ratelimit-bucket: keto-public-high
post:
description: To learn how relationship tuples and the check works, head over to [the documentation](https://www.ory.com/docs/keto/concepts/api-overview).
operationId: postCheckPermissionOrError
parameters:
- in: query
name: max-depth
schema:
format: int64
type: integer
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/postCheckPermissionOrErrorBody'
x-originalParamName: Body
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/checkPermissionResult'
description: checkPermissionResult
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/errorGeneric'
description: errorGeneric
'403':
content:
application/json:
schema:
$ref: '#/components/schemas/checkPermissionResult'
description: checkPermissionResult
default:
content:
application/json:
schema:
$ref: '#/components/schemas/errorGeneric'
description: errorGeneric
summary: Check a permission
tags:
- permission
x-ory-ratelimit-bucket: keto-public-high
/relation-tuples/check/openapi:
get:
description: To learn how relationship tuples and the check works, head over to [the documentation](https://www.ory.com/docs/keto/concepts/api-overview).
operationId: checkPermission
parameters:
- description: Namespace of the Relationship
in: query
name: namespace
schema:
type: string
- description: Object of the Relationship
in: query
name: object
schema:
type: string
- description: Relation of the Relationship
in: query
name: relation
schema:
type: string
- description: SubjectID of the Relationship
in: query
name: subject_id
schema:
type: string
- description: Namespace of the Subject Set
in: query
name: subject_set.namespace
schema:
type: string
- description: Object of the Subject Set
in: query
name: subject_set.object
schema:
type: string
- description: Relation of the Subject Set
in: query
name: subject_set.relation
schema:
type: string
- in: query
name: max-depth
schema:
format: int64
type: integer
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/checkPermissionResult'
description: checkPermissionResult
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/errorGeneric'
description: errorGeneric
default:
content:
application/json:
schema:
$ref: '#/components/schemas/errorGeneric'
description: errorGeneric
summary: Check a permission
tags:
- permission
x-ory-ratelimit-bucket: keto-public-high
post:
description: To learn how relationship tuples and the check works, head over to [the documentation](https://www.ory.com/docs/keto/concepts/api-overview).
operationId: postCheckPermission
parameters:
- in: query
name: max-depth
schema:
format: int64
type: integer
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/postCheckPermissionBody'
x-originalParamName: Payload
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/checkPermissionResult'
description: checkPermissionResult
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/errorGeneric'
description: errorGeneric
default:
content:
application/json:
schema:
$ref: '#/components/schemas/errorGeneric'
description: errorGeneric
summary: Check a permission
tags:
- permission
x-ory-ratelimit-bucket: keto-public-high
/relation-tuples/expand:
get:
description: Use this endpoint to expand a relationship tuple into permissions.
operationId: expandPermissions
parameters:
- description: Namespace of the Subject Set
in: query
name: namespace
required: true
schema:
type: string
- description: Object of the Subject Set
in: query
name: object
required: true
schema:
type: string
- description: Relation of the Subject Set
in: query
name: relation
required: true
schema:
type: string
- in: query
name: max-depth
schema:
format: int64
type: integer
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/expandedPermissionTree'
description: expandedPermissionTree
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/errorGeneric'
description: errorGeneric
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/errorGeneric'
description: errorGeneric
default:
content:
application/json:
schema:
$ref: '#/components/schemas/errorGeneric'
description: errorGeneric
summary: Expand a Relationship into permissions.
tags:
- permission
x-ory-ratelimit-bucket: keto-admin-medium
components:
schemas:
relationship:
description: Relationship
properties:
namespace:
description: Namespace of the Relation Tuple
type: string
object:
description: Object of the Relation Tuple
type: string
relation:
description: Relation of the Relation Tuple
type: string
subject_id:
description: 'SubjectID of the Relation Tuple
Either SubjectSet or SubjectID can be provided.'
type: string
subject_set:
$ref: '#/components/schemas/subjectSet'
required:
- namespace
- object
- relation
type: object
subjectSet:
properties:
namespace:
description: Namespace of the Subject Set
type: string
object:
description: Object of the Subject Set
type: string
relation:
description: Relation of the Subject Set
type: string
required:
- namespace
- object
- relation
type: object
genericError:
properties:
code:
description: The status code
example: 404
format: int64
type: integer
debug:
description: 'Debug information
This field is often not exposed to protect against leaking
sensitive information.'
example: SQL field "foo" is not a bool.
type: string
details:
additionalProperties: {}
description: Further error details
type: object
id:
description: 'The error ID
Useful when trying to identify various errors in application logic.'
type: string
message:
description: 'Error message
The error''s message.'
example: The resource could not be found
type: string
reason:
description: A human-readable reason for the error
example: User with ID 1234 does not exist.
type: string
request:
description: 'The request ID
The request ID is often exposed internally in order to trace
errors across service architectures. This is often a UUID.'
example: d7ef54b1-ec15-46e6-bccb-524b82c035e6
type: string
status:
description: The status description
example: Not Found
type: string
required:
- message
type: object
expandedPermissionTree:
properties:
children:
description: The children of the node, possibly none.
items:
$ref: '#/components/schemas/expandedPermissionTree'
type: array
tuple:
$ref: '#/components/schemas/relationship'
type:
description: 'The type of the node.
union TreeNodeUnion
exclusion TreeNodeExclusion
intersection TreeNodeIntersection
leaf TreeNodeLeaf
tuple_to_subject_set TreeNodeTupleToSubjectSet
computed_subject_set TreeNodeComputedSubjectSet
not TreeNodeNot
unspecified TreeNodeUnspecified'
enum:
- union
- exclusion
- intersection
- leaf
- tuple_to_subject_set
- computed_subject_set
- not
- unspecified
type: string
x-go-enum-desc: 'union TreeNodeUnion
exclusion TreeNodeExclusion
intersection TreeNodeIntersection
leaf TreeNodeLeaf
tuple_to_subject_set TreeNodeTupleToSubjectSet
computed_subject_set TreeNodeComputedSubjectSet
not TreeNodeNot
unspecified TreeNodeUnspecified'
required:
- type
type: object
postCheckPermissionOrErrorBody:
description: Post Check Permission Or Error Body
properties:
namespace:
description: Namespace to query
type: string
object:
description: Object to query
type: string
relation:
description: Relation to query
type: string
subject_id:
description: 'SubjectID to query
Either SubjectSet or SubjectID can be provided.'
type: string
subject_set:
$ref: '#/components/schemas/subjectSet'
type: object
errorGeneric:
description: The standard Ory JSON API error format.
properties:
error:
$ref: '#/components/schemas/genericError'
required:
- error
title: JSON API Error Response
type: object
batchCheckPermissionResult:
description: Batch Check Permission Result
properties:
results:
description: An array of check results. The order aligns with the input order.
items:
$ref: '#/components/schemas/checkPermissionResultWithError'
type: array
required:
- results
type: object
checkPermissionResultWithError:
description: Check Permission Result With Error
properties:
allowed:
description: whether the relation tuple is allowed
type: boolean
error:
description: any error generated while checking the relation tuple
type: string
required:
- allowed
type: object
postCheckPermissionBody:
description: Check Permission using Post Request Body
properties:
namespace:
description: Namespace to query
type: string
object:
description: Object to query
type: string
relation:
description: Relation to query
type: string
subject_id:
description: 'SubjectID to query
Either SubjectSet or SubjectID can be provided.'
type: string
subject_set:
$ref: '#/components/schemas/subjectSet'
type: object
batchCheckPermissionBody:
description: Batch Check Permission Body
properties:
tuples:
items:
$ref: '#/components/schemas/relationship'
type: array
type: object
checkPermissionResult:
description: The content of the allowed field is mirrored in the HTTP status code.
properties:
allowed:
description: whether the relation tuple is allowed
type: boolean
required:
- allowed
title: Check Permission Result
type: object
securitySchemes:
basic:
scheme: basic
type: http
bearer:
scheme: bearer
type: http
oauth2:
flows:
authorizationCode:
authorizationUrl: https://hydra.demo.ory.sh/oauth2/auth
scopes:
offline: A scope required when requesting refresh tokens (alias for `offline_access`)
offline_access: A scope required when requesting refresh tokens
openid: Request an OpenID Connect ID Token
tokenUrl: https://hydra.demo.ory.sh/oauth2/token
type: oauth2
x-forwarded-proto: string
x-request-id: string