Commit 0e78dd3
fix(server): drop iceberg credential_chain fallback, fail loudly instead
Removes the credential_chain branch introduced in the previous commit on
this PR. The fallback was hedging — it dressed up the broken DuckDB chain
path (the very thing this PR exists to fix) as forward-compat. In the
multitenant deploy the worker pod has no AWS identity, so a silent
fallback would just defer the same failure to attach time and obscure
the real misconfiguration.
Explicit STS credentials minted by the control plane are the only
supported auth model. If iceberg.Enabled is true and the activation
payload lacks credentials, that is a configuration bug (broken STS
broker, missing per-tenant IAM role, race in the activator) and should
surface as a clear error at attach time, not a credential_chain SQL that
will fail in DuckDB with an opaque "Secret Validation Failure".
Changes:
- BuildIcebergSecretStmt: no more empty-keyID branch; always emit
PROVIDER config.
- AttachIcebergCatalog: validate keyID/secret are non-empty when iceberg
is enabled; return an error naming the table_bucket so logs identify
which tenant is affected.
- Tests: drop the credential_chain-fallback case; keep the with/without
session-token, region default, and quote-escaping coverage.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>1 parent 8213934 commit 0e78dd3
3 files changed
Lines changed: 25 additions & 34 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
25 | 25 | | |
26 | 26 | | |
27 | 27 | | |
28 | | - | |
29 | | - | |
30 | | - | |
31 | | - | |
32 | | - | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
33 | 33 | | |
34 | | - | |
35 | | - | |
| 34 | + | |
| 35 | + | |
36 | 36 | | |
37 | | - | |
38 | | - | |
39 | | - | |
40 | | - | |
41 | | - | |
42 | | - | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
43 | 42 | | |
44 | 43 | | |
45 | 44 | | |
46 | 45 | | |
47 | 46 | | |
48 | | - | |
49 | | - | |
50 | | - | |
51 | | - | |
52 | | - | |
53 | | - | |
54 | 47 | | |
55 | 48 | | |
56 | 49 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
39 | 39 | | |
40 | 40 | | |
41 | 41 | | |
42 | | - | |
43 | | - | |
44 | | - | |
45 | | - | |
46 | | - | |
47 | | - | |
48 | | - | |
49 | | - | |
50 | 42 | | |
51 | | - | |
52 | | - | |
| 43 | + | |
| 44 | + | |
53 | 45 | | |
54 | 46 | | |
55 | 47 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1605 | 1605 | | |
1606 | 1606 | | |
1607 | 1607 | | |
1608 | | - | |
1609 | | - | |
1610 | | - | |
| 1608 | + | |
| 1609 | + | |
| 1610 | + | |
1611 | 1611 | | |
1612 | | - | |
1613 | | - | |
| 1612 | + | |
| 1613 | + | |
| 1614 | + | |
| 1615 | + | |
| 1616 | + | |
1614 | 1617 | | |
1615 | 1618 | | |
1616 | 1619 | | |
1617 | 1620 | | |
| 1621 | + | |
| 1622 | + | |
| 1623 | + | |
1618 | 1624 | | |
1619 | 1625 | | |
1620 | 1626 | | |
| |||
0 commit comments