Pineflight
Logo von Secret Desk

Open Source von Pineflight

Secret Desk

Ein lokales Portal für alle GitHub-Actions-Secrets und -Variablen deiner Repositories: Es zeigt, was wann abläuft, stellt neue Tokens bei den Anbietern aus, lässt jeden neuen Wert von einem Menschen prüfen und bestätigen und schreibt ihn erst dann direkt nach GitHub. Werte werden nie gespeichert.

Übersichtsseite von Secret Desk in der Demo, mit erfundenen Daten
Übersicht in der Demo (erfundene Daten)Die Startseite beantwortet eine Frage: Was braucht heute Aufmerksamkeit? Oben ein Hinweisband („1 Prüfung wartet auf dich, nichts wird nach GitHub geschrieben, bis du bestätigst“), darunter vier Kacheln mit Zählern für abgelaufen, bald fällig, fehlend und offene Prüfungen. Darunter die Liste „Braucht Aufmerksamkeit“, filterbar nach Stufe (dev, staging, production, shared). In der Demo steht dort ein Cloudflare-Token, das in fünf Tagen fällig wird, und ein Supabase-Token ohne Ablaufdatum. Links die Navigation, ganz unten der Hinweis, dass hier ein simuliertes GitHub läuft.Alle Bilder stammen aus der eingebauten Demo mit erfundenen Daten. Unter jedem Bild steht, was darauf zu sehen ist.

Auf einen Blick

  • 01

    Ein Ort für alle Secrets und Variablen

    Alle GitHub-Actions-Secrets und -Variablen aller Repositories in einer Übersicht, mit Stufe, Status, Ablaufdatum und Verantwortlichem.

  • 02

    Ausstellen und erneuern beim Anbieter

    Für Stripe, Cloudflare, Supabase, Grafana und weitere erzeugt das Portal neue Tokens direkt beim Anbieter, prüft sie automatisch und schreibt sie nach deiner Bestätigung nach GitHub. Werte werden nie gespeichert.

  • 03

    Identitätsprüfungen im Portal

    Fragt ein Anbieter während eines Laufs nach einem Bestätigungscode oder Passwort, beantwortest du das im Portal, statt ins Browserfenster zu wechseln.

  • 04

    Stufen vergleichen

    Eine Matrix zeigt über alle Repositories, was in dev, staging und production fehlt, zu viel ist oder abweicht.

  • 05

    Integrations-API mit OpenAPI

    Eine OpenAPI-3.1-Beschreibung für Werkzeuge wie Jira, Confluence und Azure DevOps, angebunden über einen Job im eigenen Netz. Sie lesen Metadaten und fordern Erneuerungen an, sehen aber nie einen Wert.

  • 06Neu

    Fertige Entwicklungsumgebung

    Je Repository ein .env.local aus einer Vorlage, mit lokalen Adressen, Testschlüsseln und frisch erzeugten lokalen Secrets.

Neu

Lokale Entwicklung

Ein fertiges .env.local für jedes Repository

Neuer Rechner, neues Teammitglied, neues Repository: Statt Werte aus Chats und alten Dateien zusammenzusuchen, erzeugt Secret Desk die Entwicklungsdatei aus einer Vorlage des Teams. Ein Klick im Portal oder ein Befehl, und die lokale Umgebung startet.

Lokale Adressen
Die Vorlage trägt localhost-Adressen ein, etwa für die Website und den lokalen Supabase-Stack.
Testschlüssel statt Live-Schlüssel
Persönliche Entwicklungs-Tokens, etwa ein Schlüssel aus der Stripe-Sandbox, fragt das Portal beim Erzeugen ab.
Lokale Secrets frisch erzeugt
Zufallswerte entstehen beim Export und werden nirgends gespeichert.
Staging und Live bleiben, wo sie sind
Secret-Werte gibt es nur für Entwicklungsstufen. Secrets aus Staging oder Produktion landen nie auf einem Laptop.
Sicher abgelegt
Die Datei wird mit Modus 600 geschrieben. Das Portal zeigt nur Namen und warnt, wenn Git die Datei nicht ignoriert.
.env.local
  • NEXT_PUBLIC_SITE_URL=http://localhost:3000# Vorgabe
  • NEXT_PUBLIC_SUPABASE_URL=http://127.0.0.1:54321# Vorgabe
  • STRIPE_SECRET_KEY=rk_test_••••••••# Testschlüssel
  • RATE_LIMIT_SECRET=3f9a••••••••c41e# lokal erzeugt
Beispiel einer erzeugten Datei mit erfundenen Werten

So funktioniert es

  1. 01

    Jedes Projekt sammelt Tokens, API-Schlüssel und Webhook-Secrets an, und jedes läuft irgendwann ab. Secret Desk listet sie mit Verantwortlichem, Stufe und Ablaufdatum auf, damit nichts unbemerkt an einem Freitagabend ausläuft.

  2. 02

    Muss eines erneuert werden, erzeugt das Portal den neuen Wert beim Anbieter: über dessen API oder, wo es keine gibt, indem ein sichtbarer Chrome das Formular durchläuft, während du dich selbst anmeldest. Danach prüft es den neuen Wert: Funktioniert er, stimmen die Berechtigungen, wann läuft er ab, sind die Ziele erreichbar. Ein Prüfbericht mit Belegbild geht an einen Menschen, der bestätigt oder ablehnt.

  3. 03

    Erst nach dieser Bestätigung wird der Wert verschlüsselt in GitHub-Secrets und -Variablen geschrieben und der alte widerrufen. Ablehnen löscht den neuen Wert beim Anbieter wieder. Ein Wert liegt höchstens 15 Minuten im Speicher und wird nie gespeichert.

  4. 04

    Drumherum: frei definierbare Stufen, eine Vergleichsmatrix für Secrets und Variablen über Stufen und Repositories, ein Dev-.env-Export mit Modus 600, eine Team-Datei ohne Werte und ein optionaler verschlüsselter Tresor für Integrations-Tokens, dessen Schlüssel im Schlüsselbund des Betriebssystems liegt. Statt ein Token einzufügen, kannst du auf eine Umgebungsvariable oder eine 1Password-Referenz verweisen.

Was Secret Desk macht

Ablauf im Blick

Jedes Secret und jede Variable steht mit Stufe und Status in einer Übersicht – mit Verantwortlichem, Beschreibung und Links. So läuft ein Token nicht mehr freitagabends unbemerkt ab.

Die Gesamtliste aller Einträge, in der Demo 8 Secrets und 4 Variablen. Oben Filter nach Art, Repository, Stufe, Status, Anbieter und fehlenden Parametern, dazu Gruppieren und Sortieren. In der Tabelle steht je Zeile der Name mit Beschreibung und Tags, der Zielwert oder Ablauf, die Ziele in GitHub und der Status: „OK“, „Abgelaufen“ (das Cloudflare-Token seit drei Tagen), „Ablauf unklar“ oder „Nicht verglichen“. Rechts je Zeile Symbole für Aktionen. Von hier aus geht es in die Detailansicht.

Secret Desk Einträge in der Demo, erfundene Daten

Neue Tokens per API

Wo ein Anbieter eine API hat, stellt das Portal den neuen Wert selbst aus. Das Kopieren und Einfügen von Hand entfällt.

Die Seite „Integrationen“ zeigt, womit das Portal arbeiten darf. Darunter steht der Hinweis, dass Zugangsdaten im Speicher bleiben oder, wenn du es willst, verschlüsselt im lokalen Tresor liegen. Die Anbieter sind nach Kategorie gruppiert: Code und CI (GitHub), Hosting und Edge (Cloudflare), Datenbank (Supabase), Zahlungen (Stripe), E-Mail (Resend). Jede Karte zeigt den Verbindungsstatus „Verbunden“, eine Kurzbeschreibung und, wo vorhanden, bis wann das hinterlegte Secret gültig ist. Oben rechts „Integration hinzufügen“, daneben „Alle aufklappen“.

Secret Desk Integrationen in der Demo, erfundene Daten

Prüfen, bestätigen, dann schreiben

Der neue Wert wird geprüft und in einem Prüfbericht zusammengefasst. Ein Mensch bestätigt jeden Punkt. Erst danach wird er nach GitHub geschrieben.

Die Prüfansicht für einen neu erzeugten Wert. Links der Prüfbeleg: Secret, Stufe, Anbieter, Ziel-Repository und ein Fingerabdruck, mit dem sich der Wert später vergleichen lässt, ohne ihn zu verraten. Darunter die automatischen Prüfungen mit „OK“, etwa plausible Länge und „Ziel erreichbar mit Schreibrecht“. Rechts die Checkliste, die ein Mensch selbst abhakt (gleicher Wert in allen Zielen, alle Verbraucher nach dem Schreiben neu ausgerollt), ein Notizfeld und zwei Knöpfe: „Bestätigen und nach GitHub schreiben“ wird erst nach dem Abhaken aktiv, „Ablehnen und neuen Wert löschen“ räumt beim Anbieter auf. Oben rechts läuft ein Zähler mit der Zeit, die der Wert noch im Speicher liegt (hier 14:52).

Prüfansicht von Secret Desk in der Demo: Prüfbericht mit Checkliste zum Bestätigen oder Ablehnen, erfundene Daten

Werte werden nie gespeichert

Ein Wert liegt höchstens 15 Minuten im Arbeitsspeicher und wird nur an zwei Stellen weitergegeben: an die API des Anbieters und verschlüsselt an GitHub.

Weitere Ansichten

Detailansicht eines Secrets mit Verlauf und Zielen

Die Seite zu einem einzelnen Secret, hier das abgelaufene Cloudflare-Token. Oben der Status und drei Wege weiter: „Neuen Wert erzeugen“ (automatisch über die API des Anbieters), „Wert einfügen“ und „Nur Plan zeigen“. Darunter Karten mit Beschreibung, Verantwortlichem und Link zum Dashboard des Anbieters, den Parametern, den Fakten (Dienst, Anbieter, Ablaufdatum, zuletzt erneuert, zuletzt bestätigt) und den Zielen in GitHub. Ganz unten der Verlauf aller Prüfungen.

Secret Desk Detailansicht eines Secrets mit Verlauf und Zielen in der Demo, erfundene Daten

Vergleich: Live-Matrix der Namen gegen die Stufen

Die Vergleichsmatrix. Oben wählst du die Stufen, die verglichen werden (hier production und staging), und kannst Stufen-Wörter wie STAGING oder PRODUCTION aus den Namen herausnehmen, damit zusammengehörige Zeilen zusammenfallen. Darunter eine Karte je Stufe mit den Zählern erwartet, vorhanden, fehlt, unerwartet und Fehler (staging: 7 erwartet, 5 vorhanden, 1 fehlt). Der Knopf „Alles nach GitHub schreiben“ gleicht Lücken aus. Weiter unten je Repository eine Tabelle: Zeilen sind Namen, Spalten sind Stufen, jede Zelle zeigt „OK“ oder „Fehler“.

Secret Desk Vergleich in der Demo, erfundene Daten

Variablen: Soll-Wert gegen GitHub

Dieselbe Liste, gefiltert auf Variablen. Anders als Secrets haben Variablen einen Soll-Wert, den das Portal speichert und mit GitHub vergleicht. In der Demo stehen dort vier Einträge, etwa eine Projekt-ID mit dem Wert proj_demo_123 und zwei Website-Adressen für Staging. Die Spalte „Status“ zeigt, ob der Wert schon mit GitHub verglichen wurde; je Zeile gibt es Aktionssymbole zum Abgleichen, Hochladen, Herunterladen und Löschen.

Secret Desk Variablen in der Demo, erfundene Daten

Anbieterauswahl mit Logos, nach Kategorien gruppiert

Der Auswahldialog „Integration hinzufügen“, hier weiter unten gescrollt. Jeder Anbieter hat eine eigene Karte mit Logo, Kurzbeschreibung und Status („Verbunden“ oder „Nicht eingerichtet“). Zu sehen sind die Kategorien Beobachtbarkeit (Grafana Cloud), KI (Anthropic, OpenAI), Daten-APIs (VesselAPI), Druck und Versand (Peecho) und Sonstiges (ein von Hand angelegter Beispielanbieter). Ganz unten führt „Eigenen Anbieter hinzufügen“ zu einem Formular für Dienste, die noch fehlen.

Secret Desk Anbieterauswahl mit Logos, nach Kategorien gruppiert in der Demo, erfundene Daten

Einstellungen: frei konfigurierbare Stufen

Die Einstellungen, hier der Reiter „Stufen“ (daneben „Richtlinie & Agenten“, „Speicher & Automatisierung“, „Sprache“ und „Entwickler“). Stufen sind frei benennbar; wie sie sich verhalten, hängt von ihrer Art ab: Lokal (dev), Test (Sandbox), Live (Produktion) oder Geteilt. Die Tabelle zeigt je Stufe die zugeordnete GitHub-Environment, wie viele Secrets und Variablen darauf liegen und Pfeile zum Umsortieren, Stift und Papierkorb. Neue Stufen legst du mit „Stufe hinzufügen“ an.

Secret Desk Einstellungen in der Demo, erfundene Daten

Repositories: Ordner auf diesem Rechner verknüpfen

Alle Repositories aus dem Bestand und aus GitHub in einer Tabelle, mit der Zahl der Secrets und Variablen je Repository. In der Spalte „Verknüpfter Ordner“ steht, welcher Ordner auf diesem Rechner dazugehört (in der Demo noch keiner, daher „Nicht verknüpft“); „Verknüpfen“ legt die Zuordnung an, und je Repository erzeugt „.env exportieren“ die Entwicklungsdatei. Oben „Lokal suchen“ findet Ordner automatisch, „Mit GitHub abgleichen“ liest die Repositories nach.

Secret Desk Repositories in der Demo, erfundene Daten

Angebundene Integrationen

Womit Secret Desk heute spricht. Manche Endpunkte sind gegen die echten Dienste geprüft, andere bisher nur gegen Mocks: Die Dokumentation nennt den Stand je Anbieter.

Per API

Das Portal erzeugt, prüft und widerruft diese Werte selbst, mit einem Token, das du einmal verbindest.

  • GitHub

    Schreibt Secrets, Variablen und Environment-Secrets verschlüsselt. Liest, welche Namen existieren.

  • Cloudflare

    API-Tokens, Access-Service-Tokens und R2-Zugangsdaten.

  • Cloudflare Turnstile

    Site Keys und Secrets für den Bot-Schutz.

  • Supabase

    API-Schlüssel, der Service-Role-Schlüssel und das Datenbankpasswort.

  • Stripe

    Webhook-Secrets, je Konto und im Test- oder Live-Modus.

  • Resend

    API-Schlüssel zum E-Mail-Versand.

  • Grafana Cloud

    Service-Account-Tokens und Access-Policy-Tokens.

  • OpenAI

    Service-Account-Schlüssel je Projekt, über einen Organisations-Admin-Schlüssel.

  • RevenueCat

    Liest Projekt- und App-IDs für Variablenquellen.

  • Lokal erzeugt

    Zufallswerte (Hex, Base64, UUID) und VAPID-Schlüsselpaare für Web-Push.

Per Browser

Für Anbieter ohne Schlüssel-API durchläuft ein sichtbarer Chrome das Formular nach einem YAML-Rezept. Anmeldung, 2FA und CAPTCHA bleiben bei dir.

  • GitHub

    Fine-grained Personal Access Tokens.

  • Supabase

    Access Tokens.

  • Stripe

    Eingeschränkte Schlüssel für ein Konto und einen Modus.

  • OpenAI

    API-Schlüssel und der Organisations-Admin-Schlüssel.

  • Anthropic

    API-Schlüssel je Workspace und der optionale Admin-Schlüssel.

  • Grafana Cloud

    Access Policies mit Token.

  • VesselAPI

    API-Schlüssel.

  • RevenueCat

    Secret-API-Schlüssel mit je einer Zugriffsstufe pro Bereich.

  • Peecho

    Liest Merchant-Key und Secret, erzeugt nichts.

Für KI-Agenten

Ein MCP-Server mit 24 Werkzeugen, ein Skill und eine HTTP-Agent-API mit OpenAPI-Beschreibung. Agenten pflegen Metadaten, fragen den Status ab und fordern Erneuerungen an. Sie sehen nie einen Wert und bestätigen nie.

Vollständige Liste und Stand

Die Eckdaten

Lizenz
MIT, frei nutzbar und veränderbar
Betrieb
Lokal auf Ihrem Rechner, nichts läuft in einer fremden Cloud
Systeme
macOS, Linux und Windows
Oberfläche
Deutsch und Englisch
Lokale Umgebung
Je Repository erzeugt das Portal das .env.local aus einer Vorlage: lokale Adressen, Testschlüssel und lokal erzeugte Secrets, Modus 600. Secrets aus Staging oder Produktion werden nie exportiert.
Team
Die Konfiguration liegt in einer Team-Datei ohne Werte. Sie lässt sich teilen, damit alle im Team dieselbe Einrichtung nutzen.
KI-Agenten
MCP-Server, Skill und HTTP-API: KI-Agenten sind schneller angebunden. Sie sehen nie einen Wert.

Ehrlicher Stand

Secret Desk ist eine frühe Version (0.1.0). Mehrere Anbieter-Schnittstellen sind bisher nur gegen Nachbildungen getestet, und die Praxis-Tests liefen bisher auf macOS. Die Projektseite auf GitHub nennt die Grenzen genau.

Selbst ausprobieren

Der Quellcode, die Dokumentation und eine Demo ohne Konten liegen auf GitHub.

Secret Desk auf GitHub