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