ethyca-fides 2.64.5rc1__py2.py3-none-any.whl → 2.64.6b0__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.64.5rc1.dist-info → ethyca_fides-2.64.6b0.dist-info}/METADATA +3 -3
- {ethyca_fides-2.64.5rc1.dist-info → ethyca_fides-2.64.6b0.dist-info}/RECORD +237 -246
- 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/7-nocO64klVotMrKmugnq/_buildManifest.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/{1040-c1c1372a7f909aef.js → 1040-d246ed641088a416.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/1169-ae67fde0c6d69abc.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-96182c1558f80b63.js → 1817-60f08a3619b9139c.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/{2921-f5608275555bd7d9.js → 2921-85515257dd94ef4d.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/{3450-272f26c102f3510d.js → 3450-4e472b9e2754fa47.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-beb58821d1ddba89.js → 3855-2d045674fbf72a3c.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/{3872-82482e55e69b5a93.js → 3872-056ddf3ed9d10b51.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/{3923-a54c286a2ba0a47a.js → 3923-257df982a95371b5.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/{401-d2ce0a5a9120e056.js → 401-3f2160e3910d075b.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/{409-86f4f687105917fb.js → 409-3e2248a63dd60e58.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/4121-10bfa009892586fa.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/{4230-63abbdfb9e9016b9.js → 4230-38c6e446801a8729.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/{431-77d59d43e90058ca.js → 431-13b0ef67d5a3df2f.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/{5309-10f68cf805817cfb.js → 5309-fd8cd5aedd45f7c1.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/{5574-b6db9d62362e72d9.js → 5574-028ef28c3cf16995.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-fa1c82d03f6c256a.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/6662-d8ae12f69d325004.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/{6853-8a1b8e1c8b249f2f.js → 6853-2644f28976b46c25.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/{6882-6c94583bffe85ba7.js → 6882-ea071425d25dd2b0.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/{6954-dc3540389daf94da.js → 6954-bb360fb60aac9440.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/7476-7073ec015f84a3e0.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/7630-302a13c63f9bfb45.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/787-b393c03ade9d93dc.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/{79-26ccd45dfd6653a7.js → 79-b67ba449b0f2cc9c.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/{796-38c0f7e6755ad359.js → 796-b7608f09607288b8.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-bbce3c73af16daf9.js → 9046-ece5efe762b810cb.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-5e0ce31cfdedd5ee.js → 9226-c9111590692341b1.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-277a0229aae7662a.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/9826-82c473dcaf892d00.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/{9951-d3d5d0fe4c4edb86.js → 9951-dbd76d7f3a7f1b9a.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/{404-d41660858638adee.js → 404-ef01376efb8427e1.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/{_app-6b3539f8d82ce9ae.js → _app-1650bbc3cb8c2299.js} +92 -89
- fides/ui-build/static/admin/_next/static/chunks/pages/add-systems/{manual-7c5e1e845372c99b.js → manual-4057c399f58d331e.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/add-systems/{multiple-87e78f52af21c4a9.js → multiple-2726ca51f0327347.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/add-systems-a2457d5da25aa854.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/consent/configure/{add-vendors-6374a3a7747df964.js → add-vendors-9fe46ed10a7e7a1a.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/consent/{configure-0512151e2ed0f4c1.js → configure-095828301f22cdaa.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/consent/privacy-experience/{[id]-09435f4ab2deafd2.js → [id]-de60a5b74f6b20ff.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-cd036518b5d4efbe.js → privacy-experience-1ee05fd0bc012ec6.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/consent/privacy-notices/{[id]-0e534580abf670be.js → [id]-5a2e61c7d88bdda1.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/consent/privacy-notices/{new-bb1790eb87b63109.js → new-1bc69669215fa55c.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/consent/{privacy-notices-67e9846f877a3f38.js → privacy-notices-fa8394d2e1072aba.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/consent/{properties-69a92b6ddbc2bae2.js → properties-213c5405e9e4219c.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/consent/{reporting-d07d05f4b898a5ed.js → reporting-44aa77149d71a6fe.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/{consent-23e886d692ab6d1a.js → consent-23ab7bd613a0ad53.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]-6c766c766dc97c5c.js → [projectUrn]-dae11464a091537f.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/{projects-28937a8da3d73145.js → projects-7442023478422295.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-627fbf19dce88e81.js → data-catalog-5597d2e691313bb0.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/action-center/[monitorId]/{[systemId]-ed1629b05519a370.js → [systemId]-da06d05d255d0cd0.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/action-center/{[monitorId]-ad307bfc5f51fd9d.js → [monitorId]-895591fe32af0f4c.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/{action-center-07cbd61ede6e18ac.js → action-center-a932a39e29ac3489.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/{activity-6a2aaed8d0e66d82.js → activity-2cfdf4d55a7594ba.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-b576a94b583a7940.js → datamap-07881d1a5fc03d41.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/dataset/[datasetId]/[collectionName]/{[...subfieldNames]-4912858ffde4621a.js → [...subfieldNames]-57be9d40c67b0acb.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/dataset/[datasetId]/{[collectionName]-df21dd7ca0f35718.js → [collectionName]-bd78d6c6264e2467.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/dataset/{[datasetId]-5ce28a329e8f667f.js → [datasetId]-3c9103487b55e76f.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/dataset/new-e30a546a8cfb6658.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/{dataset-c6fab547396df6ac.js → dataset-500610c0b60f9e7e.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/datastore-connection/{[id]-d04c9925d324eee1.js → [id]-34958fe8183d9479.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/datastore-connection/{new-656abd09ea5ee39a.js → new-761294dbaf59bbe1.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/datastore-connection-59abd36059863e05.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/{index-b66687e8194495a2.js → index-ae100a873eb66d59.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/integrations/[id]-8eee4d0314c83e50.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/integrations-bf3b87b0dd702551.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/messaging/{[id]-b74db8488e2e4b58.js → [id]-2aada2c7b9156053.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/messaging/{add-template-a607018ff097b6c2.js → add-template-fbb7b0c43dedf072.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/{messaging-4a1a04c5179d2053.js → messaging-7230d7ee21368cef.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/poc/{ant-components-1567c9770a5f05aa.js → ant-components-7c234412502f8102.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/poc/form-experiments/{AntForm-4949fe7f1815462b.js → AntForm-72791aab60f3a4bf.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/poc/form-experiments/{FormikAntFormItem-6085f73850302d55.js → FormikAntFormItem-da7d11d6146fa746.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/poc/form-experiments/{FormikControlled-a3158e8217c13850.js → FormikControlled-3045d24344e99017.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/poc/form-experiments/{FormikField-8576f1ef5c67d87d.js → FormikField-5b5b165d3f41a1de.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/poc/{forms-341e67462b5e3352.js → forms-3afd8b6ba6234366.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/poc/table-migration-52d50286216bcb8c.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/[id]-ee8d27e2f17563a0.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/configure/messaging-535b6e5003d892eb.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/configure/storage-7ded688a1e832c63.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/{configure-d24230b890b13762.js → configure-08e0863d432b3348.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests-7d625b170911a072.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/properties/{[id]-2bedc5013e13ab52.js → [id]-b8dcb1f5213521ef.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/properties/{add-property-9d68bd70299dd945.js → add-property-7d8418bb7cb9e1fd.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/{properties-c3116b6bfe2e695e.js → properties-537003822f360ae7.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/reporting/{datamap-6dfa7091b99d8321.js → datamap-ac25749935da453b.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/about/{alpha-9751059905bba190.js → alpha-647d59bb0aa060bf.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/{about-ad29d77012ec9dba.js → about-73adc03fe0182e3f.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/consent/[configuration_id]/{[purpose_id]-32e3190c1ad00b40.js → [purpose_id]-ffa9e9e79ad75828.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/consent-4fb6c8c4bd9cdb3f.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/{custom-fields-d2c0aac32f5d2930.js → custom-fields-94c1b7bfc6cec4d2.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/{domain-records-a10674380f94d014.js → domain-records-e9838b8e49e64e57.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/domains-0de16778ad2f8865.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/email-templates-aac71677024210ad.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/{locations-cc7d629433fa6d44.js → locations-f43e238571b21643.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/organization-f5e0a34f6ae473ad.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/{regulations-64a813cb2741683b.js → regulations-05d3c86ca3ca4d5d.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/systems/configure/[id]/test-datasets-31fcf7b52d8028b0.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/systems/configure/{[id]-fb3d094e4f4585f6.js → [id]-6db01a1afe2f82d5.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/{systems-c2df5b7b0596a9cb.js → systems-8ec7472a7032301f.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/taxonomy-84caae0fc02f8ae1.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]-fd2ff6b13052c54e.js → [id]-e452541827698b1f.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/{user-management-fa052b0439920ef6.js → user-management-530be849391d2425.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/{webpack-e61d457474e00565.js → webpack-e25ccaae1ef867a2.js} +1 -1
- fides/ui-build/static/admin/_next/static/css/23391a3311f80cfe.css +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-3fdbdf211c3c2a5b.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-192986c86dc47869.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/3513-a563133845dc990f.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-3486b45081151b69.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/4121-f0aecb2abd384945.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/4481-d181a9db72984adf.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-ccdb50f676a1b336.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-42940a2b00933e79.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/69-943b19d39da339d9.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/7553-e7ae268701f3dcfe.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/8433-1e065c55c8da73b0.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/9767-96ed554a043c3c4d.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-68955d8441e60668.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/dataset/new-5287c76ecf600281.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/datastore-connection-23fbec0590c8d192.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/integrations/[id]-906bc5f05702efb0.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/integrations-024a1facb9be04d0.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/poc/table-migration-6f0e64f0c52bd68f.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/[id]-6971c7773dbf9b51.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/configure/messaging-303bd2182da03088.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/configure/storage-831572cc7f42615f.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests-569ff31eff637034.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/consent-13a17a4ace7293d1.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/domains-78449b0e02bced88.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/email-templates-7d299c4cb3199036.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/organization-a9fa55c40fa570a6.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/systems/configure/[id]/test-datasets-547b0cfe1e49e6d2.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/taxonomy-261deb6fb3e51cb3.js +0 -1
- fides/ui-build/static/admin/_next/static/css/c693338e3bc8dcc6.css +0 -1
- fides/ui-build/static/admin/_next/static/css/e458b5f1afdbb7fc.css +0 -1
- fides/ui-build/static/admin/_next/static/wyqNbL8A-USLbXV5z1vV0/_buildManifest.js +0 -1
- {ethyca_fides-2.64.5rc1.dist-info → ethyca_fides-2.64.6b0.dist-info}/WHEEL +0 -0
- {ethyca_fides-2.64.5rc1.dist-info → ethyca_fides-2.64.6b0.dist-info}/entry_points.txt +0 -0
- {ethyca_fides-2.64.5rc1.dist-info → ethyca_fides-2.64.6b0.dist-info}/licenses/LICENSE +0 -0
- {ethyca_fides-2.64.5rc1.dist-info → ethyca_fides-2.64.6b0.dist-info}/top_level.txt +0 -0
- /fides/ui-build/static/admin/_next/static/{wyqNbL8A-USLbXV5z1vV0 → 7-nocO64klVotMrKmugnq}/_ssgManifest.js +0 -0
|
@@ -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/23391a3311f80cfe.css" as="style"/><link rel="stylesheet" href="/_next/static/css/23391a3311f80cfe.css" data-n-g=""/><link rel="preload" href="/_next/static/css/92fc10cc7ed1aba3.css" as="style"/><link rel="stylesheet" href="/_next/static/css/92fc10cc7ed1aba3.css" data-n-p=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-e25ccaae1ef867a2.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-1650bbc3cb8c2299.js" defer=""></script><script src="/_next/static/chunks/2858-0b44609b6be7850b.js" defer=""></script><script src="/_next/static/chunks/2866-a73888c17a195cbe.js" defer=""></script><script src="/_next/static/chunks/9278-9b1b5970f0702668.js" defer=""></script><script src="/_next/static/chunks/699-8ca44b0de9fa20f0.js" defer=""></script><script src="/_next/static/chunks/5277-e8a036319456127f.js" defer=""></script><script src="/_next/static/chunks/409-3e2248a63dd60e58.js" defer=""></script><script src="/_next/static/chunks/401-3f2160e3910d075b.js" defer=""></script><script src="/_next/static/chunks/9951-dbd76d7f3a7f1b9a.js" defer=""></script><script src="/_next/static/chunks/1040-d246ed641088a416.js" defer=""></script><script src="/_next/static/chunks/3450-4e472b9e2754fa47.js" defer=""></script><script src="/_next/static/chunks/pages/systems/configure/%5Bid%5D-6db01a1afe2f82d5.js" defer=""></script><script src="/_next/static/7-nocO64klVotMrKmugnq/_buildManifest.js" defer=""></script><script src="/_next/static/7-nocO64klVotMrKmugnq/_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":"/systems/configure/[id]","query":{},"buildId":"7-nocO64klVotMrKmugnq","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link data-next-font="" rel="preconnect" href="/" crossorigin="anonymous"/><link rel="preload" href="/_next/static/css/
|
|
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/23391a3311f80cfe.css" as="style"/><link rel="stylesheet" href="/_next/static/css/23391a3311f80cfe.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-e25ccaae1ef867a2.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-1650bbc3cb8c2299.js" defer=""></script><script src="/_next/static/chunks/pages/systems-8ec7472a7032301f.js" defer=""></script><script src="/_next/static/7-nocO64klVotMrKmugnq/_buildManifest.js" defer=""></script><script src="/_next/static/7-nocO64klVotMrKmugnq/_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":"/systems","query":{},"buildId":"7-nocO64klVotMrKmugnq","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link data-next-font="" rel="preconnect" href="/" crossorigin="anonymous"/><link rel="preload" href="/_next/static/css/
|
|
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/23391a3311f80cfe.css" as="style"/><link rel="stylesheet" href="/_next/static/css/23391a3311f80cfe.css" data-n-g=""/><link rel="preload" href="/_next/static/css/34a7eb08b86ddb57.css" as="style"/><link rel="stylesheet" href="/_next/static/css/34a7eb08b86ddb57.css" data-n-p=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-e25ccaae1ef867a2.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-1650bbc3cb8c2299.js" defer=""></script><script src="/_next/static/chunks/678d4732-50255cc09048e643.js" defer=""></script><script src="/_next/static/chunks/2858-0b44609b6be7850b.js" defer=""></script><script src="/_next/static/chunks/2866-a73888c17a195cbe.js" defer=""></script><script src="/_next/static/chunks/9278-9b1b5970f0702668.js" defer=""></script><script src="/_next/static/chunks/3662-f6a1ddca5ee42076.js" defer=""></script><script src="/_next/static/chunks/570-c99f07161bd339cd.js" defer=""></script><script src="/_next/static/chunks/pages/taxonomy-84caae0fc02f8ae1.js" defer=""></script><script src="/_next/static/7-nocO64klVotMrKmugnq/_buildManifest.js" defer=""></script><script src="/_next/static/7-nocO64klVotMrKmugnq/_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":"/taxonomy","query":{},"buildId":"7-nocO64klVotMrKmugnq","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link data-next-font="" rel="preconnect" href="/" crossorigin="anonymous"/><link rel="preload" href="/_next/static/css/
|
|
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/23391a3311f80cfe.css" as="style"/><link rel="stylesheet" href="/_next/static/css/23391a3311f80cfe.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-e25ccaae1ef867a2.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-1650bbc3cb8c2299.js" defer=""></script><script src="/_next/static/chunks/7476-7073ec015f84a3e0.js" defer=""></script><script src="/_next/static/chunks/4121-10bfa009892586fa.js" defer=""></script><script src="/_next/static/chunks/pages/user-management/new-a2524414e968f862.js" defer=""></script><script src="/_next/static/7-nocO64klVotMrKmugnq/_buildManifest.js" defer=""></script><script src="/_next/static/7-nocO64klVotMrKmugnq/_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":"/user-management/new","query":{},"buildId":"7-nocO64klVotMrKmugnq","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link data-next-font="" rel="preconnect" href="/" crossorigin="anonymous"/><link rel="preload" href="/_next/static/css/
|
|
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/23391a3311f80cfe.css" as="style"/><link rel="stylesheet" href="/_next/static/css/23391a3311f80cfe.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-e25ccaae1ef867a2.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-1650bbc3cb8c2299.js" defer=""></script><script src="/_next/static/chunks/7476-7073ec015f84a3e0.js" defer=""></script><script src="/_next/static/chunks/4121-10bfa009892586fa.js" defer=""></script><script src="/_next/static/chunks/pages/user-management/profile/%5Bid%5D-e452541827698b1f.js" defer=""></script><script src="/_next/static/7-nocO64klVotMrKmugnq/_buildManifest.js" defer=""></script><script src="/_next/static/7-nocO64klVotMrKmugnq/_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":"/user-management/profile/[id]","query":{},"buildId":"7-nocO64klVotMrKmugnq","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link data-next-font="" rel="preconnect" href="/" crossorigin="anonymous"/><link rel="preload" href="/_next/static/css/
|
|
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/23391a3311f80cfe.css" as="style"/><link rel="stylesheet" href="/_next/static/css/23391a3311f80cfe.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-e25ccaae1ef867a2.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-1650bbc3cb8c2299.js" defer=""></script><script src="/_next/static/chunks/7476-7073ec015f84a3e0.js" defer=""></script><script src="/_next/static/chunks/pages/user-management-530be849391d2425.js" defer=""></script><script src="/_next/static/7-nocO64klVotMrKmugnq/_buildManifest.js" defer=""></script><script src="/_next/static/7-nocO64klVotMrKmugnq/_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":"/user-management","query":{},"buildId":"7-nocO64klVotMrKmugnq","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
from fides.api.models.manual_tasks.manual_task import ManualTask, ManualTaskReference
|
|
2
|
-
from fides.api.models.manual_tasks.manual_task_config import (
|
|
3
|
-
ManualTaskConfig,
|
|
4
|
-
ManualTaskConfigField,
|
|
5
|
-
)
|
|
6
|
-
from fides.api.models.manual_tasks.manual_task_log import ManualTaskLog
|
|
7
|
-
|
|
8
|
-
__all__ = [
|
|
9
|
-
"ManualTask",
|
|
10
|
-
"ManualTaskConfig",
|
|
11
|
-
"ManualTaskConfigField",
|
|
12
|
-
"ManualTaskReference",
|
|
13
|
-
"ManualTaskLog",
|
|
14
|
-
]
|
|
@@ -1,120 +0,0 @@
|
|
|
1
|
-
from typing import TYPE_CHECKING, Any
|
|
2
|
-
|
|
3
|
-
from sqlalchemy import Column, DateTime, ForeignKey, String
|
|
4
|
-
from sqlalchemy.ext.declarative import declared_attr
|
|
5
|
-
from sqlalchemy.orm import Session, relationship
|
|
6
|
-
|
|
7
|
-
from fides.api.db.base_class import Base
|
|
8
|
-
from fides.api.db.util import EnumColumn
|
|
9
|
-
from fides.api.models.manual_tasks.manual_task_log import ManualTaskLog
|
|
10
|
-
from fides.api.schemas.manual_tasks.manual_task_schemas import (
|
|
11
|
-
ManualTaskLogStatus,
|
|
12
|
-
ManualTaskParentEntityType,
|
|
13
|
-
ManualTaskReferenceType,
|
|
14
|
-
ManualTaskType,
|
|
15
|
-
)
|
|
16
|
-
|
|
17
|
-
if TYPE_CHECKING: # pragma: no cover
|
|
18
|
-
from fides.api.models.manual_tasks.manual_task_config import ( # pragma: no cover
|
|
19
|
-
ManualTaskConfig,
|
|
20
|
-
)
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
class ManualTask(Base):
|
|
24
|
-
"""Model for storing manual tasks.
|
|
25
|
-
|
|
26
|
-
This model can be used for both privacy request tasks and general tasks.
|
|
27
|
-
For privacy requests, it replaces the functionality of manual webhooks.
|
|
28
|
-
For other use cases, it provides a flexible task management system.
|
|
29
|
-
|
|
30
|
-
There can only be one ManualTask per parent entity.
|
|
31
|
-
You can create multiple Configs for the same ManualTask.
|
|
32
|
-
"""
|
|
33
|
-
|
|
34
|
-
@declared_attr
|
|
35
|
-
def __tablename__(cls) -> str:
|
|
36
|
-
"""Overriding base class method to set the table name."""
|
|
37
|
-
return "manual_task"
|
|
38
|
-
|
|
39
|
-
# Database columns
|
|
40
|
-
task_type = Column(
|
|
41
|
-
EnumColumn(ManualTaskType),
|
|
42
|
-
nullable=False,
|
|
43
|
-
default=ManualTaskType.privacy_request,
|
|
44
|
-
)
|
|
45
|
-
parent_entity_id = Column(String, nullable=False)
|
|
46
|
-
parent_entity_type = Column(
|
|
47
|
-
EnumColumn(ManualTaskParentEntityType),
|
|
48
|
-
nullable=False,
|
|
49
|
-
default=ManualTaskParentEntityType.connection_config,
|
|
50
|
-
)
|
|
51
|
-
due_date = Column(DateTime, nullable=True)
|
|
52
|
-
|
|
53
|
-
# Relationships
|
|
54
|
-
references = relationship(
|
|
55
|
-
"ManualTaskReference",
|
|
56
|
-
back_populates="task",
|
|
57
|
-
uselist=True,
|
|
58
|
-
cascade="all, delete-orphan",
|
|
59
|
-
)
|
|
60
|
-
logs = relationship(
|
|
61
|
-
"ManualTaskLog",
|
|
62
|
-
back_populates="task",
|
|
63
|
-
primaryjoin="and_(ManualTask.id == ManualTaskLog.task_id)",
|
|
64
|
-
viewonly=True,
|
|
65
|
-
order_by="ManualTaskLog.created_at",
|
|
66
|
-
)
|
|
67
|
-
configs = relationship(
|
|
68
|
-
"ManualTaskConfig",
|
|
69
|
-
back_populates="task",
|
|
70
|
-
cascade="all, delete-orphan",
|
|
71
|
-
)
|
|
72
|
-
|
|
73
|
-
# Properties
|
|
74
|
-
@property
|
|
75
|
-
def assigned_users(self) -> list[str]:
|
|
76
|
-
"""Get all users assigned to this task."""
|
|
77
|
-
if not self.references:
|
|
78
|
-
return []
|
|
79
|
-
return [
|
|
80
|
-
ref.reference_id
|
|
81
|
-
for ref in self.references
|
|
82
|
-
if ref.reference_type == ManualTaskReferenceType.assigned_user
|
|
83
|
-
]
|
|
84
|
-
|
|
85
|
-
# CRUD Operations
|
|
86
|
-
@classmethod
|
|
87
|
-
def create(
|
|
88
|
-
cls, db: Session, *, data: dict[str, Any], check_name: bool = True
|
|
89
|
-
) -> "ManualTask":
|
|
90
|
-
"""Create a new manual task."""
|
|
91
|
-
task = super().create(db=db, data=data, check_name=check_name)
|
|
92
|
-
ManualTaskLog.create_log(
|
|
93
|
-
db=db,
|
|
94
|
-
task_id=task.id,
|
|
95
|
-
status=ManualTaskLogStatus.created,
|
|
96
|
-
message=f"Created manual task for {data['task_type']}",
|
|
97
|
-
)
|
|
98
|
-
return task
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
class ManualTaskReference(Base):
|
|
102
|
-
"""Join table to associate manual tasks with multiple references.
|
|
103
|
-
|
|
104
|
-
A single task may have many references including privacy requests, configurations, and assigned users.
|
|
105
|
-
"""
|
|
106
|
-
|
|
107
|
-
@declared_attr
|
|
108
|
-
def __tablename__(cls) -> str:
|
|
109
|
-
"""Overriding base class method to set the table name."""
|
|
110
|
-
return "manual_task_reference"
|
|
111
|
-
|
|
112
|
-
# Database columns
|
|
113
|
-
task_id = Column(
|
|
114
|
-
String, ForeignKey("manual_task.id", ondelete="CASCADE"), nullable=False
|
|
115
|
-
)
|
|
116
|
-
reference_id = Column(String, nullable=False)
|
|
117
|
-
reference_type = Column(EnumColumn(ManualTaskReferenceType), nullable=False)
|
|
118
|
-
|
|
119
|
-
# Relationships
|
|
120
|
-
task = relationship("ManualTask", back_populates="references")
|
|
@@ -1,136 +0,0 @@
|
|
|
1
|
-
from typing import TYPE_CHECKING, Any, Optional
|
|
2
|
-
|
|
3
|
-
from sqlalchemy import Boolean, Column, ForeignKey, Integer, String
|
|
4
|
-
from sqlalchemy.dialects.postgresql import JSONB
|
|
5
|
-
from sqlalchemy.ext.declarative import declared_attr
|
|
6
|
-
from sqlalchemy.orm import Session, relationship
|
|
7
|
-
|
|
8
|
-
from fides.api.db.base_class import Base
|
|
9
|
-
from fides.api.db.util import EnumColumn
|
|
10
|
-
from fides.api.models.manual_tasks.manual_task_log import ManualTaskLog
|
|
11
|
-
from fides.api.schemas.manual_tasks.manual_task_config import (
|
|
12
|
-
ManualTaskConfigurationType,
|
|
13
|
-
ManualTaskFieldMetadata,
|
|
14
|
-
ManualTaskFieldType,
|
|
15
|
-
)
|
|
16
|
-
from fides.api.schemas.manual_tasks.manual_task_schemas import ManualTaskLogStatus
|
|
17
|
-
|
|
18
|
-
if TYPE_CHECKING: # pragma: no cover
|
|
19
|
-
from fides.api.models.manual_tasks.manual_task import ManualTask # pragma: no cover
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
class ManualTaskConfig(Base):
|
|
23
|
-
"""Model for storing manual task configurations.
|
|
24
|
-
A single configuration may have many fields of different types.
|
|
25
|
-
"""
|
|
26
|
-
|
|
27
|
-
@declared_attr
|
|
28
|
-
def __tablename__(cls) -> str:
|
|
29
|
-
return "manual_task_config"
|
|
30
|
-
|
|
31
|
-
task_id = Column(String, ForeignKey("manual_task.id"), nullable=False)
|
|
32
|
-
config_type = Column(EnumColumn(ManualTaskConfigurationType), nullable=False)
|
|
33
|
-
version = Column(Integer, nullable=False, default=1)
|
|
34
|
-
is_current = Column(Boolean, nullable=False, default=True)
|
|
35
|
-
|
|
36
|
-
# Relationships
|
|
37
|
-
task = relationship("ManualTask", back_populates="configs")
|
|
38
|
-
field_definitions = relationship(
|
|
39
|
-
"ManualTaskConfigField",
|
|
40
|
-
back_populates="config",
|
|
41
|
-
cascade="all, delete-orphan",
|
|
42
|
-
uselist=True,
|
|
43
|
-
)
|
|
44
|
-
logs = relationship(
|
|
45
|
-
"ManualTaskLog",
|
|
46
|
-
back_populates="config",
|
|
47
|
-
primaryjoin="ManualTaskConfig.id == ManualTaskLog.config_id",
|
|
48
|
-
viewonly=True,
|
|
49
|
-
)
|
|
50
|
-
|
|
51
|
-
@classmethod
|
|
52
|
-
def create(
|
|
53
|
-
cls, db: Session, *, data: dict[str, Any], check_name: bool = True
|
|
54
|
-
) -> "ManualTaskConfig":
|
|
55
|
-
"""Create a new manual task configuration."""
|
|
56
|
-
# Validate config_type
|
|
57
|
-
try:
|
|
58
|
-
ManualTaskConfigurationType(data["config_type"])
|
|
59
|
-
except ValueError:
|
|
60
|
-
raise ValueError(f"Invalid config type: {data['config_type']}")
|
|
61
|
-
|
|
62
|
-
config = super().create(db=db, data=data, check_name=check_name)
|
|
63
|
-
|
|
64
|
-
# Log the config creation as a task-level log
|
|
65
|
-
ManualTaskLog.create_log(
|
|
66
|
-
db=db,
|
|
67
|
-
task_id=data["task_id"],
|
|
68
|
-
config_id=config.id,
|
|
69
|
-
status=ManualTaskLogStatus.created,
|
|
70
|
-
message=f"Created manual task configuration for {data['config_type']}",
|
|
71
|
-
details={
|
|
72
|
-
"config_type": data["config_type"],
|
|
73
|
-
},
|
|
74
|
-
)
|
|
75
|
-
return config
|
|
76
|
-
|
|
77
|
-
def get_field(self, field_key: str) -> Optional["ManualTaskConfigField"]:
|
|
78
|
-
"""Get a field by its key."""
|
|
79
|
-
for field in self.field_definitions:
|
|
80
|
-
if field.field_key == field_key:
|
|
81
|
-
return field
|
|
82
|
-
return None
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
class ManualTaskConfigField(Base):
|
|
86
|
-
"""Model for storing fields associated with each config."""
|
|
87
|
-
|
|
88
|
-
@declared_attr
|
|
89
|
-
def __tablename__(cls) -> str:
|
|
90
|
-
return "manual_task_config_field"
|
|
91
|
-
|
|
92
|
-
task_id = Column(String, ForeignKey("manual_task.id"), nullable=False)
|
|
93
|
-
config_id = Column(String, ForeignKey("manual_task_config.id"), nullable=False)
|
|
94
|
-
field_key = Column(String, nullable=False)
|
|
95
|
-
field_type = Column(
|
|
96
|
-
EnumColumn(ManualTaskFieldType), nullable=False
|
|
97
|
-
) # Using ManualTaskFieldType
|
|
98
|
-
field_metadata = Column(JSONB, nullable=False, default={})
|
|
99
|
-
|
|
100
|
-
# Relationships
|
|
101
|
-
config = relationship("ManualTaskConfig", back_populates="field_definitions")
|
|
102
|
-
|
|
103
|
-
@property
|
|
104
|
-
def field_metadata_model(self) -> ManualTaskFieldMetadata:
|
|
105
|
-
"""Get the field metadata as a Pydantic model."""
|
|
106
|
-
return ManualTaskFieldMetadata.model_validate(self.field_metadata)
|
|
107
|
-
|
|
108
|
-
@classmethod
|
|
109
|
-
def create(
|
|
110
|
-
cls, db: Session, *, data: dict[str, Any], check_name: bool = True
|
|
111
|
-
) -> "ManualTaskConfigField":
|
|
112
|
-
"""Create a new manual task config field."""
|
|
113
|
-
# Get the config to access its task_id and check if it exists
|
|
114
|
-
try:
|
|
115
|
-
config = (
|
|
116
|
-
db.query(ManualTaskConfig)
|
|
117
|
-
.filter(ManualTaskConfig.id == data["config_id"])
|
|
118
|
-
.first()
|
|
119
|
-
)
|
|
120
|
-
if not config:
|
|
121
|
-
raise ValueError(f"Config with id {data['config_id']} not found")
|
|
122
|
-
except Exception as e:
|
|
123
|
-
raise ValueError(f"Config with id {data['config_id']} not found: {e}")
|
|
124
|
-
|
|
125
|
-
# Create the field and let SQLAlchemy complex type validation handled in service.
|
|
126
|
-
field = super().create(db=db, data=data, check_name=check_name)
|
|
127
|
-
|
|
128
|
-
# Create a log entry
|
|
129
|
-
ManualTaskLog.create_log(
|
|
130
|
-
db=db,
|
|
131
|
-
task_id=config.task_id,
|
|
132
|
-
config_id=data["config_id"],
|
|
133
|
-
status=ManualTaskLogStatus.created,
|
|
134
|
-
message=f"Created manual task config field for {data['field_key']}",
|
|
135
|
-
)
|
|
136
|
-
return field
|
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
from typing import TYPE_CHECKING, Any, Optional
|
|
2
|
-
|
|
3
|
-
from sqlalchemy import Column, ForeignKey, String
|
|
4
|
-
from sqlalchemy.dialects.postgresql import JSONB
|
|
5
|
-
from sqlalchemy.ext.declarative import declared_attr
|
|
6
|
-
from sqlalchemy.orm import Session, relationship
|
|
7
|
-
|
|
8
|
-
from fides.api.db.base_class import Base
|
|
9
|
-
from fides.api.schemas.manual_tasks.manual_task_schemas import ManualTaskLogStatus
|
|
10
|
-
|
|
11
|
-
if TYPE_CHECKING: # pragma: no cover
|
|
12
|
-
from fides.api.models.manual_tasks.manual_task import ManualTask # pragma: no cover
|
|
13
|
-
from fides.api.models.manual_tasks.manual_task_config import (
|
|
14
|
-
ManualTaskConfig, # pragma: no cover
|
|
15
|
-
)
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
class ManualTaskLog(Base):
|
|
19
|
-
"""Model for storing manual task execution logs."""
|
|
20
|
-
|
|
21
|
-
@declared_attr
|
|
22
|
-
def __tablename__(cls) -> str:
|
|
23
|
-
"""Overriding base class method to set the table name."""
|
|
24
|
-
return "manual_task_log"
|
|
25
|
-
|
|
26
|
-
task_id = Column(
|
|
27
|
-
String, ForeignKey("manual_task.id", ondelete="CASCADE"), nullable=False
|
|
28
|
-
)
|
|
29
|
-
config_id = Column(String, ForeignKey("manual_task_config.id"), nullable=True)
|
|
30
|
-
instance_id = Column(String, nullable=True)
|
|
31
|
-
status = Column(String, nullable=False)
|
|
32
|
-
message = Column(String, nullable=False)
|
|
33
|
-
details = Column(JSONB, nullable=True)
|
|
34
|
-
|
|
35
|
-
# Relationships - using string references to avoid circular imports
|
|
36
|
-
task = relationship("ManualTask", back_populates="logs", foreign_keys=[task_id])
|
|
37
|
-
config = relationship(
|
|
38
|
-
"ManualTaskConfig", back_populates="logs", foreign_keys=[config_id]
|
|
39
|
-
)
|
|
40
|
-
# TODO: Add instance relationship when it is implemented
|
|
41
|
-
# instance = relationship("ManualTaskInstance", back_populates="logs")
|
|
42
|
-
|
|
43
|
-
@classmethod
|
|
44
|
-
def create_log(
|
|
45
|
-
cls,
|
|
46
|
-
db: Session,
|
|
47
|
-
task_id: str,
|
|
48
|
-
status: ManualTaskLogStatus,
|
|
49
|
-
message: str,
|
|
50
|
-
config_id: Optional[str] = None,
|
|
51
|
-
instance_id: Optional[str] = None,
|
|
52
|
-
details: Optional[dict[str, Any]] = None,
|
|
53
|
-
) -> "ManualTaskLog":
|
|
54
|
-
"""Create a new task log entry.
|
|
55
|
-
|
|
56
|
-
Args:
|
|
57
|
-
db: Database session
|
|
58
|
-
task_id: ID of the task
|
|
59
|
-
status: Status of the log entry
|
|
60
|
-
message: Optional message describing the event
|
|
61
|
-
details: Optional additional details about the event
|
|
62
|
-
"""
|
|
63
|
-
data = {
|
|
64
|
-
"task_id": task_id,
|
|
65
|
-
"config_id": config_id,
|
|
66
|
-
"instance_id": instance_id,
|
|
67
|
-
"status": status,
|
|
68
|
-
"message": message,
|
|
69
|
-
"details": details,
|
|
70
|
-
}
|
|
71
|
-
return cls.create(db=db, data=data)
|
|
72
|
-
|
|
73
|
-
@classmethod
|
|
74
|
-
def create_error_log(
|
|
75
|
-
cls,
|
|
76
|
-
db: Session,
|
|
77
|
-
task_id: str,
|
|
78
|
-
message: str,
|
|
79
|
-
config_id: Optional[str] = None,
|
|
80
|
-
instance_id: Optional[str] = None,
|
|
81
|
-
details: Optional[dict[str, Any]] = None,
|
|
82
|
-
) -> "ManualTaskLog":
|
|
83
|
-
"""Create a new error log entry.
|
|
84
|
-
|
|
85
|
-
Args:
|
|
86
|
-
db: Database session
|
|
87
|
-
task_id: ID of the task
|
|
88
|
-
message: Error message describing what went wrong
|
|
89
|
-
config_id: Optional ID of the configuration
|
|
90
|
-
instance_id: Optional ID of the instance
|
|
91
|
-
details: Optional additional details about the error
|
|
92
|
-
|
|
93
|
-
Returns:
|
|
94
|
-
The created error log entry
|
|
95
|
-
"""
|
|
96
|
-
return cls.create_log(
|
|
97
|
-
db=db,
|
|
98
|
-
status=ManualTaskLogStatus.error,
|
|
99
|
-
task_id=task_id,
|
|
100
|
-
config_id=config_id,
|
|
101
|
-
instance_id=instance_id,
|
|
102
|
-
message=message,
|
|
103
|
-
details=details,
|
|
104
|
-
)
|
|
File without changes
|