Repository navigation
Commit f1fdbc3
Reject sslrootcert and unknown sslmode values in PostgreSQL DSNs (#442)
On the DSN-only path (--dsn / DSN env), which bypasses TOML validation,
the PostgreSQL parser silently dropped sslrootcert unless sslmode was
verify-ca or verify-full. libpq treats require + a root CA as verify-ca,
so a connection string copied from psql connected with no server
verification and no warning. The same DSN inside a TOML source was
already rejected.
- sslrootcert with sslmode=require, disable or unset now fails with a
message pointing at sslmode=verify-ca, matching TOML validation.
- Unrecognised sslmode values (libpq's allow/prefer, typos) no longer
fall through to `ssl: true`, which verified against the system CA store
and never fell back to plaintext. They are rejected with the list of
valid modes, as TOML already does.
Replaces the two tests that asserted the silent-ignore behaviour and
documents the difference from libpq in docs/config/command-line.mdx.
Claude-Session: https://claude.ai/code/session_012UzToxWXzC7oQ9xMnhM192
Co-authored-by: Claude <noreply@anthropic.com>1 parent f16dc5e commit f1fdbc3
3 files changed
Lines changed: 58 additions & 13 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
253 | 253 | | |
254 | 254 | | |
255 | 255 | | |
256 | | - | |
| 256 | + | |
257 | 257 | | |
258 | 258 | | |
259 | 259 | | |
| |||
277 | 277 | | |
278 | 278 | | |
279 | 279 | | |
| 280 | + | |
| 281 | + | |
| 282 | + | |
| 283 | + | |
280 | 284 | | |
281 | 285 | | |
282 | 286 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
87 | 87 | | |
88 | 88 | | |
89 | 89 | | |
90 | | - | |
91 | | - | |
92 | | - | |
93 | | - | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
94 | 95 | | |
95 | 96 | | |
96 | | - | |
97 | | - | |
98 | | - | |
99 | | - | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
100 | 102 | | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
101 | 119 | | |
102 | 120 | | |
103 | 121 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
32 | 32 | | |
33 | 33 | | |
34 | 34 | | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
35 | 38 | | |
36 | 39 | | |
37 | 40 | | |
| |||
67 | 70 | | |
68 | 71 | | |
69 | 72 | | |
70 | | - | |
| 73 | + | |
71 | 74 | | |
72 | 75 | | |
73 | | - | |
| 76 | + | |
| 77 | + | |
74 | 78 | | |
75 | 79 | | |
76 | 80 | | |
| |||
123 | 127 | | |
124 | 128 | | |
125 | 129 | | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
126 | 151 | | |
127 | 152 | | |
128 | 153 | | |
| |||
154 | 179 | | |
155 | 180 | | |
156 | 181 | | |
157 | | - | |
158 | | - | |
159 | 182 | | |
160 | 183 | | |
161 | 184 | | |
| |||
0 commit comments