ethyca-fides 2.64.2rc0__py2.py3-none-any.whl → 2.64.3b0__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.64.2rc0.dist-info → ethyca_fides-2.64.3b0.dist-info}/METADATA +3 -3
- {ethyca_fides-2.64.2rc0.dist-info → ethyca_fides-2.64.3b0.dist-info}/RECORD +237 -245
- fides/_version.py +3 -3
- fides/api/alembic/migrations/versions/41a634d8c669_manual_task_restrict_deletes.py +257 -0
- fides/api/alembic/migrations/versions/6a76a1fa4f3f_add_manual_task_instance_table.py +256 -0
- fides/api/alembic/migrations/versions/aadfe83c5644_add_manual_task_to_connectiontype_enum.py +46 -0
- fides/api/api/v1/api.py +2 -0
- fides/api/api/v1/endpoints/partitioning_endpoints.py +108 -0
- fides/api/db/base.py +6 -3
- fides/api/db/database.py +27 -2
- fides/api/graph/config.py +16 -9
- fides/api/models/attachment.py +15 -3
- fides/api/models/comment.py +23 -5
- fides/api/models/connectionconfig.py +11 -0
- fides/api/models/db_cache.py +1 -1
- fides/api/models/detection_discovery/core.py +15 -15
- fides/api/models/fides_user_respondent_email_verification.py +27 -2
- fides/api/models/manual_task.py +965 -0
- fides/api/models/tcf_publisher_restrictions.py +16 -4
- fides/api/schemas/partitioning/__init__.py +17 -0
- fides/api/schemas/partitioning/bigquery_time_based_partitioning.py +31 -0
- fides/api/schemas/partitioning/time_based_partitioning.py +1376 -0
- fides/api/service/connectors/query_configs/bigquery_query_config.py +44 -22
- fides/api/service/connectors/query_configs/query_config.py +5 -2
- fides/api/util/connection_util.py +25 -2
- fides/common/api/v1/urn_registry.py +4 -0
- fides/ui-build/static/admin/404.html +1 -1
- fides/ui-build/static/admin/_next/static/chunks/{1040-af383f535c11eb24.js → 1040-3def3c62138371bb.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/1169-76bbada4f3d16538.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/1807-3beab149351d5ded.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/{1817-b4688ba5042ec687.js → 1817-a3813209d7a6d28d.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/{2921-aabf41bf3d7573f9.js → 2921-81a48418f77bc9a7.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/{3450-f6fc4ed04a63935f.js → 3450-3a1f0e80ead8d1b0.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/3615-5e2d062d684b8fa1.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/{3855-0dec3e7d9e886550.js → 3855-b85ad4e52433d519.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/{3872-ffa16c2df7ef0ab6.js → 3872-09f81435f7905d76.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/{3923-b0fb0989671407b7.js → 3923-565a852f322fdadc.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/{401-6721f8bcb14a6537.js → 401-c3f586a23a061526.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/{409-037cfc3f096150f0.js → 409-e0d39af1d9ce8ff2.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/4121-de4ca969faf2b9f4.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/{4230-18f4849f9db58a08.js → 4230-d80ae2430aca784a.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/{431-f72599f01b98f07d.js → 431-c74dab231c8ac968.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/{5309-4511df9708d5a63c.js → 5309-0e44dbd914896514.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/{5574-3cd33b3a6c937899.js → 5574-917c5ff63d222308.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/570-c99f07161bd339cd.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/6084-40d5d94561a6093e.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/6662-6a915300505fd9c0.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/{6853-a4097260e402980e.js → 6853-8d0a099f61c758d1.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/{6882-3cc73d407a088d7d.js → 6882-13d6f8d95b1e404f.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/{6954-8bac07b8278ded5c.js → 6954-882b87698c5ed4fb.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/7476-aaf8970dbbbe4864.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/7630-c558dc3a199a633d.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/787-9c751615f5816094.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/{79-5670e31eb65d0a53.js → 79-3f742fe4efd9893f.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/{796-9a6b13c838e25538.js → 796-83a8bbdcdb67f2ba.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/827-c6fe34fb336467ae.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/9014-eeae6f581158e645.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/{9046-fdf53cc7e926a8c1.js → 9046-6995482a030e323c.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/{905-742074a074be1055.js → 905-ffdbd0b14167e8bd.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/{9226-50427ff861ffa8bf.js → 9226-8a3be36ad1a9c1e7.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/{9392.25024e070026343d.js → 9392.9a948112de74781b.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/{9676.e60a53f1f5890847.js → 9676.cc515c853b8cf578.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/9767-1dca308466dce863.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/9826-303b14ef4fc7ab4a.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/{9951-7de52d41dc1319f7.js → 9951-b5b77bfcc8efb493.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/{404-ac2f0844e5c4b4cd.js → 404-488f8f03fe0ffbc7.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/{_app-8310662c216e8f04.js → _app-030b20295bb61f96.js} +92 -89
- fides/ui-build/static/admin/_next/static/chunks/pages/add-systems/{manual-0a5f2310ce6b1059.js → manual-1e88ac28bc7a41b6.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/add-systems/{multiple-00cb904825aad7e3.js → multiple-f2c9451fffaaa529.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/add-systems-a8e0bc7b6674f47e.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/consent/configure/{add-vendors-fa7305b88c1afd20.js → add-vendors-b17d160147365cf3.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/consent/{configure-f140ec9d8e8a0f7a.js → configure-8e168d78acdf0cfe.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/consent/privacy-experience/{[id]-0edb7c92518e7d21.js → [id]-5ca2467de7986929.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/consent/privacy-experience/{new-a0039f216fb3eb93.js → new-06bb3b0bf097fcdb.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/consent/{privacy-experience-d8d926f0735a2546.js → privacy-experience-3c11fecc2797ab68.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/consent/privacy-notices/{[id]-5c949f2e3cef2398.js → [id]-92bc6c7b82a679b4.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/consent/privacy-notices/{new-130155cfb4a0bcc7.js → new-a3da3243526b7ecb.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/consent/{privacy-notices-1135ad8924d32c36.js → privacy-notices-b7d82386e7521041.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/consent/{properties-776855e370414beb.js → properties-20a2029b7e7fc895.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/consent/{reporting-21c23f75ff1135d9.js → reporting-0ce299131db4c3e5.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/{consent-4d5ea70a77df1bb8.js → consent-9f6a7a231bba17b7.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/projects/[projectUrn]/{[resourceUrn]-c623d6f1a61c8ea9.js → [resourceUrn]-11d52f1570759c4d.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/projects/{[projectUrn]-030ee304cbe5e530.js → [projectUrn]-fd705968b357e99a.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/{projects-cfac259a30641e68.js → projects-45b585deee0b2371.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/resources/{[resourceUrn]-57bd5cdf784f059f.js → [resourceUrn]-b83afa5565d0c84e.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/{resources-51d99174c8006eb5.js → resources-d8db234a44a2ddf4.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/{data-catalog-132e54310cd047af.js → data-catalog-2810fa2b519a076b.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/action-center/[monitorId]/{[systemId]-c948f93c833d4358.js → [systemId]-e861699a8866c64b.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/action-center/{[monitorId]-333f53caab751428.js → [monitorId]-5dd2fbf33e228f9c.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/{action-center-27205f8457a1ecb0.js → action-center-806cae6bc128cd38.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/{activity-20a1043f6a06198f.js → activity-487285bd5eca2595.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/detection/{[resourceUrn]-06edce289876dea1.js → [resourceUrn]-393e20924c83373e.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/{detection-faf326a6200637d0.js → detection-8733807dad4bc96e.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/discovery/{[resourceUrn]-64acf269256ee74f.js → [resourceUrn]-14bd7500362ff224.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/{discovery-8c3e4be6d36da66d.js → discovery-9e7dfd5a6acc2e8f.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/{datamap-fb50de22f83edd4a.js → datamap-c9509d72c538d22b.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/dataset/[datasetId]/[collectionName]/{[...subfieldNames]-41ab27c4195cfa93.js → [...subfieldNames]-4e8a436297a055b2.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/dataset/[datasetId]/{[collectionName]-6e2caba24b3e78c2.js → [collectionName]-6ce02295bb7f5b6d.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/dataset/{[datasetId]-904d43e31157aa55.js → [datasetId]-9eaa907437fde063.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/dataset/new-55243db34cf77b7e.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/{dataset-5a24f549246605b2.js → dataset-b328595abf20ea5d.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/datastore-connection/{[id]-4a33dd0371dbaebc.js → [id]-81ab412e337d2888.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/datastore-connection/{new-e88509346b2d2851.js → new-34dfc172165dbb1c.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/datastore-connection-cdb77886d7fd4f44.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/{index-1adb6bcb71701ac2.js → index-de954b741cbca022.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/integrations/{[id]-41c4f321da3c6169.js → [id]-16dd6eff8f5dcc81.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/integrations-40a3cd14264796e2.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/messaging/{[id]-9b4d1d61c7c97509.js → [id]-42edcab11e8b5c3c.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/messaging/{add-template-f8fd4795e260887c.js → add-template-333e54ac8c3ad57a.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/{messaging-aa744ae8b61e5ff2.js → messaging-8e1e6f3782983225.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/poc/ant-components-3f62dd959a039fe9.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/poc/form-experiments/{AntForm-47e947c02ae90fd0.js → AntForm-920338760f5a71b5.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/poc/form-experiments/{FormikAntFormItem-24f9a44512ce8827.js → FormikAntFormItem-7462fb387a9de3f8.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/poc/form-experiments/{FormikControlled-e567a69f8c37fb9a.js → FormikControlled-6148fce7a4e2e9ca.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/poc/form-experiments/{FormikField-35a33f9c7def2220.js → FormikField-30efd8c937bf19e4.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/poc/{forms-780e18dde8e38099.js → forms-c44de83e0952d1e0.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/poc/table-migration-7852aa60090c8c9a.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/[id]-11dd6152bf6607cc.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/configure/messaging-c50c2ee7d7d2a585.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/configure/storage-282de19599d67aaf.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/{configure-1a1aa83a3f88844c.js → configure-1d981663e1a84166.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests-3f962ade5df86380.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/properties/{[id]-19737d4f21aadbee.js → [id]-b08a69b1c460c7fe.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/properties/{add-property-9ccb295110feee20.js → add-property-a5d1c65ec21df69d.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/{properties-3a1037a2e036212a.js → properties-3a75c6ed8308d126.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/reporting/{datamap-959d2a35ca015976.js → datamap-dda59a7105ee609b.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/about/{alpha-965cc21889b25e44.js → alpha-6773158ba6ccf4b0.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/{about-0e1c381d488a7ada.js → about-2e046d177d52465c.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/consent/[configuration_id]/{[purpose_id]-1ad018d87c79a9d6.js → [purpose_id]-91f2ec72f9654cbd.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/consent-0a87f29768425a37.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/{custom-fields-9d5310145cbdc8ba.js → custom-fields-94d97e3eb964c494.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/{domain-records-0b44b2b224077dcd.js → domain-records-2c7ecff0a8a74c42.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/domains-b9e77c75c6b77c88.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/email-templates-bb60c397a03558d8.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/{locations-811dadb489f23d7d.js → locations-8d4383584c72eb5a.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/organization-4b835393f5274379.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/{regulations-54f142bc3e4c95ba.js → regulations-29892065d99ff113.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/systems/configure/[id]/test-datasets-9669fa6b20545530.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/systems/configure/{[id]-6eb886e7b7e6785b.js → [id]-8fa8a2f238e08791.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/{systems-7b71274334c559a4.js → systems-acdbdd3dfd21162f.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/taxonomy-c9510a1eb612323d.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/user-management/{new-b124cc24b930c9e1.js → new-a2524414e968f862.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/user-management/profile/{[id]-75d41fde668b9025.js → [id]-87ed17fa1d9f8f72.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/{user-management-dd43755b687c09a7.js → user-management-6b4e0764bb8816b8.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/webpack-da78c536f3d86d06.js +1 -0
- fides/ui-build/static/admin/_next/static/css/{c693338e3bc8dcc6.css → 1994066ec907b7df.css} +1 -1
- fides/ui-build/static/admin/_next/static/ezJVaZ_Oi_0J2-wPEOvj1/_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/api/models/manual_tasks/__init__.py +0 -14
- fides/api/models/manual_tasks/manual_task.py +0 -120
- fides/api/models/manual_tasks/manual_task_config.py +0 -136
- fides/api/models/manual_tasks/manual_task_log.py +0 -104
- fides/api/schemas/manual_tasks/__init__.py +0 -0
- fides/api/schemas/manual_tasks/manual_task_config.py +0 -311
- fides/api/schemas/manual_tasks/manual_task_schemas.py +0 -79
- fides/api/schemas/manual_tasks/manual_task_status.py +0 -151
- fides/service/manual_tasks/__init__.py +0 -0
- fides/service/manual_tasks/manual_task_config_service.py +0 -370
- fides/service/manual_tasks/manual_task_service.py +0 -294
- fides/service/manual_tasks/utils.py +0 -185
- fides/ui-build/static/admin/_next/static/chunks/1100-2dfb464ef0359d6d.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/2430-b480401d44c55416.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/3505-a79256cd851dfab4.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/3513-24db696153a0778b.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/3670-2abd9b2f17770872.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/3983-17ae9c232bddc413.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/4060-cb74476245af456e.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/4121-8a791c8cc79d28c4.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/4481-f597a7cf03f8c9e1.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/6060-cb1ab5be7067bf7b.js +0 -4
- fides/ui-build/static/admin/_next/static/chunks/6277-32adfa799bfd1616.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/6659-b2088f525bf13c17.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/6662-0ce35f1a7a4d07b0.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/69-9952d261ca57275e.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/7553-a95939c32d54b5b7.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/8433-0acacfca722ce475.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/9767-118e4abca85bbd97.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/c78d26b1-88a3e1bacb2a03c2.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/add-systems-9fee3bc13b393070.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/dataset/new-3f997c29f6d8cb24.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/datastore-connection-8f9b8890018e1ea5.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/integrations-adc286ff254e7f41.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/poc/ant-components-3407158757fb3627.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/poc/table-migration-7a17dffa515e5560.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/[id]-91dd0039cc2b70bc.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/configure/messaging-dda47b868cf8ea27.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/configure/storage-53acc4a492d160ab.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests-138e4697e269d339.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/consent-4c56222e847986ff.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/domains-50bdc72e2f34c39e.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/email-templates-983fbf2cf335b945.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/organization-5ae1bdd93c5bd72a.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/systems/configure/[id]/test-datasets-fef247a87baeb080.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/taxonomy-88178d29a15ba479.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/webpack-0a61b5bd21a41fe6.js +0 -1
- fides/ui-build/static/admin/_next/static/rJbP2kuATyoki-YIQWFdS/_buildManifest.js +0 -1
- {ethyca_fides-2.64.2rc0.dist-info → ethyca_fides-2.64.3b0.dist-info}/WHEEL +0 -0
- {ethyca_fides-2.64.2rc0.dist-info → ethyca_fides-2.64.3b0.dist-info}/entry_points.txt +0 -0
- {ethyca_fides-2.64.2rc0.dist-info → ethyca_fides-2.64.3b0.dist-info}/licenses/LICENSE +0 -0
- {ethyca_fides-2.64.2rc0.dist-info → ethyca_fides-2.64.3b0.dist-info}/top_level.txt +0 -0
- /fides/ui-build/static/admin/_next/static/{rJbP2kuATyoki-YIQWFdS → ezJVaZ_Oi_0J2-wPEOvj1}/_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-06-
|
|
11
|
+
"date": "2025-06-30T18:45:24-0400",
|
|
12
12
|
"dirty": false,
|
|
13
13
|
"error": null,
|
|
14
|
-
"full-revisionid": "
|
|
15
|
-
"version": "2.64.
|
|
14
|
+
"full-revisionid": "25f89cf50afcac815c38422d299fb39b35cd76a3",
|
|
15
|
+
"version": "2.64.3b0"
|
|
16
16
|
}
|
|
17
17
|
''' # END VERSION_JSON
|
|
18
18
|
|
|
@@ -0,0 +1,257 @@
|
|
|
1
|
+
"""manual task allow deletion with orphaned configs
|
|
2
|
+
|
|
3
|
+
Revision ID: 41a634d8c669
|
|
4
|
+
Revises: aadfe83c5644
|
|
5
|
+
Create Date: 2025-06-22 19:34:22.336406
|
|
6
|
+
|
|
7
|
+
"""
|
|
8
|
+
|
|
9
|
+
import sqlalchemy as sa
|
|
10
|
+
from alembic import op
|
|
11
|
+
from sqlalchemy.dialects import postgresql
|
|
12
|
+
|
|
13
|
+
# revision identifiers, used by Alembic.
|
|
14
|
+
revision = "41a634d8c669"
|
|
15
|
+
down_revision = "aadfe83c5644"
|
|
16
|
+
branch_labels = None
|
|
17
|
+
depends_on = None
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
def upgrade():
|
|
21
|
+
"""Allow manual task deletion by making task_id nullable and using SET NULL constraints."""
|
|
22
|
+
|
|
23
|
+
# Make task_id columns nullable to support orphaned records
|
|
24
|
+
op.alter_column("manual_task_config", "task_id", nullable=True)
|
|
25
|
+
op.alter_column("manual_task_instance", "task_id", nullable=True)
|
|
26
|
+
op.alter_column("manual_task_submission", "task_id", nullable=True)
|
|
27
|
+
op.alter_column("manual_task_config_field", "task_id", nullable=True)
|
|
28
|
+
op.alter_column("manual_task_log", "task_id", nullable=True)
|
|
29
|
+
|
|
30
|
+
# manual_task_config: Change task_id to SET NULL (preserve configs when task deleted)
|
|
31
|
+
op.drop_constraint(
|
|
32
|
+
"manual_task_config_task_id_fkey", "manual_task_config", type_="foreignkey"
|
|
33
|
+
)
|
|
34
|
+
op.create_foreign_key(
|
|
35
|
+
None,
|
|
36
|
+
"manual_task_config",
|
|
37
|
+
"manual_task",
|
|
38
|
+
["task_id"],
|
|
39
|
+
["id"],
|
|
40
|
+
ondelete="SET NULL",
|
|
41
|
+
)
|
|
42
|
+
|
|
43
|
+
# manual_task_instance: Change task_id to SET NULL (preserve instances when task deleted)
|
|
44
|
+
# Keep config_id as RESTRICT (instances should not be deleted when config deleted)
|
|
45
|
+
op.drop_constraint(
|
|
46
|
+
"manual_task_instance_config_id_fkey",
|
|
47
|
+
"manual_task_instance",
|
|
48
|
+
type_="foreignkey",
|
|
49
|
+
)
|
|
50
|
+
op.drop_constraint(
|
|
51
|
+
"manual_task_instance_task_id_fkey", "manual_task_instance", type_="foreignkey"
|
|
52
|
+
)
|
|
53
|
+
op.create_foreign_key(
|
|
54
|
+
None,
|
|
55
|
+
"manual_task_instance",
|
|
56
|
+
"manual_task_config",
|
|
57
|
+
["config_id"],
|
|
58
|
+
["id"],
|
|
59
|
+
ondelete="RESTRICT",
|
|
60
|
+
)
|
|
61
|
+
op.create_foreign_key(
|
|
62
|
+
None,
|
|
63
|
+
"manual_task_instance",
|
|
64
|
+
"manual_task",
|
|
65
|
+
["task_id"],
|
|
66
|
+
["id"],
|
|
67
|
+
ondelete="SET NULL",
|
|
68
|
+
)
|
|
69
|
+
|
|
70
|
+
# manual_task_submission: Change task_id to SET NULL, keep others as RESTRICT
|
|
71
|
+
# Keep instance_id as CASCADE since submissions should be deleted when instance is deleted
|
|
72
|
+
op.drop_constraint(
|
|
73
|
+
"manual_task_submission_config_id_fkey",
|
|
74
|
+
"manual_task_submission",
|
|
75
|
+
type_="foreignkey",
|
|
76
|
+
)
|
|
77
|
+
op.drop_constraint(
|
|
78
|
+
"manual_task_submission_field_id_fkey",
|
|
79
|
+
"manual_task_submission",
|
|
80
|
+
type_="foreignkey",
|
|
81
|
+
)
|
|
82
|
+
op.drop_constraint(
|
|
83
|
+
"manual_task_submission_task_id_fkey",
|
|
84
|
+
"manual_task_submission",
|
|
85
|
+
type_="foreignkey",
|
|
86
|
+
)
|
|
87
|
+
op.create_foreign_key(
|
|
88
|
+
None,
|
|
89
|
+
"manual_task_submission",
|
|
90
|
+
"manual_task",
|
|
91
|
+
["task_id"],
|
|
92
|
+
["id"],
|
|
93
|
+
ondelete="SET NULL",
|
|
94
|
+
)
|
|
95
|
+
op.create_foreign_key(
|
|
96
|
+
None,
|
|
97
|
+
"manual_task_submission",
|
|
98
|
+
"manual_task_config",
|
|
99
|
+
["config_id"],
|
|
100
|
+
["id"],
|
|
101
|
+
ondelete="RESTRICT",
|
|
102
|
+
)
|
|
103
|
+
op.create_foreign_key(
|
|
104
|
+
None,
|
|
105
|
+
"manual_task_submission",
|
|
106
|
+
"manual_task_config_field",
|
|
107
|
+
["field_id"],
|
|
108
|
+
["id"],
|
|
109
|
+
ondelete="RESTRICT",
|
|
110
|
+
)
|
|
111
|
+
|
|
112
|
+
# manual_task_config_field: Change task_id to SET NULL (preserve fields when task deleted)
|
|
113
|
+
op.drop_constraint(
|
|
114
|
+
"manual_task_config_field_task_id_fkey",
|
|
115
|
+
"manual_task_config_field",
|
|
116
|
+
type_="foreignkey",
|
|
117
|
+
)
|
|
118
|
+
op.create_foreign_key(
|
|
119
|
+
None,
|
|
120
|
+
"manual_task_config_field",
|
|
121
|
+
"manual_task",
|
|
122
|
+
["task_id"],
|
|
123
|
+
["id"],
|
|
124
|
+
ondelete="SET NULL",
|
|
125
|
+
)
|
|
126
|
+
|
|
127
|
+
# manual_task_log: Change task_id to SET NULL (preserve logs when task deleted)
|
|
128
|
+
op.drop_constraint(
|
|
129
|
+
"manual_task_log_task_id_fkey", "manual_task_log", type_="foreignkey"
|
|
130
|
+
)
|
|
131
|
+
op.create_foreign_key(
|
|
132
|
+
"manual_task_log_task_id_fkey",
|
|
133
|
+
"manual_task_log",
|
|
134
|
+
"manual_task",
|
|
135
|
+
["task_id"],
|
|
136
|
+
["id"],
|
|
137
|
+
ondelete="SET NULL",
|
|
138
|
+
)
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
def downgrade():
|
|
142
|
+
"""Revert to original CASCADE behavior and make task_id non-nullable."""
|
|
143
|
+
|
|
144
|
+
# Revert manual_task_log constraints
|
|
145
|
+
op.drop_constraint(
|
|
146
|
+
"manual_task_log_task_id_fkey", "manual_task_log", type_="foreignkey"
|
|
147
|
+
)
|
|
148
|
+
op.create_foreign_key(
|
|
149
|
+
"manual_task_log_task_id_fkey",
|
|
150
|
+
"manual_task_log",
|
|
151
|
+
"manual_task",
|
|
152
|
+
["task_id"],
|
|
153
|
+
["id"],
|
|
154
|
+
ondelete="CASCADE",
|
|
155
|
+
)
|
|
156
|
+
|
|
157
|
+
# Revert manual_task_config_field constraints
|
|
158
|
+
op.drop_constraint(
|
|
159
|
+
"manual_task_config_field_task_id_fkey",
|
|
160
|
+
"manual_task_config_field",
|
|
161
|
+
type_="foreignkey",
|
|
162
|
+
)
|
|
163
|
+
op.create_foreign_key(
|
|
164
|
+
"manual_task_config_field_task_id_fkey",
|
|
165
|
+
"manual_task_config_field",
|
|
166
|
+
"manual_task",
|
|
167
|
+
["task_id"],
|
|
168
|
+
["id"],
|
|
169
|
+
ondelete="CASCADE",
|
|
170
|
+
)
|
|
171
|
+
|
|
172
|
+
# Revert manual_task_submission constraints
|
|
173
|
+
op.drop_constraint(
|
|
174
|
+
"manual_task_submission_task_id_fkey",
|
|
175
|
+
"manual_task_submission",
|
|
176
|
+
type_="foreignkey",
|
|
177
|
+
)
|
|
178
|
+
op.drop_constraint(
|
|
179
|
+
"manual_task_submission_field_id_fkey",
|
|
180
|
+
"manual_task_submission",
|
|
181
|
+
type_="foreignkey",
|
|
182
|
+
)
|
|
183
|
+
op.drop_constraint(
|
|
184
|
+
"manual_task_submission_config_id_fkey",
|
|
185
|
+
"manual_task_submission",
|
|
186
|
+
type_="foreignkey",
|
|
187
|
+
)
|
|
188
|
+
op.create_foreign_key(
|
|
189
|
+
"manual_task_submission_task_id_fkey",
|
|
190
|
+
"manual_task_submission",
|
|
191
|
+
"manual_task",
|
|
192
|
+
["task_id"],
|
|
193
|
+
["id"],
|
|
194
|
+
ondelete="CASCADE",
|
|
195
|
+
)
|
|
196
|
+
op.create_foreign_key(
|
|
197
|
+
"manual_task_submission_field_id_fkey",
|
|
198
|
+
"manual_task_submission",
|
|
199
|
+
"manual_task_config_field",
|
|
200
|
+
["field_id"],
|
|
201
|
+
["id"],
|
|
202
|
+
ondelete="CASCADE",
|
|
203
|
+
)
|
|
204
|
+
op.create_foreign_key(
|
|
205
|
+
"manual_task_submission_config_id_fkey",
|
|
206
|
+
"manual_task_submission",
|
|
207
|
+
"manual_task_config",
|
|
208
|
+
["config_id"],
|
|
209
|
+
["id"],
|
|
210
|
+
ondelete="CASCADE",
|
|
211
|
+
)
|
|
212
|
+
|
|
213
|
+
# Revert manual_task_instance constraints
|
|
214
|
+
op.drop_constraint(
|
|
215
|
+
"manual_task_instance_task_id_fkey", "manual_task_instance", type_="foreignkey"
|
|
216
|
+
)
|
|
217
|
+
op.drop_constraint(
|
|
218
|
+
"manual_task_instance_config_id_fkey",
|
|
219
|
+
"manual_task_instance",
|
|
220
|
+
type_="foreignkey",
|
|
221
|
+
)
|
|
222
|
+
op.create_foreign_key(
|
|
223
|
+
"manual_task_instance_task_id_fkey",
|
|
224
|
+
"manual_task_instance",
|
|
225
|
+
"manual_task",
|
|
226
|
+
["task_id"],
|
|
227
|
+
["id"],
|
|
228
|
+
ondelete="CASCADE",
|
|
229
|
+
)
|
|
230
|
+
op.create_foreign_key(
|
|
231
|
+
"manual_task_instance_config_id_fkey",
|
|
232
|
+
"manual_task_instance",
|
|
233
|
+
"manual_task_config",
|
|
234
|
+
["config_id"],
|
|
235
|
+
["id"],
|
|
236
|
+
ondelete="CASCADE",
|
|
237
|
+
)
|
|
238
|
+
|
|
239
|
+
# Revert manual_task_config constraints
|
|
240
|
+
op.drop_constraint(
|
|
241
|
+
"manual_task_config_task_id_fkey", "manual_task_config", type_="foreignkey"
|
|
242
|
+
)
|
|
243
|
+
op.create_foreign_key(
|
|
244
|
+
"manual_task_config_task_id_fkey",
|
|
245
|
+
"manual_task_config",
|
|
246
|
+
"manual_task",
|
|
247
|
+
["task_id"],
|
|
248
|
+
["id"],
|
|
249
|
+
ondelete="CASCADE",
|
|
250
|
+
)
|
|
251
|
+
|
|
252
|
+
# Make task_id columns non-nullable again
|
|
253
|
+
op.alter_column("manual_task_log", "task_id", nullable=False)
|
|
254
|
+
op.alter_column("manual_task_config_field", "task_id", nullable=False)
|
|
255
|
+
op.alter_column("manual_task_submission", "task_id", nullable=False)
|
|
256
|
+
op.alter_column("manual_task_instance", "task_id", nullable=False)
|
|
257
|
+
op.alter_column("manual_task_config", "task_id", nullable=False)
|
|
@@ -0,0 +1,256 @@
|
|
|
1
|
+
"""add_manual_task_instance_table
|
|
2
|
+
|
|
3
|
+
Revision ID: 6a76a1fa4f3f
|
|
4
|
+
Revises: ba414a58ba90
|
|
5
|
+
Create Date: 2025-06-10 22:45:27.591492
|
|
6
|
+
|
|
7
|
+
"""
|
|
8
|
+
|
|
9
|
+
import sqlalchemy as sa
|
|
10
|
+
from alembic import op
|
|
11
|
+
from sqlalchemy.dialects.postgresql import JSONB
|
|
12
|
+
|
|
13
|
+
# revision identifiers, used by Alembic.
|
|
14
|
+
revision = "6a76a1fa4f3f"
|
|
15
|
+
down_revision = "ba414a58ba90"
|
|
16
|
+
branch_labels = None
|
|
17
|
+
depends_on = None
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
def upgrade():
|
|
21
|
+
# Add execution_timing column to manual_task_config
|
|
22
|
+
op.add_column(
|
|
23
|
+
"manual_task_config",
|
|
24
|
+
sa.Column(
|
|
25
|
+
"execution_timing",
|
|
26
|
+
sa.String(),
|
|
27
|
+
nullable=False,
|
|
28
|
+
server_default="pre_execution",
|
|
29
|
+
),
|
|
30
|
+
)
|
|
31
|
+
|
|
32
|
+
# Remove due_date column from manual_task
|
|
33
|
+
op.drop_column("manual_task", "due_date")
|
|
34
|
+
|
|
35
|
+
# Create manual_task_instance table
|
|
36
|
+
op.create_table(
|
|
37
|
+
"manual_task_instance",
|
|
38
|
+
sa.Column("id", sa.String(), nullable=False),
|
|
39
|
+
sa.Column(
|
|
40
|
+
"created_at",
|
|
41
|
+
sa.DateTime(timezone=True),
|
|
42
|
+
server_default=sa.text("now()"),
|
|
43
|
+
nullable=False,
|
|
44
|
+
),
|
|
45
|
+
sa.Column(
|
|
46
|
+
"updated_at",
|
|
47
|
+
sa.DateTime(timezone=True),
|
|
48
|
+
server_default=sa.text("now()"),
|
|
49
|
+
nullable=False,
|
|
50
|
+
),
|
|
51
|
+
sa.Column("task_id", sa.String(), nullable=False),
|
|
52
|
+
sa.Column("config_id", sa.String(), nullable=False),
|
|
53
|
+
sa.Column("entity_id", sa.String(), nullable=False),
|
|
54
|
+
sa.Column("entity_type", sa.String(), nullable=False),
|
|
55
|
+
sa.Column("status", sa.String(), nullable=False, server_default="pending"),
|
|
56
|
+
sa.Column("due_date", sa.DateTime(timezone=True), nullable=True),
|
|
57
|
+
sa.Column("completed_at", sa.DateTime(timezone=True), nullable=True),
|
|
58
|
+
sa.Column("completed_by_id", sa.String(), nullable=True),
|
|
59
|
+
sa.ForeignKeyConstraint(
|
|
60
|
+
["config_id"], ["manual_task_config.id"], ondelete="CASCADE"
|
|
61
|
+
),
|
|
62
|
+
sa.ForeignKeyConstraint(["task_id"], ["manual_task.id"], ondelete="CASCADE"),
|
|
63
|
+
sa.PrimaryKeyConstraint("id"),
|
|
64
|
+
)
|
|
65
|
+
|
|
66
|
+
# Create indexes for manual_task_instance
|
|
67
|
+
op.create_index(
|
|
68
|
+
"ix_manual_task_instance_task_id", "manual_task_instance", ["task_id"]
|
|
69
|
+
)
|
|
70
|
+
op.create_index(
|
|
71
|
+
"ix_manual_task_instance_config_id", "manual_task_instance", ["config_id"]
|
|
72
|
+
)
|
|
73
|
+
op.create_index(
|
|
74
|
+
"ix_manual_task_instance_entity_id", "manual_task_instance", ["entity_id"]
|
|
75
|
+
)
|
|
76
|
+
op.create_index(
|
|
77
|
+
"ix_manual_task_instance_entity_type", "manual_task_instance", ["entity_type"]
|
|
78
|
+
)
|
|
79
|
+
op.create_index(
|
|
80
|
+
"ix_manual_task_instance_status", "manual_task_instance", ["status"]
|
|
81
|
+
)
|
|
82
|
+
op.create_index(
|
|
83
|
+
"ix_manual_task_instance_completed_at", "manual_task_instance", ["completed_at"]
|
|
84
|
+
)
|
|
85
|
+
# Composite index for common query pattern
|
|
86
|
+
op.create_index(
|
|
87
|
+
"ix_manual_task_instance_entity",
|
|
88
|
+
"manual_task_instance",
|
|
89
|
+
["entity_type", "entity_id"],
|
|
90
|
+
)
|
|
91
|
+
|
|
92
|
+
# Create manual_task_submission table
|
|
93
|
+
op.create_table(
|
|
94
|
+
"manual_task_submission",
|
|
95
|
+
sa.Column("id", sa.String(), nullable=False),
|
|
96
|
+
sa.Column(
|
|
97
|
+
"created_at",
|
|
98
|
+
sa.DateTime(timezone=True),
|
|
99
|
+
server_default=sa.text("now()"),
|
|
100
|
+
nullable=False,
|
|
101
|
+
),
|
|
102
|
+
sa.Column(
|
|
103
|
+
"updated_at",
|
|
104
|
+
sa.DateTime(timezone=True),
|
|
105
|
+
server_default=sa.text("now()"),
|
|
106
|
+
nullable=False,
|
|
107
|
+
),
|
|
108
|
+
sa.Column("task_id", sa.String(), nullable=False),
|
|
109
|
+
sa.Column("config_id", sa.String(), nullable=False),
|
|
110
|
+
sa.Column("field_id", sa.String(), nullable=False),
|
|
111
|
+
sa.Column("instance_id", sa.String(), nullable=False),
|
|
112
|
+
sa.Column("submitted_by", sa.String(), nullable=True),
|
|
113
|
+
sa.Column("submitted_at", sa.DateTime(timezone=True), nullable=False),
|
|
114
|
+
sa.Column("data", JSONB, nullable=False),
|
|
115
|
+
sa.ForeignKeyConstraint(
|
|
116
|
+
["config_id"], ["manual_task_config.id"], ondelete="CASCADE"
|
|
117
|
+
),
|
|
118
|
+
sa.ForeignKeyConstraint(
|
|
119
|
+
["field_id"], ["manual_task_config_field.id"], ondelete="CASCADE"
|
|
120
|
+
),
|
|
121
|
+
sa.ForeignKeyConstraint(
|
|
122
|
+
["instance_id"], ["manual_task_instance.id"], ondelete="CASCADE"
|
|
123
|
+
),
|
|
124
|
+
sa.ForeignKeyConstraint(["task_id"], ["manual_task.id"], ondelete="CASCADE"),
|
|
125
|
+
sa.ForeignKeyConstraint(
|
|
126
|
+
["submitted_by"], ["fidesuser.id"], ondelete="SET NULL"
|
|
127
|
+
),
|
|
128
|
+
sa.PrimaryKeyConstraint("id"),
|
|
129
|
+
)
|
|
130
|
+
|
|
131
|
+
# Create indexes for manual_task_submission
|
|
132
|
+
op.create_index(
|
|
133
|
+
"ix_manual_task_submission_task_id", "manual_task_submission", ["task_id"]
|
|
134
|
+
)
|
|
135
|
+
op.create_index(
|
|
136
|
+
"ix_manual_task_submission_config_id", "manual_task_submission", ["config_id"]
|
|
137
|
+
)
|
|
138
|
+
op.create_index(
|
|
139
|
+
"ix_manual_task_submission_field_id", "manual_task_submission", ["field_id"]
|
|
140
|
+
)
|
|
141
|
+
op.create_index(
|
|
142
|
+
"ix_manual_task_submission_instance_id",
|
|
143
|
+
"manual_task_submission",
|
|
144
|
+
["instance_id"],
|
|
145
|
+
)
|
|
146
|
+
op.create_index(
|
|
147
|
+
"ix_manual_task_submission_submitted_by",
|
|
148
|
+
"manual_task_submission",
|
|
149
|
+
["submitted_by"],
|
|
150
|
+
)
|
|
151
|
+
op.create_index(
|
|
152
|
+
"ix_manual_task_submission_submitted_at",
|
|
153
|
+
"manual_task_submission",
|
|
154
|
+
["submitted_at"],
|
|
155
|
+
)
|
|
156
|
+
# Composite index for common query pattern
|
|
157
|
+
op.create_index(
|
|
158
|
+
"ix_manual_task_submission_instance_field",
|
|
159
|
+
"manual_task_submission",
|
|
160
|
+
["instance_id", "field_id"],
|
|
161
|
+
)
|
|
162
|
+
|
|
163
|
+
# Add foreign key constraint to manual_task_log.instance_id
|
|
164
|
+
op.create_foreign_key(
|
|
165
|
+
"fk_manual_task_log_instance_id",
|
|
166
|
+
"manual_task_log",
|
|
167
|
+
"manual_task_instance",
|
|
168
|
+
["instance_id"],
|
|
169
|
+
["id"],
|
|
170
|
+
ondelete="CASCADE",
|
|
171
|
+
)
|
|
172
|
+
|
|
173
|
+
# Update foreign key constraint for manual_task_log.config_id to use CASCADE
|
|
174
|
+
op.drop_constraint(
|
|
175
|
+
"fk_manual_task_log_config_id", "manual_task_log", type_="foreignkey"
|
|
176
|
+
)
|
|
177
|
+
op.create_foreign_key(
|
|
178
|
+
"fk_manual_task_log_config_id",
|
|
179
|
+
"manual_task_log",
|
|
180
|
+
"manual_task_config",
|
|
181
|
+
["config_id"],
|
|
182
|
+
["id"],
|
|
183
|
+
ondelete="CASCADE",
|
|
184
|
+
)
|
|
185
|
+
|
|
186
|
+
|
|
187
|
+
def downgrade():
|
|
188
|
+
# Drop execution_timing column from manual_task_config
|
|
189
|
+
op.drop_column("manual_task_config", "execution_timing")
|
|
190
|
+
|
|
191
|
+
# Add due_date column to manual_task
|
|
192
|
+
op.add_column(
|
|
193
|
+
"manual_task",
|
|
194
|
+
sa.Column("due_date", sa.DateTime(timezone=True), nullable=True),
|
|
195
|
+
)
|
|
196
|
+
|
|
197
|
+
# Drop foreign key constraint from manual_task_log.instance_id
|
|
198
|
+
op.drop_constraint(
|
|
199
|
+
"fk_manual_task_log_instance_id", "manual_task_log", type_="foreignkey"
|
|
200
|
+
)
|
|
201
|
+
|
|
202
|
+
# Revert foreign key constraint for manual_task_log.config_id back to SET NULL
|
|
203
|
+
op.drop_constraint(
|
|
204
|
+
"fk_manual_task_log_config_id", "manual_task_log", type_="foreignkey"
|
|
205
|
+
)
|
|
206
|
+
op.create_foreign_key(
|
|
207
|
+
"fk_manual_task_log_config_id",
|
|
208
|
+
"manual_task_log",
|
|
209
|
+
"manual_task_config",
|
|
210
|
+
["config_id"],
|
|
211
|
+
["id"],
|
|
212
|
+
ondelete="SET NULL",
|
|
213
|
+
)
|
|
214
|
+
|
|
215
|
+
# Drop indexes first
|
|
216
|
+
op.drop_index(
|
|
217
|
+
"ix_manual_task_submission_instance_field", table_name="manual_task_submission"
|
|
218
|
+
)
|
|
219
|
+
op.drop_index(
|
|
220
|
+
"ix_manual_task_submission_submitted_at", table_name="manual_task_submission"
|
|
221
|
+
)
|
|
222
|
+
op.drop_index(
|
|
223
|
+
"ix_manual_task_submission_submitted_by", table_name="manual_task_submission"
|
|
224
|
+
)
|
|
225
|
+
op.drop_index(
|
|
226
|
+
"ix_manual_task_submission_instance_id", table_name="manual_task_submission"
|
|
227
|
+
)
|
|
228
|
+
op.drop_index(
|
|
229
|
+
"ix_manual_task_submission_field_id", table_name="manual_task_submission"
|
|
230
|
+
)
|
|
231
|
+
op.drop_index(
|
|
232
|
+
"ix_manual_task_submission_config_id", table_name="manual_task_submission"
|
|
233
|
+
)
|
|
234
|
+
op.drop_index(
|
|
235
|
+
"ix_manual_task_submission_task_id", table_name="manual_task_submission"
|
|
236
|
+
)
|
|
237
|
+
|
|
238
|
+
op.drop_index("ix_manual_task_instance_entity", table_name="manual_task_instance")
|
|
239
|
+
op.drop_index(
|
|
240
|
+
"ix_manual_task_instance_completed_at", table_name="manual_task_instance"
|
|
241
|
+
)
|
|
242
|
+
op.drop_index("ix_manual_task_instance_status", table_name="manual_task_instance")
|
|
243
|
+
op.drop_index(
|
|
244
|
+
"ix_manual_task_instance_entity_type", table_name="manual_task_instance"
|
|
245
|
+
)
|
|
246
|
+
op.drop_index(
|
|
247
|
+
"ix_manual_task_instance_entity_id", table_name="manual_task_instance"
|
|
248
|
+
)
|
|
249
|
+
op.drop_index(
|
|
250
|
+
"ix_manual_task_instance_config_id", table_name="manual_task_instance"
|
|
251
|
+
)
|
|
252
|
+
op.drop_index("ix_manual_task_instance_task_id", table_name="manual_task_instance")
|
|
253
|
+
|
|
254
|
+
# Drop tables in reverse order to handle foreign key constraints
|
|
255
|
+
op.drop_table("manual_task_submission")
|
|
256
|
+
op.drop_table("manual_task_instance")
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"""add_manual_task_to_connectiontype_enum
|
|
2
|
+
|
|
3
|
+
Revision ID: aadfe83c5644
|
|
4
|
+
Revises: 6a76a1fa4f3f
|
|
5
|
+
Create Date: 2025-06-19 18:55:08.131278
|
|
6
|
+
|
|
7
|
+
"""
|
|
8
|
+
|
|
9
|
+
import sqlalchemy as sa
|
|
10
|
+
from alembic import op
|
|
11
|
+
|
|
12
|
+
# revision identifiers, used by Alembic.
|
|
13
|
+
revision = "aadfe83c5644"
|
|
14
|
+
down_revision = "6a76a1fa4f3f"
|
|
15
|
+
branch_labels = None
|
|
16
|
+
depends_on = None
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
def upgrade():
|
|
20
|
+
# Add manual_task to ConnectionType enum
|
|
21
|
+
op.execute("alter type connectiontype rename to connectiontype_old")
|
|
22
|
+
op.execute(
|
|
23
|
+
"create type connectiontype as enum('attentive_email', 'bigquery', 'datahub', 'dynamodb', 'fides', 'generic_consent_email', 'generic_erasure_email', 'dynamic_erasure_email', 'google_cloud_sql_mysql', 'google_cloud_sql_postgres', 'https', 'manual', 'manual_webhook', 'manual_task', 'mariadb', 'mongodb', 'mssql', 'mysql', 'okta', 'postgres', 'rds_mysql', 'rds_postgres', 'redshift', 's3', 'saas', 'scylla', 'snowflake', 'sovrn', 'timescale', 'website')"
|
|
24
|
+
)
|
|
25
|
+
op.execute(
|
|
26
|
+
(
|
|
27
|
+
"alter table connectionconfig alter column connection_type type connectiontype using "
|
|
28
|
+
"connection_type::text::connectiontype"
|
|
29
|
+
)
|
|
30
|
+
)
|
|
31
|
+
op.execute("drop type connectiontype_old")
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
def downgrade():
|
|
35
|
+
# Remove manual_task from ConnectionType enum
|
|
36
|
+
op.execute("alter type connectiontype rename to connectiontype_old")
|
|
37
|
+
op.execute(
|
|
38
|
+
"create type connectiontype as enum('attentive_email', 'bigquery', 'datahub', 'dynamodb', 'fides', 'generic_consent_email', 'generic_erasure_email', 'dynamic_erasure_email', 'google_cloud_sql_mysql', 'google_cloud_sql_postgres', 'https', 'manual', 'manual_webhook', 'mariadb', 'mongodb', 'mssql', 'mysql', 'okta', 'postgres', 'rds_mysql', 'rds_postgres', 'redshift', 's3', 'saas', 'scylla', 'snowflake', 'sovrn', 'timescale', 'website')"
|
|
39
|
+
)
|
|
40
|
+
op.execute(
|
|
41
|
+
(
|
|
42
|
+
"alter table connectionconfig alter column connection_type type connectiontype using "
|
|
43
|
+
"connection_type::text::connectiontype"
|
|
44
|
+
)
|
|
45
|
+
)
|
|
46
|
+
op.execute("drop type connectiontype_old")
|
fides/api/api/v1/api.py
CHANGED
|
@@ -11,6 +11,7 @@ from fides.api.api.v1.endpoints import (
|
|
|
11
11
|
masking_endpoints,
|
|
12
12
|
messaging_endpoints,
|
|
13
13
|
oauth_endpoints,
|
|
14
|
+
partitioning_endpoints,
|
|
14
15
|
policy_endpoints,
|
|
15
16
|
policy_webhook_endpoints,
|
|
16
17
|
pre_approval_webhook_endpoints,
|
|
@@ -42,6 +43,7 @@ api_router.include_router(identity_verification_endpoints.router)
|
|
|
42
43
|
api_router.include_router(storage_endpoints.router)
|
|
43
44
|
api_router.include_router(messaging_endpoints.router)
|
|
44
45
|
api_router.include_router(saas_config_endpoints.router)
|
|
46
|
+
api_router.include_router(partitioning_endpoints.router)
|
|
45
47
|
api_router.include_router(user_endpoints.router)
|
|
46
48
|
api_router.include_router(user_permission_endpoints.router)
|
|
47
49
|
api_router.include_router(manual_webhook_endpoints.router)
|