ethyca-fides 2.57.1b5__py2.py3-none-any.whl → 2.57.1b7__py2.py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (221) hide show
  1. {ethyca_fides-2.57.1b5.dist-info → ethyca_fides-2.57.1b7.dist-info}/METADATA +1 -1
  2. {ethyca_fides-2.57.1b5.dist-info → ethyca_fides-2.57.1b7.dist-info}/RECORD +190 -189
  3. fides/_version.py +3 -3
  4. fides/api/api/v1/endpoints/config_endpoints.py +4 -2
  5. fides/api/models/attachment.py +6 -8
  6. fides/api/models/comment.py +17 -17
  7. fides/api/models/privacy_request/privacy_request.py +61 -0
  8. fides/api/service/storage/s3.py +133 -0
  9. fides/api/service/storage/util.py +10 -0
  10. fides/api/tasks/storage.py +12 -111
  11. fides/config/__init__.py +1 -1
  12. fides/ui-build/static/admin/404.html +1 -1
  13. fides/ui-build/static/admin/_next/static/chunks/1376-c177d8d0c60b1166.js +1 -0
  14. fides/ui-build/static/admin/_next/static/chunks/2201-0452b4135058f0fc.js +1 -0
  15. fides/ui-build/static/admin/_next/static/chunks/302-fb0e3cd140c4364d.js +1 -0
  16. fides/ui-build/static/admin/_next/static/chunks/3320-317483e6c10bae51.js +1 -0
  17. fides/ui-build/static/admin/_next/static/chunks/355-6a87b50acf54e985.js +1 -0
  18. fides/ui-build/static/admin/_next/static/chunks/3662-6a0cafa3023aa7a2.js +1 -0
  19. fides/ui-build/static/admin/_next/static/chunks/4723-1a785d558dfb6441.js +1 -0
  20. fides/ui-build/static/admin/_next/static/chunks/6362-0ca70f8cfd020723.js +1 -0
  21. fides/ui-build/static/admin/_next/static/chunks/6954-f7daf613febc36ef.js +1 -0
  22. fides/ui-build/static/admin/_next/static/chunks/7434-3d4a0beb84ec57f7.js +1 -0
  23. fides/ui-build/static/admin/_next/static/chunks/7495-b7fa6fdbd910bd72.js +1 -0
  24. fides/ui-build/static/admin/_next/static/chunks/7980-91800d54c5964ba3.js +1 -0
  25. fides/ui-build/static/admin/_next/static/chunks/pages/{_app-b8d38dabe3db0ee0.js → _app-e53d13729068a001.js} +8 -8
  26. fides/ui-build/static/admin/_next/static/chunks/pages/add-systems/{manual-05ab19822a7e9f80.js → manual-f8c0b05aae0bbcd1.js} +1 -1
  27. fides/ui-build/static/admin/_next/static/chunks/pages/add-systems/{multiple-18b0b521255289a3.js → multiple-6a7208eee5e588fb.js} +1 -1
  28. fides/ui-build/static/admin/_next/static/chunks/pages/add-systems-a33f82e79cb09478.js +1 -0
  29. fides/ui-build/static/admin/_next/static/chunks/pages/consent/configure/{add-vendors-64f83e9a2b777bf3.js → add-vendors-ba0c5fa9764cbd89.js} +1 -1
  30. fides/ui-build/static/admin/_next/static/chunks/pages/consent/{configure-e11ace4f273ebb47.js → configure-1af99ffa7a507e86.js} +1 -1
  31. fides/ui-build/static/admin/_next/static/chunks/pages/consent/privacy-experience/{[id]-443e6dd191ce5588.js → [id]-c02510104f9e503a.js} +1 -1
  32. fides/ui-build/static/admin/_next/static/chunks/pages/consent/privacy-experience/{new-36162d5bea29dcc2.js → new-e96415629f3b4223.js} +1 -1
  33. fides/ui-build/static/admin/_next/static/chunks/pages/consent/privacy-notices/{[id]-2d651499c07d12d9.js → [id]-66827da90b8a2d1e.js} +1 -1
  34. fides/ui-build/static/admin/_next/static/chunks/pages/consent/privacy-notices/{new-36e57d2f2446be82.js → new-13d48f980bf707e5.js} +1 -1
  35. fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog-1a3bb713fc7bc298.js +1 -0
  36. fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/action-center/[monitorId]/[systemId]-5892ca5d93ea6165.js +1 -0
  37. fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/action-center/[monitorId]-5c37c3ad1c3cfba5.js +1 -0
  38. fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/action-center-4fac7e0a54eebc32.js +1 -0
  39. fides/ui-build/static/admin/_next/static/chunks/pages/dataset/new-45016545c099e183.js +1 -0
  40. fides/ui-build/static/admin/_next/static/chunks/pages/dataset-5ddd3cd7d29e89c0.js +1 -0
  41. fides/ui-build/static/admin/_next/static/chunks/pages/datastore-connection/{[id]-0616437e1a82d3ed.js → [id]-f68c3ee92505994f.js} +1 -1
  42. fides/ui-build/static/admin/_next/static/chunks/pages/datastore-connection/{new-f8218440494e8532.js → new-89bc670d278e3749.js} +1 -1
  43. fides/ui-build/static/admin/_next/static/chunks/pages/integrations/[id]-3742c349e9a0020d.js +1 -0
  44. fides/ui-build/static/admin/_next/static/chunks/pages/integrations-577b95cb0006f387.js +1 -0
  45. fides/ui-build/static/admin/_next/static/chunks/pages/messaging-5a161e167c251519.js +1 -0
  46. fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/configure/messaging-c3e234ad95e6e213.js +1 -0
  47. fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/configure/storage-347e203faa31716f.js +1 -0
  48. fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests-729fa8ed0f10bc8e.js +1 -0
  49. fides/ui-build/static/admin/_next/static/chunks/pages/settings/consent-ff6edba56dfec090.js +1 -0
  50. fides/ui-build/static/admin/_next/static/chunks/pages/settings/domains-ad368857e86fe01b.js +1 -0
  51. fides/ui-build/static/admin/_next/static/chunks/pages/settings/organization-f45920358a405167.js +1 -0
  52. fides/ui-build/static/admin/_next/static/chunks/pages/systems/configure/{[id]-ca753b60ca1745c5.js → [id]-c234398ee8265485.js} +1 -1
  53. fides/ui-build/static/admin/_next/static/css/dd9922a434d21e22.css +1 -0
  54. fides/ui-build/static/admin/_next/static/dctUooMB4AAq5YqgLKNt9/_buildManifest.js +1 -0
  55. fides/ui-build/static/admin/add-systems/manual.html +1 -1
  56. fides/ui-build/static/admin/add-systems/multiple.html +1 -1
  57. fides/ui-build/static/admin/add-systems.html +1 -1
  58. fides/ui-build/static/admin/ant-poc.html +1 -1
  59. fides/ui-build/static/admin/consent/configure/add-vendors.html +1 -1
  60. fides/ui-build/static/admin/consent/configure.html +1 -1
  61. fides/ui-build/static/admin/consent/privacy-experience/[id].html +1 -1
  62. fides/ui-build/static/admin/consent/privacy-experience/new.html +1 -1
  63. fides/ui-build/static/admin/consent/privacy-experience.html +1 -1
  64. fides/ui-build/static/admin/consent/privacy-notices/[id].html +1 -1
  65. fides/ui-build/static/admin/consent/privacy-notices/new.html +1 -1
  66. fides/ui-build/static/admin/consent/privacy-notices.html +1 -1
  67. fides/ui-build/static/admin/consent/properties.html +1 -1
  68. fides/ui-build/static/admin/consent/reporting.html +1 -1
  69. fides/ui-build/static/admin/consent.html +1 -1
  70. fides/ui-build/static/admin/data-catalog/[systemId]/projects/[projectUrn]/[resourceUrn].html +1 -1
  71. fides/ui-build/static/admin/data-catalog/[systemId]/projects/[projectUrn].html +1 -1
  72. fides/ui-build/static/admin/data-catalog/[systemId]/projects.html +1 -1
  73. fides/ui-build/static/admin/data-catalog/[systemId]/resources/[resourceUrn].html +1 -1
  74. fides/ui-build/static/admin/data-catalog/[systemId]/resources.html +1 -1
  75. fides/ui-build/static/admin/data-catalog.html +1 -1
  76. fides/ui-build/static/admin/data-discovery/action-center/[monitorId]/[systemId].html +1 -1
  77. fides/ui-build/static/admin/data-discovery/action-center/[monitorId].html +1 -1
  78. fides/ui-build/static/admin/data-discovery/action-center.html +1 -1
  79. fides/ui-build/static/admin/data-discovery/activity.html +1 -1
  80. fides/ui-build/static/admin/data-discovery/detection/[resourceUrn].html +1 -1
  81. fides/ui-build/static/admin/data-discovery/detection.html +1 -1
  82. fides/ui-build/static/admin/data-discovery/discovery/[resourceUrn].html +1 -1
  83. fides/ui-build/static/admin/data-discovery/discovery.html +1 -1
  84. fides/ui-build/static/admin/datamap.html +1 -1
  85. fides/ui-build/static/admin/dataset/[datasetId]/[collectionName]/[...subfieldNames].html +1 -1
  86. fides/ui-build/static/admin/dataset/[datasetId]/[collectionName].html +1 -1
  87. fides/ui-build/static/admin/dataset/[datasetId].html +1 -1
  88. fides/ui-build/static/admin/dataset/new.html +1 -1
  89. fides/ui-build/static/admin/dataset.html +1 -1
  90. fides/ui-build/static/admin/datastore-connection/[id].html +1 -1
  91. fides/ui-build/static/admin/datastore-connection/new.html +1 -1
  92. fides/ui-build/static/admin/datastore-connection.html +1 -1
  93. fides/ui-build/static/admin/index.html +1 -1
  94. fides/ui-build/static/admin/integrations/[id].html +1 -1
  95. fides/ui-build/static/admin/integrations.html +1 -1
  96. fides/ui-build/static/admin/login/[provider].html +1 -1
  97. fides/ui-build/static/admin/login.html +1 -1
  98. fides/ui-build/static/admin/messaging/[id].html +1 -1
  99. fides/ui-build/static/admin/messaging/add-template.html +1 -1
  100. fides/ui-build/static/admin/messaging.html +1 -1
  101. fides/ui-build/static/admin/privacy-requests/[id].html +1 -1
  102. fides/ui-build/static/admin/privacy-requests/configure/messaging.html +1 -1
  103. fides/ui-build/static/admin/privacy-requests/configure/storage.html +1 -1
  104. fides/ui-build/static/admin/privacy-requests/configure.html +1 -1
  105. fides/ui-build/static/admin/privacy-requests.html +1 -1
  106. fides/ui-build/static/admin/properties/[id].html +1 -1
  107. fides/ui-build/static/admin/properties/add-property.html +1 -1
  108. fides/ui-build/static/admin/properties.html +1 -1
  109. fides/ui-build/static/admin/reporting/datamap.html +1 -1
  110. fides/ui-build/static/admin/settings/about.html +1 -1
  111. fides/ui-build/static/admin/settings/consent.html +1 -1
  112. fides/ui-build/static/admin/settings/custom-fields.html +1 -1
  113. fides/ui-build/static/admin/settings/domain-records.html +1 -1
  114. fides/ui-build/static/admin/settings/domains.html +1 -1
  115. fides/ui-build/static/admin/settings/email-templates.html +1 -1
  116. fides/ui-build/static/admin/settings/locations.html +1 -1
  117. fides/ui-build/static/admin/settings/organization.html +1 -1
  118. fides/ui-build/static/admin/settings/regulations.html +1 -1
  119. fides/ui-build/static/admin/systems/configure/[id]/test-datasets.html +1 -1
  120. fides/ui-build/static/admin/systems/configure/[id].html +1 -1
  121. fides/ui-build/static/admin/systems.html +1 -1
  122. fides/ui-build/static/admin/taxonomy.html +1 -1
  123. fides/ui-build/static/admin/user-management/new.html +1 -1
  124. fides/ui-build/static/admin/user-management/profile/[id].html +1 -1
  125. fides/ui-build/static/admin/user-management.html +1 -1
  126. fides/ui-build/static/admin/_next/static/chunks/3215-c8c683b93919e0a5.js +0 -1
  127. fides/ui-build/static/admin/_next/static/chunks/3320-87c75df57a47487e.js +0 -1
  128. fides/ui-build/static/admin/_next/static/chunks/3662-420d9807c30008ab.js +0 -1
  129. fides/ui-build/static/admin/_next/static/chunks/3949-9888699e2ac564c4.js +0 -1
  130. fides/ui-build/static/admin/_next/static/chunks/4723-81d28e5be5c7b6d7.js +0 -1
  131. fides/ui-build/static/admin/_next/static/chunks/5574-a4047e826a8cd4c3.js +0 -1
  132. fides/ui-build/static/admin/_next/static/chunks/5834-bd9ed01c4ab2ef5c.js +0 -1
  133. fides/ui-build/static/admin/_next/static/chunks/5973-3226fe183b48668b.js +0 -1
  134. fides/ui-build/static/admin/_next/static/chunks/6277-cad7c7c8cf48dbec.js +0 -1
  135. fides/ui-build/static/admin/_next/static/chunks/6954-6eb480eb132239c3.js +0 -1
  136. fides/ui-build/static/admin/_next/static/chunks/7044-88111db2aca2cf65.js +0 -1
  137. fides/ui-build/static/admin/_next/static/chunks/7980-2597c279c30fbcda.js +0 -1
  138. fides/ui-build/static/admin/_next/static/chunks/9767-9af77524ed1648c1.js +0 -1
  139. fides/ui-build/static/admin/_next/static/chunks/pages/add-systems-136bcbd20ac59bf5.js +0 -1
  140. fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog-942d68a88b321067.js +0 -1
  141. fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/action-center/[monitorId]/[systemId]-b9fe0f7ef05fd12c.js +0 -1
  142. fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/action-center/[monitorId]-deec7b789ef30dc4.js +0 -1
  143. fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/action-center-2220c30c3863b5a5.js +0 -1
  144. fides/ui-build/static/admin/_next/static/chunks/pages/dataset/new-740824dfa6823e26.js +0 -1
  145. fides/ui-build/static/admin/_next/static/chunks/pages/dataset-5541ecd2f62711a5.js +0 -1
  146. fides/ui-build/static/admin/_next/static/chunks/pages/integrations/[id]-a8e08ecb0c6c3a7c.js +0 -1
  147. fides/ui-build/static/admin/_next/static/chunks/pages/integrations-1a6965d78bfb26b0.js +0 -1
  148. fides/ui-build/static/admin/_next/static/chunks/pages/messaging-f263e6bacf0f2d19.js +0 -1
  149. fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/configure/messaging-b96ee3fea3920fcf.js +0 -1
  150. fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/configure/storage-1b0f9469cb65abfc.js +0 -1
  151. fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests-eebd2f4ead19cfd6.js +0 -1
  152. fides/ui-build/static/admin/_next/static/chunks/pages/settings/consent-4769f55b138073f7.js +0 -1
  153. fides/ui-build/static/admin/_next/static/chunks/pages/settings/domains-775f55b3f80cd452.js +0 -1
  154. fides/ui-build/static/admin/_next/static/chunks/pages/settings/organization-14def4ca3cc9cda5.js +0 -1
  155. fides/ui-build/static/admin/_next/static/css/957d0e4fea846ff0.css +0 -1
  156. fides/ui-build/static/admin/_next/static/nO-B4awcqTzE1AwRkxKgF/_buildManifest.js +0 -1
  157. {ethyca_fides-2.57.1b5.dist-info → ethyca_fides-2.57.1b7.dist-info}/LICENSE +0 -0
  158. {ethyca_fides-2.57.1b5.dist-info → ethyca_fides-2.57.1b7.dist-info}/WHEEL +0 -0
  159. {ethyca_fides-2.57.1b5.dist-info → ethyca_fides-2.57.1b7.dist-info}/entry_points.txt +0 -0
  160. {ethyca_fides-2.57.1b5.dist-info → ethyca_fides-2.57.1b7.dist-info}/top_level.txt +0 -0
  161. /fides/ui-build/static/admin/_next/static/chunks/{1150-73440d7b319558e8.js → 1150-d4a5eef84e70de22.js} +0 -0
  162. /fides/ui-build/static/admin/_next/static/chunks/{2397-d8161100e3634f2c.js → 2397-c6d0dcb3b921555f.js} +0 -0
  163. /fides/ui-build/static/admin/_next/static/chunks/{3086-be6b52546c3efc90.js → 3086-d099019708303444.js} +0 -0
  164. /fides/ui-build/static/admin/_next/static/chunks/{3855-386aec4f0e0e89f1.js → 3855-4d5d936a58a0dd5f.js} +0 -0
  165. /fides/ui-build/static/admin/_next/static/chunks/{3872-0da2c6a790542bd6.js → 3872-2b2bf5ebd4b0a70f.js} +0 -0
  166. /fides/ui-build/static/admin/_next/static/chunks/{4481-0500c40ed13000c0.js → 4481-f2f57e7a75a90e79.js} +0 -0
  167. /fides/ui-build/static/admin/_next/static/chunks/{5246-9fc6af1a6499e0a4.js → 5246-ac8b0fcb44b00af7.js} +0 -0
  168. /fides/ui-build/static/admin/_next/static/chunks/{5258-3a650be9142cf914.js → 5258-a05dcab2f9315dab.js} +0 -0
  169. /fides/ui-build/static/admin/_next/static/chunks/{5480-f5bec5e881f72f8d.js → 5480-c6c1fb87006e471a.js} +0 -0
  170. /fides/ui-build/static/admin/_next/static/chunks/{5487-d96e1abc93f92631.js → 5487-509639439bf9fb46.js} +0 -0
  171. /fides/ui-build/static/admin/_next/static/chunks/{5826-16e497af363a0cbc.js → 5826-e3970cd9440be33b.js} +0 -0
  172. /fides/ui-build/static/admin/_next/static/chunks/{6315-dee79f6861c94d2d.js → 6315-daf94fa7520fb253.js} +0 -0
  173. /fides/ui-build/static/admin/_next/static/chunks/{6372-f1b54f3cb4888660.js → 6372-41afe1e6a9181cc7.js} +0 -0
  174. /fides/ui-build/static/admin/_next/static/chunks/{6853-2777b5ab5717fada.js → 6853-7f95c36e396d3fb8.js} +0 -0
  175. /fides/ui-build/static/admin/_next/static/chunks/{7751-25e0c1307988ffd7.js → 7751-130668529ab1d0b6.js} +0 -0
  176. /fides/ui-build/static/admin/_next/static/chunks/{79-ba88d0cf4c65aaa2.js → 79-1c326c00cf111c00.js} +0 -0
  177. /fides/ui-build/static/admin/_next/static/chunks/{8433-969280d321d1c3a2.js → 8433-b2a96b825124b596.js} +0 -0
  178. /fides/ui-build/static/admin/_next/static/chunks/{8499-07507004e8275df2.js → 8499-34620330ecf2ac53.js} +0 -0
  179. /fides/ui-build/static/admin/_next/static/chunks/{9046-b18572b89f0aaa92.js → 9046-e7b9a3fd010b01ad.js} +0 -0
  180. /fides/ui-build/static/admin/_next/static/chunks/{9282-1a5a2f6f4d9ed586.js → 9282-6ee061da1eb51d65.js} +0 -0
  181. /fides/ui-build/static/admin/_next/static/chunks/{9999-f2e40d5b13343220.js → 9999-8600f6f495a80b38.js} +0 -0
  182. /fides/ui-build/static/admin/_next/static/chunks/pages/{404-1087258931760074.js → 404-8e0baa6e128803ab.js} +0 -0
  183. /fides/ui-build/static/admin/_next/static/chunks/pages/{ant-poc-b3b4d0a98450ffd1.js → ant-poc-39267961e03be6c5.js} +0 -0
  184. /fides/ui-build/static/admin/_next/static/chunks/pages/consent/{privacy-experience-8b9f75fc0f131240.js → privacy-experience-ed38f18c095141fe.js} +0 -0
  185. /fides/ui-build/static/admin/_next/static/chunks/pages/consent/{privacy-notices-da37afbe5ec81339.js → privacy-notices-7339b3cdf5d4da32.js} +0 -0
  186. /fides/ui-build/static/admin/_next/static/chunks/pages/consent/{properties-c57b209feef7c2da.js → properties-b5b3196eba90246a.js} +0 -0
  187. /fides/ui-build/static/admin/_next/static/chunks/pages/consent/{reporting-81ca1ac6f52ec342.js → reporting-38b8ec1a221610ff.js} +0 -0
  188. /fides/ui-build/static/admin/_next/static/chunks/pages/{consent-24bef021ee71e36c.js → consent-df2388d953c85c2a.js} +0 -0
  189. /fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/projects/[projectUrn]/{[resourceUrn]-6cbd79481199812d.js → [resourceUrn]-5e851b9f27bda8a4.js} +0 -0
  190. /fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/projects/{[projectUrn]-46b9790da2fec05a.js → [projectUrn]-9f9112b22fdfb32a.js} +0 -0
  191. /fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/{projects-742849f39b646a2f.js → projects-ddca867936c89a72.js} +0 -0
  192. /fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/resources/{[resourceUrn]-e7833c1c606081a9.js → [resourceUrn]-85e3d6f1b2afd3e7.js} +0 -0
  193. /fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/{resources-bed368d048ea6883.js → resources-9831226436d884b5.js} +0 -0
  194. /fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/{activity-0cfa8a9caf7c75c3.js → activity-a0749240265da17d.js} +0 -0
  195. /fides/ui-build/static/admin/_next/static/chunks/pages/{datamap-9cd0c40bef77b120.js → datamap-819ac99e7a56465a.js} +0 -0
  196. /fides/ui-build/static/admin/_next/static/chunks/pages/dataset/[datasetId]/[collectionName]/{[...subfieldNames]-ab9bc1a3640547db.js → [...subfieldNames]-259d4a94861afe2b.js} +0 -0
  197. /fides/ui-build/static/admin/_next/static/chunks/pages/dataset/[datasetId]/{[collectionName]-17ec8385bb1fa6d4.js → [collectionName]-25283f5bcac8fa73.js} +0 -0
  198. /fides/ui-build/static/admin/_next/static/chunks/pages/dataset/{[datasetId]-e14c1c07658f8a10.js → [datasetId]-aaedf8f2a849c97f.js} +0 -0
  199. /fides/ui-build/static/admin/_next/static/chunks/pages/{datastore-connection-b8eaa9b9d3832b30.js → datastore-connection-61adfcd5f7f69101.js} +0 -0
  200. /fides/ui-build/static/admin/_next/static/chunks/pages/{index-94e6d589c4edf360.js → index-1072281d6cfe8295.js} +0 -0
  201. /fides/ui-build/static/admin/_next/static/chunks/pages/messaging/{[id]-6b032de0a6c2c400.js → [id]-268918d8c1dfe82a.js} +0 -0
  202. /fides/ui-build/static/admin/_next/static/chunks/pages/messaging/{add-template-c0d6ae68ff7979c6.js → add-template-cd75949bee7497b6.js} +0 -0
  203. /fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/{[id]-bbe5854b7d19b7e9.js → [id]-d1f4178b8a7e2145.js} +0 -0
  204. /fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/{configure-4bad69cd42c9722c.js → configure-37e800a20e654064.js} +0 -0
  205. /fides/ui-build/static/admin/_next/static/chunks/pages/properties/{[id]-b4c808a8a0287d11.js → [id]-92145503c4d2d75e.js} +0 -0
  206. /fides/ui-build/static/admin/_next/static/chunks/pages/properties/{add-property-5a701477b006a63b.js → add-property-ab94805694ebd35c.js} +0 -0
  207. /fides/ui-build/static/admin/_next/static/chunks/pages/{properties-9a1899dfe052023e.js → properties-5e623dcd92418638.js} +0 -0
  208. /fides/ui-build/static/admin/_next/static/chunks/pages/reporting/{datamap-449ad3b08750bfc2.js → datamap-710839776b9995ce.js} +0 -0
  209. /fides/ui-build/static/admin/_next/static/chunks/pages/settings/{about-d073be113e9ca7b0.js → about-175d39bdd74f148c.js} +0 -0
  210. /fides/ui-build/static/admin/_next/static/chunks/pages/settings/{custom-fields-ce9305fa04fecbb8.js → custom-fields-1262d596c0cdcd81.js} +0 -0
  211. /fides/ui-build/static/admin/_next/static/chunks/pages/settings/{domain-records-c5cd5fb578de9515.js → domain-records-f0c6e6034d37dbcf.js} +0 -0
  212. /fides/ui-build/static/admin/_next/static/chunks/pages/settings/{email-templates-39c7ae3602ac69b2.js → email-templates-6ee49492a7769f89.js} +0 -0
  213. /fides/ui-build/static/admin/_next/static/chunks/pages/settings/{locations-f35bd2d0c10aa58c.js → locations-deb754d42982562b.js} +0 -0
  214. /fides/ui-build/static/admin/_next/static/chunks/pages/settings/{regulations-ba8c25b63bbf7dc2.js → regulations-f9e97decfe56b018.js} +0 -0
  215. /fides/ui-build/static/admin/_next/static/chunks/pages/systems/configure/[id]/{test-datasets-73ef0438c85014bb.js → test-datasets-ae133b6e8e1107f2.js} +0 -0
  216. /fides/ui-build/static/admin/_next/static/chunks/pages/{systems-c320df35d51dc537.js → systems-4d6a17a7a24aca97.js} +0 -0
  217. /fides/ui-build/static/admin/_next/static/chunks/pages/{taxonomy-181ea5b0ac975239.js → taxonomy-46f47c04a01319cf.js} +0 -0
  218. /fides/ui-build/static/admin/_next/static/chunks/pages/user-management/profile/{[id]-622e16a17a11c096.js → [id]-5b752ba934baee94.js} +0 -0
  219. /fides/ui-build/static/admin/_next/static/chunks/pages/{user-management-aa872b21bb835d34.js → user-management-4fbb29cf0a611aae.js} +0 -0
  220. /fides/ui-build/static/admin/_next/static/chunks/{webpack-4df2ba5ee2d40f0a.js → webpack-815e3c35038201da.js} +0 -0
  221. /fides/ui-build/static/admin/_next/static/{nO-B4awcqTzE1AwRkxKgF → dctUooMB4AAq5YqgLKNt9}/_ssgManifest.js +0 -0
fides/_version.py CHANGED
@@ -8,11 +8,11 @@ import json
8
8
 
9
9
  version_json = '''
10
10
  {
11
- "date": "2025-03-20T11:09:29-0600",
11
+ "date": "2025-03-21T12:37:34-0500",
12
12
  "dirty": false,
13
13
  "error": null,
14
- "full-revisionid": "3f13e7665a4ec757febeff699ce1c46936247f0d",
15
- "version": "2.57.1b5"
14
+ "full-revisionid": "b0eb1b3cd0cf9c73be52faa4d927a9dd386c1285",
15
+ "version": "2.57.1b7"
16
16
  }
17
17
  ''' # END VERSION_JSON
18
18
 
@@ -58,8 +58,10 @@ def patch_settings(
58
58
  Only keys provided will be updated, others will be unaffected,
59
59
  i.e. true PATCH behavior.
60
60
  """
61
-
62
- pruned_data = data.model_dump(exclude_none=True)
61
+ # We use exclude_unset=True to ensure that only the provided keys are updated.
62
+ # This is particularly useful for allowing setting a specific key to None, while
63
+ # keeping the existing values for other keys that aren't provided in the payload data.
64
+ pruned_data = data.model_dump(exclude_unset=True)
63
65
  logger.info("PATCHing application settings")
64
66
  update_config: ApplicationConfig = ApplicationConfig.update_api_set(db, pruned_data)
65
67
 
@@ -13,12 +13,14 @@ from fides.api.db.base_class import Base
13
13
  from fides.api.models.fides_user import FidesUser # pylint: disable=unused-import
14
14
  from fides.api.models.storage import StorageConfig # pylint: disable=unused-import
15
15
  from fides.api.schemas.storage.storage import StorageDetails, StorageType
16
- from fides.api.tasks.storage import (
17
- LOCAL_FIDES_UPLOAD_DIRECTORY,
16
+ from fides.api.service.storage.s3 import (
18
17
  generic_delete_from_s3,
19
18
  generic_retrieve_from_s3,
19
+ generic_upload_to_s3,
20
+ )
21
+ from fides.api.service.storage.util import (
22
+ LOCAL_FIDES_UPLOAD_DIRECTORY,
20
23
  get_local_filename,
21
- upload_to_s3,
22
24
  )
23
25
 
24
26
 
@@ -91,7 +93,6 @@ class Attachment(Base):
91
93
 
92
94
  user = relationship(
93
95
  "FidesUser",
94
- backref="attachments",
95
96
  lazy="selectin",
96
97
  uselist=False,
97
98
  )
@@ -114,13 +115,10 @@ class Attachment(Base):
114
115
  if self.config.type == StorageType.s3:
115
116
  bucket_name = f"{self.config.details[StorageDetails.BUCKET.value]}"
116
117
  auth_method = self.config.details[StorageDetails.AUTH_METHOD.value]
117
- upload_to_s3(
118
+ generic_upload_to_s3(
118
119
  storage_secrets=self.config.secrets,
119
- data={},
120
120
  bucket_name=bucket_name,
121
121
  file_key=self.id,
122
- resp_format=self.config.format,
123
- privacy_request=None,
124
122
  document=attachment,
125
123
  auth_method=auth_method,
126
124
  )
@@ -1,5 +1,5 @@
1
1
  from enum import Enum as EnumType
2
- from typing import Any
2
+ from typing import TYPE_CHECKING, Any
3
3
 
4
4
  from sqlalchemy import Column
5
5
  from sqlalchemy import Enum as EnumColumn
@@ -8,8 +8,10 @@ from sqlalchemy.ext.declarative import declared_attr
8
8
  from sqlalchemy.orm import Session, relationship
9
9
 
10
10
  from fides.api.db.base_class import Base
11
- from fides.api.models.attachment import Attachment, AttachmentReference
12
- from fides.api.models.fides_user import FidesUser # pylint: disable=unused-import
11
+
12
+ if TYPE_CHECKING:
13
+ from fides.api.models.attachment import Attachment
14
+ from fides.api.models.fides_user import FidesUser
13
15
 
14
16
 
15
17
  class CommentType(str, EnumType):
@@ -78,7 +80,6 @@ class Comment(Base):
78
80
 
79
81
  user = relationship(
80
82
  "FidesUser",
81
- backref="comments",
82
83
  lazy="selectin",
83
84
  uselist=False,
84
85
  )
@@ -90,20 +91,19 @@ class Comment(Base):
90
91
  uselist=True,
91
92
  )
92
93
 
93
- def get_attachments(self, db: Session) -> list[Attachment]:
94
- """Retrieve all attachments associated with this comment."""
95
- stmt = (
96
- db.query(Attachment)
97
- .join(
98
- AttachmentReference, Attachment.id == AttachmentReference.attachment_id
99
- )
100
- .where(AttachmentReference.reference_id == self.id)
101
- )
102
- return db.execute(stmt).scalars().all()
94
+ attachments = relationship(
95
+ "Attachment",
96
+ secondary="attachment_reference",
97
+ primaryjoin="Comment.id == AttachmentReference.reference_id",
98
+ secondaryjoin="Attachment.id == AttachmentReference.attachment_id",
99
+ order_by="Attachment.created_at",
100
+ uselist=True,
101
+ )
103
102
 
104
103
  def delete(self, db: Session) -> None:
105
104
  """Delete the comment and all associated references."""
106
- attachments = self.get_attachments(db)
107
- for attachment in attachments:
108
- attachment.delete(db)
105
+ # Delete the comment
106
+ for attachment in self.attachments:
107
+ if len(attachment.references) == 1:
108
+ attachment.delete(db)
109
109
  db.delete(self)
@@ -39,8 +39,10 @@ from fides.api.graph.config import (
39
39
  CollectionAddress,
40
40
  )
41
41
  from fides.api.migrations.hash_migration_mixin import HashMigrationMixin
42
+ from fides.api.models.attachment import Attachment, AttachmentReference
42
43
  from fides.api.models.audit_log import AuditLog
43
44
  from fides.api.models.client import ClientDetail
45
+ from fides.api.models.comment import Comment, CommentReference
44
46
  from fides.api.models.fides_user import FidesUser
45
47
  from fides.api.models.manual_webhook import AccessManualWebhook
46
48
  from fides.api.models.policy import (
@@ -166,6 +168,20 @@ class PrivacyRequest(
166
168
  Policy,
167
169
  backref="privacy_requests",
168
170
  )
171
+ attachments = relationship(
172
+ Attachment,
173
+ secondary="attachment_reference",
174
+ primaryjoin="PrivacyRequest.id == AttachmentReference.reference_id",
175
+ secondaryjoin="Attachment.id == AttachmentReference.attachment_id",
176
+ order_by="Attachment.created_at",
177
+ )
178
+ comments = relationship(
179
+ Comment,
180
+ secondary="comment_reference",
181
+ primaryjoin="PrivacyRequest.id == CommentReference.reference_id",
182
+ secondaryjoin="Comment.id == CommentReference.comment_id",
183
+ order_by="Comment.created_at",
184
+ )
169
185
  property_id = Column(String, nullable=True)
170
186
 
171
187
  cancel_reason = Column(String(200))
@@ -1011,6 +1027,51 @@ class PrivacyRequest(
1011
1027
  """Return existing Consent Request Tasks for the current privacy request"""
1012
1028
  return self.request_tasks.filter(RequestTask.action_type == ActionType.consent)
1013
1029
 
1030
+ def get_comment_by_id(self, db: Session, comment_id: str) -> Optional[Comment]:
1031
+ """Get the comment associated with the privacy request"""
1032
+ comment = (
1033
+ db.query(Comment)
1034
+ .join(CommentReference, Comment.id == CommentReference.comment_id)
1035
+ .filter(
1036
+ CommentReference.reference_id
1037
+ == self.id, # Ensure the comment is linked to this privacy request
1038
+ Comment.id == comment_id, # Match the specific comment ID
1039
+ )
1040
+ .first()
1041
+ )
1042
+ if not comment:
1043
+ logger.info(
1044
+ f"Comment with id {comment_id} not found on privacy request {self.id}"
1045
+ )
1046
+ return comment
1047
+
1048
+ def get_attachment_by_id(
1049
+ self, db: Session, attachment_id: str
1050
+ ) -> Optional[Attachment]:
1051
+ """Get the attachment associated with the privacy request"""
1052
+ attachment = (
1053
+ db.query(Attachment)
1054
+ .join(
1055
+ AttachmentReference, Attachment.id == AttachmentReference.attachment_id
1056
+ )
1057
+ .filter(
1058
+ AttachmentReference.reference_id == self.id,
1059
+ Attachment.id == attachment_id,
1060
+ )
1061
+ .first()
1062
+ )
1063
+ if not attachment:
1064
+ logger.info(
1065
+ f"Attachment with id {attachment_id} not found on privacy request {self.id}"
1066
+ )
1067
+ return attachment
1068
+
1069
+ def delete_attachment_by_id(self, db: Session, attachment_id: str) -> None:
1070
+ """Delete the attachment associated with the privacy request"""
1071
+ attachment = self.get_attachment_by_id(db, attachment_id)
1072
+ if attachment:
1073
+ attachment.delete(db)
1074
+
1014
1075
  def get_existing_request_task(
1015
1076
  self,
1016
1077
  db: Session,
@@ -0,0 +1,133 @@
1
+ from __future__ import annotations
2
+
3
+ from io import BytesIO
4
+ from typing import Any, Dict, Optional
5
+
6
+ from boto3.s3.transfer import TransferConfig
7
+ from botocore.exceptions import ClientError, ParamValidationError
8
+ from fideslang.validation import AnyHttpUrlString
9
+ from loguru import logger
10
+
11
+ from fides.api.schemas.storage.storage import StorageSecrets
12
+ from fides.api.util.aws_util import get_s3_client
13
+ from fides.config import CONFIG
14
+
15
+
16
+ def create_presigned_url_for_s3(
17
+ s3_client: Any, bucket_name: str, file_key: str
18
+ ) -> AnyHttpUrlString:
19
+ """ "Generate a presigned URL to share an S3 object
20
+
21
+ :param s3_client: s3 base client
22
+ :param bucket_name: string
23
+ :param file_key: string
24
+ :return: Presigned URL as string.
25
+ """
26
+ response = s3_client.generate_presigned_url(
27
+ "get_object",
28
+ Params={"Bucket": bucket_name, "Key": file_key},
29
+ ExpiresIn=CONFIG.security.subject_request_download_link_ttl_seconds,
30
+ )
31
+
32
+ # The response contains the presigned URL
33
+ return response
34
+
35
+
36
+ def generic_upload_to_s3( # pylint: disable=R0913
37
+ storage_secrets: Dict[StorageSecrets, Any],
38
+ bucket_name: str,
39
+ file_key: str,
40
+ auth_method: str,
41
+ document: BytesIO,
42
+ ) -> Optional[AnyHttpUrlString]:
43
+ """
44
+ Uploads arbitrary data to S3 returned from an access request.
45
+ Handles both small and large uploads.
46
+ """
47
+ logger.info("Starting S3 Upload of {}", file_key)
48
+
49
+ try:
50
+ s3_client = get_s3_client(auth_method, storage_secrets)
51
+
52
+ # Define a transfer configuration for multipart uploads
53
+ transfer_config = TransferConfig(
54
+ multipart_threshold=5 * 1024 * 1024, # 5 MB threshold for multipart uploads
55
+ multipart_chunksize=5 * 1024 * 1024, # 5 MB chunk size
56
+ )
57
+
58
+ try:
59
+ # Check if the document is a file-like object or raw bytes
60
+ if isinstance(document, bytes):
61
+ document = BytesIO(document) # Wrap raw bytes in a file-like object
62
+
63
+ # Use upload_fileobj for efficient uploads (handles both small and large files)
64
+ s3_client.upload_fileobj(
65
+ Fileobj=document,
66
+ Bucket=bucket_name,
67
+ Key=file_key,
68
+ Config=transfer_config,
69
+ )
70
+ except Exception as e:
71
+ logger.error("Encountered error while uploading S3 object: {}", e)
72
+ raise e
73
+
74
+ # Generate a presigned URL for the uploaded file
75
+ presigned_url: AnyHttpUrlString = create_presigned_url_for_s3(
76
+ s3_client, bucket_name, file_key
77
+ )
78
+
79
+ return presigned_url
80
+ except ClientError as e:
81
+ logger.error(
82
+ "Encountered error while uploading and generating link for S3 object: {}", e
83
+ )
84
+ raise e
85
+ except ParamValidationError as e:
86
+ raise ValueError(f"The parameters you provided are incorrect: {e}")
87
+
88
+
89
+ def generic_retrieve_from_s3(
90
+ storage_secrets: Dict[StorageSecrets, Any],
91
+ bucket_name: str,
92
+ file_key: str,
93
+ auth_method: str,
94
+ ) -> Optional[BytesIO]:
95
+ """Retrieves arbitrary data from s3"""
96
+ logger.info("Starting S3 Retrieve of {}", file_key)
97
+
98
+ try:
99
+ s3_client = get_s3_client(auth_method, storage_secrets)
100
+ try:
101
+ response = s3_client.get_object(Bucket=bucket_name, Key=file_key)
102
+ return response["Body"].read()
103
+ except Exception as e:
104
+ logger.error("Encountered error while retrieving s3 object: {}", e)
105
+ raise e
106
+ except ClientError as e:
107
+ logger.error("Encountered error while retrieving s3 object: {}", e)
108
+ raise e
109
+ except ParamValidationError as e:
110
+ raise ValueError(f"The parameters you provided are incorrect: {e}")
111
+
112
+
113
+ def generic_delete_from_s3(
114
+ storage_secrets: Dict[StorageSecrets, Any],
115
+ bucket_name: str,
116
+ file_key: str,
117
+ auth_method: str,
118
+ ) -> None:
119
+ """Deletes arbitrary data from s3"""
120
+ logger.info("Starting S3 Delete of {}", file_key)
121
+
122
+ try:
123
+ s3_client = get_s3_client(auth_method, storage_secrets)
124
+ try:
125
+ s3_client.delete_object(Bucket=bucket_name, Key=file_key)
126
+ except Exception as e:
127
+ logger.error("Encountered error while deleting s3 object: {}", e)
128
+ raise e
129
+ except ClientError as e:
130
+ logger.error("Encountered error while deleting s3 object: {}", e)
131
+ raise e
132
+ except ParamValidationError as e:
133
+ raise ValueError(f"The parameters you provided are incorrect: {e}")
@@ -0,0 +1,10 @@
1
+ import os
2
+
3
+ LOCAL_FIDES_UPLOAD_DIRECTORY = "fides_uploads"
4
+
5
+
6
+ def get_local_filename(file_key: str) -> str:
7
+ """Verifies that the local storage directory exists"""
8
+ if not os.path.exists(LOCAL_FIDES_UPLOAD_DIRECTORY):
9
+ os.makedirs(LOCAL_FIDES_UPLOAD_DIRECTORY)
10
+ return f"{LOCAL_FIDES_UPLOAD_DIRECTORY}/{file_key}"
@@ -1,11 +1,10 @@
1
1
  from __future__ import annotations
2
2
 
3
3
  import json
4
- import os
5
4
  import secrets
6
5
  import zipfile
7
6
  from io import BytesIO
8
- from typing import Any, Dict, Optional, Union
7
+ from typing import TYPE_CHECKING, Any, Dict, Optional, Union
9
8
 
10
9
  import pandas as pd
11
10
  from botocore.exceptions import ClientError, ParamValidationError
@@ -13,11 +12,18 @@ from fideslang.validation import AnyHttpUrlString
13
12
  from loguru import logger
14
13
 
15
14
  from fides.api.cryptography.cryptographic_util import bytes_to_b64_str
16
- from fides.api.models.privacy_request import PrivacyRequest
17
15
  from fides.api.schemas.storage.storage import ResponseFormat, StorageSecrets
18
16
  from fides.api.service.privacy_request.dsr_package.dsr_report_builder import (
19
17
  DsrReportBuilder,
20
18
  )
19
+ from fides.api.service.storage.s3 import (
20
+ create_presigned_url_for_s3,
21
+ generic_upload_to_s3,
22
+ )
23
+ from fides.api.service.storage.util import (
24
+ LOCAL_FIDES_UPLOAD_DIRECTORY,
25
+ get_local_filename,
26
+ )
21
27
  from fides.api.util.aws_util import get_s3_client
22
28
  from fides.api.util.cache import get_cache, get_encryption_cache_key
23
29
  from fides.api.util.encryption.aes_gcm_encryption_scheme import (
@@ -26,7 +32,8 @@ from fides.api.util.encryption.aes_gcm_encryption_scheme import (
26
32
  from fides.api.util.storage_util import storage_json_encoder
27
33
  from fides.config import CONFIG
28
34
 
29
- LOCAL_FIDES_UPLOAD_DIRECTORY = "fides_uploads"
35
+ if TYPE_CHECKING:
36
+ from fides.api.models.privacy_request import PrivacyRequest
30
37
 
31
38
 
32
39
  def encrypt_access_request_results(data: Union[str, bytes], request_id: str) -> str:
@@ -101,105 +108,6 @@ def write_to_in_memory_buffer(
101
108
  raise NotImplementedError(f"No handling for response format {resp_format}.")
102
109
 
103
110
 
104
- def create_presigned_url_for_s3(
105
- s3_client: Any, bucket_name: str, file_key: str
106
- ) -> AnyHttpUrlString:
107
- """ "Generate a presigned URL to share an S3 object
108
-
109
- :param s3_client: s3 base client
110
- :param bucket_name: string
111
- :param file_key: string
112
- :return: Presigned URL as string.
113
- """
114
- response = s3_client.generate_presigned_url(
115
- "get_object",
116
- Params={"Bucket": bucket_name, "Key": file_key},
117
- ExpiresIn=CONFIG.security.subject_request_download_link_ttl_seconds,
118
- )
119
-
120
- # The response contains the presigned URL
121
- return response
122
-
123
-
124
- def generic_upload_to_s3( # pylint: disable=R0913
125
- storage_secrets: Dict[StorageSecrets, Any],
126
- bucket_name: str,
127
- file_key: str,
128
- auth_method: str,
129
- document: bytes,
130
- ) -> Optional[AnyHttpUrlString]:
131
- """Uploads arbitrary data to s3 returned from an access request"""
132
- logger.info("Starting S3 Upload of {}", file_key)
133
-
134
- try:
135
- s3_client = get_s3_client(auth_method, storage_secrets)
136
- try:
137
- s3_client.put_object(Bucket=bucket_name, Key=file_key, Body=document)
138
- except Exception as e:
139
- logger.error("Encountered error while uploading s3 object: {}", e)
140
- raise e
141
-
142
- presigned_url: AnyHttpUrlString = create_presigned_url_for_s3(
143
- s3_client, bucket_name, file_key
144
- )
145
-
146
- return presigned_url
147
- except ClientError as e:
148
- logger.error(
149
- "Encountered error while uploading and generating link for s3 object: {}", e
150
- )
151
- raise e
152
- except ParamValidationError as e:
153
- raise ValueError(f"The parameters you provided are incorrect: {e}")
154
-
155
-
156
- def generic_retrieve_from_s3(
157
- storage_secrets: Dict[StorageSecrets, Any],
158
- bucket_name: str,
159
- file_key: str,
160
- auth_method: str,
161
- ) -> Optional[bytes]:
162
- """Retrieves arbitrary data from s3"""
163
- logger.info("Starting S3 Retrieve of {}", file_key)
164
-
165
- try:
166
- s3_client = get_s3_client(auth_method, storage_secrets)
167
- try:
168
- response = s3_client.get_object(Bucket=bucket_name, Key=file_key)
169
- return response["Body"].read()
170
- except Exception as e:
171
- logger.error("Encountered error while retrieving s3 object: {}", e)
172
- raise e
173
- except ClientError as e:
174
- logger.error("Encountered error while retrieving s3 object: {}", e)
175
- raise e
176
- except ParamValidationError as e:
177
- raise ValueError(f"The parameters you provided are incorrect: {e}")
178
-
179
-
180
- def generic_delete_from_s3(
181
- storage_secrets: Dict[StorageSecrets, Any],
182
- bucket_name: str,
183
- file_key: str,
184
- auth_method: str,
185
- ) -> None:
186
- """Deletes arbitrary data from s3"""
187
- logger.info("Starting S3 Delete of {}", file_key)
188
-
189
- try:
190
- s3_client = get_s3_client(auth_method, storage_secrets)
191
- try:
192
- s3_client.delete_object(Bucket=bucket_name, Key=file_key)
193
- except Exception as e:
194
- logger.error("Encountered error while deleting s3 object: {}", e)
195
- raise e
196
- except ClientError as e:
197
- logger.error("Encountered error while deleting s3 object: {}", e)
198
- raise e
199
- except ParamValidationError as e:
200
- raise ValueError(f"The parameters you provided are incorrect: {e}")
201
-
202
-
203
111
  def upload_to_s3( # pylint: disable=R0913
204
112
  storage_secrets: Dict[StorageSecrets, Any],
205
113
  data: Dict,
@@ -207,7 +115,7 @@ def upload_to_s3( # pylint: disable=R0913
207
115
  file_key: str,
208
116
  resp_format: str,
209
117
  privacy_request: Optional[PrivacyRequest],
210
- document: Optional[bytes],
118
+ document: Optional[BytesIO],
211
119
  auth_method: str,
212
120
  ) -> Optional[AnyHttpUrlString]:
213
121
  """Uploads arbitrary data to s3 returned from an access request"""
@@ -249,13 +157,6 @@ def upload_to_s3( # pylint: disable=R0913
249
157
  raise ValueError(f"The parameters you provided are incorrect: {e}")
250
158
 
251
159
 
252
- def get_local_filename(file_key: str) -> str:
253
- """Verifies that the local storage directory exists"""
254
- if not os.path.exists(LOCAL_FIDES_UPLOAD_DIRECTORY):
255
- os.makedirs(LOCAL_FIDES_UPLOAD_DIRECTORY)
256
- return f"{LOCAL_FIDES_UPLOAD_DIRECTORY}/{file_key}"
257
-
258
-
259
160
  def upload_to_local(
260
161
  data: Dict,
261
162
  file_key: str,
fides/config/__init__.py CHANGED
@@ -133,7 +133,7 @@ def censor_config(config: Union[FidesConfig, Dict[str, Any]]) -> Dict[str, Any]:
133
133
  data = as_dict[key]
134
134
  filtered[key] = {}
135
135
  for field in value:
136
- if field in data:
136
+ if data and field in data:
137
137
  filtered[key][field] = data[field]
138
138
 
139
139
  return filtered
@@ -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/957d0e4fea846ff0.css" as="style"/><link rel="stylesheet" href="/_next/static/css/957d0e4fea846ff0.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-4df2ba5ee2d40f0a.js" defer=""></script><script src="/_next/static/chunks/framework-c92fc3344e6fd165.js" defer=""></script><script src="/_next/static/chunks/main-ce7f38a12ea8c223.js" defer=""></script><script src="/_next/static/chunks/pages/_app-b8d38dabe3db0ee0.js" defer=""></script><script src="/_next/static/chunks/pages/404-1087258931760074.js" defer=""></script><script src="/_next/static/nO-B4awcqTzE1AwRkxKgF/_buildManifest.js" defer=""></script><script src="/_next/static/nO-B4awcqTzE1AwRkxKgF/_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":"nO-B4awcqTzE1AwRkxKgF","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/dd9922a434d21e22.css" as="style"/><link rel="stylesheet" href="/_next/static/css/dd9922a434d21e22.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-815e3c35038201da.js" defer=""></script><script src="/_next/static/chunks/framework-c92fc3344e6fd165.js" defer=""></script><script src="/_next/static/chunks/main-ce7f38a12ea8c223.js" defer=""></script><script src="/_next/static/chunks/pages/_app-e53d13729068a001.js" defer=""></script><script src="/_next/static/chunks/pages/404-8e0baa6e128803ab.js" defer=""></script><script src="/_next/static/dctUooMB4AAq5YqgLKNt9/_buildManifest.js" defer=""></script><script src="/_next/static/dctUooMB4AAq5YqgLKNt9/_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":"dctUooMB4AAq5YqgLKNt9","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1376],{87361:function(e,a,n){var i=n(24246),t=n(56351);a.Z=e=>{let{title:a,text:n,onClose:l}=e;return(0,i.jsxs)(t.Ugi,{backgroundColor:"gray.50",border:"1px solid",borderRadius:"md",justifyContent:"space-between",py:4,pr:6,pl:3,"data-testid":"empty-state",gap:2,position:"relative",children:[l&&(0,i.jsx)(t.Two,{boxSize:5,position:"absolute",right:3,top:3,zIndex:1,cursor:"pointer",p:1,onClick:l}),(0,i.jsx)(t.iid,{alignSelf:"start",color:"minos",mt:.5,flexGrow:0}),(0,i.jsxs)(t.kCb,{direction:"column",gap:2,flexGrow:1,children:[(0,i.jsx)(t.X6q,{fontSize:"md",children:a}),(0,i.jsx)(t.xvT,{fontSize:"sm",color:"gray.600",lineHeight:"5",children:n})]})]})}},97181:function(e,a,n){n.d(a,{d:function(){return d}});var i=n(24246),t=n(56351),l=n(34090),r=n(27378),o=n(91613),s=n(40324);let d=e=>{let{name:a,label:n,labelProps:d,tooltip:_,isRequired:c,layout:u="inline",...F}=e,[p,b,{setValue:m}]=(0,l.U$)(a),v=!!(b.touched&&b.error),[g,h]=(0,r.useState)("");p.value||"tags"!==F.mode&&"multiple"!==F.mode||(p.value=[]),"tags"===F.mode&&"string"==typeof p.value&&(p.value=[p.value]);let S="tags"===F.mode?(e,a)=>e?e.value!==g||p.value.includes(g)?F.optionRender?F.optionRender(e,a):e.label:'Create "'.concat(g,'"'):void 0:F.optionRender||void 0,C=e=>{h(e),F.onSearch&&F.onSearch(e)},f=(e,a)=>{m(e),F.onChange&&F.onChange(e,a)};return"inline"===u?(0,i.jsx)(t.NIc,{isInvalid:v,isRequired:c,children:(0,i.jsxs)(t.rjZ,{templateColumns:n?"1fr 3fr":"1fr",children:[n?(0,i.jsx)(s.__,{htmlFor:F.id||a,...d,children:n}):null,(0,i.jsxs)(t.jqI,{align:"center",children:[(0,i.jsxs)(t.jqI,{vertical:!0,flex:1,className:"mr-2",children:[(0,i.jsx)(t.WPr,{...p,id:F.id||a,"data-testid":"controlled-select-".concat(p.name),...F,optionRender:S,onSearch:"tags"===F.mode?C:void 0,onChange:f,value:p.value||void 0,status:v?"error":void 0}),(0,i.jsx)(s.Bc,{isInvalid:v,message:b.error,fieldName:p.name})]}),_?(0,i.jsx)(o.Z,{label:_}):null]})]})}):(0,i.jsx)(t.NIc,{isInvalid:v,isRequired:c,children:(0,i.jsxs)(t.gCW,{alignItems:"start",children:[(0,i.jsxs)(t.jqI,{align:"center",children:[n?(0,i.jsx)(s.__,{htmlFor:F.id||a,fontSize:"xs",my:0,mr:1,...d,children:n}):null,_?(0,i.jsx)(o.Z,{label:_}):null]}),(0,i.jsx)(t.WPr,{...p,id:F.id||a,"data-testid":"controlled-select-".concat(p.name),...F,optionRender:S,onSearch:"tags"===F.mode?C:void 0,onChange:f,value:p.value||void 0,status:v?"error":void 0}),(0,i.jsx)(s.Bc,{isInvalid:v,message:b.error,fieldName:p.name})]})})}},57899:function(e,a,n){var i=n(24246),t=n(56351),l=n(27378);a.Z=e=>{let{handleConfirm:a,isOpen:n,onClose:r,title:o,message:s,confirmButtonText:d="Continue",cancelButtonText:_="Cancel"}=e,c=(0,l.useRef)(null);return(0,i.jsx)(t.aRR,{isOpen:n,leastDestructiveRef:c,onClose:r,children:(0,i.jsx)(t.dhV,{children:(0,i.jsxs)(t._Tf,{alignItems:"center",textAlign:"center",children:[(0,i.jsx)(t.aNP,{marginTop:3}),(0,i.jsx)(t.fYl,{fontSize:"lg",fontWeight:"bold",children:o}),(0,i.jsx)(t.iPF,{pt:0,children:s}),(0,i.jsxs)(t.xoY,{children:[(0,i.jsx)(t.wpx,{ref:c,onClick:r,size:"large",children:_}),(0,i.jsx)(t.wpx,{onClick:()=>a(),type:"primary",size:"large",className:"ml-3","data-testid":"warning-modal-confirm-btn",children:d})]})]})})})}},90980:function(e,a,n){n.d(a,{R:function(){return s}});var i=n(24246),t=n(56351),l=n(79894),r=n.n(l),o=n(63662);let s=e=>{let{onClick:a,...n}=e;return(0,i.jsxs)(t.kCb,{alignItems:"center",mt:-4,mb:3,onClick:a,cursor:"pointer",...n,children:[(0,i.jsx)(t.wpx,{"aria-label":"Back",icon:(0,i.jsx)(t.Rpv,{}),className:"mr-2",size:"small"}),(0,i.jsx)(t.xvT,{as:"a",fontSize:"sm",fontWeight:"500",children:"Back"})]})};a.Z=e=>{let{backPath:a,...n}=e,l=(0,o.useRouter)();return(0,i.jsxs)(t.kCb,{alignItems:"center",mb:6,...n,children:[(0,i.jsx)(t.wpx,{onClick:()=>l.push(a),"aria-label":"Back",icon:(0,i.jsx)(t.Rpv,{}),className:"mr-2",size:"small"}),(0,i.jsx)(t.xvT,{as:r(),href:a,fontSize:"sm",fontWeight:"500",children:"Back"})]})}},8411:function(e,a,n){n.d(a,{NA:function(){return l},Z8:function(){return t}});var i=n(21702);let t={[i._F.ER]:"Eritrea",[i._F.DJ]:"Djibouti",[i._F.MR]:"Mauritania",[i._F.NA]:"Namibia",[i._F.GH]:"Ghana",[i._F.SS]:"South Sudan",[i._F.SC]:"Seychelles",[i._F.IO]:"British Indian Ocean Territory",[i._F.GQ]:"Equatorial Guinea",[i._F.AO]:"Angola",[i._F.CG]:"Republic of the Congo",[i._F.BW]:"Botswana",[i._F.BI]:"Burundi",[i._F.DZ]:"Algeria",[i._F.TD]:"Chad",[i._F.NG]:"Nigeria",[i._F.TZ]:"Tanzania",[i._F.EH]:"Western Sahara",[i._F.SN]:"Senegal",[i._F.LR]:"Liberia",[i._F.ZA]:"South Africa",[i._F.CV]:"Cape Verde",[i._F.GM]:"Gambia",[i._F.SD]:"Sudan",[i._F.KM]:"Comoros",[i._F.SZ]:"Eswatini",[i._F.UG]:"Uganda",[i._F.MG]:"Madagascar",[i._F.RW]:"Rwanda",[i._F.CD]:"DR Congo",[i._F.CM]:"Cameroon",[i._F.SH]:"Saint Helena, Ascension and Tristan da Cunha",[i._F.TG]:"Togo",[i._F.MU]:"Mauritius",[i._F.NE]:"Niger",[i._F.BJ]:"Benin",[i._F.EG]:"Egypt",[i._F.LS]:"Lesotho",[i._F.ET]:"Ethiopia",[i._F.MA]:"Morocco",[i._F.YT]:"Mayotte",[i._F.BF]:"Burkina Faso",[i._F.RE]:"R\xe9union",[i._F.ST]:"S\xe3o Tom\xe9 and Pr\xedncipe",[i._F.CF]:"Central African Republic",[i._F.MZ]:"Mozambique",[i._F.MW]:"Malawi",[i._F.ML]:"Mali",[i._F.ZM]:"Zambia",[i._F.LY]:"Libya",[i._F.GW]:"Guinea-Bissau",[i._F.SO]:"Somalia",[i._F.KE]:"Kenya",[i._F.GN]:"Guinea",[i._F.ZW]:"Zimbabwe",[i._F.TN]:"Tunisia",[i._F.SL]:"Sierra Leone",[i._F.GA]:"Gabon",[i._F.CI]:"Ivory Coast",[i._F.JO]:"Jordan",[i._F.PK]:"Pakistan",[i._F.KP]:"North Korea",[i._F.MO]:"Macau",[i._F.AM]:"Armenia",[i._F.SY]:"Syria",[i._F.TJ]:"Tajikistan",[i._F.SA]:"Saudi Arabia",[i._F.KR]:"South Korea",[i._F.NP]:"Nepal",[i._F.PH]:"Philippines",[i._F.IQ]:"Iraq",[i._F.LB]:"Lebanon",[i._F.MN]:"Mongolia",[i._F.PS]:"Palestine",[i._F.YE]:"Yemen",[i._F.JP]:"Japan",[i._F.KZ]:"Kazakhstan",[i._F.LK]:"Sri Lanka",[i._F.MM]:"Myanmar",[i._F.KG]:"Kyrgyzstan",[i._F.CN]:"China",[i._F.AF]:"Afghanistan",[i._F.OM]:"Oman",[i._F.IN]:"India",[i._F.LA]:"Laos",[i._F.UZ]:"Uzbekistan",[i._F.MV]:"Maldives",[i._F.ID]:"Indonesia",[i._F.VN]:"Vietnam",[i._F.MY]:"Malaysia",[i._F.TW]:"Taiwan",[i._F.KH]:"Cambodia",[i._F.AE]:"United Arab Emirates",[i._F.HK]:"Hong Kong",[i._F.GE]:"Georgia",[i._F.BD]:"Bangladesh",[i._F.KW]:"Kuwait",[i._F.TM]:"Turkmenistan",[i._F.QA]:"Qatar",[i._F.BH]:"Bahrain",[i._F.BN]:"Brunei",[i._F.TH]:"Thailand",[i._F.BT]:"Bhutan",[i._F.SG]:"Singapore",[i._F.IL]:"Israel",[i._F.AZ]:"Azerbaijan",[i._F.TL]:"Timor-Leste",[i._F.IR]:"Iran",[i._F.TR]:"Turkey",[i._F.MK]:"North Macedonia",[i._F.IE]:"Ireland",[i._F.DK]:"Denmark",[i._F.SK]:"Slovakia",[i._F.MD]:"Moldova",[i._F.AX]:"\xc5land Islands",[i._F.PL]:"Poland",[i._F.BA]:"Bosnia and Herzegovina",[i._F.SM]:"San Marino",[i._F.CZ]:"Czechia",[i._F.EE]:"Estonia",[i._F.XK]:"Kosovo",[i._F.FO]:"Faroe Islands",[i._F.SJ]:"Svalbard and Jan Mayen",[i._F.GG]:"Guernsey",[i._F.FR]:"France",[i._F.NL]:"Netherlands",[i._F.FI]:"Finland",[i._F.PT]:"Portugal",[i._F.DE]:"Germany",[i._F.MT]:"Malta",[i._F.JE]:"Jersey",[i._F.IS]:"Iceland",[i._F.ES]:"Spain",[i._F.GI]:"Gibraltar",[i._F.NO]:"Norway",[i._F.CY]:"Cyprus",[i._F.RS]:"Serbia",[i._F.LT]:"Lithuania",[i._F.MC]:"Monaco",[i._F.LU]:"Luxembourg",[i._F.UA]:"Ukraine",[i._F.IM]:"Isle of Man",[i._F.RO]:"Romania",[i._F.BE]:"Belgium",[i._F.SE]:"Sweden",[i._F.ME]:"Montenegro",[i._F.LV]:"Latvia",[i._F.VA]:"Vatican City",[i._F.AT]:"Austria",[i._F.AL]:"Albania",[i._F.LI]:"Liechtenstein",[i._F.GR]:"Greece",[i._F.IT]:"Italy",[i._F.AD]:"Andorra",[i._F.GB]:"United Kingdom",[i._F.RU]:"Russia",[i._F.SI]:"Slovenia",[i._F.BY]:"Belarus",[i._F.CH]:"Switzerland",[i._F.HU]:"Hungary",[i._F.BG]:"Bulgaria",[i._F.HR]:"Croatia",[i._F.TC]:"Turks and Caicos Islands",[i._F.CW]:"Cura\xe7ao",[i._F.GP]:"Guadeloupe",[i._F.UM]:"United States Minor Outlying Islands",[i._F.GT]:"Guatemala",[i._F.PM]:"Saint Pierre and Miquelon",[i._F.BQ]:"Caribbean Netherlands",[i._F.GL]:"Greenland",[i._F.SX]:"Sint Maarten",[i._F.PA]:"Panama",[i._F.AW]:"Aruba",[i._F.MQ]:"Martinique",[i._F.AG]:"Antigua and Barbuda",[i._F.BM]:"Bermuda",[i._F.CU]:"Cuba",[i._F.GD]:"Grenada",[i._F.NI]:"Nicaragua",[i._F.LC]:"Saint Lucia",[i._F.KN]:"Saint Kitts and Nevis",[i._F.DO]:"Dominican Republic",[i._F.VC]:"Saint Vincent and the Grenadines",[i._F.BZ]:"Belize",[i._F.HT]:"Haiti",[i._F.JM]:"Jamaica",[i._F.BS]:"Bahamas",[i._F.MX]:"Mexico",[i._F.MF]:"Saint Martin",[i._F.SV]:"El Salvador",[i._F.BL]:"Saint Barth\xe9lemy",[i._F.AI]:"Anguilla",[i._F.MS]:"Montserrat",[i._F.VG]:"British Virgin Islands",[i._F.BB]:"Barbados",[i._F.HN]:"Honduras",[i._F.KY]:"Cayman Islands",[i._F.DM]:"Dominica",[i._F.TT]:"Trinidad and Tobago",[i._F.CR]:"Costa Rica",[i._F.SR]:"Suriname",[i._F.CX]:"Christmas Island",[i._F.WS]:"Samoa",[i._F.PF]:"French Polynesia",[i._F.AS]:"American Samoa",[i._F.NC]:"New Caledonia",[i._F.TK]:"Tokelau",[i._F.PW]:"Palau",[i._F.KI]:"Kiribati",[i._F.VU]:"Vanuatu",[i._F.PN]:"Pitcairn Islands",[i._F.CK]:"Cook Islands",[i._F.FJ]:"Fiji",[i._F.PG]:"Papua New Guinea",[i._F.MP]:"Northern Mariana Islands",[i._F.NU]:"Niue",[i._F.TV]:"Tuvalu",[i._F.NF]:"Norfolk Island",[i._F.TO]:"Tonga",[i._F.FM]:"Micronesia",[i._F.SB]:"Solomon Islands",[i._F.NR]:"Nauru",[i._F.WF]:"Wallis and Futuna",[i._F.GU]:"Guam",[i._F.AU]:"Australia",[i._F.NZ]:"New Zealand",[i._F.MH]:"Marshall Islands",[i._F.CC]:"Cocos (Keeling) Islands",[i._F.VE]:"Venezuela",[i._F.PY]:"Paraguay",[i._F.BR]:"Brazil",[i._F.CO]:"Colombia",[i._F.PE]:"Peru",[i._F.CL]:"Chile",[i._F.UY]:"Uruguay",[i._F.AR]:"Argentina",[i._F.GY]:"Guyana",[i._F.BO]:"Bolivia",[i._F.GF]:"French Guiana",[i._F.EC]:"Ecuador",[i._F.FK]:"Falkland Islands",[i._F.US_AL]:"Alabama",[i._F.US_AK]:"Alaska",[i._F.US_AZ]:"Arizona",[i._F.US_AR]:"Arkansas",[i._F.US_CA]:"California",[i._F.US_CO]:"Colorado",[i._F.US_CT]:"Connecticut",[i._F.US_DE]:"Delaware",[i._F.US_DC]:"District of Columbia (DC)",[i._F.US_FL]:"Florida",[i._F.US_GA]:"Georgia",[i._F.US_HI]:"Hawaii",[i._F.US_ID]:"Idaho",[i._F.US_IL]:"Illinois",[i._F.US_IN]:"Indiana",[i._F.US_IA]:"Iowa",[i._F.US_KS]:"Kansas",[i._F.US_KY]:"Kentucky",[i._F.US_LA]:"Louisiana",[i._F.US_ME]:"Maine",[i._F.US_MD]:"Maryland",[i._F.US_MA]:"Massachusetts",[i._F.US_MI]:"Michigan",[i._F.US_MN]:"Minnesota",[i._F.US_MS]:"Mississippi",[i._F.US_MO]:"Missouri",[i._F.US_MT]:"Montana",[i._F.US_NE]:"Nebraska",[i._F.US_NV]:"Nevada",[i._F.US_NH]:"New Hampshire",[i._F.US_NJ]:"New Jersey",[i._F.US_NM]:"New Mexico",[i._F.US_NY]:"New York",[i._F.US_NC]:"North Carolina",[i._F.US_ND]:"North Dakota",[i._F.US_OH]:"Ohio",[i._F.US_OK]:"Oklahoma",[i._F.US_OR]:"Oregon",[i._F.US_PA]:"Pennsylvania",[i._F.US_PR]:"Puerto Rico",[i._F.US_RI]:"Rhode Island",[i._F.US_SC]:"South Carolina",[i._F.US_SD]:"San Diego",[i._F.US_TN]:"Tennessee",[i._F.US_TX]:"Texas",[i._F.US_UT]:"Utah",[i._F.US_VA]:"Virginia",[i._F.US_VI]:"United States Virgin Islands",[i._F.US_VT]:"Vermon",[i._F.US_WA]:"Washington",[i._F.US_WV]:"West Virginia",[i._F.US_WI]:"Wisconsin",[i._F.US_WY]:"Wyoming",[i._F.CA_AB]:"Alberta",[i._F.CA_BC]:"British Columbia",[i._F.CA_MB]:"Manitoba",[i._F.CA_NB]:"New Brunswick",[i._F.CA_NL]:"Newfoundland and Labrador",[i._F.CA_NS]:"Nova Scotia",[i._F.CA_ON]:"Ontario",[i._F.CA_PE]:"Prince Edward Island",[i._F.CA_QC]:"Quebec",[i._F.CA_SK]:"Saskatchewan",[i._F.CA_NT]:"Northwest Territories",[i._F.CA_NU]:"Nunavut",[i._F.CA_YT]:"Yukon",[i._F.CA]:"Canada",[i._F.US]:"United States",[i._F.MEXICO_CENTRAL_AMERICA]:"Mexico and Central America",[i._F.CARIBBEAN]:"Caribbean",[i._F.EEA]:"European Economic Area (EEA)",[i._F.NON_EEA]:"Non European Economic Area"},l=new Map(Object.entries(t));Object.entries(t).map(e=>({value:e[0],label:e[1]}))},7426:function(e,a,n){n.d(a,{D2:function(){return u},L:function(){return o},U7:function(){return d},Yh:function(){return p},ak:function(){return s},km:function(){return r},tB:function(){return l}});var i=n(80406);let t=n(78780).u.injectEndpoints({endpoints:e=>({getConfigurationSettings:e.query({query:e=>{let{api_set:a}=e;return{url:"/config",method:"GET",params:{api_set:a}}},providesTags:["Configuration Settings"]}),putConfigurationSettings:e.mutation({query:e=>({url:"/config",method:"PUT",body:e}),invalidatesTags:["Configuration Settings"]}),patchConfigurationSettings:e.mutation({query:e=>({url:"/config",method:"PATCH",body:e}),invalidatesTags:["Configuration Settings","Privacy Notices"]})})}),{useGetConfigurationSettingsQuery:l,usePutConfigurationSettingsMutation:r,usePatchConfigurationSettingsMutation:o}=t,s=(0,i.P1)([e=>e,t.endpoints.getConfigurationSettings.select({api_set:!0}),t.endpoints.getConfigurationSettings.select({api_set:!1})],(e,a,n)=>{var i,t,l;let{data:r}=a,{data:o}=n;return{configSet:{cors_origins:(null==o?void 0:null===(i=o.security)||void 0===i?void 0:i.cors_origins)||[],cors_origin_regex:null==o?void 0:null===(t=o.security)||void 0===t?void 0:t.cors_origin_regex},apiSet:{cors_origins:(null==r?void 0:null===(l=r.security)||void 0===l?void 0:l.cors_origins)||[]}}}),d=()=>(0,i.P1)([e=>e,t.endpoints.getConfigurationSettings.select({api_set:!0})],(e,a)=>{let{data:n}=a;return n}),_={enabled:!1,cmp_api_required:!1},c=(e,a,n,i)=>{let t=n&&n[e],l=i&&i[e];return t&&l?{...i[e],...n[e]}:l?i[e]:t?{...n[e]}:a},u=(0,i.P1)([e=>e,t.endpoints.getConfigurationSettings.select({api_set:!0}),t.endpoints.getConfigurationSettings.select({api_set:!1})],(e,a,n)=>{let{data:i}=a,{data:t}=n;return c("gpp",_,i,t)}),F={tcf_publisher_country_code:null},p=(0,i.P1)([e=>e,t.endpoints.getConfigurationSettings.select({api_set:!0}),t.endpoints.getConfigurationSettings.select({api_set:!1})],(e,a,n)=>{let{data:i}=a,{data:t}=n;return c("plus_consent_settings",F,i,t)})},16194:function(e,a,n){n.d(a,{RN:function(){return A},d0:function(){return j}});var i=n(24246),t=n(56351),l=n(34090),r=n(86677),o=n(27378),s=n(16134),d=n(40324),_=n(90980),c=n(77830),u=n(8411),F=n(51472),p=n(64781),b=n(48515),m=n(60325),v=n(34334),g=n(71922),h=n(98795),S=n(21702),C=n(97181);let f=[{label:"Banner and modal",value:S.re.BANNER_AND_MODAL},{label:"Modal",value:S.re.MODAL},{label:"Privacy center",value:S.re.PRIVACY_CENTER},{label:"Headless",value:S.re.HEADLESS}],y=[{label:"Opt In/Opt Out",value:b.O.OPT_IN_OPT_OUT},{label:"Acknowledge",value:b.O.ACKNOWLEDGE}],x="tcf_purposes_placeholder",A=e=>{let{buttonPanel:a,children:n}=e;return(0,i.jsxs)(t.kCb,{direction:"column",minH:"full",w:"25%",borderRight:"1px solid #DEE5EE",children:[(0,i.jsx)(t.kCb,{direction:"column",h:"full",overflowY:"auto",px:4,children:(0,i.jsx)(t.kCb,{direction:"column",gap:4,w:"full",pb:4,children:n})}),a]})},j=e=>{var a,n,b,j,k;let{allPrivacyNotices:N,translationsEnabled:T,onSelectTranslation:M,onCreateTranslation:I}=e,E=(0,r.useRouter)(),{values:U,setFieldValue:R,dirty:w,isValid:O,isSubmitting:B,initialValues:L}=(0,l.u6)(),P=(0,s.C)(g.Zp),q=(0,s.C)(g.G1);(0,g.J6)({page:P,size:q});let D=(0,o.useMemo)(()=>{let e=[...N];return e.some(e=>e.id===x)||e.push({name:"TCF Purposes",id:x,notice_key:x,data_uses:[],consent_mechanism:S.J7.NOTICE_ONLY,disabled:!1}),e},[N]),G=e=>{var a;let n=D.find(a=>a.id===e);return null!==(a=null==n?void 0:n.name)&&void 0!==a?a:e};(0,p.QM)();let K=(0,s.C)(p.P8),V=[...(0,m.TK)(K.locations),...(0,m.TK)(K.location_groups)],Z=(0,s.C)(v.fJ),Y=(0,s.C)(h.Zp),W=(0,s.C)(h.G1);(0,h.gz)({page:Y,size:W});let z=(0,s.C)(h.YO),H=(0,i.jsxs)("div",{className:"flex justify-between border-t border-[#DEE5EE] p-4",children:[(0,i.jsx)(t.wpx,{onClick:()=>E.push(c.w0),children:"Cancel"}),(0,i.jsx)(t.wpx,{htmlType:"submit",type:"primary","data-testid":"save-btn",disabled:B||!w||!O,loading:B,children:"Save"})]});return(0,i.jsxs)(A,{buttonPanel:H,children:[(0,i.jsx)(_.Z,{backPath:c.w0,mt:4}),(0,i.jsx)(t.X6q,{fontSize:"md",fontWeight:"semibold",children:"Configure experience"}),(0,i.jsx)(d.j0,{name:"name",id:"name",label:"Name (internal admin use only)",isRequired:!0,variant:"stacked"}),U.component!==S.re.TCF_OVERLAY&&(0,i.jsx)(C.d,{name:"component",id:"component",options:f,label:"Experience type",layout:"stacked",disabled:!!L.component,isRequired:!0}),(0,i.jsx)(t.UO1,{in:U.component!==S.re.PRIVACY_CENTER&&U.component!==S.re.HEADLESS,animateOpacity:!0,children:(0,i.jsx)(t.xuv,{p:"1px",children:(0,i.jsx)(d.w8,{name:"dismissable",id:"dismissable",label:"Allow user to dismiss",variant:"stacked"})})}),(0,i.jsx)(t.UO1,{in:U.component===S.re.BANNER_AND_MODAL,animateOpacity:!0,children:(0,i.jsx)(C.d,{name:"layer1_button_options",id:"layer1_button_options",options:y,label:"Banner options",layout:"stacked",disabled:U.component!==S.re.BANNER_AND_MODAL})}),(0,i.jsx)(F.Z,{label:"Associated properties",addButtonLabel:"Add property",idField:"id",nameField:"name",allItems:z.map(e=>({id:e.id,name:e.name})),values:null!==(n=U.properties)&&void 0!==n?n:[],setValues:e=>R("properties",e),draggable:!0,maxHeight:100,baseTestId:"property"}),(0,i.jsx)(t.izJ,{}),(0,i.jsx)(t.X6q,{fontSize:"md",fontWeight:"semibold",children:"Privacy notices"}),U.component===S.re.TCF_OVERLAY?(0,i.jsx)(F.Z,{addButtonLabel:"Add privacy notice",allItems:D.map(e=>e.id),values:function(e){if(!e.privacy_notice_ids)return[x];let a=e.privacy_notice_ids;return a.includes(x)||a.push(x),a}(U),setValues:e=>R("privacy_notice_ids",e),canDeleteItem:e=>e!==x,getTooltip:e=>{if(e===x)return"TCF Purposes are required by the framework and cannot be deleted."},getItemLabel:G,draggable:!0,baseTestId:"privacy-notice"}):(0,i.jsx)(F.Z,{addButtonLabel:"Add privacy notice",allItems:(e=>{var a;let n=e.map(e=>{var a;return null===(a=e.children)||void 0===a?void 0:a.map(e=>e.id)}).flat();return null!==(a=N.filter(e=>!n.includes(e.id)))&&void 0!==a?a:[]})(N).map(e=>e.id),values:null!==(b=U.privacy_notice_ids)&&void 0!==b?b:[],setValues:e=>R("privacy_notice_ids",e),getItemLabel:G,draggable:!0,baseTestId:"privacy-notice"}),U.component===S.re.BANNER_AND_MODAL?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.UO1,{in:!!(null===(a=U.privacy_notice_ids)||void 0===a?void 0:a.length),animateOpacity:!0,children:(0,i.jsx)(t.xuv,{p:"1px",children:(0,i.jsx)(d.w8,{name:"show_layer1_notices",id:"show_layer1_notices",label:"Add privacy notices to banner",variant:"stacked"})})}),(0,i.jsx)(t.izJ,{})]}):null,(0,i.jsx)(t.xvT,{as:"h2",fontWeight:"600",children:"Locations & Languages"}),(0,i.jsx)(F.Z,{label:"Locations for this experience",addButtonLabel:"Add location",allItems:V,values:null!==(j=U.regions)&&void 0!==j?j:[],setValues:e=>R("regions",e),getItemLabel:e=>u.Z8[e],draggable:!0,baseTestId:"location"}),T?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(F.Z,{label:"Languages for this experience",addButtonLabel:"Add language",values:null!==(k=U.translations)&&void 0!==k?k:[],setValues:e=>R("translations",e),idField:"language",canDeleteItem:e=>!e.is_default,allItems:Z.slice().sort((e,a)=>e.name.localeCompare(a.name)).map(e=>({language:e.id,is_default:!1})),getItemLabel:e=>{let a=Z.find(a=>a.id===e.language),n=a?a.name:e.language;return"".concat(n).concat(e.is_default?" (Default)":"")},createNewValue:e=>I(e.value),onRowClick:M,selectOnAdd:!0,draggable:!0,baseTestId:"language"}),(0,i.jsx)(d.w8,{name:"auto_detect_language",id:"auto_detect_language",label:"Auto detect language",variant:"stacked"})]}):(0,i.jsx)(t.wpx,{icon:(0,i.jsx)(t.mrv,{}),iconPosition:"end",onClick:()=>M(U.translations[0]),"data-testid":"edit-experience-btn",children:"Edit experience text"}),(0,i.jsx)(d.w8,{name:"auto_subdomain_cookie_deletion",id:"auto_subdomain_cookie_deletion",label:"Automatically delete subdomain cookies",variant:"stacked",tooltip:"If enabled, automatically deletes cookies set on subdomains in addition to main domain where appropriate. Recommended to enable for full consent compliance."})]})}},16277:function(e,a,n){n.d(a,{f:function(){return m}});var i=n(24246),t=n(56351),l=n(34090),r=n(56141),o=n.n(r),s=n(27378),d=n(40324),_=n(87361),c=n(57899),u=n(90980),F=n(60325),p=n(16194),b=n(21702);let m=e=>{let{languageName:a}=e;return(0,i.jsx)(_.Z,{text:"This is a default translation provided by Fides. If you've modified the default English language text, these translations will not match, so verify any changes with a native ".concat(a," speaker before using."),"data-testid":"oob-translation-notice"})};a.Z=e=>{var a,n,r,_,v,g,h;let S,{translation:C,translationsEnabled:f,isOOB:y,onReturnToMainForm:x}=e,{values:A,setFieldValue:j,errors:k,touched:N,setTouched:T}=(0,l.u6)(),M=(0,s.useMemo)(()=>{let{name:e,...a}=C;return a},[C]),I=!!M.title&&!y,E=(0,F.y3)(A.component),U=A.translations.findIndex(e=>e.language===C.language),R=!o()(A.translations[U],M),{onOpen:w,isOpen:O,onClose:B}=(0,t.qY0)(),{onOpen:L,isOpen:P,onClose:q}=(0,t.qY0)(),D=()=>{R||y?w():x()},G=e=>{let a=A.translations.map((a,n)=>({...a,is_default:n===e}));a.unshift(a.splice(e,1)[0]),j("translations",a),x()},K=(0,i.jsxs)("div",{className:"flex justify-between border-t border-[#DEE5EE] p-4",children:[(0,i.jsx)(t.wpx,{onClick:D,"data-testid":"cancel-btn",children:"Cancel"}),(0,i.jsx)(t.wpx,{onClick:()=>{A.translations[U].is_default&&!M.is_default?L():x()},type:"primary","data-testid":"save-btn",disabled:!R&&!y||!!k.translations,children:I?"Save":"Add translation"})]});return S=f?I?"You have unsaved changes to this translation. Discard changes?":"This translation has not been added to your experience. Discard translation?":"You have unsaved changes to this experience text. Discard changes?",(0,i.jsxs)(p.RN,{buttonPanel:K,children:[(0,i.jsx)(u.R,{onClick:D,mt:4}),(0,i.jsx)(c.Z,{isOpen:O,onClose:B,title:f?"Translation not saved":"Text not saved",message:(0,i.jsx)(t.xvT,{children:S}),confirmButtonText:"Discard",handleConfirm:()=>{let e=A.translations.slice();I?e[U]={...M,title:M.title,description:M.description}:e.splice(U,1),j("translations",e);let{translations:a,...n}=N;T({...n}),x()}}),(0,i.jsx)(t.X6q,{fontSize:"md",fontWeight:"semibold",children:f?"Edit ".concat(C.name," translation"):"Edit experience text"}),y?(0,i.jsx)(m,{languageName:C.name}):null,f&&(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(d.w8,{name:"translations.".concat(U,".is_default"),id:"translations.".concat(U,".is_default"),label:"Default language",isDisabled:!!M.is_default,variant:"stacked"}),(0,i.jsx)(c.Z,{isOpen:P,onClose:q,title:"Update default language",message:(0,i.jsx)(t.xvT,{children:"Are you sure you want to update the default language of this experience?"}),handleConfirm:()=>G(U)})]}),(0,i.jsx)(d.j0,{name:"translations.".concat(U,".title"),id:"translations.".concat(U,".title"),label:"Title",isRequired:!0,variant:"stacked"}),(0,i.jsx)(d.Ks,{name:"translations.".concat(U,".description"),id:"translations.".concat(U,".description"),label:"Description",isRequired:!0,variant:"stacked"}),(A.component===b.re.BANNER_AND_MODAL||A.component===b.re.TCF_OVERLAY)&&(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(d.j0,{name:"translations.".concat(U,".banner_title"),id:"translations.".concat(U,".banner_title"),label:"Banner title (optional)",tooltip:"A separate title for the banner (defaults to main title)",variant:"stacked"}),(0,i.jsx)(d.Ks,{name:"translations.".concat(U,".banner_description"),id:"translations.".concat(U,".banner_description"),label:"Banner description (optional)",tooltip:"A separate description for the banner (defaults to main description)",variant:"stacked"})]}),A.component===b.re.TCF_OVERLAY&&(0,i.jsx)(d.j0,{name:"translations.".concat(U,".purpose_header"),id:"translations.".concat(U,".purpose_header"),label:"Purpose header (optional)",tooltip:"Appears above the Purpose list section of the TCF banner",variant:"stacked"}),(0,i.jsx)(d.j0,{name:"translations.".concat(U,".accept_button_label"),id:"translations.".concat(U,".accept_button_label"),label:'"Accept" button label',isRequired:!0,variant:"stacked"}),(0,i.jsx)(d.j0,{name:"translations.".concat(U,".reject_button_label"),id:"translations.".concat(U,".reject_button_label"),label:'"Reject" button label',isRequired:!0,variant:"stacked"}),(null===(a=E.privacy_preferences_link_label)||void 0===a?void 0:a.included)&&(0,i.jsx)(d.j0,{name:"translations.".concat(U,".privacy_preferences_link_label"),id:"translations.".concat(U,".privacy_preferences_link_label"),label:'"Manage privacy preferences" button label',variant:"stacked",isRequired:null===(n=E.privacy_preferences_link_label)||void 0===n?void 0:n.required}),(null===(r=E.save_button_label)||void 0===r?void 0:r.included)&&(0,i.jsx)(d.j0,{name:"translations.".concat(U,".save_button_label"),id:"translations.".concat(U,".save_button_label"),label:'"Save" button label',variant:"stacked",isRequired:E.save_button_label.required}),(null===(_=E.acknowledge_button_label)||void 0===_?void 0:_.included)&&(0,i.jsx)(d.j0,{name:"translations.".concat(U,".acknowledge_button_label"),id:"translations.".concat(U,".acknowledge_button_label"),label:'"Acknowledge" button label',variant:"stacked",isRequired:E.acknowledge_button_label.required}),(null===(v=E.privacy_policy_link_label)||void 0===v?void 0:v.included)&&(0,i.jsx)(d.j0,{name:"translations.".concat(U,".privacy_policy_link_label"),id:"translations.".concat(U,".privacy_policy_link_label"),label:"Privacy policy link label (optional)",variant:"stacked"}),(null===(g=E.privacy_policy_url)||void 0===g?void 0:g.included)&&(0,i.jsx)(d.j0,{name:"translations.".concat(U,".privacy_policy_url"),id:"translations.".concat(U,".privacy_policy_url"),label:"Privacy policy link URL (optional)",variant:"stacked"}),(null===(h=E.modal_link_label)||void 0===h?void 0:h.included)&&(0,i.jsx)(d.j0,{name:"translations.".concat(U,".modal_link_label"),id:"translations.".concat(U,".modal_link_label"),label:"Trigger link label (optional)",tooltip:"Include text here if you would like the Fides CMP to manage the copy of the button that is included on your site to open the CMP.",variant:"stacked"})]})}},48515:function(e,a,n){var i,t;n.d(a,{O:function(){return i}}),(t=i||(i={})).ACKNOWLEDGE="acknowledge",t.OPT_IN_OPT_OUT="opt_in_opt_out"},60325:function(e,a,n){n.d(a,{DD:function(){return s},Go:function(){return d},TK:function(){return l},Uv:function(){return c},k1:function(){return r},y3:function(){return u}});var i=n(21702),t=n(48515);let l=e=>{var a;return null!==(a=null==e?void 0:e.filter(e=>e.selected).map(e=>e.id))&&void 0!==a?a:[]},r=e=>{var a;return null!==(a=null==e?void 0:e.filter(e=>e.selected))&&void 0!==a?a:[]},o=[{language:i.eU.EN,is_default:!0,title:"Title",description:"Description",accept_button_label:"Accept",reject_button_label:"Reject",save_button_label:"Save",acknowledge_button_label:"OK",privacy_preferences_link_label:"Privacy Preferences"}],s={name:"",disabled:!1,dismissable:!0,allow_language_selection:!1,show_layer1_notices:!1,layer1_button_options:t.O.OPT_IN_OPT_OUT,regions:[],translations:o,auto_detect_language:!0,auto_subdomain_cookie_deletion:!0},d=(e,a)=>{let n=a.find(a=>a.id===e.language);return n?n.name:e.language},_=e=>{var a,n,i,t,l,r,o,s,d;let{language:_,is_default:c,accept_button_label:u,reject_button_label:F}=e;return{language:_,is_default:c,accept_button_label:u,reject_button_label:F,title:e.title,description:e.description,acknowledge_button_label:null!==(a=e.acknowledge_button_label)&&void 0!==a?a:void 0,banner_title:null!==(n=e.banner_title)&&void 0!==n?n:void 0,banner_description:null!==(i=e.banner_description)&&void 0!==i?i:void 0,purpose_header:null!==(t=e.purpose_header)&&void 0!==t?t:void 0,privacy_policy_link_label:null!==(l=e.privacy_policy_link_label)&&void 0!==l?l:void 0,privacy_policy_url:null!==(r=e.privacy_policy_url)&&void 0!==r?r:void 0,privacy_preferences_link_label:null!==(o=e.privacy_preferences_link_label)&&void 0!==o?o:void 0,save_button_label:null!==(s=e.save_button_label)&&void 0!==s?s:void 0,modal_link_label:null!==(d=e.modal_link_label)&&void 0!==d?d:void 0}},c=e=>{let{created_at:a,updated_at:n,privacy_notices:i,origin:t,id:l,...r}=e;return{...r,privacy_notice_ids:i?i.map(e=>e.id):[],translations:e.translations?e.translations.map(e=>_(e)):[]}},u=e=>e===i.re.PRIVACY_CENTER?{title:{included:!0,required:!0},description:{included:!0,required:!0},save_button_label:{included:!0,required:!0},accept_button_label:{included:!0,required:!0},reject_button_label:{included:!0,required:!0},privacy_policy_link_label:{included:!0},privacy_policy_url:{included:!0},modal_link_label:{included:!0}}:e===i.re.MODAL?{title:{included:!0,required:!0},description:{included:!0,required:!0},accept_button_label:{included:!0,required:!0},reject_button_label:{included:!0,required:!0},save_button_label:{included:!0,required:!0},acknowledge_button_label:{included:!0,required:!0},privacy_policy_link_label:{included:!0},privacy_policy_url:{included:!0},privacy_preferences_link_label:{included:!0},modal_link_label:{included:!0}}:e===i.re.BANNER_AND_MODAL?{title:{included:!0,required:!0},banner_title:{included:!0},description:{included:!0,required:!0},banner_description:{included:!0},accept_button_label:{included:!0,required:!0},reject_button_label:{included:!0,required:!0},save_button_label:{included:!0,required:!0},acknowledge_button_label:{included:!0,required:!0},privacy_policy_link_label:{included:!0},privacy_policy_url:{included:!0},privacy_preferences_link_label:{included:!0,required:!0},modal_link_label:{included:!0}}:e===i.re.TCF_OVERLAY?{title:{included:!0,required:!0},banner_title:{included:!0},description:{included:!0,required:!0},banner_description:{included:!0},purpose_header:{included:!0},accept_button_label:{included:!0,required:!0},reject_button_label:{included:!0,required:!0},save_button_label:{included:!0,required:!0},acknowledge_button_label:{included:!0,required:!0},privacy_policy_link_label:{included:!0},privacy_policy_url:{included:!0},privacy_preferences_link_label:{included:!0,required:!0},modal_link_label:{included:!0}}:{title:{included:!0,required:!0},description:{included:!0,required:!0},accept_button_label:{included:!0,required:!0},reject_button_label:{included:!0,required:!0},save_button_label:{included:!0,required:!0},acknowledge_button_label:{included:!0,required:!0},privacy_policy_link_label:{included:!0},privacy_policy_url:{included:!0},privacy_preferences_link_label:{included:!0,required:!0},modal_link_label:{included:!0}}}}]);
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2201],{7617:function(e,t,n){n.d(t,{q:function(){return o}});var i=n(24246),r=n(56351);let o=e=>{let{label:t,isDisabled:n,...o}=e;return(0,i.jsx)(r.OK9,{"data-testid":"tab-".concat(t),_selected:{fontWeight:"600",color:"complimentary.500",borderColor:"complimentary.500"},fontSize:o.fontSize,fontWeight:"500",color:"gray.500",isDisabled:n||!1,children:t})};t.Z=e=>{let{data:t,border:n="partial",...a}=e;return(0,i.jsxs)(r.mQc,{colorScheme:"complimentary",...a,children:[(0,i.jsx)(r.tdY,{width:"partial"===n?"max-content":void 0,children:t.map(e=>(0,i.jsx)(o,{label:e.label,isDisabled:e.isDisabled,fontSize:a.fontSize},e.label))}),(0,i.jsx)(r.nPR,{children:t.map(e=>(0,i.jsx)(r.x45,{px:0,"data-testid":"tab-panel-".concat(e.label),children:e.content},e.label))})]})}},77213:function(e,t,n){n.d(t,{Z:function(){return p}});var i=n(24246),r=n(56351),o=n(88038),a=n.n(o),l=n(86677);n(27378);var s=n(25980),d=n(90867),c=n(77830),u=()=>{let e=(0,l.useRouter)();return(0,i.jsx)(r.xuv,{bg:"gray.50",border:"1px solid",borderColor:"blue.400",borderRadius:"md",justifyContent:"space-between",p:5,mb:5,mt:5,children:(0,i.jsxs)(r.xuv,{children:[(0,i.jsxs)(r.Kqy,{direction:{base:"column",sm:"row"},justifyContent:"space-between",children:[(0,i.jsx)(r.xvT,{fontWeight:"semibold",children:"Configure your storage and messaging provider"}),(0,i.jsx)(r.wpx,{onClick:()=>{e.push(c.fz)},children:"Configure"})]}),(0,i.jsxs)(r.xvT,{children:["Before Fides can process your privacy requests we need two simple steps to configure your storage and email client."," "]})]})})},p=e=>{let{children:t,title:n,padded:o=!0,mainProps:c}=e,p=(0,s.hz)(),m=(0,l.useRouter)(),x="/privacy-requests"===m.pathname||"/datastore-connection"===m.pathname,h=!(p.flags.privacyRequestsConfiguration&&x),{data:f}=(0,d.JE)(void 0,{skip:h}),{data:g}=(0,d.PW)(void 0,{skip:h}),v=p.flags.privacyRequestsConfiguration&&(!f||!g)&&x;return(0,i.jsxs)(r.kCb,{"data-testid":n,direction:"column",h:"100vh",children:[(0,i.jsxs)(a(),{children:[(0,i.jsxs)("title",{children:["Fides Admin UI - ",n]}),(0,i.jsx)("meta",{name:"description",content:"Privacy Engineering Platform"}),(0,i.jsx)("link",{rel:"icon",href:"/favicon.ico"})]}),(0,i.jsxs)(r.kCb,{as:"main",direction:"column",py:o?6:0,px:o?10:0,h:o?"calc(100% - 48px)":"full",flex:1,minWidth:0,overflow:"auto",...c,children:[v?(0,i.jsx)(u,{}):null,t]})]})}},58754:function(e,t,n){var i=n(24246),r=n(56351),o=n(70788);t.Z=e=>{let{heading:t,breadcrumbItems:n,isSticky:a=!0,children:l,rightContent:s,style:d,...c}=e;return(0,i.jsxs)("div",{...c,style:a?{position:"sticky",top:"-24px",paddingTop:"24px",paddingBottom:"24px",paddingLeft:"40px",marginLeft:"-40px",paddingRight:"40px",marginRight:"-40px",marginTop:"-24px",left:0,zIndex:20,backgroundColor:"white",...d}:{paddingBottom:"24px",...d},children:[(0,i.jsxs)(r.jqI,{justify:"space-between",children:["string"==typeof t?(0,i.jsx)(r.X6q,{className:n||l?"pb-4":void 0,fontSize:"2xl","data-testid":"page-heading",children:t}):t,s&&(0,i.jsx)("div",{"data-testid":"page-header-right-content",children:s})]}),!!n&&(0,i.jsx)(o.m,{className:l?"pb-4":void 0,items:n,"data-testid":"page-breadcrumb"}),l]})}},97181:function(e,t,n){n.d(t,{d:function(){return d}});var i=n(24246),r=n(56351),o=n(34090),a=n(27378),l=n(91613),s=n(40324);let d=e=>{let{name:t,label:n,labelProps:d,tooltip:c,isRequired:u,layout:p="inline",...m}=e,[x,h,{setValue:f}]=(0,o.U$)(t),g=!!(h.touched&&h.error),[v,j]=(0,a.useState)("");x.value||"tags"!==m.mode&&"multiple"!==m.mode||(x.value=[]),"tags"===m.mode&&"string"==typeof x.value&&(x.value=[x.value]);let b="tags"===m.mode?(e,t)=>e?e.value!==v||x.value.includes(v)?m.optionRender?m.optionRender(e,t):e.label:'Create "'.concat(v,'"'):void 0:m.optionRender||void 0,y=e=>{j(e),m.onSearch&&m.onSearch(e)},C=(e,t)=>{f(e),m.onChange&&m.onChange(e,t)};return"inline"===p?(0,i.jsx)(r.NIc,{isInvalid:g,isRequired:u,children:(0,i.jsxs)(r.rjZ,{templateColumns:n?"1fr 3fr":"1fr",children:[n?(0,i.jsx)(s.__,{htmlFor:m.id||t,...d,children:n}):null,(0,i.jsxs)(r.jqI,{align:"center",children:[(0,i.jsxs)(r.jqI,{vertical:!0,flex:1,className:"mr-2",children:[(0,i.jsx)(r.WPr,{...x,id:m.id||t,"data-testid":"controlled-select-".concat(x.name),...m,optionRender:b,onSearch:"tags"===m.mode?y:void 0,onChange:C,value:x.value||void 0,status:g?"error":void 0}),(0,i.jsx)(s.Bc,{isInvalid:g,message:h.error,fieldName:x.name})]}),c?(0,i.jsx)(l.Z,{label:c}):null]})]})}):(0,i.jsx)(r.NIc,{isInvalid:g,isRequired:u,children:(0,i.jsxs)(r.gCW,{alignItems:"start",children:[(0,i.jsxs)(r.jqI,{align:"center",children:[n?(0,i.jsx)(s.__,{htmlFor:m.id||t,fontSize:"xs",my:0,mr:1,...d,children:n}):null,c?(0,i.jsx)(l.Z,{label:c}):null]}),(0,i.jsx)(r.WPr,{...x,id:m.id||t,"data-testid":"controlled-select-".concat(x.name),...m,optionRender:b,onSearch:"tags"===m.mode?y:void 0,onChange:C,value:x.value||void 0,status:g?"error":void 0}),(0,i.jsx)(s.Bc,{isInvalid:g,message:h.error,fieldName:x.name})]})})}},70788:function(e,t,n){n.d(t,{m:function(){return d}});var i=n(24246),r=n(56351),o=n(79894),a=n.n(o),l=n(27378);let{Text:s}=r.AntTypography,d=e=>{let{items:t,...n}=e,o=(0,l.useMemo)(()=>null==t?void 0:t.map((e,n)=>{let o=n===t.length-1,l={...e},d=l.onClick&&!l.href;return("string"==typeof l.title&&(l.title=(0,i.jsx)(s,{style:{color:"inherit",maxWidth:o?void 0:400},ellipsis:!o,children:l.title})),d)?l.title=(0,i.jsx)(r.wpx,{type:"text",size:"small",icon:l.icon,onClick:l.onClick,className:"ant-breadcrumb-link -mt-px px-1 text-inherit",children:l.title}):(l.icon&&(l.title=(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("span",{className:"anticon align-text-bottom",children:l.icon}),l.title]})),l.href&&l.title&&(l.title=(0,i.jsx)(a(),{href:l.href,className:"ant-breadcrumb-link",children:l.title}),delete l.href)),l}),[t]);return(0,i.jsx)(r.zrq,{items:o,...n})}},41337:function(e,t,n){var i=n(24246),r=n(56351);n(27378);var o=n(21702),a=n(14746);let l=e=>void 0!==e.connection_type,s=e=>void 0!==e.encoded_icon;t.Z=e=>{let{data:t,...n}=e;return(0,i.jsx)(r.Eep,{boxSize:"32px",objectFit:"cover",src:(()=>{let e;if(s(t)&&t.encoded_icon)return"data:image/svg+xml;base64,".concat(t.encoded_icon);if(l(t))e=[...a.iW].find(e=>{var n,i;let[r]=e;return t.connection_type.toString()!==o.Rj.SAAS&&t.connection_type.toString()===r||t.connection_type.toString()===o.Rj.SAAS&&(null===(i=t.saas_config)||void 0===i?void 0:null===(n=i.type)||void 0===n?void 0:n.toString())===r.toString()});else if(s(t)){let{identifier:n}=t;e=[...a.iW].find(e=>{let[t]=e;return t.toLowerCase()===n.toLowerCase()})}return e?a.Ny+e[1]:a.VD})(),fallbackSrc:a.VD,alt:(()=>{if(l(t)){var e;return null!==(e=t.name)&&void 0!==e?e:t.key}return s(t)?t.human_readable:t})(),...n})}},3968:function(e,t,n){n.d(t,{E:function(){return i},S:function(){return r}});let i=e=>e.toLowerCase().replace(/ |\./g,"_"),r=(e,t)=>{let n="".concat(window.location.origin+t,"&key=").concat(e);window.location.href.toLowerCase()!==n.toLowerCase()&&window.history.replaceState(null,"",n)}}}]);