ethyca-fides 2.71.1rc2__py2.py3-none-any.whl → 2.72.0__py2.py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of ethyca-fides might be problematic. Click here for more details.
- {ethyca_fides-2.71.1rc2.dist-info → ethyca_fides-2.72.0.dist-info}/METADATA +2 -2
- {ethyca_fides-2.71.1rc2.dist-info → ethyca_fides-2.72.0.dist-info}/RECORD +272 -253
- fides/_version.py +3 -3
- fides/api/api/v1/endpoints/connection_endpoints.py +38 -45
- fides/api/api/v1/endpoints/generic_overrides.py +9 -3
- fides/api/api/v1/endpoints/saas_config_endpoints.py +60 -48
- fides/api/api/v1/endpoints/system.py +11 -43
- fides/api/api/v1/endpoints/user_endpoints.py +8 -1
- fides/api/app_setup.py +1 -3
- fides/api/common_exceptions.py +4 -0
- fides/api/email_templates/get_email_template.py +3 -0
- fides/api/email_templates/template_names.py +1 -0
- fides/api/email_templates/templates/manual_task_digest.html +316 -0
- fides/api/models/detection_discovery/monitor_task.py +1 -0
- fides/api/models/digest/digest_execution.py +11 -1
- fides/api/models/event_audit.py +9 -0
- fides/api/models/messaging_template.py +7 -0
- fides/api/models/privacy_request/privacy_request.py +1 -1
- fides/api/schemas/connection_configuration/connection_config.py +1 -30
- fides/api/schemas/messaging/messaging.py +15 -0
- fides/api/service/connectors/query_configs/saas_query_config.py +16 -0
- fides/api/service/connectors/saas/connector_registry_service.py +1 -138
- fides/api/service/connectors/saas_connector.py +9 -1
- fides/api/service/deps.py +8 -0
- fides/api/service/messaging/message_dispatch_service.py +38 -1
- fides/api/service/privacy_request/request_runner_service.py +32 -1
- fides/api/tasks/__init__.py +0 -1
- fides/api/util/connection_util.py +99 -215
- fides/api/util/event_audit_util.py +230 -0
- fides/api/util/masking_util.py +31 -0
- fides/api/util/saas_config_updater.py +66 -0
- fides/api/util/saas_util.py +1 -0
- fides/data/language/languages.yml +2 -0
- fides/service/connection/__init__.py +0 -0
- fides/service/connection/connection_service.py +651 -0
- fides/service/dataset/dataset_service.py +39 -0
- fides/service/event_audit_service.py +16 -22
- fides/service/privacy_request/privacy_request_service.py +103 -48
- fides/ui-build/static/admin/404.html +1 -1
- fides/ui-build/static/admin/_next/static/BOxlzhSs4KC4KKoRi_z4Y/_buildManifest.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/1099-d1b22e891705eaf8.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/{1115-90baef2a89f361ad.js → 1115-584dac093cef6cc3.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/1437-4604a69888906ec0.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/155-bf4e3ffb18f29226.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/{1817-1ad037b7d6d2f6d2.js → 1817-6a6b4aea9d242c5b.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/{1975.78e719130cfe3fd6.js → 1975.50599b6774562644.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/{2040-fdecc41a18e40bdc.js → 2040-8eead9d29546a50f.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/2397-92f628c53688925b.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/2921-9b596ba7f5267afc.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/3377-80612c111e047cb6.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/{3696-90c8b336bbc46782.js → 3696-e4abb6a922b954a2.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/3700-1f9f6e5ebfa3ab0a.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/3772-b945c6839e43c753.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/{3923-98bea73b618292aa.js → 3923-c1e41661ebf57178.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/401-c2f1e4ea077f1f26.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/431-e01ee730c8ad9ece.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/4496-8204168bae78092d.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/4817-066598cef25d7e88.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/5185-bf5655b5d697b714.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/5258-63325c03319e87dc.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/{5279-12c9cbdc67ad7b14.js → 5279-fcac4a8575f41ecc.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/549-3e3b8d01bc984f96.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/5643-7800464c8df7a78e.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/{5783-d119cb132abd8a91.js → 5783-7deeb7de5d2db4c4.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/6277-0ab2a15c37b83b8d.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/6315-d0b886d849c2e5e3.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/6344-ca66a6e10d128179.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/{6853-7004a8c420b1ca02.js → 6853-6d64d627df6f8194.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/6954-8b106311a3be35f4.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/7245-53a20677c49b41c8.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/{7476-d055aa931da47ac0.js → 7476-08717f00da5f89ab.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/7488-bad160a2bfd89871.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/7630-775c578fa8109b0f.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/7773-24899908bf8ff659.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/{796-02086581996a0548.js → 796-6fe49d134f660156.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/8011-c23d609ed3f0efa5.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/8212-67ac884660ddb63a.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/8373-43b6df89a2085d6b.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/9046-28fe0723e3b6584f.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/9070-6d3aaaf5aa5913ba.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/9330-6eb11127296c54c2.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/{9676.b86ecbcfe5afd25d.js → 9676.1ea49d4b6e0541f2.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/9682-65d253d54f84f6f2.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/{9826-ccedc28e978ca9e1.js → 9826-1f42934a2863992e.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/9899-63998972698a49fb.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/9965-4709f43bf62af9a9.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/{404-2eb8aed4939f1142.js → 404-962d132471cd41ba.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/{_app-a7c02dd2ff07f9e1.js → _app-4f697016cf2fb1bb.js} +43 -43
- fides/ui-build/static/admin/_next/static/chunks/pages/add-systems/manual-055d058d16c02957.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/add-systems/multiple-e2a5c951347195e3.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/add-systems-0058fe05f2d23d1a.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/consent/configure/{add-vendors-7a258b7ecd6da4b8.js → add-vendors-7c829e58485fc821.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/consent/{configure-fb5017ff5fa54fcc.js → configure-5c58b69dd473cc06.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/consent/privacy-experience/{[id]-e1e2fd704ac2d71d.js → [id]-58460ac9c1dface5.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/consent/privacy-experience-b6b2d50d894cefa5.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/consent/privacy-notices/{[id]-5fc78b78a51c239c.js → [id]-25ce8366e689363b.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/consent/privacy-notices/{new-b79bcb93b5f4c734.js → new-faa457089616711a.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/consent/privacy-notices-a7fe3925771bb6c3.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/consent/{properties-069f4e3ee96ebf77.js → properties-45a2901a35edc8f7.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/consent/reporting-e9ec351281c54822.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/{consent-d2bf72508c3cad55.js → consent-a7a4e419e4086033.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/projects/[projectUrn]/{[resourceUrn]-2fa4b3a58f75f81d.js → [resourceUrn]-3b59925f6c9a13a9.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/projects/[projectUrn]-ffb6e0fe6712342e.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/projects-3c935e93208d2bdd.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/resources/{[resourceUrn]-5b31e3d7727b917a.js → [resourceUrn]-8d7d9152e215c3b6.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/resources-96be972a983616e3.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog-79d06a04698c47c0.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/action-center/[monitorId]/[systemId]-e50e9c8e11412b2a.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/action-center/[monitorId]/data-explorer-dd93cffd6744837d.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/action-center/[monitorId]-878aa4ab0746df5b.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/action-center-a2e9c0bfa67c633d.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/activity-70ca690b253a118e.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/detection/{[resourceUrn]-844a8de0d1b506e2.js → [resourceUrn]-260f5deb68966b70.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/{detection-11b07cf2d91b17ef.js → detection-d735dab3d9f3adc5.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/discovery/{[resourceUrn]-5525cf287d4ab493.js → [resourceUrn]-c7f055275a2c503f.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/{discovery-ed4723e1b67d890e.js → discovery-b1cfd55c7e127865.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/datamap-18f255a8bbeecaa4.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/dataset/[datasetId]/[collectionName]/[...subfieldNames]-e04a4e16ccf32aef.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/dataset/[datasetId]/[collectionName]-a40c4febe16a0a6d.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/dataset/[datasetId]-f500a77eefb057e7.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/dataset/new-5c20080cdb053b1d.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/dataset-96355a68e8c28fe8.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/datastore-connection/[id]-448729ee9d1d78c3.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/datastore-connection/new-42c720ec5c941573.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/datastore-connection-a8fc95a46de38b35.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/{index-b74d1e8608ae5b5d.js → index-ca794e85c16cba67.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/integrations/[id]-2f1dc17eba11fb4e.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/integrations-bbec0140433a199b.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/notifications/digests/[id]-058125922d1eaeec.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/notifications/digests/new-7a5f76708c79f714.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/notifications/digests-31bed1f86b89d1d8.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/notifications/providers/[key]-d08f3a7cd2d011ec.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/notifications/providers/new-cb2c7fbc26886052.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/notifications/providers-40b9f1f70d27b660.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/notifications/templates/[id]-a6ae72abe59ff830.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/notifications/templates/add-template-a3e4b5b575b31be1.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/notifications/templates-4918f86f7300ac9b.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/notifications-9644c0f088a01fea.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/poc/ant-components-39b5586d9c8b64aa.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/poc/form-experiments/AntForm-5163f3213377bd35.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/poc/form-experiments/FormikAntFormItem-0b1547cd9b114c6b.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/poc/form-experiments/FormikControlled-da562cba4cffd6bb.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/poc/form-experiments/FormikField-3a587676869d2ef6.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/poc/forms-defc3b917306a6d8.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/poc/{table-migration-29fb7b39f8962650.js → table-migration-11a70bcfa672ce8f.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/[id]-787621468b5a7619.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/configure/storage-24a8c2ab57625556.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/{configure-8f577df28ebca869.js → configure-1926359bdf5d6c30.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests-da634187d8201ab3.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/properties/{[id]-57a75c7e9659271a.js → [id]-47118b9976ad7212.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/properties/{add-property-8964c2300206bc89.js → add-property-2e6b0d8b409ba1fd.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/{properties-08472b2a6bf1d392.js → properties-32486c25255c9cb1.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/reporting/datamap-e410d13a2b35cff4.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/consent/[configuration_id]/[purpose_id]-aec1bf8a409ec75f.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/consent-4c20c08ca7ea8cff.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/custom-fields-8e4a76376927afd5.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/{domain-records-744f669431b84f71.js → domain-records-e3dcef1ec8cf8b9e.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/domains-2e88cc7a6074a28b.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/{email-templates-604790638c656fbd.js → email-templates-7469d2f85396c693.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/{locations-be2a885150adc133.js → locations-20789aa0c84d544e.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/{organization-3c86162afe9759df.js → organization-f84a13eb9688cb5f.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/privacy-requests-b72df6f3d460125f.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/{regulations-4fe3b90747d885e5.js → regulations-aa02bc818e089c49.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/systems/configure/[id]/test-datasets-5be9ce7a745ce908.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/systems/configure/{[id]-4d470bbf199a2f9c.js → [id]-2fc7c0d3988427b3.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/systems-86f5557384124f79.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/taxonomy-2589729c47976357.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/user-management/profile/{[id]-98f737e735eaa0f0.js → [id]-6217433a26599521.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/{user-management-562624e5461083ec.js → user-management-b6c4bf35c003965d.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/{webpack-2766492c5dbceb0a.js → webpack-8eac1ea5c825c8b4.js} +1 -1
- fides/ui-build/static/admin/_next/static/css/de09ed8a0adf1ca2.css +1 -0
- fides/ui-build/static/admin/add-systems/manual.html +1 -1
- fides/ui-build/static/admin/add-systems/multiple.html +1 -1
- fides/ui-build/static/admin/add-systems.html +1 -1
- fides/ui-build/static/admin/consent/configure/add-vendors.html +1 -1
- fides/ui-build/static/admin/consent/configure.html +1 -1
- fides/ui-build/static/admin/consent/privacy-experience/[id].html +1 -1
- fides/ui-build/static/admin/consent/privacy-experience/new.html +1 -1
- fides/ui-build/static/admin/consent/privacy-experience.html +1 -1
- fides/ui-build/static/admin/consent/privacy-notices/[id].html +1 -1
- fides/ui-build/static/admin/consent/privacy-notices/new.html +1 -1
- fides/ui-build/static/admin/consent/privacy-notices.html +1 -1
- fides/ui-build/static/admin/consent/properties.html +1 -1
- fides/ui-build/static/admin/consent/reporting.html +1 -1
- fides/ui-build/static/admin/consent.html +1 -1
- fides/ui-build/static/admin/data-catalog/[systemId]/projects/[projectUrn]/[resourceUrn].html +1 -1
- fides/ui-build/static/admin/data-catalog/[systemId]/projects/[projectUrn].html +1 -1
- fides/ui-build/static/admin/data-catalog/[systemId]/projects.html +1 -1
- fides/ui-build/static/admin/data-catalog/[systemId]/resources/[resourceUrn].html +1 -1
- fides/ui-build/static/admin/data-catalog/[systemId]/resources.html +1 -1
- fides/ui-build/static/admin/data-catalog.html +1 -1
- fides/ui-build/static/admin/data-discovery/action-center/[monitorId]/[systemId].html +1 -1
- fides/ui-build/static/admin/data-discovery/action-center/[monitorId]/data-explorer.html +1 -0
- fides/ui-build/static/admin/data-discovery/action-center/[monitorId].html +1 -1
- fides/ui-build/static/admin/data-discovery/action-center.html +1 -1
- fides/ui-build/static/admin/data-discovery/activity.html +1 -1
- fides/ui-build/static/admin/data-discovery/detection/[resourceUrn].html +1 -1
- fides/ui-build/static/admin/data-discovery/detection.html +1 -1
- fides/ui-build/static/admin/data-discovery/discovery/[resourceUrn].html +1 -1
- fides/ui-build/static/admin/data-discovery/discovery.html +1 -1
- fides/ui-build/static/admin/datamap.html +1 -1
- fides/ui-build/static/admin/dataset/[datasetId]/[collectionName]/[...subfieldNames].html +1 -1
- fides/ui-build/static/admin/dataset/[datasetId]/[collectionName].html +1 -1
- fides/ui-build/static/admin/dataset/[datasetId].html +1 -1
- fides/ui-build/static/admin/dataset/new.html +1 -1
- fides/ui-build/static/admin/dataset.html +1 -1
- fides/ui-build/static/admin/datastore-connection/[id].html +1 -1
- fides/ui-build/static/admin/datastore-connection/new.html +1 -1
- fides/ui-build/static/admin/datastore-connection.html +1 -1
- fides/ui-build/static/admin/index.html +1 -1
- fides/ui-build/static/admin/integrations/[id].html +1 -1
- fides/ui-build/static/admin/integrations.html +1 -1
- fides/ui-build/static/admin/lib/fides-preview.js +1 -1
- fides/ui-build/static/admin/lib/fides-tcf.js +2 -2
- fides/ui-build/static/admin/lib/fides.js +2 -2
- fides/ui-build/static/admin/login/[provider].html +1 -1
- fides/ui-build/static/admin/login.html +1 -1
- fides/ui-build/static/admin/notifications/digests/[id].html +1 -0
- fides/ui-build/static/admin/notifications/digests/new.html +1 -0
- fides/ui-build/static/admin/notifications/digests.html +1 -0
- fides/ui-build/static/admin/notifications/providers/[key].html +1 -0
- fides/ui-build/static/admin/notifications/providers/new.html +1 -0
- fides/ui-build/static/admin/notifications/providers.html +1 -0
- fides/ui-build/static/admin/notifications/templates/[id].html +1 -0
- fides/ui-build/static/admin/notifications/templates/add-template.html +1 -0
- fides/ui-build/static/admin/notifications/templates.html +1 -0
- fides/ui-build/static/admin/notifications.html +1 -0
- fides/ui-build/static/admin/poc/ant-components.html +1 -1
- fides/ui-build/static/admin/poc/form-experiments/AntForm.html +1 -1
- fides/ui-build/static/admin/poc/form-experiments/FormikAntFormItem.html +1 -1
- fides/ui-build/static/admin/poc/form-experiments/FormikControlled.html +1 -1
- fides/ui-build/static/admin/poc/form-experiments/FormikField.html +1 -1
- fides/ui-build/static/admin/poc/form-experiments/FormikSpreadField.html +1 -1
- fides/ui-build/static/admin/poc/forms.html +1 -1
- fides/ui-build/static/admin/poc/table-migration.html +1 -1
- fides/ui-build/static/admin/privacy-requests/[id].html +1 -1
- fides/ui-build/static/admin/privacy-requests/configure/storage.html +1 -1
- fides/ui-build/static/admin/privacy-requests/configure.html +1 -1
- fides/ui-build/static/admin/privacy-requests.html +1 -1
- fides/ui-build/static/admin/properties/[id].html +1 -1
- fides/ui-build/static/admin/properties/add-property.html +1 -1
- fides/ui-build/static/admin/properties.html +1 -1
- fides/ui-build/static/admin/reporting/datamap.html +1 -1
- fides/ui-build/static/admin/settings/about/alpha.html +1 -1
- fides/ui-build/static/admin/settings/about.html +1 -1
- fides/ui-build/static/admin/settings/consent/[configuration_id]/[purpose_id].html +1 -1
- fides/ui-build/static/admin/settings/consent.html +1 -1
- fides/ui-build/static/admin/settings/custom-fields/[id].html +1 -1
- fides/ui-build/static/admin/settings/custom-fields/new.html +1 -1
- fides/ui-build/static/admin/settings/custom-fields.html +1 -1
- fides/ui-build/static/admin/settings/domain-records.html +1 -1
- fides/ui-build/static/admin/settings/domains.html +1 -1
- fides/ui-build/static/admin/settings/email-templates.html +1 -1
- fides/ui-build/static/admin/settings/locations.html +1 -1
- fides/ui-build/static/admin/settings/organization.html +1 -1
- fides/ui-build/static/admin/settings/privacy-requests.html +1 -1
- fides/ui-build/static/admin/settings/regulations.html +1 -1
- fides/ui-build/static/admin/systems/configure/[id]/test-datasets.html +1 -1
- fides/ui-build/static/admin/systems/configure/[id].html +1 -1
- fides/ui-build/static/admin/systems.html +1 -1
- fides/ui-build/static/admin/taxonomy.html +1 -1
- fides/ui-build/static/admin/user-management/new.html +1 -1
- fides/ui-build/static/admin/user-management/profile/[id].html +1 -1
- fides/ui-build/static/admin/user-management.html +1 -1
- fides/ui-build/static/admin/_next/static/ayPtYqII_BsdUxHOkbH2k/_buildManifest.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/155-c1ae010c664e2245.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/2921-66f65496c3a09316.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/3585-efd5d41f08e180c4.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/3855-12ee1dfbbe47fd28.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/3872-04d3afbfa41a7782.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/401-ffe4e8436e1eceb9.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/409-c1256ecda1b15db6.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/431-78bf05f35d7eec4f.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/4558-de5ced790b3380dc.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/4608-a9941d0c236ebca1.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/4718-6585c97c26647e65.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/502-d3ecae97b67befbd.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/504-88caa30c03374e9b.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/5185-51eaa78e3ed6bfb7.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/5309-3b6cf0cc9d0c6a83.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/5574-c31ea831371610d5.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/5643-10a36584c399526c.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/6277-182efc294d413f64.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/6882-10296485ec326e6b.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/6954-4b24e1731c1cc3b3.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/7045-f15044a4d4525946.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/7079-bbc7b856802a4834.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/7158-04745cc8d684b2e7.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/7218-e2983b96b95e33b4.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/7630-d0d3a0fe3f95e971.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/7725-f2a7be705b75dcc3.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/7929-0fd0d4948bc8d70e.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/8002-ed832921ad190832.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/9046-2a332fe338535c84.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/9226-4a7027057f55ca2a.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/add-systems/manual-4ec03eed67572861.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/add-systems/multiple-2ca59996860a33c5.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/add-systems-58920afe2b67f952.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/consent/privacy-experience-92182be6603c2842.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/consent/privacy-notices-ab54b19609bff325.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/consent/reporting-ae4909cad9b67822.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/projects/[projectUrn]-4a1af12d2d7cd660.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/projects-99573a1ee3ef8f4c.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/resources-6e429b7511028d60.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog-56fd0f3e465e52b6.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/action-center/[monitorId]/[systemId]-29c1fb777bd464e0.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/action-center/[monitorId]-0d512528b498d75c.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/action-center-040813022f0890c9.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/activity-2635ef588bf06145.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/datamap-15616bea02397ef4.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/dataset/[datasetId]/[collectionName]/[...subfieldNames]-d4031e438c363fff.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/dataset/[datasetId]/[collectionName]-9463af37079762d0.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/dataset/[datasetId]-60a4a9eb4aab4c11.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/dataset/new-ea198c4a7869f402.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/dataset-0e3a6ac4797ffbbb.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/datastore-connection/[id]-816e02b6cbe4a684.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/datastore-connection/new-b6838162200141b3.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/datastore-connection-223c2d1ded51bfb1.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/integrations/[id]-153eb88ab4e7dc6d.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/integrations-f682b1def859931e.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/messaging/[id]-e8d2140787045acd.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/messaging/add-template-e3f93462a08251bf.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/messaging-b5f7d6afdecd013d.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/poc/ant-components-248ad9f65a872442.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/poc/form-experiments/AntForm-aedb66a62042b10a.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/poc/form-experiments/FormikAntFormItem-018df38b7cd77fdb.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/poc/form-experiments/FormikControlled-6ca9099d03aab817.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/poc/form-experiments/FormikField-0f2c90786ea005a4.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/poc/forms-200b51a725f8b2d1.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/[id]-febf156d2977f3ac.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/configure/storage-648d775d0fce49dc.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests-7af00f72cf694077.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/reporting/datamap-f7753e9effae3816.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/consent/[configuration_id]/[purpose_id]-f3e6e74e0efb005c.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/consent-4d658222ec800511.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/custom-fields-5edfec10a945ca43.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/domains-a3275554ffe8e640.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/messaging-providers/[key]-77239269acc2d31a.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/messaging-providers/new-8bf1821722b082e9.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/messaging-providers-8d92be437793c96f.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/privacy-requests-8cbdfd08e0fa88fb.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/systems/configure/[id]/test-datasets-2deb6becece69d46.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/systems-0f1d833282f09684.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/taxonomy-a8cfa7de4948b374.js +0 -1
- fides/ui-build/static/admin/_next/static/css/64fac6fb884435c2.css +0 -1
- fides/ui-build/static/admin/messaging/[id].html +0 -1
- fides/ui-build/static/admin/messaging/add-template.html +0 -1
- fides/ui-build/static/admin/messaging.html +0 -1
- fides/ui-build/static/admin/settings/messaging-providers/[key].html +0 -1
- fides/ui-build/static/admin/settings/messaging-providers/new.html +0 -1
- fides/ui-build/static/admin/settings/messaging-providers.html +0 -1
- {ethyca_fides-2.71.1rc2.dist-info → ethyca_fides-2.72.0.dist-info}/WHEEL +0 -0
- {ethyca_fides-2.71.1rc2.dist-info → ethyca_fides-2.72.0.dist-info}/entry_points.txt +0 -0
- {ethyca_fides-2.71.1rc2.dist-info → ethyca_fides-2.72.0.dist-info}/licenses/LICENSE +0 -0
- {ethyca_fides-2.71.1rc2.dist-info → ethyca_fides-2.72.0.dist-info}/top_level.txt +0 -0
- /fides/ui-build/static/admin/_next/static/{ayPtYqII_BsdUxHOkbH2k → BOxlzhSs4KC4KKoRi_z4Y}/_ssgManifest.js +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/settings/custom-fields/{[id]-bd1042a0e9be6aff.js → [id]-a270325109398f48.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/settings/custom-fields/{new-469ad83c8cfa1290.js → new-2e0c8e249f286427.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/user-management/{new-629c88e90699369b.js → new-e399005c3bb4db1b.js} +0 -0
|
@@ -0,0 +1,316 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
+
<title>Weekly DSR Summary</title>
|
|
7
|
+
<style>
|
|
8
|
+
/* Reset styles for email clients */
|
|
9
|
+
body, table, td, p, a, li, blockquote {
|
|
10
|
+
-webkit-text-size-adjust: 100%;
|
|
11
|
+
-ms-text-size-adjust: 100%;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
table, td {
|
|
15
|
+
mso-table-lspace: 0pt;
|
|
16
|
+
mso-table-rspace: 0pt;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
img {
|
|
20
|
+
-ms-interpolation-mode: bicubic;
|
|
21
|
+
border: 0;
|
|
22
|
+
height: auto;
|
|
23
|
+
line-height: 100%;
|
|
24
|
+
outline: none;
|
|
25
|
+
text-decoration: none;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/* Main styles */
|
|
29
|
+
body {
|
|
30
|
+
margin: 0;
|
|
31
|
+
padding: 0;
|
|
32
|
+
width: 100% !important;
|
|
33
|
+
min-width: 100%;
|
|
34
|
+
height: 100%;
|
|
35
|
+
background-color: #f8fafc;
|
|
36
|
+
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
|
|
37
|
+
font-size: 16px;
|
|
38
|
+
line-height: 1.6;
|
|
39
|
+
color: #334155;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
.email-container {
|
|
43
|
+
max-width: 600px;
|
|
44
|
+
margin: 0 auto;
|
|
45
|
+
background-color: #ffffff;
|
|
46
|
+
border-radius: 8px;
|
|
47
|
+
box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
|
|
48
|
+
overflow: hidden;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
.logo-section {
|
|
52
|
+
background-color: #ffffff;
|
|
53
|
+
padding: 24px;
|
|
54
|
+
text-align: center;
|
|
55
|
+
border-bottom: 1px solid #e5e5e5;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
.logo-container {
|
|
59
|
+
margin-bottom: 0;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
.header {
|
|
63
|
+
background-color: #000000;
|
|
64
|
+
padding: 32px 24px;
|
|
65
|
+
text-align: center;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
.logo {
|
|
69
|
+
max-width: 200px;
|
|
70
|
+
max-height: 60px;
|
|
71
|
+
width: auto;
|
|
72
|
+
height: auto;
|
|
73
|
+
display: block;
|
|
74
|
+
margin: 0 auto;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
.logo-placeholder {
|
|
78
|
+
width: 200px;
|
|
79
|
+
height: 60px;
|
|
80
|
+
background-color: #333333;
|
|
81
|
+
border: 2px dashed #666666;
|
|
82
|
+
display: flex;
|
|
83
|
+
align-items: center;
|
|
84
|
+
justify-content: center;
|
|
85
|
+
margin: 0 auto;
|
|
86
|
+
color: #999999;
|
|
87
|
+
font-size: 14px;
|
|
88
|
+
font-weight: 500;
|
|
89
|
+
text-align: center;
|
|
90
|
+
border-radius: 4px;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
.header h1 {
|
|
94
|
+
color: #ffffff;
|
|
95
|
+
font-size: 24px;
|
|
96
|
+
font-weight: 600;
|
|
97
|
+
margin: 0;
|
|
98
|
+
letter-spacing: -0.025em;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
.content {
|
|
102
|
+
padding: 32px 24px;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
.greeting {
|
|
106
|
+
font-size: 18px;
|
|
107
|
+
color: #000000;
|
|
108
|
+
margin-bottom: 24px;
|
|
109
|
+
font-weight: 500;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
.intro-text {
|
|
113
|
+
margin-bottom: 32px;
|
|
114
|
+
color: #333333;
|
|
115
|
+
line-height: 1.7;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
.section {
|
|
119
|
+
margin-bottom: 32px;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
.section-title {
|
|
123
|
+
font-size: 20px;
|
|
124
|
+
font-weight: 600;
|
|
125
|
+
color: #000000;
|
|
126
|
+
margin-bottom: 16px;
|
|
127
|
+
padding-bottom: 8px;
|
|
128
|
+
border-bottom: 2px solid #e5e5e5;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
.task-count {
|
|
132
|
+
background-color: #f5f5f5;
|
|
133
|
+
border-left: 4px solid #000000;
|
|
134
|
+
padding: 16px 20px;
|
|
135
|
+
margin-bottom: 20px;
|
|
136
|
+
border-radius: 0 6px 6px 0;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
.task-count-text {
|
|
140
|
+
font-size: 18px;
|
|
141
|
+
font-weight: 600;
|
|
142
|
+
color: #000000;
|
|
143
|
+
margin: 0;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
.cta-button {
|
|
147
|
+
display: inline-block;
|
|
148
|
+
background-color: #000000;
|
|
149
|
+
color: #ffffff !important;
|
|
150
|
+
text-decoration: none;
|
|
151
|
+
padding: 12px 24px;
|
|
152
|
+
border-radius: 6px;
|
|
153
|
+
font-weight: 600;
|
|
154
|
+
font-size: 16px;
|
|
155
|
+
text-align: center;
|
|
156
|
+
transition: all 0.2s ease;
|
|
157
|
+
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
.cta-button:hover {
|
|
161
|
+
background-color: #333333;
|
|
162
|
+
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3);
|
|
163
|
+
transform: translateY(-1px);
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
.footer {
|
|
167
|
+
background-color: #f5f5f5;
|
|
168
|
+
padding: 24px;
|
|
169
|
+
text-align: center;
|
|
170
|
+
border-top: 1px solid #e5e5e5;
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
.footer-text {
|
|
174
|
+
color: #666666;
|
|
175
|
+
font-size: 14px;
|
|
176
|
+
line-height: 1.6;
|
|
177
|
+
margin: 0;
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
.signature {
|
|
181
|
+
margin-top: 24px;
|
|
182
|
+
color: #333333;
|
|
183
|
+
font-weight: 500;
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
/* Responsive styles */
|
|
187
|
+
@media only screen and (max-width: 600px) {
|
|
188
|
+
.email-container {
|
|
189
|
+
margin: 0;
|
|
190
|
+
border-radius: 0;
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
.header, .content, .footer {
|
|
194
|
+
padding: 24px 16px;
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
.header h1 {
|
|
198
|
+
font-size: 20px;
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
.greeting {
|
|
202
|
+
font-size: 16px;
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
.section-title {
|
|
206
|
+
font-size: 18px;
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
.cta-button {
|
|
210
|
+
width: 100%;
|
|
211
|
+
box-sizing: border-box;
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
/* Dark mode support */
|
|
216
|
+
@media (prefers-color-scheme: dark) {
|
|
217
|
+
body {
|
|
218
|
+
background-color: #000000;
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
.email-container {
|
|
222
|
+
background-color: #1a1a1a;
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
.greeting, .section-title {
|
|
226
|
+
color: #ffffff;
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
.intro-text, .footer-text, .signature {
|
|
230
|
+
color: #cccccc;
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
.task-count {
|
|
234
|
+
background-color: #333333;
|
|
235
|
+
border-left-color: #ffffff;
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
.task-count-text {
|
|
239
|
+
color: #ffffff;
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
.footer {
|
|
243
|
+
background-color: #333333;
|
|
244
|
+
border-top-color: #666666;
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
.logo-section {
|
|
248
|
+
background-color: #1a1a1a;
|
|
249
|
+
border-bottom-color: #666666;
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
.logo-placeholder {
|
|
253
|
+
background-color: #555555;
|
|
254
|
+
border-color: #888888;
|
|
255
|
+
color: #cccccc;
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
</style>
|
|
259
|
+
</head>
|
|
260
|
+
<body>
|
|
261
|
+
<div style="padding: 20px 0;">
|
|
262
|
+
<div class="email-container">
|
|
263
|
+
<!-- Logo Section -->
|
|
264
|
+
<div class="logo-section">
|
|
265
|
+
<div class="logo-container">
|
|
266
|
+
{% if company_logo_url %}
|
|
267
|
+
<img src="{{ company_logo_url }}" alt="{{ organization_name }} Logo" class="logo">
|
|
268
|
+
{% else %}
|
|
269
|
+
<div class="logo-placeholder">{{ organization_name }}</div>
|
|
270
|
+
{% endif %}
|
|
271
|
+
</div>
|
|
272
|
+
</div>
|
|
273
|
+
|
|
274
|
+
<!-- Main Content -->
|
|
275
|
+
<div class="content">
|
|
276
|
+
<div class="greeting">Hi {{ vendor_contact_name }},</div>
|
|
277
|
+
|
|
278
|
+
<div class="intro-text">
|
|
279
|
+
{{ intro_text | default("This is your weekly summary of open data subject requests tasks from " + organization_name + " that require your attention. Please review the tasks listed below in our <a href='" + portal_url + "' style='color: #000000; text-decoration: underline; font-weight: 600;'>Privacy Center</a> to ensure timely completion.") | safe }}
|
|
280
|
+
</div>
|
|
281
|
+
|
|
282
|
+
<!-- Tasks Due Soon Section -->
|
|
283
|
+
<div class="section">
|
|
284
|
+
<div class="section-title">Tasks Due Soon</div>
|
|
285
|
+
|
|
286
|
+
<div class="task-count">
|
|
287
|
+
<p class="task-count-text">You have {{ total_task_count }} request{{ 's' if total_task_count != 1 else '' }} coming due, including {{ imminent_task_count }} within the next 7 days and {{ upcoming_task_count }} due in the next period.</p>
|
|
288
|
+
</div>
|
|
289
|
+
|
|
290
|
+
<div style="text-align: center;">
|
|
291
|
+
<a href="{{ portal_url }}" class="cta-button">View All Tasks</a>
|
|
292
|
+
</div>
|
|
293
|
+
</div>
|
|
294
|
+
|
|
295
|
+
<!-- Closing -->
|
|
296
|
+
<div style="margin-top: 32px;">
|
|
297
|
+
<p style="color: #333333; margin-bottom: 24px;">
|
|
298
|
+
{{ closing_text | default("Thank you for your partnership in processing these requests efficiently. If you have any questions or issues, please reach out to your contacts at " + organization_name + ".") | safe }}
|
|
299
|
+
</p>
|
|
300
|
+
|
|
301
|
+
<div class="signature">
|
|
302
|
+
{{ signature | default("Best regards,<br>The " + organization_name + " Privacy Team") | safe }}
|
|
303
|
+
</div>
|
|
304
|
+
</div>
|
|
305
|
+
</div>
|
|
306
|
+
|
|
307
|
+
<!-- Footer -->
|
|
308
|
+
<div class="footer">
|
|
309
|
+
<p class="footer-text">
|
|
310
|
+
This email was sent from your Privacy Center. Please do not reply to this email.
|
|
311
|
+
</p>
|
|
312
|
+
</div>
|
|
313
|
+
</div>
|
|
314
|
+
</div>
|
|
315
|
+
</body>
|
|
316
|
+
</html>
|
|
@@ -4,6 +4,7 @@ from sqlalchemy import Column, DateTime, ForeignKey, Integer, String, Text
|
|
|
4
4
|
from sqlalchemy.dialects.postgresql import JSONB
|
|
5
5
|
from sqlalchemy.ext.declarative import declared_attr
|
|
6
6
|
from sqlalchemy.orm import Session, relationship
|
|
7
|
+
from sqlalchemy.orm.attributes import flag_modified
|
|
7
8
|
from sqlalchemy.sql import func
|
|
8
9
|
|
|
9
10
|
from fides.api.db.base_class import Base
|
|
@@ -92,8 +93,12 @@ class DigestTaskExecution(
|
|
|
92
93
|
self.processed_user_ids = processed_user_ids
|
|
93
94
|
self.last_checkpoint_at = func.now()
|
|
94
95
|
|
|
96
|
+
# Mark JSONB fields as modified so SQLAlchemy knows they changed
|
|
97
|
+
flag_modified(self, "processed_user_ids")
|
|
98
|
+
|
|
95
99
|
if execution_state:
|
|
96
100
|
self.execution_state = execution_state
|
|
101
|
+
flag_modified(self, "execution_state")
|
|
97
102
|
|
|
98
103
|
self.save(db)
|
|
99
104
|
|
|
@@ -123,8 +128,13 @@ class DigestTaskExecution(
|
|
|
123
128
|
|
|
124
129
|
def get_remaining_work(self) -> Dict[str, Any]:
|
|
125
130
|
"""Get information about remaining work for resumption."""
|
|
131
|
+
# Ensure processed_user_ids is always a list
|
|
132
|
+
raw_processed_user_ids = self.processed_user_ids or []
|
|
133
|
+
processed_user_ids = (
|
|
134
|
+
raw_processed_user_ids if isinstance(raw_processed_user_ids, list) else []
|
|
135
|
+
)
|
|
126
136
|
return {
|
|
127
|
-
"processed_user_ids":
|
|
137
|
+
"processed_user_ids": processed_user_ids,
|
|
128
138
|
"execution_state": self.execution_state or {},
|
|
129
139
|
"processed_count": self.processed_recipients or 0,
|
|
130
140
|
"successful_count": self.successful_communications,
|
fides/api/models/event_audit.py
CHANGED
|
@@ -31,6 +31,15 @@ class EventAuditType(str, EnumType):
|
|
|
31
31
|
taxonomy_element_updated = "taxonomy.element.updated"
|
|
32
32
|
taxonomy_element_deleted = "taxonomy.element.deleted"
|
|
33
33
|
|
|
34
|
+
# Connection operations
|
|
35
|
+
connection_created = "connection.created"
|
|
36
|
+
connection_updated = "connection.updated"
|
|
37
|
+
connection_deleted = "connection.deleted"
|
|
38
|
+
|
|
39
|
+
# Connection secrets operations
|
|
40
|
+
connection_secrets_created = "connection.secrets.created"
|
|
41
|
+
connection_secrets_updated = "connection.secrets.updated"
|
|
42
|
+
|
|
34
43
|
# Digest
|
|
35
44
|
digest_execution_started = "digest.execution.started"
|
|
36
45
|
digest_execution_completed = "digest.execution.completed"
|
|
@@ -58,6 +58,13 @@ DEFAULT_MESSAGING_TEMPLATES: Dict[str, Any] = {
|
|
|
58
58
|
"body": "Your erasure request has been completed.",
|
|
59
59
|
},
|
|
60
60
|
},
|
|
61
|
+
MessagingActionType.MANUAL_TASK_DIGEST.value: {
|
|
62
|
+
"label": "Manual task digest",
|
|
63
|
+
"content": {
|
|
64
|
+
"subject": "Weekly DSR Summary from __ORGANIZATION_NAME__",
|
|
65
|
+
"body": "This is your weekly summary of open data subject requests tasks from __ORGANIZATION_NAME__ that require your attention. Please review the tasks in our Privacy Center to ensure timely completion.",
|
|
66
|
+
},
|
|
67
|
+
},
|
|
61
68
|
}
|
|
62
69
|
|
|
63
70
|
|
|
@@ -369,7 +369,7 @@ class PrivacyRequest(
|
|
|
369
369
|
return {
|
|
370
370
|
"id": self.id,
|
|
371
371
|
"external_id": self.external_id,
|
|
372
|
-
"status": self.status.value,
|
|
372
|
+
"status": self.status.value if self.status is not None else None,
|
|
373
373
|
"requested_at": (
|
|
374
374
|
self.requested_at.isoformat() if self.requested_at else None
|
|
375
375
|
),
|
|
@@ -13,6 +13,7 @@ from fides.api.schemas.connection_configuration import connection_secrets_schema
|
|
|
13
13
|
from fides.api.schemas.policy import ActionType
|
|
14
14
|
from fides.api.schemas.saas.saas_config import SaaSConfigBase
|
|
15
15
|
from fides.api.util.connection_type import get_connection_type_secret_schema
|
|
16
|
+
from fides.api.util.masking_util import mask_sensitive_fields
|
|
16
17
|
|
|
17
18
|
|
|
18
19
|
class CreateConnectionConfiguration(BaseModel):
|
|
@@ -41,36 +42,6 @@ class CreateConnectionConfigurationWithSecrets(CreateConnectionConfiguration):
|
|
|
41
42
|
model_config = ConfigDict(from_attributes=True, extra="ignore")
|
|
42
43
|
|
|
43
44
|
|
|
44
|
-
def mask_sensitive_fields(
|
|
45
|
-
connection_secrets: Dict[str, Any], secret_schema: Dict[str, Any]
|
|
46
|
-
) -> Dict[str, Any]:
|
|
47
|
-
"""
|
|
48
|
-
Mask sensitive fields in the given secrets based on the provided schema.
|
|
49
|
-
This function traverses the given secrets dictionary and uses the provided schema to
|
|
50
|
-
identify fields that have been marked as sensitive. The function replaces the sensitive
|
|
51
|
-
field values with a mask string ('********').
|
|
52
|
-
Args:
|
|
53
|
-
connection_secrets (Dict[str, Any]): The secrets to be masked.
|
|
54
|
-
secret_schema (Dict[str, Any]): The schema defining which fields are sensitive.
|
|
55
|
-
Returns:
|
|
56
|
-
Dict[str, Any]: The secrets dictionary with sensitive fields masked.
|
|
57
|
-
"""
|
|
58
|
-
if connection_secrets is None:
|
|
59
|
-
return connection_secrets
|
|
60
|
-
|
|
61
|
-
secret_schema_properties = secret_schema["properties"]
|
|
62
|
-
new_connection_secrets = {}
|
|
63
|
-
|
|
64
|
-
for key, value in connection_secrets.items():
|
|
65
|
-
if key in secret_schema_properties:
|
|
66
|
-
if secret_schema_properties.get(key, {}).get("sensitive", False):
|
|
67
|
-
new_connection_secrets[key] = "**********"
|
|
68
|
-
else:
|
|
69
|
-
new_connection_secrets[key] = value
|
|
70
|
-
|
|
71
|
-
return new_connection_secrets
|
|
72
|
-
|
|
73
|
-
|
|
74
45
|
class ConnectionConfigSecretsMixin(BaseModel):
|
|
75
46
|
"""
|
|
76
47
|
A schema mixin to declare a connection config `secrets` attribute
|
|
@@ -89,6 +89,7 @@ class MessagingActionType(str, Enum):
|
|
|
89
89
|
PRIVACY_REQUEST_REVIEW_APPROVE = "privacy_request_review_approve"
|
|
90
90
|
USER_INVITE = "user_invite"
|
|
91
91
|
EXTERNAL_USER_WELCOME = "external_user_welcome"
|
|
92
|
+
MANUAL_TASK_DIGEST = "manual_task_digest"
|
|
92
93
|
TEST_MESSAGE = "test_message"
|
|
93
94
|
|
|
94
95
|
|
|
@@ -101,6 +102,7 @@ CONFIGURABLE_MESSAGING_ACTION_TYPES: Tuple[str, ...] = (
|
|
|
101
102
|
MessagingActionType.PRIVACY_REQUEST_COMPLETE_DELETION.value,
|
|
102
103
|
MessagingActionType.PRIVACY_REQUEST_REVIEW_DENY.value,
|
|
103
104
|
MessagingActionType.PRIVACY_REQUEST_REVIEW_APPROVE.value,
|
|
105
|
+
MessagingActionType.MANUAL_TASK_DIGEST.value,
|
|
104
106
|
)
|
|
105
107
|
|
|
106
108
|
|
|
@@ -219,6 +221,18 @@ class ExternalUserWelcomeBodyParams(BaseModel):
|
|
|
219
221
|
org_name: str
|
|
220
222
|
|
|
221
223
|
|
|
224
|
+
class ManualTaskDigestBodyParams(BaseModel):
|
|
225
|
+
"""Body params required to send manual task digest emails"""
|
|
226
|
+
|
|
227
|
+
vendor_contact_name: str
|
|
228
|
+
organization_name: str
|
|
229
|
+
portal_url: str
|
|
230
|
+
imminent_task_count: int
|
|
231
|
+
upcoming_task_count: int
|
|
232
|
+
total_task_count: int
|
|
233
|
+
company_logo_url: Optional[str] = None
|
|
234
|
+
|
|
235
|
+
|
|
222
236
|
class FidesopsMessage(
|
|
223
237
|
BaseModel,
|
|
224
238
|
):
|
|
@@ -256,6 +270,7 @@ class FidesopsMessage(
|
|
|
256
270
|
MessagingActionType.PRIVACY_REQUEST_ERROR_NOTIFICATION: ErrorNotificationBodyParams,
|
|
257
271
|
MessagingActionType.USER_INVITE: UserInviteBodyParams,
|
|
258
272
|
MessagingActionType.EXTERNAL_USER_WELCOME: ExternalUserWelcomeBodyParams,
|
|
273
|
+
MessagingActionType.MANUAL_TASK_DIGEST: ManualTaskDigestBodyParams,
|
|
259
274
|
}
|
|
260
275
|
|
|
261
276
|
valid_body_params = valid_body_params_for_action_type.get(
|
|
@@ -46,6 +46,7 @@ from fides.api.util.saas_util import (
|
|
|
46
46
|
ISO_8601_DATETIME,
|
|
47
47
|
MASKED_OBJECT_FIELDS,
|
|
48
48
|
PRIVACY_REQUEST_ID,
|
|
49
|
+
PRIVACY_REQUEST_OBJECT,
|
|
49
50
|
REPLY_TO,
|
|
50
51
|
REPLY_TO_TOKEN,
|
|
51
52
|
UUID,
|
|
@@ -211,6 +212,7 @@ class SaaSQueryConfig(QueryConfig[SaaSRequestParams]):
|
|
|
211
212
|
input_data: Dict[str, List[Any]],
|
|
212
213
|
policy: Optional[Policy],
|
|
213
214
|
read_request: SaaSRequest,
|
|
215
|
+
privacy_request: Optional[PrivacyRequest] = None,
|
|
214
216
|
) -> List[Tuple[SaaSRequestParams, Dict[str, Any]]]:
|
|
215
217
|
"""
|
|
216
218
|
Takes the identity and reference values from input_data and combines them
|
|
@@ -223,6 +225,10 @@ class SaaSQueryConfig(QueryConfig[SaaSRequestParams]):
|
|
|
223
225
|
self.current_request = read_request
|
|
224
226
|
|
|
225
227
|
request_params = []
|
|
228
|
+
|
|
229
|
+
if privacy_request:
|
|
230
|
+
input_data[PRIVACY_REQUEST_OBJECT] = [privacy_request.to_safe_dict()]
|
|
231
|
+
|
|
226
232
|
param_value_maps = self.generate_param_value_maps(input_data, read_request)
|
|
227
233
|
|
|
228
234
|
for param_value_map in param_value_maps:
|
|
@@ -342,6 +348,14 @@ class SaaSQueryConfig(QueryConfig[SaaSRequestParams]):
|
|
|
342
348
|
if self.privacy_request:
|
|
343
349
|
param_values[PRIVACY_REQUEST_ID] = self.privacy_request.id
|
|
344
350
|
|
|
351
|
+
privacy_request_object = input_data.get(PRIVACY_REQUEST_OBJECT)
|
|
352
|
+
if (
|
|
353
|
+
isinstance(privacy_request_object, list)
|
|
354
|
+
and len(privacy_request_object) > 0
|
|
355
|
+
and isinstance(privacy_request_object[0], dict)
|
|
356
|
+
):
|
|
357
|
+
param_values[PRIVACY_REQUEST_OBJECT] = privacy_request_object[0]
|
|
358
|
+
|
|
345
359
|
custom_privacy_request_fields = input_data.get(CUSTOM_PRIVACY_REQUEST_FIELDS)
|
|
346
360
|
if (
|
|
347
361
|
isinstance(custom_privacy_request_fields, list)
|
|
@@ -462,6 +476,8 @@ class SaaSQueryConfig(QueryConfig[SaaSRequestParams]):
|
|
|
462
476
|
if self.privacy_request:
|
|
463
477
|
param_values[PRIVACY_REQUEST_ID] = self.privacy_request.id
|
|
464
478
|
|
|
479
|
+
param_values[PRIVACY_REQUEST_OBJECT] = privacy_request.to_safe_dict()
|
|
480
|
+
|
|
465
481
|
param_values[CUSTOM_PRIVACY_REQUEST_FIELDS] = custom_privacy_request_fields
|
|
466
482
|
param_values[UUID] = str(uuid4())
|
|
467
483
|
param_values[ISO_8601_DATETIME] = datetime.now().strftime("%Y-%m-%dT%H:%M:%SZ")
|