Public Assets API
Public Assets API Reference
Note: This page is primarily intended for developers who will be writing applications that will use DataTrails for provenance. If you are looking for a simple way to test our API you might prefer our Postman collection, the YAML runner or the Developers section of the web UI.
Additional YAML examples can be found in the articles in the Overview section.
Public Assets API Examples
Public Assets are created using the
Assets API and setting the value of public
to true
.
To see more information about creating a Public Asset, see Creating a Public Asset.
Each Public Asset has a private and a public interface. The private interface is used to update the Asset by the creating Tenancy and the public interface is a read-only view of the Asset that you do not need to be authenticated for.
The methods described below cover interacting with the public interface only. To interact with the private interface, use the standard Assets API.
Note: Visit the Public Attestation guide for more information.
Fetch a Public Asset Record
curl -H "Content-Type: application/json" https://app.datatrails.ai/archivist/v2/publicassets/86b61c4b-030e-4c07-9400-463612e6cee4
{
"identity": "assets/86b61c4b-030e-4c07-9400-463612e6cee4",
"behaviours": ["RecordEvidence", "Builtin", "AssetCreator"] ,
"attributes": {
"arc_display_type": "Asset",
"foo": "bar",
"A": "B",
"arc_description": "This asset is public",
"arc_display_name": "Public Asset"
},
"confirmation_status": "COMMITTED",
"tracked": "TRACKED",
"owner": "0x5eC362570D1b52a01648997db5ed7693fc6b3978",
"at_time": "2022-07-15T14:26:40Z",
"storage_integrity": "TENANT_STORAGE",
"chain_id": "8275868384",
"public": true,
"tenant_identity": "tenant/8e0b600c-8234-43e4-860c-e95bdcd695a9"
}
Fetch All Of a Public Asset’s Events Records
curl -H "Content-Type: application/json" https://app.datatrails.ai/archivist/v2/publicassets/86b61c4b-030e-4c07-9400-463612e6cee4/events
{
"events": [
{
"identity": "assets/86b61c4b-030e-4c07-9400-463612e6cee4/events/083f90fb-c379-40db-b56a-190564d53cd5",
"asset_identity": "assets/86b61c4b-030e-4c07-9400-463612e6cee4",
"event_attributes": {
"arc_display_type": "Change"
},
"asset_attributes": {
"A": "B"
},
"operation": "Record",
"behaviour": "RecordEvidence",
"timestamp_declared": "2022-07-06T14:56:24Z",
"timestamp_accepted": "2022-07-06T14:56:24Z",
"timestamp_committed": "2022-07-06T14:56:24.681514884Z",
"principal_declared": {
"issuer": "",
"subject": "",
"display_name": "",
"email": ""
},
"principal_accepted": {
"issuer": "",
"subject": "",
"display_name": "",
"email": ""
},
"confirmation_status": "COMMITTED",
"transaction_id": "",
"block_number": 0,
"transaction_index": 0,
"from": "0x5eC362570D1b52a01648997db5ed7693fc6b3978",
"tenant_identity": "tenant/8e0b600c-8234-43e4-860c-e95bdcd695a9"
},
{
"identity": "assets/86b61c4b-030e-4c07-9400-463612e6cee4/events/10d252f2-3116-4c22-b34a-7e3f768895c9",
"asset_identity": "assets/86b61c4b-030e-4c07-9400-463612e6cee4",
"event_attributes": {
"arc_access_policy_always_read": [
{
"tessera": "SmL4PHAHXLdpkj/c6Xs+2br+hxqLmhcRk75Hkj5DyEQ=",
"wallet": "0x5eC362570D1b52a01648997db5ed7693fc6b3978"
}
],
"arc_access_policy_asset_attributes_read": [
{
"0x4609ea6bbe85F61bc64760273ce6D89A632B569f": "wallet",
"SmL4PHAHXLdpkj/c6Xs+2br+hxqLmhcRk75Hkj5DyEQ=": "tessera",
"attribute": "*"
}
],
"arc_access_policy_event_arc_display_type_read": [
{
"SmL4PHAHXLdpkj/c6Xs+2br+hxqLmhcRk75Hkj5DyEQ=": "tessera",
"value": "*",
"0x4609ea6bbe85F61bc64760273ce6D89A632B569f": "wallet"
}
]
},
"asset_attributes": {
"foo": "bar",
"arc_description": "This asset is public",
"arc_display_name": "Public Asset",
"arc_display_type": "Asset"
},
"operation": "NewAsset",
"behaviour": "AssetCreator",
"timestamp_declared": "2022-07-06T13:38:34Z",
"timestamp_accepted": "2022-07-06T13:38:34Z",
"timestamp_committed": "2022-07-06T13:38:35.143791572Z",
"principal_declared": {
"issuer": "",
"subject": "",
"display_name": "",
"email": ""
},
"principal_accepted": {
"issuer": "",
"subject": "",
"display_name": "",
"email": ""
},
"confirmation_status": "COMMITTED",
"transaction_id": "",
"block_number": 0,
"transaction_index": 0,
"from": "0x5eC362570D1b52a01648997db5ed7693fc6b3978",
"tenant_identity": "tenant/8e0b600c-8234-43e4-860c-e95bdcd695a9"
}
],
"next_page_token": ""
}
Fetch a Public Asset’s Specific Event Record
curl -H "Content-Type: application/json" https://app.datatrails.ai/archivist/v2/publicassets/86b61c4b-030e-4c07-9400-463612e6cee4/events/7da272ad-19d5-4106-b4af-2980a84c2721
{
"identity": "assets/86b61c4b-030e-4c07-9400-463612e6cee4/events/083f90fb-c379-40db-b56a-190564d53cd5",
"asset_identity": "assets/86b61c4b-030e-4c07-9400-463612e6cee4",
"event_attributes": {
"arc_display_type": "Change",
},
"asset_attributes": {
"A": "B"
},
"operation": "Record",
"behaviour": "RecordEvidence",
"timestamp_declared": "2022-07-06T14:56:24Z",
"timestamp_accepted": "2022-07-06T14:56:24Z",
"timestamp_committed": "2022-07-06T14:56:24.681514884Z",
"principal_declared": {
"issuer": "",
"subject": "",
"display_name": "",
"email": ""
},
"principal_accepted": {
"issuer": "",
"subject": "",
"display_name": "",
"email": ""
},
"confirmation_status": "COMMITTED",
"transaction_id": "",
"block_number": 0,
"transaction_index": 0,
"from": "0x5eC362570D1b52a01648997db5ed7693fc6b3978",
"tenant_identity": "tenant/8e0b600c-8234-43e4-860c-e95bdcd695a9"
}
Public Assets OpenAPI Docs
API for public asset and event management.
get /archivist/v2/publicassets/{asset_uuid}/events/{uuid}
Retrieves Archivist event for public asset
Description: Retrieves a specific Archivist event for a public asset
{
"asset_attributes": {
"colour": "Midnight Blue"
},
"asset_identity": "publicassets/add30235-1424-4fda-840a-d5ef82c4c96f",
"behaviour": "RecordEvidence",
"block_number": 12,
"confirmation_status": "CONFIRMED",
"event_attributes": {
"arc_description": "Painted the fence",
"arc_display_type": "Paint"
},
"identity": "publicassets/add30235-1424-4fda-840a-d5ef82c4c96f/events/11bf5b37-e0b8-42e0-8dcf-dc8c4aefc000",
"operation": "Record",
"principal_accepted": {
"issuer": "job.idp.server/1234",
"subject": "bob@job"
},
"principal_declared": {
"issuer": "job.idp.server/1234",
"subject": "bob@job"
},
"tenant_identity": "tenant/8e0b600c-8234-43e4-860c-e95bdcd695a9",
"timestamp_accepted": "2019-11-27T14:44:19Z",
"timestamp_committed": "2019-11-27T14:44:19Z",
"timestamp_declared": "2019-11-27T14:44:19Z",
"transaction_id": "0x07569",
"transaction_index": 5
}
Response Parameter | Type | Description |
---|---|---|
asset_attributes | object | key value mapping of asset attributes |
asset_identity | string | identity of a related asset resource publicassets/11bf5b37-e0b8-42e0-8dcf-dc8c4aefc000 |
behaviour | string | The behaviour used to create event. RecordEvidence |
block_number | string | number of block event was commited on |
confirmation_status | string | indicates if the event has been succesfully committed to the blockchain |
event_attributes | object | key value mapping of event attributes |
from | string | wallet address for the creator of this event |
identity | string | identity of a event resource |
merklelog_entry | object | verifiable merkle mmr log entry details |
operation | string | The operation represented by the event. Record |
principal_accepted | object | principal recorded by the server |
principal_declared | object | principal provided by the user |
tenant_identity | string | Identity of the tenant the that created this event |
timestamp_accepted | string | time of event as recorded by the server |
timestamp_committed | string | time of event as recorded in verifiable storage |
timestamp_declared | string | time of event as declared by the user |
transaction_id | string | hash of the transaction as a hex string 0x11bf5b37e0b842e08dcfdc8c4aefc000 |
transaction_index | string | index of event within commited block |
Responses | Description |
---|---|
200 | A successful response. |
404 | Returned when the event does not exist. |
get /archivist/v2/publicassets/{uuid}
Retrieves a specific public Archivist asset
Description: Retrieves a specific public Archivist asset
{
"at_time": "2019-11-27T14:44:19Z",
"attributes": {
"arc_display_name": "My Garden Fence",
"arc_display_type": "Garden Fence",
"colour": "Plain wood"
},
"behaviours": [
"RecordEvidence"
],
"confirmation_status": "PENDING",
"identity": "publicassets/add30235-1424-4fda-840a-d5ef82c4c96f",
"owner": "0x601f5A7D3e6dcB55e87bf2F17bC8A27AaCD3511",
"proof_mechanism": "MERKLE_LOG",
"public": false,
"tenant_identity": "tenant/8e0b600c-8234-43e4-860c-e95bdcd695a9",
"tracked": "TRACKED"
}
Response Parameter | Type | Description |
---|---|---|
access_policy | object | key value mapping of behaviour to private for keys |
at_time | string | indicates time the asset data is from |
attributes | object | key value mapping of asset properties |
behaviours | array | list of behaviours enabled for this asset |
chain_id | string | chain id of the blockchain associated with this asset |
confirmation_status | string | indicates if the asset has been succesfully committed to the blockchain |
identity | string | relative resource address publicassets/{UUID} |
owner | string | wallet address of the asset owner |
proof_mechanism | string | the mechanism used to provide evidential proof |
public | boolean | Public asset |
tenant_identity | string | Identity of the tenant the that created this asset |
tracked | string | indicates whether asset is still being tracked in the system |
Responses | Description |
---|---|
200 | A successful response. |
404 | Returned when the no asset with the provided id can be found. |
get /archivist/v2/publicassets/{uuid}/events
List Archivist events for a public asset
Description: Lists Archivist events for a public asset
{
"events": [
{
"asset_attributes": {
"colour": "Midnight Blue"
},
"asset_identity": "publicassets/add30235-1424-4fda-840a-d5ef82c4c96f",
"behaviour": "RecordEvidence",
"block_number": 12,
"confirmation_status": "CONFIRMED",
"event_attributes": {
"arc_description": "Painted the fence",
"arc_display_type": "Paint"
},
"identity": "publicassets/add30235-1424-4fda-840a-d5ef82c4c96f/events/11bf5b37-e0b8-42e0-8dcf-dc8c4aefc000",
"operation": "Record",
"principal_accepted": {
"issuer": "job.idp.server/1234",
"subject": "bob@job"
},
"principal_declared": {
"issuer": "job.idp.server/1234",
"subject": "bob@job"
},
"tenant_identity": "tenant/8e0b600c-8234-43e4-860c-e95bdcd695a9",
"timestamp_accepted": "2019-11-27T14:44:19Z",
"timestamp_committed": "2019-11-27T14:44:19Z",
"timestamp_declared": "2019-11-27T14:44:19Z",
"transaction_id": "0x07569",
"transaction_index": 5
},
{
"asset_attributes": {
"arc_firmware_version": "3.2.1"
},
"asset_identity": "publicassets/bf330235-1424-4fda-840a-d5ef82c4c96f",
"behaviour": "RecordEvidence",
"block_number": 13,
"confirmation_status": "CONFIRMED",
"event_attributes": {
"arc_display_type": "Update Firmware"
},
"identity": "publicassets/bf330235-1424-4fda-840a-d5ef82c4c96f/events/23c06c48-e0b8-42e0-8dcf-dc8c4fdad123",
"operation": "Record",
"principal_accepted": {
"issuer": "job.idp.server/1234",
"subject": "bob@job"
},
"principal_declared": {
"issuer": "job.idp.server/1234",
"subject": "bob@job"
},
"tenant_identity": "tenant/8e0b600c-8234-43e4-860c-e95bdcd695a9",
"timestamp_accepted": "2019-07-27T14:44:19Z",
"timestamp_committed": "2019-07-27T14:44:19Z",
"timestamp_declared": "2019-07-27T14:44:19Z",
"transaction_id": "0x12569",
"transaction_index": 6
}
],
"next_page_token": "abcd"
}
Response Parameter | Type | Description |
---|---|---|
events | array | This describes an Event. |
next_page_token | string | Token to retrieve the next page of results or empty if there are none. |
Responses | Description |
---|---|
200 | A successful response. |
206 | The number of events exceeds the servers limit. The approximate number of matching results is provided by the x-total-count header, the exact limit is available in the content-range header. The value format is ‘items 0-LIMIT/TOTAL’. Note that x-total-count is always present for 200 and 206 responses. It is the servers best available approximation. Similarly, in any result set, you may get a few more than LIMIT items. |