ethyca-fides 2.71.1b1__py2.py3-none-any.whl → 2.74.0rc1__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 (495) hide show
  1. {ethyca_fides-2.71.1b1.dist-info → ethyca_fides-2.74.0rc1.dist-info}/METADATA +3 -2
  2. {ethyca_fides-2.71.1b1.dist-info → ethyca_fides-2.74.0rc1.dist-info}/RECORD +377 -327
  3. fides/_version.py +3 -3
  4. fides/api/alembic/alembic.ini +5 -1
  5. fides/api/alembic/migrations/env.py +7 -1
  6. fides/api/alembic/migrations/versions/4bfbeff34611_add_polling_status.py +68 -0
  7. fides/api/alembic/migrations/versions/65a1bc82ae09_adds_experience_config_for_delete_.py +53 -0
  8. fides/api/alembic/migrations/versions/7db29f9cd77b_create_new_sub_request_table.py +95 -0
  9. fides/api/alembic/migrations/versions/a55e12c2c2df_add_tagging_instructions_to_data_.py +29 -0
  10. fides/api/alembic/migrations/versions/b97e92b038d2_add_digest_execution_model.py +117 -0
  11. fides/api/alembic/migrations/versions/c09e76282dd1_add_privacy_request_duplication_cols.py +64 -0
  12. fides/api/alembic/migrations/versions/xx_2025_10_17_1603_5093e92e2a5a_add_consent_data_v3_to_the_database.py +72 -0
  13. fides/api/alembic/migrations/versions/xx_2025_10_27_1834_67f0f2f4748e_adding_identity_definition_model.py +45 -0
  14. fides/api/alembic/migrations/versions/xx_2025_10_29_1659_80d28dea3b6b_added_duplicate_group_table.py +79 -0
  15. fides/api/alembic/migrations/versions/xx_2025_11_05_0200_f1a2b3c4d5e6_create_staged_resource_error_table.py +82 -0
  16. fides/api/api/v1/endpoints/connection_endpoints.py +38 -45
  17. fides/api/api/v1/endpoints/generic_overrides.py +75 -6
  18. fides/api/api/v1/endpoints/privacy_request_endpoints.py +60 -6
  19. fides/api/api/v1/endpoints/saas_config_endpoints.py +60 -48
  20. fides/api/api/v1/endpoints/system.py +11 -43
  21. fides/api/api/v1/endpoints/user_endpoints.py +8 -1
  22. fides/api/app_setup.py +1 -3
  23. fides/api/common_exceptions.py +8 -0
  24. fides/api/db/base.py +2 -0
  25. fides/api/db/database.py +257 -2
  26. fides/api/email_templates/get_email_template.py +3 -0
  27. fides/api/email_templates/template_names.py +1 -0
  28. fides/api/email_templates/templates/manual_task_digest.html +316 -0
  29. fides/api/main.py +2 -2
  30. fides/api/models/attachment.py +1 -0
  31. fides/api/models/detection_discovery/__init__.py +2 -0
  32. fides/api/models/detection_discovery/core.py +10 -0
  33. fides/api/models/detection_discovery/monitor_task.py +1 -0
  34. fides/api/models/detection_discovery/staged_resource_error.py +25 -0
  35. fides/api/models/digest/__init__.py +2 -0
  36. fides/api/models/digest/digest_config.py +10 -1
  37. fides/api/models/digest/digest_execution.py +142 -0
  38. fides/api/models/event_audit.py +17 -0
  39. fides/api/models/identity_definition.py +65 -0
  40. fides/api/models/messaging_template.py +7 -0
  41. fides/api/models/privacy_experience.py +11 -0
  42. fides/api/models/privacy_preference.py +2 -0
  43. fides/api/models/privacy_request/duplicate_group.py +84 -0
  44. fides/api/models/privacy_request/privacy_request.py +56 -8
  45. fides/api/models/privacy_request/request_task.py +98 -1
  46. fides/api/models/sql_models.py +3 -0
  47. fides/api/models/taxonomy.py +14 -4
  48. fides/api/models/v3/__init__.py +0 -0
  49. fides/api/models/v3/privacy_preferences.py +85 -0
  50. fides/api/models/worker_task.py +8 -0
  51. fides/api/schemas/application_config.py +28 -0
  52. fides/api/schemas/connection_configuration/connection_config.py +1 -30
  53. fides/api/schemas/messaging/messaging.py +15 -0
  54. fides/api/schemas/privacy_request.py +17 -3
  55. fides/api/schemas/saas/async_polling_configuration.py +81 -0
  56. fides/api/schemas/saas/saas_config.py +10 -3
  57. fides/api/schemas/saas/strategy_configuration.py +0 -12
  58. fides/api/schemas/taxonomy_extensions.py +8 -0
  59. fides/api/service/async_dsr/handlers/__init__.py +0 -0
  60. fides/api/service/async_dsr/handlers/polling_attachment_handler.py +155 -0
  61. fides/api/service/async_dsr/handlers/polling_request_handler.py +88 -0
  62. fides/api/service/async_dsr/handlers/polling_response_handler.py +261 -0
  63. fides/api/service/async_dsr/handlers/polling_sub_request_handler.py +123 -0
  64. fides/api/service/async_dsr/strategies/__init__.py +0 -0
  65. fides/api/service/async_dsr/strategies/async_dsr_strategy.py +52 -0
  66. fides/api/service/async_dsr/strategies/async_dsr_strategy_callback.py +199 -0
  67. fides/api/service/async_dsr/strategies/async_dsr_strategy_factory.py +72 -0
  68. fides/api/service/async_dsr/strategies/async_dsr_strategy_polling.py +686 -0
  69. fides/api/service/async_dsr/utils.py +130 -0
  70. fides/api/service/connectors/bigquery_connector.py +34 -16
  71. fides/api/service/connectors/fides/fides_client.py +63 -1
  72. fides/api/service/connectors/query_configs/saas_query_config.py +160 -79
  73. fides/api/service/connectors/saas/connector_registry_service.py +1 -138
  74. fides/api/service/connectors/saas_connector.py +116 -94
  75. fides/api/service/connectors/sql_connector.py +14 -4
  76. fides/api/service/deps.py +8 -0
  77. fides/api/service/messaging/message_dispatch_service.py +38 -1
  78. fides/api/service/privacy_request/attachment_handling.py +9 -2
  79. fides/api/service/privacy_request/duplication_detection.py +424 -0
  80. fides/api/service/privacy_request/request_runner_service.py +46 -84
  81. fides/api/service/privacy_request/request_service.py +47 -74
  82. fides/api/service/saas_request/saas_request_override_factory.py +71 -1
  83. fides/api/task/execute_request_tasks.py +17 -9
  84. fides/api/task/filter_results.py +35 -2
  85. fides/api/task/graph_task.py +37 -8
  86. fides/api/tasks/__init__.py +0 -1
  87. fides/api/util/connection_util.py +99 -215
  88. fides/api/util/event_audit_util.py +230 -0
  89. fides/api/util/logger_context_utils.py +3 -1
  90. fides/api/util/masking_util.py +31 -0
  91. fides/api/util/memory_watchdog.py +118 -0
  92. fides/api/util/saas_config_updater.py +66 -0
  93. fides/api/util/saas_util.py +28 -1
  94. fides/common/api/scope_registry.py +0 -7
  95. fides/common/api/v1/urn_registry.py +2 -0
  96. fides/config/__init__.py +10 -1
  97. fides/config/celery_settings.py +42 -0
  98. fides/config/config_proxy.py +10 -0
  99. fides/config/duplicate_detection_settings.py +31 -0
  100. fides/config/execution_settings.py +7 -3
  101. fides/config/utils.py +5 -0
  102. fides/data/language/languages.yml +2 -0
  103. fides/service/connection/__init__.py +0 -0
  104. fides/service/connection/connection_service.py +651 -0
  105. fides/service/event_audit_service.py +16 -22
  106. fides/service/privacy_request/privacy_request_service.py +162 -43
  107. fides/service/taxonomy/handlers/legacy_handler.py +3 -3
  108. fides/service/taxonomy/taxonomy_service.py +15 -15
  109. fides/ui-build/static/admin/404.html +1 -1
  110. fides/ui-build/static/admin/_next/static/FZTEUgamBvOhgPWce135w/_buildManifest.js +1 -0
  111. fides/ui-build/static/admin/_next/static/chunks/{1115-90baef2a89f361ad.js → 1115-0da062111df309bf.js} +1 -1
  112. fides/ui-build/static/admin/_next/static/chunks/{6148-59a59d5c5925344f.js → 1533-84e250d1f26e6d7d.js} +1 -1
  113. fides/ui-build/static/admin/_next/static/chunks/1817-508b16628e8eb225.js +1 -0
  114. fides/ui-build/static/admin/_next/static/chunks/1840-5bbe6d878ed73fb4.js +1 -0
  115. fides/ui-build/static/admin/_next/static/chunks/{1975.78e719130cfe3fd6.js → 1975.afe8cad52f904fcf.js} +1 -1
  116. fides/ui-build/static/admin/_next/static/chunks/{2040-fdecc41a18e40bdc.js → 2040-fe1a06d82c0413f1.js} +1 -1
  117. fides/ui-build/static/admin/_next/static/chunks/2397-40b8db1cb2f23e2a.js +1 -0
  118. fides/ui-build/static/admin/_next/static/chunks/2921-b10bbc3a9104933b.js +1 -0
  119. fides/ui-build/static/admin/_next/static/chunks/3214-90ce0a366b0f461a.js +1 -0
  120. fides/ui-build/static/admin/_next/static/chunks/3377-eb5cd82b3ee6ab0c.js +1 -0
  121. fides/ui-build/static/admin/_next/static/chunks/3615-5e2d062d684b8fa1.js +1 -0
  122. fides/ui-build/static/admin/_next/static/chunks/3655-93ecd09f1cb9dbef.js +1 -0
  123. fides/ui-build/static/admin/_next/static/chunks/{3696-90c8b336bbc46782.js → 3696-6db05a35ae806825.js} +1 -1
  124. fides/ui-build/static/admin/_next/static/chunks/{3923-98bea73b618292aa.js → 3923-44255a63d6d80ff5.js} +1 -1
  125. fides/ui-build/static/admin/_next/static/chunks/401-fe8db8b5d8f600de.js +1 -0
  126. fides/ui-build/static/admin/_next/static/chunks/{4259.d1507e0db19cbed7.js → 4259.05038c9b78467244.js} +1 -1
  127. fides/ui-build/static/admin/_next/static/chunks/4277-13bcf4516326d474.js +1 -0
  128. fides/ui-build/static/admin/_next/static/chunks/431-e01ee730c8ad9ece.js +1 -0
  129. fides/ui-build/static/admin/_next/static/chunks/4496-bed72bd5639075be.js +1 -0
  130. fides/ui-build/static/admin/_next/static/chunks/454-d5c2c84f1a14e4f1.js +1 -0
  131. fides/ui-build/static/admin/_next/static/chunks/4817-d29f40d4ce729f37.js +1 -0
  132. fides/ui-build/static/admin/_next/static/chunks/5185-b2ac9fecc00b67e7.js +1 -0
  133. fides/ui-build/static/admin/_next/static/chunks/5258-4672eae0656430f9.js +1 -0
  134. fides/ui-build/static/admin/_next/static/chunks/5487-8dedd1ca94fbba54.js +1 -0
  135. fides/ui-build/static/admin/_next/static/chunks/549-6e2442db533a711e.js +1 -0
  136. fides/ui-build/static/admin/_next/static/chunks/5643-55d758444a8d7162.js +1 -0
  137. fides/ui-build/static/admin/_next/static/chunks/5724-1e40975cefa405f0.js +1 -0
  138. fides/ui-build/static/admin/_next/static/chunks/{5783-d119cb132abd8a91.js → 5783-6055edba275155ca.js} +1 -1
  139. fides/ui-build/static/admin/_next/static/chunks/6084-82e2df433fe5ba85.js +1 -0
  140. fides/ui-build/static/admin/_next/static/chunks/6344-3e21444374f8059f.js +1 -0
  141. fides/ui-build/static/admin/_next/static/chunks/6362-12e3fd23130ccf15.js +1 -0
  142. fides/ui-build/static/admin/_next/static/chunks/6372-a8d0f08dac1ebd0e.js +1 -0
  143. fides/ui-build/static/admin/_next/static/chunks/6780-3db5133c1f4c6f1e.js +1 -0
  144. fides/ui-build/static/admin/_next/static/chunks/6853-1adbdf6418ec3d62.js +1 -0
  145. fides/ui-build/static/admin/_next/static/chunks/6954-aa0c60ee1092be8e.js +1 -0
  146. fides/ui-build/static/admin/_next/static/chunks/7059-12be23a345a94c1e.js +1 -0
  147. fides/ui-build/static/admin/_next/static/chunks/7079-6e6efc3396ff1ebb.js +1 -0
  148. fides/ui-build/static/admin/_next/static/chunks/7218-d297a4a06f924b09.js +1 -0
  149. fides/ui-build/static/admin/_next/static/chunks/7245-686665c197b58e68.js +1 -0
  150. fides/ui-build/static/admin/_next/static/chunks/{7476-d055aa931da47ac0.js → 7476-a43c046c24de37cc.js} +1 -1
  151. fides/ui-build/static/admin/_next/static/chunks/7630-c654c61ba98d8c74.js +1 -0
  152. fides/ui-build/static/admin/_next/static/chunks/7654-716cf37a020b3d11.js +1 -0
  153. fides/ui-build/static/admin/_next/static/chunks/{796-02086581996a0548.js → 796-e83ace3c6ab99ac7.js} +1 -1
  154. fides/ui-build/static/admin/_next/static/chunks/8212-b9e8295ca883c9f8.js +1 -0
  155. fides/ui-build/static/admin/_next/static/chunks/8939-4925751c57c51f87.js +1 -0
  156. fides/ui-build/static/admin/_next/static/chunks/9014-eeae6f581158e645.js +1 -0
  157. fides/ui-build/static/admin/_next/static/chunks/9046-e4daf28840a69fd6.js +1 -0
  158. fides/ui-build/static/admin/_next/static/chunks/{5596-29a7c8322530b7cf.js → 9195-550bd50d538c5f79.js} +3 -3
  159. fides/ui-build/static/admin/_next/static/chunks/9330-e519adec48222d45.js +1 -0
  160. fides/ui-build/static/admin/_next/static/chunks/9341-bfc0e59bcc56c604.js +1 -0
  161. fides/ui-build/static/admin/_next/static/chunks/9450-b7b7bb1d755ecf57.js +1 -0
  162. fides/ui-build/static/admin/_next/static/chunks/{9676.b86ecbcfe5afd25d.js → 9676.7d029a5383595b69.js} +1 -1
  163. fides/ui-build/static/admin/_next/static/chunks/9682-da69ac5d06f281da.js +1 -0
  164. fides/ui-build/static/admin/_next/static/chunks/{9826-ccedc28e978ca9e1.js → 9826-657652d55936a8c6.js} +1 -1
  165. fides/ui-build/static/admin/_next/static/chunks/9911-ece086f2230e34f0.js +1 -0
  166. fides/ui-build/static/admin/_next/static/chunks/9965-56c5e4fc9cd3b3a5.js +1 -0
  167. fides/ui-build/static/admin/_next/static/chunks/pages/{404-2eb8aed4939f1142.js → 404-d079b8bf35250874.js} +1 -1
  168. fides/ui-build/static/admin/_next/static/chunks/pages/{_app-c1c2f757b1f3da12.js → _app-e64fd8510033a27c.js} +63 -63
  169. fides/ui-build/static/admin/_next/static/chunks/pages/add-systems/manual-ddd9d7d40847fc28.js +1 -0
  170. fides/ui-build/static/admin/_next/static/chunks/pages/add-systems/multiple-b4d18c1f4d414f5f.js +1 -0
  171. fides/ui-build/static/admin/_next/static/chunks/pages/add-systems-d451bc8932330141.js +1 -0
  172. fides/ui-build/static/admin/_next/static/chunks/pages/consent/configure/{add-vendors-7a258b7ecd6da4b8.js → add-vendors-c24663cd5dec57db.js} +1 -1
  173. fides/ui-build/static/admin/_next/static/chunks/pages/consent/{configure-fb5017ff5fa54fcc.js → configure-d93418688bd258eb.js} +1 -1
  174. fides/ui-build/static/admin/_next/static/chunks/pages/consent/privacy-experience/{[id]-e1e2fd704ac2d71d.js → [id]-9b1f2b1c06968166.js} +1 -1
  175. fides/ui-build/static/admin/_next/static/chunks/pages/consent/privacy-experience/{new-a5e738a234dadc7e.js → new-115a085e5d42de45.js} +1 -1
  176. fides/ui-build/static/admin/_next/static/chunks/pages/consent/privacy-experience-d9b7b311195df29e.js +1 -0
  177. fides/ui-build/static/admin/_next/static/chunks/pages/consent/privacy-notices/{[id]-5fc78b78a51c239c.js → [id]-3de34624829cbce8.js} +1 -1
  178. fides/ui-build/static/admin/_next/static/chunks/pages/consent/privacy-notices/{new-b79bcb93b5f4c734.js → new-dc95e7ed278d1a29.js} +1 -1
  179. fides/ui-build/static/admin/_next/static/chunks/pages/consent/privacy-notices-cdfc9bb19f47c709.js +1 -0
  180. fides/ui-build/static/admin/_next/static/chunks/pages/consent/{properties-069f4e3ee96ebf77.js → properties-0b995b01dc4dbd1f.js} +1 -1
  181. fides/ui-build/static/admin/_next/static/chunks/pages/consent/reporting-e3ad3a55624e302a.js +1 -0
  182. fides/ui-build/static/admin/_next/static/chunks/pages/{consent-d2bf72508c3cad55.js → consent-b37ed76849330edd.js} +1 -1
  183. fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/projects/[projectUrn]/{[resourceUrn]-2fa4b3a58f75f81d.js → [resourceUrn]-dd82729296dee5c5.js} +1 -1
  184. fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/projects/[projectUrn]-49e5477eb1a11b92.js +1 -0
  185. fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/projects-dfc1ead4a12c9ffa.js +1 -0
  186. fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/resources/{[resourceUrn]-5b31e3d7727b917a.js → [resourceUrn]-8442eb219958ac7e.js} +1 -1
  187. fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/resources-feda358d1801c18d.js +1 -0
  188. fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog-d16acb6fc07aad46.js +1 -0
  189. fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/action-center/datastore/[monitorId]-c51a1e98c45d231a.js +1 -0
  190. fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/action-center/datastore-4498881c26f1458d.js +1 -0
  191. fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/action-center/website/[monitorId]/[systemId]-bcfe38eebca30f8c.js +1 -0
  192. fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/action-center/website/[monitorId]-f66d0655897c4400.js +1 -0
  193. fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/action-center/website-5b3e0009d442bc3f.js +1 -0
  194. fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/action-center-6f1e012cd641da19.js +1 -0
  195. fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/activity-581d6248fcf98d17.js +1 -0
  196. fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/detection/{[resourceUrn]-844a8de0d1b506e2.js → [resourceUrn]-ddc1c1641e1e9430.js} +1 -1
  197. fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/{detection-11b07cf2d91b17ef.js → detection-2b48f7e524743b2b.js} +1 -1
  198. fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/discovery/{[resourceUrn]-5525cf287d4ab493.js → [resourceUrn]-862b67418600251e.js} +1 -1
  199. fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/{discovery-ed4723e1b67d890e.js → discovery-0ffec855f5df262c.js} +1 -1
  200. fides/ui-build/static/admin/_next/static/chunks/pages/datamap-6a030ab8c2e2b0db.js +1 -0
  201. fides/ui-build/static/admin/_next/static/chunks/pages/dataset/[datasetId]/[collectionName]/[...subfieldNames]-6cb66f649b8ca4bf.js +1 -0
  202. fides/ui-build/static/admin/_next/static/chunks/pages/dataset/[datasetId]/[collectionName]-0b008dad90b00aaa.js +1 -0
  203. fides/ui-build/static/admin/_next/static/chunks/pages/dataset/[datasetId]-5566edf9a9d1be2d.js +1 -0
  204. fides/ui-build/static/admin/_next/static/chunks/pages/dataset/new-d4ca1f485b6e9e02.js +1 -0
  205. fides/ui-build/static/admin/_next/static/chunks/pages/dataset-85dee7e81dc4bafb.js +1 -0
  206. fides/ui-build/static/admin/_next/static/chunks/pages/datastore-connection/[id]-e905e018a2cab35d.js +1 -0
  207. fides/ui-build/static/admin/_next/static/chunks/pages/datastore-connection/new-912723bc86299b1a.js +1 -0
  208. fides/ui-build/static/admin/_next/static/chunks/pages/datastore-connection-f1f0affc18327033.js +1 -0
  209. fides/ui-build/static/admin/_next/static/chunks/pages/{fides-js-docs-1f4335dca5c09860.js → fides-js-docs-5235760b3e508d7d.js} +1 -1
  210. fides/ui-build/static/admin/_next/static/chunks/pages/{index-b74d1e8608ae5b5d.js → index-692d27dbe9392c9f.js} +1 -1
  211. fides/ui-build/static/admin/_next/static/chunks/pages/integrations/[id]-1b94e2d769a182b2.js +1 -0
  212. fides/ui-build/static/admin/_next/static/chunks/pages/integrations-adfe6c5ac5b703d0.js +1 -0
  213. fides/ui-build/static/admin/_next/static/chunks/pages/new-privacy-requests-f9be7080ebbb7445.js +1 -0
  214. fides/ui-build/static/admin/_next/static/chunks/pages/notifications/digests/[id]-caaa8602a1d449b1.js +1 -0
  215. fides/ui-build/static/admin/_next/static/chunks/pages/notifications/digests/new-9b106b1d2d93985b.js +1 -0
  216. fides/ui-build/static/admin/_next/static/chunks/pages/notifications/digests-6a1ded8cdde836c4.js +1 -0
  217. fides/ui-build/static/admin/_next/static/chunks/pages/notifications/providers/[key]-f94e3accf9507ebf.js +1 -0
  218. fides/ui-build/static/admin/_next/static/chunks/pages/notifications/providers/new-5e83220ff1f2a250.js +1 -0
  219. fides/ui-build/static/admin/_next/static/chunks/pages/notifications/providers-a03cbd698a23e5b3.js +1 -0
  220. fides/ui-build/static/admin/_next/static/chunks/pages/notifications/templates/[id]-3cde574b3c8447c0.js +1 -0
  221. fides/ui-build/static/admin/_next/static/chunks/pages/notifications/templates/add-template-0448bb4ae8536c58.js +1 -0
  222. fides/ui-build/static/admin/_next/static/chunks/pages/notifications/templates-1621a4b87c432117.js +1 -0
  223. fides/ui-build/static/admin/_next/static/chunks/pages/notifications-4ea28f6b1dd63642.js +1 -0
  224. fides/ui-build/static/admin/_next/static/chunks/pages/poc/ant-components-e02516d9fd314528.js +1 -0
  225. fides/ui-build/static/admin/_next/static/chunks/pages/poc/form-experiments/AntForm-fec08bea801b4918.js +1 -0
  226. fides/ui-build/static/admin/_next/static/chunks/pages/poc/form-experiments/FormikAntFormItem-d911e5fbf5a4a888.js +1 -0
  227. fides/ui-build/static/admin/_next/static/chunks/pages/poc/form-experiments/FormikControlled-91b1adcac6a57b2d.js +1 -0
  228. fides/ui-build/static/admin/_next/static/chunks/pages/poc/form-experiments/FormikField-de309d8813b1ebfb.js +1 -0
  229. fides/ui-build/static/admin/_next/static/chunks/pages/poc/forms-f2943c1309062284.js +1 -0
  230. fides/ui-build/static/admin/_next/static/chunks/pages/poc/{table-migration-29fb7b39f8962650.js → table-migration-03eda417711ae909.js} +1 -1
  231. fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/[id]-1fe486f3af832c80.js +1 -0
  232. fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/configure/storage-ea6f78fa8b2d3f6c.js +1 -0
  233. fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/{configure-8f577df28ebca869.js → configure-bda7b474493e7128.js} +1 -1
  234. fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests-2c0ec8fed16c20ae.js +1 -0
  235. fides/ui-build/static/admin/_next/static/chunks/pages/properties/{[id]-57a75c7e9659271a.js → [id]-30d298a47e85709f.js} +1 -1
  236. fides/ui-build/static/admin/_next/static/chunks/pages/properties/{add-property-8964c2300206bc89.js → add-property-438084cca0d0f10d.js} +1 -1
  237. fides/ui-build/static/admin/_next/static/chunks/pages/{properties-08472b2a6bf1d392.js → properties-17fd44d98f5bd5b6.js} +1 -1
  238. fides/ui-build/static/admin/_next/static/chunks/pages/reporting/datamap-baf77d34a3b3bece.js +1 -0
  239. fides/ui-build/static/admin/_next/static/chunks/pages/sandbox/privacy-notices-8c80391025ca7339.js +1 -0
  240. fides/ui-build/static/admin/_next/static/chunks/pages/settings/consent/[configuration_id]/[purpose_id]-7c19810858b708cc.js +1 -0
  241. fides/ui-build/static/admin/_next/static/chunks/pages/settings/consent-ee8820fe0fa14c77.js +1 -0
  242. fides/ui-build/static/admin/_next/static/chunks/pages/settings/custom-fields/{[id]-bd1042a0e9be6aff.js → [id]-8eb862182f19a6c2.js} +1 -1
  243. fides/ui-build/static/admin/_next/static/chunks/pages/settings/custom-fields/{new-469ad83c8cfa1290.js → new-37c29ef618e9fe3c.js} +1 -1
  244. fides/ui-build/static/admin/_next/static/chunks/pages/settings/custom-fields-1db425150dcb1b6b.js +1 -0
  245. fides/ui-build/static/admin/_next/static/chunks/pages/settings/{domain-records-744f669431b84f71.js → domain-records-e334b43fa5c5b1e6.js} +1 -1
  246. fides/ui-build/static/admin/_next/static/chunks/pages/settings/domains-9d18eb5c38d85522.js +1 -0
  247. fides/ui-build/static/admin/_next/static/chunks/pages/settings/{email-templates-604790638c656fbd.js → email-templates-cb937ed7c4b1e5a8.js} +1 -1
  248. fides/ui-build/static/admin/_next/static/chunks/pages/settings/{locations-be2a885150adc133.js → locations-835281251f0785cd.js} +1 -1
  249. fides/ui-build/static/admin/_next/static/chunks/pages/settings/{organization-3c86162afe9759df.js → organization-7fd050c92866938c.js} +1 -1
  250. fides/ui-build/static/admin/_next/static/chunks/pages/settings/privacy-requests-59ea66130fca0d05.js +1 -0
  251. fides/ui-build/static/admin/_next/static/chunks/pages/settings/{regulations-4fe3b90747d885e5.js → regulations-b0fe1051d908f366.js} +1 -1
  252. fides/ui-build/static/admin/_next/static/chunks/pages/systems/configure/[id]/test-datasets-f108bf5015144d2f.js +1 -0
  253. fides/ui-build/static/admin/_next/static/chunks/pages/systems/configure/{[id]-4d470bbf199a2f9c.js → [id]-0e7c7228d01290ea.js} +1 -1
  254. fides/ui-build/static/admin/_next/static/chunks/pages/systems-adc13b542e10a37d.js +1 -0
  255. fides/ui-build/static/admin/_next/static/chunks/pages/taxonomy-23dd250da26511c5.js +1 -0
  256. fides/ui-build/static/admin/_next/static/chunks/pages/user-management/profile/{[id]-98f737e735eaa0f0.js → [id]-aed30fb22ae7c9ec.js} +1 -1
  257. fides/ui-build/static/admin/_next/static/chunks/pages/{user-management-562624e5461083ec.js → user-management-6b88ca3e02ee67c9.js} +1 -1
  258. fides/ui-build/static/admin/_next/static/chunks/webpack-6f97ebe373e7ef6b.js +1 -0
  259. fides/ui-build/static/admin/_next/static/css/012b10627a654d5c.css +1 -0
  260. fides/ui-build/static/admin/_next/static/css/05d05fc31d09638b.css +1 -0
  261. fides/ui-build/static/admin/_next/static/css/0fd6e0884cfcc5f3.css +1 -0
  262. fides/ui-build/static/admin/_next/static/css/14ba79c49597d37a.css +1 -0
  263. fides/ui-build/static/admin/_next/static/css/{34a7eb08b86ddb57.css → 3d6582469f7d56e0.css} +1 -1
  264. fides/ui-build/static/admin/_next/static/css/4861ca3e088f2d05.css +1 -0
  265. fides/ui-build/static/admin/_next/static/css/65ae906f224cd8ae.css +1 -0
  266. fides/ui-build/static/admin/_next/static/css/a1800714b486e230.css +1 -0
  267. fides/ui-build/static/admin/_next/static/css/af32fcac7a177a0e.css +1 -0
  268. fides/ui-build/static/admin/_next/static/css/cb417f0587918f85.css +1 -0
  269. fides/ui-build/static/admin/_next/static/css/d5701118537cbdd2.css +1 -0
  270. fides/ui-build/static/admin/_next/static/css/dd15c278b964de80.css +1 -0
  271. fides/ui-build/static/admin/_next/static/css/{5f393dea1c0d031c.css → f89607996ad54f4b.css} +1 -1
  272. fides/ui-build/static/admin/_next/static/css/f9a2a44d3d34c904.css +1 -0
  273. fides/ui-build/static/admin/add-systems/manual.html +1 -1
  274. fides/ui-build/static/admin/add-systems/multiple.html +1 -1
  275. fides/ui-build/static/admin/add-systems.html +1 -1
  276. fides/ui-build/static/admin/consent/configure/add-vendors.html +1 -1
  277. fides/ui-build/static/admin/consent/configure.html +1 -1
  278. fides/ui-build/static/admin/consent/privacy-experience/[id].html +1 -1
  279. fides/ui-build/static/admin/consent/privacy-experience/new.html +1 -1
  280. fides/ui-build/static/admin/consent/privacy-experience.html +1 -1
  281. fides/ui-build/static/admin/consent/privacy-notices/[id].html +1 -1
  282. fides/ui-build/static/admin/consent/privacy-notices/new.html +1 -1
  283. fides/ui-build/static/admin/consent/privacy-notices.html +1 -1
  284. fides/ui-build/static/admin/consent/properties.html +1 -1
  285. fides/ui-build/static/admin/consent/reporting.html +1 -1
  286. fides/ui-build/static/admin/consent.html +1 -1
  287. fides/ui-build/static/admin/data-catalog/[systemId]/projects/[projectUrn]/[resourceUrn].html +1 -1
  288. fides/ui-build/static/admin/data-catalog/[systemId]/projects/[projectUrn].html +1 -1
  289. fides/ui-build/static/admin/data-catalog/[systemId]/projects.html +1 -1
  290. fides/ui-build/static/admin/data-catalog/[systemId]/resources/[resourceUrn].html +1 -1
  291. fides/ui-build/static/admin/data-catalog/[systemId]/resources.html +1 -1
  292. fides/ui-build/static/admin/data-catalog.html +1 -1
  293. fides/ui-build/static/admin/data-discovery/action-center/datastore/[monitorId].html +1 -0
  294. fides/ui-build/static/admin/data-discovery/action-center/datastore.html +1 -0
  295. fides/ui-build/static/admin/data-discovery/action-center/website/[monitorId]/[systemId].html +1 -0
  296. fides/ui-build/static/admin/data-discovery/action-center/website/[monitorId].html +1 -0
  297. fides/ui-build/static/admin/data-discovery/action-center/website.html +1 -0
  298. fides/ui-build/static/admin/data-discovery/action-center.html +1 -1
  299. fides/ui-build/static/admin/data-discovery/activity.html +1 -1
  300. fides/ui-build/static/admin/data-discovery/detection/[resourceUrn].html +1 -1
  301. fides/ui-build/static/admin/data-discovery/detection.html +1 -1
  302. fides/ui-build/static/admin/data-discovery/discovery/[resourceUrn].html +1 -1
  303. fides/ui-build/static/admin/data-discovery/discovery.html +1 -1
  304. fides/ui-build/static/admin/datamap.html +1 -1
  305. fides/ui-build/static/admin/dataset/[datasetId]/[collectionName]/[...subfieldNames].html +1 -1
  306. fides/ui-build/static/admin/dataset/[datasetId]/[collectionName].html +1 -1
  307. fides/ui-build/static/admin/dataset/[datasetId].html +1 -1
  308. fides/ui-build/static/admin/dataset/new.html +1 -1
  309. fides/ui-build/static/admin/dataset.html +1 -1
  310. fides/ui-build/static/admin/datastore-connection/[id].html +1 -1
  311. fides/ui-build/static/admin/datastore-connection/new.html +1 -1
  312. fides/ui-build/static/admin/datastore-connection.html +1 -1
  313. fides/ui-build/static/admin/index.html +1 -1
  314. fides/ui-build/static/admin/integrations/[id].html +1 -1
  315. fides/ui-build/static/admin/integrations.html +1 -1
  316. fides/ui-build/static/admin/lib/fides-ext-gpp.js +1 -1
  317. fides/ui-build/static/admin/lib/fides-headless.js +1 -1
  318. fides/ui-build/static/admin/lib/fides-preview.js +1 -1
  319. fides/ui-build/static/admin/lib/fides-tcf.js +3 -3
  320. fides/ui-build/static/admin/lib/fides.js +3 -3
  321. fides/ui-build/static/admin/login/[provider].html +1 -1
  322. fides/ui-build/static/admin/login.html +1 -1
  323. fides/ui-build/static/admin/new-privacy-requests.html +1 -0
  324. fides/ui-build/static/admin/notifications/digests/[id].html +1 -0
  325. fides/ui-build/static/admin/notifications/digests/new.html +1 -0
  326. fides/ui-build/static/admin/notifications/digests.html +1 -0
  327. fides/ui-build/static/admin/notifications/providers/[key].html +1 -0
  328. fides/ui-build/static/admin/notifications/providers/new.html +1 -0
  329. fides/ui-build/static/admin/notifications/providers.html +1 -0
  330. fides/ui-build/static/admin/notifications/templates/[id].html +1 -0
  331. fides/ui-build/static/admin/notifications/templates/add-template.html +1 -0
  332. fides/ui-build/static/admin/notifications/templates.html +1 -0
  333. fides/ui-build/static/admin/notifications.html +1 -0
  334. fides/ui-build/static/admin/poc/ant-components.html +1 -1
  335. fides/ui-build/static/admin/poc/form-experiments/AntForm.html +1 -1
  336. fides/ui-build/static/admin/poc/form-experiments/FormikAntFormItem.html +1 -1
  337. fides/ui-build/static/admin/poc/form-experiments/FormikControlled.html +1 -1
  338. fides/ui-build/static/admin/poc/form-experiments/FormikField.html +1 -1
  339. fides/ui-build/static/admin/poc/form-experiments/FormikSpreadField.html +1 -1
  340. fides/ui-build/static/admin/poc/forms.html +1 -1
  341. fides/ui-build/static/admin/poc/table-migration.html +1 -1
  342. fides/ui-build/static/admin/privacy-requests/[id].html +1 -1
  343. fides/ui-build/static/admin/privacy-requests/configure/storage.html +1 -1
  344. fides/ui-build/static/admin/privacy-requests/configure.html +1 -1
  345. fides/ui-build/static/admin/privacy-requests.html +1 -1
  346. fides/ui-build/static/admin/properties/[id].html +1 -1
  347. fides/ui-build/static/admin/properties/add-property.html +1 -1
  348. fides/ui-build/static/admin/properties.html +1 -1
  349. fides/ui-build/static/admin/reporting/datamap.html +1 -1
  350. fides/ui-build/static/admin/sandbox/privacy-notices.html +1 -0
  351. fides/ui-build/static/admin/settings/about/alpha.html +1 -1
  352. fides/ui-build/static/admin/settings/about.html +1 -1
  353. fides/ui-build/static/admin/settings/consent/[configuration_id]/[purpose_id].html +1 -1
  354. fides/ui-build/static/admin/settings/consent.html +1 -1
  355. fides/ui-build/static/admin/settings/custom-fields/[id].html +1 -1
  356. fides/ui-build/static/admin/settings/custom-fields/new.html +1 -1
  357. fides/ui-build/static/admin/settings/custom-fields.html +1 -1
  358. fides/ui-build/static/admin/settings/domain-records.html +1 -1
  359. fides/ui-build/static/admin/settings/domains.html +1 -1
  360. fides/ui-build/static/admin/settings/email-templates.html +1 -1
  361. fides/ui-build/static/admin/settings/locations.html +1 -1
  362. fides/ui-build/static/admin/settings/organization.html +1 -1
  363. fides/ui-build/static/admin/settings/privacy-requests.html +1 -1
  364. fides/ui-build/static/admin/settings/regulations.html +1 -1
  365. fides/ui-build/static/admin/systems/configure/[id]/test-datasets.html +1 -1
  366. fides/ui-build/static/admin/systems/configure/[id].html +1 -1
  367. fides/ui-build/static/admin/systems.html +1 -1
  368. fides/ui-build/static/admin/taxonomy.html +1 -1
  369. fides/ui-build/static/admin/user-management/new.html +1 -1
  370. fides/ui-build/static/admin/user-management/profile/[id].html +1 -1
  371. fides/ui-build/static/admin/user-management.html +1 -1
  372. fides/api/service/async_dsr/async_dsr_service.py +0 -195
  373. fides/api/service/async_dsr/async_dsr_strategy.py +0 -5
  374. fides/api/service/async_dsr/async_dsr_strategy_callback.py +0 -16
  375. fides/api/service/async_dsr/async_dsr_strategy_factory.py +0 -63
  376. fides/api/service/async_dsr/async_dsr_strategy_polling.py +0 -94
  377. fides/ui-build/static/admin/_next/static/_IxwgneyQjdSaZFEF3Tqu/_buildManifest.js +0 -1
  378. fides/ui-build/static/admin/_next/static/chunks/1316-2606e19807c08aa5.js +0 -1
  379. fides/ui-build/static/admin/_next/static/chunks/1467-8808ec8836e033f9.js +0 -1
  380. fides/ui-build/static/admin/_next/static/chunks/155-b4337d0826d5addc.js +0 -1
  381. fides/ui-build/static/admin/_next/static/chunks/1817-1ad037b7d6d2f6d2.js +0 -1
  382. fides/ui-build/static/admin/_next/static/chunks/1896-49010da5c2705fc5.js +0 -1
  383. fides/ui-build/static/admin/_next/static/chunks/2150-930ffaf2c4718edc.js +0 -1
  384. fides/ui-build/static/admin/_next/static/chunks/255-1bc0cbef7a59cdc6.js +0 -1
  385. fides/ui-build/static/admin/_next/static/chunks/2921-66f65496c3a09316.js +0 -1
  386. fides/ui-build/static/admin/_next/static/chunks/2962-e92d525bf570a9a3.js +0 -1
  387. fides/ui-build/static/admin/_next/static/chunks/346-aa3b88efb85f2e28.js +0 -1
  388. fides/ui-build/static/admin/_next/static/chunks/3550-83cb70e80cbe41ba.js +0 -1
  389. fides/ui-build/static/admin/_next/static/chunks/3585-f728d32fda6f1ac1.js +0 -1
  390. fides/ui-build/static/admin/_next/static/chunks/3855-ed226b8a8050bd40.js +0 -1
  391. fides/ui-build/static/admin/_next/static/chunks/3872-04d3afbfa41a7782.js +0 -1
  392. fides/ui-build/static/admin/_next/static/chunks/401-ffe4e8436e1eceb9.js +0 -1
  393. fides/ui-build/static/admin/_next/static/chunks/409-5c3d31163028339f.js +0 -1
  394. fides/ui-build/static/admin/_next/static/chunks/431-78bf05f35d7eec4f.js +0 -1
  395. fides/ui-build/static/admin/_next/static/chunks/4558-8305aee48def1dcd.js +0 -1
  396. fides/ui-build/static/admin/_next/static/chunks/4608-0c6ef78e30a51f84.js +0 -1
  397. fides/ui-build/static/admin/_next/static/chunks/4718-3a412bdb90add82f.js +0 -1
  398. fides/ui-build/static/admin/_next/static/chunks/502-0d9f4ac29ef34a1c.js +0 -1
  399. fides/ui-build/static/admin/_next/static/chunks/504-88caa30c03374e9b.js +0 -1
  400. fides/ui-build/static/admin/_next/static/chunks/5163-e682273cd76a7d07.js +0 -1
  401. fides/ui-build/static/admin/_next/static/chunks/5185-51eaa78e3ed6bfb7.js +0 -1
  402. fides/ui-build/static/admin/_next/static/chunks/5279-12c9cbdc67ad7b14.js +0 -1
  403. fides/ui-build/static/admin/_next/static/chunks/5309-3b6cf0cc9d0c6a83.js +0 -1
  404. fides/ui-build/static/admin/_next/static/chunks/5574-c31ea831371610d5.js +0 -1
  405. fides/ui-build/static/admin/_next/static/chunks/5619-9b50cec521203989.js +0 -1
  406. fides/ui-build/static/admin/_next/static/chunks/5643-10a36584c399526c.js +0 -1
  407. fides/ui-build/static/admin/_next/static/chunks/6277-182efc294d413f64.js +0 -1
  408. fides/ui-build/static/admin/_next/static/chunks/6419-9b3a86af57c86791.js +0 -1
  409. fides/ui-build/static/admin/_next/static/chunks/6853-7004a8c420b1ca02.js +0 -1
  410. fides/ui-build/static/admin/_next/static/chunks/6882-dbe0a25dcf1a8ee0.js +0 -1
  411. fides/ui-build/static/admin/_next/static/chunks/6954-4b24e1731c1cc3b3.js +0 -1
  412. fides/ui-build/static/admin/_next/static/chunks/699-8ca44b0de9fa20f0.js +0 -1
  413. fides/ui-build/static/admin/_next/static/chunks/7045-14e955890f1147e4.js +0 -1
  414. fides/ui-build/static/admin/_next/static/chunks/7079-50571e9f3269d74d.js +0 -1
  415. fides/ui-build/static/admin/_next/static/chunks/7158-04745cc8d684b2e7.js +0 -1
  416. fides/ui-build/static/admin/_next/static/chunks/7218-e2983b96b95e33b4.js +0 -1
  417. fides/ui-build/static/admin/_next/static/chunks/7630-d0d3a0fe3f95e971.js +0 -1
  418. fides/ui-build/static/admin/_next/static/chunks/7725-f2a7be705b75dcc3.js +0 -1
  419. fides/ui-build/static/admin/_next/static/chunks/7929-0fd0d4948bc8d70e.js +0 -1
  420. fides/ui-build/static/admin/_next/static/chunks/8002-ed832921ad190832.js +0 -1
  421. fides/ui-build/static/admin/_next/static/chunks/8765-f622a35b40a7ec63.js +0 -1
  422. fides/ui-build/static/admin/_next/static/chunks/9037-453224ba3ee65b13.js +0 -1
  423. fides/ui-build/static/admin/_next/static/chunks/9046-b6616ba7b59d947e.js +0 -1
  424. fides/ui-build/static/admin/_next/static/chunks/9187-7438242f0d380bb0.js +0 -1
  425. fides/ui-build/static/admin/_next/static/chunks/9226-4a7027057f55ca2a.js +0 -1
  426. fides/ui-build/static/admin/_next/static/chunks/9278-08cc704317fe535e.js +0 -1
  427. fides/ui-build/static/admin/_next/static/chunks/9729-fcf6ff4e3534e4a8.js +0 -1
  428. fides/ui-build/static/admin/_next/static/chunks/pages/add-systems/manual-4ec03eed67572861.js +0 -1
  429. fides/ui-build/static/admin/_next/static/chunks/pages/add-systems/multiple-2ca59996860a33c5.js +0 -1
  430. fides/ui-build/static/admin/_next/static/chunks/pages/add-systems-19214babd1f219e3.js +0 -1
  431. fides/ui-build/static/admin/_next/static/chunks/pages/consent/privacy-experience-92182be6603c2842.js +0 -1
  432. fides/ui-build/static/admin/_next/static/chunks/pages/consent/privacy-notices-ab54b19609bff325.js +0 -1
  433. fides/ui-build/static/admin/_next/static/chunks/pages/consent/reporting-c1a3caf3c286bf5d.js +0 -1
  434. fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/projects/[projectUrn]-4a1af12d2d7cd660.js +0 -1
  435. fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/projects-99573a1ee3ef8f4c.js +0 -1
  436. fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/resources-6e429b7511028d60.js +0 -1
  437. fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog-b7326c51d88cc2cc.js +0 -1
  438. fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/action-center/[monitorId]/[systemId]-5b57f9132426fe52.js +0 -1
  439. fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/action-center/[monitorId]-0d512528b498d75c.js +0 -1
  440. fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/action-center-040813022f0890c9.js +0 -1
  441. fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/activity-a28cc0e23bbe4fc8.js +0 -1
  442. fides/ui-build/static/admin/_next/static/chunks/pages/datamap-7d22222608ec3aac.js +0 -1
  443. fides/ui-build/static/admin/_next/static/chunks/pages/dataset/[datasetId]/[collectionName]/[...subfieldNames]-0abd30eada811b5b.js +0 -1
  444. fides/ui-build/static/admin/_next/static/chunks/pages/dataset/[datasetId]/[collectionName]-007965429368d9a3.js +0 -1
  445. fides/ui-build/static/admin/_next/static/chunks/pages/dataset/[datasetId]-60a4a9eb4aab4c11.js +0 -1
  446. fides/ui-build/static/admin/_next/static/chunks/pages/dataset/new-d514cd4ec62e3b03.js +0 -1
  447. fides/ui-build/static/admin/_next/static/chunks/pages/dataset-0e3a6ac4797ffbbb.js +0 -1
  448. fides/ui-build/static/admin/_next/static/chunks/pages/datastore-connection/[id]-816e02b6cbe4a684.js +0 -1
  449. fides/ui-build/static/admin/_next/static/chunks/pages/datastore-connection/new-b6838162200141b3.js +0 -1
  450. fides/ui-build/static/admin/_next/static/chunks/pages/datastore-connection-223c2d1ded51bfb1.js +0 -1
  451. fides/ui-build/static/admin/_next/static/chunks/pages/integrations/[id]-153eb88ab4e7dc6d.js +0 -1
  452. fides/ui-build/static/admin/_next/static/chunks/pages/integrations-331544e9b85c4ac2.js +0 -1
  453. fides/ui-build/static/admin/_next/static/chunks/pages/messaging/[id]-e8d2140787045acd.js +0 -1
  454. fides/ui-build/static/admin/_next/static/chunks/pages/messaging/add-template-e3f93462a08251bf.js +0 -1
  455. fides/ui-build/static/admin/_next/static/chunks/pages/messaging-b5f7d6afdecd013d.js +0 -1
  456. fides/ui-build/static/admin/_next/static/chunks/pages/poc/ant-components-248ad9f65a872442.js +0 -1
  457. fides/ui-build/static/admin/_next/static/chunks/pages/poc/form-experiments/AntForm-aedb66a62042b10a.js +0 -1
  458. fides/ui-build/static/admin/_next/static/chunks/pages/poc/form-experiments/FormikAntFormItem-018df38b7cd77fdb.js +0 -1
  459. fides/ui-build/static/admin/_next/static/chunks/pages/poc/form-experiments/FormikControlled-6ca9099d03aab817.js +0 -1
  460. fides/ui-build/static/admin/_next/static/chunks/pages/poc/form-experiments/FormikField-0f2c90786ea005a4.js +0 -1
  461. fides/ui-build/static/admin/_next/static/chunks/pages/poc/forms-200b51a725f8b2d1.js +0 -1
  462. fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/[id]-7dac2302f573f5ee.js +0 -1
  463. fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/configure/storage-479890582973deaf.js +0 -1
  464. fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests-7af00f72cf694077.js +0 -1
  465. fides/ui-build/static/admin/_next/static/chunks/pages/reporting/datamap-f7753e9effae3816.js +0 -1
  466. fides/ui-build/static/admin/_next/static/chunks/pages/settings/consent/[configuration_id]/[purpose_id]-f3e6e74e0efb005c.js +0 -1
  467. fides/ui-build/static/admin/_next/static/chunks/pages/settings/consent-4d658222ec800511.js +0 -1
  468. fides/ui-build/static/admin/_next/static/chunks/pages/settings/custom-fields-2fcd95c41e578d57.js +0 -1
  469. fides/ui-build/static/admin/_next/static/chunks/pages/settings/domains-a3275554ffe8e640.js +0 -1
  470. fides/ui-build/static/admin/_next/static/chunks/pages/settings/messaging-providers/[key]-77239269acc2d31a.js +0 -1
  471. fides/ui-build/static/admin/_next/static/chunks/pages/settings/messaging-providers/new-8bf1821722b082e9.js +0 -1
  472. fides/ui-build/static/admin/_next/static/chunks/pages/settings/messaging-providers-8d92be437793c96f.js +0 -1
  473. fides/ui-build/static/admin/_next/static/chunks/pages/settings/privacy-requests-97221067330c0c27.js +0 -1
  474. fides/ui-build/static/admin/_next/static/chunks/pages/systems/configure/[id]/test-datasets-2deb6becece69d46.js +0 -1
  475. fides/ui-build/static/admin/_next/static/chunks/pages/systems-6c91bdea40875227.js +0 -1
  476. fides/ui-build/static/admin/_next/static/chunks/pages/taxonomy-3059aba38adefa56.js +0 -1
  477. fides/ui-build/static/admin/_next/static/chunks/webpack-2766492c5dbceb0a.js +0 -1
  478. fides/ui-build/static/admin/_next/static/css/073713cd1eddda79.css +0 -1
  479. fides/ui-build/static/admin/_next/static/css/23cf870196941c9a.css +0 -1
  480. fides/ui-build/static/admin/_next/static/css/295d729ea1b11885.css +0 -1
  481. fides/ui-build/static/admin/_next/static/css/304c6f148886a8d4.css +0 -1
  482. fides/ui-build/static/admin/data-discovery/action-center/[monitorId]/[systemId].html +0 -1
  483. fides/ui-build/static/admin/data-discovery/action-center/[monitorId].html +0 -1
  484. fides/ui-build/static/admin/messaging/[id].html +0 -1
  485. fides/ui-build/static/admin/messaging/add-template.html +0 -1
  486. fides/ui-build/static/admin/messaging.html +0 -1
  487. fides/ui-build/static/admin/settings/messaging-providers/[key].html +0 -1
  488. fides/ui-build/static/admin/settings/messaging-providers/new.html +0 -1
  489. fides/ui-build/static/admin/settings/messaging-providers.html +0 -1
  490. {ethyca_fides-2.71.1b1.dist-info → ethyca_fides-2.74.0rc1.dist-info}/WHEEL +0 -0
  491. {ethyca_fides-2.71.1b1.dist-info → ethyca_fides-2.74.0rc1.dist-info}/entry_points.txt +0 -0
  492. {ethyca_fides-2.71.1b1.dist-info → ethyca_fides-2.74.0rc1.dist-info}/licenses/LICENSE +0 -0
  493. {ethyca_fides-2.71.1b1.dist-info → ethyca_fides-2.74.0rc1.dist-info}/top_level.txt +0 -0
  494. /fides/ui-build/static/admin/_next/static/{_IxwgneyQjdSaZFEF3Tqu → FZTEUgamBvOhgPWce135w}/_ssgManifest.js +0 -0
  495. /fides/ui-build/static/admin/_next/static/chunks/pages/user-management/{new-629c88e90699369b.js → new-7dce2916cc589c54.js} +0 -0
@@ -1,9 +1,10 @@
1
1
  from datetime import datetime
2
2
  from enum import Enum as EnumType
3
3
  from typing import Any, Dict, List, Optional, Type, Union
4
+ from uuid import UUID
4
5
 
5
6
  from fideslang.validation import FidesKey
6
- from pydantic import ConfigDict, Field, field_serializer, field_validator
7
+ from pydantic import BaseModel, ConfigDict, Field, field_serializer, field_validator
7
8
 
8
9
  from fides.api.custom_types import SafeStr
9
10
  from fides.api.graph.config import CollectionAddress
@@ -306,6 +307,12 @@ class PrivacyRequestStatus(str, EnumType):
306
307
  requires_manual_finalization = "requires_manual_finalization"
307
308
  canceled = "canceled"
308
309
  error = "error"
310
+ duplicate = "duplicate" # Request identified as duplicate of another request
311
+
312
+
313
+ class IdentityValue(BaseModel):
314
+ label: str
315
+ value: Optional[str] = None
309
316
 
310
317
 
311
318
  class PrivacyRequestResponse(FidesSchema):
@@ -328,7 +335,7 @@ class PrivacyRequestResponse(FidesSchema):
328
335
  # as it is an API response field, and we don't want to reveal any more
329
336
  # about our PII structure than is explicitly stored in the cache on request
330
337
  # creation.
331
- identity: Optional[Dict[str, Union[Optional[str], Dict[str, Any]]]] = None
338
+ identity: Optional[Dict[str, Union[Optional[str], IdentityValue]]] = None
332
339
  custom_privacy_request_fields: Optional[Dict[str, Any]] = None
333
340
  policy: PolicySchema
334
341
  action_required_details: Optional[CheckpointActionRequiredDetails] = None
@@ -342,6 +349,7 @@ class PrivacyRequestResponse(FidesSchema):
342
349
  deleted_by: Optional[str] = None
343
350
  finalized_at: Optional[datetime] = None
344
351
  finalized_by: Optional[str] = None
352
+ duplicate_request_group_id: Optional[UUID] = None
345
353
 
346
354
  model_config = ConfigDict(from_attributes=True, use_enum_values=True)
347
355
 
@@ -368,6 +376,12 @@ class DenyPrivacyRequests(ReviewPrivacyRequestIds):
368
376
  reason: Optional[SafeStr] = None
369
377
 
370
378
 
379
+ class CancelPrivacyRequests(ReviewPrivacyRequestIds):
380
+ """Pass in a list of privacy request ids and cancellation reason"""
381
+
382
+ reason: Optional[SafeStr] = None
383
+
384
+
371
385
  class BulkPostPrivacyRequests(BulkResponse):
372
386
  """Schema with mixed success/failure responses for Bulk Create of PrivacyRequest responses."""
373
387
 
@@ -456,7 +470,7 @@ class PrivacyRequestFilter(FidesSchema):
456
470
  errored_gt: Optional[datetime] = None
457
471
  external_id: Optional[str] = None
458
472
  location: Optional[str] = None
459
- action_type: Optional[ActionType] = None
473
+ action_type: Optional[Union[ActionType, List[ActionType]]] = None
460
474
  verbose: Optional[bool] = False
461
475
  include_identities: Optional[bool] = False
462
476
  include_custom_privacy_request_fields: Optional[bool] = False
@@ -0,0 +1,81 @@
1
+ from enum import Enum
2
+ from typing import Any, Dict, List, Optional, Union
3
+
4
+ from pydantic import BaseModel, Field, model_validator
5
+
6
+ from fides.api.schemas.saas.saas_config import SaaSRequest
7
+ from fides.api.schemas.saas.strategy_configuration import StrategyConfiguration
8
+ from fides.api.util.collection_util import Row
9
+
10
+
11
+ class SupportedDataType(Enum):
12
+ """Supported data types for polling async DSR result requests."""
13
+
14
+ # Structured data types that can be parsed into rows
15
+ json = "json" # Parsed into List[Row] from JSON response
16
+ csv = "csv" # Parsed into List[Row] from CSV response
17
+ # Binary/non-parseable data stored as raw bytes
18
+ attachment = "attachment" # Binary files (.zip, .pdf, .xml, etc.) stored as bytes
19
+
20
+
21
+ class PollingResultType(Enum):
22
+ """Types of results from async polling operations."""
23
+
24
+ rows = "rows" # Structured data parsed into List[Row]
25
+ attachment = "attachment" # Binary file data stored as bytes
26
+
27
+
28
+ class PollingResult(BaseModel):
29
+ """
30
+ Flexible result container for async polling operations.
31
+ Handles both structured data and file attachments.
32
+ """
33
+
34
+ data: Union[List[Row], bytes]
35
+ result_type: PollingResultType
36
+ metadata: Dict[str, Any] = Field(default_factory=dict)
37
+
38
+
39
+ class PollingStatusRequest(SaaSRequest):
40
+ """
41
+ Extended SaaSRequest for checking async job status.
42
+ Uses request_override for custom status checking logic or standard fields for simple cases.
43
+ """
44
+
45
+ status_path: Optional[str] = None
46
+ status_completed_value: Optional[Union[str, bool, int]] = None
47
+
48
+ @model_validator(mode="after")
49
+ def validate_status_fields(self) -> "PollingStatusRequest":
50
+ """Ensure required fields are present unless using an override."""
51
+ if self.request_override:
52
+ return self
53
+
54
+ if not self.status_path:
55
+ raise ValueError("status_path is required when request_override is not set")
56
+ if self.status_completed_value is None:
57
+ raise ValueError(
58
+ "status_completed_value is required when request_override is not set"
59
+ )
60
+ return self
61
+
62
+
63
+ class PollingResultRequest(SaaSRequest):
64
+ """
65
+ Extended SaaSRequest for retrieving async job results.
66
+ Uses request_override for custom result retrieval or standard HTTP request for simple cases.
67
+ Data type is automatically inferred from response.
68
+ """
69
+
70
+ result_path: Optional[str] = None
71
+
72
+
73
+ class AsyncPollingConfiguration(StrategyConfiguration):
74
+ """
75
+ Simplified configuration for polling async DSR requests.
76
+ The main read request serves as the initial request.
77
+ """
78
+
79
+ status_request: PollingStatusRequest
80
+ # result_request is optional for delete/update operations
81
+ result_request: Optional[PollingResultRequest] = None
@@ -2,7 +2,9 @@ from typing import Any, Dict, List, Optional, Set, Union
2
2
 
3
3
  from fideslang.models import FidesCollectionKey, FidesDatasetReference
4
4
  from fideslang.validation import FidesKey
5
- from pydantic import BaseModel, ConfigDict, field_validator, model_validator
5
+ from pydantic import BaseModel, ConfigDict
6
+ from pydantic import Field as PydanticField
7
+ from pydantic import field_validator, model_validator
6
8
 
7
9
  from fides.api.common_exceptions import ValidationError
8
10
  from fides.api.graph.config import (
@@ -115,6 +117,10 @@ class SaaSRequest(BaseModel):
115
117
  skip_missing_param_values: Optional[bool] = (
116
118
  False # Skip instead of raising an exception if placeholders can't be populated in body
117
119
  )
120
+ correlation_id_path: Optional[str] = PydanticField(
121
+ default=None,
122
+ description="The path to the correlation ID in the response. For use with async polling.",
123
+ )
118
124
  model_config = ConfigDict(
119
125
  from_attributes=True, use_enum_values=True, extra="forbid"
120
126
  )
@@ -213,7 +219,7 @@ class SaaSRequest(BaseModel):
213
219
  class ReadSaaSRequest(SaaSRequest):
214
220
  """
215
221
  An extension of the base SaaSRequest that allows the inclusion of an output template
216
- that is used to format each collection result.
222
+ that is used to format each collection result, and correlation_id_path for async polling.
217
223
  """
218
224
 
219
225
  output: Optional[str] = None
@@ -230,7 +236,8 @@ class ReadSaaSRequest(SaaSRequest):
230
236
  raise ValueError(
231
237
  "A read request must specify a method if a path is provided and no request_override is specified"
232
238
  )
233
- else:
239
+
240
+ if self.request_override:
234
241
  allowed_fields = {
235
242
  "request_override",
236
243
  "param_values",
@@ -178,15 +178,3 @@ class OAuth2ClientCredentialsConfiguration(OAuth2BaseConfiguration):
178
178
  """
179
179
 
180
180
  refresh_request: Optional[SaaSRequest] = Field(exclude=True)
181
-
182
-
183
- class PollingAsyncDSRConfiguration(StrategyConfiguration):
184
- """
185
- Configuration for polling async DSR requests.
186
- """
187
-
188
- status_request: SaaSRequest
189
- status_path: str
190
- status_completed_value: Optional[str] = None
191
- result_request: SaaSRequest
192
- result_path: str
@@ -23,6 +23,10 @@ class DataUse(BaseDataUse):
23
23
 
24
24
  class DataCategory(BaseDataCategory):
25
25
  active: bool = active_field
26
+ tagging_instructions: Optional[str] = Field(
27
+ default=None,
28
+ description="Instructions for LLM-based data classification tagging.",
29
+ )
26
30
 
27
31
 
28
32
  class DataSubject(BaseDataSubject):
@@ -44,6 +48,10 @@ class DataUseCreateOrUpdate(TaxonomyCreateOrUpdateBase):
44
48
 
45
49
  class DataCategoryCreateOrUpdate(TaxonomyCreateOrUpdateBase):
46
50
  parent_key: Optional[FidesKey] = None
51
+ tagging_instructions: Optional[str] = Field(
52
+ default=None,
53
+ description="Instructions for LLM-based data classification tagging.",
54
+ )
47
55
 
48
56
 
49
57
  class DataSubjectCreateOrUpdate(TaxonomyCreateOrUpdateBase):
File without changes
@@ -0,0 +1,155 @@
1
+ """Handler for storing and managing attachments from async polling operations."""
2
+
3
+ from io import BytesIO
4
+ from typing import List, Union
5
+
6
+ from loguru import logger
7
+ from sqlalchemy.orm import Session
8
+
9
+ from fides.api.common_exceptions import PrivacyRequestError
10
+ from fides.api.models.attachment import (
11
+ Attachment,
12
+ AttachmentReference,
13
+ AttachmentReferenceType,
14
+ AttachmentType,
15
+ )
16
+ from fides.api.models.privacy_request.request_task import RequestTask
17
+ from fides.api.models.storage import get_active_default_storage_config
18
+ from fides.api.util.collection_util import Row
19
+
20
+
21
+ class PollingAttachmentHandler:
22
+ """Utility class for handling attachment storage and metadata in polling operations."""
23
+
24
+ @staticmethod
25
+ def store_attachment(
26
+ session: Session,
27
+ request_task: RequestTask,
28
+ attachment_data: bytes,
29
+ filename: str,
30
+ ) -> str:
31
+ """
32
+ Store polling attachment data and return attachment ID.
33
+
34
+ This utility function handles the storage of attachment data
35
+ from polling results and creates the necessary database records.
36
+
37
+ Args:
38
+ session: Database session
39
+ request_task: The request task associated with this attachment
40
+ attachment_data: The binary attachment data to store
41
+ filename: The filename for the attachment
42
+
43
+ Returns:
44
+ str: The ID of the created attachment
45
+
46
+ Raises:
47
+ PrivacyRequestError: If storage configuration is not found or storage fails
48
+ """
49
+ try:
50
+ # Get active storage config
51
+ storage_config = get_active_default_storage_config(session)
52
+ if not storage_config:
53
+ raise PrivacyRequestError("No active storage configuration found")
54
+
55
+ # Create attachment record and upload to storage
56
+ attachment = Attachment.create_and_upload(
57
+ db=session,
58
+ data={
59
+ "file_name": filename,
60
+ "attachment_type": AttachmentType.include_with_access_package,
61
+ "storage_key": storage_config.key,
62
+ },
63
+ attachment_file=BytesIO(attachment_data),
64
+ )
65
+
66
+ # Create attachment references
67
+ AttachmentReference.create(
68
+ db=session,
69
+ data={
70
+ "attachment_id": attachment.id,
71
+ "reference_id": request_task.id,
72
+ "reference_type": AttachmentReferenceType.request_task,
73
+ },
74
+ )
75
+
76
+ AttachmentReference.create(
77
+ db=session,
78
+ data={
79
+ "attachment_id": attachment.id,
80
+ "reference_id": request_task.privacy_request.id,
81
+ "reference_type": AttachmentReferenceType.privacy_request,
82
+ },
83
+ )
84
+
85
+ logger.info(
86
+ f"Successfully stored polling attachment {attachment.id} for request_task {request_task.id}"
87
+ )
88
+ return attachment.id
89
+
90
+ except Exception as e:
91
+ logger.error(f"Failed to store polling attachment: {e}")
92
+ raise PrivacyRequestError(f"Failed to store polling attachment: {e}")
93
+
94
+ @staticmethod
95
+ def ensure_attachment_bytes(data: Union[List[Row], bytes]) -> bytes:
96
+ """
97
+ Ensure attachment polling results provide bytes content.
98
+
99
+ Args:
100
+ data: The data that should be bytes
101
+
102
+ Returns:
103
+ bytes: The validated bytes data
104
+
105
+ Raises:
106
+ PrivacyRequestError: If data is not bytes
107
+ """
108
+ if isinstance(data, bytes):
109
+ return data
110
+ raise PrivacyRequestError("Expected bytes data for attachment polling result")
111
+
112
+ @staticmethod
113
+ def add_metadata_to_rows(db: Session, attachment_id: str, rows: List[Row]) -> None:
114
+ """
115
+ Add attachment metadata to rows collection (like manual tasks do).
116
+
117
+ Args:
118
+ db: Database session
119
+ attachment_id: The ID of the attachment to add metadata for
120
+ rows: The list of rows to add the attachment metadata to
121
+ """
122
+ attachment_record = (
123
+ db.query(Attachment).filter(Attachment.id == attachment_id).first()
124
+ )
125
+
126
+ if attachment_record:
127
+ try:
128
+ size, url = attachment_record.retrieve_attachment()
129
+ attachment_info = {
130
+ "file_name": attachment_record.file_name,
131
+ "download_url": str(url) if url else None,
132
+ "file_size": size,
133
+ }
134
+ except Exception as exc:
135
+ logger.warning(
136
+ f"Could not retrieve attachment content for {attachment_record.file_name}: {exc}"
137
+ )
138
+ attachment_info = {
139
+ "file_name": attachment_record.file_name,
140
+ "download_url": None,
141
+ "file_size": None,
142
+ }
143
+
144
+ # Add attachment to the polling results
145
+ attachments_item = None
146
+ for item in rows:
147
+ if isinstance(item, dict) and "retrieved_attachments" in item:
148
+ attachments_item = item
149
+ break
150
+
151
+ if attachments_item is None:
152
+ attachments_item = {"retrieved_attachments": []}
153
+ rows.append(attachments_item)
154
+
155
+ attachments_item["retrieved_attachments"].append(attachment_info)
@@ -0,0 +1,88 @@
1
+ """
2
+ Pure HTTP utility for executing polling requests.
3
+
4
+ This module contains low-level HTTP request execution for async DSR polling,
5
+ with no business logic or orchestration dependencies.
6
+ """
7
+
8
+ from typing import Any, Dict, Optional
9
+
10
+ from requests import Response
11
+
12
+ from fides.api.common_exceptions import PrivacyRequestError
13
+ from fides.api.schemas.saas.async_polling_configuration import (
14
+ PollingResultRequest,
15
+ PollingStatusRequest,
16
+ )
17
+ from fides.api.service.connectors.saas.authenticated_client import AuthenticatedClient
18
+ from fides.api.util.saas_util import map_param_values
19
+
20
+
21
+ class PollingRequestHandler:
22
+ """
23
+ Pure HTTP utility for executing polling requests.
24
+
25
+ Handles status checks and result retrieval with no business logic dependencies.
26
+ """
27
+
28
+ def __init__(
29
+ self,
30
+ status_request: PollingStatusRequest,
31
+ result_request: Optional[PollingResultRequest] = None,
32
+ ):
33
+ self.status_request = status_request
34
+ self.result_request = result_request
35
+
36
+ def get_status_response(
37
+ self,
38
+ client: AuthenticatedClient,
39
+ param_values: Dict[str, Any],
40
+ ) -> Response:
41
+ """Execute HTTP status request and return raw response."""
42
+ if not self.status_request:
43
+ raise PrivacyRequestError(
44
+ "status_request is not configured in the async polling configuration"
45
+ )
46
+
47
+ prepared_status_request = map_param_values(
48
+ action="status",
49
+ context="polling request",
50
+ current_request=self.status_request,
51
+ param_values=param_values,
52
+ )
53
+
54
+ response: Response = client.send(prepared_status_request)
55
+
56
+ if not response.ok:
57
+ raise PrivacyRequestError(
58
+ f"Status request failed with status code {response.status_code}: {response.text}"
59
+ )
60
+
61
+ return response
62
+
63
+ def get_result_response(
64
+ self,
65
+ client: AuthenticatedClient,
66
+ param_values: Dict[str, Any],
67
+ ) -> Response:
68
+ """Execute HTTP result request and return raw response."""
69
+ if not self.result_request:
70
+ raise PrivacyRequestError(
71
+ "result_request is not configured in the async polling configuration"
72
+ )
73
+
74
+ prepared_result_request = map_param_values(
75
+ action="result",
76
+ context="polling request",
77
+ current_request=self.result_request,
78
+ param_values=param_values,
79
+ )
80
+
81
+ response: Response = client.send(prepared_result_request)
82
+
83
+ if not response.ok:
84
+ raise PrivacyRequestError(
85
+ f"Result request failed with status code {response.status_code}: {response.text}"
86
+ )
87
+
88
+ return response