Commit c10e1fb
feat: auth security upgrade — manual login, storage panel, backup/restore, browser choice
Addresses Airtable team concerns about credential safety:
- Manual/Auto login mode toggle (manual = zero credentials stored)
- Manual login runner opens visible browser for user to authenticate
- Profile path canonicalized to ~/.airtable-user-mcp/.chrome-profile/
- Credential forwarding gated on loginMode in MCP registration
- Logout clears both OS keychain and browser profile
- Session expiry notification with re-login button (manual mode)
- Browser selection dropdown with custom path support
- Browser choice propagated to external IDE configs
- Storage & Data panel with paths, sizes, open-in-explorer
- Encrypted backup/restore (AES-256-GCM) for session data
- OS-level file permission hardening (chmod/icacls)
- 27 tests passing, VSIX packages cleanly
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>File tree
24 files changed
+1570
-144
lines changed- packages
- extension
- src
- auto-config
- mcp
- test
- webview
- mcp-server/src
- webview/src
- tabs
- test
- scripts
24 files changed
+1570
-144
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
229 | 229 | | |
230 | 230 | | |
231 | 231 | | |
| 232 | + | |
| 233 | + | |
| 234 | + | |
| 235 | + | |
| 236 | + | |
| 237 | + | |
| 238 | + | |
| 239 | + | |
| 240 | + | |
| 241 | + | |
| 242 | + | |
| 243 | + | |
| 244 | + | |
| 245 | + | |
| 246 | + | |
| 247 | + | |
| 248 | + | |
| 249 | + | |
| 250 | + | |
| 251 | + | |
| 252 | + | |
| 253 | + | |
| 254 | + | |
| 255 | + | |
| 256 | + | |
| 257 | + | |
| 258 | + | |
| 259 | + | |
| 260 | + | |
| 261 | + | |
| 262 | + | |
| 263 | + | |
| 264 | + | |
| 265 | + | |
232 | 266 | | |
233 | 267 | | |
234 | 268 | | |
| |||
327 | 361 | | |
328 | 362 | | |
329 | 363 | | |
| 364 | + | |
| 365 | + | |
330 | 366 | | |
331 | 367 | | |
332 | 368 | | |
333 | 369 | | |
| 370 | + | |
334 | 371 | | |
| 372 | + | |
335 | 373 | | |
336 | 374 | | |
337 | 375 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
| 5 | + | |
5 | 6 | | |
6 | 7 | | |
7 | 8 | | |
| |||
53 | 54 | | |
54 | 55 | | |
55 | 56 | | |
56 | | - | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
57 | 67 | | |
58 | 68 | | |
59 | 69 | | |
60 | | - | |
61 | | - | |
62 | | - | |
| 70 | + | |
63 | 71 | | |
64 | 72 | | |
65 | 73 | | |
66 | 74 | | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
67 | 85 | | |
68 | 86 | | |
69 | 87 | | |
70 | | - | |
| 88 | + | |
71 | 89 | | |
72 | 90 | | |
73 | 91 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
433 | 433 | | |
434 | 434 | | |
435 | 435 | | |
436 | | - | |
437 | | - | |
438 | | - | |
439 | | - | |
| 436 | + | |
| 437 | + | |
| 438 | + | |
| 439 | + | |
| 440 | + | |
| 441 | + | |
| 442 | + | |
| 443 | + | |
| 444 | + | |
| 445 | + | |
440 | 446 | | |
441 | | - | |
442 | | - | |
443 | | - | |
444 | | - | |
445 | | - | |
446 | | - | |
447 | | - | |
448 | | - | |
449 | | - | |
450 | | - | |
451 | | - | |
452 | | - | |
453 | | - | |
454 | | - | |
455 | | - | |
| 447 | + | |
| 448 | + | |
| 449 | + | |
456 | 450 | | |
| 451 | + | |
457 | 452 | | |
458 | 453 | | |
459 | | - | |
460 | | - | |
461 | | - | |
| 454 | + | |
| 455 | + | |
| 456 | + | |
| 457 | + | |
| 458 | + | |
| 459 | + | |
| 460 | + | |
| 461 | + | |
| 462 | + | |
462 | 463 | | |
463 | 464 | | |
464 | 465 | | |
| |||
0 commit comments