Releases: getsops/sops
v3.9.1
Installation
To install sops
, download one of the pre-built binaries provided for your platform from the artifacts attached to this release.
For instance, if you are using Linux on an AMD64 architecture:
# Download the binary
curl -LO https://github.com/getsops/sops/releases/download/v3.9.1/sops-v3.9.1.linux.amd64
# Move the binary in to your PATH
mv sops-v3.9.1.linux.amd64 /usr/local/bin/sops
# Make the binary executable
chmod +x /usr/local/bin/sops
Verify checksums file signature
The checksums file provided within the artifacts attached to this release is signed using Cosign with GitHub OIDC. To validate the signature of this file, run the following commands:
# Download the checksums file, certificate and signature
curl -LO https://github.com/getsops/sops/releases/download/v3.9.1/sops-v3.9.1.checksums.txt
curl -LO https://github.com/getsops/sops/releases/download/v3.9.1/sops-v3.9.1.checksums.pem
curl -LO https://github.com/getsops/sops/releases/download/v3.9.1/sops-v3.9.1.checksums.sig
# Verify the checksums file
cosign verify-blob sops-v3.9.1.checksums.txt \
--certificate sops-v3.9.1.checksums.pem \
--signature sops-v3.9.1.checksums.sig \
--certificate-identity-regexp=https://github.com/getsops \
--certificate-oidc-issuer=https://token.actions.githubusercontent.com
Verify binary integrity
To verify the integrity of the downloaded binary, you can utilize the checksums file after having validated its signature:
# Verify the binary using the checksums file
sha256sum -c sops-v3.9.1.checksums.txt --ignore-missing
Verify artifact provenance
The SLSA provenance of the binaries, packages, and SBOMs can be found within the artifacts associated with this release. It is presented through an in-toto link metadata file named sops-v3.9.1.intoto.jsonl
. To verify the provenance of an artifact, you can utilize the slsa-verifier
tool:
# Download the metadata file
curl -LO https://github.com/getsops/sops/releases/download/v3.9.1/sops-v3.9.1.intoto.jsonl
# Verify the provenance of the artifact
slsa-verifier verify-artifact <artifact> \
--provenance-path sops-v3.9.1.intoto.jsonl \
--source-uri github.com/getsops/sops \
--source-tag v3.9.1
Container Images
The sops
binaries are also available as container images, based on Debian (slim) and Alpine Linux. The Debian-based container images include any dependencies which may be required to make use of certain key services, such as GnuPG, AWS KMS, Azure Key Vault, and Google Cloud KMS. The Alpine-based container images are smaller in size, but do not include these dependencies.
These container images are available for the following architectures: linux/amd64
and linux/arm64
.
GitHub Container Registry
ghcr.io/getsops/sops:v3.9.1
ghcr.io/getsops/sops:v3.9.1-alpine
Quay.io
quay.io/getsops/sops:v3.9.1
quay.io/getsops/sops:v3.9.1-alpine
Verify container image signature
The container images are signed using Cosign with GitHub OIDC. To validate the signature of an image, run the following command:
cosign verify ghcr.io/getsops/sops:v3.9.1 \
--certificate-identity-regexp=https://github.com/getsops \
--certificate-oidc-issuer=https://token.actions.githubusercontent.com \
-o text
Verify container image provenance
The container images include SLSA provenance attestations. For more information around the verification of this, please refer to the slsa-verifier
documentation.
Software Bill of Materials
The Software Bill of Materials (SBOM) for each binary is accessible within the artifacts enclosed with this release. It is presented as an SPDX JSON file, formatted as <binary>.spdx.sbom.json
.
What's Changed
- Explicitly mark goreleaser's version, to avoid confusion with the Go version by @felixfontein in #1548
- build(deps): Bump the go group with 8 updates by @dependabot in #1550
- build(deps): Bump github/codeql-action from 3.25.10 to 3.25.11 in the ci group by @dependabot in #1551
- Fix the URL used for determining the latest SOPS version by @felixfontein in #1553
- build(deps): Bump the ci group with 4 updates by @dependabot in #1555
- build(deps): Bump the go group with 11 updates by @dependabot in #1554
- build(deps): Bump the go group with 10 updates by @dependabot in #1558
- build(deps): Bump the ci group with 3 updates by @dependabot in #1559
- build(deps): Bump the go group with 5 updates by @dependabot in #1562
- build(deps): Bump the ci group across 1 directory with 5 updates by @dependabot in #1564
- build(deps): Bump the go group with 4 updates by @dependabot in #1565
- build(deps): Bump github/codeql-action from 3.25.13 to 3.25.15 in the ci group by @dependabot in #1566
- build(deps): Bump github.com/docker/docker from 27.0.1+incompatible to 27.1.0+incompatible by @dependabot in #1568
- build(deps): Bump the go group with 5 updates by @dependabot in #1575
- build(deps): Bump the ci group with 2 updates by @dependabot in #1574
- build(deps): Bump github.com/docker/docker from 27.1.0+incompatible to 27.1.1+incompatible by @dependabot in #1581
- build(deps): Bump the ci group with 3 updates by @dependabot in #1584
- Note on the name of the configuration file by @ErraticMaker in #1569
- build(deps): Bump the ci group with 2 updates by @dependabot in #1586
- build(deps): Bump the go group across 1 directory with 15 updates by @dependabot in #1589
- build(deps): Bump the ci group with 2 updates by @dependabot in #1590
- build(deps): Bump the go group with 7 updates by @dependabot in #1593
- build(deps): Bump the ci group with 2 updates by @dependabot in #1592
- tests: ignore env var SOPS_AGE_KEY_FILE by @duthils in #1595
- build(deps): Bump the go group with 12 updates by @dependabot in #1602
- build(deps): Bump github.com/opencontainers/runc from 1.1.13 to 1.1.14 by @dependabot in #1603
- updatekeys subcommand: actually use option
--shamir-secret-sharing-threshold
by @felixfontein in #1608 - Added example of having age recipients in .sops.yaml by @felixfontein in #1607
- GitHub Actions linter for Rust formatting by @duthils in #1604
- github actions: set rust version globally by @duthils in #1612
- Fix
--config
being ignored byloadConfig
by @lopter in #1613 - build(deps): Bump the go group with 4 updates by @dependabot in #1618
- build(deps): Bump github/codeql-action from 3.26.6 to 3.26.7 in the ci group by @dependabot in #1619
- unit tests: add coverage for unset by @duthils in #1617
- sops_test: homogenize use of asserts by @duthils in #1622
- sops_test: add more tests on errors by @duthils in #1624
- Add 'check' task to CI that makes sure everything is green by @felixfontein in #1621
- build(deps): Bump the go group with 10 updates by @dependabot in #1629
- build(deps): Bump github/codeql-action from 3.26.7 to 3.26.8 in the ci group by @dependabot in #1628
- refactor: specify missing file in error message by @t3hmrman in #1625
- CI: Build with Go 1.22 and 1.23; update Vault to 1.14 by @reneleonhardt in #1531
- Allow edit subcommand to create files by @felixfontein in #1596
- Build release with Go 1.22.x by @felixfontein in #1615
- GHA: fix checkout action version by @felixfontein in #1630
- Do not encrypt if a key group is empty, or there are no key groups by @felixfontein in #1600
- updatekeys subcommand: show changes in shamir_threshold by @felixfontein in #1609
- Dependabot: fix config for Docker, add config for Rust/Cargo by @felixfontein in #1632
- build(deps): Bump the ci group with 2 updates by @dependabot in #1634
- build(deps): Bump the go group with 7 updates by @dependabot in #1635
- Add Cargo.lock for better reproducability of functional tests by @felixfontein in #1637
- build(deps): Bump the go group with 7 updates by @dependabot in #1639
- build(deps...
v3.9.0
Installation
To install sops
, download one of the pre-built binaries provided for your platform from the artifacts attached to this release.
For instance, if you are using Linux on an AMD64 architecture:
# Download the binary
curl -LO https://github.com/getsops/sops/releases/download/v3.9.0/sops-v3.9.0.linux.amd64
# Move the binary in to your PATH
mv sops-v3.9.0.linux.amd64 /usr/local/bin/sops
# Make the binary executable
chmod +x /usr/local/bin/sops
Verify checksums file signature
The checksums file provided within the artifacts attached to this release is signed using Cosign with GitHub OIDC. To validate the signature of this file, run the following commands:
# Download the checksums file, certificate and signature
curl -LO https://github.com/getsops/sops/releases/download/v3.9.0/sops-v3.9.0.checksums.txt
curl -LO https://github.com/getsops/sops/releases/download/v3.9.0/sops-v3.9.0.checksums.pem
curl -LO https://github.com/getsops/sops/releases/download/v3.9.0/sops-v3.9.0.checksums.sig
# Verify the checksums file
cosign verify-blob sops-v3.9.0.checksums.txt \
--certificate sops-v3.9.0.checksums.pem \
--signature sops-v3.9.0.checksums.sig \
--certificate-identity-regexp=https://github.com/getsops \
--certificate-oidc-issuer=https://token.actions.githubusercontent.com
Verify binary integrity
To verify the integrity of the downloaded binary, you can utilize the checksums file after having validated its signature:
# Verify the binary using the checksums file
sha256sum -c sops-v3.9.0.checksums.txt --ignore-missing
Verify artifact provenance
The SLSA provenance of the binaries, packages, and SBOMs can be found within the artifacts associated with this release. It is presented through an in-toto link metadata file named sops-v3.9.0.intoto.jsonl
. To verify the provenance of an artifact, you can utilize the slsa-verifier
tool:
# Download the metadata file
curl -LO https://github.com/getsops/sops/releases/download/v3.9.0/sops-v3.9.0.intoto.jsonl
# Verify the provenance of the artifact
slsa-verifier verify-artifact <artifact> \
--provenance-path sops-v3.9.0.intoto.jsonl \
--source-uri github.com/getsops/sops \
--source-tag v3.9.0
Container Images
The sops
binaries are also available as container images, based on Debian (slim) and Alpine Linux. The Debian-based container images include any dependencies which may be required to make use of certain key services, such as GnuPG, AWS KMS, Azure Key Vault, and Google Cloud KMS. The Alpine-based container images are smaller in size, but do not include these dependencies.
These container images are available for the following architectures: linux/amd64
and linux/arm64
.
GitHub Container Registry
ghcr.io/getsops/sops:v3.9.0
ghcr.io/getsops/sops:v3.9.0-alpine
Quay.io
quay.io/getsops/sops:v3.9.0
quay.io/getsops/sops:v3.9.0-alpine
Verify container image signature
The container images are signed using Cosign with GitHub OIDC. To validate the signature of an image, run the following command:
cosign verify ghcr.io/getsops/sops:v3.9.0 \
--certificate-identity-regexp=https://github.com/getsops \
--certificate-oidc-issuer=https://token.actions.githubusercontent.com \
-o text
Verify container image provenance
The container images include SLSA provenance attestations. For more information around the verification of this, please refer to the slsa-verifier
documentation.
Software Bill of Materials
The Software Bill of Materials (SBOM) for each binary is accessible within the artifacts enclosed with this release. It is presented as an SPDX JSON file, formatted as <binary>.spdx.sbom.json
.
What's Changed
- Respect aws_profile from Keygroup Config by @Kouzukii in #1049
- build(deps): Bump the go group with 6 updates by @dependabot in #1327
- build(deps): Bump the go group with 3 updates by @dependabot in #1328
- build(deps): Bump the go group with 1 update by @dependabot in #1330
- build(deps): Bump github.com/docker/docker from 20.10.24+incompatible to 24.0.7+incompatible by @dependabot in #1336
- build(deps): Bump the go group with 3 updates by @dependabot in #1334
- Improve README.rst by @Ph0tonic in #1339
- Fix typos by @felixfontein in #1337
- build(deps): Bump the go group with 7 updates by @dependabot in #1344
- Add --mac-only-encrypted to compute MAC only over values which end up encrypted by @mitar in #973
- build(deps): Bump the ci group with 1 update by @dependabot in #1347
- build(deps): Bump the go group with 7 updates by @dependabot in #1348
- README: Correctly tag code as yaml-stream by @felixfontein in #1350
- build(deps): Bump the go group with 5 updates by @dependabot in #1354
- use getUserConfigDir also in tests by @bkreitch in #1346
- Overwrite home dir in vault test by @bkreitch in #1349
- Allow configuration of indentation for YAML and JSON stores by @Ph0tonic in #1273
- build(deps): Bump github.com/go-jose/go-jose/v3 from 3.0.0 to 3.0.1 by @dependabot in #1357
- build(deps): Bump the go group with 4 updates by @dependabot in #1360
- build(deps): Bump the ci group with 1 update by @dependabot in #1359
- Fix TestGnuPGHome_Validate by @stormentt in #1370
- build(deps): Bump the go group with 6 updates by @dependabot in #1373
- build(deps): Bump the ci group with 2 updates by @dependabot in #1376
- Docs: indent is used both for encryption and decryption by @felixfontein in #1372
- fix a bug where not having a config results in a panic by @stormentt in #1371
- Polish the 'sops help' output a bit by @felixfontein in #1341
- introduce a --pristine flag to sops exec-env by @e-nikolov in #912
- Allow to pass multiple paths to 'updatekeys' by @sj14 in #1274
- Warn/fail if the wrong number of arguments is provided by @felixfontein in #1342
- Allow to override fileName with different value by @felixfontein in #1332
- Sort masterkeys according to decryption-order by @bkreitch in #1345
- build(deps): Bump the ci group with 4 updates by @dependabot in #1382
- build(deps): Bump the go group with 5 updates by @dependabot in #1381
- Deprecate the --background option to exec-env and exec-file by @felixfontein in #1379
- build(deps): Bump golang.org/x/crypto from 0.16.0 to 0.17.0 by @dependabot in #1383
- build(deps): Bump the ci group with 1 update by @dependabot in #1386
- build(deps): Bump the go group with 5 updates by @dependabot in #1385
- Consolidate Flatten/Unflatten pre/post processing by @lancerushing in #1356
- INI, DotEnv stores: shamir_threshold is an integer by @felixfontein in #1394
- Improve integration tests: reformat test code, make sure exit codes are always checked by @felixfontein in #1390
- Make check whether file contains invalid keys for encryption dependent on output store by @felixfontein in #1393
- Create a constant for the 'sops' metadata key by @felixfontein in #1398
- build(deps): Bump github.com/cloudflare/circl from 1.3.3 to 1.3.7 by @dependabot in #1408
- build(deps): Bump the ci group with 4 updates by @dependabot in #1425
- build(deps): Bump github.com/opencontainers/runc from 1.1.5 to 1.1.12 by @dependabot in #1428
- build(deps): Bump the go group with 10 updates by @dependabot in #1429
- build(deps): Bump the ci group with 4 updates by @dependabot in #1432
- Warn if more than one command is used by @felixfontein in #1388
- Move extraction of encryption and rotation options to separate functions by @felixfontein in #1389
- Add separate subcommands for encryption, decryption, rotating, editing, and setting values by @felixfontein in #1391
- Add basic tests for exec-env and exec-file by @felixfontein in #1396
- build with go 1.21 and update dependencies by @b-dean in #1427
- build(deps): Bump the go group with ...
v3.8.1
Note from the Maintainers
In this release of SOPS, we have focused on landing a variety of bug fixes to improve the overall user experience.
For a comprehensive list of changes, please refer to CHANGELOG.rst
.
Important Information for SOPS SDK Users
With the project transitioning from the Mozilla Foundation to the CNCF, the Go module path has been updated to reflect this change in ownership. If you use go.mozilla.org/sops/v3
as a library, going forward, import the Go Module using github.com/getsops/sops/v3
. Apart from this small adjustment, the SDK's API remains fully backward compatible.
For a one-liner to quickly implement this change throughout your codebase, please refer to: #1246 (comment)
Installation
To install sops
, download one of the pre-built binaries provided for your platform from the artifacts attached to this release.
For instance, if you are using Linux on an AMD64 architecture:
# Download the binary
curl -LO https://github.com/getsops/sops/releases/download/v3.8.1/sops-v3.8.1.linux.amd64
# Move the binary in to your PATH
mv sops-v3.8.1.linux.amd64 /usr/local/bin/sops
# Make the binary executable
chmod +x /usr/local/bin/sops
Verify checksums file signature
The checksums file provided within the artifacts attached to this release is signed using Cosign with GitHub OIDC. To validate the signature of this file, run the following commands:
# Download the checksums file, certificate and signature
curl -LO https://github.com/getsops/sops/releases/download/v3.8.1/sops-v3.8.1.checksums.txt
curl -LO https://github.com/getsops/sops/releases/download/v3.8.1/sops-v3.8.1.checksums.pem
curl -LO https://github.com/getsops/sops/releases/download/v3.8.1/sops-v3.8.1.checksums.sig
# Verify the checksums file
cosign verify-blob sops-v3.8.1.checksums.txt \
--certificate sops-v3.8.1.checksums.pem \
--signature sops-v3.8.1.checksums.sig \
--certificate-identity-regexp=https://github.com/getsops \
--certificate-oidc-issuer=https://token.actions.githubusercontent.com
Verify binary integrity
To verify the integrity of the downloaded binary, you can utilize the checksums file after having validated its signature:
# Verify the binary using the checksums file
sha256sum -c sops-v3.8.1.checksums.txt --ignore-missing
Verify artifact provenance
The SLSA provenance of the binaries, packages, and SBOMs can be found within the artifacts associated with this release. It is presented through an in-toto link metadata file named sops-v3.8.1.intoto.jsonl
. To verify the provenance of an artifact, you can utilize the slsa-verifier
tool:
# Download the metadata file
curl -LO https://github.com/getsops/sops/releases/download/v3.8.1/sops-v3.8.1.intoto.jsonl
# Verify the provenance of the artifact
slsa-verifier verify-artifact <artifact> \
--provenance-path sops-v3.8.1.intoto.jsonl \
--source-uri github.com/getsops/sops \
--source-tag v3.8.1
Container Images
The sops
binaries are also available as container images, based on Debian (slim) and Alpine Linux. The Debian-based container images include any dependencies which may be required to make use of certain key services, such as GnuPG, AWS KMS, Azure Key Vault, and Google Cloud KMS. The Alpine-based container images are smaller in size, but do not include these dependencies.
These container images are available for the following architectures: linux/amd64
and linux/arm64
.
GitHub Container Registry
ghcr.io/getsops/sops:v3.8.1
ghcr.io/getsops/sops:v3.8.1-alpine
Quay.io
quay.io/getsops/sops:v3.8.1
quay.io/getsops/sops:v3.8.1-alpine
Verify container image signature
The container images are signed using Cosign with GitHub OIDC. To validate the signature of an image, run the following command:
cosign verify ghcr.io/getsops/sops:v3.8.1 \
--certificate-identity-regexp=https://github.com/getsops \
--certificate-oidc-issuer=https://token.actions.githubusercontent.com \
-o text
Verify container image provenance
The container images include SLSA provenance attestations. For more information around the verification of this, please refer to the slsa-verifier
documentation.
Software Bill of Materials
The Software Bill of Materials (SBOM) for each binary is accessible within the artifacts enclosed with this release. It is presented as an SPDX JSON file, formatted as <binary>.spdx.sbom.json
.
What's Changed
- build(deps): Bump the ci group with 3 updates by @dependabot in #1295
- pgp: improve handling of GnuPG home dir by @hiddeco in #1298
- Delete sops encrypted file we don't have keys for by @felixfontein in #1288
- Improve handling of errors when binary store handles bad data by @felixfontein in #1289
- On macOS, prefer XDG_CONFIG_HOME over os.UserConfigDir() by @felixfontein in #1291
- Do not crash if an empty YAML file is encrypted by @felixfontein in #1290
- Fix descriptions of unencrypted-regex and encrypted-regex flags, and ensure unencrypted_regex is considered in config validation by @mitar in #1300
- build(deps): Bump the go group with 4 updates by @dependabot in #1306
- build(deps): Bump the ci group with 1 update by @dependabot in #1301
- Handle return values of dec.Token() to improve error messages by @felixfontein in #1307
- pgp: make error the last return value by @felixfontein in #1310
- pgp: do not require abs path for SopsGpgExecEnv by @holiman in #1309
- decrypt: fix dropped error by @alrs in #1304
- Handle errors by @felixfontein in #1311
- Report key rotation errors by @felixfontein in #1317
- cmd/sops/main.go: make sure to wrap raw errors with toExitError() by @felixfontein in #1318
- build(deps): Bump the go group with 7 updates by @dependabot in #1319
- Enrich AWS authentication documentation by @nsantiago2719 in #1272
- Better error reporting for missing gpg binary by @makkes in #1286
- Improve RST and MD files by @felixfontein in #1320
- Add linting for RST and MD files by @felixfontein in #1287
- Update dependencies by @hiddeco in #1325
- Prepare v3.8.1 by @hiddeco in #1324
New Contributors
- @mitar made their first contribution in #1300
- @holiman made their first contribution in #1309
- @alrs made their first contribution in #1304
- @nsantiago2719 made their first contribution in #1272
- @makkes made their first contribution in #1286
Full Changelog: v3.8.0...v3.8.1
v3.8.0
Note from the Maintainers
We are extremely happy to introduce this new minor release of SOPS, now a CNCF Sandbox project under the stewardship of a new group of maintainers.
This release involved significant effort in rewriting and enhancing key source implementations, and includes a number of bug fixes which people had been patiently waiting on for a long period of time. In addition, the release process has been built up from scratch, and now now provides enhanced assurance by publishing SBOMs (Software Bill of Materials), SLSA3 provenance attestations and a Cosign signed checksums file as release artifacts.
For a comprehensive list of changes, please refer to CHANGELOG.rst
.
Important Information for SOPS SDK Users
With the project transitioning from the Mozilla Foundation to the CNCF, the Go module path has been updated to reflect this change in ownership. If you use go.mozilla.org/sops/v3
as a library, going forward, import the Go Module using github.com/getsops/sops/v3
. Apart from this small adjustment, the SDK's API remains fully backward compatible.
For a one-liner to quickly implement this change throughout your codebase, please refer to: #1246 (comment)
Installation
To install sops
, download one of the pre-built binaries provided for your platform from the artifacts attached to this release.
For instance, if you are using Linux on an AMD64 architecture:
# Download the binary
curl -LO https://github.com/getsops/sops/releases/download/v3.8.0/sops-v3.8.0.linux.amd64
# Move the binary in to your PATH
mv sops-v3.8.0.linux.amd64 /usr/local/bin/sops
# Make the binary executable
chmod +x /usr/local/bin/sops
Verify checksums file signature
The checksums file provided within the artifacts attached to this release is signed using Cosign with GitHub OIDC. To validate the signature of this file, run the following commands:
# Download the checksums file, certificate and signature
curl -LO https://github.com/getsops/sops/releases/download/v3.8.0/sops-v3.8.0.checksums.txt
curl -LO https://github.com/getsops/sops/releases/download/v3.8.0/sops-v3.8.0.checksums.pem
curl -LO https://github.com/getsops/sops/releases/download/v3.8.0/sops-v3.8.0.checksums.sig
# Verify the checksums file
cosign verify-blob sops-v3.8.0.checksums.txt \
--certificate sops-v3.8.0.checksums.pem \
--signature sops-v3.8.0.checksums.sig \
--certificate-identity-regexp=https://github.com/getsops \
--certificate-oidc-issuer=https://token.actions.githubusercontent.com
Verify binary integrity
To verify the integrity of the downloaded binary, you can utilize the checksums file after having validated its signature:
# Verify the binary using the checksums file
sha256sum -c sops-v3.8.0.checksums.txt --ignore-missing
Verify artifact provenance
The SLSA provenance of the binaries, packages, and SBOMs can be found within the artifacts associated with this release. It is presented through an in-toto link metadata file named sops-v3.8.0.intoto.jsonl
. To verify the provenance of an artifact, you can utilize the slsa-verifier
tool:
# Download the metadata file
curl -LO https://github.com/getsops/sops/releases/download/v3.8.0/sops-v3.8.0.intoto.jsonl
# Verify the provenance of the artifact
slsa-verifier verify-artifact <artifact> \
--provenance-path sops-v3.8.0.intoto.jsonl \
--source-uri github.com/getsops/sops \
--source-tag v3.8.0
Container Images
The sops
binaries are also available as container images, based on Debian (slim) and Alpine Linux. The Debian-based container images include any dependencies which may be required to make use of certain key services, such as GnuPG, AWS KMS, Azure Key Vault, and Google Cloud KMS. The Alpine-based container images are smaller in size, but do not include these dependencies.
These container images are available for the following architectures: linux/amd64
and linux/arm64
.
GitHub Container Registry
ghcr.io/getsops/sops:v3.8.0
ghcr.io/getsops/sops:v3.8.0-alpine
Quay.io
quay.io/getsops/sops:v3.8.0
quay.io/getsops/sops:v3.8.0-alpine
Verify container image signature
The container images are signed using Cosign with GitHub OIDC. To validate the signature of an image, run the following command:
cosign verify ghcr.io/getsops/sops:v3.8.0 \
--certificate-identity-regexp=https://github.com/getsops \
--certificate-oidc-issuer=https://token.actions.githubusercontent.com \
-o text
Verify container image provenance
The container images include SLSA provenance attestations. For more information around the verification of this, please refer to the slsa-verifier
documentation.
Software Bill of Materials
The Software Bill of Materials (SBOM) for each binary is accessible within the artifacts enclosed with this release. It is presented as an SPDX JSON file, formatted as <binary>.spdx.sbom.json
.
What's Changed
- chore: update dependencies by @hiddeco in #1275
- build: pin actions to full length commit SHA and add CodeQL by @hiddeco in #1276
- Enable Dependabot for Docker, GitHub Actions and Go Mod by @hiddeco in #1277
- build(deps): Bump the go group with 2 updates by @dependabot in #1280
- build(deps): Bump the ci group with 6 updates by @dependabot in #1279
- release: generate versioned
.intoto.jsonl
by @hiddeco in #1278 - pgp: remove
DisableAgent
option by @hiddeco in #1282 - keyservices: address logging regression by @hiddeco in #1281
- chore: update dependencies by @hiddeco in #1283
- Prepare v3.8.0 by @hiddeco in #1284
Full Changelog: v3.8.0-rc.1...v3.8.0
v3.8.0-rc.1
Note from the Maintainers
We're thrilled to introduce the v3.8.0-rc.1
release candidate of SOPS, now a CNCF Sandbox project under the stewardship of a new group of maintainers.
This release involved significant effort in rewriting and enhancing key source implementations. Notably, we've modernized the code and updated all SDKs, including updating to AWS SDK v2. Some of these implementations had been neglected, lacking support for newer features. Now, they should be good for extended service.
Moreover, we've completely revamped the release process. Beyond delivering binaries and packages, it now provides enhanced assurance by publishing SBOMs (Software Bill of Materials), SLSA3 provenance attestation, and a Cosign signed checksums file as GitHub release artifacts.
Additionally, the Darwin binary is now distributed as a "fat binary", making it executable on both AMD64 and ARM64 machines.
The goal of this release candidate is primarily to validate our new release process and the quite impactful changes mentioned above. Take it for a spin and share your thoughts, your feedback is much appreciated!
Important Information for SOPS SDK Users
With the project transitioning from the Mozilla Foundation to the CNCF, the Go module path has been updated to reflect this change in ownership. If you use go.mozilla.org/sops/v3
as a library, going forward, import the Go Module using github.com/getsops/sops/v3
. Apart from this small adjustment, the SDK's API remains fully backward compatible.
For a one-liner to quickly implement this change throughout your codebase, please refer to: #1246 (comment)
Installation
To install sops
, download one of the pre-built binaries provided for your platform from the artifacts attached to this release.
For instance, if you are using Linux on an AMD64 architecture:
# Download the binary
curl -LO https://github.com/getsops/sops/releases/download/v3.8.0-rc.1/sops-v3.8.0-rc.1.linux.amd64
# Move the binary in to your PATH
mv sops-v3.8.0-rc.1.linux.amd64 /usr/local/bin/sops
# Make the binary executable
chmod +x /usr/local/bin/sops
Verify checksums file signature
The checksums file provided within the artifacts attached to this release is signed using Cosign with GitHub OIDC. To validate the signature of this file, run the following commands:
# Download the checksums file, certificate and signature
curl -LO https://github.com/getsops/sops/releases/download/v3.8.0-rc.1/sops-v3.8.0-rc.1.checksums.txt
curl -LO https://github.com/getsops/sops/releases/download/v3.8.0-rc.1/sops-v3.8.0-rc.1.checksums.pem
curl -LO https://github.com/getsops/sops/releases/download/v3.8.0-rc.1/sops-v3.8.0-rc.1.checksums.sig
# Verify the checksums file
cosign verify-blob sops-v3.8.0-rc.1.checksums.txt \
--certificate sops-v3.8.0-rc.1.checksums.pem \
--signature sops-v3.8.0-rc.1.checksums.sig \
--certificate-identity-regexp=https://github.com/getsops \
--certificate-oidc-issuer=https://token.actions.githubusercontent.com
Verify binary integrity
To verify the integrity of the downloaded binary, you can utilize the checksums file after having validated its signature:
# Verify the binary using the checksums file
sha256sum -c sops-v3.8.0-rc.1.checksums.txt --ignore-missing
Verify artifact provenance
The SLSA provenance of the binaries, packages, and SBOMs can be found within the artifacts associated with this release. It is presented through an in-toto link metadata file named provenance.intoto.jsonl
. To verify the provenance of an artifact, you can utilize the slsa-verifier
tool:
# Download the metadata file
curl -LO https://github.com/getsops/sops/releases/download/v3.8.0-rc.1/provenance.intoto.jsonl
# Verify the provenance of the artifact
slsa-verifier verify-artifact <artifact> \
--provenance-path provenance.intoto.jsonl \
--source-uri github.com/getsops/sops \
--source-tag v3.8.0-rc.1
Container Images
The sops
binaries are also available as container images, based on Debian (slim) and Alpine Linux. The Debian-based container images include any dependencies which may be required to make use of certain key services, such as GnuPG, AWS KMS, Azure Key Vault, and Google Cloud KMS. The Alpine-based container images are smaller in size, but do not include these dependencies.
These container images are available for the following architectures: linux/amd64
and linux/arm64
.
GitHub Container Registry
ghcr.io/getsops/sops:v3.8.0-rc.1
ghcr.io/getsops/sops:v3.8.0-rc.1-alpine
Quay.io
quay.io/getsops/sops:v3.8.0-rc.1
quay.io/getsops/sops:v3.8.0-rc.1-alpine
Verify container image signature
The container images are signed using Cosign with GitHub OIDC. To validate the signature of an image, run the following command:
cosign verify ghcr.io/getsops/sops:v3.8.0-rc.1 \
--certificate-identity-regexp=https://github.com/getsops \
--certificate-oidc-issuer=https://token.actions.githubusercontent.com \
-o text
Verify container image provenance
The container images include SLSA provenance attestations. For more information around the verification of this, please refer to the slsa-verifier
documentation.
Software Bill of Materials
The Software Bill of Materials (SBOM) for each binary is accessible within the artifacts enclosed with this release. It is presented as an SPDX JSON file, formatted as <binary>.spdx.sbom.json
.
What's Changed
- Update to urfave/cli to 1.22.7 by @daurnimator in #1063
- pgp: modernize and improve, and add tests by @hiddeco in #1054
- azkv: update SDK to latest, add tests, tidy by @hiddeco in #1067
- Fix comments displacement by @felixfontein in #1069
- age: improve identity loading, add tests, tidy by @hiddeco in #1064
- kms: AWS SDK V2, allow creds config, add tests by @hiddeco in #1065
- gcpkms: update SDK to latest, add tests, tidy by @hiddeco in #1072
- hcvault: update API, add tests, tidy by @hiddeco in #1085
- Upgrade dependencies by @ajvb in #1091
- --version without network request by @felixfontein in #1115
- Replace deprecated gopass package with term by @flx5 in #1113
- Support --input-type for updatekeys by @felixfontein in #1116
- Add DCO and CoC by @hiddeco in #1233
- Update rustc functional tests to v1.70.0 by @hiddeco in #1234
- build: update Go to 1.20 by @hiddeco in #1148
- azkv: update Azure SDK to v0.10.0 by @hiddeco in #1092
- chore: update Go dependencies by @hiddeco in #1147
- Remove remaining CircleCI workflow by @hiddeco in #1237
- build: run CLI workflow on
main
by @hiddeco in #1243 - build(deps): bump github.com/docker/docker from 20.10.7+incompatible to 20.10.24+incompatible by @dependabot in #1242
- Delete obsolete
validation/
artifact by @hiddeco in #1248 - gcpkms: allow use of Google default credentials by @hiddeco in #1249
- Revert intro of
WithError
for most key sources by @hiddeco in #1146 - Rename Go module to
github.com/getsops/sops/v3
by @hiddeco in #1247 - kms: update dependencies by @hiddeco in #1257
- gcpkms: update GCP related dependencies by @hiddeco in #1255
- azkv: update dependencies by @hiddeco in #1256
- Revamp release automation by @hiddeco in #1250
- Update various bits of documentation by @hiddeco in #1244
- Do not report version when upstream check fails by @stoned in #1124
- Add missing --encrypt flag from Vault example by @hrobertson in #1060
- fix
set
feature when adding a new root hierarchy by @vbehar in #899 - Ensure stable order of SOPS parameters in dotenv file by @edofic in #1101
- Add documentation on how to use age in .sops.yaml by @hramberger in #1192
- Clean up more Mozilla references by @Gobd in #1260
- Improve Make targets and address various issues by @hiddeco in #1258
- Update dependencies by @hiddeco in #1264
- version: rewrite command to use GitHub endpoints by @hiddeco in https://github.com/ge...
v3.7.3
Changes:
- Upgrade dependencies (#1024, #1045)
- Build alpine container in CI (#1018, #1032, #1025)
- keyservice: accept KeyServiceServer in LocalClient (#1035)
- Add support for GCP Service Account within
GOOGLE_CREDENTIALS
(#953)
Bug fixes:
- Upload the correct binary for the linux amd64 build (#1026)
- Fix bug when specifying multiple age recipients (#966)
- Allow for empty yaml maps (#908)
Commits
- [75cd389]: Add a test to reproduce #907 (ikedam) #908
- [108b211]: Allow empty maps for yaml (#907) (ikedam) #908
- [ea8b3bb]: support gcp credentials as env var (Kaplinsky, Joshua B) #953
- [c0dc484]: Update keysource.go (Josh Kaplinsky) #953
- [63fa89c]: Merge remote-tracking branch 'remotes/origin/develop' into feature/907_FixEmptyYaml (ikedam) #908
- [b926cf9]: Build alpine container in CI (#870) (ikedam) #1018
- [234bf9f]: Upgrade all dependencies (AJ Bahnken) #1024
- [4277de4]: Remove duplicated stage from Dockerfile.alpine (Shouichi Kamiya) #1025
- [605fb27]: Explicitly build linux amd64 binary (Janis Peisenieks) #1026
- [7ebee3d]: This fixes a bug with age encryption when specifying multiple age recipients (Cedric Kienzler) #966
- [b5f5f28]: Make
masterKeyFromRecipient
private (Cedric Kienzler) #966 - [1dc90ad]: Add tests for single key (Cedric Kienzler) #966
- [3875b00]: Use latest dockerd in CI to allow build alpine image (#870) (ikedam) #1032
- accept KeyServiceServer in LocalClient #1035 (Hidde Beydals)
- [1bb30e2]: Limit role session name length to 64 characters. (AJ Bahnken) #1037
- [a01208c]: Update golang.org/x/crypto (Hidde Beydals) #1045
- [e128fa2]: Update keyservice implementation dependencies (Hidde Beydals) #1045
- [220b652]: Update golang.org/x/{net,oauth2,sys} dependencies (Hidde Beydals) #1045
- [477b61f]: Update remaining dependencies (Hidde Beydals) #1045
- [25817ed]: Replace x/crypto/openpgp with ProtonMail/go-crypto (Hidde Beydals) #1045
- [07aea97]: Merge remote-tracking branch 'upstream/develop' into develop (Josh Kaplinsky) #953
- [4ffb54c]: Use custom GOOGLE_CREDENTIALS or fallback to default (Josh Kaplinsky) #953
- [17fb03f]: Merge remote-tracking branch 'upstream/develop' into develop (Josh Kaplinsky) #953
- [15583bd]: prep for v3.7.3 (AJ Bahnken) #1053
v3.7.2
Changes:
- README updates (#861, #860)
- Various test fixes (#909, #906, #1008)
- Added Linux and Darwin arm64 releases (#911, #891)
- Upgrade to go v1.17 (#1012)
- Support SOPS_AGE_KEY environment variable (#1006)
Bug Fixes
- Make sure comments in yaml files are not duplicated (#866)
- Make sure configuration file paths work correctly relative to the config file in us (#853)
Commits
- [e98451e]: Remove unused age code (Hidde Beydals) #842
- [2395f07]: small release workflow fix (AJ Bahnken)
- [c5b1298]: Match file path relative to config file's directory (2) (#853) (Paulo Lieuthier) #853
- [7626399]: fix missing argument in encrypting with age section (#860) (Damien Léger) #860
- [3acf53e]: Correct path to age keys.txt in documentation (#861) (Alexey Odinokov) #861
- [5af8e63]: Prevent comment duplication. (#866) (Felix Fontein) #866
- [688fa22]: Remove SOPS_GPG_KEYSERVER reference in README.rst (Enrico204) #883
- [02d57ca]: Tests should not fail fast (ikedam) #909
- [6130ffe]: Use the key of release@mozilla.com for the unit test (#882) (#906) (ikedam) #906
- [56bbf84]: Added support for go 1.16 and darwin-arm64 (Nikola Milojević) #911
- [f6e9891]: fix a typo (brant4test) #967
- [086c11d]: Support SOPS_AGE_KEY environment variable (Christian Hoffmeister) #1006
- [a98768b]: Fix flakey test run on OSX (Alex Castle) #1008
- [6bfd72d]: Merge remote-tracking branch 'origin/develop' into sops-age-key-env (Christian Hoffmeister) #1006
- [dc2267e]: Upgrade to go 1.17 (AJ Bahnken) #1012
- [076f295]: rm extra whitespace in CircleCI config (AJ Bahnken) #1012
- [7f503bc]: Upgrade release job to go 1.17 (AJ Bahnken) #1012
- [4bd3e5a]: Update pip package name in Dockerfile (AJ Bahnken) #1012
- [b7c58e4]: Move age environment variable names to constants (Christian Hoffmeister) #1006
- [684d338]: Merge branch 'develop' of https://github.com/mozilla/sops into mozilla-develop (Nikola Milojević) #911
- [0cfcae6]: Merge branch 'mozilla-develop' into develop (Nikola Milojević) #911
- [dff9c31]: Merge branch 'develop' into sops-age-key-env (AJ Bahnken) #1006
- [c586534]: Change labeling and upload linux arm64 (AJ Bahnken) #1014
- [d6bc216]: README and author tweaks (AJ Bahnken) #1016
- [822ce48]: Add arm64 .deb and .rpm builds (Janis Peisenieks) #891
- [baec2a5]: Merge branch 'develop' into feature/testsSholdNotFailFast (ikedam) #909
- [035672f]: prep v3.7.2 (AJ Bahnken) #1020
- [b67c7a7]: Fixed CHANGELOG formatting (AJ Bahnken) #1020
v3.7.1
Commits
- [9cc95d4]: Add release workflow (AJ Bahnken) #843
- [dfc7af2]: swap to fork of action-automatic-releases (AJ Bahnken) #843
- [fdf4517]: Trim space from age keys (Johan Fleury) #846
- [1504dbc]: Run CI tests against master as well (AJ Bahnken) #848
- [8a2fbc0]: Initial patch for advisory (AJ Bahnken) #852
- [e5bf171]: go.sum fix (AJ Bahnken) #852
- [706d0c7]: Merge pull request from GHSA-x5c7-x7m2-rhmf (AJ Bahnken) #852
- [8838db6]: v3.7.1 prep (AJ Bahnken) #852
- [68e2a82]: fix release workflow (AJ Bahnken)