Commit b552c94
committed
fix(secrets): make env writes and their authorization one transaction
Two rounds of ordering fixes each produced the next finding, because the
value upsert, the credential inserts, and the visibility flip were three
separate commits with the disclosure check somewhere among them. Moving
the check only changed which writes were stranded by a denial.
The PUT now runs authorization and every write it guards in one
transaction, so a denial rolls all of it back and there is no ordering
left to get wrong. createWorkspaceEnvCredentials takes an executor to
join it. upsertWorkspaceEnvVars had the same shape on the copilot tool
path and now validates the requested visibility inside its own
transaction, before the write, where the stored key set is exact.
Authorization also share-locks the permissions and credential_member
rows that grant the caller's access before reading them, so a
concurrent revocation either is observed and denies, or waits for the
transaction rather than racing the UPDATE.
Two UI fixes from the same review: a renamed variable saves as
delete-old plus create-new, so it now carries its visibility across the
rename instead of silently reverting to secret; and variable drafts join
allWorkspaceKeys, so personal-vs-workspace conflict detection no longer
misses names drafted in the Variables section.1 parent feb112c commit b552c94
5 files changed
Lines changed: 268 additions & 186 deletions
File tree
- apps/sim
- app
- api/workspaces/[id]/environment
- workspace/[workspaceId]/settings/components/secrets/components/secrets-manager
- lib
- credentials
- environment
Lines changed: 38 additions & 43 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
9 | 9 | | |
10 | 10 | | |
11 | 11 | | |
12 | | - | |
13 | 12 | | |
14 | 13 | | |
| 14 | + | |
15 | 15 | | |
16 | 16 | | |
17 | 17 | | |
18 | 18 | | |
19 | 19 | | |
20 | 20 | | |
21 | | - | |
22 | 21 | | |
23 | 22 | | |
| 23 | + | |
24 | 24 | | |
25 | 25 | | |
26 | 26 | | |
| |||
34 | 34 | | |
35 | 35 | | |
36 | 36 | | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
37 | 47 | | |
38 | 48 | | |
39 | 49 | | |
| |||
46 | 56 | | |
47 | 57 | | |
48 | 58 | | |
49 | | - | |
50 | 59 | | |
51 | 60 | | |
52 | 61 | | |
| |||
244 | 253 | | |
245 | 254 | | |
246 | 255 | | |
247 | | - | |
248 | | - | |
249 | | - | |
250 | | - | |
| 256 | + | |
| 257 | + | |
| 258 | + | |
251 | 259 | | |
252 | | - | |
253 | | - | |
| 260 | + | |
| 261 | + | |
254 | 262 | | |
255 | | - | |
| 263 | + | |
256 | 264 | | |
257 | 265 | | |
258 | 266 | | |
259 | 267 | | |
260 | 268 | | |
261 | | - | |
262 | | - | |
263 | | - | |
| 269 | + | |
| 270 | + | |
| 271 | + | |
| 272 | + | |
264 | 273 | | |
265 | 274 | | |
266 | | - | |
267 | | - | |
268 | | - | |
269 | | - | |
| 275 | + | |
| 276 | + | |
| 277 | + | |
| 278 | + | |
| 279 | + | |
| 280 | + | |
270 | 281 | | |
271 | 282 | | |
272 | 283 | | |
273 | | - | |
| 284 | + | |
274 | 285 | | |
275 | 286 | | |
276 | 287 | | |
277 | 288 | | |
278 | | - | |
279 | | - | |
280 | | - | |
281 | | - | |
| 289 | + | |
| 290 | + | |
| 291 | + | |
282 | 292 | | |
283 | 293 | | |
284 | 294 | | |
285 | 295 | | |
286 | 296 | | |
| 297 | + | |
287 | 298 | | |
288 | 299 | | |
289 | | - | |
290 | | - | |
291 | | - | |
292 | | - | |
293 | | - | |
294 | | - | |
295 | | - | |
296 | | - | |
297 | | - | |
298 | | - | |
299 | | - | |
300 | | - | |
301 | | - | |
302 | | - | |
303 | | - | |
304 | | - | |
305 | | - | |
306 | | - | |
307 | | - | |
308 | | - | |
309 | | - | |
| 300 | + | |
| 301 | + | |
| 302 | + | |
| 303 | + | |
| 304 | + | |
310 | 305 | | |
311 | 306 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
16 | 16 | | |
17 | 17 | | |
18 | 18 | | |
19 | | - | |
20 | 19 | | |
21 | 20 | | |
22 | 21 | | |
| |||
250 | 249 | | |
251 | 250 | | |
252 | 251 | | |
253 | | - | |
254 | | - | |
255 | | - | |
256 | | - | |
257 | | - | |
258 | | - | |
259 | | - | |
260 | | - | |
261 | | - | |
262 | | - | |
263 | | - | |
264 | | - | |
265 | | - | |
266 | | - | |
267 | | - | |
268 | | - | |
269 | | - | |
270 | | - | |
271 | | - | |
272 | | - | |
273 | | - | |
274 | | - | |
275 | | - | |
276 | | - | |
277 | | - | |
278 | | - | |
279 | 252 | | |
280 | 253 | | |
281 | 254 | | |
282 | 255 | | |
283 | 256 | | |
284 | 257 | | |
285 | 258 | | |
286 | | - | |
287 | | - | |
288 | | - | |
289 | | - | |
290 | | - | |
291 | | - | |
292 | | - | |
293 | | - | |
294 | | - | |
295 | | - | |
296 | | - | |
297 | | - | |
298 | | - | |
299 | | - | |
300 | | - | |
301 | | - | |
302 | | - | |
| 259 | + | |
| 260 | + | |
| 261 | + | |
| 262 | + | |
| 263 | + | |
| 264 | + | |
| 265 | + | |
| 266 | + | |
| 267 | + | |
| 268 | + | |
| 269 | + | |
| 270 | + | |
| 271 | + | |
| 272 | + | |
| 273 | + | |
| 274 | + | |
| 275 | + | |
| 276 | + | |
| 277 | + | |
| 278 | + | |
| 279 | + | |
| 280 | + | |
| 281 | + | |
| 282 | + | |
| 283 | + | |
| 284 | + | |
| 285 | + | |
| 286 | + | |
| 287 | + | |
| 288 | + | |
| 289 | + | |
| 290 | + | |
| 291 | + | |
| 292 | + | |
| 293 | + | |
| 294 | + | |
| 295 | + | |
| 296 | + | |
| 297 | + | |
| 298 | + | |
| 299 | + | |
| 300 | + | |
| 301 | + | |
| 302 | + | |
| 303 | + | |
| 304 | + | |
| 305 | + | |
| 306 | + | |
| 307 | + | |
| 308 | + | |
| 309 | + | |
| 310 | + | |
| 311 | + | |
303 | 312 | | |
304 | | - | |
305 | | - | |
306 | | - | |
307 | | - | |
| 313 | + | |
| 314 | + | |
| 315 | + | |
| 316 | + | |
308 | 317 | | |
309 | | - | |
310 | | - | |
311 | | - | |
312 | | - | |
313 | | - | |
314 | | - | |
315 | | - | |
| 318 | + | |
| 319 | + | |
| 320 | + | |
| 321 | + | |
316 | 322 | | |
317 | 323 | | |
318 | | - | |
319 | | - | |
320 | | - | |
321 | | - | |
322 | | - | |
323 | | - | |
324 | | - | |
325 | | - | |
326 | | - | |
327 | | - | |
328 | | - | |
329 | | - | |
330 | | - | |
331 | | - | |
332 | | - | |
333 | | - | |
334 | | - | |
335 | | - | |
336 | | - | |
337 | | - | |
338 | | - | |
339 | | - | |
340 | | - | |
341 | | - | |
342 | | - | |
343 | | - | |
344 | | - | |
345 | | - | |
346 | | - | |
347 | | - | |
348 | | - | |
349 | | - | |
350 | | - | |
351 | | - | |
352 | | - | |
353 | | - | |
| 324 | + | |
| 325 | + | |
354 | 326 | | |
355 | | - | |
356 | | - | |
357 | | - | |
| 327 | + | |
| 328 | + | |
| 329 | + | |
358 | 330 | | |
359 | | - | |
| 331 | + | |
360 | 332 | | |
361 | | - | |
| 333 | + | |
| 334 | + | |
| 335 | + | |
| 336 | + | |
| 337 | + | |
| 338 | + | |
| 339 | + | |
| 340 | + | |
| 341 | + | |
| 342 | + | |
| 343 | + | |
| 344 | + | |
362 | 345 | | |
| 346 | + | |
363 | 347 | | |
364 | | - | |
| 348 | + | |
| 349 | + | |
365 | 350 | | |
366 | 351 | | |
367 | 352 | | |
| |||
0 commit comments