Skip to main content
zerotal

Documentation


Documentation / @zerotal/admin / index / AdminConfigShape

Interface: AdminConfigShape

Defined in: admin/src/config.ts:63

Admin panel configuration (read from config/admin.ts, with defaults).

Properties

path

path: string

Defined in: admin/src/config.ts:65

URL prefix the panel mounts under.


brand

brand: string

Defined in: admin/src/config.ts:67

Brand name shown in the sidebar.


tagline?

optional tagline?: string

Defined in: admin/src/config.ts:69

Optional short tagline under the brand.


middleware?

optional middleware?: MiddlewareClass[]

Defined in: admin/src/config.ts:78

Middleware guarding every panel route. When left empty, the panel is default-denied in production-like environments (fail closed) and open only for local exploration (APP_ENV=development|local|test). Set an auth/authorization middleware before shipping to production, e.g. [AuthMiddleware.with({ ... })]. To deliberately expose it without auth, pass an explicit pass-through middleware.


userMenu?

optional userMenu?: UserMenu

Defined in: admin/src/config.ts:80

Optional top-bar user menu (Profile / Logout / …).


theme?

optional theme?: AdminThemeConfig

Defined in: admin/src/config.ts:82

Styling source — Tailwind Play CDN (default) or a prebuilt stylesheet.


auth?

optional auth?: AdminAuthConfig

Defined in: admin/src/config.ts:84

Auth pages (login / profile / password-reset / email-verification).


authorize?

optional authorize?: AdminAuthorizer

Defined in: admin/src/config.ts:93

Decide the abilities named by pages, widgets, nav entries and search providers. Set this when the app models permissions itself; leave it unset to resolve through @zerotal/auth's Gate when that package is installed.

With neither configured, every ability is denied outside a development environment — a panel with no authorization wired stays closed in production.


plugins?

optional plugins?: Record<string, boolean>

Defined in: admin/src/config.ts:99

Switch contributing packages off by id — { monitor: false } keeps the monitor provider installed but drops its pages, widgets and nav entries from the panel. Anything absent here is on.