jbergner 309e94d362
All checks were successful
release-tag / release-image (push) Successful in 2m40s
init
2026-05-27 02:34:11 +02:00
2026-05-27 02:34:11 +02:00
2026-05-27 02:34:11 +02:00
2026-05-27 02:34:11 +02:00
2026-05-27 02:34:11 +02:00
2026-05-27 02:34:11 +02:00
2026-05-27 02:34:11 +02:00
2026-05-27 02:34:11 +02:00
2026-05-27 02:34:11 +02:00
2026-05-27 02:34:11 +02:00
2026-05-27 02:34:11 +02:00
2026-05-27 02:34:11 +02:00

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:

  • accepted
  • in_progress
  • done
  • blocked
  • change_requested
  • cancelled

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/mysql als 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_json ausfü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.

Description
No description provided
Readme 66 KiB
Languages
Go 69.7%
HTML 29.3%
Dockerfile 1%