ethyca-fides 2.69.3b2__py2.py3-none-any.whl → 2.70.0__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 (260) hide show
  1. {ethyca_fides-2.69.3b2.dist-info → ethyca_fides-2.70.0.dist-info}/METADATA +1 -1
  2. {ethyca_fides-2.69.3b2.dist-info → ethyca_fides-2.70.0.dist-info}/RECORD +223 -217
  3. fides/_version.py +3 -3
  4. fides/api/alembic/migrations/versions/4d8c0fcc5771_adding_default_system_groups.py +78 -0
  5. fides/api/api/v1/endpoints/privacy_request_endpoints.py +87 -23
  6. fides/api/schemas/privacy_center_config.py +29 -5
  7. fides/api/util/cache.py +1 -1
  8. fides/ui-build/static/admin/404.html +1 -1
  9. fides/ui-build/static/admin/_next/static/chunks/{155-b5e4370b158e5ee3.js → 155-88303b05c6e115a5.js} +1 -1
  10. fides/ui-build/static/admin/_next/static/chunks/1817-ee9e29a6b8c4af50.js +1 -0
  11. fides/ui-build/static/admin/_next/static/chunks/2121.1de2fa060eae34aa.js +1 -0
  12. fides/ui-build/static/admin/_next/static/chunks/3585-451504ea5ed7a1ea.js +1 -0
  13. fides/ui-build/static/admin/_next/static/chunks/3700-2a7094f112a1608a.js +1 -0
  14. fides/ui-build/static/admin/_next/static/chunks/3855-12ee1dfbbe47fd28.js +1 -0
  15. fides/ui-build/static/admin/_next/static/chunks/409-c1256ecda1b15db6.js +1 -0
  16. fides/ui-build/static/admin/_next/static/chunks/431-78bf05f35d7eec4f.js +1 -0
  17. fides/ui-build/static/admin/_next/static/chunks/4558-de5ced790b3380dc.js +1 -0
  18. fides/ui-build/static/admin/_next/static/chunks/4608-96f480766541124b.js +1 -0
  19. fides/ui-build/static/admin/_next/static/chunks/4718-6585c97c26647e65.js +1 -0
  20. fides/ui-build/static/admin/_next/static/chunks/502-a40d39e615f7b664.js +1 -0
  21. fides/ui-build/static/admin/_next/static/chunks/504-afd3588f1908ac33.js +1 -0
  22. fides/ui-build/static/admin/_next/static/chunks/5309-3b6cf0cc9d0c6a83.js +1 -0
  23. fides/ui-build/static/admin/_next/static/chunks/5574-b8c4cba5a6938c00.js +1 -0
  24. fides/ui-build/static/admin/_next/static/chunks/{5596-bb601cbf40e47a0f.js → 5596-29a7c8322530b7cf.js} +1 -1
  25. fides/ui-build/static/admin/_next/static/chunks/5698.2135391a128cc373.js +164 -0
  26. fides/ui-build/static/admin/_next/static/chunks/{6416-79eee298a5b3f80f.js → 6416-18d438ff85d807f8.js} +1 -1
  27. fides/ui-build/static/admin/_next/static/chunks/7045-f15044a4d4525946.js +1 -0
  28. fides/ui-build/static/admin/_next/static/chunks/7158-835ba42fd881d8dd.js +1 -0
  29. fides/ui-build/static/admin/_next/static/chunks/7202.3febe9e89640c712.js +1 -0
  30. fides/ui-build/static/admin/_next/static/chunks/7929-0fd0d4948bc8d70e.js +1 -0
  31. fides/ui-build/static/admin/_next/static/chunks/9046-2a332fe338535c84.js +1 -0
  32. fides/ui-build/static/admin/_next/static/chunks/9226-2f960b7ca530642a.js +1 -0
  33. fides/ui-build/static/admin/_next/static/chunks/{9676.9fd9552ef744c717.js → 9676.b86ecbcfe5afd25d.js} +1 -1
  34. fides/ui-build/static/admin/_next/static/chunks/{9951-c389c51ca6353035.js → 9951-651d521d9a02b6df.js} +1 -1
  35. fides/ui-build/static/admin/_next/static/chunks/pages/{_app-c780470042750062.js → _app-302177edeb0dc4f5.js} +63 -226
  36. fides/ui-build/static/admin/_next/static/chunks/pages/add-systems/{manual-fb9434d926ebf0b3.js → manual-939253f8daf349b2.js} +1 -1
  37. fides/ui-build/static/admin/_next/static/chunks/pages/add-systems-f90aa48500c1cbde.js +1 -0
  38. fides/ui-build/static/admin/_next/static/chunks/pages/consent/privacy-notices-59a8aff5935482ec.js +1 -0
  39. fides/ui-build/static/admin/_next/static/chunks/pages/consent/reporting-09be5455ba85db39.js +1 -0
  40. fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/projects/[projectUrn]/{[resourceUrn]-6a196c704f1c6dd7.js → [resourceUrn]-293c1f2d9aefb447.js} +1 -1
  41. fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/resources/{[resourceUrn]-9cee4e222ebb2b60.js → [resourceUrn]-18501152fa1e4f40.js} +1 -1
  42. fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/action-center/[monitorId]/{[systemId]-db7f1a269d3e7fc2.js → [systemId]-758d51b4d37dbd09.js} +1 -1
  43. fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/action-center/[monitorId]-0e4d9ff89c63793c.js +1 -0
  44. fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/activity-2635ef588bf06145.js +1 -0
  45. fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/detection/{[resourceUrn]-9ae81f5c245b8a01.js → [resourceUrn]-0497f3ffdb632516.js} +1 -1
  46. fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/{detection-6537c93c69b597c7.js → detection-a780390da99f3e43.js} +1 -1
  47. fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/discovery/{[resourceUrn]-5db26067d921a94a.js → [resourceUrn]-1901c26cdde820da.js} +1 -1
  48. fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/{discovery-9f6a62614d7eb113.js → discovery-0cea22af5929c81f.js} +1 -1
  49. fides/ui-build/static/admin/_next/static/chunks/pages/datamap-619f27c745188adb.js +1 -0
  50. fides/ui-build/static/admin/_next/static/chunks/pages/dataset/new-78e052c8f95110c4.js +1 -0
  51. fides/ui-build/static/admin/_next/static/chunks/pages/dataset-d6d7ee8bd8858a8a.js +1 -0
  52. fides/ui-build/static/admin/_next/static/chunks/pages/datastore-connection/{[id]-6bf117315d909ad1.js → [id]-cc149157d290a94d.js} +1 -1
  53. fides/ui-build/static/admin/_next/static/chunks/pages/datastore-connection/{new-1e2fa11f22dbc449.js → new-4c9fb068a5561658.js} +1 -1
  54. fides/ui-build/static/admin/_next/static/chunks/pages/integrations/[id]-8b13bb5f7bee61c6.js +1 -0
  55. fides/ui-build/static/admin/_next/static/chunks/pages/integrations-6f109ef64304ef59.js +1 -0
  56. fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/{[id]-670b05b03ba11e0a.js → [id]-8566e3b7b2a632fa.js} +1 -1
  57. fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/configure/storage-1b38b656807ed0cd.js +1 -0
  58. fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests-65f0d5672041a202.js +1 -0
  59. fides/ui-build/static/admin/_next/static/chunks/pages/reporting/datamap-5b423687e227ad4d.js +1 -0
  60. fides/ui-build/static/admin/_next/static/chunks/pages/settings/custom-fields-26ce8fc493993765.js +1 -0
  61. fides/ui-build/static/admin/_next/static/chunks/pages/settings/messaging-providers/{[key]-f8887b2b29aed1b9.js → [key]-b0d93bf478bf63ee.js} +1 -1
  62. fides/ui-build/static/admin/_next/static/chunks/pages/settings/messaging-providers/{new-5473558807e94462.js → new-084f9756b9987285.js} +1 -1
  63. fides/ui-build/static/admin/_next/static/chunks/pages/settings/messaging-providers-6c51ffd46bb598e7.js +1 -0
  64. fides/ui-build/static/admin/_next/static/chunks/pages/settings/privacy-requests-fbe7e8030d837aed.js +1 -0
  65. fides/ui-build/static/admin/_next/static/chunks/pages/systems/configure/[id]/{test-datasets-aa1ada4d4ac09759.js → test-datasets-a86bafe1b4e1205f.js} +1 -1
  66. fides/ui-build/static/admin/_next/static/chunks/pages/systems/configure/[id]-1895c6a13b543436.js +1 -0
  67. fides/ui-build/static/admin/_next/static/chunks/pages/systems-e99fbd1b2d1bfd12.js +1 -0
  68. fides/ui-build/static/admin/_next/static/chunks/pages/taxonomy-9ffcf98b8ad56bf7.js +1 -0
  69. fides/ui-build/static/admin/_next/static/chunks/webpack-2766492c5dbceb0a.js +1 -0
  70. fides/ui-build/static/admin/_next/static/v72X5v2wmNmYdDpd8p1YY/_buildManifest.js +1 -0
  71. fides/ui-build/static/admin/add-systems/manual.html +1 -1
  72. fides/ui-build/static/admin/add-systems/multiple.html +1 -1
  73. fides/ui-build/static/admin/add-systems.html +1 -1
  74. fides/ui-build/static/admin/consent/configure/add-vendors.html +1 -1
  75. fides/ui-build/static/admin/consent/configure.html +1 -1
  76. fides/ui-build/static/admin/consent/privacy-experience/[id].html +1 -1
  77. fides/ui-build/static/admin/consent/privacy-experience/new.html +1 -1
  78. fides/ui-build/static/admin/consent/privacy-experience.html +1 -1
  79. fides/ui-build/static/admin/consent/privacy-notices/[id].html +1 -1
  80. fides/ui-build/static/admin/consent/privacy-notices/new.html +1 -1
  81. fides/ui-build/static/admin/consent/privacy-notices.html +1 -1
  82. fides/ui-build/static/admin/consent/properties.html +1 -1
  83. fides/ui-build/static/admin/consent/reporting.html +1 -1
  84. fides/ui-build/static/admin/consent.html +1 -1
  85. fides/ui-build/static/admin/data-catalog/[systemId]/projects/[projectUrn]/[resourceUrn].html +1 -1
  86. fides/ui-build/static/admin/data-catalog/[systemId]/projects/[projectUrn].html +1 -1
  87. fides/ui-build/static/admin/data-catalog/[systemId]/projects.html +1 -1
  88. fides/ui-build/static/admin/data-catalog/[systemId]/resources/[resourceUrn].html +1 -1
  89. fides/ui-build/static/admin/data-catalog/[systemId]/resources.html +1 -1
  90. fides/ui-build/static/admin/data-catalog.html +1 -1
  91. fides/ui-build/static/admin/data-discovery/action-center/[monitorId]/[systemId].html +1 -1
  92. fides/ui-build/static/admin/data-discovery/action-center/[monitorId].html +1 -1
  93. fides/ui-build/static/admin/data-discovery/action-center.html +1 -1
  94. fides/ui-build/static/admin/data-discovery/activity.html +1 -1
  95. fides/ui-build/static/admin/data-discovery/detection/[resourceUrn].html +1 -1
  96. fides/ui-build/static/admin/data-discovery/detection.html +1 -1
  97. fides/ui-build/static/admin/data-discovery/discovery/[resourceUrn].html +1 -1
  98. fides/ui-build/static/admin/data-discovery/discovery.html +1 -1
  99. fides/ui-build/static/admin/datamap.html +1 -1
  100. fides/ui-build/static/admin/dataset/[datasetId]/[collectionName]/[...subfieldNames].html +1 -1
  101. fides/ui-build/static/admin/dataset/[datasetId]/[collectionName].html +1 -1
  102. fides/ui-build/static/admin/dataset/[datasetId].html +1 -1
  103. fides/ui-build/static/admin/dataset/new.html +1 -1
  104. fides/ui-build/static/admin/dataset.html +1 -1
  105. fides/ui-build/static/admin/datastore-connection/[id].html +1 -1
  106. fides/ui-build/static/admin/datastore-connection/new.html +1 -1
  107. fides/ui-build/static/admin/datastore-connection.html +1 -1
  108. fides/ui-build/static/admin/index.html +1 -1
  109. fides/ui-build/static/admin/integrations/[id].html +1 -1
  110. fides/ui-build/static/admin/integrations.html +1 -1
  111. fides/ui-build/static/admin/lib/fides-preview.js +1 -1
  112. fides/ui-build/static/admin/lib/fides-tcf.js +2 -2
  113. fides/ui-build/static/admin/login/[provider].html +1 -1
  114. fides/ui-build/static/admin/login.html +1 -1
  115. fides/ui-build/static/admin/messaging/[id].html +1 -1
  116. fides/ui-build/static/admin/messaging/add-template.html +1 -1
  117. fides/ui-build/static/admin/messaging.html +1 -1
  118. fides/ui-build/static/admin/poc/ant-components.html +1 -1
  119. fides/ui-build/static/admin/poc/form-experiments/AntForm.html +1 -1
  120. fides/ui-build/static/admin/poc/form-experiments/FormikAntFormItem.html +1 -1
  121. fides/ui-build/static/admin/poc/form-experiments/FormikControlled.html +1 -1
  122. fides/ui-build/static/admin/poc/form-experiments/FormikField.html +1 -1
  123. fides/ui-build/static/admin/poc/form-experiments/FormikSpreadField.html +1 -1
  124. fides/ui-build/static/admin/poc/forms.html +1 -1
  125. fides/ui-build/static/admin/poc/table-migration.html +1 -1
  126. fides/ui-build/static/admin/privacy-requests/[id].html +1 -1
  127. fides/ui-build/static/admin/privacy-requests/configure/storage.html +1 -1
  128. fides/ui-build/static/admin/privacy-requests/configure.html +1 -1
  129. fides/ui-build/static/admin/privacy-requests.html +1 -1
  130. fides/ui-build/static/admin/properties/[id].html +1 -1
  131. fides/ui-build/static/admin/properties/add-property.html +1 -1
  132. fides/ui-build/static/admin/properties.html +1 -1
  133. fides/ui-build/static/admin/reporting/datamap.html +1 -1
  134. fides/ui-build/static/admin/settings/about/alpha.html +1 -1
  135. fides/ui-build/static/admin/settings/about.html +1 -1
  136. fides/ui-build/static/admin/settings/consent/[configuration_id]/[purpose_id].html +1 -1
  137. fides/ui-build/static/admin/settings/consent.html +1 -1
  138. fides/ui-build/static/admin/settings/custom-fields.html +1 -1
  139. fides/ui-build/static/admin/settings/domain-records.html +1 -1
  140. fides/ui-build/static/admin/settings/domains.html +1 -1
  141. fides/ui-build/static/admin/settings/email-templates.html +1 -1
  142. fides/ui-build/static/admin/settings/locations.html +1 -1
  143. fides/ui-build/static/admin/settings/messaging-providers/[key].html +1 -1
  144. fides/ui-build/static/admin/settings/messaging-providers/new.html +1 -1
  145. fides/ui-build/static/admin/settings/messaging-providers.html +1 -1
  146. fides/ui-build/static/admin/settings/organization.html +1 -1
  147. fides/ui-build/static/admin/settings/privacy-requests.html +1 -1
  148. fides/ui-build/static/admin/settings/regulations.html +1 -1
  149. fides/ui-build/static/admin/systems/configure/[id]/test-datasets.html +1 -1
  150. fides/ui-build/static/admin/systems/configure/[id].html +1 -1
  151. fides/ui-build/static/admin/systems.html +1 -1
  152. fides/ui-build/static/admin/taxonomy.html +1 -1
  153. fides/ui-build/static/admin/user-management/new.html +1 -1
  154. fides/ui-build/static/admin/user-management/profile/[id].html +1 -1
  155. fides/ui-build/static/admin/user-management.html +1 -1
  156. fides/ui-build/static/admin/_next/static/86A8z6OnbTuDYww0DJkX0/_buildManifest.js +0 -1
  157. fides/ui-build/static/admin/_next/static/chunks/1817-dc2bba3ca736d39e.js +0 -1
  158. fides/ui-build/static/admin/_next/static/chunks/1841-2052c3239f2a0a1a.js +0 -1
  159. fides/ui-build/static/admin/_next/static/chunks/2751-58285ccf50a0ba4b.js +0 -1
  160. fides/ui-build/static/admin/_next/static/chunks/3377-c5e0cc3de1a5ffd1.js +0 -1
  161. fides/ui-build/static/admin/_next/static/chunks/3855-8377b3fcbb3d93b0.js +0 -1
  162. fides/ui-build/static/admin/_next/static/chunks/409-e1deab19fc7e6d99.js +0 -1
  163. fides/ui-build/static/admin/_next/static/chunks/4230-c55d5531697a715c.js +0 -1
  164. fides/ui-build/static/admin/_next/static/chunks/431-86ad2beeb93c95c9.js +0 -1
  165. fides/ui-build/static/admin/_next/static/chunks/4608-2fbc3389681f6924.js +0 -1
  166. fides/ui-build/static/admin/_next/static/chunks/4786-8d78ec773d171562.js +0 -1
  167. fides/ui-build/static/admin/_next/static/chunks/5309-e994c5195f99b1eb.js +0 -1
  168. fides/ui-build/static/admin/_next/static/chunks/6780-eeb7775eb21d7a12.js +0 -1
  169. fides/ui-build/static/admin/_next/static/chunks/7929-4314e317b1717257.js +0 -1
  170. fides/ui-build/static/admin/_next/static/chunks/8373-bd50fa53cbcab2aa.js +0 -1
  171. fides/ui-build/static/admin/_next/static/chunks/9046-0f92802b0e3382a9.js +0 -1
  172. fides/ui-build/static/admin/_next/static/chunks/9226-49dbcdb135bf9793.js +0 -1
  173. fides/ui-build/static/admin/_next/static/chunks/pages/add-systems-92034daafd2187a0.js +0 -1
  174. fides/ui-build/static/admin/_next/static/chunks/pages/consent/privacy-notices-d7d9ff9ed28fa790.js +0 -1
  175. fides/ui-build/static/admin/_next/static/chunks/pages/consent/reporting-ddf6ba92355f81de.js +0 -1
  176. fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/action-center/[monitorId]-de957913f9b47daa.js +0 -1
  177. fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/activity-715064e1c9788e1a.js +0 -1
  178. fides/ui-build/static/admin/_next/static/chunks/pages/datamap-aed0e6dafc143b97.js +0 -1
  179. fides/ui-build/static/admin/_next/static/chunks/pages/dataset/new-5bb96c8684a38bbf.js +0 -1
  180. fides/ui-build/static/admin/_next/static/chunks/pages/dataset-639046f6c76bc8bd.js +0 -1
  181. fides/ui-build/static/admin/_next/static/chunks/pages/integrations/[id]-0159fbb2e0440709.js +0 -1
  182. fides/ui-build/static/admin/_next/static/chunks/pages/integrations-267d2742fffaebe5.js +0 -1
  183. fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/configure/storage-482a7256925a6e06.js +0 -1
  184. fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests-28083bfb2dec7b9f.js +0 -1
  185. fides/ui-build/static/admin/_next/static/chunks/pages/reporting/datamap-aed018025b09c045.js +0 -1
  186. fides/ui-build/static/admin/_next/static/chunks/pages/settings/custom-fields-128f952a49a0e8dc.js +0 -1
  187. fides/ui-build/static/admin/_next/static/chunks/pages/settings/messaging-providers-1065fbefd449719c.js +0 -1
  188. fides/ui-build/static/admin/_next/static/chunks/pages/settings/privacy-requests-907bfbb71d84646f.js +0 -1
  189. fides/ui-build/static/admin/_next/static/chunks/pages/systems/configure/[id]-02b0dde03a1ad159.js +0 -1
  190. fides/ui-build/static/admin/_next/static/chunks/pages/systems-4a6ef2509e8cedfc.js +0 -1
  191. fides/ui-build/static/admin/_next/static/chunks/pages/taxonomy-16b122b83e57bb8c.js +0 -1
  192. fides/ui-build/static/admin/_next/static/chunks/webpack-55e1c55932df2413.js +0 -1
  193. {ethyca_fides-2.69.3b2.dist-info → ethyca_fides-2.70.0.dist-info}/WHEEL +0 -0
  194. {ethyca_fides-2.69.3b2.dist-info → ethyca_fides-2.70.0.dist-info}/entry_points.txt +0 -0
  195. {ethyca_fides-2.69.3b2.dist-info → ethyca_fides-2.70.0.dist-info}/licenses/LICENSE +0 -0
  196. {ethyca_fides-2.69.3b2.dist-info → ethyca_fides-2.70.0.dist-info}/top_level.txt +0 -0
  197. /fides/ui-build/static/admin/_next/static/chunks/{1115-d5a834cdaa717edc.js → 1115-7888473b3dc28cda.js} +0 -0
  198. /fides/ui-build/static/admin/_next/static/chunks/{2040-3f9c66c56a05b336.js → 2040-ab6212a3074f34f9.js} +0 -0
  199. /fides/ui-build/static/admin/_next/static/chunks/{2921-cdc7a13973f4a0ba.js → 2921-66f65496c3a09316.js} +0 -0
  200. /fides/ui-build/static/admin/_next/static/chunks/{3696-fff4f944d7d5ff20.js → 3696-c25dc8d1b0e1aee1.js} +0 -0
  201. /fides/ui-build/static/admin/_next/static/chunks/{3872-4786ccbe7c6f65b0.js → 3872-3514b712afd683c0.js} +0 -0
  202. /fides/ui-build/static/admin/_next/static/chunks/{3923-db57401384d1de8f.js → 3923-a551756b413367ea.js} +0 -0
  203. /fides/ui-build/static/admin/_next/static/chunks/{401-4e56e924f35317f2.js → 401-ffe4e8436e1eceb9.js} +0 -0
  204. /fides/ui-build/static/admin/_next/static/chunks/{5185-a219b390ef17ff4b.js → 5185-33f50cf9ae17b42e.js} +0 -0
  205. /fides/ui-build/static/admin/_next/static/chunks/{5783-c62c79e7be21be73.js → 5783-8de76df87af55e98.js} +0 -0
  206. /fides/ui-build/static/admin/_next/static/chunks/{6084-29cbe703bffdccfe.js → 6084-2cd165179c428a6f.js} +0 -0
  207. /fides/ui-build/static/admin/_next/static/chunks/{6853-91a8641cd2784b54.js → 6853-7004a8c420b1ca02.js} +0 -0
  208. /fides/ui-build/static/admin/_next/static/chunks/{6882-55dbb142f7c40f53.js → 6882-447f15e87b8c48a5.js} +0 -0
  209. /fides/ui-build/static/admin/_next/static/chunks/{6954-6dfafd38b02d5852.js → 6954-599f2de2c902e9b2.js} +0 -0
  210. /fides/ui-build/static/admin/_next/static/chunks/{7476-3da7a490debad8e2.js → 7476-0b6e114658b15eaa.js} +0 -0
  211. /fides/ui-build/static/admin/_next/static/chunks/{7630-22f9c4b25d6aed29.js → 7630-e7ea13be69c118a1.js} +0 -0
  212. /fides/ui-build/static/admin/_next/static/chunks/{7725-b2fa93d747d3d85d.js → 7725-dd6736855807936a.js} +0 -0
  213. /fides/ui-build/static/admin/_next/static/chunks/{796-8e4da90ae82dfebb.js → 796-e07ac2c543f569e3.js} +0 -0
  214. /fides/ui-build/static/admin/_next/static/chunks/{8002-78d78545309b2c1c.js → 8002-25fd174aec9b077b.js} +0 -0
  215. /fides/ui-build/static/admin/_next/static/chunks/{9826-f316eb1d61cb90b6.js → 9826-c02be5882205bbbc.js} +0 -0
  216. /fides/ui-build/static/admin/_next/static/chunks/pages/{404-e4a1f93a7ce944f0.js → 404-2eb8aed4939f1142.js} +0 -0
  217. /fides/ui-build/static/admin/_next/static/chunks/pages/add-systems/{multiple-a4f821c4902f2df8.js → multiple-83ed7da0bb90b0a5.js} +0 -0
  218. /fides/ui-build/static/admin/_next/static/chunks/pages/consent/configure/{add-vendors-96245b63aafc5168.js → add-vendors-46b88bda3d7b15c5.js} +0 -0
  219. /fides/ui-build/static/admin/_next/static/chunks/pages/consent/{configure-87919c1192e68b1a.js → configure-c0db068d1863222f.js} +0 -0
  220. /fides/ui-build/static/admin/_next/static/chunks/pages/consent/privacy-experience/{[id]-4fea66e59bd59de8.js → [id]-fd41ffaff543e05a.js} +0 -0
  221. /fides/ui-build/static/admin/_next/static/chunks/pages/consent/{privacy-experience-ae8a64fffe3f8c66.js → privacy-experience-92a337ee96845af2.js} +0 -0
  222. /fides/ui-build/static/admin/_next/static/chunks/pages/consent/privacy-notices/{[id]-c8038e05f35da8d1.js → [id]-1fd2cda8707314f6.js} +0 -0
  223. /fides/ui-build/static/admin/_next/static/chunks/pages/consent/privacy-notices/{new-f3a40101a8f3fd00.js → new-2987e397445713c5.js} +0 -0
  224. /fides/ui-build/static/admin/_next/static/chunks/pages/consent/{properties-c985ea8c1a0e0550.js → properties-069f4e3ee96ebf77.js} +0 -0
  225. /fides/ui-build/static/admin/_next/static/chunks/pages/{consent-35c0ae9d5b5a940c.js → consent-e5a33654a2dfaf35.js} +0 -0
  226. /fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/projects/{[projectUrn]-965af6c1fd01334e.js → [projectUrn]-6a4b0d49dcbf17a8.js} +0 -0
  227. /fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/{projects-06ba907e7d91a724.js → projects-be7b385073f22414.js} +0 -0
  228. /fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/{resources-5afecf141308bfc5.js → resources-af80fdca3bbdc82f.js} +0 -0
  229. /fides/ui-build/static/admin/_next/static/chunks/pages/{data-catalog-f99af5669b9ab44c.js → data-catalog-351caadeef03876a.js} +0 -0
  230. /fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/{action-center-5868591ff1e5f881.js → action-center-1554afcb8b9da2ab.js} +0 -0
  231. /fides/ui-build/static/admin/_next/static/chunks/pages/dataset/[datasetId]/[collectionName]/{[...subfieldNames]-72b9878ea9b91529.js → [...subfieldNames]-ef71f387fbbab425.js} +0 -0
  232. /fides/ui-build/static/admin/_next/static/chunks/pages/dataset/[datasetId]/{[collectionName]-f36a46381a6c25d4.js → [collectionName]-d790553662caf5c3.js} +0 -0
  233. /fides/ui-build/static/admin/_next/static/chunks/pages/dataset/{[datasetId]-b653fd60e7db989b.js → [datasetId]-cb63db8594fe8dc1.js} +0 -0
  234. /fides/ui-build/static/admin/_next/static/chunks/pages/{datastore-connection-c55e3e0e19030f3f.js → datastore-connection-a832084ce294f8af.js} +0 -0
  235. /fides/ui-build/static/admin/_next/static/chunks/pages/{index-d66ea87b457af21e.js → index-269b8f81546dad66.js} +0 -0
  236. /fides/ui-build/static/admin/_next/static/chunks/pages/messaging/{[id]-4352e55f110556b4.js → [id]-d8c5c03fb2f31d65.js} +0 -0
  237. /fides/ui-build/static/admin/_next/static/chunks/pages/messaging/{add-template-c533120e94e049e3.js → add-template-0e0c06e3c8aabe02.js} +0 -0
  238. /fides/ui-build/static/admin/_next/static/chunks/pages/{messaging-b14f5f38b2d711a8.js → messaging-3f15804cf9625f01.js} +0 -0
  239. /fides/ui-build/static/admin/_next/static/chunks/pages/poc/{ant-components-31d51e3b9227c8d5.js → ant-components-248ad9f65a872442.js} +0 -0
  240. /fides/ui-build/static/admin/_next/static/chunks/pages/poc/form-experiments/{AntForm-8794a0d2e7554a05.js → AntForm-aedb66a62042b10a.js} +0 -0
  241. /fides/ui-build/static/admin/_next/static/chunks/pages/poc/form-experiments/{FormikAntFormItem-90b31073e478c99c.js → FormikAntFormItem-018df38b7cd77fdb.js} +0 -0
  242. /fides/ui-build/static/admin/_next/static/chunks/pages/poc/form-experiments/{FormikControlled-0a6859a0225b7e00.js → FormikControlled-6ca9099d03aab817.js} +0 -0
  243. /fides/ui-build/static/admin/_next/static/chunks/pages/poc/form-experiments/{FormikField-eb0552917907fe21.js → FormikField-0f2c90786ea005a4.js} +0 -0
  244. /fides/ui-build/static/admin/_next/static/chunks/pages/poc/{forms-b2a2a084d8cfe22d.js → forms-200b51a725f8b2d1.js} +0 -0
  245. /fides/ui-build/static/admin/_next/static/chunks/pages/poc/{table-migration-0c944cfa9c6acbff.js → table-migration-e551fccfcaae76e7.js} +0 -0
  246. /fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/{configure-331147598052f25c.js → configure-b00532a0ad4f6927.js} +0 -0
  247. /fides/ui-build/static/admin/_next/static/chunks/pages/properties/{[id]-e02dc4b4b385c86f.js → [id]-322a01e2bceab3fb.js} +0 -0
  248. /fides/ui-build/static/admin/_next/static/chunks/pages/properties/{add-property-74c2a0ff4c992633.js → add-property-777ed2d73812043d.js} +0 -0
  249. /fides/ui-build/static/admin/_next/static/chunks/pages/{properties-7459d56e548925b2.js → properties-08472b2a6bf1d392.js} +0 -0
  250. /fides/ui-build/static/admin/_next/static/chunks/pages/settings/consent/[configuration_id]/{[purpose_id]-7f2c50044806c094.js → [purpose_id]-f3e6e74e0efb005c.js} +0 -0
  251. /fides/ui-build/static/admin/_next/static/chunks/pages/settings/{consent-e8cab942d09aa358.js → consent-55e36839d219a503.js} +0 -0
  252. /fides/ui-build/static/admin/_next/static/chunks/pages/settings/{domain-records-cca3d1a26e1269bb.js → domain-records-7ddf9d992fe714a6.js} +0 -0
  253. /fides/ui-build/static/admin/_next/static/chunks/pages/settings/{domains-07e1b9937a169e32.js → domains-7c78ae51f0dd7102.js} +0 -0
  254. /fides/ui-build/static/admin/_next/static/chunks/pages/settings/{email-templates-3bc799dac8423f50.js → email-templates-05ffbda19ab894b9.js} +0 -0
  255. /fides/ui-build/static/admin/_next/static/chunks/pages/settings/{locations-9f36b6c213ae524c.js → locations-77fb85bdd0be42b5.js} +0 -0
  256. /fides/ui-build/static/admin/_next/static/chunks/pages/settings/{organization-3e23d92d789fff99.js → organization-44456bfe54ac4ad5.js} +0 -0
  257. /fides/ui-build/static/admin/_next/static/chunks/pages/settings/{regulations-f0f0ea35d0185ae3.js → regulations-2866ac99faa5a542.js} +0 -0
  258. /fides/ui-build/static/admin/_next/static/chunks/pages/user-management/profile/{[id]-0a8ec3aa2ed59a33.js → [id]-ff4711db191099cd.js} +0 -0
  259. /fides/ui-build/static/admin/_next/static/chunks/pages/{user-management-4036b023366b7eec.js → user-management-82fcf1151e2fe2ba.js} +0 -0
  260. /fides/ui-build/static/admin/_next/static/{86A8z6OnbTuDYww0DJkX0 → v72X5v2wmNmYdDpd8p1YY}/_ssgManifest.js +0 -0
fides/_version.py CHANGED
@@ -8,11 +8,11 @@ import json
8
8
 
9
9
  version_json = '''
10
10
  {
11
- "date": "2025-09-10T00:45:33-0300",
11
+ "date": "2025-09-15T16:34:19-0400",
12
12
  "dirty": false,
13
13
  "error": null,
14
- "full-revisionid": "ccf1fe94f6dce2367b4d70f4aa14f0d0f4fa7812",
15
- "version": "2.69.3b2"
14
+ "full-revisionid": "58ac65560c00900b5cf88212c1f690d49885d184",
15
+ "version": "2.70.0"
16
16
  }
17
17
  ''' # END VERSION_JSON
18
18
 
@@ -0,0 +1,78 @@
1
+ """adding default system groups
2
+
3
+ Revision ID: 4d8c0fcc5771
4
+ Revises: 5fa78b1f324d
5
+ Create Date: 2025-09-10 05:40:19.064377
6
+
7
+ """
8
+
9
+ from alembic import op
10
+
11
+ # revision identifiers, used by Alembic.
12
+ revision = "4d8c0fcc5771"
13
+ down_revision = "5fa78b1f324d"
14
+ branch_labels = None
15
+ depends_on = None
16
+
17
+
18
+ def upgrade():
19
+ # Insert default system groups into taxonomy_element table
20
+ op.execute(
21
+ """
22
+ INSERT INTO taxonomy_element (id, created_at, updated_at, taxonomy_type, fides_key, name, description, parent_key, active, tags, organization_fides_key)
23
+ VALUES
24
+ ('tax_' || gen_random_uuid(), now(), now(), 'system_group', 'analytics_business_intelligence', 'Analytics & Business intelligence', 'System group for analytics and business intelligence systems', NULL, true, NULL, 'default_organization'),
25
+ ('tax_' || gen_random_uuid(), now(), now(), 'system_group', 'customer_management', 'Customer management', 'System group for customer management systems', NULL, true, NULL, 'default_organization'),
26
+ ('tax_' || gen_random_uuid(), now(), now(), 'system_group', 'internal_operations', 'Internal operations', 'System group for internal operations systems', NULL, true, NULL, 'default_organization'),
27
+ ('tax_' || gen_random_uuid(), now(), now(), 'system_group', 'legal_compliance', 'Legal & Compliance', 'System group for legal and compliance systems', NULL, true, NULL, 'default_organization'),
28
+ ('tax_' || gen_random_uuid(), now(), now(), 'system_group', 'marketing', 'Marketing', 'System group for marketing systems', NULL, true, NULL, 'default_organization'),
29
+ ('tax_' || gen_random_uuid(), now(), now(), 'system_group', 'payments_billing', 'Payments & Billing', 'System group for payments and billing systems', NULL, true, NULL, 'default_organization'),
30
+ ('tax_' || gen_random_uuid(), now(), now(), 'system_group', 'product_service_delivery', 'Product & Service delivery', 'System group for product and service delivery systems', NULL, true, NULL, 'default_organization'),
31
+ ('tax_' || gen_random_uuid(), now(), now(), 'system_group', 'research_development', 'Research & Development', 'System group for research and development systems', NULL, true, NULL, 'default_organization'),
32
+ ('tax_' || gen_random_uuid(), now(), now(), 'system_group', 'sales_revenue_operations', 'Sales & Revenue operations', 'System group for sales and revenue operations systems', NULL, true, NULL, 'default_organization'),
33
+ ('tax_' || gen_random_uuid(), now(), now(), 'system_group', 'security_fraud', 'Security & Fraud', 'System group for security and fraud systems', NULL, true, NULL, 'default_organization')
34
+ """
35
+ )
36
+
37
+ # Insert default system groups into system_group table with white labels
38
+ op.execute(
39
+ """
40
+ INSERT INTO system_group (id, created_at, updated_at, fides_key, label_color, data_steward_username, data_uses)
41
+ VALUES
42
+ ('sys_' || gen_random_uuid(), now(), now(), 'analytics_business_intelligence', 'taxonomy_white', NULL, '{}'),
43
+ ('sys_' || gen_random_uuid(), now(), now(), 'customer_management', 'taxonomy_white', NULL, '{}'),
44
+ ('sys_' || gen_random_uuid(), now(), now(), 'internal_operations', 'taxonomy_white', NULL, '{}'),
45
+ ('sys_' || gen_random_uuid(), now(), now(), 'legal_compliance', 'taxonomy_white', NULL, '{}'),
46
+ ('sys_' || gen_random_uuid(), now(), now(), 'marketing', 'taxonomy_white', NULL, '{}'),
47
+ ('sys_' || gen_random_uuid(), now(), now(), 'payments_billing', 'taxonomy_white', NULL, '{}'),
48
+ ('sys_' || gen_random_uuid(), now(), now(), 'product_service_delivery', 'taxonomy_white', NULL, '{}'),
49
+ ('sys_' || gen_random_uuid(), now(), now(), 'research_development', 'taxonomy_white', NULL, '{}'),
50
+ ('sys_' || gen_random_uuid(), now(), now(), 'sales_revenue_operations', 'taxonomy_white', NULL, '{}'),
51
+ ('sys_' || gen_random_uuid(), now(), now(), 'security_fraud', 'taxonomy_white', NULL, '{}')
52
+ """
53
+ )
54
+
55
+
56
+ def downgrade():
57
+ # Remove default system groups from both tables
58
+ op.execute(
59
+ """
60
+ DELETE FROM system_group
61
+ WHERE fides_key IN (
62
+ 'analytics_business_intelligence', 'customer_management', 'internal_operations',
63
+ 'legal_compliance', 'marketing', 'payments_billing', 'product_service_delivery',
64
+ 'research_development', 'sales_revenue_operations', 'security_fraud'
65
+ )
66
+ """
67
+ )
68
+
69
+ op.execute(
70
+ """
71
+ DELETE FROM taxonomy_element
72
+ WHERE fides_key IN (
73
+ 'analytics_business_intelligence', 'customer_management', 'internal_operations',
74
+ 'legal_compliance', 'marketing', 'payments_billing', 'product_service_delivery',
75
+ 'research_development', 'sales_revenue_operations', 'security_fraud'
76
+ ) AND taxonomy_type = 'system_group'
77
+ """
78
+ )
@@ -269,27 +269,30 @@ def privacy_request_csv_download(
269
269
  f = io.StringIO()
270
270
  csv_file = csv.writer(f)
271
271
 
272
+ privacy_request_ids: List[str] = [r.id for r in privacy_request_query]
273
+ denial_audit_log_query: Query = db.query(AuditLog).filter(
274
+ AuditLog.action == AuditLogAction.denied,
275
+ AuditLog.privacy_request_id.in_(privacy_request_ids),
276
+ )
277
+ denial_audit_logs: Dict[str, str] = {
278
+ r.privacy_request_id: r.message for r in denial_audit_log_query
279
+ }
280
+
281
+ identity_columns, custom_field_columns = get_variable_columns(privacy_request_query)
282
+
272
283
  csv_file.writerow(
273
284
  [
274
285
  "Status",
275
286
  "Request Type",
276
- "Subject Identity",
277
- "Custom Privacy Request Fields",
278
287
  "Time Received",
279
288
  "Reviewed By",
280
289
  "Request ID",
281
290
  "Time Approved/Denied",
282
291
  "Denial Reason",
283
292
  ]
293
+ + identity_columns
294
+ + with_prefix("Custom Field", list(custom_field_columns.values()))
284
295
  )
285
- privacy_request_ids: List[str] = [r.id for r in privacy_request_query]
286
- denial_audit_log_query: Query = db.query(AuditLog).filter(
287
- AuditLog.action == AuditLogAction.denied,
288
- AuditLog.privacy_request_id.in_(privacy_request_ids),
289
- )
290
- denial_audit_logs: Dict[str, str] = {
291
- r.privacy_request_id: r.message for r in denial_audit_log_query
292
- }
293
296
 
294
297
  for pr in privacy_request_query:
295
298
  denial_reason = (
@@ -298,19 +301,22 @@ def privacy_request_csv_download(
298
301
  else None
299
302
  )
300
303
 
301
- csv_file.writerow(
302
- [
303
- pr.status.value if pr.status else None,
304
- pr.policy.rules[0].action_type if len(pr.policy.rules) > 0 else None,
305
- pr.get_persisted_identity().model_dump(mode="json"),
306
- pr.get_persisted_custom_privacy_request_fields(),
307
- pr.created_at,
308
- pr.reviewed_by,
309
- pr.id,
310
- pr.reviewed_at,
311
- denial_reason,
312
- ]
313
- )
304
+ static_cells = [
305
+ pr.status.value if pr.status else None,
306
+ pr.policy.rules[0].action_type if len(pr.policy.rules) > 0 else None,
307
+ pr.created_at,
308
+ pr.reviewed_by,
309
+ pr.id,
310
+ pr.reviewed_at,
311
+ denial_reason,
312
+ ]
313
+
314
+ identity_cells = extract_identity_cells(identity_columns, pr)
315
+ custom_field_cells = extract_custom_field_cells(custom_field_columns, pr)
316
+
317
+ row = static_cells + identity_cells + custom_field_cells
318
+
319
+ csv_file.writerow(row)
314
320
 
315
321
  f.seek(0)
316
322
  response = StreamingResponse(f, media_type="text/csv")
@@ -320,6 +326,64 @@ def privacy_request_csv_download(
320
326
  return response
321
327
 
322
328
 
329
+ def get_variable_columns(
330
+ privacy_request_query: Query,
331
+ ) -> tuple[List[str], Dict[str, str]]:
332
+ identity_columns: Set[str] = set()
333
+ custom_field_columns: Dict[str, str] = {}
334
+
335
+ for pr in privacy_request_query:
336
+ identity_columns.update(
337
+ extract_identity_column_names(pr.get_persisted_identity().model_dump())
338
+ )
339
+ custom_field_columns.update(
340
+ extract_custom_field_column_names(
341
+ pr.get_persisted_custom_privacy_request_fields()
342
+ )
343
+ )
344
+
345
+ return list(identity_columns), custom_field_columns
346
+
347
+
348
+ def extract_identity_column_names(identities: dict[str, Any]) -> Set[str]:
349
+ """Extract column names from identity data that have non-empty values."""
350
+ return {key for key, value in identities.items() if value}
351
+
352
+
353
+ def extract_custom_field_column_names(custom_fields: dict[str, Any]) -> Dict[str, str]:
354
+ """Extract column names and labels from custom field data that have non-empty values."""
355
+ return {
356
+ key: value["label"]
357
+ for key, value in custom_fields.items()
358
+ if value.get("value")
359
+ }
360
+
361
+
362
+ def with_prefix(prefix: str, items: List[str]) -> List[str]:
363
+ return [f"{prefix} {item}" for item in items]
364
+
365
+
366
+ def extract_custom_field_cells(
367
+ custom_field_columns: Dict[str, str], pr: PrivacyRequest
368
+ ) -> List[str]:
369
+ custom_fields = pr.get_persisted_custom_privacy_request_fields()
370
+ return [
371
+ custom_fields.get(custom_field_column, {}).get("value")
372
+ for custom_field_column in custom_field_columns
373
+ ]
374
+
375
+
376
+ def extract_identity_cells(
377
+ identity_columns: List[str], pr: PrivacyRequest
378
+ ) -> List[str]:
379
+ identity = pr.get_persisted_identity()
380
+ identity_dict = identity.model_dump()
381
+ return [
382
+ identity_dict.get(identity_column) # type: ignore
383
+ for identity_column in identity_columns
384
+ ]
385
+
386
+
323
387
  def execution_and_audit_logs_by_dataset_name(
324
388
  self: PrivacyRequest,
325
389
  ) -> DefaultDict[str, List[Union["AuditLog", "ExecutionLog"]]]:
@@ -1,7 +1,14 @@
1
1
  from abc import ABC
2
- from typing import Any, Dict, List, Literal, Optional, Union
2
+ from typing import Annotated, Any, Dict, List, Literal, Optional, Union
3
3
 
4
- from pydantic import ConfigDict, Field, field_validator, model_validator
4
+ from pydantic import (
5
+ ConfigDict,
6
+ Discriminator,
7
+ Field,
8
+ Tag,
9
+ field_validator,
10
+ model_validator,
11
+ )
5
12
 
6
13
  from fides.api.models.location_regulation_selections import PrivacyNoticeRegion
7
14
  from fides.api.schemas.base_class import FidesSchema
@@ -86,9 +93,26 @@ class LocationCustomPrivacyRequestField(BaseCustomPrivacyRequestField):
86
93
  return values
87
94
 
88
95
 
89
- # Create a simple union type - Pydantic will use the field_type to determine which model to use
90
- CustomPrivacyRequestFieldUnion = Union[
91
- LocationCustomPrivacyRequestField, CustomPrivacyRequestField
96
+ # Create a discriminated union type using the field_type to properly distinguish between types
97
+ def get_field_type_discriminator(v: Any) -> str:
98
+ """Discriminator function for CustomPrivacyRequestFieldUnion"""
99
+ if isinstance(v, dict):
100
+ field_type = v.get("field_type")
101
+ else:
102
+ # For model instances, get field_type attribute
103
+ field_type = getattr(v, "field_type", None)
104
+
105
+ if field_type == "location":
106
+ return "location"
107
+ return "custom"
108
+
109
+
110
+ CustomPrivacyRequestFieldUnion = Annotated[
111
+ Union[
112
+ Annotated[LocationCustomPrivacyRequestField, Tag("location")],
113
+ Annotated[CustomPrivacyRequestField, Tag("custom")],
114
+ ],
115
+ Discriminator(get_field_type_discriminator),
92
116
  ]
93
117
 
94
118
 
fides/api/util/cache.py CHANGED
@@ -220,7 +220,7 @@ def get_cache() -> FidesopsRedis:
220
220
 
221
221
  if not connected:
222
222
  raise common_exceptions.RedisConnectionError(
223
- "Unable to establish Redis connection. Fidesops is unable to accept PrivacyRequsts."
223
+ "Unable to establish Redis connection. Fides is unable to accept PrivacyRequests."
224
224
  )
225
225
 
226
226
  return _connection
@@ -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/018c12b58ee7f861.css" as="style"/><link rel="stylesheet" href="/_next/static/css/018c12b58ee7f861.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-55e1c55932df2413.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-c780470042750062.js" defer=""></script><script src="/_next/static/chunks/pages/404-e4a1f93a7ce944f0.js" defer=""></script><script src="/_next/static/86A8z6OnbTuDYww0DJkX0/_buildManifest.js" defer=""></script><script src="/_next/static/86A8z6OnbTuDYww0DJkX0/_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":"/404","query":{},"buildId":"86A8z6OnbTuDYww0DJkX0","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/018c12b58ee7f861.css" as="style"/><link rel="stylesheet" href="/_next/static/css/018c12b58ee7f861.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-2766492c5dbceb0a.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-302177edeb0dc4f5.js" defer=""></script><script src="/_next/static/chunks/pages/404-2eb8aed4939f1142.js" defer=""></script><script src="/_next/static/v72X5v2wmNmYdDpd8p1YY/_buildManifest.js" defer=""></script><script src="/_next/static/v72X5v2wmNmYdDpd8p1YY/_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":"/404","query":{},"buildId":"v72X5v2wmNmYdDpd8p1YY","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>