Lyre / documentation
Get Lyre

Configuration and credentials

Put each setting in the part of the system that uses it.

On this page

Three places settings belong

Most configuration mistakes come from putting a setting in the wrong place. Ask one question first: which part of the system reads this value?

Setting Owner
Project startup and dependencies The project’s files and approved runtime configuration.
Coding and speech credentials The host/provider configuration.
Application service secrets Your application backend or its secret store.
A packaged app may differ from a source checkout

Use the settings your installed build actually exposes. Developer source setups can have different configuration paths from packaged desktop apps.

You have it right when

you can name the one component that reads the setting you just changed.

Configure only what you use

You do not need an account with every supported service. Configure the provider or integration you intend to use and leave the rest empty. An empty key does not enable an integration.

  1. Decide what you actually need

    One coding provider, or one service your app calls. Not the whole catalogue.

  2. Put the secret with the service that uses it

    Credentials belong on the host or your backend, never in a project file, a shared plugin setting or a browser bundle.

Public and privileged keys are different

For Supabase-backed applications, public project configuration and privileged management credentials serve different purposes. A management token or service-role key must never ship in browser or phone code.

It’s configured when

the value is saved in the right component and nothing else needs it.

Apply and verify a change

  1. Note which component uses the setting

    Write it down before you edit anything.

  2. Change it in that component only

    Use the configuration path your installed build supports.

  3. Reload or restart just that component

    Save your work first. You do not need to restart everything.

  4. Run one operation that uses it

    A real request, not a save.

A filled-in field is not a working integration

A populated configuration field proves only that a value was saved. Check authentication, permissions and a real request before treating the integration as ready.

It worked when

one real operation succeeds using the setting you changed.