ethyca-fides 2.57.1b9__py2.py3-none-any.whl → 2.57.1rc0__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.57.1b9.dist-info → ethyca_fides-2.57.1rc0.dist-info}/METADATA +1 -1
- {ethyca_fides-2.57.1b9.dist-info → ethyca_fides-2.57.1rc0.dist-info}/RECORD +228 -243
- fides/_version.py +3 -3
- fides/api/api/v1/endpoints/config_endpoints.py +2 -4
- fides/api/api/v1/endpoints/generic_overrides.py +6 -48
- fides/api/models/asset.py +18 -37
- fides/api/models/attachment.py +13 -11
- fides/api/models/comment.py +17 -17
- fides/api/models/connectionconfig.py +1 -1
- fides/api/models/detection_discovery.py +0 -12
- fides/api/models/location_regulation_selections.py +0 -1
- fides/api/models/{privacy_request/privacy_request.py → privacy_request.py} +691 -82
- fides/api/models/sql_models.py +5 -28
- fides/api/oauth/jwt.py +0 -18
- fides/api/oauth/utils.py +11 -11
- fides/api/schemas/dataset.py +2 -22
- fides/api/schemas/saas/strategy_configuration.py +0 -1
- fides/api/service/pagination/pagination_strategy_cursor.py +1 -15
- fides/api/service/pagination/pagination_strategy_link.py +1 -1
- fides/api/tasks/storage.py +111 -12
- fides/config/__init__.py +1 -1
- fides/data/language/languages.yml +0 -2
- fides/data/location/locations.yml +1 -244
- fides/ui-build/static/admin/404.html +1 -1
- fides/ui-build/static/admin/_next/static/chunks/{1150-035a721a04f4451e.js → 1150-73440d7b319558e8.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/1995-0e4fc4f7b44ed72b.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/{2397-ee53235fb21b5e97.js → 2397-7177ecf4ebe68feb.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/{255-7db55b0e3a0f9dea.js → 255-bf1797f78249d090.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/2780-8328de94968d05e4.js +4 -0
- fides/ui-build/static/admin/_next/static/chunks/3005-373de16453ed7eea.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/{3086-b5054ec2c75700b9.js → 3086-be6b52546c3efc90.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/3320-87c75df57a47487e.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/3627-fb83adac32c128e6.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/3662-420d9807c30008ab.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/{3855-b6b7865dedd7bc2a.js → 3855-5c7b11871f59e0e0.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/{3872-4e053c20d546f027.js → 3872-f3d5054bdc584eaa.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/3949-9888699e2ac564c4.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/3967-845c902667e47c4f.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/3e38ba78-4487e45fd4ed2479.js +2 -0
- fides/ui-build/static/admin/_next/static/chunks/4481-ca8d2c75d634b6bc.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/4723-81d28e5be5c7b6d7.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/4833-a85bd5d25ebc40c4.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/5246-9fc6af1a6499e0a4.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/{5258-0658dc2274df6832.js → 5258-3a650be9142cf914.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/{5480-f49696df5e8ae500.js → 5480-f5bec5e881f72f8d.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/{5487-3ad50d21cdbc9209.js → 5487-d96e1abc93f92631.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/5574-a4047e826a8cd4c3.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/{5826-e5dcb4e68cfe6289.js → 5826-16e497af363a0cbc.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/5834-bd9ed01c4ab2ef5c.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/{9014-eeae6f581158e645.js → 5908-532dfbc9d930f635.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/5960-8895f51b30c35798.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/{5973-9c58e4cce2f343a8.js → 5973-67c7562997f7d5cb.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/6277-515c922445b8edc5.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/{6315-fa1519cdf080f42d.js → 6315-dee79f6861c94d2d.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/{6372-ca9c12ac8902365b.js → 6372-f1b54f3cb4888660.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/{6853-8941824350c3c1a8.js → 6853-cacea421af3bfc26.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/6954-6eb480eb132239c3.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/7044-9dc90893067f38ae.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/{7088.eb76fca286e5f2e6.js → 7088.0e7c92a7cbb57562.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/{7751-a8f31c062d4cb09d.js → 7751-25e0c1307988ffd7.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/{79-f9b948ebb186900f.js → 79-ba88d0cf4c65aaa2.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/7980-2597c279c30fbcda.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/7c79804f.26834f883d5ad770.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/{8433-b3008ecaf9834e7f.js → 8433-969280d321d1c3a2.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/{8499-43606100edf42fdf.js → 8499-07507004e8275df2.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/8837-cf26e5ca1ae5aaf5.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/{9046-04bd7becea207cb1.js → 9046-80f1ea44f89fe32c.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/9282-1a5a2f6f4d9ed586.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/{9392.da35a8e778812d91.js → 9392.97b2e3327dceb7c9.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/9676.f4d5977a5f148797.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/9767-4c591bd478c72650.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/{9999-637e0e5341f15f4a.js → 9999-f2e40d5b13343220.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/{main-app-94a0711202e08b15.js → main-app-2650f704701c6a7b.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/main-ce7f38a12ea8c223.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/{404-b202c0d8f6fc75c3.js → 404-1087258931760074.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/_app-9ceff88561dc1250.js +909 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/add-systems/{manual-c2705210ce986109.js → manual-d7f60624cbc12217.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/add-systems/{multiple-ba975134a85588f8.js → multiple-18b0b521255289a3.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/add-systems-136bcbd20ac59bf5.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/{ant-poc-b9932971a479f3a7.js → ant-poc-b3b4d0a98450ffd1.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/consent/configure/{add-vendors-b34e5324461d0c87.js → add-vendors-64f83e9a2b777bf3.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/consent/configure-e11ace4f273ebb47.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/consent/privacy-experience/{[id]-cf51752eb0902233.js → [id]-443e6dd191ce5588.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/consent/privacy-experience/{new-be194737b41ccec9.js → new-36162d5bea29dcc2.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/consent/{privacy-experience-c946b33b0322b8ad.js → privacy-experience-35e9df60b21e21a6.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/consent/privacy-notices/{[id]-72251b48e2e03a1e.js → [id]-2d651499c07d12d9.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/consent/privacy-notices/{new-9611dd42856d6062.js → new-36e57d2f2446be82.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/consent/{privacy-notices-ea57f9d6ad17e957.js → privacy-notices-da37afbe5ec81339.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/consent/{properties-e5748812ba055a56.js → properties-c57b209feef7c2da.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/consent/{reporting-ae66e1a7e146a4de.js → reporting-97fea4ac45093cbd.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/{consent-39d65f13cc8f1cf8.js → consent-24bef021ee71e36c.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/projects/[projectUrn]/{[resourceUrn]-ac033a16f043e6f9.js → [resourceUrn]-6cbd79481199812d.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/projects/{[projectUrn]-a29850536c85d4b8.js → [projectUrn]-46b9790da2fec05a.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/{projects-c44ce244122e96d5.js → projects-1f965b9c496071d1.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/resources/{[resourceUrn]-71e26d262afcaea5.js → [resourceUrn]-e7833c1c606081a9.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/{resources-305555b74c357bf2.js → resources-bed368d048ea6883.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog-942d68a88b321067.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/action-center/[monitorId]/[systemId]-00526324583139ab.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/action-center/[monitorId]-f0ab51d0d5f995de.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/action-center-2220c30c3863b5a5.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/{activity-11b3ce9f61d9bfe9.js → activity-1d7936f05d23097f.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/detection/{[resourceUrn]-054ca46a782e99a5.js → [resourceUrn]-68122dbf449a11b4.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/{detection-b75dd3e4306ac18e.js → detection-0ceaf3c555e84714.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/discovery/{[resourceUrn]-1da20aeb6fc995e4.js → [resourceUrn]-22c27fe0f898ad2a.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/{discovery-cad50b0cc6d1050c.js → discovery-8f2b102e19b0b8f2.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/{datamap-8cb714cdd44ac40e.js → datamap-9cd0c40bef77b120.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/dataset/[datasetId]/[collectionName]/[...subfieldNames]-ab9bc1a3640547db.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/dataset/[datasetId]/[collectionName]-17ec8385bb1fa6d4.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/dataset/{[datasetId]-6ba18f92ba561114.js → [datasetId]-e14c1c07658f8a10.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/dataset/new-740824dfa6823e26.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/dataset-5541ecd2f62711a5.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/datastore-connection/{[id]-bbe1ca2793798e6b.js → [id]-0616437e1a82d3ed.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/datastore-connection/{new-abc17fef69cd951b.js → new-f8218440494e8532.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/datastore-connection-b8eaa9b9d3832b30.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/{index-bfaacdb55a5a6c9f.js → index-94e6d589c4edf360.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/integrations/[id]-a6448ce6ba7f0cf5.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/integrations-1a6965d78bfb26b0.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/messaging/{[id]-ad02e019b2467958.js → [id]-6b032de0a6c2c400.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/messaging/{add-template-f9693cb6a0b7ded8.js → add-template-c0d6ae68ff7979c6.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/messaging-f263e6bacf0f2d19.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/{[id]-fe765154315782cf.js → [id]-bbe5854b7d19b7e9.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/configure/messaging-b96ee3fea3920fcf.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/configure/storage-1b0f9469cb65abfc.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/{configure-2987edc77388e85a.js → configure-4bad69cd42c9722c.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests-eebd2f4ead19cfd6.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/properties/{[id]-94e2faa73dd6a3e6.js → [id]-b4c808a8a0287d11.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/properties/{add-property-630a6a3dd6502ba6.js → add-property-5a701477b006a63b.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/{properties-20ca2f963906674b.js → properties-9a1899dfe052023e.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/reporting/datamap-a3fa3ad77730a03b.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/{about-a49d0f84cf0cf05e.js → about-d073be113e9ca7b0.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/consent-4769f55b138073f7.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/{custom-fields-52d030b1db2ca1b9.js → custom-fields-744e7bbc200557e7.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/{domain-records-fa42d8f18df44927.js → domain-records-c5cd5fb578de9515.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/domains-775f55b3f80cd452.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/{email-templates-6fd6071e2009b8f2.js → email-templates-39c7ae3602ac69b2.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/{locations-66c757325cb58467.js → locations-45e33ba111f8f8b0.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/organization-14def4ca3cc9cda5.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/{regulations-c6c239996cfa6ae8.js → regulations-94975aeab348528e.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/systems/configure/[id]/test-datasets-21f26c0dc4d09e9f.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/systems/configure/{[id]-d3ea9034461511cd.js → [id]-82d9af34546adaa2.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/{systems-abd68fc5ddde5482.js → systems-c320df35d51dc537.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/{taxonomy-16b4d75c49276add.js → taxonomy-181ea5b0ac975239.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/user-management/profile/{[id]-78eaf933f755bfe8.js → [id]-622e16a17a11c096.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/{user-management-6c9ad62479a7d03e.js → user-management-aa872b21bb835d34.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/{webpack-2c7ccac5843c4d8e.js → webpack-4df2ba5ee2d40f0a.js} +1 -1
- fides/ui-build/static/admin/_next/static/css/957d0e4fea846ff0.css +1 -0
- fides/ui-build/static/admin/_next/static/rOPehh5NMs1hjog7nTw1q/_buildManifest.js +1 -0
- fides/ui-build/static/admin/_next/static/rOPehh5NMs1hjog7nTw1q/_ssgManifest.js +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/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/lib/fides-ext-gpp.js +1 -1
- fides/ui-build/static/admin/lib/fides-headless.js +1 -1
- fides/ui-build/static/admin/lib/fides-tcf.js +3 -3
- 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/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/alembic/migrations/versions/1d2f04ac19f2_add_page_column_to_asset_table.py +0 -49
- fides/api/alembic/migrations/versions/7c3fbee90c78_add_user_assigned_data_uses_and_system_.py +0 -54
- fides/api/alembic/migrations/versions/9a1eacd2666b_add_description_column_to_asset.py +0 -25
- fides/api/models/privacy_request/__init__.py +0 -44
- fides/api/models/privacy_request/consent.py +0 -155
- fides/api/models/privacy_request/execution_log.py +0 -108
- fides/api/models/privacy_request/provided_identity.py +0 -149
- fides/api/models/privacy_request/request_task.py +0 -284
- fides/api/models/privacy_request/webhook.py +0 -94
- fides/api/service/storage/s3.py +0 -193
- fides/api/service/storage/util.py +0 -10
- fides/ui-build/static/admin/_next/static/chunks/1100-053fc6b76c65a00f.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/1376-5cea5ef9362215e8.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/2fbcc6de-a6c61724c327e9fa.js +0 -8
- fides/ui-build/static/admin/_next/static/chunks/3320-5dd62a256ecfc9c3.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/355-8a77c9a1cd027f2e.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/3615-5e2d062d684b8fa1.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/4060-8d165e1236ea521a.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/4481-142e5a922d5a5548.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/4723-0a3c5e2ce143a7d0.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/5277-e8a036319456127f.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/570-c99f07161bd339cd.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/605-e692e9cfea2e2cb8.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/6060-cb1ab5be7067bf7b.js +0 -4
- fides/ui-build/static/admin/_next/static/chunks/6527-0eed08abe252a918.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/678d4732-50255cc09048e643.js +0 -2
- fides/ui-build/static/admin/_next/static/chunks/6954-3b887fb444f9228c.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/7434-e6fc02c2dd852991.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/7980-4bd08957448dea32.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/7c79804f.7a7112aece470725.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/8702-d1c8296f9f6afc10.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/905-8ab919e7b274ed50.js +0 -8
- fides/ui-build/static/admin/_next/static/chunks/9187-851756440f79cd75.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/9282-2bfbdca45e84e810.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/9327-2cba327d10586683.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/9676.f297a1347ac09c56.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/9767-1a23925d2cb27b51.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/e3251fe7-5777b5d778e6fffa.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/main-24f422f93845a596.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/_app-44256886387d7e3e.js +0 -923
- fides/ui-build/static/admin/_next/static/chunks/pages/add-systems-d258f0c25fa020bf.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/consent/configure-723cc3d4f5740ea6.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog-900004e402c31797.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/action-center/[monitorId]/[systemId]-5182d356672a3b02.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/action-center/[monitorId]-7c74373a4d666a3d.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/action-center-02439d3aeecfb4b9.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/dataset/[datasetId]/[collectionName]/[...subfieldNames]-d79551d4c64c398c.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/dataset/[datasetId]/[collectionName]-7e5df4a0de7540bb.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/dataset/new-803c1b577ab17ae3.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/dataset-fa743ddc7f89d76b.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/datastore-connection-a78a73b65929853a.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/fides-js-docs-80b241bf6cddb72e.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/integrations/[id]-d4329043219fed9b.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/integrations-adb6aced3bdb4899.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/messaging-1e60754abec1ee6b.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/configure/messaging-f5f7a8069909ef24.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/configure/storage-9f7eaad05e5b9292.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests-d85c0d16ba09ba35.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/reporting/datamap-afedc48ef4e7f858.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/consent-89524101b7279f6e.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/domains-24cba38685dc872c.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/organization-a08693d0d1e10bc8.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/systems/configure/[id]/test-datasets-151571cff4e85894.js +0 -1
- fides/ui-build/static/admin/_next/static/css/113d823fe71f6af0.css +0 -1
- fides/ui-build/static/admin/_next/static/css/ab65b8cc3144bfc8.css +0 -1
- fides/ui-build/static/admin/_next/static/yhm3LM_VFpK2KeFRFEQyN/_buildManifest.js +0 -1
- fides/ui-build/static/admin/_next/static/yhm3LM_VFpK2KeFRFEQyN/_ssgManifest.js +0 -1
- {ethyca_fides-2.57.1b9.dist-info → ethyca_fides-2.57.1rc0.dist-info}/LICENSE +0 -0
- {ethyca_fides-2.57.1b9.dist-info → ethyca_fides-2.57.1rc0.dist-info}/WHEEL +0 -0
- {ethyca_fides-2.57.1b9.dist-info → ethyca_fides-2.57.1rc0.dist-info}/entry_points.txt +0 -0
- {ethyca_fides-2.57.1b9.dist-info → ethyca_fides-2.57.1rc0.dist-info}/top_level.txt +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/user-management/{new-be690621a944bfe2.js → new-d6717378b42982d5.js} +0 -0
fides/api/models/sql_models.py
CHANGED
@@ -295,38 +295,15 @@ class Dataset(Base, FidesBase):
|
|
295
295
|
collections = Column(JSON)
|
296
296
|
fides_meta = Column(JSON)
|
297
297
|
|
298
|
-
@classmethod
|
299
|
-
def create(
|
300
|
-
cls: Type["Dataset"],
|
301
|
-
db: Session,
|
302
|
-
*,
|
303
|
-
data: dict[str, Any],
|
304
|
-
check_name: bool = False,
|
305
|
-
) -> "Dataset":
|
306
|
-
"""
|
307
|
-
Override create to check for existing datasets with the same fides_key.
|
308
|
-
Duplicate names are allowed.
|
309
|
-
"""
|
310
|
-
# Check if dataset with same fides_key already exists
|
311
|
-
if "fides_key" in data:
|
312
|
-
existing_by_key = (
|
313
|
-
db.query(cls).filter(cls.fides_key == data["fides_key"]).first()
|
314
|
-
)
|
315
|
-
if existing_by_key:
|
316
|
-
raise KeyOrNameAlreadyExists(
|
317
|
-
f'Dataset with fides_key "{data["fides_key"]}" already exists.'
|
318
|
-
)
|
319
|
-
|
320
|
-
# Create the dataset using the parent class's method
|
321
|
-
db_obj = cls(**data)
|
322
|
-
return cls.persist_obj(db, db_obj)
|
323
|
-
|
324
298
|
@classmethod
|
325
299
|
def create_from_dataset_dict(cls, db: Session, dataset: dict) -> "Dataset":
|
326
300
|
"""Add a method to create directly using a synchronous session"""
|
327
301
|
validated_dataset: FideslangDataset = FideslangDataset(**dataset)
|
328
|
-
|
329
|
-
|
302
|
+
ctl_dataset = cls(**validated_dataset.model_dump(mode="json"))
|
303
|
+
db.add(ctl_dataset)
|
304
|
+
db.commit()
|
305
|
+
db.refresh(ctl_dataset)
|
306
|
+
return ctl_dataset
|
330
307
|
|
331
308
|
@property
|
332
309
|
def field_data_categories(self) -> Set[str]:
|
fides/api/oauth/jwt.py
CHANGED
@@ -14,21 +14,3 @@ def generate_jwe(payload: str, encryption_key: str, encoding: str = "UTF-8") ->
|
|
14
14
|
encryption_key,
|
15
15
|
encryption=_JWT_ENCRYPTION_ALGORITHM,
|
16
16
|
).decode(encoding)
|
17
|
-
|
18
|
-
|
19
|
-
def decrypt_jwe(token: str, encryption_key: str, encoding: str = "UTF-8") -> str:
|
20
|
-
"""Decrypts a JWE token and returns the payload as a string.
|
21
|
-
|
22
|
-
Args:
|
23
|
-
token: The JWE token to decrypt.
|
24
|
-
encryption_key: The key used to decrypt the token.
|
25
|
-
encoding: The encoding to use for the decrypted payload.
|
26
|
-
|
27
|
-
Returns:
|
28
|
-
The decrypted payload as a string.
|
29
|
-
"""
|
30
|
-
decrypted_payload = jwe.decrypt(
|
31
|
-
token,
|
32
|
-
encryption_key,
|
33
|
-
)
|
34
|
-
return decrypted_payload.decode(encoding)
|
fides/api/oauth/utils.py
CHANGED
@@ -339,16 +339,7 @@ def has_permissions(
|
|
339
339
|
has_role: bool = _has_scope_via_role(
|
340
340
|
token_data=token_data, client=client, endpoint_scopes=endpoint_scopes
|
341
341
|
)
|
342
|
-
|
343
|
-
has_required_permissions = has_direct_scope or has_role
|
344
|
-
if not has_required_permissions:
|
345
|
-
scopes_required = ",".join(endpoint_scopes.scopes)
|
346
|
-
logger.debug(
|
347
|
-
"Authorization failed. Missing required scopes: {}. Neither direct scopes nor role-derived scopes were sufficient.",
|
348
|
-
scopes_required,
|
349
|
-
)
|
350
|
-
|
351
|
-
return has_required_permissions
|
342
|
+
return has_direct_scope or has_role
|
352
343
|
|
353
344
|
|
354
345
|
def _has_scope_via_role(
|
@@ -394,7 +385,16 @@ def _has_direct_scopes(
|
|
394
385
|
|
395
386
|
def has_scope_subset(user_scopes: List[str], endpoint_scopes: SecurityScopes) -> bool:
|
396
387
|
"""Are the required scopes a subset of the scopes belonging to the user?"""
|
397
|
-
|
388
|
+
if not set(endpoint_scopes.scopes).issubset(user_scopes):
|
389
|
+
scopes_required = ",".join(endpoint_scopes.scopes)
|
390
|
+
scopes_provided = ",".join(user_scopes)
|
391
|
+
logger.debug(
|
392
|
+
"Auth token missing required scopes: {}. Scopes provided: {}.",
|
393
|
+
scopes_required,
|
394
|
+
scopes_provided,
|
395
|
+
)
|
396
|
+
return False
|
397
|
+
return True
|
398
398
|
|
399
399
|
|
400
400
|
def create_temporary_user_for_login_flow(config: FidesConfig) -> FidesUser:
|
fides/api/schemas/dataset.py
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
from typing import Any, Dict, List, Optional, Union
|
2
2
|
|
3
|
-
from fideslang.models import Dataset
|
3
|
+
from fideslang.models import Dataset
|
4
4
|
from fideslang.validation import FidesKey
|
5
|
-
from pydantic import ConfigDict
|
5
|
+
from pydantic import ConfigDict
|
6
6
|
|
7
7
|
from fides.api.schemas.api import BulkResponse, BulkUpdateFailed
|
8
8
|
from fides.api.schemas.base_class import FidesSchema
|
@@ -72,23 +72,3 @@ class DatasetReachability(FidesSchema):
|
|
72
72
|
|
73
73
|
reachable: bool
|
74
74
|
details: Optional[Union[str, List[Dict[str, Any]]]]
|
75
|
-
|
76
|
-
|
77
|
-
class DatasetResponse(Dataset):
|
78
|
-
"""
|
79
|
-
Dataset response model for API endpoints.
|
80
|
-
|
81
|
-
Note: This class extends the Dataset model from fideslang rather than having a proper
|
82
|
-
dedicated API response model. We had to make the collections field
|
83
|
-
Optional and allow null values to support the minimal=true parameter in API responses,
|
84
|
-
even though collections is required in the base fideslang Dataset model.
|
85
|
-
"""
|
86
|
-
|
87
|
-
collections: Optional[List[DatasetCollection]] = Field( # type: ignore
|
88
|
-
description="An array of objects that describe the Dataset's collections.",
|
89
|
-
default=None,
|
90
|
-
)
|
91
|
-
|
92
|
-
model_config = ConfigDict(
|
93
|
-
extra="ignore", from_attributes=False, coerce_numbers_to_str=True
|
94
|
-
)
|
@@ -1,7 +1,6 @@
|
|
1
1
|
from typing import Any, Dict, Optional
|
2
2
|
|
3
3
|
import pydash
|
4
|
-
from loguru import logger
|
5
4
|
from requests import Response
|
6
5
|
|
7
6
|
from fides.api.schemas.saas.shared_schemas import SaaSRequestParams
|
@@ -16,7 +15,6 @@ class CursorPaginationStrategy(PaginationStrategy):
|
|
16
15
|
def __init__(self, configuration: CursorPaginationConfiguration):
|
17
16
|
self.cursor_param = configuration.cursor_param
|
18
17
|
self.field = configuration.field
|
19
|
-
self.has_next = configuration.has_next
|
20
18
|
|
21
19
|
def get_next_request(
|
22
20
|
self,
|
@@ -29,15 +27,11 @@ class CursorPaginationStrategy(PaginationStrategy):
|
|
29
27
|
|
30
28
|
# get the last object in the array and read the cursor value
|
31
29
|
cursor = None
|
32
|
-
has_next = None
|
33
30
|
object_list = (
|
34
31
|
pydash.get(response.json(), data_path) if data_path else response.json()
|
35
32
|
)
|
36
33
|
if object_list and isinstance(object_list, list):
|
37
|
-
|
38
|
-
cursor = pydash.get(last_object, self.field)
|
39
|
-
if self.has_next:
|
40
|
-
has_next = pydash.get(last_object, self.has_next)
|
34
|
+
cursor = pydash.get(object_list.pop(), self.field)
|
41
35
|
|
42
36
|
# If the cursor value isn't found, try to find the value in response.json() using the field value
|
43
37
|
if cursor is None:
|
@@ -47,14 +41,6 @@ class CursorPaginationStrategy(PaginationStrategy):
|
|
47
41
|
if cursor is None:
|
48
42
|
return None
|
49
43
|
|
50
|
-
if self.has_next and has_next is None:
|
51
|
-
has_next = pydash.get(response.json(), self.has_next)
|
52
|
-
|
53
|
-
if self.has_next:
|
54
|
-
logger.debug(f"The {self.has_next} field has a value of {has_next}")
|
55
|
-
if str(has_next).lower() != "true":
|
56
|
-
return None
|
57
|
-
|
58
44
|
# add or replace cursor_param with new cursor value
|
59
45
|
request_params.query_params[self.cursor_param] = cursor
|
60
46
|
|
@@ -43,7 +43,7 @@ class LinkPaginationStrategy(PaginationStrategy):
|
|
43
43
|
|
44
44
|
if self.has_next:
|
45
45
|
has_next = pydash.get(response.json(), self.has_next)
|
46
|
-
logger.
|
46
|
+
logger.info(f"The {self.has_next} field has a value of {has_next}")
|
47
47
|
if str(has_next).lower() != "true":
|
48
48
|
return None
|
49
49
|
|
fides/api/tasks/storage.py
CHANGED
@@ -1,10 +1,11 @@
|
|
1
1
|
from __future__ import annotations
|
2
2
|
|
3
3
|
import json
|
4
|
+
import os
|
4
5
|
import secrets
|
5
6
|
import zipfile
|
6
7
|
from io import BytesIO
|
7
|
-
from typing import
|
8
|
+
from typing import Any, Dict, Optional, Union
|
8
9
|
|
9
10
|
import pandas as pd
|
10
11
|
from botocore.exceptions import ClientError, ParamValidationError
|
@@ -12,18 +13,11 @@ from fideslang.validation import AnyHttpUrlString
|
|
12
13
|
from loguru import logger
|
13
14
|
|
14
15
|
from fides.api.cryptography.cryptographic_util import bytes_to_b64_str
|
16
|
+
from fides.api.models.privacy_request import PrivacyRequest
|
15
17
|
from fides.api.schemas.storage.storage import ResponseFormat, StorageSecrets
|
16
18
|
from fides.api.service.privacy_request.dsr_package.dsr_report_builder import (
|
17
19
|
DsrReportBuilder,
|
18
20
|
)
|
19
|
-
from fides.api.service.storage.s3 import (
|
20
|
-
create_presigned_url_for_s3,
|
21
|
-
generic_upload_to_s3,
|
22
|
-
)
|
23
|
-
from fides.api.service.storage.util import (
|
24
|
-
LOCAL_FIDES_UPLOAD_DIRECTORY,
|
25
|
-
get_local_filename,
|
26
|
-
)
|
27
21
|
from fides.api.util.aws_util import get_s3_client
|
28
22
|
from fides.api.util.cache import get_cache, get_encryption_cache_key
|
29
23
|
from fides.api.util.encryption.aes_gcm_encryption_scheme import (
|
@@ -32,8 +26,7 @@ from fides.api.util.encryption.aes_gcm_encryption_scheme import (
|
|
32
26
|
from fides.api.util.storage_util import storage_json_encoder
|
33
27
|
from fides.config import CONFIG
|
34
28
|
|
35
|
-
|
36
|
-
from fides.api.models.privacy_request import PrivacyRequest
|
29
|
+
LOCAL_FIDES_UPLOAD_DIRECTORY = "fides_uploads"
|
37
30
|
|
38
31
|
|
39
32
|
def encrypt_access_request_results(data: Union[str, bytes], request_id: str) -> str:
|
@@ -108,6 +101,105 @@ def write_to_in_memory_buffer(
|
|
108
101
|
raise NotImplementedError(f"No handling for response format {resp_format}.")
|
109
102
|
|
110
103
|
|
104
|
+
def create_presigned_url_for_s3(
|
105
|
+
s3_client: Any, bucket_name: str, file_key: str
|
106
|
+
) -> AnyHttpUrlString:
|
107
|
+
""" "Generate a presigned URL to share an S3 object
|
108
|
+
|
109
|
+
:param s3_client: s3 base client
|
110
|
+
:param bucket_name: string
|
111
|
+
:param file_key: string
|
112
|
+
:return: Presigned URL as string.
|
113
|
+
"""
|
114
|
+
response = s3_client.generate_presigned_url(
|
115
|
+
"get_object",
|
116
|
+
Params={"Bucket": bucket_name, "Key": file_key},
|
117
|
+
ExpiresIn=CONFIG.security.subject_request_download_link_ttl_seconds,
|
118
|
+
)
|
119
|
+
|
120
|
+
# The response contains the presigned URL
|
121
|
+
return response
|
122
|
+
|
123
|
+
|
124
|
+
def generic_upload_to_s3( # pylint: disable=R0913
|
125
|
+
storage_secrets: Dict[StorageSecrets, Any],
|
126
|
+
bucket_name: str,
|
127
|
+
file_key: str,
|
128
|
+
auth_method: str,
|
129
|
+
document: bytes,
|
130
|
+
) -> Optional[AnyHttpUrlString]:
|
131
|
+
"""Uploads arbitrary data to s3 returned from an access request"""
|
132
|
+
logger.info("Starting S3 Upload of {}", file_key)
|
133
|
+
|
134
|
+
try:
|
135
|
+
s3_client = get_s3_client(auth_method, storage_secrets)
|
136
|
+
try:
|
137
|
+
s3_client.put_object(Bucket=bucket_name, Key=file_key, Body=document)
|
138
|
+
except Exception as e:
|
139
|
+
logger.error("Encountered error while uploading s3 object: {}", e)
|
140
|
+
raise e
|
141
|
+
|
142
|
+
presigned_url: AnyHttpUrlString = create_presigned_url_for_s3(
|
143
|
+
s3_client, bucket_name, file_key
|
144
|
+
)
|
145
|
+
|
146
|
+
return presigned_url
|
147
|
+
except ClientError as e:
|
148
|
+
logger.error(
|
149
|
+
"Encountered error while uploading and generating link for s3 object: {}", e
|
150
|
+
)
|
151
|
+
raise e
|
152
|
+
except ParamValidationError as e:
|
153
|
+
raise ValueError(f"The parameters you provided are incorrect: {e}")
|
154
|
+
|
155
|
+
|
156
|
+
def generic_retrieve_from_s3(
|
157
|
+
storage_secrets: Dict[StorageSecrets, Any],
|
158
|
+
bucket_name: str,
|
159
|
+
file_key: str,
|
160
|
+
auth_method: str,
|
161
|
+
) -> Optional[bytes]:
|
162
|
+
"""Retrieves arbitrary data from s3"""
|
163
|
+
logger.info("Starting S3 Retrieve of {}", file_key)
|
164
|
+
|
165
|
+
try:
|
166
|
+
s3_client = get_s3_client(auth_method, storage_secrets)
|
167
|
+
try:
|
168
|
+
response = s3_client.get_object(Bucket=bucket_name, Key=file_key)
|
169
|
+
return response["Body"].read()
|
170
|
+
except Exception as e:
|
171
|
+
logger.error("Encountered error while retrieving s3 object: {}", e)
|
172
|
+
raise e
|
173
|
+
except ClientError as e:
|
174
|
+
logger.error("Encountered error while retrieving s3 object: {}", e)
|
175
|
+
raise e
|
176
|
+
except ParamValidationError as e:
|
177
|
+
raise ValueError(f"The parameters you provided are incorrect: {e}")
|
178
|
+
|
179
|
+
|
180
|
+
def generic_delete_from_s3(
|
181
|
+
storage_secrets: Dict[StorageSecrets, Any],
|
182
|
+
bucket_name: str,
|
183
|
+
file_key: str,
|
184
|
+
auth_method: str,
|
185
|
+
) -> None:
|
186
|
+
"""Deletes arbitrary data from s3"""
|
187
|
+
logger.info("Starting S3 Delete of {}", file_key)
|
188
|
+
|
189
|
+
try:
|
190
|
+
s3_client = get_s3_client(auth_method, storage_secrets)
|
191
|
+
try:
|
192
|
+
s3_client.delete_object(Bucket=bucket_name, Key=file_key)
|
193
|
+
except Exception as e:
|
194
|
+
logger.error("Encountered error while deleting s3 object: {}", e)
|
195
|
+
raise e
|
196
|
+
except ClientError as e:
|
197
|
+
logger.error("Encountered error while deleting s3 object: {}", e)
|
198
|
+
raise e
|
199
|
+
except ParamValidationError as e:
|
200
|
+
raise ValueError(f"The parameters you provided are incorrect: {e}")
|
201
|
+
|
202
|
+
|
111
203
|
def upload_to_s3( # pylint: disable=R0913
|
112
204
|
storage_secrets: Dict[StorageSecrets, Any],
|
113
205
|
data: Dict,
|
@@ -115,7 +207,7 @@ def upload_to_s3( # pylint: disable=R0913
|
|
115
207
|
file_key: str,
|
116
208
|
resp_format: str,
|
117
209
|
privacy_request: Optional[PrivacyRequest],
|
118
|
-
document: Optional[
|
210
|
+
document: Optional[bytes],
|
119
211
|
auth_method: str,
|
120
212
|
) -> Optional[AnyHttpUrlString]:
|
121
213
|
"""Uploads arbitrary data to s3 returned from an access request"""
|
@@ -157,6 +249,13 @@ def upload_to_s3( # pylint: disable=R0913
|
|
157
249
|
raise ValueError(f"The parameters you provided are incorrect: {e}")
|
158
250
|
|
159
251
|
|
252
|
+
def get_local_filename(file_key: str) -> str:
|
253
|
+
"""Verifies that the local storage directory exists"""
|
254
|
+
if not os.path.exists(LOCAL_FIDES_UPLOAD_DIRECTORY):
|
255
|
+
os.makedirs(LOCAL_FIDES_UPLOAD_DIRECTORY)
|
256
|
+
return f"{LOCAL_FIDES_UPLOAD_DIRECTORY}/{file_key}"
|
257
|
+
|
258
|
+
|
160
259
|
def upload_to_local(
|
161
260
|
data: Dict,
|
162
261
|
file_key: str,
|
fides/config/__init__.py
CHANGED
@@ -133,7 +133,7 @@ def censor_config(config: Union[FidesConfig, Dict[str, Any]]) -> Dict[str, Any]:
|
|
133
133
|
data = as_dict[key]
|
134
134
|
filtered[key] = {}
|
135
135
|
for field in value:
|
136
|
-
if
|
136
|
+
if field in data:
|
137
137
|
filtered[key][field] = data[field]
|
138
138
|
|
139
139
|
return filtered
|