unsloth/studio
Roland Tannous 593bd10506 feat(studio): encrypt external provider API keys at rest in localStorage
API keys for external providers (OpenAI, Mistral, etc.) were stored as
plaintext in localStorage, vulnerable to browser extensions and XSS.

Add password-derived AES-256-GCM encryption: on login the user's password
is used via PBKDF2 (100k iterations, SHA-256) to derive an in-memory
encryption key. API keys are encrypted before writing to localStorage and
decrypted on read. The derived key is never persisted — cleared on logout,
re-derived on next login.

Legacy plaintext keys are transparently migrated on first access. Password
changes re-encrypt all stored keys. No backend changes required — the
existing RSA-OAEP transit encryption is unaffected.
2026-04-01 18:54:25 +00:00
..
backend Merge branch 'main' into feature/chat-api 2026-04-01 18:28:44 +00:00
frontend feat(studio): encrypt external provider API keys at rest in localStorage 2026-04-01 18:54:25 +00:00
__init__.py Final cleanup 2026-03-12 18:28:04 +00:00
install_llama_prebuilt.py Resolve latest usable published llama.cpp release instead of fixed pinned tag (#4741) 2026-04-01 06:06:17 -07:00
install_python_stack.py studio: unify Windows installer/setup logging style, verbosity controls, and startup messaging (#4651) 2026-03-30 00:53:23 -07:00
LICENSE.AGPL-3.0 Add AGPL-3.0 license to studio folder 2026-03-09 19:36:25 +00:00
setup.bat Final cleanup 2026-03-12 18:28:04 +00:00
setup.ps1 Resolve latest usable published llama.cpp release instead of fixed pinned tag (#4741) 2026-04-01 06:06:17 -07:00
setup.sh Resolve latest usable published llama.cpp release instead of fixed pinned tag (#4741) 2026-04-01 06:06:17 -07:00
Unsloth_Studio_Colab.ipynb Allow install_python_stack to run on Colab (#4633) 2026-03-27 00:29:27 +04:00