data-syncmaster 0.3.1__tar.gz → 0.3.3__tar.gz
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.
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/PKG-INFO +27 -26
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/README.rst +8 -8
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/data_syncmaster.egg-info/PKG-INFO +27 -26
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/data_syncmaster.egg-info/SOURCES.txt +2 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/data_syncmaster.egg-info/requires.txt +14 -13
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/pyproject.toml +35 -32
- data_syncmaster-0.3.3/syncmaster/VERSION +1 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/db/migrations/versions/2023-11-23_0007_create_transfer_table.py +2 -4
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/db/migrations/versions/2025-08-10_0012_update_ts.py +1 -2
- data_syncmaster-0.3.3/syncmaster/db/migrations/versions/2026-04-02_0013_add_celery_date_done_indexes.py +39 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/schemas/v1/auth/basic.py +1 -1
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/schemas/v1/auth/iceberg_rest_s3_delegated/bearer.py +1 -1
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/schemas/v1/auth/iceberg_rest_s3_delegated/oauth2_client_credentials.py +4 -1
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/schemas/v1/auth/iceberg_rest_s3_direct/bearer.py +4 -1
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/schemas/v1/auth/iceberg_rest_s3_direct/oauth2_client_credentials.py +4 -1
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/schemas/v1/auth/s3.py +1 -1
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/schemas/v1/auth/samba.py +1 -1
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/schemas/v1/connections/iceberg.py +2 -2
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/schemas/v1/transfers/db.py +10 -2
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/schemas/v1/transfers/file_format.py +12 -12
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/schemas/v1/transfers/transformations/__init__.py +4 -1
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/schemas/v1/transfers/transformations/dataframe_columns_filter.py +6 -6
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/schemas/v1/transfers/transformations/dataframe_rows_filter.py +24 -24
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/schemas/v1/transfers/transformations/file_metadata_filter.py +9 -9
- data_syncmaster-0.3.3/syncmaster/schemas/v1/transfers/transformations/sql.py +28 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/schemas/v1/transformation_types.py +1 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/worker/handlers/db/base.py +19 -1
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/worker/handlers/db/clickhouse.py +53 -1
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/worker/handlers/db/mysql.py +1 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/worker/handlers/file/base.py +6 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/worker/handlers/file/local_df.py +10 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/worker/handlers/file/remote_df.py +10 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/worker/handlers/file/s3.py +10 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/worker/ivy2.py +1 -1
- data_syncmaster-0.3.1/syncmaster/VERSION +0 -1
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/LICENSE.txt +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/data_syncmaster.egg-info/dependency_links.txt +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/data_syncmaster.egg-info/top_level.txt +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/setup.cfg +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/__init__.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/db/__init__.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/db/factory.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/db/migrations/__init__.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/db/migrations/__main__.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/db/migrations/alembic.ini +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/db/migrations/env.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/db/migrations/versions/2023-11-23_0001_create_user_table.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/db/migrations/versions/2023-11-23_0002_create_group_table.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/db/migrations/versions/2023-11-23_0003_create_queue_table.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/db/migrations/versions/2023-11-23_0004_create_connection_table.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/db/migrations/versions/2023-11-23_0005_create_user_group_table.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/db/migrations/versions/2023-11-23_0006_create_auth_data_table.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/db/migrations/versions/2023-11-23_0008_create_run_table.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/db/migrations/versions/2023-11-23_0009_create_celery_tables.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/db/migrations/versions/2024-10-07_0010_add_pg_trgm_extension.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/db/migrations/versions/2024-11-01_0011_create_apscheduler_table.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/db/migrations/versions/__init__.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/db/mixins/__init__.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/db/mixins/resource.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/db/mixins/timestamp.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/db/models/__init__.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/db/models/apscheduler_job.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/db/models/auth_data.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/db/models/base.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/db/models/connection.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/db/models/group.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/db/models/queue.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/db/models/run.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/db/models/transfer.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/db/models/user.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/db/repositories/__init__.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/db/repositories/base.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/db/repositories/connection.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/db/repositories/credentials_repository.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/db/repositories/group.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/db/repositories/queue.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/db/repositories/repository_with_owner.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/db/repositories/run.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/db/repositories/search.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/db/repositories/transfer.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/db/repositories/user.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/db/repositories/utils.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/db/utils.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/dto/__init__.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/dto/connections.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/dto/runs.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/dto/transfers.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/dto/transfers_resources.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/dto/transfers_strategy.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/errors/__init__.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/errors/base.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/errors/registration.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/errors/schemas/__init__.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/errors/schemas/bad_request.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/errors/schemas/invalid_request.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/errors/schemas/not_authorized.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/exceptions/__init__.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/exceptions/auth.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/exceptions/base.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/exceptions/connection.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/exceptions/credentials.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/exceptions/group.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/exceptions/queue.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/exceptions/redirect.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/exceptions/run.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/exceptions/transfer.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/exceptions/user.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/scheduler/__init__.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/scheduler/__main__.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/scheduler/celery.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/scheduler/settings/__init__.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/scheduler/transfer_fetcher.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/scheduler/transfer_job_manager.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/scheduler/utils.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/schemas/__init__.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/schemas/ping.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/schemas/v1/__init__.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/schemas/v1/auth/__init__.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/schemas/v1/auth/iceberg_rest_s3_delegated/__init__.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/schemas/v1/auth/iceberg_rest_s3_direct/__init__.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/schemas/v1/auth/mixins.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/schemas/v1/auth/token.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/schemas/v1/connection_types.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/schemas/v1/connections/__init__.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/schemas/v1/connections/clickhouse.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/schemas/v1/connections/connection_base.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/schemas/v1/connections/ftp.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/schemas/v1/connections/ftps.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/schemas/v1/connections/hdfs.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/schemas/v1/connections/hive.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/schemas/v1/connections/mssql.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/schemas/v1/connections/mysql.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/schemas/v1/connections/oracle.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/schemas/v1/connections/postgres.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/schemas/v1/connections/s3.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/schemas/v1/connections/samba.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/schemas/v1/connections/sftp.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/schemas/v1/connections/webdav.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/schemas/v1/file_formats.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/schemas/v1/groups.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/schemas/v1/page.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/schemas/v1/queue.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/schemas/v1/transfers/__init__.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/schemas/v1/transfers/file/__init__.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/schemas/v1/transfers/file/base.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/schemas/v1/transfers/file/ftp.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/schemas/v1/transfers/file/ftps.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/schemas/v1/transfers/file/hdfs.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/schemas/v1/transfers/file/s3.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/schemas/v1/transfers/file/samba.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/schemas/v1/transfers/file/sftp.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/schemas/v1/transfers/file/webdav.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/schemas/v1/transfers/resources.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/schemas/v1/transfers/run.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/schemas/v1/transfers/strategy.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/schemas/v1/types.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/schemas/v1/users.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/server/__init__.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/server/__main__.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/server/api/__init__.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/server/api/monitoring.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/server/api/router.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/server/api/v1/__init__.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/server/api/v1/auth.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/server/api/v1/connections.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/server/api/v1/groups.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/server/api/v1/queue.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/server/api/v1/router.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/server/api/v1/runs.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/server/api/v1/transfers.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/server/api/v1/users.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/server/dependencies/__init__.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/server/dependencies/get_access_token.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/server/dependencies/stub.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/server/handler.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/server/middlewares/__init__.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/server/middlewares/cors.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/server/middlewares/monitoring/__init__.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/server/middlewares/monitoring/metrics.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/server/middlewares/openapi.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/server/middlewares/request_id.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/server/middlewares/static_files.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/server/providers/__init__.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/server/providers/auth/__init__.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/server/providers/auth/base_provider.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/server/providers/auth/dummy_provider.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/server/providers/auth/keycloak_provider.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/server/providers/auth/oauth2_gateway_provider.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/server/scripts/export_openapi_schema.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/server/scripts/manage_superusers.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/server/services/__init__.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/server/services/get_user.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/server/services/unit_of_work.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/server/settings/__init__.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/server/settings/auth/__init__.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/server/settings/auth/dummy.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/server/settings/auth/jwt.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/server/settings/auth/keycloak.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/server/settings/auth/oauth2_gateway.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/server/settings/server/__init__.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/server/settings/server/cors.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/server/settings/server/monitoring.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/server/settings/server/openapi.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/server/settings/server/request_id.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/server/settings/server/static_files.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/server/utils/__init__.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/server/utils/jwt.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/server/utils/slug.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/settings/__init__.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/settings/base.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/settings/broker.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/settings/credentials.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/settings/database.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/settings/logging.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/worker/__init__.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/worker/base.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/worker/celery.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/worker/controller.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/worker/handlers/__init__.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/worker/handlers/base.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/worker/handlers/db/__init__.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/worker/handlers/db/hive.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/worker/handlers/db/iceberg.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/worker/handlers/db/mssql.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/worker/handlers/db/oracle.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/worker/handlers/db/postgres.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/worker/handlers/file/__init__.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/worker/handlers/file/ftp.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/worker/handlers/file/ftps.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/worker/handlers/file/hdfs.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/worker/handlers/file/samba.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/worker/handlers/file/sftp.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/worker/handlers/file/webdav.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/worker/settings/__init__.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/worker/settings/hwm_store.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/worker/spark.py +0 -0
- {data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/worker/transfer.py +0 -0
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: data-syncmaster
|
|
3
|
-
Version: 0.3.
|
|
3
|
+
Version: 0.3.3
|
|
4
4
|
Summary: Syncmaster REST API + scheduler + Worker
|
|
5
5
|
Author-email: MWS Data Bridge <onetools@mts.ru>
|
|
6
6
|
License-Expression: Apache-2.0
|
|
7
|
-
Project-URL: Homepage, https://github.com/
|
|
7
|
+
Project-URL: Homepage, https://github.com/MTSWebServices/syncmaster
|
|
8
8
|
Project-URL: Documentation, https://syncmaster.readthedocs.io/
|
|
9
|
-
Project-URL: Source, https://github.com/
|
|
10
|
-
Project-URL: CI/CD, https://github.com/
|
|
11
|
-
Project-URL: Tracker, https://github.com/
|
|
9
|
+
Project-URL: Source, https://github.com/MTSWebServices/syncmaster
|
|
10
|
+
Project-URL: CI/CD, https://github.com/MTSWebServices/syncmaster/actions
|
|
11
|
+
Project-URL: Tracker, https://github.com/MTSWebServices/syncmaster/issues
|
|
12
12
|
Keywords: Syncmaster,REST,API,Worker,Spark,Transfer,ETL
|
|
13
13
|
Classifier: Development Status :: 3 - Alpha
|
|
14
14
|
Classifier: Framework :: Pydantic
|
|
@@ -26,47 +26,48 @@ Classifier: Typing :: Typed
|
|
|
26
26
|
Requires-Python: >=3.11
|
|
27
27
|
Description-Content-Type: text/x-rst
|
|
28
28
|
License-File: LICENSE.txt
|
|
29
|
-
Requires-Dist: pydantic~=2.
|
|
30
|
-
Requires-Dist: pydantic-settings~=2.
|
|
29
|
+
Requires-Dist: pydantic~=2.13.4
|
|
30
|
+
Requires-Dist: pydantic-settings~=2.14.1
|
|
31
31
|
Requires-Dist: pydantic-settings-logging~=0.1.1
|
|
32
|
-
Requires-Dist: sqlalchemy~=2.0.
|
|
32
|
+
Requires-Dist: sqlalchemy~=2.0.49
|
|
33
33
|
Requires-Dist: sqlalchemy-utils~=0.42.0
|
|
34
34
|
Requires-Dist: pyyaml~=6.0.3
|
|
35
35
|
Requires-Dist: coloredlogs~=15.0.1
|
|
36
|
-
Requires-Dist: python-json-logger~=4.
|
|
36
|
+
Requires-Dist: python-json-logger~=4.1.0
|
|
37
37
|
Requires-Dist: asgi-correlation-id~=4.3.4
|
|
38
38
|
Requires-Dist: uuid6~=2025.0.1
|
|
39
39
|
Requires-Dist: celery~=5.6.0
|
|
40
40
|
Requires-Dist: psycopg2-binary~=2.9.11
|
|
41
41
|
Provides-Extra: server
|
|
42
|
-
Requires-Dist: fastapi
|
|
42
|
+
Requires-Dist: fastapi<0.137.0,>=0.135.3; extra == "server"
|
|
43
|
+
Requires-Dist: starlette<1.0; extra == "server"
|
|
43
44
|
Requires-Dist: starlette-exporter~=0.23.0; extra == "server"
|
|
44
|
-
Requires-Dist: python-multipart~=0.0.
|
|
45
|
-
Requires-Dist: uvicorn
|
|
46
|
-
Requires-Dist: alembic~=1.18.
|
|
47
|
-
Requires-Dist: pyjwt~=2.
|
|
48
|
-
Requires-Dist: asyncpg~=0.31; extra == "server"
|
|
49
|
-
Requires-Dist: python-keycloak~=7.
|
|
45
|
+
Requires-Dist: python-multipart~=0.0.26; extra == "server"
|
|
46
|
+
Requires-Dist: uvicorn<0.48,>=0.44; extra == "server"
|
|
47
|
+
Requires-Dist: alembic~=1.18.4; extra == "server"
|
|
48
|
+
Requires-Dist: pyjwt~=2.12.1; extra == "server"
|
|
49
|
+
Requires-Dist: asyncpg~=0.31.0; extra == "server"
|
|
50
|
+
Requires-Dist: python-keycloak~=7.1.1; extra == "server"
|
|
50
51
|
Requires-Dist: itsdangerous~=2.2.0; extra == "server"
|
|
51
52
|
Provides-Extra: scheduler
|
|
52
53
|
Requires-Dist: asyncpg~=0.31; extra == "scheduler"
|
|
53
54
|
Requires-Dist: apscheduler~=3.11.1; extra == "scheduler"
|
|
54
55
|
Provides-Extra: worker
|
|
55
|
-
Requires-Dist: onetl[files]~=0.
|
|
56
|
+
Requires-Dist: onetl[files]~=0.16.0; extra == "worker"
|
|
56
57
|
Requires-Dist: pyspark<4.0.0; extra == "worker"
|
|
57
58
|
Requires-Dist: horizon-hwm-store~=1.1.4; extra == "worker"
|
|
58
59
|
Requires-Dist: jinja2~=3.1.6; extra == "worker"
|
|
59
60
|
Provides-Extra: kerberos
|
|
60
|
-
Requires-Dist: onetl[kerberos]~=0.
|
|
61
|
+
Requires-Dist: onetl[kerberos]~=0.16.0; extra == "kerberos"
|
|
61
62
|
Dynamic: license-file
|
|
62
63
|
|
|
63
64
|
.. _readme:
|
|
64
65
|
|
|
65
66
|
|Logo|
|
|
66
67
|
|
|
67
|
-
.. |Logo| image:: https://raw.githubusercontent.com/
|
|
68
|
+
.. |Logo| image:: https://raw.githubusercontent.com/MTSWebServices/syncmaster/0eb2ba2be6656f81ea9706523c3b7942df212640/docs/_static/logo_wide.svg
|
|
68
69
|
:alt: Data.SyncMaster logo
|
|
69
|
-
:target: https://github.com/
|
|
70
|
+
:target: https://github.com/MTSWebServices/data-syncmaster
|
|
70
71
|
|
|
71
72
|
|Repo Status| |Docker image| |PyPI| |PyPI License| |PyPI Python Version| |Documentation|
|
|
72
73
|
|Build Status| |Coverage| |pre-commit.ci|
|
|
@@ -78,18 +79,18 @@ Dynamic: license-file
|
|
|
78
79
|
.. |PyPI| image:: https://img.shields.io/pypi/v/data-syncmaster
|
|
79
80
|
:target: https://pypi.org/project/data-syncmaster/
|
|
80
81
|
.. |PyPI License| image:: https://img.shields.io/pypi/l/data-syncmaster.svg
|
|
81
|
-
:target: https://github.com/
|
|
82
|
+
:target: https://github.com/MTSWebServices/syncmaster/blob/develop/LICENSE.txt
|
|
82
83
|
.. |PyPI Python Version| image:: https://img.shields.io/pypi/pyversions/data-syncmaster.svg
|
|
83
84
|
:target: https://badge.fury.io/py/data-syncmaster
|
|
84
85
|
.. |Documentation| image:: https://readthedocs.org/projects/syncmaster/badge/?version=stable
|
|
85
86
|
:target: https://syncmaster.readthedocs.io
|
|
86
|
-
.. |Build Status| image:: https://github.com/
|
|
87
|
-
:target: https://github.com/
|
|
87
|
+
.. |Build Status| image:: https://github.com/MTSWebServices/syncmaster/workflows/Run%20All%20Tests/badge.svg
|
|
88
|
+
:target: https://github.com/MTSWebServices/syncmaster/actions
|
|
88
89
|
.. |Coverage| image:: https://img.shields.io/endpoint?url=https://gist.githubusercontent.com/
|
|
89
90
|
MTSOnGithub/03e73a82ecc4709934540ce8201cc3b4/raw/syncmaster_badge.json
|
|
90
|
-
:target: https://github.com/
|
|
91
|
-
.. |pre-commit.ci| image:: https://results.pre-commit.ci/badge/github/
|
|
92
|
-
:target: https://results.pre-commit.ci/latest/github/
|
|
91
|
+
:target: https://github.com/MTSWebServices/syncmaster/actions
|
|
92
|
+
.. |pre-commit.ci| image:: https://results.pre-commit.ci/badge/github/MTSWebServices/syncmaster/develop.svg
|
|
93
|
+
:target: https://results.pre-commit.ci/latest/github/MTSWebServices/syncmaster/develop
|
|
93
94
|
|
|
94
95
|
What is Data.SyncMaster?
|
|
95
96
|
------------------------
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
|Logo|
|
|
4
4
|
|
|
5
|
-
.. |Logo| image:: https://raw.githubusercontent.com/
|
|
5
|
+
.. |Logo| image:: https://raw.githubusercontent.com/MTSWebServices/syncmaster/0eb2ba2be6656f81ea9706523c3b7942df212640/docs/_static/logo_wide.svg
|
|
6
6
|
:alt: Data.SyncMaster logo
|
|
7
|
-
:target: https://github.com/
|
|
7
|
+
:target: https://github.com/MTSWebServices/data-syncmaster
|
|
8
8
|
|
|
9
9
|
|Repo Status| |Docker image| |PyPI| |PyPI License| |PyPI Python Version| |Documentation|
|
|
10
10
|
|Build Status| |Coverage| |pre-commit.ci|
|
|
@@ -16,18 +16,18 @@
|
|
|
16
16
|
.. |PyPI| image:: https://img.shields.io/pypi/v/data-syncmaster
|
|
17
17
|
:target: https://pypi.org/project/data-syncmaster/
|
|
18
18
|
.. |PyPI License| image:: https://img.shields.io/pypi/l/data-syncmaster.svg
|
|
19
|
-
:target: https://github.com/
|
|
19
|
+
:target: https://github.com/MTSWebServices/syncmaster/blob/develop/LICENSE.txt
|
|
20
20
|
.. |PyPI Python Version| image:: https://img.shields.io/pypi/pyversions/data-syncmaster.svg
|
|
21
21
|
:target: https://badge.fury.io/py/data-syncmaster
|
|
22
22
|
.. |Documentation| image:: https://readthedocs.org/projects/syncmaster/badge/?version=stable
|
|
23
23
|
:target: https://syncmaster.readthedocs.io
|
|
24
|
-
.. |Build Status| image:: https://github.com/
|
|
25
|
-
:target: https://github.com/
|
|
24
|
+
.. |Build Status| image:: https://github.com/MTSWebServices/syncmaster/workflows/Run%20All%20Tests/badge.svg
|
|
25
|
+
:target: https://github.com/MTSWebServices/syncmaster/actions
|
|
26
26
|
.. |Coverage| image:: https://img.shields.io/endpoint?url=https://gist.githubusercontent.com/
|
|
27
27
|
MTSOnGithub/03e73a82ecc4709934540ce8201cc3b4/raw/syncmaster_badge.json
|
|
28
|
-
:target: https://github.com/
|
|
29
|
-
.. |pre-commit.ci| image:: https://results.pre-commit.ci/badge/github/
|
|
30
|
-
:target: https://results.pre-commit.ci/latest/github/
|
|
28
|
+
:target: https://github.com/MTSWebServices/syncmaster/actions
|
|
29
|
+
.. |pre-commit.ci| image:: https://results.pre-commit.ci/badge/github/MTSWebServices/syncmaster/develop.svg
|
|
30
|
+
:target: https://results.pre-commit.ci/latest/github/MTSWebServices/syncmaster/develop
|
|
31
31
|
|
|
32
32
|
What is Data.SyncMaster?
|
|
33
33
|
------------------------
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: data-syncmaster
|
|
3
|
-
Version: 0.3.
|
|
3
|
+
Version: 0.3.3
|
|
4
4
|
Summary: Syncmaster REST API + scheduler + Worker
|
|
5
5
|
Author-email: MWS Data Bridge <onetools@mts.ru>
|
|
6
6
|
License-Expression: Apache-2.0
|
|
7
|
-
Project-URL: Homepage, https://github.com/
|
|
7
|
+
Project-URL: Homepage, https://github.com/MTSWebServices/syncmaster
|
|
8
8
|
Project-URL: Documentation, https://syncmaster.readthedocs.io/
|
|
9
|
-
Project-URL: Source, https://github.com/
|
|
10
|
-
Project-URL: CI/CD, https://github.com/
|
|
11
|
-
Project-URL: Tracker, https://github.com/
|
|
9
|
+
Project-URL: Source, https://github.com/MTSWebServices/syncmaster
|
|
10
|
+
Project-URL: CI/CD, https://github.com/MTSWebServices/syncmaster/actions
|
|
11
|
+
Project-URL: Tracker, https://github.com/MTSWebServices/syncmaster/issues
|
|
12
12
|
Keywords: Syncmaster,REST,API,Worker,Spark,Transfer,ETL
|
|
13
13
|
Classifier: Development Status :: 3 - Alpha
|
|
14
14
|
Classifier: Framework :: Pydantic
|
|
@@ -26,47 +26,48 @@ Classifier: Typing :: Typed
|
|
|
26
26
|
Requires-Python: >=3.11
|
|
27
27
|
Description-Content-Type: text/x-rst
|
|
28
28
|
License-File: LICENSE.txt
|
|
29
|
-
Requires-Dist: pydantic~=2.
|
|
30
|
-
Requires-Dist: pydantic-settings~=2.
|
|
29
|
+
Requires-Dist: pydantic~=2.13.4
|
|
30
|
+
Requires-Dist: pydantic-settings~=2.14.1
|
|
31
31
|
Requires-Dist: pydantic-settings-logging~=0.1.1
|
|
32
|
-
Requires-Dist: sqlalchemy~=2.0.
|
|
32
|
+
Requires-Dist: sqlalchemy~=2.0.49
|
|
33
33
|
Requires-Dist: sqlalchemy-utils~=0.42.0
|
|
34
34
|
Requires-Dist: pyyaml~=6.0.3
|
|
35
35
|
Requires-Dist: coloredlogs~=15.0.1
|
|
36
|
-
Requires-Dist: python-json-logger~=4.
|
|
36
|
+
Requires-Dist: python-json-logger~=4.1.0
|
|
37
37
|
Requires-Dist: asgi-correlation-id~=4.3.4
|
|
38
38
|
Requires-Dist: uuid6~=2025.0.1
|
|
39
39
|
Requires-Dist: celery~=5.6.0
|
|
40
40
|
Requires-Dist: psycopg2-binary~=2.9.11
|
|
41
41
|
Provides-Extra: server
|
|
42
|
-
Requires-Dist: fastapi
|
|
42
|
+
Requires-Dist: fastapi<0.137.0,>=0.135.3; extra == "server"
|
|
43
|
+
Requires-Dist: starlette<1.0; extra == "server"
|
|
43
44
|
Requires-Dist: starlette-exporter~=0.23.0; extra == "server"
|
|
44
|
-
Requires-Dist: python-multipart~=0.0.
|
|
45
|
-
Requires-Dist: uvicorn
|
|
46
|
-
Requires-Dist: alembic~=1.18.
|
|
47
|
-
Requires-Dist: pyjwt~=2.
|
|
48
|
-
Requires-Dist: asyncpg~=0.31; extra == "server"
|
|
49
|
-
Requires-Dist: python-keycloak~=7.
|
|
45
|
+
Requires-Dist: python-multipart~=0.0.26; extra == "server"
|
|
46
|
+
Requires-Dist: uvicorn<0.48,>=0.44; extra == "server"
|
|
47
|
+
Requires-Dist: alembic~=1.18.4; extra == "server"
|
|
48
|
+
Requires-Dist: pyjwt~=2.12.1; extra == "server"
|
|
49
|
+
Requires-Dist: asyncpg~=0.31.0; extra == "server"
|
|
50
|
+
Requires-Dist: python-keycloak~=7.1.1; extra == "server"
|
|
50
51
|
Requires-Dist: itsdangerous~=2.2.0; extra == "server"
|
|
51
52
|
Provides-Extra: scheduler
|
|
52
53
|
Requires-Dist: asyncpg~=0.31; extra == "scheduler"
|
|
53
54
|
Requires-Dist: apscheduler~=3.11.1; extra == "scheduler"
|
|
54
55
|
Provides-Extra: worker
|
|
55
|
-
Requires-Dist: onetl[files]~=0.
|
|
56
|
+
Requires-Dist: onetl[files]~=0.16.0; extra == "worker"
|
|
56
57
|
Requires-Dist: pyspark<4.0.0; extra == "worker"
|
|
57
58
|
Requires-Dist: horizon-hwm-store~=1.1.4; extra == "worker"
|
|
58
59
|
Requires-Dist: jinja2~=3.1.6; extra == "worker"
|
|
59
60
|
Provides-Extra: kerberos
|
|
60
|
-
Requires-Dist: onetl[kerberos]~=0.
|
|
61
|
+
Requires-Dist: onetl[kerberos]~=0.16.0; extra == "kerberos"
|
|
61
62
|
Dynamic: license-file
|
|
62
63
|
|
|
63
64
|
.. _readme:
|
|
64
65
|
|
|
65
66
|
|Logo|
|
|
66
67
|
|
|
67
|
-
.. |Logo| image:: https://raw.githubusercontent.com/
|
|
68
|
+
.. |Logo| image:: https://raw.githubusercontent.com/MTSWebServices/syncmaster/0eb2ba2be6656f81ea9706523c3b7942df212640/docs/_static/logo_wide.svg
|
|
68
69
|
:alt: Data.SyncMaster logo
|
|
69
|
-
:target: https://github.com/
|
|
70
|
+
:target: https://github.com/MTSWebServices/data-syncmaster
|
|
70
71
|
|
|
71
72
|
|Repo Status| |Docker image| |PyPI| |PyPI License| |PyPI Python Version| |Documentation|
|
|
72
73
|
|Build Status| |Coverage| |pre-commit.ci|
|
|
@@ -78,18 +79,18 @@ Dynamic: license-file
|
|
|
78
79
|
.. |PyPI| image:: https://img.shields.io/pypi/v/data-syncmaster
|
|
79
80
|
:target: https://pypi.org/project/data-syncmaster/
|
|
80
81
|
.. |PyPI License| image:: https://img.shields.io/pypi/l/data-syncmaster.svg
|
|
81
|
-
:target: https://github.com/
|
|
82
|
+
:target: https://github.com/MTSWebServices/syncmaster/blob/develop/LICENSE.txt
|
|
82
83
|
.. |PyPI Python Version| image:: https://img.shields.io/pypi/pyversions/data-syncmaster.svg
|
|
83
84
|
:target: https://badge.fury.io/py/data-syncmaster
|
|
84
85
|
.. |Documentation| image:: https://readthedocs.org/projects/syncmaster/badge/?version=stable
|
|
85
86
|
:target: https://syncmaster.readthedocs.io
|
|
86
|
-
.. |Build Status| image:: https://github.com/
|
|
87
|
-
:target: https://github.com/
|
|
87
|
+
.. |Build Status| image:: https://github.com/MTSWebServices/syncmaster/workflows/Run%20All%20Tests/badge.svg
|
|
88
|
+
:target: https://github.com/MTSWebServices/syncmaster/actions
|
|
88
89
|
.. |Coverage| image:: https://img.shields.io/endpoint?url=https://gist.githubusercontent.com/
|
|
89
90
|
MTSOnGithub/03e73a82ecc4709934540ce8201cc3b4/raw/syncmaster_badge.json
|
|
90
|
-
:target: https://github.com/
|
|
91
|
-
.. |pre-commit.ci| image:: https://results.pre-commit.ci/badge/github/
|
|
92
|
-
:target: https://results.pre-commit.ci/latest/github/
|
|
91
|
+
:target: https://github.com/MTSWebServices/syncmaster/actions
|
|
92
|
+
.. |pre-commit.ci| image:: https://results.pre-commit.ci/badge/github/MTSWebServices/syncmaster/develop.svg
|
|
93
|
+
:target: https://results.pre-commit.ci/latest/github/MTSWebServices/syncmaster/develop
|
|
93
94
|
|
|
94
95
|
What is Data.SyncMaster?
|
|
95
96
|
------------------------
|
|
@@ -27,6 +27,7 @@ syncmaster/db/migrations/versions/2023-11-23_0009_create_celery_tables.py
|
|
|
27
27
|
syncmaster/db/migrations/versions/2024-10-07_0010_add_pg_trgm_extension.py
|
|
28
28
|
syncmaster/db/migrations/versions/2024-11-01_0011_create_apscheduler_table.py
|
|
29
29
|
syncmaster/db/migrations/versions/2025-08-10_0012_update_ts.py
|
|
30
|
+
syncmaster/db/migrations/versions/2026-04-02_0013_add_celery_date_done_indexes.py
|
|
30
31
|
syncmaster/db/migrations/versions/__init__.py
|
|
31
32
|
syncmaster/db/mixins/__init__.py
|
|
32
33
|
syncmaster/db/mixins/resource.py
|
|
@@ -142,6 +143,7 @@ syncmaster/schemas/v1/transfers/transformations/__init__.py
|
|
|
142
143
|
syncmaster/schemas/v1/transfers/transformations/dataframe_columns_filter.py
|
|
143
144
|
syncmaster/schemas/v1/transfers/transformations/dataframe_rows_filter.py
|
|
144
145
|
syncmaster/schemas/v1/transfers/transformations/file_metadata_filter.py
|
|
146
|
+
syncmaster/schemas/v1/transfers/transformations/sql.py
|
|
145
147
|
syncmaster/server/__init__.py
|
|
146
148
|
syncmaster/server/__main__.py
|
|
147
149
|
syncmaster/server/handler.py
|
|
@@ -1,36 +1,37 @@
|
|
|
1
|
-
pydantic~=2.
|
|
2
|
-
pydantic-settings~=2.
|
|
1
|
+
pydantic~=2.13.4
|
|
2
|
+
pydantic-settings~=2.14.1
|
|
3
3
|
pydantic-settings-logging~=0.1.1
|
|
4
|
-
sqlalchemy~=2.0.
|
|
4
|
+
sqlalchemy~=2.0.49
|
|
5
5
|
sqlalchemy-utils~=0.42.0
|
|
6
6
|
pyyaml~=6.0.3
|
|
7
7
|
coloredlogs~=15.0.1
|
|
8
|
-
python-json-logger~=4.
|
|
8
|
+
python-json-logger~=4.1.0
|
|
9
9
|
asgi-correlation-id~=4.3.4
|
|
10
10
|
uuid6~=2025.0.1
|
|
11
11
|
celery~=5.6.0
|
|
12
12
|
psycopg2-binary~=2.9.11
|
|
13
13
|
|
|
14
14
|
[kerberos]
|
|
15
|
-
onetl[kerberos]~=0.
|
|
15
|
+
onetl[kerberos]~=0.16.0
|
|
16
16
|
|
|
17
17
|
[scheduler]
|
|
18
18
|
asyncpg~=0.31
|
|
19
19
|
apscheduler~=3.11.1
|
|
20
20
|
|
|
21
21
|
[server]
|
|
22
|
-
fastapi
|
|
22
|
+
fastapi<0.137.0,>=0.135.3
|
|
23
|
+
starlette<1.0
|
|
23
24
|
starlette-exporter~=0.23.0
|
|
24
|
-
python-multipart~=0.0.
|
|
25
|
-
uvicorn
|
|
26
|
-
alembic~=1.18.
|
|
27
|
-
pyjwt~=2.
|
|
28
|
-
asyncpg~=0.31
|
|
29
|
-
python-keycloak~=7.
|
|
25
|
+
python-multipart~=0.0.26
|
|
26
|
+
uvicorn<0.48,>=0.44
|
|
27
|
+
alembic~=1.18.4
|
|
28
|
+
pyjwt~=2.12.1
|
|
29
|
+
asyncpg~=0.31.0
|
|
30
|
+
python-keycloak~=7.1.1
|
|
30
31
|
itsdangerous~=2.2.0
|
|
31
32
|
|
|
32
33
|
[worker]
|
|
33
|
-
onetl[files]~=0.
|
|
34
|
+
onetl[files]~=0.16.0
|
|
34
35
|
pyspark<4.0.0
|
|
35
36
|
horizon-hwm-store~=1.1.4
|
|
36
37
|
jinja2~=3.1.6
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
[build-system]
|
|
2
|
-
requires = [ "setuptools>=41", "wheel", "setuptools-git-versioning
|
|
2
|
+
requires = [ "setuptools>=41", "wheel", "setuptools-git-versioning<4,>=3.0", ]
|
|
3
3
|
build-backend = "setuptools.build_meta"
|
|
4
4
|
|
|
5
5
|
[tool.setuptools-git-versioning]
|
|
@@ -33,14 +33,14 @@ classifiers = [
|
|
|
33
33
|
keywords = ["Syncmaster", "REST", "API", "Worker", "Spark", "Transfer", "ETL"]
|
|
34
34
|
requires-python = ">=3.11"
|
|
35
35
|
dependencies = [
|
|
36
|
-
"pydantic~=2.
|
|
37
|
-
"pydantic-settings~=2.
|
|
36
|
+
"pydantic~=2.13.4",
|
|
37
|
+
"pydantic-settings~=2.14.1",
|
|
38
38
|
"pydantic-settings-logging~=0.1.1",
|
|
39
|
-
"sqlalchemy~=2.0.
|
|
39
|
+
"sqlalchemy~=2.0.49",
|
|
40
40
|
"sqlalchemy-utils~=0.42.0",
|
|
41
41
|
"pyyaml~=6.0.3",
|
|
42
42
|
"coloredlogs~=15.0.1",
|
|
43
|
-
"python-json-logger~=4.
|
|
43
|
+
"python-json-logger~=4.1.0",
|
|
44
44
|
"asgi-correlation-id~=4.3.4",
|
|
45
45
|
"uuid6~=2025.0.1",
|
|
46
46
|
"celery~=5.6.0",
|
|
@@ -56,23 +56,25 @@ exclude = ["docs", "tests"]
|
|
|
56
56
|
"*" = ["py.typed", "*.yml", "*.ini", "VERSION"]
|
|
57
57
|
|
|
58
58
|
[project.urls] # Optional
|
|
59
|
-
"Homepage" = "https://github.com/
|
|
59
|
+
"Homepage" = "https://github.com/MTSWebServices/syncmaster"
|
|
60
60
|
"Documentation" = "https://syncmaster.readthedocs.io/"
|
|
61
|
-
"Source" = "https://github.com/
|
|
62
|
-
"CI/CD" = "https://github.com/
|
|
63
|
-
"Tracker" = "https://github.com/
|
|
61
|
+
"Source" = "https://github.com/MTSWebServices/syncmaster"
|
|
62
|
+
"CI/CD" = "https://github.com/MTSWebServices/syncmaster/actions"
|
|
63
|
+
"Tracker" = "https://github.com/MTSWebServices/syncmaster/issues"
|
|
64
64
|
|
|
65
65
|
|
|
66
66
|
[project.optional-dependencies]
|
|
67
67
|
server = [
|
|
68
|
-
"fastapi
|
|
68
|
+
"fastapi>=0.135.3,<0.137.0",
|
|
69
|
+
# starlette 1.0.0 break cookies
|
|
70
|
+
"starlette<1.0",
|
|
69
71
|
"starlette-exporter~=0.23.0",
|
|
70
|
-
"python-multipart~=0.0.
|
|
71
|
-
"uvicorn
|
|
72
|
-
"alembic~=1.18.
|
|
73
|
-
"pyjwt~=2.
|
|
74
|
-
"asyncpg~=0.31",
|
|
75
|
-
"python-keycloak~=7.
|
|
72
|
+
"python-multipart~=0.0.26",
|
|
73
|
+
"uvicorn>=0.44,<0.48",
|
|
74
|
+
"alembic~=1.18.4",
|
|
75
|
+
"pyjwt~=2.12.1",
|
|
76
|
+
"asyncpg~=0.31.0",
|
|
77
|
+
"python-keycloak~=7.1.1",
|
|
76
78
|
"itsdangerous~=2.2.0",
|
|
77
79
|
]
|
|
78
80
|
scheduler = [
|
|
@@ -80,13 +82,13 @@ scheduler = [
|
|
|
80
82
|
"apscheduler~=3.11.1",
|
|
81
83
|
]
|
|
82
84
|
worker = [
|
|
83
|
-
"onetl[files]~=0.
|
|
85
|
+
"onetl[files]~=0.16.0",
|
|
84
86
|
"pyspark<4.0.0",
|
|
85
87
|
"horizon-hwm-store~=1.1.4",
|
|
86
88
|
"jinja2~=3.1.6",
|
|
87
89
|
]
|
|
88
90
|
kerberos = [
|
|
89
|
-
"onetl[kerberos]~=0.
|
|
91
|
+
"onetl[kerberos]~=0.16.0",
|
|
90
92
|
]
|
|
91
93
|
|
|
92
94
|
[dependency-groups]
|
|
@@ -94,35 +96,36 @@ test = [
|
|
|
94
96
|
"pytest~=8.4.2",
|
|
95
97
|
"httpx~=0.28.1",
|
|
96
98
|
"pytest-asyncio>=0.26.0,<1.0",
|
|
97
|
-
"pytest-randomly
|
|
99
|
+
"pytest-randomly>=4.0.1,<4.2.0",
|
|
98
100
|
"pytest-rerunfailures~=16.1",
|
|
99
|
-
"pytest-deadfixtures~=3.
|
|
101
|
+
"pytest-deadfixtures~=3.1.0",
|
|
100
102
|
"pytest-mock~=3.15.1",
|
|
101
103
|
"pytest-lazy-fixtures~=1.4.0",
|
|
102
|
-
"faker~=40.
|
|
103
|
-
"coverage~=7.
|
|
104
|
-
"gevent
|
|
105
|
-
"respx~=0.
|
|
104
|
+
"faker~=40.13",
|
|
105
|
+
"coverage~=7.14.0",
|
|
106
|
+
"gevent>=26.4,<26.6",
|
|
107
|
+
"respx~=0.23.1",
|
|
106
108
|
"dirty-equals~=0.11.0",
|
|
107
109
|
]
|
|
108
110
|
dev = [
|
|
109
|
-
"
|
|
110
|
-
"
|
|
111
|
-
"
|
|
111
|
+
"ruff~=0.15.12",
|
|
112
|
+
"mypy~=2.1.0",
|
|
113
|
+
"prek>=0.3.2,<0.5.0",
|
|
114
|
+
"sqlalchemy[mypy]~=2.0.49",
|
|
112
115
|
"types-jwcrypto~=1.5.0",
|
|
113
116
|
]
|
|
114
117
|
docs = [
|
|
115
|
-
"setuptools-git-versioning
|
|
118
|
+
"setuptools-git-versioning>=3.0.1,<3.2.0",
|
|
116
119
|
"autodoc-pydantic~=2.2.0",
|
|
117
120
|
"numpydoc~=1.10.0",
|
|
118
|
-
"sphinx~=
|
|
121
|
+
"sphinx~=9.0.4",
|
|
119
122
|
"furo~=2025.12.19",
|
|
120
123
|
"sphinx-copybutton~=0.5.2",
|
|
121
124
|
"sphinxcontrib-towncrier~=0.5.0a0",
|
|
122
125
|
"towncrier~=25.8.0",
|
|
123
|
-
"sphinx-issues~=
|
|
124
|
-
"sphinx-design~=0.
|
|
125
|
-
"sphinx-favicon~=1.0
|
|
126
|
+
"sphinx-issues~=6.0.0",
|
|
127
|
+
"sphinx-design~=0.7.0",
|
|
128
|
+
"sphinx-favicon~=1.1.0",
|
|
126
129
|
"sphinx-argparse~=0.5.2",
|
|
127
130
|
# https://github.com/mgeier/sphinx-last-updated-by-git/pull/77
|
|
128
131
|
"sphinx-last-updated-by-git~=0.3.8",
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
0.3.3
|
|
@@ -20,8 +20,7 @@ depends_on = None
|
|
|
20
20
|
|
|
21
21
|
def upgrade():
|
|
22
22
|
sql_expression = (
|
|
23
|
-
"to_tsvector('english'::regconfig, "
|
|
24
|
-
"name || ' ' || "
|
|
23
|
+
"to_tsvector('english'::regconfig, name || ' ' || "
|
|
25
24
|
"COALESCE(json_extract_path_text(source_params, 'table_name'), '') || ' ' || "
|
|
26
25
|
"COALESCE(json_extract_path_text(target_params, 'table_name'), '') || ' ' || "
|
|
27
26
|
"COALESCE(json_extract_path_text(source_params, 'directory_path'), '') || ' ' || "
|
|
@@ -30,8 +29,7 @@ def upgrade():
|
|
|
30
29
|
"COALESCE(translate(json_extract_path_text(source_params, 'table_name'), './', ' '), '') || ' ' || "
|
|
31
30
|
"COALESCE(translate(json_extract_path_text(target_params, 'table_name'), './', ' '), '') || ' ' || "
|
|
32
31
|
"COALESCE(translate(json_extract_path_text(source_params, 'directory_path'), './', ' '), '') || ' ' || "
|
|
33
|
-
"COALESCE(translate(json_extract_path_text(target_params, 'directory_path'), './', ' '), '')"
|
|
34
|
-
")"
|
|
32
|
+
"COALESCE(translate(json_extract_path_text(target_params, 'directory_path'), './', ' '), ''))"
|
|
35
33
|
)
|
|
36
34
|
op.create_table(
|
|
37
35
|
"transfer",
|
|
@@ -201,8 +201,7 @@ def downgrade() -> None:
|
|
|
201
201
|
"search_vector",
|
|
202
202
|
postgresql.TSVECTOR(),
|
|
203
203
|
sa.Computed(
|
|
204
|
-
"to_tsvector('english'::regconfig, "
|
|
205
|
-
"name || ' ') || "
|
|
204
|
+
"to_tsvector('english'::regconfig, name || ' ' || "
|
|
206
205
|
"COALESCE(json_extract_path_text(source_params, VARIADIC ARRAY['table_name']), '') || ' ' || "
|
|
207
206
|
"COALESCE(json_extract_path_text(target_params, VARIADIC ARRAY['table_name']), '') || ' ' || "
|
|
208
207
|
"COALESCE(json_extract_path_text(source_params, VARIADIC ARRAY['directory_path']), '') || ' ' || "
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# SPDX-FileCopyrightText: 2025-present MTS PJSC
|
|
2
|
+
# SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
"""Add celery_*_date_done indexex
|
|
4
|
+
|
|
5
|
+
Revision ID: 0013
|
|
6
|
+
Revises: 0012
|
|
7
|
+
Create Date: 2026-04-02 11:06:44.293882
|
|
8
|
+
|
|
9
|
+
"""
|
|
10
|
+
|
|
11
|
+
from alembic import op
|
|
12
|
+
|
|
13
|
+
# revision identifiers, used by Alembic.
|
|
14
|
+
revision = "0013"
|
|
15
|
+
down_revision = "0012"
|
|
16
|
+
branch_labels = None
|
|
17
|
+
depends_on = None
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
def upgrade() -> None:
|
|
21
|
+
op.create_index(
|
|
22
|
+
op.f("ix_celery_taskmeta_date_done"),
|
|
23
|
+
"celery_taskmeta",
|
|
24
|
+
["date_done"],
|
|
25
|
+
unique=False,
|
|
26
|
+
if_not_exists=True,
|
|
27
|
+
)
|
|
28
|
+
op.create_index(
|
|
29
|
+
op.f("ix_celery_tasksetmeta_date_done"),
|
|
30
|
+
"celery_tasksetmeta",
|
|
31
|
+
["date_done"],
|
|
32
|
+
unique=False,
|
|
33
|
+
if_not_exists=True,
|
|
34
|
+
)
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
def downgrade() -> None:
|
|
38
|
+
op.drop_index(op.f("ix_celery_tasksetmeta_date_done"), table_name="celery_tasksetmeta", if_exists=True)
|
|
39
|
+
op.drop_index(op.f("ix_celery_taskmeta_date_done"), table_name="celery_taskmeta", if_exists=True)
|
|
@@ -8,7 +8,7 @@ from syncmaster.schemas.v1.auth.mixins import SecretDumpMixin
|
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
class ReadBasicAuthSchema(SecretDumpMixin):
|
|
11
|
-
type: Literal["basic"] = Field(description="Auth type")
|
|
11
|
+
type: Literal["basic"] = Field(default="basic", description="Auth type")
|
|
12
12
|
user: str
|
|
13
13
|
|
|
14
14
|
|
|
@@ -8,7 +8,7 @@ from syncmaster.schemas.v1.auth.mixins import SecretDumpMixin
|
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
class ReadIcebergRESTCatalogBearerAuthSchema(SecretDumpMixin):
|
|
11
|
-
type: Literal["iceberg_rest_bearer"] = Field(description="Auth type")
|
|
11
|
+
type: Literal["iceberg_rest_bearer"] = Field(default="iceberg_rest_bearer", description="Auth type")
|
|
12
12
|
|
|
13
13
|
|
|
14
14
|
class CreateIcebergRESTCatalogBearerAuthSchema(ReadIcebergRESTCatalogBearerAuthSchema):
|
|
@@ -9,7 +9,10 @@ from syncmaster.schemas.v1.types import URL
|
|
|
9
9
|
|
|
10
10
|
|
|
11
11
|
class ReadIcebergRESTCatalogOAuth2ClientCredentialsAuthSchema(SecretDumpMixin):
|
|
12
|
-
type: Literal["iceberg_rest_oauth2_client_credentials"] = Field(
|
|
12
|
+
type: Literal["iceberg_rest_oauth2_client_credentials"] = Field(
|
|
13
|
+
default="iceberg_rest_oauth2_client_credentials",
|
|
14
|
+
description="Auth type",
|
|
15
|
+
)
|
|
13
16
|
rest_catalog_oauth2_client_id: str
|
|
14
17
|
rest_catalog_oauth2_scopes: list[str] = Field(default_factory=list)
|
|
15
18
|
rest_catalog_oauth2_resource: str | None = None
|
|
@@ -8,7 +8,10 @@ from syncmaster.schemas.v1.auth.mixins import SecretDumpMixin
|
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
class ReadIcebergRESTCatalogBearerS3BasicAuthSchema(SecretDumpMixin):
|
|
11
|
-
type: Literal["iceberg_rest_bearer_s3_basic"] = Field(
|
|
11
|
+
type: Literal["iceberg_rest_bearer_s3_basic"] = Field(
|
|
12
|
+
default="iceberg_rest_bearer_s3_basic",
|
|
13
|
+
description="Auth type",
|
|
14
|
+
)
|
|
12
15
|
s3_access_key: str
|
|
13
16
|
|
|
14
17
|
|
|
@@ -8,7 +8,10 @@ from syncmaster.schemas.v1.auth.mixins import SecretDumpMixin
|
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
class ReadIcebergRESTCatalogOAuth2ClientCredentialsS3BasicAuthSchema(SecretDumpMixin):
|
|
11
|
-
type: Literal["iceberg_rest_oauth2_client_credentials_s3_basic"] = Field(
|
|
11
|
+
type: Literal["iceberg_rest_oauth2_client_credentials_s3_basic"] = Field(
|
|
12
|
+
default="iceberg_rest_oauth2_client_credentials_s3_basic",
|
|
13
|
+
description="Auth type",
|
|
14
|
+
)
|
|
12
15
|
rest_catalog_oauth2_client_id: str
|
|
13
16
|
rest_catalog_oauth2_scopes: list[str] = Field(default_factory=list)
|
|
14
17
|
rest_catalog_oauth2_resource: str | None = None
|
|
@@ -8,7 +8,7 @@ from syncmaster.schemas.v1.auth.mixins import SecretDumpMixin
|
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
class ReadSambaAuthSchema(SecretDumpMixin):
|
|
11
|
-
type: Literal["samba"] = Field(description="Auth type")
|
|
11
|
+
type: Literal["samba"] = Field(default="samba", description="Auth type")
|
|
12
12
|
user: str
|
|
13
13
|
auth_type: Literal["NTLMv1", "NTLMv2"] = "NTLMv2"
|
|
14
14
|
|
{data_syncmaster-0.3.1 → data_syncmaster-0.3.3}/syncmaster/schemas/v1/connections/iceberg.py
RENAMED
|
@@ -24,7 +24,7 @@ from syncmaster.schemas.v1.types import URL
|
|
|
24
24
|
|
|
25
25
|
|
|
26
26
|
class IcebergRESTCatalogS3DirectConnectionDataSchema(BaseModel):
|
|
27
|
-
type: Literal["iceberg_rest_s3_direct"]
|
|
27
|
+
type: Literal["iceberg_rest_s3_direct"] = "iceberg_rest_s3_direct"
|
|
28
28
|
rest_catalog_url: URL
|
|
29
29
|
s3_warehouse_path: str
|
|
30
30
|
s3_host: str
|
|
@@ -37,7 +37,7 @@ class IcebergRESTCatalogS3DirectConnectionDataSchema(BaseModel):
|
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
class IcebergRESTCatalogS3DelegatedConnectionDataSchema(BaseModel):
|
|
40
|
-
type: Literal["iceberg_rest_s3_delegated"]
|
|
40
|
+
type: Literal["iceberg_rest_s3_delegated"] = "iceberg_rest_s3_delegated"
|
|
41
41
|
rest_catalog_url: URL
|
|
42
42
|
s3_warehouse_name: str | None = None
|
|
43
43
|
s3_access_delegation: Literal["vended-credentials", "remote-signing"] = "vended-credentials"
|