Skip to content

feat: support authenticated secret values - #706

Merged
alexey-igrychev merged 1 commit into
2from
chore/bump-common-go
Aug 31, 2026
Merged

feat: support authenticated secret values#706
alexey-igrychev merged 1 commit into
2from
chore/bump-common-go

Conversation

@alexey-igrychev

@alexey-igrychev alexey-igrychev commented Aug 31, 2026

Copy link
Copy Markdown
Member

Summary

Nelm v2 now uses common-go branch 1, adding authenticated AES-GCM secret encryption while retaining read support for existing AES-CBC secrets. It can read and write the format required by the werf v3 rollout.

Related: #677

What

Breaking

  • BREAKING: secrets written by nelm v2 use AES-GCM formats that cannot be read by earlier nelm or werf releases. Upgrade every CI job and saved deploy-plan consumer before re-encrypting a repository.
  • Existing AES-CBC encrypted values remain readable, but new writes use authenticated formats.

Secret values

  • Whole-blob secrets use version 2 and YAML scalar secrets use version 3, preventing whole-blob values from being interpreted as scalar metadata.
  • YAML scalar tags, block styles, and value comments survive a secret-values edit cycle. Existing values that lost their original type remain strings until re-entered.
  • Whole-blob ciphertext can be used as a scalar in an additional secret-values file without frame corruption.

Why

The previous common-go AES-CBC format accepted tampered data and wrong keys without reliable detection, while secret YAML encryption discarded scalar metadata. Nelm needs the common-go v1 implementation so its v2 release participates in the coordinated authenticated-secret rollout with werf v3.

Review in cubic

Update common-go so nelm v2 reads and writes the versioned AES-GCM secret formats.

Signed-off-by: Aleksei Igrychev <aleksei.igrychev@palark.com>
@alexey-igrychev

Copy link
Copy Markdown
Member Author

Verification

  • Linux (Go 1.25.5): task build and task test:unit passed against this commit.
  • task format and task lint both fail with the same 12 pre-existing gosec G602 findings on pkg/action/release_history.go and pkg/action/release_list.go when run from origin/2; the bump adds no diff beyond go.mod/go.sum.

Review focus

  • The common-go version range includes the versioned AES-GCM secret-format rollout and the removal of an unused deprecated missed-secret-key mode. Nelm v2 compiles and tests without that removed API.

Follow-up

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