Releases: electric-sql/electric
@electric-sql/[email protected]
Patch Changes
- Updated dependencies [18df5a5]
- Updated dependencies [f0b83fa]
- Updated dependencies [cd15a56]
- @electric-sql/[email protected]
@electric-sql/[email protected]
Patch Changes
- Updated dependencies [18df5a5]
- Updated dependencies [f0b83fa]
- Updated dependencies [cd15a56]
- @electric-sql/[email protected]
@electric-sql/[email protected]
Patch Changes
- Updated dependencies [18df5a5]
- Updated dependencies [f0b83fa]
- Updated dependencies [cd15a56]
- @electric-sql/[email protected]
@electric-sql/[email protected]
Minor Changes
- 18df5a5: Add bidirectional column mapping API for query filters with built-in snake_case ↔ camelCase support. Introduces
columnMapperoption toShapeStreamthat handles both encoding (TypeScript → Database) for WHERE clauses and decoding (Database → TypeScript) for results. IncludessnakeCamelMapper()helper for automatic snake_case/camelCase conversion andcreateColumnMapper()for custom mappings. The new API deprecates usingtransformersolely for column renaming, thoughtransformerremains useful for value transformations like encryption.
Patch Changes
-
f0b83fa: Fix subset__params to use constant parameter name for proxy configurations
Changed subsetparams from deepObject style (subsetparams[1], subsetparams[2]) to JSON serialization (subsetparams={"1":"value1","2":"value2"}). This allows proxy configurations to match the constant parameter name "subset__params" in ELECTRIC_PROTOCOL_QUERY_PARAMS without needing dynamic pattern matching.
-
cd15a56: Fix multiple renders from cached up-to-date messages on page refresh. When a shape receives multiple updates within the HTTP cache window (60s), each update ends with an up-to-date control message that gets cached. On page refresh, these cached responses replay rapidly, causing multiple renders. This change implements cursor-based detection to suppress cached up-to-date notifications until a fresh response (with a new cursor) arrives from the server, ensuring only one render occurs.
@core/[email protected]
Patch Changes
-
f0b83fa: Fix subset__params to use constant parameter name for proxy configurations
Changed subsetparams from deepObject style (subsetparams[1], subsetparams[2]) to JSON serialization (subsetparams={"1":"value1","2":"value2"}). This allows proxy configurations to match the constant parameter name "subset__params" in ELECTRIC_PROTOCOL_QUERY_PARAMS without needing dynamic pattern matching.
-
8cbd9fb: Reduce memory usage by terminating consumer processes after the hibernation timeout
-
69e4599: Support LIKE and ILIKE functions in where clauses (LIKE and ILIKE binary operators were already supported)
-
2e19332: Add
log_modeto shape comparable version for indexing. -
f36be0b: Simplify
ShapeStatusand remove unused APIs. -
a672d2a: Reduce logging when starting a consumer process
-
b62335f: Split
ShapeStatusrelation to shape lookup into separate ETS table to avoid congestion on main metadata table. -
e7b8bd0: Fix shape counting after reload and ensure shape last used repopulation
-
d483851: Ensure table and slot names are properly escaped in lock breaker query
-
7d080a3: Load shapes from storage in parallel for faster recovery.
-
d492b47: Improve storage initialization performance
-
e7b8bd0: Separate
shape def -> handlelookup into new table -
7d080a3: Load latest offset from storage when recovering shapes for accurate metadata reconstruction.
@electric-sql/[email protected]
Patch Changes
- Updated dependencies [aacfba4]
- @electric-sql/[email protected]
@electric-sql/[email protected]
Patch Changes
- Updated dependencies [aacfba4]
- @electric-sql/[email protected]
@electric-sql/[email protected]
Patch Changes
- Updated dependencies [aacfba4]
- @electric-sql/[email protected]
@electric-sql/[email protected]
Patch Changes
- aacfba4: Expose the ShapeStream.fetchSnapshot as a public api that can be used to fetch a snapshot without it being injected into the emitted stream of change messages. This is useful for cases where the user wants to handle the application of these snapshot in a custom way.
@core/[email protected]
Patch Changes
-
2d1d268: Ensure shape consumers idempotently handle transactions using log offset comparisons.
-
b71e46c: Fix retry-after header not being exposed via CORS
The server was sending the retry-after header to clients during overload scenarios (503 responses), but the header was not included in the access-control-expose-headers CORS header. This caused browsers to block access to the retry-after value, preventing clients from honoring the server's backoff directive.
As a result, clients would ignore the server's retry-after header and use only exponential backoff with jitter, which could result in very short retry delays (as low as 0-100ms on early retries), leading to intense retry loops during server overload.
-
ff45de1: Replace max LSN recovery from on-disk shapes with direct read from replication slot flushed LSN.
-
68424c3: Reduce replication client working memory by sending individual operations to ShapeLogCollector rather than whole transactions
-
6bb011b: Remove Shapes.Monitor and re-write shape removal for improved performance
-
5c8b559: Propagate shape subset errors correctly to Ecto.
-
b24556b: Reduce memory buildup when calculating least recently used shapes by using
:ets.foldl. -
d3a60f6: Fix shape delete api call function arguments