ethyca-fides 2.68.1b4__py2.py3-none-any.whl → 2.69.0rc1__py2.py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of ethyca-fides might be problematic. Click here for more details.
- {ethyca_fides-2.68.1b4.dist-info → ethyca_fides-2.69.0rc1.dist-info}/METADATA +1 -1
- {ethyca_fides-2.68.1b4.dist-info → ethyca_fides-2.69.0rc1.dist-info}/RECORD +209 -209
- fides/_version.py +3 -3
- fides/api/api/v1/endpoints/oauth_endpoints.py +3 -0
- fides/api/api/v1/endpoints/privacy_request_endpoints.py +2 -1
- fides/api/api/v1/endpoints/user_endpoints.py +28 -1
- fides/api/models/client.py +9 -5
- fides/api/models/fides_user.py +1 -2
- fides/api/oauth/utils.py +21 -2
- fides/api/schemas/enums/integration_feature.py +3 -0
- fides/api/service/privacy_request/request_runner_service.py +3 -0
- fides/config/security_settings.py +7 -3
- fides/ui-build/static/admin/404.html +1 -1
- fides/ui-build/static/admin/_next/static/chunks/{3729-ccf90cdaae158f39.js → 3729-79255d8b0d22922d.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/4121-b04a7859ee8f0b59.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/{_app-284cba7174fa1f16.js → _app-36bec04369a1a7c4.js} +3 -3
- fides/ui-build/static/admin/_next/static/chunks/pages/integrations/[id]-3db44d6839e8dbd9.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/{[id]-b9d6886a3f157120.js → [id]-71b89f125d817d47.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/{organization-c65acd2b7ab04753.js → organization-a01838a53677d69e.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/{webpack-4502d4d67006b48f.js → webpack-aa7ff73977a15cb3.js} +1 -1
- fides/ui-build/static/admin/_next/static/css/{dbcf63488933a4d5.css → 98fab0b3e6aa43ed.css} +1 -1
- fides/ui-build/static/admin/_next/static/css/abf2e162b1cd0e61.css +1 -0
- fides/ui-build/static/admin/_next/static/zEliM9juvmcu4yond1mtG/_buildManifest.js +1 -0
- 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/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/lib/fides-ext-gpp.js +1 -1
- fides/ui-build/static/admin/lib/fides-headless.js +1 -1
- fides/ui-build/static/admin/lib/fides-preview.js +1 -1
- fides/ui-build/static/admin/lib/fides-tcf.js +2 -2
- fides/ui-build/static/admin/lib/fides.js +2 -2
- 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/poc/ant-components.html +1 -1
- fides/ui-build/static/admin/poc/form-experiments/AntForm.html +1 -1
- fides/ui-build/static/admin/poc/form-experiments/FormikAntFormItem.html +1 -1
- fides/ui-build/static/admin/poc/form-experiments/FormikControlled.html +1 -1
- fides/ui-build/static/admin/poc/form-experiments/FormikField.html +1 -1
- fides/ui-build/static/admin/poc/form-experiments/FormikSpreadField.html +1 -1
- fides/ui-build/static/admin/poc/forms.html +1 -1
- fides/ui-build/static/admin/poc/table-migration.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/alpha.html +1 -1
- fides/ui-build/static/admin/settings/about.html +1 -1
- fides/ui-build/static/admin/settings/consent/[configuration_id]/[purpose_id].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
- fides/ui-build/static/admin/_next/static/LRCvfOqg1kP5kGnkD84G4/_buildManifest.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/4121-9a4ebceff9accb7f.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/integrations/[id]-4b0bb4ccfb237d41.js +0 -1
- fides/ui-build/static/admin/_next/static/css/43d0c0fc207767eb.css +0 -1
- {ethyca_fides-2.68.1b4.dist-info → ethyca_fides-2.69.0rc1.dist-info}/WHEEL +0 -0
- {ethyca_fides-2.68.1b4.dist-info → ethyca_fides-2.69.0rc1.dist-info}/entry_points.txt +0 -0
- {ethyca_fides-2.68.1b4.dist-info → ethyca_fides-2.69.0rc1.dist-info}/licenses/LICENSE +0 -0
- {ethyca_fides-2.68.1b4.dist-info → ethyca_fides-2.69.0rc1.dist-info}/top_level.txt +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{1099-b973dfdfc5c3de90.js → 1099-db533dd22b80bca6.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{1345-b60d1f3442379c73.js → 1345-6986414ab6ad3389.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{1817-74692de5d760a664.js → 1817-fcb2fd28034d5070.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{2921-2d9261e8e2e127c0.js → 2921-8a63ec72fa8e1bc0.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{3620-ebd89f91b82661e8.js → 3620-1fba74849114e70f.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{3847-2759bf1f47a1d29e.js → 3847-a868f83c065f54fb.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{3855-4174a4d4c205d6e8.js → 3855-3154d56888ac46ed.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{3872-660aba76572c811b.js → 3872-25eec062abd0f847.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{3923-c6cdc2e5278ae9a7.js → 3923-3be9b867f33e524c.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{401-8bc2c6c84172c096.js → 401-029e2ff644cae40c.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{4608-4d31340b0d0157c1.js → 4608-99e453c666a7b89a.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{4786-aaef673b30c19e2e.js → 4786-289c505d7d835feb.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{4808-a654c7f7a1ca62c8.js → 4808-5b799757d4564807.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{4844-cd7e1d0c7bb94094.js → 4844-a1784e2823ccd0ee.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{5258-bc4a25d43e4aa07d.js → 5258-45ec38e6c3780f24.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{5487-37c78c4799ba5223.js → 5487-aad0e8a240a1979b.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{549-2213dc1c34143cda.js → 549-81279a1a816487a7.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{6084-55cc66e7c94f0686.js → 6084-3379ca3c1fc77aa9.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{6853-313ce974d33432fb.js → 6853-04b15a7b02b1fc19.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{6954-021bd06d0ab59c3c.js → 6954-0f5d6c1757013eb7.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{7476-2fc286c2a9125eb8.js → 7476-2227e21f574bee70.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{7630-b9a41262a69edf5e.js → 7630-267de03b93bbae8d.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{768-034e121688a3bbdd.js → 768-24269f30db223720.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{787-8df7118742e84908.js → 787-0aa4d9802c976f92.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{79-d2ace89108ead8ae.js → 79-0102f2711b8455cd.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{796-2de6dac5f311d54a.js → 796-53f0ea567d1da2b9.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{8002-cfdc6574bd841892.js → 8002-98ecd56535cdefa3.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{9046-c44e41da49338c6c.js → 9046-a349c22448593f94.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{9826-d9addbd5ac990fa4.js → 9826-f4755a75d00c1c8c.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/{9951-6ee5c0a23951a07f.js → 9951-07989276d153c848.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/{404-9644eb282f2dcd71.js → 404-fde1f56225d1ef4f.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/add-systems/{manual-42b7fd34712f49bd.js → manual-aff671eda846719f.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/add-systems/{multiple-4f164eab0960bbe0.js → multiple-04894ddffc2a66fc.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/{add-systems-985d3c9179e69d7f.js → add-systems-e98c4154535bf37d.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/consent/configure/{add-vendors-61090926e5f98a5d.js → add-vendors-b2f80cdb75183bfa.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/consent/{configure-17ffe691b91cee2e.js → configure-207cabf1b5c453fc.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/consent/privacy-experience/{[id]-95c13bca5c1e575e.js → [id]-b3db5610ae7e94fb.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/consent/{privacy-experience-609399510a60beb9.js → privacy-experience-3009481bdd479fd7.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/consent/privacy-notices/{[id]-d7d8f228ac74b26e.js → [id]-72e3cd6740c5c5de.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/consent/privacy-notices/{new-821c0f82d5a2b7d4.js → new-2aa4d13fb26b59ca.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/consent/{privacy-notices-8365782543cf6ab9.js → privacy-notices-6b0885a8c871804f.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/consent/{properties-40a7aa65f4d13cf9.js → properties-20bc3cf67727dfd3.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/consent/{reporting-e4bacfc5c2ed2324.js → reporting-77b491108663a2de.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/{consent-70c5c6aa5389d99f.js → consent-b3c8efbd960f4e34.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/projects/{[projectUrn]-3207f62e5012611b.js → [projectUrn]-fe5f6fb33e34baa7.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/{projects-7b42dee0fb696658.js → projects-3584c90cf3670146.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/{data-catalog-31a45ea2ca2a7f04.js → data-catalog-a6cecf48e4e27645.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/action-center/[monitorId]/{[systemId]-6172c2eb539319fd.js → [systemId]-844abdb5ea7d78af.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/action-center/{[monitorId]-945d354ff057fb03.js → [monitorId]-215d6e2fefc9a5e1.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/{action-center-d9795e00f39cf4e9.js → action-center-7721508cc2a9ab3a.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/{activity-657833fd8528280f.js → activity-6169e49c3787a9bf.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/{datamap-3a4b89fb21d14753.js → datamap-e17dd4ffcaa4836d.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/dataset/[datasetId]/[collectionName]/{[...subfieldNames]-cb8d303f56091bd5.js → [...subfieldNames]-4af946dc8c6c967f.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/dataset/[datasetId]/{[collectionName]-401c8be76d9daec7.js → [collectionName]-a65a8ea3872800e7.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/dataset/{[datasetId]-97e2d375b21cfe43.js → [datasetId]-ccc844caef652a7e.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/dataset/{new-40ef544ca1f2c9b9.js → new-3b65c6e9af65ea2e.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/{dataset-e3c763f8e71f8e24.js → dataset-0566189a0236078d.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/datastore-connection/{[id]-152e5d15705ec072.js → [id]-38a7b8826e0abb01.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/datastore-connection/{new-651b10cae0e99a05.js → new-c8d2599814eefd35.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/{datastore-connection-03c54bc9fb18d2b0.js → datastore-connection-00ba79f6b47bd161.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/{index-3d19b9ffa15a928a.js → index-053db342725dc127.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/{integrations-78d4e0c14654148b.js → integrations-5f34de3c24e67368.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/messaging/{[id]-72cb360a6d14e701.js → [id]-707b72e959233112.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/messaging/{add-template-0ed67cf774d5cbf5.js → add-template-c68b413f3c9cf318.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/{messaging-b06a2204e2a5b667.js → messaging-d95588f3ef137030.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/poc/{ant-components-7050899b3f792129.js → ant-components-36cac6f4379587ea.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/poc/form-experiments/{AntForm-7c3466f4d5797e55.js → AntForm-d44606c0cf203b47.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/poc/form-experiments/{FormikAntFormItem-8de252f25871bab9.js → FormikAntFormItem-341b571fd8da4142.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/poc/form-experiments/{FormikControlled-cd6de0da47f980cf.js → FormikControlled-2e99b5eb12982aeb.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/poc/form-experiments/{FormikField-7c238a881fe30e28.js → FormikField-c7d62113680196dd.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/poc/{forms-d4f3e8f67f76f146.js → forms-89a24591c3d9e7a8.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/poc/{table-migration-c9220e20c1d93758.js → table-migration-c54bcfb6b0de8a71.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/configure/{messaging-9c1fd7867b2d80d7.js → messaging-4c8e1a7e407d3c7f.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/configure/{storage-fc959ed21dbce38c.js → storage-faf42d1a9cd6a861.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/{configure-44a4a638dcb2722a.js → configure-3823ee301161be4f.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/{privacy-requests-1433c9f9501a884f.js → privacy-requests-c9c1c02d7e68c4f8.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/properties/{[id]-16e0b42cb342aa5f.js → [id]-8973618b9ba28a50.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/properties/{add-property-ebd114a86b809391.js → add-property-b449da44de56fd3f.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/{properties-901be5fa4a48f48c.js → properties-5bb059b7057b5583.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/reporting/{datamap-da9ced1e20681154.js → datamap-6b26740aeb247bc8.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/settings/about/{alpha-0174554c0ac5958f.js → alpha-98c1492dca52f4f8.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/settings/{about-6f45ddbf675e66d2.js → about-d176ec152b70f82d.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/settings/consent/[configuration_id]/{[purpose_id]-275c49e6089c5c9f.js → [purpose_id]-ea5077aca3d01dfb.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/settings/{consent-1a8d05e19f06d857.js → consent-68b812269e38c8c3.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/settings/{custom-fields-49d86b9ca4523ca6.js → custom-fields-79cdee37ceb8665f.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/settings/{domain-records-f71b4b95d91db926.js → domain-records-056f36a8a0509006.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/settings/{domains-a595cad18cf04673.js → domains-fea15607939cab70.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/settings/{email-templates-6f7f9751689b042c.js → email-templates-cce73ddc0012b089.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/settings/{locations-e2c88d7f779fe604.js → locations-8b0a408ed7e3ff28.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/settings/{regulations-c1c699eeb40a9dc0.js → regulations-43e9cafaeb869069.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/systems/configure/[id]/{test-datasets-a274e2191b87e315.js → test-datasets-ea1e2483ddf6af6c.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/systems/configure/{[id]-4a48b4f996a64957.js → [id]-7856e694b009ded3.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/{systems-30debc87925634d9.js → systems-2c6dca19bf0a4f0c.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/{taxonomy-ca625b1296a029f0.js → taxonomy-ede8ddce10d7d055.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/user-management/profile/{[id]-7a3180b235eb8846.js → [id]-af9bf43612c9676c.js} +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/{user-management-5e2d0acf575252ca.js → user-management-3b7fea8781dc18b5.js} +0 -0
- /fides/ui-build/static/admin/_next/static/{LRCvfOqg1kP5kGnkD84G4 → zEliM9juvmcu4yond1mtG}/_ssgManifest.js +0 -0
fides/_version.py
CHANGED
|
@@ -8,11 +8,11 @@ import json
|
|
|
8
8
|
|
|
9
9
|
version_json = '''
|
|
10
10
|
{
|
|
11
|
-
"date": "2025-08-
|
|
11
|
+
"date": "2025-08-28T18:28:20-0700",
|
|
12
12
|
"dirty": false,
|
|
13
13
|
"error": null,
|
|
14
|
-
"full-revisionid": "
|
|
15
|
-
"version": "2.
|
|
14
|
+
"full-revisionid": "af95d4c10df1e7d85a73f90bdd397b8b92c9096e",
|
|
15
|
+
"version": "2.69.0rc1"
|
|
16
16
|
}
|
|
17
17
|
''' # END VERSION_JSON
|
|
18
18
|
|
|
@@ -37,6 +37,7 @@ from fides.api.service.authentication.authentication_strategy_oauth2_authorizati
|
|
|
37
37
|
)
|
|
38
38
|
from fides.api.util.api_router import APIRouter
|
|
39
39
|
from fides.api.util.connection_util import connection_status
|
|
40
|
+
from fides.api.util.endpoint_utils import fides_limiter
|
|
40
41
|
from fides.common.api.scope_registry import (
|
|
41
42
|
CLIENT_CREATE,
|
|
42
43
|
CLIENT_DELETE,
|
|
@@ -65,8 +66,10 @@ router = APIRouter(tags=["OAuth"], prefix=V1_URL_PREFIX)
|
|
|
65
66
|
TOKEN,
|
|
66
67
|
response_model=AccessToken,
|
|
67
68
|
)
|
|
69
|
+
@fides_limiter.limit(CONFIG.security.auth_rate_limit)
|
|
68
70
|
async def acquire_access_token(
|
|
69
71
|
request: Request,
|
|
72
|
+
response: Response,
|
|
70
73
|
form_data: OAuth2ClientCredentialsRequestForm = Depends(),
|
|
71
74
|
db: Session = Depends(get_db),
|
|
72
75
|
) -> AccessToken:
|
|
@@ -86,7 +86,7 @@ from fides.api.oauth.utils import (
|
|
|
86
86
|
from fides.api.schemas.api import ResponseWithMessage
|
|
87
87
|
from fides.api.schemas.dataset import CollectionAddressResponse, DryRunDatasetResponse
|
|
88
88
|
from fides.api.schemas.external_https import PrivacyRequestResumeFormat
|
|
89
|
-
from fides.api.schemas.policy import ActionType
|
|
89
|
+
from fides.api.schemas.policy import ActionType, CurrentStep
|
|
90
90
|
from fides.api.schemas.privacy_request import (
|
|
91
91
|
BulkPostPrivacyRequests,
|
|
92
92
|
BulkReviewResponse,
|
|
@@ -1930,6 +1930,7 @@ def finalize_privacy_request(
|
|
|
1930
1930
|
|
|
1931
1931
|
queue_privacy_request(
|
|
1932
1932
|
privacy_request_id=privacy_request_id,
|
|
1933
|
+
from_step=CurrentStep.finalization.value,
|
|
1933
1934
|
)
|
|
1934
1935
|
|
|
1935
1936
|
return privacy_request # type: ignore[return-value]
|
|
@@ -5,7 +5,7 @@ from datetime import datetime
|
|
|
5
5
|
from typing import List, Optional
|
|
6
6
|
|
|
7
7
|
import jose.exceptions
|
|
8
|
-
from fastapi import Depends, HTTPException, Security
|
|
8
|
+
from fastapi import Depends, HTTPException, Request, Response, Security
|
|
9
9
|
from fastapi.security import SecurityScopes
|
|
10
10
|
from fastapi_pagination import Page, Params
|
|
11
11
|
from fastapi_pagination.bases import AbstractPage
|
|
@@ -59,6 +59,7 @@ from fides.api.schemas.user import (
|
|
|
59
59
|
)
|
|
60
60
|
from fides.api.service.deps import get_user_service
|
|
61
61
|
from fides.api.util.api_router import APIRouter
|
|
62
|
+
from fides.api.util.endpoint_utils import fides_limiter
|
|
62
63
|
from fides.common.api.scope_registry import (
|
|
63
64
|
SCOPE_REGISTRY,
|
|
64
65
|
SYSTEM_MANAGER_DELETE,
|
|
@@ -207,6 +208,17 @@ def update_user_password(
|
|
|
207
208
|
|
|
208
209
|
current_user.update_password(db=db, new_password=data.new_password)
|
|
209
210
|
|
|
211
|
+
# Delete the user's associated OAuth client to invalidate all existing sessions
|
|
212
|
+
if current_user.client:
|
|
213
|
+
try:
|
|
214
|
+
current_user.client.delete(db)
|
|
215
|
+
except Exception as exc:
|
|
216
|
+
logger.exception(
|
|
217
|
+
"Unable to delete user client during password reset for user {}: {}",
|
|
218
|
+
current_user.id,
|
|
219
|
+
exc,
|
|
220
|
+
)
|
|
221
|
+
|
|
210
222
|
logger.info("Updated user with id: '{}'.", current_user.id)
|
|
211
223
|
return current_user
|
|
212
224
|
|
|
@@ -235,6 +247,18 @@ def force_update_password(
|
|
|
235
247
|
)
|
|
236
248
|
|
|
237
249
|
user.update_password(db=db, new_password=data.new_password)
|
|
250
|
+
|
|
251
|
+
# Delete the user's associated OAuth client to invalidate all existing sessions
|
|
252
|
+
if user.client:
|
|
253
|
+
try:
|
|
254
|
+
user.client.delete(db)
|
|
255
|
+
except Exception as exc:
|
|
256
|
+
logger.exception(
|
|
257
|
+
"Unable to delete user client during admin-forced password reset for user {}: {}",
|
|
258
|
+
user.id,
|
|
259
|
+
exc,
|
|
260
|
+
)
|
|
261
|
+
|
|
238
262
|
logger.info("Updated user with id: '{}'.", user.id)
|
|
239
263
|
return user
|
|
240
264
|
|
|
@@ -617,8 +641,11 @@ def get_users(
|
|
|
617
641
|
status_code=HTTP_200_OK,
|
|
618
642
|
response_model=UserLoginResponse,
|
|
619
643
|
)
|
|
644
|
+
@fides_limiter.limit(CONFIG.security.auth_rate_limit)
|
|
620
645
|
def user_login(
|
|
621
646
|
*,
|
|
647
|
+
request: Request,
|
|
648
|
+
response: Response,
|
|
622
649
|
db: Session = Depends(get_db),
|
|
623
650
|
config: FidesConfig = Depends(get_config),
|
|
624
651
|
user_data: UserLogin,
|
fides/api/models/client.py
CHANGED
|
@@ -2,7 +2,7 @@ from __future__ import annotations
|
|
|
2
2
|
|
|
3
3
|
import json
|
|
4
4
|
from datetime import datetime
|
|
5
|
-
from typing import Any, Optional
|
|
5
|
+
from typing import TYPE_CHECKING, Any, Optional
|
|
6
6
|
|
|
7
7
|
from sqlalchemy import ARRAY, Column, ForeignKey, String
|
|
8
8
|
from sqlalchemy.ext.declarative import declared_attr
|
|
@@ -22,10 +22,12 @@ from fides.api.cryptography.schemas.jwt import (
|
|
|
22
22
|
JWE_PAYLOAD_SYSTEMS,
|
|
23
23
|
)
|
|
24
24
|
from fides.api.db.base_class import Base
|
|
25
|
-
from fides.api.models.fides_user import FidesUser
|
|
26
25
|
from fides.api.oauth.jwt import generate_jwe
|
|
27
26
|
from fides.config import FidesConfig
|
|
28
27
|
|
|
28
|
+
if TYPE_CHECKING:
|
|
29
|
+
from fides.api.models.fides_user import FidesUser
|
|
30
|
+
|
|
29
31
|
DEFAULT_SCOPES: list[str] = []
|
|
30
32
|
DEFAULT_ROLES: list[str] = []
|
|
31
33
|
DEFAULT_SYSTEMS: list[str] = []
|
|
@@ -48,9 +50,11 @@ class ClientDetail(Base):
|
|
|
48
50
|
ARRAY(String), nullable=False, server_default="{}", default=dict
|
|
49
51
|
)
|
|
50
52
|
fides_key = Column(String, index=True, unique=True, nullable=True)
|
|
51
|
-
user_id = Column(
|
|
52
|
-
|
|
53
|
-
|
|
53
|
+
user_id = Column(String, ForeignKey("fidesuser.id"), nullable=True, unique=True)
|
|
54
|
+
|
|
55
|
+
if TYPE_CHECKING:
|
|
56
|
+
# Explicitly annotate the backref relationship for mypy
|
|
57
|
+
user: Optional["FidesUser"]
|
|
54
58
|
|
|
55
59
|
@classmethod
|
|
56
60
|
def create_client_and_secret(
|
fides/api/models/fides_user.py
CHANGED
|
@@ -22,7 +22,7 @@ from fides.api.cryptography.cryptographic_util import (
|
|
|
22
22
|
from fides.api.db.base_class import Base
|
|
23
23
|
from fides.api.models.audit_log import AuditLog
|
|
24
24
|
|
|
25
|
-
#
|
|
25
|
+
# SystemManager import is handled in base.py to avoid circular imports
|
|
26
26
|
from fides.api.schemas.user import DisabledReason
|
|
27
27
|
from fides.config import CONFIG
|
|
28
28
|
|
|
@@ -32,7 +32,6 @@ if TYPE_CHECKING:
|
|
|
32
32
|
FidesUserRespondentEmailVerification,
|
|
33
33
|
)
|
|
34
34
|
from fides.api.models.sql_models import System # type: ignore[attr-defined]
|
|
35
|
-
from fides.api.models.system_manager import SystemManager
|
|
36
35
|
|
|
37
36
|
|
|
38
37
|
class FidesUser(Base):
|
fides/api/oauth/utils.py
CHANGED
|
@@ -222,7 +222,9 @@ async def get_current_user(
|
|
|
222
222
|
created_at=datetime.utcnow(),
|
|
223
223
|
)
|
|
224
224
|
|
|
225
|
-
|
|
225
|
+
if client.user is None:
|
|
226
|
+
raise AuthorizationError(detail="Client has no associated user")
|
|
227
|
+
return client.user
|
|
226
228
|
|
|
227
229
|
|
|
228
230
|
def verify_callback_oauth_policy_pre_webhook(
|
|
@@ -367,8 +369,10 @@ def extract_token_and_load_client(
|
|
|
367
369
|
logger.debug("Auth token expired.")
|
|
368
370
|
raise AuthorizationError(detail="Not Authorized for this action")
|
|
369
371
|
|
|
372
|
+
issued_at_dt = datetime.fromisoformat(issued_at)
|
|
373
|
+
|
|
370
374
|
if is_token_expired(
|
|
371
|
-
|
|
375
|
+
issued_at_dt,
|
|
372
376
|
token_duration_override or CONFIG.security.oauth_access_token_expire_minutes,
|
|
373
377
|
):
|
|
374
378
|
raise AuthorizationError(detail="Not Authorized for this action")
|
|
@@ -391,6 +395,21 @@ def extract_token_and_load_client(
|
|
|
391
395
|
logger.debug("Auth token belongs to an invalid client_id.")
|
|
392
396
|
raise AuthorizationError(detail="Not Authorized for this action")
|
|
393
397
|
|
|
398
|
+
# Invalidate tokens issued prior to the user's most recent password reset.
|
|
399
|
+
# This ensures any existing sessions are expired immediately after a password change.
|
|
400
|
+
try:
|
|
401
|
+
if client.user is not None and client.user.password_reset_at is not None:
|
|
402
|
+
password_reset_at = client.user.password_reset_at
|
|
403
|
+
if password_reset_at and issued_at_dt < password_reset_at:
|
|
404
|
+
logger.debug("Auth token issued before latest password reset.")
|
|
405
|
+
raise AuthorizationError(detail="Not Authorized for this action")
|
|
406
|
+
except (
|
|
407
|
+
Exception
|
|
408
|
+
) as exc: # pragma: no cover - defensive: never block auth on relationship issues
|
|
409
|
+
logger.exception(
|
|
410
|
+
"Unable to evaluate password reset timestamp for client user: {}", exc
|
|
411
|
+
)
|
|
412
|
+
|
|
394
413
|
# Populate request-scoped context with the authenticated user identifier.
|
|
395
414
|
# Prefer the linked user_id; fall back to the client id when this is the
|
|
396
415
|
# special root client (which has no associated FidesUser row).
|
|
@@ -614,6 +614,9 @@ def run_privacy_request(
|
|
|
614
614
|
# The access, consent, and erasure runners for DSR 3.0 throw this exception after its
|
|
615
615
|
# Request Tasks have been built. The Privacy Request will be requeued from
|
|
616
616
|
# the appropriate checkpoint when all the Request Tasks have run.
|
|
617
|
+
logger.info(
|
|
618
|
+
"Privacy Request exited awaiting sub task processing (Request Tasks)"
|
|
619
|
+
)
|
|
617
620
|
return
|
|
618
621
|
|
|
619
622
|
except ValidationError as exc:
|
|
@@ -101,6 +101,10 @@ class SecuritySettings(FidesSettings):
|
|
|
101
101
|
default="1000/minute",
|
|
102
102
|
description="The number of requests from a single IP address allowed to hit an endpoint within a rolling 60 second period.",
|
|
103
103
|
)
|
|
104
|
+
auth_rate_limit: str = Field(
|
|
105
|
+
default="10/minute",
|
|
106
|
+
description="The number of authentication requests from a single IP address allowed to hit authentication endpoints (login, OAuth token) within the specified time period.",
|
|
107
|
+
)
|
|
104
108
|
root_user_scopes: List[str] = Field(
|
|
105
109
|
default=SCOPE_REGISTRY,
|
|
106
110
|
description="The list of scopes that are given to the root user.",
|
|
@@ -213,13 +217,13 @@ class SecuritySettings(FidesSettings):
|
|
|
213
217
|
oauth_root_client_secret_hash = (hashed_client_id, salt.encode(encoding)) # type: ignore
|
|
214
218
|
return oauth_root_client_secret_hash
|
|
215
219
|
|
|
216
|
-
@field_validator("request_rate_limit")
|
|
220
|
+
@field_validator("request_rate_limit", "auth_rate_limit")
|
|
217
221
|
@classmethod
|
|
218
|
-
def
|
|
222
|
+
def validate_rate_limits(
|
|
219
223
|
cls,
|
|
220
224
|
v: str,
|
|
221
225
|
) -> str:
|
|
222
|
-
"""Validate the formatting of
|
|
226
|
+
"""Validate the formatting of rate limit fields"""
|
|
223
227
|
try:
|
|
224
228
|
# Defer to `limits.parse_many` https://limits.readthedocs.io/en/stable/api.html#limits.parse_many
|
|
225
229
|
parse_many(v)
|
|
@@ -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/
|
|
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/abf2e162b1cd0e61.css" as="style"/><link rel="stylesheet" href="/_next/static/css/abf2e162b1cd0e61.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-aa7ff73977a15cb3.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-36bec04369a1a7c4.js" defer=""></script><script src="/_next/static/chunks/pages/404-fde1f56225d1ef4f.js" defer=""></script><script src="/_next/static/zEliM9juvmcu4yond1mtG/_buildManifest.js" defer=""></script><script src="/_next/static/zEliM9juvmcu4yond1mtG/_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":"zEliM9juvmcu4yond1mtG","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
|