@awesome-lang-auth/node 1.10.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.detailed.md +4059 -0
- package/README.md +248 -0
- package/dist/abstract/base-auth-strategy.abstract.d.ts +7 -0
- package/dist/abstract/base-auth-strategy.abstract.d.ts.map +1 -0
- package/dist/abstract/base-auth-strategy.abstract.js +7 -0
- package/dist/abstract/base-auth-strategy.abstract.js.map +1 -0
- package/dist/abstract/base-oauth-strategy.abstract.d.ts +27 -0
- package/dist/abstract/base-oauth-strategy.abstract.d.ts.map +1 -0
- package/dist/abstract/base-oauth-strategy.abstract.js +11 -0
- package/dist/abstract/base-oauth-strategy.abstract.js.map +1 -0
- package/dist/adapters/express.d.ts +45 -0
- package/dist/adapters/express.d.ts.map +1 -0
- package/dist/adapters/express.js +49 -0
- package/dist/adapters/express.js.map +1 -0
- package/dist/adapters/fastify.d.ts +72 -0
- package/dist/adapters/fastify.d.ts.map +1 -0
- package/dist/adapters/fastify.js +63 -0
- package/dist/adapters/fastify.js.map +1 -0
- package/dist/auth-configurator.d.ts +65 -0
- package/dist/auth-configurator.d.ts.map +1 -0
- package/dist/auth-configurator.js +127 -0
- package/dist/auth-configurator.js.map +1 -0
- package/dist/events/auth-event-bus.d.ts +68 -0
- package/dist/events/auth-event-bus.d.ts.map +1 -0
- package/dist/events/auth-event-bus.js +60 -0
- package/dist/events/auth-event-bus.js.map +1 -0
- package/dist/events/auth-event-names.d.ts +34 -0
- package/dist/events/auth-event-names.d.ts.map +1 -0
- package/dist/events/auth-event-names.js +41 -0
- package/dist/events/auth-event-names.js.map +1 -0
- package/dist/http-types.d.ts +135 -0
- package/dist/http-types.d.ts.map +1 -0
- package/dist/http-types.js +18 -0
- package/dist/http-types.js.map +1 -0
- package/dist/index.d.ts +80 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +88 -0
- package/dist/index.js.map +1 -0
- package/dist/interfaces/api-key-store.interface.d.ts +94 -0
- package/dist/interfaces/api-key-store.interface.d.ts.map +1 -0
- package/dist/interfaces/api-key-store.interface.js +3 -0
- package/dist/interfaces/api-key-store.interface.js.map +1 -0
- package/dist/interfaces/auth-strategy.interface.d.ts +6 -0
- package/dist/interfaces/auth-strategy.interface.d.ts.map +1 -0
- package/dist/interfaces/auth-strategy.interface.js +3 -0
- package/dist/interfaces/auth-strategy.interface.js.map +1 -0
- package/dist/interfaces/linked-accounts-store.interface.d.ts +74 -0
- package/dist/interfaces/linked-accounts-store.interface.d.ts.map +1 -0
- package/dist/interfaces/linked-accounts-store.interface.js +3 -0
- package/dist/interfaces/linked-accounts-store.interface.js.map +1 -0
- package/dist/interfaces/pending-link-store.interface.d.ts +77 -0
- package/dist/interfaces/pending-link-store.interface.d.ts.map +1 -0
- package/dist/interfaces/pending-link-store.interface.js +3 -0
- package/dist/interfaces/pending-link-store.interface.js.map +1 -0
- package/dist/interfaces/roles-permissions-store.interface.d.ts +129 -0
- package/dist/interfaces/roles-permissions-store.interface.d.ts.map +1 -0
- package/dist/interfaces/roles-permissions-store.interface.js +3 -0
- package/dist/interfaces/roles-permissions-store.interface.js.map +1 -0
- package/dist/interfaces/session-store.interface.d.ts +92 -0
- package/dist/interfaces/session-store.interface.d.ts.map +1 -0
- package/dist/interfaces/session-store.interface.js +3 -0
- package/dist/interfaces/session-store.interface.js.map +1 -0
- package/dist/interfaces/settings-store.interface.d.ts +91 -0
- package/dist/interfaces/settings-store.interface.d.ts.map +1 -0
- package/dist/interfaces/settings-store.interface.js +3 -0
- package/dist/interfaces/settings-store.interface.js.map +1 -0
- package/dist/interfaces/sse-distributor.interface.d.ts +25 -0
- package/dist/interfaces/sse-distributor.interface.d.ts.map +1 -0
- package/dist/interfaces/sse-distributor.interface.js +3 -0
- package/dist/interfaces/sse-distributor.interface.js.map +1 -0
- package/dist/interfaces/telemetry-store.interface.d.ts +72 -0
- package/dist/interfaces/telemetry-store.interface.d.ts.map +1 -0
- package/dist/interfaces/telemetry-store.interface.js +3 -0
- package/dist/interfaces/telemetry-store.interface.js.map +1 -0
- package/dist/interfaces/template-store.interface.d.ts +37 -0
- package/dist/interfaces/template-store.interface.d.ts.map +1 -0
- package/dist/interfaces/template-store.interface.js +3 -0
- package/dist/interfaces/template-store.interface.js.map +1 -0
- package/dist/interfaces/tenant-store.interface.d.ts +97 -0
- package/dist/interfaces/tenant-store.interface.d.ts.map +1 -0
- package/dist/interfaces/tenant-store.interface.js +3 -0
- package/dist/interfaces/tenant-store.interface.js.map +1 -0
- package/dist/interfaces/token-store.interface.d.ts +10 -0
- package/dist/interfaces/token-store.interface.d.ts.map +1 -0
- package/dist/interfaces/token-store.interface.js +3 -0
- package/dist/interfaces/token-store.interface.js.map +1 -0
- package/dist/interfaces/user-metadata-store.interface.d.ts +50 -0
- package/dist/interfaces/user-metadata-store.interface.d.ts.map +1 -0
- package/dist/interfaces/user-metadata-store.interface.js +3 -0
- package/dist/interfaces/user-metadata-store.interface.js.map +1 -0
- package/dist/interfaces/user-store.interface.d.ts +113 -0
- package/dist/interfaces/user-store.interface.d.ts.map +1 -0
- package/dist/interfaces/user-store.interface.js +3 -0
- package/dist/interfaces/user-store.interface.js.map +1 -0
- package/dist/interfaces/webhook-store.interface.d.ts +139 -0
- package/dist/interfaces/webhook-store.interface.d.ts.map +1 -0
- package/dist/interfaces/webhook-store.interface.js +3 -0
- package/dist/interfaces/webhook-store.interface.js.map +1 -0
- package/dist/middleware/api-key.middleware.d.ts +35 -0
- package/dist/middleware/api-key.middleware.d.ts.map +1 -0
- package/dist/middleware/api-key.middleware.js +45 -0
- package/dist/middleware/api-key.middleware.js.map +1 -0
- package/dist/middleware/auth.middleware.d.ts +13 -0
- package/dist/middleware/auth.middleware.d.ts.map +1 -0
- package/dist/middleware/auth.middleware.js +55 -0
- package/dist/middleware/auth.middleware.js.map +1 -0
- package/dist/middleware/jwks-auth.middleware.d.ts +18 -0
- package/dist/middleware/jwks-auth.middleware.d.ts.map +1 -0
- package/dist/middleware/jwks-auth.middleware.js +77 -0
- package/dist/middleware/jwks-auth.middleware.js.map +1 -0
- package/dist/models/api-key.model.d.ts +66 -0
- package/dist/models/api-key.model.d.ts.map +1 -0
- package/dist/models/api-key.model.js +3 -0
- package/dist/models/api-key.model.js.map +1 -0
- package/dist/models/auth-config.model.d.ts +387 -0
- package/dist/models/auth-config.model.d.ts.map +1 -0
- package/dist/models/auth-config.model.js +3 -0
- package/dist/models/auth-config.model.js.map +1 -0
- package/dist/models/errors.d.ts +7 -0
- package/dist/models/errors.d.ts.map +1 -0
- package/dist/models/errors.js +14 -0
- package/dist/models/errors.js.map +1 -0
- package/dist/models/session.model.d.ts +28 -0
- package/dist/models/session.model.d.ts.map +1 -0
- package/dist/models/session.model.js +3 -0
- package/dist/models/session.model.js.map +1 -0
- package/dist/models/tenant.model.d.ts +20 -0
- package/dist/models/tenant.model.d.ts.map +1 -0
- package/dist/models/tenant.model.js +3 -0
- package/dist/models/tenant.model.js.map +1 -0
- package/dist/models/token.model.d.ts +21 -0
- package/dist/models/token.model.d.ts.map +1 -0
- package/dist/models/token.model.js +3 -0
- package/dist/models/token.model.js.map +1 -0
- package/dist/models/user.model.d.ts +92 -0
- package/dist/models/user.model.d.ts.map +1 -0
- package/dist/models/user.model.js +3 -0
- package/dist/models/user.model.js.map +1 -0
- package/dist/router/admin.router.d.ts +188 -0
- package/dist/router/admin.router.d.ts.map +1 -0
- package/dist/router/admin.router.js +1507 -0
- package/dist/router/admin.router.js.map +1 -0
- package/dist/router/auth.router.d.ts +199 -0
- package/dist/router/auth.router.d.ts.map +1 -0
- package/dist/router/auth.router.js +1636 -0
- package/dist/router/auth.router.js.map +1 -0
- package/dist/router/openapi.d.ts +98 -0
- package/dist/router/openapi.d.ts.map +1 -0
- package/dist/router/openapi.js +1518 -0
- package/dist/router/openapi.js.map +1 -0
- package/dist/router/router-events.d.ts +38 -0
- package/dist/router/router-events.d.ts.map +1 -0
- package/dist/router/router-events.js +74 -0
- package/dist/router/router-events.js.map +1 -0
- package/dist/router/tools.router.d.ts +104 -0
- package/dist/router/tools.router.d.ts.map +1 -0
- package/dist/router/tools.router.js +227 -0
- package/dist/router/tools.router.js.map +1 -0
- package/dist/router/ui.router.d.ts +49 -0
- package/dist/router/ui.router.d.ts.map +1 -0
- package/dist/router/ui.router.js +272 -0
- package/dist/router/ui.router.js.map +1 -0
- package/dist/services/api-key.service.d.ts +53 -0
- package/dist/services/api-key.service.d.ts.map +1 -0
- package/dist/services/api-key.service.js +66 -0
- package/dist/services/api-key.service.js.map +1 -0
- package/dist/services/jwks.service.d.ts +73 -0
- package/dist/services/jwks.service.d.ts.map +1 -0
- package/dist/services/jwks.service.js +174 -0
- package/dist/services/jwks.service.js.map +1 -0
- package/dist/services/mailer.service.d.ts +30 -0
- package/dist/services/mailer.service.d.ts.map +1 -0
- package/dist/services/mailer.service.js +248 -0
- package/dist/services/mailer.service.js.map +1 -0
- package/dist/services/notification.service.d.ts +110 -0
- package/dist/services/notification.service.d.ts.map +1 -0
- package/dist/services/notification.service.js +79 -0
- package/dist/services/notification.service.js.map +1 -0
- package/dist/services/password.service.d.ts +5 -0
- package/dist/services/password.service.d.ts.map +1 -0
- package/dist/services/password.service.js +17 -0
- package/dist/services/password.service.js.map +1 -0
- package/dist/services/sms.service.d.ts +14 -0
- package/dist/services/sms.service.d.ts.map +1 -0
- package/dist/services/sms.service.js +51 -0
- package/dist/services/sms.service.js.map +1 -0
- package/dist/services/token.service.d.ts +62 -0
- package/dist/services/token.service.d.ts.map +1 -0
- package/dist/services/token.service.js +354 -0
- package/dist/services/token.service.js.map +1 -0
- package/dist/stores/memory-template.store.d.ts +12 -0
- package/dist/stores/memory-template.store.d.ts.map +1 -0
- package/dist/stores/memory-template.store.js +35 -0
- package/dist/stores/memory-template.store.js.map +1 -0
- package/dist/strategies/api-key/api-key.strategy.d.ts +72 -0
- package/dist/strategies/api-key/api-key.strategy.d.ts.map +1 -0
- package/dist/strategies/api-key/api-key.strategy.js +182 -0
- package/dist/strategies/api-key/api-key.strategy.js.map +1 -0
- package/dist/strategies/local/local.strategy.d.ts +19 -0
- package/dist/strategies/local/local.strategy.d.ts.map +1 -0
- package/dist/strategies/local/local.strategy.js +45 -0
- package/dist/strategies/local/local.strategy.js.map +1 -0
- package/dist/strategies/magic-link/magic-link.strategy.d.ts +8 -0
- package/dist/strategies/magic-link/magic-link.strategy.d.ts.map +1 -0
- package/dist/strategies/magic-link/magic-link.strategy.js +53 -0
- package/dist/strategies/magic-link/magic-link.strategy.js.map +1 -0
- package/dist/strategies/oauth/generic-oauth.strategy.d.ts +120 -0
- package/dist/strategies/oauth/generic-oauth.strategy.d.ts.map +1 -0
- package/dist/strategies/oauth/generic-oauth.strategy.js +88 -0
- package/dist/strategies/oauth/generic-oauth.strategy.js.map +1 -0
- package/dist/strategies/oauth/github.strategy.d.ts +31 -0
- package/dist/strategies/oauth/github.strategy.d.ts.map +1 -0
- package/dist/strategies/oauth/github.strategy.js +72 -0
- package/dist/strategies/oauth/github.strategy.js.map +1 -0
- package/dist/strategies/oauth/google.strategy.d.ts +31 -0
- package/dist/strategies/oauth/google.strategy.d.ts.map +1 -0
- package/dist/strategies/oauth/google.strategy.js +61 -0
- package/dist/strategies/oauth/google.strategy.js.map +1 -0
- package/dist/strategies/sms/sms.strategy.d.ts +7 -0
- package/dist/strategies/sms/sms.strategy.d.ts.map +1 -0
- package/dist/strategies/sms/sms.strategy.js +39 -0
- package/dist/strategies/sms/sms.strategy.js.map +1 -0
- package/dist/strategies/two-factor/totp.strategy.d.ts +12 -0
- package/dist/strategies/two-factor/totp.strategy.d.ts.map +1 -0
- package/dist/strategies/two-factor/totp.strategy.js +32 -0
- package/dist/strategies/two-factor/totp.strategy.js.map +1 -0
- package/dist/tools/auth-tools.d.ts +200 -0
- package/dist/tools/auth-tools.d.ts.map +1 -0
- package/dist/tools/auth-tools.js +232 -0
- package/dist/tools/auth-tools.js.map +1 -0
- package/dist/tools/sse-manager.d.ts +118 -0
- package/dist/tools/sse-manager.d.ts.map +1 -0
- package/dist/tools/sse-manager.js +163 -0
- package/dist/tools/sse-manager.js.map +1 -0
- package/dist/tools/sse-notify.decorator.d.ts +74 -0
- package/dist/tools/sse-notify.decorator.d.ts.map +1 -0
- package/dist/tools/sse-notify.decorator.js +78 -0
- package/dist/tools/sse-notify.decorator.js.map +1 -0
- package/dist/tools/webhook-action.d.ts +130 -0
- package/dist/tools/webhook-action.d.ts.map +1 -0
- package/dist/tools/webhook-action.js +144 -0
- package/dist/tools/webhook-action.js.map +1 -0
- package/dist/tools/webhook-sender.d.ts +31 -0
- package/dist/tools/webhook-sender.d.ts.map +1 -0
- package/dist/tools/webhook-sender.js +80 -0
- package/dist/tools/webhook-sender.js.map +1 -0
- package/dist/ui-assets/2fa.html +115 -0
- package/dist/ui-assets/account-conflict.html +108 -0
- package/dist/ui-assets/admin.css +263 -0
- package/dist/ui-assets/admin.js +1927 -0
- package/dist/ui-assets/auth.js +725 -0
- package/dist/ui-assets/base.css +219 -0
- package/dist/ui-assets/forgot-password.html +93 -0
- package/dist/ui-assets/link-verify.html +74 -0
- package/dist/ui-assets/login.html +135 -0
- package/dist/ui-assets/magic-link.html +112 -0
- package/dist/ui-assets/register.html +122 -0
- package/dist/ui-assets/reset-password.html +103 -0
- package/dist/ui-assets/ui-i18n-keys.json +78 -0
- package/dist/ui-assets/verify-email.html +66 -0
- package/package.json +89 -0
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
import { Router, RequestHandler } from 'express';
|
|
2
|
+
import { IUserStore } from '../interfaces/user-store.interface';
|
|
3
|
+
import { ISessionStore } from '../interfaces/session-store.interface';
|
|
4
|
+
import { IRolesPermissionsStore } from '../interfaces/roles-permissions-store.interface';
|
|
5
|
+
import { ITenantStore } from '../interfaces/tenant-store.interface';
|
|
6
|
+
import { IUserMetadataStore } from '../interfaces/user-metadata-store.interface';
|
|
7
|
+
import { ISettingsStore } from '../interfaces/settings-store.interface';
|
|
8
|
+
import { ILinkedAccountsStore } from '../interfaces/linked-accounts-store.interface';
|
|
9
|
+
import { IApiKeyStore } from '../interfaces/api-key-store.interface';
|
|
10
|
+
import { IWebhookStore } from '../interfaces/webhook-store.interface';
|
|
11
|
+
import { ITemplateStore } from '../interfaces/template-store.interface';
|
|
12
|
+
import { BaseUser } from '../models/user.model';
|
|
13
|
+
import { AuthEventBus } from '../events/auth-event-bus';
|
|
14
|
+
export type AuthorizedAdminUser = BaseUser & {
|
|
15
|
+
roles: string[];
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* Policy that controls who may access the Admin UI and REST API.
|
|
19
|
+
*
|
|
20
|
+
* | Value | Description |
|
|
21
|
+
* |-------|-------------|
|
|
22
|
+
* | `'first-user'` | Only the first registered user (lowest-ID) is granted access. Ideal for single-owner setups. |
|
|
23
|
+
* | `'is-admin-flag'` | Only users with `BaseUser.isAdmin === true` are granted access. |
|
|
24
|
+
* | `'open'` | No restriction — all authenticated users are granted access. Use only behind a VPN or IP allow-list. |
|
|
25
|
+
* | `(user, rbacStore?) => Promise<boolean>` | Custom async predicate. Return `true` to grant access. |
|
|
26
|
+
*
|
|
27
|
+
* When `accessPolicy` is set the guard validates the request JWT (using
|
|
28
|
+
* `jwtSecret`). Unauthenticated requests get `401`, except a browser request
|
|
29
|
+
* for the HTML panel, which is redirected to `loginPath` when it is set and
|
|
30
|
+
* otherwise shows the panel's built-in sign-in form.
|
|
31
|
+
*
|
|
32
|
+
* @since 1.8.0
|
|
33
|
+
*/
|
|
34
|
+
export type AdminAccessPolicy = 'first-user' | 'is-admin-flag' | 'open' | ((user: AuthorizedAdminUser, rbacStore?: IRolesPermissionsStore) => boolean | Promise<boolean>);
|
|
35
|
+
export interface AdminOptions {
|
|
36
|
+
/**
|
|
37
|
+
* Secret token required to access all admin endpoints.
|
|
38
|
+
* Pass as a Bearer token: `Authorization: Bearer <adminSecret>`
|
|
39
|
+
* The HTML UI presents a login form that stores the token in sessionStorage.
|
|
40
|
+
*
|
|
41
|
+
* Must be non-empty: without `accessPolicy`, `createAdminRouter` throws when
|
|
42
|
+
* `adminSecret` is present but empty (`''`, or `undefined` from an unset
|
|
43
|
+
* environment variable). With `accessPolicy` it is only the bootstrap
|
|
44
|
+
* credential of `POST /login`, and an empty value disables it.
|
|
45
|
+
*
|
|
46
|
+
* @deprecated Use `accessPolicy` + `jwtSecret` instead (v1.8.0+).
|
|
47
|
+
* `adminSecret` will be removed in a future major version.
|
|
48
|
+
* It is still fully functional for backward compatibility.
|
|
49
|
+
*/
|
|
50
|
+
adminSecret?: string;
|
|
51
|
+
/**
|
|
52
|
+
* Access control policy that governs who may use the Admin UI and API.
|
|
53
|
+
*
|
|
54
|
+
* When set, the guard validates the request JWT (`Authorization: Bearer <token>`
|
|
55
|
+
* or the `accessToken` cookie). A request without a valid session gets
|
|
56
|
+
* `401`, except a browser request for the HTML panel (`GET <adminPath>/`),
|
|
57
|
+
* which is redirected to `loginPath` when it is set and otherwise shows the
|
|
58
|
+
* panel's built-in sign-in form.
|
|
59
|
+
*
|
|
60
|
+
* Requires `jwtSecret` to be set when using any policy other than `'open'`.
|
|
61
|
+
*
|
|
62
|
+
* @since 1.8.0
|
|
63
|
+
*/
|
|
64
|
+
accessPolicy?: AdminAccessPolicy;
|
|
65
|
+
/**
|
|
66
|
+
* JWT secret used to verify the access token when `accessPolicy` is set.
|
|
67
|
+
*
|
|
68
|
+
* Must match `AuthConfig.accessTokenSecret` (the same secret used to sign
|
|
69
|
+
* tokens during login). Not required when `accessPolicy` is `'open'`.
|
|
70
|
+
*
|
|
71
|
+
* @since 1.8.0
|
|
72
|
+
*/
|
|
73
|
+
jwtSecret?: string;
|
|
74
|
+
/** Optional session store — enables the Sessions tab in the admin UI. */
|
|
75
|
+
sessionStore?: ISessionStore;
|
|
76
|
+
/** Optional RBAC store — enables the Roles & Permissions tab and user-role assignment. */
|
|
77
|
+
rbacStore?: IRolesPermissionsStore;
|
|
78
|
+
/** Optional tenant store — enables the Tenants tab and user-tenant assignment. */
|
|
79
|
+
tenantStore?: ITenantStore;
|
|
80
|
+
/**
|
|
81
|
+
* Optional user-metadata store — enables the Metadata section in the user detail
|
|
82
|
+
* panel (view and edit arbitrary per-user key/value data).
|
|
83
|
+
*/
|
|
84
|
+
userMetadataStore?: IUserMetadataStore;
|
|
85
|
+
/** Optional settings store — enables the ⚙️ Control tab in the admin UI. */
|
|
86
|
+
settingsStore?: ISettingsStore;
|
|
87
|
+
/**
|
|
88
|
+
* Optional linked-accounts store — enables the Linked Accounts column in the
|
|
89
|
+
* users table and the Linked Accounts section in the user detail panel.
|
|
90
|
+
*/
|
|
91
|
+
linkedAccountsStore?: ILinkedAccountsStore;
|
|
92
|
+
/**
|
|
93
|
+
* Optional prefix for the authentication cookies (e.g. `__Host-` or `__Secure-`).
|
|
94
|
+
* If provided, the guard will look for `${cookiePrefix}accessToken`.
|
|
95
|
+
* If not provided, it will try the default variants.
|
|
96
|
+
*
|
|
97
|
+
* @since 1.8.1
|
|
98
|
+
*/
|
|
99
|
+
cookiePrefix?: string;
|
|
100
|
+
/**
|
|
101
|
+
* Optional root user for the Admin UI.
|
|
102
|
+
* Useful for bootstrapping or in environments without local users.
|
|
103
|
+
*
|
|
104
|
+
* @since 1.8.1
|
|
105
|
+
*/
|
|
106
|
+
rootUser?: {
|
|
107
|
+
email: string;
|
|
108
|
+
/** Bcrypt-hashed password. */
|
|
109
|
+
passwordHash: string;
|
|
110
|
+
};
|
|
111
|
+
/**
|
|
112
|
+
* Optional API Key store — enables the 🔑 API Keys tab in the admin UI.
|
|
113
|
+
* Requires `IApiKeyStore.listAll` for listing and optionally `delete` for hard deletion.
|
|
114
|
+
*/
|
|
115
|
+
apiKeyStore?: IApiKeyStore;
|
|
116
|
+
/**
|
|
117
|
+
* Optional webhook store — enables the 🔗 Webhooks tab in the admin UI.
|
|
118
|
+
* Requires `IWebhookStore.listAll` for listing and optionally `add`/`remove`/`update`
|
|
119
|
+
* for full management.
|
|
120
|
+
*/
|
|
121
|
+
webhookStore?: IWebhookStore;
|
|
122
|
+
/** Optional template store — enables the Email & UI tab in the admin UI. */
|
|
123
|
+
templateStore?: ITemplateStore;
|
|
124
|
+
/** Optional directory for uploaded assets (e.g. logos). */
|
|
125
|
+
uploadDir?: string;
|
|
126
|
+
/**
|
|
127
|
+
* Public base URL where uploaded assets (stored in `uploadDir`) are served
|
|
128
|
+
* by the UI router. This must match where `buildUiRouter` is mounted plus
|
|
129
|
+
* `/assets/uploads`, e.g. `'/auth/ui/assets/uploads'` when the UI router is
|
|
130
|
+
* mounted at `'/auth/ui'`.
|
|
131
|
+
*
|
|
132
|
+
* When set, the upload endpoints return a ready-to-use browser URL:
|
|
133
|
+
* `<uploadBaseUrl>/<filename>`
|
|
134
|
+
*
|
|
135
|
+
* When omitted the endpoints still return the filename so callers can
|
|
136
|
+
* construct the URL themselves.
|
|
137
|
+
*
|
|
138
|
+
* @example '/auth/ui/assets/uploads'
|
|
139
|
+
*/
|
|
140
|
+
uploadBaseUrl?: string;
|
|
141
|
+
/**
|
|
142
|
+
* Optional auth event bus. When provided, admin-side auth and RBAC events are
|
|
143
|
+
* published automatically.
|
|
144
|
+
*/
|
|
145
|
+
eventBus?: AuthEventBus;
|
|
146
|
+
/**
|
|
147
|
+
* The base path where the main auth router is mounted.
|
|
148
|
+
* Used to automatically compute uploadBaseUrl if not provided.
|
|
149
|
+
* @default '/auth'
|
|
150
|
+
*/
|
|
151
|
+
apiPrefix?: string;
|
|
152
|
+
/**
|
|
153
|
+
* Enable Swagger UI (`GET /api/openapi.json`, `GET /api/docs`) on the admin router.
|
|
154
|
+
*
|
|
155
|
+
* - `true` — always enabled
|
|
156
|
+
* - `false` — always disabled
|
|
157
|
+
* - `'auto'` (default) — enabled when `NODE_ENV` is **not** `'production'`
|
|
158
|
+
*
|
|
159
|
+
* @default 'auto'
|
|
160
|
+
*/
|
|
161
|
+
swagger?: boolean | 'auto';
|
|
162
|
+
/**
|
|
163
|
+
* Base path where the admin router is mounted.
|
|
164
|
+
* Used to build accurate path entries in the OpenAPI spec.
|
|
165
|
+
*
|
|
166
|
+
* @default '/admin'
|
|
167
|
+
*/
|
|
168
|
+
swaggerBasePath?: string;
|
|
169
|
+
/**
|
|
170
|
+
* Optional custom login path to redirect unauthenticated browser requests
|
|
171
|
+
* for the HTML panel to. If not provided, the panel serves its own internal
|
|
172
|
+
* login form as a fallback. The REST API answers `401` either way.
|
|
173
|
+
*
|
|
174
|
+
* @example '/login'
|
|
175
|
+
* @since 1.8.0
|
|
176
|
+
*/
|
|
177
|
+
loginPath?: string;
|
|
178
|
+
/**
|
|
179
|
+
* Suppress startup logs from the admin router.
|
|
180
|
+
*/
|
|
181
|
+
silent?: boolean;
|
|
182
|
+
/**
|
|
183
|
+
* Optional rate limiter middleware applied to sensitive admin mutations.
|
|
184
|
+
*/
|
|
185
|
+
rateLimiter?: RequestHandler;
|
|
186
|
+
}
|
|
187
|
+
export declare function createAdminRouter(userStore: IUserStore, options: AdminOptions): Router;
|
|
188
|
+
//# sourceMappingURL=admin.router.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admin.router.d.ts","sourceRoot":"","sources":["../../src/router/admin.router.ts"],"names":[],"mappings":"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"}
|