ethyca-fides 2.66.2b1__py2.py3-none-any.whl → 2.66.2rc0__py2.py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of ethyca-fides might be problematic. Click here for more details.

Files changed (279) hide show
  1. {ethyca_fides-2.66.2b1.dist-info → ethyca_fides-2.66.2rc0.dist-info}/METADATA +1 -1
  2. {ethyca_fides-2.66.2b1.dist-info → ethyca_fides-2.66.2rc0.dist-info}/RECORD +254 -264
  3. fides/_version.py +3 -3
  4. fides/api/api/v1/endpoints/dataset_config_endpoints.py +5 -13
  5. fides/api/api/v1/endpoints/drp_endpoints.py +1 -7
  6. fides/api/api/v1/endpoints/privacy_request_endpoints.py +1 -44
  7. fides/api/api/v1/endpoints/user_endpoints.py +7 -83
  8. fides/api/app_setup.py +2 -3
  9. fides/api/common_exceptions.py +0 -4
  10. fides/api/db/base.py +0 -1
  11. fides/api/db/database.py +1 -1
  12. fides/api/graph/execution.py +0 -30
  13. fides/api/models/{manual_task/manual_task.py → manual_task.py} +0 -10
  14. fides/api/models/policy.py +0 -23
  15. fides/api/models/privacy_request/execution_log.py +0 -1
  16. fides/api/models/privacy_request/privacy_request.py +13 -31
  17. fides/api/oauth/roles.py +0 -2
  18. fides/api/schemas/application_config.py +1 -11
  19. fides/api/schemas/masking/masking_secrets.py +1 -1
  20. fides/api/schemas/policy.py +0 -1
  21. fides/api/schemas/privacy_request.py +0 -5
  22. fides/api/service/connectors/base_connector.py +0 -1
  23. fides/api/service/connectors/bigquery_connector.py +19 -67
  24. fides/api/service/connectors/dynamodb_connector.py +1 -2
  25. fides/api/service/connectors/fides_connector.py +0 -1
  26. fides/api/service/connectors/http_connector.py +0 -1
  27. fides/api/service/connectors/manual_task_connector.py +0 -1
  28. fides/api/service/connectors/manual_webhook_connector.py +1 -2
  29. fides/api/service/connectors/mongodb_connector.py +0 -1
  30. fides/api/service/connectors/okta_connector.py +0 -1
  31. fides/api/service/connectors/query_configs/bigquery_query_config.py +32 -91
  32. fides/api/service/connectors/rds_mysql_connector.py +0 -1
  33. fides/api/service/connectors/rds_postgres_connector.py +0 -1
  34. fides/api/service/connectors/s3_connector.py +0 -1
  35. fides/api/service/connectors/saas_connector.py +0 -1
  36. fides/api/service/connectors/scylla_connector.py +0 -1
  37. fides/api/service/connectors/sql_connector.py +4 -36
  38. fides/api/service/connectors/website_connector.py +0 -1
  39. fides/api/service/privacy_request/request_runner_service.py +53 -142
  40. fides/api/service/privacy_request/request_service.py +22 -1
  41. fides/api/task/deprecated_graph_task.py +6 -24
  42. fides/api/task/execute_request_tasks.py +11 -88
  43. fides/api/task/graph_task.py +3 -38
  44. fides/api/task/manual/manual_task_graph_task.py +0 -1
  45. fides/api/util/cache.py +0 -5
  46. fides/api/util/encryption/secrets_util.py +18 -48
  47. fides/common/api/scope_registry.py +0 -3
  48. fides/common/api/v1/urn_registry.py +1 -1
  49. fides/config/execution_settings.py +0 -4
  50. fides/config/utils.py +0 -1
  51. fides/service/privacy_request/privacy_request_service.py +1 -6
  52. fides/ui-build/static/admin/404.html +1 -1
  53. fides/ui-build/static/admin/_next/static/8108ANFxs99VY7KZ_Xev2/_buildManifest.js +1 -0
  54. fides/ui-build/static/admin/_next/static/chunks/1817-e601e737e3cc7a0e.js +1 -0
  55. fides/ui-build/static/admin/_next/static/chunks/{203-4e777c324a01dbec.js → 203-5a663f465ba26bb4.js} +1 -1
  56. fides/ui-build/static/admin/_next/static/chunks/431-34f0b91c26f8d9ab.js +1 -0
  57. fides/ui-build/static/admin/_next/static/chunks/5309-b2c4803370634ff8.js +1 -0
  58. fides/ui-build/static/admin/_next/static/chunks/6780-e3d40aa17a4bf2e9.js +1 -0
  59. fides/ui-build/static/admin/_next/static/chunks/9046-5c4c22c375de25b1.js +1 -0
  60. fides/ui-build/static/admin/_next/static/chunks/pages/{_app-be7889cec5a0f5cd.js → _app-39ccb07327c2c5d5.js} +56 -56
  61. fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/action-center/[monitorId]/[systemId]-2265ecb899d45fbc.js +1 -0
  62. fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/action-center/[monitorId]-5d522637871ac6c8.js +1 -0
  63. fides/ui-build/static/admin/_next/static/chunks/pages/integrations/[id]-0a58aee2d1e7fa01.js +1 -0
  64. fides/ui-build/static/admin/_next/static/chunks/pages/{integrations-f10a7dcf7541c865.js → integrations-e2d5d7e2a5265e68.js} +1 -1
  65. fides/ui-build/static/admin/_next/static/chunks/pages/poc/{table-migration-05616e2ae20ff4f8.js → table-migration-69ad86b7a8a9a115.js} +1 -1
  66. fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/[id]-32600543eb7b584f.js +1 -0
  67. fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/configure/messaging-10ce53ea356f8bad.js +1 -0
  68. fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/configure/storage-5501bbb129fee9c4.js +1 -0
  69. fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests-cbe4c8f9096b6543.js +1 -0
  70. fides/ui-build/static/admin/_next/static/chunks/pages/user-management/profile/[id]-ff5738706da07801.js +1 -0
  71. fides/ui-build/static/admin/_next/static/css/2cadb5f62dcd7c2b.css +1 -0
  72. fides/ui-build/static/admin/_next/static/css/{23cf870196941c9a.css → 5bfb2473e5701527.css} +1 -1
  73. fides/ui-build/static/admin/add-systems/manual.html +1 -1
  74. fides/ui-build/static/admin/add-systems/multiple.html +1 -1
  75. fides/ui-build/static/admin/add-systems.html +1 -1
  76. fides/ui-build/static/admin/consent/configure/add-vendors.html +1 -1
  77. fides/ui-build/static/admin/consent/configure.html +1 -1
  78. fides/ui-build/static/admin/consent/privacy-experience/[id].html +1 -1
  79. fides/ui-build/static/admin/consent/privacy-experience/new.html +1 -1
  80. fides/ui-build/static/admin/consent/privacy-experience.html +1 -1
  81. fides/ui-build/static/admin/consent/privacy-notices/[id].html +1 -1
  82. fides/ui-build/static/admin/consent/privacy-notices/new.html +1 -1
  83. fides/ui-build/static/admin/consent/privacy-notices.html +1 -1
  84. fides/ui-build/static/admin/consent/properties.html +1 -1
  85. fides/ui-build/static/admin/consent/reporting.html +1 -1
  86. fides/ui-build/static/admin/consent.html +1 -1
  87. fides/ui-build/static/admin/data-catalog/[systemId]/projects/[projectUrn]/[resourceUrn].html +1 -1
  88. fides/ui-build/static/admin/data-catalog/[systemId]/projects/[projectUrn].html +1 -1
  89. fides/ui-build/static/admin/data-catalog/[systemId]/projects.html +1 -1
  90. fides/ui-build/static/admin/data-catalog/[systemId]/resources/[resourceUrn].html +1 -1
  91. fides/ui-build/static/admin/data-catalog/[systemId]/resources.html +1 -1
  92. fides/ui-build/static/admin/data-catalog.html +1 -1
  93. fides/ui-build/static/admin/data-discovery/action-center/[monitorId]/[systemId].html +1 -1
  94. fides/ui-build/static/admin/data-discovery/action-center/[monitorId].html +1 -1
  95. fides/ui-build/static/admin/data-discovery/action-center.html +1 -1
  96. fides/ui-build/static/admin/data-discovery/activity.html +1 -1
  97. fides/ui-build/static/admin/data-discovery/detection/[resourceUrn].html +1 -1
  98. fides/ui-build/static/admin/data-discovery/detection.html +1 -1
  99. fides/ui-build/static/admin/data-discovery/discovery/[resourceUrn].html +1 -1
  100. fides/ui-build/static/admin/data-discovery/discovery.html +1 -1
  101. fides/ui-build/static/admin/datamap.html +1 -1
  102. fides/ui-build/static/admin/dataset/[datasetId]/[collectionName]/[...subfieldNames].html +1 -1
  103. fides/ui-build/static/admin/dataset/[datasetId]/[collectionName].html +1 -1
  104. fides/ui-build/static/admin/dataset/[datasetId].html +1 -1
  105. fides/ui-build/static/admin/dataset/new.html +1 -1
  106. fides/ui-build/static/admin/dataset.html +1 -1
  107. fides/ui-build/static/admin/datastore-connection/[id].html +1 -1
  108. fides/ui-build/static/admin/datastore-connection/new.html +1 -1
  109. fides/ui-build/static/admin/datastore-connection.html +1 -1
  110. fides/ui-build/static/admin/index.html +1 -1
  111. fides/ui-build/static/admin/integrations/[id].html +1 -1
  112. fides/ui-build/static/admin/integrations.html +1 -1
  113. fides/ui-build/static/admin/lib/fides-ext-gpp.js +1 -1
  114. fides/ui-build/static/admin/lib/fides-headless.js +1 -1
  115. fides/ui-build/static/admin/lib/fides-preview.js +1 -1
  116. fides/ui-build/static/admin/lib/fides-tcf.js +3 -3
  117. fides/ui-build/static/admin/lib/fides.js +3 -3
  118. fides/ui-build/static/admin/login/[provider].html +1 -1
  119. fides/ui-build/static/admin/login.html +1 -1
  120. fides/ui-build/static/admin/messaging/[id].html +1 -1
  121. fides/ui-build/static/admin/messaging/add-template.html +1 -1
  122. fides/ui-build/static/admin/messaging.html +1 -1
  123. fides/ui-build/static/admin/poc/ant-components.html +1 -1
  124. fides/ui-build/static/admin/poc/form-experiments/AntForm.html +1 -1
  125. fides/ui-build/static/admin/poc/form-experiments/FormikAntFormItem.html +1 -1
  126. fides/ui-build/static/admin/poc/form-experiments/FormikControlled.html +1 -1
  127. fides/ui-build/static/admin/poc/form-experiments/FormikField.html +1 -1
  128. fides/ui-build/static/admin/poc/form-experiments/FormikSpreadField.html +1 -1
  129. fides/ui-build/static/admin/poc/forms.html +1 -1
  130. fides/ui-build/static/admin/poc/table-migration.html +1 -1
  131. fides/ui-build/static/admin/privacy-requests/[id].html +1 -1
  132. fides/ui-build/static/admin/privacy-requests/configure/messaging.html +1 -1
  133. fides/ui-build/static/admin/privacy-requests/configure/storage.html +1 -1
  134. fides/ui-build/static/admin/privacy-requests/configure.html +1 -1
  135. fides/ui-build/static/admin/privacy-requests.html +1 -1
  136. fides/ui-build/static/admin/properties/[id].html +1 -1
  137. fides/ui-build/static/admin/properties/add-property.html +1 -1
  138. fides/ui-build/static/admin/properties.html +1 -1
  139. fides/ui-build/static/admin/reporting/datamap.html +1 -1
  140. fides/ui-build/static/admin/settings/about/alpha.html +1 -1
  141. fides/ui-build/static/admin/settings/about.html +1 -1
  142. fides/ui-build/static/admin/settings/consent/[configuration_id]/[purpose_id].html +1 -1
  143. fides/ui-build/static/admin/settings/consent.html +1 -1
  144. fides/ui-build/static/admin/settings/custom-fields.html +1 -1
  145. fides/ui-build/static/admin/settings/domain-records.html +1 -1
  146. fides/ui-build/static/admin/settings/domains.html +1 -1
  147. fides/ui-build/static/admin/settings/email-templates.html +1 -1
  148. fides/ui-build/static/admin/settings/locations.html +1 -1
  149. fides/ui-build/static/admin/settings/organization.html +1 -1
  150. fides/ui-build/static/admin/settings/regulations.html +1 -1
  151. fides/ui-build/static/admin/systems/configure/[id]/test-datasets.html +1 -1
  152. fides/ui-build/static/admin/systems/configure/[id].html +1 -1
  153. fides/ui-build/static/admin/systems.html +1 -1
  154. fides/ui-build/static/admin/taxonomy.html +1 -1
  155. fides/ui-build/static/admin/user-management/new.html +1 -1
  156. fides/ui-build/static/admin/user-management/profile/[id].html +1 -1
  157. fides/ui-build/static/admin/user-management.html +1 -1
  158. fides/api/alembic/migrations/versions/7e9a2b52f498_adding_masking_secrets.py +0 -60
  159. fides/api/alembic/migrations/versions/a7065df4dcf1_add_finalized_fields_to_privacy_request.py +0 -65
  160. fides/api/alembic/migrations/versions/d0031087eacb_create_manualtaskconditionaldependency_.py +0 -106
  161. fides/api/models/manual_task/__init__.py +0 -2
  162. fides/api/models/manual_task/conditional_dependency.py +0 -144
  163. fides/api/models/masking_secret.py +0 -72
  164. fides/api/task/conditional_dependencies/__init__.py +0 -0
  165. fides/api/task/conditional_dependencies/evaluator.py +0 -109
  166. fides/api/task/conditional_dependencies/schemas.py +0 -54
  167. fides/ui-build/static/admin/_next/static/CQD5hIjm-4lH18YYESYuD/_buildManifest.js +0 -1
  168. fides/ui-build/static/admin/_next/static/chunks/1817-6f35f58cd08b04ae.js +0 -1
  169. fides/ui-build/static/admin/_next/static/chunks/431-ade3e312fac3430b.js +0 -1
  170. fides/ui-build/static/admin/_next/static/chunks/5309-67bdf9001531e972.js +0 -1
  171. fides/ui-build/static/admin/_next/static/chunks/6780-4b687168dd8daa84.js +0 -1
  172. fides/ui-build/static/admin/_next/static/chunks/8237-55049f8f5fd5e058.js +0 -1
  173. fides/ui-build/static/admin/_next/static/chunks/9046-54877976a0529de2.js +0 -1
  174. fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/action-center/[monitorId]/[systemId]-71579a199158952e.js +0 -1
  175. fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/action-center/[monitorId]-7e63ac744c45f6da.js +0 -1
  176. fides/ui-build/static/admin/_next/static/chunks/pages/integrations/[id]-8d83a5518c00fcfc.js +0 -1
  177. fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/[id]-1caa552a8f11f2f2.js +0 -1
  178. fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/configure/messaging-7498d1d5974a78b0.js +0 -1
  179. fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/configure/storage-2d3a2d967767a131.js +0 -1
  180. fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests-6a9068df48bdee05.js +0 -1
  181. fides/ui-build/static/admin/_next/static/chunks/pages/user-management/profile/[id]-fe58cebba358119d.js +0 -1
  182. fides/ui-build/static/admin/_next/static/css/b81194f2c3930152.css +0 -1
  183. {ethyca_fides-2.66.2b1.dist-info → ethyca_fides-2.66.2rc0.dist-info}/WHEEL +0 -0
  184. {ethyca_fides-2.66.2b1.dist-info → ethyca_fides-2.66.2rc0.dist-info}/entry_points.txt +0 -0
  185. {ethyca_fides-2.66.2b1.dist-info → ethyca_fides-2.66.2rc0.dist-info}/licenses/LICENSE +0 -0
  186. {ethyca_fides-2.66.2b1.dist-info → ethyca_fides-2.66.2rc0.dist-info}/top_level.txt +0 -0
  187. /fides/ui-build/static/admin/_next/static/{CQD5hIjm-4lH18YYESYuD → 8108ANFxs99VY7KZ_Xev2}/_ssgManifest.js +0 -0
  188. /fides/ui-build/static/admin/_next/static/chunks/{2921-86f1547ac40a5cdf.js → 2921-455e6357b74d2f76.js} +0 -0
  189. /fides/ui-build/static/admin/_next/static/chunks/{3450-1cc2bb07ed142203.js → 3450-0ba194991d0cca88.js} +0 -0
  190. /fides/ui-build/static/admin/_next/static/chunks/{3855-e2fa6db53d32c3de.js → 3855-e172870d3e21b0dd.js} +0 -0
  191. /fides/ui-build/static/admin/_next/static/chunks/{3872-84b7e380b88b4454.js → 3872-46cebf7ec1b31a2b.js} +0 -0
  192. /fides/ui-build/static/admin/_next/static/chunks/{3923-13a6b4da2d51bf8f.js → 3923-6cc911dafccc5f63.js} +0 -0
  193. /fides/ui-build/static/admin/_next/static/chunks/{401-3cc1fee61494e3bd.js → 401-1b529d5800aa1f3a.js} +0 -0
  194. /fides/ui-build/static/admin/_next/static/chunks/{409-45a125437261580c.js → 409-a257e14acebcd73b.js} +0 -0
  195. /fides/ui-build/static/admin/_next/static/chunks/{4121-f50675521dfee6eb.js → 4121-2bc09fc4ddbfe5cb.js} +0 -0
  196. /fides/ui-build/static/admin/_next/static/chunks/{4230-840c287045c88b34.js → 4230-60100f7ef3ddcde1.js} +0 -0
  197. /fides/ui-build/static/admin/_next/static/chunks/{4608-a8e3100e2806dbff.js → 4608-bbb7bf511a05c3c2.js} +0 -0
  198. /fides/ui-build/static/admin/_next/static/chunks/{5574-9312f97b637d9ee2.js → 5574-b13021775a15bfd2.js} +0 -0
  199. /fides/ui-build/static/admin/_next/static/chunks/{6084-5d7598b7bcb548cf.js → 6084-7178ff6ea6822475.js} +0 -0
  200. /fides/ui-build/static/admin/_next/static/chunks/{6662-efb2cf74641647f2.js → 6662-507be5d46e5b719b.js} +0 -0
  201. /fides/ui-build/static/admin/_next/static/chunks/{6853-4f8bf6558f8c6a46.js → 6853-2ad3e08fe6f9f5f2.js} +0 -0
  202. /fides/ui-build/static/admin/_next/static/chunks/{6882-586b84aeb02d5830.js → 6882-6af16fef26c21e06.js} +0 -0
  203. /fides/ui-build/static/admin/_next/static/chunks/{6954-34e062e4bffc7e71.js → 6954-bb875d9ac89f6030.js} +0 -0
  204. /fides/ui-build/static/admin/_next/static/chunks/{7476-d206c11823c91088.js → 7476-281ee9a8286556f3.js} +0 -0
  205. /fides/ui-build/static/admin/_next/static/chunks/{7630-b1c93688013ef013.js → 7630-9aac73191ed5ed13.js} +0 -0
  206. /fides/ui-build/static/admin/_next/static/chunks/{787-cbe2d0bfb513d90a.js → 787-fb41002f797eb2df.js} +0 -0
  207. /fides/ui-build/static/admin/_next/static/chunks/{79-3db1941d274f40c7.js → 79-7e87aff851423d4a.js} +0 -0
  208. /fides/ui-build/static/admin/_next/static/chunks/{796-98d4bd68909fbe1e.js → 796-329a5f823ec258a5.js} +0 -0
  209. /fides/ui-build/static/admin/_next/static/chunks/{9226-72ad691ca57b83ef.js → 9226-746771d47dff6266.js} +0 -0
  210. /fides/ui-build/static/admin/_next/static/chunks/{9826-3c578665c6d3b21d.js → 9826-111aaee8bd8dbd09.js} +0 -0
  211. /fides/ui-build/static/admin/_next/static/chunks/{9951-595d0f1588215081.js → 9951-9b753ad7c3f51bdf.js} +0 -0
  212. /fides/ui-build/static/admin/_next/static/chunks/pages/{404-2d803dab6a00f353.js → 404-aece2c920ea14514.js} +0 -0
  213. /fides/ui-build/static/admin/_next/static/chunks/pages/add-systems/{manual-acb59f8b5e97512a.js → manual-98777246bec9dc2a.js} +0 -0
  214. /fides/ui-build/static/admin/_next/static/chunks/pages/add-systems/{multiple-8ff7f37913ad736a.js → multiple-dc75dc6e37e52f05.js} +0 -0
  215. /fides/ui-build/static/admin/_next/static/chunks/pages/{add-systems-0943633a8e422695.js → add-systems-a71c0aff4e0e6535.js} +0 -0
  216. /fides/ui-build/static/admin/_next/static/chunks/pages/consent/configure/{add-vendors-d00c9034cdeb0236.js → add-vendors-24d226b5a8de5c74.js} +0 -0
  217. /fides/ui-build/static/admin/_next/static/chunks/pages/consent/{configure-0e1ca0f4c8e7f4da.js → configure-6a8ef51138ac926a.js} +0 -0
  218. /fides/ui-build/static/admin/_next/static/chunks/pages/consent/privacy-experience/{[id]-fc3a011154a2e1de.js → [id]-1edf582ba3cd3bbb.js} +0 -0
  219. /fides/ui-build/static/admin/_next/static/chunks/pages/consent/{privacy-experience-09d4408014bcfe1c.js → privacy-experience-685771e5f7196d87.js} +0 -0
  220. /fides/ui-build/static/admin/_next/static/chunks/pages/consent/privacy-notices/{[id]-d67542783ef5ddac.js → [id]-6ccedc70dc447089.js} +0 -0
  221. /fides/ui-build/static/admin/_next/static/chunks/pages/consent/privacy-notices/{new-3f20e8a316bb3d5b.js → new-944bca1cc57985b5.js} +0 -0
  222. /fides/ui-build/static/admin/_next/static/chunks/pages/consent/{privacy-notices-23e9dcd4590312d2.js → privacy-notices-84f4bd14ce8673bc.js} +0 -0
  223. /fides/ui-build/static/admin/_next/static/chunks/pages/consent/{properties-057cad65e7414a44.js → properties-6f86ab63a08a6528.js} +0 -0
  224. /fides/ui-build/static/admin/_next/static/chunks/pages/consent/{reporting-8f891957c8944137.js → reporting-afdbd4665657cfa1.js} +0 -0
  225. /fides/ui-build/static/admin/_next/static/chunks/pages/{consent-e17c56eec8d91371.js → consent-73d3cbf68f7c3a31.js} +0 -0
  226. /fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/projects/[projectUrn]/{[resourceUrn]-99c9092d65c94807.js → [resourceUrn]-11d52f1570759c4d.js} +0 -0
  227. /fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/projects/{[projectUrn]-80a6cc8e8573514a.js → [projectUrn]-6ba9e160dae64695.js} +0 -0
  228. /fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/{projects-774fecea22ba8852.js → projects-32eac8bbd217615a.js} +0 -0
  229. /fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/resources/{[resourceUrn]-f6bd6aff389cb9fe.js → [resourceUrn]-b83afa5565d0c84e.js} +0 -0
  230. /fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/{resources-6c3714ee97a718c1.js → resources-7648bbd4f6711e4d.js} +0 -0
  231. /fides/ui-build/static/admin/_next/static/chunks/pages/{data-catalog-8a7f9285da66b965.js → data-catalog-6f630d42ac9fb6b4.js} +0 -0
  232. /fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/{action-center-85e140788e251272.js → action-center-9ddb52ebb7ac4c71.js} +0 -0
  233. /fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/{activity-5af9381f02b2aff6.js → activity-9aa744d56cdacb0d.js} +0 -0
  234. /fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/detection/{[resourceUrn]-31e6c54794a9883e.js → [resourceUrn]-393e20924c83373e.js} +0 -0
  235. /fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/{detection-2822a423a7ad0550.js → detection-8733807dad4bc96e.js} +0 -0
  236. /fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/discovery/{[resourceUrn]-6421ce247549c5d6.js → [resourceUrn]-14bd7500362ff224.js} +0 -0
  237. /fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/{discovery-3eac407ac5181a3c.js → discovery-9e7dfd5a6acc2e8f.js} +0 -0
  238. /fides/ui-build/static/admin/_next/static/chunks/pages/{datamap-d2b275d83089820d.js → datamap-7674b97d655c193b.js} +0 -0
  239. /fides/ui-build/static/admin/_next/static/chunks/pages/dataset/[datasetId]/[collectionName]/{[...subfieldNames]-1c98bd0959d9570a.js → [...subfieldNames]-c0d2bfd465df20e0.js} +0 -0
  240. /fides/ui-build/static/admin/_next/static/chunks/pages/dataset/[datasetId]/{[collectionName]-e548cabda7da32c9.js → [collectionName]-28280a8a39a6e37c.js} +0 -0
  241. /fides/ui-build/static/admin/_next/static/chunks/pages/dataset/{[datasetId]-a8e8b5f4ee7af86c.js → [datasetId]-006b695e5af5ef24.js} +0 -0
  242. /fides/ui-build/static/admin/_next/static/chunks/pages/dataset/{new-513c862c3a707735.js → new-82fb246d87e58ebd.js} +0 -0
  243. /fides/ui-build/static/admin/_next/static/chunks/pages/{dataset-747b7a13289f1cd7.js → dataset-20165c31ab1bc7cf.js} +0 -0
  244. /fides/ui-build/static/admin/_next/static/chunks/pages/datastore-connection/{[id]-3d22525b3c327b2e.js → [id]-b4a6bcc87d126840.js} +0 -0
  245. /fides/ui-build/static/admin/_next/static/chunks/pages/datastore-connection/{new-d2cad97495e86adb.js → new-f95d7b0bbfc58f5a.js} +0 -0
  246. /fides/ui-build/static/admin/_next/static/chunks/pages/{datastore-connection-0f29b47402292070.js → datastore-connection-c391c6fad56eec48.js} +0 -0
  247. /fides/ui-build/static/admin/_next/static/chunks/pages/{index-12ac3e317fc86f21.js → index-1919aab9e5834b51.js} +0 -0
  248. /fides/ui-build/static/admin/_next/static/chunks/pages/messaging/{[id]-5627d0d0668077f9.js → [id]-53fecfb9dd6a1e0c.js} +0 -0
  249. /fides/ui-build/static/admin/_next/static/chunks/pages/messaging/{add-template-feca66ad5c5fe54a.js → add-template-76b01cec5fde10a9.js} +0 -0
  250. /fides/ui-build/static/admin/_next/static/chunks/pages/{messaging-c1bd3e7adbe8d2d3.js → messaging-5094ffea13f32ed9.js} +0 -0
  251. /fides/ui-build/static/admin/_next/static/chunks/pages/poc/{ant-components-64a322d01aae5ca7.js → ant-components-5c08e8447c45ce44.js} +0 -0
  252. /fides/ui-build/static/admin/_next/static/chunks/pages/poc/form-experiments/{AntForm-8bca16a7726e7eb2.js → AntForm-06ad5f34585480aa.js} +0 -0
  253. /fides/ui-build/static/admin/_next/static/chunks/pages/poc/form-experiments/{FormikAntFormItem-b0f246fc3b67ebf7.js → FormikAntFormItem-6f071c2bc9446cb0.js} +0 -0
  254. /fides/ui-build/static/admin/_next/static/chunks/pages/poc/form-experiments/{FormikControlled-1a0852b090bfc392.js → FormikControlled-efcc38c58991ac9e.js} +0 -0
  255. /fides/ui-build/static/admin/_next/static/chunks/pages/poc/form-experiments/{FormikField-11f3de1b45e36583.js → FormikField-430ba5c979abfb7c.js} +0 -0
  256. /fides/ui-build/static/admin/_next/static/chunks/pages/poc/{forms-1b73a1c2b6c6285f.js → forms-5c561880bf131afb.js} +0 -0
  257. /fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/{configure-e551a860ec727802.js → configure-d888a69a3bbe040e.js} +0 -0
  258. /fides/ui-build/static/admin/_next/static/chunks/pages/properties/{[id]-dd99183f93763ae4.js → [id]-d3d8e3d7583ec635.js} +0 -0
  259. /fides/ui-build/static/admin/_next/static/chunks/pages/properties/{add-property-0bdbc1fcbf553b8f.js → add-property-1af10ed303815d46.js} +0 -0
  260. /fides/ui-build/static/admin/_next/static/chunks/pages/{properties-e959378bb32b6b73.js → properties-cebc0dc186be499a.js} +0 -0
  261. /fides/ui-build/static/admin/_next/static/chunks/pages/reporting/{datamap-2a98bd257edd8f47.js → datamap-e130c0197362e8f3.js} +0 -0
  262. /fides/ui-build/static/admin/_next/static/chunks/pages/settings/about/{alpha-8f98a4895e74725e.js → alpha-5e1322de868d615e.js} +0 -0
  263. /fides/ui-build/static/admin/_next/static/chunks/pages/settings/{about-8155a35a62fdb5ae.js → about-241f95e372b65d0f.js} +0 -0
  264. /fides/ui-build/static/admin/_next/static/chunks/pages/settings/consent/[configuration_id]/{[purpose_id]-668d74c041d74650.js → [purpose_id]-fc201657f4a782c7.js} +0 -0
  265. /fides/ui-build/static/admin/_next/static/chunks/pages/settings/{consent-a989532a12c40dcf.js → consent-c2d39cba8396ef3a.js} +0 -0
  266. /fides/ui-build/static/admin/_next/static/chunks/pages/settings/{custom-fields-45bea76ff7eda3cb.js → custom-fields-d992103cc55901ae.js} +0 -0
  267. /fides/ui-build/static/admin/_next/static/chunks/pages/settings/{domain-records-51333dbd21cb37c8.js → domain-records-41242f805599feda.js} +0 -0
  268. /fides/ui-build/static/admin/_next/static/chunks/pages/settings/{domains-bde86e5f6c09da5a.js → domains-2e885f74c92f669c.js} +0 -0
  269. /fides/ui-build/static/admin/_next/static/chunks/pages/settings/{email-templates-4f9a5cc8bea7725b.js → email-templates-ff112655ad5f41e5.js} +0 -0
  270. /fides/ui-build/static/admin/_next/static/chunks/pages/settings/{locations-6946e78a5d43e654.js → locations-023e1895552817de.js} +0 -0
  271. /fides/ui-build/static/admin/_next/static/chunks/pages/settings/{organization-55a10e01dffc8039.js → organization-ac403c0886b20e20.js} +0 -0
  272. /fides/ui-build/static/admin/_next/static/chunks/pages/settings/{regulations-102efd9199e87124.js → regulations-86062a18e081a52a.js} +0 -0
  273. /fides/ui-build/static/admin/_next/static/chunks/pages/systems/configure/[id]/{test-datasets-f91f22cf96566ed4.js → test-datasets-7a3396ac819c7904.js} +0 -0
  274. /fides/ui-build/static/admin/_next/static/chunks/pages/systems/configure/{[id]-d4a57ea18935dd70.js → [id]-8314a819837f5b2a.js} +0 -0
  275. /fides/ui-build/static/admin/_next/static/chunks/pages/{systems-648a0ff4920579ce.js → systems-21f423a7c417aa9d.js} +0 -0
  276. /fides/ui-build/static/admin/_next/static/chunks/pages/{taxonomy-0b9d1a24188f65a9.js → taxonomy-6387fcc8cce872eb.js} +0 -0
  277. /fides/ui-build/static/admin/_next/static/chunks/pages/user-management/{new-bc4eb541906781e6.js → new-a2524414e968f862.js} +0 -0
  278. /fides/ui-build/static/admin/_next/static/chunks/pages/{user-management-45bfa04e45a7d13f.js → user-management-173ac3a1ed2b05a6.js} +0 -0
  279. /fides/ui-build/static/admin/_next/static/chunks/{webpack-63a0c45b150a1037.js → webpack-ff0cd6bff75588da.js} +0 -0
@@ -1 +1 @@
1
- <!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link data-next-font="" rel="preconnect" href="/" crossorigin="anonymous"/><link rel="preload" href="/_next/static/css/b81194f2c3930152.css" as="style"/><link rel="stylesheet" href="/_next/static/css/b81194f2c3930152.css" data-n-g=""/><link rel="preload" href="/_next/static/css/304c6f148886a8d4.css" as="style"/><link rel="stylesheet" href="/_next/static/css/304c6f148886a8d4.css" data-n-p=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-63a0c45b150a1037.js" defer=""></script><script src="/_next/static/chunks/framework-c92fc3344e6fd165.js" defer=""></script><script src="/_next/static/chunks/main-090643377c8254e6.js" defer=""></script><script src="/_next/static/chunks/pages/_app-be7889cec5a0f5cd.js" defer=""></script><script src="/_next/static/chunks/2858-0b44609b6be7850b.js" defer=""></script><script src="/_next/static/chunks/2866-a73888c17a195cbe.js" defer=""></script><script src="/_next/static/chunks/9278-9b1b5970f0702668.js" defer=""></script><script src="/_next/static/chunks/699-8ca44b0de9fa20f0.js" defer=""></script><script src="/_next/static/chunks/5277-e8a036319456127f.js" defer=""></script><script src="/_next/static/chunks/409-45a125437261580c.js" defer=""></script><script src="/_next/static/chunks/401-3cc1fee61494e3bd.js" defer=""></script><script src="/_next/static/chunks/9951-595d0f1588215081.js" defer=""></script><script src="/_next/static/chunks/6780-4b687168dd8daa84.js" defer=""></script><script src="/_next/static/chunks/3450-1cc2bb07ed142203.js" defer=""></script><script src="/_next/static/chunks/pages/systems/configure/%5Bid%5D-d4a57ea18935dd70.js" defer=""></script><script src="/_next/static/CQD5hIjm-4lH18YYESYuD/_buildManifest.js" defer=""></script><script src="/_next/static/CQD5hIjm-4lH18YYESYuD/_ssgManifest.js" defer=""></script><style>.data-ant-cssinjs-cache-path{content:"";}</style></head><body><div id="__next"><div style="height:100%;display:flex"></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/systems/configure/[id]","query":{},"buildId":"CQD5hIjm-4lH18YYESYuD","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link data-next-font="" rel="preconnect" href="/" crossorigin="anonymous"/><link rel="preload" href="/_next/static/css/2cadb5f62dcd7c2b.css" as="style"/><link rel="stylesheet" href="/_next/static/css/2cadb5f62dcd7c2b.css" data-n-g=""/><link rel="preload" href="/_next/static/css/304c6f148886a8d4.css" as="style"/><link rel="stylesheet" href="/_next/static/css/304c6f148886a8d4.css" data-n-p=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-ff0cd6bff75588da.js" defer=""></script><script src="/_next/static/chunks/framework-c92fc3344e6fd165.js" defer=""></script><script src="/_next/static/chunks/main-090643377c8254e6.js" defer=""></script><script src="/_next/static/chunks/pages/_app-39ccb07327c2c5d5.js" defer=""></script><script src="/_next/static/chunks/2858-0b44609b6be7850b.js" defer=""></script><script src="/_next/static/chunks/2866-a73888c17a195cbe.js" defer=""></script><script src="/_next/static/chunks/9278-9b1b5970f0702668.js" defer=""></script><script src="/_next/static/chunks/699-8ca44b0de9fa20f0.js" defer=""></script><script src="/_next/static/chunks/5277-e8a036319456127f.js" defer=""></script><script src="/_next/static/chunks/409-a257e14acebcd73b.js" defer=""></script><script src="/_next/static/chunks/401-1b529d5800aa1f3a.js" defer=""></script><script src="/_next/static/chunks/9951-9b753ad7c3f51bdf.js" defer=""></script><script src="/_next/static/chunks/6780-e3d40aa17a4bf2e9.js" defer=""></script><script src="/_next/static/chunks/3450-0ba194991d0cca88.js" defer=""></script><script src="/_next/static/chunks/pages/systems/configure/%5Bid%5D-8314a819837f5b2a.js" defer=""></script><script src="/_next/static/8108ANFxs99VY7KZ_Xev2/_buildManifest.js" defer=""></script><script src="/_next/static/8108ANFxs99VY7KZ_Xev2/_ssgManifest.js" defer=""></script><style>.data-ant-cssinjs-cache-path{content:"";}</style></head><body><div id="__next"><div style="height:100%;display:flex"></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/systems/configure/[id]","query":{},"buildId":"8108ANFxs99VY7KZ_Xev2","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link data-next-font="" rel="preconnect" href="/" crossorigin="anonymous"/><link rel="preload" href="/_next/static/css/b81194f2c3930152.css" as="style"/><link rel="stylesheet" href="/_next/static/css/b81194f2c3930152.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-63a0c45b150a1037.js" defer=""></script><script src="/_next/static/chunks/framework-c92fc3344e6fd165.js" defer=""></script><script src="/_next/static/chunks/main-090643377c8254e6.js" defer=""></script><script src="/_next/static/chunks/pages/_app-be7889cec5a0f5cd.js" defer=""></script><script src="/_next/static/chunks/pages/systems-648a0ff4920579ce.js" defer=""></script><script src="/_next/static/CQD5hIjm-4lH18YYESYuD/_buildManifest.js" defer=""></script><script src="/_next/static/CQD5hIjm-4lH18YYESYuD/_ssgManifest.js" defer=""></script><style>.data-ant-cssinjs-cache-path{content:"";}</style></head><body><div id="__next"><div style="height:100%;display:flex"></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/systems","query":{},"buildId":"CQD5hIjm-4lH18YYESYuD","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link data-next-font="" rel="preconnect" href="/" crossorigin="anonymous"/><link rel="preload" href="/_next/static/css/2cadb5f62dcd7c2b.css" as="style"/><link rel="stylesheet" href="/_next/static/css/2cadb5f62dcd7c2b.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-ff0cd6bff75588da.js" defer=""></script><script src="/_next/static/chunks/framework-c92fc3344e6fd165.js" defer=""></script><script src="/_next/static/chunks/main-090643377c8254e6.js" defer=""></script><script src="/_next/static/chunks/pages/_app-39ccb07327c2c5d5.js" defer=""></script><script src="/_next/static/chunks/pages/systems-21f423a7c417aa9d.js" defer=""></script><script src="/_next/static/8108ANFxs99VY7KZ_Xev2/_buildManifest.js" defer=""></script><script src="/_next/static/8108ANFxs99VY7KZ_Xev2/_ssgManifest.js" defer=""></script><style>.data-ant-cssinjs-cache-path{content:"";}</style></head><body><div id="__next"><div style="height:100%;display:flex"></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/systems","query":{},"buildId":"8108ANFxs99VY7KZ_Xev2","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link data-next-font="" rel="preconnect" href="/" crossorigin="anonymous"/><link rel="preload" href="/_next/static/css/b81194f2c3930152.css" as="style"/><link rel="stylesheet" href="/_next/static/css/b81194f2c3930152.css" data-n-g=""/><link rel="preload" href="/_next/static/css/34a7eb08b86ddb57.css" as="style"/><link rel="stylesheet" href="/_next/static/css/34a7eb08b86ddb57.css" data-n-p=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-63a0c45b150a1037.js" defer=""></script><script src="/_next/static/chunks/framework-c92fc3344e6fd165.js" defer=""></script><script src="/_next/static/chunks/main-090643377c8254e6.js" defer=""></script><script src="/_next/static/chunks/pages/_app-be7889cec5a0f5cd.js" defer=""></script><script src="/_next/static/chunks/678d4732-50255cc09048e643.js" defer=""></script><script src="/_next/static/chunks/2858-0b44609b6be7850b.js" defer=""></script><script src="/_next/static/chunks/2866-a73888c17a195cbe.js" defer=""></script><script src="/_next/static/chunks/9278-9b1b5970f0702668.js" defer=""></script><script src="/_next/static/chunks/3662-f6a1ddca5ee42076.js" defer=""></script><script src="/_next/static/chunks/570-c99f07161bd339cd.js" defer=""></script><script src="/_next/static/chunks/pages/taxonomy-0b9d1a24188f65a9.js" defer=""></script><script src="/_next/static/CQD5hIjm-4lH18YYESYuD/_buildManifest.js" defer=""></script><script src="/_next/static/CQD5hIjm-4lH18YYESYuD/_ssgManifest.js" defer=""></script><style>.data-ant-cssinjs-cache-path{content:"";}</style></head><body><div id="__next"><div style="height:100%;display:flex"></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/taxonomy","query":{},"buildId":"CQD5hIjm-4lH18YYESYuD","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link data-next-font="" rel="preconnect" href="/" crossorigin="anonymous"/><link rel="preload" href="/_next/static/css/2cadb5f62dcd7c2b.css" as="style"/><link rel="stylesheet" href="/_next/static/css/2cadb5f62dcd7c2b.css" data-n-g=""/><link rel="preload" href="/_next/static/css/34a7eb08b86ddb57.css" as="style"/><link rel="stylesheet" href="/_next/static/css/34a7eb08b86ddb57.css" data-n-p=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-ff0cd6bff75588da.js" defer=""></script><script src="/_next/static/chunks/framework-c92fc3344e6fd165.js" defer=""></script><script src="/_next/static/chunks/main-090643377c8254e6.js" defer=""></script><script src="/_next/static/chunks/pages/_app-39ccb07327c2c5d5.js" defer=""></script><script src="/_next/static/chunks/678d4732-50255cc09048e643.js" defer=""></script><script src="/_next/static/chunks/2858-0b44609b6be7850b.js" defer=""></script><script src="/_next/static/chunks/2866-a73888c17a195cbe.js" defer=""></script><script src="/_next/static/chunks/9278-9b1b5970f0702668.js" defer=""></script><script src="/_next/static/chunks/3662-f6a1ddca5ee42076.js" defer=""></script><script src="/_next/static/chunks/570-c99f07161bd339cd.js" defer=""></script><script src="/_next/static/chunks/pages/taxonomy-6387fcc8cce872eb.js" defer=""></script><script src="/_next/static/8108ANFxs99VY7KZ_Xev2/_buildManifest.js" defer=""></script><script src="/_next/static/8108ANFxs99VY7KZ_Xev2/_ssgManifest.js" defer=""></script><style>.data-ant-cssinjs-cache-path{content:"";}</style></head><body><div id="__next"><div style="height:100%;display:flex"></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/taxonomy","query":{},"buildId":"8108ANFxs99VY7KZ_Xev2","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link data-next-font="" rel="preconnect" href="/" crossorigin="anonymous"/><link rel="preload" href="/_next/static/css/b81194f2c3930152.css" as="style"/><link rel="stylesheet" href="/_next/static/css/b81194f2c3930152.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-63a0c45b150a1037.js" defer=""></script><script src="/_next/static/chunks/framework-c92fc3344e6fd165.js" defer=""></script><script src="/_next/static/chunks/main-090643377c8254e6.js" defer=""></script><script src="/_next/static/chunks/pages/_app-be7889cec5a0f5cd.js" defer=""></script><script src="/_next/static/chunks/7476-d206c11823c91088.js" defer=""></script><script src="/_next/static/chunks/4121-f50675521dfee6eb.js" defer=""></script><script src="/_next/static/chunks/pages/user-management/new-bc4eb541906781e6.js" defer=""></script><script src="/_next/static/CQD5hIjm-4lH18YYESYuD/_buildManifest.js" defer=""></script><script src="/_next/static/CQD5hIjm-4lH18YYESYuD/_ssgManifest.js" defer=""></script><style>.data-ant-cssinjs-cache-path{content:"";}</style></head><body><div id="__next"><div style="height:100%;display:flex"></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/user-management/new","query":{},"buildId":"CQD5hIjm-4lH18YYESYuD","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link data-next-font="" rel="preconnect" href="/" crossorigin="anonymous"/><link rel="preload" href="/_next/static/css/2cadb5f62dcd7c2b.css" as="style"/><link rel="stylesheet" href="/_next/static/css/2cadb5f62dcd7c2b.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-ff0cd6bff75588da.js" defer=""></script><script src="/_next/static/chunks/framework-c92fc3344e6fd165.js" defer=""></script><script src="/_next/static/chunks/main-090643377c8254e6.js" defer=""></script><script src="/_next/static/chunks/pages/_app-39ccb07327c2c5d5.js" defer=""></script><script src="/_next/static/chunks/7476-281ee9a8286556f3.js" defer=""></script><script src="/_next/static/chunks/4121-2bc09fc4ddbfe5cb.js" defer=""></script><script src="/_next/static/chunks/pages/user-management/new-a2524414e968f862.js" defer=""></script><script src="/_next/static/8108ANFxs99VY7KZ_Xev2/_buildManifest.js" defer=""></script><script src="/_next/static/8108ANFxs99VY7KZ_Xev2/_ssgManifest.js" defer=""></script><style>.data-ant-cssinjs-cache-path{content:"";}</style></head><body><div id="__next"><div style="height:100%;display:flex"></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/user-management/new","query":{},"buildId":"8108ANFxs99VY7KZ_Xev2","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link data-next-font="" rel="preconnect" href="/" crossorigin="anonymous"/><link rel="preload" href="/_next/static/css/b81194f2c3930152.css" as="style"/><link rel="stylesheet" href="/_next/static/css/b81194f2c3930152.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-63a0c45b150a1037.js" defer=""></script><script src="/_next/static/chunks/framework-c92fc3344e6fd165.js" defer=""></script><script src="/_next/static/chunks/main-090643377c8254e6.js" defer=""></script><script src="/_next/static/chunks/pages/_app-be7889cec5a0f5cd.js" defer=""></script><script src="/_next/static/chunks/7476-d206c11823c91088.js" defer=""></script><script src="/_next/static/chunks/4121-f50675521dfee6eb.js" defer=""></script><script src="/_next/static/chunks/pages/user-management/profile/%5Bid%5D-fe58cebba358119d.js" defer=""></script><script src="/_next/static/CQD5hIjm-4lH18YYESYuD/_buildManifest.js" defer=""></script><script src="/_next/static/CQD5hIjm-4lH18YYESYuD/_ssgManifest.js" defer=""></script><style>.data-ant-cssinjs-cache-path{content:"";}</style></head><body><div id="__next"><div style="height:100%;display:flex"></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/user-management/profile/[id]","query":{},"buildId":"CQD5hIjm-4lH18YYESYuD","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link data-next-font="" rel="preconnect" href="/" crossorigin="anonymous"/><link rel="preload" href="/_next/static/css/2cadb5f62dcd7c2b.css" as="style"/><link rel="stylesheet" href="/_next/static/css/2cadb5f62dcd7c2b.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-ff0cd6bff75588da.js" defer=""></script><script src="/_next/static/chunks/framework-c92fc3344e6fd165.js" defer=""></script><script src="/_next/static/chunks/main-090643377c8254e6.js" defer=""></script><script src="/_next/static/chunks/pages/_app-39ccb07327c2c5d5.js" defer=""></script><script src="/_next/static/chunks/7476-281ee9a8286556f3.js" defer=""></script><script src="/_next/static/chunks/4121-2bc09fc4ddbfe5cb.js" defer=""></script><script src="/_next/static/chunks/pages/user-management/profile/%5Bid%5D-ff5738706da07801.js" defer=""></script><script src="/_next/static/8108ANFxs99VY7KZ_Xev2/_buildManifest.js" defer=""></script><script src="/_next/static/8108ANFxs99VY7KZ_Xev2/_ssgManifest.js" defer=""></script><style>.data-ant-cssinjs-cache-path{content:"";}</style></head><body><div id="__next"><div style="height:100%;display:flex"></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/user-management/profile/[id]","query":{},"buildId":"8108ANFxs99VY7KZ_Xev2","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link data-next-font="" rel="preconnect" href="/" crossorigin="anonymous"/><link rel="preload" href="/_next/static/css/b81194f2c3930152.css" as="style"/><link rel="stylesheet" href="/_next/static/css/b81194f2c3930152.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-63a0c45b150a1037.js" defer=""></script><script src="/_next/static/chunks/framework-c92fc3344e6fd165.js" defer=""></script><script src="/_next/static/chunks/main-090643377c8254e6.js" defer=""></script><script src="/_next/static/chunks/pages/_app-be7889cec5a0f5cd.js" defer=""></script><script src="/_next/static/chunks/7476-d206c11823c91088.js" defer=""></script><script src="/_next/static/chunks/pages/user-management-45bfa04e45a7d13f.js" defer=""></script><script src="/_next/static/CQD5hIjm-4lH18YYESYuD/_buildManifest.js" defer=""></script><script src="/_next/static/CQD5hIjm-4lH18YYESYuD/_ssgManifest.js" defer=""></script><style>.data-ant-cssinjs-cache-path{content:"";}</style></head><body><div id="__next"><div style="height:100%;display:flex"></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/user-management","query":{},"buildId":"CQD5hIjm-4lH18YYESYuD","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link data-next-font="" rel="preconnect" href="/" crossorigin="anonymous"/><link rel="preload" href="/_next/static/css/2cadb5f62dcd7c2b.css" as="style"/><link rel="stylesheet" href="/_next/static/css/2cadb5f62dcd7c2b.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-ff0cd6bff75588da.js" defer=""></script><script src="/_next/static/chunks/framework-c92fc3344e6fd165.js" defer=""></script><script src="/_next/static/chunks/main-090643377c8254e6.js" defer=""></script><script src="/_next/static/chunks/pages/_app-39ccb07327c2c5d5.js" defer=""></script><script src="/_next/static/chunks/7476-281ee9a8286556f3.js" defer=""></script><script src="/_next/static/chunks/pages/user-management-173ac3a1ed2b05a6.js" defer=""></script><script src="/_next/static/8108ANFxs99VY7KZ_Xev2/_buildManifest.js" defer=""></script><script src="/_next/static/8108ANFxs99VY7KZ_Xev2/_ssgManifest.js" defer=""></script><style>.data-ant-cssinjs-cache-path{content:"";}</style></head><body><div id="__next"><div style="height:100%;display:flex"></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/user-management","query":{},"buildId":"8108ANFxs99VY7KZ_Xev2","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
@@ -1,60 +0,0 @@
1
- """adding masking secrets
2
-
3
- Revision ID: 7e9a2b52f498
4
- Revises: d0031087eacb
5
- Create Date: 2024-12-23 23:29:53.557951
6
-
7
- """
8
-
9
- import sqlalchemy as sa
10
- import sqlalchemy_utils
11
- from alembic import op
12
-
13
- # revision identifiers, used by Alembic.
14
- revision = "7e9a2b52f498"
15
- down_revision = "d0031087eacb"
16
- branch_labels = None
17
- depends_on = None
18
-
19
-
20
- def upgrade():
21
- op.create_table(
22
- "masking_secret",
23
- sa.Column("id", sa.String(length=255), nullable=False),
24
- sa.Column(
25
- "created_at",
26
- sa.DateTime(timezone=True),
27
- server_default=sa.text("now()"),
28
- nullable=True,
29
- ),
30
- sa.Column(
31
- "updated_at",
32
- sa.DateTime(timezone=True),
33
- server_default=sa.text("now()"),
34
- nullable=True,
35
- ),
36
- sa.Column("privacy_request_id", sa.String(), nullable=False),
37
- sa.Column(
38
- "secret",
39
- sqlalchemy_utils.types.encrypted.encrypted_type.StringEncryptedType(),
40
- nullable=False,
41
- ),
42
- sa.Column("masking_strategy", sa.String(), nullable=False),
43
- sa.Column(
44
- "secret_type",
45
- sa.String(),
46
- nullable=False,
47
- ),
48
- sa.ForeignKeyConstraint(
49
- ["privacy_request_id"], ["privacyrequest.id"], ondelete="CASCADE"
50
- ),
51
- sa.PrimaryKeyConstraint("id"),
52
- )
53
- op.create_index(
54
- op.f("ix_masking_secret_id"), "masking_secret", ["id"], unique=False
55
- )
56
-
57
-
58
- def downgrade():
59
- op.drop_index(op.f("ix_masking_secret_id"), table_name="masking_secret")
60
- op.drop_table("masking_secret")
@@ -1,65 +0,0 @@
1
- """add finalized fields to privacy request
2
-
3
- Revision ID: a7065df4dcf1
4
- Revises: 7e9a2b52f498
5
- Create Date: 2025-07-01 14:07:36.779437
6
-
7
- """
8
-
9
- import sqlalchemy as sa
10
- from alembic import op
11
-
12
- # revision identifiers, used by Alembic.
13
- revision = "a7065df4dcf1"
14
- down_revision = "7e9a2b52f498"
15
- branch_labels = None
16
- depends_on = None
17
-
18
-
19
- def upgrade():
20
- # ### commands auto generated by Alembic - please adjust! ###
21
- op.add_column(
22
- "privacyrequest",
23
- sa.Column("finalized_at", sa.DateTime(timezone=True), nullable=True),
24
- )
25
- op.add_column(
26
- "privacyrequest", sa.Column("finalized_by", sa.String(), nullable=True)
27
- )
28
- op.create_foreign_key(
29
- "privacyrequest_fidesuser_id_fkey",
30
- "privacyrequest",
31
- "fidesuser",
32
- ["finalized_by"],
33
- ["id"],
34
- ondelete="SET NULL",
35
- )
36
- op.execute(
37
- "alter type privacyrequeststatus add value 'requires_manual_finalization'"
38
- )
39
- # ### end Alembic commands ###
40
-
41
-
42
- def downgrade():
43
- # ### commands auto generated by Alembic - please adjust! ###
44
- op.drop_constraint(
45
- "privacyrequest_fidesuser_id_fkey", "privacyrequest", type_="foreignkey"
46
- )
47
- op.drop_column("privacyrequest", "finalized_by")
48
- op.drop_column("privacyrequest", "finalized_at")
49
-
50
- op.execute(
51
- "delete from privacyrequest where status in ('requires_manual_finalization')"
52
- )
53
-
54
- op.execute("alter type privacyrequeststatus rename to privacyrequeststatus_old")
55
- op.execute(
56
- "create type privacyrequeststatus as enum('identity_unverified', 'requires_input', 'pending', 'in_processing', 'complete', 'pending', 'error', 'paused', 'approved', 'denied', 'canceled', 'awaiting_email_send')"
57
- )
58
- op.execute(
59
- (
60
- "alter table privacyrequest alter column status type privacyrequeststatus using "
61
- "status::text::privacyrequeststatus"
62
- )
63
- )
64
- op.execute("drop type privacyrequeststatus_old")
65
- # ### end Alembic commands ###
@@ -1,106 +0,0 @@
1
- """create ManualTaskConditionalDependency table
2
-
3
- Revision ID: d0031087eacb
4
- Revises: 9e3dab26f75f
5
- Create Date: 2025-07-17 21:28:20.937945
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 = "d0031087eacb"
15
- down_revision = "9e3dab26f75f"
16
- branch_labels = None
17
- depends_on = None
18
-
19
-
20
- def upgrade():
21
- # ### commands auto generated by Alembic - please adjust! ###
22
-
23
- op.create_table(
24
- "manual_task_conditional_dependency",
25
- sa.Column(
26
- "created_at",
27
- sa.DateTime(timezone=True),
28
- server_default=sa.text("now()"),
29
- nullable=True,
30
- ),
31
- sa.Column(
32
- "updated_at",
33
- sa.DateTime(timezone=True),
34
- server_default=sa.text("now()"),
35
- nullable=True,
36
- ),
37
- sa.Column("id", sa.String(length=255), nullable=False),
38
- sa.Column("manual_task_id", sa.String(), nullable=False),
39
- sa.Column("parent_id", sa.String(), nullable=True),
40
- sa.Column(
41
- "condition_type",
42
- sa.String(), # Use String instead of Enum to avoid auto-creation
43
- nullable=False,
44
- ),
45
- sa.Column("field_address", sa.String(), nullable=True),
46
- sa.Column("operator", sa.String(), nullable=True),
47
- sa.Column("value", postgresql.JSONB(astext_type=sa.Text()), nullable=True),
48
- sa.Column("logical_operator", sa.String(), nullable=True),
49
- sa.Column("sort_order", sa.Integer(), nullable=False),
50
- sa.ForeignKeyConstraint(
51
- ["manual_task_id"], ["manual_task.id"], ondelete="CASCADE"
52
- ),
53
- sa.ForeignKeyConstraint(
54
- ["parent_id"], ["manual_task_conditional_dependency.id"], ondelete="CASCADE"
55
- ),
56
- sa.PrimaryKeyConstraint("id"),
57
- )
58
-
59
- op.create_index(
60
- "ix_manual_task_conditional_dependency_condition_type",
61
- "manual_task_conditional_dependency",
62
- ["condition_type"],
63
- unique=False,
64
- )
65
- op.create_index(
66
- "ix_manual_task_conditional_dependency_manual_task_id",
67
- "manual_task_conditional_dependency",
68
- ["manual_task_id"],
69
- unique=False,
70
- )
71
- op.create_index(
72
- "ix_manual_task_conditional_dependency_parent_id",
73
- "manual_task_conditional_dependency",
74
- ["parent_id"],
75
- unique=False,
76
- )
77
- op.create_index(
78
- "ix_manual_task_conditional_dependency_sort_order",
79
- "manual_task_conditional_dependency",
80
- ["sort_order"],
81
- unique=False,
82
- )
83
- # ### end Alembic commands ###
84
-
85
-
86
- def downgrade():
87
- # ### commands auto generated by Alembic - please adjust! ###
88
- op.drop_index(
89
- "ix_manual_task_conditional_dependency_sort_order",
90
- table_name="manual_task_conditional_dependency",
91
- )
92
- op.drop_index(
93
- "ix_manual_task_conditional_dependency_parent_id",
94
- table_name="manual_task_conditional_dependency",
95
- )
96
- op.drop_index(
97
- "ix_manual_task_conditional_dependency_manual_task_id",
98
- table_name="manual_task_conditional_dependency",
99
- )
100
- op.drop_index(
101
- "ix_manual_task_conditional_dependency_condition_type",
102
- table_name="manual_task_conditional_dependency",
103
- )
104
-
105
- op.drop_table("manual_task_conditional_dependency")
106
- # ### end Alembic commands ###
@@ -1,2 +0,0 @@
1
- from .conditional_dependency import *
2
- from .manual_task import *
@@ -1,144 +0,0 @@
1
- from enum import Enum
2
- from typing import TYPE_CHECKING, Optional, Union
3
-
4
- from sqlalchemy import Column, ForeignKey, Index, Integer, String
5
- from sqlalchemy.dialects.postgresql import JSONB
6
- from sqlalchemy.ext.declarative import declared_attr
7
- from sqlalchemy.orm import Session, relationship
8
-
9
- from fides.api.db.base_class import Base, FidesBase
10
- from fides.api.db.util import EnumColumn
11
- from fides.api.task.conditional_dependencies.schemas import (
12
- ConditionGroup,
13
- ConditionLeaf,
14
- )
15
-
16
- if TYPE_CHECKING:
17
- from fides.api.models.manual_task.manual_task import ManualTask
18
-
19
-
20
- class ManualTaskConditionalDependencyType(str, Enum):
21
- """Enum for manual task conditional dependency types.
22
-
23
- This enum defines the two types of nodes in a conditional dependency tree:
24
-
25
- - leaf: A terminal node that represents a single condition (e.g., "user.age >= 18")
26
- - group: A non-terminal node that groups multiple conditions with logical operators (AND/OR)
27
-
28
- Examples:
29
- leaf: Used for simple field comparisons like:
30
- - "user.name exists"
31
- - "user.age >= 18"
32
- - "billing.subscription.status == 'active'"
33
-
34
- group: Used to combine multiple conditions with logical operators:
35
- - AND group: "user.age >= 18 AND user.active == true"
36
- - OR group: "user.role == 'admin' OR user.verified == true"
37
- - Nested groups: "(user.age >= 18 AND (user.role == 'admin' OR user.verified == true))"
38
- """
39
-
40
- leaf = "leaf"
41
- group = "group"
42
-
43
-
44
- class ManualTaskConditionalDependency(Base):
45
- """Model for storing conditional dependencies."""
46
-
47
- @declared_attr
48
- def __tablename__(cls) -> str:
49
- """Overriding base class method to set the table name."""
50
- return "manual_task_conditional_dependency"
51
-
52
- # We need to redefine it here so that self-referential relationships
53
- # can properly reference the `id` column instead of the built-in Python function.
54
- id = Column(String(255), primary_key=True, default=FidesBase.generate_uuid)
55
-
56
- # Foreign key relationships
57
- manual_task_id = Column(
58
- String, ForeignKey("manual_task.id", ondelete="CASCADE"), nullable=False
59
- )
60
- parent_id = Column(
61
- String,
62
- ForeignKey("manual_task_conditional_dependency.id", ondelete="CASCADE"),
63
- nullable=True,
64
- )
65
-
66
- # Condition metadata
67
- condition_type = Column(
68
- EnumColumn(ManualTaskConditionalDependencyType), nullable=False
69
- ) # leaf or group
70
- field_address = Column(String, nullable=True) # For leaf conditions
71
- operator = Column(String, nullable=True) # For leaf conditions
72
- value = Column(JSONB, nullable=True) # For leaf conditions
73
- logical_operator = Column(String, nullable=True) # 'and' or 'or' for groups
74
-
75
- # Ordering
76
- sort_order = Column(Integer, nullable=False, default=0)
77
-
78
- __table_args__ = (
79
- Index("ix_manual_task_conditional_dependency_manual_task_id", "manual_task_id"),
80
- Index("ix_manual_task_conditional_dependency_parent_id", "parent_id"),
81
- Index("ix_manual_task_conditional_dependency_condition_type", "condition_type"),
82
- Index("ix_manual_task_conditional_dependency_sort_order", "sort_order"),
83
- )
84
-
85
- # Relationships
86
- task = relationship("ManualTask", back_populates="conditional_dependencies")
87
- parent = relationship(
88
- "ManualTaskConditionalDependency",
89
- remote_side=[id],
90
- back_populates="children",
91
- foreign_keys=[parent_id],
92
- )
93
- children = relationship(
94
- "ManualTaskConditionalDependency",
95
- back_populates="parent",
96
- cascade="all, delete-orphan",
97
- foreign_keys=[parent_id],
98
- )
99
-
100
- def to_condition_leaf(self) -> ConditionLeaf:
101
- """Convert to ConditionLeaf if this is a leaf condition"""
102
- if self.condition_type != "leaf":
103
- raise ValueError("Cannot convert group condition to leaf")
104
-
105
- return ConditionLeaf(
106
- field_address=self.field_address, operator=self.operator, value=self.value
107
- )
108
-
109
- def to_condition_group(self) -> ConditionGroup:
110
- """Convert to ConditionGroup if this is a group condition"""
111
- if self.condition_type != "group":
112
- raise ValueError("Cannot convert leaf condition to group")
113
-
114
- # Recursively build children
115
- child_conditions = []
116
- children_list = [child for child in self.children] # type: ignore[attr-defined]
117
- for child in sorted(children_list, key=lambda x: x.sort_order):
118
- if child.condition_type == "leaf":
119
- child_conditions.append(child.to_condition_leaf())
120
- else:
121
- child_conditions.append(child.to_condition_group())
122
-
123
- return ConditionGroup(
124
- logical_operator=self.logical_operator, conditions=child_conditions
125
- )
126
-
127
- @classmethod
128
- def get_root_condition(
129
- cls, db: Session, manual_task_id: str
130
- ) -> Optional[Union[ConditionLeaf, ConditionGroup]]:
131
- """Get the root condition for a config"""
132
- root = (
133
- db.query(cls)
134
- .filter(cls.manual_task_id == manual_task_id, cls.parent_id.is_(None))
135
- .first()
136
- )
137
-
138
- if not root:
139
- return None
140
-
141
- if root.condition_type == "leaf":
142
- return root.to_condition_leaf()
143
-
144
- return root.to_condition_group()
@@ -1,72 +0,0 @@
1
- from __future__ import annotations
2
-
3
- from typing import TYPE_CHECKING, Any, Union
4
- from urllib.parse import unquote_to_bytes
5
-
6
- from sqlalchemy import Column, ForeignKey, String
7
- from sqlalchemy.ext.declarative import declared_attr
8
- from sqlalchemy.orm import Session, relationship
9
- from sqlalchemy_utils.types.encrypted.encrypted_type import (
10
- AesGcmEngine,
11
- StringEncryptedType,
12
- )
13
-
14
- from fides.api.db.base_class import Base, JSONTypeOverride
15
- from fides.api.util.custom_json_encoder import ENCODED_BYTES_PREFIX
16
- from fides.config import CONFIG
17
-
18
- if TYPE_CHECKING:
19
- from fides.api.models.privacy_request import PrivacyRequest
20
-
21
-
22
- class MaskingSecret(Base):
23
- """SQLAlchemy model for storing secret caching information"""
24
-
25
- @declared_attr
26
- def __tablename__(self) -> str:
27
- return "masking_secret"
28
-
29
- privacy_request_id = Column(
30
- String, ForeignKey("privacyrequest.id", ondelete="CASCADE"), nullable=False
31
- )
32
- secret = Column(
33
- StringEncryptedType(
34
- JSONTypeOverride,
35
- CONFIG.security.app_encryption_key,
36
- AesGcmEngine,
37
- "pkcs5",
38
- ),
39
- nullable=False,
40
- )
41
- masking_strategy = Column(String, nullable=False)
42
- secret_type = Column(String, nullable=False)
43
- privacy_request = relationship("PrivacyRequest", back_populates="masking_secrets")
44
-
45
- def set_secret(self, secret: Union[str, bytes]) -> None:
46
- """Set the secret value, handling both string and bytes types"""
47
- if isinstance(secret, str):
48
- self.secret = secret.encode("utf-8")
49
- elif isinstance(secret, bytes):
50
- self.secret = secret
51
- else:
52
- raise ValueError("Secret must be either string or bytes")
53
-
54
- def get_secret(self) -> Union[str, bytes]:
55
- """Retrieve the secret in its original type"""
56
- secret = self.secret
57
- if isinstance(secret, str) and secret.startswith(ENCODED_BYTES_PREFIX):
58
- return unquote_to_bytes(secret)[len(ENCODED_BYTES_PREFIX) :]
59
- return secret
60
-
61
- @classmethod
62
- def create(
63
- cls,
64
- db: Session,
65
- *,
66
- data: dict[str, Any],
67
- check_name: bool = True,
68
- ) -> "MaskingSecret":
69
- """
70
- Create a new masking secret. Handles both string and bytes secrets automatically, encrypting them for storage.
71
- """
72
- return super().create(db=db, data=data, check_name=check_name)
File without changes