DataMind Oda keeps one settings file for each of its profiles on this computer, applied on top of the built-in defaults. This page covers what the file holds, how Oda applies and normalises it, how to edit it when support asks, and when an edit takes effect. For the settings you change in the app itself, start from Memory, skills and connectors.
One of the layers Oda composes.Command line and flags can print the configuration Oda will run, with each layer named.
It carries only what is different. Everything else comes from Oda's built-in setup; the file adds to it. You rarely need to open it: edit it only when DataMind support asks you to.
Its body is a list of changes. The file is written in YAML. A current file starts with two # header lines and, for a new file, an empty list:
yaml
# DataMind Oda settings for this computer, applied on top of the built-in defaults.
# DataMind Oda keeps this file up to date; edit it only when DataMind support asks you to.
[]
Oda writes its own names. Oda's plugins appear in the file as @datamind/<name>. Leave that spelling as it is.
[] is a list with no changes in it. Keep the body a valid list, because a file with no list is refused at start.
How Oda applies the file
It is applied over the shipped setup. Where the file and the built-in setup both set the same value, the file's value wins.
A row replaces the whole setting it targets. A row that targets an entry replaces that entry's whole setting, not only the values the row names.
Changes saved in the app land here. A plugin row switched on or off on the Plugins page, or a value saved in a settings form, is written into this file. Plugins and bundles covers that page and Live plugin settings covers those forms.
Oda checks the whole result before it writes. A change saved from the app is validated in full first, so the file never ends up in a state Oda cannot apply. Oda adds a row, changes one or removes one, and never adds a second row with a name the file already uses.
A refused change writes nothing. If the change cannot be applied, or a higher-priority setting already owns the value, the file keeps its previous content and the settings already in effect stay.
An unknown name is skipped. A row that names an entry the profile does not have is skipped with a warning, patch: entry "<name>" not found, and the rest of the file still applies.
When you save a change in one of Oda's settings forms, Oda answers with that area's state as it stands after the change, with secret values hidden. If the area changed after the form read it, the save is refused and nothing is written: open the area again, check it, and apply the change again. Keys and sign-ins that settings use are kept as stored credentials, not in this file; how saves are refused and how credentials are stored and protected is on Settings and credentials.
Edit the file when support asks
Open the file DataMind support points you to. Keep the two header lines and keep the body a list of changes.
Make exactly the change support describes, with the names they give you.
Save. Oda watches the file by its exact path and applies a valid change while it runs; a change saved while Oda is still starting waits until it is ready.
If a change cannot be applied, Oda reports the problem, and the settings already in effect stay until you correct the file. Fix the file and save again, or restore the .before-update.bak copy beside it.
How Oda normalises the file
Oda normalises the file when it updates it:
The header is refreshed. A file written by an older version of Oda gets the current header, the one shown above.
Names are rewritten. Oda's own plugin names are brought to the @datamind/<name> form; leave that spelling as it is.
Preset rows become additive. A row that carries instructions for one of your presets is adjusted so what it says adds to Oda's base behaviour instead of replacing it.
Your text is kept. Comments and expressions outside the values Oda replaces stay as they are, and the file's line endings are kept.
One copy is kept. The first rewrite leaves the file's earlier content beside it, with .before-update.bak added to its name; later rewrites never overwrite that copy.
All or nothing. Oda replaces the file in one step. If it cannot do it safely, the file is left as it is, and Oda reports Profile settings file <path> was left unchanged: <error>.
Turning the file's changes off
Keep the header lines and replace the list below them with an empty one: []. The file stays valid and Oda starts normally, with nothing added on top of the built-in setup.
Warning
Never empty the file or leave only comments in it: a file with no list fails the next start. To turn off what the file adds, keep the header lines and write [].
When a change takes effect
While Oda runs. With hot reload on, a valid edit is applied without a restart, once Oda is ready and the file has stopped changing, so a save that is still in progress is never read half-finished. Hot reload covers the rules.
At the next start. With hot reload off, a change is applied the next time Oda starts. The desktop app runs with hot reload on; the automation, SDK and headless runs start with it off, and a profile can switch it back on in this file.
A recorded replay takes a snapshot. A recorded diagnostics replay reads a saved snapshot of the configuration rather than the current one.
Questions, answered
Is there one settings file or several?
One per profile. Each profile keeps its own file in its folder under the Oda home folder, and the ways Oda runs use their own profiles; Oda profiles and launchers covers them.
Do I ever need to open the settings file?
Only when DataMind support asks you to. Oda keeps the file up to date on its own, and the app's own pages are the place to change your setup.
Does the file replace Oda's built-in setup?
No. It carries only what is different on this computer and is applied on top of the built-in defaults; where it sets a value, its value wins over the default.
Why did the file change on its own?
Oda keeps it up to date. Changes you save in the app are recorded in the file, and when Oda updates it, an older header is replaced with the current one, Oda's own plugin names are brought to the @datamind/<name> form, and a row for one of your presets is adjusted so its instructions add to Oda's base behaviour. Comments and expressions outside those values stay as they are.
Will Oda keep the comments I add to the file?
Yes, for comments and expressions outside the values Oda replaces: they stay as they are when Oda updates the file, and when a change is saved from the app. Keep edits to what support describes.
What happens if I make a mistake in the file?
Oda does not ignore a broken file. A file it cannot read stops the next start, and Oda reports the problem; while Oda runs, a change it cannot apply is reported and the previous configuration stays. A row that names an unknown entry is skipped with the warning patch: entry "<name>" not found. Fix the file, or restore the .before-update.bak copy beside it.
How do I turn off what the file adds?
Keep the header lines and replace the list with an empty one: []. Do not empty the file or leave only comments; a file with no list fails to start.
Is the copy beside the file kept up to date?
No. The first rewrite leaves a copy of the file's earlier content beside it, with .before-update.bak added to its name, and later rewrites never overwrite that copy. Leave it in place.
Does editing the file need a restart?
Not while Oda runs with hot reload on: a valid edit is applied without a restart, once Oda is ready. With hot reload off, it is applied at the next start; nothing else about the file needs a restart.
What does it mean when Oda reports the file was left unchanged?
A rewrite could not be done safely, so the file was not touched and the settings already in effect stay. The report names the file and the reason: Profile settings file <path> was left unchanged: <error>. Correct the file and save again, or ask DataMind support.