ethyca-fides 2.70.1rc3__py2.py3-none-any.whl → 2.70.3b0__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.70.1rc3.dist-info → ethyca_fides-2.70.3b0.dist-info}/METADATA +3 -3
- {ethyca_fides-2.70.1rc3.dist-info → ethyca_fides-2.70.3b0.dist-info}/RECORD +206 -200
- fides/_version.py +3 -3
- fides/api/alembic/migrations/versions/a8e0c016afd_add_classification_benchmark_table.py +126 -0
- fides/api/alembic/migrations/versions/cd8649be3a2b_add_classifications_and_user_assigned_.py +74 -0
- fides/api/db/crud.py +30 -2
- fides/api/db/database.py +1 -1
- fides/api/db/safe_crud.py +377 -0
- fides/api/migrations/post_upgrade_index_creation.py +10 -0
- fides/api/models/conditional_dependency/__init__.py +0 -0
- fides/api/models/conditional_dependency/conditional_dependency_base.py +82 -0
- fides/api/models/detection_discovery/__init__.py +2 -0
- fides/api/models/detection_discovery/classification_benchmark.py +140 -0
- fides/api/models/detection_discovery/core.py +11 -0
- fides/api/models/manual_task/conditional_dependency.py +21 -77
- fides/api/models/policy.py +24 -0
- fides/api/models/privacy_notice.py +1 -1
- fides/api/models/privacy_request/privacy_request.py +68 -0
- fides/api/models/privacy_request/webhook.py +3 -1
- fides/api/oauth/roles.py +2 -0
- fides/api/schemas/connection_configuration/connection_secrets_mongodb.py +1 -1
- fides/api/schemas/privacy_request.py +4 -2
- fides/api/schemas/user.py +2 -2
- fides/api/service/privacy_request/dsr_package/dsr_report_builder.py +2 -2
- fides/api/service/storage/streaming/smart_open_streaming_storage.py +36 -28
- fides/api/service/storage/util.py +11 -102
- fides/api/task/manual/manual_task_utils.py +5 -6
- fides/ui-build/static/admin/404.html +1 -1
- fides/ui-build/static/admin/_next/static/chunks/155-047c3806cc41295e.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/4608-a9941d0c236ebca1.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/6416-0ccadfefcdad00cc.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/{7476-0b6e114658b15eaa.js → 7476-d055aa931da47ac0.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/{7725-dd6736855807936a.js → 7725-fdc4298dfbea6f80.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/{_app-a4e3c999afb28ee7.js → _app-de41f80e35acbde0.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/action-center/[monitorId]/[systemId]-3d03cd31cd99fa07.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/integrations/{[id]-8b13bb5f7bee61c6.js → [id]-9f6c82e14ff2cad2.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/{integrations-6f109ef64304ef59.js → integrations-ebc9c90fe99ee68d.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/{[id]-8566e3b7b2a632fa.js → [id]-f8e3f63bea43db3b.js} +1 -1
- fides/ui-build/static/admin/_next/static/{PaOA8PWIbtkQn-5P5HoNz → uJYQK3qHPl-9P-RICNMQA}/_buildManifest.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/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/messaging-providers/[key].html +1 -1
- fides/ui-build/static/admin/settings/messaging-providers/new.html +1 -1
- fides/ui-build/static/admin/settings/messaging-providers.html +1 -1
- fides/ui-build/static/admin/settings/organization.html +1 -1
- fides/ui-build/static/admin/settings/privacy-requests.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/chunks/155-88303b05c6e115a5.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/4608-96f480766541124b.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/6416-18d438ff85d807f8.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/action-center/[monitorId]/[systemId]-b0e3f1886de28d66.js +0 -1
- {ethyca_fides-2.70.1rc3.dist-info → ethyca_fides-2.70.3b0.dist-info}/WHEEL +0 -0
- {ethyca_fides-2.70.1rc3.dist-info → ethyca_fides-2.70.3b0.dist-info}/entry_points.txt +0 -0
- {ethyca_fides-2.70.1rc3.dist-info → ethyca_fides-2.70.3b0.dist-info}/licenses/LICENSE +0 -0
- {ethyca_fides-2.70.1rc3.dist-info → ethyca_fides-2.70.3b0.dist-info}/top_level.txt +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{1115-7888473b3dc28cda.js → 1115-90baef2a89f361ad.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{1817-ee9e29a6b8c4af50.js → 1817-dbde9966025d7970.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{2040-ab6212a3074f34f9.js → 2040-fdecc41a18e40bdc.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{3696-c25dc8d1b0e1aee1.js → 3696-90c8b336bbc46782.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{3700-dc3f05d21e2a5ff6.js → 3700-865408b36fbee782.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{3872-3514b712afd683c0.js → 3872-04d3afbfa41a7782.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{502-a40d39e615f7b664.js → 502-d3ecae97b67befbd.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{5185-33f50cf9ae17b42e.js → 5185-51eaa78e3ed6bfb7.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{5574-b8c4cba5a6938c00.js → 5574-c31ea831371610d5.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{5783-8de76df87af55e98.js → 5783-8f5713517ebc35f3.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{6084-2cd165179c428a6f.js → 6084-dc473a58c3e2889b.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{6882-447f15e87b8c48a5.js → 6882-10296485ec326e6b.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{6954-599f2de2c902e9b2.js → 6954-4b24e1731c1cc3b3.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{7158-835ba42fd881d8dd.js → 7158-04745cc8d684b2e7.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{7630-e7ea13be69c118a1.js → 7630-d0d3a0fe3f95e971.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{796-e07ac2c543f569e3.js → 796-876998c86754da97.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{8002-25fd174aec9b077b.js → 8002-ed832921ad190832.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{9226-2f960b7ca530642a.js → 9226-4a7027057f55ca2a.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{9826-c02be5882205bbbc.js → 9826-ccedc28e978ca9e1.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/add-systems/{manual-939253f8daf349b2.js → manual-16ecb33f09224fbb.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/add-systems/{multiple-83ed7da0bb90b0a5.js → multiple-2ca59996860a33c5.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/{add-systems-f90aa48500c1cbde.js → add-systems-caff552fce501f82.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/consent/configure/{add-vendors-46b88bda3d7b15c5.js → add-vendors-7a258b7ecd6da4b8.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/consent/{configure-c0db068d1863222f.js → configure-259ad2e10fe6f413.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/consent/{privacy-experience-92a337ee96845af2.js → privacy-experience-7e78616b7b048978.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/consent/privacy-notices/{[id]-1fd2cda8707314f6.js → [id]-9c23fbe813c997d0.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/consent/privacy-notices/{new-2987e397445713c5.js → new-0e5e38bbcfe59fd2.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/consent/{privacy-notices-59a8aff5935482ec.js → privacy-notices-3ff2fd2570f02f1c.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/{consent-e5a33654a2dfaf35.js → consent-d2bf72508c3cad55.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/projects/[projectUrn]/{[resourceUrn]-293c1f2d9aefb447.js → [resourceUrn]-06a08970907ed3f0.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/projects/{[projectUrn]-6a4b0d49dcbf17a8.js → [projectUrn]-4a1af12d2d7cd660.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/{projects-be7b385073f22414.js → projects-99573a1ee3ef8f4c.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/resources/{[resourceUrn]-18501152fa1e4f40.js → [resourceUrn]-4c84d952bb1db690.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/{resources-af80fdca3bbdc82f.js → resources-6e429b7511028d60.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/{data-catalog-351caadeef03876a.js → data-catalog-56fd0f3e465e52b6.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/action-center/{[monitorId]-e8ec4080d9a3e22f.js → [monitorId]-b74dfaf4f4126e57.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/{action-center-1554afcb8b9da2ab.js → action-center-040813022f0890c9.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/detection/{[resourceUrn]-0497f3ffdb632516.js → [resourceUrn]-844a8de0d1b506e2.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/{detection-a780390da99f3e43.js → detection-11b07cf2d91b17ef.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/discovery/{[resourceUrn]-1901c26cdde820da.js → [resourceUrn]-65dc7f5a2ce3eae7.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/{discovery-0cea22af5929c81f.js → discovery-4d378516817cf00b.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/{datamap-619f27c745188adb.js → datamap-4a05303416dcb657.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/dataset/[datasetId]/[collectionName]/{[...subfieldNames]-ef71f387fbbab425.js → [...subfieldNames]-d4031e438c363fff.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/dataset/[datasetId]/{[collectionName]-d790553662caf5c3.js → [collectionName]-9463af37079762d0.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/dataset/{[datasetId]-cb63db8594fe8dc1.js → [datasetId]-60a4a9eb4aab4c11.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/dataset/{new-78e052c8f95110c4.js → new-910e28bce6a98f3d.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/{dataset-d6d7ee8bd8858a8a.js → dataset-108630926347724e.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/datastore-connection/{[id]-cc149157d290a94d.js → [id]-5119e6602507157f.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/datastore-connection/{new-4c9fb068a5561658.js → new-cda4e7b5b888e17c.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/{datastore-connection-a832084ce294f8af.js → datastore-connection-223c2d1ded51bfb1.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/{index-269b8f81546dad66.js → index-b74d1e8608ae5b5d.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/messaging/{[id]-d8c5c03fb2f31d65.js → [id]-e8d2140787045acd.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/messaging/{add-template-0e0c06e3c8aabe02.js → add-template-e3f93462a08251bf.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/{messaging-3f15804cf9625f01.js → messaging-b5f7d6afdecd013d.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/poc/{table-migration-e551fccfcaae76e7.js → table-migration-329333a88f3826eb.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/configure/{storage-1b38b656807ed0cd.js → storage-648d775d0fce49dc.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/{configure-b00532a0ad4f6927.js → configure-8f577df28ebca869.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/{privacy-requests-2c82cf73d20416f2.js → privacy-requests-1eeb320867dbebf4.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/properties/{[id]-322a01e2bceab3fb.js → [id]-57a75c7e9659271a.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/properties/{add-property-777ed2d73812043d.js → add-property-8964c2300206bc89.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/settings/{consent-55e36839d219a503.js → consent-1ae1257f5b388924.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/settings/{custom-fields-26ce8fc493993765.js → custom-fields-c2f1376aca192114.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/settings/{domain-records-7ddf9d992fe714a6.js → domain-records-586505df9d853f1f.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/settings/{domains-7c78ae51f0dd7102.js → domains-a3275554ffe8e640.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/settings/{email-templates-05ffbda19ab894b9.js → email-templates-604790638c656fbd.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/settings/{locations-77fb85bdd0be42b5.js → locations-be2a885150adc133.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/settings/messaging-providers/{[key]-b0d93bf478bf63ee.js → [key]-8df31428446a6a96.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/settings/messaging-providers/{new-084f9756b9987285.js → new-af1471bf4571d5d3.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/settings/{messaging-providers-6c51ffd46bb598e7.js → messaging-providers-8d92be437793c96f.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/settings/{organization-44456bfe54ac4ad5.js → organization-3c86162afe9759df.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/settings/{privacy-requests-fbe7e8030d837aed.js → privacy-requests-8cbdfd08e0fa88fb.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/settings/{regulations-2866ac99faa5a542.js → regulations-4fe3b90747d885e5.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/systems/configure/[id]/{test-datasets-a86bafe1b4e1205f.js → test-datasets-2deb6becece69d46.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/systems/configure/{[id]-1895c6a13b543436.js → [id]-589952aa1a31c33d.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/{systems-d266cc062b56beb2.js → systems-916238dcc0596957.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/{taxonomy-07848c232d960f6a.js → taxonomy-616f5a7cbb99e46d.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/user-management/{new-6304dad2c5fab694.js → new-629c88e90699369b.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/user-management/profile/{[id]-ff4711db191099cd.js → [id]-98f737e735eaa0f0.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/{user-management-82fcf1151e2fe2ba.js → user-management-562624e5461083ec.js} +0 -0
- /fides/ui-build/static/admin/_next/static/{PaOA8PWIbtkQn-5P5HoNz → uJYQK3qHPl-9P-RICNMQA}/_ssgManifest.js +0 -0
fides/_version.py
CHANGED
|
@@ -8,11 +8,11 @@ import json
|
|
|
8
8
|
|
|
9
9
|
version_json = '''
|
|
10
10
|
{
|
|
11
|
-
"date": "2025-09-
|
|
11
|
+
"date": "2025-09-19T17:26:35-0700",
|
|
12
12
|
"dirty": false,
|
|
13
13
|
"error": null,
|
|
14
|
-
"full-revisionid": "
|
|
15
|
-
"version": "2.70.
|
|
14
|
+
"full-revisionid": "fe651d7445cf98722c20b976cf2ebf8b4807527e",
|
|
15
|
+
"version": "2.70.3b0"
|
|
16
16
|
}
|
|
17
17
|
''' # END VERSION_JSON
|
|
18
18
|
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
"""Add classification benchmark table
|
|
2
|
+
|
|
3
|
+
Revision ID: a8e0c016afd
|
|
4
|
+
Revises: 4d8c0fcc5771
|
|
5
|
+
Create Date: 2024-12-19 12:00:00.000000
|
|
6
|
+
|
|
7
|
+
"""
|
|
8
|
+
|
|
9
|
+
import sqlalchemy as sa
|
|
10
|
+
from alembic import op
|
|
11
|
+
from sqlalchemy.dialects import postgresql
|
|
12
|
+
|
|
13
|
+
# revision identifiers, used by Alembic.
|
|
14
|
+
revision = "a8e0c016afd"
|
|
15
|
+
down_revision = "4d8c0fcc5771"
|
|
16
|
+
branch_labels = None
|
|
17
|
+
depends_on = None
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
def upgrade():
|
|
21
|
+
# ### commands auto generated by Alembic - please adjust! ###
|
|
22
|
+
op.create_table(
|
|
23
|
+
"classification_benchmark",
|
|
24
|
+
sa.Column("id", sa.String(length=255), nullable=False),
|
|
25
|
+
sa.Column(
|
|
26
|
+
"created_at",
|
|
27
|
+
sa.DateTime(timezone=True),
|
|
28
|
+
server_default=sa.text("now()"),
|
|
29
|
+
nullable=True,
|
|
30
|
+
),
|
|
31
|
+
sa.Column(
|
|
32
|
+
"updated_at",
|
|
33
|
+
sa.DateTime(timezone=True),
|
|
34
|
+
server_default=sa.text("now()"),
|
|
35
|
+
nullable=True,
|
|
36
|
+
),
|
|
37
|
+
sa.Column(
|
|
38
|
+
"monitor_config_key",
|
|
39
|
+
sa.String(),
|
|
40
|
+
sa.ForeignKey("monitorconfig.key", ondelete="CASCADE"),
|
|
41
|
+
nullable=False,
|
|
42
|
+
),
|
|
43
|
+
sa.Column(
|
|
44
|
+
"dataset_fides_key",
|
|
45
|
+
sa.String(),
|
|
46
|
+
sa.ForeignKey("ctl_datasets.fides_key", ondelete="CASCADE"),
|
|
47
|
+
nullable=False,
|
|
48
|
+
),
|
|
49
|
+
sa.Column(
|
|
50
|
+
"resource_urns",
|
|
51
|
+
postgresql.ARRAY(sa.String()),
|
|
52
|
+
nullable=False,
|
|
53
|
+
server_default="{}",
|
|
54
|
+
),
|
|
55
|
+
sa.Column(
|
|
56
|
+
"overall_metrics",
|
|
57
|
+
postgresql.JSONB(astext_type=sa.Text()),
|
|
58
|
+
nullable=True,
|
|
59
|
+
server_default=None,
|
|
60
|
+
),
|
|
61
|
+
sa.Column(
|
|
62
|
+
"field_accuracy_details",
|
|
63
|
+
postgresql.ARRAY(postgresql.JSONB(astext_type=sa.Text())),
|
|
64
|
+
nullable=False,
|
|
65
|
+
server_default="{}",
|
|
66
|
+
),
|
|
67
|
+
sa.Column(
|
|
68
|
+
"status",
|
|
69
|
+
sa.String(length=50),
|
|
70
|
+
nullable=False,
|
|
71
|
+
server_default="pending",
|
|
72
|
+
),
|
|
73
|
+
sa.Column(
|
|
74
|
+
"messages",
|
|
75
|
+
postgresql.ARRAY(sa.String()),
|
|
76
|
+
nullable=False,
|
|
77
|
+
server_default="{}",
|
|
78
|
+
),
|
|
79
|
+
sa.PrimaryKeyConstraint("id"),
|
|
80
|
+
)
|
|
81
|
+
op.create_index(
|
|
82
|
+
op.f("ix_classification_benchmark_id"),
|
|
83
|
+
"classification_benchmark",
|
|
84
|
+
["id"],
|
|
85
|
+
unique=False,
|
|
86
|
+
)
|
|
87
|
+
op.create_index(
|
|
88
|
+
op.f("ix_classification_benchmark_monitor_config_key"),
|
|
89
|
+
"classification_benchmark",
|
|
90
|
+
["monitor_config_key"],
|
|
91
|
+
unique=False,
|
|
92
|
+
)
|
|
93
|
+
op.create_index(
|
|
94
|
+
op.f("ix_classification_benchmark_dataset_fides_key"),
|
|
95
|
+
"classification_benchmark",
|
|
96
|
+
["dataset_fides_key"],
|
|
97
|
+
unique=False,
|
|
98
|
+
)
|
|
99
|
+
op.create_index(
|
|
100
|
+
op.f("ix_classification_benchmark_status"),
|
|
101
|
+
"classification_benchmark",
|
|
102
|
+
["status"],
|
|
103
|
+
unique=False,
|
|
104
|
+
)
|
|
105
|
+
# ### end Alembic commands ###
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
def downgrade():
|
|
109
|
+
# ### commands auto generated by Alembic - please adjust! ###
|
|
110
|
+
op.drop_index(
|
|
111
|
+
op.f("ix_classification_benchmark_status"),
|
|
112
|
+
table_name="classification_benchmark",
|
|
113
|
+
)
|
|
114
|
+
op.drop_index(
|
|
115
|
+
op.f("ix_classification_benchmark_dataset_fides_key"),
|
|
116
|
+
table_name="classification_benchmark",
|
|
117
|
+
)
|
|
118
|
+
op.drop_index(
|
|
119
|
+
op.f("ix_classification_benchmark_monitor_config_key"),
|
|
120
|
+
table_name="classification_benchmark",
|
|
121
|
+
)
|
|
122
|
+
op.drop_index(
|
|
123
|
+
op.f("ix_classification_benchmark_id"), table_name="classification_benchmark"
|
|
124
|
+
)
|
|
125
|
+
op.drop_table("classification_benchmark")
|
|
126
|
+
# ### end Alembic commands ###
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"""add classifications and user_assigned_data_categories indices
|
|
2
|
+
|
|
3
|
+
Revision ID: cd8649be3a2b
|
|
4
|
+
Revises: a8e0c016afd
|
|
5
|
+
Create Date: 2025-09-19 13:49:02.762672
|
|
6
|
+
|
|
7
|
+
"""
|
|
8
|
+
|
|
9
|
+
import sqlalchemy as sa
|
|
10
|
+
from alembic import op
|
|
11
|
+
from loguru import logger
|
|
12
|
+
|
|
13
|
+
# revision identifiers, used by Alembic.
|
|
14
|
+
revision = "cd8649be3a2b"
|
|
15
|
+
down_revision = "a8e0c016afd"
|
|
16
|
+
branch_labels = None
|
|
17
|
+
depends_on = None
|
|
18
|
+
|
|
19
|
+
"""
|
|
20
|
+
WARNING - Conditional migration based on table size
|
|
21
|
+
"""
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
def upgrade():
|
|
25
|
+
# Check stagedresource table size
|
|
26
|
+
connection = op.get_bind()
|
|
27
|
+
|
|
28
|
+
# Check stagedresource table size to decide if we should create indexes immediately
|
|
29
|
+
table_size = connection.execute(
|
|
30
|
+
sa.text("SELECT COUNT(*) FROM stagedresource")
|
|
31
|
+
).scalar()
|
|
32
|
+
|
|
33
|
+
if table_size < 1000000:
|
|
34
|
+
logger.info(
|
|
35
|
+
f"stagedresource table has {table_size} rows, creating GIN indices directly"
|
|
36
|
+
)
|
|
37
|
+
|
|
38
|
+
# Create GIN index for user_assigned_data_categories array operations (&&, @>, <@)
|
|
39
|
+
op.execute(
|
|
40
|
+
"CREATE INDEX idx_stagedresource_user_categories_gin "
|
|
41
|
+
"ON stagedresource USING GIN (user_assigned_data_categories)"
|
|
42
|
+
)
|
|
43
|
+
|
|
44
|
+
# Create GIN index for classifications array operations (&&, @>, <@)
|
|
45
|
+
op.execute(
|
|
46
|
+
"CREATE INDEX idx_stagedresource_classifications_gin "
|
|
47
|
+
"ON stagedresource USING GIN (classifications)"
|
|
48
|
+
)
|
|
49
|
+
|
|
50
|
+
logger.info("GIN indices created successfully")
|
|
51
|
+
|
|
52
|
+
else:
|
|
53
|
+
logger.warning(
|
|
54
|
+
"The stagedresource table has more than 1 million rows, "
|
|
55
|
+
"skipping index creation. Indexes will be created during application startup "
|
|
56
|
+
"via post_upgrade_index_creation.py"
|
|
57
|
+
)
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
def downgrade():
|
|
61
|
+
# Drop indices in reverse order
|
|
62
|
+
logger.info("Dropping GIN indices for stagedresource arrays")
|
|
63
|
+
|
|
64
|
+
try:
|
|
65
|
+
op.drop_index("idx_stagedresource_classifications_gin", "stagedresource")
|
|
66
|
+
logger.info("Dropped classifications GIN index")
|
|
67
|
+
except Exception as e:
|
|
68
|
+
logger.warning(f"Could not drop classifications index: {e}")
|
|
69
|
+
|
|
70
|
+
try:
|
|
71
|
+
op.drop_index("idx_stagedresource_user_categories_gin", "stagedresource")
|
|
72
|
+
logger.info("Dropped user_assigned_data_categories GIN index")
|
|
73
|
+
except Exception as e:
|
|
74
|
+
logger.warning(f"Could not drop user_categories index: {e}")
|
fides/api/db/crud.py
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"""
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
DEPRECATED: This module uses manual transaction handling which can
|
|
3
|
+
lead to unexpected behavior. Use fides.api.db.safe_crud instead.
|
|
4
4
|
"""
|
|
5
5
|
|
|
6
6
|
from collections import defaultdict
|
|
@@ -18,6 +18,7 @@ from sqlalchemy.ext.asyncio import AsyncSession
|
|
|
18
18
|
from sqlalchemy.future import select
|
|
19
19
|
from sqlalchemy.sql import Select
|
|
20
20
|
from starlette.status import HTTP_422_UNPROCESSABLE_ENTITY
|
|
21
|
+
from typing_extensions import deprecated
|
|
21
22
|
|
|
22
23
|
from fides.api.models.sql_models import ( # type: ignore[attr-defined]
|
|
23
24
|
CustomField,
|
|
@@ -32,6 +33,9 @@ T = TypeVar("T", bound="FidesBase")
|
|
|
32
33
|
|
|
33
34
|
|
|
34
35
|
# CRUD Functions
|
|
36
|
+
@deprecated(
|
|
37
|
+
"This function uses a manual session.begin() which can lead to unexpected transaction handling. Use create_resource from safe_crud instead."
|
|
38
|
+
)
|
|
35
39
|
async def create_resource(
|
|
36
40
|
sql_model: Type[T], resource_dict: Dict, async_session: AsyncSession
|
|
37
41
|
) -> T:
|
|
@@ -66,6 +70,9 @@ async def create_resource(
|
|
|
66
70
|
return await get_resource(sql_model, resource_dict["fides_key"], async_session)
|
|
67
71
|
|
|
68
72
|
|
|
73
|
+
@deprecated(
|
|
74
|
+
"This function uses manual session.begin() which can lead to unexpected transaction handling. Use get_custom_fields_filtered from safe_crud instead."
|
|
75
|
+
)
|
|
69
76
|
async def get_custom_fields_filtered(
|
|
70
77
|
async_session: AsyncSession,
|
|
71
78
|
resource_types_to_ids: Dict[ResourceTypes, List[str]] = defaultdict(list),
|
|
@@ -111,6 +118,9 @@ async def get_custom_fields_filtered(
|
|
|
111
118
|
raise sa_error
|
|
112
119
|
|
|
113
120
|
|
|
121
|
+
@deprecated(
|
|
122
|
+
"This function uses manual session.begin() which can lead to unexpected transaction handling. Use get_resource from safe_crud instead."
|
|
123
|
+
)
|
|
114
124
|
async def get_resource(
|
|
115
125
|
sql_model: Type[T],
|
|
116
126
|
fides_key: str,
|
|
@@ -142,6 +152,9 @@ async def get_resource(
|
|
|
142
152
|
return sql_resource
|
|
143
153
|
|
|
144
154
|
|
|
155
|
+
@deprecated(
|
|
156
|
+
"This function uses manual session.begin() which can lead to unexpected transaction handling. Use get_resource_with_custom_fields from safe_crud instead."
|
|
157
|
+
)
|
|
145
158
|
async def get_resource_with_custom_fields(
|
|
146
159
|
sql_model: Type[T], fides_key: str, async_session: AsyncSession
|
|
147
160
|
) -> Dict[str, Any]:
|
|
@@ -193,6 +206,9 @@ async def get_resource_with_custom_fields(
|
|
|
193
206
|
return resource_dict
|
|
194
207
|
|
|
195
208
|
|
|
209
|
+
@deprecated(
|
|
210
|
+
"This function uses manual session.begin() which can lead to unexpected transaction handling. Use list_resource from safe_crud instead."
|
|
211
|
+
)
|
|
196
212
|
async def list_resource(sql_model: Type[T], async_session: AsyncSession) -> List[T]:
|
|
197
213
|
"""
|
|
198
214
|
Get a list of all of the resources of this type from the database.
|
|
@@ -203,6 +219,9 @@ async def list_resource(sql_model: Type[T], async_session: AsyncSession) -> List
|
|
|
203
219
|
return await list_resource_query(async_session, query, sql_model)
|
|
204
220
|
|
|
205
221
|
|
|
222
|
+
@deprecated(
|
|
223
|
+
"This function uses manual session.begin() which can lead to unexpected transaction handling. Use list_resource_query from safe_crud instead."
|
|
224
|
+
)
|
|
206
225
|
async def list_resource_query(
|
|
207
226
|
async_session: AsyncSession, query: Select, sql_model: Type[T]
|
|
208
227
|
) -> List[T]:
|
|
@@ -225,6 +244,9 @@ async def list_resource_query(
|
|
|
225
244
|
return sql_resources
|
|
226
245
|
|
|
227
246
|
|
|
247
|
+
@deprecated(
|
|
248
|
+
"This function uses manual session.begin() which can lead to unexpected transaction handling. Use update_resource from safe_crud instead."
|
|
249
|
+
)
|
|
228
250
|
async def update_resource(
|
|
229
251
|
sql_model: Type[T], resource_dict: Dict, async_session: AsyncSession
|
|
230
252
|
) -> Dict:
|
|
@@ -251,6 +273,9 @@ async def update_resource(
|
|
|
251
273
|
return await get_resource(sql_model, resource_dict["fides_key"], async_session)
|
|
252
274
|
|
|
253
275
|
|
|
276
|
+
@deprecated(
|
|
277
|
+
"This function uses manual session.begin() which can lead to unexpected transaction handling. Use upsert_resources from safe_crud instead."
|
|
278
|
+
)
|
|
254
279
|
async def upsert_resources(
|
|
255
280
|
sql_model: Type[T], resource_dicts: List[Dict], async_session: AsyncSession
|
|
256
281
|
) -> Tuple[int, int]:
|
|
@@ -300,6 +325,9 @@ async def upsert_resources(
|
|
|
300
325
|
raise sa_error
|
|
301
326
|
|
|
302
327
|
|
|
328
|
+
@deprecated(
|
|
329
|
+
"This function uses manual session.begin() which can lead to unexpected transaction handling. Use delete_resource from safe_crud instead."
|
|
330
|
+
)
|
|
303
331
|
async def delete_resource(
|
|
304
332
|
sql_model: Type[T], fides_key: str, async_session: AsyncSession
|
|
305
333
|
) -> T:
|
fides/api/db/database.py
CHANGED
|
@@ -159,5 +159,5 @@ def check_missing_migrations(database_url: str) -> None:
|
|
|
159
159
|
result = command.autogen.compare_metadata(migration_context, Base.metadata) # type: ignore[attr-defined]
|
|
160
160
|
|
|
161
161
|
if result:
|
|
162
|
-
raise SystemExit("
|
|
162
|
+
raise SystemExit("Migration needs to be generated!")
|
|
163
163
|
print("No migrations need to be generated.")
|