All notable changes to this project will be documented in this file. See standard-version for commit guidelines.
5.8.0 (2024-10-30)
- rename poolId to resourcePool and deprecate (74de142)
5.7.0 (2024-10-30)
- add support for poolId parameter in query service requests (1098749)
5.6.0 (2024-10-29)
- update ydb-sdk-proto dep (e4ff812)
5.5.3 (2024-10-22)
- topic stream auth in cloud (6adca13)
5.5.2 (2024-10-15)
- fix topic example and make Context publically available (644c116)
- update protobufjs to the latest version and add dependencies to protobufjs in the proto file (509ea47)
5.5.1 (2024-10-03)
- add explicit dependency on protobufjs package (031d2be)
5.5.0 (2024-09-30)
- add retrier to the topics (03fc7f9)
5.4.0 (2024-09-27)
- add idempotent option to tableClient session.executeQuery (89df57e)
5.3.5 (2024-09-26)
- "Call cancelled" error (ee14b9f)
5.3.4 (2024-08-20)
- initial version of topic service client (2db4f42)
5.3.3 (2024-07-04)
- add DECLARE that is still required by YDB 24.1 (8920fee)
- query service switched to new retryer (43ce40b)
5.3.2 (2024-03-28)
- add opFinished in query service result (cf2959c)
5.3.1 (2024-03-26)
- visibility of RowType type (c1f258d)
5.3.0 (2024-03-25)
- add YDB Query Service client (f7a5958)
5.2.0 (2024-02-27)
5.1.1 (2023-09-04)
- quick fix husky install problem arises during SDK update (03beecc)
5.1.0 (2023-08-31)
- a dummy feature to check the release action (268d427)
5.0.0 (2023-05-15)
- remove string type
- remove string type (dfaa81e)
4.6.0 (2023-05-10)
- add logging to retryable decorator (dc747b0)
- add retries to static and IAM credentials services (783d977)
- update errors classes list (3d860b8)
- fix withTimeout hanging when errored (83409c5)
4.5.0 (2023-04-19)
- add
family
option to Column constructor (06a955d) - add all defined options to
createTable
functions (feb2570) - add describeTableOptions function (b532c90)
4.4.0 (2023-04-19)
- explain query request (25354e8)
4.3.0 (2023-04-04)
- add language_id support for slo workflow (f7fee49)
4.2.0 (2023-03-28)
- make variant type converting to YDB native working (2c0a9d9)
- make variant type parsing working (5320024)
4.1.0 (2023-03-16)
- add error code number (90d71c1)
4.0.0 (2023-03-07)
- remove pino from deps, add setupLogger
- move optional deps to peerDeps
- add backward compatibility for
setDefaultLogger
(bd637bc) - add custom logger examples (11273aa)
- add slo-workload (a916f19)
- lock engine>npm version (f35dc42)
- import type from
@yandex-cloud/nodejs-sdk
(331074b) - move optional deps to peerDeps (701bb6c)
- remove pino from deps, add setupLogger (fb77499)
- update MetadataAuthService to load module async way (2d9be70)
3.9.0 (2023-02-09)
- bugfix MissingStatus import (1835a85)
3.8.1 (2023-01-13)
- tests: update timeouts to run tests correctly (82bc6b7)
3.8.0 (2023-01-13)
- update ydb-sdk-proto to 1.1.0 (8106921)
3.7.1 (2023-01-12)
- deps: update luxon, jsonwebtoken and YC sdk (60ba72d)
3.7.0 (2022-12-05)
3.6.1 (2022-11-28)
- auth: new IAM auth grpc service per token update (341872a)
3.6.0 (2022-11-21)
- add data columns and sync/async index to TableIndex (7304dce)
3.5.0 (2022-11-15)
- deps: update logging packages to latest (ad8dbd2)
3.4.4 (2022-10-20)
3.4.3 (2022-10-18)
- build: bugfix npm package (4db3425)
3.4.2 (2022-10-18)
- build: fix es module build (8d4715b)
3.4.1 (2022-09-13)
3.4.0 (2022-08-12)
- introduce new type aliases: Types.BYTES & Types.TEXT (61c17dc)
- the expected type of TypedData.yson() arg should be Buffer (cd327de)
3.3.2 (2022-05-27)
3.3.1 (2022-05-26)
- correctly access package.json (5bba0d9)
3.3.0 (2022-05-20)
3.2.0 (2022-05-20)
- process 'session-close' server hint from trailing metadata (d9c15ba)
- acquire new session once free slot becomes available in pool (4500226)
3.1.1 (2022-05-13)
3.1.0 (2022-05-12)
3.0.0 (2022-03-02)
- all signatures of SchemeClient's methods now have optional
settings
parameter instead ofoperationParams
.- Before:
makeDirectory(path, operationParams?)
After:makeDirectory(path, {operationParams: ...}?)
- Before:
removeDirectory(path, operationParams?)
After:removeDirectory(path, {operationParams: ...}?)
- Before:
listDirectory(path, operationParams?)
After:listDirectory(path, {operationParams: ...}?)
- Before:
describePath(path, operationParams?)
After:describePath(path, {operationParams: ...}?)
- Before:
modifyPermissions(path, ..., ..., operationParams?)
After:modifyPermissions(path, ..., ..., {operationParams: ...}?)
- Before:
- TypedData fields have identity conversion to YDB column names instead of camelCase to snake_case. Use
@withTypeOptions({namesConversion:snakeToCamelCaseConversion})
for backward compatibility. - several types have changed their representation, namely
- struct value is present as object instead of array
- decimal value is present as string instead of bigint (it wasn't working for float values before)
- fix uuid and tz-date types conversion (it wasn't working before)
- signatures of most methods in TableSession are changed:
- executeQuery
Before:
(query, params, txControl, operationParams?, settings?, collectStats?)
After:(query, params, txControl, settings?)
- describeTable
Before:
(tablePath: string, operationParams?)|(tablePath, describeTableParams?)
After:(tablePath, settings?)
- commitTransaction
Before:
(txControl, operationParams?)
After:(txControl, settings?)
(andcollectStats
support) - createTable, alterTable, dropTable, beginTransaction, rollbackTransaction, prepareQuery,
bulkUpsert
Before:
(<required params>, operationParams?)
After:(<required params>, settings?)
- executeQuery
Before:
tablePath
inbulkUpsert
andreadTable
methods must be without database prefix- Primitive class is renamed to
TypedValues
- signatures of Driver, getCredentialsFromEnv and *AuthService classes are changed:
- Driver:
Before:
new Driver(entryPoint, dbName, authService, ...)
After:new Driver({connectionString: "...", authService: ..., ...})
ornew Driver({endpoint: "...", database: "...", authService: ..., ...})
- *AuthService -
database
andsslCredentials
are no longer needed in *AuthService constructors (ssl credentials option is now initialized in the driver if it's necessary) Before:const authService = new MetadataAuthService(dbName, sslCredentials);
After:const authService = new MetadataAuthService();
- getCredentialsFromEnv:
Before:
const authService = getCredentialsFromEnv(endpoint, database, logger);
After:const authService = getCredentialsFromEnv();
(logger is optional)
- Driver:
Before:
- old environment variables are no longer supported. Use YDB_ACCESS_TOKEN_CREDENTIALS instead of YDB_TOKEN, YDB_SERVICE_ACCOUNT_KEY_FILE_CREDENTIALS instead of SA_ID, SA_PRIVATE_KEY_FILE, SA_ACCESS_KEY_ID and SA_JSON_FILE.
- add more methods and fields to type helper classes (82f26ea)
- implement
Types
andTypedValues
helper classes (029db0e) - implement new type conversions and fix existing type conversions (0edbcdd)
- reorganize Driver and credentials to simplify SDK usage (6526378)
- replace grpc with @grpc/grpc-js (1bd8d06)
- don't use database in
tablePath
forbulkUpsert
andreadTable
methods (d416d59) - error message in test-utils (af39fd1)
- little fixes in examples (9c19b95)
- drop support of old environment variables (963819a)
- reorganize signature of SchemeClient's methods (734d57a)
- reorganize signatures of TableSession's methods (431f149)
- use identity names conversion in TypedData (275598a)
2.9.2 (2022-02-09)
- MetadataAuthService: remove ssl defaults for grpc scheme (40523f7)
2.9.1 (2022-01-21)
- package.json: move pino-pretty to dependencies (bf739d2)
2.9.0 (2021-12-29)
- describeTable: add new function signature (4e2106d)
- executeQuery: add collectStats parameter (bae40fa)
- examples: remove package-lock.json from examples repo (b80de4e)
2.8.1 (2021-12-14)
2.8.0 (2021-12-09)
- tableClient: implement bulkUpsert method (a4b63f6)
2.7.0 (2021-12-03)
- tableClient: implement streamReadTable call (1809215)
2.6.3 (2021-12-02)
- ssl: no more SSL connection attempts for grpc:// endpoints (7c517aa)
- YDB definitions bundle and generating bundle from protobuf files have been moved to ydb-sdk-proto dependency package
- All authentication helper classes are now exported from top-level and ready to be used in client code.
- Added authentication code snippets to /examples
- Support new unified environment variables: YDB_ACCESS_TOKEN_CREDENTIALS, YDB_ANONYMOUS_CREDENTIALS, YDB_METADATA_CREDENTIALS, YDB_SERVICE_ACCOUNT_KEY_FILE_CREDENTIALS
- Deprecate old credentials environment variables: YDB_TOKEN, SA_ID, SA_PRIVATE_KEY_FILE, SA_ACCESS_KEY_ID, SA_JSON_FILE
- Put back embedded certificate file, now certificates for YDB dedicated instances are concatenated with system certificates, which should allow to use embedded certificate for both dedicated and serverless databases.
- Provide
Primitive
helper class for easy creation of primitive values, see how it's used in in /scan-query example.
- Support
streamExecuteScanQuery()
method intableClient
- Provide means to alter default snake_case - camelCase field names conversion when moving data
between YDB and JS side, via
@withTypeOptions
decorator (with an example)
- Allow passing gRPC client options
under
clientOptions
key toDriver
constructor. This enables changing different gRPC settings intableClient
andschemaClient
calls.
- BREAKING CHANGE: StorageSettings class exported at toplevel has changed its structure:
the only public
storageKind
field has been renamed tomedia
, type is the same. This was done due to underlying protobufs change, where StorageSettings message has been completely changed and the old StorageSettings is now known as StoragePool (withmedia
field). - Added JSON_DOCUMENT YDB primitive support.
- ExecuteStreamQuery -> StreamExecuteScanQuery in protobufs
- and many other changes in protobufs.
- Add
alterTable
method to TableSession class - Put compiled protobufs to a separate 'ydb-sdk' namespace
- Pass 'x-ydb-sdk-build-info' header with library name/version to every GRPC request.