ethyca-fides 2.57.1rc0__py2.py3-none-any.whl → 2.57.2b0__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 (296) hide show
  1. {ethyca_fides-2.57.1rc0.dist-info → ethyca_fides-2.57.2b0.dist-info}/METADATA +1 -1
  2. {ethyca_fides-2.57.1rc0.dist-info → ethyca_fides-2.57.2b0.dist-info}/RECORD +243 -228
  3. fides/_version.py +3 -3
  4. fides/api/alembic/migrations/versions/1d2f04ac19f2_add_page_column_to_asset_table.py +49 -0
  5. fides/api/alembic/migrations/versions/7c3fbee90c78_add_user_assigned_data_uses_and_system_.py +54 -0
  6. fides/api/alembic/migrations/versions/9a1eacd2666b_add_description_column_to_asset.py +25 -0
  7. fides/api/api/v1/endpoints/config_endpoints.py +4 -2
  8. fides/api/api/v1/endpoints/generic_overrides.py +48 -6
  9. fides/api/models/asset.py +37 -18
  10. fides/api/models/attachment.py +11 -13
  11. fides/api/models/comment.py +17 -17
  12. fides/api/models/connectionconfig.py +1 -1
  13. fides/api/models/detection_discovery.py +12 -0
  14. fides/api/models/location_regulation_selections.py +1 -0
  15. fides/api/models/privacy_request/__init__.py +44 -0
  16. fides/api/models/privacy_request/consent.py +155 -0
  17. fides/api/models/privacy_request/execution_log.py +108 -0
  18. fides/api/models/{privacy_request.py → privacy_request/privacy_request.py} +82 -691
  19. fides/api/models/privacy_request/provided_identity.py +149 -0
  20. fides/api/models/privacy_request/request_task.py +284 -0
  21. fides/api/models/privacy_request/webhook.py +94 -0
  22. fides/api/models/sql_models.py +28 -5
  23. fides/api/oauth/jwt.py +18 -0
  24. fides/api/oauth/utils.py +11 -11
  25. fides/api/schemas/dataset.py +22 -2
  26. fides/api/schemas/saas/strategy_configuration.py +1 -0
  27. fides/api/service/pagination/pagination_strategy_cursor.py +15 -1
  28. fides/api/service/pagination/pagination_strategy_link.py +1 -1
  29. fides/api/service/storage/s3.py +193 -0
  30. fides/api/service/storage/util.py +10 -0
  31. fides/api/tasks/storage.py +12 -111
  32. fides/config/__init__.py +1 -1
  33. fides/data/language/languages.yml +2 -0
  34. fides/data/location/locations.yml +244 -1
  35. fides/ui-build/static/admin/404.html +1 -1
  36. fides/ui-build/static/admin/_next/static/chunks/1100-053fc6b76c65a00f.js +1 -0
  37. fides/ui-build/static/admin/_next/static/chunks/{1150-73440d7b319558e8.js → 1150-035a721a04f4451e.js} +1 -1
  38. fides/ui-build/static/admin/_next/static/chunks/1376-5cea5ef9362215e8.js +1 -0
  39. fides/ui-build/static/admin/_next/static/chunks/{2397-7177ecf4ebe68feb.js → 2397-ee53235fb21b5e97.js} +1 -1
  40. fides/ui-build/static/admin/_next/static/chunks/{255-bf1797f78249d090.js → 255-7db55b0e3a0f9dea.js} +1 -1
  41. fides/ui-build/static/admin/_next/static/chunks/2fbcc6de-a6c61724c327e9fa.js +8 -0
  42. fides/ui-build/static/admin/_next/static/chunks/{3086-be6b52546c3efc90.js → 3086-b5054ec2c75700b9.js} +1 -1
  43. fides/ui-build/static/admin/_next/static/chunks/3320-5dd62a256ecfc9c3.js +1 -0
  44. fides/ui-build/static/admin/_next/static/chunks/355-8a77c9a1cd027f2e.js +1 -0
  45. fides/ui-build/static/admin/_next/static/chunks/3615-5e2d062d684b8fa1.js +1 -0
  46. fides/ui-build/static/admin/_next/static/chunks/{3855-5c7b11871f59e0e0.js → 3855-b6b7865dedd7bc2a.js} +1 -1
  47. fides/ui-build/static/admin/_next/static/chunks/{3872-f3d5054bdc584eaa.js → 3872-4e053c20d546f027.js} +1 -1
  48. fides/ui-build/static/admin/_next/static/chunks/4060-8d165e1236ea521a.js +1 -0
  49. fides/ui-build/static/admin/_next/static/chunks/4481-aab99ff80f707473.js +1 -0
  50. fides/ui-build/static/admin/_next/static/chunks/4723-0a3c5e2ce143a7d0.js +1 -0
  51. fides/ui-build/static/admin/_next/static/chunks/{5258-3a650be9142cf914.js → 5258-0658dc2274df6832.js} +1 -1
  52. fides/ui-build/static/admin/_next/static/chunks/5277-e8a036319456127f.js +1 -0
  53. fides/ui-build/static/admin/_next/static/chunks/{5480-f5bec5e881f72f8d.js → 5480-f49696df5e8ae500.js} +1 -1
  54. fides/ui-build/static/admin/_next/static/chunks/{5487-d96e1abc93f92631.js → 5487-3ad50d21cdbc9209.js} +1 -1
  55. fides/ui-build/static/admin/_next/static/chunks/570-c99f07161bd339cd.js +1 -0
  56. fides/ui-build/static/admin/_next/static/chunks/{5826-16e497af363a0cbc.js → 5826-e5dcb4e68cfe6289.js} +1 -1
  57. fides/ui-build/static/admin/_next/static/chunks/5973-52aee296edc44f7e.js +1 -0
  58. fides/ui-build/static/admin/_next/static/chunks/605-e692e9cfea2e2cb8.js +1 -0
  59. fides/ui-build/static/admin/_next/static/chunks/6060-cb1ab5be7067bf7b.js +4 -0
  60. fides/ui-build/static/admin/_next/static/chunks/{6315-dee79f6861c94d2d.js → 6315-fa1519cdf080f42d.js} +1 -1
  61. fides/ui-build/static/admin/_next/static/chunks/{6372-f1b54f3cb4888660.js → 6372-ca9c12ac8902365b.js} +1 -1
  62. fides/ui-build/static/admin/_next/static/chunks/6527-0eed08abe252a918.js +1 -0
  63. fides/ui-build/static/admin/_next/static/chunks/678d4732-50255cc09048e643.js +2 -0
  64. fides/ui-build/static/admin/_next/static/chunks/{6853-cacea421af3bfc26.js → 6853-8941824350c3c1a8.js} +1 -1
  65. fides/ui-build/static/admin/_next/static/chunks/6954-3b887fb444f9228c.js +1 -0
  66. fides/ui-build/static/admin/_next/static/chunks/{7088.0e7c92a7cbb57562.js → 7088.eb76fca286e5f2e6.js} +1 -1
  67. fides/ui-build/static/admin/_next/static/chunks/7434-e6fc02c2dd852991.js +1 -0
  68. fides/ui-build/static/admin/_next/static/chunks/{7751-25e0c1307988ffd7.js → 7751-a8f31c062d4cb09d.js} +1 -1
  69. fides/ui-build/static/admin/_next/static/chunks/{79-ba88d0cf4c65aaa2.js → 79-f9b948ebb186900f.js} +1 -1
  70. fides/ui-build/static/admin/_next/static/chunks/7980-4bd08957448dea32.js +1 -0
  71. fides/ui-build/static/admin/_next/static/chunks/7c79804f.7a7112aece470725.js +1 -0
  72. fides/ui-build/static/admin/_next/static/chunks/{8433-969280d321d1c3a2.js → 8433-b3008ecaf9834e7f.js} +1 -1
  73. fides/ui-build/static/admin/_next/static/chunks/{8499-07507004e8275df2.js → 8499-43606100edf42fdf.js} +1 -1
  74. fides/ui-build/static/admin/_next/static/chunks/8702-d1c8296f9f6afc10.js +1 -0
  75. fides/ui-build/static/admin/_next/static/chunks/{5908-532dfbc9d930f635.js → 9014-eeae6f581158e645.js} +1 -1
  76. fides/ui-build/static/admin/_next/static/chunks/{9046-80f1ea44f89fe32c.js → 9046-04bd7becea207cb1.js} +1 -1
  77. fides/ui-build/static/admin/_next/static/chunks/905-8ab919e7b274ed50.js +8 -0
  78. fides/ui-build/static/admin/_next/static/chunks/9187-851756440f79cd75.js +1 -0
  79. fides/ui-build/static/admin/_next/static/chunks/9282-2bfbdca45e84e810.js +1 -0
  80. fides/ui-build/static/admin/_next/static/chunks/9327-2cba327d10586683.js +1 -0
  81. fides/ui-build/static/admin/_next/static/chunks/{9392.97b2e3327dceb7c9.js → 9392.da35a8e778812d91.js} +1 -1
  82. fides/ui-build/static/admin/_next/static/chunks/9676.f297a1347ac09c56.js +1 -0
  83. fides/ui-build/static/admin/_next/static/chunks/9767-1a23925d2cb27b51.js +1 -0
  84. fides/ui-build/static/admin/_next/static/chunks/{9999-f2e40d5b13343220.js → 9999-637e0e5341f15f4a.js} +1 -1
  85. fides/ui-build/static/admin/_next/static/chunks/e3251fe7-5777b5d778e6fffa.js +1 -0
  86. fides/ui-build/static/admin/_next/static/chunks/main-24f422f93845a596.js +1 -0
  87. fides/ui-build/static/admin/_next/static/chunks/{main-app-2650f704701c6a7b.js → main-app-94a0711202e08b15.js} +1 -1
  88. fides/ui-build/static/admin/_next/static/chunks/pages/{404-1087258931760074.js → 404-b202c0d8f6fc75c3.js} +1 -1
  89. fides/ui-build/static/admin/_next/static/chunks/pages/_app-fa5f8f8b1d6d8c08.js +923 -0
  90. fides/ui-build/static/admin/_next/static/chunks/pages/add-systems/{manual-d7f60624cbc12217.js → manual-c2705210ce986109.js} +1 -1
  91. fides/ui-build/static/admin/_next/static/chunks/pages/add-systems/{multiple-18b0b521255289a3.js → multiple-ba975134a85588f8.js} +1 -1
  92. fides/ui-build/static/admin/_next/static/chunks/pages/add-systems-d258f0c25fa020bf.js +1 -0
  93. fides/ui-build/static/admin/_next/static/chunks/pages/{ant-poc-b3b4d0a98450ffd1.js → ant-poc-b9932971a479f3a7.js} +1 -1
  94. fides/ui-build/static/admin/_next/static/chunks/pages/consent/configure/{add-vendors-64f83e9a2b777bf3.js → add-vendors-b34e5324461d0c87.js} +1 -1
  95. fides/ui-build/static/admin/_next/static/chunks/pages/consent/configure-723cc3d4f5740ea6.js +1 -0
  96. fides/ui-build/static/admin/_next/static/chunks/pages/consent/privacy-experience/{[id]-443e6dd191ce5588.js → [id]-cf51752eb0902233.js} +1 -1
  97. fides/ui-build/static/admin/_next/static/chunks/pages/consent/privacy-experience/{new-36162d5bea29dcc2.js → new-be194737b41ccec9.js} +1 -1
  98. fides/ui-build/static/admin/_next/static/chunks/pages/consent/{privacy-experience-35e9df60b21e21a6.js → privacy-experience-c946b33b0322b8ad.js} +1 -1
  99. fides/ui-build/static/admin/_next/static/chunks/pages/consent/privacy-notices/{[id]-2d651499c07d12d9.js → [id]-72251b48e2e03a1e.js} +1 -1
  100. fides/ui-build/static/admin/_next/static/chunks/pages/consent/privacy-notices/{new-36e57d2f2446be82.js → new-9611dd42856d6062.js} +1 -1
  101. fides/ui-build/static/admin/_next/static/chunks/pages/consent/{privacy-notices-da37afbe5ec81339.js → privacy-notices-ea57f9d6ad17e957.js} +1 -1
  102. fides/ui-build/static/admin/_next/static/chunks/pages/consent/{properties-c57b209feef7c2da.js → properties-e5748812ba055a56.js} +1 -1
  103. fides/ui-build/static/admin/_next/static/chunks/pages/consent/{reporting-97fea4ac45093cbd.js → reporting-9d2c1f0c9f270d07.js} +1 -1
  104. fides/ui-build/static/admin/_next/static/chunks/pages/{consent-24bef021ee71e36c.js → consent-39d65f13cc8f1cf8.js} +1 -1
  105. fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/projects/[projectUrn]/{[resourceUrn]-6cbd79481199812d.js → [resourceUrn]-ac033a16f043e6f9.js} +1 -1
  106. fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/projects/{[projectUrn]-46b9790da2fec05a.js → [projectUrn]-a29850536c85d4b8.js} +1 -1
  107. fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/{projects-1f965b9c496071d1.js → projects-c44ce244122e96d5.js} +1 -1
  108. fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/resources/{[resourceUrn]-e7833c1c606081a9.js → [resourceUrn]-71e26d262afcaea5.js} +1 -1
  109. fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/{resources-bed368d048ea6883.js → resources-305555b74c357bf2.js} +1 -1
  110. fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog-900004e402c31797.js +1 -0
  111. fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/action-center/[monitorId]/[systemId]-5182d356672a3b02.js +1 -0
  112. fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/action-center/[monitorId]-7c74373a4d666a3d.js +1 -0
  113. fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/action-center-02439d3aeecfb4b9.js +1 -0
  114. fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/{activity-1d7936f05d23097f.js → activity-11b3ce9f61d9bfe9.js} +1 -1
  115. fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/detection/{[resourceUrn]-68122dbf449a11b4.js → [resourceUrn]-054ca46a782e99a5.js} +1 -1
  116. fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/{detection-0ceaf3c555e84714.js → detection-b75dd3e4306ac18e.js} +1 -1
  117. fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/discovery/{[resourceUrn]-22c27fe0f898ad2a.js → [resourceUrn]-1da20aeb6fc995e4.js} +1 -1
  118. fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/{discovery-8f2b102e19b0b8f2.js → discovery-cad50b0cc6d1050c.js} +1 -1
  119. fides/ui-build/static/admin/_next/static/chunks/pages/{datamap-9cd0c40bef77b120.js → datamap-8cb714cdd44ac40e.js} +1 -1
  120. fides/ui-build/static/admin/_next/static/chunks/pages/dataset/[datasetId]/[collectionName]/[...subfieldNames]-d79551d4c64c398c.js +1 -0
  121. fides/ui-build/static/admin/_next/static/chunks/pages/dataset/[datasetId]/[collectionName]-7e5df4a0de7540bb.js +1 -0
  122. fides/ui-build/static/admin/_next/static/chunks/pages/dataset/{[datasetId]-e14c1c07658f8a10.js → [datasetId]-6ba18f92ba561114.js} +1 -1
  123. fides/ui-build/static/admin/_next/static/chunks/pages/dataset/new-803c1b577ab17ae3.js +1 -0
  124. fides/ui-build/static/admin/_next/static/chunks/pages/dataset-fa743ddc7f89d76b.js +1 -0
  125. fides/ui-build/static/admin/_next/static/chunks/pages/datastore-connection/{[id]-0616437e1a82d3ed.js → [id]-bbe1ca2793798e6b.js} +1 -1
  126. fides/ui-build/static/admin/_next/static/chunks/pages/datastore-connection/{new-f8218440494e8532.js → new-abc17fef69cd951b.js} +1 -1
  127. fides/ui-build/static/admin/_next/static/chunks/pages/datastore-connection-a78a73b65929853a.js +1 -0
  128. fides/ui-build/static/admin/_next/static/chunks/pages/fides-js-docs-80b241bf6cddb72e.js +1 -0
  129. fides/ui-build/static/admin/_next/static/chunks/pages/{index-94e6d589c4edf360.js → index-bfaacdb55a5a6c9f.js} +1 -1
  130. fides/ui-build/static/admin/_next/static/chunks/pages/integrations/[id]-d4329043219fed9b.js +1 -0
  131. fides/ui-build/static/admin/_next/static/chunks/pages/integrations-adb6aced3bdb4899.js +1 -0
  132. fides/ui-build/static/admin/_next/static/chunks/pages/messaging/{[id]-6b032de0a6c2c400.js → [id]-ad02e019b2467958.js} +1 -1
  133. fides/ui-build/static/admin/_next/static/chunks/pages/messaging/{add-template-c0d6ae68ff7979c6.js → add-template-f9693cb6a0b7ded8.js} +1 -1
  134. fides/ui-build/static/admin/_next/static/chunks/pages/messaging-1e60754abec1ee6b.js +1 -0
  135. fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/{[id]-bbe5854b7d19b7e9.js → [id]-fe765154315782cf.js} +1 -1
  136. fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/configure/messaging-f5f7a8069909ef24.js +1 -0
  137. fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/configure/storage-9f7eaad05e5b9292.js +1 -0
  138. fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/{configure-4bad69cd42c9722c.js → configure-2987edc77388e85a.js} +1 -1
  139. fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests-d85c0d16ba09ba35.js +1 -0
  140. fides/ui-build/static/admin/_next/static/chunks/pages/properties/{[id]-b4c808a8a0287d11.js → [id]-94e2faa73dd6a3e6.js} +1 -1
  141. fides/ui-build/static/admin/_next/static/chunks/pages/properties/{add-property-5a701477b006a63b.js → add-property-630a6a3dd6502ba6.js} +1 -1
  142. fides/ui-build/static/admin/_next/static/chunks/pages/{properties-9a1899dfe052023e.js → properties-20ca2f963906674b.js} +1 -1
  143. fides/ui-build/static/admin/_next/static/chunks/pages/reporting/datamap-afedc48ef4e7f858.js +1 -0
  144. fides/ui-build/static/admin/_next/static/chunks/pages/settings/{about-d073be113e9ca7b0.js → about-a49d0f84cf0cf05e.js} +1 -1
  145. fides/ui-build/static/admin/_next/static/chunks/pages/settings/consent-89524101b7279f6e.js +1 -0
  146. fides/ui-build/static/admin/_next/static/chunks/pages/settings/{custom-fields-744e7bbc200557e7.js → custom-fields-52d030b1db2ca1b9.js} +1 -1
  147. fides/ui-build/static/admin/_next/static/chunks/pages/settings/{domain-records-c5cd5fb578de9515.js → domain-records-fa42d8f18df44927.js} +1 -1
  148. fides/ui-build/static/admin/_next/static/chunks/pages/settings/domains-24cba38685dc872c.js +1 -0
  149. fides/ui-build/static/admin/_next/static/chunks/pages/settings/{email-templates-39c7ae3602ac69b2.js → email-templates-6fd6071e2009b8f2.js} +1 -1
  150. fides/ui-build/static/admin/_next/static/chunks/pages/settings/{locations-45e33ba111f8f8b0.js → locations-66c757325cb58467.js} +1 -1
  151. fides/ui-build/static/admin/_next/static/chunks/pages/settings/organization-a08693d0d1e10bc8.js +1 -0
  152. fides/ui-build/static/admin/_next/static/chunks/pages/settings/{regulations-94975aeab348528e.js → regulations-c6c239996cfa6ae8.js} +1 -1
  153. fides/ui-build/static/admin/_next/static/chunks/pages/systems/configure/[id]/test-datasets-151571cff4e85894.js +1 -0
  154. fides/ui-build/static/admin/_next/static/chunks/pages/systems/configure/{[id]-82d9af34546adaa2.js → [id]-d3ea9034461511cd.js} +1 -1
  155. fides/ui-build/static/admin/_next/static/chunks/pages/{systems-c320df35d51dc537.js → systems-abd68fc5ddde5482.js} +1 -1
  156. fides/ui-build/static/admin/_next/static/chunks/pages/{taxonomy-181ea5b0ac975239.js → taxonomy-16b4d75c49276add.js} +1 -1
  157. fides/ui-build/static/admin/_next/static/chunks/pages/user-management/profile/{[id]-622e16a17a11c096.js → [id]-78eaf933f755bfe8.js} +1 -1
  158. fides/ui-build/static/admin/_next/static/chunks/pages/{user-management-aa872b21bb835d34.js → user-management-6c9ad62479a7d03e.js} +1 -1
  159. fides/ui-build/static/admin/_next/static/chunks/{webpack-4df2ba5ee2d40f0a.js → webpack-2c7ccac5843c4d8e.js} +1 -1
  160. fides/ui-build/static/admin/_next/static/css/113d823fe71f6af0.css +1 -0
  161. fides/ui-build/static/admin/_next/static/css/ab65b8cc3144bfc8.css +1 -0
  162. fides/ui-build/static/admin/_next/static/sdQ5v46RH3_stSYmL-sZd/_buildManifest.js +1 -0
  163. fides/ui-build/static/admin/_next/static/sdQ5v46RH3_stSYmL-sZd/_ssgManifest.js +1 -0
  164. fides/ui-build/static/admin/add-systems/manual.html +1 -1
  165. fides/ui-build/static/admin/add-systems/multiple.html +1 -1
  166. fides/ui-build/static/admin/add-systems.html +1 -1
  167. fides/ui-build/static/admin/ant-poc.html +1 -1
  168. fides/ui-build/static/admin/consent/configure/add-vendors.html +1 -1
  169. fides/ui-build/static/admin/consent/configure.html +1 -1
  170. fides/ui-build/static/admin/consent/privacy-experience/[id].html +1 -1
  171. fides/ui-build/static/admin/consent/privacy-experience/new.html +1 -1
  172. fides/ui-build/static/admin/consent/privacy-experience.html +1 -1
  173. fides/ui-build/static/admin/consent/privacy-notices/[id].html +1 -1
  174. fides/ui-build/static/admin/consent/privacy-notices/new.html +1 -1
  175. fides/ui-build/static/admin/consent/privacy-notices.html +1 -1
  176. fides/ui-build/static/admin/consent/properties.html +1 -1
  177. fides/ui-build/static/admin/consent/reporting.html +1 -1
  178. fides/ui-build/static/admin/consent.html +1 -1
  179. fides/ui-build/static/admin/data-catalog/[systemId]/projects/[projectUrn]/[resourceUrn].html +1 -1
  180. fides/ui-build/static/admin/data-catalog/[systemId]/projects/[projectUrn].html +1 -1
  181. fides/ui-build/static/admin/data-catalog/[systemId]/projects.html +1 -1
  182. fides/ui-build/static/admin/data-catalog/[systemId]/resources/[resourceUrn].html +1 -1
  183. fides/ui-build/static/admin/data-catalog/[systemId]/resources.html +1 -1
  184. fides/ui-build/static/admin/data-catalog.html +1 -1
  185. fides/ui-build/static/admin/data-discovery/action-center/[monitorId]/[systemId].html +1 -1
  186. fides/ui-build/static/admin/data-discovery/action-center/[monitorId].html +1 -1
  187. fides/ui-build/static/admin/data-discovery/action-center.html +1 -1
  188. fides/ui-build/static/admin/data-discovery/activity.html +1 -1
  189. fides/ui-build/static/admin/data-discovery/detection/[resourceUrn].html +1 -1
  190. fides/ui-build/static/admin/data-discovery/detection.html +1 -1
  191. fides/ui-build/static/admin/data-discovery/discovery/[resourceUrn].html +1 -1
  192. fides/ui-build/static/admin/data-discovery/discovery.html +1 -1
  193. fides/ui-build/static/admin/datamap.html +1 -1
  194. fides/ui-build/static/admin/dataset/[datasetId]/[collectionName]/[...subfieldNames].html +1 -1
  195. fides/ui-build/static/admin/dataset/[datasetId]/[collectionName].html +1 -1
  196. fides/ui-build/static/admin/dataset/[datasetId].html +1 -1
  197. fides/ui-build/static/admin/dataset/new.html +1 -1
  198. fides/ui-build/static/admin/dataset.html +1 -1
  199. fides/ui-build/static/admin/datastore-connection/[id].html +1 -1
  200. fides/ui-build/static/admin/datastore-connection/new.html +1 -1
  201. fides/ui-build/static/admin/datastore-connection.html +1 -1
  202. fides/ui-build/static/admin/index.html +1 -1
  203. fides/ui-build/static/admin/integrations/[id].html +1 -1
  204. fides/ui-build/static/admin/integrations.html +1 -1
  205. fides/ui-build/static/admin/lib/fides-ext-gpp.js +1 -1
  206. fides/ui-build/static/admin/lib/fides-headless.js +1 -1
  207. fides/ui-build/static/admin/lib/fides-tcf.js +3 -3
  208. fides/ui-build/static/admin/lib/fides.js +2 -2
  209. fides/ui-build/static/admin/login/[provider].html +1 -1
  210. fides/ui-build/static/admin/login.html +1 -1
  211. fides/ui-build/static/admin/messaging/[id].html +1 -1
  212. fides/ui-build/static/admin/messaging/add-template.html +1 -1
  213. fides/ui-build/static/admin/messaging.html +1 -1
  214. fides/ui-build/static/admin/privacy-requests/[id].html +1 -1
  215. fides/ui-build/static/admin/privacy-requests/configure/messaging.html +1 -1
  216. fides/ui-build/static/admin/privacy-requests/configure/storage.html +1 -1
  217. fides/ui-build/static/admin/privacy-requests/configure.html +1 -1
  218. fides/ui-build/static/admin/privacy-requests.html +1 -1
  219. fides/ui-build/static/admin/properties/[id].html +1 -1
  220. fides/ui-build/static/admin/properties/add-property.html +1 -1
  221. fides/ui-build/static/admin/properties.html +1 -1
  222. fides/ui-build/static/admin/reporting/datamap.html +1 -1
  223. fides/ui-build/static/admin/settings/about.html +1 -1
  224. fides/ui-build/static/admin/settings/consent.html +1 -1
  225. fides/ui-build/static/admin/settings/custom-fields.html +1 -1
  226. fides/ui-build/static/admin/settings/domain-records.html +1 -1
  227. fides/ui-build/static/admin/settings/domains.html +1 -1
  228. fides/ui-build/static/admin/settings/email-templates.html +1 -1
  229. fides/ui-build/static/admin/settings/locations.html +1 -1
  230. fides/ui-build/static/admin/settings/organization.html +1 -1
  231. fides/ui-build/static/admin/settings/regulations.html +1 -1
  232. fides/ui-build/static/admin/systems/configure/[id]/test-datasets.html +1 -1
  233. fides/ui-build/static/admin/systems/configure/[id].html +1 -1
  234. fides/ui-build/static/admin/systems.html +1 -1
  235. fides/ui-build/static/admin/taxonomy.html +1 -1
  236. fides/ui-build/static/admin/user-management/new.html +1 -1
  237. fides/ui-build/static/admin/user-management/profile/[id].html +1 -1
  238. fides/ui-build/static/admin/user-management.html +1 -1
  239. fides/ui-build/static/admin/_next/static/chunks/1995-0e4fc4f7b44ed72b.js +0 -1
  240. fides/ui-build/static/admin/_next/static/chunks/2780-8328de94968d05e4.js +0 -4
  241. fides/ui-build/static/admin/_next/static/chunks/3005-373de16453ed7eea.js +0 -1
  242. fides/ui-build/static/admin/_next/static/chunks/3320-87c75df57a47487e.js +0 -1
  243. fides/ui-build/static/admin/_next/static/chunks/3627-fb83adac32c128e6.js +0 -1
  244. fides/ui-build/static/admin/_next/static/chunks/3662-420d9807c30008ab.js +0 -1
  245. fides/ui-build/static/admin/_next/static/chunks/3949-9888699e2ac564c4.js +0 -1
  246. fides/ui-build/static/admin/_next/static/chunks/3967-845c902667e47c4f.js +0 -1
  247. fides/ui-build/static/admin/_next/static/chunks/3e38ba78-4487e45fd4ed2479.js +0 -2
  248. fides/ui-build/static/admin/_next/static/chunks/4481-ca8d2c75d634b6bc.js +0 -1
  249. fides/ui-build/static/admin/_next/static/chunks/4723-81d28e5be5c7b6d7.js +0 -1
  250. fides/ui-build/static/admin/_next/static/chunks/4833-a85bd5d25ebc40c4.js +0 -1
  251. fides/ui-build/static/admin/_next/static/chunks/5246-9fc6af1a6499e0a4.js +0 -1
  252. fides/ui-build/static/admin/_next/static/chunks/5574-a4047e826a8cd4c3.js +0 -1
  253. fides/ui-build/static/admin/_next/static/chunks/5834-bd9ed01c4ab2ef5c.js +0 -1
  254. fides/ui-build/static/admin/_next/static/chunks/5960-8895f51b30c35798.js +0 -1
  255. fides/ui-build/static/admin/_next/static/chunks/5973-67c7562997f7d5cb.js +0 -1
  256. fides/ui-build/static/admin/_next/static/chunks/6277-515c922445b8edc5.js +0 -1
  257. fides/ui-build/static/admin/_next/static/chunks/6954-6eb480eb132239c3.js +0 -1
  258. fides/ui-build/static/admin/_next/static/chunks/7044-9dc90893067f38ae.js +0 -1
  259. fides/ui-build/static/admin/_next/static/chunks/7980-2597c279c30fbcda.js +0 -1
  260. fides/ui-build/static/admin/_next/static/chunks/7c79804f.26834f883d5ad770.js +0 -1
  261. fides/ui-build/static/admin/_next/static/chunks/8837-cf26e5ca1ae5aaf5.js +0 -1
  262. fides/ui-build/static/admin/_next/static/chunks/9282-1a5a2f6f4d9ed586.js +0 -1
  263. fides/ui-build/static/admin/_next/static/chunks/9676.f4d5977a5f148797.js +0 -1
  264. fides/ui-build/static/admin/_next/static/chunks/9767-4c591bd478c72650.js +0 -1
  265. fides/ui-build/static/admin/_next/static/chunks/main-ce7f38a12ea8c223.js +0 -1
  266. fides/ui-build/static/admin/_next/static/chunks/pages/_app-9ceff88561dc1250.js +0 -909
  267. fides/ui-build/static/admin/_next/static/chunks/pages/add-systems-136bcbd20ac59bf5.js +0 -1
  268. fides/ui-build/static/admin/_next/static/chunks/pages/consent/configure-e11ace4f273ebb47.js +0 -1
  269. fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog-942d68a88b321067.js +0 -1
  270. fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/action-center/[monitorId]/[systemId]-00526324583139ab.js +0 -1
  271. fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/action-center/[monitorId]-f0ab51d0d5f995de.js +0 -1
  272. fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/action-center-2220c30c3863b5a5.js +0 -1
  273. fides/ui-build/static/admin/_next/static/chunks/pages/dataset/[datasetId]/[collectionName]/[...subfieldNames]-ab9bc1a3640547db.js +0 -1
  274. fides/ui-build/static/admin/_next/static/chunks/pages/dataset/[datasetId]/[collectionName]-17ec8385bb1fa6d4.js +0 -1
  275. fides/ui-build/static/admin/_next/static/chunks/pages/dataset/new-740824dfa6823e26.js +0 -1
  276. fides/ui-build/static/admin/_next/static/chunks/pages/dataset-5541ecd2f62711a5.js +0 -1
  277. fides/ui-build/static/admin/_next/static/chunks/pages/datastore-connection-b8eaa9b9d3832b30.js +0 -1
  278. fides/ui-build/static/admin/_next/static/chunks/pages/integrations/[id]-a6448ce6ba7f0cf5.js +0 -1
  279. fides/ui-build/static/admin/_next/static/chunks/pages/integrations-1a6965d78bfb26b0.js +0 -1
  280. fides/ui-build/static/admin/_next/static/chunks/pages/messaging-f263e6bacf0f2d19.js +0 -1
  281. fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/configure/messaging-b96ee3fea3920fcf.js +0 -1
  282. fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/configure/storage-1b0f9469cb65abfc.js +0 -1
  283. fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests-eebd2f4ead19cfd6.js +0 -1
  284. fides/ui-build/static/admin/_next/static/chunks/pages/reporting/datamap-a3fa3ad77730a03b.js +0 -1
  285. fides/ui-build/static/admin/_next/static/chunks/pages/settings/consent-4769f55b138073f7.js +0 -1
  286. fides/ui-build/static/admin/_next/static/chunks/pages/settings/domains-775f55b3f80cd452.js +0 -1
  287. fides/ui-build/static/admin/_next/static/chunks/pages/settings/organization-14def4ca3cc9cda5.js +0 -1
  288. fides/ui-build/static/admin/_next/static/chunks/pages/systems/configure/[id]/test-datasets-21f26c0dc4d09e9f.js +0 -1
  289. fides/ui-build/static/admin/_next/static/css/957d0e4fea846ff0.css +0 -1
  290. fides/ui-build/static/admin/_next/static/rOPehh5NMs1hjog7nTw1q/_buildManifest.js +0 -1
  291. fides/ui-build/static/admin/_next/static/rOPehh5NMs1hjog7nTw1q/_ssgManifest.js +0 -1
  292. {ethyca_fides-2.57.1rc0.dist-info → ethyca_fides-2.57.2b0.dist-info}/LICENSE +0 -0
  293. {ethyca_fides-2.57.1rc0.dist-info → ethyca_fides-2.57.2b0.dist-info}/WHEEL +0 -0
  294. {ethyca_fides-2.57.1rc0.dist-info → ethyca_fides-2.57.2b0.dist-info}/entry_points.txt +0 -0
  295. {ethyca_fides-2.57.1rc0.dist-info → ethyca_fides-2.57.2b0.dist-info}/top_level.txt +0 -0
  296. /fides/ui-build/static/admin/_next/static/chunks/pages/user-management/{new-d6717378b42982d5.js → new-be690621a944bfe2.js} +0 -0
@@ -0,0 +1,155 @@
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
+ }
@@ -0,0 +1,108 @@
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
+ )