data-syncmaster 0.1.5__tar.gz → 0.2.1__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.
Files changed (270) hide show
  1. {data_syncmaster-0.1.5 → data_syncmaster-0.2.1}/LICENSE.txt +1 -1
  2. {data_syncmaster-0.1.5 → data_syncmaster-0.2.1}/PKG-INFO +53 -38
  3. {data_syncmaster-0.1.5 → data_syncmaster-0.2.1}/README.rst +23 -18
  4. data_syncmaster-0.2.1/pyproject.toml +542 -0
  5. {data_syncmaster-0.1.5 → data_syncmaster-0.2.1}/syncmaster/__init__.py +2 -2
  6. data_syncmaster-0.2.1/syncmaster/db/__init__.py +2 -0
  7. {data_syncmaster-0.1.5 → data_syncmaster-0.2.1}/syncmaster/db/factory.py +3 -3
  8. {data_syncmaster-0.1.5 → data_syncmaster-0.2.1}/syncmaster/db/migrations/__main__.py +1 -1
  9. {data_syncmaster-0.1.5 → data_syncmaster-0.2.1}/syncmaster/db/migrations/env.py +46 -5
  10. data_syncmaster-0.2.1/syncmaster/db/migrations/versions/2023-11-23_0001_create_user_table.py +40 -0
  11. data_syncmaster-0.2.1/syncmaster/db/migrations/versions/2023-11-23_0002_create_group_table.py +45 -0
  12. data_syncmaster-0.2.1/syncmaster/db/migrations/versions/2023-11-23_0003_create_queue_table.py +51 -0
  13. data_syncmaster-0.2.1/syncmaster/db/migrations/versions/2023-11-23_0004_create_connection_table.py +62 -0
  14. data_syncmaster-0.2.1/syncmaster/db/migrations/versions/2023-11-23_0005_create_user_group_table.py +47 -0
  15. data_syncmaster-0.2.1/syncmaster/db/migrations/versions/2023-11-23_0006_create_auth_data_table.py +38 -0
  16. data_syncmaster-0.2.1/syncmaster/db/migrations/versions/2023-11-23_0007_create_transfer_table.py +98 -0
  17. data_syncmaster-0.2.1/syncmaster/db/migrations/versions/2023-11-23_0008_create_run_table.py +50 -0
  18. data_syncmaster-0.2.1/syncmaster/db/migrations/versions/2023-11-23_0009_create_celery_tables.py +71 -0
  19. data_syncmaster-0.2.1/syncmaster/db/migrations/versions/2024-10-07_0010_add_pg_trgm_extension.py +28 -0
  20. data_syncmaster-0.2.1/syncmaster/db/migrations/versions/2024-11-01_0011_create_apscheduler_table.py +44 -0
  21. data_syncmaster-0.2.1/syncmaster/db/migrations/versions/__init__.py +2 -0
  22. data_syncmaster-0.2.1/syncmaster/db/mixins/__init__.py +9 -0
  23. data_syncmaster-0.2.1/syncmaster/db/mixins/resource.py +17 -0
  24. data_syncmaster-0.2.1/syncmaster/db/mixins/timestamp.py +17 -0
  25. data_syncmaster-0.2.1/syncmaster/db/models/__init__.py +28 -0
  26. data_syncmaster-0.2.1/syncmaster/db/models/apscheduler_job.py +16 -0
  27. data_syncmaster-0.2.1/syncmaster/db/models/auth_data.py +18 -0
  28. {data_syncmaster-0.1.5/syncmaster/db → data_syncmaster-0.2.1/syncmaster/db/models}/base.py +1 -1
  29. data_syncmaster-0.2.1/syncmaster/db/models/connection.py +65 -0
  30. data_syncmaster-0.2.1/syncmaster/db/models/group.py +111 -0
  31. data_syncmaster-0.2.1/syncmaster/db/models/queue.py +35 -0
  32. data_syncmaster-0.2.1/syncmaster/db/models/run.py +77 -0
  33. data_syncmaster-0.2.1/syncmaster/db/models/transfer.py +93 -0
  34. data_syncmaster-0.2.1/syncmaster/db/models/user.py +23 -0
  35. {data_syncmaster-0.1.5 → data_syncmaster-0.2.1}/syncmaster/db/repositories/__init__.py +1 -1
  36. {data_syncmaster-0.1.5 → data_syncmaster-0.2.1}/syncmaster/db/repositories/base.py +17 -18
  37. {data_syncmaster-0.1.5 → data_syncmaster-0.2.1}/syncmaster/db/repositories/connection.py +20 -13
  38. {data_syncmaster-0.1.5 → data_syncmaster-0.2.1}/syncmaster/db/repositories/credentials_repository.py +8 -7
  39. {data_syncmaster-0.1.5 → data_syncmaster-0.2.1}/syncmaster/db/repositories/group.py +148 -25
  40. {data_syncmaster-0.1.5 → data_syncmaster-0.2.1}/syncmaster/db/repositories/queue.py +13 -8
  41. {data_syncmaster-0.1.5 → data_syncmaster-0.2.1}/syncmaster/db/repositories/repository_with_owner.py +3 -3
  42. {data_syncmaster-0.1.5 → data_syncmaster-0.2.1}/syncmaster/db/repositories/run.py +66 -9
  43. {data_syncmaster-0.1.5 → data_syncmaster-0.2.1}/syncmaster/db/repositories/transfer.py +81 -33
  44. {data_syncmaster-0.1.5 → data_syncmaster-0.2.1}/syncmaster/db/repositories/user.py +27 -6
  45. {data_syncmaster-0.1.5 → data_syncmaster-0.2.1}/syncmaster/db/repositories/utils.py +12 -6
  46. {data_syncmaster-0.1.5 → data_syncmaster-0.2.1}/syncmaster/db/utils.py +1 -1
  47. data_syncmaster-0.2.1/syncmaster/dto/__init__.py +2 -0
  48. data_syncmaster-0.2.1/syncmaster/dto/connections.py +144 -0
  49. data_syncmaster-0.2.1/syncmaster/dto/runs.py +10 -0
  50. data_syncmaster-0.2.1/syncmaster/dto/transfers.py +142 -0
  51. data_syncmaster-0.2.1/syncmaster/dto/transfers_resources.py +10 -0
  52. data_syncmaster-0.2.1/syncmaster/dto/transfers_strategy.py +33 -0
  53. data_syncmaster-0.2.1/syncmaster/errors/__init__.py +17 -0
  54. data_syncmaster-0.2.1/syncmaster/errors/base.py +18 -0
  55. data_syncmaster-0.2.1/syncmaster/errors/registration.py +65 -0
  56. data_syncmaster-0.2.1/syncmaster/errors/schemas/__init__.py +11 -0
  57. data_syncmaster-0.2.1/syncmaster/errors/schemas/bad_request.py +17 -0
  58. data_syncmaster-0.2.1/syncmaster/errors/schemas/invalid_request.py +29 -0
  59. data_syncmaster-0.2.1/syncmaster/errors/schemas/not_authorized.py +17 -0
  60. {data_syncmaster-0.1.5 → data_syncmaster-0.2.1}/syncmaster/exceptions/__init__.py +1 -1
  61. data_syncmaster-0.2.1/syncmaster/exceptions/auth.py +30 -0
  62. {data_syncmaster-0.1.5 → data_syncmaster-0.2.1}/syncmaster/exceptions/base.py +1 -1
  63. {data_syncmaster-0.1.5 → data_syncmaster-0.2.1}/syncmaster/exceptions/connection.py +9 -1
  64. {data_syncmaster-0.1.5 → data_syncmaster-0.2.1}/syncmaster/exceptions/credentials.py +1 -1
  65. {data_syncmaster-0.1.5 → data_syncmaster-0.2.1}/syncmaster/exceptions/group.py +5 -1
  66. {data_syncmaster-0.1.5 → data_syncmaster-0.2.1}/syncmaster/exceptions/queue.py +5 -1
  67. data_syncmaster-0.2.1/syncmaster/exceptions/redirect.py +9 -0
  68. {data_syncmaster-0.1.5 → data_syncmaster-0.2.1}/syncmaster/exceptions/run.py +1 -1
  69. {data_syncmaster-0.1.5 → data_syncmaster-0.2.1}/syncmaster/exceptions/transfer.py +1 -1
  70. {data_syncmaster-0.1.5 → data_syncmaster-0.2.1}/syncmaster/exceptions/user.py +1 -1
  71. data_syncmaster-0.2.1/syncmaster/scheduler/__init__.py +14 -0
  72. data_syncmaster-0.2.1/syncmaster/scheduler/__main__.py +43 -0
  73. data_syncmaster-0.2.1/syncmaster/scheduler/celery.py +7 -0
  74. data_syncmaster-0.2.1/syncmaster/scheduler/settings/__init__.py +78 -0
  75. data_syncmaster-0.2.1/syncmaster/scheduler/transfer_fetcher.py +24 -0
  76. data_syncmaster-0.2.1/syncmaster/scheduler/transfer_job_manager.py +107 -0
  77. data_syncmaster-0.2.1/syncmaster/scheduler/utils.py +27 -0
  78. data_syncmaster-0.2.1/syncmaster/schemas/__init__.py +7 -0
  79. data_syncmaster-0.2.1/syncmaster/schemas/ping.py +13 -0
  80. {data_syncmaster-0.1.5 → data_syncmaster-0.2.1}/syncmaster/schemas/v1/__init__.py +57 -3
  81. data_syncmaster-0.2.1/syncmaster/schemas/v1/auth/__init__.py +38 -0
  82. data_syncmaster-0.2.1/syncmaster/schemas/v1/auth/basic.py +26 -0
  83. data_syncmaster-0.2.1/syncmaster/schemas/v1/auth/s3.py +26 -0
  84. data_syncmaster-0.2.1/syncmaster/schemas/v1/auth/samba.py +28 -0
  85. data_syncmaster-0.1.5/syncmaster/schemas/v1/auth.py → data_syncmaster-0.2.1/syncmaster/schemas/v1/auth/token.py +3 -2
  86. data_syncmaster-0.2.1/syncmaster/schemas/v1/connection_types.py +35 -0
  87. data_syncmaster-0.2.1/syncmaster/schemas/v1/connections/__init__.py +2 -0
  88. data_syncmaster-0.2.1/syncmaster/schemas/v1/connections/clickhouse.py +54 -0
  89. data_syncmaster-0.2.1/syncmaster/schemas/v1/connections/connection.py +133 -0
  90. data_syncmaster-0.2.1/syncmaster/schemas/v1/connections/connection_base.py +30 -0
  91. data_syncmaster-0.2.1/syncmaster/schemas/v1/connections/ftp.py +51 -0
  92. data_syncmaster-0.2.1/syncmaster/schemas/v1/connections/ftps.py +51 -0
  93. data_syncmaster-0.2.1/syncmaster/schemas/v1/connections/hdfs.py +49 -0
  94. data_syncmaster-0.2.1/syncmaster/schemas/v1/connections/hive.py +49 -0
  95. data_syncmaster-0.2.1/syncmaster/schemas/v1/connections/mssql.py +54 -0
  96. data_syncmaster-0.2.1/syncmaster/schemas/v1/connections/mysql.py +54 -0
  97. data_syncmaster-0.2.1/syncmaster/schemas/v1/connections/oracle.py +64 -0
  98. data_syncmaster-0.2.1/syncmaster/schemas/v1/connections/postgres.py +55 -0
  99. data_syncmaster-0.2.1/syncmaster/schemas/v1/connections/s3.py +73 -0
  100. data_syncmaster-0.2.1/syncmaster/schemas/v1/connections/samba.py +58 -0
  101. data_syncmaster-0.2.1/syncmaster/schemas/v1/connections/sftp.py +51 -0
  102. data_syncmaster-0.2.1/syncmaster/schemas/v1/connections/webdav.py +55 -0
  103. data_syncmaster-0.2.1/syncmaster/schemas/v1/file_formats.py +11 -0
  104. data_syncmaster-0.2.1/syncmaster/schemas/v1/groups.py +58 -0
  105. {data_syncmaster-0.1.5 → data_syncmaster-0.2.1}/syncmaster/schemas/v1/page.py +1 -1
  106. {data_syncmaster-0.1.5 → data_syncmaster-0.2.1}/syncmaster/schemas/v1/queue.py +11 -6
  107. {data_syncmaster-0.1.5 → data_syncmaster-0.2.1}/syncmaster/schemas/v1/transfer_types.py +1 -1
  108. {data_syncmaster-0.1.5 → data_syncmaster-0.2.1}/syncmaster/schemas/v1/transfers/__init__.py +119 -43
  109. data_syncmaster-0.2.1/syncmaster/schemas/v1/transfers/db.py +42 -0
  110. data_syncmaster-0.2.1/syncmaster/schemas/v1/transfers/file/__init__.py +2 -0
  111. data_syncmaster-0.2.1/syncmaster/schemas/v1/transfers/file/base.py +104 -0
  112. data_syncmaster-0.2.1/syncmaster/schemas/v1/transfers/file/ftp.py +27 -0
  113. data_syncmaster-0.2.1/syncmaster/schemas/v1/transfers/file/ftps.py +27 -0
  114. {data_syncmaster-0.1.5 → data_syncmaster-0.2.1}/syncmaster/schemas/v1/transfers/file/hdfs.py +1 -1
  115. {data_syncmaster-0.1.5 → data_syncmaster-0.2.1}/syncmaster/schemas/v1/transfers/file/s3.py +1 -1
  116. data_syncmaster-0.2.1/syncmaster/schemas/v1/transfers/file/samba.py +27 -0
  117. data_syncmaster-0.2.1/syncmaster/schemas/v1/transfers/file/sftp.py +27 -0
  118. data_syncmaster-0.2.1/syncmaster/schemas/v1/transfers/file/webdav.py +27 -0
  119. data_syncmaster-0.2.1/syncmaster/schemas/v1/transfers/file_format.py +105 -0
  120. data_syncmaster-0.2.1/syncmaster/schemas/v1/transfers/resources.py +14 -0
  121. {data_syncmaster-0.1.5 → data_syncmaster-0.2.1}/syncmaster/schemas/v1/transfers/run.py +5 -8
  122. {data_syncmaster-0.1.5 → data_syncmaster-0.2.1}/syncmaster/schemas/v1/transfers/strategy.py +2 -3
  123. data_syncmaster-0.2.1/syncmaster/schemas/v1/transfers/transformations/__init__.py +2 -0
  124. data_syncmaster-0.2.1/syncmaster/schemas/v1/transfers/transformations/dataframe_columns_filter.py +33 -0
  125. data_syncmaster-0.2.1/syncmaster/schemas/v1/transfers/transformations/dataframe_rows_filter.py +96 -0
  126. data_syncmaster-0.2.1/syncmaster/schemas/v1/transfers/transformations/file_metadata_filter.py +53 -0
  127. data_syncmaster-0.2.1/syncmaster/schemas/v1/transformation_types.py +7 -0
  128. {data_syncmaster-0.1.5 → data_syncmaster-0.2.1}/syncmaster/schemas/v1/types.py +1 -1
  129. {data_syncmaster-0.1.5 → data_syncmaster-0.2.1}/syncmaster/schemas/v1/users.py +4 -9
  130. data_syncmaster-0.2.1/syncmaster/server/__init__.py +74 -0
  131. {data_syncmaster-0.1.5/syncmaster/backend → data_syncmaster-0.2.1/syncmaster/server}/__main__.py +2 -2
  132. data_syncmaster-0.2.1/syncmaster/server/api/__init__.py +2 -0
  133. data_syncmaster-0.2.1/syncmaster/server/api/monitoring.py +13 -0
  134. {data_syncmaster-0.1.5/syncmaster/backend → data_syncmaster-0.2.1/syncmaster/server}/api/router.py +3 -3
  135. data_syncmaster-0.2.1/syncmaster/server/api/v1/__init__.py +2 -0
  136. data_syncmaster-0.2.1/syncmaster/server/api/v1/auth.py +62 -0
  137. {data_syncmaster-0.1.5/syncmaster/backend → data_syncmaster-0.2.1/syncmaster/server}/api/v1/connections.py +116 -77
  138. {data_syncmaster-0.1.5/syncmaster/backend → data_syncmaster-0.2.1/syncmaster/server}/api/v1/groups.py +72 -37
  139. {data_syncmaster-0.1.5/syncmaster/backend → data_syncmaster-0.2.1/syncmaster/server}/api/v1/queue.py +48 -46
  140. data_syncmaster-0.2.1/syncmaster/server/api/v1/router.py +20 -0
  141. data_syncmaster-0.2.1/syncmaster/server/api/v1/runs.py +163 -0
  142. {data_syncmaster-0.1.5/syncmaster/backend → data_syncmaster-0.2.1/syncmaster/server}/api/v1/transfers.py +79 -192
  143. data_syncmaster-0.2.1/syncmaster/server/api/v1/users.py +53 -0
  144. data_syncmaster-0.2.1/syncmaster/server/dependencies/__init__.py +10 -0
  145. data_syncmaster-0.2.1/syncmaster/server/dependencies/get_access_token.py +12 -0
  146. data_syncmaster-0.2.1/syncmaster/server/dependencies/stub.py +51 -0
  147. data_syncmaster-0.2.1/syncmaster/server/handler.py +356 -0
  148. data_syncmaster-0.2.1/syncmaster/server/middlewares/__init__.py +34 -0
  149. data_syncmaster-0.2.1/syncmaster/server/middlewares/cors.py +18 -0
  150. data_syncmaster-0.2.1/syncmaster/server/middlewares/monitoring/__init__.py +7 -0
  151. data_syncmaster-0.2.1/syncmaster/server/middlewares/monitoring/metrics.py +44 -0
  152. data_syncmaster-0.2.1/syncmaster/server/middlewares/openapi.py +112 -0
  153. data_syncmaster-0.2.1/syncmaster/server/middlewares/request_id.py +21 -0
  154. data_syncmaster-0.2.1/syncmaster/server/middlewares/session.py +17 -0
  155. data_syncmaster-0.2.1/syncmaster/server/middlewares/static_files.py +16 -0
  156. data_syncmaster-0.2.1/syncmaster/server/providers/__init__.py +2 -0
  157. data_syncmaster-0.2.1/syncmaster/server/providers/auth/__init__.py +11 -0
  158. data_syncmaster-0.2.1/syncmaster/server/providers/auth/base_provider.py +114 -0
  159. data_syncmaster-0.2.1/syncmaster/server/providers/auth/dummy_provider.py +111 -0
  160. data_syncmaster-0.2.1/syncmaster/server/providers/auth/keycloak_provider.py +146 -0
  161. {data_syncmaster-0.1.5/syncmaster/backend → data_syncmaster-0.2.1/syncmaster/server/scripts}/export_openapi_schema.py +3 -5
  162. data_syncmaster-0.2.1/syncmaster/server/scripts/manage_superusers.py +105 -0
  163. data_syncmaster-0.2.1/syncmaster/server/services/__init__.py +2 -0
  164. data_syncmaster-0.2.1/syncmaster/server/services/get_user.py +41 -0
  165. {data_syncmaster-0.1.5/syncmaster/backend → data_syncmaster-0.2.1/syncmaster/server}/services/unit_of_work.py +9 -5
  166. data_syncmaster-0.2.1/syncmaster/server/settings/__init__.py +61 -0
  167. data_syncmaster-0.2.1/syncmaster/server/settings/auth/__init__.py +29 -0
  168. data_syncmaster-0.2.1/syncmaster/server/settings/auth/dummy.py +20 -0
  169. data_syncmaster-0.2.1/syncmaster/server/settings/auth/jwt.py +44 -0
  170. data_syncmaster-0.2.1/syncmaster/server/settings/auth/keycloak.py +22 -0
  171. data_syncmaster-0.2.1/syncmaster/server/settings/server/__init__.py +60 -0
  172. data_syncmaster-0.2.1/syncmaster/server/settings/server/cors.py +58 -0
  173. data_syncmaster-0.2.1/syncmaster/server/settings/server/monitoring.py +65 -0
  174. data_syncmaster-0.2.1/syncmaster/server/settings/server/openapi.py +148 -0
  175. data_syncmaster-0.2.1/syncmaster/server/settings/server/request_id.py +37 -0
  176. data_syncmaster-0.2.1/syncmaster/server/settings/server/session.py +58 -0
  177. data_syncmaster-0.2.1/syncmaster/server/settings/server/static_files.py +34 -0
  178. data_syncmaster-0.2.1/syncmaster/server/utils/__init__.py +2 -0
  179. data_syncmaster-0.2.1/syncmaster/server/utils/jwt.py +29 -0
  180. data_syncmaster-0.2.1/syncmaster/server/utils/slug.py +10 -0
  181. data_syncmaster-0.2.1/syncmaster/server/utils/state.py +15 -0
  182. data_syncmaster-0.2.1/syncmaster/settings/__init__.py +13 -0
  183. data_syncmaster-0.2.1/syncmaster/settings/broker.py +29 -0
  184. data_syncmaster-0.2.1/syncmaster/settings/credentials.py +34 -0
  185. data_syncmaster-0.2.1/syncmaster/settings/database.py +50 -0
  186. data_syncmaster-0.2.1/syncmaster/settings/log/__init__.py +110 -0
  187. data_syncmaster-0.2.1/syncmaster/settings/log/colored.yml +53 -0
  188. data_syncmaster-0.2.1/syncmaster/settings/log/json.yml +52 -0
  189. data_syncmaster-0.2.1/syncmaster/settings/log/plain.yml +53 -0
  190. data_syncmaster-0.2.1/syncmaster/worker/__init__.py +19 -0
  191. {data_syncmaster-0.1.5 → data_syncmaster-0.2.1}/syncmaster/worker/base.py +4 -3
  192. data_syncmaster-0.2.1/syncmaster/worker/celery.py +6 -0
  193. data_syncmaster-0.2.1/syncmaster/worker/controller.py +290 -0
  194. data_syncmaster-0.2.1/syncmaster/worker/handlers/__init__.py +2 -0
  195. {data_syncmaster-0.1.5 → data_syncmaster-0.2.1}/syncmaster/worker/handlers/base.py +11 -1
  196. data_syncmaster-0.2.1/syncmaster/worker/handlers/db/__init__.py +2 -0
  197. data_syncmaster-0.2.1/syncmaster/worker/handlers/db/base.py +141 -0
  198. data_syncmaster-0.2.1/syncmaster/worker/handlers/db/clickhouse.py +77 -0
  199. data_syncmaster-0.2.1/syncmaster/worker/handlers/db/hive.py +67 -0
  200. data_syncmaster-0.2.1/syncmaster/worker/handlers/db/mssql.py +64 -0
  201. data_syncmaster-0.2.1/syncmaster/worker/handlers/db/mysql.py +64 -0
  202. {data_syncmaster-0.1.5 → data_syncmaster-0.2.1}/syncmaster/worker/handlers/db/oracle.py +28 -2
  203. {data_syncmaster-0.1.5 → data_syncmaster-0.2.1}/syncmaster/worker/handlers/db/postgres.py +17 -2
  204. data_syncmaster-0.2.1/syncmaster/worker/handlers/file/__init__.py +2 -0
  205. data_syncmaster-0.2.1/syncmaster/worker/handlers/file/base.py +134 -0
  206. data_syncmaster-0.2.1/syncmaster/worker/handlers/file/ftp.py +30 -0
  207. data_syncmaster-0.2.1/syncmaster/worker/handlers/file/ftps.py +30 -0
  208. {data_syncmaster-0.1.5 → data_syncmaster-0.2.1}/syncmaster/worker/handlers/file/hdfs.py +10 -6
  209. data_syncmaster-0.2.1/syncmaster/worker/handlers/file/local_df.py +119 -0
  210. data_syncmaster-0.2.1/syncmaster/worker/handlers/file/remote_df.py +62 -0
  211. data_syncmaster-0.2.1/syncmaster/worker/handlers/file/s3.py +69 -0
  212. data_syncmaster-0.2.1/syncmaster/worker/handlers/file/samba.py +34 -0
  213. data_syncmaster-0.2.1/syncmaster/worker/handlers/file/sftp.py +31 -0
  214. data_syncmaster-0.2.1/syncmaster/worker/handlers/file/webdav.py +31 -0
  215. data_syncmaster-0.2.1/syncmaster/worker/settings/__init__.py +79 -0
  216. data_syncmaster-0.2.1/syncmaster/worker/settings/hwm_store.py +66 -0
  217. {data_syncmaster-0.1.5 → data_syncmaster-0.2.1}/syncmaster/worker/spark.py +49 -25
  218. {data_syncmaster-0.1.5 → data_syncmaster-0.2.1}/syncmaster/worker/transfer.py +21 -11
  219. data_syncmaster-0.1.5/pyproject.toml +0 -288
  220. data_syncmaster-0.1.5/syncmaster/backend/__init__.py +0 -60
  221. data_syncmaster-0.1.5/syncmaster/backend/api/__init__.py +0 -2
  222. data_syncmaster-0.1.5/syncmaster/backend/api/deps.py +0 -20
  223. data_syncmaster-0.1.5/syncmaster/backend/api/monitoring.py +0 -10
  224. data_syncmaster-0.1.5/syncmaster/backend/api/v1/__init__.py +0 -2
  225. data_syncmaster-0.1.5/syncmaster/backend/api/v1/auth/__init__.py +0 -2
  226. data_syncmaster-0.1.5/syncmaster/backend/api/v1/auth/router.py +0 -32
  227. data_syncmaster-0.1.5/syncmaster/backend/api/v1/auth/utils.py +0 -26
  228. data_syncmaster-0.1.5/syncmaster/backend/api/v1/router.py +0 -18
  229. data_syncmaster-0.1.5/syncmaster/backend/api/v1/users.py +0 -75
  230. data_syncmaster-0.1.5/syncmaster/backend/handler.py +0 -203
  231. data_syncmaster-0.1.5/syncmaster/backend/services/__init__.py +0 -4
  232. data_syncmaster-0.1.5/syncmaster/backend/services/auth.py +0 -58
  233. data_syncmaster-0.1.5/syncmaster/config.py +0 -110
  234. data_syncmaster-0.1.5/syncmaster/db/__init__.py +0 -2
  235. data_syncmaster-0.1.5/syncmaster/db/migrations/versions/2023-11-23_478240cdad4b_init.py +0 -242
  236. data_syncmaster-0.1.5/syncmaster/db/migrations/versions/__init__.py +0 -2
  237. data_syncmaster-0.1.5/syncmaster/db/mixins.py +0 -33
  238. data_syncmaster-0.1.5/syncmaster/db/models.py +0 -194
  239. data_syncmaster-0.1.5/syncmaster/dto/__init__.py +0 -2
  240. data_syncmaster-0.1.5/syncmaster/dto/connections.py +0 -61
  241. data_syncmaster-0.1.5/syncmaster/dto/transfers.py +0 -66
  242. data_syncmaster-0.1.5/syncmaster/schemas/__init__.py +0 -2
  243. data_syncmaster-0.1.5/syncmaster/schemas/v1/connection_types.py +0 -9
  244. data_syncmaster-0.1.5/syncmaster/schemas/v1/connections/__init__.py +0 -2
  245. data_syncmaster-0.1.5/syncmaster/schemas/v1/connections/connection.py +0 -146
  246. data_syncmaster-0.1.5/syncmaster/schemas/v1/connections/hdfs.py +0 -40
  247. data_syncmaster-0.1.5/syncmaster/schemas/v1/connections/hive.py +0 -40
  248. data_syncmaster-0.1.5/syncmaster/schemas/v1/connections/oracle.py +0 -58
  249. data_syncmaster-0.1.5/syncmaster/schemas/v1/connections/postgres.py +0 -48
  250. data_syncmaster-0.1.5/syncmaster/schemas/v1/connections/s3.py +0 -66
  251. data_syncmaster-0.1.5/syncmaster/schemas/v1/file_formats.py +0 -7
  252. data_syncmaster-0.1.5/syncmaster/schemas/v1/groups.py +0 -39
  253. data_syncmaster-0.1.5/syncmaster/schemas/v1/status.py +0 -16
  254. data_syncmaster-0.1.5/syncmaster/schemas/v1/transfers/db.py +0 -23
  255. data_syncmaster-0.1.5/syncmaster/schemas/v1/transfers/file/__init__.py +0 -2
  256. data_syncmaster-0.1.5/syncmaster/schemas/v1/transfers/file/base.py +0 -58
  257. data_syncmaster-0.1.5/syncmaster/schemas/v1/transfers/file_format.py +0 -29
  258. data_syncmaster-0.1.5/syncmaster/worker/__init__.py +0 -2
  259. data_syncmaster-0.1.5/syncmaster/worker/config.py +0 -18
  260. data_syncmaster-0.1.5/syncmaster/worker/controller.py +0 -121
  261. data_syncmaster-0.1.5/syncmaster/worker/handlers/__init__.py +0 -2
  262. data_syncmaster-0.1.5/syncmaster/worker/handlers/db/__init__.py +0 -2
  263. data_syncmaster-0.1.5/syncmaster/worker/handlers/db/base.py +0 -38
  264. data_syncmaster-0.1.5/syncmaster/worker/handlers/db/hive.py +0 -37
  265. data_syncmaster-0.1.5/syncmaster/worker/handlers/file/__init__.py +0 -2
  266. data_syncmaster-0.1.5/syncmaster/worker/handlers/file/base.py +0 -45
  267. data_syncmaster-0.1.5/syncmaster/worker/handlers/file/s3.py +0 -31
  268. {data_syncmaster-0.1.5 → data_syncmaster-0.2.1}/syncmaster/db/migrations/README +0 -0
  269. {data_syncmaster-0.1.5 → data_syncmaster-0.2.1}/syncmaster/db/migrations/alembic.ini +0 -0
  270. {data_syncmaster-0.1.5 → data_syncmaster-0.2.1}/syncmaster/db/migrations/script.py.mako +0 -0
@@ -1,4 +1,4 @@
1
- Copyright 2023-2024 MTS (Mobile Telesystems). All rights reserved.
1
+ Copyright 2023-2025 MTS PJSC. All rights reserved.
2
2
 
3
3
  Apache License
4
4
  Version 2.0, January 2004
@@ -1,9 +1,9 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.3
2
2
  Name: data-syncmaster
3
- Version: 0.1.5
3
+ Version: 0.2.1
4
4
  Summary: Syncmaster REST API + Worker
5
5
  License: Apache-2.0
6
- Keywords: Syncmaster,REST,API,Worker,Replication
6
+ Keywords: Syncmaster,REST,API,Worker,Spark,Transfer,ETL
7
7
  Author: DataOps.ETL
8
8
  Author-email: onetools@mts.ru
9
9
  Requires-Python: >=3.11,<4.0
@@ -17,29 +17,38 @@ Classifier: Operating System :: OS Independent
17
17
  Classifier: Programming Language :: Python :: 3
18
18
  Classifier: Programming Language :: Python :: 3.11
19
19
  Classifier: Programming Language :: Python :: 3.12
20
+ Classifier: Programming Language :: Python :: 3.13
20
21
  Classifier: Programming Language :: Python :: 3 :: Only
21
- Classifier: Programming Language :: Python :: 3.10
22
- Classifier: Programming Language :: Python :: 3.7
23
- Classifier: Programming Language :: Python :: 3.8
24
- Classifier: Programming Language :: Python :: 3.9
25
22
  Classifier: Topic :: Software Development :: Libraries
26
23
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
27
24
  Classifier: Typing :: Typed
28
- Provides-Extra: backend
25
+ Provides-Extra: scheduler
26
+ Provides-Extra: server
29
27
  Provides-Extra: worker
30
- Requires-Dist: alembic (>=1.11.1,<2.0.0) ; extra == "backend"
31
- Requires-Dist: asyncpg (>=0.29.0,<0.30.0) ; extra == "backend"
32
- Requires-Dist: celery (>=5.3.3,<6.0.0) ; extra == "backend" or extra == "worker"
33
- Requires-Dist: fastapi (>=0.110.0,<0.111.0) ; extra == "backend"
34
- Requires-Dist: onetl[spark] (>=0.10.2,<0.11.0) ; extra == "worker"
35
- Requires-Dist: psycopg2-binary (>=2.9.7,<3.0.0) ; extra == "worker"
36
- Requires-Dist: pydantic (>=2.7.0,<3.0.0)
37
- Requires-Dist: pydantic-settings (>=2.2.1,<3.0.0) ; extra == "backend" or extra == "worker"
38
- Requires-Dist: python-jose[cryptography] (>=3.3.0,<4.0.0) ; extra == "backend"
39
- Requires-Dist: python-multipart (>=0.0.9,<0.0.10) ; extra == "backend"
40
- Requires-Dist: sqlalchemy (>=2.0.18,<3.0.0) ; extra == "backend" or extra == "worker"
41
- Requires-Dist: sqlalchemy-utils (>=0.41.1,<0.42.0) ; extra == "backend" or extra == "worker"
42
- Requires-Dist: uvicorn (>=0.29.0,<0.30.0) ; extra == "backend"
28
+ Requires-Dist: alembic (>=1.15.2,<2.0.0) ; extra == "server"
29
+ Requires-Dist: apscheduler (>=3.11.0,<4.0.0) ; extra == "scheduler"
30
+ Requires-Dist: asgi-correlation-id (>=4.3.4,<5.0.0) ; extra == "server" or extra == "worker"
31
+ Requires-Dist: asyncpg (>=0.30.0,<0.31.0) ; extra == "server" or extra == "scheduler"
32
+ Requires-Dist: celery (>=5.5.0,<6.0.0) ; extra == "server" or extra == "worker" or extra == "scheduler"
33
+ Requires-Dist: coloredlogs ; extra == "server" or extra == "worker" or extra == "scheduler"
34
+ Requires-Dist: fastapi (>=0.115.12,<0.116.0) ; extra == "server"
35
+ Requires-Dist: horizon-hwm-store (>=1.1.2,<2.0.0) ; extra == "worker"
36
+ Requires-Dist: itsdangerous (>=2.2.0,<3.0.0) ; extra == "server"
37
+ Requires-Dist: jinja2 (>=3.1.6,<4.0.0) ; extra == "server" or extra == "worker"
38
+ Requires-Dist: onetl[all] (>=0.13.4,<0.14.0) ; extra == "worker"
39
+ Requires-Dist: psycopg2-binary (>=2.9.10,<3.0.0) ; extra == "server" or extra == "worker"
40
+ Requires-Dist: pydantic (>=2.11.1,<3.0.0)
41
+ Requires-Dist: pydantic-settings (>=2.8.1,<3.0.0) ; extra == "server" or extra == "worker" or extra == "scheduler"
42
+ Requires-Dist: pyjwt (>=2.10.1,<3.0.0) ; extra == "server"
43
+ Requires-Dist: python-json-logger ; extra == "server" or extra == "worker" or extra == "scheduler"
44
+ Requires-Dist: python-keycloak (>=5.3.1,<6.0.0) ; extra == "server"
45
+ Requires-Dist: python-multipart (>=0.0.20,<0.0.21) ; extra == "server"
46
+ Requires-Dist: pyyaml ; extra == "server" or extra == "worker" or extra == "scheduler"
47
+ Requires-Dist: sqlalchemy (>=2.0.40,<3.0.0) ; extra == "server" or extra == "worker" or extra == "scheduler"
48
+ Requires-Dist: sqlalchemy-utils (>=0.41.2,<0.42.0) ; extra == "server" or extra == "worker" or extra == "scheduler"
49
+ Requires-Dist: starlette-exporter (>=0.23.0,<0.24.0) ; extra == "server"
50
+ Requires-Dist: uuid6 (>=2024.7.10,<2025.0.0) ; extra == "server" or extra == "worker"
51
+ Requires-Dist: uvicorn (>=0.34.0,<0.35.0) ; extra == "server"
43
52
  Project-URL: CI/CD, https://github.com/MobileTeleSystems/syncmaster/actions
44
53
  Project-URL: Documentation, https://syncmaster.readthedocs.io
45
54
  Project-URL: Homepage, https://github.com/MobileTeleSystems/syncmaster
@@ -47,25 +56,24 @@ Project-URL: Source, https://github.com/MobileTeleSystems/syncmaster
47
56
  Project-URL: Tracker, https://github.com/MobileTeleSystems/syncmaster/issues
48
57
  Description-Content-Type: text/x-rst
49
58
 
50
- .. title
59
+ .. _readme:
51
60
 
52
- ==========
53
- SyncMaster
54
- ==========
61
+ Data.SyncMaster
62
+ ===============
55
63
 
56
- |Repo Status| |PyPI| |PyPI License| |PyPI Python Version| |Docker image| |Documentation|
57
- |Build Status| |Coverage| |pre-commit.ci|
64
+ |Repo Status| |Docker image| |PyPI| |PyPI License| |PyPI Python Version| |Documentation|
65
+ |Build Status| |Coverage| |pre-commit.ci|
58
66
 
59
- .. |Repo Status| image:: https://www.repostatus.org/badges/latest/active.svg
60
- :target: https://github.com/MobileTeleSystems/syncmaster
67
+ .. |Repo Status| image:: https://www.repostatus.org/badges/latest/wip.svg
68
+ :target: https://www.repostatus.org/#wip
69
+ .. |Docker image| image:: https://img.shields.io/docker/v/mtsrus/syncmaster-server?sort=semver&label=docker
70
+ :target: https://hub.docker.com/r/mtsrus/syncmaster-server
61
71
  .. |PyPI| image:: https://img.shields.io/pypi/v/data-syncmaster
62
72
  :target: https://pypi.org/project/data-syncmaster/
63
73
  .. |PyPI License| image:: https://img.shields.io/pypi/l/data-syncmaster.svg
64
74
  :target: https://github.com/MobileTeleSystems/syncmaster/blob/develop/LICENSE.txt
65
75
  .. |PyPI Python Version| image:: https://img.shields.io/pypi/pyversions/data-syncmaster.svg
66
76
  :target: https://badge.fury.io/py/data-syncmaster
67
- .. |Docker image| image:: https://img.shields.io/docker/v/mtsrus/syncmaster-backend?sort=semver&label=docker
68
- :target: https://hub.docker.com/r/mtsrus/syncmaster-backend
69
77
  .. |Documentation| image:: https://readthedocs.org/projects/syncmaster/badge/?version=stable
70
78
  :target: https://syncmaster.readthedocs.io
71
79
  .. |Build Status| image:: https://github.com/MobileTeleSystems/syncmaster/workflows/Run%20All%20Tests/badge.svg
@@ -76,22 +84,29 @@ SyncMaster
76
84
  :target: https://results.pre-commit.ci/latest/github/MobileTeleSystems/syncmaster/develop
77
85
 
78
86
 
79
- What is Syncmaster?
80
- -------------------
87
+ What is Data.SyncMaster?
88
+ ------------------------
81
89
 
82
- Syncmaster is as low-code ETL tool for transfering data between databases and file systems.
90
+ Data.SyncMaster is as low-code ETL tool for transfering data between databases and file systems.
83
91
  List of currently supported connections:
84
92
 
85
93
  * Apache Hive
94
+ * Clickhouse
86
95
  * Postgres
87
96
  * Oracle
97
+ * MSSQL
98
+ * MySQL
88
99
  * HDFS
89
100
  * S3
101
+ * FTP
102
+ * FTPS
103
+ * SFTP
104
+ * Samba
105
+ * WebDAV
90
106
 
91
- Current SyncMaster implementation provides following components:
107
+ Based on `onETL <https://onetl.readthedocs.io/>`_ and `Apache Spark <https://spark.apache.org/>`_.
92
108
 
93
- * REST API
94
- * Celery Worker
109
+ **Note**: service is under active development, and is not ready to use.
95
110
 
96
111
  Goals
97
112
  -----
@@ -104,7 +119,6 @@ Non-goals
104
119
  ---------
105
120
 
106
121
  * This is not a backup system
107
- * This is not a CDC solution
108
122
  * Only batch, no streaming
109
123
 
110
124
  .. documentation
@@ -113,3 +127,4 @@ Documentation
113
127
  -------------
114
128
 
115
129
  See https://syncmaster.readthedocs.io
130
+
@@ -1,22 +1,21 @@
1
- .. title
1
+ .. _readme:
2
2
 
3
- ==========
4
- SyncMaster
5
- ==========
3
+ Data.SyncMaster
4
+ ===============
6
5
 
7
- |Repo Status| |PyPI| |PyPI License| |PyPI Python Version| |Docker image| |Documentation|
8
- |Build Status| |Coverage| |pre-commit.ci|
6
+ |Repo Status| |Docker image| |PyPI| |PyPI License| |PyPI Python Version| |Documentation|
7
+ |Build Status| |Coverage| |pre-commit.ci|
9
8
 
10
- .. |Repo Status| image:: https://www.repostatus.org/badges/latest/active.svg
11
- :target: https://github.com/MobileTeleSystems/syncmaster
9
+ .. |Repo Status| image:: https://www.repostatus.org/badges/latest/wip.svg
10
+ :target: https://www.repostatus.org/#wip
11
+ .. |Docker image| image:: https://img.shields.io/docker/v/mtsrus/syncmaster-server?sort=semver&label=docker
12
+ :target: https://hub.docker.com/r/mtsrus/syncmaster-server
12
13
  .. |PyPI| image:: https://img.shields.io/pypi/v/data-syncmaster
13
14
  :target: https://pypi.org/project/data-syncmaster/
14
15
  .. |PyPI License| image:: https://img.shields.io/pypi/l/data-syncmaster.svg
15
16
  :target: https://github.com/MobileTeleSystems/syncmaster/blob/develop/LICENSE.txt
16
17
  .. |PyPI Python Version| image:: https://img.shields.io/pypi/pyversions/data-syncmaster.svg
17
18
  :target: https://badge.fury.io/py/data-syncmaster
18
- .. |Docker image| image:: https://img.shields.io/docker/v/mtsrus/syncmaster-backend?sort=semver&label=docker
19
- :target: https://hub.docker.com/r/mtsrus/syncmaster-backend
20
19
  .. |Documentation| image:: https://readthedocs.org/projects/syncmaster/badge/?version=stable
21
20
  :target: https://syncmaster.readthedocs.io
22
21
  .. |Build Status| image:: https://github.com/MobileTeleSystems/syncmaster/workflows/Run%20All%20Tests/badge.svg
@@ -27,22 +26,29 @@ SyncMaster
27
26
  :target: https://results.pre-commit.ci/latest/github/MobileTeleSystems/syncmaster/develop
28
27
 
29
28
 
30
- What is Syncmaster?
31
- -------------------
29
+ What is Data.SyncMaster?
30
+ ------------------------
32
31
 
33
- Syncmaster is as low-code ETL tool for transfering data between databases and file systems.
32
+ Data.SyncMaster is as low-code ETL tool for transfering data between databases and file systems.
34
33
  List of currently supported connections:
35
34
 
36
35
  * Apache Hive
36
+ * Clickhouse
37
37
  * Postgres
38
38
  * Oracle
39
+ * MSSQL
40
+ * MySQL
39
41
  * HDFS
40
42
  * S3
43
+ * FTP
44
+ * FTPS
45
+ * SFTP
46
+ * Samba
47
+ * WebDAV
41
48
 
42
- Current SyncMaster implementation provides following components:
49
+ Based on `onETL <https://onetl.readthedocs.io/>`_ and `Apache Spark <https://spark.apache.org/>`_.
43
50
 
44
- * REST API
45
- * Celery Worker
51
+ **Note**: service is under active development, and is not ready to use.
46
52
 
47
53
  Goals
48
54
  -----
@@ -55,7 +61,6 @@ Non-goals
55
61
  ---------
56
62
 
57
63
  * This is not a backup system
58
- * This is not a CDC solution
59
64
  * Only batch, no streaming
60
65
 
61
66
  .. documentation
@@ -63,4 +68,4 @@ Non-goals
63
68
  Documentation
64
69
  -------------
65
70
 
66
- See https://syncmaster.readthedocs.io
71
+ See https://syncmaster.readthedocs.io