mxvisuals
v0.1.2
Published
Interactive visual diagrams for Mendix projects via mxcli — explore pages, microflows, nanoflows, entities, and their cross-module usage
Maintainers
Readme
MXVisuals
Interactive visual diagrams for Mendix projects, powered by mxcli.
Explore your Mendix app as a searchable tree and dependency graph: pages, microflows, nanoflows, entities, workflows, and the cross-module references between them — including datagrid data sources that mxcli refs alone misses.
Features
- Studio Pro-style navigation — dark sidebar with module → Domain Model / Pages / Microflows / Nanoflows buckets, item counts, and usage badges.
- Dependency graph — select any item to see its callers, callees, and entity associations with connected nodes highlighted.
- Cross-module usage panel — detailed breakdown of where an item is used, grouped by module or by relation type, showing the source module, page, entity, microflow, or nanoflow name.
- Entity classification — persistent vs. non-persistent entities tagged in the tree and graph.
- Association names — association edges labeled with their actual name (e.g.
Account_Role) instead of a generic "Association". - Widget-level references — scans page MDL to capture datagrid/listview entity data sources, action button microflow calls, and page navigation — references that
mxcli refsdoes not surface. - Static HTML export — self-contained file you can share without running a server.
Requirements
- Node.js 18+
- mxcli — the Mendix CLI. Install it and ensure it's on your
PATH, or pass--mxcli-pathto each command.- Verify with
mxcli --version - Alternate: set
MXVISUALS_MXCLI=/path/to/mxcliin your environment
- Verify with
Install
npm install -g mxvisualsOr run without installing:
npx mxvisuals serve /path/to/app.mprUsage
Interactive server (recommended)
Starts a local web app at http://127.0.0.1:4711 and opens your browser:
mxvisuals serve /path/to/app.mprFlags:
-p, --port <port>— port (default4711)--no-open— don't auto-open browser--mxcli-path <path>— override mxcli binary location--concurrency <n>— parallel mxcli calls (default8)
Extract graph JSON
Dumps the full ProjectGraph to stdout or a file, for use in other tools:
mxvisuals extract /path/to/app.mpr --out graph.jsonExport static HTML
Produces a single, shareable HTML file with the graph data embedded:
mxvisuals export /path/to/app.mpr --out diagram.htmlHow it works
MXVisuals spawns mxcli as a subprocess and combines several commands to build the graph:
| Phase | mxcli command | Purpose |
|-------|---------------|---------|
| tree | project-tree | module and item hierarchy |
| entities | show entities | persistent vs. non-persistent classification |
| associations | show associations | entity association edges (with names) |
| refs | refs <qn> (per item) | callers and references |
| callers | callers <qn> (per microflow/nanoflow) | inbound call edges |
| page-mdl | describe page <qn> (per user-module page) | widget-level references — datagrid data sources, button actions, page navigation |
Edges are deduplicated and tagged with relation type: calls, opens, uses-entity, triggers, or association.
License
MIT © Keerthana Sowdayan
