Skip to main content

Framework M Entry Points Reference

Framework M uses Python entry points for discovery and extensibility. This allows packages to register themselves, override core services, or contribute to the UI without modifying the framework itself.

Complete List of Core Groups

These are the primary groups the framework scans for:

GroupPurposeTargetPackage
framework_m.appsMain App registrationModuleframework-m-core
framework_m.frontendMFE Plugin (UI)Moduleframework-m-standard
framework_m.shellActive UI ShellStatic pathframework-m-standard
framework_m.bootstrapStartup stepsBootstrapProtocolframework-m-core
framework_m.overridesDI Provider overridesClass/Factoryframework-m-core
framework_m.containersAdditional DI ContainersContainer Classframework-m-core
framework_m_core.cli_commandsm CLI extensionscyclopts.Appframework-m-core

Specialized Adapters

These allow swapping core implementations (e.g., using MX-Mongo instead of Standard-SQLAlchemy):

GroupDefault Implementation
framework_m.adapters.repositoryframework_m_standard.adapters.db:GenericRepository
framework_m.adapters.schema_mapperframework_m_standard.adapters.db:SchemaMapper
framework_m.adapters.unit_of_workframework_m_standard.adapters.db:SessionFactory
framework_m.adapters.permissionframework_m_standard.adapters.auth:CitadelPolicyAdapter
framework_m.adapters.event_busframework_m_standard.adapters.events:InMemoryEventBus

Discovery

The easiest way to see which entry points are active in your environment is using the Framework M Studio CLI:

m entrypoints

This command automatically filters for all framework_m.* and framework_m_core.* groups.


[!TIP] Programmatically, you can access these using importlib.metadata.entry_points(group="...").