ethyca-fides 2.57.1b9__py2.py3-none-any.whl → 2.57.1rc0__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.57.1b9.dist-info → ethyca_fides-2.57.1rc0.dist-info}/METADATA +1 -1
- {ethyca_fides-2.57.1b9.dist-info → ethyca_fides-2.57.1rc0.dist-info}/RECORD +228 -243
- fides/_version.py +3 -3
- fides/api/api/v1/endpoints/config_endpoints.py +2 -4
- fides/api/api/v1/endpoints/generic_overrides.py +6 -48
- fides/api/models/asset.py +18 -37
- fides/api/models/attachment.py +13 -11
- fides/api/models/comment.py +17 -17
- fides/api/models/connectionconfig.py +1 -1
- fides/api/models/detection_discovery.py +0 -12
- fides/api/models/location_regulation_selections.py +0 -1
- fides/api/models/{privacy_request/privacy_request.py → privacy_request.py} +691 -82
- fides/api/models/sql_models.py +5 -28
- fides/api/oauth/jwt.py +0 -18
- fides/api/oauth/utils.py +11 -11
- fides/api/schemas/dataset.py +2 -22
- fides/api/schemas/saas/strategy_configuration.py +0 -1
- fides/api/service/pagination/pagination_strategy_cursor.py +1 -15
- fides/api/service/pagination/pagination_strategy_link.py +1 -1
- fides/api/tasks/storage.py +111 -12
- fides/config/__init__.py +1 -1
- fides/data/language/languages.yml +0 -2
- fides/data/location/locations.yml +1 -244
- fides/ui-build/static/admin/404.html +1 -1
- fides/ui-build/static/admin/_next/static/chunks/{1150-035a721a04f4451e.js → 1150-73440d7b319558e8.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/1995-0e4fc4f7b44ed72b.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/{2397-ee53235fb21b5e97.js → 2397-7177ecf4ebe68feb.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/{255-7db55b0e3a0f9dea.js → 255-bf1797f78249d090.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/2780-8328de94968d05e4.js +4 -0
- fides/ui-build/static/admin/_next/static/chunks/3005-373de16453ed7eea.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/{3086-b5054ec2c75700b9.js → 3086-be6b52546c3efc90.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/3320-87c75df57a47487e.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/3627-fb83adac32c128e6.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/3662-420d9807c30008ab.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/{3855-b6b7865dedd7bc2a.js → 3855-5c7b11871f59e0e0.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/{3872-4e053c20d546f027.js → 3872-f3d5054bdc584eaa.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/3949-9888699e2ac564c4.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/3967-845c902667e47c4f.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/3e38ba78-4487e45fd4ed2479.js +2 -0
- fides/ui-build/static/admin/_next/static/chunks/4481-ca8d2c75d634b6bc.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/4723-81d28e5be5c7b6d7.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/4833-a85bd5d25ebc40c4.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/5246-9fc6af1a6499e0a4.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/{5258-0658dc2274df6832.js → 5258-3a650be9142cf914.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/{5480-f49696df5e8ae500.js → 5480-f5bec5e881f72f8d.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/{5487-3ad50d21cdbc9209.js → 5487-d96e1abc93f92631.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/5574-a4047e826a8cd4c3.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/{5826-e5dcb4e68cfe6289.js → 5826-16e497af363a0cbc.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/5834-bd9ed01c4ab2ef5c.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/{9014-eeae6f581158e645.js → 5908-532dfbc9d930f635.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/5960-8895f51b30c35798.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/{5973-9c58e4cce2f343a8.js → 5973-67c7562997f7d5cb.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/6277-515c922445b8edc5.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/{6315-fa1519cdf080f42d.js → 6315-dee79f6861c94d2d.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/{6372-ca9c12ac8902365b.js → 6372-f1b54f3cb4888660.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/{6853-8941824350c3c1a8.js → 6853-cacea421af3bfc26.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/6954-6eb480eb132239c3.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/7044-9dc90893067f38ae.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/{7088.eb76fca286e5f2e6.js → 7088.0e7c92a7cbb57562.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/{7751-a8f31c062d4cb09d.js → 7751-25e0c1307988ffd7.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/{79-f9b948ebb186900f.js → 79-ba88d0cf4c65aaa2.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/7980-2597c279c30fbcda.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/7c79804f.26834f883d5ad770.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/{8433-b3008ecaf9834e7f.js → 8433-969280d321d1c3a2.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/{8499-43606100edf42fdf.js → 8499-07507004e8275df2.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/8837-cf26e5ca1ae5aaf5.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/{9046-04bd7becea207cb1.js → 9046-80f1ea44f89fe32c.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/9282-1a5a2f6f4d9ed586.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/{9392.da35a8e778812d91.js → 9392.97b2e3327dceb7c9.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/9676.f4d5977a5f148797.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/9767-4c591bd478c72650.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/{9999-637e0e5341f15f4a.js → 9999-f2e40d5b13343220.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/{main-app-94a0711202e08b15.js → main-app-2650f704701c6a7b.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/main-ce7f38a12ea8c223.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/{404-b202c0d8f6fc75c3.js → 404-1087258931760074.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/_app-9ceff88561dc1250.js +909 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/add-systems/{manual-c2705210ce986109.js → manual-d7f60624cbc12217.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/add-systems/{multiple-ba975134a85588f8.js → multiple-18b0b521255289a3.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/add-systems-136bcbd20ac59bf5.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/{ant-poc-b9932971a479f3a7.js → ant-poc-b3b4d0a98450ffd1.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/consent/configure/{add-vendors-b34e5324461d0c87.js → add-vendors-64f83e9a2b777bf3.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/consent/configure-e11ace4f273ebb47.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/consent/privacy-experience/{[id]-cf51752eb0902233.js → [id]-443e6dd191ce5588.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/consent/privacy-experience/{new-be194737b41ccec9.js → new-36162d5bea29dcc2.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/consent/{privacy-experience-c946b33b0322b8ad.js → privacy-experience-35e9df60b21e21a6.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/consent/privacy-notices/{[id]-72251b48e2e03a1e.js → [id]-2d651499c07d12d9.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/consent/privacy-notices/{new-9611dd42856d6062.js → new-36e57d2f2446be82.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/consent/{privacy-notices-ea57f9d6ad17e957.js → privacy-notices-da37afbe5ec81339.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/consent/{properties-e5748812ba055a56.js → properties-c57b209feef7c2da.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/consent/{reporting-ae66e1a7e146a4de.js → reporting-97fea4ac45093cbd.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/{consent-39d65f13cc8f1cf8.js → consent-24bef021ee71e36c.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/projects/[projectUrn]/{[resourceUrn]-ac033a16f043e6f9.js → [resourceUrn]-6cbd79481199812d.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/projects/{[projectUrn]-a29850536c85d4b8.js → [projectUrn]-46b9790da2fec05a.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/{projects-c44ce244122e96d5.js → projects-1f965b9c496071d1.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/resources/{[resourceUrn]-71e26d262afcaea5.js → [resourceUrn]-e7833c1c606081a9.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/{resources-305555b74c357bf2.js → resources-bed368d048ea6883.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog-942d68a88b321067.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/action-center/[monitorId]/[systemId]-00526324583139ab.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/action-center/[monitorId]-f0ab51d0d5f995de.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/action-center-2220c30c3863b5a5.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/{activity-11b3ce9f61d9bfe9.js → activity-1d7936f05d23097f.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/detection/{[resourceUrn]-054ca46a782e99a5.js → [resourceUrn]-68122dbf449a11b4.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/{detection-b75dd3e4306ac18e.js → detection-0ceaf3c555e84714.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/discovery/{[resourceUrn]-1da20aeb6fc995e4.js → [resourceUrn]-22c27fe0f898ad2a.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/{discovery-cad50b0cc6d1050c.js → discovery-8f2b102e19b0b8f2.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/{datamap-8cb714cdd44ac40e.js → datamap-9cd0c40bef77b120.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/dataset/[datasetId]/[collectionName]/[...subfieldNames]-ab9bc1a3640547db.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/dataset/[datasetId]/[collectionName]-17ec8385bb1fa6d4.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/dataset/{[datasetId]-6ba18f92ba561114.js → [datasetId]-e14c1c07658f8a10.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/dataset/new-740824dfa6823e26.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/dataset-5541ecd2f62711a5.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/datastore-connection/{[id]-bbe1ca2793798e6b.js → [id]-0616437e1a82d3ed.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/datastore-connection/{new-abc17fef69cd951b.js → new-f8218440494e8532.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/datastore-connection-b8eaa9b9d3832b30.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/{index-bfaacdb55a5a6c9f.js → index-94e6d589c4edf360.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/integrations/[id]-a6448ce6ba7f0cf5.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/integrations-1a6965d78bfb26b0.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/messaging/{[id]-ad02e019b2467958.js → [id]-6b032de0a6c2c400.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/messaging/{add-template-f9693cb6a0b7ded8.js → add-template-c0d6ae68ff7979c6.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/messaging-f263e6bacf0f2d19.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/{[id]-fe765154315782cf.js → [id]-bbe5854b7d19b7e9.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/configure/messaging-b96ee3fea3920fcf.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/configure/storage-1b0f9469cb65abfc.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/{configure-2987edc77388e85a.js → configure-4bad69cd42c9722c.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests-eebd2f4ead19cfd6.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/properties/{[id]-94e2faa73dd6a3e6.js → [id]-b4c808a8a0287d11.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/properties/{add-property-630a6a3dd6502ba6.js → add-property-5a701477b006a63b.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/{properties-20ca2f963906674b.js → properties-9a1899dfe052023e.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/reporting/datamap-a3fa3ad77730a03b.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/{about-a49d0f84cf0cf05e.js → about-d073be113e9ca7b0.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/consent-4769f55b138073f7.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/{custom-fields-52d030b1db2ca1b9.js → custom-fields-744e7bbc200557e7.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/{domain-records-fa42d8f18df44927.js → domain-records-c5cd5fb578de9515.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/domains-775f55b3f80cd452.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/{email-templates-6fd6071e2009b8f2.js → email-templates-39c7ae3602ac69b2.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/{locations-66c757325cb58467.js → locations-45e33ba111f8f8b0.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/organization-14def4ca3cc9cda5.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/{regulations-c6c239996cfa6ae8.js → regulations-94975aeab348528e.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/systems/configure/[id]/test-datasets-21f26c0dc4d09e9f.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/systems/configure/{[id]-d3ea9034461511cd.js → [id]-82d9af34546adaa2.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/{systems-abd68fc5ddde5482.js → systems-c320df35d51dc537.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/{taxonomy-16b4d75c49276add.js → taxonomy-181ea5b0ac975239.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/user-management/profile/{[id]-78eaf933f755bfe8.js → [id]-622e16a17a11c096.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/{user-management-6c9ad62479a7d03e.js → user-management-aa872b21bb835d34.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/{webpack-2c7ccac5843c4d8e.js → webpack-4df2ba5ee2d40f0a.js} +1 -1
- fides/ui-build/static/admin/_next/static/css/957d0e4fea846ff0.css +1 -0
- fides/ui-build/static/admin/_next/static/rOPehh5NMs1hjog7nTw1q/_buildManifest.js +1 -0
- fides/ui-build/static/admin/_next/static/rOPehh5NMs1hjog7nTw1q/_ssgManifest.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/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/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-tcf.js +3 -3
- 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/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
- fides/api/alembic/migrations/versions/1d2f04ac19f2_add_page_column_to_asset_table.py +0 -49
- fides/api/alembic/migrations/versions/7c3fbee90c78_add_user_assigned_data_uses_and_system_.py +0 -54
- fides/api/alembic/migrations/versions/9a1eacd2666b_add_description_column_to_asset.py +0 -25
- fides/api/models/privacy_request/__init__.py +0 -44
- fides/api/models/privacy_request/consent.py +0 -155
- fides/api/models/privacy_request/execution_log.py +0 -108
- fides/api/models/privacy_request/provided_identity.py +0 -149
- fides/api/models/privacy_request/request_task.py +0 -284
- fides/api/models/privacy_request/webhook.py +0 -94
- fides/api/service/storage/s3.py +0 -193
- fides/api/service/storage/util.py +0 -10
- fides/ui-build/static/admin/_next/static/chunks/1100-053fc6b76c65a00f.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/1376-5cea5ef9362215e8.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/2fbcc6de-a6c61724c327e9fa.js +0 -8
- fides/ui-build/static/admin/_next/static/chunks/3320-5dd62a256ecfc9c3.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/355-8a77c9a1cd027f2e.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/3615-5e2d062d684b8fa1.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/4060-8d165e1236ea521a.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/4481-142e5a922d5a5548.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/4723-0a3c5e2ce143a7d0.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/5277-e8a036319456127f.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/570-c99f07161bd339cd.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/605-e692e9cfea2e2cb8.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/6060-cb1ab5be7067bf7b.js +0 -4
- fides/ui-build/static/admin/_next/static/chunks/6527-0eed08abe252a918.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/678d4732-50255cc09048e643.js +0 -2
- fides/ui-build/static/admin/_next/static/chunks/6954-3b887fb444f9228c.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/7434-e6fc02c2dd852991.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/7980-4bd08957448dea32.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/7c79804f.7a7112aece470725.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/8702-d1c8296f9f6afc10.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/905-8ab919e7b274ed50.js +0 -8
- fides/ui-build/static/admin/_next/static/chunks/9187-851756440f79cd75.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/9282-2bfbdca45e84e810.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/9327-2cba327d10586683.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/9676.f297a1347ac09c56.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/9767-1a23925d2cb27b51.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/e3251fe7-5777b5d778e6fffa.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/main-24f422f93845a596.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/_app-44256886387d7e3e.js +0 -923
- fides/ui-build/static/admin/_next/static/chunks/pages/add-systems-d258f0c25fa020bf.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/consent/configure-723cc3d4f5740ea6.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog-900004e402c31797.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/action-center/[monitorId]/[systemId]-5182d356672a3b02.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/action-center/[monitorId]-7c74373a4d666a3d.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/action-center-02439d3aeecfb4b9.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/dataset/[datasetId]/[collectionName]/[...subfieldNames]-d79551d4c64c398c.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/dataset/[datasetId]/[collectionName]-7e5df4a0de7540bb.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/dataset/new-803c1b577ab17ae3.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/dataset-fa743ddc7f89d76b.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/datastore-connection-a78a73b65929853a.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/fides-js-docs-80b241bf6cddb72e.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/integrations/[id]-d4329043219fed9b.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/integrations-adb6aced3bdb4899.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/messaging-1e60754abec1ee6b.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/configure/messaging-f5f7a8069909ef24.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/configure/storage-9f7eaad05e5b9292.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests-d85c0d16ba09ba35.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/reporting/datamap-afedc48ef4e7f858.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/consent-89524101b7279f6e.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/domains-24cba38685dc872c.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/organization-a08693d0d1e10bc8.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/systems/configure/[id]/test-datasets-151571cff4e85894.js +0 -1
- fides/ui-build/static/admin/_next/static/css/113d823fe71f6af0.css +0 -1
- fides/ui-build/static/admin/_next/static/css/ab65b8cc3144bfc8.css +0 -1
- fides/ui-build/static/admin/_next/static/yhm3LM_VFpK2KeFRFEQyN/_buildManifest.js +0 -1
- fides/ui-build/static/admin/_next/static/yhm3LM_VFpK2KeFRFEQyN/_ssgManifest.js +0 -1
- {ethyca_fides-2.57.1b9.dist-info → ethyca_fides-2.57.1rc0.dist-info}/LICENSE +0 -0
- {ethyca_fides-2.57.1b9.dist-info → ethyca_fides-2.57.1rc0.dist-info}/WHEEL +0 -0
- {ethyca_fides-2.57.1b9.dist-info → ethyca_fides-2.57.1rc0.dist-info}/entry_points.txt +0 -0
- {ethyca_fides-2.57.1b9.dist-info → ethyca_fides-2.57.1rc0.dist-info}/top_level.txt +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/user-management/{new-be690621a944bfe2.js → new-d6717378b42982d5.js} +0 -0
fides/_version.py
CHANGED
@@ -8,11 +8,11 @@ import json
|
|
8
8
|
|
9
9
|
version_json = '''
|
10
10
|
{
|
11
|
-
"date": "2025-03-
|
11
|
+
"date": "2025-03-25T12:32:49-0300",
|
12
12
|
"dirty": false,
|
13
13
|
"error": null,
|
14
|
-
"full-revisionid": "
|
15
|
-
"version": "2.57.
|
14
|
+
"full-revisionid": "e52bec9197d4b3ac45f875238ec25f7af6cf5db7",
|
15
|
+
"version": "2.57.1rc0"
|
16
16
|
}
|
17
17
|
''' # END VERSION_JSON
|
18
18
|
|
@@ -58,10 +58,8 @@ def patch_settings(
|
|
58
58
|
Only keys provided will be updated, others will be unaffected,
|
59
59
|
i.e. true PATCH behavior.
|
60
60
|
"""
|
61
|
-
|
62
|
-
|
63
|
-
# keeping the existing values for other keys that aren't provided in the payload data.
|
64
|
-
pruned_data = data.model_dump(exclude_unset=True)
|
61
|
+
|
62
|
+
pruned_data = data.model_dump(exclude_none=True)
|
65
63
|
logger.info("PATCHing application settings")
|
66
64
|
update_config: ApplicationConfig = ApplicationConfig.update_api_set(db, pruned_data)
|
67
65
|
|
@@ -9,7 +9,7 @@ from fideslang.models import Dataset as FideslangDataset
|
|
9
9
|
from pydantic import ValidationError as PydanticValidationError
|
10
10
|
from sqlalchemy import not_, select
|
11
11
|
from sqlalchemy.ext.asyncio import AsyncSession
|
12
|
-
from sqlalchemy.orm import Session
|
12
|
+
from sqlalchemy.orm import Session
|
13
13
|
from starlette import status
|
14
14
|
from starlette.status import (
|
15
15
|
HTTP_200_OK,
|
@@ -22,10 +22,9 @@ from fides.api.common_exceptions import KeyOrNameAlreadyExists, ValidationError
|
|
22
22
|
from fides.api.db.base_class import get_key_from_data
|
23
23
|
from fides.api.db.crud import list_resource_query
|
24
24
|
from fides.api.db.ctl_session import get_async_db
|
25
|
-
from fides.api.models.connectionconfig import ConnectionConfig
|
25
|
+
from fides.api.models.connectionconfig import ConnectionConfig
|
26
26
|
from fides.api.models.datasetconfig import DatasetConfig
|
27
27
|
from fides.api.oauth.utils import verify_oauth_client
|
28
|
-
from fides.api.schemas.dataset import DatasetResponse
|
29
28
|
from fides.api.schemas.filter_params import FilterParams
|
30
29
|
from fides.api.schemas.taxonomy_extensions import (
|
31
30
|
DataCategory,
|
@@ -99,11 +98,6 @@ async def create_dataset(
|
|
99
98
|
else exc.message
|
100
99
|
),
|
101
100
|
)
|
102
|
-
except KeyOrNameAlreadyExists as exc:
|
103
|
-
raise HTTPException(
|
104
|
-
status_code=HTTP_422_UNPROCESSABLE_ENTITY,
|
105
|
-
detail=str(exc),
|
106
|
-
)
|
107
101
|
|
108
102
|
|
109
103
|
@dataset_router.put(
|
@@ -139,7 +133,7 @@ async def update_dataset(
|
|
139
133
|
@dataset_router.get(
|
140
134
|
"/dataset",
|
141
135
|
dependencies=[Security(verify_oauth_client, scopes=[CTL_DATASET_READ])],
|
142
|
-
response_model=Union[Page[
|
136
|
+
response_model=Union[Page[FideslangDataset], List[FideslangDataset]],
|
143
137
|
name="List datasets (optionally paginated)",
|
144
138
|
)
|
145
139
|
async def list_dataset_paginated(
|
@@ -150,9 +144,7 @@ async def list_dataset_paginated(
|
|
150
144
|
data_categories: Optional[List[str]] = Query(None),
|
151
145
|
exclude_saas_datasets: Optional[bool] = Query(False),
|
152
146
|
only_unlinked_datasets: Optional[bool] = Query(False),
|
153
|
-
|
154
|
-
minimal: Optional[bool] = Query(False),
|
155
|
-
) -> Union[Page[DatasetResponse], List[DatasetResponse]]:
|
147
|
+
) -> Union[Page[FideslangDataset], List[FideslangDataset]]:
|
156
148
|
"""
|
157
149
|
Get a list of all of the Datasets.
|
158
150
|
If any pagination parameters (size or page) are provided, then the response will be paginated.
|
@@ -164,25 +156,6 @@ async def list_dataset_paginated(
|
|
164
156
|
|
165
157
|
query = select(CtlDataset)
|
166
158
|
|
167
|
-
if minimal:
|
168
|
-
# .options() allows us to modify how the query loads data by configuring the query's loading behavior
|
169
|
-
# load_only() optimizes the query by only loading the specified columns from the database
|
170
|
-
# This reduces memory usage and query time by not loading unnecessary columns
|
171
|
-
# The columns specified below are the minimal set needed for the DatasetResponse model
|
172
|
-
query = query.options( # type: ignore[attr-defined]
|
173
|
-
load_only(
|
174
|
-
CtlDataset.id,
|
175
|
-
CtlDataset.fides_key,
|
176
|
-
CtlDataset.organization_fides_key,
|
177
|
-
CtlDataset.name,
|
178
|
-
CtlDataset.created_at,
|
179
|
-
CtlDataset.updated_at,
|
180
|
-
CtlDataset.meta,
|
181
|
-
CtlDataset.fides_meta,
|
182
|
-
CtlDataset.description,
|
183
|
-
)
|
184
|
-
)
|
185
|
-
|
186
159
|
# Add filters for search and data categories
|
187
160
|
filter_params = FilterParams(search=search, data_categories=data_categories)
|
188
161
|
filtered_query = apply_filters_to_query(
|
@@ -192,13 +165,6 @@ async def list_dataset_paginated(
|
|
192
165
|
filter_params=filter_params,
|
193
166
|
)
|
194
167
|
|
195
|
-
# If applicable, filter by connection type
|
196
|
-
if connection_type:
|
197
|
-
filtered_query = filtered_query.where(
|
198
|
-
CtlDataset.fides_meta["namespace"]["connection_type"].as_string()
|
199
|
-
== connection_type.value
|
200
|
-
)
|
201
|
-
|
202
168
|
# If applicable, keep only unlinked datasets
|
203
169
|
if only_unlinked_datasets:
|
204
170
|
linked_datasets = select([DatasetConfig.ctl_dataset_id])
|
@@ -216,18 +182,10 @@ async def list_dataset_paginated(
|
|
216
182
|
)
|
217
183
|
|
218
184
|
if not page and not size:
|
219
|
-
|
220
|
-
response = [
|
221
|
-
DatasetResponse.model_validate(result.__dict__) for result in results
|
222
|
-
]
|
223
|
-
return response
|
185
|
+
return await list_resource_query(db, filtered_query, CtlDataset)
|
224
186
|
|
225
187
|
pagination_params = Params(page=page or 1, size=size or 50)
|
226
|
-
|
227
|
-
results.items = [ # type: ignore[attr-defined]
|
228
|
-
DatasetResponse.model_validate(result.__dict__) for result in results.items # type: ignore[attr-defined]
|
229
|
-
]
|
230
|
-
return results
|
188
|
+
return await async_paginate(db, filtered_query, pagination_params)
|
231
189
|
|
232
190
|
|
233
191
|
@dataset_router.get(
|
fides/api/models/asset.py
CHANGED
@@ -38,8 +38,6 @@ class Asset(Base):
|
|
38
38
|
locations = Column(ARRAY(String), server_default="{}", nullable=False)
|
39
39
|
with_consent = Column(BOOLEAN, default=False, nullable=False)
|
40
40
|
data_uses = Column(ARRAY(String), server_default="{}", nullable=False)
|
41
|
-
description = Column(String, nullable=True)
|
42
|
-
page = Column(ARRAY(String), server_default="{}", nullable=False)
|
43
41
|
|
44
42
|
# generic object to store additional attributes, specific to asset type
|
45
43
|
meta = Column(
|
@@ -95,11 +93,9 @@ class Asset(Base):
|
|
95
93
|
- asset_type
|
96
94
|
- domain
|
97
95
|
- base_url (if applicable)
|
98
|
-
- system_id
|
99
|
-
|
100
|
-
If you provide the ID of an existing asset it will be updated with any provided data
|
96
|
+
- system_id.
|
101
97
|
"""
|
102
|
-
if
|
98
|
+
if (
|
103
99
|
"name" not in data
|
104
100
|
or "asset_type" not in data
|
105
101
|
or "domain" not in data
|
@@ -109,40 +105,25 @@ class Asset(Base):
|
|
109
105
|
"name, asset_type, domain, and system_id are required fields on assets"
|
110
106
|
)
|
111
107
|
|
108
|
+
result = await async_session.execute(
|
109
|
+
select(cls).where( # type: ignore[arg-type, call-arg]
|
110
|
+
cls.name == data["name"],
|
111
|
+
cls.asset_type == data["asset_type"],
|
112
|
+
cls.domain == data["domain"],
|
113
|
+
cls.system_id == data["system_id"],
|
114
|
+
cls.base_url == data.get("base_url"),
|
115
|
+
)
|
116
|
+
)
|
117
|
+
existing_record = result.scalars().first()
|
112
118
|
record_id: str
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
select(cls).where(cls.id == data["id"]) # type: ignore[arg-type]
|
119
|
+
if existing_record:
|
120
|
+
await async_session.execute(
|
121
|
+
update(cls).where(cls.id == existing_record.id).values(data) # type: ignore[arg-type]
|
117
122
|
)
|
118
|
-
|
119
|
-
if existing_record:
|
120
|
-
await async_session.execute(
|
121
|
-
update(cls).where(cls.id == existing_record.id).values(data) # type: ignore[arg-type]
|
122
|
-
)
|
123
|
-
record_id = existing_record.id
|
124
|
-
else:
|
125
|
-
raise ValueError(f"Asset with id {data['id']} does not exist")
|
123
|
+
record_id = existing_record.id
|
126
124
|
else:
|
127
|
-
result = await async_session.execute(
|
128
|
-
|
129
|
-
cls.name == data["name"],
|
130
|
-
cls.asset_type == data["asset_type"],
|
131
|
-
cls.domain == data["domain"],
|
132
|
-
cls.base_url == data.get("base_url"),
|
133
|
-
cls.system_id == data["system_id"],
|
134
|
-
)
|
135
|
-
)
|
136
|
-
|
137
|
-
existing_record = result.scalars().first()
|
138
|
-
if existing_record:
|
139
|
-
await async_session.execute(
|
140
|
-
update(cls).where(cls.id == existing_record.id).values(data) # type: ignore[arg-type]
|
141
|
-
)
|
142
|
-
record_id = existing_record.id
|
143
|
-
else:
|
144
|
-
result = await async_session.execute(insert(cls).values(data)) # type: ignore[arg-type]
|
145
|
-
record_id = result.inserted_primary_key.id
|
125
|
+
result = await async_session.execute(insert(cls).values(data)) # type: ignore[arg-type]
|
126
|
+
record_id = result.inserted_primary_key.id
|
146
127
|
|
147
128
|
result = await async_session.execute(select(cls).where(cls.id == record_id)) # type: ignore[arg-type]
|
148
129
|
return result.scalars().first()
|
fides/api/models/attachment.py
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
import os
|
2
2
|
from enum import Enum as EnumType
|
3
|
-
from typing import
|
3
|
+
from typing import Any, Optional
|
4
4
|
|
5
5
|
from loguru import logger as log
|
6
6
|
from sqlalchemy import Column
|
@@ -13,14 +13,12 @@ from fides.api.db.base_class import Base
|
|
13
13
|
from fides.api.models.fides_user import FidesUser # pylint: disable=unused-import
|
14
14
|
from fides.api.models.storage import StorageConfig # pylint: disable=unused-import
|
15
15
|
from fides.api.schemas.storage.storage import StorageDetails, StorageType
|
16
|
-
from fides.api.
|
16
|
+
from fides.api.tasks.storage import (
|
17
|
+
LOCAL_FIDES_UPLOAD_DIRECTORY,
|
17
18
|
generic_delete_from_s3,
|
18
19
|
generic_retrieve_from_s3,
|
19
|
-
generic_upload_to_s3,
|
20
|
-
)
|
21
|
-
from fides.api.service.storage.util import (
|
22
|
-
LOCAL_FIDES_UPLOAD_DIRECTORY,
|
23
20
|
get_local_filename,
|
21
|
+
upload_to_s3,
|
24
22
|
)
|
25
23
|
|
26
24
|
|
@@ -93,6 +91,7 @@ class Attachment(Base):
|
|
93
91
|
|
94
92
|
user = relationship(
|
95
93
|
"FidesUser",
|
94
|
+
backref="attachments",
|
96
95
|
lazy="selectin",
|
97
96
|
uselist=False,
|
98
97
|
)
|
@@ -110,15 +109,18 @@ class Attachment(Base):
|
|
110
109
|
uselist=False,
|
111
110
|
)
|
112
111
|
|
113
|
-
def upload(self, attachment:
|
112
|
+
def upload(self, attachment: bytes) -> None:
|
114
113
|
"""Uploads an attachment to S3 or local storage."""
|
115
114
|
if self.config.type == StorageType.s3:
|
116
115
|
bucket_name = f"{self.config.details[StorageDetails.BUCKET.value]}"
|
117
116
|
auth_method = self.config.details[StorageDetails.AUTH_METHOD.value]
|
118
|
-
|
117
|
+
upload_to_s3(
|
119
118
|
storage_secrets=self.config.secrets,
|
119
|
+
data={},
|
120
120
|
bucket_name=bucket_name,
|
121
121
|
file_key=self.id,
|
122
|
+
resp_format=self.config.format,
|
123
|
+
privacy_request=None,
|
122
124
|
document=attachment,
|
123
125
|
auth_method=auth_method,
|
124
126
|
)
|
@@ -128,7 +130,7 @@ class Attachment(Base):
|
|
128
130
|
if self.config.type == StorageType.local:
|
129
131
|
filename = get_local_filename(self.id)
|
130
132
|
with open(filename, "wb") as file:
|
131
|
-
file.write(attachment
|
133
|
+
file.write(attachment)
|
132
134
|
return
|
133
135
|
|
134
136
|
raise ValueError(f"Unsupported storage type: {self.config.type}")
|
@@ -148,7 +150,7 @@ class Attachment(Base):
|
|
148
150
|
if self.config.type == StorageType.local:
|
149
151
|
filename = f"{LOCAL_FIDES_UPLOAD_DIRECTORY}/{self.id}"
|
150
152
|
with open(filename, "rb") as file:
|
151
|
-
return file.read()
|
153
|
+
return file.read()
|
152
154
|
|
153
155
|
raise ValueError(f"Unsupported storage type: {self.config.type}")
|
154
156
|
|
@@ -178,7 +180,7 @@ class Attachment(Base):
|
|
178
180
|
db: Session,
|
179
181
|
*,
|
180
182
|
data: dict[str, Any],
|
181
|
-
attachment_file:
|
183
|
+
attachment_file: bytes,
|
182
184
|
check_name: bool = False,
|
183
185
|
) -> "Attachment":
|
184
186
|
"""Creates a new attachment record in the database and uploads the attachment to S3."""
|
fides/api/models/comment.py
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
from enum import Enum as EnumType
|
2
|
-
from typing import
|
2
|
+
from typing import Any
|
3
3
|
|
4
4
|
from sqlalchemy import Column
|
5
5
|
from sqlalchemy import Enum as EnumColumn
|
@@ -8,10 +8,8 @@ from sqlalchemy.ext.declarative import declared_attr
|
|
8
8
|
from sqlalchemy.orm import Session, relationship
|
9
9
|
|
10
10
|
from fides.api.db.base_class import Base
|
11
|
-
|
12
|
-
|
13
|
-
from fides.api.models.attachment import Attachment
|
14
|
-
from fides.api.models.fides_user import FidesUser
|
11
|
+
from fides.api.models.attachment import Attachment, AttachmentReference
|
12
|
+
from fides.api.models.fides_user import FidesUser # pylint: disable=unused-import
|
15
13
|
|
16
14
|
|
17
15
|
class CommentType(str, EnumType):
|
@@ -80,6 +78,7 @@ class Comment(Base):
|
|
80
78
|
|
81
79
|
user = relationship(
|
82
80
|
"FidesUser",
|
81
|
+
backref="comments",
|
83
82
|
lazy="selectin",
|
84
83
|
uselist=False,
|
85
84
|
)
|
@@ -91,19 +90,20 @@ class Comment(Base):
|
|
91
90
|
uselist=True,
|
92
91
|
)
|
93
92
|
|
94
|
-
|
95
|
-
"
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
93
|
+
def get_attachments(self, db: Session) -> list[Attachment]:
|
94
|
+
"""Retrieve all attachments associated with this comment."""
|
95
|
+
stmt = (
|
96
|
+
db.query(Attachment)
|
97
|
+
.join(
|
98
|
+
AttachmentReference, Attachment.id == AttachmentReference.attachment_id
|
99
|
+
)
|
100
|
+
.where(AttachmentReference.reference_id == self.id)
|
101
|
+
)
|
102
|
+
return db.execute(stmt).scalars().all()
|
102
103
|
|
103
104
|
def delete(self, db: Session) -> None:
|
104
105
|
"""Delete the comment and all associated references."""
|
105
|
-
|
106
|
-
for attachment in
|
107
|
-
|
108
|
-
attachment.delete(db)
|
106
|
+
attachments = self.get_attachments(db)
|
107
|
+
for attachment in attachments:
|
108
|
+
attachment.delete(db)
|
109
109
|
db.delete(self)
|
@@ -186,7 +186,7 @@ class ConnectionConfig(Base):
|
|
186
186
|
)
|
187
187
|
),
|
188
188
|
nullable=True,
|
189
|
-
) # Type
|
189
|
+
) # Type bytea in the db
|
190
190
|
last_test_timestamp = Column(DateTime(timezone=True))
|
191
191
|
last_test_succeeded = Column(Boolean)
|
192
192
|
disabled = Column(Boolean, server_default="f", default=False)
|
@@ -277,18 +277,6 @@ class StagedResource(Base):
|
|
277
277
|
server_default="{}",
|
278
278
|
default=dict,
|
279
279
|
)
|
280
|
-
user_assigned_data_uses = Column(
|
281
|
-
ARRAY(String),
|
282
|
-
nullable=False,
|
283
|
-
server_default="{}",
|
284
|
-
default=dict,
|
285
|
-
)
|
286
|
-
user_assigned_system_id = Column(
|
287
|
-
String,
|
288
|
-
ForeignKey(System.id_field_path),
|
289
|
-
nullable=True,
|
290
|
-
index=True,
|
291
|
-
)
|
292
280
|
|
293
281
|
# pointers to child and parent URNs
|
294
282
|
children = Column(
|