tenant-init sealConfig one-liner missing trailing semicolon (Nix syntax error) #10

Closed
opened 2026-08-12 00:37:12 +00:00 by jsutter · 1 comment
Owner

Problem

dito tenant-init generates a sealConfig block as a one-liner without a trailing semicolon:

sealConfig = { type = "transit"; address = "https://10.77.0.10:8201"; caCertFile = ../step-ca-root.crt };

Nix requires a semicolon after the closing brace of an attribute value. The generated file fails nix eval with:

error: syntax error, unexpected '}', expecting ';'
at tenants/sjc.nix:21:106

The fix is to format it as a multi-line attrset (matching the other tenant files):

sealConfig = {
  type = "transit";
  address = "https://10.77.0.10:8201";
  caCertFile = ../step-ca-root.crt;
};

Reproduction

  1. dito tenant-init <slug> ... --dry-run — inspect the rendered Nix
  2. The sealConfig line ends with }; but on a single line — Nix parser rejects it
  3. dito tenant-converge <slug> fails with nix eval syntax error

Environment

  • dito v1.5.4
  • Observed during SJC tenant spin-up
  • Manually fixed by reformatting to multi-line
## Problem `dito tenant-init` generates a `sealConfig` block as a one-liner without a trailing semicolon: ```nix sealConfig = { type = "transit"; address = "https://10.77.0.10:8201"; caCertFile = ../step-ca-root.crt }; ``` Nix requires a semicolon after the closing brace of an attribute value. The generated file fails `nix eval` with: ``` error: syntax error, unexpected '}', expecting ';' at tenants/sjc.nix:21:106 ``` The fix is to format it as a multi-line attrset (matching the other tenant files): ```nix sealConfig = { type = "transit"; address = "https://10.77.0.10:8201"; caCertFile = ../step-ca-root.crt; }; ``` ## Reproduction 1. `dito tenant-init <slug> ... --dry-run` — inspect the rendered Nix 2. The `sealConfig` line ends with `};` but on a single line — Nix parser rejects it 3. `dito tenant-converge <slug>` fails with `nix eval` syntax error ## Environment - dito v1.5.4 - Observed during SJC tenant spin-up - Manually fixed by reformatting to multi-line
Author
Owner

The multi-line sealConfig rendering + regression guard lands in dit-operator PR #268 (merged). The original one-liner was already syntactically valid in v1.9.0; this hardens the format + adds a trailing-semicolon regression test.

The multi-line sealConfig rendering + regression guard lands in dit-operator PR #268 (merged). The original one-liner was already syntactically valid in v1.9.0; this hardens the format + adds a trailing-semicolon regression test.
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
deepnet/dit-releases#10
No description provided.