Loading the documentation…

Settings and credentials

DataMind Oda keeps its settings in documents it owns on this computer, and the values its connected services use as credentials beside them. This page is the reference for both: how a settings document opens, how a change lands, and how stored credentials are named, layered, reloaded and protected. For the everyday side, see Stored credentials; where the files live and how a save stays safe is on Oda's home folder and settings files. Company-wide rules and permissions around Oda are managed in DataMind OS: see Manage DataMind Oda for your company.

Opening a settings document

Oda can open the settings document it owns on this computer in your computer's normal text editor. It works in three steps:

  1. Oda prepares the document. The document is the one Oda owns; the open never takes a file path from your side, so it cannot be pointed at a file Oda does not own.
  2. Oda opens it in your editor. The prepared document opens in your computer's normal text editor.
  3. Success is reported. When the open succeeds, Oda reports the document as opened ({ opened: true }).

The settings file a profile keeps on this computer is described on The Oda settings file.

How a settings change lands

A settings change reaches one settings area at a time, and each change answers with the area's new state, with secret values hidden. A change can be written in three ways:

More rules for a change:

The operations and codes behind these surfaces are listed in Operations and error codes; saving changes from the app's own forms is covered on Live plugin settings.

What a stored credential is

Oda keeps the credentials its connected services use as named entries on this computer. Two kinds arrive there:

The rules that apply to both:

Which value Oda uses

Oda resolves a name by looking in one order; the first place that has a value wins:

PlaceHow it ranks
The environment Oda starts inHighest, and read-only: Oda cannot change it.
The stored credential fileWins over both .env files below.
A .env file in the folder you launch Oda fromWins over the home .env file.
A .env file in Oda's home folderThe last place Oda looks.

Reloading and rotation

How the store is protected

Operations and error codes

Oda's configuration surfaces read and write through two service namespaces on the Remote layer: settings and credentials. Both are configuration only: they register no prompt, tool or session event.

NamespaceOperationWhat it does
settingsdescribeAnswers with the provider's writability, whether the local document is present, and a redacted view of every namespace: the schema a form renders from, the values, which secret fields are set, and the revision.
settingsupdate, replace, mutateMerge a patch, replace the stored section, or apply path-addressed edits; each answers with the namespace's new redacted view.
settingsopenSettingsDocumentPrepares the document the settings provider owns and opens it in the native text editor.
credentialsdescribeAnswers one entry per name: whether it is configured, where its value comes from when that is known, and whether it is writable.
credentialsset, unsetStore a non-empty value, or remove the name; a later describe reflects either change.

Questions, answered

Can I point Oda at my own settings document?

No. An open prepares the document Oda owns on this computer and opens that one; it never takes a file path from your side, so it cannot reach a file Oda does not own.

Why did opening the settings document fail?

Oda reports what stopped it: settings document preparation failed: <reason> when preparing the document went wrong, or path open failed: <reason> when your editor could not open the prepared file. Nothing is opened in either case; fix the cause and open it again.

What is the difference between update, replace and mutate?

update merges your change into the area's stored section, replace writes a whole replacement section, and mutate applies path-addressed edits against the section as stored, so it never depends on what you last read. All three answer with the area's new state, with secret values hidden.

What comes back after a settings change?

The area's new state as it stands after the change, with secret values hidden. You see the result without a second read, and a secret value can never appear in the answer.

The settings area changed before my change landed. Why was my change refused?

The change carried the revision it read, and the area moved after that. Nothing is wrong with the change: settings/conflict is its own outcome, not a malformed request. Read the area again, check it, and apply the change again; the refusal names the area and carries both revisions.

Can Oda tell me where a stored value comes from?

Yes, when it is known. A check reports, for each name, whether a value is set, where the value comes from, and whether it can be changed here. The places it can name are the environment Oda started in, the stored credential file, a .env file in the folder you launch Oda from, and a .env file in Oda's home folder.

How do I remove a stored credential?

Remove it, and later requests no longer see a value for that name. An empty value is never stored, so blanking the name would not clear it: a credential is removed by removing it.

The store refused my write even though the name looks right. Why?

A valid write can still be refused by the part that owns the value, for example when a read-only source supplies the name. The refusal arrives as credential/rejected and carries the owner's message with only the name, never the value. Fix what the message names; if the environment Oda starts from supplies the name, clear it there and start Oda again.

Why does a call say the settings service is absent?

This installation does not mount it. The namespaces stay registered, and the call fails with an error that tells you to mount the settings plugin together with the configuration editor in the profile. A missing credential provider fails the same way, naming the credentials plugin.

Is the permission check on the credential file the same on Windows?

No. Oda creates the credential file so that only your user account can read it, but the load check that refuses a file other users can read applies on macOS and Linux. On Windows the check does not apply.