ethyca-fides 2.56.1rc3__py2.py3-none-any.whl → 2.56.2b0__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.
- {ethyca_fides-2.56.1rc3.dist-info → ethyca_fides-2.56.2b0.dist-info}/METADATA +1 -1
- {ethyca_fides-2.56.1rc3.dist-info → ethyca_fides-2.56.2b0.dist-info}/RECORD +211 -210
- fides/_version.py +3 -3
- fides/api/alembic/migrations/versions/bd875a8b5d96_add_attachments_and_.py +96 -0
- fides/api/api/deps.py +28 -0
- fides/api/api/v1/endpoints/consent_request_endpoints.py +1 -2
- fides/api/api/v1/endpoints/dataset_config_endpoints.py +21 -8
- fides/api/api/v1/endpoints/generic_overrides.py +1 -2
- fides/api/api/v1/endpoints/privacy_request_endpoints.py +7 -7
- fides/api/models/attachment.py +153 -0
- fides/api/models/audit_log.py +3 -0
- fides/api/task/graph_task.py +20 -52
- fides/ui-build/static/admin/404.html +1 -1
- fides/ui-build/static/admin/_next/static/Wjdglx57ebjwS6WP9HE5_/_buildManifest.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/1150-45ae64b8999bde9e.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/2201-5cda6f245e348ec1.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/{5728-32ce3e7a41d1fb9f.js → 2397-5382265aeb68b955.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/{255-8d4d20193afd2223.js → 255-1dab28b6d23451cf.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/{3005-137ef60b77c71ce1.js → 3005-373de16453ed7eea.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/3086-f15b42926fd055a0.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/3320-1070e41adcf432ac.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/{5318-d81dc29254349932.js → 3627-5e589e91b738f5cd.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/3662-5639ae50b8dccf23.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/3855-7fc48fe049dc17e6.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/{4456-87020c4b11dc6e0e.js → 3872-bd02ad87861b67d7.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/{8141-4eb48e91039a27d5.js → 3949-afca6e7434ad561f.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/4481-a29f20bb58b211a4.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/4723-fc2288987e3b29d8.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/5246-9b38e34e434a8568.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/5258-299a63d9b4a469d9.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/5480-2abe7916447fa595.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/5487-348c811472ef5608.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/5826-3df3a9cd796a943f.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/5908-532dfbc9d930f635.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/5960-8895f51b30c35798.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/{618f8807-5792121b4eda076b.js → 618f8807-d15c33d1d6c8b961.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/6277-ea65024c767f543e.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/6315-2ae623f4d2e24041.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/6362-d6d930922043de83.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/{5632-6a150393937e52ea.js → 6372-e305cd2ea5577339.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/6853-350da1a0d61b7dda.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/6954-67c09ef890b489eb.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/7044-fc557bec36e0d833.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/7495-cf5540ed1d3a5f02.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/{7548-cdf0d184fa13ddaf.js → 7751-b2504265ef7c096f.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/79-8a82c28f90175a36.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/{5973-7bbf7cd9475c070d.js → 7980-fb48142b786fcef9.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/8433-3912cacade51b692.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/8499-8cdbf2da63982520.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/8573.b0736c9c6f17dae9.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/{8837-2b785a4e5bad4813.js → 8837-cf26e5ca1ae5aaf5.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/9046-c49e36fc13e9643b.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/9111-8675301d4dd068bd.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/{9255-2b1bafefb091a640.js → 9255-336a890ada321f89.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/9282-cf4638e56db0a232.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/{2800.6615615b3f98c173.js → 9392.0f11b5b42a4ccb18.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/9999-fa566e2617c2d660.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/main-app-2650f704701c6a7b.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/main-ce7f38a12ea8c223.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/404-162aedfa3b5c6960.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/{_app-ec8f262156df2273.js → _app-56cdc9725fe73b37.js} +8 -8
- fides/ui-build/static/admin/_next/static/chunks/pages/{_error-c91b5eabd7ac9382.js → _error-bede3a8288930dcf.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/add-systems/manual-3cd7cb111fafa3f9.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/add-systems/{multiple-e47482277518eeac.js → multiple-c2b5ce54dae22850.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/add-systems-b1f944d2eb1676ff.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/ant-poc-1e6090a92e89eba3.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/consent/configure/{add-vendors-59913e9cc73e09c9.js → add-vendors-ffa474e483e82d14.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/consent/configure-40da2d94f2830e1e.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/consent/privacy-experience/[id]-78ef82002d3d8c19.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/consent/privacy-experience/new-34a85dfbd8040688.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/consent/privacy-experience-fe7d178376b26c3e.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/consent/privacy-notices/{[id]-941d95c937170eca.js → [id]-1a3b9b906df09b89.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/consent/privacy-notices/{new-0e3788b351b85329.js → new-95f9157a1576682a.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/consent/privacy-notices-94419df1a94676cd.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/consent/properties-03cf23593252980e.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/consent/reporting-fd33cf4bc3bd7217.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/{consent-160eab9ebbbd1d25.js → consent-419008bdf518df6b.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/projects/[projectUrn]/[resourceUrn]-dd11337b3513bb8a.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/projects/[projectUrn]-d409ce34ece16cae.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/projects-afaca2d14f3f3372.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/resources/[resourceUrn]-af0763217947fb8d.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/{resources-71ce2e9dbf646ecd.js → resources-9596052d50cf6cc9.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog-6d0c56a49450b23e.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/action-center/[monitorId]/[systemId]-dd67d205d8e01310.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/action-center/{[monitorId]-ca97d78d3e655a9d.js → [monitorId]-39050055e1623a2c.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/{action-center-6d6d0b3bd37434da.js → action-center-d141b9651696c214.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/activity-44c921fc8f07ff28.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/detection/{[resourceUrn]-f8f65f23ff9edaeb.js → [resourceUrn]-82d053232db137ac.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/{detection-dbcda00811800c31.js → detection-083c8fba2837e11c.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/discovery/[resourceUrn]-c2f75aae2435b3f3.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/discovery-6fdf5929b50052fa.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/datamap-fdc1e31b739774a2.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/dataset/[datasetId]/[collectionName]/[...subfieldNames]-bac79550f4a641a6.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/dataset/[datasetId]/[collectionName]-968b9f1be2e8015e.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/dataset/[datasetId]-fc98597c22321ee5.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/dataset/new-13c36e0f9a5851e7.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/dataset-784376c7068a46ea.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/datastore-connection/[id]-a5c8556b5a936710.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/datastore-connection/new-ddadae7cf352bdec.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/datastore-connection-b04df874d0de1600.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/index-0cb69e8e091559f5.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/integrations/[id]-fefec1d20c5f53d3.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/integrations-7cbceff4d808ddef.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/login/{[provider]-cac9584cefa85a09.js → [provider]-c58beef131c3a82d.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/{login-e55849091751c65a.js → login-0cb0eb44bf2dd24c.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/messaging/[id]-dd87f20c6c304f6e.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/messaging/add-template-0282fb9efb4ec896.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/{messaging-5a6202c3aaf15cce.js → messaging-194be66253503679.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/[id]-4069f3831c0b30e3.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/configure/messaging-69f722cd2d034c91.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/configure/storage-70b68e4b21f7cc55.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/{configure-9ec13a78be8f23bf.js → configure-8badde37699accd4.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests-049931ac72a90590.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/properties/{[id]-6597c1714cb44cbc.js → [id]-4bf43e86f68a99fb.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/properties/add-property-5403174fb79895c3.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/properties-06c55d3d713867b5.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/reporting/datamap-4e1429ad4c083e4f.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/{about-ec35b0518d3fb3bb.js → about-a425b79765abd602.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/consent-402a7da5dae35b7a.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/custom-fields-24d12a789adc39e2.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/domain-records-b205aaafb53a629d.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/domains-7af5f66895a7f321.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/email-templates-1859b23d0e9ff327.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/locations-7fa58dfa4acc9924.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/organization-50624926a6cf17f0.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/regulations-51cea4d659db4309.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/systems/configure/[id]/test-datasets-cee5aa3edcc6d827.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/systems/configure/[id]-6fb382995c4a8249.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/systems-c800e9fcf38bc6f6.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/taxonomy-cdc44bbdf5694639.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/user-management/new-d6717378b42982d5.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/user-management/profile/[id]-d4a7854a4faf0b0a.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/user-management-858a0d0fabeac02a.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/polyfills-42372ed130431b0a.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/{webpack-f8d056f5e13fe08a.js → webpack-2156b65f5a3e1784.js} +1 -1
- 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/ant-poc.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].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/login/[provider].html +1 -1
- fides/ui-build/static/admin/login.html +1 -1
- fides/ui-build/static/admin/messaging/[id].html +1 -1
- fides/ui-build/static/admin/messaging/add-template.html +1 -1
- fides/ui-build/static/admin/messaging.html +1 -1
- fides/ui-build/static/admin/privacy-requests/[id].html +1 -1
- fides/ui-build/static/admin/privacy-requests/configure/messaging.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.html +1 -1
- fides/ui-build/static/admin/settings/consent.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/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/api/service/deps.py +0 -34
- fides/ui-build/static/admin/_next/static/chunks/1241-438935108aed21e7.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/1288-ba1df63e7fa2234a.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/1827-2d2f6eb59ebca43f.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/2017-312ebd5e1ee3a4cc.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/2025-8e051f2e024df3bf.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/2163-4ea4bc558daae7b9.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/2556-a58aca0405c150e6.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/2973-995ae9f580873e5b.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/3163-7ebdab4fefa7e21f.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/3309-d014168a94ed008b.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/3528-5e4ade882be165e4.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/3990-d38bb0b12394ae4d.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/4321-9c97c4e0d5cf38bd.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/4981-c7710c0d9ff7f9cf.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/53-bd8367b6a28ef9b0.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/6182-87e468239a93f7e2.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/637-3f7f3e47e69e75fe.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/6546-7d8e618a3e49a19a.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/7080-54768a5669e98da9.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/7269-aaa4ad906c8bf8f7.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/7528.b7f05f44d1ff3997.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/7636-bf8c77691e80223b.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/7871-69ffa5607b57cbcf.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/7996-5521a6949bfe4640.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/8001-f142a2097615505a.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/8540-cf0177abbe201868.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/8986-b955f08aba857064.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/9111-36f3eb6456817560.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/9659-7a6f150315045fdd.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/9822-e0b4ee48b9ca9d6c.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/main-6880a3888740c515.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/main-app-de538a24cbd2733c.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/404-cf2b98b932c99b1e.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/add-systems/manual-227ad8dba69aadab.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/add-systems-500ee461301938a8.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/ant-poc-833eede89996ded2.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/consent/configure-49c576c235a79105.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/consent/privacy-experience/[id]-f88c83c3daedc898.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/consent/privacy-experience/new-8eb5999c73f3e445.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/consent/privacy-experience-3eaec69fa89f74ce.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/consent/privacy-notices-363b22d7785b3820.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/consent/properties-5f80a5d6b216b7d3.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/consent/reporting-d1abffec10948e2e.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/projects/[projectUrn]/[resourceUrn]-ef19223d2cdc1258.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/projects/[projectUrn]-50b989ef31996157.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/projects-96f81e13cc52686f.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/resources/[resourceUrn]-fd3d508ab13ddb5b.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog-11d772fe8b66f9b6.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/action-center/[monitorId]/[systemId]-e3dbeac39e3ebd59.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/activity-bdb48de828181c14.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/discovery/[resourceUrn]-90ebc7dd32d37952.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/discovery-3251e73054b9f980.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/datamap-f79309e33e7583fa.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/dataset/[datasetId]/[collectionName]/[...subfieldNames]-63f5bebe5851b767.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/dataset/[datasetId]/[collectionName]-18ff69fb79811cff.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/dataset/[datasetId]-ad8ab0745c40a187.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/dataset/new-72cdfa2ff1a4f38b.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/dataset-6ab8c03b8baa93ca.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/datastore-connection/[id]-9f1a9e0e2b443b2a.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/datastore-connection/new-c7de595cc7a42eba.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/datastore-connection-9cafd280f2dff51b.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/index-f6c4817f3c27b16c.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/integrations/[id]-c431f92c941859c4.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/integrations-43234d749fbc0606.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/messaging/[id]-014724a2527621b5.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/messaging/add-template-860ee8c0e0a2d994.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/[id]-ae047733e540e0ef.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/configure/messaging-c6881c16a4058f20.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/configure/storage-4b68311b85486f8c.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests-c0ee732681c1d4ef.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/properties/add-property-674abcb6eaeb32de.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/properties-f939fbdb6bc969ef.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/reporting/datamap-7446940b5f984a24.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/consent-92a19e7da38d3325.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/custom-fields-3bbbb1612eb447e9.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/domain-records-c59eedd4f4a637aa.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/domains-61ddd1a76e4ab2c6.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/email-templates-4d55571c2799e7fe.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/locations-725f4a6a809bd1e6.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/organization-fc13f3473328020d.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/regulations-8934706c2c817abe.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/systems/configure/[id]/test-datasets-0ee9dc1f37205410.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/systems/configure/[id]-15f55e6c399eed5e.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/systems-0b4f7a20fa248642.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/taxonomy-ad082f72d90bdfe2.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/user-management/new-a59a02634d672703.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/user-management/profile/[id]-99490929267dbcef.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/user-management-2eedb806df4160b3.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js +0 -1
- fides/ui-build/static/admin/_next/static/r-3WeuV_snrkjgQH_dysX/_buildManifest.js +0 -1
- {ethyca_fides-2.56.1rc3.dist-info → ethyca_fides-2.56.2b0.dist-info}/LICENSE +0 -0
- {ethyca_fides-2.56.1rc3.dist-info → ethyca_fides-2.56.2b0.dist-info}/WHEEL +0 -0
- {ethyca_fides-2.56.1rc3.dist-info → ethyca_fides-2.56.2b0.dist-info}/entry_points.txt +0 -0
- {ethyca_fides-2.56.1rc3.dist-info → ethyca_fides-2.56.2b0.dist-info}/top_level.txt +0 -0
- /fides/ui-build/static/admin/_next/static/{r-3WeuV_snrkjgQH_dysX → Wjdglx57ebjwS6WP9HE5_}/_ssgManifest.js +0 -0
fides/_version.py
CHANGED
|
@@ -8,11 +8,11 @@ import json
|
|
|
8
8
|
|
|
9
9
|
version_json = '''
|
|
10
10
|
{
|
|
11
|
-
"date": "2025-03-
|
|
11
|
+
"date": "2025-03-04T12:01:28+0000",
|
|
12
12
|
"dirty": false,
|
|
13
13
|
"error": null,
|
|
14
|
-
"full-revisionid": "
|
|
15
|
-
"version": "2.56.
|
|
14
|
+
"full-revisionid": "64a1e6762694dd595fbd0b4b4ea3d0eee83ff5a9",
|
|
15
|
+
"version": "2.56.2b0"
|
|
16
16
|
}
|
|
17
17
|
''' # END VERSION_JSON
|
|
18
18
|
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
"""Add Attachment and AttachmentReference tables
|
|
2
|
+
|
|
3
|
+
Revision ID: bd875a8b5d96
|
|
4
|
+
Revises: 82883b0df5e4
|
|
5
|
+
Create Date: 2025-02-19 14:09:07.124680
|
|
6
|
+
|
|
7
|
+
"""
|
|
8
|
+
|
|
9
|
+
import sqlalchemy as sa
|
|
10
|
+
from alembic import op
|
|
11
|
+
from sqlalchemy.dialects import postgresql
|
|
12
|
+
|
|
13
|
+
# revision identifiers, used by Alembic.
|
|
14
|
+
revision = "bd875a8b5d96"
|
|
15
|
+
down_revision = "82883b0df5e4"
|
|
16
|
+
branch_labels = None
|
|
17
|
+
depends_on = None
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
def upgrade():
|
|
21
|
+
# ### commands auto generated by Alembic - please adjust! ###
|
|
22
|
+
# create attachment table
|
|
23
|
+
op.create_table(
|
|
24
|
+
"attachment",
|
|
25
|
+
sa.Column("id", sa.String(length=255), nullable=False),
|
|
26
|
+
sa.Column("user_id", sa.String(), nullable=True),
|
|
27
|
+
sa.Column("file_name", sa.String(), nullable=False),
|
|
28
|
+
sa.Column("attachment_type", sa.String(), nullable=False),
|
|
29
|
+
sa.Column("storage_key", sa.String(), nullable=False),
|
|
30
|
+
sa.Column(
|
|
31
|
+
"created_at",
|
|
32
|
+
sa.DateTime(timezone=True),
|
|
33
|
+
server_default=sa.text("now()"),
|
|
34
|
+
nullable=False,
|
|
35
|
+
),
|
|
36
|
+
sa.Column(
|
|
37
|
+
"updated_at",
|
|
38
|
+
sa.DateTime(timezone=True),
|
|
39
|
+
server_default=sa.text("now()"),
|
|
40
|
+
nullable=True,
|
|
41
|
+
),
|
|
42
|
+
sa.ForeignKeyConstraint(
|
|
43
|
+
["user_id"],
|
|
44
|
+
["fidesuser.id"],
|
|
45
|
+
ondelete="SET NULL",
|
|
46
|
+
),
|
|
47
|
+
sa.PrimaryKeyConstraint("id"),
|
|
48
|
+
)
|
|
49
|
+
op.create_index(op.f("ix_attachment_id"), "attachment", ["id"], unique=False)
|
|
50
|
+
|
|
51
|
+
# create attachment_reference table
|
|
52
|
+
op.create_table(
|
|
53
|
+
"attachment_reference",
|
|
54
|
+
sa.Column("id", sa.String(length=255), nullable=False),
|
|
55
|
+
sa.Column(
|
|
56
|
+
"created_at",
|
|
57
|
+
sa.DateTime(timezone=True),
|
|
58
|
+
server_default=sa.text("now()"),
|
|
59
|
+
nullable=False,
|
|
60
|
+
),
|
|
61
|
+
sa.Column(
|
|
62
|
+
"updated_at",
|
|
63
|
+
sa.DateTime(timezone=True),
|
|
64
|
+
server_default=sa.text("now()"),
|
|
65
|
+
nullable=True,
|
|
66
|
+
),
|
|
67
|
+
sa.Column("attachment_id", sa.String(), nullable=False),
|
|
68
|
+
sa.Column("reference_id", sa.String(), nullable=False),
|
|
69
|
+
sa.Column("reference_type", sa.String(), nullable=False),
|
|
70
|
+
sa.ForeignKeyConstraint(
|
|
71
|
+
["attachment_id"],
|
|
72
|
+
["attachment.id"],
|
|
73
|
+
),
|
|
74
|
+
sa.PrimaryKeyConstraint("id"),
|
|
75
|
+
)
|
|
76
|
+
op.create_index(
|
|
77
|
+
op.f("ix_attachment_reference_id"),
|
|
78
|
+
"attachment_reference",
|
|
79
|
+
["id"],
|
|
80
|
+
unique=False,
|
|
81
|
+
)
|
|
82
|
+
op.create_unique_constraint(
|
|
83
|
+
"_attachment_reference_uc",
|
|
84
|
+
"attachment_reference",
|
|
85
|
+
["attachment_id", "reference_id"],
|
|
86
|
+
)
|
|
87
|
+
# ### end Alembic commands ###
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
def downgrade():
|
|
91
|
+
# ### commands auto generated by Alembic - please adjust! ###
|
|
92
|
+
op.drop_index(op.f("ix_attachment_reference_id"), table_name="attachment_reference")
|
|
93
|
+
op.drop_table("attachment_reference")
|
|
94
|
+
op.drop_index(op.f("ix_attachment_id"), table_name="attachment")
|
|
95
|
+
op.drop_table("attachment")
|
|
96
|
+
# ### end Alembic commands ###
|
fides/api/api/deps.py
CHANGED
|
@@ -10,6 +10,10 @@ from fides.api.util.cache import get_cache as get_redis_connection
|
|
|
10
10
|
from fides.config import CONFIG, FidesConfig
|
|
11
11
|
from fides.config import get_config as get_app_config
|
|
12
12
|
from fides.config.config_proxy import ConfigProxy
|
|
13
|
+
from fides.service.dataset.dataset_config_service import DatasetConfigService
|
|
14
|
+
from fides.service.dataset.dataset_service import DatasetService
|
|
15
|
+
from fides.service.messaging.messaging_service import MessagingService
|
|
16
|
+
from fides.service.privacy_request.privacy_request_service import PrivacyRequestService
|
|
13
17
|
|
|
14
18
|
_engine = None
|
|
15
19
|
|
|
@@ -66,3 +70,27 @@ def get_cache() -> Generator:
|
|
|
66
70
|
"Application redis cache required, but it is currently disabled! Please update your application configuration to enable integration with a Redis cache."
|
|
67
71
|
)
|
|
68
72
|
yield get_redis_connection()
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
def get_messaging_service(
|
|
76
|
+
db: Session = Depends(get_db),
|
|
77
|
+
config: FidesConfig = Depends(get_config),
|
|
78
|
+
config_proxy: ConfigProxy = Depends(get_config_proxy),
|
|
79
|
+
) -> MessagingService:
|
|
80
|
+
return MessagingService(db, config, config_proxy)
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
def get_privacy_request_service(
|
|
84
|
+
db: Session = Depends(get_db),
|
|
85
|
+
config_proxy: ConfigProxy = Depends(get_config_proxy),
|
|
86
|
+
messaging_service: MessagingService = Depends(get_messaging_service),
|
|
87
|
+
) -> PrivacyRequestService:
|
|
88
|
+
return PrivacyRequestService(db, config_proxy, messaging_service)
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
def get_dataset_service(db: Session = Depends(get_db)) -> DatasetService:
|
|
92
|
+
return DatasetService(db)
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
def get_dataset_config_service(db: Session = Depends(get_db)) -> DatasetConfigService:
|
|
96
|
+
return DatasetConfigService(db)
|
|
@@ -21,7 +21,7 @@ from starlette.status import (
|
|
|
21
21
|
HTTP_422_UNPROCESSABLE_ENTITY,
|
|
22
22
|
)
|
|
23
23
|
|
|
24
|
-
from fides.api.api.deps import get_config_proxy, get_db
|
|
24
|
+
from fides.api.api.deps import get_config_proxy, get_db, get_messaging_service
|
|
25
25
|
from fides.api.common_exceptions import (
|
|
26
26
|
IdentityVerificationException,
|
|
27
27
|
RedisNotConfigured,
|
|
@@ -50,7 +50,6 @@ from fides.api.schemas.privacy_request import (
|
|
|
50
50
|
VerificationCode,
|
|
51
51
|
)
|
|
52
52
|
from fides.api.schemas.redis_cache import Identity
|
|
53
|
-
from fides.api.service.deps import get_messaging_service
|
|
54
53
|
from fides.api.util.api_router import APIRouter
|
|
55
54
|
from fides.api.util.consent_util import (
|
|
56
55
|
get_or_create_fides_user_device_id_provided_identity,
|
|
@@ -38,7 +38,6 @@ from fides.api.schemas.dataset import (
|
|
|
38
38
|
)
|
|
39
39
|
from fides.api.schemas.privacy_request import TestPrivacyRequest
|
|
40
40
|
from fides.api.schemas.redis_cache import DatasetTestRequest
|
|
41
|
-
from fides.api.service.deps import get_dataset_config_service
|
|
42
41
|
from fides.api.util.api_router import APIRouter
|
|
43
42
|
from fides.common.api.scope_registry import (
|
|
44
43
|
DATASET_CREATE_OR_UPDATE,
|
|
@@ -94,7 +93,9 @@ def _get_connection_config(
|
|
|
94
93
|
)
|
|
95
94
|
def validate_dataset(
|
|
96
95
|
dataset: FideslangDataset,
|
|
97
|
-
dataset_config_service: DatasetConfigService = Depends(
|
|
96
|
+
dataset_config_service: DatasetConfigService = Depends(
|
|
97
|
+
deps.get_dataset_config_service
|
|
98
|
+
),
|
|
98
99
|
connection_config: ConnectionConfig = Depends(_get_connection_config),
|
|
99
100
|
) -> ValidateDatasetResponse:
|
|
100
101
|
"""
|
|
@@ -133,7 +134,9 @@ def validate_dataset(
|
|
|
133
134
|
def put_dataset_configs(
|
|
134
135
|
dataset_pairs: Annotated[List[DatasetConfigCtlDataset], Field(max_length=50)], # type: ignore
|
|
135
136
|
db: Session = Depends(deps.get_db),
|
|
136
|
-
dataset_config_service: DatasetConfigService = Depends(
|
|
137
|
+
dataset_config_service: DatasetConfigService = Depends(
|
|
138
|
+
deps.get_dataset_config_service
|
|
139
|
+
),
|
|
137
140
|
connection_config: ConnectionConfig = Depends(_get_connection_config),
|
|
138
141
|
) -> BulkPutDataset:
|
|
139
142
|
"""
|
|
@@ -182,7 +185,9 @@ def put_dataset_configs(
|
|
|
182
185
|
)
|
|
183
186
|
def patch_dataset_configs(
|
|
184
187
|
dataset_pairs: Annotated[List[DatasetConfigCtlDataset], Field(max_length=50)], # type: ignore
|
|
185
|
-
dataset_config_service: DatasetConfigService = Depends(
|
|
188
|
+
dataset_config_service: DatasetConfigService = Depends(
|
|
189
|
+
deps.get_dataset_config_service
|
|
190
|
+
),
|
|
186
191
|
connection_config: ConnectionConfig = Depends(_get_connection_config),
|
|
187
192
|
) -> BulkPutDataset:
|
|
188
193
|
"""
|
|
@@ -218,7 +223,9 @@ def patch_dataset_configs(
|
|
|
218
223
|
)
|
|
219
224
|
def patch_datasets(
|
|
220
225
|
datasets: Annotated[List[FideslangDataset], Field(max_length=50)], # type: ignore
|
|
221
|
-
dataset_config_service: DatasetConfigService = Depends(
|
|
226
|
+
dataset_config_service: DatasetConfigService = Depends(
|
|
227
|
+
deps.get_dataset_config_service
|
|
228
|
+
),
|
|
222
229
|
connection_config: ConnectionConfig = Depends(_get_connection_config),
|
|
223
230
|
) -> BulkPutDataset:
|
|
224
231
|
"""
|
|
@@ -250,7 +257,9 @@ def patch_datasets(
|
|
|
250
257
|
)
|
|
251
258
|
async def patch_yaml_datasets(
|
|
252
259
|
request: Request,
|
|
253
|
-
dataset_config_service: DatasetConfigService = Depends(
|
|
260
|
+
dataset_config_service: DatasetConfigService = Depends(
|
|
261
|
+
deps.get_dataset_config_service
|
|
262
|
+
),
|
|
254
263
|
connection_config: ConnectionConfig = Depends(_get_connection_config),
|
|
255
264
|
) -> BulkPutDataset:
|
|
256
265
|
"""
|
|
@@ -538,7 +547,9 @@ def dataset_reachability(
|
|
|
538
547
|
*,
|
|
539
548
|
db: Session = Depends(deps.get_db),
|
|
540
549
|
connection_config: ConnectionConfig = Depends(_get_connection_config),
|
|
541
|
-
dataset_config_service: DatasetConfigService = Depends(
|
|
550
|
+
dataset_config_service: DatasetConfigService = Depends(
|
|
551
|
+
deps.get_dataset_config_service
|
|
552
|
+
),
|
|
542
553
|
dataset_key: FidesKey,
|
|
543
554
|
policy_key: Optional[FidesKey] = None,
|
|
544
555
|
) -> Dict[str, Any]:
|
|
@@ -584,7 +595,9 @@ def dataset_reachability(
|
|
|
584
595
|
def test_connection_datasets(
|
|
585
596
|
*,
|
|
586
597
|
db: Session = Depends(deps.get_db),
|
|
587
|
-
dataset_config_service: DatasetConfigService = Depends(
|
|
598
|
+
dataset_config_service: DatasetConfigService = Depends(
|
|
599
|
+
deps.get_dataset_config_service
|
|
600
|
+
),
|
|
588
601
|
connection_config: ConnectionConfig = Depends(_get_connection_config),
|
|
589
602
|
dataset_key: FidesKey,
|
|
590
603
|
test_request: DatasetTestRequest,
|
|
@@ -17,7 +17,7 @@ from starlette.status import (
|
|
|
17
17
|
HTTP_422_UNPROCESSABLE_ENTITY,
|
|
18
18
|
)
|
|
19
19
|
|
|
20
|
-
from fides.api.api.deps import get_db
|
|
20
|
+
from fides.api.api.deps import get_dataset_service, get_db
|
|
21
21
|
from fides.api.common_exceptions import KeyOrNameAlreadyExists, ValidationError
|
|
22
22
|
from fides.api.db.base_class import get_key_from_data
|
|
23
23
|
from fides.api.db.crud import list_resource_query
|
|
@@ -34,7 +34,6 @@ from fides.api.schemas.taxonomy_extensions import (
|
|
|
34
34
|
DataUse,
|
|
35
35
|
DataUseCreateOrUpdate,
|
|
36
36
|
)
|
|
37
|
-
from fides.api.service.deps import get_dataset_service
|
|
38
37
|
from fides.api.util.api_router import APIRouter
|
|
39
38
|
from fides.api.util.errors import FidesError, ForbiddenIsDefaultTaxonomyError
|
|
40
39
|
from fides.api.util.filter_utils import apply_filters_to_query
|
|
@@ -41,6 +41,7 @@ from starlette.status import (
|
|
|
41
41
|
)
|
|
42
42
|
|
|
43
43
|
from fides.api.api import deps
|
|
44
|
+
from fides.api.api.deps import get_privacy_request_service
|
|
44
45
|
from fides.api.api.v1.endpoints.dataset_config_endpoints import _get_connection_config
|
|
45
46
|
from fides.api.api.v1.endpoints.manual_webhook_endpoints import (
|
|
46
47
|
get_access_manual_webhook_or_404,
|
|
@@ -108,7 +109,6 @@ from fides.api.schemas.privacy_request import (
|
|
|
108
109
|
ReviewPrivacyRequestIds,
|
|
109
110
|
VerificationCode,
|
|
110
111
|
)
|
|
111
|
-
from fides.api.service.deps import get_messaging_service, get_privacy_request_service
|
|
112
112
|
from fides.api.service.messaging.message_dispatch_service import EMAIL_JOIN_STRING
|
|
113
113
|
from fides.api.task.execute_request_tasks import log_task_queued, queue_request_task
|
|
114
114
|
from fides.api.task.filter_results import filter_data_categories
|
|
@@ -214,7 +214,7 @@ def get_privacy_request_or_error(
|
|
|
214
214
|
def create_privacy_request(
|
|
215
215
|
*,
|
|
216
216
|
privacy_request_service: PrivacyRequestService = Depends(
|
|
217
|
-
get_privacy_request_service
|
|
217
|
+
deps.get_privacy_request_service
|
|
218
218
|
),
|
|
219
219
|
data: Annotated[List[PrivacyRequestCreate], Field(max_length=50)], # type: ignore
|
|
220
220
|
) -> BulkPostPrivacyRequests:
|
|
@@ -1232,7 +1232,7 @@ def restart_privacy_request_from_failure(
|
|
|
1232
1232
|
*,
|
|
1233
1233
|
db: Session = Depends(deps.get_db),
|
|
1234
1234
|
privacy_request_service: PrivacyRequestService = Depends(
|
|
1235
|
-
get_privacy_request_service
|
|
1235
|
+
deps.get_privacy_request_service
|
|
1236
1236
|
),
|
|
1237
1237
|
) -> PrivacyRequestResponse:
|
|
1238
1238
|
"""Restart a privacy request from failure"""
|
|
@@ -1279,7 +1279,7 @@ def verify_identification_code(
|
|
|
1279
1279
|
*,
|
|
1280
1280
|
db: Session = Depends(deps.get_db),
|
|
1281
1281
|
config_proxy: ConfigProxy = Depends(deps.get_config_proxy),
|
|
1282
|
-
messaging_service: MessagingService = Depends(get_messaging_service),
|
|
1282
|
+
messaging_service: MessagingService = Depends(deps.get_messaging_service),
|
|
1283
1283
|
provided_code: VerificationCode,
|
|
1284
1284
|
) -> PrivacyRequestResponse:
|
|
1285
1285
|
"""Verify the supplied identity verification code.
|
|
@@ -1339,7 +1339,7 @@ def approve_privacy_request(
|
|
|
1339
1339
|
scopes=[PRIVACY_REQUEST_REVIEW],
|
|
1340
1340
|
),
|
|
1341
1341
|
privacy_request_service: PrivacyRequestService = Depends(
|
|
1342
|
-
get_privacy_request_service
|
|
1342
|
+
deps.get_privacy_request_service
|
|
1343
1343
|
),
|
|
1344
1344
|
privacy_requests: ReviewPrivacyRequestIds,
|
|
1345
1345
|
) -> BulkReviewResponse:
|
|
@@ -1362,7 +1362,7 @@ def deny_privacy_request(
|
|
|
1362
1362
|
scopes=[PRIVACY_REQUEST_REVIEW],
|
|
1363
1363
|
),
|
|
1364
1364
|
privacy_request_service: PrivacyRequestService = Depends(
|
|
1365
|
-
get_privacy_request_service
|
|
1365
|
+
deps.get_privacy_request_service
|
|
1366
1366
|
),
|
|
1367
1367
|
privacy_requests: DenyPrivacyRequests,
|
|
1368
1368
|
) -> BulkReviewResponse:
|
|
@@ -1399,7 +1399,7 @@ def mark_privacy_request_pre_approve_eligible(
|
|
|
1399
1399
|
*,
|
|
1400
1400
|
db: Session = Depends(deps.get_db),
|
|
1401
1401
|
privacy_request_service: PrivacyRequestService = Depends(
|
|
1402
|
-
get_privacy_request_service
|
|
1402
|
+
deps.get_privacy_request_service
|
|
1403
1403
|
),
|
|
1404
1404
|
webhook: PreApprovalWebhook = Security(
|
|
1405
1405
|
verify_callback_oauth_pre_approval_webhook, scopes=[PRIVACY_REQUEST_REVIEW]
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
from enum import Enum as EnumType
|
|
2
|
+
from typing import Any, Optional
|
|
3
|
+
|
|
4
|
+
from sqlalchemy import Column
|
|
5
|
+
from sqlalchemy import Enum as EnumColumn
|
|
6
|
+
from sqlalchemy import ForeignKey, String, UniqueConstraint
|
|
7
|
+
from sqlalchemy.ext.declarative import declared_attr
|
|
8
|
+
from sqlalchemy.orm import Session, relationship
|
|
9
|
+
|
|
10
|
+
from fides.api.db.base_class import Base
|
|
11
|
+
from fides.api.models.fides_user import FidesUser # pylint: disable=unused-import
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class AttachmentType(str, EnumType):
|
|
15
|
+
"""
|
|
16
|
+
Enum for attachment types. Indicates attachment usage.
|
|
17
|
+
"""
|
|
18
|
+
|
|
19
|
+
internal_use_only = "internal_use_only"
|
|
20
|
+
include_with_access_package = "include_with_access_package"
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
class AttachmentReferenceType(str, EnumType):
|
|
24
|
+
"""
|
|
25
|
+
Enum for attachment reference types. Indicates where attachment is referenced.
|
|
26
|
+
"""
|
|
27
|
+
|
|
28
|
+
manual_step = "manual_step"
|
|
29
|
+
privacy_request = "privacy_request"
|
|
30
|
+
comment = "comment"
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
class AttachmentReference(Base):
|
|
34
|
+
"""
|
|
35
|
+
Stores information about an Attachment and any other element which may reference that attachment.
|
|
36
|
+
"""
|
|
37
|
+
|
|
38
|
+
@declared_attr
|
|
39
|
+
def __tablename__(cls) -> str:
|
|
40
|
+
"""Overriding base class method to set the table name."""
|
|
41
|
+
return "attachment_reference"
|
|
42
|
+
|
|
43
|
+
attachment_id = Column(String, ForeignKey("attachment.id"), nullable=False)
|
|
44
|
+
reference_id = Column(String, nullable=False)
|
|
45
|
+
reference_type = Column(EnumColumn(AttachmentReferenceType), nullable=False)
|
|
46
|
+
|
|
47
|
+
__table_args__ = (
|
|
48
|
+
UniqueConstraint(
|
|
49
|
+
"attachment_id", "reference_id", name="_attachment_reference_uc"
|
|
50
|
+
),
|
|
51
|
+
)
|
|
52
|
+
|
|
53
|
+
attachment = relationship(
|
|
54
|
+
"Attachment",
|
|
55
|
+
back_populates="references",
|
|
56
|
+
uselist=False,
|
|
57
|
+
)
|
|
58
|
+
|
|
59
|
+
@classmethod
|
|
60
|
+
def create(
|
|
61
|
+
cls, db: Session, *, data: dict[str, Any], check_name: bool = False
|
|
62
|
+
) -> "AttachmentReference":
|
|
63
|
+
"""Creates a new attachment reference record in the database."""
|
|
64
|
+
return super().create(db=db, data=data, check_name=check_name)
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
class Attachment(Base):
|
|
68
|
+
"""
|
|
69
|
+
Stores information about an Attachment.
|
|
70
|
+
"""
|
|
71
|
+
|
|
72
|
+
user_id = Column(
|
|
73
|
+
String, ForeignKey("fidesuser.id", ondelete="SET NULL"), nullable=True
|
|
74
|
+
)
|
|
75
|
+
file_name = Column(String, nullable=False)
|
|
76
|
+
attachment_type = Column(EnumColumn(AttachmentType), nullable=False)
|
|
77
|
+
storage_key = Column(String, nullable=False)
|
|
78
|
+
|
|
79
|
+
user = relationship(
|
|
80
|
+
"FidesUser",
|
|
81
|
+
backref="attachments",
|
|
82
|
+
lazy="selectin",
|
|
83
|
+
uselist=False,
|
|
84
|
+
)
|
|
85
|
+
|
|
86
|
+
references = relationship(
|
|
87
|
+
"AttachmentReference",
|
|
88
|
+
back_populates="attachment",
|
|
89
|
+
cascade="all, delete",
|
|
90
|
+
uselist=True,
|
|
91
|
+
)
|
|
92
|
+
|
|
93
|
+
async def upload_attachment_to_s3(self, attachment: bytes) -> None:
|
|
94
|
+
"""Upload an attachment to S3 to the storage_url."""
|
|
95
|
+
raise NotImplementedError("This method is not yet implemented")
|
|
96
|
+
# AuditLog.create(
|
|
97
|
+
# db=db,
|
|
98
|
+
# data={
|
|
99
|
+
# "user_id": "system",
|
|
100
|
+
# "privacy_request_id": privacy_request.id,
|
|
101
|
+
# "action": AuditLogAction.attachment_uploaded,
|
|
102
|
+
# "message": "",
|
|
103
|
+
# },
|
|
104
|
+
# )
|
|
105
|
+
|
|
106
|
+
async def retrieve_attachment_from_s3(self) -> bytes:
|
|
107
|
+
"""Retrieve an attachment from S3."""
|
|
108
|
+
raise NotImplementedError("This method is not yet implemented")
|
|
109
|
+
# AuditLog.create(
|
|
110
|
+
# db=db,
|
|
111
|
+
# data={
|
|
112
|
+
# "user_id": "system",
|
|
113
|
+
# "privacy_request_id": privacy_request.id,
|
|
114
|
+
# "action": AuditLogAction.attachment_retrieved,
|
|
115
|
+
# "message": "",
|
|
116
|
+
# },
|
|
117
|
+
# )
|
|
118
|
+
|
|
119
|
+
async def delete_attachment_from_s3(self) -> None:
|
|
120
|
+
"""Delete an attachment from S3."""
|
|
121
|
+
raise NotImplementedError("This method is not yet implemented")
|
|
122
|
+
# AuditLog.create(
|
|
123
|
+
# db=db,
|
|
124
|
+
# data={
|
|
125
|
+
# "user_id": "system",
|
|
126
|
+
# "privacy_request_id": privacy_request.id,
|
|
127
|
+
# "action": AuditLogAction.attachment_deleted,
|
|
128
|
+
# "message": "",
|
|
129
|
+
# },
|
|
130
|
+
# )
|
|
131
|
+
|
|
132
|
+
@classmethod
|
|
133
|
+
def create(
|
|
134
|
+
cls,
|
|
135
|
+
db: Session,
|
|
136
|
+
*,
|
|
137
|
+
data: dict[str, Any],
|
|
138
|
+
check_name: bool = False,
|
|
139
|
+
attachment: Optional[
|
|
140
|
+
bytes
|
|
141
|
+
] = None, # This will not be optional once the upload method is implemented.
|
|
142
|
+
) -> "Attachment":
|
|
143
|
+
"""Creates a new attachment record in the database and uploads the attachment to S3."""
|
|
144
|
+
# attachment_record.upload_attachment_to_s3(db, attachment)
|
|
145
|
+
# log.info(f"Uploaded attachment {attachment_record.id} to S3")
|
|
146
|
+
return super().create(db=db, data=data, check_name=check_name)
|
|
147
|
+
|
|
148
|
+
def delete(self, db: Session) -> None:
|
|
149
|
+
"""Deletes an attachment record from the database and deletes the attachment from S3."""
|
|
150
|
+
# attachment_record = cls.get(db, id)
|
|
151
|
+
# attachment_record.delete_attachment_from_s3(db)
|
|
152
|
+
# log.info(f"Deleted attachment {attachment_record.id} from S3")
|
|
153
|
+
super().delete(db=db)
|
fides/api/models/audit_log.py
CHANGED
|
@@ -11,6 +11,9 @@ class AuditLogAction(str, EnumType):
|
|
|
11
11
|
"""Enum for audit log actions, reflecting what a user did."""
|
|
12
12
|
|
|
13
13
|
approved = "approved"
|
|
14
|
+
attachment_uploaded = "attachment_uploaded"
|
|
15
|
+
attachment_deleted = "attachment_deleted"
|
|
16
|
+
attachment_retrieved = "attachment_retrieved"
|
|
14
17
|
denied = "denied"
|
|
15
18
|
email_sent = "email_sent"
|
|
16
19
|
finished = "finished"
|
fides/api/task/graph_task.py
CHANGED
|
@@ -10,7 +10,6 @@ from loguru import logger
|
|
|
10
10
|
from ordered_set import OrderedSet
|
|
11
11
|
from sqlalchemy.orm import Session
|
|
12
12
|
|
|
13
|
-
from fides.api.api.deps import get_db_contextmanager as get_db
|
|
14
13
|
from fides.api.common_exceptions import (
|
|
15
14
|
ActionDisabled,
|
|
16
15
|
AwaitingAsyncTaskCallback,
|
|
@@ -366,30 +365,25 @@ class GraphTask(ABC): # pylint: disable=too-many-instance-attributes
|
|
|
366
365
|
"""Update status activities - create an execution log (which stores historical logs)
|
|
367
366
|
and update the Request Task's current status.
|
|
368
367
|
"""
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
)
|
|
368
|
+
ExecutionLog.create(
|
|
369
|
+
db=self.resources.session,
|
|
370
|
+
data={
|
|
371
|
+
"connection_key": self.execution_node.connection_key,
|
|
372
|
+
"dataset_name": self.execution_node.address.dataset,
|
|
373
|
+
"collection_name": self.execution_node.address.collection,
|
|
374
|
+
"fields_affected": fields_affected,
|
|
375
|
+
"action_type": action_type,
|
|
376
|
+
"status": status,
|
|
377
|
+
"privacy_request_id": self.resources.request.id,
|
|
378
|
+
"message": msg,
|
|
379
|
+
},
|
|
380
|
+
)
|
|
383
381
|
|
|
382
|
+
if self.request_task.id:
|
|
384
383
|
# For DSR 3.0, updating the Request Task status when the ExecutionLog is
|
|
385
384
|
# created to keep these in sync.
|
|
386
385
|
# TODO remove conditional above alongside deprecating DSR 2.0
|
|
387
|
-
|
|
388
|
-
# Merge the request task to ensure we keep the changes made
|
|
389
|
-
# to self.request_task that haven't yet been committed to the database
|
|
390
|
-
request_task = db.merge(self.request_task)
|
|
391
|
-
request_task.update_status(db, status)
|
|
392
|
-
self.request_task = request_task
|
|
386
|
+
self.request_task.update_status(self.resources.session, status)
|
|
393
387
|
|
|
394
388
|
def log_start(self, action_type: ActionType) -> None:
|
|
395
389
|
"""Task start activities"""
|
|
@@ -440,10 +434,9 @@ class GraphTask(ABC): # pylint: disable=too-many-instance-attributes
|
|
|
440
434
|
# For DSR 3.0, Hooking into the GraphTask.log_end method to also mark the current
|
|
441
435
|
# Request Task and every Request Task that can be reached from the current
|
|
442
436
|
# task as errored.
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
mark_current_and_downstream_nodes_as_failed(request_task, db)
|
|
437
|
+
mark_current_and_downstream_nodes_as_failed(
|
|
438
|
+
self.request_task, self.resources.session
|
|
439
|
+
)
|
|
447
440
|
else:
|
|
448
441
|
logger.info("Ending {}, {}", self.resources.request.id, self.key)
|
|
449
442
|
self.update_status(
|
|
@@ -550,34 +543,9 @@ class GraphTask(ABC): # pylint: disable=too-many-instance-attributes
|
|
|
550
543
|
# Return filtered rows with non-matched array data removed.
|
|
551
544
|
return output
|
|
552
545
|
|
|
553
|
-
def get_connection_config(self) -> ConnectionConfig:
|
|
554
|
-
"""
|
|
555
|
-
Retrieves the connection configuration for the current connector.
|
|
556
|
-
This method attempts to fetch the connection configuration from the database
|
|
557
|
-
using the connector's configuration ID. If the configuration is found in the
|
|
558
|
-
database, it is returned. Otherwise, the method returns the connector's
|
|
559
|
-
current configuration.
|
|
560
|
-
Returns:
|
|
561
|
-
ConnectionConfig: The connection configuration object from the database
|
|
562
|
-
if found, otherwise the connector's current configuration.
|
|
563
|
-
"""
|
|
564
|
-
connection_config_id = self.connector.configuration.id
|
|
565
|
-
|
|
566
|
-
with get_db() as db:
|
|
567
|
-
connection_config = (
|
|
568
|
-
db.query(ConnectionConfig)
|
|
569
|
-
.filter(ConnectionConfig.id == connection_config_id)
|
|
570
|
-
.first()
|
|
571
|
-
)
|
|
572
|
-
if connection_config:
|
|
573
|
-
return connection_config
|
|
574
|
-
|
|
575
|
-
return self.connector.configuration
|
|
576
|
-
|
|
577
546
|
def skip_if_disabled(self) -> None:
|
|
578
547
|
"""Skip execution for the given collection if it is attached to a disabled ConnectionConfig."""
|
|
579
|
-
connection_config: ConnectionConfig = self.
|
|
580
|
-
|
|
548
|
+
connection_config: ConnectionConfig = self.connector.configuration
|
|
581
549
|
if connection_config.disabled:
|
|
582
550
|
raise CollectionDisabled(
|
|
583
551
|
f"Skipping collection {self.execution_node.address}. "
|
|
@@ -591,7 +559,7 @@ class GraphTask(ABC): # pylint: disable=too-many-instance-attributes
|
|
|
591
559
|
if action_type == ActionType.access:
|
|
592
560
|
return
|
|
593
561
|
|
|
594
|
-
connection_config: ConnectionConfig = self.
|
|
562
|
+
connection_config: ConnectionConfig = self.connector.configuration
|
|
595
563
|
if (
|
|
596
564
|
connection_config.enabled_actions is not None
|
|
597
565
|
and action_type not in connection_config.enabled_actions
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link data-next-font="" rel="preconnect" href="/" crossorigin="anonymous"/><link rel="preload" href="/_next/static/css/ddd0b958fa57d1b9.css" as="style"/><link rel="stylesheet" href="/_next/static/css/ddd0b958fa57d1b9.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-
|
|
1
|
+
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link data-next-font="" rel="preconnect" href="/" crossorigin="anonymous"/><link rel="preload" href="/_next/static/css/ddd0b958fa57d1b9.css" as="style"/><link rel="stylesheet" href="/_next/static/css/ddd0b958fa57d1b9.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-2156b65f5a3e1784.js" defer=""></script><script src="/_next/static/chunks/framework-c92fc3344e6fd165.js" defer=""></script><script src="/_next/static/chunks/main-ce7f38a12ea8c223.js" defer=""></script><script src="/_next/static/chunks/pages/_app-56cdc9725fe73b37.js" defer=""></script><script src="/_next/static/chunks/pages/404-162aedfa3b5c6960.js" defer=""></script><script src="/_next/static/Wjdglx57ebjwS6WP9HE5_/_buildManifest.js" defer=""></script><script src="/_next/static/Wjdglx57ebjwS6WP9HE5_/_ssgManifest.js" defer=""></script><style>.data-ant-cssinjs-cache-path{content:"";}</style></head><body><div id="__next"><div style="height:100%;display:flex"></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/404","query":{},"buildId":"Wjdglx57ebjwS6WP9HE5_","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
|