Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
159 commits
Select commit Hold shift + click to select a range
aa83543
ci: modernize GitHub Actions workflow
jakewimmer May 11, 2026
5818174
fix(build): silence dead-code on no-TLS builds
MattJackson Sep 2, 2026
098e65d
fix(docker): set mssql.conf ownership via COPY --chown (portable)
MattJackson Sep 2, 2026
4820a69
ci(clippy): run clippy advisory until baseline lints are fixed
MattJackson Sep 2, 2026
4634ccb
ci(macos): build + unit tests only; drop unrunnable SQL Server steps
MattJackson Sep 2, 2026
d260325
ci: make PR Code Security portable (drop prisma-org reusables)
MattJackson Sep 3, 2026
6130bdf
ci: run gitleaks CLI directly (action needs org license)
MattJackson Sep 3, 2026
1e189d9
ci: allowlist docker/certs test fixtures in gitleaks
MattJackson Sep 3, 2026
9871546
ci: address review nits on the portable secret scan
MattJackson Sep 3, 2026
14f5c97
chore(deps): upgrade rustls stack to 0.23 and resolve CVEs
jakewimmer May 11, 2026
3170e02
chore(deps): bump azure_identity 0.5.0 -> 0.20.0
jakewimmer May 12, 2026
c1d2e74
fix(tls): address review nits on the rustls upgrade
MattJackson Sep 3, 2026
488c26e
test: port stranded async-std tests to #[test_on_runtimes]
jakewimmer May 12, 2026
5e2453a
ci: add cargo-deny supply-chain gate; modernize dev-deps
MattJackson Aug 29, 2026
c4fea77
fix: resolve 12 panics/correctness bugs from the issue backlog
MattJackson Aug 29, 2026
2e0e8c1
style: clear all clippy warnings and rustfmt the tree
MattJackson Aug 29, 2026
7bd7b11
ci(linux): gate tests on authenticated SQL Server readiness
MattJackson Sep 2, 2026
50f99c7
chore(ci): trim review-flagged comments; tidy row idx idiom
MattJackson Sep 3, 2026
8198b6c
fix(money): reject non-finite and out-of-range values in the bulk enc…
MattJackson Sep 6, 2026
74ad557
fix(money): encode Numeric->money exactly via integer rescale (no f64…
MattJackson Sep 6, 2026
f2c17e9
fix(bulk): emit TableName in COLMETADATA for text/ntext/image columns
MattJackson Sep 6, 2026
f8bb156
test(bulk): cover text/ntext/money/smallmoney/numeric bulk column types
MattJackson Sep 6, 2026
6906850
fix(money): range-check scaled value in i128 to reject the f64 2^63 b…
MattJackson Sep 6, 2026
6b466eb
fix(bulk): guard COLMETADATA TableName length fields against overflow
MattJackson Sep 6, 2026
a06b4ab
fix(bulk): roll back a partial row when row encoding fails mid-stream
MattJackson Sep 6, 2026
06740fe
test(bulk): assert value round-trip for money/numeric/text bulk inserts
MattJackson Sep 6, 2026
11284f4
fix(row): match column names exactly before the r# raw-identifier fal…
MattJackson Sep 6, 2026
e4b8536
refactor(envchange): use named old/new fields for Database and Packet…
MattJackson Sep 6, 2026
188b24a
test: cover Intn/FeatureExtAck panic-to-error arms; add ntext bulk ro…
MattJackson Sep 6, 2026
5fadeb3
fix(bulk): encode money/smallmoney columns declared as FixedLen
MattJackson Sep 6, 2026
fc3d266
fix(bulk): emit text/ntext/image COLMETADATA TableName as a bare US_V…
MattJackson Sep 6, 2026
1bf8620
fix(bulk): handle money in the column-type Display and stop panicking…
MattJackson Sep 6, 2026
01810a3
style: rustfmt row.rs; make display money assertion bracket-agnostic
MattJackson Sep 6, 2026
06bd65f
test: inline captured format args in assertion panics; hoist test import
MattJackson Sep 8, 2026
0f1fb38
fix: correct 'occured' typo in I/O error message and doc comment
DucMinhNe Jun 2, 2026
2396718
fix: improve QueryStream::into_results to better handle empty results…
rebuild1157 Jul 2, 2025
4c916cc
fix: Allow column names like 'End' to be used
cjordan Sep 12, 2025
57caa99
Fix sign and padding in string format for negative Numeric
zuckschwerdt Sep 23, 2025
d841821
feat: helpers for IN lists and the 2100-parameter limit
joelparkerhenderson Aug 24, 2026
7fa3f25
feat(row): get column data by idx
LazyDope Jul 17, 2023
5c93c19
fix(row): return result
LazyDope Jul 17, 2023
a3dee68
Fix header type for SSPI response message
staticlibs Jul 31, 2024
ee20631
feat: add packet_size configuration for LOGIN7 message
johndauphine Jan 2, 2026
cd8b723
Zeroize SQL auth password buffers
Mar 16, 2026
262be75
Zeroize SQL password before async send
Mar 16, 2026
155f157
style: clippy/fmt cleanup after PR integration (#304, #351, #390, #411)
MattJackson Aug 29, 2026
e8407f5
test: add docker/test-server.sh helper to spin up SQL Server locally
joelparkerhenderson Aug 29, 2026
b7ba19c
feat: implement IntoSql for rust_decimal Decimal (#401)
esheppa Aug 29, 2026
21f1ec7
Allow Bulk Insert for a specified list of columns (#311)
NTmatter Sep 27, 2024
d7ba327
style: rustfmt after #359
MattJackson Aug 29, 2026
eb69bb2
docs: use distinct temp-table names in bulk_insert doctests
MattJackson Aug 29, 2026
3bc01bb
fix(docs): correct bulk_insert doc; trim review-flagged comments
MattJackson Sep 3, 2026
db1e2cc
fix(bulk): document and validate the bulk_insert table identifier
MattJackson Sep 6, 2026
e26a5f4
fix(bulk): escape ] in bracket-quoted column names for the bulk colum…
MattJackson Sep 6, 2026
fa649a4
fix(login): reserve LOGIN7 buffer up front so password is never left …
MattJackson Sep 6, 2026
20b1147
fix(query): rewrite into_results to not discard the first stream item
MattJackson Sep 6, 2026
71b02c9
fix(s3): make lib tests compile, harden Numeric Debug, validate bulk …
MattJackson Sep 6, 2026
2a4d1a1
refactor(connection): drop redundant explicit frame zeroize
MattJackson Sep 15, 2026
bd31e5a
refactor(header): cfg-gate PacketHeader::sspi; add PacketHeader tests
MattJackson Sep 15, 2026
b52d729
fix(login): return the LOGIN7 buffer as a boxed slice; frame logins b…
MattJackson Sep 15, 2026
9adbfea
fix(login): reserve the fed-auth token buffer up front and zeroize it
MattJackson Sep 15, 2026
f6c48b9
refactor(login): rename encode_to_vec -> encode_to_boxed_slice
MattJackson Sep 16, 2026
feb8df2
ci: run apt-get update before installing build deps
MattJackson Sep 16, 2026
cc84a6a
feat: TDS 8.0 strict encryption, hostname_in_certificate, client_name…
MattJackson Aug 29, 2026
de1cd8c
docs: use docsrs cfg instead of a nightly-only docs feature
MattJackson Aug 29, 2026
fe335f5
feat: expose TokenRow accessor on Row (#331)
MattJackson Aug 29, 2026
32ed5bc
feat: implement Sql conversion traits for more ColumnData types (#314)
MattJackson Aug 29, 2026
b8dea47
feat: coerce DateTime2 to datetime (Datetimen) under tds73 (#298, #30…
MattJackson Aug 29, 2026
2bcc736
feat: optional serde Serialize/Deserialize for result types (#115)
MattJackson Aug 29, 2026
2584a9b
feat: add ConfigBuilder for ergonomic Config construction (#366)
MattJackson Aug 29, 2026
0f97838
docs: add TDS protocol compatibility matrix
MattJackson Aug 29, 2026
11229e9
feat: expose column_metadata() + MetaDataColumn/identity accessors (#…
MattJackson Aug 29, 2026
0ecd5bd
feat(tds): decode and retain SESSIONSTATE (0xE4) token
MattJackson Aug 29, 2026
a487eef
feat(tds): handle COLINFO (0xA5) token in the stream
MattJackson Aug 29, 2026
5ab5c15
feat(tds): decode FEDAUTHINFO (0xEE) token
MattJackson Aug 29, 2026
9c95bfd
feat(prelogin): emit INSTOPT and TRACEID options (MS-TDS §2.2.6.5)
MattJackson Aug 29, 2026
ca54ac3
feat(tds): add Attention signal (0x06) and query cancellation
MattJackson Aug 29, 2026
4e98a30
feat(tls): document TDS 8.0 ALPN limitation on opentls backend
MattJackson Aug 29, 2026
941f17e
feat(tds): add TABNAME (0xA4) token support
MattJackson Aug 29, 2026
bc5edbd
feat(tds): add CLR user-defined type (UDT) support
MattJackson Aug 29, 2026
27e9ad1
feat(tds): implement Transaction Manager request (packet type 0x14)
MattJackson Aug 29, 2026
f386551
feat(tds): decode SQL_VARIANT (0x62) column values
MattJackson Aug 29, 2026
dd7f388
fix: keep defensive token-stream fallback (allow unreachable_patterns)
MattJackson Aug 29, 2026
048c458
feat(tds): decode ALTMETADATA and ALTROW tokens for COMPUTE BY
MattJackson Aug 29, 2026
7c129bf
fix: allow(dead_code) on TDS ALPN const for opentls backend (no ALPN)
MattJackson Aug 29, 2026
08a3ec0
docs(examples): add named pipes connection example
MattJackson Aug 29, 2026
c35c699
feat(config): add MultiSubnetFailover support
MattJackson Aug 29, 2026
61b4061
chore(deps): modernize dependencies to latest versions
MattJackson Aug 29, 2026
e2b501d
feat(auth): SSPI/NTLM Windows authentication on Unix via sspi-rs
MattJackson Aug 29, 2026
619a5cc
feat(rpc): named-procedure RPC with OUT params and table-valued param…
MattJackson Aug 29, 2026
bd33276
feat(tls): client-certificate (mutual TLS) authentication
MattJackson Aug 29, 2026
fe3a7cc
feat: re-export ConfigBuilder at the crate root
MattJackson Aug 29, 2026
9eb2223
feat: encode SQL_VARIANT parameters
MattJackson Aug 29, 2026
7371872
fix: accept unknown COLMETADATA flag bits instead of rejecting the token
MattJackson Aug 29, 2026
b21f55b
refactor!: drop async-std; retarget dual-runtime tests to tokio + smol
MattJackson Aug 29, 2026
7ca6908
feat(tvp): rename derive macro crate to tiberius-macros; add user guide
MattJackson Sep 1, 2026
6494041
chore: scrub -ng identity from Cargo metadata, changelog, docs
MattJackson Sep 1, 2026
5e79b77
fix(sync): reconcile wiring + config to compile the feature layer clean
MattJackson Sep 1, 2026
0e4146c
ci: drop redundant ungated cargo-test-macos job
MattJackson Sep 2, 2026
a02f916
ci: authenticated SQL readiness for the linux-next integration lane
MattJackson Sep 2, 2026
628c3c8
fix(numeric): accept scale up to 38 (decimal(38,38) is valid)
MattJackson Sep 2, 2026
14badbf
ci(semver): scope semver-checks to one coherent feature set
MattJackson Sep 2, 2026
effb29a
chore: release 0.13.0 (breaking — async-std dropped, new feature APIs)
MattJackson Sep 3, 2026
10ea8da
ci(semver): resolve baseline via FETCH_HEAD; scope with --only-explic…
MattJackson Sep 3, 2026
374938a
fix: correct opentls ALPN warnings and docs; trim review-flagged noise
MattJackson Sep 3, 2026
99081b2
fix(codec): make token_col_metadata compile (E0428/E0433/E0063)
MattJackson Sep 6, 2026
ea44448
fix(codec): validate server-controlled numeric scale/precision and sq…
MattJackson Sep 6, 2026
6f737a7
fix(codec): guard b_varchar length overflow and correct usUpdateable …
MattJackson Sep 6, 2026
4068a05
harden: defense-in-depth against panics and large allocs on wire inpu…
MattJackson Sep 6, 2026
f5ddff2
fix(protocol): correct ColumnFlag mid bits to match MS-TDS 2.2.7.4
MattJackson Sep 6, 2026
9977fc5
fix(tvp,config): bind owned TVP fields via clone; return Err on confl…
MattJackson Sep 6, 2026
1dd8f52
fix(bulk): treat usUpdateable=unknown as a writeable bulk target
MattJackson Sep 6, 2026
9a672a6
test(header): gate sspi_header_type_and_status behind winauth
MattJackson Sep 16, 2026
492cc53
ci: run apt-get update before apt-get install in the added lanes
MattJackson Sep 16, 2026
3e6afc3
harden: malformed-input hardening + non-panicking encoders + unit cov…
MattJackson Sep 1, 2026
cc742c5
fix: correct false prelogin comment; drop mutation-test noise
MattJackson Sep 3, 2026
77b2af1
fix(codec): reject unexpected precision/scale type and overflowing nu…
MattJackson Sep 6, 2026
b4c7123
fix(codec): error instead of panic on BigChar/BigVarChar missing coll…
MattJackson Sep 6, 2026
0e977bf
fix(time): reject out-of-range day offsets and datetimeoffset offsets
MattJackson Sep 6, 2026
fafa78a
test: cover malformed SSRP replies and non-prelogin TLS handshake pac…
MattJackson Sep 6, 2026
9c313ca
fix(rebuild): dedupe Display money arm and meta helper; drop obsolete…
MattJackson Sep 6, 2026
52e678a
fix(connection): use renamed encode_to_boxed_slice on the AAD-token l…
MattJackson Sep 16, 2026
8651f4d
test: serde + transaction integration suites; register serde/command …
MattJackson Sep 1, 2026
e30527f
test(transactions): trim review-flagged comments
MattJackson Sep 3, 2026
fb4440e
feat(tls): honor a process-installed rustls CryptoProvider
MattJackson Sep 2, 2026
441b48b
fix(tls): make trust_cert_ca additive + harden the rustls backend
MattJackson Sep 2, 2026
4e028b8
docs(tls): trim review-flagged comments in the rustls backend
MattJackson Sep 3, 2026
a2584c9
test(tls): cover read_private_key and zero-cert PEM paths in rustls b…
MattJackson Sep 6, 2026
9abddfd
ci(macos): real integration lane via colima; enable integration triggers
MattJackson Sep 2, 2026
962d58f
ci(macos): trim review-flagged comments in test.yml
MattJackson Sep 3, 2026
9db0c0d
ci: drop the phantom SQL 2025 lane and the unrunnable macOS native-tl…
MattJackson Sep 7, 2026
8255d35
perf(codec): read packet-spanning values in bulk instead of one byte …
MattJackson Sep 7, 2026
7803134
fix(codec): reject malformed column values instead of panicking or co…
MattJackson Sep 7, 2026
bf96855
fix(codec): length-bound the token stream and share the framing encoders
MattJackson Sep 7, 2026
3f47d87
security: harden identifiers, credentials, connection integrity, and TLS
MattJackson Sep 7, 2026
e7b0b55
fix(macros): emit spanned compile errors for malformed #[colname]
MattJackson Sep 7, 2026
6f69420
docs(0.13): changelog, README, and API docs
MattJackson Sep 7, 2026
4053670
ci(0.13): pin MSRV, add cargo-deny license checks and a cross-feature…
MattJackson Sep 7, 2026
bacc70b
build(deps): add secrecy 0.10 for credential storage
MattJackson Sep 18, 2026
7084c9e
refactor(security): store credentials as secrecy::SecretString
MattJackson Sep 18, 2026
30b059c
feat(row): add Row::builder() for constructing rows in tests (#383)
MattJackson Sep 18, 2026
610154f
feat(tls): clearer diagnostics for rustls cert-version handshake fail…
MattJackson Sep 18, 2026
0dec9cb
fix(config): actionable errors + docs for special-character passwords…
MattJackson Sep 18, 2026
2c63330
feat(config): add handshake_timeout and command_timeout (#375, #360)
MattJackson Sep 18, 2026
a39a614
feat(bulk): bulk-copy options and column order hints (#302)
MattJackson Sep 18, 2026
7852122
feat(config): opt-in lossy UTF-16 decoding (#325)
MattJackson Sep 18, 2026
2f3c4a9
feat(tls): unify trust config with CA bundles and webpki roots (#290,…
MattJackson Sep 18, 2026
bd3251a
fix(config): reject encrypt requests in no-TLS builds (#305)
MattJackson Sep 18, 2026
c358199
chore(s10): trim audit-flagged comments (no behavior change)
MattJackson Sep 18, 2026
d0003ad
feat(config): in-house ADO.NET-superset connection-string parser (#313)
MattJackson Sep 20, 2026
7fd75bb
test(query): gate the encrypt=true integration test behind a TLS backend
MattJackson Sep 20, 2026
30f7b36
fix(collation): support legacy CP437 and CP850 code pages
t8y2 Sep 24, 2026
cbacb58
fix(collation): strengthen legacy code-page regression coverage
t8y2 Sep 25, 2026
75d7afc
fix(bulk): declare column collations in INSERT BULK
MattJackson Sep 25, 2026
35605c9
feat(config): add opt-in lossy code-page decoding
t8y2 Sep 25, 2026
89bce70
fix: load Windows ROOT store certs for vendored-openssl default trust
kihm-keeper Jul 24, 2026
5fe1f41
feat: enable NTLM (AuthMethod::Windows) via winauth on non-Windows ta…
maksimu Sep 28, 2026
a3b5fed
Merge Keeper fork main into sync/upstream-0.13
maksimu Sep 28, 2026
6158e8c
Merge Keeper fork main (PR #2, optional TLS) into sync/upstream-0.13
maksimu Sep 28, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 28 additions & 7 deletions .github/workflows/pr-code-security.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,34 @@ on:
pull_request:
branches: [main]

permissions:
contents: read

jobs:
secret-detection:
name: Secret Detection
if: github.event_name == 'pull_request'
uses: prisma/.github/.github/workflows/secret_detection.yml@main
secrets: inherit
code-scanning:
name: Code Scanning
if: github.event_name == 'pull_request'
uses: prisma/.github/.github/workflows/code_scanning.yml@main
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
# Full history so gitleaks can scan every commit in the PR range.
fetch-depth: 0
persist-credentials: false
# We run the gitleaks CLI directly rather than gitleaks-action: the
# action wrapper requires a paid license for repos under a GitHub
# organization, while the gitleaks binary itself is MIT-licensed and
# free. Pinned by version and verified by SHA-256 before use.
- name: Install gitleaks
env:
GITLEAKS_VERSION: 8.30.1
GITLEAKS_SHA256: 551f6fc83ea457d62a0d98237cbad105af8d557003051f41f3e7ca7b3f2470eb
run: |
set -euo pipefail
url="https://github.com/gitleaks/gitleaks/releases/download/v${GITLEAKS_VERSION}/gitleaks_${GITLEAKS_VERSION}_linux_x64.tar.gz"
curl -sSfL "$url" -o gitleaks.tar.gz
echo "${GITLEAKS_SHA256} gitleaks.tar.gz" | sha256sum -c -
tar -xzf gitleaks.tar.gz gitleaks
sudo install gitleaks /usr/local/bin/gitleaks
gitleaks version
- name: Scan git history for secrets
run: gitleaks git --no-banner --redact --exit-code 1 --config .gitleaks.toml .
29 changes: 29 additions & 0 deletions .github/workflows/security.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
name: Security audit

on:
push:
branches: [main]
pull_request:
schedule:
# Re-run weekly so newly-published advisories are caught even without a push.
- cron: "0 6 * * 1"

permissions:
contents: read

jobs:
cargo-deny:
name: cargo-deny (advisories, bans, sources, licenses)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
- uses: dtolnay/rust-toolchain@e97e2d8cc328f1b50210efc529dca0028893a2d9 # v1
with:
toolchain: stable
# Run cargo-deny on the runner directly (the musl container action conflicts with the repo's rust-toolchain file).
- name: Install cargo-deny
uses: taiki-e/install-action@cargo-deny
- name: Check advisories, bans, sources, licenses
run: cargo deny check advisories bans sources licenses
Loading
Loading