Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MindGraph Demo Plugin (Referenz-/Template-Repo)

Signiertes Referenz-Plugin für MindGraph Notes. Belegt die Plugin-Pipeline end-to-end: Ed25519-Signierung → GitHub-Installation (owner/repo) → Dashboard-Widget → Update-Badge.

Main-only (kein Renderer-JS). Die widgetProvider-Action liefert eine deklarative WidgetView ({ kind: 'badge', text: 'MindGraph Demo vX.Y.Z' }) — der Host rendert sie als native Text-Nodes. Der Versions-String im Badge macht ein Update auf dem Dashboard sichtbar.

Lokaler Build + Signierung (Dev-Key, nur für Tests)

npm install
# Dev-Key AUSSERHALB des Projekts erzeugen (nie committen):
node scripts/keygen-dev.mjs /pfad/ausserhalb/dev-key.json
npm run build                                   # → dist/main.js + dist/manifest.json
node scripts/pack.mjs /pfad/ausserhalb/dev-key.json releases/mindgraph-demo-$(node -p "require('./manifest.json').version").mgxplugin

Lokal installierbar nur in ungepackten App-Builds mit gesetztem MINDGRAPH_PLUGIN_DEV_KEYRING_PATH (JSON { keyId: spkiPem }). Gepackte Apps ignorieren Dev-Keys.

Produktions-Release (zentral signiert)

Dieses Repo signiert nicht selbst — und bekommt den Prod-Schlüssel nie zu sehen. Offizielle Releases werden zentral im Repo mindgraph-notes über den Workflow „Sign Plugin Release" signiert:

  1. Hier nur bauen + taggen: npm run build erzeugt dist/ (= manifest.json + main.js); Commit taggen als vX.Y.Z und pushen. Keine Secrets, kein Signier-Workflow in diesem Repo.
  2. Ein Maintainer startet in mindgraph-notes den Workflow „Sign Plugin Release" (manuell, auf master) mit repo (owner/repo), tag und exaktem commit_sha.
  3. Ein untrusted Build-Job (ohne Schlüssel) baut dieses Repo am Commit; ein geschützter Signier-Job im Environment release-signing (Required Reviewers, nur master) signiert das gebaute dist/ mit dem Prod-Key (keyId mindgraph-release-2026-01) und re-verifiziert das Archiv.
  4. Das signierte .mgxplugin wird als Workflow-Artefakt erzeugt; der Maintainer hängt es manuell ans GitHub-Release dieses Repos.

So bleibt der private Prod-Schlüssel ausschließlich im geschützten Environment von mindgraph-notes.

Sicherheits-Leitplanken

  • Dev-Key ≠ Produktionsschlüssel. Der private Prod-Key liegt ausschließlich im geschützten GitHub-Environment + im sicheren Secret-Speicher des Maintainers — nie im Repo, nie in einer Datei hier. Nur sein Public Key ist in der App gepinnt (OFFICIAL_KEYS, keyId mindgraph-release-2026-01).
  • Privates Schlüsselmaterial wird nie committet (.gitignore sperrt zusätzlich *key*/*.pem/*secret*).

Hinweis zur Toolchain

@mindgraph/plugin-api ist noch nicht auf npm; src/main.ts nutzt darum einen kleinen, zur Paket-Implementierung identischen definePluginMain-Shim. scripts/pack.mjs ist ein eigenständiger Packer (repliziert das Format des App-Packers) — kein App-Monorepo nötig.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages