Skip to content

yamlock 1.0.0

Choose a tag to compare

@phoenixweiss phoenixweiss released this 11 Aug 12:35

yamlock 1.0.0 arrives 8 months and 18 days after the first commit on November 24, 2025.

This release establishes the stable 1.x contract for yamlock's CLI, Node.js API, authenticated payload format, field-path serialization, errors, and TypeScript declarations.

Highlights

  • Authenticated payload v2 is now the default, using a fixed AES-256-GCM profile, scrypt key derivation, strict parsing, and authenticated field-path metadata.
  • yamlock migrate safely upgrades selected legacy payloads to v2 with dry-run summaries, mixed-format validation, backups, separate outputs, and atomic permission-preserving writes.
  • Repeated encryption authenticates and preserves existing payloads by default; strict and explicit force-encryption modes cover automation and intentional nested encryption.
  • CLI writes are atomic, reject symbolic-link paths, preserve file modes, detect concurrent source changes, and avoid exposing configuration contents in parse errors.
  • The public Node.js API now includes stable error classes and codes, TypeScript declarations, canonical serializePath(segments), and a documented 1.x compatibility policy.
  • CI verifies Node.js 22, 24, and 26 on Linux and macOS, coverage thresholds, documentation, release metadata, types, and the installed npm package.

Compatibility and migration

  • yamlock requires Node.js 22 or newer and remains an ESM package.
  • Existing legacy payloads remain readable throughout the 1.x line. Legacy writing is still available explicitly through yamlock encrypt --legacy or formatVersion: 1, but is deprecated for new data.
  • Existing configurations do not need an immediate rewrite. Use yamlock migrate --dry-run first, then migrate with the default backup or a separate output file when ready.
  • YAML writes preserve parsed values rather than presentation syntax, so comments, anchors, quoting, tags, and formatting may be normalized. Review the documented YAML rewrite contract before in-place changes.

Install

npm install yamlock@1.0.0