System History API
Fides monitors system changes and offers an API endpoint for accessing the system history. Additionally, a digest of changes made over a 24-hour period is provided, which can be accessed via a webhook.
Reading from the history API
To access the system history API, please use the following command:
GET /api/v1/plus/system/{fides_key}/history?size=10?page=1
The parameters are:
size
- specifies the number of records to return per callpage
- allows the retrieval of additional results.
Below is an example response illustrating a change to the system name. The record includes:
edited_by
- the user that made the changesystem_id
- unique ID for the systembefore
andafter
- records containing the entire state of the system before and after the changecreated_at
indicating when this system history change was created
{
"items": [
{
"edited_by": "[user]",
"system_id": "[unique_id]",
"before": {
"dpo": "dpo@privacy.com",
"meta": null,
"name": "beginning_name",
"tags": [],
"fides_key": "[fides_key]",
"vendor_id": "[gvl_vendor]",
"legal_name": "[legal_name]",
"description": "[description]",
"registry_id": null,
"system_type": "",
"dpa_location": null,
"dpa_progress": null,
"fidesctl_meta": null,
"legal_address": "[legal_address]",
"privacy_policy": "[privacy_policy]",
"responsibility": [],
"uses_profiling": false,
"joint_controller": null,
"dataset_references": [],
"reason_for_exemption": null,
"joint_controller_info": "",
"organization_fides_key": "default_organization",
"data_security_practices": "",
"processes_personal_data": true,
"third_country_transfers": null,
"administrating_department": "",
"data_responsibility_title": null,
"legal_basis_for_profiling": [],
"legal_basis_for_transfers": "[legal_basis]",
"does_international_transfers": true,
"exempt_from_privacy_regulations": false,
"data_protection_impact_assessment": null,
"requires_data_protection_assessments": false
},
"after": {
"dpo": "dpo@privacy.com",
"meta": null,
"name": "after_name",
"tags": [],
"fides_key": "[fides_key]",
"vendor_id": "[gvl_vendor]",
"legal_name": "[legal_name]",
"description": "[description]",
"registry_id": null,
"system_type": "",
"dpa_location": null,
"dpa_progress": null,
"fidesctl_meta": null,
"legal_address": "[legal_address]",
"privacy_policy": "[privacy_policy]",
"responsibility": [],
"uses_profiling": false,
"joint_controller": null,
"dataset_references": [],
"reason_for_exemption": null,
"joint_controller_info": "",
"organization_fides_key": "default_organization",
"data_security_practices": "",
"processes_personal_data": true,
"third_country_transfers": null,
"administrating_department": "",
"data_responsibility_title": null,
"legal_basis_for_profiling": [],
"legal_basis_for_transfers": "[legal_basis]",
"does_international_transfers": true,
"exempt_from_privacy_regulations": false,
"data_protection_impact_assessment": null,
"requires_data_protection_assessments": false
},
"created_at": "2023-09-13T20:08:43.434409+00:00"
},
],
}
Reading from the system change digest
Fides also offers a way subscribe to a digest of system changes by specifying an environment variable or enabling the digest using fides.toml
.
Environment variable:
FIDESPLUS__JOBS__SYSTEM_CHANGE_WEBHOOK_URL="https://destination_url"
Configuration value in fides.toml
:
[jobs]
system_change_webhook_url="https://destination_url"
The system change digest is generated daily at 6 a.m. EST and posted to the URL specified in system_change_webhook_url
. The digest contains entries for each unique system that has been edited within the past 24 hours.
{
"modified_systems": [
{"fides_key": "system_a", "name": "System A"},
{"fides_key": "system_b", "name": "System B"},
]
}
The fides_key
and name
can be used for reporting or for generating a link to the changed system.
https://{your_fides_domain}/systems/configure/{fides_key}