ethyca-fides 2.69.1rc0__py2.py3-none-any.whl → 2.76.0rc2__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.69.1rc0.dist-info → ethyca_fides-2.76.0rc2.dist-info}/METADATA +9 -6
- {ethyca_fides-2.69.1rc0.dist-info → ethyca_fides-2.76.0rc2.dist-info}/RECORD +488 -361
- fides/_version.py +3 -3
- fides/api/alembic/alembic.ini +5 -1
- fides/api/alembic/migrations/env.py +7 -1
- fides/api/alembic/migrations/versions/0eef0016cf06_adding_oauth2_config_for_.py +69 -0
- fides/api/alembic/migrations/versions/303287c70600_migrate_resource_type_from_enum_to_.py +99 -0
- fides/api/alembic/migrations/versions/30369bb8ae01_add_webmonitorgroupjob_model.py +67 -0
- fides/api/alembic/migrations/versions/3efe14d4469a_adds_new_experience_configs_for_vendor_.py +79 -0
- fides/api/alembic/migrations/versions/4bfbeff34611_add_polling_status.py +68 -0
- fides/api/alembic/migrations/versions/4d8c0fcc5771_adding_default_system_groups.py +78 -0
- fides/api/alembic/migrations/versions/5fa78b1f324d_add_event_audit_table.py +82 -0
- fides/api/alembic/migrations/versions/65a1bc82ae09_adds_experience_config_for_delete_.py +53 -0
- fides/api/alembic/migrations/versions/67d0e389b003_update_consentstatus_enum.py +47 -0
- fides/api/alembic/migrations/versions/795f46f656c0_migrate_field_type_from_enum_to_string.py +61 -0
- fides/api/alembic/migrations/versions/7db29f9cd77b_create_new_sub_request_table.py +95 -0
- fides/api/alembic/migrations/versions/918aefc950c9_create_digest_conditional_dependencies.py +125 -0
- fides/api/alembic/migrations/versions/9caf76161e55_make_user_assigned_data_uses_nullable_.py +64 -0
- fides/api/alembic/migrations/versions/9e0dcbf67b9f_add_digest_config.py +84 -0
- fides/api/alembic/migrations/versions/a55e12c2c2df_add_tagging_instructions_to_data_.py +29 -0
- fides/api/alembic/migrations/versions/a8e0c016afd_add_classification_benchmark_table.py +126 -0
- fides/api/alembic/migrations/versions/b97e92b038d2_add_digest_execution_model.py +117 -0
- fides/api/alembic/migrations/versions/b9bfa12c167b_add_not_applicable_to_asset_consentstatus.py +46 -0
- fides/api/alembic/migrations/versions/c09e76282dd1_add_privacy_request_duplication_cols.py +64 -0
- fides/api/alembic/migrations/versions/cd8649be3a2b_add_classifications_and_user_assigned_.py +74 -0
- fides/api/alembic/migrations/versions/e2cda8d6abc3_add_dismissed_in_activity_view_to_.py +29 -0
- fides/api/alembic/migrations/versions/f108fa05c579_adds_optional_duration_field_to_assets.py +28 -0
- fides/api/alembic/migrations/versions/f36ce1bde293_add_system_groups.py +132 -0
- fides/api/alembic/migrations/versions/fd7571bef683_adds_new_fields_to_messagingconfig_for_.py +31 -0
- fides/api/alembic/migrations/versions/xx_2025_10_17_1603_5093e92e2a5a_add_consent_data_v3_to_the_database.py +72 -0
- fides/api/alembic/migrations/versions/xx_2025_10_27_1834_67f0f2f4748e_adding_identity_definition_model.py +45 -0
- fides/api/alembic/migrations/versions/xx_2025_10_29_1659_80d28dea3b6b_added_duplicate_group_table.py +79 -0
- fides/api/alembic/migrations/versions/xx_2025_11_05_0200_f1a2b3c4d5e6_create_staged_resource_error_table.py +82 -0
- fides/api/alembic/migrations/versions/xx_2025_11_07_1709_56fe6fad2d89_add_notice_display_order.py +47 -0
- fides/api/alembic/migrations/versions/xx_2025_11_10_1200_a1b2c3d4e5f6_add_test_datastore_to_connectiontype.py +53 -0
- fides/api/alembic/migrations/versions/xx_2025_11_11_1317_7d82c8fc4c34_store_saas_template_datasets.py +68 -0
- fides/api/alembic/migrations/versions/xx_2025_11_12_1430_b2c3d4e5f6a7_add_default_identity_definitions.py +81 -0
- fides/api/alembic/migrations/versions/xx_2025_11_25_1854_3ff6449c099e_add_index_on_providedidentity_privacy_.py +50 -0
- fides/api/api/v1/api.py +2 -0
- fides/api/api/v1/endpoints/admin.py +39 -0
- fides/api/api/v1/endpoints/connection_endpoints.py +191 -47
- fides/api/api/v1/endpoints/connector_template_endpoints.py +167 -0
- fides/api/api/v1/endpoints/generic_overrides.py +90 -15
- fides/api/api/v1/endpoints/messaging_endpoints.py +164 -34
- fides/api/api/v1/endpoints/pre_approval_webhook_endpoints.py +5 -5
- fides/api/api/v1/endpoints/privacy_request_endpoints.py +231 -46
- fides/api/api/v1/endpoints/saas_config_endpoints.py +63 -92
- fides/api/api/v1/endpoints/storage_endpoints.py +5 -1
- fides/api/api/v1/endpoints/system.py +157 -100
- fides/api/api/v1/endpoints/user_endpoints.py +17 -4
- fides/api/app_setup.py +1 -3
- fides/api/common_exceptions.py +8 -0
- fides/api/db/base.py +8 -0
- fides/api/db/crud.py +30 -2
- fides/api/db/database.py +261 -4
- fides/api/db/safe_crud.py +377 -0
- fides/api/db/seed.py +35 -1
- fides/api/email_templates/get_email_template.py +3 -0
- fides/api/email_templates/template_names.py +1 -0
- fides/api/email_templates/templates/external_user_welcome.html +9 -5
- fides/api/email_templates/templates/manual_task_digest.html +316 -0
- fides/api/main.py +2 -0
- fides/api/migrations/post_upgrade_index_creation.py +20 -0
- fides/api/models/asset.py +17 -1
- fides/api/models/attachment.py +1 -0
- fides/api/models/conditional_dependency/__init__.py +0 -0
- fides/api/models/conditional_dependency/conditional_dependency_base.py +311 -0
- fides/api/models/connection_oauth_credentials.py +57 -0
- fides/api/models/connectionconfig.py +11 -1
- fides/api/models/detection_discovery/__init__.py +4 -0
- fides/api/models/detection_discovery/classification_benchmark.py +140 -0
- fides/api/models/detection_discovery/core.py +78 -3
- fides/api/models/detection_discovery/monitor_task.py +3 -1
- fides/api/models/detection_discovery/staged_resource_error.py +25 -0
- fides/api/models/detection_discovery/web_monitor.py +61 -0
- fides/api/models/digest/__init__.py +16 -0
- fides/api/models/digest/conditional_dependencies.py +275 -0
- fides/api/models/digest/digest_config.py +110 -0
- fides/api/models/digest/digest_execution.py +142 -0
- fides/api/models/event_audit.py +85 -0
- fides/api/models/experience_notices.py +6 -1
- fides/api/models/fides_user.py +9 -0
- fides/api/models/identity_definition.py +66 -0
- fides/api/models/location_regulation_selections.py +22 -0
- fides/api/models/manual_task/conditional_dependency.py +29 -87
- fides/api/models/manual_webhook.py +17 -6
- fides/api/models/messaging.py +30 -10
- fides/api/models/messaging_template.py +14 -0
- fides/api/models/policy.py +27 -0
- fides/api/models/privacy_experience.py +41 -0
- fides/api/models/privacy_notice.py +196 -13
- fides/api/models/privacy_preference.py +2 -0
- fides/api/models/privacy_request/duplicate_group.py +84 -0
- fides/api/models/privacy_request/privacy_request.py +154 -8
- fides/api/models/privacy_request/provided_identity.py +22 -1
- fides/api/models/privacy_request/request_task.py +98 -1
- fides/api/models/privacy_request/webhook.py +3 -1
- fides/api/models/saas_template_dataset.py +63 -0
- fides/api/models/sql_models.py +161 -7
- fides/api/models/system_group.py +85 -0
- fides/api/models/taxonomy.py +91 -9
- fides/api/models/v3/__init__.py +0 -0
- fides/api/models/v3/privacy_preferences.py +85 -0
- fides/api/models/worker_task.py +8 -0
- fides/api/oauth/roles.py +4 -0
- fides/api/schemas/application_config.py +32 -1
- fides/api/schemas/connection_configuration/connection_config.py +1 -30
- fides/api/schemas/connection_configuration/connection_oauth_config.py +42 -0
- fides/api/schemas/connection_configuration/connection_secrets_mongodb.py +15 -3
- fides/api/schemas/connection_configuration/connection_secrets_mssql.py +5 -0
- fides/api/schemas/messaging/messaging.py +49 -66
- fides/api/schemas/messaging/messaging_secrets_docs_only.py +1 -1
- fides/api/schemas/messaging/shared_schemas.py +102 -0
- fides/api/schemas/oauth.py +2 -1
- fides/api/schemas/privacy_center_config.py +29 -5
- fides/api/schemas/privacy_request.py +44 -7
- fides/api/schemas/saas/async_polling_configuration.py +81 -0
- fides/api/schemas/saas/connector_template.py +14 -0
- fides/api/schemas/saas/saas_config.py +12 -20
- fides/api/schemas/system.py +8 -0
- fides/api/schemas/taxonomy_extensions.py +8 -0
- fides/api/schemas/user.py +2 -2
- fides/api/service/async_dsr/handlers/__init__.py +0 -0
- fides/api/service/async_dsr/handlers/polling_attachment_handler.py +155 -0
- fides/api/service/async_dsr/handlers/polling_request_handler.py +88 -0
- fides/api/service/async_dsr/handlers/polling_response_handler.py +261 -0
- fides/api/service/async_dsr/handlers/polling_sub_request_handler.py +123 -0
- fides/api/service/async_dsr/strategies/__init__.py +0 -0
- fides/api/service/async_dsr/strategies/async_dsr_strategy.py +52 -0
- fides/api/service/async_dsr/strategies/async_dsr_strategy_callback.py +199 -0
- fides/api/service/async_dsr/strategies/async_dsr_strategy_factory.py +72 -0
- fides/api/service/async_dsr/strategies/async_dsr_strategy_polling.py +691 -0
- fides/api/service/async_dsr/utils.py +130 -0
- fides/api/service/connectors/base_erasure_email_connector.py +7 -0
- fides/api/service/connectors/bigquery_connector.py +34 -16
- fides/api/service/connectors/fides/fides_client.py +63 -1
- fides/api/service/connectors/http_connector.py +48 -12
- fides/api/service/connectors/microsoft_sql_server_connector.py +6 -1
- fides/api/service/connectors/mongodb_connector.py +74 -9
- fides/api/service/connectors/query_configs/saas_query_config.py +160 -79
- fides/api/service/connectors/saas/connector_registry_service.py +42 -135
- fides/api/service/connectors/saas_connector.py +116 -76
- fides/api/service/connectors/sql_connector.py +14 -4
- fides/api/service/deps.py +25 -2
- fides/api/service/messaging/message_dispatch_service.py +98 -20
- fides/api/service/messaging/messaging_crud_service.py +5 -9
- fides/api/service/privacy_request/attachment_handling.py +9 -2
- fides/api/service/privacy_request/dsr_package/dsr_report_builder.py +17 -9
- fides/api/service/privacy_request/dsr_package/templates/attachments_index.html +41 -30
- fides/api/service/privacy_request/dsr_package/templates/clickme.html +68 -0
- fides/api/service/privacy_request/dsr_package/templates/dataset_index.html +30 -27
- fides/api/service/privacy_request/duplication_detection.py +439 -0
- fides/api/service/privacy_request/email_batch_service.py +2 -1
- fides/api/service/privacy_request/request_runner_service.py +92 -91
- fides/api/service/privacy_request/request_service.py +74 -90
- fides/api/service/saas_request/saas_request_override_factory.py +71 -1
- fides/api/service/storage/streaming/schemas.py +27 -19
- fides/api/service/storage/streaming/smart_open_client.py +2 -2
- fides/api/service/storage/streaming/smart_open_streaming_storage.py +238 -147
- fides/api/service/storage/util.py +20 -106
- fides/api/service/strategy.py +6 -3
- fides/api/task/conditional_dependencies/privacy_request/__init__.py +0 -0
- fides/api/task/conditional_dependencies/privacy_request/convenience_fields.py +155 -0
- fides/api/task/conditional_dependencies/privacy_request/privacy_request_data.py +140 -0
- fides/api/task/conditional_dependencies/privacy_request/schemas.py +212 -0
- fides/api/task/conditional_dependencies/sql_schemas.py +301 -0
- fides/api/task/conditional_dependencies/sql_translator.py +757 -0
- fides/api/task/conditional_dependencies/util.py +111 -0
- fides/api/task/execute_request_tasks.py +34 -13
- fides/api/task/filter_results.py +35 -2
- fides/api/task/graph_runners.py +2 -32
- fides/api/task/graph_task.py +42 -12
- fides/api/task/manual/manual_task_conditional_evaluation.py +33 -28
- fides/api/task/manual/manual_task_graph_task.py +4 -1
- fides/api/task/manual/manual_task_utils.py +68 -26
- fides/api/task/scheduler_utils.py +39 -0
- fides/api/tasks/__init__.py +15 -1
- fides/api/util/cache.py +5 -1
- fides/api/util/connection_util.py +101 -218
- fides/api/util/event_audit_util.py +230 -0
- fides/api/util/filter_utils.py +0 -3
- fides/api/util/fuzzy_search_utils.py +7 -1
- fides/api/util/lock.py +13 -3
- fides/api/util/logger.py +58 -4
- fides/api/util/logger_context_utils.py +3 -1
- fides/api/util/masking_util.py +31 -0
- fides/api/util/memory_watchdog.py +118 -0
- fides/api/util/rate_limit.py +25 -7
- fides/api/util/saas_config_updater.py +76 -0
- fides/api/util/saas_util.py +28 -1
- fides/api/worker/__init__.py +6 -0
- fides/common/api/scope_registry.py +6 -7
- fides/common/api/v1/urn_registry.py +15 -3
- fides/config/__init__.py +11 -2
- fides/config/celery_settings.py +42 -0
- fides/config/config_proxy.py +10 -0
- fides/config/duplicate_detection_settings.py +31 -0
- fides/config/execution_settings.py +6 -6
- fides/config/security_settings.py +4 -1
- fides/config/utils.py +5 -0
- fides/data/language/languages.yml +2 -0
- fides/service/connection/__init__.py +0 -0
- fides/service/connection/connection_service.py +651 -0
- fides/service/dataset/dataset_service.py +39 -0
- fides/service/event_audit_service.py +109 -0
- fides/service/messaging/aws_ses_service.py +2 -4
- fides/service/messaging/messaging_service.py +75 -74
- fides/service/privacy_request/privacy_request_service.py +345 -100
- fides/service/system/__init__.py +0 -0
- fides/service/system/system_service.py +153 -0
- fides/service/taxonomy/handlers/legacy_handler.py +3 -3
- fides/service/taxonomy/taxonomy_service.py +64 -18
- fides/ui-build/static/admin/404.html +1 -1
- fides/ui-build/static/admin/_next/static/chunks/1099-688fa865621531cc.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/1115-7fd171dac1eb0e51.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/1276.deb10ae2643f8463.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/1438-8a33b3834d6e43f3.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/{6148-59a59d5c5925344f.js → 1533-84e250d1f26e6d7d.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/1821-c1daa160f492aacf.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/1840-359ee056e4cf6629.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/{1975.78e719130cfe3fd6.js → 1975.bef017bc80e2012c.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/2040-70972e15960d9afe.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/2121.321b0fd3932164d4.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/2397-3434603a97f3f5d6.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/2921-49ed0ed897832958.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/3150-da5406b80d25fe6d.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/3214-90ce0a366b0f461a.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/3377-02bf9780fd383d94.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/3615-5e2d062d684b8fa1.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/3655-5e1ba5dd68b5ec48.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/3729-31ff8ba51491bf21.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/3872-cff30ca0844fe2b1.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/3931-8bedde156fe83564.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/401-582d9970d89deefe.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/4093-7e47408c28de5375.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/{4259.d1507e0db19cbed7.js → 4259.05038c9b78467244.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/431-e01ee730c8ad9ece.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/4322-f6aeff6880726c83.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/4339-04a715ab07122744.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/4496-ccbce2459174e0d6.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/454-d5c2c84f1a14e4f1.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/4589-c1d83c6a8dab4d30.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/4809-a8f4a108a42f53ed.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/4903-19c0bc07a956dfa8.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/4910-d990773601f794c1.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/5185-96423702fba70ced.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/5258-4e308cca01d59367.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/5487-5c3501754bf027ba.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/549-1bdc3e6f3264c020.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/5505-43b9c39491b88e08.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/5698.2135391a128cc373.js +164 -0
- fides/ui-build/static/admin/_next/static/chunks/5783-016dfcee8e49bf61.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/5826-4db99ea4e5077911.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/590-be447cacf12419dd.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/6084-91badbc6569a0efb.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/6344-026cb323c1d49926.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/6362-ba0e12f2fc4cad94.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/6853-882889659769d7b4.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/6882-bb1b469d7d7f5335.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/6954-0dcf22a9aabe39c5.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/7170-46db82bb5b55e856.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/7218-2ace8c82e3e7eb74.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/7245-1cdafb35f289861b.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/7630-7f75ab7b8df42eb3.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/7654-2e9a8be02e41769a.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/8212-348ddd2b6933db70.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/9014-eeae6f581158e645.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/{5596-bb601cbf40e47a0f.js → 9195-da717d324917b049.js} +3 -3
- fides/ui-build/static/admin/_next/static/chunks/9450-b7b7bb1d755ecf57.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/{9676.9fd9552ef744c717.js → 9676.1f395eeb9cc34968.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/9826-1078e46f3ac0b688.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/9911-ece086f2230e34f0.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/{404-471a6b18e712f050.js → 404-800be6996aaa999c.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/{_app-fcdad91f6f66292b.js → _app-de4b578c904df772.js} +57 -220
- fides/ui-build/static/admin/_next/static/chunks/pages/add-systems/manual-f12020b82dd4bd1a.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/add-systems/multiple-a911b7990371704d.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/add-systems-ad585b79953c2753.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/consent/configure/{add-vendors-406170eaae4329c6.js → add-vendors-bb263d394ca1c8fa.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/consent/configure-6907c368d8611c44.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/consent/privacy-experience/{[id]-f80cf2d3966816fd.js → [id]-c32f381af358149b.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/consent/privacy-experience/{new-e74cb5ea87f15b40.js → new-6efb3c069d8b47dd.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/consent/privacy-experience-1975c529905eea9b.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/consent/privacy-notices/{[id]-b378576cba255609.js → [id]-b05331178928ab52.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/consent/privacy-notices/{new-2ca1de7b88094ab0.js → new-516834e930bb0d0d.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/consent/privacy-notices-985717f2565f9d9d.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/consent/{properties-226efa1dcd41437f.js → properties-2be773e08498e40c.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/consent/reporting-850afb74f4192e87.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/consent-b63d1e395d879b86.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/projects/[projectUrn]/[resourceUrn]-5b28f0f674ea87bd.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/projects/{[projectUrn]-04cfe2cfba7b7cd8.js → [projectUrn]-676177e2f3c9c2a2.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/projects-794906929efb8e1d.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/resources/[resourceUrn]-3ccbf7c0d06507b9.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog-1ea0b24d306b1e67.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/action-center/datastore/[monitorId]-d4861a4a218bb65a.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/action-center/datastore-4498881c26f1458d.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/action-center/infrastructure/[monitorId]-66bd265044daf97d.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/action-center/infrastructure-c9c79fa8576a4f77.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/action-center/website/[monitorId]/[systemId]-60cacc3232c2eead.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/action-center/website/[monitorId]-437bd64a3016de36.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/action-center/website-5b3e0009d442bc3f.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/action-center-8349248c2da970a6.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/activity-6919a1d6cadaa46b.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/detection/{[resourceUrn]-8f736b078e9842da.js → [resourceUrn]-1a50d421897d3da1.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/{detection-eb814e3c22807871.js → detection-49509414a15e8393.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/discovery/{[resourceUrn]-6875b7783fcfda2f.js → [resourceUrn]-1a1bb80b586d0c0f.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/{discovery-172dbd7740e212ca.js → discovery-49de61df1e8e7fba.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/datamap-c2719f5cff20c0f8.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/dataset/[datasetId]/[collectionName]/{[...subfieldNames]-dfd71c1e9c458b89.js → [...subfieldNames]-415015aebab60436.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/dataset/[datasetId]/{[collectionName]-7cdc42ec5493b83d.js → [collectionName]-5accb09715b5122d.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/dataset/[datasetId]-aebecca1d8ec5f98.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/dataset/new-9551a82ddec9f909.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/dataset-72f8fe47beef0f09.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/datastore-connection/[id]-3a8aa3f633528e88.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/datastore-connection/new-87512616f35ec6da.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/datastore-connection-2f1bf4eac7aa55fd.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/{fides-js-docs-1f4335dca5c09860.js → fides-js-docs-5235760b3e508d7d.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/index-8d67cd2872cb682a.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/integrations/[id]-7a631df29cd0e31a.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/integrations-ea3bc43cdaf273de.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/new-privacy-requests-5d8632bba1b81cd4.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/notifications/digests/[id]-92e01822ecde8fb8.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/notifications/digests/new-1256cf6d3f6794e0.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/notifications/digests-0daac00911d27617.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/notifications/providers/[key]-2d976fe5e8ba0a3a.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/notifications/providers/new-7766ba497b863740.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/notifications/providers-f2880d2ed4734270.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/notifications/templates/[id]-669f585c3458faff.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/notifications/templates/add-template-c79e7724e4bc3899.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/notifications/templates-891654e8dc13965c.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/notifications-40c8148244c5d347.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/poc/ant-components-1e86f3e28bd23ed6.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/poc/form-experiments/AntForm-9b7bd8c38f02c091.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/poc/form-experiments/FormikAntFormItem-b18a53a940cf9e19.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/poc/form-experiments/FormikControlled-6d028d7450e77578.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/poc/form-experiments/FormikField-8399083ee2cd8cc2.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/poc/forms-0a910125cdb2b3b8.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/[id]-acc90b6f7fe915cb.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/configure/storage-bbc42026f2685438.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/configure-c08ca6ad21c99799.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests-77c2db582f8823bc.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/properties/{[id]-e784c05d056b2371.js → [id]-74ccea4868408e3d.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/properties/{add-property-0a7a2db148a7561a.js → add-property-7d9f09bfe9d44dfc.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/{properties-da734840e4f9d04b.js → properties-cd77bc30672bb1fa.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/reporting/datamap-cc3bd9540132d5ed.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/sandbox/privacy-notices-7ce7d720107ab4b5.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/about/alpha-68eaac2d79133679.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/about-6c4904c157477285.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/consent/[configuration_id]/[purpose_id]-ae789892343c24f5.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/consent-13ee1b331ced0846.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/custom-fields/[id]-ee4e43692336a330.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/custom-fields/new-ca51d794abfcbf25.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/custom-fields-ecd1dc5db8e81409.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/domain-records-df06f7e2f668c540.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/domains-da0c77bd510c6c51.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/email-templates-950b0c115bf673d8.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/{locations-2e635dcd11b78224.js → locations-7e36cb4756973a9d.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/organization-a0e5ed486d24ccf3.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/privacy-requests-3cdebafb6870d3ad.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/{regulations-7c02e469d8c5bd74.js → regulations-159aad34f1021320.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/systems/configure/[id]/test-datasets-dbd1a64090ad0946.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/systems/configure/[id]-7d042497a57a3788.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/systems-21f1172e73dfc9f0.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/taxonomy-e553161e6338ee48.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/pages/user-management/{new-92f52c43f522a350.js → new-efc4af017723e57a.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/user-management/profile/{[id]-64452dfae2c5e614.js → [id]-b152319d67372ee4.js} +1 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/user-management-dba8692491f7935e.js +1 -0
- fides/ui-build/static/admin/_next/static/chunks/webpack-09ca52bc7beb0b43.js +1 -0
- fides/ui-build/static/admin/_next/static/css/012b10627a654d5c.css +1 -0
- fides/ui-build/static/admin/_next/static/css/05d05fc31d09638b.css +1 -0
- fides/ui-build/static/admin/_next/static/css/0fd6e0884cfcc5f3.css +1 -0
- fides/ui-build/static/admin/_next/static/css/14ba79c49597d37a.css +1 -0
- fides/ui-build/static/admin/_next/static/css/{34a7eb08b86ddb57.css → 3d6582469f7d56e0.css} +1 -1
- fides/ui-build/static/admin/_next/static/css/3d66bb57ddcb0978.css +1 -0
- fides/ui-build/static/admin/_next/static/css/4861ca3e088f2d05.css +1 -0
- fides/ui-build/static/admin/_next/static/css/a1800714b486e230.css +1 -0
- fides/ui-build/static/admin/_next/static/css/a1e4be9466578ef1.css +1 -0
- fides/ui-build/static/admin/_next/static/css/af32fcac7a177a0e.css +1 -0
- fides/ui-build/static/admin/_next/static/css/cb417f0587918f85.css +1 -0
- fides/ui-build/static/admin/_next/static/css/dd15c278b964de80.css +1 -0
- fides/ui-build/static/admin/_next/static/css/{5f393dea1c0d031c.css → f89607996ad54f4b.css} +1 -1
- fides/ui-build/static/admin/_next/static/css/f9a2a44d3d34c904.css +1 -0
- fides/ui-build/static/admin/_next/static/l2vgGUHB04Fi4oEVlVMrc/_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/datastore/[monitorId].html +1 -0
- fides/ui-build/static/admin/data-discovery/action-center/datastore.html +1 -0
- fides/ui-build/static/admin/data-discovery/action-center/infrastructure/[monitorId].html +1 -0
- fides/ui-build/static/admin/data-discovery/action-center/infrastructure.html +1 -0
- fides/ui-build/static/admin/data-discovery/action-center/website/[monitorId]/[systemId].html +1 -0
- fides/ui-build/static/admin/data-discovery/action-center/website/[monitorId].html +1 -0
- fides/ui-build/static/admin/data-discovery/action-center/website.html +1 -0
- 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 +3 -3
- fides/ui-build/static/admin/lib/fides.js +3 -3
- fides/ui-build/static/admin/login/[provider].html +1 -1
- fides/ui-build/static/admin/login.html +1 -1
- fides/ui-build/static/admin/new-privacy-requests.html +1 -0
- fides/ui-build/static/admin/notifications/digests/[id].html +1 -0
- fides/ui-build/static/admin/notifications/digests/new.html +1 -0
- fides/ui-build/static/admin/notifications/digests.html +1 -0
- fides/ui-build/static/admin/notifications/providers/[key].html +1 -0
- fides/ui-build/static/admin/notifications/providers/new.html +1 -0
- fides/ui-build/static/admin/notifications/providers.html +1 -0
- fides/ui-build/static/admin/notifications/templates/[id].html +1 -0
- fides/ui-build/static/admin/notifications/templates/add-template.html +1 -0
- fides/ui-build/static/admin/notifications/templates.html +1 -0
- fides/ui-build/static/admin/notifications.html +1 -0
- 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/privacy-requests/[id].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/sandbox/privacy-notices.html +1 -0
- 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/[id].html +1 -0
- fides/ui-build/static/admin/settings/custom-fields/new.html +1 -0
- 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/privacy-requests.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/service/async_dsr/async_dsr_service.py +0 -75
- fides/api/service/privacy_request/dsr_package/templates/welcome.html +0 -66
- fides/ui-build/static/admin/_next/static/OmXHlY9MvjoZH9jDkAytl/_buildManifest.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/1099-79646e64f26d62fa.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/1316-2606e19807c08aa5.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/1345-5e1c5b66e25c566e.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/1467-8808ec8836e033f9.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/1817-0ca16d288fad916d.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/2150-930ffaf2c4718edc.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/255-1bc0cbef7a59cdc6.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/2921-52328140bc420d0f.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/346-aa3b88efb85f2e28.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/3550-d04125c828d591a1.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/3620-602eb74dc896d556.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/3729-c17ac8031a4c4fd1.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/3847-230bf61b053bc706.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/3855-ef5194cdb228beb6.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/3872-f78dec02f0d959ae.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/3923-bb2417b8dcade7a4.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/401-4af0a912e249d30f.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/4164-355644b916ae0094.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/431-86ad2beeb93c95c9.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/4608-be8cba73f5d7c326.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/4786-61154adf88e448e1.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/4808-dd4157aa72648068.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/4831-fd99c0b3784de128.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/4844-46324c3d848b8b6a.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/5163-e682273cd76a7d07.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/5258-b0de22a8521686ab.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/5487-02d00bad7c6830e0.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/549-38ea1d91ee2addaa.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/5619-9b50cec521203989.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/6084-c153669d5567e242.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/6419-d0c00d661b01f8fa.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/6853-b17673391117c976.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/6954-5296188c19d7d0ac.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/699-8ca44b0de9fa20f0.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/7476-45c5088baa8b66af.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/7630-7ed6c6117775dffe.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/787-a8c7eab617e2fceb.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/79-65674011d455af4d.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/796-9e1ca1a4030707c5.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/8002-24af20d679efc04e.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/8765-f622a35b40a7ec63.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/9046-712156d461165f56.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/9187-7438242f0d380bb0.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/9278-08cc704317fe535e.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/9729-fcf6ff4e3534e4a8.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/9826-dbae8dee941a7fac.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/9951-a88367a129b724ba.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/add-systems/manual-ace203dfacacbdc4.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/add-systems/multiple-920fb469e0dda1d2.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/add-systems-bd0d82078e67cac3.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/consent/configure-7207ab23bdb36ce8.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/consent/privacy-experience-9dda4de5ec580279.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/consent/privacy-notices-0d4844d0b808e6e4.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/consent/reporting-28b192e2c074b0f3.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/consent-3e8bdefe714254ec.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/projects/[projectUrn]/[resourceUrn]-2c29ff7a01198f30.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/projects-5f2d7b24804f861f.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/resources/[resourceUrn]-8eb581024bc0172f.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog-30108b00ac769fc3.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/action-center/[monitorId]/[systemId]-e1ba213fb666b3f4.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/action-center/[monitorId]-6d133580045abdda.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/action-center-9a81d42a474e1e48.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/activity-b6ae7adb8ef0b525.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/datamap-c7390e046b2e2b7f.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/dataset/[datasetId]-e12b11ba15bc3fc1.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/dataset/new-e32fccc4ca520d2b.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/dataset-7c59a6abf6ba6207.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/datastore-connection/[id]-927b7e476c4b47d0.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/datastore-connection/new-cbe100d50df34285.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/datastore-connection-cce20440b177050b.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/index-6cd8708106331b8d.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/integrations/[id]-4c3c413a2668df53.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/integrations-95402b5001c07ef2.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/messaging/[id]-3c6dc2f6e6bae960.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/messaging/add-template-4a6d4023a7791be8.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/messaging-76b204c9b98d656f.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/poc/ant-components-bc0e2adf6e0d3ac7.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/poc/form-experiments/AntForm-86ffcc1ad3fa912e.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/poc/form-experiments/FormikAntFormItem-ec04f595465bdf69.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/poc/form-experiments/FormikControlled-41d309754ff0c1de.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/poc/form-experiments/FormikField-cab1f78cec7808f9.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/poc/forms-eb6058221403b156.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/poc/table-migration-48500551fd6a7602.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/[id]-0f25a76dd18c5e20.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/configure/messaging-ad6ad3e5bd72765d.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/configure/storage-6032d82f0fc2893d.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/configure-d83e5bd52a638234.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests-baf31c3e4b081046.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/reporting/datamap-6903f42a0412bfa6.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/about/alpha-a82f3df840d5c1b5.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/about-d06fb16487705b9d.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/consent/[configuration_id]/[purpose_id]-9495e2eb506606c7.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/consent-93a978443bf299db.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/custom-fields-9ecb803099082bf4.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/domain-records-16fdd91a81074dd1.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/domains-4cdd6001e7cb9aee.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/email-templates-1914de830ce5cfc4.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/organization-f547f1f33c12faf3.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/settings/privacy-requests-2ecc073f41628f62.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/systems/configure/[id]/test-datasets-20b1193ed76c56b0.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/systems/configure/[id]-6e15332935f6b538.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/systems-fbc8761ef4d55516.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/taxonomy-4d7827fc9c46b6b8.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/pages/user-management-9cec020f89544426.js +0 -1
- fides/ui-build/static/admin/_next/static/chunks/webpack-678e89d68dbcd94f.js +0 -1
- fides/ui-build/static/admin/_next/static/css/073713cd1eddda79.css +0 -1
- fides/ui-build/static/admin/_next/static/css/23cf870196941c9a.css +0 -1
- fides/ui-build/static/admin/_next/static/css/304c6f148886a8d4.css +0 -1
- fides/ui-build/static/admin/_next/static/css/650df9c348000a26.css +0 -1
- fides/ui-build/static/admin/data-discovery/action-center/[monitorId]/[systemId].html +0 -1
- fides/ui-build/static/admin/data-discovery/action-center/[monitorId].html +0 -1
- fides/ui-build/static/admin/messaging/[id].html +0 -1
- fides/ui-build/static/admin/messaging/add-template.html +0 -1
- fides/ui-build/static/admin/messaging.html +0 -1
- fides/ui-build/static/admin/poc/table-migration.html +0 -1
- fides/ui-build/static/admin/privacy-requests/configure/messaging.html +0 -1
- {ethyca_fides-2.69.1rc0.dist-info → ethyca_fides-2.76.0rc2.dist-info}/WHEEL +0 -0
- {ethyca_fides-2.69.1rc0.dist-info → ethyca_fides-2.76.0rc2.dist-info}/entry_points.txt +0 -0
- {ethyca_fides-2.69.1rc0.dist-info → ethyca_fides-2.76.0rc2.dist-info}/licenses/LICENSE +0 -0
- {ethyca_fides-2.69.1rc0.dist-info → ethyca_fides-2.76.0rc2.dist-info}/top_level.txt +0 -0
- /fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/{resources-de704de849960f01.js → resources-81d1b50585468fb0.js} +0 -0
- /fides/ui-build/static/admin/_next/static/{OmXHlY9MvjoZH9jDkAytl → l2vgGUHB04Fi4oEVlVMrc}/_ssgManifest.js +0 -0
|
@@ -13,6 +13,7 @@ from fides.api.schemas.connection_configuration import connection_secrets_schema
|
|
|
13
13
|
from fides.api.schemas.policy import ActionType
|
|
14
14
|
from fides.api.schemas.saas.saas_config import SaaSConfigBase
|
|
15
15
|
from fides.api.util.connection_type import get_connection_type_secret_schema
|
|
16
|
+
from fides.api.util.masking_util import mask_sensitive_fields
|
|
16
17
|
|
|
17
18
|
|
|
18
19
|
class CreateConnectionConfiguration(BaseModel):
|
|
@@ -41,36 +42,6 @@ class CreateConnectionConfigurationWithSecrets(CreateConnectionConfiguration):
|
|
|
41
42
|
model_config = ConfigDict(from_attributes=True, extra="ignore")
|
|
42
43
|
|
|
43
44
|
|
|
44
|
-
def mask_sensitive_fields(
|
|
45
|
-
connection_secrets: Dict[str, Any], secret_schema: Dict[str, Any]
|
|
46
|
-
) -> Dict[str, Any]:
|
|
47
|
-
"""
|
|
48
|
-
Mask sensitive fields in the given secrets based on the provided schema.
|
|
49
|
-
This function traverses the given secrets dictionary and uses the provided schema to
|
|
50
|
-
identify fields that have been marked as sensitive. The function replaces the sensitive
|
|
51
|
-
field values with a mask string ('********').
|
|
52
|
-
Args:
|
|
53
|
-
connection_secrets (Dict[str, Any]): The secrets to be masked.
|
|
54
|
-
secret_schema (Dict[str, Any]): The schema defining which fields are sensitive.
|
|
55
|
-
Returns:
|
|
56
|
-
Dict[str, Any]: The secrets dictionary with sensitive fields masked.
|
|
57
|
-
"""
|
|
58
|
-
if connection_secrets is None:
|
|
59
|
-
return connection_secrets
|
|
60
|
-
|
|
61
|
-
secret_schema_properties = secret_schema["properties"]
|
|
62
|
-
new_connection_secrets = {}
|
|
63
|
-
|
|
64
|
-
for key, value in connection_secrets.items():
|
|
65
|
-
if key in secret_schema_properties:
|
|
66
|
-
if secret_schema_properties.get(key, {}).get("sensitive", False):
|
|
67
|
-
new_connection_secrets[key] = "**********"
|
|
68
|
-
else:
|
|
69
|
-
new_connection_secrets[key] = value
|
|
70
|
-
|
|
71
|
-
return new_connection_secrets
|
|
72
|
-
|
|
73
|
-
|
|
74
45
|
class ConnectionConfigSecretsMixin(BaseModel):
|
|
75
46
|
"""
|
|
76
47
|
A schema mixin to declare a connection config `secrets` attribute
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
from enum import Enum
|
|
2
|
+
from typing import Optional
|
|
3
|
+
|
|
4
|
+
from pydantic import BaseModel, ConfigDict, Field
|
|
5
|
+
|
|
6
|
+
from fides.api.schemas.base_class import NoValidationSchema
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class OAuthGrantType(str, Enum):
|
|
10
|
+
"""OAuth2 grant types supported by the system"""
|
|
11
|
+
|
|
12
|
+
client_credentials = "client_credentials"
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
class OAuthConfigSchema(BaseModel):
|
|
16
|
+
"""Schema for OAuth2 configuration used in API requests"""
|
|
17
|
+
|
|
18
|
+
grant_type: Optional[OAuthGrantType] = None
|
|
19
|
+
token_url: Optional[str] = None
|
|
20
|
+
scope: Optional[str] = None
|
|
21
|
+
client_id: Optional[str] = None
|
|
22
|
+
client_secret: Optional[str] = Field(json_schema_extra={"sensitive": True})
|
|
23
|
+
|
|
24
|
+
model_config = ConfigDict(
|
|
25
|
+
from_attributes=True, use_enum_values=True, extra="forbid"
|
|
26
|
+
)
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
class OAuthConfigResponse(BaseModel):
|
|
30
|
+
"""Schema for OAuth2 configuration used in API responses with masked sensitive fields"""
|
|
31
|
+
|
|
32
|
+
grant_type: OAuthGrantType
|
|
33
|
+
token_url: str
|
|
34
|
+
scope: Optional[str] = None
|
|
35
|
+
client_id: str
|
|
36
|
+
client_secret: str = "**********" # Always masked in responses
|
|
37
|
+
|
|
38
|
+
model_config = ConfigDict(from_attributes=True, use_enum_values=True)
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
class OAuthConfigDocsSchema(OAuthConfigSchema, NoValidationSchema):
|
|
42
|
+
"""OAuth2 Config Schema for API Docs"""
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
from typing import ClassVar, List
|
|
1
|
+
from typing import ClassVar, List, Optional
|
|
2
2
|
|
|
3
3
|
from pydantic import Field
|
|
4
4
|
|
|
@@ -18,7 +18,7 @@ class MongoDBSchema(ConnectionConfigSecretsSchema):
|
|
|
18
18
|
port: int = Field(
|
|
19
19
|
27017,
|
|
20
20
|
title="Port",
|
|
21
|
-
description="The network port number on which the server is listening for incoming connections (default: 27017).",
|
|
21
|
+
description="The network port number on which the server is listening for incoming connections (default: 27017). Port will be ignored if using SRV.",
|
|
22
22
|
)
|
|
23
23
|
username: str = Field(
|
|
24
24
|
title="Username",
|
|
@@ -30,10 +30,22 @@ class MongoDBSchema(ConnectionConfigSecretsSchema):
|
|
|
30
30
|
json_schema_extra={"sensitive": True},
|
|
31
31
|
)
|
|
32
32
|
defaultauthdb: str = Field(
|
|
33
|
-
title="Default
|
|
33
|
+
title="Default auth DB",
|
|
34
34
|
description="Used to specify the default authentication database.",
|
|
35
35
|
)
|
|
36
36
|
|
|
37
|
+
use_srv: Optional[bool] = Field(
|
|
38
|
+
False,
|
|
39
|
+
title="Use SRV",
|
|
40
|
+
description="Enable SRV record lookup for service discovery (mongodb+srv://). Required for MongoDB Atlas. Enables SSL by default.",
|
|
41
|
+
)
|
|
42
|
+
|
|
43
|
+
ssl_enabled: Optional[bool] = Field(
|
|
44
|
+
None,
|
|
45
|
+
title="SSL enabled",
|
|
46
|
+
description="Enable SSL/TLS encryption. With SRV: defaults to enabled (can override). Without SRV: defaults to disabled.",
|
|
47
|
+
)
|
|
48
|
+
|
|
37
49
|
_required_components: ClassVar[List[str]] = [
|
|
38
50
|
"host",
|
|
39
51
|
"username",
|
|
@@ -39,6 +39,11 @@ class MicrosoftSQLServerSchema(ConnectionConfigSecretsSchema):
|
|
|
39
39
|
title="Database",
|
|
40
40
|
description="The name of the specific database within the database server that you want to connect to.",
|
|
41
41
|
)
|
|
42
|
+
read_only_connection: Optional[bool] = Field(
|
|
43
|
+
default=False,
|
|
44
|
+
title="Read Only Connection",
|
|
45
|
+
description="Whether to connect to the database in read-only mode.",
|
|
46
|
+
)
|
|
42
47
|
|
|
43
48
|
_required_components: ClassVar[List[str]] = [
|
|
44
49
|
"host",
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
|
+
from datetime import datetime
|
|
3
4
|
from enum import Enum
|
|
4
5
|
from typing import Any, Dict, List, Optional, Tuple, Type, Union
|
|
5
6
|
|
|
@@ -7,15 +8,14 @@ from fideslang.default_taxonomy import DEFAULT_TAXONOMY
|
|
|
7
8
|
from fideslang.validation import FidesKey
|
|
8
9
|
from pydantic import BaseModel, ConfigDict, Field, model_validator
|
|
9
10
|
|
|
10
|
-
from fides.api.custom_types import
|
|
11
|
+
from fides.api.custom_types import SafeStr
|
|
11
12
|
from fides.api.schemas import Msg
|
|
12
13
|
from fides.api.schemas.api import BulkResponse, BulkUpdateFailed
|
|
13
|
-
from fides.api.schemas.
|
|
14
|
-
BaseAWSSchema,
|
|
15
|
-
)
|
|
14
|
+
from fides.api.schemas.messaging.shared_schemas import PossibleMessagingSecrets
|
|
16
15
|
from fides.api.schemas.privacy_preference import MinimalPrivacyPreferenceHistorySchema
|
|
17
16
|
from fides.api.schemas.privacy_request import Consent
|
|
18
17
|
from fides.api.schemas.property import MinimalProperty
|
|
18
|
+
from fides.api.schemas.redis_cache import IdentityBase
|
|
19
19
|
|
|
20
20
|
|
|
21
21
|
class MessagingMethod(Enum):
|
|
@@ -44,6 +44,25 @@ class MessagingServiceType(Enum):
|
|
|
44
44
|
return member
|
|
45
45
|
return None
|
|
46
46
|
|
|
47
|
+
@property
|
|
48
|
+
def human_readable(self) -> str:
|
|
49
|
+
"""
|
|
50
|
+
Human-readable mapping for MessagingServiceType
|
|
51
|
+
"""
|
|
52
|
+
readable_mapping: Dict[str, str] = {
|
|
53
|
+
MessagingServiceType.mailgun.value: "Mailgun",
|
|
54
|
+
MessagingServiceType.twilio_text.value: "Twilio SMS",
|
|
55
|
+
MessagingServiceType.twilio_email.value: "Twilio Email",
|
|
56
|
+
MessagingServiceType.mailchimp_transactional.value: "Mailchimp Transactional",
|
|
57
|
+
MessagingServiceType.aws_ses.value: "AWS SES",
|
|
58
|
+
}
|
|
59
|
+
try:
|
|
60
|
+
return readable_mapping[self.value]
|
|
61
|
+
except KeyError:
|
|
62
|
+
raise NotImplementedError(
|
|
63
|
+
"Add new MessagingServiceType to human_readable mapping"
|
|
64
|
+
)
|
|
65
|
+
|
|
47
66
|
|
|
48
67
|
EMAIL_MESSAGING_SERVICES: Tuple[str, ...] = (
|
|
49
68
|
MessagingServiceType.mailgun.value,
|
|
@@ -70,6 +89,7 @@ class MessagingActionType(str, Enum):
|
|
|
70
89
|
PRIVACY_REQUEST_REVIEW_APPROVE = "privacy_request_review_approve"
|
|
71
90
|
USER_INVITE = "user_invite"
|
|
72
91
|
EXTERNAL_USER_WELCOME = "external_user_welcome"
|
|
92
|
+
MANUAL_TASK_DIGEST = "manual_task_digest"
|
|
73
93
|
TEST_MESSAGE = "test_message"
|
|
74
94
|
|
|
75
95
|
|
|
@@ -82,9 +102,17 @@ CONFIGURABLE_MESSAGING_ACTION_TYPES: Tuple[str, ...] = (
|
|
|
82
102
|
MessagingActionType.PRIVACY_REQUEST_COMPLETE_DELETION.value,
|
|
83
103
|
MessagingActionType.PRIVACY_REQUEST_REVIEW_DENY.value,
|
|
84
104
|
MessagingActionType.PRIVACY_REQUEST_REVIEW_APPROVE.value,
|
|
105
|
+
MessagingActionType.MANUAL_TASK_DIGEST.value,
|
|
106
|
+
MessagingActionType.EXTERNAL_USER_WELCOME.value,
|
|
85
107
|
)
|
|
86
108
|
|
|
87
109
|
|
|
110
|
+
class MessagingTestBodyParams(BaseModel):
|
|
111
|
+
"""Body params required for testing messaging service"""
|
|
112
|
+
|
|
113
|
+
to_identity: IdentityBase
|
|
114
|
+
|
|
115
|
+
|
|
88
116
|
class ErrorNotificationBodyParams(BaseModel):
|
|
89
117
|
"""Body params required for privacy request error notifications."""
|
|
90
118
|
|
|
@@ -194,6 +222,18 @@ class ExternalUserWelcomeBodyParams(BaseModel):
|
|
|
194
222
|
org_name: str
|
|
195
223
|
|
|
196
224
|
|
|
225
|
+
class ManualTaskDigestBodyParams(BaseModel):
|
|
226
|
+
"""Body params required to send manual task digest emails"""
|
|
227
|
+
|
|
228
|
+
vendor_contact_name: str
|
|
229
|
+
organization_name: str
|
|
230
|
+
portal_url: str
|
|
231
|
+
imminent_task_count: int
|
|
232
|
+
upcoming_task_count: int
|
|
233
|
+
total_task_count: int
|
|
234
|
+
company_logo_url: Optional[str] = None
|
|
235
|
+
|
|
236
|
+
|
|
197
237
|
class FidesopsMessage(
|
|
198
238
|
BaseModel,
|
|
199
239
|
):
|
|
@@ -231,6 +271,7 @@ class FidesopsMessage(
|
|
|
231
271
|
MessagingActionType.PRIVACY_REQUEST_ERROR_NOTIFICATION: ErrorNotificationBodyParams,
|
|
232
272
|
MessagingActionType.USER_INVITE: UserInviteBodyParams,
|
|
233
273
|
MessagingActionType.EXTERNAL_USER_WELCOME: ExternalUserWelcomeBodyParams,
|
|
274
|
+
MessagingActionType.MANUAL_TASK_DIGEST: ManualTaskDigestBodyParams,
|
|
234
275
|
}
|
|
235
276
|
|
|
236
277
|
valid_body_params = valid_body_params_for_action_type.get(
|
|
@@ -339,56 +380,6 @@ class MessagingServiceSecrets(Enum):
|
|
|
339
380
|
AWS_ASSUME_ROLE_ARN = "aws_assume_role_arn"
|
|
340
381
|
|
|
341
382
|
|
|
342
|
-
class MessagingServiceSecretsMailchimpTransactional(BaseModel):
|
|
343
|
-
"""The secrets required to connect to Mailchimp Transactional."""
|
|
344
|
-
|
|
345
|
-
mailchimp_transactional_api_key: str
|
|
346
|
-
model_config = ConfigDict(extra="forbid")
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
class MessagingServiceSecretsMailgun(BaseModel):
|
|
350
|
-
"""The secrets required to connect to Mailgun."""
|
|
351
|
-
|
|
352
|
-
mailgun_api_key: str
|
|
353
|
-
model_config = ConfigDict(extra="forbid")
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
class MessagingServiceSecretsTwilioSMS(BaseModel):
|
|
357
|
-
"""The secrets required to connect to Twilio SMS."""
|
|
358
|
-
|
|
359
|
-
twilio_account_sid: str
|
|
360
|
-
twilio_auth_token: str
|
|
361
|
-
twilio_messaging_service_sid: Optional[str] = None
|
|
362
|
-
twilio_sender_phone_number: Optional[PhoneNumber] = None
|
|
363
|
-
model_config = ConfigDict(extra="forbid")
|
|
364
|
-
|
|
365
|
-
@model_validator(mode="before")
|
|
366
|
-
@classmethod
|
|
367
|
-
def validate_fields(cls, values: Dict[str, Any]) -> Dict[str, Any]:
|
|
368
|
-
sender_phone = values.get("twilio_sender_phone_number")
|
|
369
|
-
if not values.get("twilio_messaging_service_sid") and not sender_phone:
|
|
370
|
-
raise ValueError(
|
|
371
|
-
"Either the twilio_messaging_service_sid or the twilio_sender_phone_number should be supplied."
|
|
372
|
-
)
|
|
373
|
-
return values
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
class MessagingServiceSecretsTwilioEmail(BaseModel):
|
|
377
|
-
"""The secrets required to connect to twilio email."""
|
|
378
|
-
|
|
379
|
-
twilio_api_key: str
|
|
380
|
-
model_config = ConfigDict(extra="forbid")
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
class MessagingServiceSecretsAWS_SES(BaseAWSSchema):
|
|
384
|
-
"""
|
|
385
|
-
The secrets required to connect to AWS SES.
|
|
386
|
-
Inherits basic AWS authentication schema.
|
|
387
|
-
"""
|
|
388
|
-
|
|
389
|
-
model_config = ConfigDict(extra="forbid")
|
|
390
|
-
|
|
391
|
-
|
|
392
383
|
class MessagingConfigBase(BaseModel):
|
|
393
384
|
"""Base model shared by messaging config related models"""
|
|
394
385
|
|
|
@@ -453,8 +444,9 @@ class MessagingConfigRequestBase(MessagingConfigBase):
|
|
|
453
444
|
class MessagingConfigRequest(MessagingConfigRequestBase):
|
|
454
445
|
"""Messaging Config Request Schema"""
|
|
455
446
|
|
|
456
|
-
name: str
|
|
447
|
+
name: Optional[str] = None
|
|
457
448
|
key: Optional[FidesKey] = None
|
|
449
|
+
secrets: Optional[PossibleMessagingSecrets] = None
|
|
458
450
|
|
|
459
451
|
|
|
460
452
|
class MessagingConfigResponse(MessagingConfigBase):
|
|
@@ -462,16 +454,8 @@ class MessagingConfigResponse(MessagingConfigBase):
|
|
|
462
454
|
|
|
463
455
|
name: str
|
|
464
456
|
key: FidesKey
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
SUPPORTED_MESSAGING_SERVICE_SECRETS = Union[
|
|
469
|
-
MessagingServiceSecretsMailgun,
|
|
470
|
-
MessagingServiceSecretsTwilioSMS,
|
|
471
|
-
MessagingServiceSecretsTwilioEmail,
|
|
472
|
-
MessagingServiceSecretsMailchimpTransactional,
|
|
473
|
-
MessagingServiceSecretsAWS_SES,
|
|
474
|
-
]
|
|
457
|
+
last_test_timestamp: Optional[datetime] = None
|
|
458
|
+
last_test_succeeded: Optional[bool] = None
|
|
475
459
|
|
|
476
460
|
|
|
477
461
|
class MessagingConnectionTestStatus(Enum):
|
|
@@ -479,7 +463,6 @@ class MessagingConnectionTestStatus(Enum):
|
|
|
479
463
|
|
|
480
464
|
succeeded = "succeeded"
|
|
481
465
|
failed = "failed"
|
|
482
|
-
skipped = "skipped"
|
|
483
466
|
|
|
484
467
|
|
|
485
468
|
class TestMessagingStatusMessage(Msg):
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
from typing import Union
|
|
2
2
|
|
|
3
3
|
from fides.api.schemas.base_class import NoValidationSchema
|
|
4
|
-
from fides.api.schemas.messaging.
|
|
4
|
+
from fides.api.schemas.messaging.shared_schemas import (
|
|
5
5
|
MessagingServiceSecretsAWS_SES,
|
|
6
6
|
MessagingServiceSecretsMailchimpTransactional,
|
|
7
7
|
MessagingServiceSecretsMailgun,
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
from typing import Any, Dict, Optional, Union
|
|
2
|
+
|
|
3
|
+
from pydantic import BaseModel, ConfigDict, model_validator
|
|
4
|
+
|
|
5
|
+
from fides.api.custom_types import PhoneNumber
|
|
6
|
+
from fides.api.schemas.base_class import NoValidationSchema
|
|
7
|
+
from fides.api.schemas.connection_configuration.connection_secrets_base_aws import (
|
|
8
|
+
BaseAWSSchema,
|
|
9
|
+
)
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class MessagingServiceSecretsMailgun(BaseModel):
|
|
13
|
+
"""The secrets required to connect to Mailgun."""
|
|
14
|
+
|
|
15
|
+
mailgun_api_key: str
|
|
16
|
+
model_config = ConfigDict(extra="forbid")
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
class MessagingServiceSecretsTwilioSMS(BaseModel):
|
|
20
|
+
"""The secrets required to connect to Twilio SMS."""
|
|
21
|
+
|
|
22
|
+
twilio_account_sid: str
|
|
23
|
+
twilio_auth_token: str
|
|
24
|
+
twilio_messaging_service_sid: Optional[str] = None
|
|
25
|
+
twilio_sender_phone_number: Optional[PhoneNumber] = None
|
|
26
|
+
model_config = ConfigDict(extra="forbid")
|
|
27
|
+
|
|
28
|
+
@model_validator(mode="before")
|
|
29
|
+
@classmethod
|
|
30
|
+
def validate_fields(cls, values: Dict[str, Any]) -> Dict[str, Any]:
|
|
31
|
+
sender_phone = values.get("twilio_sender_phone_number")
|
|
32
|
+
if not values.get("twilio_messaging_service_sid") and not sender_phone:
|
|
33
|
+
raise ValueError(
|
|
34
|
+
"Either the twilio_messaging_service_sid or the twilio_sender_phone_number should be supplied."
|
|
35
|
+
)
|
|
36
|
+
return values
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
class MessagingServiceSecretsTwilioEmail(BaseModel):
|
|
40
|
+
"""The secrets required to connect to twilio email."""
|
|
41
|
+
|
|
42
|
+
twilio_api_key: str
|
|
43
|
+
model_config = ConfigDict(extra="forbid")
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
class MessagingServiceSecretsMailchimpTransactional(BaseModel):
|
|
47
|
+
"""The secrets required to connect to Mailchimp Transactional."""
|
|
48
|
+
|
|
49
|
+
mailchimp_transactional_api_key: str
|
|
50
|
+
model_config = ConfigDict(extra="forbid")
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
class MessagingServiceSecretsMailchimpTransactionalDocs(
|
|
54
|
+
MessagingServiceSecretsMailchimpTransactional,
|
|
55
|
+
NoValidationSchema,
|
|
56
|
+
):
|
|
57
|
+
"""The secrets required to connect Mailchimp Transactional, for documentation"""
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
class MessagingSecretsMailgunDocs(MessagingServiceSecretsMailgun, NoValidationSchema):
|
|
61
|
+
"""The secrets required to connect to Mailgun, for documentation"""
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
class MessagingSecretsTwilioSMSDocs(
|
|
65
|
+
MessagingServiceSecretsTwilioSMS, NoValidationSchema
|
|
66
|
+
):
|
|
67
|
+
"""The secrets required to connect to Twilio sms, for documentation"""
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
class MessagingSecretsTwilioEmailDocs(
|
|
71
|
+
MessagingServiceSecretsTwilioEmail, NoValidationSchema
|
|
72
|
+
):
|
|
73
|
+
"""The secrets required to connect to Twilio email, for documentation"""
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
class MessagingServiceSecretsAWS_SES(BaseAWSSchema):
|
|
77
|
+
"""The secrets required to connect to AWS SES."""
|
|
78
|
+
|
|
79
|
+
model_config = ConfigDict(extra="forbid")
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
class MessagingServiceSecretsAWS_SESDocs(
|
|
83
|
+
MessagingServiceSecretsAWS_SES, NoValidationSchema
|
|
84
|
+
):
|
|
85
|
+
"""The secrets required to connect to AWS SES, for documentation"""
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
SUPPORTED_MESSAGING_SERVICE_SECRETS = Union[
|
|
89
|
+
MessagingServiceSecretsMailgun,
|
|
90
|
+
MessagingServiceSecretsTwilioSMS,
|
|
91
|
+
MessagingServiceSecretsTwilioEmail,
|
|
92
|
+
MessagingServiceSecretsMailchimpTransactional,
|
|
93
|
+
MessagingServiceSecretsAWS_SES,
|
|
94
|
+
]
|
|
95
|
+
|
|
96
|
+
PossibleMessagingSecrets = Union[
|
|
97
|
+
MessagingSecretsMailgunDocs,
|
|
98
|
+
MessagingSecretsTwilioSMSDocs,
|
|
99
|
+
MessagingSecretsTwilioEmailDocs,
|
|
100
|
+
MessagingServiceSecretsMailchimpTransactionalDocs,
|
|
101
|
+
MessagingServiceSecretsAWS_SESDocs,
|
|
102
|
+
]
|
fides/api/schemas/oauth.py
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
from typing import Dict, Optional
|
|
1
|
+
from typing import Dict, Literal, Optional
|
|
2
2
|
|
|
3
3
|
from fastapi import Form
|
|
4
4
|
from fastapi.openapi.models import OAuthFlows
|
|
@@ -14,6 +14,7 @@ class AccessToken(BaseModel):
|
|
|
14
14
|
"""A wrapper for the access_code returned upon successful authentication"""
|
|
15
15
|
|
|
16
16
|
access_token: str
|
|
17
|
+
token_type: Literal["Bearer"] = "Bearer"
|
|
17
18
|
|
|
18
19
|
|
|
19
20
|
# NOTE: Adapted from
|
|
@@ -1,7 +1,14 @@
|
|
|
1
1
|
from abc import ABC
|
|
2
|
-
from typing import Any, Dict, List, Literal, Optional, Union
|
|
2
|
+
from typing import Annotated, Any, Dict, List, Literal, Optional, Union
|
|
3
3
|
|
|
4
|
-
from pydantic import
|
|
4
|
+
from pydantic import (
|
|
5
|
+
ConfigDict,
|
|
6
|
+
Discriminator,
|
|
7
|
+
Field,
|
|
8
|
+
Tag,
|
|
9
|
+
field_validator,
|
|
10
|
+
model_validator,
|
|
11
|
+
)
|
|
5
12
|
|
|
6
13
|
from fides.api.models.location_regulation_selections import PrivacyNoticeRegion
|
|
7
14
|
from fides.api.schemas.base_class import FidesSchema
|
|
@@ -86,9 +93,26 @@ class LocationCustomPrivacyRequestField(BaseCustomPrivacyRequestField):
|
|
|
86
93
|
return values
|
|
87
94
|
|
|
88
95
|
|
|
89
|
-
# Create a
|
|
90
|
-
|
|
91
|
-
|
|
96
|
+
# Create a discriminated union type using the field_type to properly distinguish between types
|
|
97
|
+
def get_field_type_discriminator(v: Any) -> str:
|
|
98
|
+
"""Discriminator function for CustomPrivacyRequestFieldUnion"""
|
|
99
|
+
if isinstance(v, dict):
|
|
100
|
+
field_type = v.get("field_type")
|
|
101
|
+
else:
|
|
102
|
+
# For model instances, get field_type attribute
|
|
103
|
+
field_type = getattr(v, "field_type", None)
|
|
104
|
+
|
|
105
|
+
if field_type == "location":
|
|
106
|
+
return "location"
|
|
107
|
+
return "custom"
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
CustomPrivacyRequestFieldUnion = Annotated[
|
|
111
|
+
Union[
|
|
112
|
+
Annotated[LocationCustomPrivacyRequestField, Tag("location")],
|
|
113
|
+
Annotated[CustomPrivacyRequestField, Tag("custom")],
|
|
114
|
+
],
|
|
115
|
+
Discriminator(get_field_type_discriminator),
|
|
92
116
|
]
|
|
93
117
|
|
|
94
118
|
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
from datetime import datetime
|
|
2
2
|
from enum import Enum as EnumType
|
|
3
3
|
from typing import Any, Dict, List, Optional, Type, Union
|
|
4
|
+
from uuid import UUID
|
|
4
5
|
|
|
5
6
|
from fideslang.validation import FidesKey
|
|
6
|
-
from pydantic import ConfigDict, Field, field_serializer, field_validator
|
|
7
|
+
from pydantic import BaseModel, ConfigDict, Field, field_serializer, field_validator
|
|
7
8
|
|
|
8
9
|
from fides.api.custom_types import SafeStr
|
|
9
10
|
from fides.api.graph.config import CollectionAddress
|
|
@@ -13,8 +14,12 @@ from fides.api.schemas.api import BulkResponse, BulkUpdateFailed
|
|
|
13
14
|
from fides.api.schemas.base_class import FidesSchema
|
|
14
15
|
from fides.api.schemas.policy import ActionType, CurrentStep
|
|
15
16
|
from fides.api.schemas.policy import PolicyResponse as PolicySchema
|
|
16
|
-
from fides.api.schemas.redis_cache import
|
|
17
|
-
|
|
17
|
+
from fides.api.schemas.redis_cache import (
|
|
18
|
+
CustomPrivacyRequestField,
|
|
19
|
+
Identity,
|
|
20
|
+
MultiValue,
|
|
21
|
+
)
|
|
22
|
+
from fides.api.schemas.user import PrivacyRequestUser
|
|
18
23
|
from fides.api.util.collection_util import Row
|
|
19
24
|
from fides.api.util.encryption.aes_gcm_encryption_scheme import verify_encryption_key
|
|
20
25
|
from fides.api.util.enums import ColumnSort
|
|
@@ -306,6 +311,23 @@ class PrivacyRequestStatus(str, EnumType):
|
|
|
306
311
|
requires_manual_finalization = "requires_manual_finalization"
|
|
307
312
|
canceled = "canceled"
|
|
308
313
|
error = "error"
|
|
314
|
+
duplicate = "duplicate" # Request identified as duplicate of another request
|
|
315
|
+
|
|
316
|
+
|
|
317
|
+
class IdentityValue(BaseModel):
|
|
318
|
+
"""Represents an identity value with a label in API responses.
|
|
319
|
+
|
|
320
|
+
The value field accepts MultiValue types which match what LabeledIdentity supports:
|
|
321
|
+
- int
|
|
322
|
+
- str
|
|
323
|
+
- List[Union[int, str]]
|
|
324
|
+
|
|
325
|
+
This allows the schema to accept list values that were previously causing
|
|
326
|
+
validation errors.
|
|
327
|
+
"""
|
|
328
|
+
|
|
329
|
+
label: str
|
|
330
|
+
value: Optional[MultiValue] = None
|
|
309
331
|
|
|
310
332
|
|
|
311
333
|
class PrivacyRequestResponse(FidesSchema):
|
|
@@ -316,7 +338,9 @@ class PrivacyRequestResponse(FidesSchema):
|
|
|
316
338
|
started_processing_at: Optional[datetime] = None
|
|
317
339
|
reviewed_at: Optional[datetime] = None
|
|
318
340
|
reviewed_by: Optional[str] = None
|
|
319
|
-
|
|
341
|
+
submitted_by: Optional[str] = None
|
|
342
|
+
reviewer: Optional[PrivacyRequestUser] = None
|
|
343
|
+
submitter: Optional[PrivacyRequestUser] = None
|
|
320
344
|
finished_processing_at: Optional[datetime] = None
|
|
321
345
|
identity_verified_at: Optional[datetime] = None
|
|
322
346
|
paused_at: Optional[datetime] = None
|
|
@@ -326,7 +350,7 @@ class PrivacyRequestResponse(FidesSchema):
|
|
|
326
350
|
# as it is an API response field, and we don't want to reveal any more
|
|
327
351
|
# about our PII structure than is explicitly stored in the cache on request
|
|
328
352
|
# creation.
|
|
329
|
-
identity: Optional[Dict[str, Union[Optional[str],
|
|
353
|
+
identity: Optional[Dict[str, Union[Optional[str], IdentityValue]]] = None
|
|
330
354
|
custom_privacy_request_fields: Optional[Dict[str, Any]] = None
|
|
331
355
|
policy: PolicySchema
|
|
332
356
|
action_required_details: Optional[CheckpointActionRequiredDetails] = None
|
|
@@ -340,6 +364,8 @@ class PrivacyRequestResponse(FidesSchema):
|
|
|
340
364
|
deleted_by: Optional[str] = None
|
|
341
365
|
finalized_at: Optional[datetime] = None
|
|
342
366
|
finalized_by: Optional[str] = None
|
|
367
|
+
duplicate_request_group_id: Optional[UUID] = None
|
|
368
|
+
|
|
343
369
|
model_config = ConfigDict(from_attributes=True, use_enum_values=True)
|
|
344
370
|
|
|
345
371
|
|
|
@@ -353,10 +379,15 @@ class PrivacyRequestVerboseResponse(PrivacyRequestResponse):
|
|
|
353
379
|
model_config = ConfigDict(populate_by_name=True)
|
|
354
380
|
|
|
355
381
|
|
|
382
|
+
# Batch size for bulk privacy request operations. Used for request validation and
|
|
383
|
+
# automatic batching to avoid memory issues with large request lists.
|
|
384
|
+
BULK_PRIVACY_REQUEST_BATCH_SIZE = 50
|
|
385
|
+
|
|
386
|
+
|
|
356
387
|
class ReviewPrivacyRequestIds(FidesSchema):
|
|
357
388
|
"""Pass in a list of privacy request ids"""
|
|
358
389
|
|
|
359
|
-
request_ids: List[str] = Field(..., max_length=
|
|
390
|
+
request_ids: List[str] = Field(..., max_length=BULK_PRIVACY_REQUEST_BATCH_SIZE)
|
|
360
391
|
|
|
361
392
|
|
|
362
393
|
class DenyPrivacyRequests(ReviewPrivacyRequestIds):
|
|
@@ -365,6 +396,12 @@ class DenyPrivacyRequests(ReviewPrivacyRequestIds):
|
|
|
365
396
|
reason: Optional[SafeStr] = None
|
|
366
397
|
|
|
367
398
|
|
|
399
|
+
class CancelPrivacyRequests(ReviewPrivacyRequestIds):
|
|
400
|
+
"""Pass in a list of privacy request ids and cancellation reason"""
|
|
401
|
+
|
|
402
|
+
reason: Optional[SafeStr] = None
|
|
403
|
+
|
|
404
|
+
|
|
368
405
|
class BulkPostPrivacyRequests(BulkResponse):
|
|
369
406
|
"""Schema with mixed success/failure responses for Bulk Create of PrivacyRequest responses."""
|
|
370
407
|
|
|
@@ -453,7 +490,7 @@ class PrivacyRequestFilter(FidesSchema):
|
|
|
453
490
|
errored_gt: Optional[datetime] = None
|
|
454
491
|
external_id: Optional[str] = None
|
|
455
492
|
location: Optional[str] = None
|
|
456
|
-
action_type: Optional[ActionType] = None
|
|
493
|
+
action_type: Optional[Union[ActionType, List[ActionType]]] = None
|
|
457
494
|
verbose: Optional[bool] = False
|
|
458
495
|
include_identities: Optional[bool] = False
|
|
459
496
|
include_custom_privacy_request_fields: Optional[bool] = False
|