Stage Manager Demoausprobieren GitHub

Plugins

Eigene Seiten, Menüeinträge, Rechte, Einstellungen und Karten auf der Übersicht, ohne den Kern zu ändern. Jedes Plugin ist vor der Aufnahme geprüft. Du lädst es als ZIP-Datei in den Einstellungen hoch oder installierst es mit einem Befehl.

Katalog

    Plugin einreichen

    Du meldest dich mit deinem GitHub-Konto an, nicht auf dieser Seite. Hier gibt es keine eigenen Konten und keine Passwörter, die jemand stehlen könnte.

    Mit GitHub einreichen
    1. Repository mit TagDein Plugin ist ein Python-Paket in einem öffentlichen Repository. Jede Version bekommt einen Git-Tag, zum Beispiel v1.0.0.
    2. Formular ausfüllenRepository, Tag, Name, Plugin-ID, Kategorie und zwei Sätze Beschreibung.
    3. Automatische PrüfungEin Bot löst den Tag in einen Commit auf, prüft die pyproject.toml und antwortet im selben Issue.
    4. FreigabeJemand aus dem Team liest den Code an diesem Commit. Danach erscheint das Plugin hier im Katalog. Für ein Update reichst du den neuen Tag ein.

    Ein Plugin schreiben

    Ein Plugin ist ein Python-Paket mit einem Plugin-Objekt. Stage Manager findet es über den Entry Point stage_manager.plugins und gibt ihm beim Start einen Kontext, über den es sich einhängt. Ausgeschaltet verschwinden seine Seiten, seine Daten bleiben.

    Die drei offiziellen Plugins sind kleine, vollständige Beispiele samt Tests.

    pyproject.toml

    [project.entry-points."stage_manager.plugins"]
    mein_plugin = "mein_plugin:plugin"

    mein_plugin/__init__.py

    from flask import Blueprint, render_template
    from app import navigation
    from app.plugins import Plugin
    
    pages = Blueprint("mein_plugin", __name__, template_folder="templates")
    
    
    @pages.get("/mein-plugin")
    def start():
        return render_template("mein_plugin/start.html")
    
    
    def setup(ctx):
        ctx.blueprint(pages)
        ctx.menu("planning", navigation.Entry(
            "mein_plugin", "Mein Plugin", "box", "mein_plugin.start", "events"))
        ctx.permission("mein_recht", "Mein Plugin bedienen")
        ctx.settings([{"key": "mein_plugin_text", "label": "Text", "default": ""}])
        ctx.dashboard(lambda: render_template("mein_plugin/karte.html"))
    
    
    plugin = Plugin(key="mein_plugin", name="Mein Plugin", setup=setup,
                    version="0.1.0", description="Was es tut.")
    ctx.blueprint
    Seiten und Formulare
    ctx.menu
    Eintrag in einer Menügruppe
    ctx.counter
    Zahl neben einem Menüeintrag
    ctx.permission
    Eigenes Recht für Rollen
    ctx.settings
    Bereich unter Einstellungen → Plugins
    ctx.dashboard
    Karte auf der Übersicht
    ctx.login_link
    Link unter dem Anmeldeformular

    So bleibt der Katalog sicher

    Geprüft vor der Aufnahme
    Nichts erscheint automatisch. Jedes Plugin wird gelesen, bevor es in den Katalog kommt.
    Auf den Commit festgelegt
    Beim Prüfen halten wir fest, auf welchen Commit der Tag zeigt. ZIP-Download und Befehl holen genau diesen Commit. Zeigt der Tag später auf anderen Code, verschwindet das Plugin aus dem Katalog, bis es neu geprüft ist.
    Direkt von GitHub
    Installiert wird aus dem Repository auf GitHub, nicht von einem eigenen Server. Diese Seite lädt nichts von fremden Servern.
    Offiziell heißt offiziell
    Das Zeichen „Offiziell“ tragen nur Plugins aus der Organisation Stage-Manager. Niemand kann es selbst setzen.
    Du entscheidest
    Ein Plugin läuft mit denselben Rechten wie Stage Manager. Installiere nur, was du brauchst, und melde uns, wenn dir etwas seltsam vorkommt.