ethyca-fides 2.57.1b8__py2.py3-none-any.whl → 2.57.1rc0__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.
Files changed (250) hide show
  1. {ethyca_fides-2.57.1b8.dist-info → ethyca_fides-2.57.1rc0.dist-info}/METADATA +1 -1
  2. {ethyca_fides-2.57.1b8.dist-info → ethyca_fides-2.57.1rc0.dist-info}/RECORD +207 -217
  3. fides/_version.py +3 -3
  4. fides/api/api/v1/endpoints/config_endpoints.py +2 -4
  5. fides/api/api/v1/endpoints/generic_overrides.py +6 -48
  6. fides/api/models/asset.py +18 -37
  7. fides/api/models/attachment.py +8 -6
  8. fides/api/models/comment.py +17 -17
  9. fides/api/models/connectionconfig.py +1 -1
  10. fides/api/models/detection_discovery.py +0 -12
  11. fides/api/models/location_regulation_selections.py +0 -1
  12. fides/api/models/{privacy_request/privacy_request.py → privacy_request.py} +691 -82
  13. fides/api/models/sql_models.py +5 -28
  14. fides/api/oauth/jwt.py +0 -18
  15. fides/api/oauth/utils.py +11 -11
  16. fides/api/schemas/dataset.py +2 -22
  17. fides/api/schemas/saas/strategy_configuration.py +0 -1
  18. fides/api/service/pagination/pagination_strategy_cursor.py +1 -15
  19. fides/api/service/pagination/pagination_strategy_link.py +1 -1
  20. fides/api/tasks/storage.py +111 -12
  21. fides/config/__init__.py +1 -1
  22. fides/data/language/languages.yml +0 -2
  23. fides/data/location/locations.yml +1 -244
  24. fides/ui-build/static/admin/404.html +1 -1
  25. fides/ui-build/static/admin/_next/static/chunks/3320-87c75df57a47487e.js +1 -0
  26. fides/ui-build/static/admin/_next/static/chunks/3627-fb83adac32c128e6.js +1 -0
  27. fides/ui-build/static/admin/_next/static/chunks/3662-420d9807c30008ab.js +1 -0
  28. fides/ui-build/static/admin/_next/static/chunks/3949-9888699e2ac564c4.js +1 -0
  29. fides/ui-build/static/admin/_next/static/chunks/4481-ca8d2c75d634b6bc.js +1 -0
  30. fides/ui-build/static/admin/_next/static/chunks/4723-81d28e5be5c7b6d7.js +1 -0
  31. fides/ui-build/static/admin/_next/static/chunks/5574-a4047e826a8cd4c3.js +1 -0
  32. fides/ui-build/static/admin/_next/static/chunks/5834-bd9ed01c4ab2ef5c.js +1 -0
  33. fides/ui-build/static/admin/_next/static/chunks/5973-67c7562997f7d5cb.js +1 -0
  34. fides/ui-build/static/admin/_next/static/chunks/6277-515c922445b8edc5.js +1 -0
  35. fides/ui-build/static/admin/_next/static/chunks/6954-6eb480eb132239c3.js +1 -0
  36. fides/ui-build/static/admin/_next/static/chunks/7044-9dc90893067f38ae.js +1 -0
  37. fides/ui-build/static/admin/_next/static/chunks/7980-2597c279c30fbcda.js +1 -0
  38. fides/ui-build/static/admin/_next/static/chunks/9767-4c591bd478c72650.js +1 -0
  39. fides/ui-build/static/admin/_next/static/chunks/pages/{_app-e53d13729068a001.js → _app-9ceff88561dc1250.js} +8 -8
  40. fides/ui-build/static/admin/_next/static/chunks/pages/add-systems/{manual-5593bb1b6de0473d.js → manual-d7f60624cbc12217.js} +1 -1
  41. fides/ui-build/static/admin/_next/static/chunks/pages/add-systems/{multiple-6a7208eee5e588fb.js → multiple-18b0b521255289a3.js} +1 -1
  42. fides/ui-build/static/admin/_next/static/chunks/pages/add-systems-136bcbd20ac59bf5.js +1 -0
  43. fides/ui-build/static/admin/_next/static/chunks/pages/consent/configure/{add-vendors-ba0c5fa9764cbd89.js → add-vendors-64f83e9a2b777bf3.js} +1 -1
  44. fides/ui-build/static/admin/_next/static/chunks/pages/consent/{configure-1af99ffa7a507e86.js → configure-e11ace4f273ebb47.js} +1 -1
  45. fides/ui-build/static/admin/_next/static/chunks/pages/consent/privacy-experience/{[id]-c02510104f9e503a.js → [id]-443e6dd191ce5588.js} +1 -1
  46. fides/ui-build/static/admin/_next/static/chunks/pages/consent/privacy-experience/{new-e96415629f3b4223.js → new-36162d5bea29dcc2.js} +1 -1
  47. fides/ui-build/static/admin/_next/static/chunks/pages/consent/privacy-notices/{[id]-66827da90b8a2d1e.js → [id]-2d651499c07d12d9.js} +1 -1
  48. fides/ui-build/static/admin/_next/static/chunks/pages/consent/privacy-notices/{new-13d48f980bf707e5.js → new-36e57d2f2446be82.js} +1 -1
  49. fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog-942d68a88b321067.js +1 -0
  50. fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/action-center/[monitorId]/[systemId]-00526324583139ab.js +1 -0
  51. fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/action-center/[monitorId]-f0ab51d0d5f995de.js +1 -0
  52. fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/action-center-2220c30c3863b5a5.js +1 -0
  53. fides/ui-build/static/admin/_next/static/chunks/pages/dataset/new-740824dfa6823e26.js +1 -0
  54. fides/ui-build/static/admin/_next/static/chunks/pages/dataset-5541ecd2f62711a5.js +1 -0
  55. fides/ui-build/static/admin/_next/static/chunks/pages/datastore-connection/{[id]-9bb953098f68f1ee.js → [id]-0616437e1a82d3ed.js} +1 -1
  56. fides/ui-build/static/admin/_next/static/chunks/pages/datastore-connection/{new-cdcf42d4cb24b45a.js → new-f8218440494e8532.js} +1 -1
  57. fides/ui-build/static/admin/_next/static/chunks/pages/integrations/[id]-a6448ce6ba7f0cf5.js +1 -0
  58. fides/ui-build/static/admin/_next/static/chunks/pages/integrations-1a6965d78bfb26b0.js +1 -0
  59. fides/ui-build/static/admin/_next/static/chunks/pages/messaging-f263e6bacf0f2d19.js +1 -0
  60. fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/configure/messaging-b96ee3fea3920fcf.js +1 -0
  61. fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/configure/storage-1b0f9469cb65abfc.js +1 -0
  62. fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests-eebd2f4ead19cfd6.js +1 -0
  63. fides/ui-build/static/admin/_next/static/chunks/pages/settings/consent-4769f55b138073f7.js +1 -0
  64. fides/ui-build/static/admin/_next/static/chunks/pages/settings/domains-775f55b3f80cd452.js +1 -0
  65. fides/ui-build/static/admin/_next/static/chunks/pages/settings/organization-14def4ca3cc9cda5.js +1 -0
  66. fides/ui-build/static/admin/_next/static/chunks/pages/systems/configure/[id]/test-datasets-21f26c0dc4d09e9f.js +1 -0
  67. fides/ui-build/static/admin/_next/static/chunks/pages/systems/configure/{[id]-44f7fbfee9cf9267.js → [id]-82d9af34546adaa2.js} +1 -1
  68. fides/ui-build/static/admin/_next/static/css/957d0e4fea846ff0.css +1 -0
  69. fides/ui-build/static/admin/_next/static/rOPehh5NMs1hjog7nTw1q/_buildManifest.js +1 -0
  70. fides/ui-build/static/admin/add-systems/manual.html +1 -1
  71. fides/ui-build/static/admin/add-systems/multiple.html +1 -1
  72. fides/ui-build/static/admin/add-systems.html +1 -1
  73. fides/ui-build/static/admin/ant-poc.html +1 -1
  74. fides/ui-build/static/admin/consent/configure/add-vendors.html +1 -1
  75. fides/ui-build/static/admin/consent/configure.html +1 -1
  76. fides/ui-build/static/admin/consent/privacy-experience/[id].html +1 -1
  77. fides/ui-build/static/admin/consent/privacy-experience/new.html +1 -1
  78. fides/ui-build/static/admin/consent/privacy-experience.html +1 -1
  79. fides/ui-build/static/admin/consent/privacy-notices/[id].html +1 -1
  80. fides/ui-build/static/admin/consent/privacy-notices/new.html +1 -1
  81. fides/ui-build/static/admin/consent/privacy-notices.html +1 -1
  82. fides/ui-build/static/admin/consent/properties.html +1 -1
  83. fides/ui-build/static/admin/consent/reporting.html +1 -1
  84. fides/ui-build/static/admin/consent.html +1 -1
  85. fides/ui-build/static/admin/data-catalog/[systemId]/projects/[projectUrn]/[resourceUrn].html +1 -1
  86. fides/ui-build/static/admin/data-catalog/[systemId]/projects/[projectUrn].html +1 -1
  87. fides/ui-build/static/admin/data-catalog/[systemId]/projects.html +1 -1
  88. fides/ui-build/static/admin/data-catalog/[systemId]/resources/[resourceUrn].html +1 -1
  89. fides/ui-build/static/admin/data-catalog/[systemId]/resources.html +1 -1
  90. fides/ui-build/static/admin/data-catalog.html +1 -1
  91. fides/ui-build/static/admin/data-discovery/action-center/[monitorId]/[systemId].html +1 -1
  92. fides/ui-build/static/admin/data-discovery/action-center/[monitorId].html +1 -1
  93. fides/ui-build/static/admin/data-discovery/action-center.html +1 -1
  94. fides/ui-build/static/admin/data-discovery/activity.html +1 -1
  95. fides/ui-build/static/admin/data-discovery/detection/[resourceUrn].html +1 -1
  96. fides/ui-build/static/admin/data-discovery/detection.html +1 -1
  97. fides/ui-build/static/admin/data-discovery/discovery/[resourceUrn].html +1 -1
  98. fides/ui-build/static/admin/data-discovery/discovery.html +1 -1
  99. fides/ui-build/static/admin/datamap.html +1 -1
  100. fides/ui-build/static/admin/dataset/[datasetId]/[collectionName]/[...subfieldNames].html +1 -1
  101. fides/ui-build/static/admin/dataset/[datasetId]/[collectionName].html +1 -1
  102. fides/ui-build/static/admin/dataset/[datasetId].html +1 -1
  103. fides/ui-build/static/admin/dataset/new.html +1 -1
  104. fides/ui-build/static/admin/dataset.html +1 -1
  105. fides/ui-build/static/admin/datastore-connection/[id].html +1 -1
  106. fides/ui-build/static/admin/datastore-connection/new.html +1 -1
  107. fides/ui-build/static/admin/datastore-connection.html +1 -1
  108. fides/ui-build/static/admin/index.html +1 -1
  109. fides/ui-build/static/admin/integrations/[id].html +1 -1
  110. fides/ui-build/static/admin/integrations.html +1 -1
  111. fides/ui-build/static/admin/lib/fides-ext-gpp.js +1 -1
  112. fides/ui-build/static/admin/lib/fides-headless.js +1 -1
  113. fides/ui-build/static/admin/lib/fides-tcf.js +3 -3
  114. fides/ui-build/static/admin/lib/fides.js +2 -2
  115. fides/ui-build/static/admin/login/[provider].html +1 -1
  116. fides/ui-build/static/admin/login.html +1 -1
  117. fides/ui-build/static/admin/messaging/[id].html +1 -1
  118. fides/ui-build/static/admin/messaging/add-template.html +1 -1
  119. fides/ui-build/static/admin/messaging.html +1 -1
  120. fides/ui-build/static/admin/privacy-requests/[id].html +1 -1
  121. fides/ui-build/static/admin/privacy-requests/configure/messaging.html +1 -1
  122. fides/ui-build/static/admin/privacy-requests/configure/storage.html +1 -1
  123. fides/ui-build/static/admin/privacy-requests/configure.html +1 -1
  124. fides/ui-build/static/admin/privacy-requests.html +1 -1
  125. fides/ui-build/static/admin/properties/[id].html +1 -1
  126. fides/ui-build/static/admin/properties/add-property.html +1 -1
  127. fides/ui-build/static/admin/properties.html +1 -1
  128. fides/ui-build/static/admin/reporting/datamap.html +1 -1
  129. fides/ui-build/static/admin/settings/about.html +1 -1
  130. fides/ui-build/static/admin/settings/consent.html +1 -1
  131. fides/ui-build/static/admin/settings/custom-fields.html +1 -1
  132. fides/ui-build/static/admin/settings/domain-records.html +1 -1
  133. fides/ui-build/static/admin/settings/domains.html +1 -1
  134. fides/ui-build/static/admin/settings/email-templates.html +1 -1
  135. fides/ui-build/static/admin/settings/locations.html +1 -1
  136. fides/ui-build/static/admin/settings/organization.html +1 -1
  137. fides/ui-build/static/admin/settings/regulations.html +1 -1
  138. fides/ui-build/static/admin/systems/configure/[id]/test-datasets.html +1 -1
  139. fides/ui-build/static/admin/systems/configure/[id].html +1 -1
  140. fides/ui-build/static/admin/systems.html +1 -1
  141. fides/ui-build/static/admin/taxonomy.html +1 -1
  142. fides/ui-build/static/admin/user-management/new.html +1 -1
  143. fides/ui-build/static/admin/user-management/profile/[id].html +1 -1
  144. fides/ui-build/static/admin/user-management.html +1 -1
  145. fides/api/alembic/migrations/versions/1d2f04ac19f2_add_page_column_to_asset_table.py +0 -49
  146. fides/api/alembic/migrations/versions/7c3fbee90c78_add_user_assigned_data_uses_and_system_.py +0 -54
  147. fides/api/alembic/migrations/versions/9a1eacd2666b_add_description_column_to_asset.py +0 -25
  148. fides/api/models/privacy_request/__init__.py +0 -44
  149. fides/api/models/privacy_request/consent.py +0 -155
  150. fides/api/models/privacy_request/execution_log.py +0 -108
  151. fides/api/models/privacy_request/provided_identity.py +0 -149
  152. fides/api/models/privacy_request/request_task.py +0 -284
  153. fides/api/models/privacy_request/webhook.py +0 -94
  154. fides/api/service/storage/s3.py +0 -133
  155. fides/api/service/storage/util.py +0 -10
  156. fides/ui-build/static/admin/_next/static/chunks/1376-c177d8d0c60b1166.js +0 -1
  157. fides/ui-build/static/admin/_next/static/chunks/3320-317483e6c10bae51.js +0 -1
  158. fides/ui-build/static/admin/_next/static/chunks/355-6a87b50acf54e985.js +0 -1
  159. fides/ui-build/static/admin/_next/static/chunks/3662-6a0cafa3023aa7a2.js +0 -1
  160. fides/ui-build/static/admin/_next/static/chunks/4481-f2f57e7a75a90e79.js +0 -1
  161. fides/ui-build/static/admin/_next/static/chunks/4723-1a785d558dfb6441.js +0 -1
  162. fides/ui-build/static/admin/_next/static/chunks/605-c782df008a0ff167.js +0 -1
  163. fides/ui-build/static/admin/_next/static/chunks/6362-72451aeb32815d26.js +0 -1
  164. fides/ui-build/static/admin/_next/static/chunks/6954-f7daf613febc36ef.js +0 -1
  165. fides/ui-build/static/admin/_next/static/chunks/7434-3d4a0beb84ec57f7.js +0 -1
  166. fides/ui-build/static/admin/_next/static/chunks/7495-2f5c8dfba2eabb4f.js +0 -1
  167. fides/ui-build/static/admin/_next/static/chunks/7958-d2bc63e1be612f36.js +0 -1
  168. fides/ui-build/static/admin/_next/static/chunks/7980-91800d54c5964ba3.js +0 -1
  169. fides/ui-build/static/admin/_next/static/chunks/pages/add-systems-a33f82e79cb09478.js +0 -1
  170. fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog-1a3bb713fc7bc298.js +0 -1
  171. fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/action-center/[monitorId]/[systemId]-5892ca5d93ea6165.js +0 -1
  172. fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/action-center/[monitorId]-5c37c3ad1c3cfba5.js +0 -1
  173. fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/action-center-4fac7e0a54eebc32.js +0 -1
  174. fides/ui-build/static/admin/_next/static/chunks/pages/dataset/new-45016545c099e183.js +0 -1
  175. fides/ui-build/static/admin/_next/static/chunks/pages/dataset-5ddd3cd7d29e89c0.js +0 -1
  176. fides/ui-build/static/admin/_next/static/chunks/pages/integrations/[id]-108945832a7edd7d.js +0 -1
  177. fides/ui-build/static/admin/_next/static/chunks/pages/integrations-e96e959d10afebea.js +0 -1
  178. fides/ui-build/static/admin/_next/static/chunks/pages/messaging-5a161e167c251519.js +0 -1
  179. fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/configure/messaging-c3e234ad95e6e213.js +0 -1
  180. fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/configure/storage-347e203faa31716f.js +0 -1
  181. fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests-729fa8ed0f10bc8e.js +0 -1
  182. fides/ui-build/static/admin/_next/static/chunks/pages/settings/consent-ff6edba56dfec090.js +0 -1
  183. fides/ui-build/static/admin/_next/static/chunks/pages/settings/domains-ad368857e86fe01b.js +0 -1
  184. fides/ui-build/static/admin/_next/static/chunks/pages/settings/organization-f45920358a405167.js +0 -1
  185. fides/ui-build/static/admin/_next/static/chunks/pages/systems/configure/[id]/test-datasets-ae133b6e8e1107f2.js +0 -1
  186. fides/ui-build/static/admin/_next/static/css/dd9922a434d21e22.css +0 -1
  187. fides/ui-build/static/admin/_next/static/lO31cDp9wEzsNdiUnl8It/_buildManifest.js +0 -1
  188. {ethyca_fides-2.57.1b8.dist-info → ethyca_fides-2.57.1rc0.dist-info}/LICENSE +0 -0
  189. {ethyca_fides-2.57.1b8.dist-info → ethyca_fides-2.57.1rc0.dist-info}/WHEEL +0 -0
  190. {ethyca_fides-2.57.1b8.dist-info → ethyca_fides-2.57.1rc0.dist-info}/entry_points.txt +0 -0
  191. {ethyca_fides-2.57.1b8.dist-info → ethyca_fides-2.57.1rc0.dist-info}/top_level.txt +0 -0
  192. /fides/ui-build/static/admin/_next/static/chunks/{1150-d4a5eef84e70de22.js → 1150-73440d7b319558e8.js} +0 -0
  193. /fides/ui-build/static/admin/_next/static/chunks/{2397-c6d0dcb3b921555f.js → 2397-7177ecf4ebe68feb.js} +0 -0
  194. /fides/ui-build/static/admin/_next/static/chunks/{3086-d099019708303444.js → 3086-be6b52546c3efc90.js} +0 -0
  195. /fides/ui-build/static/admin/_next/static/chunks/{3855-4d5d936a58a0dd5f.js → 3855-5c7b11871f59e0e0.js} +0 -0
  196. /fides/ui-build/static/admin/_next/static/chunks/{3872-2b2bf5ebd4b0a70f.js → 3872-f3d5054bdc584eaa.js} +0 -0
  197. /fides/ui-build/static/admin/_next/static/chunks/{5246-ac8b0fcb44b00af7.js → 5246-9fc6af1a6499e0a4.js} +0 -0
  198. /fides/ui-build/static/admin/_next/static/chunks/{5258-a05dcab2f9315dab.js → 5258-3a650be9142cf914.js} +0 -0
  199. /fides/ui-build/static/admin/_next/static/chunks/{5480-c6c1fb87006e471a.js → 5480-f5bec5e881f72f8d.js} +0 -0
  200. /fides/ui-build/static/admin/_next/static/chunks/{5487-509639439bf9fb46.js → 5487-d96e1abc93f92631.js} +0 -0
  201. /fides/ui-build/static/admin/_next/static/chunks/{5826-e3970cd9440be33b.js → 5826-16e497af363a0cbc.js} +0 -0
  202. /fides/ui-build/static/admin/_next/static/chunks/{6315-daf94fa7520fb253.js → 6315-dee79f6861c94d2d.js} +0 -0
  203. /fides/ui-build/static/admin/_next/static/chunks/{6372-41afe1e6a9181cc7.js → 6372-f1b54f3cb4888660.js} +0 -0
  204. /fides/ui-build/static/admin/_next/static/chunks/{6853-7f95c36e396d3fb8.js → 6853-cacea421af3bfc26.js} +0 -0
  205. /fides/ui-build/static/admin/_next/static/chunks/{7751-130668529ab1d0b6.js → 7751-25e0c1307988ffd7.js} +0 -0
  206. /fides/ui-build/static/admin/_next/static/chunks/{79-1c326c00cf111c00.js → 79-ba88d0cf4c65aaa2.js} +0 -0
  207. /fides/ui-build/static/admin/_next/static/chunks/{8433-b2a96b825124b596.js → 8433-969280d321d1c3a2.js} +0 -0
  208. /fides/ui-build/static/admin/_next/static/chunks/{8499-34620330ecf2ac53.js → 8499-07507004e8275df2.js} +0 -0
  209. /fides/ui-build/static/admin/_next/static/chunks/{9046-e7b9a3fd010b01ad.js → 9046-80f1ea44f89fe32c.js} +0 -0
  210. /fides/ui-build/static/admin/_next/static/chunks/{9282-6ee061da1eb51d65.js → 9282-1a5a2f6f4d9ed586.js} +0 -0
  211. /fides/ui-build/static/admin/_next/static/chunks/{9999-8600f6f495a80b38.js → 9999-f2e40d5b13343220.js} +0 -0
  212. /fides/ui-build/static/admin/_next/static/chunks/pages/{404-8e0baa6e128803ab.js → 404-1087258931760074.js} +0 -0
  213. /fides/ui-build/static/admin/_next/static/chunks/pages/{ant-poc-39267961e03be6c5.js → ant-poc-b3b4d0a98450ffd1.js} +0 -0
  214. /fides/ui-build/static/admin/_next/static/chunks/pages/consent/{privacy-experience-ed38f18c095141fe.js → privacy-experience-35e9df60b21e21a6.js} +0 -0
  215. /fides/ui-build/static/admin/_next/static/chunks/pages/consent/{privacy-notices-7339b3cdf5d4da32.js → privacy-notices-da37afbe5ec81339.js} +0 -0
  216. /fides/ui-build/static/admin/_next/static/chunks/pages/consent/{properties-b5b3196eba90246a.js → properties-c57b209feef7c2da.js} +0 -0
  217. /fides/ui-build/static/admin/_next/static/chunks/pages/consent/{reporting-38b8ec1a221610ff.js → reporting-97fea4ac45093cbd.js} +0 -0
  218. /fides/ui-build/static/admin/_next/static/chunks/pages/{consent-df2388d953c85c2a.js → consent-24bef021ee71e36c.js} +0 -0
  219. /fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/projects/[projectUrn]/{[resourceUrn]-5e851b9f27bda8a4.js → [resourceUrn]-6cbd79481199812d.js} +0 -0
  220. /fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/projects/{[projectUrn]-9f9112b22fdfb32a.js → [projectUrn]-46b9790da2fec05a.js} +0 -0
  221. /fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/{projects-ddca867936c89a72.js → projects-1f965b9c496071d1.js} +0 -0
  222. /fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/resources/{[resourceUrn]-85e3d6f1b2afd3e7.js → [resourceUrn]-e7833c1c606081a9.js} +0 -0
  223. /fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/{resources-9831226436d884b5.js → resources-bed368d048ea6883.js} +0 -0
  224. /fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/{activity-a0749240265da17d.js → activity-1d7936f05d23097f.js} +0 -0
  225. /fides/ui-build/static/admin/_next/static/chunks/pages/{datamap-819ac99e7a56465a.js → datamap-9cd0c40bef77b120.js} +0 -0
  226. /fides/ui-build/static/admin/_next/static/chunks/pages/dataset/[datasetId]/[collectionName]/{[...subfieldNames]-259d4a94861afe2b.js → [...subfieldNames]-ab9bc1a3640547db.js} +0 -0
  227. /fides/ui-build/static/admin/_next/static/chunks/pages/dataset/[datasetId]/{[collectionName]-25283f5bcac8fa73.js → [collectionName]-17ec8385bb1fa6d4.js} +0 -0
  228. /fides/ui-build/static/admin/_next/static/chunks/pages/dataset/{[datasetId]-aaedf8f2a849c97f.js → [datasetId]-e14c1c07658f8a10.js} +0 -0
  229. /fides/ui-build/static/admin/_next/static/chunks/pages/{datastore-connection-61adfcd5f7f69101.js → datastore-connection-b8eaa9b9d3832b30.js} +0 -0
  230. /fides/ui-build/static/admin/_next/static/chunks/pages/{index-1072281d6cfe8295.js → index-94e6d589c4edf360.js} +0 -0
  231. /fides/ui-build/static/admin/_next/static/chunks/pages/messaging/{[id]-268918d8c1dfe82a.js → [id]-6b032de0a6c2c400.js} +0 -0
  232. /fides/ui-build/static/admin/_next/static/chunks/pages/messaging/{add-template-cd75949bee7497b6.js → add-template-c0d6ae68ff7979c6.js} +0 -0
  233. /fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/{[id]-d1f4178b8a7e2145.js → [id]-bbe5854b7d19b7e9.js} +0 -0
  234. /fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/{configure-37e800a20e654064.js → configure-4bad69cd42c9722c.js} +0 -0
  235. /fides/ui-build/static/admin/_next/static/chunks/pages/properties/{[id]-92145503c4d2d75e.js → [id]-b4c808a8a0287d11.js} +0 -0
  236. /fides/ui-build/static/admin/_next/static/chunks/pages/properties/{add-property-ab94805694ebd35c.js → add-property-5a701477b006a63b.js} +0 -0
  237. /fides/ui-build/static/admin/_next/static/chunks/pages/{properties-5e623dcd92418638.js → properties-9a1899dfe052023e.js} +0 -0
  238. /fides/ui-build/static/admin/_next/static/chunks/pages/reporting/{datamap-710839776b9995ce.js → datamap-a3fa3ad77730a03b.js} +0 -0
  239. /fides/ui-build/static/admin/_next/static/chunks/pages/settings/{about-175d39bdd74f148c.js → about-d073be113e9ca7b0.js} +0 -0
  240. /fides/ui-build/static/admin/_next/static/chunks/pages/settings/{custom-fields-1262d596c0cdcd81.js → custom-fields-744e7bbc200557e7.js} +0 -0
  241. /fides/ui-build/static/admin/_next/static/chunks/pages/settings/{domain-records-f0c6e6034d37dbcf.js → domain-records-c5cd5fb578de9515.js} +0 -0
  242. /fides/ui-build/static/admin/_next/static/chunks/pages/settings/{email-templates-6ee49492a7769f89.js → email-templates-39c7ae3602ac69b2.js} +0 -0
  243. /fides/ui-build/static/admin/_next/static/chunks/pages/settings/{locations-deb754d42982562b.js → locations-45e33ba111f8f8b0.js} +0 -0
  244. /fides/ui-build/static/admin/_next/static/chunks/pages/settings/{regulations-f9e97decfe56b018.js → regulations-94975aeab348528e.js} +0 -0
  245. /fides/ui-build/static/admin/_next/static/chunks/pages/{systems-4d6a17a7a24aca97.js → systems-c320df35d51dc537.js} +0 -0
  246. /fides/ui-build/static/admin/_next/static/chunks/pages/{taxonomy-46f47c04a01319cf.js → taxonomy-181ea5b0ac975239.js} +0 -0
  247. /fides/ui-build/static/admin/_next/static/chunks/pages/user-management/profile/{[id]-5b752ba934baee94.js → [id]-622e16a17a11c096.js} +0 -0
  248. /fides/ui-build/static/admin/_next/static/chunks/pages/{user-management-4fbb29cf0a611aae.js → user-management-aa872b21bb835d34.js} +0 -0
  249. /fides/ui-build/static/admin/_next/static/chunks/{webpack-815e3c35038201da.js → webpack-4df2ba5ee2d40f0a.js} +0 -0
  250. /fides/ui-build/static/admin/_next/static/{lO31cDp9wEzsNdiUnl8It → rOPehh5NMs1hjog7nTw1q}/_ssgManifest.js +0 -0
@@ -1,54 +0,0 @@
1
- """add user assigned data_uses and system_id columns to stagedresource
2
-
3
- Revision ID: 7c3fbee90c78
4
- Revises: 9a1eacd2666b
5
- Create Date: 2025-03-04 15:00:23.874270
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 = "7c3fbee90c78"
15
- down_revision = "9a1eacd2666b"
16
- branch_labels = None
17
- depends_on = None
18
-
19
-
20
- def upgrade():
21
- # ### commands auto generated by Alembic - please adjust! ###
22
- op.add_column(
23
- "stagedresource",
24
- sa.Column(
25
- "user_assigned_system_id", sa.VARCHAR(), autoincrement=False, nullable=True
26
- ),
27
- )
28
- op.add_column(
29
- "stagedresource",
30
- sa.Column(
31
- "user_assigned_data_uses",
32
- postgresql.ARRAY(sa.VARCHAR()),
33
- server_default=sa.text("'{}'::character varying[]"),
34
- autoincrement=False,
35
- nullable=False,
36
- ),
37
- )
38
- # ### end Alembic commands ###
39
- op.create_index(
40
- "ix_stagedresource_user_assigned_system_id",
41
- "stagedresource",
42
- ["user_assigned_system_id"],
43
- unique=False,
44
- )
45
-
46
-
47
- def downgrade():
48
- # ### commands auto generated by Alembic - please adjust! ###
49
- op.drop_column("stagedresource", "user_assigned_data_uses")
50
- op.drop_column("stagedresource", "user_assigned_system_id")
51
- # ### end Alembic commands ###
52
- op.drop_index(
53
- "ix_stagedresource_user_assigned_system_id", table_name="stagedresource"
54
- )
@@ -1,25 +0,0 @@
1
- """add description column to asset
2
-
3
- Revision ID: 9a1eacd2666b
4
- Revises: 69ad6d844e21
5
- Create Date: 2025-02-28 13:59:26.022822
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 = "9a1eacd2666b"
15
- down_revision = "69ad6d844e21"
16
- branch_labels = None
17
- depends_on = None
18
-
19
-
20
- def upgrade():
21
- op.add_column("asset", sa.Column("description", sa.String(), nullable=True))
22
-
23
-
24
- def downgrade():
25
- op.drop_column("asset", "description")
@@ -1,44 +0,0 @@
1
- from .consent import Consent, ConsentRequest
2
- from .execution_log import (
3
- COMPLETED_EXECUTION_LOG_STATUSES,
4
- EXITED_EXECUTION_LOG_STATUSES,
5
- ExecutionLog,
6
- can_run_checkpoint,
7
- )
8
- from .privacy_request import (
9
- CustomPrivacyRequestField,
10
- PrivacyRequest,
11
- PrivacyRequestError,
12
- PrivacyRequestNotifications,
13
- )
14
- from .provided_identity import ProvidedIdentity, ProvidedIdentityType
15
- from .request_task import RequestTask, TraversalDetails
16
- from .webhook import (
17
- CallbackType,
18
- SecondPartyRequestFormat,
19
- generate_request_callback_pre_approval_jwe,
20
- generate_request_callback_resume_jwe,
21
- generate_request_task_callback_jwe,
22
- )
23
-
24
- __all__ = [
25
- "CallbackType",
26
- "Consent",
27
- "ConsentRequest",
28
- "COMPLETED_EXECUTION_LOG_STATUSES",
29
- "EXITED_EXECUTION_LOG_STATUSES",
30
- "CustomPrivacyRequestField",
31
- "ExecutionLog",
32
- "PrivacyRequest",
33
- "PrivacyRequestError",
34
- "PrivacyRequestNotifications",
35
- "ProvidedIdentity",
36
- "ProvidedIdentityType",
37
- "RequestTask",
38
- "SecondPartyRequestFormat",
39
- "TraversalDetails",
40
- "can_run_checkpoint",
41
- "generate_request_callback_pre_approval_jwe",
42
- "generate_request_callback_resume_jwe",
43
- "generate_request_task_callback_jwe",
44
- ]
@@ -1,155 +0,0 @@
1
- # pylint: disable=R0401, C0302
2
-
3
- from __future__ import annotations
4
-
5
- from datetime import datetime
6
- from typing import TYPE_CHECKING, Any, Dict, Optional
7
-
8
- from loguru import logger
9
- from sqlalchemy import Boolean, Column, DateTime, ForeignKey, String, UniqueConstraint
10
- from sqlalchemy.dialects.postgresql import JSONB
11
- from sqlalchemy.ext.mutable import MutableList
12
- from sqlalchemy.orm import Session, relationship
13
-
14
- from fides.api.db.base_class import Base # type: ignore[attr-defined]
15
- from fides.api.db.util import EnumColumn
16
- from fides.api.models.privacy_request.privacy_request import CustomPrivacyRequestField
17
- from fides.api.models.privacy_request.provided_identity import ProvidedIdentity
18
- from fides.api.schemas.privacy_request import PrivacyRequestSource
19
- from fides.api.schemas.redis_cache import (
20
- CustomPrivacyRequestField as CustomPrivacyRequestFieldSchema,
21
- )
22
- from fides.api.schemas.redis_cache import IdentityBase
23
- from fides.api.util.cache import FidesopsRedis, get_cache
24
- from fides.api.util.identity_verification import IdentityVerificationMixin
25
- from fides.config import CONFIG
26
-
27
- if TYPE_CHECKING:
28
- from fides.api.models.privacy_request.privacy_request import (
29
- PrivacyRequest, # type: ignore[attr-defined]
30
- )
31
-
32
-
33
- class Consent(Base):
34
- """The DB ORM model for Consent."""
35
-
36
- provided_identity_id = Column(
37
- String,
38
- ForeignKey(ProvidedIdentity.id),
39
- nullable=False,
40
- )
41
- data_use = Column(String, nullable=False)
42
- data_use_description = Column(String)
43
- opt_in = Column(Boolean, nullable=False)
44
- has_gpc_flag = Column(
45
- Boolean,
46
- server_default="f",
47
- default=False,
48
- nullable=False,
49
- )
50
- conflicts_with_gpc = Column(
51
- Boolean,
52
- server_default="f",
53
- default=False,
54
- nullable=False,
55
- )
56
-
57
- provided_identity = relationship(ProvidedIdentity, back_populates="consent")
58
-
59
- UniqueConstraint(provided_identity_id, data_use, name="uix_identity_data_use")
60
-
61
- identity: Optional[IdentityBase] = None
62
-
63
-
64
- class ConsentRequest(IdentityVerificationMixin, Base):
65
- """Tracks consent requests."""
66
-
67
- property_id = Column(
68
- String,
69
- nullable=True,
70
- )
71
- provided_identity_id = Column(
72
- String, ForeignKey(ProvidedIdentity.id), nullable=False
73
- )
74
- provided_identity = relationship(
75
- ProvidedIdentity,
76
- back_populates="consent_request",
77
- )
78
-
79
- custom_fields = relationship(
80
- "CustomPrivacyRequestField", back_populates="consent_request"
81
- )
82
-
83
- preferences = Column(
84
- MutableList.as_mutable(JSONB),
85
- nullable=True,
86
- )
87
-
88
- identity_verified_at = Column(
89
- DateTime(timezone=True),
90
- nullable=True,
91
- )
92
-
93
- source = Column(EnumColumn(PrivacyRequestSource), nullable=True)
94
-
95
- privacy_request_id = Column(String, ForeignKey("privacyrequest.id"), nullable=True)
96
- privacy_request = relationship("PrivacyRequest")
97
-
98
- def get_cached_identity_data(self) -> Dict[str, Any]:
99
- """Retrieves any identity data pertaining to this request from the cache."""
100
- prefix = f"id-{self.id}-identity-*"
101
- cache: FidesopsRedis = get_cache()
102
- keys = cache.keys(prefix)
103
- return {key.split("-")[-1]: cache.get(key) for key in keys}
104
-
105
- def verify_identity(
106
- self,
107
- db: Session,
108
- provided_code: Optional[str] = None,
109
- ) -> None:
110
- """
111
- A method to call the internal identity verification method provided by the
112
- `IdentityVerificationMixin`.
113
- """
114
- self._verify_identity(provided_code=provided_code)
115
- self.identity_verified_at = datetime.utcnow()
116
- self.save(db)
117
-
118
- def persist_custom_privacy_request_fields(
119
- self,
120
- db: Session,
121
- custom_privacy_request_fields: Optional[
122
- Dict[str, CustomPrivacyRequestFieldSchema]
123
- ],
124
- ) -> None:
125
- if not custom_privacy_request_fields:
126
- return
127
-
128
- if CONFIG.execution.allow_custom_privacy_request_field_collection:
129
- for key, item in custom_privacy_request_fields.items():
130
- if item.value:
131
- hashed_value = CustomPrivacyRequestField.hash_value(item.value)
132
- CustomPrivacyRequestField.create(
133
- db=db,
134
- data={
135
- "consent_request_id": self.id,
136
- "field_name": key,
137
- "field_label": item.label,
138
- "encrypted_value": {"value": item.value},
139
- "hashed_value": hashed_value,
140
- },
141
- )
142
- else:
143
- logger.info(
144
- "Custom fields provided in consent request {}, but config setting 'CONFIG.execution.allow_custom_privacy_request_field_collection' prevents their storage.",
145
- self.id,
146
- )
147
-
148
- def get_persisted_custom_privacy_request_fields(self) -> Dict[str, Any]:
149
- return {
150
- field.field_name: {
151
- "label": field.field_label,
152
- "value": field.encrypted_value["value"],
153
- }
154
- for field in self.custom_fields # type: ignore[attr-defined]
155
- }
@@ -1,108 +0,0 @@
1
- # pylint: disable=R0401, C0302
2
-
3
- from __future__ import annotations
4
-
5
- from typing import Optional
6
-
7
- from sqlalchemy import Column, DateTime, String
8
- from sqlalchemy.dialects.postgresql import JSONB
9
- from sqlalchemy.ext.mutable import MutableList
10
- from sqlalchemy.sql import text
11
-
12
- from fides.api.db.base_class import Base # type: ignore[attr-defined]
13
- from fides.api.db.util import EnumColumn
14
- from fides.api.schemas.policy import ActionType, CurrentStep
15
- from fides.api.schemas.privacy_request import ExecutionLogStatus
16
-
17
- # Locations from which privacy request execution can be resumed, in order.
18
- EXECUTION_CHECKPOINTS = [
19
- CurrentStep.pre_webhooks,
20
- CurrentStep.access,
21
- CurrentStep.upload_access,
22
- CurrentStep.erasure,
23
- CurrentStep.finalize_erasure,
24
- CurrentStep.consent,
25
- CurrentStep.finalize_consent,
26
- CurrentStep.email_post_send,
27
- CurrentStep.post_webhooks,
28
- ]
29
-
30
- COMPLETED_EXECUTION_LOG_STATUSES = [
31
- ExecutionLogStatus.complete,
32
- ExecutionLogStatus.skipped,
33
- ]
34
-
35
- EXITED_EXECUTION_LOG_STATUSES = [
36
- ExecutionLogStatus.complete,
37
- ExecutionLogStatus.error,
38
- ExecutionLogStatus.skipped,
39
- ]
40
-
41
-
42
- def can_run_checkpoint(
43
- request_checkpoint: CurrentStep, from_checkpoint: Optional[CurrentStep] = None
44
- ) -> bool:
45
- """Determine whether we should run a specific checkpoint in privacy request execution
46
-
47
- If there's no from_checkpoint specified we should always run the current checkpoint.
48
- """
49
- if not from_checkpoint:
50
- return True
51
- return EXECUTION_CHECKPOINTS.index(
52
- request_checkpoint
53
- ) >= EXECUTION_CHECKPOINTS.index(from_checkpoint)
54
-
55
-
56
- class ExecutionLog(Base):
57
- """
58
- Stores the individual execution logs associated with a PrivacyRequest.
59
-
60
- Execution logs contain information about the individual queries as they progress through the workflow
61
- generated by the query builder.
62
- """
63
-
64
- connection_key = Column(String, index=True)
65
- # Name of the fides-annotated dataset, for example: my-mongo-db
66
- dataset_name = Column(String, index=True)
67
- # Name of the particular collection or table affected
68
- collection_name = Column(String, index=True)
69
- # A JSON Array describing affected fields along with their data categories and paths
70
- fields_affected = Column(MutableList.as_mutable(JSONB), nullable=True)
71
- # Contains info, warning, or error messages
72
- message = Column(String)
73
- action_type = Column(
74
- EnumColumn(ActionType),
75
- index=True,
76
- nullable=False,
77
- )
78
- status = Column(
79
- EnumColumn(
80
- ExecutionLogStatus,
81
- native_enum=True,
82
- values_callable=lambda x: [
83
- i.value for i in x
84
- ], # Using ExecutionLogStatus values in database, even though app is using the names.
85
- ),
86
- index=True,
87
- nullable=False,
88
- )
89
-
90
- privacy_request_id = Column(
91
- String,
92
- nullable=False,
93
- index=True,
94
- )
95
-
96
- # Use clock_timestamp() instead of NOW() to get the actual current time at row creation,
97
- # regardless of transaction state. This prevents timestamp caching within transactions
98
- # and ensures more accurate creation times.
99
- # https://www.postgresql.org/docs/current/functions-datetime.html#FUNCTIONS-DATETIME-CURRENT
100
-
101
- created_at = Column(
102
- DateTime(timezone=True), server_default=text("clock_timestamp()")
103
- )
104
- updated_at = Column(
105
- DateTime(timezone=True),
106
- server_default=text("clock_timestamp()"),
107
- onupdate=text("clock_timestamp()"),
108
- )
@@ -1,149 +0,0 @@
1
- # pylint: disable=R0401, C0302
2
-
3
- from __future__ import annotations
4
-
5
- from enum import Enum as EnumType
6
- from typing import TYPE_CHECKING
7
-
8
- from sqlalchemy import Column, ForeignKey, String
9
- from sqlalchemy.ext.mutable import MutableDict
10
- from sqlalchemy.orm import relationship
11
- from sqlalchemy_utils.types.encrypted.encrypted_type import (
12
- AesGcmEngine,
13
- StringEncryptedType,
14
- )
15
-
16
- from fides.api.cryptography.cryptographic_util import (
17
- hash_credential_with_salt,
18
- hash_value_with_salt,
19
- )
20
- from fides.api.cryptography.identity_salt import get_identity_salt
21
- from fides.api.db.base_class import Base # type: ignore[attr-defined]
22
- from fides.api.db.base_class import JSONTypeOverride
23
- from fides.api.migrations.hash_migration_mixin import HashMigrationMixin
24
- from fides.api.schemas.redis_cache import Identity, LabeledIdentity, MultiValue
25
- from fides.config import CONFIG
26
-
27
- if TYPE_CHECKING:
28
- from fides.api.models.privacy_request.consent import Consent, ConsentRequest
29
- from fides.api.models.privacy_request.privacy_request import PrivacyRequest
30
-
31
-
32
- class ProvidedIdentityType(EnumType):
33
- """Enum for privacy request identity types"""
34
-
35
- email = "email"
36
- phone_number = "phone_number"
37
- ga_client_id = "ga_client_id"
38
- ljt_readerID = "ljt_readerID"
39
- fides_user_device_id = "fides_user_device_id"
40
- external_id = "external_id"
41
-
42
-
43
- class ProvidedIdentity(HashMigrationMixin, Base): # pylint: disable=R0904
44
- """
45
- A table for storing identity fields and values provided at privacy request
46
- creation time.
47
- """
48
-
49
- privacy_request_id = Column(
50
- String,
51
- ForeignKey("privacyrequest.id", ondelete="CASCADE", onupdate="CASCADE"),
52
- )
53
- privacy_request = relationship(
54
- "PrivacyRequest",
55
- backref="provided_identities",
56
- ) # Which privacy request this identity belongs to
57
-
58
- field_name = Column(
59
- String,
60
- index=False,
61
- nullable=False,
62
- )
63
- field_label = Column(
64
- String,
65
- index=False,
66
- nullable=True,
67
- )
68
- hashed_value = Column(
69
- String,
70
- index=True,
71
- unique=False,
72
- nullable=True,
73
- ) # This field is used as a blind index for exact match searches
74
- encrypted_value = Column(
75
- MutableDict.as_mutable(
76
- StringEncryptedType(
77
- JSONTypeOverride,
78
- CONFIG.security.app_encryption_key,
79
- AesGcmEngine,
80
- "pkcs5",
81
- )
82
- ),
83
- nullable=True,
84
- ) # Type bytea in the db
85
- consent = relationship(
86
- "Consent", back_populates="provided_identity", cascade="delete, delete-orphan"
87
- )
88
- consent_request = relationship(
89
- "ConsentRequest",
90
- back_populates="provided_identity",
91
- cascade="delete, delete-orphan",
92
- )
93
-
94
- @classmethod
95
- def bcrypt_hash_value(
96
- cls,
97
- value: MultiValue,
98
- encoding: str = "UTF-8",
99
- ) -> str:
100
- """
101
- Temporary function used to hash values to the previously used bcrypt hashes.
102
- This can be removed once the bcrypt to SHA-256 migration is complete.
103
- """
104
-
105
- SALT = "$2b$12$UErimNtlsE6qgYf2BrI1Du"
106
- value_str = str(value)
107
- hashed_value = hash_credential_with_salt(
108
- value_str.encode(encoding),
109
- SALT.encode(encoding),
110
- )
111
- return hashed_value
112
-
113
- @classmethod
114
- def hash_value(
115
- cls,
116
- value: MultiValue,
117
- encoding: str = "UTF-8",
118
- ) -> str:
119
- """Utility function to hash the value with a generated salt"""
120
- SALT = get_identity_salt()
121
- value_str = str(value)
122
- hashed_value = hash_value_with_salt(
123
- value_str.encode(encoding),
124
- SALT.encode(encoding),
125
- )
126
- return hashed_value
127
-
128
- def migrate_hashed_fields(self) -> None:
129
- if value := self.encrypted_value.get("value"):
130
- self.hashed_value = self.hash_value(value)
131
- self.is_hash_migrated = True
132
-
133
- def as_identity_schema(self) -> Identity:
134
- """Creates an Identity schema from a ProvidedIdentity record in the application DB."""
135
-
136
- identity_dict = {}
137
- if any(
138
- [
139
- not self.field_name,
140
- not self.encrypted_value,
141
- ]
142
- ):
143
- return Identity()
144
-
145
- value = self.encrypted_value.get("value") # type:ignore
146
- if self.field_label:
147
- value = LabeledIdentity(label=self.field_label, value=value)
148
- identity_dict[self.field_name] = value
149
- return Identity(**identity_dict)