secret | string | Required | Signs tokens and cookies and encrypts stored secrets. |
previousSecrets | string[] | — | Earlier secret values still accepted for reads (verifying tokens, matching API keys, decrypting stored values) while you rotate the secret. New data always uses secret. |
db | DatabaseAdapter | Required | Database adapter, such as sqliteAdapter(). See Database. |
collections | CollectionConfig[] | Required | Collections to register. When none has auth, FrogBot adds a users auth collection. See Collections. |
admin | RootAdminConfig | — | Root admin panel options, such as user, meta, theme, and components. See Root components. |
agents | AgentConfig[] | — | Code-defined agents. Requires ai. See Agents. |
ai | AIConfig | — | Providers, routers, access, hooks, and telemetry. See AI. |
auth | { jwtOrder: ('JWT' | 'Bearer' | 'cookie')[] } | { jwtOrder: ['JWT', 'Bearer', 'cookie'] } | Order in which the built-in strategy reads a token from the Authorization: JWT header, the Authorization: Bearer header, and the auth cookie. Methods left out of jwtOrder aren’t read. jwtOrder is required when you set auth. |
baseAccess | { collections?: CollectionAccess; globals?: GlobalAccess } | — | Access rules combined with every collection’s and global’s own access using AND. |
blocks | Block[] | — | Blocks registered once and referenced by slug from Blocks fields. See Root block registration. |
bodyParser | Partial<BusboyConfig> | — | Options passed to the busboy parser for multipart/form-data requests, such as limits. Experimental. |
cli | { commands?: Record<string, CLICommand> } | — | Adds commands to the frogbot CLI, or replaces built-in ones. See Plugin commands. |
connections | ConnectionsConfig | — | Providers users can link accounts with. See Connections. |
cookiePrefix | string | 'frogbot' | Prefix for every cookie FrogBot sets, such as frogbot-token. |
cors | '*' | string[] | { origins: '*' | string[]; headers?: string[] } | [] | Origins allowed to make cross-origin requests. '*' allows any origin. The object form also adds allowed request headers. See Cookies. |
csrf | string[] | [] | Origins whose requests may authenticate with the auth cookie. serverURL is added automatically when set. See Cookies. |
custom | Record<string, any> | {} | Your own server-only data. FrogBot doesn’t read it. |
debug | boolean | false | Returns error messages and stack traces in API responses, including errors that are normally hidden. |
defaultDepth | number | 1 | Relationship population depth used when a request doesn’t set depth. See Depth. |
defaultMaxTextLength | number | 40000 | Maximum length of Text and Textarea values when the field doesn’t set maxLength. |
editor | RichTextAdapterProvider | — | Default editor for Rich Text fields. Required when any collection has a Rich Text field without its own editor. See Rich Text. |
email | EmailPiece | Promise<EmailPiece> | No email | Email piece used to send verification and password-reset messages. Without it, FrogBot warns at startup and logs email sends instead of delivering them. See Email. |
endpoints | Endpoint[] | — | Root REST endpoints. Handlers receive FrogBotRequest. See Custom endpoints. |
graphQL | GraphQLConfig | See GraphQL options | GraphQL API options. |
hooks | { afterError?: AfterErrorHook[] } | — | Root hooks. See Root hooks. |
i18n | I18nOptions | English only | Admin panel languages and translations. See I18n. |
indexSortableFields | boolean | false | Adds a database index to every sortable top-level field. Useful for databases that require an index to sort, such as Azure Cosmos DB. |
jobs | JobsConfig | — | Tasks, workflows, queues, and schedules. See Jobs Queue. |
kv | KVAdapterResult | databaseKVAdapter() | Key-value store behind frogbot.kv. See Key-value store. |
llmInstructions | false | { access?: Access; editor?: RichTextAdapter } | {} | Agent instructions editors can save per collection, shared with MCP clients. access adds who may edit them (default: users of the admin user collection); false removes the collection and the menu item. |
localization | false | LocalizationConfig | false | Content locales. See Localization. |
logger | 'sync' | { options: LoggerOptions; destination?: DestinationStream } | Logger | Pretty-printed pino logger | Logger behind frogbot.logger. Pass pino options, options with a destination stream, or a pino logger instance. 'sync' writes logs synchronously. |
loggingLevels | Partial<Record<ErrorName, Level | false>> | See description | Log level for each error class, or false to not log it. Defaults: info for Forbidden, Locked, MissingFile, NotFound, and ValidationError; error for the rest. |
maxDepth | number | 10 | Highest depth any request can use. Larger values are lowered to this limit. |
onInit | OnInit | OnInit[] | — | Runs after initialization with the FrogBot instance. See Run initialization steps. |
plugins | Plugin[] | — | Functions that transform the config, in order, before sanitization. See Run plugins. |
queryPresets | QueryPresetsConfig | — | Access rules for saved list filters, columns, and sorts on collections with enableQueryPresets. See Query presets. |
routes | RoutesConfig | See Routes | URL paths for the admin panel, REST API, and GraphQL. |
serverURL | string | '' | Absolute URL of your app, such as https://example.com, with no path. Used for links in emails and file URLs, and added to csrf. |
settings | SettingsEntry[] | — | Pages added to the admin Settings area. See Register a settings page. |
storage | StorageAdapter[] | — | File storage adapters from @frogbotai/storage-*. The first also serves FrogBot’s own upload collections. See Storage adapters. |
telemetry | boolean | true | Sends anonymous usage events. Set false to turn it off. |
tools | readonly (AnyTool | MCPServer)[] | — | Tools and MCP servers attached to every agent. See Share tools across agents. |
typescript | TypeScriptConfig | See Type generation options | Type generation options. |
upload | FetchAPIFileUploadOptions | {} | Options for parsing uploaded files on every upload collection, and the transformers that process them, such as sharpTransformer(). See Uploads. |