Version control and teams
Keep collections in Git, and review changes to requests like code.
Dynomate shows the changes that Git makes on disk. It does not commit, push, pull, or resolve conflicts.
What to commit
| File | Commit? |
|---|---|
collection.dnml | Yes. It is the collection marker. |
<name>.dnml | Yes. One file for each request. |
environments/*.json | Only environments without secrets. See Protect secrets. |
Legacy collection.toml and .toml files | Not after migration. See After migration. |
Global environments, AWS profiles, open tabs, table exports, and local snapshots are outside the collection.
Review DNML diffs
Save writes a canonical layout, so a diff shows only real changes:
[dynamodb.update.expressionAttributeNames] "#status" = "status" [dynamodb.update.expressionAttributeValues]-":status" = "REVIEWED"+":status" = "APPROVED" Do not reformat files with a generic TOML formatter. See Canonical serialization.
Coordinate changes
- Pull before you edit a shared request.
- Use a branch for changes that need review.
- Do not edit one request on two branches at the same time.
- Save the request before you look at the diff.
- After you resolve a Git conflict, open the request in Dynomate to check it. See Invalid files.
File conflicts
When a request file changes on disk, for example after git pull:
- If the tab has no unsaved changes, the tab loads the new version.
- If the tab has unsaved changes, Dynomate keeps your draft and shows This request changed on disk. Select Reload saved version to discard your draft, or Replace with my changes to save it over the file.
Until you select, Save shows Choose which version to keep before saving. If the file changes again before you replace it, Dynomate does not overwrite it.
If Dynomate cannot watch a folder, select Reload request or Refresh collections to check for changes.
Protect secrets
Environment files and request variables are plain text. Mark as secret masks a value in Dynomate, but the file still contains it.
- Do not commit credentials, tokens, or other secrets.
- Do not put secrets in request variables.
- Keep environments with secrets out of Git with a
.gitignoreentry, or use a global environment. - In CI, pass values with
--input. - Commit environments with only values that you can share, for example table ARNs for a shared development account.
.gitignore # Collection environments that hold real credentialsorders/environments/production.json