ethyca-fides 2.58.1b1__py2.py3-none-any.whl → 2.58.1b2__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 (83) hide show
  1. {ethyca_fides-2.58.1b1.dist-info → ethyca_fides-2.58.1b2.dist-info}/METADATA +1 -1
  2. {ethyca_fides-2.58.1b1.dist-info → ethyca_fides-2.58.1b2.dist-info}/RECORD +83 -81
  3. fides/_version.py +3 -3
  4. fides/service/error_handling/__init__.py +0 -0
  5. fides/service/error_handling/error_handler.py +202 -0
  6. fides/ui-build/static/admin/404.html +1 -1
  7. fides/ui-build/static/admin/add-systems/manual.html +1 -1
  8. fides/ui-build/static/admin/add-systems/multiple.html +1 -1
  9. fides/ui-build/static/admin/add-systems.html +1 -1
  10. fides/ui-build/static/admin/ant-poc.html +1 -1
  11. fides/ui-build/static/admin/consent/configure/add-vendors.html +1 -1
  12. fides/ui-build/static/admin/consent/configure.html +1 -1
  13. fides/ui-build/static/admin/consent/privacy-experience/[id].html +1 -1
  14. fides/ui-build/static/admin/consent/privacy-experience/new.html +1 -1
  15. fides/ui-build/static/admin/consent/privacy-experience.html +1 -1
  16. fides/ui-build/static/admin/consent/privacy-notices/[id].html +1 -1
  17. fides/ui-build/static/admin/consent/privacy-notices/new.html +1 -1
  18. fides/ui-build/static/admin/consent/privacy-notices.html +1 -1
  19. fides/ui-build/static/admin/consent/properties.html +1 -1
  20. fides/ui-build/static/admin/consent/reporting.html +1 -1
  21. fides/ui-build/static/admin/consent.html +1 -1
  22. fides/ui-build/static/admin/data-catalog/[systemId]/projects/[projectUrn]/[resourceUrn].html +1 -1
  23. fides/ui-build/static/admin/data-catalog/[systemId]/projects/[projectUrn].html +1 -1
  24. fides/ui-build/static/admin/data-catalog/[systemId]/projects.html +1 -1
  25. fides/ui-build/static/admin/data-catalog/[systemId]/resources/[resourceUrn].html +1 -1
  26. fides/ui-build/static/admin/data-catalog/[systemId]/resources.html +1 -1
  27. fides/ui-build/static/admin/data-catalog.html +1 -1
  28. fides/ui-build/static/admin/data-discovery/action-center/[monitorId]/[systemId].html +1 -1
  29. fides/ui-build/static/admin/data-discovery/action-center/[monitorId].html +1 -1
  30. fides/ui-build/static/admin/data-discovery/action-center.html +1 -1
  31. fides/ui-build/static/admin/data-discovery/activity.html +1 -1
  32. fides/ui-build/static/admin/data-discovery/detection/[resourceUrn].html +1 -1
  33. fides/ui-build/static/admin/data-discovery/detection.html +1 -1
  34. fides/ui-build/static/admin/data-discovery/discovery/[resourceUrn].html +1 -1
  35. fides/ui-build/static/admin/data-discovery/discovery.html +1 -1
  36. fides/ui-build/static/admin/datamap.html +1 -1
  37. fides/ui-build/static/admin/dataset/[datasetId]/[collectionName]/[...subfieldNames].html +1 -1
  38. fides/ui-build/static/admin/dataset/[datasetId]/[collectionName].html +1 -1
  39. fides/ui-build/static/admin/dataset/[datasetId].html +1 -1
  40. fides/ui-build/static/admin/dataset/new.html +1 -1
  41. fides/ui-build/static/admin/dataset.html +1 -1
  42. fides/ui-build/static/admin/datastore-connection/[id].html +1 -1
  43. fides/ui-build/static/admin/datastore-connection/new.html +1 -1
  44. fides/ui-build/static/admin/datastore-connection.html +1 -1
  45. fides/ui-build/static/admin/index.html +1 -1
  46. fides/ui-build/static/admin/integrations/[id].html +1 -1
  47. fides/ui-build/static/admin/integrations.html +1 -1
  48. fides/ui-build/static/admin/login/[provider].html +1 -1
  49. fides/ui-build/static/admin/login.html +1 -1
  50. fides/ui-build/static/admin/messaging/[id].html +1 -1
  51. fides/ui-build/static/admin/messaging/add-template.html +1 -1
  52. fides/ui-build/static/admin/messaging.html +1 -1
  53. fides/ui-build/static/admin/privacy-requests/[id].html +1 -1
  54. fides/ui-build/static/admin/privacy-requests/configure/messaging.html +1 -1
  55. fides/ui-build/static/admin/privacy-requests/configure/storage.html +1 -1
  56. fides/ui-build/static/admin/privacy-requests/configure.html +1 -1
  57. fides/ui-build/static/admin/privacy-requests.html +1 -1
  58. fides/ui-build/static/admin/properties/[id].html +1 -1
  59. fides/ui-build/static/admin/properties/add-property.html +1 -1
  60. fides/ui-build/static/admin/properties.html +1 -1
  61. fides/ui-build/static/admin/reporting/datamap.html +1 -1
  62. fides/ui-build/static/admin/settings/about.html +1 -1
  63. fides/ui-build/static/admin/settings/consent.html +1 -1
  64. fides/ui-build/static/admin/settings/custom-fields.html +1 -1
  65. fides/ui-build/static/admin/settings/domain-records.html +1 -1
  66. fides/ui-build/static/admin/settings/domains.html +1 -1
  67. fides/ui-build/static/admin/settings/email-templates.html +1 -1
  68. fides/ui-build/static/admin/settings/locations.html +1 -1
  69. fides/ui-build/static/admin/settings/organization.html +1 -1
  70. fides/ui-build/static/admin/settings/regulations.html +1 -1
  71. fides/ui-build/static/admin/systems/configure/[id]/test-datasets.html +1 -1
  72. fides/ui-build/static/admin/systems/configure/[id].html +1 -1
  73. fides/ui-build/static/admin/systems.html +1 -1
  74. fides/ui-build/static/admin/taxonomy.html +1 -1
  75. fides/ui-build/static/admin/user-management/new.html +1 -1
  76. fides/ui-build/static/admin/user-management/profile/[id].html +1 -1
  77. fides/ui-build/static/admin/user-management.html +1 -1
  78. {ethyca_fides-2.58.1b1.dist-info → ethyca_fides-2.58.1b2.dist-info}/LICENSE +0 -0
  79. {ethyca_fides-2.58.1b1.dist-info → ethyca_fides-2.58.1b2.dist-info}/WHEEL +0 -0
  80. {ethyca_fides-2.58.1b1.dist-info → ethyca_fides-2.58.1b2.dist-info}/entry_points.txt +0 -0
  81. {ethyca_fides-2.58.1b1.dist-info → ethyca_fides-2.58.1b2.dist-info}/top_level.txt +0 -0
  82. /fides/ui-build/static/admin/_next/static/{RyPMNiUshVruI8xu8t8kI → DfE9QnPzVfXQ2WncrNw6c}/_buildManifest.js +0 -0
  83. /fides/ui-build/static/admin/_next/static/{RyPMNiUshVruI8xu8t8kI → DfE9QnPzVfXQ2WncrNw6c}/_ssgManifest.js +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ethyca-fides
3
- Version: 2.58.1b1
3
+ Version: 2.58.1b2
4
4
  Summary: Open-source ecosystem for data privacy as code.
5
5
  Home-page: https://github.com/ethyca/fides
6
6
  Author: Ethyca, Inc.
@@ -1,5 +1,5 @@
1
1
  fides/__init__.py,sha256=tE3qqipY9eynYXYpQeksYGHP5NfeXyq-L9mBtpFIxl8,139
2
- fides/_version.py,sha256=PTe3-BpLqLNP9p6L-Q3XUBxmcShRDvXjygTfVTi01F0,500
2
+ fides/_version.py,sha256=6_WhBCLljLRrQChSZWjTtOljRHgVgACuEnpRh8TCTVQ,500
3
3
  fides/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
4
  fides/api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
5
  fides/api/analytics.py,sha256=vgwja9DB7gPsQSE3KQi0F3r6yWmnW66wBRC9FpawfRI,1910
@@ -763,34 +763,36 @@ fides/service/dataset/validation_steps/masking_strategy.py,sha256=ILRgA5ly4CKter
763
763
  fides/service/dataset/validation_steps/namespace_meta.py,sha256=rRYFK25JYsl5jmHHkJJ33Y7C9UlDWCZ1oNTXDSnI4Z8,2020
764
764
  fides/service/dataset/validation_steps/saas.py,sha256=Y_B6rSD6Vq037h7wyj4VwHnGjnUSgqMLh9ops3QTN2Q,1881
765
765
  fides/service/dataset/validation_steps/traversal.py,sha256=AEg1Uq7zurZWyoduees_hluPL8F16tyt7Plq1r9_wvY,1874
766
+ fides/service/error_handling/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
767
+ fides/service/error_handling/error_handler.py,sha256=jY_QCnymc7IB2k5dFbnpsf1iJ3e4n28zXa2Au90MfSw,7023
766
768
  fides/service/messaging/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
767
769
  fides/service/messaging/aws_ses_service.py,sha256=7yZe4wuhWzdZl6soddHrUhExJvIXeqVFnlJDXNH7hJ4,5892
768
770
  fides/service/messaging/messaging_service.py,sha256=_3iObiVslfJzuzCukCDw2gbQXrOPpMZs3LqG1Dbmirw,11710
769
771
  fides/service/privacy_request/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
770
772
  fides/service/privacy_request/privacy_request_service.py,sha256=n751XgEPW4PN7HnodgZCzV6cQ9Jt_5h5Who6TFr7BSo,26854
771
- fides/ui-build/static/admin/404.html,sha256=MPvxPudz2C_k8---21ixVZ-gkz-cyBV2q7T40vgBjOc,1466
772
- fides/ui-build/static/admin/add-systems.html,sha256=Twds4JuRqhO1QwTU5exN8lFfHViHkTJ-5c-PNX-90oU,1642
773
- fides/ui-build/static/admin/ant-poc.html,sha256=7wSR1dqE-MXS2e-pbPvmFrrTAoDBXfzAqPup7uFNrAE,1474
774
- fides/ui-build/static/admin/consent.html,sha256=esSudV7IPZ9YgImMFljit0zmRobBDmP5JFiAA5poTUw,1474
775
- fides/ui-build/static/admin/data-catalog.html,sha256=GmYKuwVLoRB_l-ta_3rgBSbfcMH-9oOHTr2skVcS5rs,2116
776
- fides/ui-build/static/admin/datamap.html,sha256=mMRNnnqM2VUeW2xVL5SgjrW79WfAENb7JV_oYyXnkG0,2023
777
- fides/ui-build/static/admin/dataset.html,sha256=Sof_iQEYNUEkpoBI68V2C2fn-9amf7X5-HsSKz0pNxw,1868
778
- fides/ui-build/static/admin/datastore-connection.html,sha256=nm0MKPRwafrLwkzL-LggJHiO6lbEwBRY49HNMsZ1iFA,1660
773
+ fides/ui-build/static/admin/404.html,sha256=lC5uxlJTKalcmGFDOJc3p3Tk7xIYpSzCc725ir4QKZE,1466
774
+ fides/ui-build/static/admin/add-systems.html,sha256=TRMfgs1LaZOUT4WUNGLLa3reA4hCD7x6UNoVpX9RFt8,1642
775
+ fides/ui-build/static/admin/ant-poc.html,sha256=bGLdWpyfwfWZh8RMnuYP_oqj2qqQj_WNmp8YOjJj5gQ,1474
776
+ fides/ui-build/static/admin/consent.html,sha256=-3K4sp9RINgw9ZpXfNZVrYfZJu0ddFXtgMJynjSg3Ak,1474
777
+ fides/ui-build/static/admin/data-catalog.html,sha256=yjq5fOyoPLtP0rvYYPPmGxRoxVoiQJA6poLHDBBxm50,2116
778
+ fides/ui-build/static/admin/datamap.html,sha256=aMF68Iujnci0g7KVulWpLqj6vvw_Z7GeBgthH4IBELI,2023
779
+ fides/ui-build/static/admin/dataset.html,sha256=K78DGBZbreWUM1L4o0Kn2Iuz98rgcJQ3fvwBMhAeiC0,1868
780
+ fides/ui-build/static/admin/datastore-connection.html,sha256=1ChrB9qWkRc7Z9ALKPmD2dw4Yj247gnLIQnMIBD5oCE,1660
779
781
  fides/ui-build/static/admin/favicon.ico,sha256=xxtarycoqCOznVZCG0z5Wej6EfYvMYwyz6EUwaVwhEw,4286
780
- fides/ui-build/static/admin/index.html,sha256=qDNgFVu3a8uB2Kkf1Jiw980Jw_Z2Ka0fMFLtUWcTbqY,1625
781
- fides/ui-build/static/admin/integrations.html,sha256=V5r38V9jdOpfFPFu-Jd7EdKKXRkY7mvUu2B3dYMPasE,1874
782
- fides/ui-build/static/admin/login.html,sha256=4vhSmb3-ZHs3hmu5iLbZ7vge6emKUw5CQ2ndnQ5MY1A,1470
782
+ fides/ui-build/static/admin/index.html,sha256=PmGwjDzKoNpw7QJ0s6rQzqwytrHuzslYFQ8pp2DedDU,1625
783
+ fides/ui-build/static/admin/integrations.html,sha256=_tWgbGYsPJw-Ea-Bb2GFPvKtLg2YxUB8wzoW6aQcvbQ,1874
784
+ fides/ui-build/static/admin/login.html,sha256=gYX10dWu_4j2yndiHUPGAcTOXorickn9x98CY0B0MmQ,1470
783
785
  fides/ui-build/static/admin/logo-icon.svg,sha256=LTpApcJnb73kye_gPF3KG8qNe6S3HJJKeebdl6aJ8fI,147
784
786
  fides/ui-build/static/admin/logo-white.svg,sha256=u12SVA-WPW0GAhJ1wXM4oi2aqKXKmteo6yEvGDgz5jM,2101
785
787
  fides/ui-build/static/admin/logo.svg,sha256=bCostWyEaAVHBbKwGhzAAGJ0ZNgxBGgzhwKsAXS47bg,2100
786
- fides/ui-build/static/admin/messaging.html,sha256=BlBqG_94asy-jBYaLv5TJQSIsSEwHl4zpSA8ghMsP8k,1950
787
- fides/ui-build/static/admin/privacy-requests.html,sha256=tFVU34j9MrhiY2CB5fOLPGZqKv0j4pwPYc_Fu-fvogU,1808
788
- fides/ui-build/static/admin/properties.html,sha256=7TeVS2-sbEzia1yPw8xSpSOTFJq-s1rfRLRdEiiJvRU,1794
789
- fides/ui-build/static/admin/systems.html,sha256=1dWLfh5zmqHY8F0o6vB3kU4hbw4bfglV6hsa34rEcWk,1712
790
- fides/ui-build/static/admin/taxonomy.html,sha256=jXNVL7B0OYQwxW2-UDBgZY5niayJ2vzQ-yXOauiwQAc,2185
791
- fides/ui-build/static/admin/user-management.html,sha256=6eUv6kF1EpDuswZSglQ_5hqswSAgfGmHriebdCZwoEc,1568
792
- fides/ui-build/static/admin/_next/static/RyPMNiUshVruI8xu8t8kI/_buildManifest.js,sha256=CtqHbjixY1-j0yiHIF8noKhOTygn8VWBoHnxnEwTOv8,12159
793
- fides/ui-build/static/admin/_next/static/RyPMNiUshVruI8xu8t8kI/_ssgManifest.js,sha256=-D2RVaEwulH2ck-9Y_5QwX6x5lnaSkDOhosw4jeAt-M,101
788
+ fides/ui-build/static/admin/messaging.html,sha256=tejAsTU25wBL2zMte9RRrsyUGIsxik5BoKcLk_irYHA,1950
789
+ fides/ui-build/static/admin/privacy-requests.html,sha256=xTImtXEcJ3V0CL27aPP169FLjC4Ytgn6MC0t1depRiQ,1808
790
+ fides/ui-build/static/admin/properties.html,sha256=96zXs_yhv88D2Z2-8DHhTnrbBFB3eWS87N-kvzMtt7o,1794
791
+ fides/ui-build/static/admin/systems.html,sha256=fMkjYNg3RfkMO22ETR-Q5p0JXTZ_VipL-lEbCrFbTdI,1712
792
+ fides/ui-build/static/admin/taxonomy.html,sha256=0RhE6Bcu_r1EvZ3Ky-95fsTaXxUpdhU_lSdCIcESKEE,2185
793
+ fides/ui-build/static/admin/user-management.html,sha256=B7u3iV8LANm2pb0nudB4ArV2jgXYUPaLz6lzraGligE,1568
794
+ fides/ui-build/static/admin/_next/static/DfE9QnPzVfXQ2WncrNw6c/_buildManifest.js,sha256=CtqHbjixY1-j0yiHIF8noKhOTygn8VWBoHnxnEwTOv8,12159
795
+ fides/ui-build/static/admin/_next/static/DfE9QnPzVfXQ2WncrNw6c/_ssgManifest.js,sha256=-D2RVaEwulH2ck-9Y_5QwX6x5lnaSkDOhosw4jeAt-M,101
794
796
  fides/ui-build/static/admin/_next/static/chunks/1100-053fc6b76c65a00f.js,sha256=tifn0uKU6UnB0II0u8ouqRspoUDmDqQhdkvXHyiiIOg,11046
795
797
  fides/ui-build/static/admin/_next/static/chunks/1150-035a721a04f4451e.js,sha256=4VV8VbDnojajTmekZfRVUZIXkctwXFcFk2nSFOjgqpM,17592
796
798
  fides/ui-build/static/admin/_next/static/chunks/1376-5cea5ef9362215e8.js,sha256=ODtT0FdBzBgzueKcAJ3Lgxkbb0_JthTK3b1yjgOLzu0,29873
@@ -973,37 +975,37 @@ fides/ui-build/static/admin/_next/static/media/inter-vietnamese-500-normal.7b524
973
975
  fides/ui-build/static/admin/_next/static/media/inter-vietnamese-600-normal.eb82de1d.woff2,sha256=ZKjcMjaLlHAKJJyTcujqJwFDooKWcq8qQSuKZVfXZRA,3876
974
976
  fides/ui-build/static/admin/_next/static/media/inter-vietnamese-700-normal.00e401a9.woff2,sha256=92gZYPHyPg3OZ_u0f78u6ZZNdc53OvVkqhoTelycCqw,3888
975
977
  fides/ui-build/static/admin/_next/static/media/logo-white.c9bf4196.svg,sha256=u12SVA-WPW0GAhJ1wXM4oi2aqKXKmteo6yEvGDgz5jM,2101
976
- fides/ui-build/static/admin/add-systems/manual.html,sha256=ZaEthki6Dl-7DQLxToudrtVKIJwO4LAwmjxE2RM5600,2595
977
- fides/ui-build/static/admin/add-systems/multiple.html,sha256=AQ3uqcO0BXXLJhwtruhIeTmMyYvf2kxBYVIuBGYvh9Q,1971
978
- fides/ui-build/static/admin/consent/configure.html,sha256=a8VAl9hczmYEjv8MWFq-LyteBfkg6tmC15PYCLsog7g,1887
979
- fides/ui-build/static/admin/consent/privacy-experience.html,sha256=YDH1OW0lGKkcRt2p8PoZxgK2DtbW755Ju_NBPM5BCkQ,1906
980
- fides/ui-build/static/admin/consent/privacy-notices.html,sha256=L3YtTfMJlVJFsUrmDElJYxe0Xn5Z2wzxOIUd1AeiBkg,1822
981
- fides/ui-build/static/admin/consent/properties.html,sha256=pj4xqCFbwKKb4SsPoOkabUh4e2z1ugiWFl7RIalgZuw,1810
982
- fides/ui-build/static/admin/consent/reporting.html,sha256=S2E2VdhCZuhc3oQSQo0z13iMBrDczpku5nHaMqscszM,1810
983
- fides/ui-build/static/admin/consent/configure/add-vendors.html,sha256=WMwNX4-gylxws9cLfNv8CEKEoSthbSfKVPgCwJPCX8o,1989
984
- fides/ui-build/static/admin/consent/privacy-experience/[id].html,sha256=PhIc54s6T0Fz3OykmXwfDblNuEqxmmf-X2PAPMT8yjw,2072
985
- fides/ui-build/static/admin/consent/privacy-experience/new.html,sha256=2ZxVqzZj4dznbPnXDLr0LpJTgUIfzYzGiOk9ZcOuOkU,2066
986
- fides/ui-build/static/admin/consent/privacy-notices/[id].html,sha256=sAHN9olclnBkKSaZODYF5-hmgEi_leuvZbREysmUr6w,2066
987
- fides/ui-build/static/admin/consent/privacy-notices/new.html,sha256=al7-3CBvPd_UCHCIG5R4l9fvssQ-wSKRSFyr2O1WIwQ,2060
988
- fides/ui-build/static/admin/data-catalog/[systemId]/projects.html,sha256=kPHNDwm6Zy_lly2-BdOGqB3fssJMm7VLz4tELYGc55U,2316
989
- fides/ui-build/static/admin/data-catalog/[systemId]/resources.html,sha256=lRsvEg0_qfLPFXiSwKhdyebo4J4BoyDtGmwhS5IBiuc,1846
990
- fides/ui-build/static/admin/data-catalog/[systemId]/projects/[projectUrn].html,sha256=9XqFtOab2R068oQXa33pOmFd0P0qw8D4JcjOv5gnGeo,1874
991
- fides/ui-build/static/admin/data-catalog/[systemId]/projects/[projectUrn]/[resourceUrn].html,sha256=8UIn--t8YRzJ1oRkMotosIe-8rEIfCLV0JrWNtNHMVs,2456
992
- fides/ui-build/static/admin/data-catalog/[systemId]/resources/[resourceUrn].html,sha256=-MlD6CIN2pO0uSEzzL6A6QKWQV8DP2IulSoybpvHla4,2428
993
- fides/ui-build/static/admin/data-discovery/action-center.html,sha256=gujBCyWwGcwBB66RsgVUxZNs1RKeTjBGz62Ahmj-vL8,1754
994
- fides/ui-build/static/admin/data-discovery/activity.html,sha256=ZEgswntXlO3djozTPYoejRCpglUQSXDw74FanWrX-2s,1900
995
- fides/ui-build/static/admin/data-discovery/detection.html,sha256=o-Ugz6lzqAjI1vK8fuXPYRANOo41C7EtTFrPve_USbs,1980
996
- fides/ui-build/static/admin/data-discovery/discovery.html,sha256=PnPOi_6tfAJI0Cjh44FiVkyuwUGTF4IN2j-i8FxYIvs,2374
997
- fides/ui-build/static/admin/data-discovery/action-center/[monitorId].html,sha256=ErVvpqDrSSrVEtaKVNW5RCgJwEjFNnWYPjKljWKQE2I,2094
998
- fides/ui-build/static/admin/data-discovery/action-center/[monitorId]/[systemId].html,sha256=I7itlEk-kO3elrT3ShK1wkwCpLcw1SWB5xQR2qYgqHg,2280
999
- fides/ui-build/static/admin/data-discovery/detection/[resourceUrn].html,sha256=2OmXE3XcmKeqydyQNRfycFSyAP2dLbxfa_nTxlRDhPk,2012
1000
- fides/ui-build/static/admin/data-discovery/discovery/[resourceUrn].html,sha256=cX3tIOrXi10DtqViLV2EPfLrlBfF94_KnWLseGnkBWY,2406
1001
- fides/ui-build/static/admin/dataset/[datasetId].html,sha256=qKSIdqfJvitwnQaB91RSAqik2aHH83jQjW6XSsEYxFw,1896
1002
- fides/ui-build/static/admin/dataset/new.html,sha256=_3a6ecRSa_xP8UmgdGwDKCE6yc20pkVMirBkm5iqTtg,1638
1003
- fides/ui-build/static/admin/dataset/[datasetId]/[collectionName].html,sha256=lRPBTMEMqgi0wfeKkOwCIodbMDWQHfYmNJ-2oFU3i8g,2328
1004
- fides/ui-build/static/admin/dataset/[datasetId]/[collectionName]/[...subfieldNames].html,sha256=gMr4OTJborOLGjtwayYolfUpdFDSHITFcOsndZ9kP-Y,2370
1005
- fides/ui-build/static/admin/datastore-connection/[id].html,sha256=YtLOg8cZHrd603BzXIxc771DMua7XOieZ4E0gMl4QXg,1748
1006
- fides/ui-build/static/admin/datastore-connection/new.html,sha256=GPzcJoLa9AlDTsF6z0FKjNUEhlCELgq54xD3PnJAmyc,1820
978
+ fides/ui-build/static/admin/add-systems/manual.html,sha256=8C8trnBLC525oaj_J6QNbbV0TDIDCk6_-dH99rHHM50,2595
979
+ fides/ui-build/static/admin/add-systems/multiple.html,sha256=KtL7xIIVEFwNl85jrgAmmyb9GeOUcwyzdgrhhDNdHrg,1971
980
+ fides/ui-build/static/admin/consent/configure.html,sha256=uGWyn8dngCrX8nPkaumWaLG5b7r6sEZXIcmUQetBzTw,1887
981
+ fides/ui-build/static/admin/consent/privacy-experience.html,sha256=tE-B_SPMamKCe5DH3bKLZLKTMyF4ZjuQyiQRxwzKuXI,1906
982
+ fides/ui-build/static/admin/consent/privacy-notices.html,sha256=8d52p45vzauts5JrQ93tdx2f48cJpi7Lyd69i4k5D6Q,1822
983
+ fides/ui-build/static/admin/consent/properties.html,sha256=Fo1AJwOKdpYS76YRzRYu0CQ-ZxvakYqGYx0Kf5AP-ho,1810
984
+ fides/ui-build/static/admin/consent/reporting.html,sha256=7cRoM6stTx_NzTNVy3R67kSPy5ibHbwKzazYmEmnYoE,1810
985
+ fides/ui-build/static/admin/consent/configure/add-vendors.html,sha256=P2REFQbshLV9ag7nSVPGBrvQtVE2vs13cJ24zG_aG00,1989
986
+ fides/ui-build/static/admin/consent/privacy-experience/[id].html,sha256=dMiP0i0-L1wIm5D0S0i_rcnarpwAWmkZgfajYx3XYQ0,2072
987
+ fides/ui-build/static/admin/consent/privacy-experience/new.html,sha256=OO4Hu3wI-WIhdj5F6TtpFNTiF4ndYAWKh6AeljLC4ng,2066
988
+ fides/ui-build/static/admin/consent/privacy-notices/[id].html,sha256=SiyFqAT_0iLeoknEWdiMpCd6lKijsqof6ZAFJDneXW4,2066
989
+ fides/ui-build/static/admin/consent/privacy-notices/new.html,sha256=nloNoHF7z1VZHxsf2o7mxHhDBLnb7VF2Xv26qbCPSSs,2060
990
+ fides/ui-build/static/admin/data-catalog/[systemId]/projects.html,sha256=EVRYgnQKuaTNtuYYXUy4_wSlnbTIJwLXZhSkoq-TqAs,2316
991
+ fides/ui-build/static/admin/data-catalog/[systemId]/resources.html,sha256=ta2qJshT2ZDFMOJXdcWUA8Yyo7CtVTAziioBSNDtxS8,1846
992
+ fides/ui-build/static/admin/data-catalog/[systemId]/projects/[projectUrn].html,sha256=tmdQlDkmxS-ZF8AgF02BNTULBmD6P2rUMZnhInOmVHo,1874
993
+ fides/ui-build/static/admin/data-catalog/[systemId]/projects/[projectUrn]/[resourceUrn].html,sha256=eJh_AhVWsh4ikCvNqoZIlxtHQwIMfJtOR75IswmG3zo,2456
994
+ fides/ui-build/static/admin/data-catalog/[systemId]/resources/[resourceUrn].html,sha256=QXVZvH5v_TfgNQoLe11xf4JW84XsObcE0AOnY1_8u38,2428
995
+ fides/ui-build/static/admin/data-discovery/action-center.html,sha256=fSdifjrBmUSDtgXw6NxUpIZv7v_9ot96TWdCtOiKu0Q,1754
996
+ fides/ui-build/static/admin/data-discovery/activity.html,sha256=3OB_h7k8KY9aO5iiKVtrWO2QxWqLPryneEO6JzoJWWA,1900
997
+ fides/ui-build/static/admin/data-discovery/detection.html,sha256=jF02ukq8VKI5_uARe5j-MThYtCXswSJ_i4hNSU0iuF8,1980
998
+ fides/ui-build/static/admin/data-discovery/discovery.html,sha256=hczpOzDVSb3P6x9gonZfZrha8JLYzi_cxFqQuQ6WbIk,2374
999
+ fides/ui-build/static/admin/data-discovery/action-center/[monitorId].html,sha256=8p2fV1FQHcpuE3dNt_8V8J5Y-4BMyuAwfkGrfyFwl6Q,2094
1000
+ fides/ui-build/static/admin/data-discovery/action-center/[monitorId]/[systemId].html,sha256=oNO8Ms74mNf_TtbQKGR5Q1GUn4iBf0rZcb07FaAjRTE,2280
1001
+ fides/ui-build/static/admin/data-discovery/detection/[resourceUrn].html,sha256=T8P3-v3nkBDsKzzmcTbRtnJklqydEKI9EqB4iQYZcUE,2012
1002
+ fides/ui-build/static/admin/data-discovery/discovery/[resourceUrn].html,sha256=iltriJK64YvAdBXA3qq0po1BErUFL0dfahr19uNFVz0,2406
1003
+ fides/ui-build/static/admin/dataset/[datasetId].html,sha256=Lbby20o_P79kJP30DInBRG1_wXEBl0qpqLlla_xcNZg,1896
1004
+ fides/ui-build/static/admin/dataset/new.html,sha256=PwwOgG8KrvUyadFzxUkvMqsz5fCG8dYakP4XvRfGKnM,1638
1005
+ fides/ui-build/static/admin/dataset/[datasetId]/[collectionName].html,sha256=_AHlfUKbRLmNE6pljKh8p-1XQg5omVI4IDfkEIVS95k,2328
1006
+ fides/ui-build/static/admin/dataset/[datasetId]/[collectionName]/[...subfieldNames].html,sha256=Yubndnb8amZCnZsmWMwH31f4oReQOIAYbxglRA6pxSA,2370
1007
+ fides/ui-build/static/admin/datastore-connection/[id].html,sha256=eSyigEFkB_jAHaqEF8GdvCE-pxPebfz-46qG78gdWWw,1748
1008
+ fides/ui-build/static/admin/datastore-connection/new.html,sha256=vjWcIJ3p3Z0HT6SJmxrDt2J90PSdg5c6YApbXYi4eCM,1820
1007
1009
  fides/ui-build/static/admin/images/DatabaseIcon.svg,sha256=gwl8_3APg_6J4ZwWgovOjxgk5AEPyvq3-qGjkF7R4og,8198
1008
1010
  fides/ui-build/static/admin/images/SelectedDatabaseIcon.svg,sha256=L6YBuL-LiKzBXyt9gHZhtqpo2QopXdC7-oEvEWbvSNE,8198
1009
1011
  fides/ui-build/static/admin/images/config_splash.svg,sha256=IH56T1jrG1y4FIKQZXMaePYESYZGot_4jkTaFvmwHl0,176040
@@ -1031,37 +1033,37 @@ fides/ui-build/static/admin/images/oauth-login/custom.svg,sha256=SW1i3Mez8XVMVGR
1031
1033
  fides/ui-build/static/admin/images/oauth-login/github.svg,sha256=eg3RHjc4MKUaVl3p_tSphXB8Z8zTkPmuSUahUjA-pnY,963
1032
1034
  fides/ui-build/static/admin/images/oauth-login/google.svg,sha256=oRdvveXEbNFZ4_xD6u-DxqNIPJh12o3XU2tITX6ghQU,988
1033
1035
  fides/ui-build/static/admin/images/oauth-login/okta.svg,sha256=ymR7Rqk7syL52284jlure_i06-nVKwZbJwB6JXfdNwo,8076
1034
- fides/ui-build/static/admin/integrations/[id].html,sha256=odaj6Zv4rdg3EPhoxxDSMHSiB0zSLL8vpKaYwZ6htXE,2126
1036
+ fides/ui-build/static/admin/integrations/[id].html,sha256=vFhFNsJ33f-LRa1pbBsE7phIwc-593L7JzeJ6nQZgYM,2126
1035
1037
  fides/ui-build/static/admin/lib/fides-ext-gpp.js,sha256=T0mvBhx6jMjrFIDbvUQBvvxjeG_ZIxHpI0RU-qZfBqE,201101
1036
1038
  fides/ui-build/static/admin/lib/fides-headless.js,sha256=2odJcLgko3Z_hpmcNNnkX8EhIEDM1cQN-MoUm58w-Cc,69898
1037
1039
  fides/ui-build/static/admin/lib/fides-tcf.js,sha256=fVO5EJ5t12CqiSZ--dPLJMO70kq5jHQcYciUDJ5VclM,360692
1038
1040
  fides/ui-build/static/admin/lib/fides.js,sha256=46562BkkIP_CIZ2FhOXaDbi-6GnqJ50wEUBgUYFaZSU,146001
1039
- fides/ui-build/static/admin/login/[provider].html,sha256=xKFpExk3vcetOL4wbCWuZkvYROlr0vKKvu5bTKxP7_0,1496
1040
- fides/ui-build/static/admin/messaging/[id].html,sha256=yZn9Hab4f4IRnDPS9AtR53J728IjAd35ZU-siA8_ITc,1648
1041
- fides/ui-build/static/admin/messaging/add-template.html,sha256=rfIBI56CjartSnutZPpgm9g_EiKmk_eo6dmW5Die_sk,1660
1042
- fides/ui-build/static/admin/privacy-requests/[id].html,sha256=LVemCLysCgSrp0K8SVrHUgaxxz0hNA9SXeUqsQ7cXns,1744
1043
- fides/ui-build/static/admin/privacy-requests/configure.html,sha256=a9JEUY94S8gFHZDPy2Sj5z92tr2qUUfxZJJ50mcOd2E,1512
1044
- fides/ui-build/static/admin/privacy-requests/configure/messaging.html,sha256=etAidoDORUi4900zNExehcs8mdDTDciAzdLAgUvtJuA,1532
1045
- fides/ui-build/static/admin/privacy-requests/configure/storage.html,sha256=FUh4pm71t7QTf62JTIweV9lojWv8KW34WIYFBvZPRZI,1528
1046
- fides/ui-build/static/admin/properties/[id].html,sha256=NudRzxyfQIa0Dr7zWpH-idJJi7koOzsqEx80-gxp9TY,1650
1047
- fides/ui-build/static/admin/properties/add-property.html,sha256=aKUBNwn63eHfjnxeZFssNB6SMGnyx-F0culOhFvPZng,1662
1048
- fides/ui-build/static/admin/reporting/datamap.html,sha256=LJxFCdg_wfwYSAIVIfhWUVnaVnwRCR7DqiakwrGDnPU,2278
1049
- fides/ui-build/static/admin/settings/about.html,sha256=EEwlODQSMT5B0inMbnp_CXVs9IXsLp5IwNu-mLw4H_k,1488
1050
- fides/ui-build/static/admin/settings/consent.html,sha256=_NilNWx_jTSfWplMg4qnPGmQU9ZR_5qc7_fsXvkSvSo,1492
1051
- fides/ui-build/static/admin/settings/custom-fields.html,sha256=p8-rm1w48nNAr5222BkarPGncnicNQY3pH2XizQuovQ,1820
1052
- fides/ui-build/static/admin/settings/domain-records.html,sha256=8y3kCEldfSYi4kGhR5oO5PmyE6qY5zg58fYnw8tllYU,1744
1053
- fides/ui-build/static/admin/settings/domains.html,sha256=aQcHrQ1PbIS6YskWr-1b3uoZCQoD2y8NynUaX49WLgI,1492
1054
- fides/ui-build/static/admin/settings/email-templates.html,sha256=S3Hq1b8r2iPe9Z8aXEzmIK4WSxfsELBE-SYrbzjSfiA,1508
1055
- fides/ui-build/static/admin/settings/locations.html,sha256=StallJ7pnRF6qakHQxoliY6H3-5jFVx4DFuwquWtxQQ,1656
1056
- fides/ui-build/static/admin/settings/organization.html,sha256=db5EXtofbvJqp8cTlXzXCas2Ye9J5pfyW6NRVMxsQCo,1502
1057
- fides/ui-build/static/admin/settings/regulations.html,sha256=rTuxBQiHTZiMpEG1HWmBzYLhnCtLM297of5FDLeIxMs,1660
1058
- fides/ui-build/static/admin/systems/configure/[id].html,sha256=lZiMWndolsCkhWO3qniNAab4amP1-Z853yBBSr-RxCU,2607
1059
- fides/ui-build/static/admin/systems/configure/[id]/test-datasets.html,sha256=hPiHsHsJht4BqeHvJx-S3P9Algf3T6KsvaS3qR5uzW4,1692
1060
- fides/ui-build/static/admin/user-management/new.html,sha256=Rg8ic9ulzO3mc3Qd7pZYBDgJP-lnAiQXJ8c29hKrMCM,1654
1061
- fides/ui-build/static/admin/user-management/profile/[id].html,sha256=UlrnjI2Na21YWMcqL_BbNhj_lN9dpeWBoeZydlMmjxE,1676
1062
- ethyca_fides-2.58.1b1.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
1063
- ethyca_fides-2.58.1b1.dist-info/METADATA,sha256=7iHKV7ZWMBF-vM9-rle8xrLYFYwtxkAp4Of-uc-DsSU,11361
1064
- ethyca_fides-2.58.1b1.dist-info/WHEEL,sha256=Kh9pAotZVRFj97E15yTA4iADqXdQfIVTHcNaZTjxeGM,110
1065
- ethyca_fides-2.58.1b1.dist-info/entry_points.txt,sha256=5WeLH-MlYWywYIbMGVrZkPpjTkdHDDf1p-LXFiF9ATo,41
1066
- ethyca_fides-2.58.1b1.dist-info/top_level.txt,sha256=vHQkcSYYOh4ECEGL1JSGUAxFWpwO05QGPV0M2aPxqNQ,6
1067
- ethyca_fides-2.58.1b1.dist-info/RECORD,,
1041
+ fides/ui-build/static/admin/login/[provider].html,sha256=uD8EmAr3tjl5GjIEUFXgQlLLl_WnbpyV0CLkMOHCEMc,1496
1042
+ fides/ui-build/static/admin/messaging/[id].html,sha256=qpWl3KMyDfC6NhfzDFZc06XohiC4NJXIIoygkn9bgeE,1648
1043
+ fides/ui-build/static/admin/messaging/add-template.html,sha256=qnkngWwy2QPsY5w8aif4TMFaRmuvtNWj00_K0oRcZ-I,1660
1044
+ fides/ui-build/static/admin/privacy-requests/[id].html,sha256=AVmNYmUCsBAC1WfAQ39PfQSqyDiez3fyvcyPZYQ-qvo,1744
1045
+ fides/ui-build/static/admin/privacy-requests/configure.html,sha256=xdO3lydL7KaE1oLRo3GZcKXSSymCWkLDzWnbDjF459I,1512
1046
+ fides/ui-build/static/admin/privacy-requests/configure/messaging.html,sha256=yFopacElc0HlNHMZ6pp3DcwnQhA0gwT3Uh4AnTwiHP0,1532
1047
+ fides/ui-build/static/admin/privacy-requests/configure/storage.html,sha256=EMJJXiSU2qwKGAtt6GwMW-QuUg1PpxsSVnw_g34CTz4,1528
1048
+ fides/ui-build/static/admin/properties/[id].html,sha256=NKyqT4yd6CH-m7yaNgq35F9I_GLj7aBk3Ug3XBMR55o,1650
1049
+ fides/ui-build/static/admin/properties/add-property.html,sha256=FBGjDRLWdVWtbeTC1_Fj40eWsEgxdF7L-xJPl7Q8P3s,1662
1050
+ fides/ui-build/static/admin/reporting/datamap.html,sha256=hpnb2xgjzv2Kz7IUDUm-yaw3DIu9W5ddf-S953yQ47s,2278
1051
+ fides/ui-build/static/admin/settings/about.html,sha256=DrCiUJ6MaeHNlQmGLRbeC-29u0N29np7rFgcN9DRTaA,1488
1052
+ fides/ui-build/static/admin/settings/consent.html,sha256=1c97AtJ0T8brYCU_HGPMV5GxxdXvCauEyDJrpGA6dKI,1492
1053
+ fides/ui-build/static/admin/settings/custom-fields.html,sha256=cPXWFVcKcjNMK6F2VdujyjXaJP8QNWJ6TEI6j3jQce8,1820
1054
+ fides/ui-build/static/admin/settings/domain-records.html,sha256=uVWtnQc9t3QQtDWnJgfWl8MywriZenW9t809MYwx2kc,1744
1055
+ fides/ui-build/static/admin/settings/domains.html,sha256=CsSpZqHR1mGvt3dQ8Fs1qJvXLudogAii7ltdZfJdEzw,1492
1056
+ fides/ui-build/static/admin/settings/email-templates.html,sha256=-6wn3EyFsEn8Gishf-XFPcbAzi9ngjuMOfQQ60nwlZ4,1508
1057
+ fides/ui-build/static/admin/settings/locations.html,sha256=eREV-qPrDAAWI-4qy7vJJD-s05I5m5WoZv2bLTvHKtg,1656
1058
+ fides/ui-build/static/admin/settings/organization.html,sha256=G5IgjWrjngSVijpfVfsK-Z5Imp0sU-kV1rIGtZSMcxI,1502
1059
+ fides/ui-build/static/admin/settings/regulations.html,sha256=ZJysoUV9npMpn94ztAXxBXB9UlST_SZ4094jZToWDrc,1660
1060
+ fides/ui-build/static/admin/systems/configure/[id].html,sha256=4UkwA9hlyPrkKL_kmO0c_7PN8ulVDCiYts114WFIWfw,2607
1061
+ fides/ui-build/static/admin/systems/configure/[id]/test-datasets.html,sha256=oZwvERUnGZyB_gJqDgYNkBWQY-mM8PQtqafdeTtRnII,1692
1062
+ fides/ui-build/static/admin/user-management/new.html,sha256=8YlfsnuuCn52nFoCUw7zU2uhMmMqXEk1Vsv2GJ5wQrA,1654
1063
+ fides/ui-build/static/admin/user-management/profile/[id].html,sha256=CYliRM13ivD-1reWaKv_FwWuZ5OF16cPZC3jpyRFzZs,1676
1064
+ ethyca_fides-2.58.1b2.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
1065
+ ethyca_fides-2.58.1b2.dist-info/METADATA,sha256=FxBw0V6AXK8WUqBaezdoXmjFq7hyjctlEuOiQRooIxQ,11361
1066
+ ethyca_fides-2.58.1b2.dist-info/WHEEL,sha256=Kh9pAotZVRFj97E15yTA4iADqXdQfIVTHcNaZTjxeGM,110
1067
+ ethyca_fides-2.58.1b2.dist-info/entry_points.txt,sha256=5WeLH-MlYWywYIbMGVrZkPpjTkdHDDf1p-LXFiF9ATo,41
1068
+ ethyca_fides-2.58.1b2.dist-info/top_level.txt,sha256=vHQkcSYYOh4ECEGL1JSGUAxFWpwO05QGPV0M2aPxqNQ,6
1069
+ ethyca_fides-2.58.1b2.dist-info/RECORD,,
fides/_version.py CHANGED
@@ -8,11 +8,11 @@ import json
8
8
 
9
9
  version_json = '''
10
10
  {
11
- "date": "2025-03-28T14:58:41-0300",
11
+ "date": "2025-03-28T15:03:59-0600",
12
12
  "dirty": false,
13
13
  "error": null,
14
- "full-revisionid": "6f59ef7a7e736044d6c7fdef63987d02ea093a7a",
15
- "version": "2.58.1b1"
14
+ "full-revisionid": "502b6c9f9e62e50dae886739d4ac7293f90b2070",
15
+ "version": "2.58.1b2"
16
16
  }
17
17
  ''' # END VERSION_JSON
18
18
 
File without changes
@@ -0,0 +1,202 @@
1
+ from functools import wraps
2
+ from typing import Any, Callable, Optional, TypeVar
3
+
4
+ from fastapi import HTTPException
5
+ from loguru import logger
6
+ from starlette.status import HTTP_400_BAD_REQUEST, HTTP_422_UNPROCESSABLE_ENTITY
7
+
8
+ T = TypeVar("T")
9
+
10
+
11
+ class ErrorHandler:
12
+ """Utility class for handling errors consistently throughout the application.
13
+
14
+ Usage Examples:
15
+ -----------------------------------------------------------------------------
16
+
17
+ 1. Basic Validation:
18
+ ```python
19
+ from fastapi import FastAPI
20
+ from fides.service.error_handling.error_handler import ErrorHandler
21
+
22
+ app = FastAPI()
23
+
24
+ @app.post("/users")
25
+ def create_user(age: int):
26
+ # Simple validation
27
+ ErrorHandler.validate(age >= 18, "User must be 18 or older")
28
+ return {"message": "User created"}
29
+
30
+ @app.get("/items/{item_id}")
31
+ def get_item(item_id: str):
32
+ # Direct error raising
33
+ if not item_id:
34
+ ErrorHandler.raise_error("Item ID is required", status_code=400)
35
+ return {"item_id": item_id}
36
+ ```
37
+
38
+ 2. Exception Handling Decorator:
39
+ ```python
40
+ @app.post("/orders")
41
+ @ErrorHandler.handle_exceptions("Failed to create order")
42
+ def create_order(order_data: dict):
43
+ if not order_data.get("items"):
44
+ raise ValueError("Order must contain items")
45
+ # Process order...
46
+ return {"message": "Order created"}
47
+
48
+ @app.get("/products/{product_id}")
49
+ @ErrorHandler.handle_exceptions("Failed to fetch product", status_code=404)
50
+ def get_product(product_id: str):
51
+ product = database.get_product(product_id)
52
+ if not product:
53
+ raise ValueError("Product not found")
54
+ return product
55
+ ```
56
+
57
+ 3. Complex Validation:
58
+ ```python
59
+ @app.post("/payments")
60
+ @ErrorHandler.handle_exceptions("Payment processing failed")
61
+ def process_payment(payment: dict):
62
+ # Validate amount
63
+ ErrorHandler.validate(
64
+ payment.get("amount", 0) > 0,
65
+ "Payment amount must be positive",
66
+ HTTP_400_BAD_REQUEST
67
+ )
68
+
69
+ # Validate currency
70
+ ErrorHandler.validate(
71
+ payment.get("currency") in ["USD", "EUR"],
72
+ "Invalid currency",
73
+ HTTP_400_BAD_REQUEST,
74
+ "Unsupported currency provided" # Optional log message
75
+ )
76
+
77
+ # Custom error for insufficient funds
78
+ if payment.get("amount", 0) > get_balance():
79
+ ErrorHandler.raise_error(
80
+ "Insufficient funds",
81
+ status_code=HTTP_400_BAD_REQUEST,
82
+ log_message="User attempted payment exceeding balance"
83
+ )
84
+
85
+ return {"status": "payment processed"}
86
+ ```
87
+
88
+ 4. Error Logging:
89
+ ```python
90
+ @app.post("/imports")
91
+ @ErrorHandler.handle_exceptions("Import failed")
92
+ def import_data(data: dict):
93
+ try:
94
+ process_import(data)
95
+ except Exception as e:
96
+ # Log error with custom message before raising
97
+ ErrorHandler.raise_error(
98
+ "Import failed: invalid format",
99
+ status_code=400,
100
+ log_message=f"Import failed with error: {str(e)}"
101
+ )
102
+ return {"status": "import complete"}
103
+ ```
104
+
105
+ Key Features:
106
+ - Simple validation with custom error messages
107
+ - Consistent error handling across endpoints
108
+ - Built-in error logging
109
+ - HTTP status code customization
110
+ - Exception handling decorator for common patterns
111
+ """
112
+
113
+ @staticmethod
114
+ def raise_error(
115
+ detail: str,
116
+ status_code: int = HTTP_422_UNPROCESSABLE_ENTITY,
117
+ log_message: Optional[str] = None,
118
+ ) -> None:
119
+ """Raise an HTTPException with consistent logging.
120
+
121
+ Args:
122
+ detail: Error message to include in the HTTPException
123
+ status_code: HTTP status code to use (default: 422)
124
+ log_message: Optional message to log before raising the exception
125
+
126
+ Raises:
127
+ HTTPException: Always raised with the provided details
128
+ """
129
+ if log_message:
130
+ logger.error(log_message)
131
+ raise HTTPException(status_code=status_code, detail=detail)
132
+
133
+ @staticmethod
134
+ def validate(
135
+ condition: bool,
136
+ detail: str,
137
+ status_code: int = HTTP_400_BAD_REQUEST,
138
+ log_message: Optional[str] = None,
139
+ ) -> None:
140
+ """Validate a condition and raise an error if it's False.
141
+
142
+ Args:
143
+ condition: The condition to check
144
+ detail: Error message if condition is False
145
+ status_code: HTTP status code to use if condition is False
146
+ log_message: Optional message to log before raising the exception
147
+
148
+ Raises:
149
+ HTTPException: If the condition is False
150
+ """
151
+ if not condition:
152
+ ErrorHandler.raise_error(detail, status_code, log_message)
153
+
154
+ @classmethod
155
+ def handle_exceptions(
156
+ cls, error_message: str, status_code: int = HTTP_422_UNPROCESSABLE_ENTITY
157
+ ) -> Callable[[Callable[..., T]], Callable[..., T]]:
158
+ """Decorator to handle exceptions consistently.
159
+
160
+ Args:
161
+ error_message: Base error message to use
162
+ status_code: HTTP status code to use for unexpected errors
163
+
164
+ Returns:
165
+ Callable: The decorated function that handles exceptions
166
+
167
+ Note:
168
+ This decorator will catch specific exceptions and convert them to HTTPExceptions.
169
+ HTTPExceptions are re-raised as is, while other exceptions are wrapped with
170
+ additional context.
171
+ """
172
+
173
+ def decorator(func: Callable[..., T]) -> Callable[..., T]:
174
+ @wraps(func)
175
+ def wrapper(*args: Any, **kwargs: Any) -> Optional[T]:
176
+ try:
177
+ return func(*args, **kwargs)
178
+ except HTTPException:
179
+ # Re-raise HTTP exceptions without modification
180
+ raise
181
+ except (ValueError, TypeError, AttributeError, KeyError) as e:
182
+ # Handle common validation and data access errors
183
+ cls.raise_error(
184
+ f"{error_message}: {str(e)}",
185
+ status_code,
186
+ f"{error_message}: {e}",
187
+ )
188
+ except Exception as e: # pylint: disable=broad-except
189
+ # Log unexpected errors with full context but present a sanitized message
190
+ logger.error(
191
+ f"Unexpected error in {func.__name__}: {str(e)}", exc_info=True
192
+ )
193
+ cls.raise_error(
194
+ f"{error_message}: An unexpected error occurred",
195
+ status_code,
196
+ f"{error_message}: Unexpected {type(e).__name__}",
197
+ )
198
+ return None # This line is never reached but satisfies the return type checker
199
+
200
+ return wrapper # type: ignore[return-value]
201
+
202
+ return decorator
@@ -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/113d823fe71f6af0.css" as="style"/><link rel="stylesheet" href="/_next/static/css/113d823fe71f6af0.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-2c7ccac5843c4d8e.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-073217715167f9a8.js" defer=""></script><script src="/_next/static/chunks/pages/404-b202c0d8f6fc75c3.js" defer=""></script><script src="/_next/static/RyPMNiUshVruI8xu8t8kI/_buildManifest.js" defer=""></script><script src="/_next/static/RyPMNiUshVruI8xu8t8kI/_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":"RyPMNiUshVruI8xu8t8kI","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/113d823fe71f6af0.css" as="style"/><link rel="stylesheet" href="/_next/static/css/113d823fe71f6af0.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-2c7ccac5843c4d8e.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-073217715167f9a8.js" defer=""></script><script src="/_next/static/chunks/pages/404-b202c0d8f6fc75c3.js" defer=""></script><script src="/_next/static/DfE9QnPzVfXQ2WncrNw6c/_buildManifest.js" defer=""></script><script src="/_next/static/DfE9QnPzVfXQ2WncrNw6c/_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":"DfE9QnPzVfXQ2WncrNw6c","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link data-next-font="" rel="preconnect" href="/" crossorigin="anonymous"/><link rel="preload" href="/_next/static/css/113d823fe71f6af0.css" as="style"/><link rel="stylesheet" href="/_next/static/css/113d823fe71f6af0.css" data-n-g=""/><link rel="preload" href="/_next/static/css/d2d4e9a6923e6730.css" as="style"/><link rel="stylesheet" href="/_next/static/css/d2d4e9a6923e6730.css" data-n-p=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-2c7ccac5843c4d8e.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-073217715167f9a8.js" defer=""></script><script src="/_next/static/chunks/c78d26b1-88a3e1bacb2a03c2.js" defer=""></script><script src="/_next/static/chunks/6060-cb1ab5be7067bf7b.js" defer=""></script><script src="/_next/static/chunks/2858-0b44609b6be7850b.js" defer=""></script><script src="/_next/static/chunks/2866-a73888c17a195cbe.js" defer=""></script><script src="/_next/static/chunks/9278-9b1b5970f0702668.js" defer=""></script><script src="/_next/static/chunks/5277-e8a036319456127f.js" defer=""></script><script src="/_next/static/chunks/4481-aab99ff80f707473.js" defer=""></script><script src="/_next/static/chunks/7980-4bd08957448dea32.js" defer=""></script><script src="/_next/static/chunks/355-8a77c9a1cd027f2e.js" defer=""></script><script src="/_next/static/chunks/8499-43606100edf42fdf.js" defer=""></script><script src="/_next/static/chunks/7453-39761c38da31257e.js" defer=""></script><script src="/_next/static/chunks/4450-36234280bee624ff.js" defer=""></script><script src="/_next/static/chunks/pages/add-systems/manual-9acaab973dfe86e2.js" defer=""></script><script src="/_next/static/RyPMNiUshVruI8xu8t8kI/_buildManifest.js" defer=""></script><script src="/_next/static/RyPMNiUshVruI8xu8t8kI/_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":"/add-systems/manual","query":{},"buildId":"RyPMNiUshVruI8xu8t8kI","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/113d823fe71f6af0.css" as="style"/><link rel="stylesheet" href="/_next/static/css/113d823fe71f6af0.css" data-n-g=""/><link rel="preload" href="/_next/static/css/d2d4e9a6923e6730.css" as="style"/><link rel="stylesheet" href="/_next/static/css/d2d4e9a6923e6730.css" data-n-p=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-2c7ccac5843c4d8e.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-073217715167f9a8.js" defer=""></script><script src="/_next/static/chunks/c78d26b1-88a3e1bacb2a03c2.js" defer=""></script><script src="/_next/static/chunks/6060-cb1ab5be7067bf7b.js" defer=""></script><script src="/_next/static/chunks/2858-0b44609b6be7850b.js" defer=""></script><script src="/_next/static/chunks/2866-a73888c17a195cbe.js" defer=""></script><script src="/_next/static/chunks/9278-9b1b5970f0702668.js" defer=""></script><script src="/_next/static/chunks/5277-e8a036319456127f.js" defer=""></script><script src="/_next/static/chunks/4481-aab99ff80f707473.js" defer=""></script><script src="/_next/static/chunks/7980-4bd08957448dea32.js" defer=""></script><script src="/_next/static/chunks/355-8a77c9a1cd027f2e.js" defer=""></script><script src="/_next/static/chunks/8499-43606100edf42fdf.js" defer=""></script><script src="/_next/static/chunks/7453-39761c38da31257e.js" defer=""></script><script src="/_next/static/chunks/4450-36234280bee624ff.js" defer=""></script><script src="/_next/static/chunks/pages/add-systems/manual-9acaab973dfe86e2.js" defer=""></script><script src="/_next/static/DfE9QnPzVfXQ2WncrNw6c/_buildManifest.js" defer=""></script><script src="/_next/static/DfE9QnPzVfXQ2WncrNw6c/_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":"/add-systems/manual","query":{},"buildId":"DfE9QnPzVfXQ2WncrNw6c","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link data-next-font="" rel="preconnect" href="/" crossorigin="anonymous"/><link rel="preload" href="/_next/static/css/113d823fe71f6af0.css" as="style"/><link rel="stylesheet" href="/_next/static/css/113d823fe71f6af0.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-2c7ccac5843c4d8e.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-073217715167f9a8.js" defer=""></script><script src="/_next/static/chunks/c78d26b1-88a3e1bacb2a03c2.js" defer=""></script><script src="/_next/static/chunks/6060-cb1ab5be7067bf7b.js" defer=""></script><script src="/_next/static/chunks/4481-aab99ff80f707473.js" defer=""></script><script src="/_next/static/chunks/355-8a77c9a1cd027f2e.js" defer=""></script><script src="/_next/static/chunks/4723-0a3c5e2ce143a7d0.js" defer=""></script><script src="/_next/static/chunks/5826-e5dcb4e68cfe6289.js" defer=""></script><script src="/_next/static/chunks/pages/add-systems/multiple-ba975134a85588f8.js" defer=""></script><script src="/_next/static/RyPMNiUshVruI8xu8t8kI/_buildManifest.js" defer=""></script><script src="/_next/static/RyPMNiUshVruI8xu8t8kI/_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":"/add-systems/multiple","query":{},"buildId":"RyPMNiUshVruI8xu8t8kI","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/113d823fe71f6af0.css" as="style"/><link rel="stylesheet" href="/_next/static/css/113d823fe71f6af0.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-2c7ccac5843c4d8e.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-073217715167f9a8.js" defer=""></script><script src="/_next/static/chunks/c78d26b1-88a3e1bacb2a03c2.js" defer=""></script><script src="/_next/static/chunks/6060-cb1ab5be7067bf7b.js" defer=""></script><script src="/_next/static/chunks/4481-aab99ff80f707473.js" defer=""></script><script src="/_next/static/chunks/355-8a77c9a1cd027f2e.js" defer=""></script><script src="/_next/static/chunks/4723-0a3c5e2ce143a7d0.js" defer=""></script><script src="/_next/static/chunks/5826-e5dcb4e68cfe6289.js" defer=""></script><script src="/_next/static/chunks/pages/add-systems/multiple-ba975134a85588f8.js" defer=""></script><script src="/_next/static/DfE9QnPzVfXQ2WncrNw6c/_buildManifest.js" defer=""></script><script src="/_next/static/DfE9QnPzVfXQ2WncrNw6c/_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":"/add-systems/multiple","query":{},"buildId":"DfE9QnPzVfXQ2WncrNw6c","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link data-next-font="" rel="preconnect" href="/" crossorigin="anonymous"/><link rel="preload" href="/_next/static/css/113d823fe71f6af0.css" as="style"/><link rel="stylesheet" href="/_next/static/css/113d823fe71f6af0.css" data-n-g=""/><link rel="preload" href="/_next/static/css/972dc7eef106ee7c.css" as="style"/><link rel="stylesheet" href="/_next/static/css/972dc7eef106ee7c.css" data-n-p=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-2c7ccac5843c4d8e.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-073217715167f9a8.js" defer=""></script><script src="/_next/static/chunks/pages/add-systems-d258f0c25fa020bf.js" defer=""></script><script src="/_next/static/RyPMNiUshVruI8xu8t8kI/_buildManifest.js" defer=""></script><script src="/_next/static/RyPMNiUshVruI8xu8t8kI/_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":"/add-systems","query":{},"buildId":"RyPMNiUshVruI8xu8t8kI","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/113d823fe71f6af0.css" as="style"/><link rel="stylesheet" href="/_next/static/css/113d823fe71f6af0.css" data-n-g=""/><link rel="preload" href="/_next/static/css/972dc7eef106ee7c.css" as="style"/><link rel="stylesheet" href="/_next/static/css/972dc7eef106ee7c.css" data-n-p=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-2c7ccac5843c4d8e.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-073217715167f9a8.js" defer=""></script><script src="/_next/static/chunks/pages/add-systems-d258f0c25fa020bf.js" defer=""></script><script src="/_next/static/DfE9QnPzVfXQ2WncrNw6c/_buildManifest.js" defer=""></script><script src="/_next/static/DfE9QnPzVfXQ2WncrNw6c/_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":"/add-systems","query":{},"buildId":"DfE9QnPzVfXQ2WncrNw6c","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link data-next-font="" rel="preconnect" href="/" crossorigin="anonymous"/><link rel="preload" href="/_next/static/css/113d823fe71f6af0.css" as="style"/><link rel="stylesheet" href="/_next/static/css/113d823fe71f6af0.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-2c7ccac5843c4d8e.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-073217715167f9a8.js" defer=""></script><script src="/_next/static/chunks/pages/ant-poc-b9932971a479f3a7.js" defer=""></script><script src="/_next/static/RyPMNiUshVruI8xu8t8kI/_buildManifest.js" defer=""></script><script src="/_next/static/RyPMNiUshVruI8xu8t8kI/_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":"/ant-poc","query":{},"buildId":"RyPMNiUshVruI8xu8t8kI","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/113d823fe71f6af0.css" as="style"/><link rel="stylesheet" href="/_next/static/css/113d823fe71f6af0.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-2c7ccac5843c4d8e.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-073217715167f9a8.js" defer=""></script><script src="/_next/static/chunks/pages/ant-poc-b9932971a479f3a7.js" defer=""></script><script src="/_next/static/DfE9QnPzVfXQ2WncrNw6c/_buildManifest.js" defer=""></script><script src="/_next/static/DfE9QnPzVfXQ2WncrNw6c/_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":"/ant-poc","query":{},"buildId":"DfE9QnPzVfXQ2WncrNw6c","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link data-next-font="" rel="preconnect" href="/" crossorigin="anonymous"/><link rel="preload" href="/_next/static/css/113d823fe71f6af0.css" as="style"/><link rel="stylesheet" href="/_next/static/css/113d823fe71f6af0.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-2c7ccac5843c4d8e.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-073217715167f9a8.js" defer=""></script><script src="/_next/static/chunks/c78d26b1-88a3e1bacb2a03c2.js" defer=""></script><script src="/_next/static/chunks/6060-cb1ab5be7067bf7b.js" defer=""></script><script src="/_next/static/chunks/4481-aab99ff80f707473.js" defer=""></script><script src="/_next/static/chunks/355-8a77c9a1cd027f2e.js" defer=""></script><script src="/_next/static/chunks/4723-0a3c5e2ce143a7d0.js" defer=""></script><script src="/_next/static/chunks/5826-e5dcb4e68cfe6289.js" defer=""></script><script src="/_next/static/chunks/pages/consent/configure/add-vendors-b34e5324461d0c87.js" defer=""></script><script src="/_next/static/RyPMNiUshVruI8xu8t8kI/_buildManifest.js" defer=""></script><script src="/_next/static/RyPMNiUshVruI8xu8t8kI/_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":"/consent/configure/add-vendors","query":{},"buildId":"RyPMNiUshVruI8xu8t8kI","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/113d823fe71f6af0.css" as="style"/><link rel="stylesheet" href="/_next/static/css/113d823fe71f6af0.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-2c7ccac5843c4d8e.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-073217715167f9a8.js" defer=""></script><script src="/_next/static/chunks/c78d26b1-88a3e1bacb2a03c2.js" defer=""></script><script src="/_next/static/chunks/6060-cb1ab5be7067bf7b.js" defer=""></script><script src="/_next/static/chunks/4481-aab99ff80f707473.js" defer=""></script><script src="/_next/static/chunks/355-8a77c9a1cd027f2e.js" defer=""></script><script src="/_next/static/chunks/4723-0a3c5e2ce143a7d0.js" defer=""></script><script src="/_next/static/chunks/5826-e5dcb4e68cfe6289.js" defer=""></script><script src="/_next/static/chunks/pages/consent/configure/add-vendors-b34e5324461d0c87.js" defer=""></script><script src="/_next/static/DfE9QnPzVfXQ2WncrNw6c/_buildManifest.js" defer=""></script><script src="/_next/static/DfE9QnPzVfXQ2WncrNw6c/_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":"/consent/configure/add-vendors","query":{},"buildId":"DfE9QnPzVfXQ2WncrNw6c","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link data-next-font="" rel="preconnect" href="/" crossorigin="anonymous"/><link rel="preload" href="/_next/static/css/113d823fe71f6af0.css" as="style"/><link rel="stylesheet" href="/_next/static/css/113d823fe71f6af0.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-2c7ccac5843c4d8e.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-073217715167f9a8.js" defer=""></script><script src="/_next/static/chunks/c78d26b1-88a3e1bacb2a03c2.js" defer=""></script><script src="/_next/static/chunks/6060-cb1ab5be7067bf7b.js" defer=""></script><script src="/_next/static/chunks/4481-aab99ff80f707473.js" defer=""></script><script src="/_next/static/chunks/355-8a77c9a1cd027f2e.js" defer=""></script><script src="/_next/static/chunks/4723-0a3c5e2ce143a7d0.js" defer=""></script><script src="/_next/static/chunks/pages/consent/configure-723cc3d4f5740ea6.js" defer=""></script><script src="/_next/static/RyPMNiUshVruI8xu8t8kI/_buildManifest.js" defer=""></script><script src="/_next/static/RyPMNiUshVruI8xu8t8kI/_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":"/consent/configure","query":{},"buildId":"RyPMNiUshVruI8xu8t8kI","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/113d823fe71f6af0.css" as="style"/><link rel="stylesheet" href="/_next/static/css/113d823fe71f6af0.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-2c7ccac5843c4d8e.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-073217715167f9a8.js" defer=""></script><script src="/_next/static/chunks/c78d26b1-88a3e1bacb2a03c2.js" defer=""></script><script src="/_next/static/chunks/6060-cb1ab5be7067bf7b.js" defer=""></script><script src="/_next/static/chunks/4481-aab99ff80f707473.js" defer=""></script><script src="/_next/static/chunks/355-8a77c9a1cd027f2e.js" defer=""></script><script src="/_next/static/chunks/4723-0a3c5e2ce143a7d0.js" defer=""></script><script src="/_next/static/chunks/pages/consent/configure-723cc3d4f5740ea6.js" defer=""></script><script src="/_next/static/DfE9QnPzVfXQ2WncrNw6c/_buildManifest.js" defer=""></script><script src="/_next/static/DfE9QnPzVfXQ2WncrNw6c/_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":"/consent/configure","query":{},"buildId":"DfE9QnPzVfXQ2WncrNw6c","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link data-next-font="" rel="preconnect" href="/" crossorigin="anonymous"/><link rel="preload" href="/_next/static/css/113d823fe71f6af0.css" as="style"/><link rel="stylesheet" href="/_next/static/css/113d823fe71f6af0.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-2c7ccac5843c4d8e.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-073217715167f9a8.js" defer=""></script><script src="/_next/static/chunks/2858-0b44609b6be7850b.js" defer=""></script><script src="/_next/static/chunks/2866-a73888c17a195cbe.js" defer=""></script><script src="/_next/static/chunks/4294-5b3aa9d605217915.js" defer=""></script><script src="/_next/static/chunks/9014-eeae6f581158e645.js" defer=""></script><script src="/_next/static/chunks/9282-2bfbdca45e84e810.js" defer=""></script><script src="/_next/static/chunks/1376-5cea5ef9362215e8.js" defer=""></script><script src="/_next/static/chunks/3412-7ec8751b8182e1bf.js" defer=""></script><script src="/_next/static/chunks/pages/consent/privacy-experience/%5Bid%5D-fb75fa0aea77678d.js" defer=""></script><script src="/_next/static/RyPMNiUshVruI8xu8t8kI/_buildManifest.js" defer=""></script><script src="/_next/static/RyPMNiUshVruI8xu8t8kI/_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":"/consent/privacy-experience/[id]","query":{},"buildId":"RyPMNiUshVruI8xu8t8kI","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/113d823fe71f6af0.css" as="style"/><link rel="stylesheet" href="/_next/static/css/113d823fe71f6af0.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-2c7ccac5843c4d8e.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-073217715167f9a8.js" defer=""></script><script src="/_next/static/chunks/2858-0b44609b6be7850b.js" defer=""></script><script src="/_next/static/chunks/2866-a73888c17a195cbe.js" defer=""></script><script src="/_next/static/chunks/4294-5b3aa9d605217915.js" defer=""></script><script src="/_next/static/chunks/9014-eeae6f581158e645.js" defer=""></script><script src="/_next/static/chunks/9282-2bfbdca45e84e810.js" defer=""></script><script src="/_next/static/chunks/1376-5cea5ef9362215e8.js" defer=""></script><script src="/_next/static/chunks/3412-7ec8751b8182e1bf.js" defer=""></script><script src="/_next/static/chunks/pages/consent/privacy-experience/%5Bid%5D-fb75fa0aea77678d.js" defer=""></script><script src="/_next/static/DfE9QnPzVfXQ2WncrNw6c/_buildManifest.js" defer=""></script><script src="/_next/static/DfE9QnPzVfXQ2WncrNw6c/_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":"/consent/privacy-experience/[id]","query":{},"buildId":"DfE9QnPzVfXQ2WncrNw6c","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link data-next-font="" rel="preconnect" href="/" crossorigin="anonymous"/><link rel="preload" href="/_next/static/css/113d823fe71f6af0.css" as="style"/><link rel="stylesheet" href="/_next/static/css/113d823fe71f6af0.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-2c7ccac5843c4d8e.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-073217715167f9a8.js" defer=""></script><script src="/_next/static/chunks/2858-0b44609b6be7850b.js" defer=""></script><script src="/_next/static/chunks/2866-a73888c17a195cbe.js" defer=""></script><script src="/_next/static/chunks/4294-5b3aa9d605217915.js" defer=""></script><script src="/_next/static/chunks/9014-eeae6f581158e645.js" defer=""></script><script src="/_next/static/chunks/9282-2bfbdca45e84e810.js" defer=""></script><script src="/_next/static/chunks/1376-5cea5ef9362215e8.js" defer=""></script><script src="/_next/static/chunks/3412-7ec8751b8182e1bf.js" defer=""></script><script src="/_next/static/chunks/pages/consent/privacy-experience/new-a9d9402c219d13e5.js" defer=""></script><script src="/_next/static/RyPMNiUshVruI8xu8t8kI/_buildManifest.js" defer=""></script><script src="/_next/static/RyPMNiUshVruI8xu8t8kI/_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":"/consent/privacy-experience/new","query":{},"buildId":"RyPMNiUshVruI8xu8t8kI","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/113d823fe71f6af0.css" as="style"/><link rel="stylesheet" href="/_next/static/css/113d823fe71f6af0.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-2c7ccac5843c4d8e.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-073217715167f9a8.js" defer=""></script><script src="/_next/static/chunks/2858-0b44609b6be7850b.js" defer=""></script><script src="/_next/static/chunks/2866-a73888c17a195cbe.js" defer=""></script><script src="/_next/static/chunks/4294-5b3aa9d605217915.js" defer=""></script><script src="/_next/static/chunks/9014-eeae6f581158e645.js" defer=""></script><script src="/_next/static/chunks/9282-2bfbdca45e84e810.js" defer=""></script><script src="/_next/static/chunks/1376-5cea5ef9362215e8.js" defer=""></script><script src="/_next/static/chunks/3412-7ec8751b8182e1bf.js" defer=""></script><script src="/_next/static/chunks/pages/consent/privacy-experience/new-a9d9402c219d13e5.js" defer=""></script><script src="/_next/static/DfE9QnPzVfXQ2WncrNw6c/_buildManifest.js" defer=""></script><script src="/_next/static/DfE9QnPzVfXQ2WncrNw6c/_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":"/consent/privacy-experience/new","query":{},"buildId":"DfE9QnPzVfXQ2WncrNw6c","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>