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
fides/_version.py CHANGED
@@ -8,11 +8,11 @@ import json
8
8
 
9
9
  version_json = '''
10
10
  {
11
- "date": "2025-03-24T16:32:51-0600",
11
+ "date": "2025-03-25T12:32:49-0300",
12
12
  "dirty": false,
13
13
  "error": null,
14
- "full-revisionid": "c371f453f33d1af4a35dfe6ae1d78c16b72576d8",
15
- "version": "2.57.1b8"
14
+ "full-revisionid": "e52bec9197d4b3ac45f875238ec25f7af6cf5db7",
15
+ "version": "2.57.1rc0"
16
16
  }
17
17
  ''' # END VERSION_JSON
18
18
 
@@ -58,10 +58,8 @@ def patch_settings(
58
58
  Only keys provided will be updated, others will be unaffected,
59
59
  i.e. true PATCH behavior.
60
60
  """
61
- # We use exclude_unset=True to ensure that only the provided keys are updated.
62
- # This is particularly useful for allowing setting a specific key to None, while
63
- # keeping the existing values for other keys that aren't provided in the payload data.
64
- pruned_data = data.model_dump(exclude_unset=True)
61
+
62
+ pruned_data = data.model_dump(exclude_none=True)
65
63
  logger.info("PATCHing application settings")
66
64
  update_config: ApplicationConfig = ApplicationConfig.update_api_set(db, pruned_data)
67
65
 
@@ -9,7 +9,7 @@ from fideslang.models import Dataset as FideslangDataset
9
9
  from pydantic import ValidationError as PydanticValidationError
10
10
  from sqlalchemy import not_, select
11
11
  from sqlalchemy.ext.asyncio import AsyncSession
12
- from sqlalchemy.orm import Session, load_only
12
+ from sqlalchemy.orm import Session
13
13
  from starlette import status
14
14
  from starlette.status import (
15
15
  HTTP_200_OK,
@@ -22,10 +22,9 @@ from fides.api.common_exceptions import KeyOrNameAlreadyExists, ValidationError
22
22
  from fides.api.db.base_class import get_key_from_data
23
23
  from fides.api.db.crud import list_resource_query
24
24
  from fides.api.db.ctl_session import get_async_db
25
- from fides.api.models.connectionconfig import ConnectionConfig, ConnectionType
25
+ from fides.api.models.connectionconfig import ConnectionConfig
26
26
  from fides.api.models.datasetconfig import DatasetConfig
27
27
  from fides.api.oauth.utils import verify_oauth_client
28
- from fides.api.schemas.dataset import DatasetResponse
29
28
  from fides.api.schemas.filter_params import FilterParams
30
29
  from fides.api.schemas.taxonomy_extensions import (
31
30
  DataCategory,
@@ -99,11 +98,6 @@ async def create_dataset(
99
98
  else exc.message
100
99
  ),
101
100
  )
102
- except KeyOrNameAlreadyExists as exc:
103
- raise HTTPException(
104
- status_code=HTTP_422_UNPROCESSABLE_ENTITY,
105
- detail=str(exc),
106
- )
107
101
 
108
102
 
109
103
  @dataset_router.put(
@@ -139,7 +133,7 @@ async def update_dataset(
139
133
  @dataset_router.get(
140
134
  "/dataset",
141
135
  dependencies=[Security(verify_oauth_client, scopes=[CTL_DATASET_READ])],
142
- response_model=Union[Page[DatasetResponse], List[DatasetResponse]],
136
+ response_model=Union[Page[FideslangDataset], List[FideslangDataset]],
143
137
  name="List datasets (optionally paginated)",
144
138
  )
145
139
  async def list_dataset_paginated(
@@ -150,9 +144,7 @@ async def list_dataset_paginated(
150
144
  data_categories: Optional[List[str]] = Query(None),
151
145
  exclude_saas_datasets: Optional[bool] = Query(False),
152
146
  only_unlinked_datasets: Optional[bool] = Query(False),
153
- connection_type: Optional[ConnectionType] = Query(None),
154
- minimal: Optional[bool] = Query(False),
155
- ) -> Union[Page[DatasetResponse], List[DatasetResponse]]:
147
+ ) -> Union[Page[FideslangDataset], List[FideslangDataset]]:
156
148
  """
157
149
  Get a list of all of the Datasets.
158
150
  If any pagination parameters (size or page) are provided, then the response will be paginated.
@@ -164,25 +156,6 @@ async def list_dataset_paginated(
164
156
 
165
157
  query = select(CtlDataset)
166
158
 
167
- if minimal:
168
- # .options() allows us to modify how the query loads data by configuring the query's loading behavior
169
- # load_only() optimizes the query by only loading the specified columns from the database
170
- # This reduces memory usage and query time by not loading unnecessary columns
171
- # The columns specified below are the minimal set needed for the DatasetResponse model
172
- query = query.options( # type: ignore[attr-defined]
173
- load_only(
174
- CtlDataset.id,
175
- CtlDataset.fides_key,
176
- CtlDataset.organization_fides_key,
177
- CtlDataset.name,
178
- CtlDataset.created_at,
179
- CtlDataset.updated_at,
180
- CtlDataset.meta,
181
- CtlDataset.fides_meta,
182
- CtlDataset.description,
183
- )
184
- )
185
-
186
159
  # Add filters for search and data categories
187
160
  filter_params = FilterParams(search=search, data_categories=data_categories)
188
161
  filtered_query = apply_filters_to_query(
@@ -192,13 +165,6 @@ async def list_dataset_paginated(
192
165
  filter_params=filter_params,
193
166
  )
194
167
 
195
- # If applicable, filter by connection type
196
- if connection_type:
197
- filtered_query = filtered_query.where(
198
- CtlDataset.fides_meta["namespace"]["connection_type"].as_string()
199
- == connection_type.value
200
- )
201
-
202
168
  # If applicable, keep only unlinked datasets
203
169
  if only_unlinked_datasets:
204
170
  linked_datasets = select([DatasetConfig.ctl_dataset_id])
@@ -216,18 +182,10 @@ async def list_dataset_paginated(
216
182
  )
217
183
 
218
184
  if not page and not size:
219
- results = await list_resource_query(db, filtered_query, CtlDataset)
220
- response = [
221
- DatasetResponse.model_validate(result.__dict__) for result in results
222
- ]
223
- return response
185
+ return await list_resource_query(db, filtered_query, CtlDataset)
224
186
 
225
187
  pagination_params = Params(page=page or 1, size=size or 50)
226
- results = await async_paginate(db, filtered_query, pagination_params)
227
- results.items = [ # type: ignore[attr-defined]
228
- DatasetResponse.model_validate(result.__dict__) for result in results.items # type: ignore[attr-defined]
229
- ]
230
- return results
188
+ return await async_paginate(db, filtered_query, pagination_params)
231
189
 
232
190
 
233
191
  @dataset_router.get(
fides/api/models/asset.py CHANGED
@@ -38,8 +38,6 @@ class Asset(Base):
38
38
  locations = Column(ARRAY(String), server_default="{}", nullable=False)
39
39
  with_consent = Column(BOOLEAN, default=False, nullable=False)
40
40
  data_uses = Column(ARRAY(String), server_default="{}", nullable=False)
41
- description = Column(String, nullable=True)
42
- page = Column(ARRAY(String), server_default="{}", nullable=False)
43
41
 
44
42
  # generic object to store additional attributes, specific to asset type
45
43
  meta = Column(
@@ -95,11 +93,9 @@ class Asset(Base):
95
93
  - asset_type
96
94
  - domain
97
95
  - base_url (if applicable)
98
- - system_id
99
-
100
- If you provide the ID of an existing asset it will be updated with any provided data
96
+ - system_id.
101
97
  """
102
- if "id" not in data and (
98
+ if (
103
99
  "name" not in data
104
100
  or "asset_type" not in data
105
101
  or "domain" not in data
@@ -109,40 +105,25 @@ class Asset(Base):
109
105
  "name, asset_type, domain, and system_id are required fields on assets"
110
106
  )
111
107
 
108
+ result = await async_session.execute(
109
+ select(cls).where( # type: ignore[arg-type, call-arg]
110
+ cls.name == data["name"],
111
+ cls.asset_type == data["asset_type"],
112
+ cls.domain == data["domain"],
113
+ cls.system_id == data["system_id"],
114
+ cls.base_url == data.get("base_url"),
115
+ )
116
+ )
117
+ existing_record = result.scalars().first()
112
118
  record_id: str
113
-
114
- if "id" in data:
115
- result = await async_session.execute(
116
- select(cls).where(cls.id == data["id"]) # type: ignore[arg-type]
119
+ if existing_record:
120
+ await async_session.execute(
121
+ update(cls).where(cls.id == existing_record.id).values(data) # type: ignore[arg-type]
117
122
  )
118
- existing_record = result.scalars().first()
119
- if existing_record:
120
- await async_session.execute(
121
- update(cls).where(cls.id == existing_record.id).values(data) # type: ignore[arg-type]
122
- )
123
- record_id = existing_record.id
124
- else:
125
- raise ValueError(f"Asset with id {data['id']} does not exist")
123
+ record_id = existing_record.id
126
124
  else:
127
- result = await async_session.execute(
128
- select(cls).where( # type: ignore[arg-type, call-arg]
129
- cls.name == data["name"],
130
- cls.asset_type == data["asset_type"],
131
- cls.domain == data["domain"],
132
- cls.base_url == data.get("base_url"),
133
- cls.system_id == data["system_id"],
134
- )
135
- )
136
-
137
- existing_record = result.scalars().first()
138
- if existing_record:
139
- await async_session.execute(
140
- update(cls).where(cls.id == existing_record.id).values(data) # type: ignore[arg-type]
141
- )
142
- record_id = existing_record.id
143
- else:
144
- result = await async_session.execute(insert(cls).values(data)) # type: ignore[arg-type]
145
- record_id = result.inserted_primary_key.id
125
+ result = await async_session.execute(insert(cls).values(data)) # type: ignore[arg-type]
126
+ record_id = result.inserted_primary_key.id
146
127
 
147
128
  result = await async_session.execute(select(cls).where(cls.id == record_id)) # type: ignore[arg-type]
148
129
  return result.scalars().first()
@@ -13,14 +13,12 @@ from fides.api.db.base_class import Base
13
13
  from fides.api.models.fides_user import FidesUser # pylint: disable=unused-import
14
14
  from fides.api.models.storage import StorageConfig # pylint: disable=unused-import
15
15
  from fides.api.schemas.storage.storage import StorageDetails, StorageType
16
- from fides.api.service.storage.s3 import (
16
+ from fides.api.tasks.storage import (
17
+ LOCAL_FIDES_UPLOAD_DIRECTORY,
17
18
  generic_delete_from_s3,
18
19
  generic_retrieve_from_s3,
19
- generic_upload_to_s3,
20
- )
21
- from fides.api.service.storage.util import (
22
- LOCAL_FIDES_UPLOAD_DIRECTORY,
23
20
  get_local_filename,
21
+ upload_to_s3,
24
22
  )
25
23
 
26
24
 
@@ -93,6 +91,7 @@ class Attachment(Base):
93
91
 
94
92
  user = relationship(
95
93
  "FidesUser",
94
+ backref="attachments",
96
95
  lazy="selectin",
97
96
  uselist=False,
98
97
  )
@@ -115,10 +114,13 @@ class Attachment(Base):
115
114
  if self.config.type == StorageType.s3:
116
115
  bucket_name = f"{self.config.details[StorageDetails.BUCKET.value]}"
117
116
  auth_method = self.config.details[StorageDetails.AUTH_METHOD.value]
118
- generic_upload_to_s3(
117
+ upload_to_s3(
119
118
  storage_secrets=self.config.secrets,
119
+ data={},
120
120
  bucket_name=bucket_name,
121
121
  file_key=self.id,
122
+ resp_format=self.config.format,
123
+ privacy_request=None,
122
124
  document=attachment,
123
125
  auth_method=auth_method,
124
126
  )
@@ -1,5 +1,5 @@
1
1
  from enum import Enum as EnumType
2
- from typing import TYPE_CHECKING, Any
2
+ from typing import Any
3
3
 
4
4
  from sqlalchemy import Column
5
5
  from sqlalchemy import Enum as EnumColumn
@@ -8,10 +8,8 @@ from sqlalchemy.ext.declarative import declared_attr
8
8
  from sqlalchemy.orm import Session, relationship
9
9
 
10
10
  from fides.api.db.base_class import Base
11
-
12
- if TYPE_CHECKING:
13
- from fides.api.models.attachment import Attachment
14
- from fides.api.models.fides_user import FidesUser
11
+ from fides.api.models.attachment import Attachment, AttachmentReference
12
+ from fides.api.models.fides_user import FidesUser # pylint: disable=unused-import
15
13
 
16
14
 
17
15
  class CommentType(str, EnumType):
@@ -80,6 +78,7 @@ class Comment(Base):
80
78
 
81
79
  user = relationship(
82
80
  "FidesUser",
81
+ backref="comments",
83
82
  lazy="selectin",
84
83
  uselist=False,
85
84
  )
@@ -91,19 +90,20 @@ class Comment(Base):
91
90
  uselist=True,
92
91
  )
93
92
 
94
- attachments = relationship(
95
- "Attachment",
96
- secondary="attachment_reference",
97
- primaryjoin="Comment.id == AttachmentReference.reference_id",
98
- secondaryjoin="Attachment.id == AttachmentReference.attachment_id",
99
- order_by="Attachment.created_at",
100
- uselist=True,
101
- )
93
+ def get_attachments(self, db: Session) -> list[Attachment]:
94
+ """Retrieve all attachments associated with this comment."""
95
+ stmt = (
96
+ db.query(Attachment)
97
+ .join(
98
+ AttachmentReference, Attachment.id == AttachmentReference.attachment_id
99
+ )
100
+ .where(AttachmentReference.reference_id == self.id)
101
+ )
102
+ return db.execute(stmt).scalars().all()
102
103
 
103
104
  def delete(self, db: Session) -> None:
104
105
  """Delete the comment and all associated references."""
105
- # Delete the comment
106
- for attachment in self.attachments:
107
- if len(attachment.references) == 1:
108
- attachment.delete(db)
106
+ attachments = self.get_attachments(db)
107
+ for attachment in attachments:
108
+ attachment.delete(db)
109
109
  db.delete(self)
@@ -186,7 +186,7 @@ class ConnectionConfig(Base):
186
186
  )
187
187
  ),
188
188
  nullable=True,
189
- ) # Type bytes in the db
189
+ ) # Type bytea in the db
190
190
  last_test_timestamp = Column(DateTime(timezone=True))
191
191
  last_test_succeeded = Column(Boolean)
192
192
  disabled = Column(Boolean, server_default="f", default=False)
@@ -277,18 +277,6 @@ class StagedResource(Base):
277
277
  server_default="{}",
278
278
  default=dict,
279
279
  )
280
- user_assigned_data_uses = Column(
281
- ARRAY(String),
282
- nullable=False,
283
- server_default="{}",
284
- default=dict,
285
- )
286
- user_assigned_system_id = Column(
287
- String,
288
- ForeignKey(System.id_field_path),
289
- nullable=True,
290
- index=True,
291
- )
292
280
 
293
281
  # pointers to child and parent URNs
294
282
  children = Column(
@@ -317,7 +317,6 @@ class Location(LocationRegulationBase):
317
317
 
318
318
  belongs_to: List[str] = []
319
319
  regulation: List[str] = []
320
- is_country: bool = False
321
320
 
322
321
 
323
322
  class LocationGroup(Location):