Permission service#

The PermissionService provides an interface for checking permissions for a user, where a permission is an action that is performed on a resource.

OpenAPI file: nominal.authorization.permissions.v1.json

Endpoints#

Check permissions#

POST /authorization/permissions/v1/check

Checks a list of permissions for the calling user and returns results in the same order.

Body

requests array of CheckPermissionRequest

​

Fields of CheckPermissionRequest
action string required

​

resource string required

Matches ^ri\.[a-z][a-z0-9\-]*\.([a-z0-9][a-z0-9\-]*)?\.[a-z][a-z0-9\-]*\.[a-zA-Z0-9\-\._]+$.

Response

responses array of CheckPermissionResponse

​

Fields of CheckPermissionResponse
isAuthorized boolean

​

requestedPermission CheckPermissionRequest

​

Fields of CheckPermissionRequest
action string

​

resource string

Matches ^ri\.[a-z][a-z0-9\-]*\.([a-z0-9][a-z0-9\-]*)?\.[a-z][a-z0-9\-]*\.[a-zA-Z0-9\-\._]+$.

Request

curl -X POST "https://api.gov.nominal.io/api/authorization/permissions/v1/check" \
  -H "Authorization: Bearer <api key>" \
  -H "Content-Type: application/json" \
  --data '{
  "requests": [
    {
      "action": "<action>",
      "resource": "<resource>"
    }
  ]
}'
import requests

response = requests.post(
    "https://api.gov.nominal.io/api/authorization/permissions/v1/check",
    headers={"Authorization": "Bearer <api key>"},
    json={"requests": [{"action": "<action>", "resource": "<resource>"}]},
)
response.raise_for_status()
print(response.json())
import httpx

response = httpx.post(
    "https://api.gov.nominal.io/api/authorization/permissions/v1/check",
    headers={"Authorization": "Bearer <api key>"},
    json={"requests": [{"action": "<action>", "resource": "<resource>"}]},
)
response.raise_for_status()
print(response.json())
import asyncio

import aiohttp


async def main() -> None:
    async with aiohttp.ClientSession() as session:
        async with session.post(
            "https://api.gov.nominal.io/api/authorization/permissions/v1/check",
            headers={"Authorization": "Bearer <api key>"},
            json={"requests": [{"action": "<action>", "resource": "<resource>"}]},
        ) as response:
            response.raise_for_status()
            print(await response.json())


asyncio.run(main())

Response: 200

{
  "responses": [
    {
      "isAuthorized": true,
      "requestedPermission": {
        "action": "<action>",
        "resource": "<resource>"
      }
    }
  ]
}

Types#

CheckPermissionRequest#

A permission is the declaration of an action that can be performed on a resource.

action string required

​

resource string required

Matches ^ri\.[a-z][a-z0-9\-]*\.([a-z0-9][a-z0-9\-]*)?\.[a-z][a-z0-9\-]*\.[a-zA-Z0-9\-\._]+$.

CheckPermissionResponse#

isAuthorized boolean

​

requestedPermission CheckPermissionRequest required

​

Page design based on Scalar, MIT License.