ethyca-fides 2.57.1b6__py2.py3-none-any.whl → 2.57.1b7__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.1b6.dist-info → ethyca_fides-2.57.1b7.dist-info}/METADATA +1 -1
- {ethyca_fides-2.57.1b6.dist-info → ethyca_fides-2.57.1b7.dist-info}/RECORD +190 -189
- fides/_version.py +3 -3
- fides/api/api/v1/endpoints/config_endpoints.py +4 -2
- fides/api/models/attachment.py +6 -8
- fides/api/models/comment.py +17 -17
- fides/api/models/privacy_request/privacy_request.py +61 -0
- fides/api/service/storage/s3.py +133 -0
- fides/api/service/storage/util.py +10 -0
- fides/api/tasks/storage.py +12 -111
- fides/config/__init__.py +1 -1
- fides/ui-build/static/admin/404.html +1 -1
- fides/ui-build/static/admin/_next/static/chunks/1376-c177d8d0c60b1166.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/2201-0452b4135058f0fc.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/302-fb0e3cd140c4364d.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/3320-317483e6c10bae51.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/355-6a87b50acf54e985.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/3662-6a0cafa3023aa7a2.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/4723-1a785d558dfb6441.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/6362-0ca70f8cfd020723.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/6954-f7daf613febc36ef.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/7434-3d4a0beb84ec57f7.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/7495-b7fa6fdbd910bd72.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/7980-91800d54c5964ba3.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/{_app-de85703aa2346f42.js → _app-e53d13729068a001.js} +8 -8
- fides/ui-build/static/admin/_next/static/chunks/pages/add-systems/{manual-05ab19822a7e9f80.js → manual-f8c0b05aae0bbcd1.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/add-systems/{multiple-18b0b521255289a3.js → multiple-6a7208eee5e588fb.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/add-systems-a33f82e79cb09478.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/consent/configure/{add-vendors-64f83e9a2b777bf3.js → add-vendors-ba0c5fa9764cbd89.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/consent/{configure-e11ace4f273ebb47.js → configure-1af99ffa7a507e86.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/consent/privacy-experience/{[id]-443e6dd191ce5588.js → [id]-c02510104f9e503a.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/consent/privacy-experience/{new-36162d5bea29dcc2.js → new-e96415629f3b4223.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/consent/privacy-notices/{[id]-2d651499c07d12d9.js → [id]-66827da90b8a2d1e.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/consent/privacy-notices/{new-36e57d2f2446be82.js → new-13d48f980bf707e5.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog-1a3bb713fc7bc298.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/action-center/[monitorId]/[systemId]-5892ca5d93ea6165.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/action-center-4fac7e0a54eebc32.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/dataset/new-45016545c099e183.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/dataset-5ddd3cd7d29e89c0.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/datastore-connection/{[id]-0616437e1a82d3ed.js → [id]-f68c3ee92505994f.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/datastore-connection/{new-f8218440494e8532.js → new-89bc670d278e3749.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/integrations/[id]-3742c349e9a0020d.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/integrations-577b95cb0006f387.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/messaging-5a161e167c251519.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/configure/messaging-c3e234ad95e6e213.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/configure/storage-347e203faa31716f.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests-729fa8ed0f10bc8e.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/consent-ff6edba56dfec090.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/domains-ad368857e86fe01b.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/organization-f45920358a405167.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/systems/configure/{[id]-ca753b60ca1745c5.js → [id]-c234398ee8265485.js} +1 -1
- fides/ui-build/static/admin/_next/static/css/dd9922a434d21e22.css +1 -0
- fides/ui-build/static/admin/_next/static/dctUooMB4AAq5YqgLKNt9/_buildManifest.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/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/ui-build/static/admin/_next/static/NgZHwKJoepGB5-XW8xdZo/_buildManifest.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/3215-c8c683b93919e0a5.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/3320-87c75df57a47487e.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/3662-420d9807c30008ab.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/3949-9888699e2ac564c4.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/4723-81d28e5be5c7b6d7.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/5574-a4047e826a8cd4c3.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/5834-bd9ed01c4ab2ef5c.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/5973-3226fe183b48668b.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/6277-cad7c7c8cf48dbec.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/6954-6eb480eb132239c3.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/7044-88111db2aca2cf65.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/7980-2597c279c30fbcda.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/9767-9af77524ed1648c1.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/add-systems-136bcbd20ac59bf5.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog-942d68a88b321067.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/action-center/[monitorId]/[systemId]-214f8f89b94c3842.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/action-center-08e6d8bd6e91ee73.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/dataset/new-740824dfa6823e26.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/dataset-5541ecd2f62711a5.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/integrations/[id]-a8e08ecb0c6c3a7c.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/integrations-1a6965d78bfb26b0.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/messaging-f263e6bacf0f2d19.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/configure/messaging-b96ee3fea3920fcf.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/configure/storage-1b0f9469cb65abfc.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests-eebd2f4ead19cfd6.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/consent-4769f55b138073f7.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/domains-775f55b3f80cd452.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/organization-14def4ca3cc9cda5.js +0 -1
- fides/ui-build/static/admin/_next/static/css/957d0e4fea846ff0.css +0 -1
- {ethyca_fides-2.57.1b6.dist-info → ethyca_fides-2.57.1b7.dist-info}/LICENSE +0 -0
- {ethyca_fides-2.57.1b6.dist-info → ethyca_fides-2.57.1b7.dist-info}/WHEEL +0 -0
- {ethyca_fides-2.57.1b6.dist-info → ethyca_fides-2.57.1b7.dist-info}/entry_points.txt +0 -0
- {ethyca_fides-2.57.1b6.dist-info → ethyca_fides-2.57.1b7.dist-info}/top_level.txt +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{1150-73440d7b319558e8.js → 1150-d4a5eef84e70de22.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{2397-d8161100e3634f2c.js → 2397-c6d0dcb3b921555f.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{3086-be6b52546c3efc90.js → 3086-d099019708303444.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{3855-386aec4f0e0e89f1.js → 3855-4d5d936a58a0dd5f.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{3872-0da2c6a790542bd6.js → 3872-2b2bf5ebd4b0a70f.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{4481-0500c40ed13000c0.js → 4481-f2f57e7a75a90e79.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{5246-9fc6af1a6499e0a4.js → 5246-ac8b0fcb44b00af7.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{5258-3a650be9142cf914.js → 5258-a05dcab2f9315dab.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{5480-f5bec5e881f72f8d.js → 5480-c6c1fb87006e471a.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{5487-d96e1abc93f92631.js → 5487-509639439bf9fb46.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{5826-16e497af363a0cbc.js → 5826-e3970cd9440be33b.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{6315-dee79f6861c94d2d.js → 6315-daf94fa7520fb253.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{6372-f1b54f3cb4888660.js → 6372-41afe1e6a9181cc7.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{6853-2777b5ab5717fada.js → 6853-7f95c36e396d3fb8.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{7751-25e0c1307988ffd7.js → 7751-130668529ab1d0b6.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{79-ba88d0cf4c65aaa2.js → 79-1c326c00cf111c00.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{8433-969280d321d1c3a2.js → 8433-b2a96b825124b596.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{8499-07507004e8275df2.js → 8499-34620330ecf2ac53.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{9046-b18572b89f0aaa92.js → 9046-e7b9a3fd010b01ad.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{9282-1a5a2f6f4d9ed586.js → 9282-6ee061da1eb51d65.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{9999-f2e40d5b13343220.js → 9999-8600f6f495a80b38.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/{404-1087258931760074.js → 404-8e0baa6e128803ab.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/{ant-poc-b3b4d0a98450ffd1.js → ant-poc-39267961e03be6c5.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/consent/{privacy-experience-8b9f75fc0f131240.js → privacy-experience-ed38f18c095141fe.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/consent/{privacy-notices-da37afbe5ec81339.js → privacy-notices-7339b3cdf5d4da32.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/consent/{properties-c57b209feef7c2da.js → properties-b5b3196eba90246a.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/consent/{reporting-81ca1ac6f52ec342.js → reporting-38b8ec1a221610ff.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/{consent-24bef021ee71e36c.js → consent-df2388d953c85c2a.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/projects/[projectUrn]/{[resourceUrn]-6cbd79481199812d.js → [resourceUrn]-5e851b9f27bda8a4.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/projects/{[projectUrn]-46b9790da2fec05a.js → [projectUrn]-9f9112b22fdfb32a.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/{projects-742849f39b646a2f.js → projects-ddca867936c89a72.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/resources/{[resourceUrn]-e7833c1c606081a9.js → [resourceUrn]-85e3d6f1b2afd3e7.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/{resources-bed368d048ea6883.js → resources-9831226436d884b5.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/action-center/{[monitorId]-25eac2d4008cef3d.js → [monitorId]-5c37c3ad1c3cfba5.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/{activity-0cfa8a9caf7c75c3.js → activity-a0749240265da17d.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/{datamap-9cd0c40bef77b120.js → datamap-819ac99e7a56465a.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/dataset/[datasetId]/[collectionName]/{[...subfieldNames]-ab9bc1a3640547db.js → [...subfieldNames]-259d4a94861afe2b.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/dataset/[datasetId]/{[collectionName]-17ec8385bb1fa6d4.js → [collectionName]-25283f5bcac8fa73.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/dataset/{[datasetId]-e14c1c07658f8a10.js → [datasetId]-aaedf8f2a849c97f.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/{datastore-connection-b8eaa9b9d3832b30.js → datastore-connection-61adfcd5f7f69101.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/{index-94e6d589c4edf360.js → index-1072281d6cfe8295.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/messaging/{[id]-6b032de0a6c2c400.js → [id]-268918d8c1dfe82a.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/messaging/{add-template-c0d6ae68ff7979c6.js → add-template-cd75949bee7497b6.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/{[id]-bbe5854b7d19b7e9.js → [id]-d1f4178b8a7e2145.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/{configure-4bad69cd42c9722c.js → configure-37e800a20e654064.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/properties/{[id]-b4c808a8a0287d11.js → [id]-92145503c4d2d75e.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/properties/{add-property-5a701477b006a63b.js → add-property-ab94805694ebd35c.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/{properties-9a1899dfe052023e.js → properties-5e623dcd92418638.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/reporting/{datamap-449ad3b08750bfc2.js → datamap-710839776b9995ce.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/settings/{about-d073be113e9ca7b0.js → about-175d39bdd74f148c.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/settings/{custom-fields-ce9305fa04fecbb8.js → custom-fields-1262d596c0cdcd81.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/settings/{domain-records-c5cd5fb578de9515.js → domain-records-f0c6e6034d37dbcf.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/settings/{email-templates-39c7ae3602ac69b2.js → email-templates-6ee49492a7769f89.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/settings/{locations-f35bd2d0c10aa58c.js → locations-deb754d42982562b.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/settings/{regulations-ba8c25b63bbf7dc2.js → regulations-f9e97decfe56b018.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/systems/configure/[id]/{test-datasets-73ef0438c85014bb.js → test-datasets-ae133b6e8e1107f2.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/{systems-c320df35d51dc537.js → systems-4d6a17a7a24aca97.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/{taxonomy-181ea5b0ac975239.js → taxonomy-46f47c04a01319cf.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/user-management/profile/{[id]-622e16a17a11c096.js → [id]-5b752ba934baee94.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/{user-management-aa872b21bb835d34.js → user-management-4fbb29cf0a611aae.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{webpack-4df2ba5ee2d40f0a.js → webpack-815e3c35038201da.js} +0 -0
- /fides/ui-build/static/admin/_next/static/{NgZHwKJoepGB5-XW8xdZo → dctUooMB4AAq5YqgLKNt9}/_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-21T12:37:34-0500",
|
12
12
|
"dirty": false,
|
13
13
|
"error": null,
|
14
|
-
"full-revisionid": "
|
15
|
-
"version": "2.57.
|
14
|
+
"full-revisionid": "b0eb1b3cd0cf9c73be52faa4d927a9dd386c1285",
|
15
|
+
"version": "2.57.1b7"
|
16
16
|
}
|
17
17
|
''' # END VERSION_JSON
|
18
18
|
|
@@ -58,8 +58,10 @@ def patch_settings(
|
|
58
58
|
Only keys provided will be updated, others will be unaffected,
|
59
59
|
i.e. true PATCH behavior.
|
60
60
|
"""
|
61
|
-
|
62
|
-
|
61
|
+
# We use exclude_unset=True to ensure that only the provided keys are updated.
|
62
|
+
# This is particularly useful for allowing setting a specific key to None, while
|
63
|
+
# keeping the existing values for other keys that aren't provided in the payload data.
|
64
|
+
pruned_data = data.model_dump(exclude_unset=True)
|
63
65
|
logger.info("PATCHing application settings")
|
64
66
|
update_config: ApplicationConfig = ApplicationConfig.update_api_set(db, pruned_data)
|
65
67
|
|
fides/api/models/attachment.py
CHANGED
@@ -13,12 +13,14 @@ from fides.api.db.base_class import Base
|
|
13
13
|
from fides.api.models.fides_user import FidesUser # pylint: disable=unused-import
|
14
14
|
from fides.api.models.storage import StorageConfig # pylint: disable=unused-import
|
15
15
|
from fides.api.schemas.storage.storage import StorageDetails, StorageType
|
16
|
-
from fides.api.
|
17
|
-
LOCAL_FIDES_UPLOAD_DIRECTORY,
|
16
|
+
from fides.api.service.storage.s3 import (
|
18
17
|
generic_delete_from_s3,
|
19
18
|
generic_retrieve_from_s3,
|
19
|
+
generic_upload_to_s3,
|
20
|
+
)
|
21
|
+
from fides.api.service.storage.util import (
|
22
|
+
LOCAL_FIDES_UPLOAD_DIRECTORY,
|
20
23
|
get_local_filename,
|
21
|
-
upload_to_s3,
|
22
24
|
)
|
23
25
|
|
24
26
|
|
@@ -91,7 +93,6 @@ class Attachment(Base):
|
|
91
93
|
|
92
94
|
user = relationship(
|
93
95
|
"FidesUser",
|
94
|
-
backref="attachments",
|
95
96
|
lazy="selectin",
|
96
97
|
uselist=False,
|
97
98
|
)
|
@@ -114,13 +115,10 @@ class Attachment(Base):
|
|
114
115
|
if self.config.type == StorageType.s3:
|
115
116
|
bucket_name = f"{self.config.details[StorageDetails.BUCKET.value]}"
|
116
117
|
auth_method = self.config.details[StorageDetails.AUTH_METHOD.value]
|
117
|
-
|
118
|
+
generic_upload_to_s3(
|
118
119
|
storage_secrets=self.config.secrets,
|
119
|
-
data={},
|
120
120
|
bucket_name=bucket_name,
|
121
121
|
file_key=self.id,
|
122
|
-
resp_format=self.config.format,
|
123
|
-
privacy_request=None,
|
124
122
|
document=attachment,
|
125
123
|
auth_method=auth_method,
|
126
124
|
)
|
fides/api/models/comment.py
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
from enum import Enum as EnumType
|
2
|
-
from typing import Any
|
2
|
+
from typing import TYPE_CHECKING, Any
|
3
3
|
|
4
4
|
from sqlalchemy import Column
|
5
5
|
from sqlalchemy import Enum as EnumColumn
|
@@ -8,8 +8,10 @@ from sqlalchemy.ext.declarative import declared_attr
|
|
8
8
|
from sqlalchemy.orm import Session, relationship
|
9
9
|
|
10
10
|
from fides.api.db.base_class import Base
|
11
|
-
|
12
|
-
|
11
|
+
|
12
|
+
if TYPE_CHECKING:
|
13
|
+
from fides.api.models.attachment import Attachment
|
14
|
+
from fides.api.models.fides_user import FidesUser
|
13
15
|
|
14
16
|
|
15
17
|
class CommentType(str, EnumType):
|
@@ -78,7 +80,6 @@ class Comment(Base):
|
|
78
80
|
|
79
81
|
user = relationship(
|
80
82
|
"FidesUser",
|
81
|
-
backref="comments",
|
82
83
|
lazy="selectin",
|
83
84
|
uselist=False,
|
84
85
|
)
|
@@ -90,20 +91,19 @@ class Comment(Base):
|
|
90
91
|
uselist=True,
|
91
92
|
)
|
92
93
|
|
93
|
-
|
94
|
-
""
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
)
|
102
|
-
return db.execute(stmt).scalars().all()
|
94
|
+
attachments = relationship(
|
95
|
+
"Attachment",
|
96
|
+
secondary="attachment_reference",
|
97
|
+
primaryjoin="Comment.id == AttachmentReference.reference_id",
|
98
|
+
secondaryjoin="Attachment.id == AttachmentReference.attachment_id",
|
99
|
+
order_by="Attachment.created_at",
|
100
|
+
uselist=True,
|
101
|
+
)
|
103
102
|
|
104
103
|
def delete(self, db: Session) -> None:
|
105
104
|
"""Delete the comment and all associated references."""
|
106
|
-
|
107
|
-
for attachment in attachments:
|
108
|
-
attachment.
|
105
|
+
# Delete the comment
|
106
|
+
for attachment in self.attachments:
|
107
|
+
if len(attachment.references) == 1:
|
108
|
+
attachment.delete(db)
|
109
109
|
db.delete(self)
|
@@ -39,8 +39,10 @@ from fides.api.graph.config import (
|
|
39
39
|
CollectionAddress,
|
40
40
|
)
|
41
41
|
from fides.api.migrations.hash_migration_mixin import HashMigrationMixin
|
42
|
+
from fides.api.models.attachment import Attachment, AttachmentReference
|
42
43
|
from fides.api.models.audit_log import AuditLog
|
43
44
|
from fides.api.models.client import ClientDetail
|
45
|
+
from fides.api.models.comment import Comment, CommentReference
|
44
46
|
from fides.api.models.fides_user import FidesUser
|
45
47
|
from fides.api.models.manual_webhook import AccessManualWebhook
|
46
48
|
from fides.api.models.policy import (
|
@@ -166,6 +168,20 @@ class PrivacyRequest(
|
|
166
168
|
Policy,
|
167
169
|
backref="privacy_requests",
|
168
170
|
)
|
171
|
+
attachments = relationship(
|
172
|
+
Attachment,
|
173
|
+
secondary="attachment_reference",
|
174
|
+
primaryjoin="PrivacyRequest.id == AttachmentReference.reference_id",
|
175
|
+
secondaryjoin="Attachment.id == AttachmentReference.attachment_id",
|
176
|
+
order_by="Attachment.created_at",
|
177
|
+
)
|
178
|
+
comments = relationship(
|
179
|
+
Comment,
|
180
|
+
secondary="comment_reference",
|
181
|
+
primaryjoin="PrivacyRequest.id == CommentReference.reference_id",
|
182
|
+
secondaryjoin="Comment.id == CommentReference.comment_id",
|
183
|
+
order_by="Comment.created_at",
|
184
|
+
)
|
169
185
|
property_id = Column(String, nullable=True)
|
170
186
|
|
171
187
|
cancel_reason = Column(String(200))
|
@@ -1011,6 +1027,51 @@ class PrivacyRequest(
|
|
1011
1027
|
"""Return existing Consent Request Tasks for the current privacy request"""
|
1012
1028
|
return self.request_tasks.filter(RequestTask.action_type == ActionType.consent)
|
1013
1029
|
|
1030
|
+
def get_comment_by_id(self, db: Session, comment_id: str) -> Optional[Comment]:
|
1031
|
+
"""Get the comment associated with the privacy request"""
|
1032
|
+
comment = (
|
1033
|
+
db.query(Comment)
|
1034
|
+
.join(CommentReference, Comment.id == CommentReference.comment_id)
|
1035
|
+
.filter(
|
1036
|
+
CommentReference.reference_id
|
1037
|
+
== self.id, # Ensure the comment is linked to this privacy request
|
1038
|
+
Comment.id == comment_id, # Match the specific comment ID
|
1039
|
+
)
|
1040
|
+
.first()
|
1041
|
+
)
|
1042
|
+
if not comment:
|
1043
|
+
logger.info(
|
1044
|
+
f"Comment with id {comment_id} not found on privacy request {self.id}"
|
1045
|
+
)
|
1046
|
+
return comment
|
1047
|
+
|
1048
|
+
def get_attachment_by_id(
|
1049
|
+
self, db: Session, attachment_id: str
|
1050
|
+
) -> Optional[Attachment]:
|
1051
|
+
"""Get the attachment associated with the privacy request"""
|
1052
|
+
attachment = (
|
1053
|
+
db.query(Attachment)
|
1054
|
+
.join(
|
1055
|
+
AttachmentReference, Attachment.id == AttachmentReference.attachment_id
|
1056
|
+
)
|
1057
|
+
.filter(
|
1058
|
+
AttachmentReference.reference_id == self.id,
|
1059
|
+
Attachment.id == attachment_id,
|
1060
|
+
)
|
1061
|
+
.first()
|
1062
|
+
)
|
1063
|
+
if not attachment:
|
1064
|
+
logger.info(
|
1065
|
+
f"Attachment with id {attachment_id} not found on privacy request {self.id}"
|
1066
|
+
)
|
1067
|
+
return attachment
|
1068
|
+
|
1069
|
+
def delete_attachment_by_id(self, db: Session, attachment_id: str) -> None:
|
1070
|
+
"""Delete the attachment associated with the privacy request"""
|
1071
|
+
attachment = self.get_attachment_by_id(db, attachment_id)
|
1072
|
+
if attachment:
|
1073
|
+
attachment.delete(db)
|
1074
|
+
|
1014
1075
|
def get_existing_request_task(
|
1015
1076
|
self,
|
1016
1077
|
db: Session,
|
@@ -0,0 +1,133 @@
|
|
1
|
+
from __future__ import annotations
|
2
|
+
|
3
|
+
from io import BytesIO
|
4
|
+
from typing import Any, Dict, Optional
|
5
|
+
|
6
|
+
from boto3.s3.transfer import TransferConfig
|
7
|
+
from botocore.exceptions import ClientError, ParamValidationError
|
8
|
+
from fideslang.validation import AnyHttpUrlString
|
9
|
+
from loguru import logger
|
10
|
+
|
11
|
+
from fides.api.schemas.storage.storage import StorageSecrets
|
12
|
+
from fides.api.util.aws_util import get_s3_client
|
13
|
+
from fides.config import CONFIG
|
14
|
+
|
15
|
+
|
16
|
+
def create_presigned_url_for_s3(
|
17
|
+
s3_client: Any, bucket_name: str, file_key: str
|
18
|
+
) -> AnyHttpUrlString:
|
19
|
+
""" "Generate a presigned URL to share an S3 object
|
20
|
+
|
21
|
+
:param s3_client: s3 base client
|
22
|
+
:param bucket_name: string
|
23
|
+
:param file_key: string
|
24
|
+
:return: Presigned URL as string.
|
25
|
+
"""
|
26
|
+
response = s3_client.generate_presigned_url(
|
27
|
+
"get_object",
|
28
|
+
Params={"Bucket": bucket_name, "Key": file_key},
|
29
|
+
ExpiresIn=CONFIG.security.subject_request_download_link_ttl_seconds,
|
30
|
+
)
|
31
|
+
|
32
|
+
# The response contains the presigned URL
|
33
|
+
return response
|
34
|
+
|
35
|
+
|
36
|
+
def generic_upload_to_s3( # pylint: disable=R0913
|
37
|
+
storage_secrets: Dict[StorageSecrets, Any],
|
38
|
+
bucket_name: str,
|
39
|
+
file_key: str,
|
40
|
+
auth_method: str,
|
41
|
+
document: BytesIO,
|
42
|
+
) -> Optional[AnyHttpUrlString]:
|
43
|
+
"""
|
44
|
+
Uploads arbitrary data to S3 returned from an access request.
|
45
|
+
Handles both small and large uploads.
|
46
|
+
"""
|
47
|
+
logger.info("Starting S3 Upload of {}", file_key)
|
48
|
+
|
49
|
+
try:
|
50
|
+
s3_client = get_s3_client(auth_method, storage_secrets)
|
51
|
+
|
52
|
+
# Define a transfer configuration for multipart uploads
|
53
|
+
transfer_config = TransferConfig(
|
54
|
+
multipart_threshold=5 * 1024 * 1024, # 5 MB threshold for multipart uploads
|
55
|
+
multipart_chunksize=5 * 1024 * 1024, # 5 MB chunk size
|
56
|
+
)
|
57
|
+
|
58
|
+
try:
|
59
|
+
# Check if the document is a file-like object or raw bytes
|
60
|
+
if isinstance(document, bytes):
|
61
|
+
document = BytesIO(document) # Wrap raw bytes in a file-like object
|
62
|
+
|
63
|
+
# Use upload_fileobj for efficient uploads (handles both small and large files)
|
64
|
+
s3_client.upload_fileobj(
|
65
|
+
Fileobj=document,
|
66
|
+
Bucket=bucket_name,
|
67
|
+
Key=file_key,
|
68
|
+
Config=transfer_config,
|
69
|
+
)
|
70
|
+
except Exception as e:
|
71
|
+
logger.error("Encountered error while uploading S3 object: {}", e)
|
72
|
+
raise e
|
73
|
+
|
74
|
+
# Generate a presigned URL for the uploaded file
|
75
|
+
presigned_url: AnyHttpUrlString = create_presigned_url_for_s3(
|
76
|
+
s3_client, bucket_name, file_key
|
77
|
+
)
|
78
|
+
|
79
|
+
return presigned_url
|
80
|
+
except ClientError as e:
|
81
|
+
logger.error(
|
82
|
+
"Encountered error while uploading and generating link for S3 object: {}", e
|
83
|
+
)
|
84
|
+
raise e
|
85
|
+
except ParamValidationError as e:
|
86
|
+
raise ValueError(f"The parameters you provided are incorrect: {e}")
|
87
|
+
|
88
|
+
|
89
|
+
def generic_retrieve_from_s3(
|
90
|
+
storage_secrets: Dict[StorageSecrets, Any],
|
91
|
+
bucket_name: str,
|
92
|
+
file_key: str,
|
93
|
+
auth_method: str,
|
94
|
+
) -> Optional[BytesIO]:
|
95
|
+
"""Retrieves arbitrary data from s3"""
|
96
|
+
logger.info("Starting S3 Retrieve of {}", file_key)
|
97
|
+
|
98
|
+
try:
|
99
|
+
s3_client = get_s3_client(auth_method, storage_secrets)
|
100
|
+
try:
|
101
|
+
response = s3_client.get_object(Bucket=bucket_name, Key=file_key)
|
102
|
+
return response["Body"].read()
|
103
|
+
except Exception as e:
|
104
|
+
logger.error("Encountered error while retrieving s3 object: {}", e)
|
105
|
+
raise e
|
106
|
+
except ClientError as e:
|
107
|
+
logger.error("Encountered error while retrieving s3 object: {}", e)
|
108
|
+
raise e
|
109
|
+
except ParamValidationError as e:
|
110
|
+
raise ValueError(f"The parameters you provided are incorrect: {e}")
|
111
|
+
|
112
|
+
|
113
|
+
def generic_delete_from_s3(
|
114
|
+
storage_secrets: Dict[StorageSecrets, Any],
|
115
|
+
bucket_name: str,
|
116
|
+
file_key: str,
|
117
|
+
auth_method: str,
|
118
|
+
) -> None:
|
119
|
+
"""Deletes arbitrary data from s3"""
|
120
|
+
logger.info("Starting S3 Delete of {}", file_key)
|
121
|
+
|
122
|
+
try:
|
123
|
+
s3_client = get_s3_client(auth_method, storage_secrets)
|
124
|
+
try:
|
125
|
+
s3_client.delete_object(Bucket=bucket_name, Key=file_key)
|
126
|
+
except Exception as e:
|
127
|
+
logger.error("Encountered error while deleting s3 object: {}", e)
|
128
|
+
raise e
|
129
|
+
except ClientError as e:
|
130
|
+
logger.error("Encountered error while deleting s3 object: {}", e)
|
131
|
+
raise e
|
132
|
+
except ParamValidationError as e:
|
133
|
+
raise ValueError(f"The parameters you provided are incorrect: {e}")
|
@@ -0,0 +1,10 @@
|
|
1
|
+
import os
|
2
|
+
|
3
|
+
LOCAL_FIDES_UPLOAD_DIRECTORY = "fides_uploads"
|
4
|
+
|
5
|
+
|
6
|
+
def get_local_filename(file_key: str) -> str:
|
7
|
+
"""Verifies that the local storage directory exists"""
|
8
|
+
if not os.path.exists(LOCAL_FIDES_UPLOAD_DIRECTORY):
|
9
|
+
os.makedirs(LOCAL_FIDES_UPLOAD_DIRECTORY)
|
10
|
+
return f"{LOCAL_FIDES_UPLOAD_DIRECTORY}/{file_key}"
|
fides/api/tasks/storage.py
CHANGED
@@ -1,11 +1,10 @@
|
|
1
1
|
from __future__ import annotations
|
2
2
|
|
3
3
|
import json
|
4
|
-
import os
|
5
4
|
import secrets
|
6
5
|
import zipfile
|
7
6
|
from io import BytesIO
|
8
|
-
from typing import Any, Dict, Optional, Union
|
7
|
+
from typing import TYPE_CHECKING, Any, Dict, Optional, Union
|
9
8
|
|
10
9
|
import pandas as pd
|
11
10
|
from botocore.exceptions import ClientError, ParamValidationError
|
@@ -13,11 +12,18 @@ from fideslang.validation import AnyHttpUrlString
|
|
13
12
|
from loguru import logger
|
14
13
|
|
15
14
|
from fides.api.cryptography.cryptographic_util import bytes_to_b64_str
|
16
|
-
from fides.api.models.privacy_request import PrivacyRequest
|
17
15
|
from fides.api.schemas.storage.storage import ResponseFormat, StorageSecrets
|
18
16
|
from fides.api.service.privacy_request.dsr_package.dsr_report_builder import (
|
19
17
|
DsrReportBuilder,
|
20
18
|
)
|
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
|
+
)
|
21
27
|
from fides.api.util.aws_util import get_s3_client
|
22
28
|
from fides.api.util.cache import get_cache, get_encryption_cache_key
|
23
29
|
from fides.api.util.encryption.aes_gcm_encryption_scheme import (
|
@@ -26,7 +32,8 @@ from fides.api.util.encryption.aes_gcm_encryption_scheme import (
|
|
26
32
|
from fides.api.util.storage_util import storage_json_encoder
|
27
33
|
from fides.config import CONFIG
|
28
34
|
|
29
|
-
|
35
|
+
if TYPE_CHECKING:
|
36
|
+
from fides.api.models.privacy_request import PrivacyRequest
|
30
37
|
|
31
38
|
|
32
39
|
def encrypt_access_request_results(data: Union[str, bytes], request_id: str) -> str:
|
@@ -101,105 +108,6 @@ def write_to_in_memory_buffer(
|
|
101
108
|
raise NotImplementedError(f"No handling for response format {resp_format}.")
|
102
109
|
|
103
110
|
|
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
|
-
|
203
111
|
def upload_to_s3( # pylint: disable=R0913
|
204
112
|
storage_secrets: Dict[StorageSecrets, Any],
|
205
113
|
data: Dict,
|
@@ -207,7 +115,7 @@ def upload_to_s3( # pylint: disable=R0913
|
|
207
115
|
file_key: str,
|
208
116
|
resp_format: str,
|
209
117
|
privacy_request: Optional[PrivacyRequest],
|
210
|
-
document: Optional[
|
118
|
+
document: Optional[BytesIO],
|
211
119
|
auth_method: str,
|
212
120
|
) -> Optional[AnyHttpUrlString]:
|
213
121
|
"""Uploads arbitrary data to s3 returned from an access request"""
|
@@ -249,13 +157,6 @@ def upload_to_s3( # pylint: disable=R0913
|
|
249
157
|
raise ValueError(f"The parameters you provided are incorrect: {e}")
|
250
158
|
|
251
159
|
|
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
|
-
|
259
160
|
def upload_to_local(
|
260
161
|
data: Dict,
|
261
162
|
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 field in data:
|
136
|
+
if data and field in data:
|
137
137
|
filtered[key][field] = data[field]
|
138
138
|
|
139
139
|
return filtered
|
@@ -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/
|
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/dd9922a434d21e22.css" as="style"/><link rel="stylesheet" href="/_next/static/css/dd9922a434d21e22.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-815e3c35038201da.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-e53d13729068a001.js" defer=""></script><script src="/_next/static/chunks/pages/404-8e0baa6e128803ab.js" defer=""></script><script src="/_next/static/dctUooMB4AAq5YqgLKNt9/_buildManifest.js" defer=""></script><script src="/_next/static/dctUooMB4AAq5YqgLKNt9/_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":"dctUooMB4AAq5YqgLKNt9","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
|
@@ -0,0 +1 @@
|
|
1
|
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1376],{87361:function(e,a,n){var i=n(24246),t=n(56351);a.Z=e=>{let{title:a,text:n,onClose:l}=e;return(0,i.jsxs)(t.Ugi,{backgroundColor:"gray.50",border:"1px solid",borderRadius:"md",justifyContent:"space-between",py:4,pr:6,pl:3,"data-testid":"empty-state",gap:2,position:"relative",children:[l&&(0,i.jsx)(t.Two,{boxSize:5,position:"absolute",right:3,top:3,zIndex:1,cursor:"pointer",p:1,onClick:l}),(0,i.jsx)(t.iid,{alignSelf:"start",color:"minos",mt:.5,flexGrow:0}),(0,i.jsxs)(t.kCb,{direction:"column",gap:2,flexGrow:1,children:[(0,i.jsx)(t.X6q,{fontSize:"md",children:a}),(0,i.jsx)(t.xvT,{fontSize:"sm",color:"gray.600",lineHeight:"5",children:n})]})]})}},97181:function(e,a,n){n.d(a,{d:function(){return d}});var i=n(24246),t=n(56351),l=n(34090),r=n(27378),o=n(91613),s=n(40324);let d=e=>{let{name:a,label:n,labelProps:d,tooltip:_,isRequired:c,layout:u="inline",...F}=e,[p,b,{setValue:m}]=(0,l.U$)(a),v=!!(b.touched&&b.error),[g,h]=(0,r.useState)("");p.value||"tags"!==F.mode&&"multiple"!==F.mode||(p.value=[]),"tags"===F.mode&&"string"==typeof p.value&&(p.value=[p.value]);let S="tags"===F.mode?(e,a)=>e?e.value!==g||p.value.includes(g)?F.optionRender?F.optionRender(e,a):e.label:'Create "'.concat(g,'"'):void 0:F.optionRender||void 0,C=e=>{h(e),F.onSearch&&F.onSearch(e)},f=(e,a)=>{m(e),F.onChange&&F.onChange(e,a)};return"inline"===u?(0,i.jsx)(t.NIc,{isInvalid:v,isRequired:c,children:(0,i.jsxs)(t.rjZ,{templateColumns:n?"1fr 3fr":"1fr",children:[n?(0,i.jsx)(s.__,{htmlFor:F.id||a,...d,children:n}):null,(0,i.jsxs)(t.jqI,{align:"center",children:[(0,i.jsxs)(t.jqI,{vertical:!0,flex:1,className:"mr-2",children:[(0,i.jsx)(t.WPr,{...p,id:F.id||a,"data-testid":"controlled-select-".concat(p.name),...F,optionRender:S,onSearch:"tags"===F.mode?C:void 0,onChange:f,value:p.value||void 0,status:v?"error":void 0}),(0,i.jsx)(s.Bc,{isInvalid:v,message:b.error,fieldName:p.name})]}),_?(0,i.jsx)(o.Z,{label:_}):null]})]})}):(0,i.jsx)(t.NIc,{isInvalid:v,isRequired:c,children:(0,i.jsxs)(t.gCW,{alignItems:"start",children:[(0,i.jsxs)(t.jqI,{align:"center",children:[n?(0,i.jsx)(s.__,{htmlFor:F.id||a,fontSize:"xs",my:0,mr:1,...d,children:n}):null,_?(0,i.jsx)(o.Z,{label:_}):null]}),(0,i.jsx)(t.WPr,{...p,id:F.id||a,"data-testid":"controlled-select-".concat(p.name),...F,optionRender:S,onSearch:"tags"===F.mode?C:void 0,onChange:f,value:p.value||void 0,status:v?"error":void 0}),(0,i.jsx)(s.Bc,{isInvalid:v,message:b.error,fieldName:p.name})]})})}},57899:function(e,a,n){var i=n(24246),t=n(56351),l=n(27378);a.Z=e=>{let{handleConfirm:a,isOpen:n,onClose:r,title:o,message:s,confirmButtonText:d="Continue",cancelButtonText:_="Cancel"}=e,c=(0,l.useRef)(null);return(0,i.jsx)(t.aRR,{isOpen:n,leastDestructiveRef:c,onClose:r,children:(0,i.jsx)(t.dhV,{children:(0,i.jsxs)(t._Tf,{alignItems:"center",textAlign:"center",children:[(0,i.jsx)(t.aNP,{marginTop:3}),(0,i.jsx)(t.fYl,{fontSize:"lg",fontWeight:"bold",children:o}),(0,i.jsx)(t.iPF,{pt:0,children:s}),(0,i.jsxs)(t.xoY,{children:[(0,i.jsx)(t.wpx,{ref:c,onClick:r,size:"large",children:_}),(0,i.jsx)(t.wpx,{onClick:()=>a(),type:"primary",size:"large",className:"ml-3","data-testid":"warning-modal-confirm-btn",children:d})]})]})})})}},90980:function(e,a,n){n.d(a,{R:function(){return s}});var i=n(24246),t=n(56351),l=n(79894),r=n.n(l),o=n(63662);let s=e=>{let{onClick:a,...n}=e;return(0,i.jsxs)(t.kCb,{alignItems:"center",mt:-4,mb:3,onClick:a,cursor:"pointer",...n,children:[(0,i.jsx)(t.wpx,{"aria-label":"Back",icon:(0,i.jsx)(t.Rpv,{}),className:"mr-2",size:"small"}),(0,i.jsx)(t.xvT,{as:"a",fontSize:"sm",fontWeight:"500",children:"Back"})]})};a.Z=e=>{let{backPath:a,...n}=e,l=(0,o.useRouter)();return(0,i.jsxs)(t.kCb,{alignItems:"center",mb:6,...n,children:[(0,i.jsx)(t.wpx,{onClick:()=>l.push(a),"aria-label":"Back",icon:(0,i.jsx)(t.Rpv,{}),className:"mr-2",size:"small"}),(0,i.jsx)(t.xvT,{as:r(),href:a,fontSize:"sm",fontWeight:"500",children:"Back"})]})}},8411:function(e,a,n){n.d(a,{NA:function(){return l},Z8:function(){return t}});var i=n(21702);let t={[i._F.ER]:"Eritrea",[i._F.DJ]:"Djibouti",[i._F.MR]:"Mauritania",[i._F.NA]:"Namibia",[i._F.GH]:"Ghana",[i._F.SS]:"South Sudan",[i._F.SC]:"Seychelles",[i._F.IO]:"British Indian Ocean Territory",[i._F.GQ]:"Equatorial Guinea",[i._F.AO]:"Angola",[i._F.CG]:"Republic of the Congo",[i._F.BW]:"Botswana",[i._F.BI]:"Burundi",[i._F.DZ]:"Algeria",[i._F.TD]:"Chad",[i._F.NG]:"Nigeria",[i._F.TZ]:"Tanzania",[i._F.EH]:"Western Sahara",[i._F.SN]:"Senegal",[i._F.LR]:"Liberia",[i._F.ZA]:"South Africa",[i._F.CV]:"Cape Verde",[i._F.GM]:"Gambia",[i._F.SD]:"Sudan",[i._F.KM]:"Comoros",[i._F.SZ]:"Eswatini",[i._F.UG]:"Uganda",[i._F.MG]:"Madagascar",[i._F.RW]:"Rwanda",[i._F.CD]:"DR Congo",[i._F.CM]:"Cameroon",[i._F.SH]:"Saint Helena, Ascension and Tristan da Cunha",[i._F.TG]:"Togo",[i._F.MU]:"Mauritius",[i._F.NE]:"Niger",[i._F.BJ]:"Benin",[i._F.EG]:"Egypt",[i._F.LS]:"Lesotho",[i._F.ET]:"Ethiopia",[i._F.MA]:"Morocco",[i._F.YT]:"Mayotte",[i._F.BF]:"Burkina Faso",[i._F.RE]:"R\xe9union",[i._F.ST]:"S\xe3o Tom\xe9 and Pr\xedncipe",[i._F.CF]:"Central African Republic",[i._F.MZ]:"Mozambique",[i._F.MW]:"Malawi",[i._F.ML]:"Mali",[i._F.ZM]:"Zambia",[i._F.LY]:"Libya",[i._F.GW]:"Guinea-Bissau",[i._F.SO]:"Somalia",[i._F.KE]:"Kenya",[i._F.GN]:"Guinea",[i._F.ZW]:"Zimbabwe",[i._F.TN]:"Tunisia",[i._F.SL]:"Sierra Leone",[i._F.GA]:"Gabon",[i._F.CI]:"Ivory Coast",[i._F.JO]:"Jordan",[i._F.PK]:"Pakistan",[i._F.KP]:"North Korea",[i._F.MO]:"Macau",[i._F.AM]:"Armenia",[i._F.SY]:"Syria",[i._F.TJ]:"Tajikistan",[i._F.SA]:"Saudi Arabia",[i._F.KR]:"South Korea",[i._F.NP]:"Nepal",[i._F.PH]:"Philippines",[i._F.IQ]:"Iraq",[i._F.LB]:"Lebanon",[i._F.MN]:"Mongolia",[i._F.PS]:"Palestine",[i._F.YE]:"Yemen",[i._F.JP]:"Japan",[i._F.KZ]:"Kazakhstan",[i._F.LK]:"Sri Lanka",[i._F.MM]:"Myanmar",[i._F.KG]:"Kyrgyzstan",[i._F.CN]:"China",[i._F.AF]:"Afghanistan",[i._F.OM]:"Oman",[i._F.IN]:"India",[i._F.LA]:"Laos",[i._F.UZ]:"Uzbekistan",[i._F.MV]:"Maldives",[i._F.ID]:"Indonesia",[i._F.VN]:"Vietnam",[i._F.MY]:"Malaysia",[i._F.TW]:"Taiwan",[i._F.KH]:"Cambodia",[i._F.AE]:"United Arab Emirates",[i._F.HK]:"Hong Kong",[i._F.GE]:"Georgia",[i._F.BD]:"Bangladesh",[i._F.KW]:"Kuwait",[i._F.TM]:"Turkmenistan",[i._F.QA]:"Qatar",[i._F.BH]:"Bahrain",[i._F.BN]:"Brunei",[i._F.TH]:"Thailand",[i._F.BT]:"Bhutan",[i._F.SG]:"Singapore",[i._F.IL]:"Israel",[i._F.AZ]:"Azerbaijan",[i._F.TL]:"Timor-Leste",[i._F.IR]:"Iran",[i._F.TR]:"Turkey",[i._F.MK]:"North Macedonia",[i._F.IE]:"Ireland",[i._F.DK]:"Denmark",[i._F.SK]:"Slovakia",[i._F.MD]:"Moldova",[i._F.AX]:"\xc5land Islands",[i._F.PL]:"Poland",[i._F.BA]:"Bosnia and Herzegovina",[i._F.SM]:"San Marino",[i._F.CZ]:"Czechia",[i._F.EE]:"Estonia",[i._F.XK]:"Kosovo",[i._F.FO]:"Faroe Islands",[i._F.SJ]:"Svalbard and Jan Mayen",[i._F.GG]:"Guernsey",[i._F.FR]:"France",[i._F.NL]:"Netherlands",[i._F.FI]:"Finland",[i._F.PT]:"Portugal",[i._F.DE]:"Germany",[i._F.MT]:"Malta",[i._F.JE]:"Jersey",[i._F.IS]:"Iceland",[i._F.ES]:"Spain",[i._F.GI]:"Gibraltar",[i._F.NO]:"Norway",[i._F.CY]:"Cyprus",[i._F.RS]:"Serbia",[i._F.LT]:"Lithuania",[i._F.MC]:"Monaco",[i._F.LU]:"Luxembourg",[i._F.UA]:"Ukraine",[i._F.IM]:"Isle of Man",[i._F.RO]:"Romania",[i._F.BE]:"Belgium",[i._F.SE]:"Sweden",[i._F.ME]:"Montenegro",[i._F.LV]:"Latvia",[i._F.VA]:"Vatican City",[i._F.AT]:"Austria",[i._F.AL]:"Albania",[i._F.LI]:"Liechtenstein",[i._F.GR]:"Greece",[i._F.IT]:"Italy",[i._F.AD]:"Andorra",[i._F.GB]:"United Kingdom",[i._F.RU]:"Russia",[i._F.SI]:"Slovenia",[i._F.BY]:"Belarus",[i._F.CH]:"Switzerland",[i._F.HU]:"Hungary",[i._F.BG]:"Bulgaria",[i._F.HR]:"Croatia",[i._F.TC]:"Turks and Caicos Islands",[i._F.CW]:"Cura\xe7ao",[i._F.GP]:"Guadeloupe",[i._F.UM]:"United States Minor Outlying Islands",[i._F.GT]:"Guatemala",[i._F.PM]:"Saint Pierre and Miquelon",[i._F.BQ]:"Caribbean Netherlands",[i._F.GL]:"Greenland",[i._F.SX]:"Sint Maarten",[i._F.PA]:"Panama",[i._F.AW]:"Aruba",[i._F.MQ]:"Martinique",[i._F.AG]:"Antigua and Barbuda",[i._F.BM]:"Bermuda",[i._F.CU]:"Cuba",[i._F.GD]:"Grenada",[i._F.NI]:"Nicaragua",[i._F.LC]:"Saint Lucia",[i._F.KN]:"Saint Kitts and Nevis",[i._F.DO]:"Dominican Republic",[i._F.VC]:"Saint Vincent and the Grenadines",[i._F.BZ]:"Belize",[i._F.HT]:"Haiti",[i._F.JM]:"Jamaica",[i._F.BS]:"Bahamas",[i._F.MX]:"Mexico",[i._F.MF]:"Saint Martin",[i._F.SV]:"El Salvador",[i._F.BL]:"Saint Barth\xe9lemy",[i._F.AI]:"Anguilla",[i._F.MS]:"Montserrat",[i._F.VG]:"British Virgin Islands",[i._F.BB]:"Barbados",[i._F.HN]:"Honduras",[i._F.KY]:"Cayman Islands",[i._F.DM]:"Dominica",[i._F.TT]:"Trinidad and Tobago",[i._F.CR]:"Costa Rica",[i._F.SR]:"Suriname",[i._F.CX]:"Christmas Island",[i._F.WS]:"Samoa",[i._F.PF]:"French Polynesia",[i._F.AS]:"American Samoa",[i._F.NC]:"New Caledonia",[i._F.TK]:"Tokelau",[i._F.PW]:"Palau",[i._F.KI]:"Kiribati",[i._F.VU]:"Vanuatu",[i._F.PN]:"Pitcairn Islands",[i._F.CK]:"Cook Islands",[i._F.FJ]:"Fiji",[i._F.PG]:"Papua New Guinea",[i._F.MP]:"Northern Mariana Islands",[i._F.NU]:"Niue",[i._F.TV]:"Tuvalu",[i._F.NF]:"Norfolk Island",[i._F.TO]:"Tonga",[i._F.FM]:"Micronesia",[i._F.SB]:"Solomon Islands",[i._F.NR]:"Nauru",[i._F.WF]:"Wallis and Futuna",[i._F.GU]:"Guam",[i._F.AU]:"Australia",[i._F.NZ]:"New Zealand",[i._F.MH]:"Marshall Islands",[i._F.CC]:"Cocos (Keeling) Islands",[i._F.VE]:"Venezuela",[i._F.PY]:"Paraguay",[i._F.BR]:"Brazil",[i._F.CO]:"Colombia",[i._F.PE]:"Peru",[i._F.CL]:"Chile",[i._F.UY]:"Uruguay",[i._F.AR]:"Argentina",[i._F.GY]:"Guyana",[i._F.BO]:"Bolivia",[i._F.GF]:"French Guiana",[i._F.EC]:"Ecuador",[i._F.FK]:"Falkland Islands",[i._F.US_AL]:"Alabama",[i._F.US_AK]:"Alaska",[i._F.US_AZ]:"Arizona",[i._F.US_AR]:"Arkansas",[i._F.US_CA]:"California",[i._F.US_CO]:"Colorado",[i._F.US_CT]:"Connecticut",[i._F.US_DE]:"Delaware",[i._F.US_DC]:"District of Columbia (DC)",[i._F.US_FL]:"Florida",[i._F.US_GA]:"Georgia",[i._F.US_HI]:"Hawaii",[i._F.US_ID]:"Idaho",[i._F.US_IL]:"Illinois",[i._F.US_IN]:"Indiana",[i._F.US_IA]:"Iowa",[i._F.US_KS]:"Kansas",[i._F.US_KY]:"Kentucky",[i._F.US_LA]:"Louisiana",[i._F.US_ME]:"Maine",[i._F.US_MD]:"Maryland",[i._F.US_MA]:"Massachusetts",[i._F.US_MI]:"Michigan",[i._F.US_MN]:"Minnesota",[i._F.US_MS]:"Mississippi",[i._F.US_MO]:"Missouri",[i._F.US_MT]:"Montana",[i._F.US_NE]:"Nebraska",[i._F.US_NV]:"Nevada",[i._F.US_NH]:"New Hampshire",[i._F.US_NJ]:"New Jersey",[i._F.US_NM]:"New Mexico",[i._F.US_NY]:"New York",[i._F.US_NC]:"North Carolina",[i._F.US_ND]:"North Dakota",[i._F.US_OH]:"Ohio",[i._F.US_OK]:"Oklahoma",[i._F.US_OR]:"Oregon",[i._F.US_PA]:"Pennsylvania",[i._F.US_PR]:"Puerto Rico",[i._F.US_RI]:"Rhode Island",[i._F.US_SC]:"South Carolina",[i._F.US_SD]:"San Diego",[i._F.US_TN]:"Tennessee",[i._F.US_TX]:"Texas",[i._F.US_UT]:"Utah",[i._F.US_VA]:"Virginia",[i._F.US_VI]:"United States Virgin Islands",[i._F.US_VT]:"Vermon",[i._F.US_WA]:"Washington",[i._F.US_WV]:"West Virginia",[i._F.US_WI]:"Wisconsin",[i._F.US_WY]:"Wyoming",[i._F.CA_AB]:"Alberta",[i._F.CA_BC]:"British Columbia",[i._F.CA_MB]:"Manitoba",[i._F.CA_NB]:"New Brunswick",[i._F.CA_NL]:"Newfoundland and Labrador",[i._F.CA_NS]:"Nova Scotia",[i._F.CA_ON]:"Ontario",[i._F.CA_PE]:"Prince Edward Island",[i._F.CA_QC]:"Quebec",[i._F.CA_SK]:"Saskatchewan",[i._F.CA_NT]:"Northwest Territories",[i._F.CA_NU]:"Nunavut",[i._F.CA_YT]:"Yukon",[i._F.CA]:"Canada",[i._F.US]:"United States",[i._F.MEXICO_CENTRAL_AMERICA]:"Mexico and Central America",[i._F.CARIBBEAN]:"Caribbean",[i._F.EEA]:"European Economic Area (EEA)",[i._F.NON_EEA]:"Non European Economic Area"},l=new Map(Object.entries(t));Object.entries(t).map(e=>({value:e[0],label:e[1]}))},7426:function(e,a,n){n.d(a,{D2:function(){return u},L:function(){return o},U7:function(){return d},Yh:function(){return p},ak:function(){return s},km:function(){return r},tB:function(){return l}});var i=n(80406);let t=n(78780).u.injectEndpoints({endpoints:e=>({getConfigurationSettings:e.query({query:e=>{let{api_set:a}=e;return{url:"/config",method:"GET",params:{api_set:a}}},providesTags:["Configuration Settings"]}),putConfigurationSettings:e.mutation({query:e=>({url:"/config",method:"PUT",body:e}),invalidatesTags:["Configuration Settings"]}),patchConfigurationSettings:e.mutation({query:e=>({url:"/config",method:"PATCH",body:e}),invalidatesTags:["Configuration Settings","Privacy Notices"]})})}),{useGetConfigurationSettingsQuery:l,usePutConfigurationSettingsMutation:r,usePatchConfigurationSettingsMutation:o}=t,s=(0,i.P1)([e=>e,t.endpoints.getConfigurationSettings.select({api_set:!0}),t.endpoints.getConfigurationSettings.select({api_set:!1})],(e,a,n)=>{var i,t,l;let{data:r}=a,{data:o}=n;return{configSet:{cors_origins:(null==o?void 0:null===(i=o.security)||void 0===i?void 0:i.cors_origins)||[],cors_origin_regex:null==o?void 0:null===(t=o.security)||void 0===t?void 0:t.cors_origin_regex},apiSet:{cors_origins:(null==r?void 0:null===(l=r.security)||void 0===l?void 0:l.cors_origins)||[]}}}),d=()=>(0,i.P1)([e=>e,t.endpoints.getConfigurationSettings.select({api_set:!0})],(e,a)=>{let{data:n}=a;return n}),_={enabled:!1,cmp_api_required:!1},c=(e,a,n,i)=>{let t=n&&n[e],l=i&&i[e];return t&&l?{...i[e],...n[e]}:l?i[e]:t?{...n[e]}:a},u=(0,i.P1)([e=>e,t.endpoints.getConfigurationSettings.select({api_set:!0}),t.endpoints.getConfigurationSettings.select({api_set:!1})],(e,a,n)=>{let{data:i}=a,{data:t}=n;return c("gpp",_,i,t)}),F={tcf_publisher_country_code:null},p=(0,i.P1)([e=>e,t.endpoints.getConfigurationSettings.select({api_set:!0}),t.endpoints.getConfigurationSettings.select({api_set:!1})],(e,a,n)=>{let{data:i}=a,{data:t}=n;return c("plus_consent_settings",F,i,t)})},16194:function(e,a,n){n.d(a,{RN:function(){return A},d0:function(){return j}});var i=n(24246),t=n(56351),l=n(34090),r=n(86677),o=n(27378),s=n(16134),d=n(40324),_=n(90980),c=n(77830),u=n(8411),F=n(51472),p=n(64781),b=n(48515),m=n(60325),v=n(34334),g=n(71922),h=n(98795),S=n(21702),C=n(97181);let f=[{label:"Banner and modal",value:S.re.BANNER_AND_MODAL},{label:"Modal",value:S.re.MODAL},{label:"Privacy center",value:S.re.PRIVACY_CENTER},{label:"Headless",value:S.re.HEADLESS}],y=[{label:"Opt In/Opt Out",value:b.O.OPT_IN_OPT_OUT},{label:"Acknowledge",value:b.O.ACKNOWLEDGE}],x="tcf_purposes_placeholder",A=e=>{let{buttonPanel:a,children:n}=e;return(0,i.jsxs)(t.kCb,{direction:"column",minH:"full",w:"25%",borderRight:"1px solid #DEE5EE",children:[(0,i.jsx)(t.kCb,{direction:"column",h:"full",overflowY:"auto",px:4,children:(0,i.jsx)(t.kCb,{direction:"column",gap:4,w:"full",pb:4,children:n})}),a]})},j=e=>{var a,n,b,j,k;let{allPrivacyNotices:N,translationsEnabled:T,onSelectTranslation:M,onCreateTranslation:I}=e,E=(0,r.useRouter)(),{values:U,setFieldValue:R,dirty:w,isValid:O,isSubmitting:B,initialValues:L}=(0,l.u6)(),P=(0,s.C)(g.Zp),q=(0,s.C)(g.G1);(0,g.J6)({page:P,size:q});let D=(0,o.useMemo)(()=>{let e=[...N];return e.some(e=>e.id===x)||e.push({name:"TCF Purposes",id:x,notice_key:x,data_uses:[],consent_mechanism:S.J7.NOTICE_ONLY,disabled:!1}),e},[N]),G=e=>{var a;let n=D.find(a=>a.id===e);return null!==(a=null==n?void 0:n.name)&&void 0!==a?a:e};(0,p.QM)();let K=(0,s.C)(p.P8),V=[...(0,m.TK)(K.locations),...(0,m.TK)(K.location_groups)],Z=(0,s.C)(v.fJ),Y=(0,s.C)(h.Zp),W=(0,s.C)(h.G1);(0,h.gz)({page:Y,size:W});let z=(0,s.C)(h.YO),H=(0,i.jsxs)("div",{className:"flex justify-between border-t border-[#DEE5EE] p-4",children:[(0,i.jsx)(t.wpx,{onClick:()=>E.push(c.w0),children:"Cancel"}),(0,i.jsx)(t.wpx,{htmlType:"submit",type:"primary","data-testid":"save-btn",disabled:B||!w||!O,loading:B,children:"Save"})]});return(0,i.jsxs)(A,{buttonPanel:H,children:[(0,i.jsx)(_.Z,{backPath:c.w0,mt:4}),(0,i.jsx)(t.X6q,{fontSize:"md",fontWeight:"semibold",children:"Configure experience"}),(0,i.jsx)(d.j0,{name:"name",id:"name",label:"Name (internal admin use only)",isRequired:!0,variant:"stacked"}),U.component!==S.re.TCF_OVERLAY&&(0,i.jsx)(C.d,{name:"component",id:"component",options:f,label:"Experience type",layout:"stacked",disabled:!!L.component,isRequired:!0}),(0,i.jsx)(t.UO1,{in:U.component!==S.re.PRIVACY_CENTER&&U.component!==S.re.HEADLESS,animateOpacity:!0,children:(0,i.jsx)(t.xuv,{p:"1px",children:(0,i.jsx)(d.w8,{name:"dismissable",id:"dismissable",label:"Allow user to dismiss",variant:"stacked"})})}),(0,i.jsx)(t.UO1,{in:U.component===S.re.BANNER_AND_MODAL,animateOpacity:!0,children:(0,i.jsx)(C.d,{name:"layer1_button_options",id:"layer1_button_options",options:y,label:"Banner options",layout:"stacked",disabled:U.component!==S.re.BANNER_AND_MODAL})}),(0,i.jsx)(F.Z,{label:"Associated properties",addButtonLabel:"Add property",idField:"id",nameField:"name",allItems:z.map(e=>({id:e.id,name:e.name})),values:null!==(n=U.properties)&&void 0!==n?n:[],setValues:e=>R("properties",e),draggable:!0,maxHeight:100,baseTestId:"property"}),(0,i.jsx)(t.izJ,{}),(0,i.jsx)(t.X6q,{fontSize:"md",fontWeight:"semibold",children:"Privacy notices"}),U.component===S.re.TCF_OVERLAY?(0,i.jsx)(F.Z,{addButtonLabel:"Add privacy notice",allItems:D.map(e=>e.id),values:function(e){if(!e.privacy_notice_ids)return[x];let a=e.privacy_notice_ids;return a.includes(x)||a.push(x),a}(U),setValues:e=>R("privacy_notice_ids",e),canDeleteItem:e=>e!==x,getTooltip:e=>{if(e===x)return"TCF Purposes are required by the framework and cannot be deleted."},getItemLabel:G,draggable:!0,baseTestId:"privacy-notice"}):(0,i.jsx)(F.Z,{addButtonLabel:"Add privacy notice",allItems:(e=>{var a;let n=e.map(e=>{var a;return null===(a=e.children)||void 0===a?void 0:a.map(e=>e.id)}).flat();return null!==(a=N.filter(e=>!n.includes(e.id)))&&void 0!==a?a:[]})(N).map(e=>e.id),values:null!==(b=U.privacy_notice_ids)&&void 0!==b?b:[],setValues:e=>R("privacy_notice_ids",e),getItemLabel:G,draggable:!0,baseTestId:"privacy-notice"}),U.component===S.re.BANNER_AND_MODAL?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.UO1,{in:!!(null===(a=U.privacy_notice_ids)||void 0===a?void 0:a.length),animateOpacity:!0,children:(0,i.jsx)(t.xuv,{p:"1px",children:(0,i.jsx)(d.w8,{name:"show_layer1_notices",id:"show_layer1_notices",label:"Add privacy notices to banner",variant:"stacked"})})}),(0,i.jsx)(t.izJ,{})]}):null,(0,i.jsx)(t.xvT,{as:"h2",fontWeight:"600",children:"Locations & Languages"}),(0,i.jsx)(F.Z,{label:"Locations for this experience",addButtonLabel:"Add location",allItems:V,values:null!==(j=U.regions)&&void 0!==j?j:[],setValues:e=>R("regions",e),getItemLabel:e=>u.Z8[e],draggable:!0,baseTestId:"location"}),T?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(F.Z,{label:"Languages for this experience",addButtonLabel:"Add language",values:null!==(k=U.translations)&&void 0!==k?k:[],setValues:e=>R("translations",e),idField:"language",canDeleteItem:e=>!e.is_default,allItems:Z.slice().sort((e,a)=>e.name.localeCompare(a.name)).map(e=>({language:e.id,is_default:!1})),getItemLabel:e=>{let a=Z.find(a=>a.id===e.language),n=a?a.name:e.language;return"".concat(n).concat(e.is_default?" (Default)":"")},createNewValue:e=>I(e.value),onRowClick:M,selectOnAdd:!0,draggable:!0,baseTestId:"language"}),(0,i.jsx)(d.w8,{name:"auto_detect_language",id:"auto_detect_language",label:"Auto detect language",variant:"stacked"})]}):(0,i.jsx)(t.wpx,{icon:(0,i.jsx)(t.mrv,{}),iconPosition:"end",onClick:()=>M(U.translations[0]),"data-testid":"edit-experience-btn",children:"Edit experience text"}),(0,i.jsx)(d.w8,{name:"auto_subdomain_cookie_deletion",id:"auto_subdomain_cookie_deletion",label:"Automatically delete subdomain cookies",variant:"stacked",tooltip:"If enabled, automatically deletes cookies set on subdomains in addition to main domain where appropriate. Recommended to enable for full consent compliance."})]})}},16277:function(e,a,n){n.d(a,{f:function(){return m}});var i=n(24246),t=n(56351),l=n(34090),r=n(56141),o=n.n(r),s=n(27378),d=n(40324),_=n(87361),c=n(57899),u=n(90980),F=n(60325),p=n(16194),b=n(21702);let m=e=>{let{languageName:a}=e;return(0,i.jsx)(_.Z,{text:"This is a default translation provided by Fides. If you've modified the default English language text, these translations will not match, so verify any changes with a native ".concat(a," speaker before using."),"data-testid":"oob-translation-notice"})};a.Z=e=>{var a,n,r,_,v,g,h;let S,{translation:C,translationsEnabled:f,isOOB:y,onReturnToMainForm:x}=e,{values:A,setFieldValue:j,errors:k,touched:N,setTouched:T}=(0,l.u6)(),M=(0,s.useMemo)(()=>{let{name:e,...a}=C;return a},[C]),I=!!M.title&&!y,E=(0,F.y3)(A.component),U=A.translations.findIndex(e=>e.language===C.language),R=!o()(A.translations[U],M),{onOpen:w,isOpen:O,onClose:B}=(0,t.qY0)(),{onOpen:L,isOpen:P,onClose:q}=(0,t.qY0)(),D=()=>{R||y?w():x()},G=e=>{let a=A.translations.map((a,n)=>({...a,is_default:n===e}));a.unshift(a.splice(e,1)[0]),j("translations",a),x()},K=(0,i.jsxs)("div",{className:"flex justify-between border-t border-[#DEE5EE] p-4",children:[(0,i.jsx)(t.wpx,{onClick:D,"data-testid":"cancel-btn",children:"Cancel"}),(0,i.jsx)(t.wpx,{onClick:()=>{A.translations[U].is_default&&!M.is_default?L():x()},type:"primary","data-testid":"save-btn",disabled:!R&&!y||!!k.translations,children:I?"Save":"Add translation"})]});return S=f?I?"You have unsaved changes to this translation. Discard changes?":"This translation has not been added to your experience. Discard translation?":"You have unsaved changes to this experience text. Discard changes?",(0,i.jsxs)(p.RN,{buttonPanel:K,children:[(0,i.jsx)(u.R,{onClick:D,mt:4}),(0,i.jsx)(c.Z,{isOpen:O,onClose:B,title:f?"Translation not saved":"Text not saved",message:(0,i.jsx)(t.xvT,{children:S}),confirmButtonText:"Discard",handleConfirm:()=>{let e=A.translations.slice();I?e[U]={...M,title:M.title,description:M.description}:e.splice(U,1),j("translations",e);let{translations:a,...n}=N;T({...n}),x()}}),(0,i.jsx)(t.X6q,{fontSize:"md",fontWeight:"semibold",children:f?"Edit ".concat(C.name," translation"):"Edit experience text"}),y?(0,i.jsx)(m,{languageName:C.name}):null,f&&(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(d.w8,{name:"translations.".concat(U,".is_default"),id:"translations.".concat(U,".is_default"),label:"Default language",isDisabled:!!M.is_default,variant:"stacked"}),(0,i.jsx)(c.Z,{isOpen:P,onClose:q,title:"Update default language",message:(0,i.jsx)(t.xvT,{children:"Are you sure you want to update the default language of this experience?"}),handleConfirm:()=>G(U)})]}),(0,i.jsx)(d.j0,{name:"translations.".concat(U,".title"),id:"translations.".concat(U,".title"),label:"Title",isRequired:!0,variant:"stacked"}),(0,i.jsx)(d.Ks,{name:"translations.".concat(U,".description"),id:"translations.".concat(U,".description"),label:"Description",isRequired:!0,variant:"stacked"}),(A.component===b.re.BANNER_AND_MODAL||A.component===b.re.TCF_OVERLAY)&&(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(d.j0,{name:"translations.".concat(U,".banner_title"),id:"translations.".concat(U,".banner_title"),label:"Banner title (optional)",tooltip:"A separate title for the banner (defaults to main title)",variant:"stacked"}),(0,i.jsx)(d.Ks,{name:"translations.".concat(U,".banner_description"),id:"translations.".concat(U,".banner_description"),label:"Banner description (optional)",tooltip:"A separate description for the banner (defaults to main description)",variant:"stacked"})]}),A.component===b.re.TCF_OVERLAY&&(0,i.jsx)(d.j0,{name:"translations.".concat(U,".purpose_header"),id:"translations.".concat(U,".purpose_header"),label:"Purpose header (optional)",tooltip:"Appears above the Purpose list section of the TCF banner",variant:"stacked"}),(0,i.jsx)(d.j0,{name:"translations.".concat(U,".accept_button_label"),id:"translations.".concat(U,".accept_button_label"),label:'"Accept" button label',isRequired:!0,variant:"stacked"}),(0,i.jsx)(d.j0,{name:"translations.".concat(U,".reject_button_label"),id:"translations.".concat(U,".reject_button_label"),label:'"Reject" button label',isRequired:!0,variant:"stacked"}),(null===(a=E.privacy_preferences_link_label)||void 0===a?void 0:a.included)&&(0,i.jsx)(d.j0,{name:"translations.".concat(U,".privacy_preferences_link_label"),id:"translations.".concat(U,".privacy_preferences_link_label"),label:'"Manage privacy preferences" button label',variant:"stacked",isRequired:null===(n=E.privacy_preferences_link_label)||void 0===n?void 0:n.required}),(null===(r=E.save_button_label)||void 0===r?void 0:r.included)&&(0,i.jsx)(d.j0,{name:"translations.".concat(U,".save_button_label"),id:"translations.".concat(U,".save_button_label"),label:'"Save" button label',variant:"stacked",isRequired:E.save_button_label.required}),(null===(_=E.acknowledge_button_label)||void 0===_?void 0:_.included)&&(0,i.jsx)(d.j0,{name:"translations.".concat(U,".acknowledge_button_label"),id:"translations.".concat(U,".acknowledge_button_label"),label:'"Acknowledge" button label',variant:"stacked",isRequired:E.acknowledge_button_label.required}),(null===(v=E.privacy_policy_link_label)||void 0===v?void 0:v.included)&&(0,i.jsx)(d.j0,{name:"translations.".concat(U,".privacy_policy_link_label"),id:"translations.".concat(U,".privacy_policy_link_label"),label:"Privacy policy link label (optional)",variant:"stacked"}),(null===(g=E.privacy_policy_url)||void 0===g?void 0:g.included)&&(0,i.jsx)(d.j0,{name:"translations.".concat(U,".privacy_policy_url"),id:"translations.".concat(U,".privacy_policy_url"),label:"Privacy policy link URL (optional)",variant:"stacked"}),(null===(h=E.modal_link_label)||void 0===h?void 0:h.included)&&(0,i.jsx)(d.j0,{name:"translations.".concat(U,".modal_link_label"),id:"translations.".concat(U,".modal_link_label"),label:"Trigger link label (optional)",tooltip:"Include text here if you would like the Fides CMP to manage the copy of the button that is included on your site to open the CMP.",variant:"stacked"})]})}},48515:function(e,a,n){var i,t;n.d(a,{O:function(){return i}}),(t=i||(i={})).ACKNOWLEDGE="acknowledge",t.OPT_IN_OPT_OUT="opt_in_opt_out"},60325:function(e,a,n){n.d(a,{DD:function(){return s},Go:function(){return d},TK:function(){return l},Uv:function(){return c},k1:function(){return r},y3:function(){return u}});var i=n(21702),t=n(48515);let l=e=>{var a;return null!==(a=null==e?void 0:e.filter(e=>e.selected).map(e=>e.id))&&void 0!==a?a:[]},r=e=>{var a;return null!==(a=null==e?void 0:e.filter(e=>e.selected))&&void 0!==a?a:[]},o=[{language:i.eU.EN,is_default:!0,title:"Title",description:"Description",accept_button_label:"Accept",reject_button_label:"Reject",save_button_label:"Save",acknowledge_button_label:"OK",privacy_preferences_link_label:"Privacy Preferences"}],s={name:"",disabled:!1,dismissable:!0,allow_language_selection:!1,show_layer1_notices:!1,layer1_button_options:t.O.OPT_IN_OPT_OUT,regions:[],translations:o,auto_detect_language:!0,auto_subdomain_cookie_deletion:!0},d=(e,a)=>{let n=a.find(a=>a.id===e.language);return n?n.name:e.language},_=e=>{var a,n,i,t,l,r,o,s,d;let{language:_,is_default:c,accept_button_label:u,reject_button_label:F}=e;return{language:_,is_default:c,accept_button_label:u,reject_button_label:F,title:e.title,description:e.description,acknowledge_button_label:null!==(a=e.acknowledge_button_label)&&void 0!==a?a:void 0,banner_title:null!==(n=e.banner_title)&&void 0!==n?n:void 0,banner_description:null!==(i=e.banner_description)&&void 0!==i?i:void 0,purpose_header:null!==(t=e.purpose_header)&&void 0!==t?t:void 0,privacy_policy_link_label:null!==(l=e.privacy_policy_link_label)&&void 0!==l?l:void 0,privacy_policy_url:null!==(r=e.privacy_policy_url)&&void 0!==r?r:void 0,privacy_preferences_link_label:null!==(o=e.privacy_preferences_link_label)&&void 0!==o?o:void 0,save_button_label:null!==(s=e.save_button_label)&&void 0!==s?s:void 0,modal_link_label:null!==(d=e.modal_link_label)&&void 0!==d?d:void 0}},c=e=>{let{created_at:a,updated_at:n,privacy_notices:i,origin:t,id:l,...r}=e;return{...r,privacy_notice_ids:i?i.map(e=>e.id):[],translations:e.translations?e.translations.map(e=>_(e)):[]}},u=e=>e===i.re.PRIVACY_CENTER?{title:{included:!0,required:!0},description:{included:!0,required:!0},save_button_label:{included:!0,required:!0},accept_button_label:{included:!0,required:!0},reject_button_label:{included:!0,required:!0},privacy_policy_link_label:{included:!0},privacy_policy_url:{included:!0},modal_link_label:{included:!0}}:e===i.re.MODAL?{title:{included:!0,required:!0},description:{included:!0,required:!0},accept_button_label:{included:!0,required:!0},reject_button_label:{included:!0,required:!0},save_button_label:{included:!0,required:!0},acknowledge_button_label:{included:!0,required:!0},privacy_policy_link_label:{included:!0},privacy_policy_url:{included:!0},privacy_preferences_link_label:{included:!0},modal_link_label:{included:!0}}:e===i.re.BANNER_AND_MODAL?{title:{included:!0,required:!0},banner_title:{included:!0},description:{included:!0,required:!0},banner_description:{included:!0},accept_button_label:{included:!0,required:!0},reject_button_label:{included:!0,required:!0},save_button_label:{included:!0,required:!0},acknowledge_button_label:{included:!0,required:!0},privacy_policy_link_label:{included:!0},privacy_policy_url:{included:!0},privacy_preferences_link_label:{included:!0,required:!0},modal_link_label:{included:!0}}:e===i.re.TCF_OVERLAY?{title:{included:!0,required:!0},banner_title:{included:!0},description:{included:!0,required:!0},banner_description:{included:!0},purpose_header:{included:!0},accept_button_label:{included:!0,required:!0},reject_button_label:{included:!0,required:!0},save_button_label:{included:!0,required:!0},acknowledge_button_label:{included:!0,required:!0},privacy_policy_link_label:{included:!0},privacy_policy_url:{included:!0},privacy_preferences_link_label:{included:!0,required:!0},modal_link_label:{included:!0}}:{title:{included:!0,required:!0},description:{included:!0,required:!0},accept_button_label:{included:!0,required:!0},reject_button_label:{included:!0,required:!0},save_button_label:{included:!0,required:!0},acknowledge_button_label:{included:!0,required:!0},privacy_policy_link_label:{included:!0},privacy_policy_url:{included:!0},privacy_preferences_link_label:{included:!0,required:!0},modal_link_label:{included:!0}}}}]);
|
@@ -0,0 +1 @@
|
|
1
|
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2201],{7617:function(e,t,n){n.d(t,{q:function(){return o}});var i=n(24246),r=n(56351);let o=e=>{let{label:t,isDisabled:n,...o}=e;return(0,i.jsx)(r.OK9,{"data-testid":"tab-".concat(t),_selected:{fontWeight:"600",color:"complimentary.500",borderColor:"complimentary.500"},fontSize:o.fontSize,fontWeight:"500",color:"gray.500",isDisabled:n||!1,children:t})};t.Z=e=>{let{data:t,border:n="partial",...a}=e;return(0,i.jsxs)(r.mQc,{colorScheme:"complimentary",...a,children:[(0,i.jsx)(r.tdY,{width:"partial"===n?"max-content":void 0,children:t.map(e=>(0,i.jsx)(o,{label:e.label,isDisabled:e.isDisabled,fontSize:a.fontSize},e.label))}),(0,i.jsx)(r.nPR,{children:t.map(e=>(0,i.jsx)(r.x45,{px:0,"data-testid":"tab-panel-".concat(e.label),children:e.content},e.label))})]})}},77213:function(e,t,n){n.d(t,{Z:function(){return p}});var i=n(24246),r=n(56351),o=n(88038),a=n.n(o),l=n(86677);n(27378);var s=n(25980),d=n(90867),c=n(77830),u=()=>{let e=(0,l.useRouter)();return(0,i.jsx)(r.xuv,{bg:"gray.50",border:"1px solid",borderColor:"blue.400",borderRadius:"md",justifyContent:"space-between",p:5,mb:5,mt:5,children:(0,i.jsxs)(r.xuv,{children:[(0,i.jsxs)(r.Kqy,{direction:{base:"column",sm:"row"},justifyContent:"space-between",children:[(0,i.jsx)(r.xvT,{fontWeight:"semibold",children:"Configure your storage and messaging provider"}),(0,i.jsx)(r.wpx,{onClick:()=>{e.push(c.fz)},children:"Configure"})]}),(0,i.jsxs)(r.xvT,{children:["Before Fides can process your privacy requests we need two simple steps to configure your storage and email client."," "]})]})})},p=e=>{let{children:t,title:n,padded:o=!0,mainProps:c}=e,p=(0,s.hz)(),m=(0,l.useRouter)(),x="/privacy-requests"===m.pathname||"/datastore-connection"===m.pathname,h=!(p.flags.privacyRequestsConfiguration&&x),{data:f}=(0,d.JE)(void 0,{skip:h}),{data:g}=(0,d.PW)(void 0,{skip:h}),v=p.flags.privacyRequestsConfiguration&&(!f||!g)&&x;return(0,i.jsxs)(r.kCb,{"data-testid":n,direction:"column",h:"100vh",children:[(0,i.jsxs)(a(),{children:[(0,i.jsxs)("title",{children:["Fides Admin UI - ",n]}),(0,i.jsx)("meta",{name:"description",content:"Privacy Engineering Platform"}),(0,i.jsx)("link",{rel:"icon",href:"/favicon.ico"})]}),(0,i.jsxs)(r.kCb,{as:"main",direction:"column",py:o?6:0,px:o?10:0,h:o?"calc(100% - 48px)":"full",flex:1,minWidth:0,overflow:"auto",...c,children:[v?(0,i.jsx)(u,{}):null,t]})]})}},58754:function(e,t,n){var i=n(24246),r=n(56351),o=n(70788);t.Z=e=>{let{heading:t,breadcrumbItems:n,isSticky:a=!0,children:l,rightContent:s,style:d,...c}=e;return(0,i.jsxs)("div",{...c,style:a?{position:"sticky",top:"-24px",paddingTop:"24px",paddingBottom:"24px",paddingLeft:"40px",marginLeft:"-40px",paddingRight:"40px",marginRight:"-40px",marginTop:"-24px",left:0,zIndex:20,backgroundColor:"white",...d}:{paddingBottom:"24px",...d},children:[(0,i.jsxs)(r.jqI,{justify:"space-between",children:["string"==typeof t?(0,i.jsx)(r.X6q,{className:n||l?"pb-4":void 0,fontSize:"2xl","data-testid":"page-heading",children:t}):t,s&&(0,i.jsx)("div",{"data-testid":"page-header-right-content",children:s})]}),!!n&&(0,i.jsx)(o.m,{className:l?"pb-4":void 0,items:n,"data-testid":"page-breadcrumb"}),l]})}},97181:function(e,t,n){n.d(t,{d:function(){return d}});var i=n(24246),r=n(56351),o=n(34090),a=n(27378),l=n(91613),s=n(40324);let d=e=>{let{name:t,label:n,labelProps:d,tooltip:c,isRequired:u,layout:p="inline",...m}=e,[x,h,{setValue:f}]=(0,o.U$)(t),g=!!(h.touched&&h.error),[v,j]=(0,a.useState)("");x.value||"tags"!==m.mode&&"multiple"!==m.mode||(x.value=[]),"tags"===m.mode&&"string"==typeof x.value&&(x.value=[x.value]);let b="tags"===m.mode?(e,t)=>e?e.value!==v||x.value.includes(v)?m.optionRender?m.optionRender(e,t):e.label:'Create "'.concat(v,'"'):void 0:m.optionRender||void 0,y=e=>{j(e),m.onSearch&&m.onSearch(e)},C=(e,t)=>{f(e),m.onChange&&m.onChange(e,t)};return"inline"===p?(0,i.jsx)(r.NIc,{isInvalid:g,isRequired:u,children:(0,i.jsxs)(r.rjZ,{templateColumns:n?"1fr 3fr":"1fr",children:[n?(0,i.jsx)(s.__,{htmlFor:m.id||t,...d,children:n}):null,(0,i.jsxs)(r.jqI,{align:"center",children:[(0,i.jsxs)(r.jqI,{vertical:!0,flex:1,className:"mr-2",children:[(0,i.jsx)(r.WPr,{...x,id:m.id||t,"data-testid":"controlled-select-".concat(x.name),...m,optionRender:b,onSearch:"tags"===m.mode?y:void 0,onChange:C,value:x.value||void 0,status:g?"error":void 0}),(0,i.jsx)(s.Bc,{isInvalid:g,message:h.error,fieldName:x.name})]}),c?(0,i.jsx)(l.Z,{label:c}):null]})]})}):(0,i.jsx)(r.NIc,{isInvalid:g,isRequired:u,children:(0,i.jsxs)(r.gCW,{alignItems:"start",children:[(0,i.jsxs)(r.jqI,{align:"center",children:[n?(0,i.jsx)(s.__,{htmlFor:m.id||t,fontSize:"xs",my:0,mr:1,...d,children:n}):null,c?(0,i.jsx)(l.Z,{label:c}):null]}),(0,i.jsx)(r.WPr,{...x,id:m.id||t,"data-testid":"controlled-select-".concat(x.name),...m,optionRender:b,onSearch:"tags"===m.mode?y:void 0,onChange:C,value:x.value||void 0,status:g?"error":void 0}),(0,i.jsx)(s.Bc,{isInvalid:g,message:h.error,fieldName:x.name})]})})}},70788:function(e,t,n){n.d(t,{m:function(){return d}});var i=n(24246),r=n(56351),o=n(79894),a=n.n(o),l=n(27378);let{Text:s}=r.AntTypography,d=e=>{let{items:t,...n}=e,o=(0,l.useMemo)(()=>null==t?void 0:t.map((e,n)=>{let o=n===t.length-1,l={...e},d=l.onClick&&!l.href;return("string"==typeof l.title&&(l.title=(0,i.jsx)(s,{style:{color:"inherit",maxWidth:o?void 0:400},ellipsis:!o,children:l.title})),d)?l.title=(0,i.jsx)(r.wpx,{type:"text",size:"small",icon:l.icon,onClick:l.onClick,className:"ant-breadcrumb-link -mt-px px-1 text-inherit",children:l.title}):(l.icon&&(l.title=(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("span",{className:"anticon align-text-bottom",children:l.icon}),l.title]})),l.href&&l.title&&(l.title=(0,i.jsx)(a(),{href:l.href,className:"ant-breadcrumb-link",children:l.title}),delete l.href)),l}),[t]);return(0,i.jsx)(r.zrq,{items:o,...n})}},41337:function(e,t,n){var i=n(24246),r=n(56351);n(27378);var o=n(21702),a=n(14746);let l=e=>void 0!==e.connection_type,s=e=>void 0!==e.encoded_icon;t.Z=e=>{let{data:t,...n}=e;return(0,i.jsx)(r.Eep,{boxSize:"32px",objectFit:"cover",src:(()=>{let e;if(s(t)&&t.encoded_icon)return"data:image/svg+xml;base64,".concat(t.encoded_icon);if(l(t))e=[...a.iW].find(e=>{var n,i;let[r]=e;return t.connection_type.toString()!==o.Rj.SAAS&&t.connection_type.toString()===r||t.connection_type.toString()===o.Rj.SAAS&&(null===(i=t.saas_config)||void 0===i?void 0:null===(n=i.type)||void 0===n?void 0:n.toString())===r.toString()});else if(s(t)){let{identifier:n}=t;e=[...a.iW].find(e=>{let[t]=e;return t.toLowerCase()===n.toLowerCase()})}return e?a.Ny+e[1]:a.VD})(),fallbackSrc:a.VD,alt:(()=>{if(l(t)){var e;return null!==(e=t.name)&&void 0!==e?e:t.key}return s(t)?t.human_readable:t})(),...n})}},3968:function(e,t,n){n.d(t,{E:function(){return i},S:function(){return r}});let i=e=>e.toLowerCase().replace(/ |\./g,"_"),r=(e,t)=>{let n="".concat(window.location.origin+t,"&key=").concat(e);window.location.href.toLowerCase()!==n.toLowerCase()&&window.history.replaceState(null,"",n)}}}]);
|