Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

test #1

Open
wants to merge 510 commits into
base: windows-integrated-auth
Choose a base branch
from
Open

test #1

wants to merge 510 commits into from

Conversation

Strnadj
Copy link

@Strnadj Strnadj commented Feb 13, 2020

No description provided.

arthurschreiber and others added 30 commits October 30, 2018 07:29
fix `null` handling for `trustServerCertificate` and `readOnlyIntent` config options
SQLServer versions running on older Windows versions that have a buggy 
SSL/TLS implementation don't play well with the BEAST countermeasure 
implemented by OpenSSL, and cause the connection process to hang during 
the SSL/TLS handshake.

Due to the nature of the BEAST attack (it's specific to web browsers), 
we can safely disable the counter measures to fix the connection 
process, without jeopardizing security.
…connections

Stop OpenSSL from inserting empty fragments
Temporary procedures can be created even when the user that is used for 
running the unit tests does not have permissions for `CREATE PROCEDURE`.
When the tests are executed with a user that does not have permissions 
to run `CREATE XML SCHEMA COLLECTION`, we simply return fake data 
instead of failing the test case now.
update tests to be slightly more resilient
This adds support for a new `azure-active-directory-password` authentication type, which allows connecting to Azure SQL databases with credentials managed via Azure Active Directory.
…re-ad-config

fix Azure Active Directory authentication config on Travis
One of the breaking changes in Node.js 11.x is that 
`tls.createSecureContext` will now throw Errors when invalid options are 
given.

In our test cases, we were testing the case where no TLS cipher could be 
negotiated by specifing a cipher suite string of `!ALL`. In Node.js 11, 
this will throw an Error, while in earlier versions this would emit an 
`error` event on the `TLSSocket` instead.

To handle this behaviour, the `tls.createSecureContext` call was moved 
to make sure errors from this call are thrown on `Connection` creation 
where other configuration options are checked for correctness.
fix: add rerouting event to fedauth login
fix: correct callback of token stream parser transform
feat: Implements streaming BulkLoad
According to 3.2.5.8 of the MS-TDS specification, all data received for 
a request after sending the attention message MUST be discarded.

BREAKING CHANGE: Canceled requests will no longer receive any data.
This will have the side effect that any data that is received after the 
timeout was triggered will be discarded. This mirrors the way 
user-initiated request cancellation behaves.

BREAKING CHANGE: Timed out requests will no longer receive any data.
`BulkRequests` can now be canceled, both when in streaming as well as
non-streaming mode.

In case an error happens in the internal row transformation stream on a
streaming `BulkLoad`, the in-flight request will be canceled and the
error will be propagated to the request callback.
This adds a `.cancel` method to both `Request` as well as `BulkLoad`,
which can be called before or during request execution.
This adds the missing cancel timer, as described by the MS-TDS
specification. It controls the maximum time spent waiting for a query
cancellation. In case the timer fires, the connection will be closed,
and the current request's callback will be called with an error.
arthurschreiber and others added 30 commits January 2, 2020 23:08
…ulations

Fix date calculations for `date`, `datetime`, `datetime2` and `datetimeoffset`
…escript-eslint

Switch from `babel-eslint` to `@typescript-eslint`
Up until now, request payloads were generated by calling a `.getData` 
method on the request type's payload object, which would call the given 
callback with a `Buffer` containing the full request data.

As this requires the full request data to be fully build (and held in 
memory), actually writing the request to the network is delayed until 
the final `Buffer` was built.

This changeset switches us to use `Readable` stream objects instead. 
Internally, these are still building the full data buffer before, but 
this will be changed in the future.
When parameters or bulk load rows are converted from JavaScript values to actual TDS request payload data, a method called `writeParameterData` is currently used.

This method takes a `WritableTrackingBuffer` argument and stores the converted data type information in this tracking buffer. As part of tediousjs#1038, we want to move to a model where this parameter data is not fully stored in one `WritableTrackingBuffer` before a request is written to the network, but instead we want to generate data in a streaming fashion and start sending data over the network as soon as possible.

This changeset adds a new `generate` generator method to all data types, which generates individual `Buffer`s containing the same data as has been written by `WritableTrackingBuffer` so far. `writeParameterData` methods were update to make use of the generator objects returned by `generate`, until all of the request payload generation functionality gets updated to make use of the generator objects directly.
…loads

refactor: use `Readable` streams to generate request payloads
Use generators to generate RPC payload data
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.