Skip to content

Middleware

Directory: src/Http/Middleware/
Registration: src/Support/ModularousRoutes::generateRouteMiddlewares()

Modularous registers its own middleware aliases and groups during the route bootstrapping phase. All aliases use the modularous.* prefix to avoid conflicts with application middleware.

Middleware Aliases

AliasClassDescription
modularous.authAuthenticateMiddlewareGuards routes; stores intended URL; handles JSON 401
modularous.guestRedirectIfAuthenticatedMiddlewareRedirects already-authenticated users away from guest pages
modularous.logLogMiddlewareInjects Request-Id UUID into every request/response
modularous.utmUtmMiddlewareCaptures UTM params and shares them with views
modularous.languageLanguageMiddlewareResolves locale, timezone, and active currency per request
modularous.impersonateImpersonateMiddlewareActivates user impersonation from session
modularous.loadLocalizedConfigLoadLocalizedConfigMerges deferred and app-level config files at request time
modularous.navigationNavigationMiddlewareShares navigation config with Blade layout views
authorizationAuthorizationMiddlewareShares profile/login shortcut schemas with the master layout
modularous.company.registrationCompanyRegistrationMiddlewareGuards routes that require a valid company (stub)
modularous.redirectorRedirectorMiddlewareConsumes a pending redirect URL from RedirectService
hostableHostableMiddlewareStub for host-based routing features
inertia.middlewareHandleInertiaRequestsInertia root view + shared props (auth, flash, config, store)
roleSpatie RoleMiddlewareRole-based route protection (Spatie Permission)
permissionSpatie PermissionMiddlewarePermission-based route protection (Spatie Permission)
role_or_permissionSpatie RoleOrPermissionMiddlewareRole OR permission route protection (Spatie Permission)

Middleware Groups

GroupMiddleware stack
web.authweb, modularous.auth:{guard}
api.authapi, throttle:api, modularous.auth:{guard}
modularous.coremodularous.utm, modularous.impersonate, modularous.language, modularous.loadLocalizedConfig, modularous.navigation, inertia.middleware
modularous.panelauthorization, modularous.company.registration, modularous.redirector

Route Stack by Type

Every route registered by Modularous belongs to one of four stacks:

Route typeMiddleware stack
web (public)web + modularous.log + modularous.core
webPanel (authenticated admin)web.auth + modularous.log + modularous.core + modularous.panel
api (public API)api + modularous.log + modularous.core
apiPanel (authenticated API)api.auth + modularous.log + modularous.core + modularous.panel

Request Flow

Incoming request
  └── modularous.log          ← assign Request-Id UUID
  └── modularous.core group
        ├── modularous.utm          ← capture UTM params
        ├── modularous.impersonate  ← swap auth user if impersonating
        ├── modularous.language     ← set locale / currency
        ├── modularous.loadLocalizedConfig  ← merge runtime config
        ├── modularous.navigation   ← share nav data with views
        └── inertia.middleware      ← share auth/flash/config with Inertia
  └── [modularous.panel group — authenticated panel routes only]
        ├── authorization           ← share profile shortcuts with layout
        ├── modularous.company.registration  ← company guard
        └── modularous.redirector   ← consume pending redirects
  └── Controller