Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Available Tables

The catalog provides several tables that can be queried using standard SQL syntax. Use SHOW CATALOG TABLES to list all available tables in your catalog.

Discovering Tables

SHOW CATALOG TABLES;

Core Tables

CATALOG.ENTITIES

Information about all entities in the project.

ColumnDescription
IdUnique identifier
NameEntity name
ModuleNameModule containing the entity
QualifiedNameFull qualified name (Module.Entity)
EntityTypePersistent, Non-Persistent, View, External
DescriptionDocumentation text
AttributeCountNumber of attributes
AccessRuleCountNumber of access rules defined
SELECT Name, EntityType, AttributeCount
FROM CATALOG.ENTITIES
WHERE ModuleName = 'Sales'
ORDER BY Name;

CATALOG.ATTRIBUTES

Information about entity attributes.

ColumnDescription
IdUnique identifier
NameAttribute name
EntityIdParent entity ID
AttributeTypeString, Integer, Decimal, Boolean, DateTime, etc.
SELECT a.Name, a.AttributeType
FROM CATALOG.ATTRIBUTES a
JOIN CATALOG.ENTITIES e ON a.EntityId = e.Id
WHERE e.QualifiedName = 'Sales.Customer';

CATALOG.ASSOCIATIONS

Information about entity associations.

ColumnDescription
IdUnique identifier
NameAssociation name
ParentEntityParent (FROM) entity qualified name
ChildEntityChild (TO) entity qualified name
AssociationTypeReference or ReferenceSet
SELECT Name, ParentEntity, ChildEntity, AssociationType
FROM CATALOG.ASSOCIATIONS
WHERE ParentEntity LIKE '%Order%' OR ChildEntity LIKE '%Order%';

CATALOG.MICROFLOWS

Information about microflows and nanoflows.

ColumnDescription
IdUnique identifier
NameMicroflow name
ModuleNameModule containing the microflow
QualifiedNameFull qualified name
ReturnTypeReturn type of the microflow
DescriptionDocumentation text
ParametersParameter information
ObjectUsageEntities used in the microflow
SELECT Name, ReturnType, Description
FROM CATALOG.MICROFLOWS
WHERE ModuleName = 'Sales'
ORDER BY Name;

CATALOG.PAGES

Information about pages and their properties.

ColumnDescription
IdUnique identifier
NamePage name
ModuleNameModule containing the page
QualifiedNameFull qualified name
URLPage URL if configured
DataSourcePrimary data source
WidgetTypesTypes of widgets used
SELECT Name, URL, DataSource
FROM CATALOG.PAGES
WHERE ModuleName = 'Sales'
ORDER BY Name;

Page templates are not pages and are not in this table — see CATALOG.PAGE_TEMPLATES.

CATALOG.PAGE_TEMPLATES

The starting points Studio Pro’s “new page” dialog offers (Forms$PageTemplate). A separate document type from pages: Atlas_Web_Content ships 46 templates and no pages at all.

ColumnDescription
IdUnique identifier
NameTemplate name
ModuleNameModule containing the template
QualifiedNameFull qualified name
FolderFolder path within the module
DescriptionDocumentation

There is no DESCRIBE PAGE TEMPLATE, so a template is indexed but not describable — tools that walk a module report it as unknown, never as unchanged.

CATALOG.ACCESS_RULES

Information about entity access rules (available after full refresh).

ColumnDescription
IdUnique identifier
EntityIdEntity this rule applies to
UserRoleRole this rule grants access to
AllowReadWhether read access is granted
AllowWriteWhether write access is granted
SELECT e.QualifiedName, ar.UserRole, ar.AllowRead, ar.AllowWrite
FROM CATALOG.ACCESS_RULES ar
JOIN CATALOG.ENTITIES e ON ar.EntityId = e.Id
WHERE e.ModuleName = 'Sales';

CATALOG.SCHEDULED_EVENTS

Scheduled events — Mendix’s cron.

ColumnDescription
Name, QualifiedName, ModuleName, FolderIdentity
MicroflowQualified name of the microflow the event runs
RepeatSchedule variant: Minute, Hour, Day, Week, MonthDate, MonthWeekday, YearDate, YearWeekday
RepeatDescriptionThe schedule as a phrase, e.g. weekly Mon/Fri at 09:30
IntervalSecondsGap between runs, derived from the schedule
Enabled1 if the event runs
TimeZoneUTC or Server
OnOverlapDelayNext or SkipNext

IntervalSeconds comes from the schedule, not from the stored Interval/IntervalType pair. Those are a legacy sibling that Studio Pro writes and does not keep in sync — a shipped Mendix module stores 0/Minute beside a daily schedule — so a query keyed on them would read a nightly job as firing every 0 seconds. Month and year figures are averages (30 and 365 days): the column is for thresholds and ordering, not calendar arithmetic.

-- Anything that fires more often than once a minute
select QualifiedName, RepeatDescription, Microflow
from CATALOG.SCHEDULED_EVENTS
where Enabled = 1 and IntervalSeconds < 60;

-- Scheduled events whose microflow no longer exists
select se.QualifiedName, se.Microflow
from CATALOG.SCHEDULED_EVENTS se
left join CATALOG.MICROFLOWS m on m.QualifiedName = se.Microflow
where m.Id is null;

A scheduled event also produces a schedule row in CATALOG.REFS, so show callers of <microflow> and the dead-asset analysis both see it. Without that edge a microflow run only by a scheduled event looked unreferenced.

CATALOG.QUEUES

Task queues.

ColumnDescription
Name, QualifiedName, ModuleName, FolderIdentity
ParallelismHow many tasks run at once — an expression string, not a number
ClusterWide1 if the limit applies across the cluster

Parallelism is stored as text because Mendix stores an expression: a query must not assume it parses as an integer.

select QualifiedName, Parallelism, ClusterWide from CATALOG.QUEUES;

Graph-Analysis Tables

The dependency graph (CATALOG.REFS, full refresh) is analysed by a family of graph_* views and tables — god nodes, module coupling/cohesion, dead documents, communities, cycles, layers, centrality, and the integration surface. The community/cycle/layer/centrality tables are populated by REFRESH CATALOG COMMUNITIES. See Graph Analysis for the full reference and the mxcli graph-report command.

select * from CATALOG.graph_god_nodes order by Degree desc limit 20;
select * from CATALOG.graph_module_coupling order by Edges desc;
show communities;

Listing All Tables

To see the complete list of available tables in your catalog (which may vary by project and refresh level):

SHOW CATALOG TABLES;
mxcli -p app.mpr -c "SHOW CATALOG TABLES"