@frontmcp/auth 1.3.0 → 1.4.0
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/authorities/authorities.profiles.d.ts +14 -1
- package/authorities/authorities.profiles.d.ts.map +1 -1
- package/authorization/dcr-client.registry.d.ts +83 -0
- package/authorization/dcr-client.registry.d.ts.map +1 -0
- package/authorization/index.d.ts +2 -0
- package/authorization/index.d.ts.map +1 -1
- package/cimd/cimd.service.d.ts +2 -9
- package/cimd/cimd.service.d.ts.map +1 -1
- package/common/session.types.d.ts +4 -4
- package/esm/index.mjs +1821 -214
- package/esm/package.json +5 -5
- package/index.d.ts +5 -5
- package/index.d.ts.map +1 -1
- package/index.js +2030 -383
- package/jwks/jwks.service.d.ts +2 -4
- package/jwks/jwks.service.d.ts.map +1 -1
- package/options/app-auth.schema.d.ts +226 -0
- package/options/app-auth.schema.d.ts.map +1 -1
- package/options/index.d.ts +4 -4
- package/options/index.d.ts.map +1 -1
- package/options/interfaces.d.ts +580 -4
- package/options/interfaces.d.ts.map +1 -1
- package/options/orchestrated.schema.d.ts +492 -1
- package/options/orchestrated.schema.d.ts.map +1 -1
- package/options/schema.d.ts +226 -0
- package/options/schema.d.ts.map +1 -1
- package/options/shared.schemas.d.ts +237 -2
- package/options/shared.schemas.d.ts.map +1 -1
- package/package.json +5 -5
- package/session/authorization.store.d.ts +117 -47
- package/session/authorization.store.d.ts.map +1 -1
- package/session/consent.store.d.ts +86 -0
- package/session/consent.store.d.ts.map +1 -0
- package/session/credential-resume-link.d.ts +64 -0
- package/session/credential-resume-link.d.ts.map +1 -0
- package/session/credentials-accessor.d.ts +102 -0
- package/session/credentials-accessor.d.ts.map +1 -0
- package/session/credentials-accessor.impl.d.ts +46 -0
- package/session/credentials-accessor.impl.d.ts.map +1 -0
- package/session/index.d.ts +32 -2
- package/session/index.d.ts.map +1 -1
- package/session/orchestrated-token.crypto.d.ts +33 -0
- package/session/orchestrated-token.crypto.d.ts.map +1 -0
- package/session/secure-store-accessor.d.ts +77 -0
- package/session/secure-store-accessor.d.ts.map +1 -0
- package/session/secure-store-accessor.impl.d.ts +61 -0
- package/session/secure-store-accessor.impl.d.ts.map +1 -0
- package/session/secure-store-backends.d.ts +75 -0
- package/session/secure-store-backends.d.ts.map +1 -0
- package/session/secure-store.d.ts +89 -0
- package/session/secure-store.d.ts.map +1 -0
- package/session/secure-store.factory.d.ts +62 -0
- package/session/secure-store.factory.d.ts.map +1 -0
- package/session/session-credential-vault.d.ts +153 -0
- package/session/session-credential-vault.d.ts.map +1 -0
- package/session/session-credential-vault.factory.d.ts +50 -0
- package/session/session-credential-vault.factory.d.ts.map +1 -0
- package/session/storage-authorization.store.d.ts +51 -0
- package/session/storage-authorization.store.d.ts.map +1 -0
- package/session/storage-consent.store.d.ts +33 -0
- package/session/storage-consent.store.d.ts.map +1 -0
- package/session/storage-federated-auth.session.d.ts +36 -0
- package/session/storage-federated-auth.session.d.ts.map +1 -0
- package/session/storage-orchestrated-token.store.d.ts +72 -0
- package/session/storage-orchestrated-token.store.d.ts.map +1 -0
- package/session/token-storage.factory.d.ts +46 -0
- package/session/token-storage.factory.d.ts.map +1 -0
- package/ui/index.d.ts +3 -2
- package/ui/index.d.ts.map +1 -1
- package/ui/local-login.helper.d.ts +31 -0
- package/ui/local-login.helper.d.ts.map +1 -0
- package/ui/templates.d.ts +118 -2
- package/ui/templates.d.ts.map +1 -1
- package/vault/auth-providers.types.d.ts +3 -3
package/options/interfaces.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { JSONWebKeySet, JWK } from '../common/jwt.types';
|
|
2
|
-
import type { RedisConfig } from '../session/transport-session.types';
|
|
3
1
|
import type { CimdConfigInput } from '../cimd';
|
|
2
|
+
import type { AuthLogger } from '../common';
|
|
3
|
+
import { type JSONWebKeySet, type JWK } from '../common/jwt.types';
|
|
4
|
+
import type { RedisConfig } from '../session/transport-session.types';
|
|
4
5
|
/**
|
|
5
6
|
* Public access configuration for tools/prompts
|
|
6
7
|
*/
|
|
@@ -116,15 +117,96 @@ export interface RemoteProviderConfig {
|
|
|
116
117
|
/** User info endpoint override */
|
|
117
118
|
userInfoEndpoint?: string;
|
|
118
119
|
}
|
|
120
|
+
/**
|
|
121
|
+
* SQLite configuration for token storage.
|
|
122
|
+
*
|
|
123
|
+
* `path` is required: the auth layer has no default-path resolver, so SQLite
|
|
124
|
+
* persistence is opt-in and explicit.
|
|
125
|
+
*/
|
|
126
|
+
export interface TokenStorageSqliteConfig {
|
|
127
|
+
/** Path to the `.sqlite` database file used for auth persistence. */
|
|
128
|
+
path: string;
|
|
129
|
+
/** Optional at-rest value encryption (AES-256-GCM via HKDF-SHA256). */
|
|
130
|
+
encryption?: {
|
|
131
|
+
secret: string;
|
|
132
|
+
};
|
|
133
|
+
/** Interval in ms for purging expired keys (default 60000). */
|
|
134
|
+
ttlCleanupIntervalMs?: number;
|
|
135
|
+
/** Enable WAL mode for better read concurrency (default true). */
|
|
136
|
+
walMode?: boolean;
|
|
137
|
+
}
|
|
119
138
|
/**
|
|
120
139
|
* Token storage configuration (simplified, BC-030)
|
|
121
140
|
*
|
|
122
|
-
*
|
|
123
|
-
*
|
|
141
|
+
* - `'memory'` — in-memory storage (default; lost on restart).
|
|
142
|
+
* - `{ redis: RedisConfig }` — Redis-backed persistence.
|
|
143
|
+
* - `{ sqlite: TokenStorageSqliteConfig }` — local SQLite-file persistence.
|
|
124
144
|
*/
|
|
125
145
|
export type TokenStorageConfig = 'memory' | {
|
|
126
146
|
redis: RedisConfig;
|
|
147
|
+
} | {
|
|
148
|
+
sqlite: TokenStorageSqliteConfig;
|
|
127
149
|
};
|
|
150
|
+
/**
|
|
151
|
+
* How a secure-store namespace is derived from the request:
|
|
152
|
+
* - `user` (default): keyed by the authenticated subject (`sub`).
|
|
153
|
+
* - `session`: keyed by the transport `sessionId`.
|
|
154
|
+
* - `global`: a single server-wide namespace.
|
|
155
|
+
*/
|
|
156
|
+
export type SecureStoreScope = 'user' | 'session' | 'global';
|
|
157
|
+
/**
|
|
158
|
+
* At-rest encryption settings for the built-in secure-store backings. Ignored
|
|
159
|
+
* for a custom `{ backend }` backing.
|
|
160
|
+
*/
|
|
161
|
+
export interface SecureStoreEncryptionConfig {
|
|
162
|
+
/** Server pepper mixed into HKDF key derivation. Defaults to `VAULT_SECRET ?? JWT_SECRET`. */
|
|
163
|
+
pepper?: string;
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* A custom secure-store backing — an object implementing the four-method
|
|
167
|
+
* `SecureStoreBackend` contract (e.g. an OS-keychain backend). Typed loosely
|
|
168
|
+
* here (the strict `SecureStoreBackend` interface lives in `session/`) so the
|
|
169
|
+
* options module stays free of session imports.
|
|
170
|
+
*/
|
|
171
|
+
export interface SecureStoreCustomBackend {
|
|
172
|
+
get(namespace: string, key: string): Promise<string | null>;
|
|
173
|
+
set(namespace: string, key: string, value: string, ttlMs?: number): Promise<void>;
|
|
174
|
+
delete(namespace: string, key: string): Promise<boolean>;
|
|
175
|
+
list(namespace: string): Promise<string[]>;
|
|
176
|
+
dispose?(): Promise<void>;
|
|
177
|
+
}
|
|
178
|
+
/** Fields shared by the object-form secure-store configs. */
|
|
179
|
+
interface SecureStoreCommonConfig {
|
|
180
|
+
/** Namespace scope. @default 'user' */
|
|
181
|
+
scope?: SecureStoreScope;
|
|
182
|
+
/** Default TTL (ms) for stored secrets. @default undefined (no expiry) */
|
|
183
|
+
ttlMs?: number;
|
|
184
|
+
/** At-rest encryption settings (built-in backings only). */
|
|
185
|
+
encryption?: SecureStoreEncryptionConfig;
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* Secure-store configuration (#470) — the general session-scoped secure-secret
|
|
189
|
+
* store backing for `this.secureStore`.
|
|
190
|
+
*
|
|
191
|
+
* - `'memory'` — in-memory, AES-256-GCM-encrypted (default; lost on restart).
|
|
192
|
+
* - `{ sqlite }` — local SQLite-file persistence (survives restart).
|
|
193
|
+
* - `{ redis }` — Redis-backed persistence.
|
|
194
|
+
* - `{ backend }` — a custom backing (e.g. an OS keychain). No native dependency
|
|
195
|
+
* is bundled by the framework.
|
|
196
|
+
*
|
|
197
|
+
* The object forms also accept `scope`, `ttlMs`, and (for built-ins) `encryption`.
|
|
198
|
+
*/
|
|
199
|
+
export type SecureStoreConfig = 'memory' | (SecureStoreCommonConfig & {
|
|
200
|
+
sqlite?: never;
|
|
201
|
+
redis?: never;
|
|
202
|
+
backend?: never;
|
|
203
|
+
}) | (SecureStoreCommonConfig & {
|
|
204
|
+
sqlite: TokenStorageSqliteConfig;
|
|
205
|
+
}) | (SecureStoreCommonConfig & {
|
|
206
|
+
redis: RedisConfig;
|
|
207
|
+
}) | (SecureStoreCommonConfig & {
|
|
208
|
+
backend: SecureStoreCustomBackend;
|
|
209
|
+
});
|
|
128
210
|
/**
|
|
129
211
|
* Token refresh configuration
|
|
130
212
|
*/
|
|
@@ -195,6 +277,118 @@ export interface FederatedAuthConfig {
|
|
|
195
277
|
* - 'format': Only validates the state format is correct
|
|
196
278
|
*/
|
|
197
279
|
stateValidation: 'strict' | 'format';
|
|
280
|
+
/**
|
|
281
|
+
* Minimum number of upstream providers a user must link before a FrontMCP JWT
|
|
282
|
+
* is minted (defaults to 1 at runtime when `providers` are configured).
|
|
283
|
+
*/
|
|
284
|
+
minProviders?: number;
|
|
285
|
+
/**
|
|
286
|
+
* Provider ids that MUST be linked before a JWT is minted.
|
|
287
|
+
*/
|
|
288
|
+
requiredProviders?: string[];
|
|
289
|
+
}
|
|
290
|
+
/**
|
|
291
|
+
* Declarative upstream OAuth provider for local-mode multi-provider
|
|
292
|
+
* orchestration. See {@link LocalAuthOptionsInterface.providers}.
|
|
293
|
+
*/
|
|
294
|
+
export interface UpstreamProviderOptions {
|
|
295
|
+
/** Stable provider id (e.g. `'github'`). */
|
|
296
|
+
id: string;
|
|
297
|
+
/** Human-readable display name. Defaults to `id`. */
|
|
298
|
+
name?: string;
|
|
299
|
+
/** Authorization endpoint (canonical name). */
|
|
300
|
+
authorizationEndpoint?: string;
|
|
301
|
+
/** Authorization endpoint (alias for {@link authorizationEndpoint}). */
|
|
302
|
+
authorizeUrl?: string;
|
|
303
|
+
/** Token endpoint (canonical name). */
|
|
304
|
+
tokenEndpoint?: string;
|
|
305
|
+
/** Token endpoint (alias for {@link tokenEndpoint}). */
|
|
306
|
+
tokenUrl?: string;
|
|
307
|
+
/** OAuth client id issued by the upstream provider. */
|
|
308
|
+
clientId: string;
|
|
309
|
+
/** OAuth client secret (confidential clients). */
|
|
310
|
+
clientSecret?: string;
|
|
311
|
+
/** Scopes to request from the upstream provider. */
|
|
312
|
+
scopes?: string[];
|
|
313
|
+
/** User info endpoint (optional). */
|
|
314
|
+
userInfoEndpoint?: string;
|
|
315
|
+
/** JWKS URI for upstream id_token validation (optional). */
|
|
316
|
+
jwksUri?: string;
|
|
317
|
+
}
|
|
318
|
+
/**
|
|
319
|
+
* A pre-registered (trusted) OAuth client for the LOCAL Authorization Server.
|
|
320
|
+
* Seeded into the client registry at startup so the authorize/token flows
|
|
321
|
+
* accept it without a Dynamic Client Registration round-trip. See
|
|
322
|
+
* {@link LocalDcrConfig.clients}. No PII is stored — only OAuth client metadata.
|
|
323
|
+
*/
|
|
324
|
+
export interface LocalDcrClient {
|
|
325
|
+
/** Stable, pre-assigned client identifier. */
|
|
326
|
+
clientId: string;
|
|
327
|
+
/** Confidential-client secret. Omit for public (PKCE) clients. */
|
|
328
|
+
clientSecret?: string;
|
|
329
|
+
/** Exact redirect URIs this client may use (at least one). */
|
|
330
|
+
redirectUris: string[];
|
|
331
|
+
/** Human-readable client name for consent/login screens. */
|
|
332
|
+
clientName?: string;
|
|
333
|
+
/**
|
|
334
|
+
* Token-endpoint auth method.
|
|
335
|
+
* @default 'none'
|
|
336
|
+
*/
|
|
337
|
+
tokenEndpointAuthMethod?: 'none' | 'client_secret_basic' | 'client_secret_post';
|
|
338
|
+
/**
|
|
339
|
+
* Allowed grant types.
|
|
340
|
+
* @default ['authorization_code']
|
|
341
|
+
*/
|
|
342
|
+
grantTypes?: Array<'authorization_code' | 'refresh_token'>;
|
|
343
|
+
/**
|
|
344
|
+
* Allowed response types.
|
|
345
|
+
* @default ['code']
|
|
346
|
+
*/
|
|
347
|
+
responseTypes?: Array<'code'>;
|
|
348
|
+
/** Optional space-delimited default scope string. */
|
|
349
|
+
scope?: string;
|
|
350
|
+
}
|
|
351
|
+
/**
|
|
352
|
+
* Declarative control surface for the LOCAL Authorization Server's Dynamic
|
|
353
|
+
* Client Registration endpoint (`POST /oauth/register`) and client allowlist.
|
|
354
|
+
*
|
|
355
|
+
* IMPORTANT: distinct from the upstream-provider `dcrEnabled`/
|
|
356
|
+
* `registrationEndpoint` fields on {@link ProviderConfig}/
|
|
357
|
+
* {@link RemoteProviderConfig} (those register THIS server against an upstream
|
|
358
|
+
* IdP and are not read by the local AS). Every field is optional; omitting the
|
|
359
|
+
* whole `dcr` block preserves the historical behavior exactly (DCR enabled in
|
|
360
|
+
* dev, disabled in production; no allowlist; no initial access token).
|
|
361
|
+
*/
|
|
362
|
+
export interface LocalDcrConfig {
|
|
363
|
+
/**
|
|
364
|
+
* Whether `POST /oauth/register` is active and `registration_endpoint` is
|
|
365
|
+
* advertised. When unset, the historical guard applies (on in dev, off in
|
|
366
|
+
* production).
|
|
367
|
+
*/
|
|
368
|
+
enabled?: boolean;
|
|
369
|
+
/**
|
|
370
|
+
* Redirect-URI allowlist (exact match or simple `*` glob). When set, both DCR
|
|
371
|
+
* registrations and `/oauth/authorize` reject a `redirect_uri` not on the
|
|
372
|
+
* list. When unset, no redirect_uri allowlist is enforced.
|
|
373
|
+
*/
|
|
374
|
+
allowedRedirectUris?: string[];
|
|
375
|
+
/**
|
|
376
|
+
* Client-id allowlist. When set, only these ids may register or be used at
|
|
377
|
+
* `/oauth/authorize` (CIMD URL client ids are exempt). When unset, any id is
|
|
378
|
+
* accepted subject to the other checks.
|
|
379
|
+
*/
|
|
380
|
+
allowedClientIds?: string[];
|
|
381
|
+
/**
|
|
382
|
+
* Initial Access Token (RFC 7591 §3). When set, `POST /oauth/register`
|
|
383
|
+
* requires a matching `Authorization: Bearer <token>` header. When unset,
|
|
384
|
+
* registration is unauthenticated (historical behavior).
|
|
385
|
+
*/
|
|
386
|
+
initialAccessToken?: string;
|
|
387
|
+
/**
|
|
388
|
+
* Pre-registered trusted clients seeded at startup. Accepted by the
|
|
389
|
+
* authorize/token flows without a DCR round-trip.
|
|
390
|
+
*/
|
|
391
|
+
clients?: LocalDcrClient[];
|
|
198
392
|
}
|
|
199
393
|
/**
|
|
200
394
|
* Progressive/Incremental authorization configuration
|
|
@@ -221,6 +415,269 @@ export interface IncrementalAuthConfig {
|
|
|
221
415
|
*/
|
|
222
416
|
showAllAppsAtOnce?: boolean;
|
|
223
417
|
}
|
|
418
|
+
/**
|
|
419
|
+
* A single custom field rendered on the local-mode login page.
|
|
420
|
+
*
|
|
421
|
+
* Fields are declarative: FrontMCP renders them on the default login page and
|
|
422
|
+
* forwards their submitted values to {@link LocalAuthOptionsInterface.authenticate}
|
|
423
|
+
* as `input.fields`. No PII is persisted by FrontMCP — fields are passed
|
|
424
|
+
* through to your verifier and never stored.
|
|
425
|
+
*/
|
|
426
|
+
export interface LoginFieldConfig {
|
|
427
|
+
/** HTML input type. `hidden` fields are submitted but not shown. */
|
|
428
|
+
type: 'text' | 'password' | 'email' | 'select' | 'hidden';
|
|
429
|
+
/** Field label shown above the input. Defaults to the field key. */
|
|
430
|
+
label?: string;
|
|
431
|
+
/** Whether the browser should require a value before submit. */
|
|
432
|
+
required?: boolean;
|
|
433
|
+
/** Placeholder text for text/email/password inputs. */
|
|
434
|
+
placeholder?: string;
|
|
435
|
+
/** Options for a `select` field. Ignored for other types. */
|
|
436
|
+
options?: Array<{
|
|
437
|
+
value: string;
|
|
438
|
+
label: string;
|
|
439
|
+
}>;
|
|
440
|
+
}
|
|
441
|
+
/**
|
|
442
|
+
* Subject derivation strategy for local logins.
|
|
443
|
+
*
|
|
444
|
+
* - `per-session` (default): every login yields a fresh subject (stateless).
|
|
445
|
+
* - `per-account`: the value of {@link LoginSubjectConfig.fromField} is hashed
|
|
446
|
+
* into a stable subject so the same account maps to the same `sub`.
|
|
447
|
+
*/
|
|
448
|
+
export interface LoginSubjectConfig {
|
|
449
|
+
/** Login field whose submitted value seeds a stable subject. */
|
|
450
|
+
fromField?: string;
|
|
451
|
+
/** How the subject is derived. @default 'per-session' */
|
|
452
|
+
strategy?: 'per-session' | 'per-account';
|
|
453
|
+
}
|
|
454
|
+
/**
|
|
455
|
+
* Declarative customization of the built-in local-mode login page.
|
|
456
|
+
*
|
|
457
|
+
* Set any of these to tailor the default `/oauth/authorize` login page without
|
|
458
|
+
* replacing the OAuth flow. When `render` is provided it fully overrides the
|
|
459
|
+
* built-in page; otherwise `fields` extend the default email/name form.
|
|
460
|
+
*/
|
|
461
|
+
export interface LoginConfig {
|
|
462
|
+
/** Page heading. Defaults to "Sign In". */
|
|
463
|
+
title?: string;
|
|
464
|
+
/** Sub-heading shown under the title. */
|
|
465
|
+
subtitle?: string;
|
|
466
|
+
/** Logo image URL shown above the form. */
|
|
467
|
+
logoUri?: string;
|
|
468
|
+
/**
|
|
469
|
+
* Extra fields appended to the login form, keyed by field name. The
|
|
470
|
+
* submitted values are forwarded to {@link LocalAuthOptionsInterface.authenticate}
|
|
471
|
+
* as `input.fields[name]`.
|
|
472
|
+
*/
|
|
473
|
+
fields?: Record<string, LoginFieldConfig>;
|
|
474
|
+
/**
|
|
475
|
+
* Full HTML override for the login page. Receives a {@link LoginRenderContext}
|
|
476
|
+
* and must return a complete HTML document string. When set, `title`,
|
|
477
|
+
* `subtitle`, `logoUri`, and `fields` are NOT auto-rendered — you own the markup.
|
|
478
|
+
*/
|
|
479
|
+
render?: (ctx: LoginRenderContext) => string;
|
|
480
|
+
/** Controls how the authenticated subject (`sub`) is derived. */
|
|
481
|
+
subject?: LoginSubjectConfig;
|
|
482
|
+
}
|
|
483
|
+
/**
|
|
484
|
+
* Context passed to a custom {@link LoginConfig.render} function. Carries the
|
|
485
|
+
* client identity (CIMD `client_name`/`logo_uri` when available), requested
|
|
486
|
+
* scopes, the pending-authorization id (must be submitted back), the callback
|
|
487
|
+
* path to POST/GET to, the declared {@link LoginConfig.fields}, and a previous
|
|
488
|
+
* error message (set when {@link AuthenticateResult} failed and the page is
|
|
489
|
+
* being re-rendered).
|
|
490
|
+
*/
|
|
491
|
+
export interface LoginRenderContext {
|
|
492
|
+
/** OAuth client_id (or CIMD URL) of the requesting client. */
|
|
493
|
+
clientId: string;
|
|
494
|
+
/** Human-readable client name (CIMD `client_name` when available, else clientId). */
|
|
495
|
+
clientName: string;
|
|
496
|
+
/** CIMD `logo_uri` when available. */
|
|
497
|
+
logoUri?: string;
|
|
498
|
+
/** Requested OAuth scopes. */
|
|
499
|
+
scopes: string[];
|
|
500
|
+
/** Pending-authorization id; MUST be submitted back as `pending_auth_id`. */
|
|
501
|
+
pendingAuthId: string;
|
|
502
|
+
/** Path the login form should submit to (the `/oauth/callback` endpoint). */
|
|
503
|
+
callbackPath: string;
|
|
504
|
+
/** The declared custom login fields (may be empty). */
|
|
505
|
+
fields: Record<string, LoginFieldConfig>;
|
|
506
|
+
/** Error message to display when re-rendering after a failed authenticate(). */
|
|
507
|
+
error?: string;
|
|
508
|
+
/**
|
|
509
|
+
* Submitted field values to pre-fill on re-render (set when the page is
|
|
510
|
+
* re-rendered after a failed authenticate()). Keyed by field name.
|
|
511
|
+
*/
|
|
512
|
+
values?: Record<string, string>;
|
|
513
|
+
}
|
|
514
|
+
/**
|
|
515
|
+
* Input handed to {@link LocalAuthOptionsInterface.authenticate}: the submitted
|
|
516
|
+
* login-field values keyed by field name. Built-in `email`/`name` fields are
|
|
517
|
+
* included alongside any declared custom {@link LoginConfig.fields}.
|
|
518
|
+
*/
|
|
519
|
+
export interface AuthenticateInput {
|
|
520
|
+
/** Submitted login-field values keyed by field name. */
|
|
521
|
+
fields: Record<string, string>;
|
|
522
|
+
/**
|
|
523
|
+
* Present only when `authenticate()` is re-invoked from a mid-session
|
|
524
|
+
* add-credential flow (Checkpoint 3b). Carries the framework-verified subject,
|
|
525
|
+
* the credential key being connected, and the optional opaque context from the
|
|
526
|
+
* original `requireConnect({ key, context })` call. When set, the verifier
|
|
527
|
+
* should return `{ ok: true, credentials: [{ key, secret, … }] }` to ADD the
|
|
528
|
+
* credential to the existing session vault (a new token is NOT minted).
|
|
529
|
+
*/
|
|
530
|
+
resume?: {
|
|
531
|
+
/** Framework-verified subject the credential is being connected for. */
|
|
532
|
+
sub: string;
|
|
533
|
+
/** Credential key being connected. */
|
|
534
|
+
key: string;
|
|
535
|
+
/** Optional opaque context forwarded from `requireConnect`. */
|
|
536
|
+
context?: string;
|
|
537
|
+
};
|
|
538
|
+
}
|
|
539
|
+
/**
|
|
540
|
+
* Context handed to {@link LocalAuthOptionsInterface.authenticate}. Provides DI
|
|
541
|
+
* access (`get`), a `fetch` for outbound calls, a scoped `logger`, and the
|
|
542
|
+
* requesting client's identity.
|
|
543
|
+
*/
|
|
544
|
+
export interface AuthenticateContext {
|
|
545
|
+
/** Resolve a provider/service from the DI container. */
|
|
546
|
+
get<T>(token: unknown): T;
|
|
547
|
+
/** Outbound fetch (use for verifying credentials against an upstream API). */
|
|
548
|
+
fetch(input: RequestInfo | URL, init?: RequestInit): Promise<Response>;
|
|
549
|
+
/** Scoped logger for diagnostics. */
|
|
550
|
+
logger: AuthLogger;
|
|
551
|
+
/** OAuth client_id (or CIMD URL) of the requesting client, when known. */
|
|
552
|
+
clientId?: string;
|
|
553
|
+
/** Human-readable client name (CIMD `client_name`), when known. */
|
|
554
|
+
clientName?: string;
|
|
555
|
+
}
|
|
556
|
+
/**
|
|
557
|
+
* A credential the verifier wants FrontMCP to persist for the session.
|
|
558
|
+
*
|
|
559
|
+
* Persisted (Checkpoint 3b) into the built-in, AES-256-GCM-encrypted, per-session
|
|
560
|
+
* credential vault keyed by the authenticated `sub`, and exposed to tools via
|
|
561
|
+
* `this.credentials.get(key)` / `list()` / `requireConnect({ key })`. The vault
|
|
562
|
+
* is enabled automatically in `local` (and `remote`) modes; a fresh authorize
|
|
563
|
+
* rotates the vault so a reconnect starts empty.
|
|
564
|
+
*/
|
|
565
|
+
export interface AuthenticateCredential {
|
|
566
|
+
/** Stable key the credential is stored under (e.g. provider id). */
|
|
567
|
+
key: string;
|
|
568
|
+
/** The secret value (token, api key, …). */
|
|
569
|
+
secret: string;
|
|
570
|
+
/** Optional non-secret metadata stored alongside the credential. */
|
|
571
|
+
metadata?: Record<string, unknown>;
|
|
572
|
+
}
|
|
573
|
+
/**
|
|
574
|
+
* Result of a successful local {@link LocalAuthOptionsInterface.authenticate}.
|
|
575
|
+
*/
|
|
576
|
+
export interface AuthenticateSuccess {
|
|
577
|
+
ok: true;
|
|
578
|
+
/** Explicit subject. When omitted, the subject is derived from the login subject strategy / anonymousSubject. */
|
|
579
|
+
sub?: string;
|
|
580
|
+
/** Custom claims to embed in the minted access token (namespaced to avoid clobbering reserved claims). */
|
|
581
|
+
claims?: Record<string, unknown>;
|
|
582
|
+
/** Per-session credentials to persist into the encrypted vault (`this.credentials`) — see {@link AuthenticateCredential}. */
|
|
583
|
+
credentials?: AuthenticateCredential[];
|
|
584
|
+
/** Optional informational message. */
|
|
585
|
+
message?: string;
|
|
586
|
+
}
|
|
587
|
+
/**
|
|
588
|
+
* Result of a failed local {@link LocalAuthOptionsInterface.authenticate}. The
|
|
589
|
+
* login page is re-rendered with `message` shown to the user.
|
|
590
|
+
*/
|
|
591
|
+
export interface AuthenticateFailure {
|
|
592
|
+
ok: false;
|
|
593
|
+
/** Error message shown on the re-rendered login page. */
|
|
594
|
+
message: string;
|
|
595
|
+
/** Optional field name to focus/highlight on the re-rendered page. */
|
|
596
|
+
retryField?: string;
|
|
597
|
+
}
|
|
598
|
+
/**
|
|
599
|
+
* Discriminated union returned by {@link LocalAuthOptionsInterface.authenticate}.
|
|
600
|
+
*/
|
|
601
|
+
export type AuthenticateResult = AuthenticateSuccess | AuthenticateFailure;
|
|
602
|
+
/**
|
|
603
|
+
* Custom verification step for local-mode logins.
|
|
604
|
+
*
|
|
605
|
+
* Receives the submitted login fields and a {@link AuthenticateContext}; returns
|
|
606
|
+
* `{ ok: true, sub?, claims?, credentials? }` to mint a token, or
|
|
607
|
+
* `{ ok: false, message, retryField? }` to reject the login and re-render the
|
|
608
|
+
* page. When `authenticate` is configured, the built-in email requirement no
|
|
609
|
+
* longer applies (the verifier decides what is required via its `fields`).
|
|
610
|
+
*/
|
|
611
|
+
export type AuthenticateFn = (input: AuthenticateInput, ctx: AuthenticateContext) => Promise<AuthenticateResult>;
|
|
612
|
+
/**
|
|
613
|
+
* Which built-in authorization page a custom React component replaces. Mirrors
|
|
614
|
+
* the SDK-side `AuthSlot` and the `@frontmcp/ui/auth` client contract. A slot is
|
|
615
|
+
* a KEY in {@link AuthUiMap}; its value is the relative `.tsx`/`.jsx` path.
|
|
616
|
+
*/
|
|
617
|
+
export type AuthSlot = 'login' | 'consent' | 'incremental' | 'federated' | 'error';
|
|
618
|
+
/**
|
|
619
|
+
* Custom authorization-UI map: a slot → relative component file path. Each path
|
|
620
|
+
* is a `.tsx`/`.jsx` source resolved RELATIVE TO THE CONFIG FILE that declared
|
|
621
|
+
* it (the `@FrontMcp` / `@App` source directory, captured automatically — no
|
|
622
|
+
* `fileURLToPath` needed); absolute paths pass through unchanged. The component
|
|
623
|
+
* is transpiled server-side and client-rendered (esm.sh import-map). When a slot
|
|
624
|
+
* is absent the built-in HTML page is served unchanged.
|
|
625
|
+
*
|
|
626
|
+
* @example
|
|
627
|
+
* ```ts
|
|
628
|
+
* ui: { login: './auth/login.tsx', consent: './auth/consent.tsx' }
|
|
629
|
+
* ```
|
|
630
|
+
*/
|
|
631
|
+
export type AuthUiMap = Partial<Record<AuthSlot, string>>;
|
|
632
|
+
/**
|
|
633
|
+
* Server-side accumulator-aware context handed to an {@link AuthExtraHandler}.
|
|
634
|
+
* Intentionally minimal and PII-free: the extra name, the pending-auth id (for
|
|
635
|
+
* correlation), and the items already accepted for this extra.
|
|
636
|
+
*/
|
|
637
|
+
export interface AuthExtraContext {
|
|
638
|
+
/** The extra name being handled (the `action` posted by the page). */
|
|
639
|
+
name: string;
|
|
640
|
+
/** The pending authorization id this submission belongs to (when known). */
|
|
641
|
+
pendingAuthId?: string;
|
|
642
|
+
/** Items already accepted for this extra (the current accumulator). */
|
|
643
|
+
current: unknown[];
|
|
644
|
+
}
|
|
645
|
+
/**
|
|
646
|
+
* Result an {@link AuthExtraHandler} returns. The handler only hands back the
|
|
647
|
+
* NEW items it accepted; the framework merges them into the per-pending-auth
|
|
648
|
+
* accumulator and echoes the full map back to the page (so `useAddedItems(name)`
|
|
649
|
+
* reflects them on re-render).
|
|
650
|
+
*/
|
|
651
|
+
export interface AuthExtraResult {
|
|
652
|
+
/** Whether the field was accepted. */
|
|
653
|
+
ok: boolean;
|
|
654
|
+
/** Human-readable validation error when `ok` is false. */
|
|
655
|
+
error?: string;
|
|
656
|
+
/** Items to APPEND to this extra's accumulator on success. */
|
|
657
|
+
addedItems?: unknown[];
|
|
658
|
+
/** Free-form side-effect data echoed back to the client. */
|
|
659
|
+
sideEffects?: Record<string, unknown>;
|
|
660
|
+
}
|
|
661
|
+
/**
|
|
662
|
+
* A server handler for a custom auth-UI extra (`auth.extras[name]`). Receives the
|
|
663
|
+
* page's validated field submission and the {@link AuthExtraContext}; returns
|
|
664
|
+
* (or resolves to) an {@link AuthExtraResult}. Replaces the old `@AuthExtra`
|
|
665
|
+
* class — a plain function keyed by the extra name.
|
|
666
|
+
*
|
|
667
|
+
* @example
|
|
668
|
+
* ```ts
|
|
669
|
+
* extras: {
|
|
670
|
+
* 'envs:add': async (input, ctx) => {
|
|
671
|
+
* const key = String(input.key ?? '').trim();
|
|
672
|
+
* if (!key) return { ok: false, error: 'key required' };
|
|
673
|
+
* return { ok: true, addedItems: [{ key, value: input.value }] };
|
|
674
|
+
* },
|
|
675
|
+
* }
|
|
676
|
+
* ```
|
|
677
|
+
*/
|
|
678
|
+
export type AuthExtraHandler = (input: Record<string, unknown>, ctx: AuthExtraContext) => Promise<AuthExtraResult> | AuthExtraResult;
|
|
679
|
+
/** Custom auth-UI extras map: extra name → server handler function. */
|
|
680
|
+
export type AuthExtrasMap = Record<string, AuthExtraHandler>;
|
|
224
681
|
export interface PublicAuthOptionsInterface {
|
|
225
682
|
mode: 'public';
|
|
226
683
|
issuer?: string;
|
|
@@ -247,6 +704,15 @@ export interface LocalAuthOptionsInterface {
|
|
|
247
704
|
mode: 'local';
|
|
248
705
|
local?: LocalSigningConfig;
|
|
249
706
|
tokenStorage?: TokenStorageConfig;
|
|
707
|
+
/**
|
|
708
|
+
* Backing for the general session-scoped secure-secret store (`this.secureStore`,
|
|
709
|
+
* #470). Selects memory / sqlite / redis / a custom (e.g. OS-keychain) backend,
|
|
710
|
+
* plus the namespace `scope`. Optional — omitting it defaults to an in-memory,
|
|
711
|
+
* AES-256-GCM-encrypted, `user`-scoped store.
|
|
712
|
+
*
|
|
713
|
+
* @see SecureStoreConfig
|
|
714
|
+
*/
|
|
715
|
+
secureStore?: SecureStoreConfig;
|
|
250
716
|
allowDefaultPublic?: boolean;
|
|
251
717
|
anonymousScopes?: string[];
|
|
252
718
|
publicAccess?: PublicAccessConfig;
|
|
@@ -256,6 +722,99 @@ export interface LocalAuthOptionsInterface {
|
|
|
256
722
|
expectedAudience?: string | string[];
|
|
257
723
|
incrementalAuth?: IncrementalAuthConfig;
|
|
258
724
|
cimd?: CimdConfigInput;
|
|
725
|
+
/**
|
|
726
|
+
* Require an email at the `/oauth/callback` login step.
|
|
727
|
+
*
|
|
728
|
+
* When `true` (default) the callback rejects a non-incremental login that
|
|
729
|
+
* carries no email — the historical behavior. Set to `false` for
|
|
730
|
+
* single-operator local setups (e.g. Claude Code against `mode: 'local'`)
|
|
731
|
+
* where a login should mint a code without prompting for an email; the
|
|
732
|
+
* callback then derives a stable anonymous `sub` from
|
|
733
|
+
* {@link LocalAuthOptionsInterface.anonymousSubject}.
|
|
734
|
+
*
|
|
735
|
+
* @default true
|
|
736
|
+
*/
|
|
737
|
+
requireEmail?: boolean;
|
|
738
|
+
/**
|
|
739
|
+
* Stable subject identifier used to mint the authorization code when
|
|
740
|
+
* {@link LocalAuthOptionsInterface.requireEmail} is `false` and no email is
|
|
741
|
+
* provided. Defaults to `'local-operator'`. The same value always maps to
|
|
742
|
+
* the same `sub`, so the single operator keeps a stable identity.
|
|
743
|
+
*
|
|
744
|
+
* @default 'local-operator'
|
|
745
|
+
*/
|
|
746
|
+
anonymousSubject?: string;
|
|
747
|
+
/**
|
|
748
|
+
* Declarative customization of the built-in local login page (title,
|
|
749
|
+
* subtitle, logo, extra fields, full HTML override, and subject strategy).
|
|
750
|
+
* Optional — omitting it preserves the default email/name login form exactly.
|
|
751
|
+
*
|
|
752
|
+
* @see LoginConfig
|
|
753
|
+
*/
|
|
754
|
+
login?: LoginConfig;
|
|
755
|
+
/**
|
|
756
|
+
* Custom verification step run at `/oauth/callback` before a token is minted.
|
|
757
|
+
* Receives the submitted login fields and returns `{ ok: true, … }` to mint a
|
|
758
|
+
* token (optionally with an explicit `sub` and custom `claims`) or
|
|
759
|
+
* `{ ok: false, message }` to reject and re-render the login page.
|
|
760
|
+
*
|
|
761
|
+
* When set, the built-in email requirement (`requireEmail`) no longer applies.
|
|
762
|
+
* Omitting it preserves the default email/anonymous login path exactly.
|
|
763
|
+
*
|
|
764
|
+
* @see AuthenticateFn
|
|
765
|
+
*/
|
|
766
|
+
authenticate?: AuthenticateFn;
|
|
767
|
+
/**
|
|
768
|
+
* Upstream OAuth providers (GitHub, Slack, Jira, …) to orchestrate in local
|
|
769
|
+
* mode. When declared, FrontMCP federates them at `/oauth/authorize`, refuses
|
|
770
|
+
* to mint a JWT until the {@link FederatedAuthConfig.minProviders} threshold
|
|
771
|
+
* (default 1) is met, stores each provider's tokens encrypted, and exposes
|
|
772
|
+
* them to tools via `this.orchestration.getToken(id)`. Optional — omitting it
|
|
773
|
+
* preserves the default single-operator local login exactly.
|
|
774
|
+
*
|
|
775
|
+
* @see UpstreamProviderOptions
|
|
776
|
+
*/
|
|
777
|
+
providers?: UpstreamProviderOptions[];
|
|
778
|
+
/**
|
|
779
|
+
* Local Authorization Server Dynamic Client Registration control surface
|
|
780
|
+
* (#462): gate `POST /oauth/register`, allowlist redirect URIs / client ids,
|
|
781
|
+
* require an initial access token, and seed pre-registered trusted clients.
|
|
782
|
+
* Optional — omitting it preserves today's behavior exactly (DCR on in dev,
|
|
783
|
+
* off in production; no allowlist; no initial access token).
|
|
784
|
+
*
|
|
785
|
+
* @see LocalDcrConfig
|
|
786
|
+
*/
|
|
787
|
+
dcr?: LocalDcrConfig;
|
|
788
|
+
/**
|
|
789
|
+
* Custom authorization-UI slots (#469): a slot → relative `.tsx`/`.jsx` path
|
|
790
|
+
* map. Each component replaces the built-in login / consent / incremental /
|
|
791
|
+
* federated / error page. Relative paths resolve against THIS config file's
|
|
792
|
+
* directory (captured automatically — no `fileURLToPath`); absolute paths pass
|
|
793
|
+
* through. Scoped to THIS auth config, so each app under `splitByApp` gets its
|
|
794
|
+
* own custom UI. When a slot is absent, the built-in HTML page is served
|
|
795
|
+
* unchanged (the no-config default).
|
|
796
|
+
*
|
|
797
|
+
* @example
|
|
798
|
+
* ```ts
|
|
799
|
+
* auth: { mode: 'local', ui: { login: './auth/login.tsx' } }
|
|
800
|
+
* ```
|
|
801
|
+
* @see AuthUiMap
|
|
802
|
+
*/
|
|
803
|
+
ui?: AuthUiMap;
|
|
804
|
+
/**
|
|
805
|
+
* Server handlers for custom auth-UI extras (#469): an extra name → handler
|
|
806
|
+
* function map. Each handler accepts a validated field submission and returns
|
|
807
|
+
* `{ ok, error?, addedItems?, sideEffects? }`; accepted items accumulate
|
|
808
|
+
* server-side so `useAddedItems(name)` reflects them on re-render. Scoped to
|
|
809
|
+
* THIS auth config (per-app under `splitByApp`).
|
|
810
|
+
*
|
|
811
|
+
* @example
|
|
812
|
+
* ```ts
|
|
813
|
+
* extras: { 'envs:add': async (input, ctx) => ({ ok: true, addedItems: [...] }) }
|
|
814
|
+
* ```
|
|
815
|
+
* @see AuthExtraHandler
|
|
816
|
+
*/
|
|
817
|
+
extras?: AuthExtrasMap;
|
|
259
818
|
}
|
|
260
819
|
export interface RemoteAuthOptionsInterface {
|
|
261
820
|
mode: 'remote';
|
|
@@ -266,6 +825,12 @@ export interface RemoteAuthOptionsInterface {
|
|
|
266
825
|
providerConfig?: ProviderConfig;
|
|
267
826
|
local?: LocalSigningConfig;
|
|
268
827
|
tokenStorage?: TokenStorageConfig;
|
|
828
|
+
/**
|
|
829
|
+
* Backing for the general session-scoped secure-secret store (`this.secureStore`,
|
|
830
|
+
* #470). See {@link SecureStoreConfig}. Optional — defaults to an in-memory,
|
|
831
|
+
* AES-256-GCM-encrypted, `user`-scoped store.
|
|
832
|
+
*/
|
|
833
|
+
secureStore?: SecureStoreConfig;
|
|
269
834
|
allowDefaultPublic?: boolean;
|
|
270
835
|
anonymousScopes?: string[];
|
|
271
836
|
publicAccess?: PublicAccessConfig;
|
|
@@ -275,6 +840,16 @@ export interface RemoteAuthOptionsInterface {
|
|
|
275
840
|
expectedAudience?: string | string[];
|
|
276
841
|
incrementalAuth?: IncrementalAuthConfig;
|
|
277
842
|
cimd?: CimdConfigInput;
|
|
843
|
+
/**
|
|
844
|
+
* Custom authorization-UI slots (#469), scoped to this auth config.
|
|
845
|
+
* See {@link LocalAuthOptionsInterface.ui}.
|
|
846
|
+
*/
|
|
847
|
+
ui?: AuthUiMap;
|
|
848
|
+
/**
|
|
849
|
+
* Server handlers for custom auth-UI extras (#469), scoped to this auth config.
|
|
850
|
+
* See {@link LocalAuthOptionsInterface.extras}.
|
|
851
|
+
*/
|
|
852
|
+
extras?: AuthExtrasMap;
|
|
278
853
|
}
|
|
279
854
|
export type AuthOptionsInterface = PublicAuthOptionsInterface | TransparentAuthOptionsInterface | LocalAuthOptionsInterface | RemoteAuthOptionsInterface;
|
|
280
855
|
export type LocalOrRemoteAuthOptionsInterface = LocalAuthOptionsInterface | RemoteAuthOptionsInterface;
|
|
@@ -287,4 +862,5 @@ export type OrchestratedRemoteOptionsInterface = RemoteAuthOptionsInterface;
|
|
|
287
862
|
export type OrchestratedAuthOptionsInterface = LocalOrRemoteAuthOptionsInterface;
|
|
288
863
|
/** @deprecated Removed - modes are now 'local' | 'remote' */
|
|
289
864
|
export type OrchestratedType = 'local' | 'remote';
|
|
865
|
+
export {};
|
|
290
866
|
//# sourceMappingURL=interfaces.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/options/interfaces.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/options/interfaces.ts"],"names":[],"mappings":"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"}
|