Deploymentcenter BotandClaude Opus 5 92bb400f02 fix(webui): e() nimmt jeden skalaren Wert entgegen
Die Seite brach beim Aufbau ab und lieferte im Browser
"switchMainTab is not defined": das Rendering endete vor dem Script-Block,
sodass keine einzige Funktion definiert wurde.

Ursache: e() war als ?string deklariert. PHP wandelt numerische Array-Schlüssel
automatisch in int um, sodass die Zeitraum-Auswahl im Fehler-Stream mit den
Schlüsseln 0/1/24/168/720 einen int übergab. Unter declare(strict_types=1) warf
das einen TypeError mitten in der Ausgabe.

Die enge Signatur war generell unpassend: mit ATTR_STRINGIFY_FETCHES = false
liefert PDO numerische Spalten als int, und genau diese Werte werden über e()
ausgegeben. Die Funktion nimmt jetzt jeden skalaren Typ entgegen.

Gefunden hat den Fehler die Selbstmeldung: die unbehandelte Exception landete
als Item im eigenen Bugtracker, inklusive Datei und Zeilennummer.

Die übrigen typisierten Helfer (dc_dt, dc_ago, getMonitorIconUrl, btUrl,
errUrl) wurden gegengeprüft; sie erhalten ausschließlich Strings bzw. Arrays.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-07 22:06:39 +02:00

Deploymentcenter — Entwickler- und Agenten-Dokumentation

Zentrale Plattform für Lizenzverwaltung, Software-Updates, Infrastruktur- Monitoring und einen Bugtracker, den Coding-Agenten selbständig bedienen.


Zuerst lesen

Dokument Wofür
UPGRADE.md Ablaufplan für die Umstellung auf 2.0. Enthält Pflichtschritte: Zugangsdaten wechseln, Migration, Evaluator-Cron.
Agent-Prompt-Vorlage Textbaustein für CLAUDE.md / AGENTS.md eines Projekts
Agenten-Handbuch Vollständige Beschreibung des Bugtracker-Workflows, öffentlich unter /docs/

Modul-Handbücher


Modulübersicht

Modul Aufgabe Endpunkte Authentifizierung
Bugtracker Fehler, Feature Requests und Ideen; Agenten-Workflow mit Claim/Lease /api/bugtracker/v1/report
/api/bugtracker/v1/projects
/api/bugtracker/v1/manage
Token mit bugtracker:*
UpdateService Release-Verteilung, semantischer Versionsvergleich /api/updateservice/v1/check
/api/updateservice/v1/publish
Lesen offen, Publish braucht updateservice:publish
Watchdog Heartbeat-Monitoring, Zustandsbewertung, Alarmierung /api/watchdog/v1/ping
/api/watchdog/v1/evaluate
Token mit watchdog:ping
Lizenzen Lizenzprüfung, Hardware-ID v2, Offline-Cache /api/license/v1/validate
/api/license/v1/deactivate
Validierung offen, Deaktivierung authentifiziert
Tokens Selbst-Provisionierung von Sub-Tokens /api/tokens/v1/provision Master-Token
System Verfügbarkeit, Schema-Status, Schnittstellenbeschreibung /api/health
/api/openapi.json
Health optional, OpenAPI offen

Schnittstelle maschinenlesbar

GET https://dc.mhdf.de/api/openapi.json

Ein Agent kann sich daran selbst orientieren — der früher fest im WebUI hinterlegte Textblock entfällt damit.


Antwortformat

Alle JSON-Endpunkte antworten einheitlich:

{ "status": "success", "…": "…" }
{ "status": "error", "error": { "code": "already_claimed", "message": "…" } }

Der code ist stabil und für Programme gedacht; die message richtet sich an Menschen und kann sich ändern.


Betrieb

Aufgabe Befehl
Deployment python scripts/deploy.py
Migration php public/install_db.php oder WebUI → System → DB-Migration
Evaluator (Cron, minütlich) curl -fsS -H "Authorization: Bearer <SHARED_KEY>" https://dc.mhdf.de/api/watchdog/v1/evaluate
Zustand prüfen curl https://dc.mhdf.de/api/health
Logs var/log/dc-<datum>.log auf dem Server

Aufbau

config/    Zugangsdaten (nicht versioniert), Vorlage in config.example.php
src/       Anwendungscode, PSR-4 unter dem Namensraum Deploymentcenter\
  Core/      Bootstrap, Konfiguration, DB, Auth, CSRF, HTTP, Tokens, Migrator
  Modules/   Bugtracker, License, UpdateService, Watchdog, Notify
public/    Webroot-Inhalte: WebUI, API-Endpunkte, öffentliche Dokumentation
sql/       Schema und Migrationen (fortlaufend nummeriert)
var/log/   Laufzeitprotokolle
scripts/   Deployment

Neue Klassen werden automatisch geladen, sobald sie dem Namensraum-Pfad entsprechen — eine require-Zeile ist nicht mehr nötig.

S
Description
No description provided
Readme
615 KiB
Languages
PHP 67.1%
C# 29.6%
PowerShell 1.5%
Shell 1%
Python 0.8%