Variable AppConfigSchemaConst
AppConfigSchema: ZodObject<
{
cors: ZodObject<{ allowedOrigins: ZodArray<ZodString> }, $strip>;
endpoints: ZodObject<
{ login: ZodObject<{ url: ZodString }, $strip> },
$strip,
>;
federations: ZodRecord<
ZodString,
ZodObject<
{ enabled: ZodPreprocess<ZodBoolean>; type: ZodOptional<ZodString> },
$loose,
>,
>;
http: ZodObject<
{ port: ZodCoercedNumber<unknown>; trustProxy: ZodBoolean },
$strip,
>;
memoryRateLimiter: ZodOptional<
ZodObject<
{
defaultLimit: ZodOptional<
ZodObject<
{
limit: ZodCoercedNumber<unknown>;
windowSeconds: ZodCoercedNumber<unknown>;
},
$strip,
>,
>;
limits: ZodOptional<
ZodRecord<
ZodString,
ZodObject<
{
limit: ZodCoercedNumber<unknown>;
windowSeconds: ZodCoercedNumber<unknown>;
},
$strip,
>,
>,
>;
maxBuckets: ZodOptional<ZodCoercedNumber<unknown>>;
},
$strip,
>,
>;
oauth: ZodObject<
{
accessToken: ZodObject<
{ expiresIn: ZodCoercedNumber<unknown> },
$strip,
>;
code: ZodOptional<
ZodObject<
{
adapter: ZodOptional<
ZodEnum<{ memory: "memory"; redis: "redis" }>,
>;
},
$strip,
>,
>;
grants: ZodObject<{}, $loose>;
jwt: ZodPreprocess<
ZodObject<
{
issuer: ZodOptional<ZodString>;
legacyTypAccept: ZodOptional<ZodBoolean>;
signingKey: ZodObject<
{
local: ZodOptional<ZodDiscriminatedUnion<(...), (...)>>;
provider: ZodString;
},
$loose,
>;
},
$strip,
>,
>;
nonce: ZodOptional<
ZodObject<{ maxLength: ZodCoercedNumber<unknown> }, $strip>,
>;
oidcMode: ZodEnum<{ dual: "dual"; "oidc-required": "oidc-required" }>;
refreshToken: ZodPreprocess<
ZodObject<
{
expiresIn: ZodCoercedNumber<unknown>;
legacyRtPolicy: ZodEnum<{ reject: "reject" }>;
unknownFamilyPolicy: ZodEnum<{ accept: "accept"; reject: "reject" }>;
},
$strip,
>,
>;
resourceIndicator: ZodOptional<
ZodObject<{ enabled: ZodPreprocess<ZodBoolean> }, $strip>,
>;
tokenExchange: ZodOptional<
ZodObject<{ maxActorChainDepth: ZodCoercedNumber<unknown> }, $strip>,
>;
},
$strip,
>;
rateLimit: ZodObject<
{
failMode: ZodEnum<{ closed: "closed"; open: "open" }>;
login: ZodObject<
{
limit: ZodCoercedNumber<unknown>;
windowMs: ZodCoercedNumber<unknown>;
},
$strip,
>;
},
$strip,
>;
rateLimiter: ZodOptional<
ZodObject<
{
adapter: ZodOptional<ZodEnum<{ memory: "memory"; redis: "redis" }>>;
},
$strip,
>,
>;
redisCodeRepository: ZodOptional<
ZodObject<
{
defaultExpiresIn: ZodOptional<ZodCoercedNumber<unknown>>;
keyPrefix: ZodOptional<ZodString>;
},
$strip,
>,
>;
redisRefreshTokenFamilyStore: ZodOptional<
ZodObject<
{
casRetryLimit: ZodOptional<ZodCoercedNumber<unknown>>;
keyPrefix: ZodOptional<ZodString>;
},
$strip,
>,
>;
redisSessionStores: ZodOptional<
ZodObject<{ keyPrefix: ZodOptional<ZodString> }, $strip>,
>;
refreshTokenFamilyStore: ZodOptional<
ZodObject<
{
redis: ZodOptional<
ZodObject<
{ password: ZodOptional<ZodString>; url: ZodString },
$strip,
>,
>;
},
$strip,
>,
>;
repositories: ZodObject<
{
client: ZodObject<{ type: ZodString }, $loose>;
code: ZodObject<{ type: ZodString }, $loose>;
user: ZodObject<{ type: ZodString }, $loose>;
},
$strip,
>;
session: ZodObject<
{
domain: ZodNullable<ZodString>;
maxAge: ZodCoercedNumber<unknown>;
name: ZodString;
sameSite: ZodEnum<{ lax: "lax"; none: "none"; strict: "strict" }>;
secret: ZodString;
secure: ZodBoolean;
storage: ZodObject<
{
redis: ZodOptional<
ZodObject<
{ password: ZodOptional<ZodString>; url: ZodString },
$strip,
>,
>;
type: ZodString;
},
$loose,
>;
},
$strip,
>;
userSessionStores: ZodOptional<
ZodObject<
{
adapter: ZodOptional<ZodEnum<{ memory: "memory"; redis: "redis" }>>;
},
$strip,
>,
>;
},
$strip,
> = ...
Full application config schema including all optional module sections. Kept as a plain ZodObject (via .extend) for backward compatibility: