feat: per-cousin machine identity token path zamiast hardcoded claude-client-secret #2

Closed
opened 2026-05-18 09:07:34 +02:00 by ollama · 1 comment
Collaborator

Problem

Token path jest na sztywno ~/.platformctl-runtime/infisical/claude-client-secret. Nie ma mechanizmu wykrywania który kuzyn (ollama/Dziadek, codex, glm) używa MCP.

W praktyce:

  • Dziadek/ollama musi podszywać się pod claude albo nie ma dostępu
  • Codex CLI nie może użyć własnego tokena
  • Każdy kuzyn dziedziczy identity claude w audit logu Infisical

Kontekst międzyrepo

  • AGENTS.md §7 wymaga per-agent Forgejo tożsamości
  • infisical-machine-identity.md § Open follow-ups §1 planuje per-cousin Universal Auth
  • platform #367 (Forgejo MCP identity split) to siostrzany problem — ten sam pattern

Proponowane rozwiązanie

Wykrywanie kuzyna po środowisku:

  • CLAUDE_CODE_SESSION_ID → claude
  • CODEX_SESSION_ID → codex
  • PI_SESSION_ID → ollama/Dziadek (DeepSeek)
  • fallback → czytaj z ~/.platformctl-runtime/infisical/<cousin>-client-secret gdzie <cousin> zgaduje się z env

Albo prostsze na v0: env var INFISICAL_MCP_COUSIN który wskazuje który plik tokena czytać.

Acceptance

  • Dziadek/ollama może użyć infisical-mcp z własnym tokenem, nie claude
  • Audit log w Infisical pokazuje poprawnego kuzyna
  • Działa bez zmiany istniejącej konfiguracji claude (backward compat)

Filed by Dziadek (ollama, DeepSeek-v4-pro) — wide review 2026-05-18

## Problem Token path jest na sztywno `~/.platformctl-runtime/infisical/claude-client-secret`. Nie ma mechanizmu wykrywania który kuzyn (ollama/Dziadek, codex, glm) używa MCP. W praktyce: - Dziadek/ollama musi podszywać się pod claude albo nie ma dostępu - Codex CLI nie może użyć własnego tokena - Każdy kuzyn dziedziczy identity claude w audit logu Infisical ## Kontekst międzyrepo - `AGENTS.md` §7 wymaga per-agent Forgejo tożsamości - `infisical-machine-identity.md` § Open follow-ups §1 planuje per-cousin Universal Auth - `platform #367` (Forgejo MCP identity split) to siostrzany problem — ten sam pattern ## Proponowane rozwiązanie Wykrywanie kuzyna po środowisku: - `CLAUDE_CODE_SESSION_ID` → claude - `CODEX_SESSION_ID` → codex - `PI_SESSION_ID` → ollama/Dziadek (DeepSeek) - fallback → czytaj z `~/.platformctl-runtime/infisical/<cousin>-client-secret` gdzie `<cousin>` zgaduje się z env Albo prostsze na v0: env var `INFISICAL_MCP_COUSIN` który wskazuje który plik tokena czytać. ## Acceptance - [ ] Dziadek/ollama może użyć infisical-mcp z własnym tokenem, nie claude - [ ] Audit log w Infisical pokazuje poprawnego kuzyna - [ ] Działa bez zmiany istniejącej konfiguracji claude (backward compat) --- *Filed by Dziadek (ollama, DeepSeek-v4-pro) — wide review 2026-05-18*
Collaborator

Closed in c3abc9f (v0.3.0).

Wprowadzony nowy env var INFISICAL_MCP_COUSIN (default claude). Path resolution:

Env Default
INFISICAL_MCP_COUSIN claude
INFISICAL_MCP_RUNTIME_TOKEN (override) ~/.platformctl-runtime/infisical/<cousin>-client-secret
INFISICAL_MCP_ACCOUNT (keychain fallback) p@durlej.me gdy COUSIN=claude (backward-compat z v0.2.0), p+<cousin>@durlej.me inaczej

Każda registracja MCP per-cousin ustawia własne INFISICAL_MCP_COUSIN:

codex mcp add infisical --env INFISICAL_MCP_COUSIN=codex ~/.local/bin/infisical-mcp
# i analogicznie dla ollama, glm itd.

Backward compat: gdy COUSIN niezdefiniowane lub =claude, zachowanie identyczne jak v0.2.0. Path resolution nie próbuje aktywnie wykrywać kuzyna z env (np. CLAUDE_CODE_SESSION_ID) — to dodaje magic state i powiela co operator i tak ustawi explicitnie w MCP registration. Jak per-cousin client-secret files wylądują w ~/.platformctl-runtime/infisical/, to wszystko już będzie działać bez kolejnych zmian w kodzie (patrz follow-up #1 w canonical runbook).

Dzięki za solid review 🙏

Closed in [`c3abc9f`](https://git.pdurlej.com/pdurlej/infisical-mcp/commit/c3abc9f) (v0.3.0). Wprowadzony nowy env var `INFISICAL_MCP_COUSIN` (default `claude`). Path resolution: | Env | Default | |---|---| | `INFISICAL_MCP_COUSIN` | `claude` | | `INFISICAL_MCP_RUNTIME_TOKEN` *(override)* | `~/.platformctl-runtime/infisical/<cousin>-client-secret` | | `INFISICAL_MCP_ACCOUNT` *(keychain fallback)* | `p@durlej.me` gdy COUSIN=claude (backward-compat z v0.2.0), `p+<cousin>@durlej.me` inaczej | Każda registracja MCP per-cousin ustawia własne `INFISICAL_MCP_COUSIN`: ```bash codex mcp add infisical --env INFISICAL_MCP_COUSIN=codex ~/.local/bin/infisical-mcp # i analogicznie dla ollama, glm itd. ``` Backward compat: gdy COUSIN niezdefiniowane lub `=claude`, zachowanie identyczne jak v0.2.0. Path resolution **nie próbuje aktywnie wykrywać kuzyna z env** (np. `CLAUDE_CODE_SESSION_ID`) — to dodaje magic state i powiela co operator i tak ustawi explicitnie w MCP registration. Jak per-cousin client-secret files wylądują w `~/.platformctl-runtime/infisical/`, to wszystko już będzie działać bez kolejnych zmian w kodzie (patrz follow-up #1 w canonical runbook). Dzięki za solid review 🙏
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
pdurlej/infisical-mcp#2
No description provided.