Table of contents

Developers

Provider schema reference

This page renders the provider definition schema generated from the pinned bricoop-releases revision. The provider schema is larger than the application schema and groups its fields under auths[], models[], services[], and profiles[], so each section of the provider manifest has its own field set. Every field is listed with its path, type, required flag, and any enum or default values.

Never edit these rows by hand. The fields are generated from sources/synced/protocol/reference.json at build time, and any manual edit is overwritten on the next sync. If a field is wrong, fix it upstream in bricoop-releases and re-run the protocol sync; the next release of this page will carry the corrected row.

The table is rendered by the route from the same pinned snapshot the build verifies, so the rows you read here match the rows Bricoop Desktop enforces at runtime. The schemaRevision shown above the table is the per-file hash; the revision shown in the page footer is the 40-character upstream commit the snapshot was imported from.

Provider stable schema

Revision: 2a9d04b42b3af8105097f1148b18f363ccb947cd414789e270c473b134e4b967

pathtyperequired defaultenum
auths[].api_key.console.name string yes
auths[].api_key.console.url string yes
auths[].api_key.enabled boolean no true
auths[].enabled boolean no true
auths[].method string yes OAuth, ApiKey
auths[].name string yes
auths[].oauth.auth_code.authorize.params[].json any yes
auths[].oauth.auth_code.authorize.params[].value string yes
auths[].oauth.auth_code.authorize.url.json any yes
auths[].oauth.auth_code.authorize.url.value string yes
auths[].oauth.auth_code.enabled boolean no true
auths[].oauth.auth_code.exchange.body.fields[].json any yes
auths[].oauth.auth_code.exchange.body.fields[].value string yes
auths[].oauth.auth_code.exchange.body.type string yes json, form_urlencoded
auths[].oauth.auth_code.exchange.delay integer|null no
auths[].oauth.auth_code.exchange.headers[].json any yes
auths[].oauth.auth_code.exchange.headers[].value string yes
auths[].oauth.auth_code.exchange.response.body_mapping.system[] string no
auths[].oauth.auth_code.exchange.response.body_mapping.vars[] string no
auths[].oauth.auth_code.exchange.url.json any yes
auths[].oauth.auth_code.exchange.url.value string yes
auths[].oauth.auth_code.redirect_uri string yes
auths[].oauth.device_code.enabled boolean no true
auths[].oauth.device_code.poll.body.fields[].json any yes
auths[].oauth.device_code.poll.body.fields[].value string yes
auths[].oauth.device_code.poll.body.type string yes json, form_urlencoded
auths[].oauth.device_code.poll.delay integer|null no
auths[].oauth.device_code.poll.headers[].json any yes
auths[].oauth.device_code.poll.headers[].value string yes
auths[].oauth.device_code.poll.response.body_mapping.system[] string no
auths[].oauth.device_code.poll.response.body_mapping.vars[] string no
auths[].oauth.device_code.poll.url.json any yes
auths[].oauth.device_code.poll.url.value string yes
auths[].oauth.device_code.request.body.fields[].json any yes
auths[].oauth.device_code.request.body.fields[].value string yes
auths[].oauth.device_code.request.body.type string yes json, form_urlencoded
auths[].oauth.device_code.request.delay integer|null no
auths[].oauth.device_code.request.headers[].json any yes
auths[].oauth.device_code.request.headers[].value string yes
auths[].oauth.device_code.request.response.body_mapping.system[] string no
auths[].oauth.device_code.request.response.body_mapping.vars[] string no
auths[].oauth.device_code.request.url.json any yes
auths[].oauth.device_code.request.url.value string yes
auths[].oauth.device_code.scopes[] string no
auths[].oauth.device_code.vars[] string no
auths[].oauth.enabled boolean no true
auths[].oauth.refresh.access_token_ttl_seconds integer|null no
auths[].oauth.refresh.body.fields[].json any yes
auths[].oauth.refresh.body.fields[].value string yes
auths[].oauth.refresh.body.type string yes json, form_urlencoded
auths[].oauth.refresh.delay integer|null no
auths[].oauth.refresh.headers[].json any yes
auths[].oauth.refresh.headers[].value string yes
auths[].oauth.refresh.method null|string no
auths[].oauth.refresh.response.body_mapping.system[] string no
auths[].oauth.refresh.response.body_mapping.vars[] string no
auths[].oauth.refresh.response.error.permanent_codes[] string no
auths[].oauth.refresh.response.error.permanent_statuses[] integer no
auths[].oauth.refresh.url null|string no
auths[].oauth.scopes[] string no
auths[].oauth.vars[] string no
auths[].request.additional_fields[].json any yes
auths[].request.additional_fields[].value string yes
auths[].request.additional_headers[].json any yes
auths[].request.additional_headers[].value string yes
auths[].request.body_template null|string no null
auths[].request.delay integer|null no
enabled boolean no true
id string yes
minimal_client_version string yes
models[].aliases[] string no
models[].capabilities.compaction.encoding null|string no
models[].capabilities.compaction.transport null|string no local
models[].capabilities.deferred_tool_loading boolean no false
models[].capabilities.parallel_tool_calls boolean yes
models[].capabilities.structured_output boolean yes
models[].capabilities.thinking null no
models[].description null|string no
models[].enabled boolean no true
models[].kind string yes Chat
models[].max_context_tokens integer yes
models[].max_output_tokens integer yes
models[].modalities.input[] string no text, image, video
models[].modalities.output[] string no text, image, video
models[].model_id string yes
models[].name string yes
models[].release_date string yes
models[].scenes[] string no
models[].supported_protocols[] string no OpenaiChatCompletions, OpenaiResponses, AnthropicMessages, GeminiGenerateContent
models[].tier string yes frontier
name string yes
profiles[].auth string yes
profiles[].billing_mode string no Subscription, UsageBasedApiKey, Hybrid, Unknown
profiles[].enabled boolean no true
profiles[].encrypted_compaction_plain_strategy string no lazy, eager
profiles[].max_context_tokens integer|null no null
profiles[].max_output_tokens integer|null no null
profiles[].name string yes
profiles[].post_auth[].body.fields[].json any yes
profiles[].post_auth[].body.fields[].value string yes
profiles[].post_auth[].body.type string yes json, form_urlencoded
profiles[].post_auth[].delay integer|null no
profiles[].post_auth[].headers[].json any yes
profiles[].post_auth[].headers[].value string yes
profiles[].post_auth[].method null|string no
profiles[].post_auth[].name string yes
profiles[].post_auth[].response.body_mapping.system[] string no
profiles[].post_auth[].response.body_mapping.vars[] string no
profiles[].post_auth[].url.json any yes
profiles[].post_auth[].url.value string yes
profiles[].request.additional_fields[].json any yes
profiles[].request.additional_fields[].value string yes
profiles[].request.additional_headers[].json any yes
profiles[].request.additional_headers[].value string yes
profiles[].request.body_template null|string no null
profiles[].request.delay integer|null no
profiles[].routing_filters[].action string no allow, deny
profiles[].routing_filters[].kind string yes Chat
profiles[].routing_filters[].model null|string no
profiles[].routing_filters[].protocol null|string no OpenaiChatCompletions, OpenaiResponses, AnthropicMessages, GeminiGenerateContent
profiles[].services[] string no
profiles[].vars[].default null|string no
profiles[].vars[].description null|string no
profiles[].vars[].required boolean no false
profiles[].vars[].type string no string, integer, number, boolean
schema_version integer yes 2
services[].capabilities.compaction.encoding null|string no
services[].capabilities.compaction.transport null|string no local, remote
services[].capabilities.custom_tools boolean no false
services[].capabilities.max_output_tokens.field string yes max_tokens, max_completion_tokens
services[].capabilities.mid_conversation_system boolean no false
services[].capabilities.namespace_tools boolean no false
services[].capabilities.stop boolean no true
services[].capabilities.thinking.adaptive.request.additional_fields[].json any yes
services[].capabilities.thinking.adaptive.request.additional_fields[].value string yes
services[].capabilities.thinking.adaptive.request.additional_headers[].json any yes
services[].capabilities.thinking.adaptive.request.additional_headers[].value string yes
services[].capabilities.thinking.adaptive.request.body_template null|string no null
services[].capabilities.thinking.adaptive.request.delay integer|null no
services[].capabilities.thinking.disabled.request.additional_fields[].json any yes
services[].capabilities.thinking.disabled.request.additional_fields[].value string yes
services[].capabilities.thinking.disabled.request.additional_headers[].json any yes
services[].capabilities.thinking.disabled.request.additional_headers[].value string yes
services[].capabilities.thinking.disabled.request.body_template null|string no null
services[].capabilities.thinking.disabled.request.delay integer|null no
services[].capabilities.thinking.enabled.effort_to_budget.high integer no
services[].capabilities.thinking.enabled.effort_to_budget.low integer no
services[].capabilities.thinking.enabled.effort_to_budget.max integer no
services[].capabilities.thinking.enabled.effort_to_budget.medium integer no
services[].capabilities.thinking.enabled.effort_to_budget.minimal integer no
services[].capabilities.thinking.enabled.effort_to_budget.xhigh integer no
services[].capabilities.thinking.enabled.effort_to_value.high string no
services[].capabilities.thinking.enabled.effort_to_value.low string no
services[].capabilities.thinking.enabled.effort_to_value.max string no
services[].capabilities.thinking.enabled.effort_to_value.medium string no
services[].capabilities.thinking.enabled.effort_to_value.minimal string no
services[].capabilities.thinking.enabled.effort_to_value.xhigh string no
services[].capabilities.thinking.enabled.request.additional_fields[].json any yes
services[].capabilities.thinking.enabled.request.additional_fields[].value string yes
services[].capabilities.thinking.enabled.request.additional_headers[].json any yes
services[].capabilities.thinking.enabled.request.additional_headers[].value string yes
services[].capabilities.thinking.enabled.request.body_template null|string no null
services[].capabilities.thinking.enabled.request.delay integer|null no
services[].capabilities.thinking.encoding string no plain
services[].enabled boolean no true
services[].endpoint.json any yes
services[].endpoint.value string yes
services[].execution.idle_timeout_seconds integer|null no
services[].execution.max_attempts integer|null no
services[].execution.timeout_seconds integer|null no
services[].kind string yes Chat
services[].name string yes
services[].path.json any yes
services[].path.value string yes
services[].priority integer no 0
services[].protocol string yes OpenaiChatCompletions, OpenaiResponses, AnthropicMessages, GeminiGenerateContent
services[].request.additional_fields[].json any yes
services[].request.additional_fields[].value string yes
services[].request.additional_headers[].json any yes
services[].request.additional_headers[].value string yes
services[].request.body_template null|string no null
services[].request.delay integer|null no
services[].response.reasoning_fields.content null|string no
services[].response.reasoning_fields.encrypted_content null|string no
services[].response.reasoning_fields.signature null|string no
services[].response.reasoning_fields.summary null|string no
services[].response.selector null|string no null
version string yes
Revision: 31bf27f69920354164f5444f75767b2fe6d39f19