The /admin landing page (Hub) shows tile links for Tenants (/tenants/manage), Pages (/pages/manage), Email Templates (/email/templates), Email History (/email/history), Menus (/settings/menus), Feature Flags (/feature-flags/manage), Rate Limiting (/rate-limiting/manage), Background Jobs (/admin/jobs), Audit Logs (/audit-logs/browse).
In a minimal install (Admin + Users + Permissions + Settings + OpenIddict + Localization), only Users / Roles / OAuth Clients / App Settings actually resolve. The other 5+ tiles 404. The hub UI presents itself as if all peer modules are installed.
Fix options
- Conditional rendering: inject
IServiceProvider (or peer-module marker services) into the Hub view's payload and emit only tiles whose target service exists.
- Module contributes its own tile: each module that ships an admin page contributes its own tile via a discoverable convention (similar to
IModuleMenu → MenuSection.AdminHub), and Admin's hub renders the union.
Option 2 is the cleaner long-term shape — keeps Admin from knowing about every peer module by name, and lets downstream apps add tiles for their own admin pages.
The
/adminlanding page (Hub) shows tile links for Tenants (/tenants/manage), Pages (/pages/manage), Email Templates (/email/templates), Email History (/email/history), Menus (/settings/menus), Feature Flags (/feature-flags/manage), Rate Limiting (/rate-limiting/manage), Background Jobs (/admin/jobs), Audit Logs (/audit-logs/browse).In a minimal install (Admin + Users + Permissions + Settings + OpenIddict + Localization), only Users / Roles / OAuth Clients / App Settings actually resolve. The other 5+ tiles 404. The hub UI presents itself as if all peer modules are installed.
Fix options
IServiceProvider(or peer-module marker services) into the Hub view's payload and emit only tiles whose target service exists.IModuleMenu→MenuSection.AdminHub), and Admin's hub renders the union.Option 2 is the cleaner long-term shape — keeps Admin from knowing about every peer module by name, and lets downstream apps add tiles for their own admin pages.