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 338be75
2 files changed
Lines changed: 52 additions & 11 deletions
File tree
- site/src/pages/AISettingsPage/ProvidersPage/components
Lines 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 | | |
| |||
Lines 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