ethyca-fides 2.69.0rc0__py2.py3-none-any.whl → 2.69.1b0__py2.py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of ethyca-fides might be problematic. Click here for more details.
- {ethyca_fides-2.69.0rc0.dist-info → ethyca_fides-2.69.1b0.dist-info}/METADATA +1 -1
- {ethyca_fides-2.69.0rc0.dist-info → ethyca_fides-2.69.1b0.dist-info}/RECORD +204 -204
- fides/_version.py +3 -3
- fides/api/api/v1/endpoints/oauth_endpoints.py +3 -0
- fides/api/api/v1/endpoints/privacy_request_endpoints.py +1 -1
- fides/api/api/v1/endpoints/user_endpoints.py +31 -4
- fides/api/models/client.py +9 -5
- fides/api/models/fides_user.py +1 -2
- fides/api/oauth/utils.py +21 -2
- fides/api/schemas/saas/connector_template.py +5 -0
- fides/api/service/connectors/saas/connector_registry_service.py +7 -0
- fides/api/util/connection_type.py +3 -20
- fides/api/util/saas_util.py +12 -1
- fides/config/security_settings.py +7 -3
- fides/ui-build/static/admin/404.html +1 -1
- fides/ui-build/static/admin/_next/static/4lPKe7mco0KEv09aOQH9A/_buildManifest.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/4121-bb71a24d41d04a28.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/{5258-45ec38e6c3780f24.js → 5258-1a8b9f66b97761fc.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/{_app-36bec04369a1a7c4.js → _app-f18537fd2c4288e7.js} +9 -9
- fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/{[id]-7e3f8b6eb83c5142.js → [id]-b379873a5771e55b.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/{privacy-requests-c9c1c02d7e68c4f8.js → privacy-requests-91f578139548652c.js} +1 -1
- fides/ui-build/static/admin/add-systems/manual.html +1 -1
- fides/ui-build/static/admin/add-systems/multiple.html +1 -1
- fides/ui-build/static/admin/add-systems.html +1 -1
- fides/ui-build/static/admin/consent/configure/add-vendors.html +1 -1
- fides/ui-build/static/admin/consent/configure.html +1 -1
- fides/ui-build/static/admin/consent/privacy-experience/[id].html +1 -1
- fides/ui-build/static/admin/consent/privacy-experience/new.html +1 -1
- fides/ui-build/static/admin/consent/privacy-experience.html +1 -1
- fides/ui-build/static/admin/consent/privacy-notices/[id].html +1 -1
- fides/ui-build/static/admin/consent/privacy-notices/new.html +1 -1
- fides/ui-build/static/admin/consent/privacy-notices.html +1 -1
- fides/ui-build/static/admin/consent/properties.html +1 -1
- fides/ui-build/static/admin/consent/reporting.html +1 -1
- fides/ui-build/static/admin/consent.html +1 -1
- fides/ui-build/static/admin/data-catalog/[systemId]/projects/[projectUrn]/[resourceUrn].html +1 -1
- fides/ui-build/static/admin/data-catalog/[systemId]/projects/[projectUrn].html +1 -1
- fides/ui-build/static/admin/data-catalog/[systemId]/projects.html +1 -1
- fides/ui-build/static/admin/data-catalog/[systemId]/resources/[resourceUrn].html +1 -1
- fides/ui-build/static/admin/data-catalog/[systemId]/resources.html +1 -1
- fides/ui-build/static/admin/data-catalog.html +1 -1
- fides/ui-build/static/admin/data-discovery/action-center/[monitorId]/[systemId].html +1 -1
- fides/ui-build/static/admin/data-discovery/action-center/[monitorId].html +1 -1
- fides/ui-build/static/admin/data-discovery/action-center.html +1 -1
- fides/ui-build/static/admin/data-discovery/activity.html +1 -1
- fides/ui-build/static/admin/data-discovery/detection/[resourceUrn].html +1 -1
- fides/ui-build/static/admin/data-discovery/detection.html +1 -1
- fides/ui-build/static/admin/data-discovery/discovery/[resourceUrn].html +1 -1
- fides/ui-build/static/admin/data-discovery/discovery.html +1 -1
- fides/ui-build/static/admin/datamap.html +1 -1
- fides/ui-build/static/admin/dataset/[datasetId]/[collectionName]/[...subfieldNames].html +1 -1
- fides/ui-build/static/admin/dataset/[datasetId]/[collectionName].html +1 -1
- fides/ui-build/static/admin/dataset/[datasetId].html +1 -1
- fides/ui-build/static/admin/dataset/new.html +1 -1
- fides/ui-build/static/admin/dataset.html +1 -1
- fides/ui-build/static/admin/datastore-connection/[id].html +1 -1
- fides/ui-build/static/admin/datastore-connection/new.html +1 -1
- fides/ui-build/static/admin/datastore-connection.html +1 -1
- fides/ui-build/static/admin/index.html +1 -1
- fides/ui-build/static/admin/integrations/[id].html +1 -1
- fides/ui-build/static/admin/integrations.html +1 -1
- fides/ui-build/static/admin/login/[provider].html +1 -1
- fides/ui-build/static/admin/login.html +1 -1
- fides/ui-build/static/admin/messaging/[id].html +1 -1
- fides/ui-build/static/admin/messaging/add-template.html +1 -1
- fides/ui-build/static/admin/messaging.html +1 -1
- fides/ui-build/static/admin/poc/ant-components.html +1 -1
- fides/ui-build/static/admin/poc/form-experiments/AntForm.html +1 -1
- fides/ui-build/static/admin/poc/form-experiments/FormikAntFormItem.html +1 -1
- fides/ui-build/static/admin/poc/form-experiments/FormikControlled.html +1 -1
- fides/ui-build/static/admin/poc/form-experiments/FormikField.html +1 -1
- fides/ui-build/static/admin/poc/form-experiments/FormikSpreadField.html +1 -1
- fides/ui-build/static/admin/poc/forms.html +1 -1
- fides/ui-build/static/admin/poc/table-migration.html +1 -1
- fides/ui-build/static/admin/privacy-requests/[id].html +1 -1
- fides/ui-build/static/admin/privacy-requests/configure/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/alpha.html +1 -1
- fides/ui-build/static/admin/settings/about.html +1 -1
- fides/ui-build/static/admin/settings/consent/[configuration_id]/[purpose_id].html +1 -1
- fides/ui-build/static/admin/settings/consent.html +1 -1
- fides/ui-build/static/admin/settings/custom-fields.html +1 -1
- fides/ui-build/static/admin/settings/domain-records.html +1 -1
- fides/ui-build/static/admin/settings/domains.html +1 -1
- fides/ui-build/static/admin/settings/email-templates.html +1 -1
- fides/ui-build/static/admin/settings/locations.html +1 -1
- fides/ui-build/static/admin/settings/organization.html +1 -1
- fides/ui-build/static/admin/settings/regulations.html +1 -1
- fides/ui-build/static/admin/systems/configure/[id]/test-datasets.html +1 -1
- fides/ui-build/static/admin/systems/configure/[id].html +1 -1
- fides/ui-build/static/admin/systems.html +1 -1
- fides/ui-build/static/admin/taxonomy.html +1 -1
- fides/ui-build/static/admin/user-management/new.html +1 -1
- fides/ui-build/static/admin/user-management/profile/[id].html +1 -1
- fides/ui-build/static/admin/user-management.html +1 -1
- fides/ui-build/static/admin/_next/static/0uUBOyZCwjdyYdhNzpRkz/_buildManifest.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/4121-bbce1026a2ffe962.js +0 -1
- {ethyca_fides-2.69.0rc0.dist-info → ethyca_fides-2.69.1b0.dist-info}/WHEEL +0 -0
- {ethyca_fides-2.69.0rc0.dist-info → ethyca_fides-2.69.1b0.dist-info}/entry_points.txt +0 -0
- {ethyca_fides-2.69.0rc0.dist-info → ethyca_fides-2.69.1b0.dist-info}/licenses/LICENSE +0 -0
- {ethyca_fides-2.69.0rc0.dist-info → ethyca_fides-2.69.1b0.dist-info}/top_level.txt +0 -0
- /fides/ui-build/static/admin/_next/static/{0uUBOyZCwjdyYdhNzpRkz → 4lPKe7mco0KEv09aOQH9A}/_ssgManifest.js +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{1099-db533dd22b80bca6.js → 1099-c34f76b4da5f3d15.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{1345-6986414ab6ad3389.js → 1345-04e37a66c0d40dc1.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{1817-fcb2fd28034d5070.js → 1817-e6934e258111a961.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{2921-8a63ec72fa8e1bc0.js → 2921-0696287bb8de1f0b.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{3620-1fba74849114e70f.js → 3620-8c0ee3d0b19c342d.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{3729-79255d8b0d22922d.js → 3729-f5f2976904dce90d.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{3847-a868f83c065f54fb.js → 3847-2c0126e6eb54c526.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{3855-3154d56888ac46ed.js → 3855-9dd54ded74f4036b.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{3872-25eec062abd0f847.js → 3872-72ea3eb040366277.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{3923-3be9b867f33e524c.js → 3923-c4f2b03706ddbe39.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{401-029e2ff644cae40c.js → 401-959a15ed18a8abdf.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{4608-99e453c666a7b89a.js → 4608-d101417a3abb4ad6.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{4786-289c505d7d835feb.js → 4786-7aafb744445445b2.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{4808-5b799757d4564807.js → 4808-357ca7ea7bbd24c6.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{4844-a1784e2823ccd0ee.js → 4844-707b20a6c4b127cc.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{5487-aad0e8a240a1979b.js → 5487-fd9724519f31caff.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{549-81279a1a816487a7.js → 549-d3bef0990071230c.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{6084-3379ca3c1fc77aa9.js → 6084-487d27d017c45e05.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{6853-04b15a7b02b1fc19.js → 6853-f7ab74e30abbdeaf.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{6954-0f5d6c1757013eb7.js → 6954-b0a7b8ac6db238f8.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{7476-2227e21f574bee70.js → 7476-9a57db910472b48e.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{7630-267de03b93bbae8d.js → 7630-46807321449479c7.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{768-24269f30db223720.js → 768-7eac4b30d7477b0a.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{787-0aa4d9802c976f92.js → 787-79e8e558bd80ece6.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{79-0102f2711b8455cd.js → 79-3e5047415bee9391.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{796-53f0ea567d1da2b9.js → 796-fb2af44165f37ecc.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{8002-98ecd56535cdefa3.js → 8002-c1f66179adabece8.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{9046-a349c22448593f94.js → 9046-058a4d8f0b5e08f9.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{9826-f4755a75d00c1c8c.js → 9826-0d9a7f61c08ed88a.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{9951-07989276d153c848.js → 9951-b954027a046ce553.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/{404-fde1f56225d1ef4f.js → 404-9c9efb820bb6b432.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/add-systems/{manual-aff671eda846719f.js → manual-20253dd047fb9736.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/add-systems/{multiple-04894ddffc2a66fc.js → multiple-caadc3c0e86a7bfe.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/{add-systems-e98c4154535bf37d.js → add-systems-169099ff7b305cf5.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/consent/configure/{add-vendors-b2f80cdb75183bfa.js → add-vendors-acefb9e08c6c4082.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/consent/{configure-207cabf1b5c453fc.js → configure-558fbb1667473abb.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/consent/privacy-experience/{[id]-b3db5610ae7e94fb.js → [id]-b1ff1c9683841815.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/consent/{privacy-experience-3009481bdd479fd7.js → privacy-experience-674906d2d9a0a3a6.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/consent/privacy-notices/{[id]-72e3cd6740c5c5de.js → [id]-5b7aa7971f070513.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/consent/privacy-notices/{new-2aa4d13fb26b59ca.js → new-285958a12a66575e.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/consent/{privacy-notices-6b0885a8c871804f.js → privacy-notices-dc56bbdb6dd7a670.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/consent/{properties-20bc3cf67727dfd3.js → properties-0843757f00eeaaec.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/consent/{reporting-77b491108663a2de.js → reporting-60e3394c887f3d5e.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/{consent-b3c8efbd960f4e34.js → consent-5cba58ebecb4511f.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/projects/{[projectUrn]-fe5f6fb33e34baa7.js → [projectUrn]-0f90cac9f190130c.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/{projects-3584c90cf3670146.js → projects-f9117645c941342c.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/{data-catalog-a6cecf48e4e27645.js → data-catalog-c566640eecc6f3fe.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/action-center/[monitorId]/{[systemId]-844abdb5ea7d78af.js → [systemId]-cfb0b1200bc1a2c9.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/action-center/{[monitorId]-215d6e2fefc9a5e1.js → [monitorId]-fed8b879c13c2bf3.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/{action-center-7721508cc2a9ab3a.js → action-center-991659e916ad60b1.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/{activity-6169e49c3787a9bf.js → activity-58a110542d6bcd0f.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/{datamap-e17dd4ffcaa4836d.js → datamap-60e27b673c68bd27.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/dataset/[datasetId]/[collectionName]/{[...subfieldNames]-4af946dc8c6c967f.js → [...subfieldNames]-3f4ba87513e030a2.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/dataset/[datasetId]/{[collectionName]-a65a8ea3872800e7.js → [collectionName]-a6cd31103deba465.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/dataset/{[datasetId]-ccc844caef652a7e.js → [datasetId]-491d2c8dd559d0cb.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/dataset/{new-3b65c6e9af65ea2e.js → new-2c7b1213b6604d30.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/{dataset-0566189a0236078d.js → dataset-c8bcd568d3b0ee7f.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/datastore-connection/{[id]-38a7b8826e0abb01.js → [id]-7ed3f05700dc397b.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/datastore-connection/{new-c8d2599814eefd35.js → new-95f6d64f84fc6bf3.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/{datastore-connection-00ba79f6b47bd161.js → datastore-connection-9a33a412a5f36960.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/{index-053db342725dc127.js → index-1299410f671fac23.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/integrations/{[id]-3db44d6839e8dbd9.js → [id]-3d24c1510aa4c555.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/{integrations-5f34de3c24e67368.js → integrations-0f12d5b658c98c9f.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/messaging/{[id]-707b72e959233112.js → [id]-ba232c4b17576ccb.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/messaging/{add-template-c68b413f3c9cf318.js → add-template-b97883026fbc5b1e.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/{messaging-d95588f3ef137030.js → messaging-38189c1058aa4acf.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/poc/{ant-components-36cac6f4379587ea.js → ant-components-3119bdb3811409bf.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/poc/form-experiments/{AntForm-d44606c0cf203b47.js → AntForm-8f9d0434dc3eb8cf.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/poc/form-experiments/{FormikAntFormItem-341b571fd8da4142.js → FormikAntFormItem-a14e51c7f22f3395.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/poc/form-experiments/{FormikControlled-2e99b5eb12982aeb.js → FormikControlled-a40645b57822684d.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/poc/form-experiments/{FormikField-c7d62113680196dd.js → FormikField-c55df6527b700701.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/poc/{forms-89a24591c3d9e7a8.js → forms-292d761616b162a0.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/poc/{table-migration-c54bcfb6b0de8a71.js → table-migration-135bcf384b81820a.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/configure/{messaging-4c8e1a7e407d3c7f.js → messaging-a9bb257906dcd7e0.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/configure/{storage-faf42d1a9cd6a861.js → storage-de0036c74b78e9b7.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/{configure-3823ee301161be4f.js → configure-70efccbe0732786b.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/properties/{[id]-8973618b9ba28a50.js → [id]-63c6f0193634add5.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/properties/{add-property-b449da44de56fd3f.js → add-property-e76567f0374d5912.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/{properties-5bb059b7057b5583.js → properties-2050b7dac0413c11.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/reporting/{datamap-6b26740aeb247bc8.js → datamap-83019a6753e14857.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/settings/about/{alpha-98c1492dca52f4f8.js → alpha-913f8eab62460f31.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/settings/{about-d176ec152b70f82d.js → about-2ed1ee6017c0656a.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/settings/consent/[configuration_id]/{[purpose_id]-ea5077aca3d01dfb.js → [purpose_id]-bffd6292e7e0302a.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/settings/{consent-68b812269e38c8c3.js → consent-e5331508e81222fc.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/settings/{custom-fields-79cdee37ceb8665f.js → custom-fields-74f0fe9656f4a1f6.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/settings/{domain-records-056f36a8a0509006.js → domain-records-a649ca07ce51b0fe.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/settings/{domains-fea15607939cab70.js → domains-eb675ba600cea2a8.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/settings/{email-templates-cce73ddc0012b089.js → email-templates-4db2f42f90867890.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/settings/{locations-8b0a408ed7e3ff28.js → locations-89b404989b4ea21c.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/settings/{organization-a01838a53677d69e.js → organization-eb1ecff37fd85c72.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/settings/{regulations-43e9cafaeb869069.js → regulations-07d883b5aaec58f2.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/systems/configure/[id]/{test-datasets-ea1e2483ddf6af6c.js → test-datasets-61ecb7546830c345.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/systems/configure/{[id]-7856e694b009ded3.js → [id]-e91da49c0681a300.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/{systems-2c6dca19bf0a4f0c.js → systems-44d714017dd87e62.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/{taxonomy-ede8ddce10d7d055.js → taxonomy-78c3a5200d362cff.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/user-management/profile/{[id]-af9bf43612c9676c.js → [id]-4f9001870e2b3aff.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/{user-management-3b7fea8781dc18b5.js → user-management-583a7f0c1bead240.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{webpack-aa7ff73977a15cb3.js → webpack-b5eb3e1da37616d2.js} +0 -0
fides/_version.py
CHANGED
|
@@ -8,11 +8,11 @@ import json
|
|
|
8
8
|
|
|
9
9
|
version_json = '''
|
|
10
10
|
{
|
|
11
|
-
"date": "2025-08-
|
|
11
|
+
"date": "2025-08-29T09:36:26+0200",
|
|
12
12
|
"dirty": false,
|
|
13
13
|
"error": null,
|
|
14
|
-
"full-revisionid": "
|
|
15
|
-
"version": "2.69.
|
|
14
|
+
"full-revisionid": "8d2c44366def55f6ef0bce42e3692c17c6d3fd18",
|
|
15
|
+
"version": "2.69.1b0"
|
|
16
16
|
}
|
|
17
17
|
''' # END VERSION_JSON
|
|
18
18
|
|
|
@@ -37,6 +37,7 @@ from fides.api.service.authentication.authentication_strategy_oauth2_authorizati
|
|
|
37
37
|
)
|
|
38
38
|
from fides.api.util.api_router import APIRouter
|
|
39
39
|
from fides.api.util.connection_util import connection_status
|
|
40
|
+
from fides.api.util.endpoint_utils import fides_limiter
|
|
40
41
|
from fides.common.api.scope_registry import (
|
|
41
42
|
CLIENT_CREATE,
|
|
42
43
|
CLIENT_DELETE,
|
|
@@ -65,8 +66,10 @@ router = APIRouter(tags=["OAuth"], prefix=V1_URL_PREFIX)
|
|
|
65
66
|
TOKEN,
|
|
66
67
|
response_model=AccessToken,
|
|
67
68
|
)
|
|
69
|
+
@fides_limiter.limit(CONFIG.security.auth_rate_limit)
|
|
68
70
|
async def acquire_access_token(
|
|
69
71
|
request: Request,
|
|
72
|
+
response: Response,
|
|
70
73
|
form_data: OAuth2ClientCredentialsRequestForm = Depends(),
|
|
71
74
|
db: Session = Depends(get_db),
|
|
72
75
|
) -> AccessToken:
|
|
@@ -1930,7 +1930,7 @@ def finalize_privacy_request(
|
|
|
1930
1930
|
|
|
1931
1931
|
queue_privacy_request(
|
|
1932
1932
|
privacy_request_id=privacy_request_id,
|
|
1933
|
-
from_step=CurrentStep.
|
|
1933
|
+
from_step=CurrentStep.finalization.value,
|
|
1934
1934
|
)
|
|
1935
1935
|
|
|
1936
1936
|
return privacy_request # type: ignore[return-value]
|
|
@@ -5,7 +5,7 @@ from datetime import datetime
|
|
|
5
5
|
from typing import List, Optional
|
|
6
6
|
|
|
7
7
|
import jose.exceptions
|
|
8
|
-
from fastapi import Depends, HTTPException, Security
|
|
8
|
+
from fastapi import Depends, HTTPException, Request, Response, Security
|
|
9
9
|
from fastapi.security import SecurityScopes
|
|
10
10
|
from fastapi_pagination import Page, Params
|
|
11
11
|
from fastapi_pagination.bases import AbstractPage
|
|
@@ -59,6 +59,7 @@ from fides.api.schemas.user import (
|
|
|
59
59
|
)
|
|
60
60
|
from fides.api.service.deps import get_user_service
|
|
61
61
|
from fides.api.util.api_router import APIRouter
|
|
62
|
+
from fides.api.util.endpoint_utils import fides_limiter
|
|
62
63
|
from fides.common.api.scope_registry import (
|
|
63
64
|
SCOPE_REGISTRY,
|
|
64
65
|
SYSTEM_MANAGER_DELETE,
|
|
@@ -116,7 +117,7 @@ def verify_user_read_scopes(
|
|
|
116
117
|
db: Session = Depends(get_db),
|
|
117
118
|
) -> ClientDetail:
|
|
118
119
|
"""
|
|
119
|
-
Custom dependency that verifies the user has either
|
|
120
|
+
Custom dependency that verifies the user has either user:read or user:read-own scope.
|
|
120
121
|
Returns the client if authorized.
|
|
121
122
|
"""
|
|
122
123
|
token_data, client = extract_token_and_load_client(authorization, db)
|
|
@@ -158,7 +159,7 @@ async def update_user(
|
|
|
158
159
|
) -> FidesUser:
|
|
159
160
|
"""
|
|
160
161
|
Update a user given a `user_id`. If the user is not updating their own data,
|
|
161
|
-
they need the
|
|
162
|
+
they need the user:update scope
|
|
162
163
|
"""
|
|
163
164
|
user = FidesUser.get(db=db, object_id=user_id)
|
|
164
165
|
if not user:
|
|
@@ -207,6 +208,17 @@ def update_user_password(
|
|
|
207
208
|
|
|
208
209
|
current_user.update_password(db=db, new_password=data.new_password)
|
|
209
210
|
|
|
211
|
+
# Delete the user's associated OAuth client to invalidate all existing sessions
|
|
212
|
+
if current_user.client:
|
|
213
|
+
try:
|
|
214
|
+
current_user.client.delete(db)
|
|
215
|
+
except Exception as exc:
|
|
216
|
+
logger.exception(
|
|
217
|
+
"Unable to delete user client during password reset for user {}: {}",
|
|
218
|
+
current_user.id,
|
|
219
|
+
exc,
|
|
220
|
+
)
|
|
221
|
+
|
|
210
222
|
logger.info("Updated user with id: '{}'.", current_user.id)
|
|
211
223
|
return current_user
|
|
212
224
|
|
|
@@ -235,6 +247,18 @@ def force_update_password(
|
|
|
235
247
|
)
|
|
236
248
|
|
|
237
249
|
user.update_password(db=db, new_password=data.new_password)
|
|
250
|
+
|
|
251
|
+
# Delete the user's associated OAuth client to invalidate all existing sessions
|
|
252
|
+
if user.client:
|
|
253
|
+
try:
|
|
254
|
+
user.client.delete(db)
|
|
255
|
+
except Exception as exc:
|
|
256
|
+
logger.exception(
|
|
257
|
+
"Unable to delete user client during admin-forced password reset for user {}: {}",
|
|
258
|
+
user.id,
|
|
259
|
+
exc,
|
|
260
|
+
)
|
|
261
|
+
|
|
238
262
|
logger.info("Updated user with id: '{}'.", user.id)
|
|
239
263
|
return user
|
|
240
264
|
|
|
@@ -547,7 +571,7 @@ def get_user(
|
|
|
547
571
|
client: ClientDetail = Security(verify_user_read_scopes),
|
|
548
572
|
authorization: str = Security(oauth2_scheme),
|
|
549
573
|
) -> FidesUser:
|
|
550
|
-
"""Returns a User based on an Id. Users with
|
|
574
|
+
"""Returns a User based on an Id. Users with user:read-own scope can only access their own data. Users with user:read can access other's data."""
|
|
551
575
|
user: Optional[FidesUser] = FidesUser.get_by_key_or_id(db, data={"id": user_id})
|
|
552
576
|
if user is None:
|
|
553
577
|
raise HTTPException(status_code=HTTP_404_NOT_FOUND, detail="User not found")
|
|
@@ -617,8 +641,11 @@ def get_users(
|
|
|
617
641
|
status_code=HTTP_200_OK,
|
|
618
642
|
response_model=UserLoginResponse,
|
|
619
643
|
)
|
|
644
|
+
@fides_limiter.limit(CONFIG.security.auth_rate_limit)
|
|
620
645
|
def user_login(
|
|
621
646
|
*,
|
|
647
|
+
request: Request,
|
|
648
|
+
response: Response,
|
|
622
649
|
db: Session = Depends(get_db),
|
|
623
650
|
config: FidesConfig = Depends(get_config),
|
|
624
651
|
user_data: UserLogin,
|
fides/api/models/client.py
CHANGED
|
@@ -2,7 +2,7 @@ from __future__ import annotations
|
|
|
2
2
|
|
|
3
3
|
import json
|
|
4
4
|
from datetime import datetime
|
|
5
|
-
from typing import Any, Optional
|
|
5
|
+
from typing import TYPE_CHECKING, Any, Optional
|
|
6
6
|
|
|
7
7
|
from sqlalchemy import ARRAY, Column, ForeignKey, String
|
|
8
8
|
from sqlalchemy.ext.declarative import declared_attr
|
|
@@ -22,10 +22,12 @@ from fides.api.cryptography.schemas.jwt import (
|
|
|
22
22
|
JWE_PAYLOAD_SYSTEMS,
|
|
23
23
|
)
|
|
24
24
|
from fides.api.db.base_class import Base
|
|
25
|
-
from fides.api.models.fides_user import FidesUser
|
|
26
25
|
from fides.api.oauth.jwt import generate_jwe
|
|
27
26
|
from fides.config import FidesConfig
|
|
28
27
|
|
|
28
|
+
if TYPE_CHECKING:
|
|
29
|
+
from fides.api.models.fides_user import FidesUser
|
|
30
|
+
|
|
29
31
|
DEFAULT_SCOPES: list[str] = []
|
|
30
32
|
DEFAULT_ROLES: list[str] = []
|
|
31
33
|
DEFAULT_SYSTEMS: list[str] = []
|
|
@@ -48,9 +50,11 @@ class ClientDetail(Base):
|
|
|
48
50
|
ARRAY(String), nullable=False, server_default="{}", default=dict
|
|
49
51
|
)
|
|
50
52
|
fides_key = Column(String, index=True, unique=True, nullable=True)
|
|
51
|
-
user_id = Column(
|
|
52
|
-
|
|
53
|
-
|
|
53
|
+
user_id = Column(String, ForeignKey("fidesuser.id"), nullable=True, unique=True)
|
|
54
|
+
|
|
55
|
+
if TYPE_CHECKING:
|
|
56
|
+
# Explicitly annotate the backref relationship for mypy
|
|
57
|
+
user: Optional["FidesUser"]
|
|
54
58
|
|
|
55
59
|
@classmethod
|
|
56
60
|
def create_client_and_secret(
|
fides/api/models/fides_user.py
CHANGED
|
@@ -22,7 +22,7 @@ from fides.api.cryptography.cryptographic_util import (
|
|
|
22
22
|
from fides.api.db.base_class import Base
|
|
23
23
|
from fides.api.models.audit_log import AuditLog
|
|
24
24
|
|
|
25
|
-
#
|
|
25
|
+
# SystemManager import is handled in base.py to avoid circular imports
|
|
26
26
|
from fides.api.schemas.user import DisabledReason
|
|
27
27
|
from fides.config import CONFIG
|
|
28
28
|
|
|
@@ -32,7 +32,6 @@ if TYPE_CHECKING:
|
|
|
32
32
|
FidesUserRespondentEmailVerification,
|
|
33
33
|
)
|
|
34
34
|
from fides.api.models.sql_models import System # type: ignore[attr-defined]
|
|
35
|
-
from fides.api.models.system_manager import SystemManager
|
|
36
35
|
|
|
37
36
|
|
|
38
37
|
class FidesUser(Base):
|
fides/api/oauth/utils.py
CHANGED
|
@@ -222,7 +222,9 @@ async def get_current_user(
|
|
|
222
222
|
created_at=datetime.utcnow(),
|
|
223
223
|
)
|
|
224
224
|
|
|
225
|
-
|
|
225
|
+
if client.user is None:
|
|
226
|
+
raise AuthorizationError(detail="Client has no associated user")
|
|
227
|
+
return client.user
|
|
226
228
|
|
|
227
229
|
|
|
228
230
|
def verify_callback_oauth_policy_pre_webhook(
|
|
@@ -367,8 +369,10 @@ def extract_token_and_load_client(
|
|
|
367
369
|
logger.debug("Auth token expired.")
|
|
368
370
|
raise AuthorizationError(detail="Not Authorized for this action")
|
|
369
371
|
|
|
372
|
+
issued_at_dt = datetime.fromisoformat(issued_at)
|
|
373
|
+
|
|
370
374
|
if is_token_expired(
|
|
371
|
-
|
|
375
|
+
issued_at_dt,
|
|
372
376
|
token_duration_override or CONFIG.security.oauth_access_token_expire_minutes,
|
|
373
377
|
):
|
|
374
378
|
raise AuthorizationError(detail="Not Authorized for this action")
|
|
@@ -391,6 +395,21 @@ def extract_token_and_load_client(
|
|
|
391
395
|
logger.debug("Auth token belongs to an invalid client_id.")
|
|
392
396
|
raise AuthorizationError(detail="Not Authorized for this action")
|
|
393
397
|
|
|
398
|
+
# Invalidate tokens issued prior to the user's most recent password reset.
|
|
399
|
+
# This ensures any existing sessions are expired immediately after a password change.
|
|
400
|
+
try:
|
|
401
|
+
if client.user is not None and client.user.password_reset_at is not None:
|
|
402
|
+
password_reset_at = client.user.password_reset_at
|
|
403
|
+
if password_reset_at and issued_at_dt < password_reset_at:
|
|
404
|
+
logger.debug("Auth token issued before latest password reset.")
|
|
405
|
+
raise AuthorizationError(detail="Not Authorized for this action")
|
|
406
|
+
except (
|
|
407
|
+
Exception
|
|
408
|
+
) as exc: # pragma: no cover - defensive: never block auth on relationship issues
|
|
409
|
+
logger.exception(
|
|
410
|
+
"Unable to evaluate password reset timestamp for client user: {}", exc
|
|
411
|
+
)
|
|
412
|
+
|
|
394
413
|
# Populate request-scoped context with the authenticated user identifier.
|
|
395
414
|
# Prefer the linked user_id; fall back to the client id when this is the
|
|
396
415
|
# special root client (which has no associated FidesUser row).
|
|
@@ -4,6 +4,8 @@ from fideslang.models import Dataset
|
|
|
4
4
|
from pydantic import BaseModel, field_validator
|
|
5
5
|
|
|
6
6
|
from fides.api.models.datasetconfig import validate_masking_strategy_override
|
|
7
|
+
from fides.api.schemas.enums.connection_category import ConnectionCategory
|
|
8
|
+
from fides.api.schemas.enums.integration_feature import IntegrationFeature
|
|
7
9
|
from fides.api.schemas.policy import ActionType
|
|
8
10
|
from fides.api.schemas.saas.saas_config import SaaSConfig
|
|
9
11
|
from fides.api.util.saas_util import load_config_from_string, load_dataset_from_string
|
|
@@ -22,6 +24,9 @@ class ConnectorTemplate(BaseModel):
|
|
|
22
24
|
authorization_required: bool
|
|
23
25
|
user_guide: Optional[str] = None
|
|
24
26
|
supported_actions: List[ActionType]
|
|
27
|
+
category: Optional[ConnectionCategory] = None
|
|
28
|
+
tags: Optional[List[str]] = None
|
|
29
|
+
enabled_features: Optional[List[IntegrationFeature]] = None
|
|
25
30
|
|
|
26
31
|
@field_validator("config")
|
|
27
32
|
@classmethod
|
|
@@ -26,6 +26,7 @@ from fides.api.service.authentication.authentication_strategy_oauth2_authorizati
|
|
|
26
26
|
)
|
|
27
27
|
from fides.api.util.saas_util import (
|
|
28
28
|
encode_file_contents,
|
|
29
|
+
extract_display_info_from_config,
|
|
29
30
|
load_config,
|
|
30
31
|
load_config_from_string,
|
|
31
32
|
load_dataset_from_string,
|
|
@@ -78,6 +79,8 @@ class FileConnectorTemplateLoader(ConnectorTemplateLoader):
|
|
|
78
79
|
== OAuth2AuthorizationCodeAuthenticationStrategy.name
|
|
79
80
|
)
|
|
80
81
|
|
|
82
|
+
display_info = extract_display_info_from_config(config)
|
|
83
|
+
|
|
81
84
|
try:
|
|
82
85
|
icon = encode_file_contents(f"data/saas/icon/{connector_type}.svg")
|
|
83
86
|
except FileNotFoundError:
|
|
@@ -100,6 +103,7 @@ class FileConnectorTemplateLoader(ConnectorTemplateLoader):
|
|
|
100
103
|
authorization_required=authorization_required,
|
|
101
104
|
user_guide=config.user_guide,
|
|
102
105
|
supported_actions=config.supported_actions,
|
|
106
|
+
**display_info,
|
|
103
107
|
)
|
|
104
108
|
except Exception:
|
|
105
109
|
logger.exception("Unable to load {} connector", connector_type)
|
|
@@ -165,6 +169,8 @@ class CustomConnectorTemplateLoader(ConnectorTemplateLoader):
|
|
|
165
169
|
== OAuth2AuthorizationCodeAuthenticationStrategy.name
|
|
166
170
|
)
|
|
167
171
|
|
|
172
|
+
display_info = extract_display_info_from_config(config)
|
|
173
|
+
|
|
168
174
|
connector_template = ConnectorTemplate(
|
|
169
175
|
config=template.config,
|
|
170
176
|
dataset=template.dataset,
|
|
@@ -173,6 +179,7 @@ class CustomConnectorTemplateLoader(ConnectorTemplateLoader):
|
|
|
173
179
|
authorization_required=authorization_required,
|
|
174
180
|
user_guide=config.user_guide,
|
|
175
181
|
supported_actions=config.supported_actions,
|
|
182
|
+
**display_info,
|
|
176
183
|
)
|
|
177
184
|
|
|
178
185
|
# register the template in the loader's template dictionary
|
|
@@ -230,23 +230,6 @@ def get_saas_connection_types(
|
|
|
230
230
|
for item in saas_types:
|
|
231
231
|
connector_template = ConnectorRegistry.get_connector_template(item)
|
|
232
232
|
if connector_template is not None:
|
|
233
|
-
# Read display info from SAAS config if available
|
|
234
|
-
category = None
|
|
235
|
-
tags = None
|
|
236
|
-
enabled_features = None
|
|
237
|
-
|
|
238
|
-
try:
|
|
239
|
-
saas_config = SaaSConfig(
|
|
240
|
-
**load_config_from_string(connector_template.config)
|
|
241
|
-
)
|
|
242
|
-
if saas_config.display_info:
|
|
243
|
-
category = saas_config.display_info.category
|
|
244
|
-
tags = saas_config.display_info.tags
|
|
245
|
-
enabled_features = saas_config.display_info.enabled_features
|
|
246
|
-
except Exception:
|
|
247
|
-
# If config parsing fails, leave display info as None
|
|
248
|
-
pass
|
|
249
|
-
|
|
250
233
|
saas_connection_types.append(
|
|
251
234
|
ConnectionSystemTypeMap(
|
|
252
235
|
identifier=item,
|
|
@@ -256,9 +239,9 @@ def get_saas_connection_types(
|
|
|
256
239
|
authorization_required=connector_template.authorization_required,
|
|
257
240
|
user_guide=connector_template.user_guide,
|
|
258
241
|
supported_actions=connector_template.supported_actions,
|
|
259
|
-
category=category,
|
|
260
|
-
tags=tags,
|
|
261
|
-
enabled_features=enabled_features,
|
|
242
|
+
category=connector_template.category,
|
|
243
|
+
tags=connector_template.tags,
|
|
244
|
+
enabled_features=connector_template.enabled_features,
|
|
262
245
|
)
|
|
263
246
|
)
|
|
264
247
|
|
fides/api/util/saas_util.py
CHANGED
|
@@ -16,7 +16,7 @@ from fides.api.common_exceptions import FidesopsException, ValidationError
|
|
|
16
16
|
from fides.api.cryptography.cryptographic_util import bytes_to_b64_str
|
|
17
17
|
from fides.api.graph.config import Collection, CollectionAddress, Field, GraphDataset
|
|
18
18
|
from fides.api.models.privacy_request import PrivacyRequest
|
|
19
|
-
from fides.api.schemas.saas.saas_config import SaaSRequest
|
|
19
|
+
from fides.api.schemas.saas.saas_config import SaaSConfig, SaaSRequest
|
|
20
20
|
from fides.api.schemas.saas.shared_schemas import SaaSRequestParams
|
|
21
21
|
from fides.config import CONFIG
|
|
22
22
|
from fides.config.helpers import load_file
|
|
@@ -126,6 +126,17 @@ def replace_dataset_placeholders(
|
|
|
126
126
|
return load_dataset_from_string(yaml_str)
|
|
127
127
|
|
|
128
128
|
|
|
129
|
+
def extract_display_info_from_config(config: SaaSConfig) -> Dict[str, Any]:
|
|
130
|
+
"""Extract display info fields from SaaSConfig for caching in ConnectorTemplate."""
|
|
131
|
+
return {
|
|
132
|
+
"category": config.display_info.category if config.display_info else None,
|
|
133
|
+
"tags": config.display_info.tags if config.display_info else None,
|
|
134
|
+
"enabled_features": (
|
|
135
|
+
config.display_info.enabled_features if config.display_info else None
|
|
136
|
+
),
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
|
|
129
140
|
def load_dataset_with_replacement(
|
|
130
141
|
filename: str, string_to_replace: str, replacement: str
|
|
131
142
|
) -> Dict:
|
|
@@ -101,6 +101,10 @@ class SecuritySettings(FidesSettings):
|
|
|
101
101
|
default="1000/minute",
|
|
102
102
|
description="The number of requests from a single IP address allowed to hit an endpoint within a rolling 60 second period.",
|
|
103
103
|
)
|
|
104
|
+
auth_rate_limit: str = Field(
|
|
105
|
+
default="10/minute",
|
|
106
|
+
description="The number of authentication requests from a single IP address allowed to hit authentication endpoints (login, OAuth token) within the specified time period.",
|
|
107
|
+
)
|
|
104
108
|
root_user_scopes: List[str] = Field(
|
|
105
109
|
default=SCOPE_REGISTRY,
|
|
106
110
|
description="The list of scopes that are given to the root user.",
|
|
@@ -213,13 +217,13 @@ class SecuritySettings(FidesSettings):
|
|
|
213
217
|
oauth_root_client_secret_hash = (hashed_client_id, salt.encode(encoding)) # type: ignore
|
|
214
218
|
return oauth_root_client_secret_hash
|
|
215
219
|
|
|
216
|
-
@field_validator("request_rate_limit")
|
|
220
|
+
@field_validator("request_rate_limit", "auth_rate_limit")
|
|
217
221
|
@classmethod
|
|
218
|
-
def
|
|
222
|
+
def validate_rate_limits(
|
|
219
223
|
cls,
|
|
220
224
|
v: str,
|
|
221
225
|
) -> str:
|
|
222
|
-
"""Validate the formatting of
|
|
226
|
+
"""Validate the formatting of rate limit fields"""
|
|
223
227
|
try:
|
|
224
228
|
# Defer to `limits.parse_many` https://limits.readthedocs.io/en/stable/api.html#limits.parse_many
|
|
225
229
|
parse_many(v)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link data-next-font="" rel="preconnect" href="/" crossorigin="anonymous"/><link rel="preload" href="/_next/static/css/abf2e162b1cd0e61.css" as="style"/><link rel="stylesheet" href="/_next/static/css/abf2e162b1cd0e61.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-
|
|
1
|
+
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link data-next-font="" rel="preconnect" href="/" crossorigin="anonymous"/><link rel="preload" href="/_next/static/css/abf2e162b1cd0e61.css" as="style"/><link rel="stylesheet" href="/_next/static/css/abf2e162b1cd0e61.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-b5eb3e1da37616d2.js" defer=""></script><script src="/_next/static/chunks/framework-c92fc3344e6fd165.js" defer=""></script><script src="/_next/static/chunks/main-090643377c8254e6.js" defer=""></script><script src="/_next/static/chunks/pages/_app-f18537fd2c4288e7.js" defer=""></script><script src="/_next/static/chunks/pages/404-9c9efb820bb6b432.js" defer=""></script><script src="/_next/static/4lPKe7mco0KEv09aOQH9A/_buildManifest.js" defer=""></script><script src="/_next/static/4lPKe7mco0KEv09aOQH9A/_ssgManifest.js" defer=""></script><style>.data-ant-cssinjs-cache-path{content:"";}</style></head><body><div id="__next"><div style="height:100%;display:flex"></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/404","query":{},"buildId":"4lPKe7mco0KEv09aOQH9A","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
self.__BUILD_MANIFEST=function(s,e,t,a,c,n,i,d,o,r,p,u,g,f,m,b,j,k,h,y,l,v,I,F,x,_,U,w,q,N,A,S,B,C,z,D,E,L,M,T,P,G,H,J,K,O,Q,R){return{__rewrites:{afterFiles:[],beforeFiles:[],fallback:[]},"/":[F,"static/chunks/pages/index-1299410f671fac23.js"],"/404":["static/chunks/pages/404-9c9efb820bb6b432.js"],"/_error":["static/chunks/pages/_error-bede3a8288930dcf.js"],"/add-systems":[s,e,F,"static/chunks/pages/add-systems-169099ff7b305cf5.js"],"/add-systems/manual":[t,s,a,c,n,g,e,d,f,m,h,x,_,"static/chunks/pages/add-systems/manual-20253dd047fb9736.js"],"/add-systems/multiple":[d,b,U,"static/chunks/pages/add-systems/multiple-caadc3c0e86a7bfe.js"],"/consent":["static/chunks/pages/consent-5cba58ebecb4511f.js"],"/consent/configure":[d,b,"static/chunks/pages/consent/configure-558fbb1667473abb.js"],"/consent/configure/add-vendors":[d,b,U,"static/chunks/pages/consent/configure/add-vendors-acefb9e08c6c4082.js"],"/consent/privacy-experience":[g,w,"static/chunks/pages/consent/privacy-experience-674906d2d9a0a3a6.js"],"/consent/privacy-experience/new":[t,o,j,k,q,"static/chunks/pages/consent/privacy-experience/new-e74cb5ea87f15b40.js"],"/consent/privacy-experience/[id]":[t,o,j,k,q,"static/chunks/pages/consent/privacy-experience/[id]-b1ff1c9683841815.js"],"/consent/privacy-notices":[w,"static/chunks/pages/consent/privacy-notices-dc56bbdb6dd7a670.js"],"/consent/privacy-notices/new":[t,o,j,k,N,"static/chunks/pages/consent/privacy-notices/new-285958a12a66575e.js"],"/consent/privacy-notices/[id]":[t,o,j,k,N,"static/chunks/pages/consent/privacy-notices/[id]-5b7aa7971f070513.js"],"/consent/properties":[A,"static/chunks/pages/consent/properties-0843757f00eeaaec.js"],"/consent/reporting":["static/chunks/2150-930ffaf2c4718edc.js","static/chunks/pages/consent/reporting-60e3394c887f3d5e.js"],"/data-catalog":[t,a,c,"static/css/95ac327e5d70148d.css","static/chunks/pages/data-catalog-c566640eecc6f3fe.js"],"/data-catalog/[systemId]/projects":[t,a,c,p,y,i,"static/chunks/pages/data-catalog/[systemId]/projects-f9117645c941342c.js"],"/data-catalog/[systemId]/projects/[projectUrn]":[S,"static/chunks/pages/data-catalog/[systemId]/projects/[projectUrn]-0f90cac9f190130c.js"],"/data-catalog/[systemId]/projects/[projectUrn]/[resourceUrn]":[t,s,a,c,e,p,y,B,i,"static/chunks/pages/data-catalog/[systemId]/projects/[projectUrn]/[resourceUrn]-adc500a03e239857.js"],"/data-catalog/[systemId]/resources":[S,"static/chunks/pages/data-catalog/[systemId]/resources-6c3714ee97a718c1.js"],"/data-catalog/[systemId]/resources/[resourceUrn]":[t,s,a,c,e,p,y,B,i,"static/chunks/pages/data-catalog/[systemId]/resources/[resourceUrn]-c8b3d090e4ba60d3.js"],"/data-discovery/action-center":["static/chunks/pages/data-discovery/action-center-991659e916ad60b1.js"],"/data-discovery/action-center/[monitorId]":[t,s,a,c,e,C,l,"static/chunks/pages/data-discovery/action-center/[monitorId]-fed8b879c13c2bf3.js"],"/data-discovery/action-center/[monitorId]/[systemId]":[t,s,a,c,e,d,h,C,"static/css/23cf870196941c9a.css","static/chunks/pages/data-discovery/action-center/[monitorId]/[systemId]-cfb0b1200bc1a2c9.js"],"/data-discovery/activity":[s,e,u,"static/chunks/pages/data-discovery/activity-58a110542d6bcd0f.js"],"/data-discovery/detection":[s,e,u,z,"static/chunks/pages/data-discovery/detection-4decce5ef996e563.js"],"/data-discovery/detection/[resourceUrn]":[s,e,u,z,"static/chunks/pages/data-discovery/detection/[resourceUrn]-22eec362dfbb1d2a.js"],"/data-discovery/discovery":[t,s,a,c,e,u,p,D,i,"static/chunks/pages/data-discovery/discovery-85fdbf4cde60d910.js"],"/data-discovery/discovery/[resourceUrn]":[t,s,a,c,e,u,p,D,i,"static/chunks/pages/data-discovery/discovery/[resourceUrn]-01acdd1ad492fd89.js"],"/datamap":[s,c,"static/chunks/255-1bc0cbef7a59cdc6.js",e,f,E,"static/chunks/pages/datamap-60e27b673c68bd27.js"],"/dataset":[r,"static/chunks/pages/dataset-c8bcd568d3b0ee7f.js"],"/dataset/new":[s,r,e,"static/chunks/pages/dataset/new-2c7b1213b6604d30.js"],"/dataset/[datasetId]":["static/chunks/9729-fcf6ff4e3534e4a8.js",v,"static/chunks/pages/dataset/[datasetId]-491d2c8dd559d0cb.js"],"/dataset/[datasetId]/[collectionName]":[t,a,c,n,v,L,i,"static/chunks/pages/dataset/[datasetId]/[collectionName]-a6cd31103deba465.js"],"/dataset/[datasetId]/[collectionName]/[...subfieldNames]":[t,a,c,n,v,L,i,"static/chunks/pages/dataset/[datasetId]/[collectionName]/[...subfieldNames]-3f4ba87513e030a2.js"],"/datastore-connection":["static/css/5f393dea1c0d031c.css","static/chunks/pages/datastore-connection-9a33a412a5f36960.js"],"/datastore-connection/new":[t,s,n,r,g,M,e,T,"static/chunks/pages/datastore-connection/new-95f6d64f84fc6bf3.js"],"/datastore-connection/[id]":[t,s,n,r,M,e,T,"static/chunks/pages/datastore-connection/[id]-7ed3f05700dc397b.js"],"/fides-js-docs":["static/chunks/2fbcc6de-a6c61724c327e9fa.js","static/chunks/e3251fe7-5777b5d778e6fffa.js",t,a,c,n,r,"static/chunks/5619-9b50cec521203989.js",P,"static/css/0b4b1b65cc874774.css","static/chunks/5596-bb601cbf40e47a0f.js","static/chunks/pages/fides-js-docs-1f4335dca5c09860.js"],"/integrations":[t,s,a,c,n,o,G,e,m,H,i,"static/chunks/pages/integrations-0f12d5b658c98c9f.js"],"/integrations/[id]":[t,s,a,c,n,o,G,e,m,H,i,"static/chunks/pages/integrations/[id]-3d24c1510aa4c555.js"],"/login":["static/chunks/pages/login-0cb0eb44bf2dd24c.js"],"/login/[provider]":["static/chunks/pages/login/[provider]-c58beef131c3a82d.js"],"/messaging":[t,a,"static/chunks/346-aa3b88efb85f2e28.js","static/chunks/pages/messaging-38189c1058aa4acf.js"],"/messaging/add-template":[J,"static/chunks/pages/messaging/add-template-b97883026fbc5b1e.js"],"/messaging/[id]":[J,"static/chunks/pages/messaging/[id]-ba232c4b17576ccb.js"],"/poc/ant-components":["static/chunks/pages/poc/ant-components-3119bdb3811409bf.js"],"/poc/form-experiments/AntForm":["static/chunks/pages/poc/form-experiments/AntForm-8f9d0434dc3eb8cf.js"],"/poc/form-experiments/FormikAntFormItem":["static/chunks/pages/poc/form-experiments/FormikAntFormItem-a14e51c7f22f3395.js"],"/poc/form-experiments/FormikControlled":["static/chunks/pages/poc/form-experiments/FormikControlled-a40645b57822684d.js"],"/poc/form-experiments/FormikField":["static/chunks/pages/poc/form-experiments/FormikField-c55df6527b700701.js"],"/poc/form-experiments/FormikSpreadField":[K,"static/chunks/pages/poc/form-experiments/FormikSpreadField-af097d661f6abcf4.js"],"/poc/forms":[K,"static/chunks/pages/poc/forms-292d761616b162a0.js"],"/poc/table-migration":[d,b,"static/chunks/pages/poc/table-migration-135bcf384b81820a.js"],"/privacy-requests":[t,s,"static/chunks/3550-d04125c828d591a1.js",e,"static/chunks/pages/privacy-requests-91f578139548652c.js"],"/privacy-requests/configure":["static/chunks/pages/privacy-requests/configure-70efccbe0732786b.js"],"/privacy-requests/configure/messaging":[s,e,"static/chunks/pages/privacy-requests/configure/messaging-a9bb257906dcd7e0.js"],"/privacy-requests/configure/storage":[s,e,"static/chunks/pages/privacy-requests/configure/storage-de0036c74b78e9b7.js"],"/privacy-requests/[id]":[s,e,"static/css/073713cd1eddda79.css","static/chunks/pages/privacy-requests/[id]-b379873a5771e55b.js"],"/properties":[A,"static/chunks/pages/properties-2050b7dac0413c11.js"],"/properties/add-property":[O,"static/chunks/pages/properties/add-property-e76567f0374d5912.js"],"/properties/[id]":[O,"static/chunks/pages/properties/[id]-63c6f0193634add5.js"],"/reporting/datamap":[t,s,a,c,P,e,f,E,"static/chunks/pages/reporting/datamap-83019a6753e14857.js"],"/settings/about":["static/chunks/pages/settings/about-2ed1ee6017c0656a.js"],"/settings/about/alpha":["static/chunks/pages/settings/about/alpha-913f8eab62460f31.js"],"/settings/consent":["static/chunks/pages/settings/consent-e5331508e81222fc.js"],"/settings/consent/[configuration_id]/[purpose_id]":["static/chunks/pages/settings/consent/[configuration_id]/[purpose_id]-bffd6292e7e0302a.js"],"/settings/custom-fields":[s,e,"static/chunks/pages/settings/custom-fields-74f0fe9656f4a1f6.js"],"/settings/domain-records":["static/chunks/pages/settings/domain-records-a649ca07ce51b0fe.js"],"/settings/domains":["static/chunks/pages/settings/domains-eb675ba600cea2a8.js"],"/settings/email-templates":["static/chunks/pages/settings/email-templates-4db2f42f90867890.js"],"/settings/locations":[Q,l,"static/chunks/pages/settings/locations-89b404989b4ea21c.js"],"/settings/organization":["static/chunks/pages/settings/organization-eb1ecff37fd85c72.js"],"/settings/regulations":[Q,l,"static/chunks/pages/settings/regulations-07d883b5aaec58f2.js"],"/systems":["static/chunks/pages/systems-44d714017dd87e62.js"],"/systems/configure/[id]":[t,s,a,c,n,g,e,d,f,m,h,x,_,"static/chunks/pages/systems/configure/[id]-e91da49c0681a300.js"],"/systems/configure/[id]/test-datasets":[r,"static/chunks/pages/systems/configure/[id]/test-datasets-61ecb7546830c345.js"],"/taxonomy":["static/chunks/678d4732-50255cc09048e643.js",t,s,a,o,"static/chunks/6148-59a59d5c5925344f.js",e,"static/css/34a7eb08b86ddb57.css","static/chunks/pages/taxonomy-78c3a5200d362cff.js"],"/user-management":[I,"static/chunks/pages/user-management-583a7f0c1bead240.js"],"/user-management/new":[I,R,"static/chunks/pages/user-management/new-de8cb3739ab99c09.js"],"/user-management/profile/[id]":[I,R,"static/chunks/pages/user-management/profile/[id]-4f9001870e2b3aff.js"],sortedPages:["/","/404","/_app","/_error","/add-systems","/add-systems/manual","/add-systems/multiple","/consent","/consent/configure","/consent/configure/add-vendors","/consent/privacy-experience","/consent/privacy-experience/new","/consent/privacy-experience/[id]","/consent/privacy-notices","/consent/privacy-notices/new","/consent/privacy-notices/[id]","/consent/properties","/consent/reporting","/data-catalog","/data-catalog/[systemId]/projects","/data-catalog/[systemId]/projects/[projectUrn]","/data-catalog/[systemId]/projects/[projectUrn]/[resourceUrn]","/data-catalog/[systemId]/resources","/data-catalog/[systemId]/resources/[resourceUrn]","/data-discovery/action-center","/data-discovery/action-center/[monitorId]","/data-discovery/action-center/[monitorId]/[systemId]","/data-discovery/activity","/data-discovery/detection","/data-discovery/detection/[resourceUrn]","/data-discovery/discovery","/data-discovery/discovery/[resourceUrn]","/datamap","/dataset","/dataset/new","/dataset/[datasetId]","/dataset/[datasetId]/[collectionName]","/dataset/[datasetId]/[collectionName]/[...subfieldNames]","/datastore-connection","/datastore-connection/new","/datastore-connection/[id]","/fides-js-docs","/integrations","/integrations/[id]","/login","/login/[provider]","/messaging","/messaging/add-template","/messaging/[id]","/poc/ant-components","/poc/form-experiments/AntForm","/poc/form-experiments/FormikAntFormItem","/poc/form-experiments/FormikControlled","/poc/form-experiments/FormikField","/poc/form-experiments/FormikSpreadField","/poc/forms","/poc/table-migration","/privacy-requests","/privacy-requests/configure","/privacy-requests/configure/messaging","/privacy-requests/configure/storage","/privacy-requests/[id]","/properties","/properties/add-property","/properties/[id]","/reporting/datamap","/settings/about","/settings/about/alpha","/settings/consent","/settings/consent/[configuration_id]/[purpose_id]","/settings/custom-fields","/settings/domain-records","/settings/domains","/settings/email-templates","/settings/locations","/settings/organization","/settings/regulations","/systems","/systems/configure/[id]","/systems/configure/[id]/test-datasets","/taxonomy","/user-management","/user-management/new","/user-management/profile/[id]"]}}("static/chunks/431-86ad2beeb93c95c9.js","static/chunks/768-7eac4b30d7477b0a.js","static/chunks/8765-f622a35b40a7ec63.js","static/chunks/9278-08cc704317fe535e.js","static/chunks/5163-e682273cd76a7d07.js","static/chunks/699-8ca44b0de9fa20f0.js","static/css/d2d4e9a6923e6730.css","static/chunks/401-959a15ed18a8abdf.js","static/chunks/3662-f6a1ddca5ee42076.js","static/chunks/6527-0eed08abe252a918.js","static/chunks/1099-c34f76b4da5f3d15.js","static/chunks/8002-c1f66179adabece8.js","static/chunks/5277-e8a036319456127f.js","static/chunks/9951-b954027a046ce553.js","static/chunks/4808-357ca7ea7bbd24c6.js","static/chunks/3923-c4f2b03706ddbe39.js","static/chunks/6419-d0c00d661b01f8fa.js","static/chunks/6084-487d27d017c45e05.js","static/chunks/4844-707b20a6c4b127cc.js","static/chunks/3620-8c0ee3d0b19c342d.js","static/css/10994e916bc9a00a.css","static/chunks/5487-fd9724519f31caff.js","static/chunks/7476-9a57db910472b48e.js","static/css/972dc7eef106ee7c.css","static/chunks/4786-7aafb744445445b2.js","static/css/304c6f148886a8d4.css","static/chunks/796-fb2af44165f37ecc.js","static/chunks/6853-f7ab74e30abbdeaf.js","static/chunks/1817-e6934e258111a961.js","static/chunks/6954-b0a7b8ac6db238f8.js","static/chunks/79-3e5047415bee9391.js","static/chunks/3872-72ea3eb040366277.js","static/chunks/3855-9dd54ded74f4036b.js","static/chunks/3847-2c0126e6eb54c526.js","static/chunks/1345-04e37a66c0d40dc1.js","static/chunks/9046-058a4d8f0b5e08f9.js","static/chunks/5258-1a8b9f66b97761fc.js","static/chunks/549-d3bef0990071230c.js","static/chunks/1467-8808ec8836e033f9.js","static/chunks/4608-d101417a3abb4ad6.js","static/chunks/9187-7438242f0d380bb0.js","static/chunks/1316-2606e19807c08aa5.js","static/chunks/3729-f5f2976904dce90d.js","static/chunks/7630-46807321449479c7.js","static/chunks/2921-0696287bb8de1f0b.js","static/chunks/787-79e8e558bd80ece6.js","static/chunks/9826-0d9a7f61c08ed88a.js","static/chunks/4121-bb71a24d41d04a28.js"),self.__BUILD_MANIFEST_CB&&self.__BUILD_MANIFEST_CB();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4121],{44121:function(e,s,a){a.d(s,{Z:function(){return ea}});var t=a(24246),n=a(96306),l=a(91437),i=()=>(0,t.jsxs)(n.xuv,{children:[(0,t.jsx)(n.xuv,{pb:4,fontSize:"18px",fontWeight:"semibold",children:"Role Description"}),(0,t.jsx)(n.gCW,{spacing:4,children:l.K.map(e=>(0,t.jsxs)(n.xuv,{width:"100%",padding:4,borderRadius:"md",backgroundColor:"gray.75",fontSize:"14px",children:[(0,t.jsx)(n.xuv,{fontWeight:"semibold",children:e.label}),(0,t.jsx)(n.xuv,{color:"gray.700",children:e.description})]},e.roleKey))})]}),r=a(16134),d=a(54682),o=a(19904),c=a(34090),h=a(86677),u=a(27378),m=a(812),p=a(46238),x=a(58452),j=a(77830),w=a(46628),g=a(26917),b=a(1315),f=a(95492),y=a(65497);let v=e=>{let{assignedSystems:s,onAssignedSystemChange:a}=e,l=(0,r.C)(y.Ux);if((0,y.d6)(l,{skip:!l}),0===s.length)return null;let i=e=>{a(s.filter(s=>s.fides_key!==e.fides_key))};return(0,t.jsxs)(n.iA_,{size:"sm","data-testid":"assign-systems-delete-table",children:[(0,t.jsx)(n.hrZ,{children:(0,t.jsxs)(n.Tr,{children:[(0,t.jsx)(n.Th,{children:"System"}),(0,t.jsx)(n.Th,{})]})}),(0,t.jsx)(n.p3B,{children:s.map(e=>(0,t.jsxs)(n.Tr,{_hover:{bg:"gray.50"},"data-testid":"row-".concat(e.fides_key),children:[(0,t.jsx)(n.Td,{children:e.name}),(0,t.jsx)(n.Td,{textAlign:"end",children:(0,t.jsx)(n.wpx,{"aria-label":"Unassign system from user",icon:(0,t.jsx)(f.l,{}),onClick:()=>i(e),"data-testid":"unassign-btn"})})]},e.fides_key))})]})};var _=e=>{let{allSystems:s,assignedSystems:a,onChange:l}=e,i=e=>{a.find(s=>s.fides_key===e.fides_key)?l(a.filter(s=>s.fides_key!==e.fides_key)):l([...a,e])};return(0,t.jsx)(n.xuv,{overflowY:"auto",maxHeight:"300px",children:(0,t.jsxs)(n.iA_,{size:"sm","data-testid":"assign-systems-table",maxHeight:"50vh",overflowY:"scroll",children:[(0,t.jsx)(n.hrZ,{position:"sticky",top:0,background:"white",zIndex:1,children:(0,t.jsxs)(n.Tr,{children:[(0,t.jsx)(n.Th,{children:"System"}),(0,t.jsx)(n.Th,{children:"Assign"})]})}),(0,t.jsx)(n.p3B,{children:s.map(e=>{let s=!!a.find(s=>s.fides_key===e.fides_key);return(0,t.jsxs)(n.Tr,{_hover:{bg:"gray.50"},"data-testid":"row-".concat(e.fides_key),children:[(0,t.jsx)(n.Td,{children:e.name}),(0,t.jsx)(n.Td,{children:(0,t.jsx)(n.rAg,{checked:s,onChange:()=>i(e),"data-testid":"assign-switch"})})]},e.fides_key)})})]})})};let C=(e,s)=>{var a,t;return(null===(a=e.name)||void 0===a?void 0:a.toLocaleLowerCase().includes(s.toLocaleLowerCase()))||(null===(t=e.description)||void 0===t?void 0:t.toLocaleLowerCase().includes(s.toLocaleLowerCase()))};var S=e=>{let{isOpen:s,onClose:a,assignedSystems:l,onAssignedSystemChange:i}=e,{data:r}=(0,b.K3)(),[d,o]=(0,u.useState)(""),[c,h]=(0,u.useState)(l),m=async()=>{i(c),a()},p=!r||0===r.length,x=(0,u.useMemo)(()=>r?r.filter(e=>C(e,d)):[],[r,d]),j=(0,u.useMemo)(()=>{let e=new Set(c.map(e=>e.fides_key));return x.every(s=>e.has(s.fides_key))},[x,c]);return(0,t.jsxs)(n.u_l,{isOpen:s,onClose:a,size:"2xl",children:[(0,t.jsx)(n.ZAr,{}),(0,t.jsxs)(n.hzk,{p:8,"data-testid":"confirmation-modal",children:[(0,t.jsxs)(n.xBx,{fontWeight:"medium",display:"flex",justifyContent:"space-between",alignItems:"center",children:[(0,t.jsx)(n.xvT,{children:"Assign systems"}),(0,t.jsxs)(n.j8w,{color:"success",children:["Assigned to ",l.length," systems"]})]}),(0,t.jsx)(n.fef,{"data-testid":"assign-systems-modal-body",children:p?(0,t.jsx)(n.xvT,{children:"No systems found"}):(0,t.jsxs)(n.Kqy,{spacing:4,children:[(0,t.jsxs)(n.kCb,{justifyContent:"space-between",children:[(0,t.jsx)(n.xvT,{fontSize:"sm",flexGrow:1,fontWeight:"medium",children:"Assign systems in your organization to this user"}),(0,t.jsx)(n.xuv,{children:(0,t.jsxs)(n.NIc,{display:"flex",alignItems:"center",children:[(0,t.jsx)(n.lXp,{fontSize:"sm",htmlFor:"assign-all-systems",mb:"0",children:"Assign all systems"}),(0,t.jsx)(n.rAg,{size:"small",id:"assign-all-systems",checked:j,onChange:e=>{e&&r?h(x):h(r?r.filter(e=>!x.includes(e)):[])},"data-testid":"assign-all-systems-toggle"})]})})]}),(0,t.jsx)(g.Z,{value:d,onChange:o,placeholder:"Search for systems","data-testid":"system-search",withIcon:!0}),(0,t.jsx)(_,{allSystems:x,assignedSystems:c,onChange:h})]})}),(0,t.jsx)(n.mzw,{justifyContent:"flex-start",children:(0,t.jsxs)("div",{children:[(0,t.jsx)(n.wpx,{onClick:a,className:"mr-2","data-testid":"cancel-btn",children:"Cancel"}),p?null:(0,t.jsx)(n.wpx,{type:"primary",onClick:m,"data-testid":"confirm-btn",children:"Confirm"})]})})]})]})},k=e=>{let{label:s,roleKey:a,isSelected:l,isDisabled:i,assignedSystems:r,onAssignedSystemChange:o}=e,{setFieldValue:h}=(0,c.u6)(),u=(0,n.qY0)(),m=i?"You do not have sufficient permissions to assign this role.":void 0;return l?(0,t.jsxs)(n.Kqy,{borderRadius:"md",border:"1px solid",borderColor:"gray.200",p:4,backgroundColor:"gray.50","aria-selected":"true",spacing:4,"data-testid":"selected",children:[(0,t.jsxs)(n.kCb,{alignItems:"center",justifyContent:"space-between",children:[(0,t.jsx)(n.xvT,{fontSize:"md",fontWeight:"semibold",children:s}),(0,t.jsx)(n.StI,{})]}),a!==d.A7.APPROVER&&a!==d.A7.RESPONDENT&&a!==d.A7.EXTERNAL_RESPONDENT?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(n.kCb,{alignItems:"center",children:[(0,t.jsx)(n.xvT,{fontSize:"sm",fontWeight:"semibold",mr:1,children:"Assigned systems"}),(0,t.jsx)(p.b,{label:"Assigned systems refer to those systems that have been specifically allocated to a user for management purposes. Users assigned to a system possess full edit permissions and are listed as the Data Steward for the respective system."})]}),(0,t.jsx)(n.wpx,{disabled:i,title:m,type:"primary",size:"small",onClick:u.onOpen,"data-testid":"assign-systems-btn",children:"Assign systems +"}),(0,t.jsx)(v,{assignedSystems:r,onAssignedSystemChange:o}),u.isOpen?(0,t.jsx)(S,{isOpen:u.isOpen,onClose:u.onClose,assignedSystems:r,onAssignedSystemChange:o}):null]}):null]}):(0,t.jsx)(n.wpx,{onClick:()=>{h("roles",[a])},"data-testid":"role-option-".concat(s),title:m,disabled:i,children:s})};let E={roles:[]};var R=()=>{var e,s;let a=(0,n.pmc)(),i=(0,h.useRouter)(),g=(0,r.C)(y.Ux);(0,y.d6)(g,{skip:!g});let{isOpen:b,onOpen:f,onClose:v}=(0,n.qY0)(),_=(0,r.C)(y.R$),[C,S]=(0,u.useState)(_),[R]=(0,y.G$)();(0,u.useEffect)(()=>{S(_)},[_]);let{data:A,isLoading:T}=(0,y.gU)(null!=g?g:"",{skip:!g}),[P]=(0,y.lD)(),N=!!(null==A?void 0:null===(e=A.roles)||void 0===e?void 0:e.includes(d.A7.EXTERNAL_RESPONDENT)),I=async e=>{if(b&&v(),!g)return;let s=e.roles.includes(d.A7.APPROVER),t=await P({user_id:g,payload:{roles:e.roles}});if((0,m.D4)(t)){a((0,w.Vo)((0,m.e$)(t.error)));return}if(!s){let e=C.map(e=>e.fides_key),s=await R({userId:g,fidesKeys:e});if((0,m.D4)(s)){a((0,w.Vo)((0,m.e$)(s.error)));return}}a((0,w.t5)("Permissions updated"))},O=async e=>{g&&(C.length>0&&e.roles.includes(d.A7.APPROVER)?f():await I(e))},z=(0,o.Tg)([d.Sh.USER_PERMISSION_ASSIGN_OWNERS]);if(!g)return null;if(T)return(0,t.jsx)(n.$jN,{});if(!z&&(null==A?void 0:null===(s=A.roles)||void 0===s?void 0:s.includes(d.A7.OWNER)))return(0,t.jsx)(n.xvT,{"data-testid":"insufficient-access",children:"You do not have sufficient access to change this user's permissions."});let q=(null==A?void 0:A.roles)?{roles:A.roles}:E,U=l.K.filter(e=>N?e.roleKey===d.A7.EXTERNAL_RESPONDENT:e.roleKey!==d.A7.EXTERNAL_RESPONDENT),D=N?"External respondent role cannot be changed":void 0;return(0,t.jsx)(c.J9,{onSubmit:O,initialValues:q,enableReinitialize:!0,children:e=>{let{values:s,isSubmitting:a,dirty:l}=e;return(0,t.jsxs)(c.l0,{children:[(0,t.jsxs)(n.Kqy,{spacing:7,children:[(0,t.jsxs)(n.Kqy,{spacing:3,"data-testid":"role-options",children:[(0,t.jsxs)(n.kCb,{alignItems:"center",children:[(0,t.jsx)(n.xvT,{fontSize:"sm",fontWeight:"semibold",mr:1,children:"User role"}),(0,t.jsx)(p.b,{label:"A user's role in the organization determines what parts of the UI they can access and which functions are available to them."})]}),U.map(e=>{let a=s.roles.indexOf(e.roleKey)>=0,n=e.roleKey===d.A7.OWNER?!z:N;return(0,t.jsx)(k,{isSelected:a,isDisabled:n,assignedSystems:C,onAssignedSystemChange:S,...e},e.roleKey)}),!N&&(0,t.jsx)(n.esZ,{title:"To invite a new External respondent user, create a manual task integration and then click on the 'Manage secure access' button",children:(0,t.jsx)(n.wpx,{disabled:!0,"data-testid":"role-option-External respondent",children:"External respondent"})})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(n.wpx,{onClick:()=>i.push(j.e3),children:"Cancel"}),(0,t.jsx)(n.esZ,{title:D,children:(0,t.jsx)(n.wpx,{className:"ml-2",type:"primary",htmlType:"submit",loading:a,disabled:!l&&C===_||N,"data-testid":"save-btn",children:"Save"})})]})]}),(0,t.jsx)(x.Z,{isOpen:b,onClose:v,onConfirm:()=>I(s),title:"Change role to Approver",testId:"downgrade-to-approver-confirmation-modal",continueButtonText:"Yes",message:(0,t.jsx)(n.xvT,{children:"Switching to an approver role will remove all assigned systems. Do you wish to proceed?"})})]})}})},A=a(61038),T=a(55484),P=a(25980),N=a(40324),I=a(96006),O=a(7426);let{useGetEmailInviteStatusQuery:z}=a(78780).u.injectEndpoints({endpoints:e=>({getEmailInviteStatus:e.query({query:()=>({url:"/messaging/email-invite/status"}),providesTags:()=>["Email Invite Status"]})})});var q=a(76174),U=a(91317),D=a(16125),Z=a(52253),W=a(36835),K=a(31883);let L=T.Ry().shape({password:I.a.label("Password"),passwordConfirmation:T.Z_().required().oneOf([T.iH("password")],"Passwords must match").label("Password confirmation")}),V={password:"",passwordConfirmation:""},B=e=>{let s=(0,n.qY0)(),a=(0,n.pmc)(),[t]=(0,y.ls)(),l=(0,h.useRouter)(),i=(0,D.I0)(),d=(0,r.C)(W.dy),o=async n=>{let r=await t({id:e,new_password:n.password});if((0,K.D4)(r))a((0,w.Vo)((0,m.e$)(r.error)));else if(a((0,w.t5)("Successfully reset user's password. Please inform the user of their new password.")),s.onClose(),(null==d?void 0:d.id)===e){try{localStorage.removeItem(Z.xH)}catch(e){}i((0,W.kS)()),l.push(Z._e)}};return{...s,handleResetPassword:o}};var Y=e=>{let{id:s}=e,{handleResetPassword:a,isOpen:l,onClose:i,onOpen:r}=B(s);return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.wpx,{onClick:r,"data-testid":"reset-password-btn",children:"Reset password"}),(0,t.jsxs)(n.u_l,{isCentered:!0,isOpen:l,onClose:i,children:[(0,t.jsx)(n.ZAr,{}),(0,t.jsx)(n.hzk,{children:(0,t.jsx)(c.J9,{initialValues:V,validationSchema:L,onSubmit:a,children:e=>{let{isSubmitting:s,dirty:a,isValid:l}=e;return(0,t.jsxs)(c.l0,{children:[(0,t.jsx)(n.xBx,{children:"Reset Password"}),(0,t.jsx)(n.olH,{}),(0,t.jsx)(n.fef,{children:(0,t.jsxs)(n.Kqy,{direction:"column",spacing:4,children:[(0,t.jsx)(n.xvT,{mb:2,children:"Choose a new password for this user."}),(0,t.jsx)(N.j0,{name:"password",label:"Password",placeholder:"********",type:"password",tooltip:"Password must contain at least 8 characters, 1 number, 1 capital letter, 1 lowercase letter, and at least 1 symbol.",autoComplete:"new-password"}),(0,t.jsx)(N.j0,{name:"passwordConfirmation",label:"Confirm Password",placeholder:"********",type:"password",tooltip:"Must match above password.",autoComplete:"confirm-password"})]})}),(0,t.jsx)(n.mzw,{children:(0,t.jsxs)("div",{className:"w-full gap-2",children:[(0,t.jsx)(n.wpx,{onClick:i,className:"w-1/2",children:"Cancel"}),(0,t.jsx)(n.wpx,{type:"primary",disabled:!a||!l,loading:s,htmlType:"submit",className:"w-1/2","data-testid":"submit-btn",children:"Change Password"})]})})]})}})})]})]})};let F=e=>{let s=(0,n.qY0)(),a=(0,n.pmc)(),[t,l]=(0,u.useState)(""),[i,r]=(0,u.useState)(""),[d,{isLoading:o}]=(0,y.ev)(),c=(0,h.useRouter)(),m=(0,D.I0)(),p=!!(e&&i&&t),x=async()=>{p&&d({id:e,old_password:t,new_password:i}).unwrap().then(()=>{a((0,w.t5)("Password updated"));try{localStorage.removeItem(Z.xH)}catch(e){}m((0,W.kS)()),s.onClose(),c.push(Z._e)})};return{...s,changePasswordValidation:p,handleChange:e=>{"oldPassword"===e.target.name?l(e.target.value):r(e.target.value)},handleChangePassword:x,isLoading:o,newPasswordValue:i,oldPasswordValue:t}};var H=e=>{let{id:s}=e,{changePasswordValidation:a,handleChange:l,handleChangePassword:i,isLoading:r,isOpen:d,newPasswordValue:o,oldPasswordValue:c,onClose:h,onOpen:u}=F(s);return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.wpx,{onClick:u,"data-testid":"update-password-btn",children:"Update password"}),(0,t.jsxs)(n.u_l,{isCentered:!0,isOpen:d,onClose:h,children:[(0,t.jsx)(n.ZAr,{}),(0,t.jsxs)(n.hzk,{children:[(0,t.jsx)(n.xBx,{children:"Update Password"}),(0,t.jsx)(n.olH,{}),(0,t.jsx)(n.fef,{pb:6,children:(0,t.jsxs)(n.Kqy,{direction:"column",spacing:"15px",children:[(0,t.jsx)(n.NIc,{children:(0,t.jsx)(n.IIB,{isRequired:!0,name:"oldPassword",onChange:l,placeholder:"Old Password",type:"password",value:c,"data-testid":"input-oldPassword"})}),(0,t.jsx)(n.NIc,{children:(0,t.jsx)(n.IIB,{isRequired:!0,name:"newPassword",onChange:l,placeholder:"New Password",type:"password",value:o,"data-testid":"input-newPassword"})})]})}),(0,t.jsxs)(n.mzw,{children:[(0,t.jsx)(n.wpx,{onClick:h,className:"mr-2 w-1/2",children:"Cancel"}),(0,t.jsx)(n.wpx,{type:"primary",disabled:!a,loading:r,onClick:i,htmlType:"submit",className:"mr-3 w-1/2","data-testid":"submit-btn",children:"Change Password"})]})]})]})]})},$=()=>{var e;let s=(0,r.C)(y.Ux),a=(0,r.C)(U.dy),l=!!a&&a.id===s,{data:i}=(0,y.gU)(null!=s?s:"",{skip:!s});return(null==i?void 0:null===(e=i.roles)||void 0===e?void 0:e.includes(d.A7.EXTERNAL_RESPONDENT))?null:(0,t.jsx)(n.xuv,{children:s?(0,t.jsxs)(n.Ugi,{children:[l?(0,t.jsx)(H,{id:s}):null,(0,t.jsx)(o.ZP,{scopes:[d.Sh.USER_PASSWORD_RESET],children:(0,t.jsx)(Y,{id:s})})]}):null})};let M=(e,s,a,t)=>!e||e&&!s||e&&s&&!0===a&&!!t,X=(e,s,a)=>!!(e&&s&&a),G=(e,s,a,t,n,l)=>!!e&&!s&&M(a,t,n,l),J=(e,s,a,t)=>M(e,s,a,t),Q={username:"",first_name:"",email_address:"",last_name:"",password:"",password_login_enabled:!1},ee=(e,s,a,t,n)=>T.Ry().shape({username:T.Z_().required().label("Username"),email_address:T.Z_().email().required().label("Email address"),first_name:T.Z_().label("First name"),last_name:T.Z_().label("Last name"),password:T.Z_().when(["password_login_enabled"],{is:l=>G(e,s,a,t,n,l),then:()=>I.a.label("Password"),otherwise:()=>T.Z_().optional().label("Password")}),password_login_enabled:T.O7().label("Allow password login")});var es=e=>{let{onSubmit:s,initialValues:a,canEditNames:l}=e,i=(0,h.useRouter)(),d=(0,n.pmc)(),o=(0,r.T)(),u=(0,n.qY0)(),{data:p}=z(),{data:x}=(0,q.qv)();(0,O.tB)({api_set:!1});let g=(0,r.C)(y.ZC),b=(0,r.C)(O.iR),{plus:v}=(0,P.hz)(),_=(null==p?void 0:p.enabled)||!1,C=(null==b?void 0:b.allow_username_password_login)||!1,S=!g,k=!S&&!l,E=x&&x.length>0||!1,R=X(v,E,C),T=null!=a?a:Q;g&&"password_login_enabled"in g&&(T={...T,password_login_enabled:!!g.password_login_enabled});let I=ee(S,_,v,E,C),U=async e=>{let a=G(S,_,v,E,C,e.password_login_enabled),t={username:e.username,email_address:e.email_address,first_name:e.first_name,last_name:e.last_name};R&&(t.password_login_enabled=e.password_login_enabled),a&&e.password&&(t.password=e.password);let n=await s(t);if((0,m.D4)(n)){d((0,w.Vo)((0,m.e$)(n.error)));return}d((0,w.t5)("".concat(S?"User created. By default, new users are set to the Viewer role. To change the role, please go to the Permissions tab.":"User updated."))),(null==n?void 0:n.data)&&o((0,y.Vv)(n.data.id))};return(0,t.jsx)(c.J9,{onSubmit:U,initialValues:T,validationSchema:I,"data-testid":"user-form",children:e=>{let{dirty:s,isSubmitting:a,isValid:l,values:r}=e;return(0,t.jsx)(c.l0,{children:(0,t.jsxs)(n.Kqy,{maxW:["xs","xs","100%"],width:"100%",spacing:7,children:[(0,t.jsxs)(n.Kqy,{spacing:6,maxWidth:"55%",children:[(0,t.jsxs)(n.kCb,{children:[(0,t.jsxs)(n.xvT,{display:"flex",alignItems:"center",fontSize:"sm",fontWeight:"semibold",children:["Profile"," ",(null==g?void 0:g.disabled)&&(0,t.jsx)(n.j8w,{color:"success",className:"ml-2","data-testid":"invite-sent-badge",children:"Invite sent"})]}),(0,t.jsx)(n.xuv,{marginLeft:"auto",children:(0,t.jsxs)(n.Ugi,{children:[J(v,E,C||!1,r.password_login_enabled)&&(0,t.jsx)($,{"data-testid":"password-management"}),S?null:(0,t.jsxs)(n.xuv,{children:[(0,t.jsx)(n.wpx,{"aria-label":"delete",icon:(0,t.jsx)(f.l,{}),onClick:u.onOpen,"data-testid":"delete-user-btn"}),(0,t.jsx)(A.Z,{user:g,...u})]})]})})]}),(0,t.jsx)(N.j0,{name:"username",label:"Username",variant:"block",placeholder:"Enter new username",disabled:!S,isRequired:!0,"data-testid":"input-username"}),(0,t.jsx)(N.j0,{name:"email_address",label:"Email address",variant:"block",placeholder:"Enter email of user",isRequired:!0,"data-testid":"input-email-address"}),(0,t.jsx)(N.j0,{name:"first_name",label:"First name",variant:"block",placeholder:"Enter first name of user",disabled:k,"data-testid":"input-first-name"}),(0,t.jsx)(N.j0,{name:"last_name",label:"Last name",variant:"block",placeholder:"Enter last name of user",disabled:k,"data-testid":"input-last-name"}),R&&(0,t.jsx)(N.w8,{name:"password_login_enabled",label:"Allow password login",tooltip:"When enabled, user can log in with username and password. When disabled, user must use SSO.",variant:"stacked",isDisabled:!S,"data-testid":"toggle-allow-password-login",size:"default"}),G(S,_,v,E,C,r.password_login_enabled)&&(0,t.jsx)(N.j0,{name:"password",label:"Password",variant:"block",placeholder:"********",type:"password",tooltip:"Password must contain at least 8 characters, 1 number, 1 capital letter, 1 lowercase letter, and at least 1 symbol.",isRequired:!0,"data-testid":"input-password"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(n.wpx,{onClick:()=>i.push(j.e3),className:"mr-3","data-testid":"cancel-btn",children:"Cancel"}),(0,t.jsx)(n.wpx,{htmlType:"submit",type:"primary",disabled:!s||!l,loading:a,"data-testid":"save-user-btn",children:"Save"})]})]})})}})},ea=e=>{let{onSubmit:s,initialValues:a,...l}=e,c=(0,r.C)(y.Ux);(0,y.Fk)(c,{skip:!c});let h=(0,o.Tg)([d.Sh.USER_PERMISSION_UPDATE]),u=!c||!h,m=[{label:"Profile",key:"profile",children:(0,t.jsx)(es,{onSubmit:s,initialValues:a,...l})},{label:"Permissions",key:"permissions",children:(0,t.jsxs)(n.kCb,{gap:"97px",children:[(0,t.jsx)(n.xuv,{w:{base:"100%",md:"50%",xl:"50%"},children:(0,t.jsx)(R,{})}),(0,t.jsx)(n.xuv,{position:"absolute",top:"96px",right:6,height:"calc(100% + 100px)",overflowY:"scroll",padding:6,w:"35%",borderLeftWidth:"1px",children:(0,t.jsx)(i,{})})]}),disabled:u,forceRender:!u}];return(0,t.jsx)(n.A5g,{items:m})}},31883:function(e,s,a){a.d(s,{Bw:function(){return t.Bw},D4:function(){return t.D4}});var t=a(19043)}}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[5258],{97181:function(e,a,t){t.d(a,{d:function(){return o}});var i=t(24246),s=t(96306),n=t(34090),r=t(27378),l=t(46238),d=t(40324);let o=e=>{let{name:a,label:t,labelProps:o,tooltip:c,isRequired:u,layout:m="inline",helperText:x,...p}=e,[h,y,{setValue:v}]=(0,n.U$)(a),j=!!(y.touched&&y.error),[g,b]=(0,r.useState)("");h.value||"tags"!==p.mode&&"multiple"!==p.mode||(h.value=[]),"tags"===p.mode&&"string"==typeof h.value&&(h.value=[h.value]);let f="tags"===p.mode?(e,a)=>e?e.value!==g||h.value.includes(g)?p.optionRender?p.optionRender(e,a):e.label:'Create "'.concat(g,'"'):void 0:p.optionRender||void 0,_=e=>{b(e),p.onSearch&&p.onSearch(e)},k=(e,a)=>{v(e),p.onChange&&p.onChange(e,a)};return"inline"===m?(0,i.jsx)(s.NIc,{isInvalid:j,isRequired:u,children:(0,i.jsxs)(s.rjZ,{templateColumns:t?"1fr 3fr":"1fr",children:[t?(0,i.jsx)(d.__,{htmlFor:p.id||a,...o,children:t}):null,(0,i.jsxs)(s.jqI,{align:"center",children:[(0,i.jsxs)(s.jqI,{vertical:!0,flex:1,className:"mr-2",children:[(0,i.jsx)(s.WPr,{...h,id:p.id||a,"data-testid":"controlled-select-".concat(h.name),...p,optionRender:f,onSearch:"tags"===p.mode?_:void 0,onChange:k,value:h.value||void 0,status:j?"error":void 0}),x&&(0,i.jsx)(s.Q6r,{children:x}),(0,i.jsx)(d.Bc,{isInvalid:j,message:y.error,fieldName:h.name})]}),(0,i.jsx)(l.b,{label:c,className:j?"mt-2 self-start":void 0})]})]})}):(0,i.jsx)(s.NIc,{isInvalid:j,isRequired:u,children:(0,i.jsxs)(s.gCW,{alignItems:"start",children:[(0,i.jsxs)(s.jqI,{align:"center",children:[t?(0,i.jsx)(d.__,{htmlFor:p.id||a,fontSize:"xs",my:0,mr:1,...o,children:t}):null,(0,i.jsx)(l.b,{label:c})]}),(0,i.jsx)(s.WPr,{...h,id:p.id||a,"data-testid":"controlled-select-".concat(h.name),...p,optionRender:f,onSearch:"tags"===p.mode?_:void 0,onChange:k,value:h.value||void 0,status:j?"error":void 0}),x&&(0,i.jsx)(s.Q6r,{style:{marginTop:0},children:x}),(0,i.jsx)(d.Bc,{isInvalid:j,message:y.error,fieldName:h.name})]})})}},35258:function(e,a,t){t.d(a,{Z:function(){return W}});var i=t(24246),s=t(96306),n=t(27378),r=t(84720),l=t(52368),d=t(812),o=t(46628),c=t(65450),u=t(31883),m=t(34090),x=t(45938),p=t(95346),h=t(55484),y=t(97181),v=t(40324),j=t(54682);let g=h.Ry().shape({data_categories:h.IX(h.Z_()).min(1,"Must assign at least one data category").label("Data categories"),data_use:h.Z_().required().label("Data use"),data_subjects:h.IX(h.Z_()).min(1,"Must assign at least one data subject").label("Data subjects")}),b={data_categories:[],data_subjects:[],data_use:"",dataset_references:[],customFieldValues:{},id:""},f=e=>{var a;let{customFieldValues:t,...i}=e;return{...i,name:null!==(a=e.name)&&void 0!==a?a:""}},_=e=>{let{allDataUses:a,allDataCategories:t,allDataSubjects:n,allDatasets:r,privacyDeclarationId:l,includeCustomFields:d}=e,o=r?r.map(e=>{var a;return{label:null!==(a=e.name)&&void 0!==a?a:e.fides_key,value:e.fides_key}}):[];return(0,i.jsxs)(s.Kqy,{spacing:4,children:[(0,i.jsx)(y.d,{id:"data_use",label:"Data use",name:"data_use",options:a.map(e=>({value:e.fides_key,label:e.fides_key})),tooltip:"What is the system using the data for. For example, is it for third party advertising or perhaps simply providing system operations.",layout:"stacked",disabled:!!l}),(0,i.jsx)(v.j0,{id:"name",label:"Processing Activity",name:"name",variant:"stacked",tooltip:"The personal data processing activity or activities associated with this data use.",disabled:!!l}),(0,i.jsx)(y.d,{name:"data_categories",label:"Data categories",options:t.map(e=>({value:e.fides_key,label:e.fides_key})),tooltip:"What type of data is your system processing? This could be various types of user or system data.",mode:"multiple",layout:"stacked",disabled:!0}),(0,i.jsx)(y.d,{name:"data_subjects",label:"Data subjects",options:n.map(e=>({value:e.fides_key,label:e.fides_key})),tooltip:"Whose data are you processing? This could be customers, employees or any other type of user in your system.",mode:"multiple",layout:"stacked",disabled:!0}),r?(0,i.jsx)(y.d,{name:"dataset_references",label:"Dataset references",options:o,tooltip:"Referenced Dataset fides keys used by the system.",mode:"multiple",layout:"stacked"}):null,d?(0,i.jsx)(p.uc,{resourceType:j.P6.PRIVACY_DECLARATION,resourceFidesKey:l}):null]})},k=(e,a)=>e?{...e,customFieldValues:a||{}}:b,S=e=>{let{onSubmit:a,initialValues:t,allDataUses:r,privacyDeclarationId:l}=e,{customFieldValues:d,upsertCustomFields:o}=(0,p.mZ)({resourceType:j.P6.PRIVACY_DECLARATION,resourceFidesKey:l}),c=(0,n.useMemo)(()=>k(t,d),[t,d]),[u,m]=(0,n.useState)(!1),x=(0,n.useMemo)(()=>{let e=r.filter(e=>e.fides_key===c.data_use)[0];if(e)return c.name?"".concat(e.name," - ").concat(c.name):e.name},[r,c]);return{handleSubmit:async(e,t)=>{let{customFieldValues:i}=e,s=f(e),n=await a(s,t);if(n){let a=n.filter(a=>a.data_use===e.data_use&&(!a.name||a.name===e.name));a.length>0&&await o({customFieldValues:i,fides_key:a[0].id}),t.resetForm({values:e}),m(!0)}},renderHeader:e=>{let{dirty:a,boxProps:t,hideSaved:n}=e;return(0,i.jsxs)(s.xuv,{display:"flex",alignItems:"center",justifyContent:"space-between",...t,children:[x?(0,i.jsx)(s.X6q,{as:"h4",size:"xs",fontWeight:"medium",mr:4,children:x}):null,!n&&u&&!a&&c.data_use?(0,i.jsxs)(s.xvT,{fontSize:"sm","data-testid":"saved-indicator",children:[(0,i.jsx)(s.StI,{})," Saved"]}):null]})},initialValues:c}},D=e=>{let{onSubmit:a,initialValues:t,onDelete:n,...r}=e,{handleSubmit:l,renderHeader:d,initialValues:o}=S({onSubmit:a,initialValues:t,allDataUses:r.allDataUses,privacyDeclarationId:null==t?void 0:t.id});return(0,i.jsx)(m.J9,{enableReinitialize:!0,initialValues:o,onSubmit:l,validationSchema:g,children:e=>{let{dirty:a}=e;return(0,i.jsxs)(m.l0,{children:[(0,i.jsx)(x.Gt,{id:"PrivacyDeclaration",name:"New Privacy Declaration"}),(0,i.jsxs)(s.Kqy,{spacing:4,children:[(0,i.jsx)(s.xuv,{"data-testid":"header",children:d({dirty:a})}),(0,i.jsx)(_,{onDelete:n,...r})]})]})}})},C=e=>{let{privacyDeclaration:a,onEdit:t,onDelete:n,includeCustomFields:r,...l}=e,{initialValues:d,renderHeader:o,handleSubmit:c}=S({initialValues:a,onSubmit:e=>t(a,e),privacyDeclarationId:a.id,...l});return(0,i.jsx)(s.Qdk,{children:e=>{let{isExpanded:t}=e;return(0,i.jsx)(m.J9,{enableReinitialize:!0,initialValues:d,onSubmit:c,validationSchema:g,children:e=>{let{dirty:d}=e;return(0,i.jsxs)(m.l0,{"data-testid":"".concat(a.data_use,"-form"),children:[(0,i.jsx)(x.Gt,{id:"".concat(a.id,"-form"),name:a.id}),(0,i.jsxs)(s.KFZ,{py:4,borderBottomWidth:t?"0px":"1px",backgroundColor:t?"gray.50":void 0,"data-testid":"accordion-header-".concat(a.data_use),children:[o({dirty:d,boxProps:{flex:"1",textAlign:"left"},hideSaved:!t}),(0,i.jsx)(s.XEm,{})]}),(0,i.jsx)(s.Hk3,{backgroundColor:"gray.50",pt:0,children:(0,i.jsx)(s.Kqy,{spacing:4,children:(0,i.jsx)(_,{privacyDeclarationId:a.id,onDelete:n,includeCustomFields:r,...l})})})]})}})}})};var w=e=>{let{privacyDeclarations:a,...t}=e;return(0,i.jsx)(s.UQy,{allowToggle:!0,border:"transparent","data-testid":"privacy-declaration-accordion",children:a.map(e=>(0,i.jsx)(C,{privacyDeclaration:e,...t},e.id))})},I=e=>{let{system:a,includeCustomFields:t,onSave:r,...l}=e,m=(0,s.pmc)(),[x]=(0,c.qQ)(),[p,h]=(0,n.useState)(!1),[y,v]=(0,n.useState)(void 0),j=(0,n.useMemo)(()=>y?a.privacy_declarations.filter(e=>e.id!==y.id):a.privacy_declarations,[y,a]),g=e=>j.filter(a=>a.data_use===e.data_use&&a.name===e.name).length>0&&(m((0,o.Vo)("A declaration already exists with that data use in this system. Please supply a different data use.")),!0),b=async(e,t)=>{let i=e.map(e=>{var a;return{...e,name:null!==(a=e.name)&&void 0!==a?a:""}}),s={...a,privacy_declarations:i};return(e=>{if((0,u.D4)(e)){let a=(0,d.e$)(e.error,"An unexpected error occurred while updating the system. Please try again.");m((0,o.Vo)(a));return}return m.closeAll(),m((0,o.t5)(t?"Data use deleted":"Data use saved")),r&&r(e.data),e.data.privacy_declarations})(await x(s))},f=async(e,t)=>{if(!(t.id!==e.id&&g(t)))return b(a.privacy_declarations.map(a=>a.id===e.id?t:a))},_=async e=>{if(g(e))return;m.closeAll();let a=[...j,e],t=await b(a);return t&&v(t.filter(a=>(!a.name||a.name===e.name)&&a.data_use===e.data_use)[0]),t},k=async e=>b(a.privacy_declarations.filter(a=>a.id!==e.id),!0),S=async e=>{let a=await k(e);return a&&(h(!1),v(void 0)),a};return(0,n.useEffect)(()=>{h(!1)},[a.fides_key]),(0,i.jsxs)(s.Kqy,{spacing:3,children:[(0,i.jsx)(w,{privacyDeclarations:j,onEdit:f,onDelete:k,includeCustomFields:t,...l}),p?(0,i.jsx)(s.xuv,{backgroundColor:"gray.50",p:4,"data-testid":"new-declaration-form",children:(0,i.jsx)(D,{initialValues:y,onSubmit:_,onDelete:S,includeCustomFields:t,...l})}):null,0===a.privacy_declarations.length?(0,i.jsx)(s.xvT,{fontSize:"sm",lineHeight:5,fontWeight:"medium",pl:2,children:"No data uses"}):null]})},T=t(19043);let V=e=>{let[a]=(0,c.dB)(),t=(0,s.pmc)();return{handleUpsertSystem:async(i,s)=>{let n=[{...e,name:i.name,description:i.description}],r=await a(n);(0,T.D4)(r)?t((0,o.Vo)((0,d.e$)(r.error))):(t((0,o.t5)("Successfully saved system info")),s.resetForm({values:i}))},validationSchema:h.Ry().shape({name:h.Z_().required().label("Name"),description:h.Z_().required().label("Description")})}},R={name:"",description:""};var F=e=>{let{system:a}=e,t="/systems/configure/".concat(a.fides_key),{handleUpsertSystem:n,validationSchema:r}=V(a);return(0,i.jsxs)(s.xuv,{children:[(0,i.jsxs)(s.kCb,{alignItems:"center",children:[(0,i.jsx)(s.xvT,{color:"gray.600",size:"md",lineHeight:6,fontWeight:"semibold",marginBottom:2,children:"System details"}),(0,i.jsx)(s.LZC,{}),(0,i.jsxs)(s._pl,{color:"complimentary.500",href:t,children:["View more",(0,i.jsx)(s.h0n,{ml:2})]})]}),(0,i.jsx)(s.xuv,{width:"100%",padding:4,borderTop:"1px solid",borderColor:"gray.200",children:(0,i.jsx)(m.J9,{enableReinitialize:!0,initialValues:null!=a?a:R,validationSchema:r,onSubmit:n,children:()=>(0,i.jsxs)(m.l0,{children:[(0,i.jsx)(x.Gt,{id:"SystemInfoDrawer",name:"System Info"}),(0,i.jsx)(s.xuv,{marginTop:3,children:(0,i.jsx)(v.j0,{label:"System name",name:"name",variant:"stacked",disabled:!0})}),(0,i.jsx)(s.xuv,{marginTop:3,children:(0,i.jsx)(v.Ks,{label:"System description",name:"description",variant:"stacked",disabled:!0})})]})})})]})},W=e=>{var a;let{selectedSystemId:t,resetSelectedSystemId:d}=e,o=(0,n.useMemo)(()=>!!t,[t]),{isLoading:u,...m}=(0,l.f)({includeDatasets:!1,includeDisabled:!1}),{data:x}=(0,c.rn)(t,{skip:!t});return(0,i.jsx)(s.xuv,{position:"absolute",pointerEvents:"none",top:0,left:0,right:0,bottom:0,overflow:"hidden",children:(0,i.jsx)(s.Mi4,{transition:{enter:{ease:"easeInOut",duration:.5},exit:{ease:"easeInOut",duration:.5}},direction:"right",in:o,unmountOnExit:!0,style:{zIndex:11,pointerEvents:"none",position:"absolute"},children:(0,i.jsxs)(s.xuv,{position:"absolute",right:"0px",height:"100%",width:"100%",maxWidth:"480px",pointerEvents:"auto",borderWidth:0,boxShadow:"0px 20px 25px -5px rgba(0, 0, 0, 0.1), 0px 10px 10px -5px rgba(0, 0, 0, 0.04)",display:t?"unset":"none",backgroundColor:"white","data-testid":"datamap-drawer",children:[(0,i.jsx)(s.xuv,{id:"drawer-header",borderBottomWidth:1,paddingX:6,paddingY:3,children:(0,i.jsxs)(s.kCb,{children:[(0,i.jsx)(s.kCb,{justifyContent:"space-between",alignItems:"center",height:"40px",children:(0,i.jsx)(s.xvT,{fontWeight:"semibold",fontSize:"lg",lineHeight:"7",color:"gray.900",children:null!==(a=null==x?void 0:x.name)&&void 0!==a?a:"System Information"})}),(0,i.jsx)(s.LZC,{}),(0,i.jsx)(s.kCb,{alignItems:"center",children:(0,i.jsx)(s.wpx,{icon:(0,i.jsx)(s.Two,{}),"aria-label":"Close error message",type:"text",onClick:d,"data-testid":"datamap-drawer-close"})})]})}),(0,i.jsx)(s.xuv,{id:"drawer-body",height:"calc(100% - 46px)",overflowY:"auto",padding:6,style:{scrollbarGutter:"stable"},children:x?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(F,{system:x}),(0,i.jsx)(s.xvT,{size:"md",color:"gray.600",lineHeight:6,fontWeight:"semibold",mt:"10px",mb:2,children:"Data uses"}),(0,i.jsx)(s.xuv,{borderTop:"1px solid",borderColor:"gray.200",children:(0,i.jsx)(s.xuv,{pb:3,children:(0,i.jsx)(I,{system:x,...m})})}),(0,i.jsx)(s.xvT,{size:"md",color:"gray.600",lineHeight:6,fontWeight:"semibold",mt:"10px",mb:2,paddingBottom:2,children:"Data flow"}),(0,i.jsx)(r.q,{system:x})]}):null})]})})})}}}]);
|
|
1
|
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[5258],{97181:function(e,a,t){t.d(a,{d:function(){return o}});var i=t(24246),s=t(96306),n=t(34090),r=t(27378),l=t(46238),d=t(40324);let o=e=>{let{name:a,label:t,labelProps:o,tooltip:c,isRequired:u,layout:m="inline",helperText:x,...p}=e,[h,y,{setValue:v}]=(0,n.U$)(a),j=!!(y.touched&&y.error),[g,b]=(0,r.useState)("");h.value||"tags"!==p.mode&&"multiple"!==p.mode||(h.value=[]),"tags"===p.mode&&"string"==typeof h.value&&(h.value=[h.value]);let f="tags"===p.mode?(e,a)=>e?e.value!==g||h.value.includes(g)?p.optionRender?p.optionRender(e,a):e.label:'Create "'.concat(g,'"'):void 0:p.optionRender||void 0,_=e=>{b(e),p.onSearch&&p.onSearch(e)},k=(e,a)=>{v(e),p.onChange&&p.onChange(e,a)};return"inline"===m?(0,i.jsx)(s.NIc,{isInvalid:j,isRequired:u,children:(0,i.jsxs)(s.rjZ,{templateColumns:t?"1fr 3fr":"1fr",children:[t?(0,i.jsx)(d.__,{htmlFor:p.id||a,...o,children:t}):null,(0,i.jsxs)(s.jqI,{align:"center",children:[(0,i.jsxs)(s.jqI,{vertical:!0,flex:1,className:"mr-2",children:[(0,i.jsx)(s.WPr,{...h,id:p.id||a,"data-testid":"controlled-select-".concat(h.name),...p,optionRender:f,onSearch:"tags"===p.mode?_:void 0,onChange:k,value:h.value||void 0,status:j?"error":void 0}),x&&(0,i.jsx)(s.Q6r,{children:x}),(0,i.jsx)(d.Bc,{isInvalid:j,message:y.error,fieldName:h.name})]}),(0,i.jsx)(l.b,{label:c,className:j?"mt-2 self-start":void 0})]})]})}):(0,i.jsx)(s.NIc,{isInvalid:j,isRequired:u,children:(0,i.jsxs)(s.gCW,{alignItems:"start",children:[(0,i.jsxs)(s.jqI,{align:"center",children:[t?(0,i.jsx)(d.__,{htmlFor:p.id||a,fontSize:"xs",my:0,mr:1,...o,children:t}):null,(0,i.jsx)(l.b,{label:c})]}),(0,i.jsx)(s.WPr,{...h,id:p.id||a,"data-testid":"controlled-select-".concat(h.name),...p,optionRender:f,onSearch:"tags"===p.mode?_:void 0,onChange:k,value:h.value||void 0,status:j?"error":void 0}),x&&(0,i.jsx)(s.Q6r,{style:{marginTop:0},children:x}),(0,i.jsx)(d.Bc,{isInvalid:j,message:y.error,fieldName:h.name})]})})}},35258:function(e,a,t){t.d(a,{Z:function(){return W}});var i=t(24246),s=t(96306),n=t(27378),r=t(84720),l=t(52368),d=t(812),o=t(46628),c=t(65450),u=t(31883),m=t(34090),x=t(45938),p=t(95346),h=t(55484),y=t(97181),v=t(40324),j=t(54682);let g=h.Ry().shape({data_categories:h.IX(h.Z_()).min(1,"Must assign at least one data category").label("Data categories"),data_use:h.Z_().required().label("Data use"),data_subjects:h.IX(h.Z_()).min(1,"Must assign at least one data subject").label("Data subjects")}),b={data_categories:[],data_subjects:[],data_use:"",dataset_references:[],customFieldValues:{},id:""},f=e=>{var a;let{customFieldValues:t,...i}=e;return{...i,name:null!==(a=e.name)&&void 0!==a?a:""}},_=e=>{let{allDataUses:a,allDataCategories:t,allDataSubjects:n,allDatasets:r,privacyDeclarationId:l,includeCustomFields:d}=e,o=r?r.map(e=>{var a;return{label:null!==(a=e.name)&&void 0!==a?a:e.fides_key,value:e.fides_key}}):[];return(0,i.jsxs)(s.Kqy,{spacing:4,children:[(0,i.jsx)(y.d,{id:"data_use",label:"Data use",name:"data_use",options:a.map(e=>({value:e.fides_key,label:e.fides_key})),tooltip:"What is the system using the data for. For example, is it for third party advertising or perhaps simply providing system operations.",layout:"stacked",disabled:!!l}),(0,i.jsx)(v.j0,{id:"name",label:"Processing Activity",name:"name",variant:"stacked",tooltip:"The personal data processing activity or activities associated with this data use.",disabled:!!l}),(0,i.jsx)(y.d,{name:"data_categories",label:"Data categories",options:t.map(e=>({value:e.fides_key,label:e.fides_key})),tooltip:"What type of data is your system processing? This could be various types of user or system data.",mode:"multiple",layout:"stacked",disabled:!0}),(0,i.jsx)(y.d,{name:"data_subjects",label:"Data subjects",options:n.map(e=>({value:e.fides_key,label:e.fides_key})),tooltip:"Whose data are you processing? This could be customers, employees or any other type of user in your system.",mode:"multiple",layout:"stacked",disabled:!0}),r?(0,i.jsx)(y.d,{name:"dataset_references",label:"Dataset references",options:o,tooltip:"Referenced Dataset fides keys used by the system.",mode:"multiple",layout:"stacked"}):null,d?(0,i.jsx)(p.uc,{resourceType:j.P6.PRIVACY_DECLARATION,resourceFidesKey:l}):null]})},k=(e,a)=>e?{...e,customFieldValues:a||{}}:b,S=e=>{let{onSubmit:a,initialValues:t,allDataUses:r,privacyDeclarationId:l}=e,{customFieldValues:d,upsertCustomFields:o}=(0,p.mZ)({resourceType:j.P6.PRIVACY_DECLARATION,resourceFidesKey:l}),c=(0,n.useMemo)(()=>k(t,d),[t,d]),[u,m]=(0,n.useState)(!1),x=(0,n.useMemo)(()=>{let e=r.filter(e=>e.fides_key===c.data_use)[0];if(e)return c.name?"".concat(e.name," - ").concat(c.name):e.name},[r,c]);return{handleSubmit:async(e,t)=>{let{customFieldValues:i}=e,s=f(e),n=await a(s,t);if(n){let a=n.filter(a=>a.data_use===e.data_use&&(!a.name||a.name===e.name));a.length>0&&await o({customFieldValues:i,fides_key:a[0].id}),t.resetForm({values:e}),m(!0)}},renderHeader:e=>{let{dirty:a,boxProps:t,hideSaved:n}=e;return(0,i.jsxs)(s.xuv,{display:"flex",alignItems:"center",justifyContent:"space-between",...t,children:[x?(0,i.jsx)(s.X6q,{as:"h4",size:"xs",fontWeight:"medium",mr:4,children:x}):null,!n&&u&&!a&&c.data_use?(0,i.jsxs)(s.xvT,{fontSize:"sm","data-testid":"saved-indicator",children:[(0,i.jsx)(s.StI,{})," Saved"]}):null]})},initialValues:c}},D=e=>{let{onSubmit:a,initialValues:t,onDelete:n,...r}=e,{handleSubmit:l,renderHeader:d,initialValues:o}=S({onSubmit:a,initialValues:t,allDataUses:r.allDataUses,privacyDeclarationId:null==t?void 0:t.id});return(0,i.jsx)(m.J9,{enableReinitialize:!0,initialValues:o,onSubmit:l,validationSchema:g,children:e=>{let{dirty:a}=e;return(0,i.jsxs)(m.l0,{children:[(0,i.jsx)(x.Gt,{id:"PrivacyDeclaration",name:"New Privacy Declaration"}),(0,i.jsxs)(s.Kqy,{spacing:4,children:[(0,i.jsx)(s.xuv,{"data-testid":"header",children:d({dirty:a})}),(0,i.jsx)(_,{onDelete:n,...r})]})]})}})},C=e=>{let{privacyDeclaration:a,onEdit:t,onDelete:n,includeCustomFields:r,...l}=e,{initialValues:d,renderHeader:o,handleSubmit:c}=S({initialValues:a,onSubmit:e=>t(a,e),privacyDeclarationId:a.id,...l});return(0,i.jsx)(s.Qdk,{children:e=>{let{isExpanded:t}=e;return(0,i.jsx)(m.J9,{enableReinitialize:!0,initialValues:d,onSubmit:c,validationSchema:g,children:e=>{let{dirty:d}=e;return(0,i.jsxs)(m.l0,{"data-testid":"".concat(a.data_use,"-form"),children:[(0,i.jsx)(x.Gt,{id:"".concat(a.id,"-form"),name:a.id}),(0,i.jsxs)(s.KFZ,{py:4,borderBottomWidth:t?"0px":"1px",backgroundColor:t?"gray.50":void 0,"data-testid":"accordion-header-".concat(a.data_use),children:[o({dirty:d,boxProps:{flex:"1",textAlign:"left"},hideSaved:!t}),(0,i.jsx)(s.XEm,{})]}),(0,i.jsx)(s.Hk3,{backgroundColor:"gray.50",pt:0,children:(0,i.jsx)(s.Kqy,{spacing:4,children:(0,i.jsx)(_,{privacyDeclarationId:a.id,onDelete:n,includeCustomFields:r,...l})})})]})}})}})};var w=e=>{let{privacyDeclarations:a,...t}=e;return(0,i.jsx)(s.UQy,{allowToggle:!0,border:"transparent","data-testid":"privacy-declaration-accordion",children:a.map(e=>(0,i.jsx)(C,{privacyDeclaration:e,...t},e.id))})},I=e=>{let{system:a,includeCustomFields:t,onSave:r,...l}=e,m=(0,s.pmc)(),[x]=(0,c.qQ)(),[p,h]=(0,n.useState)(!1),[y,v]=(0,n.useState)(void 0),j=(0,n.useMemo)(()=>y?a.privacy_declarations.filter(e=>e.id!==y.id):a.privacy_declarations,[y,a]),g=e=>j.filter(a=>a.data_use===e.data_use&&a.name===e.name).length>0&&(m((0,o.Vo)("A declaration already exists with that data use in this system. Please supply a different data use.")),!0),b=async(e,t)=>{let i=e.map(e=>{var a;return{...e,name:null!==(a=e.name)&&void 0!==a?a:""}}),s={...a,privacy_declarations:i};return(e=>{if((0,u.D4)(e)){let a=(0,d.e$)(e.error,"An unexpected error occurred while updating the system. Please try again.");m((0,o.Vo)(a));return}return m.closeAll(),m((0,o.t5)(t?"Data use deleted":"Data use saved")),r&&r(e.data),e.data.privacy_declarations})(await x(s))},f=async(e,t)=>{if(!(t.id!==e.id&&g(t)))return b(a.privacy_declarations.map(a=>a.id===e.id?t:a))},_=async e=>{if(g(e))return;m.closeAll();let a=[...j,e],t=await b(a);return t&&v(t.filter(a=>(!a.name||a.name===e.name)&&a.data_use===e.data_use)[0]),t},k=async e=>b(a.privacy_declarations.filter(a=>a.id!==e.id),!0),S=async e=>{let a=await k(e);return a&&(h(!1),v(void 0)),a};return(0,n.useEffect)(()=>{h(!1)},[a.fides_key]),(0,i.jsxs)(s.Kqy,{spacing:3,children:[(0,i.jsx)(w,{privacyDeclarations:j,onEdit:f,onDelete:k,includeCustomFields:t,...l}),p?(0,i.jsx)(s.xuv,{backgroundColor:"gray.50",p:4,"data-testid":"new-declaration-form",children:(0,i.jsx)(D,{initialValues:y,onSubmit:_,onDelete:S,includeCustomFields:t,...l})}):null,0===a.privacy_declarations.length?(0,i.jsx)(s.xvT,{fontSize:"sm",lineHeight:5,fontWeight:"medium",pl:2,children:"No data uses"}):null]})},T=t(19043);let V=e=>{let[a]=(0,c.dB)(),t=(0,s.pmc)();return{handleUpsertSystem:async(i,s)=>{let n=[{...e,name:i.name,description:i.description}],r=await a(n);(0,T.D4)(r)?t((0,o.Vo)((0,d.e$)(r.error))):(t((0,o.t5)("Successfully saved system info")),s.resetForm({values:i}))},validationSchema:h.Ry().shape({name:h.Z_().required().label("Name"),description:h.Z_().required().label("Description")})}},R={name:"",description:""};var F=e=>{let{system:a}=e,t="/systems/configure/".concat(a.fides_key),{handleUpsertSystem:n,validationSchema:r}=V(a);return(0,i.jsxs)(s.xuv,{children:[(0,i.jsxs)(s.kCb,{alignItems:"center",children:[(0,i.jsx)(s.xvT,{color:"gray.600",size:"md",lineHeight:6,fontWeight:"semibold",marginBottom:2,children:"System details"}),(0,i.jsx)(s.LZC,{}),(0,i.jsxs)(s._pl,{color:"complimentary.500",href:t,children:["View more",(0,i.jsx)(s.h0n,{ml:2})]})]}),(0,i.jsx)(s.xuv,{width:"100%",padding:4,borderTop:"1px solid",borderColor:"gray.200",children:(0,i.jsx)(m.J9,{enableReinitialize:!0,initialValues:null!=a?a:R,validationSchema:r,onSubmit:n,children:()=>(0,i.jsxs)(m.l0,{children:[(0,i.jsx)(x.Gt,{id:"SystemInfoDrawer",name:"System Info"}),(0,i.jsx)(s.xuv,{marginTop:3,children:(0,i.jsx)(v.j0,{label:"System name",name:"name",variant:"stacked",disabled:!0})}),(0,i.jsx)(s.xuv,{marginTop:3,children:(0,i.jsx)(v.Ks,{label:"System description",name:"description",variant:"stacked",disabled:!0})})]})})})]})},W=e=>{var a;let{selectedSystemId:t,resetSelectedSystemId:d}=e,o=(0,n.useMemo)(()=>!!t,[t]),{isLoading:u,...m}=(0,l.f)({includeDatasets:!1,includeDisabled:!1}),{data:x}=(0,c.rn)(t,{skip:!t});return(0,i.jsx)(s.xuv,{position:"absolute",pointerEvents:"none",top:0,left:0,right:0,bottom:0,overflow:"hidden",children:(0,i.jsx)(s.Mi4,{transition:{enter:{ease:"easeInOut",duration:.5},exit:{ease:"easeInOut",duration:.5}},direction:"right",in:o,unmountOnExit:!0,style:{zIndex:21,pointerEvents:"none",position:"absolute"},children:(0,i.jsxs)(s.xuv,{position:"absolute",right:"0px",height:"100%",width:"100%",maxWidth:"480px",pointerEvents:"auto",borderWidth:0,boxShadow:"0px 20px 25px -5px rgba(0, 0, 0, 0.1), 0px 10px 10px -5px rgba(0, 0, 0, 0.04)",display:t?"unset":"none",backgroundColor:"white","data-testid":"datamap-drawer",children:[(0,i.jsx)(s.xuv,{id:"drawer-header",borderBottomWidth:1,paddingX:6,paddingY:3,children:(0,i.jsxs)(s.kCb,{children:[(0,i.jsx)(s.kCb,{justifyContent:"space-between",alignItems:"center",height:"40px",children:(0,i.jsx)(s.xvT,{fontWeight:"semibold",fontSize:"lg",lineHeight:"7",color:"gray.900",children:null!==(a=null==x?void 0:x.name)&&void 0!==a?a:"System Information"})}),(0,i.jsx)(s.LZC,{}),(0,i.jsx)(s.kCb,{alignItems:"center",children:(0,i.jsx)(s.wpx,{icon:(0,i.jsx)(s.Two,{}),"aria-label":"Close error message",type:"text",onClick:d,"data-testid":"datamap-drawer-close"})})]})}),(0,i.jsx)(s.xuv,{id:"drawer-body",height:"calc(100% - 46px)",overflowY:"auto",padding:6,style:{scrollbarGutter:"stable"},children:x?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(F,{system:x}),(0,i.jsx)(s.xvT,{size:"md",color:"gray.600",lineHeight:6,fontWeight:"semibold",mt:"10px",mb:2,children:"Data uses"}),(0,i.jsx)(s.xuv,{borderTop:"1px solid",borderColor:"gray.200",children:(0,i.jsx)(s.xuv,{pb:3,children:(0,i.jsx)(I,{system:x,...m})})}),(0,i.jsx)(s.xvT,{size:"md",color:"gray.600",lineHeight:6,fontWeight:"semibold",mt:"10px",mb:2,paddingBottom:2,children:"Data flow"}),(0,i.jsx)(r.q,{system:x})]}):null})]})})})}}}]);
|