Skip to main content

Appeal

JSON Representation

{
"id": "49d3d948-d5f5-4f8a-affc-8547bc02ec4f",
"resource_id": "60999a98-b037-4a7e-8e9f-1999bc3be9cb",
"resource": {
"id": "60999a98-b037-4a7e-8e9f-1999bc3be9cb",
"provider_type": "bigquery",
"provider_urn": "gcp-project-id",
"type": "dataset",
"urn": "gcp-project-id:dataset_name",
"name": "dataset_name",
"details": {
"owners": [
"owner@email.com",
"another.owner@email.com"
],
...
},
"labels": {
"key": "value"
},
"created_at": "2021-01-01T00:00:05.36851+07:00",
"updated_at": "2021-01-01T00:00:05.36851+07:00"
},
"role": "roles/viewer",
"options": {
"expiration_date": "2024-01-01T00:00:05.36851+07:00",
"duration": "24h"
},
"details": {},
"description": "This is a test appeal",
"labels": {
"key": "value"
},
"approvals": [
{
"id": "c6d2e6f1-5767-49ba-8eef-8fb8f0006f3a",
"name": "owner_approval",
"appeal_id": "d95dde82-5719-48f9-b92b-9bd216499a77",
"status": "pending",
"actor": "john.doe@example.com",
"reason": "LGTM",
"policy_id": "test-policy",
"policy_version": 1,
"approvers": [
"john.doe@example.com"
],
"created_at": "2021-10-26T09:29:48.838203Z",
"updated_at": "2021-10-26T09:29:48.838203Z"
}
],
"grant": {
"id": "ecd81395-7879-476f-b39b-cbf38d707b07",
"status": "active",
"status_in_provider": "active",
"account_id": "user@email.com",
"account_type": "user",
"resource_id": "3d87367a-8cd6-4f6c-aee0-4bb29b82e9ff",
"role": "viewer",
"permissions": [
"READER"
],
"is_permanent": false,
"expiration_date": "2024-01-01T00:00:05.36851+07:00",
"appeal_id": "49d3d948-d5f5-4f8a-affc-8547bc02ec4f",
"source": "appeal",
"created_by": "user@email.com",
"owner": "owner@email.com",
"created_at": "2021-10-26T09:29:48.838203Z",
"updated_at": "2021-10-26T09:29:48.838203Z"
},
"policy_id": "test-policy",
"policy_version": 1,
"status": "pending",
"account_id": "user@email.com",
"account_type": "user",
"created_by": "user@email.com",
"creator": {
"id": 1,
"email": "user@email.com",
"full_name": "John Doe",
"manager_email": "manager@email.com",
...
},
"created_at": "2021-10-26T09:29:48.838203Z",
"updated_at": "2021-10-26T09:29:48.838203Z",
"revoked_at": "0001-01-01T00:00:00Z"
}

Appeal

FieldTypeDescription
idstringUnique identifier of appeal.
resource_idstringResource identifier.
resourceobject(Resource)Complete resource information.
rolestringPermission type chosen by the creator to access the resource.
Example: roles/viewer
optionsobject(AppealOptions)Options for the appeal.
detailsobjectAdditional information for the appeal. Details can be added from the appeal creation.
descriptionstringDescription of the appeal.
approvals[]object(Approval)Approval steps applied for current appeal based on the applicable policy.
grantobject(Grant)Grant created after the appeal is approved.
policy_idstringPolicy identifier
policy_versionuintPolicy version identifier. Used together with policy_id to reference to a policy.
statusstringCurrent status of the appeal. The initial status is pending. If the appeal creator canceled/removed the appeal while its on pending, the status is become canceled. After the approval steps completed, the status either become active or rejected. And if it gets expired or an admin revoked the status become terminated.
Reference: Appeal Status
account_typestringType of the account based on the Provider of the selected resource. Default value is user
account_idstringAn account identifier related to account_type that will get the permission to the targetted resource once the appeal is approved.
created_bystringEmail address of the appeal creator.
creatorobjectCreator user details information fetched from the configured identity manager as in the Policy Config.
created_atstringTimestamp when the appeal created.
updated_atstringTimestamp when the appeal last modified.
revoked_atstringTimestamp when the appeal gets revoked.
revoked_bystringEmail address of the user who revoke the appeal.
revoke_reasonstringReason filled by the revoking user to inform the appeal creator why the appeal gets revoked.

AppealOptions

FieldTypeDescription
expiration_datedateTimeTimestamp when the appeal expires
durationstringactual value of duration such as 24h, 72h. value will be 0h in case of permanent duration.
Valid time units are ns, us (or µs), ms, s, m, h. Reference: ParseDuration

Approval

FieldTypeDescription
idstringApproval step unique identifier
namestringUnique approval step name
appeal_iduintAppeal identifier
statusstringThe status of approval step
Reference: Approval Status
policy_idstringPolicy identifier
policy_versionuintPolicy version identifier. Used together with policy_id to reference to a policy.
approvers[]stringList of email address of eligible approvers if require manual approval.
actorstringEmail address of the approver who resolve the status of current approval step.
reasonstringRejection reason filled by the actor if they rejecting current approval step.
created_atstringTimestamp when the appeal created.
updated_atstringTimestamp when the appeal last modified.

Grant

FieldTypeDescription
idstringGrant unique identifier
statusstringThe status of grant
Reference: Grant Status
status_in_providerstringThe status of grant in the provider
Reference: Grant Status
account_idstringAn account identifier related to account_type that will get the permission to the targetted resource once the appeal is approved.
account_typestringType of the account based on the Provider of the selected resource. Default value is user
resource_idstringResource identifier
rolestringRole identifier
permissions[]stringList of permissions granted to the account
is_permanentboolIndicates if the grant is permanent or not
expiration_datestringTimestamp when the grant expires
appeal_idstringAppeal identifier
sourcestringSource of the grant
Reference: Grant Source
ownerstringEmail address of the user who created the grant
created_atstringTimestamp when the grant created.
updated_atstringTimestamp when the grant last modified.

Approval Status

  • pending (initial status): During this state the approvers will determine whether the appeal will be approved or rejected
  • blocked: The step is approved is blocked by prior step(s)
  • skipped: The step is approved is skipped due to prior step are rejected
  • approved: The step is approved by approvers
  • rejected: The step is rejected by approvers

Grant Status

  • active: The grant is active and valid
  • inactive: The grant is expired or revoked

Grant Source

  • appeal: The grant is created from an appeal
  • import: The grant is imported from the provider