constr
✓ Automated Quality Gates, rev. 1, constr
constr~automated-quality-gates~1
Changes are expected to pass linting, tests, coverage collection, dependency audit, and SonarCloud analysis.
Rationale:
The package scripts, developer guide, and Sonar configuration define these checks.
Needs: dsn
doc/spec/design/constraints.md:87
In: 1
- dsn~verification-gate-definition~1 doc/spec/design/quality_requirements.md:63
✓ Browser and Node.js Runtime Support, rev. 1, constr
constr~browser-and-nodejs-runtime-support~1
The system must run in browser and Node.js runtimes for the core driver and pool features.
Rationale:
Application developers use the library in server-side Node.js services and browser-based applications. Supporting both runtimes lets them use one Exasol driver API across these application types.
Needs: dsn
doc/spec/design/constraints.md:19
In: 3
- dsn~decision-use-websocket-factory~1 doc/spec/design/architecture_decisions.md:18
- dsn~runtime-browser-websocket~1 doc/spec/design/runtime_view.md:152
- dsn~runtime-node-websocket~1 doc/spec/design/runtime_view.md:166
✓ Exasol WebSocket SQL Protocol, rev. 1, constr
constr~exasol-websocket-sql-protocol~1
The system communicates with Exasol by sending JSON SQL protocol commands over WebSocket.
Rationale:
Connection serializes command objects to JSON and receives SQLResponse payloads.
Needs: dsn
doc/spec/design/constraints.md:63
In: 1
- dsn~runtime-connect-basic-authentication~1 doc/spec/design/runtime_view.md:12
✓ GitHub and npm Distribution, rev. 1, constr
constr~github-and-npm-distribution~1
The system is developed on GitHub and released as an npm package.
Rationale:
The README links GitHub Actions and npm badges. The developer guide documents a manual release process that triggers a GitHub release workflow publishing to npm.
Needs: dsn
doc/spec/design/constraints.md:76
In: 1
- dsn~decision-use-github-release-workflow-for-npm-publishing~1 doc/spec/design/architecture_decisions.md:179
✓ Injectable WebSocket Implementation, rev. 1, constr
constr~injectable-websocket-implementation~1
The system must receive its WebSocket implementation from the application through a factory function.
Rationale:
Browser and Node.js runtimes provide different WebSocket implementations, and the public constructors accept a websocketFactory.
Needs: dsn
doc/spec/design/constraints.md:30
In: 3
- dsn~decision-use-websocket-factory~1 doc/spec/design/architecture_decisions.md:18
- dsn~runtime-browser-websocket~1 doc/spec/design/runtime_view.md:152
- dsn~runtime-node-websocket~1 doc/spec/design/runtime_view.md:166
✓ Node-only CSV Export, rev. 1, constr
constr~node-only-csv-export~1
CSV file export is limited to Node.js because it depends on local filesystem access and Node networking/TLS modules.
Rationale:
The implementation imports node:fs, node:path, node:net, and node:tls.
Needs: dsn
doc/spec/design/constraints.md:52
In: 6
- dsn~decision-select-csv-export-compression~1 doc/spec/design/architecture_decisions.md:134
- dsn~decision-stream-csv-through-export-tunnel~1 doc/spec/design/architecture_decisions.md:104
- dsn~runtime-csv-export-chunked-request-stream~1 doc/spec/design/runtime_view.md:361
- dsn~runtime-csv-export-compressed-file~1 doc/spec/design/runtime_view.md:336
- dsn~runtime-csv-export-destination-file~1 doc/spec/design/runtime_view.md:309
- dsn~runtime-csv-export-file-stream~1 doc/spec/design/runtime_view.md:322
✓ Node-only CSV Import, rev. 1, constr
constr~node-only-csv-import~1
CSV file import is limited to Node.js because it depends on local filesystem access and Node networking/TLS modules.
Rationale:
The implementation imports node:fs, node:path, node:net, and node:tls.
Needs: dsn
doc/spec/design/constraints.md:41
In: 4
- dsn~decision-stream-csv-through-import-tunnel~1 doc/spec/design/architecture_decisions.md:75
- dsn~runtime-csv-import-file-readability-check~1 doc/spec/design/runtime_view.md:244
- dsn~runtime-csv-import-file-stream~1 doc/spec/design/runtime_view.md:270
- dsn~runtime-csv-import-missing-target-table~1 doc/spec/design/runtime_view.md:257
✓ TypeScript Library Package, rev. 1, constr
constr~typescript-library-package~1
The system is implemented as a TypeScript npm package that publishes compiled artifacts from dist/ and type declarations through package.json.
Rationale:
package.json defines main, module, types, build scripts, and the npm package name @exasol/exasol-driver-ts.
Needs: dsn
doc/spec/design/constraints.md:8
In: 1
- dsn~decision-publish-cjs-and-esm~1 doc/spec/design/architecture_decisions.md:163
dsn
✓ Browser WebSocket Runtime, rev. 1, dsn
dsn~runtime-browser-websocket~1
- Given* a browser application
- When* the application creates a driver with a factory returning the browser
WebSocket - Then* the driver uses the supplied object through the
ExaWebsocketinterface
Needs: impl, itest
doc/spec/design/runtime_view.md:152
In: 2
- impl~runtime-browser-websocket-3868031195~0 src/lib/connection.ts:9
- itest~runtime-browser-websocket-2359466405~0 integration-test/testcases/basic.spec.ts:8
Out: 3
- constr~browser-and-nodejs-runtime-support~1 doc/spec/design/constraints.md:19
- constr~injectable-websocket-implementation~1 doc/spec/design/constraints.md:30
- scn~browser-connection-uses-native-websocket~1 doc/spec/system_requirements.md:499
✓ CSV Export Cancellation, rev. 1, dsn
dsn~runtime-csv-export-cancellation~1
- Given* an in-flight CSV export with an
AbortSignal - When* the signal is aborted
- Then* the driver destroys the destination write stream and both export-tunnel sockets, sends
abortQueryfor a still-pending server-side export without waiting for its response, removes the newly created destination file, and rejects the export promise with anAbortErrorusingE-EDJS-31
Needs: impl, itest, utest
doc/spec/design/runtime_view.md:374
In: 3
- impl~runtime-csv-export-cancellation-1269674408~0 src/lib/import/csv-file-export.ts:30
- itest~runtime-csv-export-cancellation-3383002205~0 integration-test/node/export.spec.ts:114
- utest~runtime-csv-export-cancellation-1461106964~0 src/lib/import/csv-file-export.spec.node.ts:73
Out: 1
- scn~csv-export-is-cancelled~1 doc/spec/system_requirements.md:707
✓ CSV Export Chunked Request Stream, rev. 1, dsn
dsn~runtime-csv-export-chunked-request-stream~1
- Given* a tunnel HTTP request with
Transfer-Encoding: chunked - When* the shared tunnel body reader receives the request
- Then* it decodes the chunks and forwards only their payload data to a destination
Needs: impl, itest, utest
doc/spec/design/runtime_view.md:361
In: 4
- impl~runtime-csv-export-chunked-request-stream-4151325165~0 src/lib/import/http-protocol.ts:89
- itest~runtime-csv-export-chunked-request-stream-1806326816~0 integration-test/node/http-protocol.spec.ts:118
- utest~runtime-csv-export-chunked-request-stream-2065247288~0 src/lib/import/chunked-http-body.spec.node.ts:4
- utest~runtime-csv-export-chunked-request-stream-2365462198~0 src/lib/import/http-protocol.spec.node.ts:69
Out: 2
- constr~node-only-csv-export~1 doc/spec/design/constraints.md:52
- scn~csv-export-streams-chunked-request-body~1 doc/spec/system_requirements.md:695
✓ CSV Export Compressed File, rev. 1, dsn
dsn~runtime-csv-export-compressed-file~1
- Given* a new local export destination ending in
.zip,.gz, or.bz2 - When*
exportToCsvFile()builds the Exasol export SQL - Then* the driver selects the matching canonical
001.zip,001.gz, or001.bz2remote file name case-insensitively and writes Exasol's compressed bytes unchanged to the local file
Needs: impl, itest, utest
doc/spec/design/runtime_view.md:336
In: 5
- impl~runtime-csv-export-compressed-file-2837891483~0 src/lib/import/csv-file-export.ts:29
- impl~runtime-csv-export-compressed-file-408400465~0 src/lib/import/export-sql-builder.ts:6
- itest~runtime-csv-export-compressed-file-331358629~0 integration-test/node/export.spec.ts:19
- itest~runtime-csv-export-compressed-file-3891599440~0 integration-test/node/export.spec.ts:98
- utest~runtime-csv-export-compressed-file-2150967243~0 src/lib/import/export-sql-builder.spec.node.ts:5
Out: 2
- constr~node-only-csv-export~1 doc/spec/design/constraints.md:52
- scn~csv-export-compressed-file-succeeds~1 doc/spec/system_requirements.md:659
✓ CSV Export Destination File, rev. 1, dsn
dsn~runtime-csv-export-destination-file~1
- Given* a Node.js driver and a local CSV export destination path
- When*
exportToCsvFile()is called - Then* the driver exclusively reserves the resolved path before creating an Exasol tunnel, rejects an existing file with
E-EDJS-30, and removes its newly-created file when the export fails
Needs: impl, itest, utest
doc/spec/design/runtime_view.md:309
In: 4
- impl~runtime-csv-export-destination-file-979787761~0 src/lib/import/csv-file-export.ts:27
- itest~runtime-csv-export-destination-file-3165540937~0 integration-test/node/export.spec.ts:16
- itest~runtime-csv-export-destination-file-4213697548~0 integration-test/node/export.spec.ts:106
- utest~runtime-csv-export-destination-file-1483480713~0 src/lib/import/csv-file-export.spec.node.ts:21
Out: 2
- constr~node-only-csv-export~1 doc/spec/design/constraints.md:52
- scn~csv-export-rejects-existing-destination~1 doc/spec/system_requirements.md:671
✓ CSV Export File Stream, rev. 1, dsn
dsn~runtime-csv-export-file-stream~1
- Given* a Node.js driver, an Exasol table or parenthesized
SELECTquery, and a new local CSV destination - When*
exportToCsvFile()is called - Then* the driver creates an Exasol tunnel, wraps it with TLS, executes
EXPORT <source> INTO CSV, streams Exasol's content-length-delimited or chunked HTTP request body into the file, destroys the tunnel sockets, and returns the export row count
Needs: impl, itest, utest
doc/spec/design/runtime_view.md:322
In: 5
- impl~runtime-csv-export-file-stream-923094657~0 src/lib/import/csv-file-export.ts:28
- itest~runtime-csv-export-file-stream-2291618759~0 integration-test/node/export.spec.ts:75
- itest~runtime-csv-export-file-stream-4164078873~0 integration-test/node/export.spec.ts:81
- itest~runtime-csv-export-file-stream-883986933~0 integration-test/node/export.spec.ts:17
- utest~runtime-csv-export-file-stream-1003536193~0 src/lib/import/csv-file-export.spec.node.ts:22
Out: 3
- constr~node-only-csv-export~1 doc/spec/design/constraints.md:52
- scn~csv-export-query-succeeds~1 doc/spec/system_requirements.md:647
- scn~csv-export-table-succeeds~1 doc/spec/system_requirements.md:635
✓ CSV Export Format Options, rev. 1, dsn
dsn~runtime-csv-export-format-options~1
- Given* CSV export format options
- When* the export SQL is built
- Then* the driver appends Exasol CSV clauses for configured separator, delimiter, row separator, encoding, NULL literal, and column names while escaping SQL string literals
Needs: impl, itest, utest
doc/spec/design/runtime_view.md:349
In: 4
- impl~runtime-csv-export-format-options-1139905334~0 src/lib/import/export-sql-builder.ts:5
- itest~runtime-csv-export-format-options-1959572491~0 integration-test/node/export.spec.ts:87
- itest~runtime-csv-export-format-options-82010618~0 integration-test/node/export.spec.ts:18
- utest~runtime-csv-export-format-options-4162490999~0 src/lib/import/export-sql-builder.spec.node.ts:4
Out: 1
- scn~csv-export-applies-format-options~1 doc/spec/system_requirements.md:683
✓ CSV Import Cancellation, rev. 1, dsn
dsn~runtime-csv-import-cancellation~1
- Given* an in-flight CSV import with an
AbortSignal - When* the signal is aborted
- Then* the driver destroys the file stream and both import-tunnel sockets, sends
abortQueryfor the server-side import without waiting for its response, and rejects the import promise with anAbortError
Needs: impl, itest, utest
doc/spec/design/runtime_view.md:295
In: 4
- impl~runtime-csv-import-cancellation-3535451710~0 src/lib/import/csv-file-import.ts:37
- itest~runtime-csv-import-cancellation-2861001917~0 integration-test/node/import.spec.ts:64
- utest~runtime-csv-import-cancellation-2000859339~0 src/lib/import/http-transport.spec.node.ts:43
- utest~runtime-csv-import-cancellation-3832424004~0 src/lib/import/csv-file-import.spec.node.ts:73
Out: 1
- scn~csv-import-is-cancelled~1 doc/spec/system_requirements.md:621
✓ CSV Import File Readability Check, rev. 1, dsn
dsn~runtime-csv-import-file-readability-check~1
- Given* a Node.js driver and a local CSV file path
- When*
importFromCsvFile()is called - Then* the driver checks file readability before creating an Exasol tunnel and rejects with error code
E-EDJS-14if the file is missing or unreadable
Needs: impl, utest
doc/spec/design/runtime_view.md:244
In: 3
- impl~runtime-csv-import-file-readability-check-4196736191~0 src/lib/import/csv-file-import.ts:34
- utest~runtime-csv-import-file-readability-check-1633277864~0 src/lib/import/csv-file-import.spec.node.ts:20
- utest~runtime-csv-import-file-readability-check-611246129~0 src/lib/sql-client.spec.node.ts:346
Out: 2
- constr~node-only-csv-import~1 doc/spec/design/constraints.md:41
- scn~csv-import-rejects-missing-file~1 doc/spec/system_requirements.md:597
✓ CSV Import File Stream, rev. 1, dsn
dsn~runtime-csv-import-file-stream~1
- Given* a Node.js driver, readable local CSV file, and target table
- When*
importFromCsvFile()is called - Then* the driver creates an Exasol tunnel, wraps it with TLS, executes
IMPORT INTO ... FROM CSV, waits for Exasol's HTTP request, streams the file using chunked HTTP response data, destroys the secure socket, and returns the import row count
Needs: impl, itest, utest
doc/spec/design/runtime_view.md:270
In: 9
- impl~runtime-csv-import-file-stream-1285989793~0 src/lib/import/http-protocol.ts:7
- impl~runtime-csv-import-file-stream-1563651679~0 src/lib/import/csv-file-import.ts:36
- impl~runtime-csv-import-file-stream-2387968671~0 src/lib/import/http-transport.ts:4
- impl~runtime-csv-import-file-stream-531404025~0 src/lib/import/tls-transport.ts:5
- itest~runtime-csv-import-file-stream-1441692425~0 integration-test/node/import.spec.ts:15
- itest~runtime-csv-import-file-stream-1965268677~0 integration-test/node/http-protocol.spec.ts:6
- utest~runtime-csv-import-file-stream-324661538~0 src/lib/import/http-transport.spec.node.ts:6
- utest~runtime-csv-import-file-stream-3384287420~0 src/lib/import/tls-transport.spec.node.ts:5
- utest~runtime-csv-import-file-stream-791148841~0 src/lib/import/http-protocol.spec.node.ts:4
Out: 2
- constr~node-only-csv-import~1 doc/spec/design/constraints.md:41
- scn~csv-import-succeeds~1 doc/spec/system_requirements.md:573
✓ CSV Import Format Options, rev. 1, dsn
dsn~runtime-csv-import-format-options~1
- Given* CSV format options
- When* the import SQL is built
- Then* the driver appends Exasol CSV clauses for configured separator, delimiter, row separator, encoding, skip count, trim mode, and NULL literal while escaping SQL string literals
Needs: impl, itest, utest
doc/spec/design/runtime_view.md:283
In: 3
- impl~runtime-csv-import-format-options-2895147665~0 src/lib/import/import-sql-builder.ts:4
- itest~runtime-csv-import-format-options-2881183408~0 integration-test/node/import.spec.ts:16
- utest~runtime-csv-import-format-options-1979285367~0 src/lib/import/import-sql-builder.spec.node.ts:4
Out: 1
- scn~csv-import-applies-format-options~1 doc/spec/system_requirements.md:609
✓ CSV Import Missing Target Table, rev. 1, dsn
dsn~runtime-csv-import-missing-target-table~1
- Given* a readable local CSV file and a target table name that does not exist
- When*
importFromCsvFile()executes the generatedIMPORT INTO ... FROM CSVSQL - Then* Exasol returns a SQL error and the driver rejects the import promise with that error
Needs: impl, itest
doc/spec/design/runtime_view.md:257
In: 2
- impl~runtime-csv-import-missing-target-table-3890302515~0 src/lib/import/csv-file-import.ts:35
- itest~runtime-csv-import-missing-target-table-642236322~0 integration-test/node/import.spec.ts:14
Out: 2
- constr~node-only-csv-import~1 doc/spec/design/constraints.md:41
- scn~csv-import-rejects-missing-target-table~1 doc/spec/system_requirements.md:585
✓ Command Execution, rev. 1, dsn
dsn~runtime-command-execution~1
- Given* an authenticated driver and SQL text
- When*
execute()is called - Then* the driver sends an
executecommand, follows the protocol fetch flow for result-set responses, validates that the final result is a row count, and returns that row count
Needs: impl, itest, utest
doc/spec/design/runtime_view.md:78
In: 3
- impl~runtime-command-execution-3157925983~0 src/lib/sql-client.ts:333
- itest~runtime-command-execution-803439283~0 integration-test/testcases/basic.spec.ts:125
- utest~runtime-command-execution-3333493598~0 src/lib/sql-client.spec.node.ts:235
Out: 1
- scn~execute-returns-row-count~1 doc/spec/system_requirements.md:399
✓ Connect with Basic Authentication, rev. 1, dsn
dsn~runtime-connect-basic-authentication~1
- Given* a driver configured with user, password, host, port, and WebSocket factory
- When*
connect()is called - Then* the driver builds the WebSocket URL, creates a
Connection, sends a login command, encrypts the password with the returned public key, sends login metadata and session attributes, enables compression if configured, and resolves the connection promise
Needs: impl, itest
doc/spec/design/runtime_view.md:12
In: 3
- impl~runtime-connect-basic-authentication-4170894924~0 src/lib/sql-client.ts:95
- itest~runtime-connect-basic-authentication-3803967751~0 integration-test/testcases/basic.spec.ts:7
- itest~runtime-connect-basic-authentication-4266807857~0 integration-test/testcases/compression.basic.spec.ts:8
Out: 4
- constr~exasol-websocket-sql-protocol~1 doc/spec/design/constraints.md:63
- scn~connect-with-basic-authentication~1 doc/spec/system_requirements.md:363
- scn~encrypted-connection-by-default~1 doc/spec/system_requirements.md:721
- scn~session-attributes-sent-during-login~1 doc/spec/system_requirements.md:735
✓ Driver Async Disposal, rev. 1, dsn
dsn~runtime-driver-async-disposal~1
- Given* a connected
ExasolDriver - When* TypeScript invokes
Symbol.asyncDispose - Then* the driver delegates to
close()and waits for all connections to close
Needs: impl, utest
doc/spec/design/runtime_view.md:39
In: 2
- impl~runtime-driver-async-disposal-2595884859~0 src/lib/sql-client.ts:200
- utest~runtime-driver-async-disposal-242776500~0 src/lib/sql-client.spec.node.ts:29
Out: 1
- scn~async-dispose-driver~1 doc/spec/system_requirements.md:475
✓ Fetch Size, rev. 1, dsn
dsn~runtime-query-fetch-size~1
- Given* a configured
fetchSizevalue and a query result with more rows available - When* the driver fetches an additional result-set page
- Then* the driver requests the configured number of bytes from Exasol
Needs: impl, utest
doc/spec/design/runtime_view.md:66
In: 2
- impl~runtime-query-fetch-size-2137897987~0 src/lib/fetch.ts:128
- utest~runtime-query-fetch-size-3526938659~0 src/lib/sql-client.spec.node.ts:131
Out: 1
- scn~configured-fetch-size-used-during-fetch~1 doc/spec/system_requirements.md:763
✓ In-Flight WebSocket Failure, rev. 1, dsn
dsn~runtime-inflight-websocket-failure~1
- Given* a
Connectionwith a command awaiting a WebSocket response - When* the WebSocket emits an error or close event
- Then*
Connectionmarks itself broken and inactive, rejects the pending command with the available event details, andExasolPooldestroys the broken borrowed driver rather than returning it to the pool
Needs: impl, itest, utest
doc/spec/design/runtime_view.md:138
In: 8
- impl~runtime-inflight-websocket-failure-1016846008~0 src/lib/connection.ts:11
- itest~runtime-inflight-websocket-failure-2501328451~0 integration-test/node/connection-lifecycle.spec.ts:8
- utest~runtime-inflight-websocket-failure-1016596448~0 src/lib/errors/errors.spec.ts:33
- utest~runtime-inflight-websocket-failure-3192927237~0 src/lib/connection.spec.ts:112
- utest~runtime-inflight-websocket-failure-3291807596~0 src/lib/errors/errors.spec.dom.ts:14
- utest~runtime-inflight-websocket-failure-3946152837~0 src/lib/connection.spec.ts:84
- utest~runtime-inflight-websocket-failure-3992050780~0 src/lib/connection.spec.ts:99
- utest~runtime-inflight-websocket-failure-4112488915~0 src/lib/sql-client.spec.node.ts:43
Out: 1
- scn~reject-command-on-unexpected-websocket-termination~1 doc/spec/system_requirements.md:451
✓ Node.js WebSocket Runtime, rev. 1, dsn
dsn~runtime-node-websocket~1
- Given* a Node.js application
- When* the application creates a driver with a factory returning a compatible WebSocket such as
ws - Then* the driver uses the supplied object through the same
ExaWebsocketinterface
Needs: impl, itest
doc/spec/design/runtime_view.md:166
In: 2
- impl~runtime-node-websocket-1471684312~0 src/lib/connection.ts:10
- itest~runtime-node-websocket-2553668966~0 integration-test/testcases/basic.spec.ts:9
Out: 3
- constr~browser-and-nodejs-runtime-support~1 doc/spec/design/constraints.md:19
- constr~injectable-websocket-implementation~1 doc/spec/design/constraints.md:30
- scn~node-connection-uses-injected-websocket~1 doc/spec/system_requirements.md:511
✓ Pool Async Disposal, rev. 1, dsn
dsn~runtime-pool-async-disposal~1
- Given* an
ExasolPool - When* TypeScript invokes
Symbol.asyncDispose - Then* the pool drains before clearing its pooled driver instances
Needs: impl, utest
doc/spec/design/runtime_view.md:230
In: 2
- impl~runtime-pool-async-disposal-4016640037~0 src/lib/sql-pool.ts:162
- utest~runtime-pool-async-disposal-681554497~0 src/lib/sql-pool.spec.ts:5
Out: 1
- scn~async-dispose-connection-pool~1 doc/spec/system_requirements.md:559
✓ Pool Borrow Validation, rev. 1, dsn
dsn~runtime-pool-borrow-validation~1
- Given* an idle driver in an
ExasolPool - When*
generic-poolborrows the driver for a query - Then* it validates that the driver has no broken connection, destroys an invalid driver, and creates a replacement before delegating the query
Needs: impl, itest
doc/spec/design/runtime_view.md:206
In: 2
- impl~runtime-pool-borrow-validation-753009827~0 src/lib/sql-pool.ts:34
- itest~runtime-pool-borrow-validation-1511128639~0 integration-test/node/connection-lifecycle.spec.ts:96
Out: 1
- scn~replace-idle-closed-pooled-driver~1 doc/spec/system_requirements.md:463
✓ Pool Capacity Management, rev. 1, dsn
dsn~runtime-pool-capacity-management~1
- Given* concurrent work submitted to an
ExasolPool - When* the pool needs additional driver instances
- Then* the underlying
generic-poolcreates and reuses drivers while honoring the configured minimum and maximum size limits
Needs: impl, itest
doc/spec/design/runtime_view.md:182
In: 2
- impl~runtime-pool-capacity-management-1948294452~0 src/lib/sql-pool.ts:15
- itest~runtime-pool-capacity-management-4069079944~0 integration-test/testcases/pool.basic.spec.ts:8
Out: 1
- scn~pool-enforces-configured-size-limits~1 doc/spec/system_requirements.md:535
✓ Pool Shutdown, rev. 1, dsn
dsn~runtime-pool-shutdown~1
- Given* an
ExasolPool - When*
drain()and thenclear()are called - Then* the underlying
generic-pooldrains pending work and destroys pooled drivers by closing them
Needs: impl, itest
doc/spec/design/runtime_view.md:218
In: 3
- impl~runtime-pool-shutdown-3742186949~0 src/lib/sql-pool.ts:157
- impl~runtime-pool-shutdown-762000504~0 src/lib/sql-pool.ts:150
- itest~runtime-pool-shutdown-4283500229~0 integration-test/testcases/pool.basic.spec.ts:10
Out: 1
- scn~pool-shutdown~1 doc/spec/system_requirements.md:547
✓ Pooled Query Execution, rev. 1, dsn
dsn~runtime-pooled-query-execution~1
- Given* an
ExasolPool - When* a query is submitted
- Then* the pool acquires a driver, delegates the query, releases the driver in a
finallyblock, and logs/rethrows errors
Needs: impl, itest
doc/spec/design/runtime_view.md:194
In: 2
- impl~runtime-pooled-query-execution-1618906052~0 src/lib/sql-pool.ts:128
- itest~runtime-pooled-query-execution-227348097~0 integration-test/testcases/pool.basic.spec.ts:9
Out: 1
- scn~pool-reuses-drivers-for-queries~1 doc/spec/system_requirements.md:523
✓ Prepared Statement Async Disposal, rev. 1, dsn
dsn~runtime-prepared-statement-async-disposal~1
- Given* a prepared
Statement - When* TypeScript invokes
Symbol.asyncDispose - Then* the statement delegates to
close(), closes the remote statement, and releases its connection
Needs: impl, utest
doc/spec/design/runtime_view.md:114
In: 2
- impl~runtime-prepared-statement-async-disposal-1141960773~0 src/lib/statement.ts:34
- utest~runtime-prepared-statement-async-disposal-3412096965~0 src/lib/statement.spec.ts:96
Out: 1
- scn~async-dispose-prepared-statement~1 doc/spec/system_requirements.md:487
✓ Prepared Statement Execution, rev. 1, dsn
dsn~runtime-prepared-statement-execution~1
- Given* an authenticated driver and prepared SQL text
- When*
prepare()andStatement.execute()are called - Then* the driver creates a prepared statement, validates that supplied positional values align with parameter columns, sends the positional values as column-oriented data to Exasol, and releases the connection when the statement is closed
Needs: impl
doc/spec/design/runtime_view.md:102
In: 2
- impl~runtime-prepared-statement-execution-1839467287~0 src/lib/statement.ts:8
- impl~runtime-prepared-statement-execution-3277476545~0 src/lib/sql-client.ts:415
Out: 1
- scn~prepared-statement-execution~1 doc/spec/system_requirements.md:427
✓ Publish CJS and ESM, rev. 1, dsn
dsn~decision-publish-cjs-and-esm~1
The system builds CommonJS and ES module outputs from the same TypeScript entry point.
Rationale:
This improves compatibility with different consuming application build systems.
Needs: impl
doc/spec/design/architecture_decisions.md:163
In: 1
- impl~decision-publish-cjs-and-esm-2657012521~0 rollup.config.mjs:6
Out: 1
- constr~typescript-library-package~1 doc/spec/design/constraints.md:8
✓ Publish Through GitHub Release Workflow, rev. 1, dsn
dsn~decision-use-github-release-workflow-for-npm-publishing~1
The system publishes the npm package from the GitHub release workflow after quality gates, package build, and package packing succeed.
Rationale:
Publishing from a dedicated release workflow keeps distribution tied to GitHub releases and uses npm publishing credentials only in the release job.
doc/spec/design/architecture_decisions.md:179
Out: 1
- constr~github-and-npm-distribution~1 doc/spec/design/constraints.md:76
✓ Query Cancellation, rev. 1, dsn
dsn~runtime-query-cancellation~1
- Given* an operation using a connection
- When* the application invokes the cancel callback or
driver.cancel() - Then* the connection sends
abortQuerywithout waiting for a result payload
Needs: impl, itest, utest
doc/spec/design/runtime_view.md:126
In: 5
- impl~runtime-query-cancellation-1288459654~0 src/lib/connection.ts:139
- impl~runtime-query-cancellation-1615812187~0 src/lib/sql-client.ts:169
- itest~runtime-query-cancellation-1757572639~0 integration-test/testcases/basic.spec.ts:146
- itest~runtime-query-cancellation-3769894350~0 integration-test/testcases/basic.spec.ts:109
- utest~runtime-query-cancellation-3274137835~0 src/lib/sql-client.spec.node.ts:385
Out: 1
- scn~cancel-active-work~1 doc/spec/system_requirements.md:439
✓ Query Execution, rev. 3, dsn
dsn~runtime-query-execution~3
- Given* an authenticated driver and SQL text
- When*
query()is called - Then* the driver sends an
executecommand, fetches additional result-set pages until the result is complete orresultSetMaxRowsis reached, closes remote result sets and consumes their acknowledgements before reusing the connection, validates that the result is a result set, and returnsQueryResult
Needs: impl, itest, utest
doc/spec/design/runtime_view.md:53
In: 5
- impl~runtime-query-execution-18274776~0 src/lib/fetch.ts:84
- impl~runtime-query-execution-3823768550~0 src/lib/sql-client.ts:263
- impl~runtime-query-execution-943053888~0 src/lib/fetch.ts:37
- itest~runtime-query-execution-1062917651~0 integration-test/testcases/basic.spec.ts:45
- utest~runtime-query-execution-1155267034~0 src/lib/sql-client.spec.node.ts:73
Out: 2
- scn~query-returns-rows~1 doc/spec/system_requirements.md:387
- scn~result-row-limit-applied-during-fetch~1 doc/spec/system_requirements.md:747
✓ Raw Response Execution, rev. 1, dsn
dsn~runtime-raw-response-execution~1
- Given* an authenticated driver
- When*
query()orexecute()is called withresponseTypeset toraw - Then* the driver returns the fetched
SQLResponse<SQLQueriesResponse>without converting it to aQueryResultor row count
Needs: impl, itest, utest
doc/spec/design/runtime_view.md:90
In: 5
- impl~runtime-raw-response-execution-925589351~0 src/lib/sql-client.ts:334
- impl~runtime-raw-response-execution-934538860~0 src/lib/sql-client.ts:264
- itest~runtime-raw-response-execution-862024696~0 integration-test/testcases/basic.spec.ts:127
- utest~runtime-raw-response-execution-1077682595~0 src/lib/sql-client.spec.node.ts:176
- utest~runtime-raw-response-execution-1177643891~0 src/lib/sql-client.spec.node.ts:278
Out: 1
- scn~raw-response-requested~1 doc/spec/system_requirements.md:411
✓ Reject Missing Credentials, rev. 1, dsn
dsn~runtime-reject-missing-credentials~1
- Given* a driver without basic-auth credentials and without token credentials
- When*
connect()is called - Then* the driver rejects with
ErrInvalidCredentialsbefore opening a WebSocket
Needs: impl, utest
doc/spec/design/runtime_view.md:27
In: 3
- impl~runtime-reject-missing-credentials-918952963~0 src/lib/sql-client.ts:96
- utest~runtime-reject-missing-credentials-171317548~0 src/lib/sql-client.spec.node.ts:17
- utest~runtime-reject-missing-credentials-1757681918~0 src/lib/sql-client.spec.dom.ts:4
Out: 1
- scn~reject-missing-credentials~1 doc/spec/system_requirements.md:375
✓ Stream CSV Through Export Tunnel, rev. 1, dsn
dsn~decision-stream-csv-through-export-tunnel~1
The system exports local CSV files by opening an Exasol export tunnel and streaming Exasol's content-length-delimited or chunked HTTP request body into a newly reserved file. Tags: csv-export, nodejs
Rationale:
Streaming supports larger files and matches Exasol's EXPORT ... INTO CSV AT ... FILE ... mechanism while avoiding an overwrite race at the local destination.
Needs: impl
doc/spec/design/architecture_decisions.md:104
In: 1
- impl~decision-stream-csv-through-export-tunnel-1614011297~0 src/lib/import/csv-file-export.ts:23
Out: 4
- constr~node-only-csv-export~1 doc/spec/design/constraints.md:52
- scn~csv-export-query-succeeds~1 doc/spec/system_requirements.md:647
- scn~csv-export-rejects-existing-destination~1 doc/spec/system_requirements.md:671
- scn~csv-export-table-succeeds~1 doc/spec/system_requirements.md:635
✓ Stream CSV Through Import Tunnel, rev. 1, dsn
dsn~decision-stream-csv-through-import-tunnel~1
The system imports local CSV files by opening an Exasol import tunnel and streaming the file as chunked HTTP response data. Tags: csv-import, nodejs
Rationale:
Streaming supports larger files and matches Exasol's IMPORT FROM CSV AT ... FILE ... mechanism.
Needs: impl
doc/spec/design/architecture_decisions.md:75
In: 1
- impl~decision-stream-csv-through-import-tunnel-2296957411~0 src/lib/import/csv-file-import.ts:23
Out: 2
- constr~node-only-csv-import~1 doc/spec/design/constraints.md:41
- scn~csv-import-succeeds~1 doc/spec/system_requirements.md:573
✓ Use WebSocket Factory, rev. 1, dsn
dsn~decision-use-websocket-factory~1
The system uses an injected WebSocket factory as the runtime abstraction for database connections.
Rationale:
This supports the documented browser and Node.js usage model and avoids forcing one runtime's WebSocket implementation onto all consumers.
doc/spec/design/architecture_decisions.md:18
Out: 2
- constr~browser-and-nodejs-runtime-support~1 doc/spec/design/constraints.md:19
- constr~injectable-websocket-implementation~1 doc/spec/design/constraints.md:30
✓ Use generic-pool, rev. 1, dsn
dsn~decision-use-generic-pool~1
The system uses generic-pool for connection pool lifecycle and capacity management.
Rationale:
Pooling is a general-purpose concern. Reusing an existing library keeps the Exasol-specific code focused on driver behavior.
Needs: impl
doc/spec/design/architecture_decisions.md:44
In: 1
- impl~decision-use-generic-pool-3849136868~0 src/lib/sql-pool.ts:9
Out: 4
- scn~pool-enforces-configured-size-limits~1 doc/spec/system_requirements.md:535
- scn~pool-reuses-drivers-for-queries~1 doc/spec/system_requirements.md:523
- scn~pool-shutdown~1 doc/spec/system_requirements.md:547
- scn~replace-idle-closed-pooled-driver~1 doc/spec/system_requirements.md:463
✓ Use the Destination Extension for Compression, rev. 1, dsn
dsn~decision-select-csv-export-compression~1
The CSV export maps destination file extensions .zip, .gz, and .bz2 case-insensitively to Exasol remote filenames 001.zip, 001.gz, and 001.bz2; all other destinations use 001.csv. Tags: csv-export, compression, nodejs
Rationale:
Exasol selects the export compression format from the FILE name. Reusing the local extension avoids expanding the public driver API and preserves uncompressed export behavior.
Needs: impl
doc/spec/design/architecture_decisions.md:134
In: 1
- impl~decision-select-csv-export-compression-2566593369~0 src/lib/import/export-sql-builder.ts:7
Out: 2
- constr~node-only-csv-export~1 doc/spec/design/constraints.md:52
- scn~csv-export-compressed-file-succeeds~1 doc/spec/system_requirements.md:659
✓ Verification Gate Definition, rev. 1, dsn
dsn~verification-gate-definition~1
The system defines quality gates through npm scripts, Jest project configuration, ESLint configuration, npm audit configuration, and SonarCloud project settings.
doc/spec/design/quality_requirements.md:63
Out: 1
- constr~automated-quality-gates~1 doc/spec/design/constraints.md:87
feat
✓ CSV File Export, rev. 1, feat
feat~csv-file-export~1
The driver lets Node.js applications export Exasol tables or query results to new local CSV files.
Needs: req
doc/spec/system_requirements.md:118
In: 4
- req~cancel-csv-file-export~1 doc/spec/system_requirements.md:317
- req~configure-csv-export-format~1 doc/spec/system_requirements.md:297
- req~export-compressed-local-csv-files~1 doc/spec/system_requirements.md:307
- req~export-local-csv-files~1 doc/spec/system_requirements.md:287
✓ CSV File Import, rev. 1, feat
feat~csv-file-import~1
The driver lets Node.js applications import local CSV files into Exasol tables.
Needs: req
doc/spec/system_requirements.md:111
In: 3
- req~cancel-csv-file-import~1 doc/spec/system_requirements.md:275
- req~configure-csv-format~1 doc/spec/system_requirements.md:265
- req~import-local-csv-files~1 doc/spec/system_requirements.md:255
✓ Connection Pooling, rev. 1, feat
feat~connection-pooling~1
The driver provides a pool API for applications that need multiple reusable database connections.
Needs: req
doc/spec/system_requirements.md:104
In: 2
- req~handle-unexpected-websocket-termination~2 doc/spec/system_requirements.md:196
- req~manage-connection-pool~1 doc/spec/system_requirements.md:243
✓ Explicit Resource Management, rev. 1, feat
feat~explicit-resource-management~1
The driver supports TypeScript explicit resource management for closeable driver resources.
Needs: req
doc/spec/system_requirements.md:90
In: 1
- req~automatically-dispose-driver-resources~1 doc/spec/system_requirements.md:207
✓ Runtime Portability, rev. 1, feat
feat~runtime-portability~1
The driver supports browser and Node.js applications without hard-wiring one concrete WebSocket implementation.
Needs: req
doc/spec/system_requirements.md:97
In: 2
- req~run-in-browser~1 doc/spec/system_requirements.md:219
- req~run-in-nodejs~1 doc/spec/system_requirements.md:229
✓ SQL Connectivity, rev. 1, feat
feat~sql-connectivity~1
The driver lets applications connect to Exasol, authenticate, execute SQL, read results, and close the connection.
Needs: req
doc/spec/system_requirements.md:83
In: 7
- req~cancel-running-work~1 doc/spec/system_requirements.md:186
- req~connect-to-exasol~1 doc/spec/system_requirements.md:136
- req~execute-sql-commands~1 doc/spec/system_requirements.md:156
- req~execute-sql-queries~1 doc/spec/system_requirements.md:146
- req~handle-unexpected-websocket-termination~2 doc/spec/system_requirements.md:196
- req~receive-raw-sql-responses~1 doc/spec/system_requirements.md:166
- req~use-prepared-statements~1 doc/spec/system_requirements.md:176
✓ Secure and Configurable Sessions, rev. 1, feat
feat~secure-configurable-sessions~1
The driver lets applications configure session behavior including TLS usage, authentication mode, autocommit, compression, schema, client metadata, fetch size, and result row limits.
Needs: req
doc/spec/system_requirements.md:125
In: 3
- req~configure-session-attributes~1 doc/spec/system_requirements.md:351
- req~do-not-allow-disabling-encryption~1 doc/spec/system_requirements.md:337
- req~encrypt-connections-by-default~1 doc/spec/system_requirements.md:327
impl
✓ decision-publish-cjs-and-esm-2657012521, rev. 0, impl
impl~decision-publish-cjs-and-esm-2657012521~0
rollup.config.mjs:6
Out: 1
- dsn~decision-publish-cjs-and-esm~1 doc/spec/design/architecture_decisions.md:163
✓ decision-select-csv-export-compression-2566593369, rev. 0, impl
impl~decision-select-csv-export-compression-2566593369~0
src/lib/import/export-sql-builder.ts:7
Out: 1
- dsn~decision-select-csv-export-compression~1 doc/spec/design/architecture_decisions.md:134
✓ decision-stream-csv-through-export-tunnel-1614011297, rev. 0, impl
impl~decision-stream-csv-through-export-tunnel-1614011297~0
src/lib/import/csv-file-export.ts:23
Out: 1
- dsn~decision-stream-csv-through-export-tunnel~1 doc/spec/design/architecture_decisions.md:104
✓ decision-stream-csv-through-import-tunnel-2296957411, rev. 0, impl
impl~decision-stream-csv-through-import-tunnel-2296957411~0
src/lib/import/csv-file-import.ts:23
Out: 1
- dsn~decision-stream-csv-through-import-tunnel~1 doc/spec/design/architecture_decisions.md:75
✓ decision-use-generic-pool-3849136868, rev. 0, impl
impl~decision-use-generic-pool-3849136868~0
src/lib/sql-pool.ts:9
Out: 1
- dsn~decision-use-generic-pool~1 doc/spec/design/architecture_decisions.md:44
✓ do-not-allow-disabling-encryption-251968673, rev. 0, impl
impl~do-not-allow-disabling-encryption-251968673~0
src/lib/sql-client.ts:115
Out: 1
- req~do-not-allow-disabling-encryption~1 doc/spec/system_requirements.md:337
✓ runtime-browser-websocket-3868031195, rev. 0, impl
impl~runtime-browser-websocket-3868031195~0
src/lib/connection.ts:9
Out: 1
- dsn~runtime-browser-websocket~1 doc/spec/design/runtime_view.md:152
✓ runtime-command-execution-3157925983, rev. 0, impl
impl~runtime-command-execution-3157925983~0
src/lib/sql-client.ts:333
Out: 1
- dsn~runtime-command-execution~1 doc/spec/design/runtime_view.md:78
✓ runtime-connect-basic-authentication-4170894924, rev. 0, impl
impl~runtime-connect-basic-authentication-4170894924~0
src/lib/sql-client.ts:95
Out: 1
- dsn~runtime-connect-basic-authentication~1 doc/spec/design/runtime_view.md:12
✓ runtime-csv-export-cancellation-1269674408, rev. 0, impl
impl~runtime-csv-export-cancellation-1269674408~0
src/lib/import/csv-file-export.ts:30
Out: 1
- dsn~runtime-csv-export-cancellation~1 doc/spec/design/runtime_view.md:374
✓ runtime-csv-export-chunked-request-stream-4151325165, rev. 0, impl
impl~runtime-csv-export-chunked-request-stream-4151325165~0
src/lib/import/http-protocol.ts:89
Out: 1
- dsn~runtime-csv-export-chunked-request-stream~1 doc/spec/design/runtime_view.md:361
✓ runtime-csv-export-compressed-file-2837891483, rev. 0, impl
impl~runtime-csv-export-compressed-file-2837891483~0
src/lib/import/csv-file-export.ts:29
Out: 1
- dsn~runtime-csv-export-compressed-file~1 doc/spec/design/runtime_view.md:336
✓ runtime-csv-export-compressed-file-408400465, rev. 0, impl
impl~runtime-csv-export-compressed-file-408400465~0
src/lib/import/export-sql-builder.ts:6
Out: 1
- dsn~runtime-csv-export-compressed-file~1 doc/spec/design/runtime_view.md:336
✓ runtime-csv-export-destination-file-979787761, rev. 0, impl
impl~runtime-csv-export-destination-file-979787761~0
src/lib/import/csv-file-export.ts:27
Out: 1
- dsn~runtime-csv-export-destination-file~1 doc/spec/design/runtime_view.md:309
✓ runtime-csv-export-file-stream-923094657, rev. 0, impl
impl~runtime-csv-export-file-stream-923094657~0
src/lib/import/csv-file-export.ts:28
Out: 1
- dsn~runtime-csv-export-file-stream~1 doc/spec/design/runtime_view.md:322
✓ runtime-csv-export-format-options-1139905334, rev. 0, impl
impl~runtime-csv-export-format-options-1139905334~0
src/lib/import/export-sql-builder.ts:5
Out: 1
- dsn~runtime-csv-export-format-options~1 doc/spec/design/runtime_view.md:349
✓ runtime-csv-import-cancellation-3535451710, rev. 0, impl
impl~runtime-csv-import-cancellation-3535451710~0
src/lib/import/csv-file-import.ts:37
Out: 1
- dsn~runtime-csv-import-cancellation~1 doc/spec/design/runtime_view.md:295
✓ runtime-csv-import-file-readability-check-4196736191, rev. 0, impl
impl~runtime-csv-import-file-readability-check-4196736191~0
src/lib/import/csv-file-import.ts:34
Out: 1
- dsn~runtime-csv-import-file-readability-check~1 doc/spec/design/runtime_view.md:244
✓ runtime-csv-import-file-stream-1285989793, rev. 0, impl
impl~runtime-csv-import-file-stream-1285989793~0
src/lib/import/http-protocol.ts:7
Out: 1
- dsn~runtime-csv-import-file-stream~1 doc/spec/design/runtime_view.md:270
✓ runtime-csv-import-file-stream-1563651679, rev. 0, impl
impl~runtime-csv-import-file-stream-1563651679~0
src/lib/import/csv-file-import.ts:36
Out: 1
- dsn~runtime-csv-import-file-stream~1 doc/spec/design/runtime_view.md:270
✓ runtime-csv-import-file-stream-2387968671, rev. 0, impl
impl~runtime-csv-import-file-stream-2387968671~0
src/lib/import/http-transport.ts:4
Out: 1
- dsn~runtime-csv-import-file-stream~1 doc/spec/design/runtime_view.md:270
✓ runtime-csv-import-file-stream-531404025, rev. 0, impl
impl~runtime-csv-import-file-stream-531404025~0
src/lib/import/tls-transport.ts:5
Out: 1
- dsn~runtime-csv-import-file-stream~1 doc/spec/design/runtime_view.md:270
✓ runtime-csv-import-format-options-2895147665, rev. 0, impl
impl~runtime-csv-import-format-options-2895147665~0
src/lib/import/import-sql-builder.ts:4
Out: 1
- dsn~runtime-csv-import-format-options~1 doc/spec/design/runtime_view.md:283
✓ runtime-csv-import-missing-target-table-3890302515, rev. 0, impl
impl~runtime-csv-import-missing-target-table-3890302515~0
src/lib/import/csv-file-import.ts:35
Out: 1
- dsn~runtime-csv-import-missing-target-table~1 doc/spec/design/runtime_view.md:257
✓ runtime-driver-async-disposal-2595884859, rev. 0, impl
impl~runtime-driver-async-disposal-2595884859~0
src/lib/sql-client.ts:200
Out: 1
- dsn~runtime-driver-async-disposal~1 doc/spec/design/runtime_view.md:39
✓ runtime-inflight-websocket-failure-1016846008, rev. 0, impl
impl~runtime-inflight-websocket-failure-1016846008~0
src/lib/connection.ts:11
Out: 1
- dsn~runtime-inflight-websocket-failure~1 doc/spec/design/runtime_view.md:138
✓ runtime-node-websocket-1471684312, rev. 0, impl
impl~runtime-node-websocket-1471684312~0
src/lib/connection.ts:10
Out: 1
- dsn~runtime-node-websocket~1 doc/spec/design/runtime_view.md:166
✓ runtime-pool-async-disposal-4016640037, rev. 0, impl
impl~runtime-pool-async-disposal-4016640037~0
src/lib/sql-pool.ts:162
Out: 1
- dsn~runtime-pool-async-disposal~1 doc/spec/design/runtime_view.md:230
✓ runtime-pool-borrow-validation-753009827, rev. 0, impl
impl~runtime-pool-borrow-validation-753009827~0
src/lib/sql-pool.ts:34
Out: 1
- dsn~runtime-pool-borrow-validation~1 doc/spec/design/runtime_view.md:206
✓ runtime-pool-capacity-management-1948294452, rev. 0, impl
impl~runtime-pool-capacity-management-1948294452~0
src/lib/sql-pool.ts:15
Out: 1
- dsn~runtime-pool-capacity-management~1 doc/spec/design/runtime_view.md:182
✓ runtime-pool-shutdown-3742186949, rev. 0, impl
impl~runtime-pool-shutdown-3742186949~0
src/lib/sql-pool.ts:157
Out: 1
- dsn~runtime-pool-shutdown~1 doc/spec/design/runtime_view.md:218
✓ runtime-pool-shutdown-762000504, rev. 0, impl
impl~runtime-pool-shutdown-762000504~0
src/lib/sql-pool.ts:150
Out: 1
- dsn~runtime-pool-shutdown~1 doc/spec/design/runtime_view.md:218
✓ runtime-pooled-query-execution-1618906052, rev. 0, impl
impl~runtime-pooled-query-execution-1618906052~0
src/lib/sql-pool.ts:128
Out: 1
- dsn~runtime-pooled-query-execution~1 doc/spec/design/runtime_view.md:194
✓ runtime-prepared-statement-async-disposal-1141960773, rev. 0, impl
impl~runtime-prepared-statement-async-disposal-1141960773~0
src/lib/statement.ts:34
Out: 1
- dsn~runtime-prepared-statement-async-disposal~1 doc/spec/design/runtime_view.md:114
✓ runtime-prepared-statement-execution-1839467287, rev. 0, impl
impl~runtime-prepared-statement-execution-1839467287~0
src/lib/statement.ts:8
Out: 1
- dsn~runtime-prepared-statement-execution~1 doc/spec/design/runtime_view.md:102
✓ runtime-prepared-statement-execution-3277476545, rev. 0, impl
impl~runtime-prepared-statement-execution-3277476545~0
src/lib/sql-client.ts:415
Out: 1
- dsn~runtime-prepared-statement-execution~1 doc/spec/design/runtime_view.md:102
✓ runtime-query-cancellation-1288459654, rev. 0, impl
impl~runtime-query-cancellation-1288459654~0
src/lib/connection.ts:139
Out: 1
- dsn~runtime-query-cancellation~1 doc/spec/design/runtime_view.md:126
✓ runtime-query-cancellation-1615812187, rev. 0, impl
impl~runtime-query-cancellation-1615812187~0
src/lib/sql-client.ts:169
Out: 1
- dsn~runtime-query-cancellation~1 doc/spec/design/runtime_view.md:126
✓ runtime-query-execution-18274776, rev. 0, impl
impl~runtime-query-execution-18274776~0
src/lib/fetch.ts:84
Out: 1
- dsn~runtime-query-execution~3 doc/spec/design/runtime_view.md:53
✓ runtime-query-execution-3823768550, rev. 0, impl
impl~runtime-query-execution-3823768550~0
src/lib/sql-client.ts:263
Out: 1
- dsn~runtime-query-execution~3 doc/spec/design/runtime_view.md:53
✓ runtime-query-execution-943053888, rev. 0, impl
impl~runtime-query-execution-943053888~0
src/lib/fetch.ts:37
Out: 1
- dsn~runtime-query-execution~3 doc/spec/design/runtime_view.md:53
✓ runtime-query-fetch-size-2137897987, rev. 0, impl
impl~runtime-query-fetch-size-2137897987~0
src/lib/fetch.ts:128
Out: 1
- dsn~runtime-query-fetch-size~1 doc/spec/design/runtime_view.md:66
✓ runtime-raw-response-execution-925589351, rev. 0, impl
impl~runtime-raw-response-execution-925589351~0
src/lib/sql-client.ts:334
Out: 1
- dsn~runtime-raw-response-execution~1 doc/spec/design/runtime_view.md:90
✓ runtime-raw-response-execution-934538860, rev. 0, impl
impl~runtime-raw-response-execution-934538860~0
src/lib/sql-client.ts:264
Out: 1
- dsn~runtime-raw-response-execution~1 doc/spec/design/runtime_view.md:90
✓ runtime-reject-missing-credentials-918952963, rev. 0, impl
impl~runtime-reject-missing-credentials-918952963~0
src/lib/sql-client.ts:96
Out: 1
- dsn~runtime-reject-missing-credentials~1 doc/spec/design/runtime_view.md:27
itest
✓ runtime-browser-websocket-2359466405, rev. 0, itest
itest~runtime-browser-websocket-2359466405~0
integration-test/testcases/basic.spec.ts:8
Out: 1
- dsn~runtime-browser-websocket~1 doc/spec/design/runtime_view.md:152
✓ runtime-command-execution-803439283, rev. 0, itest
itest~runtime-command-execution-803439283~0
integration-test/testcases/basic.spec.ts:125
Out: 1
- dsn~runtime-command-execution~1 doc/spec/design/runtime_view.md:78
✓ runtime-connect-basic-authentication-3803967751, rev. 0, itest
itest~runtime-connect-basic-authentication-3803967751~0
integration-test/testcases/basic.spec.ts:7
Out: 1
- dsn~runtime-connect-basic-authentication~1 doc/spec/design/runtime_view.md:12
✓ runtime-connect-basic-authentication-4266807857, rev. 0, itest
itest~runtime-connect-basic-authentication-4266807857~0
integration-test/testcases/compression.basic.spec.ts:8
Out: 1
- dsn~runtime-connect-basic-authentication~1 doc/spec/design/runtime_view.md:12
✓ runtime-csv-export-cancellation-3383002205, rev. 0, itest
itest~runtime-csv-export-cancellation-3383002205~0
integration-test/node/export.spec.ts:114
Out: 1
- dsn~runtime-csv-export-cancellation~1 doc/spec/design/runtime_view.md:374
✓ runtime-csv-export-chunked-request-stream-1806326816, rev. 0, itest
itest~runtime-csv-export-chunked-request-stream-1806326816~0
integration-test/node/http-protocol.spec.ts:118
Out: 1
- dsn~runtime-csv-export-chunked-request-stream~1 doc/spec/design/runtime_view.md:361
✓ runtime-csv-export-compressed-file-331358629, rev. 0, itest
itest~runtime-csv-export-compressed-file-331358629~0
integration-test/node/export.spec.ts:19
Out: 1
- dsn~runtime-csv-export-compressed-file~1 doc/spec/design/runtime_view.md:336
✓ runtime-csv-export-compressed-file-3891599440, rev. 0, itest
itest~runtime-csv-export-compressed-file-3891599440~0
integration-test/node/export.spec.ts:98
Out: 1
- dsn~runtime-csv-export-compressed-file~1 doc/spec/design/runtime_view.md:336
✓ runtime-csv-export-destination-file-3165540937, rev. 0, itest
itest~runtime-csv-export-destination-file-3165540937~0
integration-test/node/export.spec.ts:16
Out: 1
- dsn~runtime-csv-export-destination-file~1 doc/spec/design/runtime_view.md:309
✓ runtime-csv-export-destination-file-4213697548, rev. 0, itest
itest~runtime-csv-export-destination-file-4213697548~0
integration-test/node/export.spec.ts:106
Out: 1
- dsn~runtime-csv-export-destination-file~1 doc/spec/design/runtime_view.md:309
✓ runtime-csv-export-file-stream-2291618759, rev. 0, itest
itest~runtime-csv-export-file-stream-2291618759~0
integration-test/node/export.spec.ts:75
Out: 1
- dsn~runtime-csv-export-file-stream~1 doc/spec/design/runtime_view.md:322
✓ runtime-csv-export-file-stream-4164078873, rev. 0, itest
itest~runtime-csv-export-file-stream-4164078873~0
integration-test/node/export.spec.ts:81
Out: 1
- dsn~runtime-csv-export-file-stream~1 doc/spec/design/runtime_view.md:322
✓ runtime-csv-export-file-stream-883986933, rev. 0, itest
itest~runtime-csv-export-file-stream-883986933~0
integration-test/node/export.spec.ts:17
Out: 1
- dsn~runtime-csv-export-file-stream~1 doc/spec/design/runtime_view.md:322
✓ runtime-csv-export-format-options-1959572491, rev. 0, itest
itest~runtime-csv-export-format-options-1959572491~0
integration-test/node/export.spec.ts:87
Out: 1
- dsn~runtime-csv-export-format-options~1 doc/spec/design/runtime_view.md:349
✓ runtime-csv-export-format-options-82010618, rev. 0, itest
itest~runtime-csv-export-format-options-82010618~0
integration-test/node/export.spec.ts:18
Out: 1
- dsn~runtime-csv-export-format-options~1 doc/spec/design/runtime_view.md:349
✓ runtime-csv-import-cancellation-2861001917, rev. 0, itest
itest~runtime-csv-import-cancellation-2861001917~0
integration-test/node/import.spec.ts:64
Out: 1
- dsn~runtime-csv-import-cancellation~1 doc/spec/design/runtime_view.md:295
✓ runtime-csv-import-file-stream-1441692425, rev. 0, itest
itest~runtime-csv-import-file-stream-1441692425~0
integration-test/node/import.spec.ts:15
Out: 1
- dsn~runtime-csv-import-file-stream~1 doc/spec/design/runtime_view.md:270
✓ runtime-csv-import-file-stream-1965268677, rev. 0, itest
itest~runtime-csv-import-file-stream-1965268677~0
integration-test/node/http-protocol.spec.ts:6
Out: 1
- dsn~runtime-csv-import-file-stream~1 doc/spec/design/runtime_view.md:270
✓ runtime-csv-import-format-options-2881183408, rev. 0, itest
itest~runtime-csv-import-format-options-2881183408~0
integration-test/node/import.spec.ts:16
Out: 1
- dsn~runtime-csv-import-format-options~1 doc/spec/design/runtime_view.md:283
✓ runtime-csv-import-missing-target-table-642236322, rev. 0, itest
itest~runtime-csv-import-missing-target-table-642236322~0
integration-test/node/import.spec.ts:14
Out: 1
- dsn~runtime-csv-import-missing-target-table~1 doc/spec/design/runtime_view.md:257
✓ runtime-inflight-websocket-failure-2501328451, rev. 0, itest
itest~runtime-inflight-websocket-failure-2501328451~0
integration-test/node/connection-lifecycle.spec.ts:8
Out: 1
- dsn~runtime-inflight-websocket-failure~1 doc/spec/design/runtime_view.md:138
✓ runtime-node-websocket-2553668966, rev. 0, itest
itest~runtime-node-websocket-2553668966~0
integration-test/testcases/basic.spec.ts:9
Out: 1
- dsn~runtime-node-websocket~1 doc/spec/design/runtime_view.md:166
✓ runtime-pool-borrow-validation-1511128639, rev. 0, itest
itest~runtime-pool-borrow-validation-1511128639~0
integration-test/node/connection-lifecycle.spec.ts:96
Out: 1
- dsn~runtime-pool-borrow-validation~1 doc/spec/design/runtime_view.md:206
✓ runtime-pool-capacity-management-4069079944, rev. 0, itest
itest~runtime-pool-capacity-management-4069079944~0
integration-test/testcases/pool.basic.spec.ts:8
Out: 1
- dsn~runtime-pool-capacity-management~1 doc/spec/design/runtime_view.md:182
✓ runtime-pool-shutdown-4283500229, rev. 0, itest
itest~runtime-pool-shutdown-4283500229~0
integration-test/testcases/pool.basic.spec.ts:10
Out: 1
- dsn~runtime-pool-shutdown~1 doc/spec/design/runtime_view.md:218
✓ runtime-pooled-query-execution-227348097, rev. 0, itest
itest~runtime-pooled-query-execution-227348097~0
integration-test/testcases/pool.basic.spec.ts:9
Out: 1
- dsn~runtime-pooled-query-execution~1 doc/spec/design/runtime_view.md:194
✓ runtime-query-cancellation-1757572639, rev. 0, itest
itest~runtime-query-cancellation-1757572639~0
integration-test/testcases/basic.spec.ts:146
Out: 1
- dsn~runtime-query-cancellation~1 doc/spec/design/runtime_view.md:126
✓ runtime-query-cancellation-3769894350, rev. 0, itest
itest~runtime-query-cancellation-3769894350~0
integration-test/testcases/basic.spec.ts:109
Out: 1
- dsn~runtime-query-cancellation~1 doc/spec/design/runtime_view.md:126
✓ runtime-query-execution-1062917651, rev. 0, itest
itest~runtime-query-execution-1062917651~0
integration-test/testcases/basic.spec.ts:45
Out: 1
- dsn~runtime-query-execution~3 doc/spec/design/runtime_view.md:53
✓ runtime-raw-response-execution-862024696, rev. 0, itest
itest~runtime-raw-response-execution-862024696~0
integration-test/testcases/basic.spec.ts:127
Out: 1
- dsn~runtime-raw-response-execution~1 doc/spec/design/runtime_view.md:90
req
✓ Automatically Dispose Driver Resources, rev. 1, req
req~automatically-dispose-driver-resources~1
The application developer uses TypeScript await using declarations to automatically clean up drivers, prepared statements, and connection pools when leaving scope.
Needs: scn
doc/spec/system_requirements.md:207
In: 3
- scn~async-dispose-connection-pool~1 doc/spec/system_requirements.md:559
- scn~async-dispose-driver~1 doc/spec/system_requirements.md:475
- scn~async-dispose-prepared-statement~1 doc/spec/system_requirements.md:487
Out: 1
- feat~explicit-resource-management~1 doc/spec/system_requirements.md:90
✓ Cancel CSV File Export, rev. 1, req
req~cancel-csv-file-export~1
The Node.js application cancels an in-flight CSV file export through an AbortSignal, promptly releases the local file and export-tunnel resources, and removes the partial output file.
Needs: scn
doc/spec/system_requirements.md:317
In: 1
- scn~csv-export-is-cancelled~1 doc/spec/system_requirements.md:707
Out: 1
- feat~csv-file-export~1 doc/spec/system_requirements.md:118
✓ Cancel CSV File Import, rev. 1, req
req~cancel-csv-file-import~1
The Node.js application cancels an in-flight CSV file import through an AbortSignal and promptly releases the local file and import-tunnel resources.
Needs: scn
doc/spec/system_requirements.md:275
In: 1
- scn~csv-import-is-cancelled~1 doc/spec/system_requirements.md:621
Out: 1
- feat~csv-file-import~1 doc/spec/system_requirements.md:111
✓ Cancel Running Work, rev. 1, req
req~cancel-running-work~1
The application developer cancels active database work through the driver.
Needs: scn
doc/spec/system_requirements.md:186
In: 1
- scn~cancel-active-work~1 doc/spec/system_requirements.md:439
Out: 1
- feat~sql-connectivity~1 doc/spec/system_requirements.md:83
✓ Configure CSV Export Format, rev. 1, req
req~configure-csv-export-format~1
The Node.js application configures CSV export format options including column separator, column delimiter, row separator, encoding, NULL representation, and column names.
Needs: scn
doc/spec/system_requirements.md:297
In: 1
- scn~csv-export-applies-format-options~1 doc/spec/system_requirements.md:683
Out: 1
- feat~csv-file-export~1 doc/spec/system_requirements.md:118
✓ Configure CSV Format, rev. 1, req
req~configure-csv-format~1
The Node.js application developer configures CSV import format options including column separator, column delimiter, row separator, encoding, skipped rows, trimming, and NULL representation.
Needs: scn
doc/spec/system_requirements.md:265
In: 1
- scn~csv-import-applies-format-options~1 doc/spec/system_requirements.md:609
Out: 1
- feat~csv-file-import~1 doc/spec/system_requirements.md:111
✓ Configure Session Attributes, rev. 1, req
req~configure-session-attributes~1
The application developer configures session attributes including autocommit, schema, compression, fetch size, result row limit, client name, and client version.
Needs: scn
doc/spec/system_requirements.md:351
In: 3
- scn~configured-fetch-size-used-during-fetch~1 doc/spec/system_requirements.md:763
- scn~result-row-limit-applied-during-fetch~1 doc/spec/system_requirements.md:747
- scn~session-attributes-sent-during-login~1 doc/spec/system_requirements.md:735
Out: 1
- feat~secure-configurable-sessions~1 doc/spec/system_requirements.md:125
✓ Connect to Exasol, rev. 1, req
req~connect-to-exasol~1
The application developer creates a driver with database connection settings, authenticates with credentials or tokens, and establishes a database session.
Needs: scn
doc/spec/system_requirements.md:136
In: 2
- scn~connect-with-basic-authentication~1 doc/spec/system_requirements.md:363
- scn~reject-missing-credentials~1 doc/spec/system_requirements.md:375
Out: 1
- feat~sql-connectivity~1 doc/spec/system_requirements.md:83
✓ Don't Allow Disabling Encryption, rev. 1, req
req~do-not-allow-disabling-encryption~1
Disabling encryption is not possible.
Rationale:
All supported Exasol versions require encrypted connections. Unecrypted connections are rejected.
Needs: impl
doc/spec/system_requirements.md:337
In: 1
- impl~do-not-allow-disabling-encryption-251968673~0 src/lib/sql-client.ts:115
Out: 1
- feat~secure-configurable-sessions~1 doc/spec/system_requirements.md:125
✓ Encrypt Connections by Default, rev. 1, req
req~encrypt-connections-by-default~1
The application developer uses encrypted WebSocket connections by default.
Needs: scn
doc/spec/system_requirements.md:327
In: 1
- scn~encrypted-connection-by-default~1 doc/spec/system_requirements.md:721
Out: 1
- feat~secure-configurable-sessions~1 doc/spec/system_requirements.md:125
✓ Execute SQL Commands, rev. 1, req
req~execute-sql-commands~1
The application developer executes SQL commands and receives the affected row count.
Needs: scn
doc/spec/system_requirements.md:156
In: 1
- scn~execute-returns-row-count~1 doc/spec/system_requirements.md:399
Out: 1
- feat~sql-connectivity~1 doc/spec/system_requirements.md:83
✓ Execute SQL Queries, rev. 1, req
req~execute-sql-queries~1
The application developer executes a SQL query and retrieves result metadata and rows.
Needs: scn
doc/spec/system_requirements.md:146
In: 1
- scn~query-returns-rows~1 doc/spec/system_requirements.md:387
Out: 1
- feat~sql-connectivity~1 doc/spec/system_requirements.md:83
✓ Export Compressed Local CSV Files, rev. 1, req
req~export-compressed-local-csv-files~1
The Node.js application exports an Exasol table or query result to a new local ZIP, GZIP, or BZIP2-compressed CSV file.
Needs: scn
doc/spec/system_requirements.md:307
In: 1
- scn~csv-export-compressed-file-succeeds~1 doc/spec/system_requirements.md:659
Out: 1
- feat~csv-file-export~1 doc/spec/system_requirements.md:118
✓ Export Local CSV Files, rev. 1, req
req~export-local-csv-files~1
The Node.js application exports an Exasol table or query result to a new local CSV file and receives the exported row count.
Needs: scn
doc/spec/system_requirements.md:287
In: 4
- scn~csv-export-query-succeeds~1 doc/spec/system_requirements.md:647
- scn~csv-export-rejects-existing-destination~1 doc/spec/system_requirements.md:671
- scn~csv-export-streams-chunked-request-body~1 doc/spec/system_requirements.md:695
- scn~csv-export-table-succeeds~1 doc/spec/system_requirements.md:635
Out: 1
- feat~csv-file-export~1 doc/spec/system_requirements.md:118
✓ Handle Unexpected WebSocket Termination, rev. 2, req
req~handle-unexpected-websocket-termination~2
The application receives a rejected command promise when the WebSocket closes or errors during database work. A connection pool discards that broken driver and validates idle drivers before handing them out, replacing a driver whose WebSocket closed while idle.
Needs: scn
doc/spec/system_requirements.md:196
In: 2
- scn~reject-command-on-unexpected-websocket-termination~1 doc/spec/system_requirements.md:451
- scn~replace-idle-closed-pooled-driver~1 doc/spec/system_requirements.md:463
Out: 2
- feat~connection-pooling~1 doc/spec/system_requirements.md:104
- feat~sql-connectivity~1 doc/spec/system_requirements.md:83
✓ Import Local CSV Files, rev. 1, req
req~import-local-csv-files~1
The Node.js application developer imports a readable local CSV file into a target Exasol table and receives the imported row count.
Needs: scn
doc/spec/system_requirements.md:255
In: 3
- scn~csv-import-rejects-missing-file~1 doc/spec/system_requirements.md:597
- scn~csv-import-rejects-missing-target-table~1 doc/spec/system_requirements.md:585
- scn~csv-import-succeeds~1 doc/spec/system_requirements.md:573
Out: 1
- feat~csv-file-import~1 doc/spec/system_requirements.md:111
✓ Manage a Connection Pool, rev. 1, req
req~manage-connection-pool~1
The application developer creates a connection pool with configurable minimum and maximum sizes, executes queries through it, drains it, and clears it.
Needs: scn
doc/spec/system_requirements.md:243
In: 3
- scn~pool-enforces-configured-size-limits~1 doc/spec/system_requirements.md:535
- scn~pool-reuses-drivers-for-queries~1 doc/spec/system_requirements.md:523
- scn~pool-shutdown~1 doc/spec/system_requirements.md:547
Out: 1
- feat~connection-pooling~1 doc/spec/system_requirements.md:104
✓ Receive Raw SQL Responses, rev. 1, req
req~receive-raw-sql-responses~1
The application developer requests raw Exasol protocol responses for queries and commands when the normalized return type is not sufficient, for example to inspect protocol fields such as status, attributes, or responseData.
Needs: scn
doc/spec/system_requirements.md:166
In: 1
- scn~raw-response-requested~1 doc/spec/system_requirements.md:411
Out: 1
- feat~sql-connectivity~1 doc/spec/system_requirements.md:83
✓ Run in Browser, rev. 1, req
req~run-in-browser~1
The application developer uses the package in browser runtimes by supplying a WebSocket factory that returns the runtime-provided WebSocket implementation.
Needs: scn
doc/spec/system_requirements.md:219
In: 1
- scn~browser-connection-uses-native-websocket~1 doc/spec/system_requirements.md:499
Out: 1
- feat~runtime-portability~1 doc/spec/system_requirements.md:97
✓ Run in Node.js, rev. 1, req
req~run-in-nodejs~1
The application developer uses the package in Node.js runtimes by supplying a WebSocket factory that returns a compatible Node.js WebSocket implementation.
Rationale:
This keeps server-side consumers independent from the browser runtime while preserving the same package contract.
Needs: scn
doc/spec/system_requirements.md:229
In: 1
- scn~node-connection-uses-injected-websocket~1 doc/spec/system_requirements.md:511
Out: 1
- feat~runtime-portability~1 doc/spec/system_requirements.md:97
✓ Use Prepared Statements, rev. 1, req
req~use-prepared-statements~1
The application developer creates prepared statements, executes them with positional values, and closes them.
Needs: scn
doc/spec/system_requirements.md:176
In: 1
- scn~prepared-statement-execution~1 doc/spec/system_requirements.md:427
Out: 1
- feat~sql-connectivity~1 doc/spec/system_requirements.md:83
scn
✓ Automatically Dispose a Connection Pool, rev. 1, scn
scn~async-dispose-connection-pool~1
- Given* an
ExasolPoolin anawait usingdeclaration - When* execution leaves the declaration's scope
- Then* the pool drains and clears its driver instances
Needs: dsn, uman
doc/spec/system_requirements.md:559
In: 2
- dsn~runtime-pool-async-disposal~1 doc/spec/design/runtime_view.md:230
- uman~async-dispose-connection-pool-3014535674~0 doc/user_guide/user_guide.md:67
Out: 1
- req~automatically-dispose-driver-resources~1 doc/spec/system_requirements.md:207
✓ Automatically Dispose a Driver, rev. 1, scn
scn~async-dispose-driver~1
- Given* a connected
ExasolDriverin anawait usingdeclaration - When* execution leaves the declaration's scope
- Then* the driver closes its database connections
Needs: dsn, uman
doc/spec/system_requirements.md:475
In: 2
- dsn~runtime-driver-async-disposal~1 doc/spec/design/runtime_view.md:39
- uman~async-dispose-driver-2334683095~0 doc/user_guide/user_guide.md:46
Out: 1
- req~automatically-dispose-driver-resources~1 doc/spec/system_requirements.md:207
✓ Automatically Dispose a Prepared Statement, rev. 1, scn
scn~async-dispose-prepared-statement~1
- Given* a prepared statement in an
await usingdeclaration - When* execution leaves the declaration's scope
- Then* the driver closes the prepared statement and releases its connection
Needs: dsn, uman
doc/spec/system_requirements.md:487
In: 2
- dsn~runtime-prepared-statement-async-disposal~1 doc/spec/design/runtime_view.md:114
- uman~async-dispose-prepared-statement-2102051960~0 doc/user_guide/user_guide.md:49
Out: 1
- req~automatically-dispose-driver-resources~1 doc/spec/system_requirements.md:207
✓ Browser Connection Uses Native WebSocket, rev. 1, scn
scn~browser-connection-uses-native-websocket~1
- Given* a browser application with native
WebSocket - When* the application creates a driver with a factory returning
new WebSocket(url) - Then* the driver can use the browser WebSocket implementation without a Node.js WebSocket dependency
Needs: dsn
doc/spec/system_requirements.md:499
In: 1
- dsn~runtime-browser-websocket~1 doc/spec/design/runtime_view.md:152
Out: 1
- req~run-in-browser~1 doc/spec/system_requirements.md:219
✓ CSV Export Applies Format Options, rev. 1, scn
scn~csv-export-applies-format-options~1
- Given* a Node.js application and CSV export format options for
columnSeparator,columnDelimiter,rowSeparator,encoding,null, orwithColumnNames - When* the application calls
exportToCsvFile()with those options - Then* the driver adds the corresponding Exasol
EXPORT INTO CSVformat clauses
Needs: dsn, uman
doc/spec/system_requirements.md:683
In: 2
- dsn~runtime-csv-export-format-options~1 doc/spec/design/runtime_view.md:349
- uman~csv-export-applies-format-options-2847744408~0 doc/user_guide/user_guide.md:321
Out: 1
- req~configure-csv-export-format~1 doc/spec/system_requirements.md:297
✓ CSV Export Compressed File Succeeds, rev. 1, scn
scn~csv-export-compressed-file-succeeds~1
- Given* a Node.js application, an authenticated driver, an Exasol table or parenthesized
SELECTquery, and a new destination path ending in.zip,.gz, or.bz2 - When* the application calls
exportToCsvFile() - Then* the driver requests the matching compressed export file from Exasol and writes its compressed bytes unchanged to the local destination
Needs: dsn, uman
doc/spec/system_requirements.md:659
In: 3
- dsn~decision-select-csv-export-compression~1 doc/spec/design/architecture_decisions.md:134
- dsn~runtime-csv-export-compressed-file~1 doc/spec/design/runtime_view.md:336
- uman~csv-export-compressed-file-succeeds-1159405658~0 doc/user_guide/user_guide.md:356
Out: 1
- req~export-compressed-local-csv-files~1 doc/spec/system_requirements.md:307
✓ CSV Export Is Cancelled, rev. 1, scn
scn~csv-export-is-cancelled~1
- Given* a Node.js application exporting a local CSV file with an
AbortSignal - When* the application aborts the signal while the export is in flight
- Then* the driver stops receiving export data, closes the export tunnel, aborts the server-side export query, removes the partial local file, and rejects promptly with an
AbortErrorusingE-EDJS-31
Needs: dsn, uman
doc/spec/system_requirements.md:707
In: 2
- dsn~runtime-csv-export-cancellation~1 doc/spec/design/runtime_view.md:374
- uman~csv-export-is-cancelled-3616030351~0 doc/user_guide/user_guide.md:363
Out: 1
- req~cancel-csv-file-export~1 doc/spec/system_requirements.md:317
✓ CSV Export Query Succeeds, rev. 1, scn
scn~csv-export-query-succeeds~1
- Given* a Node.js application, an authenticated driver, a parenthesized Exasol
SELECTquery, and a destination path that does not exist - When* the application calls
exportToCsvFile() - Then* the driver streams the query result as CSV data through Exasol's export tunnel into the new local file and resolves with the exported row count
Needs: dsn, uman
doc/spec/system_requirements.md:647
In: 3
- dsn~decision-stream-csv-through-export-tunnel~1 doc/spec/design/architecture_decisions.md:104
- dsn~runtime-csv-export-file-stream~1 doc/spec/design/runtime_view.md:322
- uman~csv-export-query-succeeds-1920401168~0 doc/user_guide/user_guide.md:311
Out: 1
- req~export-local-csv-files~1 doc/spec/system_requirements.md:287
✓ CSV Export Rejects Existing Destination, rev. 1, scn
scn~csv-export-rejects-existing-destination~1
- Given* a Node.js application, an authenticated driver, and a destination path that already exists
- When* the application calls
exportToCsvFile() - Then* the driver rejects before opening the export tunnel with error code
E-EDJS-30and leaves the existing file unchanged
Needs: dsn, uman
doc/spec/system_requirements.md:671
In: 3
- dsn~decision-stream-csv-through-export-tunnel~1 doc/spec/design/architecture_decisions.md:104
- dsn~runtime-csv-export-destination-file~1 doc/spec/design/runtime_view.md:309
- uman~csv-export-rejects-existing-destination-3737216845~0 doc/user_guide/user_guide.md:332
Out: 1
- req~export-local-csv-files~1 doc/spec/system_requirements.md:287
✓ CSV Export Streams Chunked Request Bodies, rev. 1, scn
scn~csv-export-streams-chunked-request-body~1
- Given* an in-flight CSV export whose tunnel sends an HTTP request with
Transfer-Encoding: chunked - When* the driver receives the request body
- Then* the driver decodes the HTTP chunks and writes their payload data to the destination file
Needs: dsn
doc/spec/system_requirements.md:695
In: 1
- dsn~runtime-csv-export-chunked-request-stream~1 doc/spec/design/runtime_view.md:361
Out: 1
- req~export-local-csv-files~1 doc/spec/system_requirements.md:287
✓ CSV Export Table Succeeds, rev. 1, scn
scn~csv-export-table-succeeds~1
- Given* a Node.js application, an authenticated driver, an Exasol table, and a destination path that does not exist
- When* the application calls
exportToCsvFile() - Then* the driver streams the exported CSV data through Exasol's export tunnel into the new local file and resolves with the exported row count
Needs: dsn, uman
doc/spec/system_requirements.md:635
In: 3
- dsn~decision-stream-csv-through-export-tunnel~1 doc/spec/design/architecture_decisions.md:104
- dsn~runtime-csv-export-file-stream~1 doc/spec/design/runtime_view.md:322
- uman~csv-export-table-succeeds-766900980~0 doc/user_guide/user_guide.md:304
Out: 1
- req~export-local-csv-files~1 doc/spec/system_requirements.md:287
✓ CSV Import Applies Format Options, rev. 1, scn
scn~csv-import-applies-format-options~1
- Given* a Node.js application and CSV format options for
columnSeparator,columnDelimiter,rowSeparator,encoding,skip,trim, ornull - When* the application calls
importFromCsvFile()with those options - Then* the driver adds the corresponding Exasol
IMPORT FROM CSVformat clauses
Needs: dsn
doc/spec/system_requirements.md:609
In: 1
- dsn~runtime-csv-import-format-options~1 doc/spec/design/runtime_view.md:283
Out: 1
- req~configure-csv-format~1 doc/spec/system_requirements.md:265
✓ CSV Import Is Cancelled, rev. 1, scn
scn~csv-import-is-cancelled~1
- Given* a Node.js application importing a local CSV file with an
AbortSignal - When* the application aborts the signal while the import is in flight
- Then* the driver stops streaming the file, closes the import tunnel, aborts the server-side import query, and rejects promptly with an
AbortError
Needs: dsn, uman
doc/spec/system_requirements.md:621
In: 2
- dsn~runtime-csv-import-cancellation~1 doc/spec/design/runtime_view.md:295
- uman~csv-import-is-cancelled-2009943969~0 doc/user_guide/user_guide.md:269
Out: 1
- req~cancel-csv-file-import~1 doc/spec/system_requirements.md:275
✓ CSV Import Rejects Missing File, rev. 1, scn
scn~csv-import-rejects-missing-file~1
- Given* a Node.js application and an authenticated driver
- When* the application calls
importFromCsvFile()with a missing or unreadable file path - Then* the driver rejects before opening the import tunnel and reports a file-not-found error
Needs: dsn
doc/spec/system_requirements.md:597
In: 1
- dsn~runtime-csv-import-file-readability-check~1 doc/spec/design/runtime_view.md:244
Out: 1
- req~import-local-csv-files~1 doc/spec/system_requirements.md:255
✓ CSV Import Rejects Missing Target Table, rev. 1, scn
scn~csv-import-rejects-missing-target-table~1
- Given* a Node.js application, an authenticated driver, a readable local CSV file, and a target table name that does not exist
- When* the application calls
importFromCsvFile() - Then* the driver rejects with the SQL error returned by Exasol for the missing table
Needs: dsn
doc/spec/system_requirements.md:585
In: 1
- dsn~runtime-csv-import-missing-target-table~1 doc/spec/design/runtime_view.md:257
Out: 1
- req~import-local-csv-files~1 doc/spec/system_requirements.md:255
✓ CSV Import Succeeds, rev. 1, scn
scn~csv-import-succeeds~1
- Given* a Node.js application, an authenticated driver, a readable local CSV file, and an existing target table
- When* the application calls
importFromCsvFile() - Then* the driver streams the file through Exasol's import tunnel and resolves with the imported row count
Needs: dsn
doc/spec/system_requirements.md:573
In: 2
- dsn~decision-stream-csv-through-import-tunnel~1 doc/spec/design/architecture_decisions.md:75
- dsn~runtime-csv-import-file-stream~1 doc/spec/design/runtime_view.md:270
Out: 1
- req~import-local-csv-files~1 doc/spec/system_requirements.md:255
✓ Cancel Active Work, rev. 1, scn
scn~cancel-active-work~1
- Given* an active database operation
- When* the application calls the provided cancel function or
driver.cancel() - Then* the driver sends an Exasol abort query command
Needs: dsn
doc/spec/system_requirements.md:439
In: 1
- dsn~runtime-query-cancellation~1 doc/spec/design/runtime_view.md:126
Out: 1
- req~cancel-running-work~1 doc/spec/system_requirements.md:186
✓ Configured Fetch Size Used During Fetch, rev. 1, scn
scn~configured-fetch-size-used-during-fetch~1
- Given* a configured
fetchSizevalue and a query result with more rows available - When* the driver fetches additional result data
- Then* each fetch command requests the configured number of bytes from Exasol
Needs: dsn, uman
doc/spec/system_requirements.md:763
In: 2
- dsn~runtime-query-fetch-size~1 doc/spec/design/runtime_view.md:66
- uman~configured-fetch-size-used-during-fetch-997284659~0 doc/user_guide/user_guide.md:392
Out: 1
- req~configure-session-attributes~1 doc/spec/system_requirements.md:351
✓ Connect With Basic Authentication, rev. 1, scn
scn~connect-with-basic-authentication~1
- Given* a configured driver with host, port, user, password, encryption setting, and WebSocket factory
- When* the application calls
connect() - Then* the driver opens a WebSocket connection, performs the Exasol login flow, and resolves after the session is authenticated
Needs: dsn
doc/spec/system_requirements.md:363
In: 1
- dsn~runtime-connect-basic-authentication~1 doc/spec/design/runtime_view.md:12
Out: 1
- req~connect-to-exasol~1 doc/spec/system_requirements.md:136
✓ Encrypted Connection by Default, rev. 1, scn
scn~encrypted-connection-by-default~1
- Given* a driver configuration that does not override encryption
- When* the application connects
- Then* the driver builds a secure WebSocket URL by default
Needs: dsn
doc/spec/system_requirements.md:721
In: 1
- dsn~runtime-connect-basic-authentication~1 doc/spec/design/runtime_view.md:12
Out: 1
- req~encrypt-connections-by-default~1 doc/spec/system_requirements.md:327
✓ Execute Returns Row Count, rev. 1, scn
scn~execute-returns-row-count~1
- Given* an authenticated driver and a SQL statement that returns a row count
- When* the application calls
execute() - Then* the driver returns the row count
Needs: dsn
doc/spec/system_requirements.md:399
In: 1
- dsn~runtime-command-execution~1 doc/spec/design/runtime_view.md:78
Out: 1
- req~execute-sql-commands~1 doc/spec/system_requirements.md:156
✓ Node Connection Uses Injected WebSocket, rev. 1, scn
scn~node-connection-uses-injected-websocket~1
- Given* a Node.js application with a WebSocket implementation such as
ws - When* the application creates a driver with a factory returning a compatible WebSocket
- Then* the driver can connect with the supplied Node.js WebSocket implementation
Needs: dsn
doc/spec/system_requirements.md:511
In: 1
- dsn~runtime-node-websocket~1 doc/spec/design/runtime_view.md:166
Out: 1
- req~run-in-nodejs~1 doc/spec/system_requirements.md:229
✓ Pool Enforces Configured Size Limits, rev. 1, scn
scn~pool-enforces-configured-size-limits~1
- Given* a configured
ExasolPoolwith minimum and maximum pool sizes - When* the application submits more concurrent work than one driver can serve
- Then* the pool creates and reuses driver instances without exceeding the configured pool size limits
Needs: dsn
doc/spec/system_requirements.md:535
In: 2
- dsn~decision-use-generic-pool~1 doc/spec/design/architecture_decisions.md:44
- dsn~runtime-pool-capacity-management~1 doc/spec/design/runtime_view.md:182
Out: 1
- req~manage-connection-pool~1 doc/spec/system_requirements.md:243
✓ Pool Reuses Drivers for Queries, rev. 1, scn
scn~pool-reuses-drivers-for-queries~1
- Given* a configured
ExasolPool - When* the application submits multiple queries
- Then* the pool acquires driver instances, runs the queries, and releases drivers after each operation
Needs: dsn
doc/spec/system_requirements.md:523
In: 2
- dsn~decision-use-generic-pool~1 doc/spec/design/architecture_decisions.md:44
- dsn~runtime-pooled-query-execution~1 doc/spec/design/runtime_view.md:194
Out: 1
- req~manage-connection-pool~1 doc/spec/system_requirements.md:243
✓ Pool Shutdown, rev. 1, scn
scn~pool-shutdown~1
- Given* a configured
ExasolPool - When* the application calls
drain()and thenclear() - Then* the pool stops accepting new work and closes pooled driver instances
Needs: dsn
doc/spec/system_requirements.md:547
In: 2
- dsn~decision-use-generic-pool~1 doc/spec/design/architecture_decisions.md:44
- dsn~runtime-pool-shutdown~1 doc/spec/design/runtime_view.md:218
Out: 1
- req~manage-connection-pool~1 doc/spec/system_requirements.md:243
✓ Prepared Statement Execution, rev. 1, scn
scn~prepared-statement-execution~1
- Given* an authenticated driver and a SQL statement with parameters
- When* the application prepares the statement, executes it with a value count matching the parameter columns, and closes it
- Then* the driver sends Exasol prepared-statement commands and releases the underlying connection when the statement is closed
Needs: dsn
doc/spec/system_requirements.md:427
In: 1
- dsn~runtime-prepared-statement-execution~1 doc/spec/design/runtime_view.md:102
Out: 1
- req~use-prepared-statements~1 doc/spec/system_requirements.md:176
✓ Query Returns Rows, rev. 1, scn
scn~query-returns-rows~1
- Given* an authenticated driver and a SQL statement that returns a result set
- When* the application calls
query() - Then* the driver fetches all required result data, closes the remote result set, and returns a
QueryResultexposing columns and row objects
Needs: dsn
doc/spec/system_requirements.md:387
In: 1
- dsn~runtime-query-execution~3 doc/spec/design/runtime_view.md:53
Out: 1
- req~execute-sql-queries~1 doc/spec/system_requirements.md:146
✓ Raw Response Requested, rev. 1, scn
scn~raw-response-requested~1
- Given* an authenticated driver
- When* the application calls
query()orexecute()withresponseTypeset toraw - Then* the driver returns the Exasol protocol response instead of converting it to a
QueryResultor row count
Comment:
A protocol response is the low-level object returned by the Exasol WebSocket API, for example a SQLResponse<SQLQueriesResponse> with fields such as status, attributes, responseData, and optional exception.
Needs: dsn
doc/spec/system_requirements.md:411
In: 1
- dsn~runtime-raw-response-execution~1 doc/spec/design/runtime_view.md:90
Out: 1
- req~receive-raw-sql-responses~1 doc/spec/system_requirements.md:166
✓ Reject Missing Credentials, rev. 1, scn
scn~reject-missing-credentials~1
- Given* a configured driver without user/password and without access or refresh token
- When* the application calls
connect() - Then* the driver rejects the connection attempt with an invalid-credentials error
Needs: dsn
doc/spec/system_requirements.md:375
In: 1
- dsn~runtime-reject-missing-credentials~1 doc/spec/design/runtime_view.md:27
Out: 1
- req~connect-to-exasol~1 doc/spec/system_requirements.md:136
✓ Reject a Command on Unexpected WebSocket Termination, rev. 1, scn
scn~reject-command-on-unexpected-websocket-termination~1
- Given* an authenticated driver or pooled driver executing a database command
- When* its WebSocket emits an error or closes before a response arrives
- Then* the command rejects with available socket failure details, the connection is no longer active, and a pool discards the broken driver before later requests
Needs: dsn
doc/spec/system_requirements.md:451
In: 1
- dsn~runtime-inflight-websocket-failure~1 doc/spec/design/runtime_view.md:138
Out: 1
- req~handle-unexpected-websocket-termination~2 doc/spec/system_requirements.md:196
✓ Replace an Idle-Closed Pooled Driver, rev. 1, scn
scn~replace-idle-closed-pooled-driver~1
- Given* a released driver in an
ExasolPoolwhose WebSocket closes while idle - When* the application submits a later query
- Then* the pool validates the driver, destroys it when invalid, creates a replacement, and executes the query with the replacement
Needs: dsn
doc/spec/system_requirements.md:463
In: 2
- dsn~decision-use-generic-pool~1 doc/spec/design/architecture_decisions.md:44
- dsn~runtime-pool-borrow-validation~1 doc/spec/design/runtime_view.md:206
Out: 1
- req~handle-unexpected-websocket-termination~2 doc/spec/system_requirements.md:196
✓ Result Row Limit Applied During Fetch, rev. 1, scn
scn~result-row-limit-applied-during-fetch~1
- Given* a configured
resultSetMaxRowsvalue and a query result with more rows available - When* the driver fetches additional result data
- Then* the driver stops appending rows after the configured maximum, even if Exasol can provide more rows
Comment:
The driver applies this limit while assembling the fetched result pages. It does not change the SQL statement or send a separate server-side row-limit command.
Needs: dsn
doc/spec/system_requirements.md:747
In: 1
- dsn~runtime-query-execution~3 doc/spec/design/runtime_view.md:53
Out: 1
- req~configure-session-attributes~1 doc/spec/system_requirements.md:351
✓ Session Attributes Sent During Login, rev. 1, scn
scn~session-attributes-sent-during-login~1
- Given* a driver configuration with session attributes
- When* the application connects
- Then* the driver sends supported attributes such as autocommit, schema, and compression during login
Needs: dsn
doc/spec/system_requirements.md:735
In: 1
- dsn~runtime-connect-basic-authentication~1 doc/spec/design/runtime_view.md:12
Out: 1
- req~configure-session-attributes~1 doc/spec/system_requirements.md:351
uman
✓ async-dispose-connection-pool-3014535674, rev. 0, uman
uman~async-dispose-connection-pool-3014535674~0
doc/user_guide/user_guide.md:67
Out: 1
- scn~async-dispose-connection-pool~1 doc/spec/system_requirements.md:559
✓ async-dispose-driver-2334683095, rev. 0, uman
uman~async-dispose-driver-2334683095~0
doc/user_guide/user_guide.md:46
Out: 1
- scn~async-dispose-driver~1 doc/spec/system_requirements.md:475
✓ async-dispose-prepared-statement-2102051960, rev. 0, uman
uman~async-dispose-prepared-statement-2102051960~0
doc/user_guide/user_guide.md:49
Out: 1
- scn~async-dispose-prepared-statement~1 doc/spec/system_requirements.md:487
✓ configured-fetch-size-used-during-fetch-997284659, rev. 0, uman
uman~configured-fetch-size-used-during-fetch-997284659~0
doc/user_guide/user_guide.md:392
Out: 1
- scn~configured-fetch-size-used-during-fetch~1 doc/spec/system_requirements.md:763
✓ csv-export-applies-format-options-2847744408, rev. 0, uman
uman~csv-export-applies-format-options-2847744408~0
doc/user_guide/user_guide.md:321
Out: 1
- scn~csv-export-applies-format-options~1 doc/spec/system_requirements.md:683
✓ csv-export-compressed-file-succeeds-1159405658, rev. 0, uman
uman~csv-export-compressed-file-succeeds-1159405658~0
doc/user_guide/user_guide.md:356
Out: 1
- scn~csv-export-compressed-file-succeeds~1 doc/spec/system_requirements.md:659
✓ csv-export-is-cancelled-3616030351, rev. 0, uman
uman~csv-export-is-cancelled-3616030351~0
doc/user_guide/user_guide.md:363
Out: 1
- scn~csv-export-is-cancelled~1 doc/spec/system_requirements.md:707
✓ csv-export-query-succeeds-1920401168, rev. 0, uman
uman~csv-export-query-succeeds-1920401168~0
doc/user_guide/user_guide.md:311
Out: 1
- scn~csv-export-query-succeeds~1 doc/spec/system_requirements.md:647
✓ csv-export-rejects-existing-destination-3737216845, rev. 0, uman
uman~csv-export-rejects-existing-destination-3737216845~0
doc/user_guide/user_guide.md:332
Out: 1
- scn~csv-export-rejects-existing-destination~1 doc/spec/system_requirements.md:671
✓ csv-export-table-succeeds-766900980, rev. 0, uman
uman~csv-export-table-succeeds-766900980~0
doc/user_guide/user_guide.md:304
Out: 1
- scn~csv-export-table-succeeds~1 doc/spec/system_requirements.md:635
✓ csv-import-is-cancelled-2009943969, rev. 0, uman
uman~csv-import-is-cancelled-2009943969~0
doc/user_guide/user_guide.md:269
Out: 1
- scn~csv-import-is-cancelled~1 doc/spec/system_requirements.md:621
utest
✓ runtime-command-execution-3333493598, rev. 0, utest
utest~runtime-command-execution-3333493598~0
src/lib/sql-client.spec.node.ts:235
Out: 1
- dsn~runtime-command-execution~1 doc/spec/design/runtime_view.md:78
✓ runtime-csv-export-cancellation-1461106964, rev. 0, utest
utest~runtime-csv-export-cancellation-1461106964~0
src/lib/import/csv-file-export.spec.node.ts:73
Out: 1
- dsn~runtime-csv-export-cancellation~1 doc/spec/design/runtime_view.md:374
✓ runtime-csv-export-chunked-request-stream-2065247288, rev. 0, utest
utest~runtime-csv-export-chunked-request-stream-2065247288~0
src/lib/import/chunked-http-body.spec.node.ts:4
Out: 1
- dsn~runtime-csv-export-chunked-request-stream~1 doc/spec/design/runtime_view.md:361
✓ runtime-csv-export-chunked-request-stream-2365462198, rev. 0, utest
utest~runtime-csv-export-chunked-request-stream-2365462198~0
src/lib/import/http-protocol.spec.node.ts:69
Out: 1
- dsn~runtime-csv-export-chunked-request-stream~1 doc/spec/design/runtime_view.md:361
✓ runtime-csv-export-compressed-file-2150967243, rev. 0, utest
utest~runtime-csv-export-compressed-file-2150967243~0
src/lib/import/export-sql-builder.spec.node.ts:5
Out: 1
- dsn~runtime-csv-export-compressed-file~1 doc/spec/design/runtime_view.md:336
✓ runtime-csv-export-destination-file-1483480713, rev. 0, utest
utest~runtime-csv-export-destination-file-1483480713~0
src/lib/import/csv-file-export.spec.node.ts:21
Out: 1
- dsn~runtime-csv-export-destination-file~1 doc/spec/design/runtime_view.md:309
✓ runtime-csv-export-file-stream-1003536193, rev. 0, utest
utest~runtime-csv-export-file-stream-1003536193~0
src/lib/import/csv-file-export.spec.node.ts:22
Out: 1
- dsn~runtime-csv-export-file-stream~1 doc/spec/design/runtime_view.md:322
✓ runtime-csv-export-format-options-4162490999, rev. 0, utest
utest~runtime-csv-export-format-options-4162490999~0
src/lib/import/export-sql-builder.spec.node.ts:4
Out: 1
- dsn~runtime-csv-export-format-options~1 doc/spec/design/runtime_view.md:349
✓ runtime-csv-import-cancellation-2000859339, rev. 0, utest
utest~runtime-csv-import-cancellation-2000859339~0
src/lib/import/http-transport.spec.node.ts:43
Out: 1
- dsn~runtime-csv-import-cancellation~1 doc/spec/design/runtime_view.md:295
✓ runtime-csv-import-cancellation-3832424004, rev. 0, utest
utest~runtime-csv-import-cancellation-3832424004~0
src/lib/import/csv-file-import.spec.node.ts:73
Out: 1
- dsn~runtime-csv-import-cancellation~1 doc/spec/design/runtime_view.md:295
✓ runtime-csv-import-file-readability-check-1633277864, rev. 0, utest
utest~runtime-csv-import-file-readability-check-1633277864~0
src/lib/import/csv-file-import.spec.node.ts:20
Out: 1
- dsn~runtime-csv-import-file-readability-check~1 doc/spec/design/runtime_view.md:244
✓ runtime-csv-import-file-readability-check-611246129, rev. 0, utest
utest~runtime-csv-import-file-readability-check-611246129~0
src/lib/sql-client.spec.node.ts:346
Out: 1
- dsn~runtime-csv-import-file-readability-check~1 doc/spec/design/runtime_view.md:244
✓ runtime-csv-import-file-stream-324661538, rev. 0, utest
utest~runtime-csv-import-file-stream-324661538~0
src/lib/import/http-transport.spec.node.ts:6
Out: 1
- dsn~runtime-csv-import-file-stream~1 doc/spec/design/runtime_view.md:270
✓ runtime-csv-import-file-stream-3384287420, rev. 0, utest
utest~runtime-csv-import-file-stream-3384287420~0
src/lib/import/tls-transport.spec.node.ts:5
Out: 1
- dsn~runtime-csv-import-file-stream~1 doc/spec/design/runtime_view.md:270
✓ runtime-csv-import-file-stream-791148841, rev. 0, utest
utest~runtime-csv-import-file-stream-791148841~0
src/lib/import/http-protocol.spec.node.ts:4
Out: 1
- dsn~runtime-csv-import-file-stream~1 doc/spec/design/runtime_view.md:270
✓ runtime-csv-import-format-options-1979285367, rev. 0, utest
utest~runtime-csv-import-format-options-1979285367~0
src/lib/import/import-sql-builder.spec.node.ts:4
Out: 1
- dsn~runtime-csv-import-format-options~1 doc/spec/design/runtime_view.md:283
✓ runtime-driver-async-disposal-242776500, rev. 0, utest
utest~runtime-driver-async-disposal-242776500~0
src/lib/sql-client.spec.node.ts:29
Out: 1
- dsn~runtime-driver-async-disposal~1 doc/spec/design/runtime_view.md:39
✓ runtime-inflight-websocket-failure-1016596448, rev. 0, utest
utest~runtime-inflight-websocket-failure-1016596448~0
src/lib/errors/errors.spec.ts:33
Out: 1
- dsn~runtime-inflight-websocket-failure~1 doc/spec/design/runtime_view.md:138
✓ runtime-inflight-websocket-failure-3192927237, rev. 0, utest
utest~runtime-inflight-websocket-failure-3192927237~0
src/lib/connection.spec.ts:112
Out: 1
- dsn~runtime-inflight-websocket-failure~1 doc/spec/design/runtime_view.md:138
✓ runtime-inflight-websocket-failure-3291807596, rev. 0, utest
utest~runtime-inflight-websocket-failure-3291807596~0
src/lib/errors/errors.spec.dom.ts:14
Out: 1
- dsn~runtime-inflight-websocket-failure~1 doc/spec/design/runtime_view.md:138
✓ runtime-inflight-websocket-failure-3946152837, rev. 0, utest
utest~runtime-inflight-websocket-failure-3946152837~0
src/lib/connection.spec.ts:84
Out: 1
- dsn~runtime-inflight-websocket-failure~1 doc/spec/design/runtime_view.md:138
✓ runtime-inflight-websocket-failure-3992050780, rev. 0, utest
utest~runtime-inflight-websocket-failure-3992050780~0
src/lib/connection.spec.ts:99
Out: 1
- dsn~runtime-inflight-websocket-failure~1 doc/spec/design/runtime_view.md:138
✓ runtime-inflight-websocket-failure-4112488915, rev. 0, utest
utest~runtime-inflight-websocket-failure-4112488915~0
src/lib/sql-client.spec.node.ts:43
Out: 1
- dsn~runtime-inflight-websocket-failure~1 doc/spec/design/runtime_view.md:138
✓ runtime-pool-async-disposal-681554497, rev. 0, utest
utest~runtime-pool-async-disposal-681554497~0
src/lib/sql-pool.spec.ts:5
Out: 1
- dsn~runtime-pool-async-disposal~1 doc/spec/design/runtime_view.md:230
✓ runtime-prepared-statement-async-disposal-3412096965, rev. 0, utest
utest~runtime-prepared-statement-async-disposal-3412096965~0
src/lib/statement.spec.ts:96
Out: 1
- dsn~runtime-prepared-statement-async-disposal~1 doc/spec/design/runtime_view.md:114
✓ runtime-query-cancellation-3274137835, rev. 0, utest
utest~runtime-query-cancellation-3274137835~0
src/lib/sql-client.spec.node.ts:385
Out: 1
- dsn~runtime-query-cancellation~1 doc/spec/design/runtime_view.md:126
✓ runtime-query-execution-1155267034, rev. 0, utest
utest~runtime-query-execution-1155267034~0
src/lib/sql-client.spec.node.ts:73
Out: 1
- dsn~runtime-query-execution~3 doc/spec/design/runtime_view.md:53
✓ runtime-query-fetch-size-3526938659, rev. 0, utest
utest~runtime-query-fetch-size-3526938659~0
src/lib/sql-client.spec.node.ts:131
Out: 1
- dsn~runtime-query-fetch-size~1 doc/spec/design/runtime_view.md:66
✓ runtime-raw-response-execution-1077682595, rev. 0, utest
utest~runtime-raw-response-execution-1077682595~0
src/lib/sql-client.spec.node.ts:176
Out: 1
- dsn~runtime-raw-response-execution~1 doc/spec/design/runtime_view.md:90
✓ runtime-raw-response-execution-1177643891, rev. 0, utest
utest~runtime-raw-response-execution-1177643891~0
src/lib/sql-client.spec.node.ts:278
Out: 1
- dsn~runtime-raw-response-execution~1 doc/spec/design/runtime_view.md:90
✓ runtime-reject-missing-credentials-171317548, rev. 0, utest
utest~runtime-reject-missing-credentials-171317548~0
src/lib/sql-client.spec.node.ts:17
Out: 1
- dsn~runtime-reject-missing-credentials~1 doc/spec/design/runtime_view.md:27
✓ runtime-reject-missing-credentials-1757681918, rev. 0, utest
utest~runtime-reject-missing-credentials-1757681918~0
src/lib/sql-client.spec.dom.ts:4
Out: 1
- dsn~runtime-reject-missing-credentials~1 doc/spec/design/runtime_view.md:27