2.7 KiB
Trading Tool Prototype — MariaDB
Go-Webapp für Trading-Anfragen, automatische Quest-Erzeugung, MariaDB und Pocket ID Login via OIDC.
Webinterface
Ja. Enthalten sind:
- Login-Seite über Pocket ID / OIDC
- Dashboard für Trading-Anfragen
- Formular für neue Ankauf-/Verkaufs-Anfragen
- Quest-Tabelle für Mining, Logistik, Crafting usw.
- Auftragnehmer können Status und Notizen/Gegenvorschläge setzen
Auftragnehmer beeinflussen den Workflow
Ja, im aktuellen Prototyp über Quest-Status und Notizen:
acceptedin_progressdoneblockedchange_requestedcancelled
Alle Änderungen werden zusätzlich in quest_updates protokolliert. Damit kann später die Workflow-Engine z. B. bei blocked eine zusätzliche Beschaffungsquest oder bei change_requested eine Trading-Freigabe erzeugen.
Pocket ID Setup
In Pocket ID eine OIDC-App anlegen:
- Callback URL:
http://localhost:8080/auth/callback - Scopes:
openid profile email
Pocket ID stellt Client ID, Client Secret und Issuer URL bereit. Die Issuer URL ist normalerweise die Basis-URL deiner Pocket-ID-Instanz; die Discovery URL ist /.well-known/openid-configuration.
Start
cp .env.example .env
docker compose up -d
set -a; source .env; set +a
go mod tidy
go run ./cmd/server
Dann öffnen: http://localhost:8080
Architektur
- Go-Standardbibliothek für HTTP, Templates, Cookies, OIDC-Discovery und JWT-RS256-Prüfung.
- Einzige externe Go-Abhängigkeit:
github.com/go-sql-driver/mysqlals MariaDB/MySQL-Treiber. - Tabellen:
users,departments,items,trade_requests,quests,quest_updates,events,workflow_rules.
Nächste sinnvolle Schritte
- Workflow-Regeln aus
workflow_rules.actions_jsonausführen statt Default-Schritte im Code. - Rollen/Gruppen aus Pocket ID Claims auf Trading/Admin/Abteilungen mappen.
- Lagerbestand und Stücklisten/BOM für Crafting ergänzen.
- API-Endpunkte für externe Quest-Systeme ergänzen.
Admin-Konfiguration
Nach dem Login gibt es im Dashboard den Link Admin-Konfiguration (/admin). Dort kannst du ohne Codeänderung konfigurieren:
- globale Einstellungen wie Währung, Standardmarge, Auto-Quest-Erzeugung und Admin-E-Mails
- Abteilungen
- Items und Ressourcen
- Request- und Quest-Statuswerte
- Quest-Templates inklusive zuständiger Abteilung, Reihenfolge und Belohnungsfaktor
- Workflow-Regeln als JSON
Standardmäßig darf jeder eingeloggte Nutzer die Admin-Seite öffnen. Setze in /admin bei admin_emails eine kommagetrennte Liste, z. B. you@example.com,lead@example.com, dann erhalten nur diese Pocket-ID-Nutzer Zugriff.
Bestehende Installationen erhalten die Admin-Tabellen über migrations/002_admin.sql automatisch beim nächsten Start.