mxrb 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (237) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +21 -0
  3. data/README.de-DE.md +108 -0
  4. data/README.md +172 -0
  5. data/README.pt-BR.md +109 -0
  6. data/bin/mxrb +1613 -0
  7. data/docs/README.md +10 -0
  8. data/docs/de-DE/README.md +24 -0
  9. data/docs/de-DE/architectural-patterns.md +26 -0
  10. data/docs/de-DE/architectural-standard.md +48 -0
  11. data/docs/de-DE/architecture.md +76 -0
  12. data/docs/de-DE/compiler.md +162 -0
  13. data/docs/de-DE/conventions.md +19 -0
  14. data/docs/de-DE/design-system.md +52 -0
  15. data/docs/de-DE/entity-dsl.md +53 -0
  16. data/docs/de-DE/native-runtime-quality-report.md +74 -0
  17. data/docs/de-DE/oql-sql.md +211 -0
  18. data/docs/de-DE/platform-api-integration.md +36 -0
  19. data/docs/de-DE/platform-operations.md +243 -0
  20. data/docs/de-DE/project-structure.md +32 -0
  21. data/docs/de-DE/ruby-first-roadmap.md +116 -0
  22. data/docs/de-DE/scaffolds.md +59 -0
  23. data/docs/de-DE/semantic-refactoring.md +56 -0
  24. data/docs/de-DE/team-server.md +33 -0
  25. data/docs/de-DE/validation-matrix.md +64 -0
  26. data/docs/de-DE/vetclinic-acceptance.md +24 -0
  27. data/docs/de-DE/writing.md +138 -0
  28. data/docs/en-US/README.md +24 -0
  29. data/docs/en-US/architectural-patterns.md +151 -0
  30. data/docs/en-US/architectural-standard.md +89 -0
  31. data/docs/en-US/architecture.md +170 -0
  32. data/docs/en-US/compiler.md +157 -0
  33. data/docs/en-US/conventions.md +82 -0
  34. data/docs/en-US/design-system.md +163 -0
  35. data/docs/en-US/entity-dsl.md +53 -0
  36. data/docs/en-US/native-runtime-quality-report.md +73 -0
  37. data/docs/en-US/oql-sql.md +201 -0
  38. data/docs/en-US/platform-api-integration.md +36 -0
  39. data/docs/en-US/platform-operations.md +244 -0
  40. data/docs/en-US/project-structure.md +49 -0
  41. data/docs/en-US/ruby-first-roadmap.md +186 -0
  42. data/docs/en-US/scaffolds.md +57 -0
  43. data/docs/en-US/semantic-refactoring.md +198 -0
  44. data/docs/en-US/team-server.md +32 -0
  45. data/docs/en-US/validation-matrix.md +257 -0
  46. data/docs/en-US/vetclinic-acceptance.md +23 -0
  47. data/docs/en-US/writing.md +655 -0
  48. data/docs/pt-BR/README.md +24 -0
  49. data/docs/pt-BR/architectural-patterns.md +25 -0
  50. data/docs/pt-BR/architectural-standard.md +533 -0
  51. data/docs/pt-BR/architecture.md +300 -0
  52. data/docs/pt-BR/compiler.md +162 -0
  53. data/docs/pt-BR/conventions.md +19 -0
  54. data/docs/pt-BR/design-system.md +65 -0
  55. data/docs/pt-BR/entity-dsl.md +116 -0
  56. data/docs/pt-BR/native-runtime-quality-report.md +73 -0
  57. data/docs/pt-BR/oql-sql.md +208 -0
  58. data/docs/pt-BR/platform-api-integration.md +36 -0
  59. data/docs/pt-BR/platform-operations.md +260 -0
  60. data/docs/pt-BR/project-structure.md +32 -0
  61. data/docs/pt-BR/ruby-first-roadmap.md +239 -0
  62. data/docs/pt-BR/scaffolds.md +104 -0
  63. data/docs/pt-BR/semantic-refactoring.md +55 -0
  64. data/docs/pt-BR/team-server.md +59 -0
  65. data/docs/pt-BR/validation-matrix.md +86 -0
  66. data/docs/pt-BR/vetclinic-acceptance.md +50 -0
  67. data/docs/pt-BR/writing.md +177 -0
  68. data/examples/sudoku_evaluation.rb +14 -0
  69. data/examples/sudoku_functional_test.rb +28 -0
  70. data/lib/mxrb/architecture/graph.rb +124 -0
  71. data/lib/mxrb/architecture/validator.rb +98 -0
  72. data/lib/mxrb/benchmark.rb +33 -0
  73. data/lib/mxrb/compare.rb +390 -0
  74. data/lib/mxrb/compiler/adapter.rb +96 -0
  75. data/lib/mxrb/compiler/artifact_document_compiler.rb +102 -0
  76. data/lib/mxrb/compiler/artifact_materializer.rb +53 -0
  77. data/lib/mxrb/compiler/client_model_materializer.rb +42 -0
  78. data/lib/mxrb/compiler/code_action_document_compiler.rb +64 -0
  79. data/lib/mxrb/compiler/code_action_materializer.rb +35 -0
  80. data/lib/mxrb/compiler/code_action_type_compiler.rb +32 -0
  81. data/lib/mxrb/compiler/combo_box_bundle_compiler.rb +314 -0
  82. data/lib/mxrb/compiler/compatibility_analyzer.rb +169 -0
  83. data/lib/mxrb/compiler/constants_materializer.rb +111 -0
  84. data/lib/mxrb/compiler/data_grid_bundle_compiler.rb +290 -0
  85. data/lib/mxrb/compiler/database_connector_action_compiler.rb +280 -0
  86. data/lib/mxrb/compiler/deployment_asset_copier.rb +60 -0
  87. data/lib/mxrb/compiler/deployment_bootstrapper.rb +208 -0
  88. data/lib/mxrb/compiler/deployment_materializer.rb +43 -0
  89. data/lib/mxrb/compiler/deployment_metadata.rb +64 -0
  90. data/lib/mxrb/compiler/domain_document_compiler.rb +153 -0
  91. data/lib/mxrb/compiler/domain_model_materializer.rb +35 -0
  92. data/lib/mxrb/compiler/domain_security_compiler.rb +82 -0
  93. data/lib/mxrb/compiler/gallery_bundle_compiler.rb +190 -0
  94. data/lib/mxrb/compiler/generic_widget_bundle_compiler.rb +281 -0
  95. data/lib/mxrb/compiler/image_bundle_compiler.rb +216 -0
  96. data/lib/mxrb/compiler/java_proxy_generator.rb +509 -0
  97. data/lib/mxrb/compiler/legacy_data_grid_compiler.rb +267 -0
  98. data/lib/mxrb/compiler/legacy_page_builder.rb +287 -0
  99. data/lib/mxrb/compiler/mda.rb +99 -0
  100. data/lib/mxrb/compiler/microflow_document_compiler.rb +85 -0
  101. data/lib/mxrb/compiler/microflow_materializer.rb +48 -0
  102. data/lib/mxrb/compiler/microflow_node_compiler.rb +250 -0
  103. data/lib/mxrb/compiler/model_package.rb +116 -0
  104. data/lib/mxrb/compiler/model_values.rb +67 -0
  105. data/lib/mxrb/compiler/nanoflow_program_compiler.rb +483 -0
  106. data/lib/mxrb/compiler/navigation_document_compiler.rb +93 -0
  107. data/lib/mxrb/compiler/packager.rb +100 -0
  108. data/lib/mxrb/compiler/page_bundle_builder.rb +56 -0
  109. data/lib/mxrb/compiler/page_bundle_compiler.rb +2004 -0
  110. data/lib/mxrb/compiler/page_document_compiler.rb +77 -0
  111. data/lib/mxrb/compiler/portable_packager.rb +356 -0
  112. data/lib/mxrb/compiler/project_jar_archive.rb +84 -0
  113. data/lib/mxrb/compiler/project_jar_builder.rb +121 -0
  114. data/lib/mxrb/compiler/project_materializer.rb +139 -0
  115. data/lib/mxrb/compiler/project_model_orderer.rb +52 -0
  116. data/lib/mxrb/compiler/runtime_data_types.rb +31 -0
  117. data/lib/mxrb/compiler/runtime_model_schema.rb +90 -0
  118. data/lib/mxrb/compiler/schemas/runtime-10.24.0.73019.json +1052 -0
  119. data/lib/mxrb/compiler/schemas/runtime-11.json +1215 -0
  120. data/lib/mxrb/compiler/schemas/runtime-6.10.8.json +1148 -0
  121. data/lib/mxrb/compiler/schemas/runtime-7.17.0.json +1144 -0
  122. data/lib/mxrb/compiler/schemas/runtime-7.5.0.json +1215 -0
  123. data/lib/mxrb/compiler/schemas/runtime-9.6.1.29396.json +868 -0
  124. data/lib/mxrb/compiler/schemas/system-model-10.24.0.73019.b64 +1135 -0
  125. data/lib/mxrb/compiler/schemas/system-model-11.12.1.b64 +815 -0
  126. data/lib/mxrb/compiler/schemas/system-model-6.10.8.b64 +497 -0
  127. data/lib/mxrb/compiler/schemas/system-model-7.17.0.b64 +519 -0
  128. data/lib/mxrb/compiler/schemas/system-model-7.5.0.b64 +504 -0
  129. data/lib/mxrb/compiler/schemas/system-model-9.6.1.29396.b64 +816 -0
  130. data/lib/mxrb/compiler/security_materializer.rb +104 -0
  131. data/lib/mxrb/compiler/settings_document_compiler.rb +45 -0
  132. data/lib/mxrb/compiler/settings_materializer.rb +25 -0
  133. data/lib/mxrb/compiler/source_model.rb +128 -0
  134. data/lib/mxrb/compiler/system_model_seed.rb +88 -0
  135. data/lib/mxrb/compiler/system_queue_materializer.rb +54 -0
  136. data/lib/mxrb/compiler/system_text_materializer.rb +49 -0
  137. data/lib/mxrb/compiler/translation_materializer.rb +95 -0
  138. data/lib/mxrb/compiler/web_bundle_builder.rb +155 -0
  139. data/lib/mxrb/compiler/web_list_data_source.rb +139 -0
  140. data/lib/mxrb/compiler/web_operation_compiler.rb +614 -0
  141. data/lib/mxrb/compiler/web_shell_materializer.rb +194 -0
  142. data/lib/mxrb/compiler/widget_package_extractor.rb +63 -0
  143. data/lib/mxrb/doctor.rb +116 -0
  144. data/lib/mxrb/dsl/builder.rb +1636 -0
  145. data/lib/mxrb/errors.rb +18 -0
  146. data/lib/mxrb/evaluation.rb +131 -0
  147. data/lib/mxrb/exporter.rb +1716 -0
  148. data/lib/mxrb/frontend/migrator.rb +775 -0
  149. data/lib/mxrb/functional.rb +307 -0
  150. data/lib/mxrb/github/annotator.rb +161 -0
  151. data/lib/mxrb/initializer.rb +257 -0
  152. data/lib/mxrb/integrity/validator.rb +136 -0
  153. data/lib/mxrb/io/bson_codec.rb +145 -0
  154. data/lib/mxrb/io/mpr_file.rb +558 -0
  155. data/lib/mxrb/io/mxunit_codec.rb +42 -0
  156. data/lib/mxrb/marketplace.rb +380 -0
  157. data/lib/mxrb/model/association.rb +98 -0
  158. data/lib/mxrb/model/attribute.rb +100 -0
  159. data/lib/mxrb/model/connector.rb +17 -0
  160. data/lib/mxrb/model/design_materializer.rb +133 -0
  161. data/lib/mxrb/model/design_migration.rb +126 -0
  162. data/lib/mxrb/model/design_system.rb +111 -0
  163. data/lib/mxrb/model/domain_model.rb +51 -0
  164. data/lib/mxrb/model/entity.rb +180 -0
  165. data/lib/mxrb/model/menu.rb +38 -0
  166. data/lib/mxrb/model/microflow.rb +100 -0
  167. data/lib/mxrb/model/module.rb +142 -0
  168. data/lib/mxrb/model/navigation.rb +127 -0
  169. data/lib/mxrb/model/page.rb +410 -0
  170. data/lib/mxrb/model/project.rb +187 -0
  171. data/lib/mxrb/model/unit.rb +48 -0
  172. data/lib/mxrb/module_initializer.rb +75 -0
  173. data/lib/mxrb/official_marketplace/content_api.rb +292 -0
  174. data/lib/mxrb/official_marketplace/dependency_resolver.rb +329 -0
  175. data/lib/mxrb/official_marketplace/lifecycle.rb +367 -0
  176. data/lib/mxrb/official_marketplace/module_package_importer.rb +318 -0
  177. data/lib/mxrb/official_marketplace/widget_package_installer.rb +414 -0
  178. data/lib/mxrb/official_marketplace.rb +720 -0
  179. data/lib/mxrb/oql/analyzer.rb +155 -0
  180. data/lib/mxrb/oql/index_advisor.rb +85 -0
  181. data/lib/mxrb/oql/plan_analyzer.rb +185 -0
  182. data/lib/mxrb/oql/server.rb +132 -0
  183. data/lib/mxrb/oql/sql_server_plan_analyzer.rb +190 -0
  184. data/lib/mxrb/oql/sql_server_workload_analyzer.rb +80 -0
  185. data/lib/mxrb/oql/workload_analyzer.rb +175 -0
  186. data/lib/mxrb/oql/workload_baseline.rb +60 -0
  187. data/lib/mxrb/oql.rb +424 -0
  188. data/lib/mxrb/project_lifecycle.rb +76 -0
  189. data/lib/mxrb/protocols/plan.rb +86 -0
  190. data/lib/mxrb/protocols.rb +123 -0
  191. data/lib/mxrb/runtime/database_workspace.rb +677 -0
  192. data/lib/mxrb/runtime/docker_executor.rb +41 -0
  193. data/lib/mxrb/runtime/docker_workspace.rb +29 -0
  194. data/lib/mxrb/runtime/executor.rb +169 -0
  195. data/lib/mxrb/runtime/java_locator.rb +26 -0
  196. data/lib/mxrb/runtime/native.rb +474 -0
  197. data/lib/mxrb/runtime/sql_server_database.rb +146 -0
  198. data/lib/mxrb/runtime/toolchain.rb +82 -0
  199. data/lib/mxrb/scaffold/cli.rb +113 -0
  200. data/lib/mxrb/scaffold/generator.rb +246 -0
  201. data/lib/mxrb/scaffold/help.rb +80 -0
  202. data/lib/mxrb/scaffold/page_templates.rb +54 -0
  203. data/lib/mxrb/scaffold/recipes.rb +198 -0
  204. data/lib/mxrb/scaffold/registry.rb +82 -0
  205. data/lib/mxrb/scaffold/templates.rb +723 -0
  206. data/lib/mxrb/scaffold/transaction.rb +84 -0
  207. data/lib/mxrb/schema/tables.rb +55 -0
  208. data/lib/mxrb/semantic/analyzer.rb +473 -0
  209. data/lib/mxrb/semantic/batch_plan.rb +68 -0
  210. data/lib/mxrb/semantic/domain_mutator.rb +419 -0
  211. data/lib/mxrb/semantic/embedder.rb +51 -0
  212. data/lib/mxrb/semantic/extractor.rb +290 -0
  213. data/lib/mxrb/semantic/index.rb +623 -0
  214. data/lib/mxrb/semantic/inliner.rb +216 -0
  215. data/lib/mxrb/semantic/mover.rb +153 -0
  216. data/lib/mxrb/semantic/onnx_embedder.rb +34 -0
  217. data/lib/mxrb/semantic/remover.rb +70 -0
  218. data/lib/mxrb/semantic/renamer.rb +211 -0
  219. data/lib/mxrb/semantic/tfidf_embedder.rb +46 -0
  220. data/lib/mxrb/semantic/vec_store.rb +75 -0
  221. data/lib/mxrb/team_server.rb +390 -0
  222. data/lib/mxrb/templates/project/10.24.0.73019.json +32 -0
  223. data/lib/mxrb/templates/project/11.12.1.json +32 -0
  224. data/lib/mxrb/templates/project/6.10.8.json +50 -0
  225. data/lib/mxrb/templates/project/7.17.0.json +50 -0
  226. data/lib/mxrb/templates/project/7.5.0.json +50 -0
  227. data/lib/mxrb/templates/project/9.6.1.29396.json +50 -0
  228. data/lib/mxrb/version.rb +5 -0
  229. data/lib/mxrb/widget_package.rb +338 -0
  230. data/lib/mxrb/widget_synchronizer.rb +31 -0
  231. data/lib/mxrb/writer.rb +3775 -0
  232. data/lib/mxrb.rb +188 -0
  233. data/marketplace/catalog.json +10 -0
  234. data/marketplace/modules/shared-kernel/domain/README.md +4 -0
  235. data/marketplace/modules/shared-kernel/module.rb +5 -0
  236. data/marketplace/modules/shared-kernel/mxrb-module.json +9 -0
  237. metadata +447 -0
data/docs/README.md ADDED
@@ -0,0 +1,10 @@
1
+ # MXRB documentation
2
+
3
+ Choose a language:
4
+
5
+ - [Português (Brasil)](pt-BR/README.md)
6
+ - [English (United States)](en-US/README.md)
7
+ - [Deutsch (Deutschland)](de-DE/README.md)
8
+
9
+ All language trees contain the same document set. Ruby APIs, CLI commands,
10
+ Mendix identifiers and validation numbers are kept unchanged.
@@ -0,0 +1,24 @@
1
+ # MXRB-Dokumentation
2
+
3
+ [Português](../pt-BR/README.md) · [English](../en-US/README.md) · **Deutsch**
4
+
5
+ - [Projektarchitektur](architecture.md)
6
+ - [Architekturstandard](architectural-standard.md)
7
+ - [Struktur des exportierten Projekts](project-structure.md)
8
+ - [Architekturmuster](architectural-patterns.md)
9
+ - [Semantisches Refactoring](semantic-refactoring.md)
10
+ - [Navigation und Design System](design-system.md)
11
+ - [OQL, SQL-Ansicht und lokale Datenbank](oql-sql.md)
12
+ - [Konventionen](conventions.md)
13
+ - [Ruby-First-Roadmap](ruby-first-roadmap.md)
14
+ - [Validierungsmatrix](validation-matrix.md)
15
+ - [Nativer Compiler und Runtime](compiler.md)
16
+ - [Qualitätsbericht für Build und Runtime](native-runtime-quality-report.md)
17
+ - [Projekte erstellen und bearbeiten](writing.md)
18
+ - [Projekt-Scaffolds](scaffolds.md)
19
+ - [Entitäten-DSL](entity-dsl.md)
20
+ - [Betrieb, Lifecycle und Marketplace](platform-operations.md)
21
+ - [Bewertung der Mendix-API-Integration](platform-api-integration.md)
22
+ - [VetClinic-End-to-End-Abnahme](vetclinic-acceptance.md)
23
+
24
+ [Zurück zur Projekt-README](../../README.de-DE.md)
@@ -0,0 +1,26 @@
1
+ # Architekturmuster
2
+
3
+ [Português](../pt-BR/architectural-patterns.md) · [English](../en-US/architectural-patterns.md) · **Deutsch**
4
+
5
+ MXRB verwendet Ruby als einzige öffentliche Modellschnittstelle und ordnet
6
+ Verantwortungen Domäne, Anwendung, Präsentation und Infrastruktur zu.
7
+
8
+ ```text
9
+ Präsentation ─┐
10
+ ├─> Anwendung ─> Domäne
11
+ Infrastruktur ┘
12
+ ```
13
+
14
+ Entitäten und Regeln halten Geschäftszustand. Microflows sind Anwendungsfälle,
15
+ wenn sie diesen Zustand koordinieren. Seiten, Navigation und Nanoflows gehören
16
+ zur Präsentation; HTTP, externe Datenbanken, Java und Integrationen zur
17
+ Infrastruktur.
18
+
19
+ Repositories sind an echten externen Grenzen sinnvoll, nicht als Zeremonie um
20
+ gewöhnliches Mendix-CRUD. Aufrufe und Abhängigkeiten bleiben im semantischen
21
+ Graph sichtbar und können am tatsächlichen Modell geprüft werden.
22
+
23
+ Security, Navigation und Design System sind Querschnittsrichtlinien unter
24
+ `app/`. Deklarierte Navigation wird zusätzlich nativ in Mendix geschrieben.
25
+
26
+ [Zurück zum Index](README.md)
@@ -0,0 +1,48 @@
1
+ # MXRB-Architekturstandard
2
+
3
+ [Português](../pt-BR/architectural-standard.md) · [English](../en-US/architectural-standard.md) · **Deutsch**
4
+
5
+ ## Zentrales Prinzip
6
+
7
+ Ruby ist die kanonische Architekturdarstellung. Mendix bleibt Laufzeit und
8
+ natives Modell. Ein Microflow wird nach seiner Verantwortung klassifiziert,
9
+ nicht allein danach, dass er ein Microflow ist.
10
+
11
+ ## Schichten
12
+
13
+ - `domain`: Entitäten, Beziehungen, Invarianten und Domain Events.
14
+ - `application`: Use Cases, Abfragen, Validierungen und Jobs.
15
+ - `presentation`: Seiten, UI-Einstiegspunkte und Nanoflows.
16
+ - `infrastructure`: Integrationen, Services und technische Adapter.
17
+
18
+ Abhängigkeiten zeigen nach innen. Modulübergreifender Zugriff erfolgt über
19
+ bewusst veröffentlichte APIs.
20
+
21
+ ## Persistenz und Repositories
22
+
23
+ Direkter Mendix-Retrieve ist für normales CRUD korrekt. Ein Repository ist nur
24
+ für eine echte Grenze sinnvoll, etwa externen Speicher, komplexe
25
+ Abfrageverträge oder Testisolation.
26
+
27
+ ## Security, Navigation und Designsystem
28
+
29
+ App Security besitzt User Roles und globale Regeln; Module Security besitzt
30
+ Module Roles. Seiten und Flows deklarieren `allowed_roles`. Navigation ist
31
+ appweit. Semantische Ruby-Tokens beschreiben Designabsichten, während native
32
+ Mendix-Ressourcen erhalten bleiben.
33
+
34
+ ## Qualitätsregeln
35
+
36
+ MXRB prüft fehlende Referenzen, Zyklen, verbotene Abhängigkeiten,
37
+ Zugriffsgrenzen, Benennung und projektspezifische Ruby-Regeln. `mx check` und
38
+ MxBuild bleiben die offiziellen Plattform-Gates.
39
+
40
+ ## Supportgrenze
41
+
42
+ Domain-, Microflow-, Nanoflow-, Seiten-, Menü-, Security- und native
43
+ Navigationsflächen sind typisiert bearbeitbar. Theme- und Code-Assets
44
+ verwenden ein Manifest mit Prüfsummen; Designsystem-Tokens und -Richtlinien
45
+ besitzen einen typisierten Ruby-Vertrag. Workflows, Integrationen,
46
+ veröffentlichte APIs und Widgets ohne kompakte API bleiben über tiefes Ruby
47
+ und das native Baseline bearbeitbar, benötigen aber noch spezifische
48
+ typisierte DSLs.
@@ -0,0 +1,76 @@
1
+ # Mendix-Projektarchitektur in MXRB
2
+
3
+ [Português](../pt-BR/architecture.md) · [English](../en-US/architecture.md) · **Deutsch**
4
+
5
+ MXRB bildet Mendix-Projekte als bearbeitbares Ruby ab und bewahrt gleichzeitig
6
+ das native Modell für sichere Roundtrips. Ruby ist die einzige öffentliche
7
+ Sprache; es gibt keine parallele MDL-ähnliche Syntax.
8
+
9
+ ## Kompatibilitätsprinzipien
10
+
11
+ - Qualifizierte Mendix-Namen bleiben kanonisch.
12
+ - Native Units ohne typisierte Ruby-Abstraktion bleiben verlustfrei erhalten.
13
+ - Typisierte Änderungen ersetzen nur ausdrücklich deklarierte Strukturen.
14
+ - MPR v1 bleibt in SQLite, MPR v2 in `mprcontents/`.
15
+ - `mx`, MxBuild und Runtime sind externe Gates, keine Kern-APIs.
16
+
17
+ ## Kanonische Struktur
18
+
19
+ ```text
20
+ project.rb
21
+ app/{security,navigation}
22
+ modules/Sales/
23
+ domain/
24
+ application/
25
+ presentation/
26
+ infrastructure/
27
+ security/
28
+ ```
29
+
30
+ `domain` enthält Entitäten und Regeln. `application` enthält Use Cases,
31
+ Abfragen und Jobs. `presentation` enthält Seiten und clientseitige Nanoflows.
32
+ `infrastructure` enthält Integrationen, Dienste und Adapter.
33
+
34
+ Die Kardinalität folgt dem Mendix-Modell aus Typ und Eigentümer:
35
+
36
+ ```ruby
37
+ # 1:N (Standard): Reference + Default
38
+ association "Sales.Customer", name: "Order_Customer"
39
+
40
+ # 1:1: Reference + Both
41
+ association "Sales.Profile", name: "Customer_Profile", owner: :Both
42
+
43
+ # N:N: ReferenceSet + Default
44
+ association "Sales.Tag", name: "Order_Tags", type: :ReferenceSet
45
+ ```
46
+
47
+ ## Abhängigkeitsregel
48
+
49
+ ```text
50
+ presentation ─┐
51
+ ├─> application ─> domain
52
+ infrastructure┘
53
+ ```
54
+
55
+ Der semantische Graph prüft fehlende Ziele, Zyklen, Modulgrenzen und verbotene
56
+ Abhängigkeiten.
57
+
58
+ ## Ruby → Mendix
59
+
60
+ Definitionen werden ausgewertet, native Units zuerst wiederhergestellt und
61
+ typisierte Overlays über stabile Namen zusammengeführt. Danach aktualisiert
62
+ MXRB Hashes und v1/v2-Speicher. `mxrb validate`, `mx check` und MxBuild bilden
63
+ aufeinanderfolgende Gates.
64
+
65
+ ## Mendix → Ruby
66
+
67
+ MXRB indexiert alle Units, exportiert typisierte Artefakte und schreibt nicht
68
+ typisierte Units nach `.mxrb/native_units.json`. Fingerprints erlauben die
69
+ exakte Wiederverwendung unveränderter Flow- und Seitenstrukturen.
70
+
71
+ ## Namenskonventionen und Wahrheit
72
+
73
+ Mendix-Namen bleiben exakt; Ruby-Dateien verwenden `snake_case`. Ruby ist für
74
+ deklarierte typisierte Strukturen maßgeblich, das native Manifest für den
75
+ bewahrten Rest. Eine tiefe Ruby-Änderung invalidiert den Fingerprint und wird
76
+ neu generiert.
@@ -0,0 +1,162 @@
1
+ # Nativer Compiler, Runtime und MDA-Format
2
+
3
+ Die funktionale MXRB-Pipeline führt weder `mx`, `mxbuild`, `mxcli`, Studio Pro
4
+ noch das Model SDK aus. Diese Werkzeuge können externe Kompatibilitätsprüfungen
5
+ bleiben, sind aber keine Build-, Datenbank- oder Funktionstest-Abhängigkeiten.
6
+
7
+ ## Build von null
8
+
9
+ `DeploymentMaterializer` erzeugt ein fehlendes `deployment/` aus den Templates
10
+ der installierten Version und durchläuft 12 Stufen: Sicherheit, Konstanten,
11
+ Domänenmodell, Artefakte, Übersetzungen, Systemtexte, Systemwarteschlangen,
12
+ Clientmodell, Actions, Settings, Microflows und Projekt-/Modulindex. Metadaten,
13
+ Abhängigkeiten und ein Runtime-kompatibel geordnetes BSON-`model.mdp` werden
14
+ ebenfalls erzeugt.
15
+
16
+ Der Bootstrap besitzt auditierte Seeds und Kataloge für 6.10.8, 7.5.0,
17
+ 7.17.0, 9.6.1.29396, 10.24.0.73019 und 11.12.1. Die Familien 6.x, 7.x, 9.x, 10.x und 11.x wählen
18
+ einen kompatiblen Compiler-Seed; 5.x und 8.x schlagen ohne auditierten
19
+ Seed geschlossen fehl. Die Familie gilt nur für das Compiler-Schema. Die
20
+ Runtime muss exakt zum Patch des MPR passen.
21
+
22
+ `ProjectJarBuilder` findet das JDK über `MXRB_JAVA_HOME`, `JAVA_HOME`, asdf oder
23
+ mise, kompiliert `javasource/**/*.java` gegen Runtime- und Projektbibliotheken
24
+ und schreibt ein deterministisches OSGi-`project.jar`. Für VetClinic wurden 183
25
+ Quelldateien zu 249 Klassen kompiliert.
26
+
27
+ `WebBundleBuilder` wählt Dojo für 6/7, Dojo mit React-Wrapper für 9, den im
28
+ Projekt gewählten klassischen oder optimierten Client für 10 und React für 11.
29
+ Der React-Pfad erzeugt Entry-/Seitenmodule, entpackt `.mpk` und ruft direkt
30
+ Node/Rollup für 10 oder Node/Rspack für 11 auf. Data Grid 2 wird für den Teilumfang aus XPath-Datenquelle
31
+ und Attributspalten kompiliert, einschließlich `operations.json`, Datenquelle
32
+ und Attributtypen. Noch nicht übersetzte Typen oder Eigenschaftskombinationen
33
+ erhalten einen DOM-Fallback in `web/mxrb-pages.json`; das VetClinic-Manifest ist
34
+ leer.
35
+
36
+ Der React-Compiler materialisiert außerdem Container, Texte und Überschriften,
37
+ responsive Grids/Spalten sowie Buttons zum Öffnen und Erzeugen. Der Bootstrap
38
+ bindet `theme.compiled.css`, das Manifest und Assets aus
39
+ `themesource/*/public` ein; eine Homepage mit `LayoutGrid` bleibt nicht leer.
40
+ Ruby-Inhalte lassen sich so ergänzen:
41
+
42
+ Parametergestützte `DataView`-Formulare rendern nun editierbare `TextBox`-Felder
43
+ sowie Save/Cancel-Aktionen. Create übergibt die GUID des neuen Objekts über
44
+ `openForm2`; Commit-/Rollback-Operationen werden mit den Projektbenutzerrollen
45
+ registriert, die aus den erlaubten Modulrollen der Seite abgeleitet werden.
46
+ Damit bleibt die Runtime-Autorisierung erhalten und wird nicht umgangen.
47
+
48
+ Layouts, Platzhalter, Scrollbereiche, Sidebars, Header, Navigationsmenüs,
49
+ Snippets, DataViews, ListViews, Formularelemente, Bilder, Combo Boxes, Gallery,
50
+ Data Grid 2 und schemagestützte Pluggable Widgets werden über die nativen
51
+ React-Client-Verträge kompiliert. Seiten-, Menü- und Widget-Aktionen decken
52
+ Navigation, Microflows, Nanoflows, Objektlebenszyklus, Links und Sign-out ab.
53
+ Nanoflow-Programme unterstützen außerdem Entscheidungen, Fehlerbehandlung,
54
+ JavaScript-Aktionen und serverseitige Microflow-/Commit-
55
+ Operationen, sofern der Modellvertrag sicher abgebildet werden kann.
56
+
57
+ Der React-Pfad kompiliert außerdem die offizielle Gallery mit XPath- und
58
+ Microflow-Listenquellen, Template-Inhalten, Auswahl und formatierten dynamischen
59
+ Attributen. Nanoflow-Quellen und -Aktionen verwenden die Mendix-Verträge
60
+ `NanoflowObjectListProperty`, `NanoflowObjectProperty` und `ActionProperty`.
61
+ MXRB erzeugt echte Clientprogramme `{ name, instructions }` für auditierten
62
+ Graph-Kontrollfluss, Returns, Variablen, Objekte, Nanoflow-/Microflow-Aufrufe,
63
+ JavaScript-, Seiten-, Nachrichten-, Validierungs- und Commit-Aktionen. Fehlende
64
+ Flows, unsichere Parameterabbildungen und nicht übersetzte Clientinstruktionen
65
+ schlagen geschlossen fehl und bleiben Befunde im Support-Manifest.
66
+
67
+ In lokalen Runtime-Sitzungen im Developer-Modus versioniert mxrb außerdem
68
+ dynamische Seitenimporte, versieht den korrigierten React-Client-Chunk mit
69
+ einem Inhalts-Hash und gibt dem Rspack-Selbstimport dasselbe Cache-Token wie
70
+ dem Entry-Point. Dadurch können langlebige statische Mendix-Antworten nach
71
+ einem nativen Rebuild keine veraltete leere Seite wiederherstellen. Die erzeugte
72
+ Shell stellt außerdem einen begrenzten `openForm`-Adapter über `openForm2`
73
+ bereit; alte Handler im Cache navigieren damit, statt still ohne Request zu enden.
74
+
75
+ ```ruby
76
+ Mxrb.define("App.mpr") do
77
+ mendix_version "11.12.1"
78
+ self.module(:App) do
79
+ layout :Shell
80
+ page(:Home) do
81
+ layout "App.Shell"
82
+ title "Meine Anwendung"
83
+ container(:main, class_name: "container") do
84
+ text :welcome, caption: "Mit mxrb erzeugter Inhalt"
85
+ end
86
+ end
87
+ end
88
+ end
89
+ ```
90
+
91
+ Bestehende Projekte können exportiert, in der DSL geändert und neu erzeugt
92
+ werden. Nicht unterstützte Widgets bleiben im Support-Manifest sichtbar.
93
+
94
+ Vor einem nativen Build kann das gesamte MPR mit dem für seine Mendix-Version
95
+ gewählten Renderer geprüft werden:
96
+
97
+ ```bash
98
+ mxrb preflight App.mpr
99
+ mxrb preflight App.mpr --json
100
+ ```
101
+
102
+ Der Nur-Lese-Befehl liefert bei nicht unterstützten Versionen oder
103
+ Client-Features einen Fehlerstatus. Mendix 11 wird über den React-Compiler
104
+ geprüft; 6/7/9 verwenden dieselbe Legacy-Dojo-Prüfung wie `WebBundleBuilder`.
105
+
106
+ Der Dojo-Pfad kompiliert Data Grid 1 mit Datenbank-, XPath- und
107
+ Microflow-Quellen sowie auditierten Such-, Sortier-, Paging-, Auswahl- und
108
+ Button-Verträgen. Alle anderen sichtbaren Widgets werden pro Seite in
109
+ `web/mxrb-legacy-pages.json` erfasst und nicht als gerendert ausgewiesen.
110
+
111
+ ## MDA und portables Paket
112
+
113
+ ```bash
114
+ mxrb pack App.mpr --output build/App.mda
115
+ mxrb mda inspect build/App.mda
116
+ mxrb portable App.mpr --output build/runtime.zip
117
+ ```
118
+
119
+ MDA und portables ZIP sind deterministisch. Das portable Paket kombiniert das
120
+ native Deployment mit der passenden installierten Runtime, Konfiguration,
121
+ Konstanten und Skripten. Arbeitsverzeichnisse wie `data`, `log`, `run`, `build`
122
+ und `.gradle` werden nicht in das MDA aufgenommen.
123
+
124
+ ## Regressionsnachweis
125
+
126
+ ```bash
127
+ script/runtime_boot_regression App.mpr /fehlendes/deployment \
128
+ ~/.local/share/mendix/11.12.1
129
+ ```
130
+
131
+ Der Test erzeugt ein temporäres Deployment, kompiliert Java und Web, paketiert,
132
+ startet die Runtime und verlangt HTTP 200 für `/`, `dist/index.js` und jedes
133
+ Seitenbundle. Ein sauberes Herunterfahren ist ebenfalls erforderlich. Protokoll
134
+ und SHA-256 stehen in `tmp/runtime-boot-evidence.log`. Wenn Chromium installiert
135
+ ist, importiert der Test alle Module und instanziiert Factorys ohne
136
+ Sitzungsbedarf. Das Data-Grid-Bundle wird importiert und ausgewertet; seine
137
+ Factory liest die Clientsitzung und benötigt daher einen authentifizierten Test.
138
+
139
+ Am 1. August 2026 startete VetClinic 11.12.1 ohne vorhandenes Deployment,
140
+ führte 675 Datenbanksynchronisierungen aus, initialisierte die
141
+ `System`-Warteschlangen, plante `VetClinic.Cleanup`, lieferte 200 für alle vier
142
+ Seitenbundles und fuhr sauber herunter. Danach bestand der Funktionstest
143
+ `ACT Create Animal`.
144
+
145
+ ## Explizite Grenzen
146
+
147
+ - alle 12 Stufen und saubere Web-Generierung sind für 6.10.8, 7.5.0, 7.17.0,
148
+ 9.6.1.29396, 10.24.0.73019 und 11.12.1 validiert;
149
+ - ein exakter nativer Boot ist für 10.24.0.73019 und 11.12.1 belegt. Die installierten
150
+ 6/7/9-Distributionen enthalten exakte Runtime-Bundles, aber keinen
151
+ kompatiblen Launcher; `db up` schlägt geschlossen fehl, statt den Java-21-Launcher
152
+ aus Version 11 einzusetzen;
153
+ - Data Grid 1 ist abgedeckt, andere Dojo-Widgets bleiben explizite
154
+ Manifestbefunde;
155
+ - der optimierte Mendix-10-React/Rollup-Pfad ist durch eine neu erstellte
156
+ Anwendung belegt; der Mendix-11-React-Pfad besitzt saubere Preflights und vollständige
157
+ Rspack-Builds für LearnNow, MyFirstModule, SLATaskApp, Sudoku und VetClinic.
158
+ Diese Fixture-Matrix belegt auditierte Verträge, keine universelle Kompatibilität;
159
+ - native Web-Bundles werden erzeugt; React Native verwendet weiterhin
160
+ bestehende Versions-Template- und Projektassets;
161
+ - `mx` und `mxbuild` sind niemals Fallbacks. Nicht unterstützte Eingaben führen
162
+ zu einem klaren Compilerfehler oder einem Eintrag im Support-Manifest.
@@ -0,0 +1,19 @@
1
+ # Konventionen
2
+
3
+ [Português](../pt-BR/conventions.md) · [English](../en-US/conventions.md) · **Deutsch**
4
+
5
+ - Mendix-qualifizierte Namen bleiben in Referenzen kanonisch.
6
+ - Ruby-Dateien verwenden `snake_case`, ohne Artefaktidentitäten zu ändern.
7
+ - Rename, Move, Remove und Migration werden vor Apply als Vorschau geprüft.
8
+ - Seiten- und Flow-Rollen werden in geschützten Projekten deklariert.
9
+ - Jedes Navigationsprofil besitzt ein Standardziel.
10
+ - Rollenspezifische Ziele verweisen auf Benutzerrollen mit Zugriff.
11
+ - Design-Tokens werden lokalen literalen Styles vorgezogen.
12
+ - Typisierte Writer ändern nur ausdrücklich deklarierte Felder.
13
+ - Themes, Widgets, Ressourcen und Java-Quellen sind Teil des Round-trips.
14
+ - Vor Änderungen laufen RSpec, Branch-Report und RuboCop.
15
+
16
+ Die exakte Mendix-5-Validierung unter Windows bleibt als Legacy-Einschränkung
17
+ dokumentiert, ist aber kein aktuelles Auslieferungs-Gate.
18
+
19
+ [Zurück zum Index](README.md)
@@ -0,0 +1,52 @@
1
+ # Navigation und Design System
2
+
3
+ [Português](../pt-BR/design-system.md) · [English](../en-US/design-system.md) · **Deutsch**
4
+
5
+ Navigationsprofile sind native Mendix-Daten. MXRB liest und schreibt
6
+ Standardseiten oder -Microflows, Login-Seiten, übersetzte Titel, Symbole,
7
+ rollenspezifische Ziele und rekursive Menüs.
8
+
9
+ ```ruby
10
+ navigation do
11
+ profile :Responsive, home_page: "Sales.Home", app_title: "Shop" do
12
+ title :de_DE, "Geschäft"
13
+ home_for :Administrator, microflow: "Sales.OpenDashboard"
14
+ item "Bestellungen", page: "Sales.Order_Overview", icon: "shopping_cart"
15
+ end
16
+ end
17
+ ```
18
+
19
+ `project.design_system` inventarisiert CSS-Eigenschaften, Sass-Variablen,
20
+ Themes und `design-properties.json`-Kataloge. Lint findet fehlende Tokens,
21
+ literale Farben und Kontrastverträge unterhalb des deklarierten WCAG-Niveaus.
22
+
23
+ In der Ruby-DSL deklarierte Tokens werden in
24
+ `theme/web/_mxrb-design-system.scss` materialisiert und genau einmal aus
25
+ `theme/web/main.scss` importiert. Farb-Tokens erscheinen zusätzlich als
26
+ Studio-`ColorPicker`-Eigenschaften in
27
+ `themesource/mxrb/web/design-properties.json`. Theme-Vererbung und Overrides
28
+ werden vor dem Schreiben aufgelöst; bestehender `main.scss`-Inhalt bleibt
29
+ erhalten. Zyklen, ungültige Namen und strukturell unsichere CSS-Werte werden
30
+ abgelehnt.
31
+
32
+ Themes, Widgets, Ressourcen und Java-Quellen durchlaufen den Round-trip über
33
+ `.mxrb/assets.json` mit SHA-256 und Traversal-Schutz.
34
+
35
+ Literale Migrationen beginnen mit einer Vorschau. Apply lehnt Dateien ab, die
36
+ sich seit der Vorschau geändert haben, und ersetzt jede Datei atomar.
37
+
38
+ Dieselben Abläufe stehen über die CLI zur Verfügung:
39
+
40
+ ```sh
41
+ bundle exec mxrb design scan App.mpr
42
+ bundle exec mxrb design scan App.mpr --json
43
+ bundle exec mxrb design migrate App.mpr '#3366ff' 'var(--brand-primary)'
44
+ bundle exec mxrb design migrate App.mpr '#3366ff' 'var(--brand-primary)' --apply
45
+ ```
46
+
47
+ `scan` zeigt Name, Wert, Typ, Theme und Quellposition jedes Tokens sowie die
48
+ Anzahl literaler Farben und nicht aufgelöster Referenzen. `migrate` bleibt bis
49
+ zur Angabe von `--apply` eine Vorschau. Im Ruby-Vertrag deklarierte
50
+ Kontrastpaare prüft `mxrb lint` gegen die konfigurierte WCAG-Stufe.
51
+
52
+ [Zurück zum Index](README.md)
@@ -0,0 +1,53 @@
1
+ # Entitäten-DSL
2
+
3
+ [Português](../pt-BR/entity-dsl.md) · [English](../en-US/entity-dsl.md) · **Deutsch**
4
+
5
+ Mit `mxrb entity new Modul.Entitaet` erzeugte Dateien werden im Modulblock
6
+ ausgewertet. Deshalb wird nur der lokale Name deklariert:
7
+
8
+ ```ruby
9
+ entity :Animal do
10
+ documentation "Tier in der Klinik"
11
+ string :Name, default: "", documentation: "Anzeigename"
12
+ integer :Age, default: 0
13
+ long :ExternalId
14
+ float :Weight
15
+ decimal :Balance
16
+ boolean :Active, default: true
17
+ datetime :BirthDate
18
+ autonumber :Sequence
19
+ hashstring :PasswordHash
20
+ binary :Document
21
+ enum :Species, enumeration: "VetClinic.AnimalSpecies"
22
+ end
23
+ ```
24
+
25
+ Verfügbare Typen sind `string`, `integer`, `long`, `float`, `decimal`,
26
+ `boolean`, `datetime`, `autonumber`, `hashstring`, `binary` und `enum`. Derzeit
27
+ werden `default:`, `documentation:` und bei Enum-Attributen `enumeration:` in
28
+ das MPR geschrieben. Die Enumeration selbst wird mit `enumeration` deklariert,
29
+ das Attribut mit `enum`.
30
+
31
+ ## Assoziationen
32
+
33
+ ```ruby
34
+ association "VetClinic.Owner", name: "Animal_Owner" # N:1 Reference
35
+ association "VetClinic.Passport", name: "Animal_Passport", owner: :Both # 1:1
36
+ association "VetClinic.Tag", name: "Animal_Tags", type: :ReferenceSet # N:N
37
+ association "VetClinic.Group", name: "Animal_Groups",
38
+ type: :ReferenceSet, owner: :Both
39
+ ```
40
+
41
+ Das erste Argument ist das qualifizierte Ziel. `type:` akzeptiert `:Reference`
42
+ (Standard) oder `:ReferenceSet`; `owner:` akzeptiert `:Default` oder `:Both`.
43
+
44
+ ## Persistenz, Ereignisse und Zugriff
45
+
46
+ `non_persistent!` erzeugt eine nicht persistente Entität. Verfügbare Hooks sind
47
+ `before_commit`, `after_commit`, `before_delete` und `after_delete`, jeweils mit
48
+ `microflow:`. `access_rule` akzeptiert qualifizierte Rollen sowie `create:`,
49
+ `delete:`, `read:`, `write:` und `xpath:`. Lesen und Schreiben verwenden
50
+ `:all`, `:none` oder eine Attributliste.
51
+
52
+ Weitere CLI-Hilfe liefert `mxrb entity --help`; das Ergebnis wird mit
53
+ `mxrb generate project.rb` und `mxrb validate App.mpr` geprüft.
@@ -0,0 +1,74 @@
1
+ # Qualitätsbericht für nativen Build und Runtime
2
+
3
+ Datum: 5. August 2026.
4
+
5
+ ## Bestätigtes Ergebnis
6
+
7
+ - keine funktionale Stufe ruft `mx`, `mxbuild`, `mxcli`, Studio Pro oder Model SDK auf;
8
+ - sauberer 12-Stufen-Build und Web-Generierung bestanden mit 6.10.8 (39 Seiten), 7.5.0 (45), 7.17.0 (66), 9.6.1.29396 (90), 10.24.0.73019 (optimierter Client) und 11.12.1;
9
+ - die Round-trip-Matrix bestand mit sechs echten Fixtures von 5.21.4 bis 11.12.1: 1.506 Units, 1.734 Artefakte und 3.388 Referenzen;
10
+ - auditierte Compiler-Schemas/Seeds decken 6.x, 7.x, 9.x, 10.x und 11.x ab. 5.x und 8.x schlagen bei nativer Kompilierung geschlossen fehl; Runtime benötigt den exakten Patch;
11
+ - Data Grid 1 deckt Datenbank/XPath/Microflow, Suche, Sortierung, Paging, Auswahl und auditierte Buttons ab. Data Grid 2 deckt XPath, Attributspalten und Create ab;
12
+ - Webprofile: Dojo in 6/7, Dojo/React-Hybrid in 9, projektabhängig klassisch/optimiert in 10 und React in 11;
13
+ - Projects API inventarisierte 130 Apps. Drei echte Git-Projekte (`MyFirstModule`, `LearnNow Trainning Management`, `SLATaskApp`) bestanden validate → export → generate → validate → compare;
14
+ - `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;
15
+ - 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;
16
+ - authentifizierte Chromium-QA bestand wiederholt für Home und Orders mit
17
+ deterministischen DOM/Layout/Style/ARIA-Snapshots und Screenshots, null
18
+ Konsolenfehlern und einer expliziten SHA-256-Baseline;
19
+ - `mxrb page new|generate|g Modul.Seite --chain ...` materialisiert gültige
20
+ MPRs für `page:microflow`, `page:nanoflow` und
21
+ `page:nanoflow:microflow`; ohne Option bleibt das minimale Seiten-Scaffold
22
+ unverändert;
23
+ - `mxrb page templates` zeigt den Baum starter/blank/dashboard/form-vertical;
24
+ `--template` kombiniert Vorlagen mit Chains, und dashboard/form-vertical
25
+ bestanden in einer echten Runtime mit kompiliertem Theme und null Konsolenfehlern;
26
+ - 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.
27
+
28
+ ## Korrekturen aus dem Verbesserungsbericht
29
+
30
+ - selektive Java-Proxy-Erzeugung für verwendete Entitäten, Vererbung, Enums und Konstanten;
31
+ - Absenkung der offiziellen Database-Connector-Build-Erweiterung auf External-Database-Connector-Java-Actions, einschließlich sicherem Query-Builder-`SELECT`;
32
+ - OQL-Quellen, geerbte Persistenzflags, Demo-User-Rollen, Systemtexte und exakte Association-Storage/Access-Rechte;
33
+ - stabile PostgreSQL-Bereitschaft, öffentliche Loopback-Portoption (`--runtime-port`), Admin-Passwort aus Umgebung und Admin-Erstellung;
34
+ - eigenständige Login-Ressourcen, gerenderte Platzhalter, Cache-Busting, Stil und i18n;
35
+ - Einbindung von Atlas-CSS, Manifest und öffentlichen Assets; die echte
36
+ Team-Server-Homepage rendert nun bedienbare React-Grids, Überschriften und Buttons;
37
+ - Seitenimporte im Developer-Modus tragen das Sitzungs-Cache-Token; der
38
+ korrigierte Client-Chunk erhält einen Inhalts-Hash und der Rspack-Selbstimport
39
+ teilt das Entry-Point-Token, sodass keine veraltete leere Homepage geladen wird;
40
+ - die erzeugte Shell stellt einen begrenzten `openForm`-Kompatibilitätsadapter
41
+ über `openForm2` bereit, damit zwischengespeicherte alte Click-Handler
42
+ navigieren, statt ohne Runtime-Request still fehlzuschlagen;
43
+ - die offizielle React Gallery rendert nun XPath- und Microflow-Daten,
44
+ Item-Templates, Auswahl sowie formatierte String-/Zahlenwerte. Authentifizierte
45
+ Browser-QA zeigte Titel, Beschreibung, `90 day(s)` und `49.95`; eine leere
46
+ Teacher-Gallery blieb strukturell vorhanden;
47
+ - Nanoflow-Listen-/Objektquellen und Button-Aktionen werden in die echten
48
+ Mendix-Clientverträge und funktionsreferenzierte Instruktionsprogramme
49
+ kompiliert. Der auditierte Graph-Teilumfang umfasst Entscheidungen,
50
+ Fehlerpfade, verschachtelte Nanoflows, JavaScript-Aktionen und serverseitige
51
+ Microflow-Aufrufe; nicht unterstützte Clientknoten schlagen geschlossen fehl;
52
+ - der PostgreSQL-Workspace injiziert eine konsistente JDBC-URL und die Runtime-
53
+ SSL-Option; Navigationsrollen bei `CheckNothing`, Scroll-Modi, SidebarToggle
54
+ und Rückgabekonstanten von Microflow-Data-Sources folgen den im
55
+ authentifizierten 11.12.1-Client beobachteten Verträgen;
56
+ - echte Browserklicks bestätigten Home → Courses → Add → Save. Parametergestützte
57
+ DataView/TextBox-Formulare rendern und speichern Werte; Create übergibt die GUID
58
+ über `openForm2`, während die Commit-/Rollback-Autorisierung aus den Modulrollen
59
+ der Seite abgeleitet wird. PostgreSQL bestätigte die vier gespeicherten QA-Werte;
60
+ - Schutz vor Traversal, unsicheren Bezeichnern und Symlinks in nativen Eingaben;
61
+ - Vergleich normalisiert fehlende boolesche Runtime-Defaults und erhält exakte Legacy-Round-trips.
62
+
63
+ ## Explizite Grenzen
64
+
65
+ 1. Andere Dojo-Widgets als Data Grid 1 bleiben in `web/mxrb-legacy-pages.json`; sie werden nicht als gerendert gemeldet.
66
+ 2. Data Grid 2 deckt den auditierten XPath/Attribut/Create-Teil ab. Gallery deckt
67
+ XPath/Microflow und den auditierten Nanoflow-Graph-Teil ab. Nicht unterstützte
68
+ Graphformen, fehlende Referenzen, unsichere Parameterabbildungen und nicht
69
+ übersetzte Client-Instruktionen schlagen weiterhin geschlossen fehl.
70
+ 3. Installierte 6/7/9-Distributionen enthalten exakte Bundles, aber keinen kompatiblen Launcher. Der 11-Launcher benötigt Java 21 und kann 9 unter Java 11 nicht sicher starten. Legacy-`db up` schlägt geschlossen fehl; exakter Boot wird nur für 10.24.0.73019 und 11.12.1 behauptet.
71
+ 4. Runtime verwendet eine lokale Trial-/Developer-Lizenz mit erwarteter Zeitlimit-Warnung.
72
+ 5. Cloud Build/Deploy/Pipelines/Backups sind optionale externe Prüfungen, nie Abhängigkeiten des nativen Kerns.
73
+
74
+ Es gibt keinen versteckten `mx`/`mxbuild`-Fallback.