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.

Files changed (210) hide show
  1. {ethyca_fides-2.70.1rc3.dist-info → ethyca_fides-2.70.3b0.dist-info}/METADATA +3 -3
  2. {ethyca_fides-2.70.1rc3.dist-info → ethyca_fides-2.70.3b0.dist-info}/RECORD +206 -200
  3. fides/_version.py +3 -3
  4. fides/api/alembic/migrations/versions/a8e0c016afd_add_classification_benchmark_table.py +126 -0
  5. fides/api/alembic/migrations/versions/cd8649be3a2b_add_classifications_and_user_assigned_.py +74 -0
  6. fides/api/db/crud.py +30 -2
  7. fides/api/db/database.py +1 -1
  8. fides/api/db/safe_crud.py +377 -0
  9. fides/api/migrations/post_upgrade_index_creation.py +10 -0
  10. fides/api/models/conditional_dependency/__init__.py +0 -0
  11. fides/api/models/conditional_dependency/conditional_dependency_base.py +82 -0
  12. fides/api/models/detection_discovery/__init__.py +2 -0
  13. fides/api/models/detection_discovery/classification_benchmark.py +140 -0
  14. fides/api/models/detection_discovery/core.py +11 -0
  15. fides/api/models/manual_task/conditional_dependency.py +21 -77
  16. fides/api/models/policy.py +24 -0
  17. fides/api/models/privacy_notice.py +1 -1
  18. fides/api/models/privacy_request/privacy_request.py +68 -0
  19. fides/api/models/privacy_request/webhook.py +3 -1
  20. fides/api/oauth/roles.py +2 -0
  21. fides/api/schemas/connection_configuration/connection_secrets_mongodb.py +1 -1
  22. fides/api/schemas/privacy_request.py +4 -2
  23. fides/api/schemas/user.py +2 -2
  24. fides/api/service/privacy_request/dsr_package/dsr_report_builder.py +2 -2
  25. fides/api/service/storage/streaming/smart_open_streaming_storage.py +36 -28
  26. fides/api/service/storage/util.py +11 -102
  27. fides/api/task/manual/manual_task_utils.py +5 -6
  28. fides/ui-build/static/admin/404.html +1 -1
  29. fides/ui-build/static/admin/_next/static/chunks/155-047c3806cc41295e.js +1 -0
  30. fides/ui-build/static/admin/_next/static/chunks/4608-a9941d0c236ebca1.js +1 -0
  31. fides/ui-build/static/admin/_next/static/chunks/6416-0ccadfefcdad00cc.js +1 -0
  32. fides/ui-build/static/admin/_next/static/chunks/{7476-0b6e114658b15eaa.js → 7476-d055aa931da47ac0.js} +1 -1
  33. fides/ui-build/static/admin/_next/static/chunks/{7725-dd6736855807936a.js → 7725-fdc4298dfbea6f80.js} +1 -1
  34. fides/ui-build/static/admin/_next/static/chunks/pages/{_app-a4e3c999afb28ee7.js → _app-de41f80e35acbde0.js} +1 -1
  35. fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/action-center/[monitorId]/[systemId]-3d03cd31cd99fa07.js +1 -0
  36. fides/ui-build/static/admin/_next/static/chunks/pages/integrations/{[id]-8b13bb5f7bee61c6.js → [id]-9f6c82e14ff2cad2.js} +1 -1
  37. fides/ui-build/static/admin/_next/static/chunks/pages/{integrations-6f109ef64304ef59.js → integrations-ebc9c90fe99ee68d.js} +1 -1
  38. fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/{[id]-8566e3b7b2a632fa.js → [id]-f8e3f63bea43db3b.js} +1 -1
  39. fides/ui-build/static/admin/_next/static/{PaOA8PWIbtkQn-5P5HoNz → uJYQK3qHPl-9P-RICNMQA}/_buildManifest.js +1 -1
  40. fides/ui-build/static/admin/add-systems/manual.html +1 -1
  41. fides/ui-build/static/admin/add-systems/multiple.html +1 -1
  42. fides/ui-build/static/admin/add-systems.html +1 -1
  43. fides/ui-build/static/admin/consent/configure/add-vendors.html +1 -1
  44. fides/ui-build/static/admin/consent/configure.html +1 -1
  45. fides/ui-build/static/admin/consent/privacy-experience/[id].html +1 -1
  46. fides/ui-build/static/admin/consent/privacy-experience/new.html +1 -1
  47. fides/ui-build/static/admin/consent/privacy-experience.html +1 -1
  48. fides/ui-build/static/admin/consent/privacy-notices/[id].html +1 -1
  49. fides/ui-build/static/admin/consent/privacy-notices/new.html +1 -1
  50. fides/ui-build/static/admin/consent/privacy-notices.html +1 -1
  51. fides/ui-build/static/admin/consent/properties.html +1 -1
  52. fides/ui-build/static/admin/consent/reporting.html +1 -1
  53. fides/ui-build/static/admin/consent.html +1 -1
  54. fides/ui-build/static/admin/data-catalog/[systemId]/projects/[projectUrn]/[resourceUrn].html +1 -1
  55. fides/ui-build/static/admin/data-catalog/[systemId]/projects/[projectUrn].html +1 -1
  56. fides/ui-build/static/admin/data-catalog/[systemId]/projects.html +1 -1
  57. fides/ui-build/static/admin/data-catalog/[systemId]/resources/[resourceUrn].html +1 -1
  58. fides/ui-build/static/admin/data-catalog/[systemId]/resources.html +1 -1
  59. fides/ui-build/static/admin/data-catalog.html +1 -1
  60. fides/ui-build/static/admin/data-discovery/action-center/[monitorId]/[systemId].html +1 -1
  61. fides/ui-build/static/admin/data-discovery/action-center/[monitorId].html +1 -1
  62. fides/ui-build/static/admin/data-discovery/action-center.html +1 -1
  63. fides/ui-build/static/admin/data-discovery/activity.html +1 -1
  64. fides/ui-build/static/admin/data-discovery/detection/[resourceUrn].html +1 -1
  65. fides/ui-build/static/admin/data-discovery/detection.html +1 -1
  66. fides/ui-build/static/admin/data-discovery/discovery/[resourceUrn].html +1 -1
  67. fides/ui-build/static/admin/data-discovery/discovery.html +1 -1
  68. fides/ui-build/static/admin/datamap.html +1 -1
  69. fides/ui-build/static/admin/dataset/[datasetId]/[collectionName]/[...subfieldNames].html +1 -1
  70. fides/ui-build/static/admin/dataset/[datasetId]/[collectionName].html +1 -1
  71. fides/ui-build/static/admin/dataset/[datasetId].html +1 -1
  72. fides/ui-build/static/admin/dataset/new.html +1 -1
  73. fides/ui-build/static/admin/dataset.html +1 -1
  74. fides/ui-build/static/admin/datastore-connection/[id].html +1 -1
  75. fides/ui-build/static/admin/datastore-connection/new.html +1 -1
  76. fides/ui-build/static/admin/datastore-connection.html +1 -1
  77. fides/ui-build/static/admin/index.html +1 -1
  78. fides/ui-build/static/admin/integrations/[id].html +1 -1
  79. fides/ui-build/static/admin/integrations.html +1 -1
  80. fides/ui-build/static/admin/login/[provider].html +1 -1
  81. fides/ui-build/static/admin/login.html +1 -1
  82. fides/ui-build/static/admin/messaging/[id].html +1 -1
  83. fides/ui-build/static/admin/messaging/add-template.html +1 -1
  84. fides/ui-build/static/admin/messaging.html +1 -1
  85. fides/ui-build/static/admin/poc/ant-components.html +1 -1
  86. fides/ui-build/static/admin/poc/form-experiments/AntForm.html +1 -1
  87. fides/ui-build/static/admin/poc/form-experiments/FormikAntFormItem.html +1 -1
  88. fides/ui-build/static/admin/poc/form-experiments/FormikControlled.html +1 -1
  89. fides/ui-build/static/admin/poc/form-experiments/FormikField.html +1 -1
  90. fides/ui-build/static/admin/poc/form-experiments/FormikSpreadField.html +1 -1
  91. fides/ui-build/static/admin/poc/forms.html +1 -1
  92. fides/ui-build/static/admin/poc/table-migration.html +1 -1
  93. fides/ui-build/static/admin/privacy-requests/[id].html +1 -1
  94. fides/ui-build/static/admin/privacy-requests/configure/storage.html +1 -1
  95. fides/ui-build/static/admin/privacy-requests/configure.html +1 -1
  96. fides/ui-build/static/admin/privacy-requests.html +1 -1
  97. fides/ui-build/static/admin/properties/[id].html +1 -1
  98. fides/ui-build/static/admin/properties/add-property.html +1 -1
  99. fides/ui-build/static/admin/properties.html +1 -1
  100. fides/ui-build/static/admin/reporting/datamap.html +1 -1
  101. fides/ui-build/static/admin/settings/about/alpha.html +1 -1
  102. fides/ui-build/static/admin/settings/about.html +1 -1
  103. fides/ui-build/static/admin/settings/consent/[configuration_id]/[purpose_id].html +1 -1
  104. fides/ui-build/static/admin/settings/consent.html +1 -1
  105. fides/ui-build/static/admin/settings/custom-fields.html +1 -1
  106. fides/ui-build/static/admin/settings/domain-records.html +1 -1
  107. fides/ui-build/static/admin/settings/domains.html +1 -1
  108. fides/ui-build/static/admin/settings/email-templates.html +1 -1
  109. fides/ui-build/static/admin/settings/locations.html +1 -1
  110. fides/ui-build/static/admin/settings/messaging-providers/[key].html +1 -1
  111. fides/ui-build/static/admin/settings/messaging-providers/new.html +1 -1
  112. fides/ui-build/static/admin/settings/messaging-providers.html +1 -1
  113. fides/ui-build/static/admin/settings/organization.html +1 -1
  114. fides/ui-build/static/admin/settings/privacy-requests.html +1 -1
  115. fides/ui-build/static/admin/settings/regulations.html +1 -1
  116. fides/ui-build/static/admin/systems/configure/[id]/test-datasets.html +1 -1
  117. fides/ui-build/static/admin/systems/configure/[id].html +1 -1
  118. fides/ui-build/static/admin/systems.html +1 -1
  119. fides/ui-build/static/admin/taxonomy.html +1 -1
  120. fides/ui-build/static/admin/user-management/new.html +1 -1
  121. fides/ui-build/static/admin/user-management/profile/[id].html +1 -1
  122. fides/ui-build/static/admin/user-management.html +1 -1
  123. fides/ui-build/static/admin/_next/static/chunks/155-88303b05c6e115a5.js +0 -1
  124. fides/ui-build/static/admin/_next/static/chunks/4608-96f480766541124b.js +0 -1
  125. fides/ui-build/static/admin/_next/static/chunks/6416-18d438ff85d807f8.js +0 -1
  126. fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/action-center/[monitorId]/[systemId]-b0e3f1886de28d66.js +0 -1
  127. {ethyca_fides-2.70.1rc3.dist-info → ethyca_fides-2.70.3b0.dist-info}/WHEEL +0 -0
  128. {ethyca_fides-2.70.1rc3.dist-info → ethyca_fides-2.70.3b0.dist-info}/entry_points.txt +0 -0
  129. {ethyca_fides-2.70.1rc3.dist-info → ethyca_fides-2.70.3b0.dist-info}/licenses/LICENSE +0 -0
  130. {ethyca_fides-2.70.1rc3.dist-info → ethyca_fides-2.70.3b0.dist-info}/top_level.txt +0 -0
  131. /fides/ui-build/static/admin/_next/static/chunks/{1115-7888473b3dc28cda.js → 1115-90baef2a89f361ad.js} +0 -0
  132. /fides/ui-build/static/admin/_next/static/chunks/{1817-ee9e29a6b8c4af50.js → 1817-dbde9966025d7970.js} +0 -0
  133. /fides/ui-build/static/admin/_next/static/chunks/{2040-ab6212a3074f34f9.js → 2040-fdecc41a18e40bdc.js} +0 -0
  134. /fides/ui-build/static/admin/_next/static/chunks/{3696-c25dc8d1b0e1aee1.js → 3696-90c8b336bbc46782.js} +0 -0
  135. /fides/ui-build/static/admin/_next/static/chunks/{3700-dc3f05d21e2a5ff6.js → 3700-865408b36fbee782.js} +0 -0
  136. /fides/ui-build/static/admin/_next/static/chunks/{3872-3514b712afd683c0.js → 3872-04d3afbfa41a7782.js} +0 -0
  137. /fides/ui-build/static/admin/_next/static/chunks/{502-a40d39e615f7b664.js → 502-d3ecae97b67befbd.js} +0 -0
  138. /fides/ui-build/static/admin/_next/static/chunks/{5185-33f50cf9ae17b42e.js → 5185-51eaa78e3ed6bfb7.js} +0 -0
  139. /fides/ui-build/static/admin/_next/static/chunks/{5574-b8c4cba5a6938c00.js → 5574-c31ea831371610d5.js} +0 -0
  140. /fides/ui-build/static/admin/_next/static/chunks/{5783-8de76df87af55e98.js → 5783-8f5713517ebc35f3.js} +0 -0
  141. /fides/ui-build/static/admin/_next/static/chunks/{6084-2cd165179c428a6f.js → 6084-dc473a58c3e2889b.js} +0 -0
  142. /fides/ui-build/static/admin/_next/static/chunks/{6882-447f15e87b8c48a5.js → 6882-10296485ec326e6b.js} +0 -0
  143. /fides/ui-build/static/admin/_next/static/chunks/{6954-599f2de2c902e9b2.js → 6954-4b24e1731c1cc3b3.js} +0 -0
  144. /fides/ui-build/static/admin/_next/static/chunks/{7158-835ba42fd881d8dd.js → 7158-04745cc8d684b2e7.js} +0 -0
  145. /fides/ui-build/static/admin/_next/static/chunks/{7630-e7ea13be69c118a1.js → 7630-d0d3a0fe3f95e971.js} +0 -0
  146. /fides/ui-build/static/admin/_next/static/chunks/{796-e07ac2c543f569e3.js → 796-876998c86754da97.js} +0 -0
  147. /fides/ui-build/static/admin/_next/static/chunks/{8002-25fd174aec9b077b.js → 8002-ed832921ad190832.js} +0 -0
  148. /fides/ui-build/static/admin/_next/static/chunks/{9226-2f960b7ca530642a.js → 9226-4a7027057f55ca2a.js} +0 -0
  149. /fides/ui-build/static/admin/_next/static/chunks/{9826-c02be5882205bbbc.js → 9826-ccedc28e978ca9e1.js} +0 -0
  150. /fides/ui-build/static/admin/_next/static/chunks/pages/add-systems/{manual-939253f8daf349b2.js → manual-16ecb33f09224fbb.js} +0 -0
  151. /fides/ui-build/static/admin/_next/static/chunks/pages/add-systems/{multiple-83ed7da0bb90b0a5.js → multiple-2ca59996860a33c5.js} +0 -0
  152. /fides/ui-build/static/admin/_next/static/chunks/pages/{add-systems-f90aa48500c1cbde.js → add-systems-caff552fce501f82.js} +0 -0
  153. /fides/ui-build/static/admin/_next/static/chunks/pages/consent/configure/{add-vendors-46b88bda3d7b15c5.js → add-vendors-7a258b7ecd6da4b8.js} +0 -0
  154. /fides/ui-build/static/admin/_next/static/chunks/pages/consent/{configure-c0db068d1863222f.js → configure-259ad2e10fe6f413.js} +0 -0
  155. /fides/ui-build/static/admin/_next/static/chunks/pages/consent/{privacy-experience-92a337ee96845af2.js → privacy-experience-7e78616b7b048978.js} +0 -0
  156. /fides/ui-build/static/admin/_next/static/chunks/pages/consent/privacy-notices/{[id]-1fd2cda8707314f6.js → [id]-9c23fbe813c997d0.js} +0 -0
  157. /fides/ui-build/static/admin/_next/static/chunks/pages/consent/privacy-notices/{new-2987e397445713c5.js → new-0e5e38bbcfe59fd2.js} +0 -0
  158. /fides/ui-build/static/admin/_next/static/chunks/pages/consent/{privacy-notices-59a8aff5935482ec.js → privacy-notices-3ff2fd2570f02f1c.js} +0 -0
  159. /fides/ui-build/static/admin/_next/static/chunks/pages/{consent-e5a33654a2dfaf35.js → consent-d2bf72508c3cad55.js} +0 -0
  160. /fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/projects/[projectUrn]/{[resourceUrn]-293c1f2d9aefb447.js → [resourceUrn]-06a08970907ed3f0.js} +0 -0
  161. /fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/projects/{[projectUrn]-6a4b0d49dcbf17a8.js → [projectUrn]-4a1af12d2d7cd660.js} +0 -0
  162. /fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/{projects-be7b385073f22414.js → projects-99573a1ee3ef8f4c.js} +0 -0
  163. /fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/resources/{[resourceUrn]-18501152fa1e4f40.js → [resourceUrn]-4c84d952bb1db690.js} +0 -0
  164. /fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/{resources-af80fdca3bbdc82f.js → resources-6e429b7511028d60.js} +0 -0
  165. /fides/ui-build/static/admin/_next/static/chunks/pages/{data-catalog-351caadeef03876a.js → data-catalog-56fd0f3e465e52b6.js} +0 -0
  166. /fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/action-center/{[monitorId]-e8ec4080d9a3e22f.js → [monitorId]-b74dfaf4f4126e57.js} +0 -0
  167. /fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/{action-center-1554afcb8b9da2ab.js → action-center-040813022f0890c9.js} +0 -0
  168. /fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/detection/{[resourceUrn]-0497f3ffdb632516.js → [resourceUrn]-844a8de0d1b506e2.js} +0 -0
  169. /fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/{detection-a780390da99f3e43.js → detection-11b07cf2d91b17ef.js} +0 -0
  170. /fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/discovery/{[resourceUrn]-1901c26cdde820da.js → [resourceUrn]-65dc7f5a2ce3eae7.js} +0 -0
  171. /fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/{discovery-0cea22af5929c81f.js → discovery-4d378516817cf00b.js} +0 -0
  172. /fides/ui-build/static/admin/_next/static/chunks/pages/{datamap-619f27c745188adb.js → datamap-4a05303416dcb657.js} +0 -0
  173. /fides/ui-build/static/admin/_next/static/chunks/pages/dataset/[datasetId]/[collectionName]/{[...subfieldNames]-ef71f387fbbab425.js → [...subfieldNames]-d4031e438c363fff.js} +0 -0
  174. /fides/ui-build/static/admin/_next/static/chunks/pages/dataset/[datasetId]/{[collectionName]-d790553662caf5c3.js → [collectionName]-9463af37079762d0.js} +0 -0
  175. /fides/ui-build/static/admin/_next/static/chunks/pages/dataset/{[datasetId]-cb63db8594fe8dc1.js → [datasetId]-60a4a9eb4aab4c11.js} +0 -0
  176. /fides/ui-build/static/admin/_next/static/chunks/pages/dataset/{new-78e052c8f95110c4.js → new-910e28bce6a98f3d.js} +0 -0
  177. /fides/ui-build/static/admin/_next/static/chunks/pages/{dataset-d6d7ee8bd8858a8a.js → dataset-108630926347724e.js} +0 -0
  178. /fides/ui-build/static/admin/_next/static/chunks/pages/datastore-connection/{[id]-cc149157d290a94d.js → [id]-5119e6602507157f.js} +0 -0
  179. /fides/ui-build/static/admin/_next/static/chunks/pages/datastore-connection/{new-4c9fb068a5561658.js → new-cda4e7b5b888e17c.js} +0 -0
  180. /fides/ui-build/static/admin/_next/static/chunks/pages/{datastore-connection-a832084ce294f8af.js → datastore-connection-223c2d1ded51bfb1.js} +0 -0
  181. /fides/ui-build/static/admin/_next/static/chunks/pages/{index-269b8f81546dad66.js → index-b74d1e8608ae5b5d.js} +0 -0
  182. /fides/ui-build/static/admin/_next/static/chunks/pages/messaging/{[id]-d8c5c03fb2f31d65.js → [id]-e8d2140787045acd.js} +0 -0
  183. /fides/ui-build/static/admin/_next/static/chunks/pages/messaging/{add-template-0e0c06e3c8aabe02.js → add-template-e3f93462a08251bf.js} +0 -0
  184. /fides/ui-build/static/admin/_next/static/chunks/pages/{messaging-3f15804cf9625f01.js → messaging-b5f7d6afdecd013d.js} +0 -0
  185. /fides/ui-build/static/admin/_next/static/chunks/pages/poc/{table-migration-e551fccfcaae76e7.js → table-migration-329333a88f3826eb.js} +0 -0
  186. /fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/configure/{storage-1b38b656807ed0cd.js → storage-648d775d0fce49dc.js} +0 -0
  187. /fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/{configure-b00532a0ad4f6927.js → configure-8f577df28ebca869.js} +0 -0
  188. /fides/ui-build/static/admin/_next/static/chunks/pages/{privacy-requests-2c82cf73d20416f2.js → privacy-requests-1eeb320867dbebf4.js} +0 -0
  189. /fides/ui-build/static/admin/_next/static/chunks/pages/properties/{[id]-322a01e2bceab3fb.js → [id]-57a75c7e9659271a.js} +0 -0
  190. /fides/ui-build/static/admin/_next/static/chunks/pages/properties/{add-property-777ed2d73812043d.js → add-property-8964c2300206bc89.js} +0 -0
  191. /fides/ui-build/static/admin/_next/static/chunks/pages/settings/{consent-55e36839d219a503.js → consent-1ae1257f5b388924.js} +0 -0
  192. /fides/ui-build/static/admin/_next/static/chunks/pages/settings/{custom-fields-26ce8fc493993765.js → custom-fields-c2f1376aca192114.js} +0 -0
  193. /fides/ui-build/static/admin/_next/static/chunks/pages/settings/{domain-records-7ddf9d992fe714a6.js → domain-records-586505df9d853f1f.js} +0 -0
  194. /fides/ui-build/static/admin/_next/static/chunks/pages/settings/{domains-7c78ae51f0dd7102.js → domains-a3275554ffe8e640.js} +0 -0
  195. /fides/ui-build/static/admin/_next/static/chunks/pages/settings/{email-templates-05ffbda19ab894b9.js → email-templates-604790638c656fbd.js} +0 -0
  196. /fides/ui-build/static/admin/_next/static/chunks/pages/settings/{locations-77fb85bdd0be42b5.js → locations-be2a885150adc133.js} +0 -0
  197. /fides/ui-build/static/admin/_next/static/chunks/pages/settings/messaging-providers/{[key]-b0d93bf478bf63ee.js → [key]-8df31428446a6a96.js} +0 -0
  198. /fides/ui-build/static/admin/_next/static/chunks/pages/settings/messaging-providers/{new-084f9756b9987285.js → new-af1471bf4571d5d3.js} +0 -0
  199. /fides/ui-build/static/admin/_next/static/chunks/pages/settings/{messaging-providers-6c51ffd46bb598e7.js → messaging-providers-8d92be437793c96f.js} +0 -0
  200. /fides/ui-build/static/admin/_next/static/chunks/pages/settings/{organization-44456bfe54ac4ad5.js → organization-3c86162afe9759df.js} +0 -0
  201. /fides/ui-build/static/admin/_next/static/chunks/pages/settings/{privacy-requests-fbe7e8030d837aed.js → privacy-requests-8cbdfd08e0fa88fb.js} +0 -0
  202. /fides/ui-build/static/admin/_next/static/chunks/pages/settings/{regulations-2866ac99faa5a542.js → regulations-4fe3b90747d885e5.js} +0 -0
  203. /fides/ui-build/static/admin/_next/static/chunks/pages/systems/configure/[id]/{test-datasets-a86bafe1b4e1205f.js → test-datasets-2deb6becece69d46.js} +0 -0
  204. /fides/ui-build/static/admin/_next/static/chunks/pages/systems/configure/{[id]-1895c6a13b543436.js → [id]-589952aa1a31c33d.js} +0 -0
  205. /fides/ui-build/static/admin/_next/static/chunks/pages/{systems-d266cc062b56beb2.js → systems-916238dcc0596957.js} +0 -0
  206. /fides/ui-build/static/admin/_next/static/chunks/pages/{taxonomy-07848c232d960f6a.js → taxonomy-616f5a7cbb99e46d.js} +0 -0
  207. /fides/ui-build/static/admin/_next/static/chunks/pages/user-management/{new-6304dad2c5fab694.js → new-629c88e90699369b.js} +0 -0
  208. /fides/ui-build/static/admin/_next/static/chunks/pages/user-management/profile/{[id]-ff4711db191099cd.js → [id]-98f737e735eaa0f0.js} +0 -0
  209. /fides/ui-build/static/admin/_next/static/chunks/pages/{user-management-82fcf1151e2fe2ba.js → user-management-562624e5461083ec.js} +0 -0
  210. /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-19T12:20:48-0700",
11
+ "date": "2025-09-19T17:26:35-0700",
12
12
  "dirty": false,
13
13
  "error": null,
14
- "full-revisionid": "8aaac09cdc6c1b430cb6b26467c533c72436c9aa",
15
- "version": "2.70.1rc3"
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
- Contains all of the generic CRUD endpoints that can be
3
- generated programmatically for each resource.
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("Migrations needs to be generated!")
162
+ raise SystemExit("Migration needs to be generated!")
163
163
  print("No migrations need to be generated.")