Browse documentation

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

FileCommit?
collection.dnmlYes. It is the collection marker.
<name>.dnmlYes. One file for each request.
environments/*.jsonOnly environments without secrets. See Protect secrets.
Legacy collection.toml and .toml filesNot 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:

Diff
 [dynamodb.update.expressionAttributeNames] "#status" = "status" [dynamodb.update.expressionAttributeValues]-":status" = "REVIEWED"+":status" = "APPROVED"

Do not reformat files with a generic TOML formatter. See Canonical serialization.

Share a collection

  1. Create the collection in your repository, or move it there. See Create a collection.
  2. Add and save the requests.
  3. Commit and push the files.

Teammates clone the repository and open the folder with Open collection.

Put account values, for example profile names and table ARNs, in variables and environments. The CLI runs the same files in CI.

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 .gitignore entry, 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.
Text
.gitignore
# Collection environments that hold real credentialsorders/environments/production.json