ethyca-fides 2.57.1b8__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.1b8.dist-info → ethyca_fides-2.57.1rc0.dist-info}/METADATA +1 -1
- {ethyca_fides-2.57.1b8.dist-info → ethyca_fides-2.57.1rc0.dist-info}/RECORD +207 -217
- 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 +8 -6
- 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/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/3949-9888699e2ac564c4.js +1 -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/5574-a4047e826a8cd4c3.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/5834-bd9ed01c4ab2ef5c.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/5973-67c7562997f7d5cb.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/6277-515c922445b8edc5.js +1 -0
- 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/7980-2597c279c30fbcda.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/9767-4c591bd478c72650.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/{_app-e53d13729068a001.js → _app-9ceff88561dc1250.js} +8 -8
- fides/ui-build/static/admin/_next/static/chunks/pages/add-systems/{manual-5593bb1b6de0473d.js → manual-d7f60624cbc12217.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/add-systems/{multiple-6a7208eee5e588fb.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/consent/configure/{add-vendors-ba0c5fa9764cbd89.js → add-vendors-64f83e9a2b777bf3.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/consent/{configure-1af99ffa7a507e86.js → configure-e11ace4f273ebb47.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/consent/privacy-experience/{[id]-c02510104f9e503a.js → [id]-443e6dd191ce5588.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/consent/privacy-experience/{new-e96415629f3b4223.js → new-36162d5bea29dcc2.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/consent/privacy-notices/{[id]-66827da90b8a2d1e.js → [id]-2d651499c07d12d9.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/consent/privacy-notices/{new-13d48f980bf707e5.js → new-36e57d2f2446be82.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/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]-9bb953098f68f1ee.js → [id]-0616437e1a82d3ed.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/datastore-connection/{new-cdcf42d4cb24b45a.js → new-f8218440494e8532.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-f263e6bacf0f2d19.js +1 -0
- 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-eebd2f4ead19cfd6.js +1 -0
- 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/domains-775f55b3f80cd452.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/organization-14def4ca3cc9cda5.js +1 -0
- 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]-44f7fbfee9cf9267.js → [id]-82d9af34546adaa2.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/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 -133
- fides/api/service/storage/util.py +0 -10
- fides/ui-build/static/admin/_next/static/chunks/1376-c177d8d0c60b1166.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/3320-317483e6c10bae51.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/355-6a87b50acf54e985.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/3662-6a0cafa3023aa7a2.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/4481-f2f57e7a75a90e79.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/4723-1a785d558dfb6441.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/605-c782df008a0ff167.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/6362-72451aeb32815d26.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/6954-f7daf613febc36ef.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/7434-3d4a0beb84ec57f7.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/7495-2f5c8dfba2eabb4f.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/7958-d2bc63e1be612f36.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/7980-91800d54c5964ba3.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/add-systems-a33f82e79cb09478.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog-1a3bb713fc7bc298.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/action-center/[monitorId]/[systemId]-5892ca5d93ea6165.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/action-center/[monitorId]-5c37c3ad1c3cfba5.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/action-center-4fac7e0a54eebc32.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/dataset/new-45016545c099e183.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/dataset-5ddd3cd7d29e89c0.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/integrations/[id]-108945832a7edd7d.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/integrations-e96e959d10afebea.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/messaging-5a161e167c251519.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/configure/messaging-c3e234ad95e6e213.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/configure/storage-347e203faa31716f.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests-729fa8ed0f10bc8e.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/consent-ff6edba56dfec090.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/domains-ad368857e86fe01b.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/organization-f45920358a405167.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/systems/configure/[id]/test-datasets-ae133b6e8e1107f2.js +0 -1
- fides/ui-build/static/admin/_next/static/css/dd9922a434d21e22.css +0 -1
- fides/ui-build/static/admin/_next/static/lO31cDp9wEzsNdiUnl8It/_buildManifest.js +0 -1
- {ethyca_fides-2.57.1b8.dist-info → ethyca_fides-2.57.1rc0.dist-info}/LICENSE +0 -0
- {ethyca_fides-2.57.1b8.dist-info → ethyca_fides-2.57.1rc0.dist-info}/WHEEL +0 -0
- {ethyca_fides-2.57.1b8.dist-info → ethyca_fides-2.57.1rc0.dist-info}/entry_points.txt +0 -0
- {ethyca_fides-2.57.1b8.dist-info → ethyca_fides-2.57.1rc0.dist-info}/top_level.txt +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{1150-d4a5eef84e70de22.js → 1150-73440d7b319558e8.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{2397-c6d0dcb3b921555f.js → 2397-7177ecf4ebe68feb.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{3086-d099019708303444.js → 3086-be6b52546c3efc90.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{3855-4d5d936a58a0dd5f.js → 3855-5c7b11871f59e0e0.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{3872-2b2bf5ebd4b0a70f.js → 3872-f3d5054bdc584eaa.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{5246-ac8b0fcb44b00af7.js → 5246-9fc6af1a6499e0a4.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{5258-a05dcab2f9315dab.js → 5258-3a650be9142cf914.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{5480-c6c1fb87006e471a.js → 5480-f5bec5e881f72f8d.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{5487-509639439bf9fb46.js → 5487-d96e1abc93f92631.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{5826-e3970cd9440be33b.js → 5826-16e497af363a0cbc.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{6315-daf94fa7520fb253.js → 6315-dee79f6861c94d2d.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{6372-41afe1e6a9181cc7.js → 6372-f1b54f3cb4888660.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{6853-7f95c36e396d3fb8.js → 6853-cacea421af3bfc26.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{7751-130668529ab1d0b6.js → 7751-25e0c1307988ffd7.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{79-1c326c00cf111c00.js → 79-ba88d0cf4c65aaa2.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{8433-b2a96b825124b596.js → 8433-969280d321d1c3a2.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{8499-34620330ecf2ac53.js → 8499-07507004e8275df2.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{9046-e7b9a3fd010b01ad.js → 9046-80f1ea44f89fe32c.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{9282-6ee061da1eb51d65.js → 9282-1a5a2f6f4d9ed586.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{9999-8600f6f495a80b38.js → 9999-f2e40d5b13343220.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/{404-8e0baa6e128803ab.js → 404-1087258931760074.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/{ant-poc-39267961e03be6c5.js → ant-poc-b3b4d0a98450ffd1.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/consent/{privacy-experience-ed38f18c095141fe.js → privacy-experience-35e9df60b21e21a6.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/consent/{privacy-notices-7339b3cdf5d4da32.js → privacy-notices-da37afbe5ec81339.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/consent/{properties-b5b3196eba90246a.js → properties-c57b209feef7c2da.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/consent/{reporting-38b8ec1a221610ff.js → reporting-97fea4ac45093cbd.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/{consent-df2388d953c85c2a.js → consent-24bef021ee71e36c.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/projects/[projectUrn]/{[resourceUrn]-5e851b9f27bda8a4.js → [resourceUrn]-6cbd79481199812d.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/projects/{[projectUrn]-9f9112b22fdfb32a.js → [projectUrn]-46b9790da2fec05a.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/{projects-ddca867936c89a72.js → projects-1f965b9c496071d1.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/resources/{[resourceUrn]-85e3d6f1b2afd3e7.js → [resourceUrn]-e7833c1c606081a9.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/{resources-9831226436d884b5.js → resources-bed368d048ea6883.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/{activity-a0749240265da17d.js → activity-1d7936f05d23097f.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/{datamap-819ac99e7a56465a.js → datamap-9cd0c40bef77b120.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/dataset/[datasetId]/[collectionName]/{[...subfieldNames]-259d4a94861afe2b.js → [...subfieldNames]-ab9bc1a3640547db.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/dataset/[datasetId]/{[collectionName]-25283f5bcac8fa73.js → [collectionName]-17ec8385bb1fa6d4.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/dataset/{[datasetId]-aaedf8f2a849c97f.js → [datasetId]-e14c1c07658f8a10.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/{datastore-connection-61adfcd5f7f69101.js → datastore-connection-b8eaa9b9d3832b30.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/{index-1072281d6cfe8295.js → index-94e6d589c4edf360.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/messaging/{[id]-268918d8c1dfe82a.js → [id]-6b032de0a6c2c400.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/messaging/{add-template-cd75949bee7497b6.js → add-template-c0d6ae68ff7979c6.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/{[id]-d1f4178b8a7e2145.js → [id]-bbe5854b7d19b7e9.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/{configure-37e800a20e654064.js → configure-4bad69cd42c9722c.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/properties/{[id]-92145503c4d2d75e.js → [id]-b4c808a8a0287d11.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/properties/{add-property-ab94805694ebd35c.js → add-property-5a701477b006a63b.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/{properties-5e623dcd92418638.js → properties-9a1899dfe052023e.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/reporting/{datamap-710839776b9995ce.js → datamap-a3fa3ad77730a03b.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/settings/{about-175d39bdd74f148c.js → about-d073be113e9ca7b0.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/settings/{custom-fields-1262d596c0cdcd81.js → custom-fields-744e7bbc200557e7.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/settings/{domain-records-f0c6e6034d37dbcf.js → domain-records-c5cd5fb578de9515.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/settings/{email-templates-6ee49492a7769f89.js → email-templates-39c7ae3602ac69b2.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/settings/{locations-deb754d42982562b.js → locations-45e33ba111f8f8b0.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/settings/{regulations-f9e97decfe56b018.js → regulations-94975aeab348528e.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/{systems-4d6a17a7a24aca97.js → systems-c320df35d51dc537.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/{taxonomy-46f47c04a01319cf.js → taxonomy-181ea5b0ac975239.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/user-management/profile/{[id]-5b752ba934baee94.js → [id]-622e16a17a11c096.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/{user-management-4fbb29cf0a611aae.js → user-management-aa872b21bb835d34.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{webpack-815e3c35038201da.js → webpack-4df2ba5ee2d40f0a.js} +0 -0
- /fides/ui-build/static/admin/_next/static/{lO31cDp9wEzsNdiUnl8It → rOPehh5NMs1hjog7nTw1q}/_ssgManifest.js +0 -0
@@ -1,284 +0,0 @@
|
|
1
|
-
# pylint: disable=R0401, C0302
|
2
|
-
|
3
|
-
from __future__ import annotations
|
4
|
-
|
5
|
-
from typing import TYPE_CHECKING, List, Optional, Tuple
|
6
|
-
|
7
|
-
from loguru import logger
|
8
|
-
from sqlalchemy import Boolean, Column, ForeignKey, Integer, String
|
9
|
-
from sqlalchemy.dialects.postgresql import JSONB
|
10
|
-
from sqlalchemy.ext.mutable import MutableDict, MutableList
|
11
|
-
from sqlalchemy.orm import Query, Session, relationship
|
12
|
-
from sqlalchemy_utils.types.encrypted.encrypted_type import (
|
13
|
-
AesGcmEngine,
|
14
|
-
StringEncryptedType,
|
15
|
-
)
|
16
|
-
|
17
|
-
from fides.api.db.base_class import Base # type: ignore[attr-defined]
|
18
|
-
from fides.api.db.base_class import JSONTypeOverride
|
19
|
-
from fides.api.db.util import EnumColumn
|
20
|
-
from fides.api.graph.config import (
|
21
|
-
ROOT_COLLECTION_ADDRESS,
|
22
|
-
TERMINATOR_ADDRESS,
|
23
|
-
CollectionAddress,
|
24
|
-
)
|
25
|
-
from fides.api.models.privacy_request.execution_log import (
|
26
|
-
COMPLETED_EXECUTION_LOG_STATUSES,
|
27
|
-
)
|
28
|
-
from fides.api.schemas.base_class import FidesSchema
|
29
|
-
from fides.api.schemas.policy import ActionType
|
30
|
-
from fides.api.schemas.privacy_request import ExecutionLogStatus
|
31
|
-
from fides.api.util.cache import (
|
32
|
-
FidesopsRedis,
|
33
|
-
celery_tasks_in_flight,
|
34
|
-
get_async_task_tracking_cache_key,
|
35
|
-
get_cache,
|
36
|
-
)
|
37
|
-
from fides.api.util.collection_util import Row
|
38
|
-
from fides.config import CONFIG
|
39
|
-
|
40
|
-
if TYPE_CHECKING:
|
41
|
-
from fides.api.models.privacy_request.privacy_request import PrivacyRequest
|
42
|
-
|
43
|
-
|
44
|
-
class TraversalDetails(FidesSchema):
|
45
|
-
"""Schema to format saving pre-calculated traversal details on RequestTask.traversal_details"""
|
46
|
-
|
47
|
-
dataset_connection_key: str
|
48
|
-
incoming_edges: List[Tuple[str, str]]
|
49
|
-
outgoing_edges: List[Tuple[str, str]]
|
50
|
-
input_keys: List[str]
|
51
|
-
skipped_nodes: Optional[List[Tuple[str, str]]] = None
|
52
|
-
|
53
|
-
# TODO: remove this method once we support custom request fields in DSR graph.
|
54
|
-
@classmethod
|
55
|
-
def create_empty_traversal(cls, connection_key: str) -> TraversalDetails:
|
56
|
-
"""
|
57
|
-
Creates an "empty" TraversalDetails object that only has the dataset connection key set.
|
58
|
-
This is a bit of a hacky workaround needed to implement the Dynamic Erasure Emails feature,
|
59
|
-
but we should no longer need it once the custom_request_fields are included in our graph
|
60
|
-
traversal
|
61
|
-
"""
|
62
|
-
return cls(
|
63
|
-
dataset_connection_key=connection_key,
|
64
|
-
incoming_edges=[],
|
65
|
-
outgoing_edges=[],
|
66
|
-
input_keys=[],
|
67
|
-
skipped_nodes=[],
|
68
|
-
)
|
69
|
-
|
70
|
-
|
71
|
-
class RequestTask(Base):
|
72
|
-
"""
|
73
|
-
An individual Task for a Privacy Request.
|
74
|
-
|
75
|
-
When we execute a PrivacyRequest, we build a graph by combining the current datasets with the identity data
|
76
|
-
and we save the nodes (collections) in the graph as Request Tasks.
|
77
|
-
|
78
|
-
Currently, we build access, erasure, and consent Request Tasks.
|
79
|
-
"""
|
80
|
-
|
81
|
-
privacy_request_id = Column(
|
82
|
-
String,
|
83
|
-
ForeignKey("privacyrequest.id", ondelete="SET NULL"),
|
84
|
-
nullable=True,
|
85
|
-
index=True,
|
86
|
-
)
|
87
|
-
|
88
|
-
# Identifiers of this request task
|
89
|
-
collection_address = Column(
|
90
|
-
String, nullable=False, index=True
|
91
|
-
) # Of the format dataset_name:collection_name for convenience
|
92
|
-
dataset_name = Column(String, nullable=False, index=True)
|
93
|
-
collection_name = Column(String, nullable=False, index=True)
|
94
|
-
action_type = Column(EnumColumn(ActionType), nullable=False, index=True)
|
95
|
-
|
96
|
-
# Note that RequestTasks share statuses with ExecutionLogs. When a RequestTask changes state, an ExecutionLog
|
97
|
-
# is also created with that state. These are tied tightly together in GraphTask.
|
98
|
-
status = Column(
|
99
|
-
EnumColumn(
|
100
|
-
ExecutionLogStatus,
|
101
|
-
native_enum=False,
|
102
|
-
values_callable=lambda x: [
|
103
|
-
i.value for i in x
|
104
|
-
], # Using ExecutionLogStatus values in database, even though app is using the names.
|
105
|
-
), # character varying in database
|
106
|
-
index=True,
|
107
|
-
nullable=False,
|
108
|
-
)
|
109
|
-
|
110
|
-
upstream_tasks = Column(
|
111
|
-
MutableList.as_mutable(JSONB)
|
112
|
-
) # List of collection address strings
|
113
|
-
downstream_tasks = Column(
|
114
|
-
MutableList.as_mutable(JSONB)
|
115
|
-
) # List of collection address strings
|
116
|
-
all_descendant_tasks = Column(
|
117
|
-
MutableList.as_mutable(JSONB)
|
118
|
-
) # All tasks that can be reached by the current task. This is useful when this task fails,
|
119
|
-
# and we can mark every single one of these as failed.
|
120
|
-
|
121
|
-
# Raw data retrieved from an access request is stored here. This contains all of the
|
122
|
-
# intermediate data we retrieved, needed for downstream tasks, but hasn't been filtered
|
123
|
-
# by data category for the end user.
|
124
|
-
access_data = Column( # An encrypted JSON String - saved as a list of Rows
|
125
|
-
StringEncryptedType(
|
126
|
-
type_in=JSONTypeOverride,
|
127
|
-
key=CONFIG.security.app_encryption_key,
|
128
|
-
engine=AesGcmEngine,
|
129
|
-
padding="pkcs5",
|
130
|
-
),
|
131
|
-
)
|
132
|
-
|
133
|
-
# This is the raw access data saved in erasure format (with placeholders preserved) to perform a masking request.
|
134
|
-
# First saved on the access node, and then copied to the corresponding erasure node.
|
135
|
-
data_for_erasures = Column( # An encrypted JSON String - saved as a list of rows
|
136
|
-
StringEncryptedType(
|
137
|
-
type_in=JSONTypeOverride,
|
138
|
-
key=CONFIG.security.app_encryption_key,
|
139
|
-
engine=AesGcmEngine,
|
140
|
-
padding="pkcs5",
|
141
|
-
),
|
142
|
-
)
|
143
|
-
|
144
|
-
# Written after an erasure is completed
|
145
|
-
rows_masked = Column(Integer)
|
146
|
-
# Written after a consent request is completed - not all consent
|
147
|
-
# connectors will end up sending a request
|
148
|
-
consent_sent = Column(Boolean)
|
149
|
-
|
150
|
-
# For async tasks awaiting callback
|
151
|
-
callback_succeeded = Column(Boolean)
|
152
|
-
|
153
|
-
# Stores a serialized collection that can be transformed back into a Collection to help
|
154
|
-
# execute the current task
|
155
|
-
collection = Column(MutableDict.as_mutable(JSONB))
|
156
|
-
# Stores key details from traversal.traverse in the format of TraversalDetails
|
157
|
-
traversal_details = Column(MutableDict.as_mutable(JSONB))
|
158
|
-
|
159
|
-
privacy_request = relationship(
|
160
|
-
"PrivacyRequest",
|
161
|
-
back_populates="request_tasks",
|
162
|
-
uselist=False,
|
163
|
-
)
|
164
|
-
|
165
|
-
@property
|
166
|
-
def request_task_address(self) -> CollectionAddress:
|
167
|
-
"""Convert the collection_address into Collection Address format"""
|
168
|
-
return CollectionAddress.from_string(self.collection_address)
|
169
|
-
|
170
|
-
@property
|
171
|
-
def is_root_task(self) -> bool:
|
172
|
-
"""Convenience helper for asserting whether the task is a root task"""
|
173
|
-
return self.request_task_address == ROOT_COLLECTION_ADDRESS
|
174
|
-
|
175
|
-
@property
|
176
|
-
def is_terminator_task(self) -> bool:
|
177
|
-
"""Convenience helper for asserting whether the task is a terminator task"""
|
178
|
-
return self.request_task_address == TERMINATOR_ADDRESS
|
179
|
-
|
180
|
-
def get_cached_task_id(self) -> Optional[str]:
|
181
|
-
"""Gets the cached celery task ID for this request task."""
|
182
|
-
cache: FidesopsRedis = get_cache()
|
183
|
-
task_id = cache.get(get_async_task_tracking_cache_key(self.id))
|
184
|
-
return task_id
|
185
|
-
|
186
|
-
def get_access_data(self) -> List[Row]:
|
187
|
-
"""Helper to retrieve access data or default to empty list"""
|
188
|
-
return self.access_data or []
|
189
|
-
|
190
|
-
def get_data_for_erasures(self) -> List[Row]:
|
191
|
-
"""Helper to retrieve erasure data needed to build masking requests or default to empty list"""
|
192
|
-
return self.data_for_erasures or []
|
193
|
-
|
194
|
-
def update_status(self, db: Session, status: ExecutionLogStatus) -> None:
|
195
|
-
"""Helper method to update a task's status"""
|
196
|
-
self.status = status
|
197
|
-
self.save(db)
|
198
|
-
|
199
|
-
def get_tasks_with_same_action_type(
|
200
|
-
self, db: Session, collection_address_str: str
|
201
|
-
) -> Query:
|
202
|
-
"""Fetch task on the same privacy request and action type as current by collection address"""
|
203
|
-
return db.query(RequestTask).filter(
|
204
|
-
RequestTask.privacy_request_id == self.privacy_request_id,
|
205
|
-
RequestTask.action_type == self.action_type,
|
206
|
-
RequestTask.collection_address == collection_address_str,
|
207
|
-
)
|
208
|
-
|
209
|
-
def get_pending_downstream_tasks(self, db: Session) -> Query:
|
210
|
-
"""Returns the immediate downstream task objects that are still pending"""
|
211
|
-
return db.query(RequestTask).filter(
|
212
|
-
RequestTask.privacy_request_id == self.privacy_request_id,
|
213
|
-
RequestTask.action_type == self.action_type,
|
214
|
-
RequestTask.collection_address.in_(self.downstream_tasks or []),
|
215
|
-
RequestTask.status == ExecutionLogStatus.pending,
|
216
|
-
)
|
217
|
-
|
218
|
-
def can_queue_request_task(self, db: Session, should_log: bool = False) -> bool:
|
219
|
-
"""Returns True if upstream tasks are complete and the current Request Task
|
220
|
-
is not running in another celery task.
|
221
|
-
|
222
|
-
This check ignores its database status - that is checked elsewhere.
|
223
|
-
"""
|
224
|
-
return self.upstream_tasks_complete(
|
225
|
-
db, should_log
|
226
|
-
) and not self.request_task_running(should_log)
|
227
|
-
|
228
|
-
def upstream_tasks_complete(self, db: Session, should_log: bool = False) -> bool:
|
229
|
-
"""Determines if all of the upstream tasks of the current task are complete"""
|
230
|
-
upstream_tasks: Query = self.upstream_tasks_objects(db)
|
231
|
-
tasks_complete: bool = all(
|
232
|
-
upstream_task.status in COMPLETED_EXECUTION_LOG_STATUSES
|
233
|
-
for upstream_task in upstream_tasks
|
234
|
-
) and upstream_tasks.count() == len(self.upstream_tasks or [])
|
235
|
-
|
236
|
-
if not tasks_complete and should_log:
|
237
|
-
logger.debug(
|
238
|
-
"Upstream tasks incomplete for {} task {}.",
|
239
|
-
self.action_type.value,
|
240
|
-
self.collection_address,
|
241
|
-
)
|
242
|
-
|
243
|
-
return tasks_complete
|
244
|
-
|
245
|
-
def upstream_tasks_objects(self, db: Session) -> Query:
|
246
|
-
"""Returns Request Task objects that are upstream of the current Request Task"""
|
247
|
-
upstream_tasks: Query = db.query(RequestTask).filter(
|
248
|
-
RequestTask.privacy_request_id == self.privacy_request_id,
|
249
|
-
RequestTask.collection_address.in_(self.upstream_tasks or []),
|
250
|
-
RequestTask.action_type == self.action_type,
|
251
|
-
)
|
252
|
-
return upstream_tasks
|
253
|
-
|
254
|
-
def request_task_running(self, should_log: bool = False) -> bool:
|
255
|
-
"""Returns a rough measure if the Request Task is already running -
|
256
|
-
not 100% accurate.
|
257
|
-
|
258
|
-
This is further only applicable if you are running workers and
|
259
|
-
CONFIG.execution.task_always_eager=False. This is just an extra check to reduce possible
|
260
|
-
over-scheduling, but it is also okay if the same node runs multiple times.
|
261
|
-
"""
|
262
|
-
celery_task_id: Optional[str] = self.get_cached_task_id()
|
263
|
-
if not celery_task_id:
|
264
|
-
return False
|
265
|
-
|
266
|
-
if should_log:
|
267
|
-
logger.debug(
|
268
|
-
"Celery Task ID {} found for {} task {}.",
|
269
|
-
celery_task_id,
|
270
|
-
self.action_type.value,
|
271
|
-
self.collection_address,
|
272
|
-
)
|
273
|
-
|
274
|
-
task_in_flight: bool = celery_tasks_in_flight([celery_task_id])
|
275
|
-
|
276
|
-
if task_in_flight and should_log:
|
277
|
-
logger.debug(
|
278
|
-
"Celery Task {} already processing for {} task {}.",
|
279
|
-
celery_task_id,
|
280
|
-
self.action_type.value,
|
281
|
-
self.collection_address,
|
282
|
-
)
|
283
|
-
|
284
|
-
return task_in_flight
|
@@ -1,94 +0,0 @@
|
|
1
|
-
# pylint: disable=R0401, C0302
|
2
|
-
|
3
|
-
from __future__ import annotations
|
4
|
-
|
5
|
-
import json
|
6
|
-
from datetime import datetime
|
7
|
-
from enum import Enum as EnumType
|
8
|
-
from typing import Optional
|
9
|
-
|
10
|
-
from pydantic import BaseModel, ConfigDict
|
11
|
-
|
12
|
-
from fides.api.models.policy import PolicyPreWebhook, WebhookDirection
|
13
|
-
from fides.api.models.pre_approval_webhook import PreApprovalWebhook
|
14
|
-
from fides.api.models.privacy_request.request_task import RequestTask
|
15
|
-
from fides.api.oauth.jwt import generate_jwe
|
16
|
-
from fides.api.schemas.external_https import RequestTaskJWE, WebhookJWE
|
17
|
-
from fides.api.schemas.policy import ActionType
|
18
|
-
from fides.api.schemas.privacy_request import PrivacyRequestStatus
|
19
|
-
from fides.api.schemas.redis_cache import Identity
|
20
|
-
from fides.common.api.scope_registry import (
|
21
|
-
PRIVACY_REQUEST_CALLBACK_RESUME,
|
22
|
-
PRIVACY_REQUEST_REVIEW,
|
23
|
-
)
|
24
|
-
from fides.config import CONFIG
|
25
|
-
|
26
|
-
|
27
|
-
class CallbackType(EnumType):
|
28
|
-
"""We currently have three types of Webhooks: pre-approval, pre (-execution), post (-execution)"""
|
29
|
-
|
30
|
-
pre_approval = "pre_approval"
|
31
|
-
pre = "pre" # pre-execution
|
32
|
-
post = "post" # post-execution
|
33
|
-
|
34
|
-
|
35
|
-
class SecondPartyRequestFormat(BaseModel):
|
36
|
-
"""
|
37
|
-
The request body we will use when calling a user's HTTP endpoint from fides.api
|
38
|
-
This class is defined here to avoid circular import issues between this file and
|
39
|
-
models.policy
|
40
|
-
"""
|
41
|
-
|
42
|
-
privacy_request_id: str
|
43
|
-
privacy_request_status: PrivacyRequestStatus
|
44
|
-
direction: WebhookDirection
|
45
|
-
callback_type: CallbackType
|
46
|
-
identity: Identity
|
47
|
-
policy_action: Optional[ActionType] = None
|
48
|
-
model_config = ConfigDict(use_enum_values=True)
|
49
|
-
|
50
|
-
|
51
|
-
def generate_request_callback_resume_jwe(webhook: PolicyPreWebhook) -> str:
|
52
|
-
"""
|
53
|
-
Generate a JWE to be used to resume privacy request execution.
|
54
|
-
"""
|
55
|
-
jwe = WebhookJWE(
|
56
|
-
webhook_id=webhook.id,
|
57
|
-
scopes=[PRIVACY_REQUEST_CALLBACK_RESUME],
|
58
|
-
iat=datetime.now().isoformat(),
|
59
|
-
)
|
60
|
-
return generate_jwe(
|
61
|
-
json.dumps(jwe.model_dump(mode="json")),
|
62
|
-
CONFIG.security.app_encryption_key,
|
63
|
-
)
|
64
|
-
|
65
|
-
|
66
|
-
def generate_request_callback_pre_approval_jwe(webhook: PreApprovalWebhook) -> str:
|
67
|
-
"""
|
68
|
-
Generate a JWE to be used to mark privacy requests as eligible / not-eligible for pre approval.
|
69
|
-
"""
|
70
|
-
jwe = WebhookJWE(
|
71
|
-
webhook_id=webhook.id,
|
72
|
-
scopes=[PRIVACY_REQUEST_REVIEW],
|
73
|
-
iat=datetime.now().isoformat(),
|
74
|
-
)
|
75
|
-
return generate_jwe(
|
76
|
-
json.dumps(jwe.model_dump(mode="json")),
|
77
|
-
CONFIG.security.app_encryption_key,
|
78
|
-
)
|
79
|
-
|
80
|
-
|
81
|
-
def generate_request_task_callback_jwe(request_task: RequestTask) -> str:
|
82
|
-
"""
|
83
|
-
Generate a JWE to be used to resume privacy request execution when a
|
84
|
-
callback endpoint is hit for a RequestTask
|
85
|
-
"""
|
86
|
-
jwe = RequestTaskJWE(
|
87
|
-
request_task_id=request_task.id,
|
88
|
-
scopes=[PRIVACY_REQUEST_CALLBACK_RESUME],
|
89
|
-
iat=datetime.now().isoformat(),
|
90
|
-
)
|
91
|
-
return generate_jwe(
|
92
|
-
json.dumps(jwe.model_dump(mode="json")),
|
93
|
-
CONFIG.security.app_encryption_key,
|
94
|
-
)
|
fides/api/service/storage/s3.py
DELETED
@@ -1,133 +0,0 @@
|
|
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}")
|
@@ -1,10 +0,0 @@
|
|
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}"
|
@@ -1 +0,0 @@
|
|
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}}}}]);
|
@@ -1 +0,0 @@
|
|
1
|
-
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3320],{3320:function(e,n,i){i.d(n,{Z:function(){return S}});var t=i(24246),a=i(56351),o=i(34090),l=i(86677),r=i(27378),s=i(59389),d=i(16134),c=i(812);let p=(0,a.IUT)({displayName:"DesktopIcon",viewBox:"0 0 24 24",path:(0,t.jsx)("path",{fill:"currentColor",d:"M20.5556 4.05556H3.44444C3.10833 4.05556 2.83333 4.33056 2.83333 4.66667V12H21.1667V4.66667C21.1667 4.33056 20.8917 4.05556 20.5556 4.05556ZM23 12V13.8333V15.6667C23 17.0149 21.9038 18.1111 20.5556 18.1111H14.9142L15.2198 19.9445H17.1944C17.7024 19.9445 18.1111 20.3531 18.1111 20.8611C18.1111 21.3691 17.7024 21.7778 17.1944 21.7778H14.4444H9.55556H6.80556C6.29757 21.7778 5.88889 21.3691 5.88889 20.8611C5.88889 20.3531 6.29757 19.9445 6.80556 19.9445H8.78021L9.08576 18.1111H3.44444C2.09618 18.1111 1 17.0149 1 15.6667V13.8333V12V4.66667C1 3.31841 2.09618 2.22223 3.44444 2.22223H20.5556C21.9038 2.22223 23 3.31841 23 4.66667V12ZM2.83333 13.8333V15.6667C2.83333 16.0028 3.10833 16.2778 3.44444 16.2778H10.1476C10.159 16.2778 10.1705 16.2778 10.1781 16.2778H13.8142C13.8257 16.2778 13.8372 16.2778 13.8448 16.2778H20.5556C20.8917 16.2778 21.1667 16.0028 21.1667 15.6667V13.8333H2.83333ZM10.6365 19.9445H13.3597L13.0542 18.1111H10.942L10.6365 19.9445Z"})}),u=(0,a.IUT)({displayName:"MobileIcon",viewBox:"0 0 24 24",path:(0,t.jsx)("path",{fill:"currentColor",d:"M6.5 20.25C6.5 20.6281 6.80938 20.9375 7.1875 20.9375H16.8125C17.1906 20.9375 17.5 20.6281 17.5 20.25V16.8125H6.5V20.25ZM6.5 14.75H17.5V3.75C17.5 3.37188 17.1906 3.0625 16.8125 3.0625H7.1875C6.80938 3.0625 6.5 3.37188 6.5 3.75V14.75ZM4.4375 3.75C4.4375 2.2332 5.6707 1 7.1875 1H16.8125C18.3293 1 19.5625 2.2332 19.5625 3.75V20.25C19.5625 21.7668 18.3293 23 16.8125 23H7.1875C5.6707 23 4.4375 21.7668 4.4375 20.25V3.75ZM12 17.8438C12.2735 17.8438 12.5358 17.9524 12.7292 18.1458C12.9226 18.3392 13.0312 18.6015 13.0312 18.875C13.0312 19.1485 12.9226 19.4108 12.7292 19.6042C12.5358 19.7976 12.2735 19.9062 12 19.9062C11.7265 19.9062 11.4642 19.7976 11.2708 19.6042C11.0774 19.4108 10.9688 19.1485 10.9688 18.875C10.9688 18.6015 11.0774 18.3392 11.2708 18.1458C11.4642 17.9524 11.7265 17.8438 12 17.8438Z"})});var v=i(77830),_=i(46628),m=i(7426),b=i(60325),f=i(34334),g=i(13083),y=i.n(g),h=i(43218),x=i.n(h),w=i(52253),C=i(48515),k=i(21702);let j={language:k.eU.EN,accept_button_label:"Accept",acknowledge_button_label:"OK",banner_description:"",banner_title:"",purpose_header:"",description:"Description",privacy_policy_link_label:"",privacy_policy_url:"",modal_link_label:"",privacy_preferences_link_label:"Privacy preferences",reject_button_label:"Reject All",save_button_label:"Save",title:"Manage your consent preferences",is_default:!0},V=e=>({...j,...e.translations?e.translations[0]:{}}),A=(e,n)=>{var i,t,a,o;return{options:{debug:!1,geolocationApiUrl:"",isGeolocationEnabled:!1,isOverlayEnabled:!0,isPrefetchEnabled:!1,overlayParentId:w.Vk,modalLinkId:null,privacyCenterUrl:"http://localhost:3000",fidesApiUrl:"http://localhost:8080/api/v1",preventDismissal:null!==(o=e.dismissable)&&void 0!==o&&o,allowHTMLDescription:!0,fidesString:null,fidesJsBaseUrl:"",base64Cookie:!1,fidesLocale:null===(t=e.translations)||void 0===t?void 0:null===(i=t[0])||void 0===i?void 0:i.language,fidesClearCookie:!0},experience:{id:"pri_111",region:"us_ca",component:"banner_and_modal",available_locales:null===(a=e.translations)||void 0===a?void 0:a.map(e=>e.language),experience_config:{id:"pri_222",regions:["us_ca"],component:"banner_and_modal",disabled:!1,is_default:!0,dismissable:e.dismissable,show_layer1_notices:!1,layer1_button_options:C.O.OPT_IN_OPT_OUT,allow_language_selection:!0,auto_detect_language:!0,auto_subdomain_cookie_deletion:!0,language:"en",translations:[V(e)]},privacy_notices:n},geolocation:{country:"US",location:"US-CA",region:"CA"}}},N=e=>{let{language:n,is_default:i,...t}=j,a=Object.keys(t).map(n=>{let i=e[n];return{[n]:void 0!==i?i:j[n]}}).reduce((e,n)=>({...e,...n}),{});return{language:e.language,is_default:e.is_default,...a}};var E=i(71922),D=i(32222);let H=e=>{let{title:n,description:i}=e;return(0,t.jsx)(a.kCb,{h:"full",justify:"center",align:"center",children:(0,t.jsxs)(a.kCb,{bgColor:"white",borderRadius:"md",p:6,boxShadow:"md",direction:"column",align:"center",gap:"2",maxW:"512px","data-testid":"no-preview-notice",children:[(0,t.jsx)(a.xvT,{fontSize:"lg",fontWeight:"500",align:"center",children:n}),(0,t.jsx)(a.xvT,{color:"gray.500",align:"center",children:i})]})})};var O=e=>{var n;let{allPrivacyNotices:i,initialValues:l,translation:s,isMobilePreview:d}=e,{values:p}=(0,o.u6)(),[u,v]=(0,r.useState)([]),_=[k.re.BANNER_AND_MODAL,k.re.MODAL].includes(p.component),m=(0,a.pmc)(),[b]=(0,E.Je)(),f=async e=>{let n=await b(e);n.isError&&m({status:"error",description:(0,c.e$)(n.error,"A problem occurred while fetching privacy notice data. Some notices may not display correctly on the preview.")});let{data:i}=await b(e);return i};(0,r.useEffect)(()=>{p.privacy_notice_ids&&p.component!==k.re.TCF_OVERLAY?Promise.all(p.privacy_notice_ids.map(e=>f(e))).then(e=>v(e.filter(e=>void 0!==e))):v([])},[p.privacy_notice_ids]);let g=(0,r.useMemo)(()=>A(l,u),[l,u]);(0,r.useEffect)(()=>{var e,n,i,t;p.component===k.re.MODAL&&(g.experience.experience_config.component=k.re.MODAL);let a=null===(e=p.translations)||void 0===e?void 0:e.find(e=>e.language===(null==s?void 0:s.language));(null===(n=p.translations)||void 0===n?void 0:n.length)&&(a?(g.experience.available_locales=[...g.experience.available_locales||[],a.language],g.experience.experience_config.translations[0]=N(a),g.options.fidesLocale=a.language):p.translations&&(g.experience.experience_config.translations[0]=N(p.translations[0]),g.options.fidesLocale=p.translations[0].language)),g.experience.experience_config.show_layer1_notices=!!(null===(i=p.privacy_notice_ids)||void 0===i?void 0:i.length)&&!!p.show_layer1_notices,g.experience.experience_config.layer1_button_options=p.component===k.re.BANNER_AND_MODAL&&p.layer1_button_options||C.O.OPT_IN_OPT_OUT,g.options.preventDismissal=!p.dismissable,window.Fides&&(null===(t=p.privacy_notice_ids)||void 0===t?void 0:t.length)&&_&&window.Fides.init(g)},[p,s,g,i,_]);let h=document.getElementById("fides-modal");return(h&&h.removeAttribute("tabindex"),_)?(null===(n=p.privacy_notice_ids)||void 0===n?void 0:n.length)?(0,t.jsxs)(a.kCb,{h:"full",justify:"center",align:"center",overflow:"scroll",children:[(0,t.jsx)(y(),{id:"905800c62191633b",dynamic:[w.Vk],children:"div#fides-overlay{z-index:5000!important}div#".concat(w.Vk,"{padding-top:45px;margin:auto!important;pointer-events:none}div#fides-banner-container{position:static!important;-webkit-transform:none!important;-moz-transform:none!important;-ms-transform:none!important;-o-transform:none!important;transform:none!important;-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;transition:none!important}div#fides-banner-container.fides-banner-hidden{display:none}.fides-modal-container{background-color:unset!important;position:static!important;display:none!important}.fides-modal-overlay{background-color:inherit!important;position:static!important;display:none!important}div.fides-modal-content{position:relative!important;-webkit-transform:none!important;-moz-transform:none!important;-ms-transform:none!important;-o-transform:none!important;transform:none!important;left:initial!important;top:initial!important}div.fides-modal-footer{width:unset}")}),_?(0,t.jsx)("style",{children:"div#fides-modal {\n display: flex !important;\n justify-content: center;\n background-color: unset;\n ".concat(p.component===k.re.BANNER_AND_MODAL?"padding-top: 3rem; padding-bottom: 3rem;":"","\n }")}):null,d?(0,t.jsx)("style",{children:"\n div#".concat(w.Vk," {\n width: 70% !important;\n }\n div.fides-modal-button-group {\n flex-direction: column !important;\n }\n div#fides-modal {\n width: 70% !important;\n margin: auto;\n }\n div#fides-banner {\n padding: 24px;\n width: 100%;\n }\n\n div#fides-banner-description {\n margin-bottom: 0px;\n }\n\n div#fides-banner-inner div#fides-button-group {\n flex-direction: column;\n align-items: flex-start;\n gap: 12px;\n padding-top: 24px;\n }\n\n .fides-banner-button-group {\n flex-direction: column;\n width: 100%;\n }\n\n button.fides-banner-button {\n margin: 0px;\n width: 100%;\n }\n\n div#fides-banner-inner-container {\n display: flex;\n flex-direction: column;\n max-height: 50vh;\n overflow-y: auto;\n scrollbar-gutter: stable;\n }\n\n div#fides-privacy-policy-link {\n order: 1;\n width: 100%;\n }\n .fides-modal-footer {\n max-width: 100%;\n }\n .fides-banner-secondary-actions {\n flex-direction: column-reverse;\n gap: 12px;\n }\n ")}):(0,t.jsx)("style",{children:"\n div#fides-banner {\n width: 90% !important;\n }\n "}),(0,t.jsx)(x(),{id:"fides-js-base",src:"/lib/fides.js",onReady:()=>{if(_){var e;null===(e=window.Fides)||void 0===e||e.init(g)}}}),(0,t.jsx)("div",{id:w.Vk,className:y().dynamic([["905800c62191633b",[w.Vk]]])})]}):(0,t.jsx)(H,{title:"No privacy notices added",description:'To view a preview of this experience, add a privacy notice under "Privacy Notices" to the left.'}):(0,t.jsx)(H,{title:"".concat(D.J.get(p.component)," preview not available"),description:"There is no preview available for ".concat(D.J.get(p.component),". You can edit the available settings\n and languages to the left.")})},M=i(94315),Z=i(16194),T=i(16277),L=i(31883);let P=e=>s.Ry().shape({title:s.Z_().required().label("Title"),description:s.Z_().required().label("Description"),accept_button_label:s.Z_().required().label("Accept button label"),reject_button_label:s.Z_().required().label("Reject button label"),save_button_label:s.Z_().required().label("Save button label"),acknowledge_button_label:s.Z_().required().label("Acknowledge button label"),privacy_policy_url:s.Z_().url().nullable().label("Privacy policy URL"),is_default:s.O7(),privacy_preferences_link_label:e?s.Z_().required().label("Privacy preferences link label"):s.Z_().nullable().label("Privacy preferences link label")}),R=s.Ry().shape({name:s.Z_().required().label("Experience name"),component:s.Z_().required().label("Experience type"),translations:s.IX().when("component",{is:e=>e===k.re.BANNER_AND_MODAL||e===k.re.TCF_OVERLAY,then:e=>e.of(P(!0)),otherwise:e=>e.of(P(!1))})});var S=e=>{var n;let{passedInExperience:i,passedInTranslations:s}=e,[g]=(0,M.mJ)(),[y]=(0,M.$d)(),h=(0,a.pmc)(),[x,w]=(0,r.useState)(!1),C=(0,l.useRouter)(),{data:k}=(0,m.tB)({api_set:!1}),j=null==k?void 0:null===(n=k.plus_consent_settings)||void 0===n?void 0:n.enable_translations,V=(0,d.C)(f.Zp),A=(0,d.C)(f.G1);(0,f.Ah)({page:V,size:A});let N=(0,d.C)(f.fJ),D=(0,d.C)(E.sX),H=i?{...b.DD,...(0,b.Uv)(i)}:b.DD,P=async e=>{var n,t;let a;e.privacy_notice_ids=null===(n=e.privacy_notice_ids)||void 0===n?void 0:n.filter(e=>"tcf_purposes_placeholder"!==e);let o={...e,disabled:null===(t=null==i?void 0:i.disabled)||void 0===t||t,allow_language_selection:e.translations&&e.translations.length>1};if(i){let{component:e,...n}=o;a=await y({...n,id:i.id})}else a=await g(o);(0,L.D4)(a)?h((0,_.Vo)((0,c.e$)(a.error))):(h((0,_.t5)("Privacy experience successfully ".concat(i?"updated":"created"))),C.push(v.w0))},[S,B]=(0,r.useState)(void 0),[U,I]=(0,r.useState)(!1);return(0,t.jsx)(o.J9,{initialValues:H,enableReinitialize:!0,onSubmit:P,validationSchema:R,children:(0,t.jsx)(o.l0,{style:{height:"100vh"},children:(0,t.jsxs)(a.kCb,{w:"full",h:"full",direction:"row","data-testid":"privacy-experience-detail-page",children:[S?(0,t.jsx)(T.Z,{translation:S,translationsEnabled:j,isOOB:U,onReturnToMainForm:()=>{B(void 0),I(!1)}}):(0,t.jsx)(Z.d0,{allPrivacyNotices:D,translationsEnabled:j,onSelectTranslation:e=>{B({...e,name:(0,b.Go)(e,N)})},onCreateTranslation:e=>{let n=null==s?void 0:s.find(n=>n.language===e);return n&&I(!0),null!=n?n:{language:e,is_default:!1}}}),(0,t.jsxs)(a.kCb,{direction:"column",w:"75%",bgColor:"gray.50",overflowY:"hidden",children:[(0,t.jsxs)(a.kCb,{direction:"row",p:4,align:"center",bgColor:"white",borderBottom:"1px solid #DEE5EE",children:[(0,t.jsx)(a.xvT,{fontSize:"md",fontWeight:"semibold",children:"PREVIEW"}),(0,t.jsx)(a.LZC,{}),(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)(a.wpx,{icon:(0,t.jsx)(u,{}),"aria-label":"View mobile preview",onClick:()=>w(!0),className:x?"bg-gray-200":void 0}),(0,t.jsx)(a.wpx,{icon:(0,t.jsx)(p,{}),"aria-label":"View desktop preview",onClick:()=>w(!1),className:x?void 0:"bg-gray-200"})]})]}),(0,t.jsx)(O,{allPrivacyNotices:D,initialValues:H,translation:S,isMobilePreview:x})]})]})})})}},32222:function(e,n,i){i.d(n,{J:function(){return t}});let t=new Map([["overlay","Overlay"],["privacy_center","Privacy center"],["tcf_overlay","TCF overlay"],["modal","Modal"],["banner_and_modal","Banner and modal"],["headless","Headless"]])},31883:function(e,n,i){i.d(n,{Bw:function(){return t.Bw},D4:function(){return t.D4}});var t=i(19043)}}]);
|
@@ -1 +0,0 @@
|
|
1
|
-
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[355],{77213:function(e,t,a){a.d(t,{Z:function(){return h}});var s=a(24246),i=a(56351),n=a(88038),r=a.n(n),l=a(86677);a(27378);var o=a(25980),d=a(90867),c=a(77830),u=()=>{let e=(0,l.useRouter)();return(0,s.jsx)(i.xuv,{bg:"gray.50",border:"1px solid",borderColor:"blue.400",borderRadius:"md",justifyContent:"space-between",p:5,mb:5,mt:5,children:(0,s.jsxs)(i.xuv,{children:[(0,s.jsxs)(i.Kqy,{direction:{base:"column",sm:"row"},justifyContent:"space-between",children:[(0,s.jsx)(i.xvT,{fontWeight:"semibold",children:"Configure your storage and messaging provider"}),(0,s.jsx)(i.wpx,{onClick:()=>{e.push(c.fz)},children:"Configure"})]}),(0,s.jsxs)(i.xvT,{children:["Before Fides can process your privacy requests we need two simple steps to configure your storage and email client."," "]})]})})},h=e=>{let{children:t,title:a,padded:n=!0,mainProps:c}=e,h=(0,o.hz)(),m=(0,l.useRouter)(),x="/privacy-requests"===m.pathname||"/datastore-connection"===m.pathname,v=!(h.flags.privacyRequestsConfiguration&&x),{data:p}=(0,d.JE)(void 0,{skip:v}),{data:f}=(0,d.PW)(void 0,{skip:v}),g=h.flags.privacyRequestsConfiguration&&(!p||!f)&&x;return(0,s.jsxs)(i.kCb,{"data-testid":a,direction:"column",h:"100vh",children:[(0,s.jsxs)(r(),{children:[(0,s.jsxs)("title",{children:["Fides Admin UI - ",a]}),(0,s.jsx)("meta",{name:"description",content:"Privacy Engineering Platform"}),(0,s.jsx)("link",{rel:"icon",href:"/favicon.ico"})]}),(0,s.jsxs)(i.kCb,{as:"main",direction:"column",py:n?6:0,px:n?10:0,h:n?"calc(100% - 48px)":"full",flex:1,minWidth:0,overflow:"auto",...c,children:[g?(0,s.jsx)(u,{}):null,t]})]})}},8133:function(e,t,a){var s=a(24246),i=a(56351);t.Z=e=>{let{title:t,children:a,isOpen:n,onClose:r,...l}=e;return(0,s.jsxs)(i.u_l,{isOpen:n,onClose:r,isCentered:!0,scrollBehavior:"inside",size:"xl",id:"add-modal",...l,children:[(0,s.jsx)(i.ZAr,{}),(0,s.jsxs)(i.hzk,{textAlign:"left",p:0,"data-testid":"add-modal-content",children:[(0,s.jsx)(i.xBx,{p:0,children:(0,s.jsx)(i.xuv,{backgroundColor:"gray.50",px:6,py:4,border:"1px",borderColor:"gray.200",borderTopRadius:6,display:"flex",justifyContent:"space-between",alignItems:"center",children:(0,s.jsx)(i.X6q,{as:"h3",size:"sm",children:t})})}),(0,s.jsx)(i.fef,{pb:4,overflow:"auto",children:a})]})]})}},33335:function(e,t,a){a.d(t,{E:function(){return s}});let s=e=>e.toLowerCase().replace(/ /g,"_").replace(/[^a-zA-Z0-9._<>-]/g,"")},72774:function(e,t,a){a.d(t,{Z:function(){return r}});var s=a(24246),i=a(56351),n=e=>{let{title:t,description:a,button:n}=e;return(0,s.jsxs)(i.Ugi,{backgroundColor:"gray.50",border:"1px solid",borderColor:"blue.400",borderRadius:"md",justifyContent:"space-between",py:4,px:6,"data-testid":"empty-state",children:[(0,s.jsx)(i.iid,{alignSelf:"start",color:"blue.400",mt:.5}),(0,s.jsxs)(i.xuv,{flexGrow:1,children:[(0,s.jsx)(i.xvT,{fontWeight:"bold",fontSize:"sm",mb:1,children:t}),(0,s.jsx)(i.xvT,{fontSize:"sm",color:"gray.600",lineHeight:"5",children:a})]}),n]})},r=()=>(0,s.jsx)(i.xuv,{mb:"6",maxW:"720px","data-testid":"locked-for-GVL-notice",children:(0,s.jsx)(n,{title:"This system is part of the TCF Global Vendor List (GVL)",description:(0,s.jsxs)(s.Fragment,{children:["As a result, the system fields are not editable as they come directly from Fides Compass and the Global Vendor List (GVL). In some cases where the legal basis has been declared to be flexible, you may update the legal basis for particular data uses."," ",(0,s.jsx)(i.rUS,{href:"https://fid.es/tcf_gvl",isExternal:!0,color:"complimentary.500",children:"For more information on the Global Vendor List, click here."})]})})})},36345:function(e,t,a){a.d(t,{Z:function(){return p}});var s=a(24246),i=a(56351),n=a(34090),r=a(27378),l=a(16134),o=a(40324);let d=(0,i.IUT)({displayName:"CompassIcon",viewBox:"0 0 512 512",path:(0,s.jsx)("path",{fill:"currentColor",d:"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm306.7 69.1L162.4 380.6c-19.4 7.5-38.5-11.6-31-31l55.5-144.3c3.3-8.5 9.9-15.1 18.4-18.4l144.3-55.5c19.4-7.5 38.5 11.6 31 31L325.1 306.7c-3.2 8.5-9.9 15.1-18.4 18.4zM288 256a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z"})});var c=a(91613),u=a(57865);let{Text:h}=i.AntTypography,m=e=>{let{searchText:t,suggestion:a,...i}=e;return t&&a?(0,s.jsxs)(h,{"aria-hidden":!0,style:{pointerEvents:"none",position:"absolute",zIndex:10,top:"var(--ant-line-width)",bottom:"var(--ant-line-width)",left:"var(--ant-padding-sm)",lineHeight:"calc(var(--ant-control-height) - var(--ant-line-width))"},...i,children:[(0,s.jsx)(h,{className:"text-transparent",children:t}),(0,s.jsx)(h,{type:"secondary",children:a.substring(t.length)})]}):null},x="Create new system",v=e=>{let{active:t,disabled:a,onRefreshSuggestions:n}=e,r={bg:t?"complimentary.500":"gray.100"};return(0,s.jsxs)(i.gCW,{children:[(0,s.jsx)(i.LZC,{minHeight:"18px"}),(0,s.jsxs)(i.v2r,{children:[(0,s.jsx)(i.j2t,{as:i.hU,size:"sm",isDisabled:a,icon:(0,s.jsx)(d,{color:t?"white":"gray.700",boxSize:4}),"aria-label":"Update information from Compass","data-testid":"refresh-suggestions-btn",_hover:{_disabled:r},...r}),(0,s.jsx)(i.qyq,{children:(0,s.jsx)(i.sNh,{onClick:n,children:(0,s.jsx)(i.xvT,{fontSize:"xs",lineHeight:4,children:"Reset to Compass defaults"})})})]})]})};var p=e=>{var t,a;let{label:d,isCreate:h,lockedForGVL:p,options:f,isLoading:g,onVendorSelected:b}=e,j=(0,l.C)(u.bN),[y,_,{setValue:C}]=(0,n.U$)("name"),w=!!(_.touched&&_.error),k={...y,value:null!==(t=y.value)&&void 0!==t?t:""},{touched:z,values:E,setTouched:I,setFieldValue:L,validateForm:R}=(0,n.u6)(),[S,T]=(0,r.useState)(!0),N=null!==(a=f.find(e=>e.value===k.value))&&void 0!==a?a:{label:k.value,value:k.value,description:""},W=(e,t)=>!!(null==t?void 0:t.label.toLowerCase().startsWith(e.toLowerCase())),[q,F]=(0,r.useState)(""),U=(0,r.useMemo)(()=>f.filter(e=>W(q,e)),[f,q]),Z=(0,r.useMemo)(()=>{let e=f;return h&&q&&(e=[...f,{label:"".concat(x,' "').concat(q,'"...'),value:q}]),e},[h,f,q]),A=!!q&&U.length>0,B=p&&!h;(0,r.useEffect)(()=>{T(!k.value&&!E.vendor_id)},[k.value,E.vendor_id,T]),(0,r.useEffect)(()=>{R()},[S,R]);let G=async()=>{F(""),L("vendor_id",void 0),await C(""),I({...z,vendor_id:!1,name:!1}),b(void 0)},V=async e=>{if(e){let t=f.some(t=>t.value===e.value)?e.value:void 0;L("vendor_id",t),await C(e.label.startsWith(x)?e.value:e.label),I({...z,vendor_id:!0,name:!0}),b(t)}},M=async e=>{k.onBlur(e),q&&await C(q),I({...z,name:!0})},P=async e=>{U.length>0&&q!==U[0].label?(e.preventDefault(),F(U[0].label),L("vendor_id",U[0].value),await C(U[0].label),b(U[0].value)):(L("vendor_id",void 0),await C(q)),I({...z,name:!0})},H=(0,s.jsx)(i.NIc,{isInvalid:w,isRequired:!0,width:"100%",children:(0,s.jsxs)(i.gCW,{alignItems:"start",position:"relative",width:"100%",children:[(0,s.jsxs)(i.Ugi,{spacing:1,children:[(0,s.jsx)(o.__,{htmlFor:"vendorName",fontSize:"xs",my:0,mr:1,children:d}),(0,s.jsx)(c.Z,{label:"Enter the system name"})]}),(0,s.jsxs)(i.xuv,{width:"100%",className:"relative",children:[(0,s.jsx)(i.WPr,{id:"vendorName",labelInValue:!0,autoFocus:!0,allowClear:!0,options:Z,loading:g,filterOption:(e,t)=>W(e,t)||!!(null==t?void 0:t.label.startsWith(x)),optionFilterProp:"label",value:N,placeholder:"Enter system name...",disabled:B,onChange:V,onSearch:F,onClear:G,onBlur:M,onInputKeyDown:e=>{q&&"Tab"===e.key&&P(e)},status:w?"error":void 0,"data-testid":"vendor-name-select"}),(0,s.jsx)(m,{searchText:q,suggestion:U.length?U[0].label:""})]}),(0,s.jsx)(o.Bc,{isInvalid:w,message:_.error,fieldName:"name"})]})});return(0,s.jsxs)(i.Ugi,{alignItems:"flex-start",width:"full",children:[S?H:(0,s.jsx)(o.j0,{autoFocus:!0,id:"name",name:"name",label:"System name",tooltip:"Enter the system name",variant:"stacked",disabled:B,isRequired:!0,inputRightElement:B?null:(0,s.jsx)(i.PZ7,{onClick:G,size:"sm","data-testid":"clear-btn"})}),(0,s.jsx)(v,{active:!!E.vendor_id||A,disabled:!E.vendor_id||"showing"===j,onRefreshSuggestions:()=>b(E.vendor_id)})]})}},69525:function(e,t,a){a.d(t,{U:function(){return s}});let s=e=>{var t;let a=e.data_categories.flatMap(e=>e.split(","));return{data_use:e.data_use,data_categories:a,features:e.features,legal_basis_for_processing:e.legal_basis_for_processing,flexible_legal_basis_for_processing:e.flexible_legal_basis_for_processing,retention_period:e.retention_period?e.retention_period:"",cookies:null===(t=e.cookies)||void 0===t?void 0:t.map(e=>({name:e.name,domain:e.domain,path:e.path}))}}}}]);
|