Own provider keys

The original provider adapters remain separate from the maintained backend and from the personal preview allowance gateway. Select the account owner and intended capability before configuring it.

Configure a local capability

Choose an absolute path outside the checkout. Use a private terminal for hidden input:

.venv/bin/python tools/provider-env.py configure \
  --file /absolute/private/rocoto/providers.env \
  --provider copilot-gemini

The helper prompts for the selected key, writes a mode-0600 file in a mode-0700 directory and prints status only. It accepts an explicit --model for the selected Copilot branch. Use a model supported by your own account; model defaults and endpoint settings remain in mock-api/app/config.py.

The new-key Gemini profile selects gemini-3.5-flash-lite. Google currently restricts the original gemini-2.5-flash default to accounts that used it previously and recommends newer models for new accounts. The original adapter remains; --model selects an installation’s supported model. Verified 28 October 2026 against Google’s model catalogue. The source Anthropic default, claude-fable-5-1, is listed in Anthropic’s current model overview. Documentation support and actual account acceptance remain distinct checks.

.venv/bin/python tools/provider-env.py doctor \
  --file /absolute/private/rocoto/providers.env
make dev RUNTIME_ENV=/absolute/private/rocoto/providers.env

doctor reports configured names and presence, with zero provider calls. make dev supplies only the selected private file to its prototype runtime, preserving checkout-owned state and loopback callback origins. A key exported for an unrelated task is excluded. The helper executes no shell expansion and offers no command that prints secret values.

An agent can prepare installation, inspect the relevant adapter and run masked diagnostics. The account owner supplies values through hidden terminal input or an owned private file/secret store. Keep key values out of agent conversation, source, screenshots, URLs and browser storage.

Implemented branches

Capability Helper selection / private names Actual source
Copilot, Gemini copilot-gemini; GEMINI_API_KEY, COPILOT_MODEL=gemini mock-api/app/copilot.py
Copilot, Anthropic copilot-anthropic; ANTHROPIC_API_KEY, COPILOT_MODEL=anthropic Same adapter, selected branch
Document extraction documents; PARSEWISE_API_KEY mock-api/app/parsewise.py
Speech transcription transcription; DEEPGRAM_API_KEY mock-api/app/deepgram.py
Business/place identity places; GOOGLE_PLACES_API_KEY mock-api/app/places.py
Artwork artwork; IDEOGRAM_API_KEY, generated private ARTWORK_SHARED_SECRET mock-api/app/artwork.py

Artwork setup starts with a one-request hourly ceiling. The service’s secret header, provider request/polling and durable evidence are distinct from sku-artwork.tsx, which records local UI requests and approved/uploaded images. The UI request store is a design seam; the release does not assert an automatic UI→Ideogram pipeline.

Phone, email, WhatsApp, bank and fiscal integrations require their own application identifiers, callback origins, permissions and account commissioning. Their selected contracts remain in Cedar’s connection specifications and the native collection service. Provider credentials alone establish configuration presence. Account acceptance, recipient authorization, delivery and fiscal acceptance require their own measured proof.

Backend identity and browser values

The backend reads its declared environment names from .env.example. Keep owner/runtime/control DSNs, service-role credentials, encryption keys and provider secrets private. The legacy Control Room/Playbook browser bootstrap now reads the installation’s public Supabase URL and an explicitly public anon/publishable key. Service-role and secret keys are excluded from that public bootstrap.

Ordinary application authentication, membership checks, CSRF, tenant scope and action gates remain in force. Local service adapters use your declared account and state; the shared public preview budget is a separate server-side feature integration.

Optional public support

Set VITE_SUPPORT_WIDGET_URL in app/.env to your installation's Zendesk Messaging snippet URL. It must use HTTPS, static.zdassets.com/ekr/snippet.js and its single public UUID widget key. The key is a browser identifier, separate from provider secrets. An empty or invalid setting opens the project's GitHub issues; it creates no widget script and invokes no ambient widget/account. The original business widget binding remains in private source provenance.

Search documentation

Type to find a guide or section.

↑ ↓ to choose · Enter to open · Esc to close