|
| 1 | +# 0.3.0 (2025-12-18) { #0.3.0 } |
| 2 | + |
| 3 | +Release of Data.SyncMaster 0.3.0 brings up support for Iceberg, Spark-on-K8s and Spark-on-Yarn. |
| 4 | + |
| 5 | +!!! note |
| 6 | + Currently Spark-on-K8s and Spark-on-Yarn do not support FTP, FTPS, SFTP, Samba and WebDAV. |
| 7 | + |
| 8 | +## Breaking Changes |
| 9 | + |
| 10 | +- Worker container command should be changed from `--queues 123-myqueue` to `worker --queues 123-myqueue` ([#295](https://github.com/MobileTeleSystems/syncmaster/issues/295)). |
| 11 | + |
| 12 | +- Application should be configured via `config.yml` file ([#289](https://github.com/MobileTeleSystems/syncmaster/issues/289)). |
| 13 | + |
| 14 | + It's still possible to use environment variables instead. But it is not recommended for security reasons, as docker/k8s envs can be read by other users. |
| 15 | + |
| 16 | + Other notable changes: |
| 17 | + |
| 18 | +- Environment variable `SYNCMASTER__ENTRYPOINT__SUPERUSERS` is renamed to `SYNCMASTER__SUPERUSERS`. |
| 19 | +- Logging format is configured explicitly via `config.yml` instead of having few predefined configuration files. |
| 20 | + |
| 21 | +- Moved `server.session` middleware settings to `auth` block ([#304](https://github.com/MobileTeleSystems/syncmaster/issues/304)). |
| 22 | + Also rename some fields in `auth.keycloak` settings block. |
| 23 | + |
| 24 | +Before vs after |
| 25 | + |
| 26 | +Before: |
| 27 | + |
| 28 | +```yaml |
| 29 | +auth: |
| 30 | + provider: ... |
| 31 | + keycloak: |
| 32 | + server_url: ... |
| 33 | + redirect_url: ... |
| 34 | + |
| 35 | +server: |
| 36 | + session: |
| 37 | + enabled: true |
| 38 | + secret_key: ... |
| 39 | +``` |
| 40 | +
|
| 41 | +Now: |
| 42 | +
|
| 43 | +```yaml |
| 44 | +auth: |
| 45 | + provider: |
| 46 | + keycloak: |
| 47 | + api_url: ... |
| 48 | + ui_callback_url: ... |
| 49 | + cookie: |
| 50 | + secret_key: ... |
| 51 | +``` |
| 52 | +
|
| 53 | +## Features |
| 54 | +
|
| 55 | +- Added Iceberg support (([#282](https://github.com/MobileTeleSystems/syncmaster/issues/282)), ([#284](https://github.com/MobileTeleSystems/syncmaster/issues/284)), ([#294](https://github.com/MobileTeleSystems/syncmaster/issues/294)), ([#297](https://github.com/MobileTeleSystems/syncmaster/issues/297))). |
| 56 | +
|
| 57 | + Iceberg connection currently supports only Iceberg REST Catalog with S3 warehouse. |
| 58 | +
|
| 59 | +- Allow using SyncMaster worker image as `spark.kubernetes.container.image`. ([#295](https://github.com/MobileTeleSystems/syncmaster/issues/295)) |
| 60 | + |
| 61 | +- Allow passing default Spark session config via worker settings ([#291](https://github.com/MobileTeleSystems/syncmaster/issues/291)): |
| 62 | + |
| 63 | +### Example config.yml |
| 64 | + |
| 65 | +```yaml |
| 66 | +config.yml: |
| 67 | +worker: |
| 68 | + spark_session_default_config: |
| 69 | + spark.master: local |
| 70 | + spark.driver.host: 127.0.0.1 |
| 71 | + spark.driver.bindAddress: 0.0.0.0 |
| 72 | + spark.sql.pyspark.jvmStacktrace.enabled: true |
| 73 | + spark.ui.enabled: false |
| 74 | +``` |
| 75 | + |
| 76 | +- Added OAuth2GatewayProvider ([#283](https://github.com/MobileTeleSystems/syncmaster/issues/283)). |
| 77 | + |
| 78 | + This allows using Data.SyncMaster under OAuth2 Gateway. Implementation is similar to DummyAuthProvider. |
| 79 | + |
| 80 | +- Allow disabling `SessionMiddleware`, as it only required by `KeycloakAuthProvider`. |
| 81 | + |
| 82 | +- Add hooks support to worker classes (TransferController, Handler) ([#279](https://github.com/MobileTeleSystems/syncmaster/issues/279)). |
| 83 | + |
| 84 | +- Pass transfer name and group name to Handlers ([#308](https://github.com/MobileTeleSystems/syncmaster/issues/308)). |
| 85 | + |
| 86 | +## Improvements |
| 87 | + |
| 88 | +- Make S3 connection `region` a mandatory option, to prevent possible errors. |
| 89 | +- Hide `database_name` from Clickhouse and MySQL connection pages. |
| 90 | +- Frontend: add placeholders to connection params, like host, port and so on. |
| 91 | +- Sync frontend and backend checks for some field patterns, e.g. table name should be in format `schema.table`. |
| 92 | +- Improve OpenAPI schema fields description. |
| 93 | + |
| 94 | +## Bug Fixes |
| 95 | + |
| 96 | +Fix some file format options were ignored by SyncMaster worker: |
| 97 | + |
| 98 | +- XML: `root_tag`, `row_tag` |
| 99 | +- Excel `start_cell`, `include_header` |
| 100 | +- CSV `include_header`, `line_sep` |
| 101 | +- JSON, JSONLine: `line_sep` |
0 commit comments