| name | browse-integrations |
| description | Browse Integration Services and Contracts — SHOW/DESCRIBE OData, REST, business event, and database connection services; query MDL CATALOG integration tables; import external entities |
| compatibility | opencode |
MDL integration browser — discover and inspect external service configurations and contracts inside the local project.
> Covers discovering external services, browsing cached contracts, and querying integration assets via the MDL CATALOG (local project metadata). Distinct from the external Mendix Catalog service.
Load when:
- User asks what external services are configured in the project
- User wants to see available entities or actions from an OData service
- User wants to browse a business event contract (AsyncAPI)
- User asks about integration catalog tables
- User wants to find entities available in a contract but not yet imported
NOTE: This covers the MDL CATALOG keyword (SELECT ... FROM CATALOG.entities), NOT the Mendix Catalog CLI (mxcli catalog search). See catalog-search skill for the external service registry.
show odata clients;
show odata services;
show rest clients;
show published rest services;
show business event services;
show database connections;
show external entities;
show external actions;
<contract_browsing_odata>
create odata client auto-fetches and caches the $metadata XML from HTTP(S) URLs or reads it from local files. Browse it without network access.
Note: MetadataUrl supports:
https://... or http://... — fetches from HTTP endpoint
file:///abs/path — reads from local absolute path
./path or path/file.xml — reads from local relative path (resolved against .mpr directory)
show contract entities from MyModule.SalesforceAPI;
show contract actions from MyModule.SalesforceAPI;
describe contract entity MyModule.SalesforceAPI.PurchaseOrder;
describe contract entity MyModule.SalesforceAPI.PurchaseOrder format mdl;
describe contract action MyModule.SalesforceAPI.CreateOrder;
</contract_browsing_odata>
<contract_browsing_async_api>
Business event client services cache the AsyncAPI YAML:
show contract channels from MyModule.ShopEventsClient;
show contract messages from MyModule.ShopEventsClient;
describe contract message MyModule.ShopEventsClient.OrderChangedEvent;
</contract_browsing_async_api>
<catalog_queries>
refresh catalog;
select ServiceQualifiedName, EntityName, EntitySetName, PropertyCount, Summary
from CATALOG.CONTRACT_ENTITIES;
select ServiceQualifiedName, ActionName, ParameterCount, ReturnType
from CATALOG.CONTRACT_ACTIONS;
select ServiceQualifiedName, MessageName, ChannelName, OperationType, PropertyCount
from CATALOG.CONTRACT_MESSAGES;
select ce.EntityName, ce.ServiceQualifiedName, ce.PropertyCount
from CATALOG.CONTRACT_ENTITIES ce
left join CATALOG.EXTERNAL_ENTITIES ee
on ce.ServiceQualifiedName = ee.ServiceName and ce.EntityName = ee.RemoteName
where ee.Id IS null;
select ServiceQualifiedName, HttpMethod, path, Name
from CATALOG.REST_OPERATIONS
ORDER by ServiceQualifiedName, path;
select ObjectType, QualifiedName
from CATALOG.OBJECTS
where ObjectType in ('ODATA_CLIENT', 'REST_CLIENT', 'ODATA_SERVICE',
'PUBLISHED_REST_SERVICE', 'BUSINESS_EVENT_SERVICE', 'DATABASE_CONNECTION')
and ModuleName = 'Integration';
</catalog_queries>
<workflow_import_entities>
Bulk import (all or filtered)
create external entities from MyModule.SalesforceAPI;
create external entities from MyModule.SalesforceAPI into Integration;
create external entities from MyModule.SalesforceAPI entities (PurchaseOrder, Supplier);
create or modify external entities from MyModule.SalesforceAPI;
Single entity (with customization)
-
Browse available entities:
show contract entities from MyModule.SalesforceAPI;
-
Inspect the entity you want:
describe contract entity MyModule.SalesforceAPI.PurchaseOrder;
-
Generate the CREATE statement:
describe contract entity MyModule.SalesforceAPI.PurchaseOrder format mdl;
-
Copy, customize (remove unwanted attributes), and execute:
create external entity MyModule.PurchaseOrder
from odata client MyModule.SalesforceAPI (
EntitySet: 'PurchaseOrders',
RemoteName: 'PurchaseOrder',
Countable: Yes
)
(
Number: long,
status: string(200),
SupplierName: string(200),
GrossAmount: decimal
);
</workflow_import_entities>
<output_rules>Output MDL code only in code blocks. Keep explanations concise.</output_rules>