ethyca-fides 2.67.2b3__py2.py3-none-any.whl → 2.67.2rc0__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.67.2b3.dist-info → ethyca_fides-2.67.2rc0.dist-info}/METADATA +2 -2
- {ethyca_fides-2.67.2b3.dist-info → ethyca_fides-2.67.2rc0.dist-info}/RECORD +112 -114
- fides/_version.py +3 -3
- fides/api/db/crud.py +41 -24
- fides/api/graph/traversal.py +1 -1
- fides/api/main.py +1 -2
- fides/api/models/detection_discovery/core.py +20 -33
- fides/api/models/manual_task/manual_task.py +6 -3
- fides/api/models/privacy_request/privacy_request.py +0 -78
- fides/api/service/privacy_request/dsr_package/dsr_report_builder.py +19 -3
- fides/api/task/conditional_dependencies/evaluator.py +19 -12
- fides/api/task/conditional_dependencies/schemas.py +0 -51
- fides/api/task/create_request_tasks.py +3 -5
- fides/api/task/filter_results.py +1 -1
- fides/api/task/manual/manual_task_address.py +2 -4
- fides/api/task/manual/manual_task_graph_task.py +83 -87
- fides/api/task/manual/manual_task_utils.py +201 -84
- fides/api/tasks/storage.py +0 -3
- fides/api/util/aws_util.py +13 -1
- fides/api/util/storage_util.py +0 -19
- fides/config/__init__.py +0 -4
- fides/config/config_proxy.py +0 -7
- fides/config/utils.py +0 -1
- fides/ui-build/static/admin/404.html +1 -1
- fides/ui-build/static/admin/_next/static/{4v0_8k2Uo2QWG7nSdQ6A3 → Y7C7V1jdXK7rWXDIdtD13}/_buildManifest.js +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/integrations/{[id]-330475705adbd36f.js → [id]-e0a755c69081fffa.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/lib/fides-preview.js +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/api/task/conditional_dependencies/operators.py +0 -150
- fides/config/privacy_center_settings.py +0 -17
- {ethyca_fides-2.67.2b3.dist-info → ethyca_fides-2.67.2rc0.dist-info}/WHEEL +0 -0
- {ethyca_fides-2.67.2b3.dist-info → ethyca_fides-2.67.2rc0.dist-info}/entry_points.txt +0 -0
- {ethyca_fides-2.67.2b3.dist-info → ethyca_fides-2.67.2rc0.dist-info}/licenses/LICENSE +0 -0
- {ethyca_fides-2.67.2b3.dist-info → ethyca_fides-2.67.2rc0.dist-info}/top_level.txt +0 -0
- /fides/ui-build/static/admin/_next/static/{4v0_8k2Uo2QWG7nSdQ6A3 → Y7C7V1jdXK7rWXDIdtD13}/_ssgManifest.js +0 -0
|
@@ -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/d9924caa849931b3.css" as="style"/><link rel="stylesheet" href="/_next/static/css/d9924caa849931b3.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-90e8ec1fc5c6455b.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-750d6bd16c971bb9.js" defer=""></script><script src="/_next/static/chunks/pages/systems-c05b49ddec1a1b4f.js" defer=""></script><script src="/_next/static/
|
|
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/d9924caa849931b3.css" as="style"/><link rel="stylesheet" href="/_next/static/css/d9924caa849931b3.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-90e8ec1fc5c6455b.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-750d6bd16c971bb9.js" defer=""></script><script src="/_next/static/chunks/pages/systems-c05b49ddec1a1b4f.js" defer=""></script><script src="/_next/static/Y7C7V1jdXK7rWXDIdtD13/_buildManifest.js" defer=""></script><script src="/_next/static/Y7C7V1jdXK7rWXDIdtD13/_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":"/systems","query":{},"buildId":"Y7C7V1jdXK7rWXDIdtD13","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
|
|
@@ -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/d9924caa849931b3.css" as="style"/><link rel="stylesheet" href="/_next/static/css/d9924caa849931b3.css" data-n-g=""/><link rel="preload" href="/_next/static/css/34a7eb08b86ddb57.css" as="style"/><link rel="stylesheet" href="/_next/static/css/34a7eb08b86ddb57.css" data-n-p=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-90e8ec1fc5c6455b.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-750d6bd16c971bb9.js" defer=""></script><script src="/_next/static/chunks/678d4732-50255cc09048e643.js" defer=""></script><script src="/_next/static/chunks/8765-f622a35b40a7ec63.js" defer=""></script><script src="/_next/static/chunks/9278-08cc704317fe535e.js" defer=""></script><script src="/_next/static/chunks/3662-f6a1ddca5ee42076.js" defer=""></script><script src="/_next/static/chunks/6148-59a59d5c5925344f.js" defer=""></script><script src="/_next/static/chunks/pages/taxonomy-df0d88716578e295.js" defer=""></script><script src="/_next/static/
|
|
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/d9924caa849931b3.css" as="style"/><link rel="stylesheet" href="/_next/static/css/d9924caa849931b3.css" data-n-g=""/><link rel="preload" href="/_next/static/css/34a7eb08b86ddb57.css" as="style"/><link rel="stylesheet" href="/_next/static/css/34a7eb08b86ddb57.css" data-n-p=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-90e8ec1fc5c6455b.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-750d6bd16c971bb9.js" defer=""></script><script src="/_next/static/chunks/678d4732-50255cc09048e643.js" defer=""></script><script src="/_next/static/chunks/8765-f622a35b40a7ec63.js" defer=""></script><script src="/_next/static/chunks/9278-08cc704317fe535e.js" defer=""></script><script src="/_next/static/chunks/3662-f6a1ddca5ee42076.js" defer=""></script><script src="/_next/static/chunks/6148-59a59d5c5925344f.js" defer=""></script><script src="/_next/static/chunks/pages/taxonomy-df0d88716578e295.js" defer=""></script><script src="/_next/static/Y7C7V1jdXK7rWXDIdtD13/_buildManifest.js" defer=""></script><script src="/_next/static/Y7C7V1jdXK7rWXDIdtD13/_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":"/taxonomy","query":{},"buildId":"Y7C7V1jdXK7rWXDIdtD13","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
|
|
@@ -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/d9924caa849931b3.css" as="style"/><link rel="stylesheet" href="/_next/static/css/d9924caa849931b3.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-90e8ec1fc5c6455b.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-750d6bd16c971bb9.js" defer=""></script><script src="/_next/static/chunks/7476-cc0d9a94ed7aad53.js" defer=""></script><script src="/_next/static/chunks/4121-877e19d3fa078c7b.js" defer=""></script><script src="/_next/static/chunks/pages/user-management/new-de8cb3739ab99c09.js" defer=""></script><script src="/_next/static/
|
|
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/d9924caa849931b3.css" as="style"/><link rel="stylesheet" href="/_next/static/css/d9924caa849931b3.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-90e8ec1fc5c6455b.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-750d6bd16c971bb9.js" defer=""></script><script src="/_next/static/chunks/7476-cc0d9a94ed7aad53.js" defer=""></script><script src="/_next/static/chunks/4121-877e19d3fa078c7b.js" defer=""></script><script src="/_next/static/chunks/pages/user-management/new-de8cb3739ab99c09.js" defer=""></script><script src="/_next/static/Y7C7V1jdXK7rWXDIdtD13/_buildManifest.js" defer=""></script><script src="/_next/static/Y7C7V1jdXK7rWXDIdtD13/_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":"/user-management/new","query":{},"buildId":"Y7C7V1jdXK7rWXDIdtD13","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
|
|
@@ -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/d9924caa849931b3.css" as="style"/><link rel="stylesheet" href="/_next/static/css/d9924caa849931b3.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-90e8ec1fc5c6455b.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-750d6bd16c971bb9.js" defer=""></script><script src="/_next/static/chunks/7476-cc0d9a94ed7aad53.js" defer=""></script><script src="/_next/static/chunks/4121-877e19d3fa078c7b.js" defer=""></script><script src="/_next/static/chunks/pages/user-management/profile/%5Bid%5D-da68efc31998dc66.js" defer=""></script><script src="/_next/static/
|
|
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/d9924caa849931b3.css" as="style"/><link rel="stylesheet" href="/_next/static/css/d9924caa849931b3.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-90e8ec1fc5c6455b.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-750d6bd16c971bb9.js" defer=""></script><script src="/_next/static/chunks/7476-cc0d9a94ed7aad53.js" defer=""></script><script src="/_next/static/chunks/4121-877e19d3fa078c7b.js" defer=""></script><script src="/_next/static/chunks/pages/user-management/profile/%5Bid%5D-da68efc31998dc66.js" defer=""></script><script src="/_next/static/Y7C7V1jdXK7rWXDIdtD13/_buildManifest.js" defer=""></script><script src="/_next/static/Y7C7V1jdXK7rWXDIdtD13/_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":"/user-management/profile/[id]","query":{},"buildId":"Y7C7V1jdXK7rWXDIdtD13","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
|
|
@@ -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/d9924caa849931b3.css" as="style"/><link rel="stylesheet" href="/_next/static/css/d9924caa849931b3.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-90e8ec1fc5c6455b.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-750d6bd16c971bb9.js" defer=""></script><script src="/_next/static/chunks/7476-cc0d9a94ed7aad53.js" defer=""></script><script src="/_next/static/chunks/pages/user-management-e98dfc7d4f2a4e16.js" defer=""></script><script src="/_next/static/
|
|
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/d9924caa849931b3.css" as="style"/><link rel="stylesheet" href="/_next/static/css/d9924caa849931b3.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-90e8ec1fc5c6455b.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-750d6bd16c971bb9.js" defer=""></script><script src="/_next/static/chunks/7476-cc0d9a94ed7aad53.js" defer=""></script><script src="/_next/static/chunks/pages/user-management-e98dfc7d4f2a4e16.js" defer=""></script><script src="/_next/static/Y7C7V1jdXK7rWXDIdtD13/_buildManifest.js" defer=""></script><script src="/_next/static/Y7C7V1jdXK7rWXDIdtD13/_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":"/user-management","query":{},"buildId":"Y7C7V1jdXK7rWXDIdtD13","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
|
|
@@ -1,150 +0,0 @@
|
|
|
1
|
-
import numbers
|
|
2
|
-
import operator as py_operator
|
|
3
|
-
|
|
4
|
-
from fides.api.task.conditional_dependencies.schemas import Operator
|
|
5
|
-
|
|
6
|
-
# Define operator methods for validation
|
|
7
|
-
#
|
|
8
|
-
# None Value Handling:
|
|
9
|
-
# - Basic operators (eq, neq, exists, not_exists) handle None naturally
|
|
10
|
-
# * Note: eq and neq use Python's built-in behavior, so True == 1 returns True
|
|
11
|
-
# - Numeric operators return False for None values (can't compare None with numbers)
|
|
12
|
-
# * Note: Boolean values are excluded from numeric comparisons (True < 10 returns False)
|
|
13
|
-
# - String operators return False for None values (can't perform string operations on None)
|
|
14
|
-
# - List operators handle None naturally using Python's built-in behavior:
|
|
15
|
-
# * None in [None] returns True
|
|
16
|
-
# * None not in [None] returns False
|
|
17
|
-
# * None in [] returns False
|
|
18
|
-
# * None not in [] returns True
|
|
19
|
-
# * This allows None to be a valid list element for membership testing
|
|
20
|
-
operator_methods = {
|
|
21
|
-
# Basic operators - handle None naturally using Python's built-in behavior
|
|
22
|
-
Operator.exists: lambda a, _: a is not None,
|
|
23
|
-
Operator.not_exists: lambda a, _: a is None,
|
|
24
|
-
Operator.eq: py_operator.eq,
|
|
25
|
-
# None == None returns True, None == "anything" returns False
|
|
26
|
-
# None != None returns False, None != "anything" returns True
|
|
27
|
-
Operator.neq: py_operator.ne,
|
|
28
|
-
# Numeric comparison operators - return False for None or non-numeric types
|
|
29
|
-
# Note: Boolean values are excluded as they are not considered numeric for comparisons
|
|
30
|
-
# This differs from basic comparison operators (eq, neq) which use Python's built-in behavior
|
|
31
|
-
Operator.lt: lambda a, b: (
|
|
32
|
-
a < b
|
|
33
|
-
if a is not None and isinstance(a, numbers.Number) and not isinstance(a, bool)
|
|
34
|
-
else False
|
|
35
|
-
),
|
|
36
|
-
Operator.lte: lambda a, b: (
|
|
37
|
-
a <= b
|
|
38
|
-
if a is not None and isinstance(a, numbers.Number) and not isinstance(a, bool)
|
|
39
|
-
else False
|
|
40
|
-
),
|
|
41
|
-
Operator.gt: lambda a, b: (
|
|
42
|
-
a > b
|
|
43
|
-
if a is not None and isinstance(a, numbers.Number) and not isinstance(a, bool)
|
|
44
|
-
else False
|
|
45
|
-
),
|
|
46
|
-
Operator.gte: lambda a, b: (
|
|
47
|
-
a >= b
|
|
48
|
-
if a is not None and isinstance(a, numbers.Number) and not isinstance(a, bool)
|
|
49
|
-
else False
|
|
50
|
-
),
|
|
51
|
-
Operator.list_contains: lambda a, b: (
|
|
52
|
-
# If user provides a list, check if column value is in it
|
|
53
|
-
# Note: Handles None values naturally using Python's built-in behavior
|
|
54
|
-
a in b
|
|
55
|
-
if isinstance(b, list)
|
|
56
|
-
# If column value is a list, check if user value is in it
|
|
57
|
-
else b in a if isinstance(a, list) else False
|
|
58
|
-
),
|
|
59
|
-
Operator.not_in_list: lambda a, b: (
|
|
60
|
-
# If user provides a list, check if column value is NOT in it
|
|
61
|
-
# Note: Handles None values naturally using Python's built-in behavior
|
|
62
|
-
a not in b
|
|
63
|
-
if isinstance(b, list)
|
|
64
|
-
# If column value is a list, check if user value is NOT in it
|
|
65
|
-
else b not in a if isinstance(a, list) else False
|
|
66
|
-
),
|
|
67
|
-
Operator.list_intersects: lambda a, b: (
|
|
68
|
-
# Check if there are any common elements between the lists
|
|
69
|
-
# Note: Returns False for None values because both values must be lists
|
|
70
|
-
bool(set(a) & set(b))
|
|
71
|
-
if isinstance(a, list) and isinstance(b, list)
|
|
72
|
-
else False
|
|
73
|
-
),
|
|
74
|
-
Operator.list_subset: lambda a, b: (
|
|
75
|
-
# Check if column list is a subset of user's list
|
|
76
|
-
# Note: Returns False for None values because both values must be lists
|
|
77
|
-
set(a).issubset(set(b))
|
|
78
|
-
if isinstance(a, list) and isinstance(b, list)
|
|
79
|
-
else False
|
|
80
|
-
),
|
|
81
|
-
Operator.list_superset: lambda a, b: (
|
|
82
|
-
# Check if column list is a superset of user's list
|
|
83
|
-
# Note: Returns False for None values because both values must be lists
|
|
84
|
-
set(a).issuperset(set(b))
|
|
85
|
-
if isinstance(a, list) and isinstance(b, list)
|
|
86
|
-
else False
|
|
87
|
-
),
|
|
88
|
-
Operator.list_disjoint: lambda a, b: (
|
|
89
|
-
# Check if lists have no common elements
|
|
90
|
-
# Note: Returns False for None values because both values must be lists
|
|
91
|
-
set(a).isdisjoint(set(b))
|
|
92
|
-
if isinstance(a, list) and isinstance(b, list)
|
|
93
|
-
else False
|
|
94
|
-
),
|
|
95
|
-
Operator.starts_with: lambda a, b: (
|
|
96
|
-
a.startswith(b) if isinstance(a, str) and isinstance(b, str) else False
|
|
97
|
-
),
|
|
98
|
-
Operator.ends_with: lambda a, b: (
|
|
99
|
-
a.endswith(b) if isinstance(a, str) and isinstance(b, str) else False
|
|
100
|
-
),
|
|
101
|
-
Operator.contains: lambda a, b: (
|
|
102
|
-
b in a if isinstance(a, str) and isinstance(b, str) else False
|
|
103
|
-
),
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
# Common operators that work with most data types
|
|
107
|
-
COMMON_OPERATORS = {
|
|
108
|
-
Operator.eq,
|
|
109
|
-
Operator.neq,
|
|
110
|
-
Operator.exists,
|
|
111
|
-
Operator.not_exists,
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
# Numeric comparison operators
|
|
115
|
-
NUMERIC_OPERATORS = {Operator.lt, Operator.lte, Operator.gt, Operator.gte}
|
|
116
|
-
|
|
117
|
-
# String-specific operators
|
|
118
|
-
STRING_OPERATORS = {
|
|
119
|
-
Operator.contains,
|
|
120
|
-
Operator.starts_with,
|
|
121
|
-
Operator.ends_with,
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
# List operations that work with all data types
|
|
125
|
-
LIST_OPERATORS = {
|
|
126
|
-
Operator.list_contains, # Element in list
|
|
127
|
-
Operator.not_in_list, # Element not in list
|
|
128
|
-
Operator.list_intersects, # Any common elements
|
|
129
|
-
Operator.list_subset, # Column list ⊆ user list
|
|
130
|
-
Operator.list_superset, # Column list ⊇ user list
|
|
131
|
-
Operator.list_disjoint, # No common elements
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
# Define data type compatibility with operators
|
|
135
|
-
data_type_operator_compatibility = {
|
|
136
|
-
"integer": {*COMMON_OPERATORS, *NUMERIC_OPERATORS, *LIST_OPERATORS},
|
|
137
|
-
"float": {*COMMON_OPERATORS, *NUMERIC_OPERATORS, *LIST_OPERATORS},
|
|
138
|
-
"double": {*COMMON_OPERATORS, *NUMERIC_OPERATORS, *LIST_OPERATORS},
|
|
139
|
-
"long": {*COMMON_OPERATORS, *NUMERIC_OPERATORS, *LIST_OPERATORS},
|
|
140
|
-
"boolean": {*COMMON_OPERATORS, *LIST_OPERATORS},
|
|
141
|
-
"string": {*COMMON_OPERATORS, *STRING_OPERATORS, *LIST_OPERATORS},
|
|
142
|
-
"text": {
|
|
143
|
-
*COMMON_OPERATORS,
|
|
144
|
-
*LIST_OPERATORS,
|
|
145
|
-
}, # Form input - no string search operations
|
|
146
|
-
"array": {*COMMON_OPERATORS, *LIST_OPERATORS},
|
|
147
|
-
"object": {*COMMON_OPERATORS, *LIST_OPERATORS},
|
|
148
|
-
"object_id": {*COMMON_OPERATORS, *LIST_OPERATORS},
|
|
149
|
-
"no_op": {*COMMON_OPERATORS, *LIST_OPERATORS},
|
|
150
|
-
}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
from typing import Optional
|
|
2
|
-
|
|
3
|
-
from pydantic import Field, SerializeAsAny
|
|
4
|
-
from pydantic_settings import SettingsConfigDict
|
|
5
|
-
|
|
6
|
-
from fides.api.custom_types import AnyHttpUrlStringRemovesSlash
|
|
7
|
-
|
|
8
|
-
from .fides_settings import FidesSettings
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
class PrivacyCenterSettings(FidesSettings):
|
|
12
|
-
"""Configuration settings for the Privacy Center."""
|
|
13
|
-
|
|
14
|
-
url: SerializeAsAny[Optional[AnyHttpUrlStringRemovesSlash]] = Field(
|
|
15
|
-
default=None, description="The base URL for the Privacy Center."
|
|
16
|
-
)
|
|
17
|
-
model_config = SettingsConfigDict(env_prefix="FIDES__PRIVACY_CENTER__")
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|