DATE:
AUTHOR:
PowerSync Product Team
PowerSync Service

PowerSync Service: v1.7.2

DATE:
AUTHOR: PowerSync Product Team

We are pleased to announce the release of version 1.7.2 of the PowerSync Service. The PowerSync Service is published to Docker Hub as journeyapps/powersync-service for use in self-hosted setups. PowerSync Cloud instances receive Service updates automatically.

See the full changelog below.

Have any questions or feedback? Chat with us and the PowerSync community on Discord.

Changelog

1.7.2 (2025-03-04)

  • [IMPROVED] MongoDB initial replication performance by optimizing document reading from the source database. (PR #219)

1.7.1 (2025-02-27)

  • [IMPROVED] Upgraded mongodb and bson packages to remove the need for certain workarounds. (PR #211)

  • [IMPROVED] Unified compacting options across storage providers to enhance consistency. (PR #217)

  • [FIXED] Ensured current data remains available when restarting replication due to errors. (PR #216)

  • [FIXED] Improved handling of edge cases that could lead to truncation of synced tables. (PR #215)

  • [FIXED] Addressed issue where compacting might fail with an "unexpected PUT operation" error. (PR #217)

  • [FIXED] Added missing checkpoint completion log for empty sync iterations. (PR #214)

1.7.0 (2025-02-19)

  • [ADDED] Support for sync bucket priorities to ensure critical data sync first. Learn more here. (PR #192)

  • [IMPROVED] Upgraded to Node.js version 22.14.0.

  • [IMPROVED] Implemented minor optimizations to new checkpoint calculations. (PR #197)

  • [FIXED] Addressed signed integer overflow issue for int64 values from MongoDB. (PR #207)

v1.4.1

  • [FIXED] A race condition that sometimes caused a new write checkpoint to not be acknowledged on an existing connection (PR).

v1.4.0

  • [ADDED] Support for MongoDB resume tokens, enhancing replication reliability by allowing the system to resume change streams from the last known state after interruptions (PR).

  • [IMPROVED] Error handling for invalid sync rules, making it clearer when an error occurs. In self-hosted deployments, replication now exits upon a validation error, ensuring developers can immediately address configuration issues. This is configurable with a new sync_rules.exit_on_error option. In PowerSync Cloud, errors are logged in instance logs and displayed in the dashboard for visibility. See this PR for details.

  • [IMPROVED] Logging for initial replication progress for MongoDB connections, providing developers with visibility into data replication status during setup.

  • [IMPROVED] Upgraded TypeScript to 5.7 and set target Node.JS version 22, ES2024.

  • [FIXED] -> operator now returns null instead of undefined for missing JSON values, ensuring consistency in data handling and preventing potential query errors.

v1.3.12

  • [ADDED] Internal: Utilities for Postgres server and database identification.

v1.3.11

  • [ADDED] The ability to use the same Postgres server for the replication source and sync bucket storage. This is only supported on Postgres versions newer than 14.0.

  • [ADDED] The ability to skip creating empty sync checkpoints if no changes were present in a batch.

  • [FIXED] A bug where listening to active checkpoint notifications on an ended connection could cause a crash.

v1.3.10

  • [ADDED] Schema generator for FlutterFlow.

v1.3.9

  • [ADDED] Introduced standard error codes. Also see the PR.

  • [ADDED] A "test-connection" CLI command which performs the same connection validation as on PowerSync Cloud. PR.

  • [ADDED] Support IPv6 for the JWKS URI. PR.

  • [ADDED] Support for limiting IP ranges of outgoing connections. PR.

  • [IMPROVED] A clearer error message for "null" bucket definitions.

v1.3.8

  • [ADDED] Postgres support for sync bucket storage. See the Release Notes.

v1.3.7

  • [IMPROVED] Implemented a shared MongoDB dependency between modules. This should help avoid potential multiple versions of MongoDB being present in a project.

v1.3.6

  • [FIXED] MongoDB replication of undefined values causing missing documents.

  • [FIXED] Excessive memory consumption during MySQL initial replication.

  • [IMPROVED] Added a heartbeat mechanism to the MySQL binlog listener replication connection to detect connection timeouts.

  • [IMPROVED] Moved the MongoDB sync bucket storage implementation to the MongoDB module.

  • [IMPROVED] Updated ts-codec to version 1.3.0 for better decode error responses.

v1.3.5

  • [ADDED] ECDSA signing algorithm support for JWTs.

  • [ADDED] iif(X,Y,Z) Sync Rules function, which returns the value Y if X is true, and Z otherwise.

  • [FIXED] Timestamp replication issues for MySQL connections.

  • [FIXED] Resuming MySQL replication after a restart.

v1.3.4

  • [FIXED] An issue caused by incorrect bucket parameters grouping. See more details in this PR.

  • [FIXED] Replication slot recovery for Postgres instances. See more details in this PR.

  • [IMPROVED] Reduce noise in log output.

v1.3.3

  • [FIXED] Revert Postgres snapshot strategy.

v1.3.2

  • [IMPROVED] Use shorter timeout for testing MongoDB connections to ensure we get a proper error when failing to connect.

v1.3.1

  • [FIXED] "BSONObj size is invalid" error during replication.

v1.3.0

  • [ADDED] EdDSA signing algorithm support for JWTs as requested in this issue.

  • [IMPROVED] Optimized connection timeouts, and switched to fetching data in batches to reduce connection hanging risks for Postgres initial replication.

v1.2.0

  • [ADDED] uuid_blob Sync Rules function to convert a UUID string to bytes.

  • [ADDED] Support resuming initial replication for Postgres, for cases where initial replication was interrupted. See more details in the PR.

  • [IMPROVED] For Supabase Auth, when a JWT secret is explicitly configured, disable using current_setting('app.settings.jwt_secret').

  • [IMPROVED] Implemented a workaround for a write checkpoint bug on Aurora Postgres.

  • [FIXED] Replication lag diagnostics for Postgres, which resulted in the error: Unable to get replication lag Could not determine replication lag for slot [object Object]

v1.1.1

  • [FIXED] A regression for missing HTTP probes. Reported in issue.

v1.1.0

  • [ADDED] A "supabase_jwt_secret" config option to simplify static Supabase auth. Reference.

v1.0.0

  • [IMPROVED] Major refactor of the PowerSync Service to support modular replication.

  • [ADDED] Initial alpha support for MongoDB and MySQL source databases.

  • [ADDED] json_each function for parameter queries: Expand a JSON array or object from a request or token parameter into multiple parameter rows. 

  • [IMPROVED] Optionally include original types in generated client-side schemas as a comment.

v0.5.7

  • [IMPROVED] Postgres connection port restrictions. Connections are now supported on ports >= 1024.

v0.5.6

  • [ADDED] Support in Sync Rules for substring and json_keys functions.

v0.5.5

  • [IMPROVED] Sync Rules:

    • The Dashboard editor now warns when identifiers are automatically converted to lower-case.

    • The supported combinations of the IN operator have been expanded slightly - see the PR for examples.

  • [FIXED] An edge case with the checksum cache when compacting (when compacting resulted in a CLEAR operation that is later than the last checksum cache). See the PR for more information.

  • [FIXED] "JavaScript heap out of memory" error on startup.

v0.5.4

  • [IMPROVED] Update TableV2 to Table in the JavaScript/TypeScript schema generator (the two definitions have been merged).

v0.5.3

  • [FIXED] A rare race condition with WebSocket handling that could cause the route handler to "hang" indefinitely, after the underlying connection is closed.

v0.5.2

  • [FIXED] The error: WebSocket is not open: readyState 2 (CLOSING)

v0.5.1

  • [ADDED] client_id parameter to the WebSocket sync/stream endpoint logs.

v0.5.0

  • [ADDED] client_id parameter and User-Agent headers. This forms part of the work to support custom write checkpoints.

    • The client_id parameter specifically affects write checkpoints (limits write checkpoints to a specific client, rather than just an user).

    • It also makes it easier to notice issues such as multiple concurrent connections for the same client.

    • User-Agent headers allow us to identify which client is used.

  • [IMPROVED] Logging for troubleshooting:

    • Log on sync lock when reaching concurrency limit.

    • Log the current count of connected WebSocket connections.

v0.4.4

  • [ADDED] Support for TableV2 / TypeScript schema generator.

v0.4.3

  • [INTERNAL] Removed unused development routes.

v0.4.2

  • [INTERNAL] Added utility functions for registering routes.

v0.4.1

  • [FIXED] Missing route error logs.

  • Updated dependencies:

    • [FIXED] Concurrent connection limiting for WebSockets, to resolve the error " [429] Maximum active concurrent connections limit has been reached".

v0.4.0

  • [ADDED] Support for request.parameters(), request.jwt() and request.user_id(). Documentation will we published soon.

  • [ADDED] Warn on potentially dangerous queries using client parameters.

v0.3.0

  • [IMPROVED] Removed dependency for restricted packages, allowing this repository to be used without any NPM credentials.

  • [FIXED] A replication issue with REPLICA IDENTITY FULL.

v0.2.2

  • [FIXED] Teardown command not terminating after some errors. Also adds better logging to the teardown job.

  • [FIXED] Date parsing in replication for dates further back than 100 AD.

v0.2.1

  • [IMPROVED] Use a LRU cache for checksum computations, improving performance and reducing MongoDB database load. Learn more here.

  • [IMPROVED] Return zero checksums to the client instead of omitting these, to help with debugging sync issues.

v0.2.0

  • [ADDED] Support for client parameters. This functionality is gradually being added to client SDKs.

v0.1.3

  • [FIXED] Some performance issues, detailed here.

  • [IMPROVED] Logging for initial snapshot replication.

v0.1.2

  • [FIXED] Missing authentication errors for WebSocket sync stream requests.

v0.1.1

  • [IMPROVED] Updated lru-cache dependency minimum version to prevent downstream consumers of package using a broken version.

v0.1.0

  • [ADDED] The ability to capture anonymous usage metrics (learn more here).

v0.0.2

  • Initial public release.

Powered by LaunchNotes