Commit 338be75
committed
🤖 fix(site/src/pages/AISettingsPage): never round-trip the saved credential mask
Two related correctness gaps in the providers form let the masked
placeholder ("********") reach the API as a real secret:
* Path A: Bedrock credential inputs are seeded with the mask when the
server already has values on file. The mask is cleared on focus, but
the user can edit unrelated fields and submit without ever focusing
the credential inputs, so values.accessKey is still "********" at
submit time. The mapper trimmed and forwarded that as the new key.
* Path B: a partial Bedrock credential update (one of the two AWS
fields filled, the other left as the mask or empty) was silently
dropped because the create/update mapper required both fields to be
non-empty to send anything. The user thought they rotated the key;
the API never saw a change.
This commit:
* Exports SAVED_CREDENTIAL_MASK from ProviderForm and uses it in a
shared sanitizeCredential helper inside providerFormApiMap, so any
credential value that is empty *or matches the mask* is treated as
"keep the existing value" and is omitted from the request.
* Adds a paired Yup .test on the Bedrock schema's accessKey /
accessKeySecret fields. When one is filled (mask-aware), the other
is required, so a partial rotation now surfaces a validation error
instead of being silently dropped.1 parent aa9f084 commit 338be75Copy full SHA for 338be75
2 files changed
+52-11Lines changed: 52 additions & 11 deletions
File tree
Expand file treeCollapse file tree
Open diff view settings
Filter options
- site/src/pages/AISettingsPage/ProvidersPage/components
Expand file treeCollapse file tree
Open diff view settings
Collapse file
‎site/src/pages/AISettingsPage/ProvidersPage/components/ProviderForm.tsx‎
Copy file name to clipboardExpand all lines: site/src/pages/AISettingsPage/ProvidersPage/components/ProviderForm.tsx+31-5Lines changed: 31 additions & 5 deletions
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| ||
48 | 48 | |
49 | 49 | |
50 | 50 | |
51 | | - |
| 51 | + |
52 | 52 | |
53 | 53 | |
54 | 54 | |
| ||
77 | 77 | |
78 | 78 | |
79 | 79 | |
| 80 | + |
| 81 | + |
| 82 | + |
| 83 | + |
| 84 | + |
| 85 | + |
| 86 | + |
| 87 | + |
| 88 | + |
80 | 89 | |
81 | 90 | |
82 | 91 | |
| ||
95 | 104 | |
96 | 105 | |
97 | 106 | |
98 | | - |
| 107 | + |
99 | 108 | |
100 | | - |
101 | | - |
| 109 | + |
| 110 | + |
| 111 | + |
| 112 | + |
| 113 | + |
| 114 | + |
| 115 | + |
| 116 | + |
| 117 | + |
| 118 | + |
| 119 | + |
102 | 120 | |
103 | | - |
| 121 | + |
| 122 | + |
| 123 | + |
| 124 | + |
| 125 | + |
| 126 | + |
| 127 | + |
| 128 | + |
| 129 | + |
104 | 130 | |
105 | 131 | |
106 | 132 | |
|
Collapse file
‎site/src/pages/AISettingsPage/ProvidersPage/components/providerFormApiMap.ts‎
Copy file name to clipboardExpand all lines: site/src/pages/AISettingsPage/ProvidersPage/components/providerFormApiMap.ts+21-6Lines changed: 21 additions & 6 deletions
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| ||
4 | 4 | |
5 | 5 | |
6 | 6 | |
7 | | - |
| 7 | + |
| 8 | + |
| 9 | + |
| 10 | + |
| 11 | + |
| 12 | + |
| 13 | + |
| 14 | + |
| 15 | + |
| 16 | + |
| 17 | + |
| 18 | + |
| 19 | + |
8 | 20 | |
9 | 21 | |
10 | 22 | |
| ||
60 | 72 | |
61 | 73 | |
62 | 74 | |
63 | | - |
64 | | - |
| 75 | + |
| 76 | + |
65 | 77 | |
66 | 78 | |
67 | 79 | |
| ||
83 | 95 | |
84 | 96 | |
85 | 97 | |
86 | | - |
| 98 | + |
87 | 99 | |
88 | 100 | |
89 | 101 | |
| ||
108 | 120 | |
109 | 121 | |
110 | 122 | |
111 | | - |
112 | | - |
| 123 | + |
| 124 | + |
| 125 | + |
| 126 | + |
| 127 | + |
113 | 128 | |
114 | 129 | |
115 | 130 | |
|
0 commit comments