Skip to content

schemas/config

type StudioCMSConfig = typeof StudioCMSOptionsSchema._output;

Defined in: studiocms/packages/studiocms/src/schemas/config/index.ts:112


type StudioCMSOptions = typeof StudioCMSOptionsSchema._input;

Defined in: studiocms/packages/studiocms/src/schemas/config/index.ts:111

const StudioCMSOptionsSchema: ZodDefault<ZodOptional<ZodObject<{
componentRegistry: ZodOptional<ZodRecord<ZodString, ZodString>>;
dashboardConfig: ZodDefault<ZodOptional<ZodObject<{
AuthConfig: ZodDefault<ZodOptional<ZodObject<..., ..., ..., ..., ...>>>;
dashboardEnabled: ZodDefault<ZodOptional<ZodBoolean>>;
dashboardRouteOverride: ZodOptional<ZodString>;
developerConfig: ZodDefault<ZodOptional<ZodObject<..., ..., ..., ..., ...>>>;
faviconURL: ZodDefault<ZodOptional<ZodString>>;
inject404Route: ZodDefault<ZodOptional<ZodBoolean>>;
versionCheck: ZodDefault<ZodOptional<ZodBoolean>>;
}, "strip", ZodTypeAny, {
AuthConfig: {
enabled: boolean;
providers: {
auth0: boolean;
discord: boolean;
github: boolean;
google: boolean;
usernameAndPassword: boolean;
usernameAndPasswordConfig: {
allowUserRegistration: ...;
};
};
};
dashboardEnabled: boolean;
dashboardRouteOverride: string;
developerConfig: {
testingAndDemoMode: boolean;
};
faviconURL: string;
inject404Route: boolean;
versionCheck: boolean;
}, {
AuthConfig: {
enabled: ... | ... | ...;
providers: ... | ...;
};
dashboardEnabled: boolean;
dashboardRouteOverride: string;
developerConfig: {
testingAndDemoMode: ... | ... | ...;
};
faviconURL: string;
inject404Route: boolean;
versionCheck: boolean;
}>>>;
dateLocale: ZodDefault<ZodOptional<ZodString>>;
dateTimeFormat: ZodDefault<ZodOptional<ZodType<DateTimeFormatOptions, ZodTypeDef, DateTimeFormatOptions>>>;
dbStartPage: ZodDefault<ZodOptional<ZodBoolean>>;
defaultFrontEndConfig: ZodDefault<ZodOptional<ZodUnion<[ZodDefault<ZodOptional<ZodObject<..., ..., ..., ..., ...>>>, ZodBoolean]>>>;
imageService: ZodDefault<ZodOptional<ZodObject<{
cdnPlugin: ZodOptional<ZodEnum<[...]>>;
}, "strip", ZodTypeAny, {
cdnPlugin: "cloudinary-js";
}, {
cdnPlugin: "cloudinary-js";
}>>>;
includedIntegrations: ZodDefault<ZodOptional<ZodObject<{
robotsTXT: ZodDefault<ZodOptional<ZodUnion<...>>>;
}, "strip", ZodTypeAny, {
robotsTXT: | boolean
| RobotsConfig;
}, {
robotsTXT: | boolean
| RobotsConfig;
}>>>;
overrides: ZodDefault<ZodOptional<ZodObject<{
CustomImageOverride: ZodOptional<ZodString>;
FormattedDateOverride: ZodOptional<ZodString>;
}, "strip", ZodTypeAny, {
CustomImageOverride: string;
FormattedDateOverride: string;
}, {
CustomImageOverride: string;
FormattedDateOverride: string;
}>>>;
plugins: ZodOptional<ZodType<StudioCMSPlugin[], ZodTypeDef, StudioCMSPlugin[]>>;
rendererConfig: ZodDefault<ZodOptional<ZodObject<{
markdocConfig: ZodDefault<ZodOptional<ZodObject<..., ..., ..., ..., ...>>>;
mdxConfig: ZodDefault<ZodOptional<ZodObject<..., ..., ..., ..., ...>>>;
renderer: ZodDefault<ZodOptional<ZodUnion<...>>>;
studiocms: ZodEffects<ZodDefault<ZodOptional<...>>, {
autoLinkHeadings: boolean;
callouts: {
enabled: ...;
theme: ...;
};
discordSubtext: boolean;
sanitize: ... | ...;
},
| undefined
| false
| {
autoLinkHeadings: ...;
callouts: ...;
discordSubtext: ...;
sanitize: ...;
}>;
}, "strip", ZodTypeAny, {
markdocConfig: {
argParse: {
file: ...;
location: ...;
slots: ...;
};
renderType: | "html"
| "react-static"
| MarkdocRenderer;
transformConfig: {
functions: ...;
nodes: ...;
partials: ...;
tags: ...;
validation: ...;
variables: ...;
};
};
mdxConfig: {
recmaPlugins: PluggableList;
rehypePlugins: PluggableList;
remarkPlugins: PluggableList;
remarkRehypeOptions: {
allowDangerousHtml: ... | ... | ... | ...;
clobberPrefix: ... | ... | ...;
file: any;
footnoteBackContent: ... | ... | ... | ...;
footnoteBackLabel: ... | ... | ... | ...;
footnoteLabel: ... | ... | ...;
footnoteLabelProperties: ... | ... | ...;
footnoteLabelTagName: ... | ... | ...;
handlers: any;
passThrough: ... | ... | ...;
unknownHandler: any;
};
};
renderer: | "studiocms"
| "astro"
| "markdoc"
| "mdx"
| CustomRenderer;
studiocms: {
autoLinkHeadings: boolean;
callouts: {
enabled: boolean;
theme: ... | ... | ...;
};
discordSubtext: boolean;
sanitize: {
allowAttributes: ...;
allowComments: ...;
allowComponents: ...;
allowCustomElements: ...;
allowElements: ...;
blockElements: ...;
dropAttributes: ...;
dropElements: ...;
};
};
}, {
markdocConfig: {
argParse: ... | ...;
renderType: ... | ... | ... | ...;
transformConfig: ... | ...;
};
mdxConfig: {
recmaPlugins: ... | ...;
rehypePlugins: ... | ...;
remarkPlugins: ... | ...;
remarkRehypeOptions: ... | ...;
};
renderer: | "studiocms"
| "astro"
| "markdoc"
| "mdx"
| CustomRenderer;
studiocms: | false
| {
autoLinkHeadings: ... | ... | ...;
callouts: ... | ... | ...;
discordSubtext: ... | ... | ...;
sanitize: ... | ...;
};
}>>>;
sdk: ZodEffects<ZodDefault<ZodOptional<ZodUnion<[ZodBoolean, ZodObject<{
cacheConfig: ...;
}, "strip", ZodTypeAny, {
cacheConfig: ...;
}, {
cacheConfig: ...;
}>]>>>, {
cacheConfig: {
enabled: boolean;
lifetime: number;
};
},
| undefined
| boolean
| {
cacheConfig: | boolean
| {
lifetime: string;
};
}>;
verbose: ZodDefault<ZodOptional<ZodBoolean>>;
}, "strip", ZodTypeAny, {
componentRegistry: Record<string, string>;
dashboardConfig: {
AuthConfig: {
enabled: boolean;
providers: {
auth0: boolean;
discord: boolean;
github: boolean;
google: boolean;
usernameAndPassword: boolean;
usernameAndPasswordConfig: {
allowUserRegistration: boolean;
};
};
};
dashboardEnabled: boolean;
dashboardRouteOverride: string;
developerConfig: {
testingAndDemoMode: boolean;
};
faviconURL: string;
inject404Route: boolean;
versionCheck: boolean;
};
dateLocale: string;
dateTimeFormat: DateTimeFormatOptions;
dbStartPage: boolean;
defaultFrontEndConfig: | boolean
| {
favicon: string;
htmlDefaultHead: {
attrs: Record<string, undefined | string | boolean>;
content: string;
tag: | "title"
| "base"
| "link"
| "style"
| "meta"
| "script"
| "noscript"
| "template";
}[];
htmlDefaultLanguage: string;
injectQuickActionsMenu: boolean;
};
imageService: {
cdnPlugin: "cloudinary-js";
};
includedIntegrations: {
robotsTXT: | boolean
| RobotsConfig;
};
overrides: {
CustomImageOverride: string;
FormattedDateOverride: string;
};
plugins: StudioCMSPlugin[];
rendererConfig: {
markdocConfig: {
argParse: {
file: string;
location: boolean;
slots: boolean;
};
renderType: | "html"
| "react-static"
| MarkdocRenderer;
transformConfig: {
functions: Record<string, any>;
nodes: Record<string, {}>;
partials: Record<string, any>;
tags: Record<string, {}>;
validation: {
environment: ... | ...;
parents: ... | ...;
validateFunctions: ... | ... | ...;
};
variables: Record<string, any>;
};
};
mdxConfig: {
recmaPlugins: PluggableList;
rehypePlugins: PluggableList;
remarkPlugins: PluggableList;
remarkRehypeOptions: {
allowDangerousHtml: null | boolean;
clobberPrefix: null | string;
file: any;
footnoteBackContent: | null
| string
| (...args: [number, number, ...unknown[]]) =>
| string
| {
type: ...;
value: ...;
}
| {
children: ...;
properties: ...;
tagName: ...;
type: ...;
}
| {
type: ...;
value: ...;
}
| ...[];
footnoteBackLabel: | null
| string
| (...args: [number, number, ...unknown[]]) => string;
footnoteLabel: null | string;
footnoteLabelProperties: | null
| Record<string, undefined | null | string | number | boolean | ...[]>;
footnoteLabelTagName: null | string;
handlers: any;
passThrough: null | string[];
unknownHandler: any;
};
};
renderer: | "studiocms"
| "astro"
| "markdoc"
| "mdx"
| CustomRenderer;
studiocms: {
autoLinkHeadings: boolean;
callouts: {
enabled: boolean;
theme: "github" | "obsidian" | "vitepress";
};
discordSubtext: boolean;
sanitize: {
allowAttributes: Record<string, ...[]>;
allowComments: boolean;
allowComponents: boolean;
allowCustomElements: boolean;
allowElements: string[];
blockElements: string[];
dropAttributes: Record<string, ...[]>;
dropElements: string[];
};
};
};
sdk: {
cacheConfig: {
enabled: boolean;
lifetime: number;
};
};
verbose: boolean;
}, {
componentRegistry: Record<string, string>;
dashboardConfig: {
AuthConfig: {
enabled: boolean;
providers: {
auth0: ... | ... | ...;
discord: ... | ... | ...;
github: ... | ... | ...;
google: ... | ... | ...;
usernameAndPassword: ... | ... | ...;
usernameAndPasswordConfig: ... | ...;
};
};
dashboardEnabled: boolean;
dashboardRouteOverride: string;
developerConfig: {
testingAndDemoMode: boolean;
};
faviconURL: string;
inject404Route: boolean;
versionCheck: boolean;
};
dateLocale: string;
dateTimeFormat: DateTimeFormatOptions;
dbStartPage: boolean;
defaultFrontEndConfig: | boolean
| {
favicon: string;
htmlDefaultHead: {
attrs: Record<..., ...>;
content: string;
tag: | "title"
| "base"
| "link"
| "style"
| "meta"
| "script"
| "noscript"
| "template";
}[];
htmlDefaultLanguage: string;
injectQuickActionsMenu: boolean;
};
imageService: {
cdnPlugin: "cloudinary-js";
};
includedIntegrations: {
robotsTXT: | boolean
| RobotsConfig;
};
overrides: {
CustomImageOverride: string;
FormattedDateOverride: string;
};
plugins: StudioCMSPlugin[];
rendererConfig: {
markdocConfig: {
argParse: {
file: ... | ...;
location: ... | ... | ...;
slots: ... | ... | ...;
};
renderType: | "html"
| "react-static"
| MarkdocRenderer;
transformConfig: {
functions: ... | ...;
nodes: ... | ...;
partials: ... | ...;
tags: ... | ...;
validation: ... | ...;
variables: ... | ...;
};
};
mdxConfig: {
recmaPlugins: PluggableList;
rehypePlugins: PluggableList;
remarkPlugins: PluggableList;
remarkRehypeOptions: {
allowDangerousHtml: ... | ... | ... | ...;
clobberPrefix: ... | ... | ...;
file: any;
footnoteBackContent: ... | ... | ... | ...;
footnoteBackLabel: ... | ... | ... | ...;
footnoteLabel: ... | ... | ...;
footnoteLabelProperties: ... | ... | ...;
footnoteLabelTagName: ... | ... | ...;
handlers: any;
passThrough: ... | ... | ...;
unknownHandler: any;
};
};
renderer: | "studiocms"
| "astro"
| "markdoc"
| "mdx"
| CustomRenderer;
studiocms: | false
| {
autoLinkHeadings: boolean;
callouts: | false
| {
theme: ... | ... | ... | ...;
};
discordSubtext: boolean;
sanitize: {
allowAttributes: ... | ...;
allowComments: ... | ... | ...;
allowComponents: ... | ... | ...;
allowCustomElements: ... | ... | ...;
allowElements: ... | ...;
blockElements: ... | ...;
dropAttributes: ... | ...;
dropElements: ... | ...;
};
};
};
sdk: | boolean
| {
cacheConfig: | boolean
| {
lifetime: string;
};
};
verbose: boolean;
}>>>;

Defined in: studiocms/packages/studiocms/src/schemas/config/index.ts:33

Re-exports CustomRenderer

Re-exports dashboardConfigSchema

Re-exports DefaultFrontEndConfigSchema

Re-exports FrontEndConfigSchema

Re-exports imageServiceSchema

Re-exports overridesSchema

Re-exports Renderer

Re-exports StudioCMSRendererConfig

Re-exports StudioCMSRendererConfigSchema

Re-exports TransformToProcessor