ethyca-fides 2.56.1b1__py2.py3-none-any.whl → 2.56.1b3__py2.py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {ethyca_fides-2.56.1b1.dist-info → ethyca_fides-2.56.1b3.dist-info}/METADATA +1 -1
- {ethyca_fides-2.56.1b1.dist-info → ethyca_fides-2.56.1b3.dist-info}/RECORD +85 -85
- fides/_version.py +3 -3
- fides/api/db/samples.py +30 -4
- fides/api/service/privacy_request/request_service.py +122 -55
- fides/ui-build/static/admin/404.html +1 -1
- fides/ui-build/static/admin/_next/static/chunks/{9659-4757cc92c551432f.js → 9659-7a6f150315045fdd.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/{_app-817f3fe70282b855.js → _app-ec8f262156df2273.js} +1 -1
- fides/ui-build/static/admin/_next/static/{Yp4lTh1cgsDcOfwB95ehL → gfK90uth_1hk3Qh5aYeCe}/_buildManifest.js +1 -1
- fides/ui-build/static/admin/add-systems/manual.html +1 -1
- fides/ui-build/static/admin/add-systems/multiple.html +1 -1
- fides/ui-build/static/admin/add-systems.html +1 -1
- fides/ui-build/static/admin/ant-poc.html +1 -1
- fides/ui-build/static/admin/consent/configure/add-vendors.html +1 -1
- fides/ui-build/static/admin/consent/configure.html +1 -1
- fides/ui-build/static/admin/consent/privacy-experience/[id].html +1 -1
- fides/ui-build/static/admin/consent/privacy-experience/new.html +1 -1
- fides/ui-build/static/admin/consent/privacy-experience.html +1 -1
- fides/ui-build/static/admin/consent/privacy-notices/[id].html +1 -1
- fides/ui-build/static/admin/consent/privacy-notices/new.html +1 -1
- fides/ui-build/static/admin/consent/privacy-notices.html +1 -1
- fides/ui-build/static/admin/consent/properties.html +1 -1
- fides/ui-build/static/admin/consent/reporting.html +1 -1
- fides/ui-build/static/admin/consent.html +1 -1
- fides/ui-build/static/admin/data-catalog/[systemId]/projects/[projectUrn]/[resourceUrn].html +1 -1
- fides/ui-build/static/admin/data-catalog/[systemId]/projects/[projectUrn].html +1 -1
- fides/ui-build/static/admin/data-catalog/[systemId]/projects.html +1 -1
- fides/ui-build/static/admin/data-catalog/[systemId]/resources/[resourceUrn].html +1 -1
- fides/ui-build/static/admin/data-catalog/[systemId]/resources.html +1 -1
- fides/ui-build/static/admin/data-catalog.html +1 -1
- fides/ui-build/static/admin/data-discovery/action-center/[monitorId]/[systemId].html +1 -1
- fides/ui-build/static/admin/data-discovery/action-center/[monitorId].html +1 -1
- fides/ui-build/static/admin/data-discovery/action-center.html +1 -1
- fides/ui-build/static/admin/data-discovery/activity.html +1 -1
- fides/ui-build/static/admin/data-discovery/detection/[resourceUrn].html +1 -1
- fides/ui-build/static/admin/data-discovery/detection.html +1 -1
- fides/ui-build/static/admin/data-discovery/discovery/[resourceUrn].html +1 -1
- fides/ui-build/static/admin/data-discovery/discovery.html +1 -1
- fides/ui-build/static/admin/datamap.html +1 -1
- fides/ui-build/static/admin/dataset/[datasetId]/[collectionName]/[...subfieldNames].html +1 -1
- fides/ui-build/static/admin/dataset/[datasetId]/[collectionName].html +1 -1
- fides/ui-build/static/admin/dataset/[datasetId].html +1 -1
- fides/ui-build/static/admin/dataset/new.html +1 -1
- fides/ui-build/static/admin/dataset.html +1 -1
- fides/ui-build/static/admin/datastore-connection/[id].html +1 -1
- fides/ui-build/static/admin/datastore-connection/new.html +1 -1
- fides/ui-build/static/admin/datastore-connection.html +1 -1
- fides/ui-build/static/admin/index.html +1 -1
- fides/ui-build/static/admin/integrations/[id].html +1 -1
- fides/ui-build/static/admin/integrations.html +1 -1
- fides/ui-build/static/admin/login/[provider].html +1 -1
- fides/ui-build/static/admin/login.html +1 -1
- fides/ui-build/static/admin/messaging/[id].html +1 -1
- fides/ui-build/static/admin/messaging/add-template.html +1 -1
- fides/ui-build/static/admin/messaging.html +1 -1
- fides/ui-build/static/admin/privacy-requests/[id].html +1 -1
- fides/ui-build/static/admin/privacy-requests/configure/messaging.html +1 -1
- fides/ui-build/static/admin/privacy-requests/configure/storage.html +1 -1
- fides/ui-build/static/admin/privacy-requests/configure.html +1 -1
- fides/ui-build/static/admin/privacy-requests.html +1 -1
- fides/ui-build/static/admin/properties/[id].html +1 -1
- fides/ui-build/static/admin/properties/add-property.html +1 -1
- fides/ui-build/static/admin/properties.html +1 -1
- fides/ui-build/static/admin/reporting/datamap.html +1 -1
- fides/ui-build/static/admin/settings/about.html +1 -1
- fides/ui-build/static/admin/settings/consent.html +1 -1
- fides/ui-build/static/admin/settings/custom-fields.html +1 -1
- fides/ui-build/static/admin/settings/domain-records.html +1 -1
- fides/ui-build/static/admin/settings/domains.html +1 -1
- fides/ui-build/static/admin/settings/email-templates.html +1 -1
- fides/ui-build/static/admin/settings/locations.html +1 -1
- fides/ui-build/static/admin/settings/organization.html +1 -1
- fides/ui-build/static/admin/settings/regulations.html +1 -1
- fides/ui-build/static/admin/systems/configure/[id]/test-datasets.html +1 -1
- fides/ui-build/static/admin/systems/configure/[id].html +1 -1
- fides/ui-build/static/admin/systems.html +1 -1
- fides/ui-build/static/admin/taxonomy.html +1 -1
- fides/ui-build/static/admin/user-management/new.html +1 -1
- fides/ui-build/static/admin/user-management/profile/[id].html +1 -1
- fides/ui-build/static/admin/user-management.html +1 -1
- {ethyca_fides-2.56.1b1.dist-info → ethyca_fides-2.56.1b3.dist-info}/LICENSE +0 -0
- {ethyca_fides-2.56.1b1.dist-info → ethyca_fides-2.56.1b3.dist-info}/WHEEL +0 -0
- {ethyca_fides-2.56.1b1.dist-info → ethyca_fides-2.56.1b3.dist-info}/entry_points.txt +0 -0
- {ethyca_fides-2.56.1b1.dist-info → ethyca_fides-2.56.1b3.dist-info}/top_level.txt +0 -0
- /fides/ui-build/static/admin/_next/static/{Yp4lTh1cgsDcOfwB95ehL → gfK90uth_1hk3Qh5aYeCe}/_ssgManifest.js +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
fides/__init__.py,sha256=tE3qqipY9eynYXYpQeksYGHP5NfeXyq-L9mBtpFIxl8,139
|
|
2
|
-
fides/_version.py,sha256=
|
|
2
|
+
fides/_version.py,sha256=tEKKORYZTCJ_aGoAvEOfHVtmJwu3SVajFSZfyH2I7Mw,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
|
|
@@ -315,7 +315,7 @@ fides/api/db/base_class.py,sha256=XrzpwZ3rUKSVt_7j8PCTv6BjGhQzXnOJpcshPZfA4pg,12
|
|
|
315
315
|
fides/api/db/crud.py,sha256=1h9AXOyTPlZFrrpy7mQLN2FDGr48NkuJtnAKxMzVGhg,14013
|
|
316
316
|
fides/api/db/ctl_session.py,sha256=Q6x737gm-WCiShhCyHyAFSd6Z2GAtAWw6hR-Y_gO_Jw,1710
|
|
317
317
|
fides/api/db/database.py,sha256=xygYDlNXG-DDGmDeGBd2tEWfp_2JQNfdaqxK5ow_WZI,5237
|
|
318
|
-
fides/api/db/samples.py,sha256=
|
|
318
|
+
fides/api/db/samples.py,sha256=JzUGBkE8XAtsf4aPwueMM04xHi0h_jd5dwbpowK2dOw,6337
|
|
319
319
|
fides/api/db/seed.py,sha256=RvZYTvXiY1PSJzlWn3gCPe1UGDNZLUxE-eWHlysOvJI,22045
|
|
320
320
|
fides/api/db/session.py,sha256=7SH1MJ-TSgdz8ctRjfDOSbZseRV2d-MKBSfdeycXXmI,3177
|
|
321
321
|
fides/api/db/system.py,sha256=TADTqzdwS8Ln47zNUc_MsKtKEVwggWv-aQ1GTaFDXU4,16769
|
|
@@ -580,7 +580,7 @@ fides/api/service/pagination/pagination_strategy_offset.py,sha256=6uJu3wBaGl9_ub
|
|
|
580
580
|
fides/api/service/privacy_request/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
581
581
|
fides/api/service/privacy_request/email_batch_service.py,sha256=pPRc7EwFVoQPRkd0djfICiS3Gdi3BNcMJZXYqmuuK64,5708
|
|
582
582
|
fides/api/service/privacy_request/request_runner_service.py,sha256=EMUIh9NgX_Pb-ept47rJZbFnCrAXcGYwupLDkzCzdkY,35136
|
|
583
|
-
fides/api/service/privacy_request/request_service.py,sha256=
|
|
583
|
+
fides/api/service/privacy_request/request_service.py,sha256=LPVy6ic8U8xd1CZzgRXQ72Lm0uGUHim6kEwPbVdsUIQ,21287
|
|
584
584
|
fides/api/service/privacy_request/dsr_package/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
585
585
|
fides/api/service/privacy_request/dsr_package/dsr_report_builder.py,sha256=7pINiahGq4QLbXJyke-G5KP3Jpk9usO6oVMT7S8_StQ,7397
|
|
586
586
|
fides/api/service/privacy_request/dsr_package/assets/back.svg,sha256=Jxx_oWLHnd84oM4z-fPKfTGfqXnARJI_M00iq0mMw_Y,243
|
|
@@ -750,29 +750,27 @@ fides/service/messaging/aws_ses_service.py,sha256=7yZe4wuhWzdZl6soddHrUhExJvIXeq
|
|
|
750
750
|
fides/service/messaging/messaging_service.py,sha256=_3iObiVslfJzuzCukCDw2gbQXrOPpMZs3LqG1Dbmirw,11710
|
|
751
751
|
fides/service/privacy_request/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
752
752
|
fides/service/privacy_request/privacy_request_service.py,sha256=_JL1SmKk9n-jW4lSTZ2iy4KUhYr2vhwWMNvnG1TJ4I4,25694
|
|
753
|
-
fides/ui-build/static/admin/404.html,sha256=
|
|
754
|
-
fides/ui-build/static/admin/add-systems.html,sha256=
|
|
755
|
-
fides/ui-build/static/admin/ant-poc.html,sha256=
|
|
756
|
-
fides/ui-build/static/admin/consent.html,sha256=
|
|
757
|
-
fides/ui-build/static/admin/data-catalog.html,sha256=
|
|
758
|
-
fides/ui-build/static/admin/datamap.html,sha256=
|
|
759
|
-
fides/ui-build/static/admin/dataset.html,sha256=
|
|
760
|
-
fides/ui-build/static/admin/datastore-connection.html,sha256=
|
|
753
|
+
fides/ui-build/static/admin/404.html,sha256=mZNfVEsFEirTFYFUTLrop3Ex0cbqKJPd-ik8-5GD-2E,1466
|
|
754
|
+
fides/ui-build/static/admin/add-systems.html,sha256=6Qg4KsA4zn0cuUgfwUSth1dHRU93L_oFn5R8AkxD9qg,1642
|
|
755
|
+
fides/ui-build/static/admin/ant-poc.html,sha256=YTqd0z4ac2Hk523TdcdYsFd80hVyng1qvfMSNGo7RQQ,1474
|
|
756
|
+
fides/ui-build/static/admin/consent.html,sha256=ID4UTnP-SL_iVB3WejV57Z9B2EjeLxdbNEArns3fj6o,1474
|
|
757
|
+
fides/ui-build/static/admin/data-catalog.html,sha256=XTLG58oecklNadowMgLVvbFgppOqlFWNi0kYwlleipY,2116
|
|
758
|
+
fides/ui-build/static/admin/datamap.html,sha256=FOQnrba93rajtqlQp6l7oSY3RvEJxgrt84ay0iJyNWE,2101
|
|
759
|
+
fides/ui-build/static/admin/dataset.html,sha256=yIaaJVt76DD9B8QJTLUTCx3IwomWE3_mpeIxUhcB4Ec,1790
|
|
760
|
+
fides/ui-build/static/admin/datastore-connection.html,sha256=h6pirend6jvajJdvA2iJmHtkuM0xi4I0iQ2ZgcMLmvA,1660
|
|
761
761
|
fides/ui-build/static/admin/favicon.ico,sha256=xxtarycoqCOznVZCG0z5Wej6EfYvMYwyz6EUwaVwhEw,4286
|
|
762
|
-
fides/ui-build/static/admin/index.html,sha256=
|
|
763
|
-
fides/ui-build/static/admin/integrations.html,sha256=
|
|
764
|
-
fides/ui-build/static/admin/login.html,sha256=
|
|
762
|
+
fides/ui-build/static/admin/index.html,sha256=R5RHt-Ct5_sGDGgYLfYDD529bOSsXI8KgGCEiNcwJVM,1625
|
|
763
|
+
fides/ui-build/static/admin/integrations.html,sha256=ym_VerbABDU-pA2DLkJ_IQZbe-_4Ry78aFFGlgNMhCA,1874
|
|
764
|
+
fides/ui-build/static/admin/login.html,sha256=Lu0rcg5CfU3_9sqF98-gwGnxPJXQ6GpT65HqQxFVz7M,1470
|
|
765
765
|
fides/ui-build/static/admin/logo-icon.svg,sha256=LTpApcJnb73kye_gPF3KG8qNe6S3HJJKeebdl6aJ8fI,147
|
|
766
766
|
fides/ui-build/static/admin/logo-white.svg,sha256=u12SVA-WPW0GAhJ1wXM4oi2aqKXKmteo6yEvGDgz5jM,2101
|
|
767
767
|
fides/ui-build/static/admin/logo.svg,sha256=bCostWyEaAVHBbKwGhzAAGJ0ZNgxBGgzhwKsAXS47bg,2100
|
|
768
|
-
fides/ui-build/static/admin/messaging.html,sha256=
|
|
769
|
-
fides/ui-build/static/admin/privacy-requests.html,sha256=
|
|
770
|
-
fides/ui-build/static/admin/properties.html,sha256=
|
|
771
|
-
fides/ui-build/static/admin/systems.html,sha256=
|
|
772
|
-
fides/ui-build/static/admin/taxonomy.html,sha256=
|
|
773
|
-
fides/ui-build/static/admin/user-management.html,sha256=
|
|
774
|
-
fides/ui-build/static/admin/_next/static/Yp4lTh1cgsDcOfwB95ehL/_buildManifest.js,sha256=rqH_WQy5u6stjj5YV4NkDf4TlUj7YqaDeJ40S7w2cfw,11762
|
|
775
|
-
fides/ui-build/static/admin/_next/static/Yp4lTh1cgsDcOfwB95ehL/_ssgManifest.js,sha256=Z49s4suAsf5y_GfnQSvm4qtq2ggxEbZPfEDTXjy6XgA,80
|
|
768
|
+
fides/ui-build/static/admin/messaging.html,sha256=gyBiNqBjdBcW1fD-KuN-bsFMFKkf-WOxytxOQIh0LUk,1950
|
|
769
|
+
fides/ui-build/static/admin/privacy-requests.html,sha256=8M7lZrUcvyPbXC-skA-YyteJYcbD9Gf-icrxAzMFI-8,1808
|
|
770
|
+
fides/ui-build/static/admin/properties.html,sha256=mWgAZksdjBuCob8cYXSzVtwENUhbU2BUn_Do55pCDWw,1796
|
|
771
|
+
fides/ui-build/static/admin/systems.html,sha256=HBD-9wi8VIRn3E99SXSO06v0hZbbgXzGj9DKZyJSamw,1712
|
|
772
|
+
fides/ui-build/static/admin/taxonomy.html,sha256=2uoLRO8202ag6FWDIHhmBSXqNjpUIZUubz_xgJb0I5Q,2185
|
|
773
|
+
fides/ui-build/static/admin/user-management.html,sha256=ATW8x-mkXtITP4HFs2S4c5vbx2l6SXUMRoMYraCr8-Y,1566
|
|
776
774
|
fides/ui-build/static/admin/_next/static/chunks/1241-438935108aed21e7.js,sha256=6KzfEK6TzKlojgTap4JwSALZLcR0-TncMkGq6dUxPFs,27733
|
|
777
775
|
fides/ui-build/static/admin/_next/static/chunks/1288-ba1df63e7fa2234a.js,sha256=bXRiZAiBWvImKuxiIj8OmQVCVTZrs0DKLB9GSlowgXc,12162
|
|
778
776
|
fides/ui-build/static/admin/_next/static/chunks/1827-2d2f6eb59ebca43f.js,sha256=eTTRJUNmu1fl7R-XOm6Ac1sYGi3XUlvga1FRSnt9t70,8852
|
|
@@ -825,7 +823,7 @@ fides/ui-build/static/admin/_next/static/chunks/8986-b955f08aba857064.js,sha256=
|
|
|
825
823
|
fides/ui-build/static/admin/_next/static/chunks/9111-36f3eb6456817560.js,sha256=IuGimp0XrMQbD3hv-SYNuX7j5pvjuVKEs9m_VVPIu18,10094
|
|
826
824
|
fides/ui-build/static/admin/_next/static/chunks/9255-2b1bafefb091a640.js,sha256=ZYaKct73iO4BZWZNMpCE-CaXKUvRmgA5VciDT7KIHIY,5935
|
|
827
825
|
fides/ui-build/static/admin/_next/static/chunks/9278-9b1b5970f0702668.js,sha256=MiariQ7aGYsHsak2voBrSCI9N4H0v_A0MCIrJOpXIog,4425
|
|
828
|
-
fides/ui-build/static/admin/_next/static/chunks/9659-
|
|
826
|
+
fides/ui-build/static/admin/_next/static/chunks/9659-7a6f150315045fdd.js,sha256=ZBW4t847IfzYUSUgC3lEhYcY0tm9SbsNUvd9lOJN5Fk,101773
|
|
829
827
|
fides/ui-build/static/admin/_next/static/chunks/9822-e0b4ee48b9ca9d6c.js,sha256=BejG0gJadGqC285MVHwg8hcL4fMk1-NwzsbrBSzfsro,31587
|
|
830
828
|
fides/ui-build/static/admin/_next/static/chunks/c78d26b1-88a3e1bacb2a03c2.js,sha256=8_95Wj71e4RYtQ-wpNfWgmnZgUm5cEjSWsO6Qv63i3k,69734
|
|
831
829
|
fides/ui-build/static/admin/_next/static/chunks/ea076c0a.84423f606aef37cd.js,sha256=dHNjuXP8GjipoeHfsr7qVnnur0T_yXLgfdBm79kjSXw,449603
|
|
@@ -835,7 +833,7 @@ fides/ui-build/static/admin/_next/static/chunks/main-app-de538a24cbd2733c.js,sha
|
|
|
835
833
|
fides/ui-build/static/admin/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js,sha256=6QPOwdWeAVe8x-SsiDrm-Ga6u2DkqgG5SFqglrlyIgA,91381
|
|
836
834
|
fides/ui-build/static/admin/_next/static/chunks/webpack-f8d056f5e13fe08a.js,sha256=xjfvfBP2SMQ4o6NCMV_LKER6vABL1SFFPXG5Z0gy2xg,4047
|
|
837
835
|
fides/ui-build/static/admin/_next/static/chunks/pages/404-cf2b98b932c99b1e.js,sha256=nQ4xdHK8V7XcQ9uoirKahKwhFxw91QJpmunDIJTe-7o,1457
|
|
838
|
-
fides/ui-build/static/admin/_next/static/chunks/pages/_app-
|
|
836
|
+
fides/ui-build/static/admin/_next/static/chunks/pages/_app-ec8f262156df2273.js,sha256=ZmrLc2JyFP6RLsUxnOKLd1kVf73Av6_R65cIlNE7SIg,4052728
|
|
839
837
|
fides/ui-build/static/admin/_next/static/chunks/pages/_error-c91b5eabd7ac9382.js,sha256=6txJ2jtiyKPFTgaHpSuzalOh5yFFtbvtUodCcwQrTZc,253
|
|
840
838
|
fides/ui-build/static/admin/_next/static/chunks/pages/add-systems-500ee461301938a8.js,sha256=13plMvfCYL2MbG1QC-R56qsaZYnMBDGG9y-fo0MgLDk,34998
|
|
841
839
|
fides/ui-build/static/admin/_next/static/chunks/pages/ant-poc-833eede89996ded2.js,sha256=IIod5Uox-Sr8bS3fOFaZyKUc73uNOwC5A2SZtfVz8co,8575
|
|
@@ -914,6 +912,8 @@ fides/ui-build/static/admin/_next/static/css/95ac327e5d70148d.css,sha256=-LoR2lJ
|
|
|
914
912
|
fides/ui-build/static/admin/_next/static/css/972dc7eef106ee7c.css,sha256=5ClA0R-DXctWvHGU5ZRIe488JLjKyVpCxk5yOKr9hrc,342
|
|
915
913
|
fides/ui-build/static/admin/_next/static/css/d2d4e9a6923e6730.css,sha256=OdhQ-4KEwBzOslEnnl_MXdGuTan6ZAKKJ_YUuGFWUxY,221
|
|
916
914
|
fides/ui-build/static/admin/_next/static/css/ddd0b958fa57d1b9.css,sha256=rqUGRnYelkOgq0753EFAZuBVIOepoh9HXxXETra1O0M,20428
|
|
915
|
+
fides/ui-build/static/admin/_next/static/gfK90uth_1hk3Qh5aYeCe/_buildManifest.js,sha256=9gbLBJWySII8ySzIvftsgwHXeC4jKE44EyXx_b3HVCo,11762
|
|
916
|
+
fides/ui-build/static/admin/_next/static/gfK90uth_1hk3Qh5aYeCe/_ssgManifest.js,sha256=Z49s4suAsf5y_GfnQSvm4qtq2ggxEbZPfEDTXjy6XgA,80
|
|
917
917
|
fides/ui-build/static/admin/_next/static/media/inter-all-400-normal.2ae8ed37.woff,sha256=-CQCm8S8JXgvY4e9UwL-yfaPYT67i37QnBGzcP6PdKo,129252
|
|
918
918
|
fides/ui-build/static/admin/_next/static/media/inter-all-500-normal.56c3d87b.woff,sha256=lOCK2G05xJDgb6tdtbbGtg9w869HcqMzCM1u3luUlh8,138892
|
|
919
919
|
fides/ui-build/static/admin/_next/static/media/inter-all-600-normal.d9666969.woff,sha256=uinAVzvh4KrOFkgOiHIp-M6g_mTxcZZv9ilgyUz8HgE,140048
|
|
@@ -947,37 +947,37 @@ fides/ui-build/static/admin/_next/static/media/inter-vietnamese-500-normal.7b524
|
|
|
947
947
|
fides/ui-build/static/admin/_next/static/media/inter-vietnamese-600-normal.eb82de1d.woff2,sha256=ZKjcMjaLlHAKJJyTcujqJwFDooKWcq8qQSuKZVfXZRA,3876
|
|
948
948
|
fides/ui-build/static/admin/_next/static/media/inter-vietnamese-700-normal.00e401a9.woff2,sha256=92gZYPHyPg3OZ_u0f78u6ZZNdc53OvVkqhoTelycCqw,3888
|
|
949
949
|
fides/ui-build/static/admin/_next/static/media/logo-white.c9bf4196.svg,sha256=u12SVA-WPW0GAhJ1wXM4oi2aqKXKmteo6yEvGDgz5jM,2101
|
|
950
|
-
fides/ui-build/static/admin/add-systems/manual.html,sha256=
|
|
951
|
-
fides/ui-build/static/admin/add-systems/multiple.html,sha256=
|
|
952
|
-
fides/ui-build/static/admin/consent/configure.html,sha256=
|
|
953
|
-
fides/ui-build/static/admin/consent/privacy-experience.html,sha256=
|
|
954
|
-
fides/ui-build/static/admin/consent/privacy-notices.html,sha256=
|
|
955
|
-
fides/ui-build/static/admin/consent/properties.html,sha256=
|
|
956
|
-
fides/ui-build/static/admin/consent/reporting.html,sha256=
|
|
957
|
-
fides/ui-build/static/admin/consent/configure/add-vendors.html,sha256=
|
|
958
|
-
fides/ui-build/static/admin/consent/privacy-experience/[id].html,sha256=
|
|
959
|
-
fides/ui-build/static/admin/consent/privacy-experience/new.html,sha256=
|
|
960
|
-
fides/ui-build/static/admin/consent/privacy-notices/[id].html,sha256=
|
|
961
|
-
fides/ui-build/static/admin/consent/privacy-notices/new.html,sha256=
|
|
962
|
-
fides/ui-build/static/admin/data-catalog/[systemId]/projects.html,sha256=
|
|
963
|
-
fides/ui-build/static/admin/data-catalog/[systemId]/resources.html,sha256=
|
|
964
|
-
fides/ui-build/static/admin/data-catalog/[systemId]/projects/[projectUrn].html,sha256=
|
|
965
|
-
fides/ui-build/static/admin/data-catalog/[systemId]/projects/[projectUrn]/[resourceUrn].html,sha256=
|
|
966
|
-
fides/ui-build/static/admin/data-catalog/[systemId]/resources/[resourceUrn].html,sha256=
|
|
967
|
-
fides/ui-build/static/admin/data-discovery/action-center.html,sha256=
|
|
968
|
-
fides/ui-build/static/admin/data-discovery/activity.html,sha256=
|
|
969
|
-
fides/ui-build/static/admin/data-discovery/detection.html,sha256=
|
|
970
|
-
fides/ui-build/static/admin/data-discovery/discovery.html,sha256=
|
|
971
|
-
fides/ui-build/static/admin/data-discovery/action-center/[monitorId].html,sha256
|
|
972
|
-
fides/ui-build/static/admin/data-discovery/action-center/[monitorId]/[systemId].html,sha256=
|
|
973
|
-
fides/ui-build/static/admin/data-discovery/detection/[resourceUrn].html,sha256=
|
|
974
|
-
fides/ui-build/static/admin/data-discovery/discovery/[resourceUrn].html,sha256=
|
|
975
|
-
fides/ui-build/static/admin/dataset/[datasetId].html,sha256=
|
|
976
|
-
fides/ui-build/static/admin/dataset/new.html,sha256=
|
|
977
|
-
fides/ui-build/static/admin/dataset/[datasetId]/[collectionName].html,sha256=
|
|
978
|
-
fides/ui-build/static/admin/dataset/[datasetId]/[collectionName]/[...subfieldNames].html,sha256=
|
|
979
|
-
fides/ui-build/static/admin/datastore-connection/[id].html,sha256=
|
|
980
|
-
fides/ui-build/static/admin/datastore-connection/new.html,sha256=
|
|
950
|
+
fides/ui-build/static/admin/add-systems/manual.html,sha256=dsFNLn4QfKaRPS6lYNWD5RJcv7BiyJ01Xs-uVykrg1Q,2436
|
|
951
|
+
fides/ui-build/static/admin/add-systems/multiple.html,sha256=N_gnFfFISs9qYKtVWB2o4Mh4aGnaUMvBJs9a5r5ZNi0,1972
|
|
952
|
+
fides/ui-build/static/admin/consent/configure.html,sha256=vfG9NKjb4pb4k497bDQnXQvFCEdtiyDd2zjrZCbgXIE,1888
|
|
953
|
+
fides/ui-build/static/admin/consent/privacy-experience.html,sha256=1laergas3jlq4UWgGqNiS-FIBwhbCB6HGMLLvxQ4dsE,1906
|
|
954
|
+
fides/ui-build/static/admin/consent/privacy-notices.html,sha256=j68-9eJCUEGnNah1Faduvevii_b65QFmd12IKbhAh5I,1822
|
|
955
|
+
fides/ui-build/static/admin/consent/properties.html,sha256=JmYKHZhqvfjjg03iRBPP7BXDt5q6LW6u26deuKEkkN4,1812
|
|
956
|
+
fides/ui-build/static/admin/consent/reporting.html,sha256=7gfI6994HWST_KQVDdSdTIdvdywYz9r3xbivS3tlEg0,1494
|
|
957
|
+
fides/ui-build/static/admin/consent/configure/add-vendors.html,sha256=y7sQK468LOV6mw5W4hwzPXyDfUod24-czfnDcope4ac,1990
|
|
958
|
+
fides/ui-build/static/admin/consent/privacy-experience/[id].html,sha256=pA5RmPF71K0V_5TFIY5tj-yV6p9yqx5HWzP3SjQ-YSE,2072
|
|
959
|
+
fides/ui-build/static/admin/consent/privacy-experience/new.html,sha256=p4hcZmUHnNfpwmImEOWriCn4toL_jVMiMcgNrc9I8zI,2066
|
|
960
|
+
fides/ui-build/static/admin/consent/privacy-notices/[id].html,sha256=GLyDBSEMd3MxGfjixVtRYBcrNA_U5of-8KzEHlc64cA,2066
|
|
961
|
+
fides/ui-build/static/admin/consent/privacy-notices/new.html,sha256=c1GoOjSZSazauZrv9MoIMg-cNRZH0GenDYh9W970xEg,2060
|
|
962
|
+
fides/ui-build/static/admin/data-catalog/[systemId]/projects.html,sha256=8dofB3nlRCEd43ZMre5ZFjHZnKisl6cXAdGgOhpuV3Y,2316
|
|
963
|
+
fides/ui-build/static/admin/data-catalog/[systemId]/resources.html,sha256=TTMzcYP-WFFzpJt_3bmVPK4RZLAKsk8GWZ7HHlqcMq4,1846
|
|
964
|
+
fides/ui-build/static/admin/data-catalog/[systemId]/projects/[projectUrn].html,sha256=lNni1Lr8JHbRH2FupIPMv7-3kFbw6pxNT0jseg8g4ms,1874
|
|
965
|
+
fides/ui-build/static/admin/data-catalog/[systemId]/projects/[projectUrn]/[resourceUrn].html,sha256=PHPJiyUqDx1I__zqFUFbgB7PM14HLLYzkN_n39xUv3A,2456
|
|
966
|
+
fides/ui-build/static/admin/data-catalog/[systemId]/resources/[resourceUrn].html,sha256=OpUGuiny_fdUzKjNwOMEjO_qf0fjJ9vx4WfWiytbmBs,2428
|
|
967
|
+
fides/ui-build/static/admin/data-discovery/action-center.html,sha256=hhuNvvmdbnzPTJkPV-F2XCsfJgKmhl1AX12Dr3p8W6I,1754
|
|
968
|
+
fides/ui-build/static/admin/data-discovery/activity.html,sha256=nCzppOMS4GKvxMcs7LNDP95tq1RGarIikXwIu0idnKw,1900
|
|
969
|
+
fides/ui-build/static/admin/data-discovery/detection.html,sha256=HVi_Z1WMoY6wATmrvJUUlA2sjT5Gi-6rOHGZZuWlu_4,1980
|
|
970
|
+
fides/ui-build/static/admin/data-discovery/discovery.html,sha256=m6lLmYlRcJTQrpVqWaAIqs3mTD6of4FenlJ5YovVFwY,2374
|
|
971
|
+
fides/ui-build/static/admin/data-discovery/action-center/[monitorId].html,sha256=-ItGMM37yy4BwbgNQ0ZEJOy7nFrv7taiqODh1zGmMW8,2094
|
|
972
|
+
fides/ui-build/static/admin/data-discovery/action-center/[monitorId]/[systemId].html,sha256=SqWKsAsM18soOML-pyAvMkEGm99UKtp-NiK38kX2S6g,2280
|
|
973
|
+
fides/ui-build/static/admin/data-discovery/detection/[resourceUrn].html,sha256=uiCw3HaXmWuYK-jBtGDLa9ogMl2e0E8_CFf0QLSTBaY,2012
|
|
974
|
+
fides/ui-build/static/admin/data-discovery/discovery/[resourceUrn].html,sha256=ZAXUgJ1-hX5S941tA9BBXnXE1BT0249lAOsrmDDWXuo,2406
|
|
975
|
+
fides/ui-build/static/admin/dataset/[datasetId].html,sha256=tJw0Czg-0Jk3N4HHnX7A06muiuPzQ_WoO2W6N4Vq-yA,1896
|
|
976
|
+
fides/ui-build/static/admin/dataset/new.html,sha256=utLIHbbBVDng8NrNHQTjLR0hykdU4r6IzzsE-juzGX0,1560
|
|
977
|
+
fides/ui-build/static/admin/dataset/[datasetId]/[collectionName].html,sha256=19KyGQJGypzOc4MfaPB36JTW425VhBMtK6minhs6ILw,2328
|
|
978
|
+
fides/ui-build/static/admin/dataset/[datasetId]/[collectionName]/[...subfieldNames].html,sha256=gOe1bV0wjsz6A0yG6BBR2bsweYDgBGKGvwtUzf-_7ws,2370
|
|
979
|
+
fides/ui-build/static/admin/datastore-connection/[id].html,sha256=WROIsTHA7eelwfAZj5Jzn8XlYGSnCKgjNQ1x9yk1XCQ,1748
|
|
980
|
+
fides/ui-build/static/admin/datastore-connection/new.html,sha256=ukmzMd_oSG8AOPuTYm6mubhMacfxZK6KTxlw4J2aAGc,1820
|
|
981
981
|
fides/ui-build/static/admin/images/DatabaseIcon.svg,sha256=gwl8_3APg_6J4ZwWgovOjxgk5AEPyvq3-qGjkF7R4og,8198
|
|
982
982
|
fides/ui-build/static/admin/images/SelectedDatabaseIcon.svg,sha256=L6YBuL-LiKzBXyt9gHZhtqpo2QopXdC7-oEvEWbvSNE,8198
|
|
983
983
|
fides/ui-build/static/admin/images/config_splash.svg,sha256=IH56T1jrG1y4FIKQZXMaePYESYZGot_4jkTaFvmwHl0,176040
|
|
@@ -1005,37 +1005,37 @@ fides/ui-build/static/admin/images/oauth-login/custom.svg,sha256=SW1i3Mez8XVMVGR
|
|
|
1005
1005
|
fides/ui-build/static/admin/images/oauth-login/github.svg,sha256=eg3RHjc4MKUaVl3p_tSphXB8Z8zTkPmuSUahUjA-pnY,963
|
|
1006
1006
|
fides/ui-build/static/admin/images/oauth-login/google.svg,sha256=oRdvveXEbNFZ4_xD6u-DxqNIPJh12o3XU2tITX6ghQU,988
|
|
1007
1007
|
fides/ui-build/static/admin/images/oauth-login/okta.svg,sha256=ymR7Rqk7syL52284jlure_i06-nVKwZbJwB6JXfdNwo,8076
|
|
1008
|
-
fides/ui-build/static/admin/integrations/[id].html,sha256=
|
|
1008
|
+
fides/ui-build/static/admin/integrations/[id].html,sha256=0bzs4NXE9g2r2KYn3ThPJC0rxF1EFOE5CBJJON__xK0,2204
|
|
1009
1009
|
fides/ui-build/static/admin/lib/fides-ext-gpp.js,sha256=vvuFXH3BjaSDNvRjXpJ7HMcqK0dEOmO3s3EAPD8DQLc,143019
|
|
1010
1010
|
fides/ui-build/static/admin/lib/fides-headless.js,sha256=dgEIaKvXUBlUKb7Up8lUdcwTk6GM8scwAabUJOIYvMA,66789
|
|
1011
1011
|
fides/ui-build/static/admin/lib/fides-tcf.js,sha256=9pGLFZXh0KVDPURQne2UoHbp_BF12UmOVVfQNLbVhek,354347
|
|
1012
1012
|
fides/ui-build/static/admin/lib/fides.js,sha256=uvcf-kAk_CwtDvNxjs_0O6K3Fc-FXQ4YnxgTO2IYONo,141938
|
|
1013
|
-
fides/ui-build/static/admin/login/[provider].html,sha256=
|
|
1014
|
-
fides/ui-build/static/admin/messaging/[id].html,sha256=
|
|
1015
|
-
fides/ui-build/static/admin/messaging/add-template.html,sha256=
|
|
1016
|
-
fides/ui-build/static/admin/privacy-requests/[id].html,sha256=
|
|
1017
|
-
fides/ui-build/static/admin/privacy-requests/configure.html,sha256=
|
|
1018
|
-
fides/ui-build/static/admin/privacy-requests/configure/messaging.html,sha256=
|
|
1019
|
-
fides/ui-build/static/admin/privacy-requests/configure/storage.html,sha256=
|
|
1020
|
-
fides/ui-build/static/admin/properties/[id].html,sha256=
|
|
1021
|
-
fides/ui-build/static/admin/properties/add-property.html,sha256=
|
|
1022
|
-
fides/ui-build/static/admin/reporting/datamap.html,sha256=
|
|
1023
|
-
fides/ui-build/static/admin/settings/about.html,sha256=
|
|
1024
|
-
fides/ui-build/static/admin/settings/consent.html,sha256=
|
|
1025
|
-
fides/ui-build/static/admin/settings/custom-fields.html,sha256=
|
|
1026
|
-
fides/ui-build/static/admin/settings/domain-records.html,sha256=
|
|
1027
|
-
fides/ui-build/static/admin/settings/domains.html,sha256=
|
|
1028
|
-
fides/ui-build/static/admin/settings/email-templates.html,sha256=
|
|
1029
|
-
fides/ui-build/static/admin/settings/locations.html,sha256=
|
|
1030
|
-
fides/ui-build/static/admin/settings/organization.html,sha256=
|
|
1031
|
-
fides/ui-build/static/admin/settings/regulations.html,sha256=
|
|
1032
|
-
fides/ui-build/static/admin/systems/configure/[id].html,sha256=
|
|
1033
|
-
fides/ui-build/static/admin/systems/configure/[id]/test-datasets.html,sha256=
|
|
1034
|
-
fides/ui-build/static/admin/user-management/new.html,sha256=
|
|
1035
|
-
fides/ui-build/static/admin/user-management/profile/[id].html,sha256=
|
|
1036
|
-
ethyca_fides-2.56.
|
|
1037
|
-
ethyca_fides-2.56.
|
|
1038
|
-
ethyca_fides-2.56.
|
|
1039
|
-
ethyca_fides-2.56.
|
|
1040
|
-
ethyca_fides-2.56.
|
|
1041
|
-
ethyca_fides-2.56.
|
|
1013
|
+
fides/ui-build/static/admin/login/[provider].html,sha256=MV56R6sB3ZCYIWgCSjnRH24NLDIxj57I7mZ92EItJxo,1496
|
|
1014
|
+
fides/ui-build/static/admin/messaging/[id].html,sha256=vUi88IZ_ehtjikOliKxCMhfoxosGc9mcXvnxPt6j8EE,1648
|
|
1015
|
+
fides/ui-build/static/admin/messaging/add-template.html,sha256=NCeP_KGNB5UrjzcwAupTBAkOwtWhOTIcCwa367vTPws,1660
|
|
1016
|
+
fides/ui-build/static/admin/privacy-requests/[id].html,sha256=jJ7zaifnAX2mNmzj6JTYt3gV65FlOIUMP88zy8tlAI8,1584
|
|
1017
|
+
fides/ui-build/static/admin/privacy-requests/configure.html,sha256=ubEvb_nezPwgjW23V2J3JMIrgANuKxomN7QGOPBxCoA,1512
|
|
1018
|
+
fides/ui-build/static/admin/privacy-requests/configure/messaging.html,sha256=7bKmlwXC3IqrBX2lAlC4AszkazfUGvDOWCwMw1tBf_Y,1532
|
|
1019
|
+
fides/ui-build/static/admin/privacy-requests/configure/storage.html,sha256=mVY_Bga9u-yi_I5u59FwkWLuUUNv1lFVlMKo3QEALLg,1528
|
|
1020
|
+
fides/ui-build/static/admin/properties/[id].html,sha256=NNOe6Q1PyX8GeSguStzd4bm7uOZj7z0GrvYo7k2AI7Y,1650
|
|
1021
|
+
fides/ui-build/static/admin/properties/add-property.html,sha256=C64DmKMnjjoRlJdWgvxGA16rCxa1SCw3qSlCDl_hpzk,1662
|
|
1022
|
+
fides/ui-build/static/admin/reporting/datamap.html,sha256=z5G6dWqd2XMwN44HO6N3H8RLlFGz6OJQT3hgNf7H418,2278
|
|
1023
|
+
fides/ui-build/static/admin/settings/about.html,sha256=cwcPJBXBfogxcOxGSWX9PT7M7E-21GLJNrL4b7HjYac,1488
|
|
1024
|
+
fides/ui-build/static/admin/settings/consent.html,sha256=3RozS_DHMNSpq6T8-wkphpOFtvA8oZGtvxcabB2-ss0,1492
|
|
1025
|
+
fides/ui-build/static/admin/settings/custom-fields.html,sha256=pyMEe620Caz6C9d6FpXwMLM17VXsaOILEajsDNLCLEs,1820
|
|
1026
|
+
fides/ui-build/static/admin/settings/domain-records.html,sha256=sM2BLWFnEfqDj6h5ApSNxFPKa_Uh0fRZ2xmsJLcLTgE,1744
|
|
1027
|
+
fides/ui-build/static/admin/settings/domains.html,sha256=X8G118MecM_eGYjw0LhaB1Ja2BPaJv3HGeVw5cl8mr0,1492
|
|
1028
|
+
fides/ui-build/static/admin/settings/email-templates.html,sha256=fJxiW-3ixPGY8GNHbRXzqJYbuea1IMNdkVv3_w36AGA,1508
|
|
1029
|
+
fides/ui-build/static/admin/settings/locations.html,sha256=kslokfdMSY7lvZDNdgUcA0HyUnDLKGesw95yGwkr1v0,1656
|
|
1030
|
+
fides/ui-build/static/admin/settings/organization.html,sha256=a4rSWAV6hbZnyzSe6fSVGUX06_esDP_1rLSjOE4TTkw,1502
|
|
1031
|
+
fides/ui-build/static/admin/settings/regulations.html,sha256=jFuifxq50cmDuly4C1X_lXazsc90q7veS_xnQZinhhs,1660
|
|
1032
|
+
fides/ui-build/static/admin/systems/configure/[id].html,sha256=mxhQnjoXp6jVMrobke421fUdKHefyvmzgH2R2IsdBS4,2448
|
|
1033
|
+
fides/ui-build/static/admin/systems/configure/[id]/test-datasets.html,sha256=cWCEHPxu1svJWbOsDiuSMq1_P-VINsZsKPX1VFIc0y4,1614
|
|
1034
|
+
fides/ui-build/static/admin/user-management/new.html,sha256=oDxdgZMW0yQ5eQJOIH1aMLSDze1XD1pgkQKOhlDk0k4,1652
|
|
1035
|
+
fides/ui-build/static/admin/user-management/profile/[id].html,sha256=SOpc_3CfUKVA2Wt8Dx84qpMf0ZhLzOMIVs9l4arC_3g,1674
|
|
1036
|
+
ethyca_fides-2.56.1b3.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
|
1037
|
+
ethyca_fides-2.56.1b3.dist-info/METADATA,sha256=qPF_KNpkVW1SrhMXzrW46MD8pnufgx7UCI1JzxwOiEM,11425
|
|
1038
|
+
ethyca_fides-2.56.1b3.dist-info/WHEEL,sha256=Kh9pAotZVRFj97E15yTA4iADqXdQfIVTHcNaZTjxeGM,110
|
|
1039
|
+
ethyca_fides-2.56.1b3.dist-info/entry_points.txt,sha256=5WeLH-MlYWywYIbMGVrZkPpjTkdHDDf1p-LXFiF9ATo,41
|
|
1040
|
+
ethyca_fides-2.56.1b3.dist-info/top_level.txt,sha256=vHQkcSYYOh4ECEGL1JSGUAxFWpwO05QGPV0M2aPxqNQ,6
|
|
1041
|
+
ethyca_fides-2.56.1b3.dist-info/RECORD,,
|
fides/_version.py
CHANGED
|
@@ -8,11 +8,11 @@ import json
|
|
|
8
8
|
|
|
9
9
|
version_json = '''
|
|
10
10
|
{
|
|
11
|
-
"date": "2025-02-
|
|
11
|
+
"date": "2025-02-28T18:15:41-0800",
|
|
12
12
|
"dirty": false,
|
|
13
13
|
"error": null,
|
|
14
|
-
"full-revisionid": "
|
|
15
|
-
"version": "2.56.
|
|
14
|
+
"full-revisionid": "c51cd945858ae1bbcc1f72c26ab4422f3f019907",
|
|
15
|
+
"version": "2.56.1b3"
|
|
16
16
|
}
|
|
17
17
|
''' # END VERSION_JSON
|
|
18
18
|
|
fides/api/db/samples.py
CHANGED
|
@@ -12,6 +12,7 @@ import yaml
|
|
|
12
12
|
from expandvars import expandvars # type: ignore
|
|
13
13
|
from fideslang.models import Taxonomy
|
|
14
14
|
from fideslang.validation import FidesKey
|
|
15
|
+
from loguru import logger as log
|
|
15
16
|
|
|
16
17
|
from fides.api.schemas.connection_configuration.connection_config import (
|
|
17
18
|
CreateConnectionConfigurationWithSecrets,
|
|
@@ -96,6 +97,7 @@ def load_sample_connections_from_project() -> List[SampleConnection]:
|
|
|
96
97
|
"sample_connections/"
|
|
97
98
|
)
|
|
98
99
|
sample_connections = []
|
|
100
|
+
log.debug(f"Collecting sample connections from '{sample_connections_path}'/*...")
|
|
99
101
|
for yaml_path in sample_connections_path.iterdir():
|
|
100
102
|
with yaml_path.open("r") as file:
|
|
101
103
|
# Expand ENV vars when reading the YAML, to handle secrets
|
|
@@ -106,17 +108,41 @@ def load_sample_connections_from_project() -> List[SampleConnection]:
|
|
|
106
108
|
)
|
|
107
109
|
|
|
108
110
|
# Exclude any connections whose "secrets" dict has empty values
|
|
111
|
+
log.debug(
|
|
112
|
+
f"Found {len(sample_connections)} sample connections. Skipping any sample connections without configured secrets..."
|
|
113
|
+
)
|
|
109
114
|
valid_connections = []
|
|
110
115
|
for connection in sample_connections:
|
|
111
|
-
# If there are no secrets at all, skip this connection
|
|
116
|
+
# If there are no secrets at all, skip this connection. This shouldn't happen unless sample_connections.yml is misconfigured
|
|
112
117
|
if not connection.secrets:
|
|
118
|
+
log.debug(
|
|
119
|
+
f"Skipping sample connection {connection.key}! No secrets exist, cannot create"
|
|
120
|
+
)
|
|
121
|
+
continue
|
|
122
|
+
|
|
123
|
+
# Check if all secret values exist and are non-empty
|
|
124
|
+
expected_keys = connection.secrets.keys() # type: ignore
|
|
125
|
+
missing_keys = [
|
|
126
|
+
key
|
|
127
|
+
for key, value in connection.secrets.items() # type: ignore
|
|
128
|
+
if value is None or value == ""
|
|
129
|
+
]
|
|
130
|
+
if len(missing_keys) > 0:
|
|
131
|
+
log.debug(
|
|
132
|
+
f"Skipping sample connection {connection.key}. To include this sample, configure ENV secrets for these missing keys: {missing_keys} (see {sample_connections_path}/* for expected ENV vars)"
|
|
133
|
+
)
|
|
113
134
|
continue
|
|
114
135
|
|
|
115
|
-
#
|
|
116
|
-
|
|
117
|
-
|
|
136
|
+
# If all secrets are configured, include this connection
|
|
137
|
+
log.debug(
|
|
138
|
+
f"Including sample connection {connection.key} because all {len(expected_keys)} required secrets are configured"
|
|
139
|
+
)
|
|
140
|
+
valid_connections.append(connection)
|
|
118
141
|
|
|
119
142
|
# Exclude any invalid connections from the final results
|
|
143
|
+
log.info(
|
|
144
|
+
f"Collected {len(valid_connections)} sample connections with configured ENV secrets: {[connection.key for connection in valid_connections]}"
|
|
145
|
+
)
|
|
120
146
|
return valid_connections
|
|
121
147
|
|
|
122
148
|
|
|
@@ -8,7 +8,6 @@ from typing import Any, Dict, List, Optional, Set
|
|
|
8
8
|
from httpx import AsyncClient
|
|
9
9
|
from loguru import logger
|
|
10
10
|
from sqlalchemy import text
|
|
11
|
-
from sqlalchemy.orm import Query
|
|
12
11
|
from sqlalchemy.sql.elements import TextClause
|
|
13
12
|
|
|
14
13
|
from fides.api.common_exceptions import PrivacyRequestNotFound
|
|
@@ -16,6 +15,7 @@ from fides.api.models.policy import Policy
|
|
|
16
15
|
from fides.api.models.privacy_request import (
|
|
17
16
|
EXITED_EXECUTION_LOG_STATUSES,
|
|
18
17
|
PrivacyRequest,
|
|
18
|
+
RequestTask,
|
|
19
19
|
)
|
|
20
20
|
from fides.api.schemas.drp_privacy_request import DrpPrivacyRequestCreate
|
|
21
21
|
from fides.api.schemas.masking.masking_secrets import MaskingSecretCache
|
|
@@ -27,9 +27,14 @@ from fides.api.schemas.privacy_request import (
|
|
|
27
27
|
)
|
|
28
28
|
from fides.api.schemas.redis_cache import Identity
|
|
29
29
|
from fides.api.service.masking.strategy.masking_strategy import MaskingStrategy
|
|
30
|
-
from fides.api.tasks import DatabaseTask, celery_app
|
|
30
|
+
from fides.api.tasks import DSR_QUEUE_NAME, DatabaseTask, celery_app
|
|
31
31
|
from fides.api.tasks.scheduled.scheduler import scheduler
|
|
32
|
-
from fides.api.util.cache import
|
|
32
|
+
from fides.api.util.cache import (
|
|
33
|
+
FidesopsRedis,
|
|
34
|
+
celery_tasks_in_flight,
|
|
35
|
+
get_async_task_tracking_cache_key,
|
|
36
|
+
get_cache,
|
|
37
|
+
)
|
|
33
38
|
from fides.common.api.v1.urn_registry import PRIVACY_REQUESTS, V1_URL_PREFIX
|
|
34
39
|
from fides.config import CONFIG
|
|
35
40
|
|
|
@@ -210,34 +215,51 @@ def poll_for_exited_privacy_request_tasks(self: DatabaseTask) -> Set[str]:
|
|
|
210
215
|
.order_by(PrivacyRequest.created_at)
|
|
211
216
|
)
|
|
212
217
|
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
218
|
+
# TODO: With this approach, we're making 3*n queries , where n is the number of in-progress privacy requests.
|
|
219
|
+
# We could optimize this to just get all the RequestTasks for all in-progress privacy requests in one single
|
|
220
|
+
# query and then process them in-memory. This could be more efficient.
|
|
221
|
+
def privacy_request_has_errored_tasks(
|
|
222
|
+
privacy_request: PrivacyRequest, task_type: ActionType
|
|
223
|
+
) -> bool:
|
|
224
|
+
"""Check if a privacy request has exited all its tasks of the given type,
|
|
225
|
+
and at least one of the tasks has errored.
|
|
226
|
+
We specifically only query for the RequestTask.status column to avoid
|
|
227
|
+
querying for the entire RequestTask row.
|
|
228
|
+
"""
|
|
229
|
+
tasks_statuses_query = db.query(RequestTask.status).filter(
|
|
230
|
+
RequestTask.privacy_request_id == privacy_request.id,
|
|
231
|
+
RequestTask.action_type == task_type,
|
|
232
|
+
)
|
|
233
|
+
|
|
234
|
+
statuses = set(status for status, in tasks_statuses_query.all())
|
|
216
235
|
all_exited = all(
|
|
217
236
|
status in EXITED_EXECUTION_LOG_STATUSES for status in statuses
|
|
218
237
|
)
|
|
219
|
-
|
|
238
|
+
if all_exited and ExecutionLogStatus.error in statuses:
|
|
239
|
+
logger.info(
|
|
240
|
+
f"Marking {task_type.value} step of {privacy_request.id} as error"
|
|
241
|
+
)
|
|
242
|
+
return True
|
|
243
|
+
|
|
244
|
+
return False
|
|
220
245
|
|
|
221
246
|
marked_as_errored: Set[str] = set()
|
|
222
247
|
for pr in in_progress_privacy_requests.all():
|
|
223
248
|
if pr.consent_tasks.count():
|
|
224
249
|
# Consent propagation tasks - these are not created until access and erasure steps are complete.
|
|
225
|
-
if
|
|
226
|
-
logger.info(f"Marking consent step of {pr.id} as error")
|
|
250
|
+
if privacy_request_has_errored_tasks(pr, ActionType.consent):
|
|
227
251
|
pr.error_processing(db)
|
|
228
252
|
marked_as_errored.add(pr.id)
|
|
229
253
|
|
|
230
254
|
if pr.erasure_tasks.count():
|
|
231
255
|
# Erasure tasks are created at the same time as access tasks but if any are errored, this means
|
|
232
256
|
# we made it to the erasure section
|
|
233
|
-
if
|
|
234
|
-
logger.info(f"Marking erasure step of {pr.id} as error")
|
|
257
|
+
if privacy_request_has_errored_tasks(pr, ActionType.erasure):
|
|
235
258
|
pr.error_processing(db)
|
|
236
259
|
marked_as_errored.add(pr.id)
|
|
237
260
|
|
|
238
261
|
if pr.access_tasks.count():
|
|
239
|
-
if
|
|
240
|
-
logger.info(f"Marking access step of {pr.id} as error")
|
|
262
|
+
if privacy_request_has_errored_tasks(pr, ActionType.access):
|
|
241
263
|
pr.error_processing(db)
|
|
242
264
|
marked_as_errored.add(pr.id)
|
|
243
265
|
|
|
@@ -347,6 +369,50 @@ def initiate_interrupted_task_requeue_poll() -> None:
|
|
|
347
369
|
)
|
|
348
370
|
|
|
349
371
|
|
|
372
|
+
def get_cached_task_id(entity_id: str) -> Optional[str]:
|
|
373
|
+
"""Gets the cached task ID for a privacy request or request task by ID."""
|
|
374
|
+
cache: FidesopsRedis = get_cache()
|
|
375
|
+
task_id = cache.get(get_async_task_tracking_cache_key(entity_id))
|
|
376
|
+
return task_id
|
|
377
|
+
|
|
378
|
+
|
|
379
|
+
REQUEUE_INTERRUPTED_TASKS_LOCK = "requeue_interrupted_tasks_lock"
|
|
380
|
+
|
|
381
|
+
|
|
382
|
+
def _get_task_ids_from_dsr_queue(
|
|
383
|
+
redis_client: FidesopsRedis, chunk_size: int = 100
|
|
384
|
+
) -> Set[str]:
|
|
385
|
+
"""
|
|
386
|
+
Get all task IDs from a Redis queue in a memory-efficient way.
|
|
387
|
+
|
|
388
|
+
Args:
|
|
389
|
+
redis_client: Redis client
|
|
390
|
+
chunk_size: Size of chunks to process
|
|
391
|
+
|
|
392
|
+
Returns:
|
|
393
|
+
Set of task IDs
|
|
394
|
+
"""
|
|
395
|
+
queued_tasks_ids = set()
|
|
396
|
+
queue_length = redis_client.llen(DSR_QUEUE_NAME)
|
|
397
|
+
|
|
398
|
+
# Process the queue in chunks to avoid memory issues with large queues
|
|
399
|
+
for offset in range(0, queue_length, chunk_size):
|
|
400
|
+
# Get a chunk of tasks (at most chunk_size elements)
|
|
401
|
+
tasks_chunk = redis_client.lrange(
|
|
402
|
+
DSR_QUEUE_NAME, offset, offset + chunk_size - 1
|
|
403
|
+
)
|
|
404
|
+
|
|
405
|
+
# Extract task IDs from the chunk
|
|
406
|
+
for task in tasks_chunk:
|
|
407
|
+
try:
|
|
408
|
+
queued_tasks_ids.add(json.loads(task)["headers"]["id"])
|
|
409
|
+
except (json.JSONDecodeError, KeyError) as e:
|
|
410
|
+
logger.warning(f"Failed to parse task from queue: {e}")
|
|
411
|
+
continue
|
|
412
|
+
|
|
413
|
+
return queued_tasks_ids
|
|
414
|
+
|
|
415
|
+
|
|
350
416
|
# pylint: disable=too-many-branches
|
|
351
417
|
@celery_app.task(base=DatabaseTask, bind=True)
|
|
352
418
|
def requeue_interrupted_tasks(self: DatabaseTask) -> None:
|
|
@@ -364,12 +430,11 @@ def requeue_interrupted_tasks(self: DatabaseTask) -> None:
|
|
|
364
430
|
3. Checks each privacy request to determine if its tasks are still active.
|
|
365
431
|
4. Requeues the privacy request if any of its tasks are found to be interrupted.
|
|
366
432
|
"""
|
|
367
|
-
|
|
368
433
|
redis_conn: FidesopsRedis = get_cache()
|
|
369
434
|
|
|
370
435
|
# Create a lock with a timeout of 10 minutes (600 seconds)
|
|
371
436
|
# This ensures the lock is eventually released even if the process crashes
|
|
372
|
-
lock = redis_conn.lock(
|
|
437
|
+
lock = redis_conn.lock(REQUEUE_INTERRUPTED_TASKS_LOCK, timeout=600)
|
|
373
438
|
|
|
374
439
|
# Try to acquire the lock without blocking
|
|
375
440
|
if not lock.acquire(blocking=False):
|
|
@@ -406,30 +471,14 @@ def requeue_interrupted_tasks(self: DatabaseTask) -> None:
|
|
|
406
471
|
)
|
|
407
472
|
|
|
408
473
|
# Get task IDs from the queue in a memory-efficient way
|
|
409
|
-
queued_tasks_ids =
|
|
410
|
-
chunk_size = 100
|
|
411
|
-
queue_length = redis_conn.llen("fides.dsr")
|
|
412
|
-
|
|
413
|
-
# Process the queue in chunks to avoid memory issues with large queues
|
|
414
|
-
for offset in range(0, queue_length, chunk_size):
|
|
415
|
-
# Get a chunk of tasks (at most chunk_size elements)
|
|
416
|
-
tasks_chunk = redis_conn.lrange(
|
|
417
|
-
"fides.dsr", offset, offset + chunk_size - 1
|
|
418
|
-
)
|
|
419
|
-
|
|
420
|
-
# Extract task IDs from the chunk
|
|
421
|
-
for task in tasks_chunk:
|
|
422
|
-
try:
|
|
423
|
-
queued_tasks_ids.add(json.loads(task)["headers"]["id"])
|
|
424
|
-
except (json.JSONDecodeError, KeyError) as e:
|
|
425
|
-
logger.warning(f"Failed to parse task from queue: {e}")
|
|
426
|
-
continue
|
|
474
|
+
queued_tasks_ids = _get_task_ids_from_dsr_queue(redis_conn)
|
|
427
475
|
|
|
428
476
|
# Check each privacy request
|
|
429
477
|
for privacy_request in in_progress_requests:
|
|
430
478
|
should_requeue = False
|
|
431
479
|
logger.debug(f"Checking tasks for privacy request {privacy_request.id}")
|
|
432
|
-
|
|
480
|
+
|
|
481
|
+
task_id = get_cached_task_id(privacy_request.id)
|
|
433
482
|
|
|
434
483
|
# If the task ID is not cached, we can't check if it's running
|
|
435
484
|
if not task_id:
|
|
@@ -439,33 +488,51 @@ def requeue_interrupted_tasks(self: DatabaseTask) -> None:
|
|
|
439
488
|
if task_id not in queued_tasks_ids and not celery_tasks_in_flight(
|
|
440
489
|
[task_id]
|
|
441
490
|
):
|
|
442
|
-
|
|
491
|
+
request_tasks_count = (
|
|
492
|
+
db.query(RequestTask)
|
|
493
|
+
.filter(RequestTask.privacy_request_id == privacy_request.id)
|
|
494
|
+
.count()
|
|
495
|
+
)
|
|
496
|
+
if request_tasks_count == 0:
|
|
443
497
|
logger.warning(
|
|
444
498
|
f"The task for privacy request {privacy_request.id} was terminated before it could schedule any request tasks, requeueing privacy request"
|
|
445
499
|
)
|
|
446
500
|
should_requeue = True
|
|
447
501
|
|
|
502
|
+
request_tasks_in_progress = (
|
|
503
|
+
db.query(RequestTask.id)
|
|
504
|
+
.filter(RequestTask.privacy_request_id == privacy_request.id)
|
|
505
|
+
.filter(
|
|
506
|
+
RequestTask.status.in_(
|
|
507
|
+
[
|
|
508
|
+
ExecutionLogStatus.in_processing,
|
|
509
|
+
ExecutionLogStatus.pending,
|
|
510
|
+
]
|
|
511
|
+
)
|
|
512
|
+
)
|
|
513
|
+
.all()
|
|
514
|
+
)
|
|
515
|
+
request_task_ids_in_progress = [
|
|
516
|
+
task[0] for task in request_tasks_in_progress
|
|
517
|
+
]
|
|
518
|
+
|
|
448
519
|
# Check each individual request task
|
|
449
|
-
for
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
f"Request task {request_task.id} is not in the queue or running, requeueing privacy request"
|
|
466
|
-
)
|
|
467
|
-
should_requeue = True
|
|
468
|
-
break
|
|
520
|
+
for request_task_id in request_task_ids_in_progress:
|
|
521
|
+
subtask_id = get_cached_task_id(request_task_id)
|
|
522
|
+
|
|
523
|
+
# If the task ID is not cached, we can't check if it's running
|
|
524
|
+
if not subtask_id:
|
|
525
|
+
continue
|
|
526
|
+
|
|
527
|
+
if (
|
|
528
|
+
subtask_id not in queued_tasks_ids
|
|
529
|
+
and not celery_tasks_in_flight([subtask_id])
|
|
530
|
+
):
|
|
531
|
+
logger.warning(
|
|
532
|
+
f"Request task {request_task_id} is not in the queue or running, requeueing privacy request"
|
|
533
|
+
)
|
|
534
|
+
should_requeue = True
|
|
535
|
+
break
|
|
469
536
|
|
|
470
537
|
# Requeue the privacy request if needed
|
|
471
538
|
if should_requeue:
|
|
@@ -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/ddd0b958fa57d1b9.css" as="style"/><link rel="stylesheet" href="/_next/static/css/ddd0b958fa57d1b9.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/_next/static/chunks/webpack-f8d056f5e13fe08a.js" defer=""></script><script src="/_next/static/chunks/framework-c92fc3344e6fd165.js" defer=""></script><script src="/_next/static/chunks/main-6880a3888740c515.js" defer=""></script><script src="/_next/static/chunks/pages/_app-
|
|
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/ddd0b958fa57d1b9.css" as="style"/><link rel="stylesheet" href="/_next/static/css/ddd0b958fa57d1b9.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/_next/static/chunks/webpack-f8d056f5e13fe08a.js" defer=""></script><script src="/_next/static/chunks/framework-c92fc3344e6fd165.js" defer=""></script><script src="/_next/static/chunks/main-6880a3888740c515.js" defer=""></script><script src="/_next/static/chunks/pages/_app-ec8f262156df2273.js" defer=""></script><script src="/_next/static/chunks/pages/404-cf2b98b932c99b1e.js" defer=""></script><script src="/_next/static/gfK90uth_1hk3Qh5aYeCe/_buildManifest.js" defer=""></script><script src="/_next/static/gfK90uth_1hk3Qh5aYeCe/_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":"gfK90uth_1hk3Qh5aYeCe","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
|