Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion bin/mxrb
Original file line number Diff line number Diff line change
Expand Up @@ -1588,7 +1588,10 @@ else
functional-test new Module.Flow Scaffold a runtime functional test
evaluation new Name Scaffold static model evaluations
presentation init Module Initialize presentation directories
page new Module.Name Scaffold a page
page templates [--json] List audited page patterns as a tree
page new|generate|g Module.Name Scaffold a page
[--template NAME] Apply starter/blank/dashboard/form-vertical
[--chain CHAIN] Compose page/nanoflow/microflow actions
nanoflow new Module.Name Scaffold a client nanoflow
repository new Module.Name Scaffold a repository port and adapter
security init Module Scaffold module roles
Expand Down
18 changes: 16 additions & 2 deletions docs/de-DE/native-runtime-quality-report.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Qualitätsbericht für nativen Build und Runtime

Datum: 4. August 2026.
Datum: 5. August 2026.

## Bestätigtes Ergebnis

Expand All @@ -13,7 +13,17 @@ Datum: 4. August 2026.
- Projects API inventarisierte 130 Apps. Drei echte Git-Projekte (`MyFirstModule`, `LearnNow Trainning Management`, `SLATaskApp`) bestanden validate → export → generate → validate → compare;
- `MyFirstModule` wurde ohne proprietäre Builder als exaktes 11.12.1 erzeugt. Runtime synchronisierte 655 Operationen, erstellte den aktiven Admin `mx`, lieferte React-Shell und gestaltetes Login auf `127.0.0.1:18080` und zeigte die erwarteten Tabellen;
- eine neu erstellte 10.24.0.73019-Anwendung mit optimiertem Client bestand offizielles `mx check` und `mxbuild`, natives Modell/Java/Rollup/Portable-Paket, 460 Datenbanksynchronisierungen, Readiness-Probe und HTTP 200;
- finale QA: 1.002 Beispiele, null Fehler, 100,00% Zeilen (16.917/16.917), 100,00% Branches (6.659/6.659) und RuboCop ohne Verstöße in 238 Dateien.
- authentifizierte Chromium-QA bestand wiederholt für Home und Orders mit
deterministischen DOM/Layout/Style/ARIA-Snapshots und Screenshots, null
Konsolenfehlern und einer expliziten SHA-256-Baseline;
- `mxrb page new|generate|g Modul.Seite --chain ...` materialisiert gültige
MPRs für `page:microflow`, `page:nanoflow` und
`page:nanoflow:microflow`; ohne Option bleibt das minimale Seiten-Scaffold
unverändert;
- `mxrb page templates` zeigt den Baum starter/blank/dashboard/form-vertical;
`--template` kombiniert Vorlagen mit Chains, und dashboard/form-vertical
bestanden in einer echten Runtime mit kompiliertem Theme und null Konsolenfehlern;
- finale QA: 1.039 Beispiele, null Fehler, 100,00% Zeilen (17.224/17.224), 100,00% Branches (6.811/6.811) und RuboCop ohne Verstöße in 244 Dateien.

## Korrekturen aus dem Verbesserungsbericht

Expand All @@ -39,6 +49,10 @@ Datum: 4. August 2026.
kompiliert. Der auditierte Graph-Teilumfang umfasst Entscheidungen,
Fehlerpfade, verschachtelte Nanoflows, JavaScript-Aktionen und serverseitige
Microflow-Aufrufe; nicht unterstützte Clientknoten schlagen geschlossen fehl;
- der PostgreSQL-Workspace injiziert eine konsistente JDBC-URL und die Runtime-
SSL-Option; Navigationsrollen bei `CheckNothing`, Scroll-Modi, SidebarToggle
und Rückgabekonstanten von Microflow-Data-Sources folgen den im
authentifizierten 11.12.1-Client beobachteten Verträgen;
- echte Browserklicks bestätigten Home → Courses → Add → Save. Parametergestützte
DataView/TextBox-Formulare rendern und speichern Werte; Create übergibt die GUID
über `openForm2`, während die Commit-/Rollback-Autorisierung aus den Modulrollen
Expand Down
19 changes: 19 additions & 0 deletions docs/de-DE/platform-operations.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,11 @@ script/frontend_acceptance App.mpr --mxbuild /pfad/mxbuild -o frontend.json
script/frontend_acceptance App.mpr --mx /pfad/mx -o frontend-diagnostics.json
script/frontend_lifecycle_acceptance --version 11.12.1 --mx /pfad/mx \
--mxbuild /pfad/mxbuild --strict-warnings -o frontend-lifecycle.json
script/frontend_browser_acceptance --scenario examples/frontend-browser-scenario.json \
--url http://127.0.0.1:18080 --password-file /pfad/credentials.json \
--baseline examples/frontend-browser-baseline-11.12.1.json
script/frontend_browser_acceptance --scenario examples/page-chain-browser-scenario.json \
--url http://127.0.0.1:18080 --password-file /pfad/credentials.json
```

`mxrb frontend migrate` ist standardmäßig eine unveränderliche, fail-closed
Expand Down Expand Up @@ -66,6 +71,20 @@ In der offiziellen Matrix 10.24.0.73019 und 11.12.1 endeten Quelle und Rebuild
mit null Fehlern, Warnungen, Deprecations oder Empfehlungen in `mx check` sowie
null MxBuild-Fehlern.

`script/frontend_browser_acceptance` steuert Chromium über lokales CDP,
authentifiziert ohne Passwort in der Kommandozeile und vergleicht
deterministische Snapshots von Struktur, Geometrie, Styles und ARIA-Zustand.
Browser-Ausnahmen, defekte Widgets und der generische Runtime-Fehlerdialog
lassen das Gate fehlschlagen. Nur `--update-baseline` ersetzt die Baseline;
normale Läufe vergleichen schreibgeschützt. `mx.logout()` hält das Gate auch
unter einer Trial-Lizenz wiederholbar.

`page-chain-browser-scenario.json` verwendet eine `PageChainQa`-App mit
`DirectOrder`, `ClientOrder` und `HybridOrder`, erzeugt durch die drei Werte von
`page --chain`. Das Szenario klickt auf jeder Seite `Refresh` und verlangt auch
berechnetes CSS — Dokumentrand, Header-Gradient und Card-Hintergrund —, sodass
funktionales HTML ohne Theme das Gate nicht besteht.

`--mx` führt den offiziellen schreibgeschützten Checker mit Warnungen,
Deprecations und Best-Practice-Empfehlungen aus. Das Gate validiert die
Exit-Bitmaske und vergleicht normalisierte Signaturen von Quelle und Rebuild.
Expand Down
41 changes: 40 additions & 1 deletion docs/de-DE/scaffolds.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,46 @@ Verfügbar sind Projekt/Modul (`init`, `module new`), Domäne (`entity`,
`repository`, `scheduled-event`), Präsentation (`presentation init`, `page`,
`nanoflow`), Sicherheit, Infrastruktur (`integration`, `published-rest`,
`consumed-rest`, `java-action`), Prüfung (`functional-test`, `evaluation`),
Design und GitHub-CI.
Design und GitHub-CI. `mxrb page new Modul.Seite` erzeugt weiterhin eine
minimale Seite. Mit `--chain` entsteht ein ausführbarer vertikaler Schnitt mit
Beispielentität, Data-Source-Microflow, editierbarer Seite, Aktionen und
Responsive-Menüeintrag. Drei echte Mendix-Aktionsketten stehen zur Verfügung:

```sh
mxrb page new App.Order --chain page:microflow
mxrb page generate App.Order --chain page:nanoflow
mxrb page g App.Order --chain page:nanoflow:microflow
```

`page:microflow` ruft die Runtime direkt auf; `page:nanoflow` hält die Aktion
auf dem Client; `page:nanoflow:microflow` verwendet den Client-Flow zur
Orchestrierung eines Runtime-Aufrufs. Alle Modi erzeugen `ACT_LoadOrder` als
Data Source. Ketten, die mit einem Microflow enden, erzeugen zusätzlich
`ACT_RefreshOrder`. `page generate` und `page g` sind Aliase von `page new`.
Jede erzeugte Kette wird als gültiges MPR materialisiert und durch den
Compiler-Preflight geprüft.

## Seitenvorlagen

In Mendix sind Page Templates Ausgangspunkte, deren Struktur zu einer normalen,
editierbaren Seite wird. MXRB listet nur durch Compiler und Runtime auditierte
Muster:

```sh
mxrb page templates
mxrb page templates --json
mxrb page new App.Landing --template starter
mxrb page new App.Empty --template blank
mxrb page new App.Operations --template dashboard
mxrb page new App.Order_NewEdit --template form-vertical
```

`form-vertical` erzeugt zusätzlich eine Beispielentität und eine
`ACT_Load...`-DataView-Quelle. Jede Vorlage lässt sich mit `--chain`
kombinieren; `--template dashboard --chain page:nanoflow` ergänzt zum Beispiel
eine Client-Aktion. Diese Namen sind stabile, von Mendix-Mustern inspirierte
MXRB-Verträge; sie behaupten nicht, alle installierten Atlas- oder Marketplace-
Vorlagen still zu importieren. Siehe die [offizielle Seitendokumentation](https://docs.mendix.com/refguide/pages/).

Artefaktbefehle verwenden `new Modul.Name`; Projektbefehle verwenden
`design init` und `ci init github`. Alle unterstützten Entitätstypen und
Expand Down
16 changes: 12 additions & 4 deletions docs/de-DE/validation-matrix.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

[Português](../pt-BR/validation-matrix.md) · [English](../en-US/validation-matrix.md) · **Deutsch**

Stand: 29. Juli 2026.
Stand: 5. August 2026.

```text
Original-MPR → validate → export → generate → validate → compare
Expand Down Expand Up @@ -37,16 +37,24 @@ Gate.
## Semantik, Tests und Runtime

- 1.778 Artefakte und 3.387 Referenzen;
- 510 Beispiele, keine Fehler;
- 100 % Zeilenabdeckung (7.062/7.062);
- 100 % Branch-Abdeckung (2.626/2.626);
- 1.039 Beispiele, keine Fehler;
- 100 % Zeilenabdeckung (17.224/17.224);
- 100 % Branch-Abdeckung (6.811/6.811);
- Sudoku-Modellbewertung: 7/7;
- funktionale Runtime-Tests: 3/3 lokal und 3/3 in Docker.

Ruby-Assertions prüfen Rückgabewerte und persistierte XPath-Anzahlen. Der
Docker-Lauf bestätigte Games 1/2/3 und Cells 81/162/243; JUnit XML ist nur ein
in Ruby erzeugtes CI-Format.

Das 11.12.1-Gate enthält nun zusätzlich ein authentifiziertes Chromium-Szenario
mit Login, Home-/Orders-Navigation, deterministischen DOM/Layout/Style/ARIA-
Snapshots, Screenshots, explizitem SHA-256-Baseline-Vergleich, Fehlererkennung
und echtem Logout. Alle drei `page --chain`-Pfade werden als gültiges MPR
materialisiert und durch den Compiler-Preflight geprüft. Die mit
`page --template` erzeugten Dashboard- und vertikalen Formularseiten wurden
zusätzlich in der Runtime mit geprüftem berechnetem CSS ausgeführt.

`script/validate_matrix` prüfte 1.506 Units in sechs Round-Trips in 14,760 s.
`script/benchmark` maß 6,8463 s für die vollständige Sudoku-Pipeline.
Deterministisches Fuzzing deckt 250 BSON-Dokumente und 50 atomare
Expand Down
17 changes: 15 additions & 2 deletions docs/en-US/native-runtime-quality-report.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Native build and Runtime quality report

Date: August 4, 2026.
Date: August 5, 2026.

## Confirmed result

Expand All @@ -13,7 +13,16 @@ Date: August 4, 2026.
- Projects API inventoried 130 accessible apps. Three real Git projects (`MyFirstModule`, `LearnNow Trainning Management`, and `SLATaskApp`) passed validate → export → generate → validate → compare;
- `MyFirstModule` was regenerated as exact 11.12.1 without proprietary builders. Runtime synchronized 655 database operations, created the active `mx` administrator, served the React shell and styled login publicly on `127.0.0.1:18080`, and exposed the expected domain tables;
- a from-scratch optimized-client 10.24.0.73019 application passed official `mx check` and `mxbuild`, native model/Java/Rollup/portable packaging, 460 database synchronization operations, readiness probe and HTTP 200;
- final QA: 1,002 examples, zero failures, 100.00% lines (16,917/16,917), 100.00% branches (6,659/6,659), and clean RuboCop across 238 files.
- authenticated Chromium QA passed repeatedly across Home and Orders with
deterministic DOM/layout/style/ARIA snapshots and screenshots, zero console
errors, and an explicit SHA-256 baseline;
- `mxrb page new|generate|g Module.Page --chain ...` materializes valid MPRs
for `page:microflow`, `page:nanoflow`, and `page:nanoflow:microflow`; without
the option, the minimal page scaffold remains unchanged;
- `mxrb page templates` exposes the starter/blank/dashboard/form-vertical tree;
`--template` composes those templates with chains, and dashboard/form-vertical
passed in a real Runtime with compiled theme CSS and zero console errors;
- final QA: 1,039 examples, zero failures, 100.00% lines (17,224/17,224), 100.00% branches (6,811/6,811), and clean RuboCop across 244 files.

## Corrections from the improvement report

Expand All @@ -39,6 +48,10 @@ Date: August 4, 2026.
The audited graph subset includes decisions, error paths, nested nanoflows,
JavaScript actions and server microflow calls; unsupported client nodes fail
closed instead of being mislabeled as microflows;
- the PostgreSQL workspace injects a coherent JDBC URL and the Runtime SSL
option; `CheckNothing` navigation roles, scroll modes, SidebarToggle, and
microflow data-source return constants follow the real 11.12.1 client
contracts observed during authenticated testing;
- real browser clicks verified Home → Courses → Add → Save. Parameter-backed
DataView/TextBox forms render and persist values; create passes GUIDs through
`openForm2`, while commit/rollback authorization is derived from page module
Expand Down
19 changes: 19 additions & 0 deletions docs/en-US/platform-operations.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,11 @@ script/frontend_acceptance App.mpr --mxbuild /path/to/mxbuild -o frontend.json
script/frontend_acceptance App.mpr --mx /path/to/mx -o frontend-diagnostics.json
script/frontend_lifecycle_acceptance --version 11.12.1 --mx /path/to/mx \
--mxbuild /path/to/mxbuild --strict-warnings -o frontend-lifecycle.json
script/frontend_browser_acceptance --scenario examples/frontend-browser-scenario.json \
--url http://127.0.0.1:18080 --password-file /path/to/credentials.json \
--baseline examples/frontend-browser-baseline-11.12.1.json
script/frontend_browser_acceptance --scenario examples/page-chain-browser-scenario.json \
--url http://127.0.0.1:18080 --password-file /path/to/credentials.json
```

`mxrb frontend migrate` is an immutable, fail-closed preview by default. For
Expand Down Expand Up @@ -65,6 +70,20 @@ and 11.12.1 matrix, source and rebuilt projects completed with zero errors,
warnings, deprecations, or recommendations in `mx check`, plus zero MxBuild
errors.

`script/frontend_browser_acceptance` drives Chromium over local CDP,
authenticates without placing the password on the command line, traverses
pages, and compares deterministic structure, geometry, style, and ARIA-state
snapshots. Browser exceptions, broken widgets, and the generic Runtime error
dialog fail the gate. Baseline replacement requires explicit
`--update-baseline`; normal runs are read-only comparisons. The gate signs out
through `mx.logout()` so it remains repeatable under a trial license.

`page-chain-browser-scenario.json` uses a `PageChainQa` app with `DirectOrder`,
`ClientOrder`, and `HybridOrder`, created by the three `page --chain` values.
It clicks `Refresh` on each page and also requires computed CSS — document
margin, header gradient, and card background — so functional but unthemed HTML
fails the gate.

`--mx` runs the official read-only checker with warnings, deprecations, and
best-practice recommendations enabled. It validates the checker's exit bitmask
and compares normalized source/rebuilt signatures. The accepted 10.24 fixture
Expand Down
39 changes: 38 additions & 1 deletion docs/en-US/scaffolds.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,44 @@ The available families are project/module (`init`, `module new`), domain
`query`, `repository`, `scheduled-event`), presentation (`presentation init`,
`page`, `nanoflow`), security, infrastructure (`integration`, `published-rest`,
`consumed-rest`, `java-action`), verification (`functional-test`, `evaluation`),
design, and GitHub CI.
design, and GitHub CI. `mxrb page new Module.Page` keeps creating a minimal
page. Adding `--chain` creates an executable vertical slice with a sample
entity, data-source microflow, editable page, actions, and a Responsive
navigation item. Three real Mendix action chains are available:

```sh
mxrb page new App.Order --chain page:microflow
mxrb page generate App.Order --chain page:nanoflow
mxrb page g App.Order --chain page:nanoflow:microflow
```

`page:microflow` calls the Runtime directly; `page:nanoflow` keeps the action
client-side; and `page:nanoflow:microflow` uses the client flow to orchestrate a
Runtime call. All modes create `ACT_LoadOrder` for the data source. Chains that
end in a microflow also create `ACT_RefreshOrder`. `page generate` and `page g`
are aliases of `page new`. Every generated chain is materialized as a valid MPR
and checked by compiler preflight.

## Page templates

In Mendix, page templates are starting points whose structure becomes a normal,
editable page. MXRB lists only patterns audited by its compiler and Runtime:

```sh
mxrb page templates
mxrb page templates --json
mxrb page new App.Landing --template starter
mxrb page new App.Empty --template blank
mxrb page new App.Operations --template dashboard
mxrb page new App.Order_NewEdit --template form-vertical
```

`form-vertical` also creates a sample entity and `ACT_Load...` DataView source.
Every template can be combined with `--chain`; for example,
`--template dashboard --chain page:nanoflow` adds a client action to the
dashboard. These names are stable MXRB contracts inspired by Mendix patterns,
not a claim that every installed Atlas or Marketplace template is silently
imported. See the [official pages documentation](https://docs.mendix.com/refguide/pages/).

Artifact commands use `new Module.Name`; project commands use `design init` and
`ci init github`. See the [entity DSL](entity-dsl.md) for all supported entity
Expand Down
19 changes: 13 additions & 6 deletions docs/en-US/validation-matrix.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

[Português](../pt-BR/validation-matrix.md) · **English** · [Deutsch](../de-DE/validation-matrix.md)

Last updated: 2026-07-29.
Last updated: 2026-08-05.

The matrix exercises this pipeline using only MXRB:

Expand Down Expand Up @@ -202,9 +202,9 @@ instead of dumping the complete removed and added flow bodies.

## Ruby evaluations and coverage gate

The current suite contains 510 examples and passes with 100.00% line coverage
(7,062/7,062 executable library lines) and 100.00% branch coverage
(2,626/2,626 branches).
The current suite contains 1,039 examples and passes with 100.00% line coverage
(17,224/17,224 executable library lines) and 100.00% branch coverage
(6,811/6,811 branches).
Run the enforced gate with:

```sh
Expand Down Expand Up @@ -235,8 +235,15 @@ MPR was copied before instrumentation and remained unchanged.
Ruby assertions now verify return expressions and persisted XPath counts. The
Docker run confirmed Game counts 1/2/3 and Cell counts 81/162/243 after the
three cases. JUnit XML remains an optional Ruby-written CI report, not a Java
test dependency. End-to-end browser behavior remains outside this runtime
suite.
test dependency.

The 11.12.1 gate now also includes an authenticated Chromium scenario: login,
Home/Orders navigation, deterministic DOM/layout/style/ARIA snapshots,
screenshots, explicit SHA-256 baseline comparison, widget/Runtime error
detection, and real logout. The three supported `page --chain` paths are each
materialized as a valid MPR and checked by compiler preflight. Dashboard and
vertical-form `page --template` outputs were also exercised in Runtime with
audited computed CSS.

## Reproducibility and performance

Expand Down
Loading
Loading