Skip to content

Version 1.1 — Stabilität & Backend-Umbau

Abgeschlossen — März 2026

Insight+ v1.1 war der erste große Milestone nach dem Foundation Release. Ziel war es, das System von innen heraus zu stabilisieren und die Admin-Console von einem einfachen Verwaltungstool zu einem mächtigen Steuerungswerkzeug auszubauen.

Überblick

ZeitraumFebruar — März 2026
Phasen4 Phasen, 23 Einzelpläne
StatusAlle Phasen abgeschlossen und verifiziert
SchwerpunktTestbarkeit, dynamische Datenfelder, Admin-Console Redesign, WYSIWYG Editor

Was wurde erreicht

Phase 1: Test Infrastructure

Vitest + Supertest + Testcontainers — eine vollständige, CI-lauffähige Test-Suite für den bpplus-server.

  • Dependency Injection Refactoring: Alle 6 Services akzeptieren pool als Constructor-Parameter; createApp(pool) Factory für testbare Server-Instanzen
  • Route-Tests: Auth, Customers, Charts, Dashboards, MaterializedViews, Users — alle HTTP-Endpunkte abgedeckt
  • Aspect-Tests: Robustheitstests für alle 13 Aspects — kein Aspect darf bei Fehlern crashen
  • Cross-Tenant-Isolation: Separate Tenant-Datenbanken mit unterschiedlichen Seed-Daten (netto=100 vs. netto=200) zur Erkennung von Daten-Leaks
  • CI-Workflow: GitHub Actions mit Testcontainers-basierter PostgreSQL-Datenbank
  • AspectError: Einheitliches Fehlerformat — benutzerfreundliche Meldung im Frontend, technische Details im Server-Log

Ergebnis: Von null Tests auf eine umfassende Test-Suite, die bei jedem Push automatisch läuft.


Phase 2: Dynamic Schema Introspection

Runtime-Erkennung von DB-Feldern aus Kunden-Datenbanken — Ablösung der hartcodierten Feldlisten.

  • Schema-Introspection via pg_catalog: Automatische Erkennung aller Tabellen und Spalten aus den Kunden-PostgreSQL-Datenbanken
  • Metadata-Cache: 24-Stunden-Cache für Schema-Daten mit manuellem Refresh
  • Preview-Modus: Dry-Run vor jeder Änderung — zeigt neue, entfernte und unveränderte Felder bevor Änderungen angewendet werden
  • Impact-Analyse: Proaktive Warnung wenn entfernte Felder noch von Charts referenziert werden
  • Field Config API: PATCH-basierte Konfiguration von Labels, Formaten, Sortierbarkeit und Durchsuchbarkeit pro Feld
  • Feld-Konfigurations-UI: Inline-Editing in einer Spreadsheet-ähnlichen Tabelle, gruppiert nach Aspect, mit Auto-Save

Ergebnis: 4.010 Spalten werden automatisch aus Kunden-Datenbanken erkannt und sind konfigurierbar.


Phase 3: Admin Console Core

Kompletter Neuaufbau der Admin-Console — vom einfachen Verwaltungstool zum Dashboard-artigen Steuerungszentrum.

  • Wizard-Fix: Kunden-Anlage-Wizard speichert DB-Konfiguration korrekt (JSONB), Dashboard-Selektion funktioniert, Schema-Introspection bei Anlage
  • KPI-Dashboard: Admin-Startseite mit KPI-Cards (Kunden, Charts, Views, Fehlerrate) und Detail-Charts (DB-Gesundheit, View-Refresh-Historie)
  • Chart-Bibliothek: Card-basiertes Grid mit Live-ChartPreview, Suchfeld, Typ-Filter und Paginierung ab 50+ Charts
  • MaterializedViews-Übersicht: Kunden-Cards mit View-Status (Grün/Gelb/Rot), Refresh-Countdown, problematische Views nach oben sortiert
  • Kunden-Detailseite: Tab-Layout mit Status-Badges, Quick-Actions, Datenbank-Verwaltung, Feld-Konfiguration und Dashboard-Übersicht
  • Navigation: Mini-Drawer mit Icons und Tooltips als Standard, auf-/zuklappbar

Ergebnis: Eine Admin-Console, die auf einen Blick den Systemzustand zeigt und alle Verwaltungsaufgaben direkt erreichbar macht.


Phase 4: WYSIWYG Dashboard Editor

Drag-and-Drop Grid-Editor mit Live-Chart-Vorschau und Auto-Save.

  • GridStack-basiertes 12-Spalten-Grid: Frei positionierbare und skalierbare Chart-Kacheln mit Push- und Kompaktierungsverhalten
  • Chart-Sidebar: Ausklappbares Panel mit allen verfügbaren Charts des Kunden — per Drag ins Grid ziehen
  • Live-Vorschau: Echte Chart-Daten im Editor, Skeleton-Animation während des Ladens
  • Auto-Save: Layout-Änderungen werden automatisch per PATCH gespeichert (debounced)
  • Dashboard-Stammdaten: Name, KI-Konfiguration, "Dashboard öffnen" und "Link kopieren" direkt im Editor
  • Frontend-Rendering: Responsive Grid-Layout im Kunden-Dashboard basierend auf gespeichertem Layout (col-12 auf Mobile, col-md-N ab Desktop)

Ergebnis: Admins können Dashboard-Layouts visuell zusammenstellen — die Charts erscheinen live so, wie sie auch im Kunden-Dashboard aussehen werden.

Technische Highlights

ThemaDetail
Test-FrameworkVitest 4 + Supertest + Testcontainers (PostgreSQL 17)
DI-PatternConstructor Injection für alle Services, createApp(pool) Factory
Schema-Cachepg_catalog-basiert, 24h TTL, Dry-Run Preview
Grid-EngineGridStack.js mit Vue 3 Integration via renderCB
Auto-SavePATCH /dashboards/:id/layout mit jsonb_set
FehlerformatAspectError mit toUserResponse() und toLogEntry()
CIGitHub Actions, Testcontainers, RYUK_DISABLED=true

Metriken

  • 23 Pläne in 4 Phasen abgearbeitet
  • ~216 Minuten Gesamtdurchlaufzeit
  • ~9 Minuten durchschnittliche Plandauer
  • 8/8 UAT-Tests bestanden (Phase 1)
  • Alle Phasen durch automatisierte Verifikation bestätigt

Insight+ - Live-Daten direkt aus büro+