Commit 51203a3
committed
fix(postgres): review feedback — pg_basebackup user, shell-quote DbUser, recovery test, RmdirAll, generic test creds
PR #136 review feedback, dispositions:
1. replication.go (VALIDE): pg_basebackup hardcoded "-U postgres"; now uses
config.DbUser (fallback "postgres"), matching the superuser created by
initdb --username=<db-user>. Needed so replication works with a custom
initial superuser (otherwise the primary has no 'postgres' role).
exec.Command is argv-based, so no shell-quoting needed here.
2. scripts.go (VALIDE): DbUser was interpolated raw into generated bash
scripts (use/clear/replication/recovery). Added a local shellQuote helper
(POSIX single-quoting) applied at all four generation sites; preserves any
valid PostgreSQL role name while neutralizing shell metacharacters. No new
dependency (no shlex in go.mod, no repo helper existed).
3. test coverage (VALIDE): added TestGenerateCheckRecoveryScriptDbUser covering
GenerateCheckRecoveryScript with a custom DbUser; existing replication test
left untouched.
4. RmdirAll (SKIPPE): common.RmdirAll exists (common/fileutil.go:639) but calls
ErrCheckExitf -> os.Exit(1) on any error and has $HOME/$PWD guards that also
exit. The paths I added do 'os.RemoveAll(config.Dir); return wrapped err' to
surface a clean error to the caller; RmdirAll would hard-exit instead and
would be inconsistent with the pre-existing os.RemoveAll calls in the same
function (not in scope of this review). Per the finding's own instruction
('si ça change la sémantique, skippe'), skipped.
Generic test creds: replaced project-specific 'wse' with 'testuser' in
TestGenerateScriptsDbUserPropagation (DbUser value + quoted assertions) and in
the new recovery test. No password value was used in these script-generation
tests, so only the username was renamed. No 'wse' appears in provider code or
comments (only in this commit's predecessor example, which is git history).1 parent 3fad707 commit 51203a3
3 files changed
Lines changed: 57 additions & 20 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
214 | 214 | | |
215 | 215 | | |
216 | 216 | | |
217 | | - | |
218 | | - | |
| 217 | + | |
| 218 | + | |
219 | 219 | | |
220 | | - | |
| 220 | + | |
221 | 221 | | |
222 | 222 | | |
223 | 223 | | |
224 | 224 | | |
225 | | - | |
| 225 | + | |
226 | 226 | | |
227 | | - | |
228 | | - | |
| 227 | + | |
| 228 | + | |
229 | 229 | | |
230 | 230 | | |
231 | 231 | | |
232 | 232 | | |
233 | | - | |
234 | | - | |
| 233 | + | |
| 234 | + | |
235 | 235 | | |
236 | 236 | | |
237 | 237 | | |
| |||
240 | 240 | | |
241 | 241 | | |
242 | 242 | | |
243 | | - | |
244 | | - | |
| 243 | + | |
| 244 | + | |
245 | 245 | | |
246 | | - | |
247 | | - | |
| 246 | + | |
| 247 | + | |
248 | 248 | | |
249 | 249 | | |
250 | 250 | | |
251 | 251 | | |
252 | 252 | | |
253 | 253 | | |
254 | | - | |
| 254 | + | |
255 | 255 | | |
256 | | - | |
257 | | - | |
| 256 | + | |
| 257 | + | |
| 258 | + | |
| 259 | + | |
| 260 | + | |
| 261 | + | |
| 262 | + | |
| 263 | + | |
| 264 | + | |
| 265 | + | |
| 266 | + | |
| 267 | + | |
| 268 | + | |
| 269 | + | |
| 270 | + | |
| 271 | + | |
| 272 | + | |
| 273 | + | |
| 274 | + | |
| 275 | + | |
| 276 | + | |
| 277 | + | |
| 278 | + | |
258 | 279 | | |
259 | 280 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
22 | 22 | | |
23 | 23 | | |
24 | 24 | | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
25 | 33 | | |
26 | 34 | | |
27 | 35 | | |
28 | 36 | | |
29 | 37 | | |
30 | | - | |
| 38 | + | |
31 | 39 | | |
32 | 40 | | |
33 | 41 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
23 | 23 | | |
24 | 24 | | |
25 | 25 | | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
26 | 34 | | |
27 | 35 | | |
28 | 36 | | |
| |||
44 | 52 | | |
45 | 53 | | |
46 | 54 | | |
47 | | - | |
| 55 | + | |
48 | 56 | | |
49 | 57 | | |
50 | | - | |
| 58 | + | |
51 | 59 | | |
52 | 60 | | |
53 | 61 | | |
| |||
59 | 67 | | |
60 | 68 | | |
61 | 69 | | |
62 | | - | |
| 70 | + | |
63 | 71 | | |
64 | 72 | | |
65 | 73 | | |
| |||
72 | 80 | | |
73 | 81 | | |
74 | 82 | | |
75 | | - | |
| 83 | + | |
76 | 84 | | |
77 | 85 | | |
78 | 86 | | |
| |||
0 commit comments