ethyca-fides 2.68.1b1__py2.py3-none-any.whl → 2.68.1b3__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 (309) hide show
  1. {ethyca_fides-2.68.1b1.dist-info → ethyca_fides-2.68.1b3.dist-info}/METADATA +3 -1
  2. {ethyca_fides-2.68.1b1.dist-info → ethyca_fides-2.68.1b3.dist-info}/RECORD +247 -224
  3. fides/_version.py +3 -3
  4. fides/api/alembic/migrations/versions/3baf42d251a6_add_generic_taxonomy_models.py +239 -0
  5. fides/api/alembic/migrations/versions/90502bcda282_update_request_tasks_add_polling_async.py +35 -0
  6. fides/api/api/v1/endpoints/generic_overrides.py +64 -167
  7. fides/api/api/v1/endpoints/privacy_request_endpoints.py +1 -1
  8. fides/api/common_exceptions.py +12 -3
  9. fides/api/db/base.py +6 -0
  10. fides/api/models/detection_discovery/core.py +6 -0
  11. fides/api/models/privacy_request/request_task.py +25 -0
  12. fides/api/models/taxonomy.py +275 -0
  13. fides/api/schemas/privacy_center_config.py +48 -19
  14. fides/api/schemas/storage/storage.py +2 -0
  15. fides/api/service/async_dsr/__init__.py +0 -0
  16. fides/api/service/async_dsr/async_dsr_service.py +75 -0
  17. fides/api/service/connectors/saas_connector.py +5 -6
  18. fides/api/service/deps.py +5 -0
  19. fides/api/service/privacy_request/dsr_package/dsr_report_builder.py +6 -4
  20. fides/api/service/privacy_request/request_service.py +56 -3
  21. fides/api/service/storage/storage_uploader_service.py +80 -5
  22. fides/api/service/storage/streaming/__init__.py +42 -0
  23. fides/api/service/storage/streaming/base_storage_client.py +61 -0
  24. fides/api/service/storage/streaming/dsr_storage.py +98 -0
  25. fides/api/service/storage/streaming/retry.py +282 -0
  26. fides/api/service/storage/streaming/s3/__init__.py +5 -0
  27. fides/api/service/storage/streaming/s3/s3_storage_client.py +113 -0
  28. fides/api/service/storage/streaming/s3/streaming_s3.py +196 -0
  29. fides/api/service/storage/streaming/schemas.py +173 -0
  30. fides/api/service/storage/streaming/smart_open_client.py +265 -0
  31. fides/api/service/storage/streaming/smart_open_streaming_storage.py +998 -0
  32. fides/api/service/storage/streaming/storage_client_factory.py +60 -0
  33. fides/api/task/graph_task.py +4 -4
  34. fides/api/task/manual/manual_task_graph_task.py +14 -4
  35. fides/api/util/connection_type.py +68 -33
  36. fides/config/execution_settings.py +4 -0
  37. fides/data/sample_project/docker-compose.yml +3 -3
  38. fides/service/privacy_request/privacy_request_service.py +1 -9
  39. fides/service/taxonomy/__init__.py +0 -0
  40. fides/service/taxonomy/handlers/__init__.py +11 -0
  41. fides/service/taxonomy/handlers/base.py +42 -0
  42. fides/service/taxonomy/handlers/legacy_handler.py +95 -0
  43. fides/service/taxonomy/taxonomy_service.py +261 -0
  44. fides/service/taxonomy/utils.py +160 -0
  45. fides/ui-build/static/admin/404.html +1 -1
  46. fides/ui-build/static/admin/_next/static/_BLI2ArqQzY5XnXbrcxa2/_buildManifest.js +1 -0
  47. fides/ui-build/static/admin/_next/static/chunks/1099-7b2085a3931da9e4.js +1 -0
  48. fides/ui-build/static/admin/_next/static/chunks/1138-0d846ffef62c580f.js +1 -0
  49. fides/ui-build/static/admin/_next/static/chunks/1345-ab756811e19ff4fc.js +1 -0
  50. fides/ui-build/static/admin/_next/static/chunks/{1817-c90365325f8a3d75.js → 1817-fd21f1f5ef0faffa.js} +1 -1
  51. fides/ui-build/static/admin/_next/static/chunks/{1975.e5cc7a1ccd477671.js → 1975.16126463309143e3.js} +1 -1
  52. fides/ui-build/static/admin/_next/static/chunks/{2921-46f9465c2852a46b.js → 2921-0e5cc63a82e31830.js} +1 -1
  53. fides/ui-build/static/admin/_next/static/chunks/3620-6cceae71bae5b531.js +1 -0
  54. fides/ui-build/static/admin/_next/static/chunks/3729-7d2d52400f1f7413.js +1 -0
  55. fides/ui-build/static/admin/_next/static/chunks/3855-64541570e2f838fb.js +1 -0
  56. fides/ui-build/static/admin/_next/static/chunks/3872-7a18d18a5e287e4e.js +1 -0
  57. fides/ui-build/static/admin/_next/static/chunks/{3923-a33633feba5e655e.js → 3923-5c87b3d7f1626678.js} +1 -1
  58. fides/ui-build/static/admin/_next/static/chunks/{401-741bb31b586b7c96.js → 401-3902e3e98790d401.js} +1 -1
  59. fides/ui-build/static/admin/_next/static/chunks/{4121-94354b50a41f8497.js → 4121-64ef70ef906bbdd0.js} +1 -1
  60. fides/ui-build/static/admin/_next/static/chunks/431-86ad2beeb93c95c9.js +1 -0
  61. fides/ui-build/static/admin/_next/static/chunks/4608-70521532195124de.js +1 -0
  62. fides/ui-build/static/admin/_next/static/chunks/4786-53ef1662f2d0d98c.js +1 -0
  63. fides/ui-build/static/admin/_next/static/chunks/4808-8713433c84a62efe.js +1 -0
  64. fides/ui-build/static/admin/_next/static/chunks/4844-351f99b6644b654e.js +1 -0
  65. fides/ui-build/static/admin/_next/static/chunks/5258-c6f96dc740eb5fb1.js +1 -0
  66. fides/ui-build/static/admin/_next/static/chunks/5487-338800277d36b8d7.js +1 -0
  67. fides/ui-build/static/admin/_next/static/chunks/549-e6453a3526023e85.js +1 -0
  68. fides/ui-build/static/admin/_next/static/chunks/602-80d113e801d7407d.js +1 -0
  69. fides/ui-build/static/admin/_next/static/chunks/{6084-02abe12327fc3dbc.js → 6084-da63f20d9416a982.js} +1 -1
  70. fides/ui-build/static/admin/_next/static/chunks/{6853-270261ef5537a106.js → 6853-1d947b75eb07188c.js} +1 -1
  71. fides/ui-build/static/admin/_next/static/chunks/6954-24f9a4f27d67b732.js +1 -0
  72. fides/ui-build/static/admin/_next/static/chunks/7476-a0dd03bfccf60d0c.js +1 -0
  73. fides/ui-build/static/admin/_next/static/chunks/7630-9fbe06cfb98266fe.js +1 -0
  74. fides/ui-build/static/admin/_next/static/chunks/{787-5ba991cad1f7664a.js → 787-3dd31844cf7fec55.js} +1 -1
  75. fides/ui-build/static/admin/_next/static/chunks/79-dcd20e8b09501c17.js +1 -0
  76. fides/ui-build/static/admin/_next/static/chunks/796-8773e04b64ce2260.js +1 -0
  77. fides/ui-build/static/admin/_next/static/chunks/8002-dcd02da6e5649a1c.js +1 -0
  78. fides/ui-build/static/admin/_next/static/chunks/9046-57eab238570b8bf4.js +1 -0
  79. fides/ui-build/static/admin/_next/static/chunks/9676.bf0a8a6ff6dfd2af.js +1 -0
  80. fides/ui-build/static/admin/_next/static/chunks/{9826-8c81c97a72510fcf.js → 9826-756c958aecab59a2.js} +1 -1
  81. fides/ui-build/static/admin/_next/static/chunks/9951-cdf73904a3adb27b.js +1 -0
  82. fides/ui-build/static/admin/_next/static/chunks/pages/{404-9174cdb70126c2c5.js → 404-dd625a559ada46ca.js} +1 -1
  83. fides/ui-build/static/admin/_next/static/chunks/pages/{_app-65723cd4b8fc36ac.js → _app-b6b09b2878b77b21.js} +136 -135
  84. fides/ui-build/static/admin/_next/static/chunks/pages/add-systems/{manual-621416493c89ef01.js → manual-92cf5e313be1f9e2.js} +1 -1
  85. fides/ui-build/static/admin/_next/static/chunks/pages/add-systems/{multiple-0b9908c3e1dfe49e.js → multiple-d6c525ee731a2993.js} +1 -1
  86. fides/ui-build/static/admin/_next/static/chunks/pages/add-systems-5664a3ea796e5ffb.js +1 -0
  87. fides/ui-build/static/admin/_next/static/chunks/pages/consent/configure/{add-vendors-5bb1b31ae8752250.js → add-vendors-78f13de90111fd80.js} +1 -1
  88. fides/ui-build/static/admin/_next/static/chunks/pages/consent/configure-0fc678f3d6d2fcec.js +1 -0
  89. fides/ui-build/static/admin/_next/static/chunks/pages/consent/privacy-experience/{[id]-4e4d9426743b5cb4.js → [id]-126db59dc25ca326.js} +1 -1
  90. fides/ui-build/static/admin/_next/static/chunks/pages/consent/{privacy-experience-d72460348fadcab8.js → privacy-experience-289605267d6cce7e.js} +1 -1
  91. fides/ui-build/static/admin/_next/static/chunks/pages/consent/privacy-notices/{[id]-3e7ddc252da00c98.js → [id]-e9fd9b28ac9705af.js} +1 -1
  92. fides/ui-build/static/admin/_next/static/chunks/pages/consent/privacy-notices/{new-35a7c305beee9428.js → new-28c003b6043bd16c.js} +1 -1
  93. fides/ui-build/static/admin/_next/static/chunks/pages/consent/privacy-notices-c643eff04525298e.js +1 -0
  94. fides/ui-build/static/admin/_next/static/chunks/pages/consent/{properties-ab96939421639153.js → properties-3ef5d01779a26455.js} +1 -1
  95. fides/ui-build/static/admin/_next/static/chunks/pages/consent/reporting-baa4a2f8f08ac224.js +1 -0
  96. fides/ui-build/static/admin/_next/static/chunks/pages/{consent-13240e3ca77acfeb.js → consent-8d4be9e7ec7d2a35.js} +1 -1
  97. fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/projects/[projectUrn]/{[resourceUrn]-aad6047a4604b945.js → [resourceUrn]-f27ec4578c674181.js} +1 -1
  98. fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/projects/{[projectUrn]-bd37b407c80c6986.js → [projectUrn]-27b6c255bd9e73b6.js} +1 -1
  99. fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/projects-0f66dac32040519c.js +1 -0
  100. fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/resources/{[resourceUrn]-b6b98cea25dd94fa.js → [resourceUrn]-3b938562df81c4b0.js} +1 -1
  101. fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog-ebf5e7fa4e2ffb49.js +1 -0
  102. fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/action-center/[monitorId]/[systemId]-b27c660039d951c9.js +1 -0
  103. fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/action-center/[monitorId]-8ce5d24af470888e.js +1 -0
  104. fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/action-center-8e35e33928abbcdc.js +1 -0
  105. fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/activity-21c141279e66237a.js +1 -0
  106. fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/detection/{[resourceUrn]-31e6c54794a9883e.js → [resourceUrn]-3bc6a207693fd175.js} +1 -1
  107. fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/{detection-2822a423a7ad0550.js → detection-da16e73df395ad1d.js} +1 -1
  108. fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/discovery/{[resourceUrn]-f98dd251babb7e28.js → [resourceUrn]-04b242632a114405.js} +1 -1
  109. fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/{discovery-56eb4c014f0d96a3.js → discovery-900fe50183a40d72.js} +1 -1
  110. fides/ui-build/static/admin/_next/static/chunks/pages/{datamap-8f88dc31c5144ea8.js → datamap-4f1f7c3a9531a8f4.js} +1 -1
  111. fides/ui-build/static/admin/_next/static/chunks/pages/dataset/[datasetId]/[collectionName]/[...subfieldNames]-343294dcb10d9532.js +1 -0
  112. fides/ui-build/static/admin/_next/static/chunks/pages/dataset/[datasetId]/[collectionName]-1c097a0809fa5b6f.js +1 -0
  113. fides/ui-build/static/admin/_next/static/chunks/pages/dataset/[datasetId]-b47fa2498b534719.js +1 -0
  114. fides/ui-build/static/admin/_next/static/chunks/pages/dataset/new-a31f881cab25704a.js +1 -0
  115. fides/ui-build/static/admin/_next/static/chunks/pages/dataset-858c59c9e67e318d.js +1 -0
  116. fides/ui-build/static/admin/_next/static/chunks/pages/datastore-connection/{[id]-67a7fe58b96ea739.js → [id]-16c28d272225afb6.js} +1 -1
  117. fides/ui-build/static/admin/_next/static/chunks/pages/datastore-connection/{new-90a8df230cb89877.js → new-68f502d8b0b5792c.js} +1 -1
  118. fides/ui-build/static/admin/_next/static/chunks/pages/datastore-connection-1eb9acb17b133fd1.js +1 -0
  119. fides/ui-build/static/admin/_next/static/chunks/pages/{index-876bfd7210040cec.js → index-fec557d99211f577.js} +1 -1
  120. fides/ui-build/static/admin/_next/static/chunks/pages/integrations/{[id]-766e57bcf38b5b1e.js → [id]-e613543818d6cbd2.js} +1 -1
  121. fides/ui-build/static/admin/_next/static/chunks/pages/integrations-8069f7c33695fd45.js +1 -0
  122. fides/ui-build/static/admin/_next/static/chunks/pages/messaging/{[id]-6e796c3fe632280b.js → [id]-4a08ca7762a19700.js} +1 -1
  123. fides/ui-build/static/admin/_next/static/chunks/pages/messaging/{add-template-fa0f3841c5bdfdeb.js → add-template-343a965dcdb3d11e.js} +1 -1
  124. fides/ui-build/static/admin/_next/static/chunks/pages/messaging-3ade4c54b1c8a11e.js +1 -0
  125. fides/ui-build/static/admin/_next/static/chunks/pages/poc/ant-components-9103bfb854f71410.js +1 -0
  126. fides/ui-build/static/admin/_next/static/chunks/pages/poc/form-experiments/{AntForm-11503454a62d8d7b.js → AntForm-3b97029bd4d3c3ea.js} +1 -1
  127. fides/ui-build/static/admin/_next/static/chunks/pages/poc/form-experiments/{FormikAntFormItem-a504941807bdb7f1.js → FormikAntFormItem-9d9beb8f0d8a278c.js} +1 -1
  128. fides/ui-build/static/admin/_next/static/chunks/pages/poc/form-experiments/{FormikControlled-0119403c8ff97f83.js → FormikControlled-84a4d8fc60f839ed.js} +1 -1
  129. fides/ui-build/static/admin/_next/static/chunks/pages/poc/form-experiments/{FormikField-94f6d57d6c94ddf7.js → FormikField-1fccf542ab2e33bf.js} +1 -1
  130. fides/ui-build/static/admin/_next/static/chunks/pages/poc/{forms-ed1a3ae09d72df89.js → forms-aa75263ae1ba67bb.js} +1 -1
  131. fides/ui-build/static/admin/_next/static/chunks/pages/poc/table-migration-db334a1cbb102255.js +1 -0
  132. fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/[id]-11c1e4545c8f528c.js +1 -0
  133. fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/configure/messaging-192a986f61c23268.js +1 -0
  134. fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/configure/storage-9216ac993d71387e.js +1 -0
  135. fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/configure-e55ec84d5380401d.js +1 -0
  136. fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests-48f447b31c786b80.js +1 -0
  137. fides/ui-build/static/admin/_next/static/chunks/pages/properties/{[id]-41976b28503623cd.js → [id]-a74b51b704b80cb2.js} +1 -1
  138. fides/ui-build/static/admin/_next/static/chunks/pages/properties/{add-property-cb438d8f5ec6007a.js → add-property-8d23f0c55ff6510a.js} +1 -1
  139. fides/ui-build/static/admin/_next/static/chunks/pages/{properties-b6db7036993709b3.js → properties-77acceac4f99e7af.js} +1 -1
  140. fides/ui-build/static/admin/_next/static/chunks/pages/reporting/{datamap-4bc3e281409265cc.js → datamap-e60d398e255f4e00.js} +1 -1
  141. fides/ui-build/static/admin/_next/static/chunks/pages/settings/about/alpha-6aad3f563ed03b3f.js +1 -0
  142. fides/ui-build/static/admin/_next/static/chunks/pages/settings/about-c1b8f3606d160bb1.js +1 -0
  143. fides/ui-build/static/admin/_next/static/chunks/pages/settings/consent/[configuration_id]/[purpose_id]-d9f7f78810d58d08.js +1 -0
  144. fides/ui-build/static/admin/_next/static/chunks/pages/settings/consent-ee2c7dde99b1dafb.js +1 -0
  145. fides/ui-build/static/admin/_next/static/chunks/pages/settings/custom-fields-a4dad8ca9de2d07b.js +1 -0
  146. fides/ui-build/static/admin/_next/static/chunks/pages/settings/{domain-records-386368bf7cb31771.js → domain-records-31c270d228e00581.js} +1 -1
  147. fides/ui-build/static/admin/_next/static/chunks/pages/settings/domains-996b3f250dd3ea1f.js +1 -0
  148. fides/ui-build/static/admin/_next/static/chunks/pages/settings/email-templates-ee94981326ddcbf4.js +1 -0
  149. fides/ui-build/static/admin/_next/static/chunks/pages/settings/{locations-b41fb5ad277088ab.js → locations-0b831c58966782b8.js} +1 -1
  150. fides/ui-build/static/admin/_next/static/chunks/pages/settings/organization-94271ba4a224a353.js +1 -0
  151. fides/ui-build/static/admin/_next/static/chunks/pages/settings/{regulations-a94dfeea43fbca7d.js → regulations-41b8136e50320fd3.js} +1 -1
  152. fides/ui-build/static/admin/_next/static/chunks/pages/systems/configure/[id]/test-datasets-52b45569cbc82e60.js +1 -0
  153. fides/ui-build/static/admin/_next/static/chunks/pages/systems/configure/{[id]-18b316e2dad73731.js → [id]-36d74e93e54aabaf.js} +1 -1
  154. fides/ui-build/static/admin/_next/static/chunks/pages/systems-24dfc8e2279ced2e.js +1 -0
  155. fides/ui-build/static/admin/_next/static/chunks/pages/taxonomy-d9675cf5e6083b27.js +1 -0
  156. fides/ui-build/static/admin/_next/static/chunks/pages/user-management/profile/{[id]-3237881945acc0ee.js → [id]-866826d7959df487.js} +1 -1
  157. fides/ui-build/static/admin/_next/static/chunks/pages/{user-management-a3a50d9d79066935.js → user-management-e63b61a8f99ccd57.js} +1 -1
  158. fides/ui-build/static/admin/_next/static/chunks/{webpack-69658aeaf6155d89.js → webpack-6d0a487039bcf30c.js} +1 -1
  159. fides/ui-build/static/admin/_next/static/css/92441453b27e9c34.css +1 -0
  160. fides/ui-build/static/admin/add-systems/manual.html +1 -1
  161. fides/ui-build/static/admin/add-systems/multiple.html +1 -1
  162. fides/ui-build/static/admin/add-systems.html +1 -1
  163. fides/ui-build/static/admin/consent/configure/add-vendors.html +1 -1
  164. fides/ui-build/static/admin/consent/configure.html +1 -1
  165. fides/ui-build/static/admin/consent/privacy-experience/[id].html +1 -1
  166. fides/ui-build/static/admin/consent/privacy-experience/new.html +1 -1
  167. fides/ui-build/static/admin/consent/privacy-experience.html +1 -1
  168. fides/ui-build/static/admin/consent/privacy-notices/[id].html +1 -1
  169. fides/ui-build/static/admin/consent/privacy-notices/new.html +1 -1
  170. fides/ui-build/static/admin/consent/privacy-notices.html +1 -1
  171. fides/ui-build/static/admin/consent/properties.html +1 -1
  172. fides/ui-build/static/admin/consent/reporting.html +1 -1
  173. fides/ui-build/static/admin/consent.html +1 -1
  174. fides/ui-build/static/admin/data-catalog/[systemId]/projects/[projectUrn]/[resourceUrn].html +1 -1
  175. fides/ui-build/static/admin/data-catalog/[systemId]/projects/[projectUrn].html +1 -1
  176. fides/ui-build/static/admin/data-catalog/[systemId]/projects.html +1 -1
  177. fides/ui-build/static/admin/data-catalog/[systemId]/resources/[resourceUrn].html +1 -1
  178. fides/ui-build/static/admin/data-catalog/[systemId]/resources.html +1 -1
  179. fides/ui-build/static/admin/data-catalog.html +1 -1
  180. fides/ui-build/static/admin/data-discovery/action-center/[monitorId]/[systemId].html +1 -1
  181. fides/ui-build/static/admin/data-discovery/action-center/[monitorId].html +1 -1
  182. fides/ui-build/static/admin/data-discovery/action-center.html +1 -1
  183. fides/ui-build/static/admin/data-discovery/activity.html +1 -1
  184. fides/ui-build/static/admin/data-discovery/detection/[resourceUrn].html +1 -1
  185. fides/ui-build/static/admin/data-discovery/detection.html +1 -1
  186. fides/ui-build/static/admin/data-discovery/discovery/[resourceUrn].html +1 -1
  187. fides/ui-build/static/admin/data-discovery/discovery.html +1 -1
  188. fides/ui-build/static/admin/datamap.html +1 -1
  189. fides/ui-build/static/admin/dataset/[datasetId]/[collectionName]/[...subfieldNames].html +1 -1
  190. fides/ui-build/static/admin/dataset/[datasetId]/[collectionName].html +1 -1
  191. fides/ui-build/static/admin/dataset/[datasetId].html +1 -1
  192. fides/ui-build/static/admin/dataset/new.html +1 -1
  193. fides/ui-build/static/admin/dataset.html +1 -1
  194. fides/ui-build/static/admin/datastore-connection/[id].html +1 -1
  195. fides/ui-build/static/admin/datastore-connection/new.html +1 -1
  196. fides/ui-build/static/admin/datastore-connection.html +1 -1
  197. fides/ui-build/static/admin/index.html +1 -1
  198. fides/ui-build/static/admin/integrations/[id].html +1 -1
  199. fides/ui-build/static/admin/integrations.html +1 -1
  200. fides/ui-build/static/admin/lib/fides-preview.js +1 -1
  201. fides/ui-build/static/admin/lib/fides-tcf.js +2 -2
  202. fides/ui-build/static/admin/lib/fides.js +1 -1
  203. fides/ui-build/static/admin/login/[provider].html +1 -1
  204. fides/ui-build/static/admin/login.html +1 -1
  205. fides/ui-build/static/admin/messaging/[id].html +1 -1
  206. fides/ui-build/static/admin/messaging/add-template.html +1 -1
  207. fides/ui-build/static/admin/messaging.html +1 -1
  208. fides/ui-build/static/admin/poc/ant-components.html +1 -1
  209. fides/ui-build/static/admin/poc/form-experiments/AntForm.html +1 -1
  210. fides/ui-build/static/admin/poc/form-experiments/FormikAntFormItem.html +1 -1
  211. fides/ui-build/static/admin/poc/form-experiments/FormikControlled.html +1 -1
  212. fides/ui-build/static/admin/poc/form-experiments/FormikField.html +1 -1
  213. fides/ui-build/static/admin/poc/form-experiments/FormikSpreadField.html +1 -1
  214. fides/ui-build/static/admin/poc/forms.html +1 -1
  215. fides/ui-build/static/admin/poc/table-migration.html +1 -1
  216. fides/ui-build/static/admin/privacy-requests/[id].html +1 -1
  217. fides/ui-build/static/admin/privacy-requests/configure/messaging.html +1 -1
  218. fides/ui-build/static/admin/privacy-requests/configure/storage.html +1 -1
  219. fides/ui-build/static/admin/privacy-requests/configure.html +1 -1
  220. fides/ui-build/static/admin/privacy-requests.html +1 -1
  221. fides/ui-build/static/admin/properties/[id].html +1 -1
  222. fides/ui-build/static/admin/properties/add-property.html +1 -1
  223. fides/ui-build/static/admin/properties.html +1 -1
  224. fides/ui-build/static/admin/reporting/datamap.html +1 -1
  225. fides/ui-build/static/admin/settings/about/alpha.html +1 -1
  226. fides/ui-build/static/admin/settings/about.html +1 -1
  227. fides/ui-build/static/admin/settings/consent/[configuration_id]/[purpose_id].html +1 -1
  228. fides/ui-build/static/admin/settings/consent.html +1 -1
  229. fides/ui-build/static/admin/settings/custom-fields.html +1 -1
  230. fides/ui-build/static/admin/settings/domain-records.html +1 -1
  231. fides/ui-build/static/admin/settings/domains.html +1 -1
  232. fides/ui-build/static/admin/settings/email-templates.html +1 -1
  233. fides/ui-build/static/admin/settings/locations.html +1 -1
  234. fides/ui-build/static/admin/settings/organization.html +1 -1
  235. fides/ui-build/static/admin/settings/regulations.html +1 -1
  236. fides/ui-build/static/admin/systems/configure/[id]/test-datasets.html +1 -1
  237. fides/ui-build/static/admin/systems/configure/[id].html +1 -1
  238. fides/ui-build/static/admin/systems.html +1 -1
  239. fides/ui-build/static/admin/taxonomy.html +1 -1
  240. fides/ui-build/static/admin/user-management/new.html +1 -1
  241. fides/ui-build/static/admin/user-management/profile/[id].html +1 -1
  242. fides/ui-build/static/admin/user-management.html +1 -1
  243. fides/ui-build/static/admin/_next/static/chunks/203-0c6cadcda98bdd33.js +0 -1
  244. fides/ui-build/static/admin/_next/static/chunks/3450-9314e1b15df8a8da.js +0 -1
  245. fides/ui-build/static/admin/_next/static/chunks/3855-4267fd8193e7f525.js +0 -1
  246. fides/ui-build/static/admin/_next/static/chunks/3872-ac5feefd40b61ae3.js +0 -1
  247. fides/ui-build/static/admin/_next/static/chunks/409-5bc4369b80a8c11d.js +0 -1
  248. fides/ui-build/static/admin/_next/static/chunks/4230-1ebc8c0ab293a077.js +0 -1
  249. fides/ui-build/static/admin/_next/static/chunks/431-a34d7ceff17c2169.js +0 -1
  250. fides/ui-build/static/admin/_next/static/chunks/4608-557fb24665b2e4bf.js +0 -1
  251. fides/ui-build/static/admin/_next/static/chunks/5309-ffdec884eec79d29.js +0 -1
  252. fides/ui-build/static/admin/_next/static/chunks/5574-831167a8da90e2e6.js +0 -1
  253. fides/ui-build/static/admin/_next/static/chunks/6662-499c189f932a35aa.js +0 -1
  254. fides/ui-build/static/admin/_next/static/chunks/6780-7d28e030f6516e5d.js +0 -1
  255. fides/ui-build/static/admin/_next/static/chunks/6882-7cc1d14e27a80c10.js +0 -1
  256. fides/ui-build/static/admin/_next/static/chunks/6954-7784e8d5ad6b8110.js +0 -1
  257. fides/ui-build/static/admin/_next/static/chunks/7476-4de465016d3433b4.js +0 -1
  258. fides/ui-build/static/admin/_next/static/chunks/7630-2a5c57787632693d.js +0 -1
  259. fides/ui-build/static/admin/_next/static/chunks/7725-c79513b04113112b.js +0 -1
  260. fides/ui-build/static/admin/_next/static/chunks/79-98cfab20bb831137.js +0 -1
  261. fides/ui-build/static/admin/_next/static/chunks/796-0b768155bf20505f.js +0 -1
  262. fides/ui-build/static/admin/_next/static/chunks/8735-f84afcc50885883c.js +0 -1
  263. fides/ui-build/static/admin/_next/static/chunks/9046-97a972cc8a8ed24d.js +0 -1
  264. fides/ui-build/static/admin/_next/static/chunks/9226-318dadf1c050ecda.js +0 -1
  265. fides/ui-build/static/admin/_next/static/chunks/9676.9e6828b42ef05e06.js +0 -1
  266. fides/ui-build/static/admin/_next/static/chunks/9951-4df2b67e0def5500.js +0 -1
  267. fides/ui-build/static/admin/_next/static/chunks/pages/add-systems-18e96ce81dab51a4.js +0 -1
  268. fides/ui-build/static/admin/_next/static/chunks/pages/consent/configure-54d7c7310763c66d.js +0 -1
  269. fides/ui-build/static/admin/_next/static/chunks/pages/consent/privacy-notices-6bc3b73a21576869.js +0 -1
  270. fides/ui-build/static/admin/_next/static/chunks/pages/consent/reporting-fe3d6887fecf0f86.js +0 -1
  271. fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/projects-e4770acf7044e2f5.js +0 -1
  272. fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog-0db635c3483c9da8.js +0 -1
  273. fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/action-center/[monitorId]/[systemId]-0c0e0a7798345541.js +0 -1
  274. fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/action-center/[monitorId]-3c56e5fe072a44c6.js +0 -1
  275. fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/action-center-53a763e49ce34a74.js +0 -1
  276. fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/activity-6a90131dcecd694c.js +0 -1
  277. fides/ui-build/static/admin/_next/static/chunks/pages/dataset/[datasetId]/[collectionName]/[...subfieldNames]-145fe9e4cfcb231d.js +0 -1
  278. fides/ui-build/static/admin/_next/static/chunks/pages/dataset/[datasetId]/[collectionName]-8a1e5d140785c1e9.js +0 -1
  279. fides/ui-build/static/admin/_next/static/chunks/pages/dataset/[datasetId]-227b5db4b472a6a7.js +0 -1
  280. fides/ui-build/static/admin/_next/static/chunks/pages/dataset/new-8401f17fe5d9a1dc.js +0 -1
  281. fides/ui-build/static/admin/_next/static/chunks/pages/dataset-7d77b3ad069be268.js +0 -1
  282. fides/ui-build/static/admin/_next/static/chunks/pages/datastore-connection-cfb25b02abb8da71.js +0 -1
  283. fides/ui-build/static/admin/_next/static/chunks/pages/integrations-3fdc55d4c129e618.js +0 -1
  284. fides/ui-build/static/admin/_next/static/chunks/pages/messaging-8f9c006b6166f002.js +0 -1
  285. fides/ui-build/static/admin/_next/static/chunks/pages/poc/ant-components-6ba7ae4f26c06cb0.js +0 -1
  286. fides/ui-build/static/admin/_next/static/chunks/pages/poc/table-migration-e8db3ad525e7ddbd.js +0 -1
  287. fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/[id]-c14dd24592369467.js +0 -1
  288. fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/configure/messaging-100d7d03930629a8.js +0 -1
  289. fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/configure/storage-6f8d1b3ec83cfcf0.js +0 -1
  290. fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/configure-3ce15577435d47cb.js +0 -1
  291. fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests-f43a988542813110.js +0 -1
  292. fides/ui-build/static/admin/_next/static/chunks/pages/settings/about/alpha-1ea40fcd6b4268bf.js +0 -1
  293. fides/ui-build/static/admin/_next/static/chunks/pages/settings/about-65c7600fadc6e55a.js +0 -1
  294. fides/ui-build/static/admin/_next/static/chunks/pages/settings/consent/[configuration_id]/[purpose_id]-33dab986141b3663.js +0 -1
  295. fides/ui-build/static/admin/_next/static/chunks/pages/settings/consent-1195042727c399ed.js +0 -1
  296. fides/ui-build/static/admin/_next/static/chunks/pages/settings/custom-fields-71b98858ecb4e097.js +0 -1
  297. fides/ui-build/static/admin/_next/static/chunks/pages/settings/domains-cf427e04f862b5d2.js +0 -1
  298. fides/ui-build/static/admin/_next/static/chunks/pages/settings/email-templates-eabeeec5bf2773c6.js +0 -1
  299. fides/ui-build/static/admin/_next/static/chunks/pages/settings/organization-ee56698ae3a6a78b.js +0 -1
  300. fides/ui-build/static/admin/_next/static/chunks/pages/systems/configure/[id]/test-datasets-0e2e98cc38ee5499.js +0 -1
  301. fides/ui-build/static/admin/_next/static/chunks/pages/systems-c32589c86081b750.js +0 -1
  302. fides/ui-build/static/admin/_next/static/chunks/pages/taxonomy-a8f09bf8f3204ca7.js +0 -1
  303. fides/ui-build/static/admin/_next/static/css/e1628f15dd5f019b.css +0 -1
  304. fides/ui-build/static/admin/_next/static/tzF4yti8NslASlGnxnZ8m/_buildManifest.js +0 -1
  305. {ethyca_fides-2.68.1b1.dist-info → ethyca_fides-2.68.1b3.dist-info}/WHEEL +0 -0
  306. {ethyca_fides-2.68.1b1.dist-info → ethyca_fides-2.68.1b3.dist-info}/entry_points.txt +0 -0
  307. {ethyca_fides-2.68.1b1.dist-info → ethyca_fides-2.68.1b3.dist-info}/licenses/LICENSE +0 -0
  308. {ethyca_fides-2.68.1b1.dist-info → ethyca_fides-2.68.1b3.dist-info}/top_level.txt +0 -0
  309. /fides/ui-build/static/admin/_next/static/{tzF4yti8NslASlGnxnZ8m → _BLI2ArqQzY5XnXbrcxa2}/_ssgManifest.js +0 -0
@@ -0,0 +1,261 @@
1
+ """
2
+ Service layer for taxonomy management (data_categories, data_uses, data_subjects).
3
+ """
4
+
5
+ from typing import Any, Dict, List, Literal, Optional, Union, overload
6
+
7
+ from sqlalchemy import or_
8
+ from sqlalchemy.orm import Session
9
+
10
+ from fides.api.models.sql_models import ( # type:ignore[attr-defined]
11
+ DataCategory,
12
+ DataSubject,
13
+ DataUse,
14
+ )
15
+ from fides.api.models.taxonomy import TaxonomyUsage
16
+
17
+ from .handlers import LegacyTaxonomyHandler, TaxonomyHandler
18
+ from .utils import (
19
+ activate_taxonomy_parents,
20
+ check_for_taxonomy_reactivation,
21
+ deactivate_taxonomy_node_and_descendants,
22
+ generate_taxonomy_fides_key,
23
+ handle_taxonomy_reactivation,
24
+ validate_default_taxonomy_restrictions,
25
+ validate_parent_key_exists,
26
+ )
27
+
28
+
29
+ class TaxonomyService:
30
+ """
31
+ Taxonomy service for managing Fides taxonomy elements.
32
+ Provides CRUD operations for data_categories, data_uses, and data_subjects.
33
+ """
34
+
35
+ # Most of the main methods in this service have a type-specific overload to help with type hints
36
+
37
+ def __init__(self, db: Session):
38
+ self.db = db
39
+
40
+ @overload
41
+ def get_elements(
42
+ self,
43
+ taxonomy_type: Literal["data_categories"],
44
+ active_only: bool = True,
45
+ parent_key: Optional[str] = None,
46
+ ) -> List[DataCategory]: ...
47
+
48
+ @overload
49
+ def get_elements(
50
+ self,
51
+ taxonomy_type: Literal["data_uses"],
52
+ active_only: bool = True,
53
+ parent_key: Optional[str] = None,
54
+ ) -> List[DataUse]: ...
55
+
56
+ @overload
57
+ def get_elements(
58
+ self,
59
+ taxonomy_type: Literal["data_subjects"],
60
+ active_only: bool = True,
61
+ parent_key: Optional[str] = None,
62
+ ) -> List[DataSubject]: ...
63
+
64
+ def get_elements(
65
+ self,
66
+ taxonomy_type: str,
67
+ active_only: bool = True,
68
+ parent_key: Optional[str] = None,
69
+ ) -> List[Union[DataCategory, DataUse, DataSubject]]:
70
+ """Get elements for a taxonomy type."""
71
+ return self._get_handler(taxonomy_type).get_elements(active_only, parent_key)
72
+
73
+ @overload
74
+ def get_element(
75
+ self, taxonomy_type: Literal["data_categories"], fides_key: str
76
+ ) -> Optional[DataCategory]: ...
77
+
78
+ @overload
79
+ def get_element(
80
+ self, taxonomy_type: Literal["data_uses"], fides_key: str
81
+ ) -> Optional[DataUse]: ...
82
+
83
+ @overload
84
+ def get_element(
85
+ self, taxonomy_type: Literal["data_subjects"], fides_key: str
86
+ ) -> Optional[DataSubject]: ...
87
+
88
+ def get_element(self, taxonomy_type: str, fides_key: str) -> Optional[Any]:
89
+ """Get a single element by fides_key."""
90
+ return self._get_handler(taxonomy_type).get_element(fides_key)
91
+
92
+ @overload
93
+ def create_element(
94
+ self, taxonomy_type: Literal["data_categories"], element_data: Dict
95
+ ) -> DataCategory: ...
96
+
97
+ @overload
98
+ def create_element(
99
+ self, taxonomy_type: Literal["data_uses"], element_data: Dict
100
+ ) -> DataUse: ...
101
+
102
+ @overload
103
+ def create_element(
104
+ self, taxonomy_type: Literal["data_subjects"], element_data: Dict
105
+ ) -> DataSubject: ...
106
+
107
+ def create_element(
108
+ self, taxonomy_type: str, element_data: Dict
109
+ ) -> Union[DataCategory, DataUse, DataSubject]:
110
+ """Create a new taxonomy element."""
111
+ # Generate fides_key if not provided
112
+ processed_data = element_data.copy()
113
+ if not processed_data.get("fides_key") and processed_data.get("name"):
114
+ handler = self._get_handler(taxonomy_type)
115
+ processed_data["fides_key"] = generate_taxonomy_fides_key(
116
+ taxonomy_type,
117
+ processed_data["name"],
118
+ processed_data.get("parent_key"),
119
+ handler,
120
+ )
121
+
122
+ # Centralized validation before delegation
123
+ self._validate_element_data(processed_data, taxonomy_type, action="create")
124
+ return self._get_handler(taxonomy_type).create_element(processed_data)
125
+
126
+ @overload
127
+ def update_element(
128
+ self,
129
+ taxonomy_type: Literal["data_categories"],
130
+ fides_key: str,
131
+ element_data: Dict,
132
+ ) -> Optional[DataCategory]: ...
133
+
134
+ @overload
135
+ def update_element(
136
+ self, taxonomy_type: Literal["data_uses"], fides_key: str, element_data: Dict
137
+ ) -> Optional[DataUse]: ...
138
+
139
+ @overload
140
+ def update_element(
141
+ self,
142
+ taxonomy_type: Literal["data_subjects"],
143
+ fides_key: str,
144
+ element_data: Dict,
145
+ ) -> Optional[DataSubject]: ...
146
+
147
+ def update_element(
148
+ self, taxonomy_type: str, fides_key: str, element_data: Dict
149
+ ) -> Optional[Any]:
150
+ """Update an existing taxonomy element."""
151
+ # Get the existing element for validation
152
+ handler = self._get_handler(taxonomy_type)
153
+ existing_element = handler.get_element(fides_key)
154
+
155
+ self._validate_element_data(
156
+ element_data,
157
+ taxonomy_type,
158
+ existing_element=existing_element,
159
+ action="update",
160
+ )
161
+
162
+ # Update the element via handler
163
+ updated_element = handler.update_element(fides_key, element_data)
164
+
165
+ # Handle hierarchical activation/deactivation logic at service level
166
+ if updated_element and "active" in element_data:
167
+ if element_data["active"]:
168
+ activate_taxonomy_parents(updated_element, self.db)
169
+ else:
170
+ # Cascade down - deactivate current node and children
171
+ deactivate_taxonomy_node_and_descendants(updated_element, self.db)
172
+
173
+ # Ensure hierarchical updates are visible across sessions
174
+ # The model's own update() commits, but parent/child mutations above
175
+ # only flush by design. Commit here so other sessions (e.g., API tests)
176
+ # can observe the propagated changes immediately.
177
+ self.db.commit()
178
+ # Refresh the updated element to return the latest state
179
+ self.db.refresh(updated_element)
180
+
181
+ return updated_element
182
+
183
+ def delete_element(self, taxonomy_type: str, fides_key: str) -> None:
184
+ """Delete a taxonomy element."""
185
+ # First, remove any TaxonomyUsage rows that reference this element
186
+ # as either the source or the target element. There is no DB cascade
187
+ # for these relationships by design, so this cleanup is handled here.
188
+ self.db.query(TaxonomyUsage).filter(
189
+ or_(
190
+ TaxonomyUsage.source_element_key == fides_key,
191
+ TaxonomyUsage.target_element_key == fides_key,
192
+ )
193
+ ).delete(synchronize_session=False)
194
+
195
+ # Then delete the element itself via the appropriate handler
196
+ self._get_handler(taxonomy_type).delete_element(fides_key)
197
+ self.db.commit()
198
+
199
+ @overload
200
+ def create_or_update_element(
201
+ self, taxonomy_type: Literal["data_categories"], element_data: Dict
202
+ ) -> DataCategory: ...
203
+
204
+ @overload
205
+ def create_or_update_element(
206
+ self, taxonomy_type: Literal["data_uses"], element_data: Dict
207
+ ) -> DataUse: ...
208
+
209
+ @overload
210
+ def create_or_update_element(
211
+ self, taxonomy_type: Literal["data_subjects"], element_data: Dict
212
+ ) -> DataSubject: ...
213
+
214
+ def create_or_update_element(self, taxonomy_type: str, element_data: Dict) -> Any:
215
+ """
216
+ Create or update a taxonomy element.
217
+ If the element is deactivated, it will be updated and re-activated, along with its parents.
218
+ This method provides compatibility with the existing generic_overrides endpoint pattern.
219
+ """
220
+ # Check for reactivation case centrally
221
+ handler = self._get_handler(taxonomy_type)
222
+ reactivation_element = check_for_taxonomy_reactivation(
223
+ self.db, taxonomy_type, element_data, handler
224
+ )
225
+
226
+ if reactivation_element:
227
+ return handle_taxonomy_reactivation(
228
+ self.db, taxonomy_type, reactivation_element, element_data, handler
229
+ )
230
+
231
+ return self.create_element(taxonomy_type, element_data) # type: ignore[call-overload]
232
+
233
+ def _get_handler(self, taxonomy_type: str) -> TaxonomyHandler:
234
+ """Get the handler for taxonomy operations."""
235
+ return LegacyTaxonomyHandler(self.db, taxonomy_type)
236
+
237
+ def _validate_element_data(
238
+ self,
239
+ element_data: Dict,
240
+ taxonomy_type: str,
241
+ existing_element: Optional[Union[DataCategory, DataUse, DataSubject]] = None,
242
+ action: str = "create",
243
+ ) -> None:
244
+ """
245
+ Centralized validation for taxonomy elements.
246
+ This runs before delegation to ensure consistent validation across all handlers.
247
+ """
248
+ # Validate default taxonomy restrictions for taxonomy elements
249
+ if action == "create":
250
+ validate_default_taxonomy_restrictions(element_data, action="create")
251
+ elif action == "update" and existing_element:
252
+ validate_default_taxonomy_restrictions(
253
+ element_data, resource=existing_element, action="update"
254
+ )
255
+
256
+ # Validate parent_key exists if provided
257
+ if "parent_key" in element_data and element_data["parent_key"]:
258
+ handler = self._get_handler(taxonomy_type)
259
+ validate_parent_key_exists(
260
+ taxonomy_type, element_data["parent_key"], handler
261
+ )
@@ -0,0 +1,160 @@
1
+ from typing import Any, Dict, Optional, Union
2
+
3
+ from sqlalchemy.orm import Session
4
+
5
+ from fides.api.common_exceptions import ValidationError
6
+ from fides.api.db.base_class import get_key_from_data
7
+ from fides.api.models.sql_models import ( # type:ignore[attr-defined]
8
+ DataCategory,
9
+ DataSubject,
10
+ DataUse,
11
+ )
12
+ from fides.api.util.errors import ForbiddenIsDefaultTaxonomyError
13
+
14
+
15
+ # Core validation functions for taxonomy operations
16
+ def activate_taxonomy_parents(
17
+ resource: Union[DataCategory, DataUse, DataSubject],
18
+ db: Session,
19
+ ) -> None:
20
+ """
21
+ Activates parents to match newly-active taxonomy node.
22
+ """
23
+ parent = resource.parent
24
+ if parent:
25
+ parent.active = True
26
+ db.flush()
27
+ activate_taxonomy_parents(parent, db)
28
+
29
+
30
+ def deactivate_taxonomy_node_and_descendants(
31
+ resource: Union[DataCategory, DataUse, DataSubject],
32
+ db: Session,
33
+ ) -> None:
34
+ """
35
+ Recursively de-activates all descendants of a given taxonomy node.
36
+ """
37
+ resource.active = False
38
+ db.flush()
39
+ children = resource.children
40
+
41
+ for child in children:
42
+ # Deactivate current child
43
+ child.active = False
44
+ db.flush()
45
+ # Recursively deactivate all descendants of this child
46
+ deactivate_taxonomy_node_and_descendants(child, db)
47
+
48
+
49
+ def validate_default_taxonomy_restrictions(
50
+ data: Dict,
51
+ resource: Optional[Union[DataCategory, DataUse, DataSubject]] = None,
52
+ action: str = "create",
53
+ ) -> None:
54
+ """
55
+ Validate restrictions on default taxonomy elements.
56
+ """
57
+ # For creation, check if trying to create with is_default=True
58
+ if action == "create" and data.get("is_default"):
59
+ raise ForbiddenIsDefaultTaxonomyError(
60
+ "taxonomy", data.get("fides_key", "unknown"), action="create"
61
+ )
62
+
63
+ # For updates, check if trying to modify is_default field
64
+ if action == "update" and resource:
65
+ # Only check if is_default is explicitly present in the data and is being changed
66
+ if "is_default" in data and hasattr(resource, "is_default"):
67
+ if data["is_default"] != resource.is_default:
68
+ raise ForbiddenIsDefaultTaxonomyError(
69
+ "resource",
70
+ data.get("fides_key", resource.fides_key),
71
+ action="modify",
72
+ )
73
+
74
+
75
+ def validate_parent_key_exists(
76
+ taxonomy_type: str, parent_key: str, handler: Any
77
+ ) -> None:
78
+ """
79
+ Validate that the parent_key exists in the same taxonomy type.
80
+ This prevents IntegrityError at the database level by validating at application level.
81
+ """
82
+ if not parent_key:
83
+ return
84
+
85
+ parent_element = handler.get_element(parent_key)
86
+
87
+ if not parent_element:
88
+ raise ValidationError(
89
+ f"Parent with key '{parent_key}' not found in taxonomy '{taxonomy_type}'"
90
+ )
91
+
92
+
93
+ def generate_taxonomy_fides_key(
94
+ taxonomy_type: str,
95
+ name: str,
96
+ parent_key: Optional[str] = None,
97
+ handler: Optional[Any] = None,
98
+ ) -> str:
99
+ """
100
+ Generate a fides_key from a name for taxonomy elements.
101
+ """
102
+ # Get the actual model class name for key generation
103
+ if handler and hasattr(handler, "get_model"):
104
+ model_class = handler.get_model()
105
+ fides_key = get_key_from_data({"name": name}, model_class.__name__)
106
+ else:
107
+ # Fallback to using taxonomy_type
108
+ fides_key = get_key_from_data({"name": name}, taxonomy_type)
109
+
110
+ # Add parent prefix if this is not a root level taxonomy node
111
+ if parent_key:
112
+ fides_key = f"{parent_key}.{fides_key}"
113
+
114
+ return fides_key
115
+
116
+
117
+ def check_for_taxonomy_reactivation(
118
+ db: Session, taxonomy_type: str, element_data: Dict, handler: Any
119
+ ) -> Optional[Any]:
120
+ """
121
+ Check if this is a reactivation case for existing disabled elements.
122
+ Returns the disabled element if it exists and should be reactivated.
123
+ """
124
+ # Only check for reactivation if no fides_key is provided but name is
125
+ if element_data.get("fides_key") or not element_data.get("name"):
126
+ return None
127
+
128
+ # Check the specific model table for disabled elements
129
+ model_class = handler.get_model()
130
+ disabled_element = (
131
+ db.query(model_class)
132
+ .filter(
133
+ model_class.active.is_(False),
134
+ model_class.name == element_data["name"],
135
+ )
136
+ .first()
137
+ )
138
+ return disabled_element
139
+
140
+
141
+ def handle_taxonomy_reactivation(
142
+ db: Session, taxonomy_type: str, element: Any, element_data: Dict, handler: Any
143
+ ) -> Any:
144
+ """
145
+ Handle reactivation of a disabled taxonomy element.
146
+ """
147
+ # Generate fides_key if not provided (needed for reactivation)
148
+ updated_data = element_data.copy()
149
+ if not updated_data.get("fides_key") and updated_data.get("name"):
150
+ updated_data["fides_key"] = generate_taxonomy_fides_key(
151
+ taxonomy_type, updated_data["name"], updated_data.get("parent_key"), handler
152
+ )
153
+
154
+ # Ensure it's marked as active and activate parents accordingly
155
+ updated_data["active"] = True
156
+ activate_taxonomy_parents(element, db)
157
+
158
+ # Update the element with new data
159
+ element.update(db, data=updated_data)
160
+ return element
@@ -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/e1628f15dd5f019b.css" as="style"/><link rel="stylesheet" href="/_next/static/css/e1628f15dd5f019b.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-69658aeaf6155d89.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-65723cd4b8fc36ac.js" defer=""></script><script src="/_next/static/chunks/pages/404-9174cdb70126c2c5.js" defer=""></script><script src="/_next/static/tzF4yti8NslASlGnxnZ8m/_buildManifest.js" defer=""></script><script src="/_next/static/tzF4yti8NslASlGnxnZ8m/_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":"tzF4yti8NslASlGnxnZ8m","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/92441453b27e9c34.css" as="style"/><link rel="stylesheet" href="/_next/static/css/92441453b27e9c34.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-6d0a487039bcf30c.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-b6b09b2878b77b21.js" defer=""></script><script src="/_next/static/chunks/pages/404-dd625a559ada46ca.js" defer=""></script><script src="/_next/static/_BLI2ArqQzY5XnXbrcxa2/_buildManifest.js" defer=""></script><script src="/_next/static/_BLI2ArqQzY5XnXbrcxa2/_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":"_BLI2ArqQzY5XnXbrcxa2","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
@@ -0,0 +1 @@
1
+ self.__BUILD_MANIFEST=function(s,e,t,a,c,n,i,d,o,r,p,u,g,f,m,j,k,b,h,y,l,v,I,F,x,_,U,w,q,N,A,S,B,C,z,D,E,L,M,T,P,G,H,J,K,O,Q,R){return{__rewrites:{afterFiles:[],beforeFiles:[],fallback:[]},"/":[F,"static/chunks/pages/index-fec557d99211f577.js"],"/404":["static/chunks/pages/404-dd625a559ada46ca.js"],"/_error":["static/chunks/pages/_error-bede3a8288930dcf.js"],"/add-systems":[e,t,F,"static/chunks/pages/add-systems-5664a3ea796e5ffb.js"],"/add-systems/manual":[s,e,a,c,n,g,t,d,f,m,h,x,_,"static/chunks/pages/add-systems/manual-92cf5e313be1f9e2.js"],"/add-systems/multiple":[d,j,U,"static/chunks/pages/add-systems/multiple-d6c525ee731a2993.js"],"/consent":["static/chunks/pages/consent-8d4be9e7ec7d2a35.js"],"/consent/configure":[d,j,"static/chunks/pages/consent/configure-0fc678f3d6d2fcec.js"],"/consent/configure/add-vendors":[d,j,U,"static/chunks/pages/consent/configure/add-vendors-78f13de90111fd80.js"],"/consent/privacy-experience":[g,w,"static/chunks/pages/consent/privacy-experience-289605267d6cce7e.js"],"/consent/privacy-experience/new":[s,o,k,b,q,"static/chunks/pages/consent/privacy-experience/new-e74cb5ea87f15b40.js"],"/consent/privacy-experience/[id]":[s,o,k,b,q,"static/chunks/pages/consent/privacy-experience/[id]-126db59dc25ca326.js"],"/consent/privacy-notices":[w,"static/chunks/pages/consent/privacy-notices-c643eff04525298e.js"],"/consent/privacy-notices/new":[s,o,k,b,N,"static/chunks/pages/consent/privacy-notices/new-28c003b6043bd16c.js"],"/consent/privacy-notices/[id]":[s,o,k,b,N,"static/chunks/pages/consent/privacy-notices/[id]-e9fd9b28ac9705af.js"],"/consent/properties":[A,"static/chunks/pages/consent/properties-3ef5d01779a26455.js"],"/consent/reporting":["static/chunks/2150-930ffaf2c4718edc.js","static/chunks/pages/consent/reporting-baa4a2f8f08ac224.js"],"/data-catalog":[s,a,c,"static/css/95ac327e5d70148d.css","static/chunks/pages/data-catalog-ebf5e7fa4e2ffb49.js"],"/data-catalog/[systemId]/projects":[s,a,c,p,y,i,"static/chunks/pages/data-catalog/[systemId]/projects-0f66dac32040519c.js"],"/data-catalog/[systemId]/projects/[projectUrn]":[S,"static/chunks/pages/data-catalog/[systemId]/projects/[projectUrn]-27b6c255bd9e73b6.js"],"/data-catalog/[systemId]/projects/[projectUrn]/[resourceUrn]":[s,e,a,c,t,p,y,B,i,"static/chunks/pages/data-catalog/[systemId]/projects/[projectUrn]/[resourceUrn]-f27ec4578c674181.js"],"/data-catalog/[systemId]/resources":[S,"static/chunks/pages/data-catalog/[systemId]/resources-6c3714ee97a718c1.js"],"/data-catalog/[systemId]/resources/[resourceUrn]":[s,e,a,c,t,p,y,B,i,"static/chunks/pages/data-catalog/[systemId]/resources/[resourceUrn]-3b938562df81c4b0.js"],"/data-discovery/action-center":["static/chunks/pages/data-discovery/action-center-8e35e33928abbcdc.js"],"/data-discovery/action-center/[monitorId]":[s,a,c,C,l,"static/chunks/pages/data-discovery/action-center/[monitorId]-8ce5d24af470888e.js"],"/data-discovery/action-center/[monitorId]/[systemId]":[s,e,a,c,t,d,h,C,"static/css/23cf870196941c9a.css","static/chunks/pages/data-discovery/action-center/[monitorId]/[systemId]-b27c660039d951c9.js"],"/data-discovery/activity":[e,t,u,"static/chunks/pages/data-discovery/activity-21c141279e66237a.js"],"/data-discovery/detection":[e,t,u,z,"static/chunks/pages/data-discovery/detection-da16e73df395ad1d.js"],"/data-discovery/detection/[resourceUrn]":[e,t,u,z,"static/chunks/pages/data-discovery/detection/[resourceUrn]-3bc6a207693fd175.js"],"/data-discovery/discovery":[s,e,a,c,t,u,p,D,i,"static/chunks/pages/data-discovery/discovery-900fe50183a40d72.js"],"/data-discovery/discovery/[resourceUrn]":[s,e,a,c,t,u,p,D,i,"static/chunks/pages/data-discovery/discovery/[resourceUrn]-04b242632a114405.js"],"/datamap":[e,c,"static/chunks/255-1bc0cbef7a59cdc6.js",t,f,E,"static/chunks/pages/datamap-4f1f7c3a9531a8f4.js"],"/dataset":[r,"static/chunks/pages/dataset-858c59c9e67e318d.js"],"/dataset/new":[e,r,t,"static/chunks/pages/dataset/new-a31f881cab25704a.js"],"/dataset/[datasetId]":["static/chunks/9729-fcf6ff4e3534e4a8.js",v,"static/chunks/pages/dataset/[datasetId]-b47fa2498b534719.js"],"/dataset/[datasetId]/[collectionName]":[s,a,c,n,v,L,i,"static/chunks/pages/dataset/[datasetId]/[collectionName]-1c097a0809fa5b6f.js"],"/dataset/[datasetId]/[collectionName]/[...subfieldNames]":[s,a,c,n,v,L,i,"static/chunks/pages/dataset/[datasetId]/[collectionName]/[...subfieldNames]-343294dcb10d9532.js"],"/datastore-connection":["static/css/5f393dea1c0d031c.css","static/chunks/pages/datastore-connection-1eb9acb17b133fd1.js"],"/datastore-connection/new":[s,e,n,r,g,M,t,T,"static/chunks/pages/datastore-connection/new-68f502d8b0b5792c.js"],"/datastore-connection/[id]":[s,e,n,r,M,t,T,"static/chunks/pages/datastore-connection/[id]-16c28d272225afb6.js"],"/fides-js-docs":["static/chunks/2fbcc6de-a6c61724c327e9fa.js","static/chunks/e3251fe7-5777b5d778e6fffa.js",s,a,c,n,r,"static/chunks/5619-9b50cec521203989.js",P,"static/css/0b4b1b65cc874774.css","static/chunks/5596-bb601cbf40e47a0f.js","static/chunks/pages/fides-js-docs-1f4335dca5c09860.js"],"/integrations":[s,e,a,c,n,o,G,t,m,H,i,"static/chunks/pages/integrations-8069f7c33695fd45.js"],"/integrations/[id]":[s,e,a,c,n,o,G,t,m,H,i,"static/chunks/pages/integrations/[id]-e613543818d6cbd2.js"],"/login":["static/chunks/pages/login-0cb0eb44bf2dd24c.js"],"/login/[provider]":["static/chunks/pages/login/[provider]-c58beef131c3a82d.js"],"/messaging":[s,a,"static/chunks/346-aa3b88efb85f2e28.js","static/chunks/pages/messaging-3ade4c54b1c8a11e.js"],"/messaging/add-template":[J,"static/chunks/pages/messaging/add-template-343a965dcdb3d11e.js"],"/messaging/[id]":[J,"static/chunks/pages/messaging/[id]-4a08ca7762a19700.js"],"/poc/ant-components":["static/chunks/pages/poc/ant-components-9103bfb854f71410.js"],"/poc/form-experiments/AntForm":["static/chunks/pages/poc/form-experiments/AntForm-3b97029bd4d3c3ea.js"],"/poc/form-experiments/FormikAntFormItem":["static/chunks/pages/poc/form-experiments/FormikAntFormItem-9d9beb8f0d8a278c.js"],"/poc/form-experiments/FormikControlled":["static/chunks/pages/poc/form-experiments/FormikControlled-84a4d8fc60f839ed.js"],"/poc/form-experiments/FormikField":["static/chunks/pages/poc/form-experiments/FormikField-1fccf542ab2e33bf.js"],"/poc/form-experiments/FormikSpreadField":[K,"static/chunks/pages/poc/form-experiments/FormikSpreadField-af097d661f6abcf4.js"],"/poc/forms":[K,"static/chunks/pages/poc/forms-aa75263ae1ba67bb.js"],"/poc/table-migration":[d,j,"static/chunks/pages/poc/table-migration-db334a1cbb102255.js"],"/privacy-requests":[s,e,"static/chunks/3550-d04125c828d591a1.js",t,"static/chunks/pages/privacy-requests-48f447b31c786b80.js"],"/privacy-requests/configure":["static/chunks/pages/privacy-requests/configure-e55ec84d5380401d.js"],"/privacy-requests/configure/messaging":[e,t,"static/chunks/pages/privacy-requests/configure/messaging-192a986f61c23268.js"],"/privacy-requests/configure/storage":[e,t,"static/chunks/pages/privacy-requests/configure/storage-9216ac993d71387e.js"],"/privacy-requests/[id]":[e,t,"static/css/073713cd1eddda79.css","static/chunks/pages/privacy-requests/[id]-11c1e4545c8f528c.js"],"/properties":[A,"static/chunks/pages/properties-77acceac4f99e7af.js"],"/properties/add-property":[O,"static/chunks/pages/properties/add-property-8d23f0c55ff6510a.js"],"/properties/[id]":[O,"static/chunks/pages/properties/[id]-a74b51b704b80cb2.js"],"/reporting/datamap":[s,e,a,c,P,t,f,E,"static/chunks/pages/reporting/datamap-e60d398e255f4e00.js"],"/settings/about":["static/chunks/pages/settings/about-c1b8f3606d160bb1.js"],"/settings/about/alpha":["static/chunks/pages/settings/about/alpha-6aad3f563ed03b3f.js"],"/settings/consent":["static/chunks/pages/settings/consent-ee2c7dde99b1dafb.js"],"/settings/consent/[configuration_id]/[purpose_id]":["static/chunks/pages/settings/consent/[configuration_id]/[purpose_id]-d9f7f78810d58d08.js"],"/settings/custom-fields":[e,t,"static/chunks/pages/settings/custom-fields-a4dad8ca9de2d07b.js"],"/settings/domain-records":["static/chunks/pages/settings/domain-records-31c270d228e00581.js"],"/settings/domains":["static/chunks/pages/settings/domains-996b3f250dd3ea1f.js"],"/settings/email-templates":["static/chunks/pages/settings/email-templates-ee94981326ddcbf4.js"],"/settings/locations":[Q,l,"static/chunks/pages/settings/locations-0b831c58966782b8.js"],"/settings/organization":["static/chunks/pages/settings/organization-94271ba4a224a353.js"],"/settings/regulations":[Q,l,"static/chunks/pages/settings/regulations-41b8136e50320fd3.js"],"/systems":["static/chunks/pages/systems-24dfc8e2279ced2e.js"],"/systems/configure/[id]":[s,e,a,c,n,g,t,d,f,m,h,x,_,"static/chunks/pages/systems/configure/[id]-36d74e93e54aabaf.js"],"/systems/configure/[id]/test-datasets":[r,"static/chunks/pages/systems/configure/[id]/test-datasets-52b45569cbc82e60.js"],"/taxonomy":["static/chunks/678d4732-50255cc09048e643.js",s,e,a,o,"static/chunks/6148-59a59d5c5925344f.js",t,"static/css/34a7eb08b86ddb57.css","static/chunks/pages/taxonomy-d9675cf5e6083b27.js"],"/user-management":[I,"static/chunks/pages/user-management-e63b61a8f99ccd57.js"],"/user-management/new":[I,R,"static/chunks/pages/user-management/new-de8cb3739ab99c09.js"],"/user-management/profile/[id]":[I,R,"static/chunks/pages/user-management/profile/[id]-866826d7959df487.js"],sortedPages:["/","/404","/_app","/_error","/add-systems","/add-systems/manual","/add-systems/multiple","/consent","/consent/configure","/consent/configure/add-vendors","/consent/privacy-experience","/consent/privacy-experience/new","/consent/privacy-experience/[id]","/consent/privacy-notices","/consent/privacy-notices/new","/consent/privacy-notices/[id]","/consent/properties","/consent/reporting","/data-catalog","/data-catalog/[systemId]/projects","/data-catalog/[systemId]/projects/[projectUrn]","/data-catalog/[systemId]/projects/[projectUrn]/[resourceUrn]","/data-catalog/[systemId]/resources","/data-catalog/[systemId]/resources/[resourceUrn]","/data-discovery/action-center","/data-discovery/action-center/[monitorId]","/data-discovery/action-center/[monitorId]/[systemId]","/data-discovery/activity","/data-discovery/detection","/data-discovery/detection/[resourceUrn]","/data-discovery/discovery","/data-discovery/discovery/[resourceUrn]","/datamap","/dataset","/dataset/new","/dataset/[datasetId]","/dataset/[datasetId]/[collectionName]","/dataset/[datasetId]/[collectionName]/[...subfieldNames]","/datastore-connection","/datastore-connection/new","/datastore-connection/[id]","/fides-js-docs","/integrations","/integrations/[id]","/login","/login/[provider]","/messaging","/messaging/add-template","/messaging/[id]","/poc/ant-components","/poc/form-experiments/AntForm","/poc/form-experiments/FormikAntFormItem","/poc/form-experiments/FormikControlled","/poc/form-experiments/FormikField","/poc/form-experiments/FormikSpreadField","/poc/forms","/poc/table-migration","/privacy-requests","/privacy-requests/configure","/privacy-requests/configure/messaging","/privacy-requests/configure/storage","/privacy-requests/[id]","/properties","/properties/add-property","/properties/[id]","/reporting/datamap","/settings/about","/settings/about/alpha","/settings/consent","/settings/consent/[configuration_id]/[purpose_id]","/settings/custom-fields","/settings/domain-records","/settings/domains","/settings/email-templates","/settings/locations","/settings/organization","/settings/regulations","/systems","/systems/configure/[id]","/systems/configure/[id]/test-datasets","/taxonomy","/user-management","/user-management/new","/user-management/profile/[id]"]}}("static/chunks/8765-f622a35b40a7ec63.js","static/chunks/431-86ad2beeb93c95c9.js","static/chunks/602-80d113e801d7407d.js","static/chunks/9278-08cc704317fe535e.js","static/chunks/5163-e682273cd76a7d07.js","static/chunks/699-8ca44b0de9fa20f0.js","static/css/d2d4e9a6923e6730.css","static/chunks/401-3902e3e98790d401.js","static/chunks/3662-f6a1ddca5ee42076.js","static/chunks/6527-0eed08abe252a918.js","static/chunks/1099-7b2085a3931da9e4.js","static/chunks/8002-dcd02da6e5649a1c.js","static/chunks/5277-e8a036319456127f.js","static/chunks/9951-cdf73904a3adb27b.js","static/chunks/4808-8713433c84a62efe.js","static/chunks/3923-5c87b3d7f1626678.js","static/chunks/6419-d0c00d661b01f8fa.js","static/chunks/6084-da63f20d9416a982.js","static/chunks/4844-351f99b6644b654e.js","static/chunks/3620-6cceae71bae5b531.js","static/css/10994e916bc9a00a.css","static/chunks/5487-338800277d36b8d7.js","static/chunks/7476-a0dd03bfccf60d0c.js","static/css/972dc7eef106ee7c.css","static/chunks/4786-53ef1662f2d0d98c.js","static/css/304c6f148886a8d4.css","static/chunks/796-8773e04b64ce2260.js","static/chunks/6853-1d947b75eb07188c.js","static/chunks/1817-fd21f1f5ef0faffa.js","static/chunks/6954-24f9a4f27d67b732.js","static/chunks/79-dcd20e8b09501c17.js","static/chunks/3872-7a18d18a5e287e4e.js","static/chunks/3855-64541570e2f838fb.js","static/chunks/1138-0d846ffef62c580f.js","static/chunks/1345-ab756811e19ff4fc.js","static/chunks/9046-57eab238570b8bf4.js","static/chunks/5258-c6f96dc740eb5fb1.js","static/chunks/549-e6453a3526023e85.js","static/chunks/1467-8808ec8836e033f9.js","static/chunks/4608-70521532195124de.js","static/chunks/9187-7438242f0d380bb0.js","static/chunks/1316-2606e19807c08aa5.js","static/chunks/3729-7d2d52400f1f7413.js","static/chunks/7630-9fbe06cfb98266fe.js","static/chunks/2921-0e5cc63a82e31830.js","static/chunks/787-3dd31844cf7fec55.js","static/chunks/9826-756c958aecab59a2.js","static/chunks/4121-64ef70ef906bbdd0.js"),self.__BUILD_MANIFEST_CB&&self.__BUILD_MANIFEST_CB();
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1099],{56632:function(e,t,n){var a=n(89278),i=n(80068),o=n(50098);e.exports=function(e){return function(t,n,r){var s=Object(t);if(!i(t)){var l=a(n,3);t=o(t),n=function(e){return l(s[e],e,s)}}var c=e(t,n,r);return c>-1?s[l?t[c]:c]:void 0}}},64925:function(e,t,n){var a=n(56632)(n(66259));e.exports=a},66259:function(e,t,n){var a=n(95372),i=n(89278),o=n(47991),r=Math.max;e.exports=function(e,t,n){var s=null==e?0:e.length;if(!s)return -1;var l=null==n?0:o(n);return l<0&&(l=r(s+l,0)),a(e,i(t,3),l)}},94919:function(e,t,n){var a=n(91936),i=1/0;e.exports=function(e){return e?(e=a(e))===i||e===-i?(e<0?-1:1)*17976931348623157e292:e==e?e:0:0===e?e:0}},47991:function(e,t,n){var a=n(94919);e.exports=function(e){var t=a(e),n=t%1;return t==t?n?t-n:t:0}},12627:function(e,t,n){"use strict";var a=n(24246),i=n(79283),o=n(34929);t.Z=e=>{let{selectedTaxonomies:t,showDisabled:n=!1,...r}=e,{getDataCategoryDisplayNameProps:s,getDataCategories:l}=(0,o.Z)(),c=(n?l():l().filter(e=>e.active)).filter(e=>!t.includes(e.fides_key)).map(e=>{let{name:t,primaryName:n}=s(e.fides_key);return{value:e.fides_key,name:t,primaryName:n,description:e.description||""}});return(0,a.jsx)(i.l,{options:c,...r})}},79283:function(e,t,n){"use strict";n.d(t,{l:function(){return l}});var a=n(24246),i=n(39941),o=n(72707),r=n.n(o);let s=e=>{let{data:{formattedTitle:t,description:n,name:o,primaryName:r}}=e;return(0,a.jsxs)(i.jqI,{gap:12,title:"".concat(t," - ").concat(n),children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("strong",{children:r||o}),r&&": ".concat(o)]}),(0,a.jsx)("em",{children:n})]})},l=e=>{let{options:t,...n}=e,o=null==t?void 0:t.map(e=>({...e,className:r().option,formattedTitle:[e.primaryName,e.name].filter(e=>e).join(": ")}));return(0,a.jsx)(i.WPr,{options:o,filterOption:(e,t)=>(null==t?void 0:t.formattedTitle.toLowerCase().includes(e.toLowerCase()))||(null==t?void 0:t.value.toLowerCase().includes(e.toLowerCase()))||!1,optionFilterProp:"label",autoFocus:!0,variant:"borderless",optionRender:s,dropdownStyle:{minWidth:"500px"},className:"w-full p-0","data-testid":"taxonomy-select",...n})}},34929:function(e,t,n){"use strict";var a=n(24246),i=n(64925),o=n.n(i),r=n(27378),s=n(16134),l=n(30002),c=n(28079),d=n(57072);let u=()=>{let{isLoading:e}=(0,c.fd)(),t=(0,s.C)(c.U3),{isLoading:n}=(0,d.MO)(),a=(0,s.C)(d.qb),{isLoading:i}=(0,l.te)();return{dataUses:t,dataSubjects:(0,s.C)(l.ZL),dataCategories:a,isLoading:e||n||i}};t.Z=()=>{let{dataUses:e,dataCategories:t,dataSubjects:n,isLoading:i}=u(),s=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;return e.split(".").slice(0,t).join(".")},l=function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,a=t(e);if(!a)return{};let i=t(s(e,n)),o=!!a.parent_key;return{name:a.name||void 0,primaryName:o&&(null==i?void 0:i.name)!==a.name&&(null==i?void 0:i.name)||void 0}},c=function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,{name:i,primaryName:o}=l(e,t,n);return i?o?(0,a.jsxs)(r.Fragment,{children:[(0,a.jsxs)("strong",{children:[o,":"]})," ",i]},e):(0,a.jsx)("strong",{children:i},e):e},d=t=>o()(e,{fides_key:t}),f=e=>o()(t,{fides_key:e}),g=e=>o()(n,{fides_key:e});return{getDataUses:()=>e,getDataUseByKey:d,getDataUseDisplayName:e=>c(e,d,1),getDataUseDisplayNameProps:e=>l(e,d,1),getDataCategories:()=>t,getDataCategoryByKey:f,getDataCategoryDisplayName:e=>c(e,f,2),getDataCategoryDisplayNameProps:e=>l(e,f,2),getDataSubjects:()=>n,getDataSubjectByKey:g,getDataSubjectDisplayName:e=>{let t=g(e);return t?t.name:e},getPrimaryKey:s,isLoading:i}}},61099:function(e,t,n){"use strict";var a=n(24246),i=n(39941),o=n(27378),r=n(12627),s=n(34929),l=n(26183),c=n(70675);t.Z=e=>{var t,n,d;let{resource:u}=e,[f,g]=(0,o.useState)(!1),{getDataCategoryDisplayName:v}=(0,s.Z)(),[p]=(0,c.NA)(),m=(null===(t=u.classifications)||void 0===t?void 0:t.length)?u.classifications[0].label:null,x=null!==(d=u.user_assigned_data_categories)&&void 0!==d?d:[],h=!m&&!(null==x?void 0:x.length),_=null===(n=u.sub_field_urns)||void 0===n?void 0:n.length,j=e=>{p({staged_resource_urn:u.urn,monitor_config_id:u.monitor_config_id,user_assigned_data_categories:[...x,e]})},y=e=>{var t;p({staged_resource_urn:u.urn,monitor_config_id:u.monitor_config_id,user_assigned_data_categories:null!==(t=null==x?void 0:x.filter(t=>t!==e))&&void 0!==t?t:[]})},b=!f&&!!x.length,w=!f&&!!m&&!x.length;return(0,a.jsxs)(l.Z,{"data-testid":"edit-category-cell",children:[h&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(i.j8w,{"data-testid":"no-classifications",color:"white",children:"None"}),!_&&(0,a.jsx)(i.j8w,{onClick:()=>g(!0),addable:!0,"data-testid":"taxonomy-add-btn","aria-label":"Add category"})]}),b&&(0,a.jsxs)(a.Fragment,{children:[x.map(e=>(0,a.jsx)(i.j8w,{"data-testid":"user-classification-".concat(e),color:"white",closable:!0,onClose:()=>y(e),closeButtonLabel:"Remove category",children:v(e)},e)),(0,a.jsx)(i.j8w,{onClick:()=>g(!0),addable:!0,"data-testid":"taxonomy-add-btn","aria-label":"Add category"})]}),w&&(0,a.jsxs)(i.j8w,{onClick:()=>g(!0),color:"white","data-testid":"classification-".concat(m),hasSparkle:!0,children:[v(m),(0,a.jsx)(i.PJP.I8b,{size:10})]}),f&&(0,a.jsx)(i.xuv,{className:"select-wrapper",position:"absolute",zIndex:10,top:"0",left:"0",width:"100%",height:"max",bgColor:"#fff",children:(0,a.jsx)(r.Z,{selectedTaxonomies:x,onChange:e=>{g(!1),j(e)},onBlur:()=>g(!1),open:!0})})]})}},26183:function(e,t,n){"use strict";var a=n(24246);n(27378),t.Z=e=>{let{children:t,className:n,...i}=e;return(0,a.jsx)("div",{className:"relative flex w-full flex-wrap items-center gap-2 overflow-x-auto py-2 ".concat(n||""),...i,children:t})}},72707:function(e){e.exports={option:"TaxonomySelect_option__vY6v2"}}}]);
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1138],{35287:function(e,t,s){var n=s(24246),r=s(39941),a=s(88038),i=s.n(a);s(27378),t.Z=e=>{let{children:t,title:s,mainProps:a}=e;return(0,n.jsxs)(r.kCb,{"data-testid":s,direction:"column",height:"calc(100vh - 48px)",width:"calc(100vw - 240px)",children:[(0,n.jsxs)(i(),{children:[(0,n.jsxs)("title",{children:["Fides Admin UI - ",s]}),(0,n.jsx)("meta",{name:"description",content:"Privacy Engineering Platform"}),(0,n.jsx)("link",{rel:"icon",href:"/favicon.ico"})]}),(0,n.jsx)(r.kCb,{px:10,py:6,as:"main",overflow:"auto",direction:"column",flex:1,minWidth:0,...a,children:t})]})}},34929:function(e,t,s){var n=s(24246),r=s(64925),a=s.n(r),i=s(27378),o=s(16134),l=s(30002),u=s(28079),c=s(57072);let d=()=>{let{isLoading:e}=(0,u.fd)(),t=(0,o.C)(u.U3),{isLoading:s}=(0,c.MO)(),n=(0,o.C)(c.qb),{isLoading:r}=(0,l.te)();return{dataUses:t,dataSubjects:(0,o.C)(l.ZL),dataCategories:n,isLoading:e||s||r}};t.Z=()=>{let{dataUses:e,dataCategories:t,dataSubjects:s,isLoading:r}=d(),o=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;return e.split(".").slice(0,t).join(".")},l=function(e,t){let s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,n=t(e);if(!n)return{};let r=t(o(e,s)),a=!!n.parent_key;return{name:n.name||void 0,primaryName:a&&(null==r?void 0:r.name)!==n.name&&(null==r?void 0:r.name)||void 0}},u=function(e,t){let s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,{name:r,primaryName:a}=l(e,t,s);return r?a?(0,n.jsxs)(i.Fragment,{children:[(0,n.jsxs)("strong",{children:[a,":"]})," ",r]},e):(0,n.jsx)("strong",{children:r},e):e},c=t=>a()(e,{fides_key:t}),m=e=>a()(t,{fides_key:e}),p=e=>a()(s,{fides_key:e});return{getDataUses:()=>e,getDataUseByKey:c,getDataUseDisplayName:e=>u(e,c,1),getDataUseDisplayNameProps:e=>l(e,c,1),getDataCategories:()=>t,getDataCategoryByKey:m,getDataCategoryDisplayName:e=>u(e,m,2),getDataCategoryDisplayNameProps:e=>l(e,m,2),getDataSubjects:()=>s,getDataSubjectByKey:p,getDataSubjectDisplayName:e=>{let t=p(e);return t?t.name:e},getPrimaryKey:o,isLoading:r}}},25415:function(e,t,s){s.d(t,{a:function(){return a}});var n=s(24246);let{Text:r}=s(39941).AntTypography,a=e=>{let{count:t}=e;return(0,n.jsx)(r,{size:"sm",strong:!0,"data-testid":"selected-count",children:"".concat(t," selected")})}},2525:function(e,t,s){s.d(t,{Q:function(){return o}});var n=s(24246),r=s(39941),a=s(27378),i=s(3110);let o=e=>{let{values:t,columnState:s,...o}=e,{isExpanded:l,isWrapped:u,version:c}=s||{},[d,m]=(0,a.useState)(!l),[p,y]=(0,a.useState)(!!u),[g,v]=(0,a.useState)(l?t:null==t?void 0:t.slice(0,2));(0,a.useEffect)(()=>{m(!l)},[l,c]),(0,a.useEffect)(()=>{y(!!u)},[u]),(0,a.useEffect)(()=>{(null==t?void 0:t.length)&&v(d?t.slice(0,2):t)},[d,t]);let f=(0,a.useCallback)(()=>{v(null==t?void 0:t.slice(0,2)),m(!0)},[t]),h=(0,a.useCallback)(()=>{m(!1)},[]),T=(0,a.useCallback)(()=>{d?h():f()},[d,h,f]);return(0,a.useMemo)(()=>(null==g?void 0:g.length)?(0,n.jsxs)(r.jqI,{align:"center",wrap:p?"wrap":"nowrap",gap:"small","data-testid":"tag-expandable-cell",children:[g.map(e=>(0,n.jsx)(r.j8w,{color:"white","data-testid":e.key,...o,children:e.label},e.key)),t&&t.length>2&&(0,n.jsx)(r.wpx,{type:"link",size:"small",onClick:e=>{e.stopPropagation(),T()},className:"h-auto p-0",style:{fontSize:"var(--ant-font-size)"},children:d?"+".concat(t.length-2," more"):i.T})]}):(0,n.jsx)("span",{"data-testid":"tag-expandable-cell-empty"}),[g,d,p,t,T,o])}},3110:function(e,t,s){s.d(t,{D:function(){return i},T:function(){return a}});var n=s(24246),r=s(39941);let a="show less",i=[{key:"expand-all",label:"Expand all",icon:(0,n.jsx)(r.PJP.jbG,{})},{key:"collapse-all",label:"Collapse all",icon:(0,n.jsx)(r.PJP.MVB,{})}]},26070:function(e,t,s){s.d(t,{v:function(){return l},Q:function(){return u.Q}});var n=s(24246),r=s(39941),a=s(27378),i=s(3110);let{Text:o}=r.AntTypography,l=e=>{let{values:t,valueSuffix:s,columnState:l}=e,{isExpanded:u,version:c}=l||{},[d,m]=(0,a.useState)(!u);(0,a.useEffect)(()=>{m(!u)},[u,c]);let p=(0,a.useCallback)(()=>{m(!0)},[]),y=(0,a.useCallback)(()=>{m(!1)},[]),g=(0,a.useCallback)(()=>{d?y():p()},[d,y,p]);return(0,a.useMemo)(()=>(null==t?void 0:t.length)?1===t.length?(0,n.jsx)(o,{ellipsis:!0,"data-testid":"list-expandable-cell-single",children:t[0]}):(0,n.jsxs)(r.jqI,{align:d?"center":"flex-start",vertical:!d,gap:d?"small":"none","data-testid":"list-expandable-cell",children:[d?(0,n.jsxs)(o,{ellipsis:!0,children:[t.length," ",s]}):(0,n.jsx)(r.krs,{dataSource:t,renderItem:e=>(0,n.jsx)("li",{children:e})}),(0,n.jsx)(r.wpx,{type:"link",size:"small",onClick:e=>{e.stopPropagation(),g()},className:"h-auto p-0",style:{fontSize:"var(--ant-font-size)"},children:d?"view":i.T})]}):null,[d,t,s,g])};var u=s(2525)},54762:function(e,t,s){s.d(t,{l:function(){return o}});var n=s(24246),r=s(39941),a=s(62165),i=s(54682);let o=e=>{let{consentStatus:t}=e,{flags:s}=(0,a.hz)(),{assetConsentStatusLabels:o}=s;return o&&(null==t?void 0:t.status)===i.pF.ALERT?(0,n.jsx)(r.esZ,{title:null==t?void 0:t.message,"data-testid":"discovery-status-icon-alert-tooltip",children:(0,n.jsx)("div",{className:"mb-px","data-testid":"discovery-status-icon-alert",children:(0,n.jsx)(r.PJP.OdJ,{style:{color:"var(--fidesui-error)"}})})}):null}},9320:function(e,t,s){s.d(t,{_:function(){return a}});var n=s(24246),r=s(26089);let a=(e,t)=>(0,n.jsxs)(n.Fragment,{children:[e," ",t&&(0,n.jsx)(r.Z,{onClick:t,children:"View"})]})},37059:function(e,t,s){s.d(t,{Ak:function(){return v},EY:function(){return m},Tj:function(){return y},Ud:function(){return o},Vr:function(){return f},WJ:function(){return u},mi:function(){return h},nP:function(){return d},nS:function(){return p},rs:function(){return c},sX:function(){return g},ut:function(){return T},wi:function(){return l}});var n=s(78780),r=s(16394),a=s(54682),i=s(98145);let{useGetAggregateMonitorResultsQuery:o,useGetDiscoveredSystemAggregateQuery:l,useGetDiscoveredAssetsQuery:u,useAddMonitorResultSystemsMutation:c,useIgnoreMonitorResultSystemsMutation:d,useAddMonitorResultAssetsMutation:m,useIgnoreMonitorResultAssetsMutation:p,useRestoreMonitorResultAssetsMutation:y,useUpdateAssetsSystemMutation:g,useUpdateAssetsDataUseMutation:v,useUpdateAssetsMutation:f,useGetConsentBreakdownQuery:h,useGetWebsiteMonitorResourceFiltersQuery:T}=n.u.injectEndpoints({endpoints:e=>({getAggregateMonitorResults:e.query({query:e=>{let{page:t=1,size:s=20,search:n}=e;return{url:"/plus/discovery-monitor/aggregate-results",params:{page:t,size:s,search:n,diff_status:"addition"}}},providesTags:["Discovery Monitor Results"]}),getDiscoveredSystemAggregate:e.query({query:e=>{let{key:t,page:s=1,size:n=20,search:r,diff_status:a}=e;return{url:"/plus/discovery-monitor/system-aggregate-results",params:{monitor_config_id:t,page:s,size:n,search:r,diff_status:a}}},providesTags:["Discovery Monitor Results"]}),getDiscoveredAssets:e.query({query:e=>{let{key:t,system:s,page:n=1,size:o=20,search:l,diff_status:u=[a.LL.ADDITION],sort_by:c=[i.r.CONSENT_AGGREGATED,"urn"],sort_asc:d=!0,resource_type:m,data_uses:p,locations:y,consent_aggregated:g}=e,v=Array.isArray(c)?c:[c],f=(0,r.$J)({sort_by:v,resource_type:m,data_uses:p,locations:y,consent_aggregated:g});return{url:"/plus/discovery-monitor/".concat(t,"/results?").concat(f.toString()),params:{resolved_system_id:s,page:n,size:o,search:l,diff_status:u,sort_asc:d}}},providesTags:()=>["Discovery Monitor Results"]}),addMonitorResultSystems:e.mutation({query:e=>{let{monitor_config_key:t,resolved_system_ids:s}=e,n=(0,r.du)(s,"resolved_system_ids");return{url:"/plus/discovery-monitor/".concat(t,"/promote"),method:"POST",params:n?new URLSearchParams(n):new URLSearchParams}},invalidatesTags:["Discovery Monitor Results"]}),ignoreMonitorResultSystems:e.mutation({query:e=>{let{monitor_config_key:t,resolved_system_ids:s}=e,n=(0,r.du)(s,"resolved_system_ids");return{method:"POST",url:"/plus/discovery-monitor/".concat(t,"/mute?").concat(n)}},invalidatesTags:["Discovery Monitor Results"]}),addMonitorResultAssets:e.mutation({query:e=>{var t;let s=new URLSearchParams;return null===(t=e.urnList)||void 0===t||t.forEach(e=>s.append("staged_resource_urns",e)),{method:"POST",url:"/plus/discovery-monitor/promote?".concat(s)}},invalidatesTags:["Discovery Monitor Results"]}),ignoreMonitorResultAssets:e.mutation({query:e=>{var t;let s=new URLSearchParams;return null===(t=e.urnList)||void 0===t||t.forEach(e=>s.append("staged_resource_urns",e)),{method:"POST",url:"/plus/discovery-monitor/mute?".concat(s)}},invalidatesTags:["Discovery Monitor Results"]}),restoreMonitorResultAssets:e.mutation({query:e=>{var t;let s=new URLSearchParams({status_to_set:a.LL.ADDITION});return null===(t=e.urnList)||void 0===t||t.forEach(e=>s.append("staged_resource_urns",e)),{method:"POST",url:"/plus/discovery-monitor/un-mute?".concat(s)}},invalidatesTags:["Discovery Monitor Results"]}),updateAssetsSystem:e.mutation({query:e=>({method:"PATCH",url:"/plus/discovery-monitor/".concat(e.monitorId,"/results"),body:e.urnList.map(t=>({urn:t,user_assigned_system_key:e.systemKey}))}),invalidatesTags:["Discovery Monitor Results","System Assets"]}),updateAssetsDataUse:e.mutation({query:e=>({method:"PATCH",url:"/plus/discovery-monitor/".concat(e.monitorId,"/results"),body:e.urnList.map(t=>({urn:t,user_assigned_data_uses:e.dataUses}))}),invalidatesTags:["Discovery Monitor Results"]}),updateAssets:e.mutation({query:e=>({method:"PATCH",url:"/plus/discovery-monitor/".concat(e.monitorId,"/results"),body:e.assets}),invalidatesTags:["Discovery Monitor Results"]}),getConsentBreakdown:e.query({query:e=>{let{stagedResourceUrn:t,status:s,page:n=1,size:r=20}=e;return{url:"/plus/discovery-monitor/staged_resource/".concat(encodeURIComponent(t),"/consent"),params:{status:s,page:n,size:r}}}}),getWebsiteMonitorResourceFilters:e.query({query:e=>{let{monitor_config_id:t,resolved_system_id:s,diff_status:n=[a.LL.ADDITION],search:i,resource_type:o,data_uses:l,locations:u,consent_aggregated:c}=e,d={monitor_config_id:t,resolved_system_id:s,diff_status:n};i&&(d.search=i);let m=(0,r.$J)({resource_type:o,data_uses:l,locations:u,consent_aggregated:c}).toString();return{url:m?"/plus/filters/website_monitor_resources?".concat(m):"/plus/filters/website_monitor_resources",params:d}},providesTags:["Discovery Monitor Results"]})})})},98145:function(e,t,s){var n,r,a,i;s.d(t,{X:function(){return n},r:function(){return r}}),(a=n||(n={})).WITH_CONSENT="With consent",a.WITHOUT_CONSENT="Without consent",a.EXEMPT="Exempt",a.UNKNOWN="Unknown",(i=r||(r={})).NAME="name",i.RESOURCE_TYPE="resource_type",i.SYSTEM="system",i.DATA_USES="data_uses",i.LOCATIONS="locations",i.DOMAIN="domain",i.PAGE="page",i.CONSENT_AGGREGATED="consent_aggregated",i.ACTIONS="actions"},88708:function(e,t,s){s.d(t,{A:function(){return r}});var n,r,a=s(27378),i=s(14908),o=s(54682);(n=r||(r={})).ATTENTION_REQUIRED="attention-required",n.RECENT_ACTIVITY="recent-activity",n.IGNORED="ignored",t.Z=e=>{let{activeTab:t,onTabChange:s}=(0,i.Z)({tabKeys:Object.values(r)}),n=(0,a.useMemo)(()=>[{label:"Attention required",params:{diff_status:[o.LL.ADDITION],system:e},hash:"attention-required"},{label:"Recent activity",params:{diff_status:[o.LL.MONITORED]},hash:"recent-activity"},{label:"Ignored",params:{diff_status:[o.LL.MUTED],system:e},hash:"ignored"}],[e]),{diff_status:l,system:u}=(0,a.useMemo)(()=>{var e;return null!==(e=n.find(e=>e.hash===t))&&void 0!==e?e:n[0]},[n,t]).params,c=(0,a.useMemo)(()=>l.includes(o.LL.MONITORED),[l]);return{filterTabs:n,activeTab:t,onTabChange:s,activeParams:(0,a.useMemo)(()=>e?{diff_status:l,system:u}:{diff_status:l},[e,l,u]),actionsDisabled:c}}},78238:function(e,t,s){s.d(t,{g:function(){return n}});let n=["essential","functional.service.improve","personalize","analytics","marketing.advertising.first_party.targeted","marketing.advertising.third_party.targeted"];t.Z=e=>n.includes(e)},31883:function(e,t,s){s.d(t,{Bw:function(){return n.Bw},D4:function(){return n.D4}});var n=s(19043)}}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1345],{11611:function(e){e.exports=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}},55193:function(e,t,i){var a=i(99736),r=i(92360);e.exports=function(e){return"symbol"==typeof e||r(e)&&"[object Symbol]"==a(e)}},14908:function(e,t,i){"use strict";var a=i(86677),r=i(27378);let s=e=>e.startsWith("#")?e.slice(1):e;t.Z=e=>{let{tabKeys:t,initialTab:i}=e,l=(0,a.useRouter)(),o=l.asPath.split("#")[1]||t[0],[n,c]=(0,r.useState)(o);return(0,r.useEffect)(()=>{i&&t.includes(i)&&c(i)},[i,t,l.isReady]),{activeTab:n,onTabChange:(0,r.useCallback)(async e=>{if(!t.includes(e)){await l.replace({pathname:l.pathname,query:l.query,hash:void 0}),c(t[0]);return}l.isReady&&(await l.replace({pathname:l.pathname,query:l.query,hash:s(e)},void 0,{shallow:!0}),c(e))},[l,t])}}},69828:function(e,t,i){"use strict";i.d(t,{Y:function(){return l}});var a=i(24246),r=i(39941),s=i(70788);let l=[(0,a.jsx)(r.PJP.S9g,{},"layers"),(0,a.jsx)(r.PJP.ehp,{},"dataset"),(0,a.jsx)(r.PJP.iA_,{},"table"),(0,a.jsx)(r.PJP.$4y,{style:{transform:"rotate(-90deg)"}},"field")];t.Z=e=>{let{resourceUrn:t,parentLink:i,onPathClick:r=()=>{}}=e,o=[];if(t||o.push({title:"All activity"}),t){o.push({title:"All activity",href:i});let e=t.split(".");e.forEach((t,i)=>{0!==i&&o.push({title:t,icon:l[i-1],onClick:t=>{t.preventDefault(),r(e.slice(0,i+1).join("."))}})})}return(0,a.jsx)(s.m,{"data-testid":"results-breadcrumb",items:o})}},1039:function(e,t,i){"use strict";i.d(t,{Z:function(){return I}});var a,r,s=i(24246),l=i(59003),o=i(92222),n=i(39941),c=i(27378),d=i(47935),u=i(70675),h=i(72625),m=i(54409),g=i(79947),x=i(87667),j=i(50169),v=i(28278),L=i(54682),p=i(74241),f=e=>{let{resourceType:t,changeTypeOverride:i}=e,a=(0,o.Cl)(),r=[];return t?t===L.D$.SCHEMA?{columns:[a.accessor(e=>e.name,{id:"name",cell:e=>(0,s.jsx)(x.Z,{changeTypeOverride:i,result:e.row.original}),header:e=>(0,s.jsx)(d.Rr,{value:"Name",...e}),size:300}),a.accessor(e=>e.urn,{id:"project",cell:e=>(0,s.jsx)(d.G3,{value:(0,p.Z)(e.getValue())}),header:e=>(0,s.jsx)(d.Rr,{value:"Project",...e})}),a.display({id:"status",cell:e=>(0,s.jsx)(j.Z,{changeTypeOverride:i,result:e.row.original}),header:e=>(0,s.jsx)(d.Rr,{value:"Status",...e})}),a.accessor(e=>e.system,{id:"system",cell:e=>(0,s.jsx)(d.G3,{value:e.getValue()}),header:e=>(0,s.jsx)(d.Rr,{value:"System",...e})}),a.accessor(e=>e.monitor_config_id,{id:"monitor",cell:e=>(0,s.jsx)(d.G3,{value:e.getValue()}),header:e=>(0,s.jsx)(d.Rr,{value:"Detected by",...e})}),a.accessor(e=>e.updated_at,{id:"time",cell:e=>(0,s.jsx)(h.Cy,{time:e.getValue()}),header:e=>(0,s.jsx)(d.Rr,{value:"When",...e})}),a.display({id:"actions",cell:e=>(0,s.jsx)(m.Z,{ignoreChildActions:i===v.E.MONITORED||i===v.E.MUTED,resource:e.row.original}),header:"Actions",size:200,meta:{disableRowClick:!0}})]}:t===L.D$.TABLE?{columns:[a.accessor(e=>e.name,{id:"name",cell:e=>(0,s.jsx)(x.Z,{changeTypeOverride:i,result:e.row.original}),header:e=>(0,s.jsx)(d.Rr,{value:"Table name",...e}),size:300}),a.accessor(e=>e.description,{id:"description",cell:e=>(0,s.jsx)(d.G3,{value:e.getValue(),cellProps:e}),header:e=>(0,s.jsx)(d.Rr,{value:"Description",...e}),meta:{showHeaderMenu:!0}}),a.display({id:"status",cell:e=>(0,s.jsx)(j.Z,{changeTypeOverride:i,result:e.row.original}),header:e=>(0,s.jsx)(d.Rr,{value:"Status",...e})}),a.accessor(e=>e.monitor_config_id,{id:"monitor",cell:e=>(0,s.jsx)(d.G3,{value:e.getValue()}),header:e=>(0,s.jsx)(d.Rr,{value:"Detected by",...e})}),a.accessor(e=>e.updated_at,{id:"time",cell:e=>(0,s.jsx)(h.Cy,{time:e.getValue()}),header:e=>(0,s.jsx)(d.Rr,{value:"When",...e})}),a.display({id:"actions",cell:e=>(0,s.jsx)(m.Z,{resource:e.row.original}),header:"Actions",size:200,meta:{disableRowClick:!0}})]}:t===L.D$.FIELD?{columns:[a.accessor(e=>e.name,{id:"name",cell:e=>(0,s.jsx)(x.Z,{changeTypeOverride:i,result:e.row.original}),header:e=>(0,s.jsx)(d.Rr,{value:"Field name",...e}),size:300}),a.accessor(e=>e.source_data_type,{id:"data-type",cell:e=>(0,s.jsx)(g.Z,{type:e.getValue()}),header:e=>(0,s.jsx)(d.Rr,{value:"Data type",...e})}),a.accessor(e=>e.description,{id:"description",cell:e=>(0,s.jsx)(d.G3,{value:e.getValue(),cellProps:e}),header:e=>(0,s.jsx)(d.Rr,{value:"Description",...e}),meta:{showHeaderMenu:!0}}),a.display({id:"status",cell:e=>(0,s.jsx)(j.Z,{changeTypeOverride:i,result:e.row.original}),header:e=>(0,s.jsx)(d.Rr,{value:"Status",...e})}),a.accessor(e=>e.monitor_config_id,{id:"monitor",cell:e=>(0,s.jsx)(d.G3,{value:e.getValue()}),header:e=>(0,s.jsx)(d.Rr,{value:"Detected by",...e})}),a.accessor(e=>e.updated_at,{id:"time",cell:e=>(0,s.jsx)(h.Cy,{time:e.getValue()}),header:e=>(0,s.jsx)(d.Rr,{value:"When",...e})}),a.display({id:"actions",cell:e=>(0,s.jsx)(m.Z,{resource:e.row.original}),header:"Actions",size:200,meta:{disableRowClick:!0}})]}:t===L.D$.ENDPOINT?{columns:[a.accessor(e=>e.name,{id:"name",cell:e=>(0,s.jsx)(x.Z,{changeTypeOverride:i,result:e.row.original}),header:e=>(0,s.jsx)(d.Rr,{value:"Object",...e}),size:300}),a.accessor(e=>e.description,{id:"description",cell:e=>(0,s.jsx)(d.G3,{value:e.getValue(),cellProps:e}),header:e=>(0,s.jsx)(d.Rr,{value:"Description",...e}),meta:{showHeaderMenu:!0}}),a.display({id:"status",cell:e=>(0,s.jsx)(j.Z,{changeTypeOverride:i,result:e.row.original}),header:e=>(0,s.jsx)(d.Rr,{value:"Status",...e})}),a.accessor(e=>e.monitor_config_id,{id:"monitor",cell:e=>(0,s.jsx)(d.G3,{value:e.getValue()}),header:e=>(0,s.jsx)(d.Rr,{value:"Detected by",...e})}),a.accessor(e=>e.updated_at,{id:"time",cell:e=>(0,s.jsx)(h.Cy,{time:e.getValue()}),header:e=>(0,s.jsx)(d.Rr,{value:"When",...e})}),a.display({id:"actions",cell:e=>(0,s.jsx)(m.Z,{resource:e.row.original}),header:"Actions",size:200,meta:{disableRowClick:!0}})]}:{columns:r}:{columns:r}},y=i(14908);(a=r||(r={})).ACTION_REQUIRED="action-required",a.MONITORED="monitored",a.UNMONITORED="unmonitored";let D={"action-required":{label:"Action Required",key:"action-required",filters:[L.LL.ADDITION,L.LL.REMOVAL],childFilters:[L.LL.ADDITION,L.LL.REMOVAL]},monitored:{label:"Monitored",key:"monitored",filters:[L.LL.MONITORED],childFilters:[],changeTypeOverride:v.E.MONITORED},unmonitored:{label:"Unmonitored",key:"unmonitored",filters:[L.LL.MUTED],childFilters:[],changeTypeOverride:v.E.MUTED}};var R=()=>{var e,t,i;let{activeTab:a,onTabChange:s}=(0,y.Z)({tabKeys:Object.values(r)});return{filterTabs:Object.values(D),activeTabKey:a,onTabChange:s,activeDiffFilters:null===(e=D[a])||void 0===e?void 0:e.filters,activeChildDiffFilters:null===(t=D[a])||void 0===t?void 0:t.childFilters,activeChangeTypeOverride:null===(i=D[a])||void 0===i?void 0:i.changeTypeOverride}},b=i(47182),_=i(38347),T=i(7940),w=i(80285),C=i(36168),O=i(30952);let H={items:[],total:0,page:1,size:50,pages:1},M=()=>(0,s.jsx)(n.gCW,{mt:6,p:10,spacing:4,borderRadius:"base",maxW:"70%","data-testid":"empty-state",alignSelf:"center",margin:"auto",children:(0,s.jsxs)(n.gCW,{children:[(0,s.jsx)(n.xvT,{fontSize:"md",fontWeight:"600",children:"No activity found"}),(0,s.jsx)(n.xvT,{fontSize:"sm",children:"You're up to date!"})]})});var I=e=>{let{resourceUrn:t}=e,[i,a]=(0,c.useState)(""),{filterTabs:r,activeTabKey:h,onTabChange:m,activeDiffFilters:g,activeChildDiffFilters:x,activeChangeTypeOverride:j}=R(),{PAGE_SIZES:v,pageSize:p,setPageSize:y,onPreviousPageClick:D,isPreviousPageDisabled:I,onNextPageClick:Z,isNextPageDisabled:E,startRange:k,endRange:A,pageIndex:N,setTotalPages:P,resetPageIndexToDefault:V}=(0,d.oi)();(0,c.useEffect)(()=>{V()},[t,i,V,g,x]);let{isFetching:S,isLoading:F,data:z}=(0,u.z8)({staged_resource_urn:t,page:N,size:p,child_diff_status:x,diff_status:g,search:i}),U=(0,T.G)(null==z?void 0:z.items[0]),{columns:$}=f({resourceType:U,changeTypeOverride:j}),{items:G,total:q,pages:W}=(0,c.useMemo)(()=>null!=z?z:H,[z]);(0,c.useEffect)(()=>{P(W)},[W,P]);let B=(0,c.useMemo)(()=>$,[$]),{navigateToDetectionResults:J}=(0,b.Z)(),K=(0,l.b7)({getCoreRowModel:(0,o.sC)(),getGroupedRowModel:(0,o.qe)(),getExpandedRowModel:(0,o.rV)(),getRowId:w.Z,columns:B,manualPagination:!0,data:G,columnResizeMode:"onChange"});return F?(0,s.jsx)(d.I4,{rowHeight:36,numRows:36}):(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.A5g,{items:r.map(e=>({key:e.key,label:e.label})),activeKey:h,onChange:e=>m(e)}),(0,s.jsx)(d.Q$,{children:(0,s.jsx)(n.kCb,{direction:"row",alignItems:"center",justifyContent:"space-between",width:"full",children:(0,s.jsxs)(n.kCb,{gap:6,align:"center",children:[(0,s.jsx)(n.xuv,{flexShrink:0,children:(0,s.jsx)(O.f,{value:i,onChange:a})}),(0,s.jsx)(_.Z,{})]})})}),(0,s.jsx)(d.ZK,{tableInstance:K,onRowClick:e=>J({resourceUrn:e.urn,filterTab:h}),getRowIsClickable:e=>U!==L.D$.FIELD||(0,C.Z)(e),emptyTableNotice:(0,s.jsx)(M,{})}),(0,s.jsx)(d.s8,{totalRows:q||0,pageSizes:v,setPageSize:y,onPreviousPageClick:D,isPreviousPageDisabled:I||S,onNextPageClick:Z,isNextPageDisabled:E||S,startRange:k,endRange:A})]})}},54409:function(e,t,i){"use strict";i.d(t,{Z:function(){return g}});var a=i(24246),r=i(39941),s=i(812),l=i(25010),o=i(54682),n=i(31883);let c=(0,r.IUT)({displayName:"MonitorOffIcon",viewBox:"0 0 12 12",path:(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M5.47125 1H5.85H6.15H6.51188L6.58875 1.36914L7.52062 5.83268L6.42408 4.98635L6.03375 3.11719L5.8038 4.50761L4.99323 3.882L5.40562 1.38867L5.47125 1ZM4.80795 5.0022L4.67675 5.79545L5.48735 6.42109L5.61854 5.62783L4.80795 5.0022ZM6.73856 6.49227L6.96125 7.55866L8.42407 8.6877L8.69498 8.00228L7.94864 7.42624L7.88625 7.58398L7.83501 7.33853L6.73856 6.49227ZM8.33138 6.45844L9.07755 7.03434L9.30188 6.4668H11.55H12V5.5293H11.55H9H8.69812L8.58375 5.82031L8.33138 6.45844ZM7.27551 9.06443L7.35399 9.125H7.28813L7.27551 9.06443ZM4.49147 6.91566L5.30209 7.54131L4.79437 10.6113L4.72875 11H4.35H4.05H3.69563L3.61313 10.6406L2.64563 6.46875H0.45H0V5.53125H0.45H2.69777L3.49646 6.1477L4.15125 8.97266L4.49147 6.91566Z",fill:"currentColor"}),(0,a.jsx)("g",{clipPath:"url(#clip0_341_3102)",children:(0,a.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M10.6755 10.4168L0.164222 2.304L0.775218 1.51237L11.2865 9.62517L10.6755 10.4168Z",fill:"currentColor"})}),(0,a.jsx)("defs",{children:(0,a.jsx)("clipPath",{id:"clip0_341_3102",children:(0,a.jsx)("rect",{width:"11.5",height:"9",fill:"white",transform:"translate(0 1.5)"})})})]})}),d=(0,r.IUT)({displayName:"MonitorOnIcon",viewBox:"0 0 12 10",path:(0,a.jsx)("path",{d:"M5.47125 0H5.85H6.15H6.51188L6.58875 0.369141L7.88625 6.58398L8.58375 4.82031L8.69812 4.5293H9H11.55H12V5.4668H11.55H9.30188L8.36625 7.83398L8.25188 8.125H7.95H7.65H7.28813L7.21125 7.75586L6.03375 2.11719L4.79437 9.61133L4.72875 10H4.35H4.05H3.69563L3.61313 9.64062L2.64563 5.46875H0.45H0V4.53125H0.45H3H3.35438L3.43688 4.89062L4.15125 7.97266L5.40562 0.388672L5.47125 0Z",fill:"currentColor"})});var u=i(79494),h=i(70675),m=i(7940),g=e=>{let{resource:t,ignoreChildActions:i=!1}=e,g=(0,m.G)(t),[x,{isLoading:j}]=(0,h.v8)(),[v,{isLoading:L}]=(0,h.vi)(),[p,{isLoading:f}]=(0,h.Tl)(),{successAlert:y,errorAlert:D}=(0,l.VY)(),R=async()=>{let e=await x({staged_resource_urn:t.urn,monitor_config_id:t.monitor_config_id});(0,n.D4)(e)?D((0,s.e$)(e.error,"Failed to confirm resource")):y("Data discovery has started. The results may take some time to appear in the “Data discovery“ tab.","".concat(t.name||"The resource"," is now being monitored."))},b=async()=>{let e=await p({staged_resource_urn:t.urn});(0,n.D4)(e)?D((0,s.e$)(e.error),"Failed to un-mute resource"):y("".concat(t.name||"The resource"," has been un-muted and is now being monitored."))},_=async()=>{let e=await x({staged_resource_urn:t.urn,monitor_config_id:t.monitor_config_id,unmute_children:!0,classify_monitored_resources:!0});(0,n.D4)(e)?D((0,s.e$)(e.error),"Failed to un-mute resource"):y("Data discovery has started. The results may take some time to appear in the “Data discovery“ tab.","".concat(t.name||"The resource"," is now being monitored."))},T=async()=>{let e=await v({staged_resource_urn:t.urn});(0,n.D4)(e)?D((0,s.e$)(e.error),"Failed to mute resource"):y("Ignored data will not be monitored for changes or added to Fides datasets.","".concat(t.name||"Resource"," ignored"))},w=j||L||f,{diff_status:C,child_diff_statuses:O}=t,H=g===o.D$.SCHEMA,M=g===o.D$.FIELD,I=O&&(O[o.LL.CLASSIFICATION_ADDITION]||O[o.LL.CLASSIFICATION_UPDATE]),Z=H&&void 0===C||!M&&C===o.LL.ADDITION||I,E=C!==o.LL.MUTED,k=C===o.LL.MUTED&&!M,A=C===o.LL.MUTED&&M,N=O&&(O[o.LL.ADDITION]||O[o.LL.REMOVAL]),P=C===o.LL.MONITORED&&!i&&N&&!I;return(0,a.jsxs)(r.Ugi,{children:[(Z||P)&&(0,a.jsx)(u.Z,{title:"Monitor",icon:(0,a.jsx)(d,{}),onClick:R,disabled:w,loading:j}),A&&(0,a.jsx)(u.Z,{title:"Un-Mute",icon:(0,a.jsx)(d,{}),onClick:b,disabled:w,loading:j}),k&&(0,a.jsx)(u.Z,{title:"Monitor",icon:(0,a.jsx)(d,{}),onClick:_,disabled:w,loading:j}),E&&(0,a.jsx)(u.Z,{title:"Ignore",icon:(0,a.jsx)(c,{}),onClick:T,disabled:w,loading:L})]})}},79947:function(e,t,i){"use strict";var a=i(24246),r=i(39941);t.Z=e=>{let{type:t}=e;return(0,a.jsx)(r.kCb,{align:"center",h:"full",children:!!t&&(0,a.jsx)(r.j8w,{children:t})})}},31883:function(e,t,i){"use strict";i.d(t,{Bw:function(){return a.Bw},D4:function(){return a.D4}});var a=i(19043)}}]);