Skip to main content

History

Learn what the system records as history and how to read history logs.

History entries

The system records most events involving the following entities:

  • Credentials
  • Proofs
  • Keys
  • DIDs
  • Schemas
  • Organizations
  • Trust anchors
  • Trust entities
  • Backups (in the mobile SDK)
  • OpenID providers in Bridge

Each event is represented by a history entry containing:

  • The entity UUID and type
  • The action or event that took place
  • Metadata about the event

Here's a history entry of a credential revocation:

{
"id": "b1de4a9b-3a3c-4528-8848-dd15565624b1", // UUID of the event
"createdDate": "2025-02-18T07:25:59.144Z", // Date-time of the event
"action": "REVOKED", // What happened
"entityId": "4f3efdf1-b286-436e-8ee5-e4c546a0bdca", // UUID of the entity
"entityType": "CREDENTIAL", // The type of entity
"organisationId": "2476ebaa-0108-413d-aa72-c2a6babd423f" // The organization the entity belongs to
},

Note that the history entry does not express an entity's current state, but rather a historical event, named in the action field.

How to search history

The history endpoint provides several methods for searching and filtering history events. Each method can be used alone or in conjuction with other methods.

History operations

By time frame

You can retrieve history events within a particular time frame by setting a start time, a stop time, or both. Use:

  • createdDateFrom to set a start time.
  • createdDateTo to set a stop time.

Here's an example curl query to retrieve all events since a date-time:

-X 'GET' \
'https://{{example.com}}/api/history/v1?page=0&pageSize=999&createdDateFrom=2025-03-05T14%3A19%3A57.000Z&organisationId={{UUID}}' \

Since there is no createdDateTo, this call will retrieve all events that have occurred from the specified time up to the time you query the history endpoint.

By schema ID

You can retrieve history events associated with a particular schema. This includes not only schema events but also the events of credentials and proofs created using the schema. Use:

  • credentialSchemaId for credential schemas.
  • proofSchemaId for proof schemas.

Here's an example curl query to retrieve events for a credential schema:

-X 'GET' \
'https://{{example.com}}/api/history/v1?page=0&pageSize=999&credentialSchemaId={{UUID}}&organisationId={{UUID}}' \

And here's the response:

{
"values": [
{
"id": "8dc94bdd-7b00-4f20-b154-1ae36b4e01a4",
"createdDate": "2025-03-06T08:25:52.620Z",
"action": "ACCEPTED",
"entityId": "936bac3e-f9ed-4ce6-bae0-a1a6ba115d7a",
"entityType": "CREDENTIAL",
"organisationId": "2476ebaa-0108-413d-aa72-c2a6babd423f"
},
{
"id": "88e00dd1-ef16-4925-a00e-d1a82267e1aa",
"createdDate": "2025-03-06T08:25:51.099Z",
"action": "OFFERED",
"entityId": "936bac3e-f9ed-4ce6-bae0-a1a6ba115d7a",
"entityType": "CREDENTIAL",
"organisationId": "2476ebaa-0108-413d-aa72-c2a6babd423f"
},
{
"id": "db88c2c1-47b9-4320-bedb-cd8278baf17f",
"createdDate": "2025-03-06T08:25:44.768Z",
"action": "SHARED",
"entityId": "936bac3e-f9ed-4ce6-bae0-a1a6ba115d7a",
"entityType": "CREDENTIAL",
"organisationId": "2476ebaa-0108-413d-aa72-c2a6babd423f"
},
{
"id": "bb5756f2-f87c-482d-a9b2-673712f12214",
"createdDate": "2025-03-06T08:25:44.753Z",
"action": "PENDING",
"entityId": "936bac3e-f9ed-4ce6-bae0-a1a6ba115d7a",
"entityType": "CREDENTIAL",
"organisationId": "2476ebaa-0108-413d-aa72-c2a6babd423f"
},
{
"id": "ce5bc098-c43d-47f8-b73a-0c86c42ea5e0",
"createdDate": "2025-03-06T08:25:44.619Z",
"action": "CREATED",
"entityId": "936bac3e-f9ed-4ce6-bae0-a1a6ba115d7a",
"entityType": "CREDENTIAL",
"organisationId": "2476ebaa-0108-413d-aa72-c2a6babd423f"
},
{
"id": "0e1917f1-a7db-441e-a3f4-537dcd4862a9",
"createdDate": "2025-03-06T08:25:29.826Z",
"action": "CREATED",
"entityId": "3f526536-a118-4247-a3c4-69f86c1052d3",
"entityType": "CREDENTIAL_SCHEMA",
"organisationId": "2476ebaa-0108-413d-aa72-c2a6babd423f"
}
],
"totalPages": 1,
"totalItems": 6
}

In the response we see events for the schema and for any credential that was created using the schema.

By action

You can retrieve history events of a particular type of event. Use:

  • action to set which kind of event.

Here's an example curl query to retrieve all suspension events:

-X 'GET' \
'https://{{example.com}}/api/history/v1?page=0&pageSize=999&action=SUSPENDED&organisationId={{UUID}}' \

The full reference for actions is found in: What's recorded.

By entity type

You can retrieve history events of a particular entity type. Use:

  • entityType to set which kind of entity.

Here's an example curl query to retrieve all history events for credential schemas:

-X 'GET' \
'https://{{example.com}}/api/history/v1?page=0&pageSize=999&entityTypes%5B%5D=CREDENTIAL_SCHEMA&organisationId={{UUID}}' \

By entity ID

You can retrieve history entries of a particular entity. Use:

  • entityId to set which entity.

Here's an example curl query to retrieve all history events for a credential:

-X 'GET' \
'https://{{example.com}}/api/history/v1?page=0&pageSize=999&entityId={{UUID}}&organisationId={{UUID}}' \

By string

You can retrieve history entries containing a string. Use:

  • searchText to set which string.
  • searchType to set where to search.

If no searchType is set, the system searches all searchTypes:

  • claimName searches claim keys.
  • claimValue searches claim values.
  • credentialSchemaName searches credential schema names.
  • issuerDid searches issuer DID values.
  • issuerName searches issuer DID names.
  • verifierDid searches verifier DID values.
  • verifierName searches verifier DID names.
  • proofSchemaName searches proof schema names.

Here's an example curl query to retrieve all history events involving the claim key Birthdate:

-X 'GET' \
'https://{{example.com}}/api/history/v1?page=0&pageSize=999&searchText=Birthdate&searchType=claimName&organisationId={{UUID}}' \

The response will include history entries for any credential or proof with a claim that contains "Birthdate" in a claim name. Note that "Birthdate" or any other searchText does not appear in the history entry itself.

By DID ID

You can retrieve history events associated with a DID. This includes not only the DID's own history events but also credential and proof events for that DID. Use:

  • didId to set which DID.

Here's an example curl query to retrieve events for a DID, sorted by entitytype:

-X 'GET' \
'https://{{example.com}}/api/history/v1?page=0&pageSize=999&sort=entityType&didId={{UUID}}&organisationId={{UUID}}' \

This will return history events for the DID's creation and potentially deactivation, and the issuance and verification interactions made using the DID.

Of OpenID providers

If you're using Bridge to integrate OpenID Connect providers, you can search history events of these integrations. In the Desk API use:

  • source: BRIDGE to get Bridge history events.

When using Bridge as the source of history events, you can narrow further using:

  • entityType=PROVIDER to get provider creation, deletion, and update events.
  • entityType=INTERACTION to get login attempt events.
  • providerId to return history events of a provider, including interactions.

Here's an example curl query to retrieve provider history from Bridge:

-X 'GET' \
'https://desk.dev.procivis-one.com/api/history/v1?sortDirection=DESC&entityTypes=PROVIDER&source=BRIDGE' \

This will return history events for providers in Bridge.

Combining search methods

You can combine search methods.

Here's an example curl query to retrieve all claims deletion events for proof requests made using a particular proof schema, within a specified 24-hour period:

-X 'GET' \
'https://{{example.com}}/api/history/v1?page=0&pageSize=999&entityId={{UUID}}&action=CLAIMS_REMOVED&createdDateFrom=2025-03-05T14%3A19%3A57.000Z&createdDateTo=2025-03-06T14%3A19%3A57.000Z&didId={{UUID}}&organisationId={{UUID}}' \

In this case the entityId is used to specify the proof schema but, given the desired search parameters, the proofSchemaId could have been used as well.

What's recorded

The following tables provide a reference for historical actions, organized by the type of entity.

Credentials

ActionDescription
ACCEPTEDThe credential transitioned to ACCEPTED state.
CREATEDThe credential was created.
DELETEDThe credential was deleted. This action has no impact on credential state.
OFFEREDThe credential transitioned to OFFERED state.
PENDINGThe credential transitioned to PENDING state.
REJECTEDThe credential transitioned to REJECTED state.
REVOKEDThe credential transitioned to REVOKED state.
SHAREDThe credential transitioned to SHARED state.
SUSPENDEDThe credential transitioned to SUSPENDED state.

Related guide: Credential states

Proofs

ActionDescription
ACCEPTEDThe proof transitioned to ACCEPTED state.
CLAIMS_REMOVEDThe claim data was deleted from the proof.
CREATEDThe proof request was created.
ERROREDThe proof transitioned to ERROR state.
PENDINGThe proof transitioned to PENDING state.
REJECTEDThe proof transitioned to REJECTED state.
REQUESTEDThe proof transitioned to REQUESTED state.
RETRACTEDThe proof transitioned to RETRACTED state.
SHAREDThe proof transitioned to SHARED state.

Related guide: Proof request states

Keys

ActionDescription
CREATEDThe key was created.

DIDs

ActionDescription
CREATEDThe DID was created.
DEACTIVATEDThe DID was deactivated.

Schemas

ActionDescription
CREATEDThe schema was created.
DELETEDThe schema was deleted.
SHAREDThe schema was shared with a mobile device.

Organizations

ActionDescription
CREATEDThe organization was created.

Trust anchors

ActionDescription
CREATEDThe trust anchor was created.
DELETEDThe trust anchor was deleted.

Trust entities

ActionDescription
ACTIVATEDA removed or withdrawn entity was reactivated to a trust anchor.
CREATEDThe trust entity was published to a trust anchor.
REMOVEDThe trust entity was removed from a trust anchor by the anchor publisher.
WITHDRAWNThe trust entity was withdrawn from a trust anchor by the entity.

Backups

ActionDescription
CREATEDA backup was created.
RESTOREDThe import was finalized and the database was overwritten with the content of the backup.

OpenID providers in Bridge

ActionDescription
CLIENT_SECRET_REGENERATEDThe provider client secret was regenerated.
CREATEDThe provider was created.
DELETEDThe provider was deleted.
ERROREDThe login attempt resulted in an error.
SUCCEEDEDThe login attempt was successful.
UPDATEDThe provider was updated (attributes not including client secret).