Skip to main content

Overview

Bota’s hierarchical configuration system lets you set default settings at a high level (organization or project) and override them at lower levels (end user or device) as needed. Settings automatically inherit down the chain, so you only need to configure what’s different. Benefits:
  • Set organization-wide defaults once, override per-project or per-device
  • Partial overrides — only specify fields you want to change
  • Deep merge — nested objects merge intelligently, not replace
  • Audit trail — track who changed what and when
Use Cases:
  • Disable cellular uploads organization-wide, but enable for specific field devices
  • Set a conservative daily data limit at the project level, with higher limits for power users
  • Enable auto-transcription for an entire project, but use a different ASR provider for specific devices
  • Apply clinical SOAP templates for healthcare end users, sales templates for others

How It Works

Inheritance Chain

Settings resolve from the most specific level to the most general: When you request config for a device, the system:
  1. Starts with built-in defaults
  2. Merges organization-level overrides
  3. Merges project-level overrides
  4. Merges end user-level overrides (if the device is bound)
  5. Merges device-level overrides
The result is a fully resolved configuration object.

Merge Strategy

The default merge strategy is merge_deep — partial overrides at any level are deep-merged with parent values. You only need to specify the fields you want to change. Example:
Some fields use special merge strategies. For example, daily_data_limit_mb uses min — the strictest (lowest) limit across all levels wins, ensuring child levels can’t exceed parent restrictions.

Config Sections

Configuration is organized into sections. Each section has its own schema and defaults.

connection

Network connectivity and power management settings.
Power-management idle timeouts default to 180 seconds. Use -1 to keep a radio on indefinitely, 0 to power it down immediately after current work completes, or 10-2540 to wait before power-down.

upload

Upload behavior, data limits, and scheduling.

processing

Automatic transcription and summarization. See the Auto-Processing Guide for details.

API Usage

Read Resolved Config

Retrieve the fully resolved configuration for any entity. The response includes all sections with inherited values merged in.
Response:

Read a Single Section

Set a Section Override

Set a partial override at any level. Only the fields you include will be changed — everything else continues to inherit from the parent level.

Delete a Section Override

Remove an override at a specific level. The entity will revert to inheriting the value from its parent.

Scenarios

Scenario 1: Organization-Wide Policy

Set a conservative data limit for all devices across the organization, with a higher limit for a specific project.

Scenario 2: Per-User Provider Selection

A healthcare project uses Whisper by default, but one clinician prefers Deepgram for better medical terminology support.
Dr. Smith’s devices will use Deepgram for transcription but still inherit auto_summary settings (enabled, clinical_soap) from the project.

Scenario 3: Device-Specific Override

A specific device is used in a noisy environment and needs different upload settings.

API Endpoints

Public API (API Key Auth)

Dashboard API (Cognito JWT Auth)

Legacy device settings endpoints (GET/PUT/PATCH /dashboard/projects/:projectId/devices/:deviceId/settings) continue to work and delegate to the hierarchical config system internally.

Auto-Processing Guide

Set up automatic transcription and summarization

Cellular Upload Guide

Configure upload settings for 4G devices

Core Concepts

Understand entities and relationships

Update Device

API reference for device updates