diff --git a/README.md b/README.md
index 03706b580..1fb45d9f6 100644
--- a/README.md
+++ b/README.md
@@ -15,7 +15,7 @@ We'll happily review any suggestions!
1. To begin, pull the latest DataTrails docs from Github.
```bash
-git clone git@github.com/datatrails/datatrails-docs.git
+git clone git@github.com:datatrails/datatrails-docs.git
```
2. Move into the directory.
@@ -33,7 +33,7 @@ npm install
4. To run a local DataTrails Docs Server, it is advisable to use the `rkvst-doks` wrapper.
```bash
-rkvst-doks start
+./rkvst-doks start
```
This will build a local version of the server that can be accessed at [http://localhost:1313](https://localhost:1313).
diff --git a/content/developers/api-reference/_index.md b/content/developers/api-reference/_index.md
index 1b6f08272..d7e3f1dac 100644
--- a/content/developers/api-reference/_index.md
+++ b/content/developers/api-reference/_index.md
@@ -20,7 +20,6 @@ aliases:
Asset-Events API →
Attachments API →
Blobs API →
- Compliance API →
Events API →
IAM Policies API →
IAM Subjects API →
diff --git a/content/developers/api-reference/caps-api/index.md b/content/developers/api-reference/caps-api/index.md
index 818667eab..a47042e93 100644
--- a/content/developers/api-reference/caps-api/index.md
+++ b/content/developers/api-reference/caps-api/index.md
@@ -6,15 +6,15 @@ date: 2024-03-05T11:30:29Z
lastmod: 2024-03-05T11:30:29Z
draft: false
images: []
-menu:
+menu:
developers:
parent: "api-reference"
weight: 999
toc: true
---
{{< note >}}
-**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](https://www.postman.com/datatrails-inc/workspace/datatrails-public/overview), the [YAML runner](/developers/yaml-reference/story-runner-components/) or the [Developers](https://app.datatrails.ai) section of the web UI.
+**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](https://www.postman.com/datatrails-inc/workspace/datatrails-public/overview), the [YAML runner](/developers/yaml-reference/story-runner-components/) or the [Developers](https://app.datatrails.ai) section of the web UI.
Additional YAML examples can be found in the articles in the [Overview](/platform/overview/introduction/) section.
{{< /note >}}
@@ -29,7 +29,7 @@ Retrieve the number of remaining Access Policies:
```bash
curl -g -v -X GET \
-H "@$HOME/.datatrails/bearer-token.txt" \
- "https://app.datatrails.ai/archivist/v1/caps?service=access_policies"
+ "https://app.datatrails.ai/archivist/v1/caps?service=access_policies"
```
The response is:
@@ -49,7 +49,6 @@ These are the available values for "**?service=**":
* applications
* assets
* blobs
-* compliance_policies
* locations
* members
diff --git a/content/developers/api-reference/compliance-api/index.md b/content/developers/api-reference/compliance-api/index.md
deleted file mode 100644
index 9fb19b064..000000000
--- a/content/developers/api-reference/compliance-api/index.md
+++ /dev/null
@@ -1,276 +0,0 @@
----
-title: "Compliance API"
-description: "Compliance API Reference"
-lead: "Compliance API Reference"
-date: 2021-06-09T12:07:13+01:00
-lastmod: 2021-06-09T12:07:13+01:00
-draft: false
-images: []
-menu:
- developers:
- parent: "api-reference"
-weight: 111
-toc: true
-aliases:
- - /docs/api-reference/compliance-api/
----
-{{< note >}}
-**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](https://www.postman.com/datatrails-inc/workspace/datatrails-public/overview), the [YAML runner](/developers/yaml-reference/story-runner-components/) or the [Developers](https://app.datatrails.ai) section of the web UI.
-
-Additional YAML examples can be found in the articles in the [Overview](/platform/overview/introduction/) section.
-{{< /note >}}
-## Compliance API Examples
-
-Create the [bearer_token](/developers/developer-patterns/getting-access-tokens-using-app-registrations) and store in a file in a secure local directory with 0600 permissions.
-
-### Types of Compliance Policies
-
-Compliance posture is measured against user-defined rule sets called Compliance Policies.
-
-Compliance Policies are created once and then Assets can be tested against them at any point in time.
-
-For instance, a policy might state that “Maintenance Alarm Events must be addressed with a Maintenance Report Event recorded in 72 hours”.
-
-This creates a Compliance Policy object in the system against which any Asset can be tested as needed.
-
-DataTrails allows users to define Compliance Policies of the following types:
-
-#### COMPLIANCE_SINCE
-
-This Compliance Policy checks if the time since the last occurrence of a specific Event type has elapsed a specified threshold.
-
-For example “Time since last Maintenance must be less than 72 hours”:
-
-```json
-{
- "compliance_type": "COMPLIANCE_SINCE",
- "description": "Maintenance should be performed every 72h",
- "display_name": "Regular Maintenance",
- "asset_filter": [
- { "or": ["attributes.arc_home_location_identity=locations/5eef2b71-35c1-4376-a166-6c64bfa72f4b"]}
- ],
- "event_display_type": "Maintenance Performed",
- "time_period_seconds": "259200"
-}
-```
-
-{{< table >}}
-| Attribute | Description |
-|-----------|-------------|
-| `event_display_type` | Type of Event we want to check with this Compliance Policy |
-| `time_period_seconds` | The maximum amount of time allowed since a specified Event type last occurred, in seconds |
-{{< /table >}}
-
-#### COMPLIANCE_CURRENT_OUTSTANDING
-
-This Compliance Policy will only pass if there is an associated closing event addressing a specified outstanding Event.
-
-To correlate Events, define the attribute `arc_correlation_value` in the Event attributes and set it to the same value on each pair of Events that are to be associated.
-
-{{< note >}}
-**Note:** To properly track and assess Events, the `arc_correlation_value` should be unique to each pair of Events.
-{{< /note >}}
-
-For example, defining pairs of Events like `Maintenance Request` and `Maintenance Performed`:
-
-```json
-{
- "compliance_type": "COMPLIANCE_CURRENT_OUTSTANDING",
- "description": "There should be no outstanding Maintenance Requests",
- "display_name": "Outstanding Maintenance Requests",
- "asset_filter": [
- { "or": ["attributes.arc_home_location_identity=locations/5eef2b71-35c1-4376-a166-6c64bfa72f4b"]}
- ],
- "event_display_type": "Maintenance Request",
- "closing_event_display_type": "Maintenance Performed"
-}
-```
-
-{{< table >}}
-| Attribute | Description |
-|-----------|-------------|
-| `event_display_type` | Type of Event that should be addressed by the Event defined in `closing_event_display_type` |
-| `closing_event_display_type` | Type of Event addressing the Event defined in `event_display_type` |
-{{< /table >}}
-
-#### COMPLIANCE_PERIOD_OUTSTANDING
-
-This Compliance Policy will only pass if the time between a pair of correlated Events did not exceed the defined threshold.
-
-To correlate Events, define the attribute `arc_correlation_value` in the Event attributes and set it to the same value on each pair of Events that are to be associated.
-
-{{< note >}}
-**Note:** To properly track and assess Events, the `arc_correlation_value` should be unique to each pair of Events.
-{{< /note >}}
-
-For example, a policy checking that the time between `Maintenance Request` and `Maintenance Performed` Events does not exceed the maximum 72 hours:
-
-```json
-{
- "compliance_type": "COMPLIANCE_PERIOD_OUTSTANDING",
- "description": "There should be no outstanding Maintenance Requests",
- "display_name": "Outstanding Maintenance Requests",
- "asset_filter": [
- { "or": ["attributes.arc_home_location_identity=locations/5eef2b71-35c1-4376-a166-6c64bfa72f4b"]}
- ],
- "event_display_type": "Maintenance Request",
- "closing_event_display_type": "Maintenance Performed",
- "time_period_seconds": "259200"
-}
-```
-
-{{< table >}}
-| Attribute | Description |
-|-----------|-------------|
-| `event_display_type` | Type of Event that should be addressed by the Event defined in `closing_event_display_type` |
-| `closing_event_display_type` | Type of Event addressing the Event defined in `event_display_type` |
-| `time_period_seconds` | Maximum amount of time that can elapse between associated Events, in seconds |
-{{< /table >}}
-
-#### COMPLIANCE_DYNAMIC_TOLERANCE
-
-This Compliance Policy will only pass if the time between correlated Events is not excessively different to the observed average normal duration for similar Events.
-
-To correlate Events, define the attribute `arc_correlation_value` in the Event attributes and set it to the same value on each pair of Events that are to be associated.
-
-{{< note >}}
-**Note:** To properly track and assess Events, the `arc_correlation_value` should be unique to each pair of Events.
-{{< /note >}}
-
-For example, a policy checking that the time between `Maintenance Request` and `Maintenance Performed` Events in the last week does not exceed a variability of 0.5 standard deviations around the mean:
-
-```json
-{
- "compliance_type": "COMPLIANCE_DYNAMIC_TOLERANCE",
- "description": "Average time between Maintenance Requested/Performed",
- "display_name": "Outlying Maintenance Requests",
- "asset_filter": [
- { "or": ["attributes.arc_home_location_identity=locations/5eef2b71-35c1-4376-a166-6c64bfa72f4b"]}
- ],
- "event_display_type": "Maintenance Request",
- "closing_event_display_type": "Maintenance Performed",
- "dynamic_window": 604800,
- "dynamic_variability": 0.5
-}
-```
-
-{{< table >}}
-| Attribute | Description |
-|-----------|-------------|
-| `event_display_type` | Type of Event that should be addressed by the Event defined in `closing_event_display_type` |
-| `closing_event_display_type` | Type of Event addressing the Event defined in `event_display_type` |
-| `dynamic_window` | Number of seconds in the past - only Events in this time window are considered |
-| `dynamic_variability` | Exceeding this number of standard deviations from the mean will cause compliance to fail for a particular pair of matching Events |
-{{< /table >}}
-
-#### COMPLIANCE_RICHNESS
-
-This Compliance Policy will only pass if attributes are within expected bounds or otherwise meet defined conditions.
-
-An assertion is comprised of: an attribute name, a comparison value and an operator to compare with; for example `rad<7`.
-
-The operator can be one of six relational operators: equal to, not equal to, greater than, less than, greater than or equal to, less than or equal to; `[=|!=|>|<|>=|<=]`.
-
-Assertions are comprised of two lists, an inner list and outer list. The inner list states that, if any of the assertions pass, then the list is compliant (`OR` logic). For example:
-
-```json
-{“or”: [“rad<7”, “rad=10”]}.
-```
-
-The outer list states that, all inner lists need to be compliant in order for the policy to be compliant (`AND` logic).
-
-Compliance is a signal, not a perfect answer. Therefore equivalence of floats is exact, not approximate.
-
-```json
-{
- "compliance_type": "COMPLIANCE_RICHNESS",
- "description": "Rad level is less than 7",
- "display_name": "Rad limit",
- "asset_filter": [
- { "or": ["attributes.arc_home_location_identity=locations/5eef2b71-35c1-4376-a166-6c64bfa72f4b"]}
- ],
- "richness_assertions": [
- { "or": ["rad<7"]}
- ],
-}
-```
-
-{{< table >}}
-| Attribute | Description |
-|-----------|-------------|
-| `richness_assertions`| The assertions to be made, against Asset attributes, to check if the Asset is compliant. |
-{{< /table >}}
-
-### Compliance Policy Creation
-
-Create a Compliance Policy with:
-
-```bash
-curl -v -X POST \
- -H "@$HOME/.datatrails/bearer-token.txt" \
- -H "Content-type: application/json" \
- -d "@/path/to/jsonfile" \
- https://app.datatrails.ai/archivist/v1/compliance_policies
-```
-
-Using data from `/path/to/jsonfile` in the format described in [Types of Compliance Policies](#types-of-compliance-policies).
-
-Sample response:
-
-```json
-{
- "identity": "compliance_policies/6a951b62-0a26-4c22-a886-1082297b063b",
- "compliance_type": "COMPLIANCE_CURRENT_OUTSTANDING",
- "description": "There should be no outstanding Maintenance Requests",
- "display_name": "Outstanding Maintenance Requests",
- "asset_filter": [
- { "or": ["attributes.arc_home_location_identity=locations/5eef2b71-35c1-4376-a166-6c64bfa72f4b"]}
- ],
- "event_display_type": "Maintenance Request",
- "closing_event_display_type": "Maintenance Performed",
- "time_period_seconds": "259200"
-}
-```
-
-### Checking Compliance
-
-The compliance v1 endpoint reports on the status of an Asset’s compliance with Compliance Policies.
-
-Query the endpoint:
-
-```bash
-curl -v -X GET \
- -H "@$HOME/.datatrails/bearer-token.txt" \
- https://app.datatrails.ai/archivist/v1/compliance/assets/6a951b62-0a26-4c22-a886-1082297b063b
-```
-
-or if determining compliance at some historical date:
-
-```bash
-curl -v -X GET \
- -H "@$HOME/.datatrails/bearer-token.txt" \
- "https://app.datatrails.ai/archivist/v1/compliance/assets/6a951b62-0a26-4c22-a886-1082297b063b?compliant_at=2019-11-27T14:44:19Z"
-```
-
-The response is:
-
-```json
-{
- "compliant": true,
- "compliance": [
- {
- "compliance_policy_identity": "compliance_policies/0000-0000-000000000-00000000",
- "compliant": true,
- "reason": ""
- }
- ],
- "compliant_at": "2019-11-27T14:44:19Z"
-}
-```
-
-## Compliance OpenAPI Docs
-
-{{< openapi url="https://raw.githubusercontent.com/datatrails/datatrails-openapi/main/doc/complianceassetsv1.swagger.json" >}}
-
-{{< openapi url="https://raw.githubusercontent.com/datatrails/datatrails-openapi/main/doc/compliancepoliciesv1.swagger.json" >}}
diff --git a/content/developers/yaml-reference/_index.md b/content/developers/yaml-reference/_index.md
index ae9dcece3..9ae1c065b 100644
--- a/content/developers/yaml-reference/_index.md
+++ b/content/developers/yaml-reference/_index.md
@@ -8,7 +8,7 @@ draft: false
images: []
weight: 999
toc: true
-aliases:
+aliases:
- /docs/yaml-reference/
---
diff --git a/content/developers/yaml-reference/assets/index.md b/content/developers/yaml-reference/assets/index.md
index f7b48f9a8..0780b4767 100644
--- a/content/developers/yaml-reference/assets/index.md
+++ b/content/developers/yaml-reference/assets/index.md
@@ -6,12 +6,12 @@ date: 2021-06-09T11:39:03+01:00
lastmod: 2021-06-09T11:39:03+01:00
draft: false
images: []
-menu:
+menu:
developers:
parent: "yaml-reference"
weight: 202
toc: true
-aliases:
+aliases:
- /docs/yaml-reference/assets/
---
@@ -23,7 +23,8 @@ aliases:
## Assets Create
-Adding an `asset_label` allows your Asset to be referenced in later steps of the story. For example, if you want to add a Compliance Policy for the Asset after it is created.
+Adding an `asset_label` allows your Asset to be referenced in later steps of the story.
+For example, when you want to add an Event to the Asset after it is created.
The `arc_namespace` (for the Asset) and the `namespace` (for the location) are used to distinguish between Assets and Locations created between runs of the story. Usually, these field values are derived from an environment variable `ARCHIVIST_NAMESPACE` (default value is namespace).
diff --git a/content/developers/yaml-reference/compliance/index.md b/content/developers/yaml-reference/compliance/index.md
deleted file mode 100644
index 4be2e7a6f..000000000
--- a/content/developers/yaml-reference/compliance/index.md
+++ /dev/null
@@ -1,62 +0,0 @@
----
-title: "Compliance Policies YAML Runner"
-description: "Compliance Policy Actions Used with the Yaml Runner"
-lead: "Compliance Policy Actions Used with the Yaml Runner"
-date: 2021-06-09T11:39:03+01:00
-lastmod: 2021-06-09T11:39:03+01:00
-draft: false
-images: []
-menu:
- developers:
- parent: "yaml-reference"
-weight: 206
-toc: true
-aliases:
- - /docs/yaml-reference/compliance/
----
-
-{{< note >}}
-**Note:** To use the YAML Runner you will need to install the `datatrails-archivist` python package.
-
-[Click here](https://python.datatrails.ai/runner/index.html) for installation instructions.
-{{< /note >}}
-
-## Compliance Policies Create
-
-This action creates a Compliance Policy that assets may be tested against.
-
-The specific fields required for creating Compliance Policies vary depending on the type of policy being used. Please see the [Compliance Policies](/platform/administration/compliance-policies/) section for details regarding Compliance Policy types and YAML Runner examples of each.
-
-For example, a `COMPLIANCE_RICHNESS` policy that asserts radiation level must be less than 7:
-
-```yaml
----
-steps:
- - step:
- action: COMPLIANCE_POLICIES_CREATE
- description: Create COMPLIANCE_RICHNESS policy
- print_response: true
- description: "Radiation level must be less than 7"
- display_name: Rad Limit
- compliance_type: COMPLIANCE_RICHNESS
- asset_filter:
- - or: [ "attributes.arc_home_location_identity=locations/" ]
- richness_assertions:
- - or: [ "radiation_level<7" ]
-```
-
-## Compliance Compliant At
-
-The `COMPLIANCE_COMPLIANT_AT` action checks an Asset against its Compliance Policies.
-
-`asset_label` is required, and may be specified as the friendly name defined in a previous step or as the Asset ID of an existing subject, in the form `assets/`. Setting `report: true` will trigger a report to be printed on the Asset's compliance status.
-
-```yaml
----
-steps:
- - step:
- action: COMPLIANCE_COMPLIANT_AT
- description: Check Compliance of EV pump 1.
- report: true
- asset_label: ev pump 1
-```
diff --git a/content/developers/yaml-reference/events/index.md b/content/developers/yaml-reference/events/index.md
index b5a08941a..f383b5c82 100644
--- a/content/developers/yaml-reference/events/index.md
+++ b/content/developers/yaml-reference/events/index.md
@@ -6,12 +6,12 @@ date: 2021-06-09T11:39:03+01:00
lastmod: 2021-06-09T11:39:03+01:00
draft: false
images: []
-menu:
+menu:
developers:
parent: "yaml-reference"
weight: 203
toc: true
-aliases:
+aliases:
- /docs/yaml-reference/events/
---
@@ -47,7 +47,6 @@ steps:
arc_description: Opened Courts of Justice Paris Front Door
arc_display_type: open
arc_evidence: ARQC 0x12345678
- arc_correlation_value: be5c8061-236d-4400-a625-b74a34e5801b
wavestone_door_name: Courts of Justice Paris Front Door
wavestone_evt_type: door_open
location:
diff --git a/content/developers/yaml-reference/story-runner-components/index.md b/content/developers/yaml-reference/story-runner-components/index.md
index 67a680c2c..be81e6975 100644
--- a/content/developers/yaml-reference/story-runner-components/index.md
+++ b/content/developers/yaml-reference/story-runner-components/index.md
@@ -6,12 +6,12 @@ date: 2021-06-09T11:39:03+01:00
lastmod: 2021-06-09T11:39:03+01:00
draft: false
images: []
-menu:
+menu:
developers:
parent: "yaml-reference"
weight: 201
toc: true
-aliases:
+aliases:
- /docs/yaml-reference/story-runner-components/
---
@@ -29,7 +29,7 @@ aliases:
| **location_label** | For a series of steps run as one file, the location label could be a friendly name used by later steps to refer back to a location created in a previous step. If the location already exists, this field may be used to reference the Location ID in the form `locations/`. |
| **subject_label** | For a series of steps run as one file, the Subject label could be a friendly name used by later steps to refer back to a Subject created in a previous step. If the Subject already exists, this field may be used to reference the Subject ID in the form `subjects/`. |
| **print_response** | Specifying this field as true emits a JSON representation of the response, useful for debugging purposes. |
-| **wait_time** | Optional field specifying a number of seconds the story runner will pause before executing the next step. Useful for demonstration and/or testing Compliance Policies. |
+| **wait_time** | Optional field specifying a number of seconds the story runner will pause before executing the next step. Useful for live demonstrations.
Each step of the YAML Runner follows the same general pattern:
diff --git a/content/glossary/common-datatrails-terms/index.md b/content/glossary/common-datatrails-terms/index.md
index a9087f0d5..311950ce0 100644
--- a/content/glossary/common-datatrails-terms/index.md
+++ b/content/glossary/common-datatrails-terms/index.md
@@ -6,12 +6,12 @@ date: 2022-10-19T07:39:44-07:00
lastmod: 2022-10-19T07:39:44-07:00
draft: false
images: []
-menu:
+menu:
glossary:
parent: "glossary"
weight: 51
toc: true
-aliases:
+aliases:
- /docs/glossary/common-rkvst-terms/
---
@@ -30,7 +30,6 @@ Select a term for more information.
| [audit trail](https://en.wiktionary.org/wiki/audit_trail) | a formal record of activities (Events) that are made against a piece of data (an Asset)|
| [bearer token](/platform/overview/creating-an-asset/#creating-an-asset) | access token for DataTrails API; created using Custom Integration credentials |
| [behaviors](/platform/overview/creating-an-asset/#creating-an-asset) | detail what class of events in an Asset lifecycle you might wish to record |
-| [compliance policy](/platform/administration/compliance-policies/) | user-defined rule sets that Assets can be tested against
| [custom integration](/developers/developer-patterns/getting-access-tokens-using-app-registrations/#creating-an-app-registration) | client ID and client secret credentials that are used to access the DataTrails API. Formerly known as an App Registration |
| [document hash](/developers/developer-patterns/document-profile/) | cryptographic 'fingerprint' of a file or document that proves it is unmodified|
| [document status](/developers/developer-patterns/document-profile/) | when dealing with Document profile Assets in DataTrails you can attach certain lifecycle stage metadata to them such as 'Draft', 'Published', or 'Withdrawn' in order to properly convey whether or not someone checking provenance of the document should rely on a particular version|
@@ -42,7 +41,7 @@ Select a term for more information.
| [leaf](/developers/developer-patterns/navigating-merklelogs/) | a leaf is the term used for a node in the Merkle tree. It is labeled with a hash of the data block that it contains. Each leaf is stored in a massif |
| [linked folder](/platform/administration/dropbox-integration/#editing-the-list-of-linked-folders) | a folder that has been selected to be linked to DataTrails during the configuration of an Integration|
| [massif](/developers/developer-patterns/navigating-merklelogs/) | the Merkle log is divided into massifs each of which stores the verification data for a fixed number of leaves |
-| [Merkle log](/developers/developer-patterns/navigating-merklelogs/) | the Merkle log is the name for the verifiable data structure that is used by DataTrails to store the Event transaction data. It is append only and is based on a type of Merkle tree that is built from multiple massifs |
+| [Merkle log](/developers/developer-patterns/navigating-merklelogs/) | the Merkle log is the name for the verifiable data structure that is used by DataTrails to store the Event transaction data. It is append only and is based on a type of Merkle tree that is built from multiple massifs |
| [Merkle Mountain Range (MMR)](/developers/developer-patterns/navigating-merklelogs/) | As the massifs grow and multiply, the structure is called a Merkle Mountain Range (MMR) representing the multiple peaks. Its key characteristic is that previously added values, and also the organization of those values, does not change as new entries are appended to the log |
| [metadata](https://en.wiktionary.org/wiki/metadata) | structured information about a file. In DataTrails this metadata is recorded in the Asset and Event attributes|
| [OBAC](/platform/administration/sharing-access-outside-your-tenant/) | Organization-Based Access Control; policy allows sharing with the Administrator of another organization |
diff --git a/content/glossary/reserved-attributes/index.md b/content/glossary/reserved-attributes/index.md
index 114ff5fab..c1dfd8a3d 100644
--- a/content/glossary/reserved-attributes/index.md
+++ b/content/glossary/reserved-attributes/index.md
@@ -6,12 +6,12 @@ date: 2022-10-19T07:39:44-07:00
lastmod: 2022-10-19T07:39:44-07:00
draft: false
images: []
-menu:
+menu:
glossary:
parent: "glossary"
weight: 52
toc: true
-aliases:
+aliases:
- /docs/glossary/reserved-attributes/
---
@@ -37,7 +37,6 @@ Select an attribute to see an example of it in use.
| [arc_blob_hash_value](/developers/api-reference/blobs-api/) | When `arc_attribute_type` = `"arc_attachment"`, the value must equal the hash value within the associated `arc_blob_identity`|
| [arc_blob_identity](/developers/api-reference/blobs-api/) | A reference to a [Blob](/developers/api-reference/blobs-api/) |
| [arc_blob_hash_alg](/developers/api-reference/blobs-api/) | The algorithm of the `arc_blob_hash_value` (eg: "SHA256") |
-| [arc_correlation_value](/platform/administration/compliance-policies/#creating-a-compliance-policy) | links Events together for evaluation in Compliance Policies |
| [arc_description](/developers/api-reference/asset-events-api/#event-creation) | brief description of the Event being recorded |
| [arc_display_type](/developers/api-reference/asset-events-api/) | classification of the type of Event being performed that can be used for grouping or access control |
| [arc_file_name](/developers/api-reference/blobs-api/) | When `arc_attribute_type` = `"arc_attachment"`, the file name of the blob. |
diff --git a/content/platform/administration/compliance-policies/index.md b/content/platform/administration/compliance-policies/index.md
deleted file mode 100644
index 84f0498de..000000000
--- a/content/platform/administration/compliance-policies/index.md
+++ /dev/null
@@ -1,459 +0,0 @@
----
- title: "Compliance Policies"
- description: "Creating and Managing Compliance Policies"
- lead: "Creating and Managing Compliance Policies"
- date: 2021-05-18T14:52:25+01:00
- lastmod: 2021-05-18T14:52:25+01:00
- draft: false
- images: []
- menu:
- platform:
- parent: "administration"
- weight: 46
- toc: true
- aliases:
- - /docs/beyond-the-basics/compliance-policies/
----
-
-## Creating a Compliance Policy
-
-Compliance Policies are user-defined rule sets that Assets can be tested against. Compliance Policies only need to be created once; all applicable Assets will be tested against that policy thereafter.
-
-For example, a policy might assert that “Maintenance Alarm Events must be addressed by a Maintenance Report Event, recorded within 72 hours of the alarm”. This creates a Compliance Policy in the system which any Asset can be tested against as needed.
-
-As compliance is ensured by a regular series of Events, an Audit Trail builds up over time that allows compliance to be checked for the entire lifetime of the Asset.
-
-{{< note >}}
-**Note:** Creation and editing of Compliance Policies is **only supported through the API**.
-{{< /note >}}
-
-DataTrails allows for several types of Compliance Policies:
-
-### COMPLIANCE_SINCE
-Checks that the time elapsed since a specific type of Event has not exceeded a defined threshold.
-
-For example, "time since last maintenance must be less than 72 hours".
-
-{{< tabs name="compliance_since" >}}
-{{< tab name="YAML" >}}
-
-```yaml
----
-steps:
- - step:
- action: COMPLIANCE_POLICIES_CREATE
- description: Create COMPLIANCE_SINCE policy
- print_response: true
- description: Maintenance should be performed every 72h
- display_name: Regular Maintenance
- compliance_type: COMPLIANCE_SINCE
- asset_filter:
- - or: [ "attributes.arc_home_location_identity=locations/" ]
- event_display_type: Maintenance Performed
- time_period_seconds: "259200"
-```
-
-Use the [archivist_runner](https://python.datatrails.ai/runner/index.html) command to run your YAML file!
-
-```bash
-$ archivist_runner \
- -u https://app.datatrails.ai \
- --client-id \
- --client-secret \
-
-```
-
-{{< /tab >}}
-{{< tab name="JSON" >}}
-
-```json
-{
- "compliance_type": "COMPLIANCE_SINCE",
- "description": "Maintenance should be performed every 72h",
- "display_name": "Regular Maintenance",
- "asset_filter": [
- { "or": ["attributes.arc_home_location_identity=locations/"]}
- ],
- "event_display_type": "Maintenance Performed",
- "time_period_seconds": "259200"
-}
-```
-
-Use the curl command to run your JSON file! See instructions for [creating your `BEARER_TOKEN_FILE`](/developers/developer-patterns/getting-access-tokens-using-app-registrations/) here.
-
-```bash
-curl -v -X POST \
- -H "@$HOME/.datatrails/bearer-token.txt" \
- -H "Content-type: application/json" \
- -d "@/path/to/jsonfile" \
- https://app.datatrails.ai/archivist/v1/compliance_policies
-```
-
-{{< /tab >}}}
-{{< /tabs >}}
-
-### COMPLIANCE_CURRENT_OUTSTANDING
-Checks if there is a closing Event addressing an outstanding Event.
-
-To correlate Events, define the attribute `arc_correlation_value` in the Event Attributes and set it to the same value on each pair of Events that are to be associated.
-
-This allows you to identify which closing Event belongs with each opening Event.
-
-{{< note >}}
-**Note:** To properly track and assess Events, the `arc_correlation_value` should be unique to each pair of Events.
-{{< /note >}}
-
-For example, "a Maintenance Request Event must be addressed by a Maintenance Performed Event".
-
-{{< tabs name="compliance_current_outstanding" >}}
-{{< tab name="YAML" >}}
-
-```yaml
----
-steps:
- - step:
- action: COMPLIANCE_POLICIES_CREATE
- description: Create COMPLIANCE_CURRENT_OUTSTANDING policy
- print_response: true
- description: "There should be no outstanding Maintenance Requests"
- display_name: Outstanding Maintenance Requests
- compliance_type: COMPLIANCE_CURRENT_OUTSTANDING
- asset_filter:
- - or: [ "attributes.arc_home_location_identity=locations/" ]
- event_display_type: Maintenance Request
- closing_event_display_type: Maintenance Performed
-```
-
-Use the [archivist_runner](https://python.datatrails.ai/runner/index.html) command to run your YAML file!
-
-```bash
-$ archivist_runner \
- -u https://app.datatrails.ai \
- --client-id \
- --client-secret \
-
-```
-
-{{< /tab >}}
-{{< tab name="JSON" >}}
-
-```json
-{
- "compliance_type": "COMPLIANCE_CURRENT_OUTSTANDING",
- "description": "There should be no outstanding Maintenance Requests",
- "display_name": "Outstanding Maintenance Requests",
- "asset_filter": [
- { "or": ["attributes.arc_home_location_identity=locations/"]}
- ],
- "event_display_type": "Maintenance Request",
- "closing_event_display_type": "Maintenance Performed"
-}
-```
-
-Use the curl command to run your JSON file! See instructions for [creating your `BEARER_TOKEN_FILE`](/developers/developer-patterns/getting-access-tokens-using-app-registrations/) here.
-
-```bash
-curl -v -X POST \
- -H "@$HOME/.datatrails/bearer-token.txt" \
- -H "Content-type: application/json" \
- -d "@/path/to/jsonfile" \
- https://app.datatrails.ai/archivist/v1/compliance_policies
-```
-
-{{< /tab >}}}
-{{< /tabs >}}
-
-### COMPLIANCE_PERIOD_OUTSTANDING
-Checks if the time between correlated Events does not exceed set threshold.
-
-To correlate Events, define the attribute `arc_correlation_value` in the Event Attributes and set it to the same value on each pair of Events that are to be associated.
-
-{{< note >}}
-**Note:** To properly track and assess Events, the `arc_correlation_value` should be unique to each pair of Events.
-{{< /note >}}
-
-For example, "a Maintenance Request Event must be addressed by a Maintenance Performed Event within 72 hours".
-
-{{< tabs name="compliance_period_outstanding" >}}
-{{< tab name="YAML" >}}
-
-```yaml
----
-steps:
- - step:
- action: COMPLIANCE_POLICIES_CREATE
- description: Create COMPLIANCE_PERIOD_OUTSTANDING policy
- print_response: true
- description: There should not be outstanding Maintenance Requests for longer than 72hr
- display_name: Outstanding Maintenance Requests 72hr
- compliance_type: COMPLIANCE_PERIOD_OUTSTANDING
- asset_filter:
- - or: [ "attributes.arc_home_location_identity=locations/" ]
- event_display_type: Maintenance Request
- closing_event_display_type: Maintenance Performed
- time_period_seconds: "259200"
-```
-
-Use the [archivist_runner](https://python.datatrails.ai/runner/index.html) command to run your YAML file!
-
-```bash
-$ archivist_runner \
- -u https://app.datatrails.ai \
- --client-id \
- --client-secret \
-
-```
-
-{{< /tab >}}
-{{< tab name="JSON" >}}
-
-```json
-{
- "compliance_type": "COMPLIANCE_PERIOD_OUTSTANDING",
- "description": "There should be no outstanding Maintenance Requests longer than 72hr",
- "display_name": "Outstanding Maintenance Requests 72hr",
- "asset_filter": [
- { "or": ["attributes.arc_home_location_identity=locations/"]}
- ],
- "event_display_type": "Maintenance Request",
- "closing_event_display_type": "Maintenance Performed",
- "time_period_seconds": "259200"
-}
-```
-
-Use the curl command to run your JSON file! See instructions for [creating your `BEARER_TOKEN_FILE`](/developers/developer-patterns/getting-access-tokens-using-app-registrations/) here.
-
-```bash
-curl -v -X POST \
- -H "@$HOME/.datatrails/bearer-token.txt" \
- -H "Content-type: application/json" \
- -d "@/path/to/jsonfile" \
- https://app.datatrails.ai/archivist/v1/compliance_policies
-```
-
-{{< /tab >}}}
-{{< /tabs >}}
-
-### COMPLIANCE_DYNAMIC_TOLERANCE
-Checks that the time between correlated Events is not excessively different to the observed average normal duration for similar Events.
-
-To correlate Events, define the attribute `arc_correlation_value` in the Event Attributes and set it to the same value on each pair of Events that are to be associated.
-
-{{< note >}}
-**Note:** To properly track and assess Events, the `arc_correlation_value` should be unique to each pair of Events.
-{{< /note >}}
-
-For example, "the time between a Maintenance Request Event and Maintenance Performed Event in the last week does not exceed a variation of 0.5 standard deviations around the mean".
-
-The `dynamic_window` is the time period to evaluate on, in this case, one week. The `dynamic_variability` is the number of standard deviations from the mean allowed, in this case, 0.5.
-
-{{< tabs name="compliance_dynamic_tolerance" >}}
-{{< tab name="YAML" >}}
-
-```yaml
----
-steps:
- - step:
- action: COMPLIANCE_POLICIES_CREATE
- description: Create COMPLIANCE_DYNAMIC_TOLERANCE policy
- print_response: true
- description: Average time between Maintenance Requested/Performed
- display_name: Outlying Maintenance Requests
- compliance_type: COMPLIANCE_DYNAMIC_TOLERANCE
- asset_filter:
- - or: [ "attributes.arc_home_location_identity=locations/" ]
- event_display_type: Maintenance Request
- closing_event_display_type: Maintenance Performed
- dynamic_window: "604800"
- dynamic_variability: "0.5"
-```
-
-Use the [archivist_runner](https://python.datatrails.ai/runner/index.html) command to run your YAML file!
-
-```bash
-$ archivist_runner \
- -u https://app.datatrails.ai \
- --client-id \
- --client-secret \
-
-```
-
-{{< /tab >}}
-{{< tab name="JSON" >}}
-
-```json
-{
- "compliance_type": "COMPLIANCE_DYNAMIC_TOLERANCE",
- "description": "Average time between Maintenance Requested/Performed",
- "display_name": "Outlying Maintenance Requests",
- "asset_filter": [
- { "or": ["attributes.arc_home_location_identity=locations/"]}
- ],
- "event_display_type": "Maintenance Request",
- "closing_event_display_type": "Maintenance Performed",
- "dynamic_window": 604800,
- "dynamic_variability": 0.5
-}
-```
-
-Use the curl command to run your JSON file! See instructions for [creating your `BEARER_TOKEN_FILE`](/developers/developer-patterns/getting-access-tokens-using-app-registrations/) here.
-
-```bash
-curl -v -X POST \
- -H "@$HOME/.datatrails/bearer-token.txt" \
- -H "Content-type: application/json" \
- -d "@/path/to/jsonfile" \
- https://app.datatrails.ai/archivist/v1/compliance_policies
-```
-
-{{< /tab >}}}
-{{< /tabs >}}
-
-### COMPLIANCE_RICHNESS
-Checks whether Attributes are within expected bounds or otherwise meet defined conditions.
-
-This type of policy uses `richness_assertions`. An assertion is comprised of an attribute name, comparison value, and an operator to compare with.
-
-The operator can be one of six relational operators: equal to (`=`), not equal to (`!=`), greater than (`>`), less than (`<`), greater than or equal to (`>=`), less than or equal to (`<=`).
-
-For example, "radiation level must be less than 7".
-
-{{< tabs name="compliance_richness" >}}
-{{< tab name="YAML" >}}
-
-```yaml
----
-steps:
- - step:
- action: COMPLIANCE_POLICIES_CREATE
- description: Create COMPLIANCE_RICHNESS policy
- print_response: true
- description: "Radiation level must be less than 7"
- display_name: Rad Limit
- compliance_type: COMPLIANCE_RICHNESS
- asset_filter:
- - or: [ "attributes.arc_home_location_identity=locations/" ]
- richness_assertions:
- - or: [ "radiation_level<7" ]
-```
-
-Use the [archivist_runner](https://python.datatrails.ai/runner/index.html) command to run your YAML file!
-
-```bash
-$ archivist_runner \
- -u https://app.datatrails.ai \
- --client-id \
- --client-secret \
-
-```
-
-{{< /tab >}}
-{{< tab name="JSON" >}}
-
-```json
-{
- "compliance_type": "COMPLIANCE_RICHNESS",
- "description": "Rad level is less than 7",
- "display_name": "Rad Limit",
- "asset_filter": [
- { "or": ["attributes.arc_home_location_identity=locations/"]}
- ],
- "richness_assertions": [
- { "or": ["radiation_level<7"]}
- ],
-}
-```
-
-Use the curl command to run your JSON file! See instructions for [creating your `BEARER_TOKEN_FILE`](/developers/developer-patterns/getting-access-tokens-using-app-registrations/) here.
-
-```bash
-curl -v -X POST \
- -H "@$HOME/.datatrails/bearer-token.txt" \
- -H "Content-type: application/json" \
- -d "@/path/to/jsonfile" \
- https://app.datatrails.ai/archivist/v1/compliance_policies
-```
-
-{{< /tab >}}}
-{{< /tabs >}}
-
-## Checking Compliance Status
-
-You may check the compliance status of a specific Asset within your tenancy.
-
-{{< tabs name="compliance_status" >}}
-{{< tab name="YAML" >}}
-Create a yaml file, using the desired Asset ID as your `asset_label`. Setting `report: true` will print the compliance information for the Asset when the file is run.
-
-```yaml
----
-steps:
- - step:
- action: COMPLIANCE_COMPLIANT_AT
- description: Check Compliance of desired Asset.
- asset_label: assets/
- report: true
-```
-
-Use the [archivist_runner](https://python.datatrails.ai/runner/index.html) command to run your YAML file!
-
-```bash
-$ archivist_runner \
- -u https://app.datatrails.ai \
- --client-id \
- --client-secret \
-
-```
-
-{{< /tab >}}
-{{< tab name="JSON" >}}
-Run the following command using the desired Asset ID to check its compliance status. See instructions for [creating your `BEARER_TOKEN_FILE`](/developers/developer-patterns/getting-access-tokens-using-app-registrations/) here.
-
-```bash
-curl -v -X GET \
- -H "@$HOME/.datatrails/bearer-token.txt" \
- https://app.datatrails.ai/archivist/v1/compliance/assets/
-```
-
-You may also determine compliance at a [historical date](/platform/overview/advanced-concepts/#perspectives) by adding the desired date to the query.
-
-```bash
-curl -v -X GET \
- -H "@$HOME/.datatrails/bearer-token.txt" \
- "https://app.datatrails.ai/archivist/v1/compliance/assets/?compliant_at=2019-11-27T14:44:19Z"
-```
-
-{{< /tab >}}}
-{{< /tabs >}}
-
-An example response for a non-compliant Asset
-```bash
-{
- "compliant": false,
- "compliance": [
- {
- "compliance_policy_identity": "compliance_policies/71fb7b23-485a-492b-9957-e5d1c9400a76",
- "compliant": false,
- "reason": "No events found"
- }
- ],
- "next_page_token": "",
- "compliant_at": "2024-01-17T10:04:41Z"
-}
-```
-
-An example response for a compliant Asset
-```bash
-{
- "compliant": true,
- "compliance": [
- {
- "compliance_policy_identity": "compliance_policies/71fb7b23-485a-492b-9957-e5d1c9400a76",
- "compliant": true,
- "reason": ""
- }
- ],
- "next_page_token": "",
- "compliant_at": "2024-01-17T10:16:12Z"
-}
-```
\ No newline at end of file
diff --git a/content/platform/overview/advanced-concepts/index.md b/content/platform/overview/advanced-concepts/index.md
index 5ca3d911e..60d204a9a 100644
--- a/content/platform/overview/advanced-concepts/index.md
+++ b/content/platform/overview/advanced-concepts/index.md
@@ -6,12 +6,12 @@ date: 2021-06-14T10:57:58+01:00
lastmod: 2024-03-19T10:57:58+01:00
draft: false
images: []
-menu:
+menu:
platform:
parent: "overview"
weight: 32
toc: true
-aliases:
+aliases:
- /docs/overview/advanced-concepts/
---
@@ -62,7 +62,7 @@ See the [Templates](/developers/templates/) section for domain specific examples
### Deleting Assets (untracking)
An essential value of storing evidence in DataTrails is that data is always available to stakeholders and cannot be shredded or manipulated later.
-Given this, it is not possible to actually delete Assets from the system, but there will be cases where it is desirable to hide Assets in the UI or omit them from default searches or compliance queries (for instance as a result of decommissioning or disposal of the corresponding physical asset).
+Given this, it is not possible to actually delete Assets from the system, but there will be cases where it is desirable to hide Assets in the UI or omit them from default searches (for instance as a result of decommissioning or disposal of the corresponding physical asset).
To accommodate this need DataTrails separates the Asset estate into 2 classes: tracked Assets (those that are interesting to the system and actively recording events) and untracked Assets (those that are no longer actively interesting).
When for any reason it becomes desirable to remove an Asset, the Asset owner can make it *untracked* so that it does not appear in lists or searches.
@@ -195,14 +195,14 @@ A simple Access Policy may look like this:
// Grant access to partner organizations by Subject Identity
"subjects": [
// The Subject Identity for a known partner eg ACME Co
- "subjects/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
+ "subjects/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
],
// Grant access to local users by attribute (eg email address)
- "user_attributes": [
- { "or": [ "email=bill@synsation.com" ] }
+ "user_attributes": [
+ { "or": [ "email=bill@synsation.com" ] }
],
-
+
// Select which Asset attributes these users can see
"asset_attributes_read": [
"arc_display_name",