Ścieżki tokenów i danych uwierzytelniających
Wszystkie dane uwierzytelniające przechowywane przez Speedwave trafiają do wspólnego katalogu danych (domyślnie ~/.speedwave/). Użycie zmiennej środowiskowej SPEEDWAVE_DATA_DIR pozwala przenieść całą strukturę do innej lokalizacji. Zmienna ta jest odczytywana jednorazowo podczas uruchamiania procesu. Pełną listę zmiennych startowych znajdziesz w sekcji Zmienne środowiskowe, a zasady izolacji poświadczeń opisano w rozdziale Obsługa danych uwierzytelniających.
Struktura katalogów
Dział zatytułowany „Struktura katalogów”Folder~/.speedwave/
Foldertokens/
Folder<project> /
Folder<service> / dane uwierzytelniające workera dla danej usługi
- … pliki uwierzytelniające
- _settings.json niesekretne ustawienia wtyczki
Folderllm/
- <provider_id> _api_key klucz API dostawcy LLM
Folderclaude-home/
Folder<project> /
Folder.claude/
- .credentials.json OAuth Anthropic (zarządzane przez Claude Code)
Folderoauth/
Folder<project> /
- <service> .json tokeny odświeżające OAuth wtyczki (poza punktem montowania)
Folderplugin-state/
Folder<slug> /
- bridge-token zapisany token mostka do hosta
Folderide-bridge/
- <port> .lock token UUID IDE Bridge
Folderpolicies/
Folder<project> /
- policy.json wyliczona polityka PII
- key klucz tokenizacji PII
Folderaudit/
Folder<project> /
- audit-proxy.jsonl rejestr wykrywania PII w proxy
- audit-hub.jsonl rejestr wykrywania PII w hubie
Oznaczenia: <project> to przestrzeń nazw projektu, <service> to identyfikator usługi MCP (workera wbudowanego lub wtyczki), <provider_id> to identyfikator dostawcy LLM, <slug> to identyfikator wtyczki, a <port> to numer portu IDE Bridge.
Zestawienie ścieżek
Dział zatytułowany „Zestawienie ścieżek”| Ścieżka | Przeznaczenie | Punkt montowania | Uprawnienia |
|---|---|---|---|
tokens/<project>/<service>/<file> | Dane uwierzytelniające pojedynczej usługi MCP | Tylko worker tej usługi, pod /tokens (tylko do odczytu) | plik 0o600, katalog 0o700 |
tokens/<project>/llm/<provider_id>_api_key | Klucz API dostawcy LLM | Tylko kontener proxy, pod /tokens (tylko do odczytu), jako zmienna SPW_KEY_<PROVIDER_ID> | plik 0o600, katalog 0o700 |
tokens/<project>/<service>/_settings.json | Niesekretne ustawienia wtyczki | Ten sam worker, wewnątrz /tokens (tylko do odczytu) | plik 0o600, katalog 0o700 |
policies/<project>/policy.json | Wyliczona polityka ochrony danych (PII) projektu | Tylko mcp-hub, pod /policy (tylko do odczytu), jako zmienna POLICY_FILE=/policy/policy.json | plik 0o600, katalog 0o700 |
policies/<project>/key | 32-bajtowy klucz szesnastkowy tokenizacji PII (AES-128-SIV) | Tylko mcp-hub, pod /policy (tylko do odczytu) | plik 0o600, katalog 0o700 |
audit/<project>/audit-*.jsonl | Rejestry zdarzeń tokenizacji PII (bez wartości oryginalnych) | proxy i mcp-hub, pod /audit (odczyt i zapis) | n/d |
claude-home/<project>/.claude/.credentials.json | Poświadczenia OAuth Anthropic | ${CLAUDE_HOME} pod /home/speedwave (odczyt i zapis) | zarządzane przez Claude Code |
oauth/<project>/<service>.json | Tokeny odświeżające OAuth wtyczek i sekrety klienta | Bez montowania (odczytywane przez worker oauth na hoście) | plik 0o600, katalog 0o700 |
plugin-state/<slug>/bridge-token | Zapisany token mostka do hosta | Bez montowania | plik 0o600 (jeśli istnieje) |
ide-bridge/<port>.lock | Token uwierzytelniający UUID v4 dla IDE Bridge | /home/speedwave/.claude/ide/ (tylko do odczytu) | plik 0o600, katalog 0o700 |
Tokeny workerów poszczególnych usług
Dział zatytułowany „Tokeny workerów poszczególnych usług”Każda usługa MCP przechowująca poświadczenia otrzymuje własny katalog tokens/<project>/<service>/ z plikami zadeklarowanymi w manifeście. Speedwave tworzy ten katalog tylko wtedy, gdy lista plików uwierzytelniających nie jest pusta. Jeśli wtyczka posiada formularz ustawień, w katalogu umieszczany jest dodatkowo plik _settings.json z wartościami jawnymi (dane poufne pozostają wyłącznie w plikach uwierzytelniających). Katalog ten jest montowany w trybie tylko do odczytu w odpowiednim workerze pod ścieżką /tokens, a reguła SecurityCheck PLUGIN_TOKEN_PATH_MISMATCH przed uruchomieniem kontenera weryfikuje poprawność ścieżki montowania.
Klucze dostawców LLM
Dział zatytułowany „Klucze dostawców LLM”Klucz API dostawcy LLM skonfigurowany w claude.llm jest zapisywany w pliku tokens/<project>/llm/<provider_id>_api_key. Katalog llm jest montowany w trybie tylko do odczytu wyłącznie w kontenerze proxy, a każdy klucz jest przekazywany w postaci nazwy zmiennej środowiskowej SPW_KEY_<PROVIDER_ID> (identyfikator dostawcy wielkimi literami ze znakiem _ zamiast -):
openrouter -> SPW_KEY_OPENROUTERmy-anthropic -> SPW_KEY_MY_ANTHROPIC
tokens/proj/llm/openrouter_api_keyPoświadczenia OAuth Anthropic
Dział zatytułowany „Poświadczenia OAuth Anthropic”Dane uwierzytelniające OAuth Anthropic są zapisywane w pliku claude-home/<project>/.claude/.credentials.json, gdzie zarządza nimi bezpośrednio Claude Code w ramach montowania ${CLAUDE_HOME} pod ścieżką /home/speedwave. Speedwave konfiguruje jedynie punkt montowania w compose oraz czyści plik po wywołaniu polecenia speedwave logout.
Tokeny odświeżające OAuth wtyczek
Dział zatytułowany „Tokeny odświeżające OAuth wtyczek”Tokeny odświeżające OAuth oraz sekrety klienta dla wtyczek nie trafiają do katalogu tokens/. Są one przechowywane poza punktami montowania w pliku oauth/<project>/<service>.json i przetwarzane przez proces pomocniczy po stronie hosta.
Stan wtyczek i token mostka
Dział zatytułowany „Stan wtyczek i token mostka”Zmienny stan poszczególnych wtyczek jest zapisywany w katalogu plugin-state/<slug>/ niezależnie od podpisanych plików wtyczki. Przykładem jest token mostka hosta plugin-state/<slug>/bridge-token, tworzony z uprawnieniami 0o600, o ile manifest wtyczki zawiera flagę persistent_token.
Blokada IDE Bridge
Dział zatytułowany „Blokada IDE Bridge”Plik blokady IDE Bridge (ide-bridge/<port>.lock) zawiera jednorazowy token UUID v4 generowany przy każdym starcie aplikacji Desktop. Jest zapisywany z uprawnieniami 0o600 w katalogu nadrzędnym 0o700 i montowany w kontenerze w trybie tylko do odczytu pod ścieżką /home/speedwave/.claude/ide/.
Polityka PII i klucz tokenizacji
Dział zatytułowany „Polityka PII i klucz tokenizacji”W katalogu z uprawnieniami ograniczonymi do właściciela (policies/<project>/) znajdują się dwa pliki: policy.json (wyliczona polityka ochrony danych wrażliwych) oraz key (32-bajtowy klucz szesnastkowy dla algorytmu AES-128-SIV, tworzony automatycznie przy pierwszym użyciu). Cały katalog jest montowany w trybie tylko do odczytu w kontenerze Tool Gateway (mcp-hub) pod ścieżką /policy, a zmienna POLICY_FILE=/policy/policy.json wskazuje na plik polityki. Zasady działania polityk oraz mechanizm szyfrowania tokenów opisano w rozdziale Tokenizacja.
Utrata pliku klucza uniemożliwia odszyfrowanie jakichkolwiek tokenów wygenerowanych wcześniej w danym projekcie. Speedwave nie przechowuje żadnej bazy mapowań wartości – klucz jest jedynym elementem pozwalającym na przywrócenie oryginalnych danych.
Dzienniki audytowe wykrywania PII
Dział zatytułowany „Dzienniki audytowe wykrywania PII”Katalog audit/<project>/ zawiera dwa pliki rejestrów: audit-proxy.jsonl oraz audit-hub.jsonl, które odnotowują zdarzenia tokenizacji danych wrażliwych (bez zapisywania oryginalnych wartości). Katalog ten jest montowany w trybie do odczytu i zapisu w kontenerach proxy oraz mcp-hub pod ścieżką /audit. Więcej informacji o strukturze dzienników znajdziesz w sekcji Logi i diagnostyka.
Uprawnienia systemowe plików
Dział zatytułowany „Uprawnienia systemowe plików”Speedwave tworzy pliki z danymi uwierzytelniającymi z uprawnieniami 0o600, a katalogi nadrzędne z 0o700, przypisując je do bieżącego konta użytkownika. W systemie Windows odpowiednikiem jest lista kontroli dostępu (DACL) z pełnymi uprawnieniami dla twojego konta.
W systemach unixowych Speedwave dodatkowo weryfikuje poprawność uprawnień przy każdym starcie i automatycznie koryguje błędne bity. W systemie Windows uprawnienia DACL są nadawane jednorazowo podczas tworzenia pliku lub katalogu.