Webhook Payload Schema Reference

Send Apono access request data to your internal systems with event-triggered HTTP messages

This reference describes each of the properties of the webhook payload schema.

The payload schema defines the structure of the data that you can pass in the webhook payload. Apono uses the Handlebars templating language to format expressions for certain data fields.

{
    "event_type": "AccessRequestCreated",
    "event_time": 1696263265.851898000,
    "data": {
        "id": "123",
        "friendly_id": "AR-123",
        "requester": {
            "id": "user-1",
            "name": "User",
            "email": "user@example.com"
        },
        "justification": "I need access to this",
        "creation_date": 1696263265.852378000,
        "revocation_date": 1696266865.852380000,
        "access_flow": {
            "id": "flow-1",
            "name": "Flow 1"
        },
        "access_bundle": {
            "id": "bundle-1",
            "name": "Bundle 1"
        },
        "access_groups": [
            {
                "integration": {
                    "id": "integration-1",
                    "type": "Postgresql",
                    "name": "prod db"
                },
                "resource_types": [
                    {
                        "id": "postgresql-database",
                        "name": "Database",
                        "display_path": "Postgresql/Database"
                    }
                ],
                "access_units": [
                    {
                        "resource": {
                            "id": "res-1",
                            "name": "DB 1",
                            "path": "prod db/res-1",
                            "type": {
                                "id": "postgresql-database",
                                "name": "Database",
                                "display_path": "Postgresql/Database"
                            }
                        },
                        "permission": {
                            "id": "ReadOnly",
                            "name": "ReadOnly"
                        }
                    },
                    {
                        "resource": {
                            "id": "res-2",
                            "name": "DB 2",
                            "path": "prod db/res-2",
                            "type": {
                                "id": "postgresql-database",
                                "name": "Database",
                                "display_path": "Postgresql/Database"
                            }
                        },
                        "permission": {
                            "id": "ReadOnly",
                            "name": "ReadOnly"
                        }
                    }
                ]
            }
        ],
        "approvals_logical_relation": "AllOf",
        "approvals": [
            {
                "name": "Manager",
                "type": "Manager",
                "status": "Pending"
            },
            {
                "name": "Admins",
                "type": "Group",
                "status": "Approved",
                "approver": {
                    "id": "admin-1",
                    "name": "Admin 1",
                    "email": "admin@example.com"
                }
            }
        ]
    }
}
Property
Description

event_type string

event_time float

Time of the event occurrence in epoch seconds.milliseconds

data object

data object

Property
Description

id string

Apono request ID

friendly_id string

Human-readable ID that also appears in the Apono UI

requester object

justification string

Reason provided by requester for needing access

creation_date float

Date the access request was created in epoch seconds.milliseconds

revocation_date float

access_flow object

access_bundle object

access_groups object

approvals_logical_relation string

Whether the request requires one approver (AnyOf value) or all approvers within a group (AllOf value)

approvals object

\

data.requester object

Property
Description

id string

Requester's Apono ID

name string

Requester’s Apono username

email string

Requester’s email address

\

data.access_flow object

Property
Description

id string

Apono ID for the access flow

name string

Customer-created name for the access flow

\

data.access_bundle object

Property
Description

id string

Apono ID for the access bundle

name string

Customer-created name for the access bundle

\

data.access_groups object

Property
Description

integration object

Metadata about the integration that the requester wants to access See data.access_groups.integration object

resource_types object

Metadata about the resource types that the requester wants to access See data.access_groups.resource_types object

access_units object

Metadata about the requested access unit, which is a pairing of a resource and a permission See data.access_groups.access_units object.

\

data.access_groups.integration object

Property
Description

id string

Apono ID of the integration

type string

Type of resource the requester wants to access, such as Postgresql

name string

Customer-created resource name

\

data.access_groups.resource_types object

Property
Description

id string

Apono ID of the integration

name string

Display name for the resource

display_path string

Logical, hierarchical container for the resource For example, the display path for an AWS bucket resource type might be AWS-account/us-east/bucket/E2

\

data.access_groups.access_units object

Property
Description

resource object

Metadata about the resource the requester wants to access See data.access_groups.access_units.resource object

permissions object

Metadata about resource permission granted to the requester See data.access_groups.access_units.permissions object

\

data.access_groups.access_units.resource object

Property
Description

id string

Apono ID of the resource

name string

Customer-created name for the resource

path string

Physical path of the resource For example, the path of a database would be database-name/table-name

type object

Metadata about the resource type the requester wants to access See data.access_groups.access_units.resource.type object

\

data.access_groups.access_units.resource.type object

Property
Description

id string

Apono ID of the resource type

name string

Name of the resource type

display_path string

Logical, hierarchical container for the resource For example, the display path for an AWS bucket resource type might be AWS-account/us-east/bucket/E2.

\

data.access_groups.access_units.permissions object

Property
Description

id string

Apono ID for the permission

name string

Name of the permission granted to the requester, such as ReadOnly

\

data.approvals object

Property
Description

name string

Name of the entity approving the request, which could be:

  • A person

  • A group, such as an Okta group

  • A work shift

  • The word Manager

type string

Type of approver Possible values:

  • Person

  • Group, such as an Okta group

  • Shift, such as an on-call shift

  • Manager

status string

Status of the request Possible values:

  • Approved

  • Rejected

  • Pending

approver object

Metadata about the person approving the access request See data.approvals.approver object.

\

data.approvals.approver object

Property
Description

id string

Approver's Apono ID

name string

Approver's Apono username

email string

Approver's email address

Last updated