Skip to content

feat(nickel): emit users block as empty-array placeholder#63

Merged
UnbreakableMJ merged 1 commit into
mainfrom
feat/nickel-emit-users
Apr 29, 2026
Merged

feat(nickel): emit users block as empty-array placeholder#63
UnbreakableMJ merged 1 commit into
mainfrom
feat/nickel-emit-users

Conversation

@UnbreakableMJ

Copy link
Copy Markdown
Contributor

Summary

  • Adds the users = [] block to emit_host, completing the all-blocks-but-config-files coverage of the imported.ncl shape.
  • Documents why the block is empty: ProbedState carries no user inventory (Plan §6.7), and enumerating /etc/passwd at probe time would surface system accounts (root, daemon, http, …) as drift.
  • Block lands after services to match DeclaredState's field order for stable golden-fixture diffs in subsequent chunks.

Per emit.rs's stated scope, the only block left is config-files, which lands next.

Test plan

  • cargo test -p pearlite-nickel --all-features — 18 passed (was 16, +2 for placeholder + ordering)
  • cargo clippy --workspace --all-targets --all-features -- -D warnings clean
  • cargo fmt --all -- --check clean
  • scripts/ci/check-spdx.sh clean
  • pearlite-audit check . clean

🤖 Generated with Claude Code

ProbedState carries no user inventory (Plan §6.7), so reconcile
cannot enumerate `/etc/passwd` without flooding the imported.ncl
with system accounts. Emit `users = []` after `services` so the
operator hand-edits UserDecl entries during review. Block ordering
matches DeclaredState's TOML field order for stable golden-fixture
diffs.

Refs: PRD §11 (reconcile), PRD §17.1 (probed users a v1.1 candidate)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@UnbreakableMJ
UnbreakableMJ merged commit fa3733e into main Apr 29, 2026
3 checks passed
@UnbreakableMJ
UnbreakableMJ deleted the feat/nickel-emit-users branch April 29, 2026 08:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant