DIST:
- CI:
- fix cosign public key location.
BREAKING-CHANGES:
- FIPS artifacts are disabled by default on GitHub Actions CI but still can be built locally.
harp-artifactscontaining all harp binaries will not be produced anymore.
FEATURES:
-
cli/lint:
- Provide command to Lint YAML/JSON content for
Bundle,BundleTemplate,RuleSetandBundlePatch. #138
- Provide command to Lint YAML/JSON content for
-
cli/render:
- Generate a configuration file system from an archive. #149
-
cli/template:
- Support archive as file loader.
-
sdk/api:
-
sdk/crate:
- A crate is an OCI Compatible image which can be pushed to OCI compliant registries.
crate pushis used to prepare acratewith asealed containerand optionally an archive - OCI Push #138- This is used to publish the sealed container and the templates used to render the final configuration.
crate copyis used to retrieve a remote crate from a registry. #147
DIST:
- docker:
- Multi-architecture docker images are produced.
FEATURES:
-
cli:
darwin-amd64anddarwin-arm64are code signed and notarized using an Apple Developer ID certificate to allow harp execution on Silicon M1 based computers. #134
-
cli/transform:
-
bundle/ruleset:
- enable
regolanguage for RuleSet constraint engine. #134
- enable
-
sdk/api:
- support
user_dataforBundle,Package,SecretChainto store custom arbitrary data during pipeline execution. #134
- support
-
sdk/value:
CHANGES:
-
go:
- FIPS artifact build process is disabled.
-
git:
- the tag
cmd/harp/vX.XXwill never be produced.
- the tag
-
ci:
dependabotsetup to monitor and automate dependency updates.- the release pipeline has been completely redesigned to use goreleaser.
- SLSA
provenanceis temporary disabled due to a lack of the multiplatform support for the used action.
DIST:
-
build/ci:
- SHA256 fingerprint is provided per artifact.
- SBOM is embedded in the artifact archive.
-
build/gha:
- zntrio/harp-installer github action could be used to set up harp during your github action pipelines.
FEATURES:
- bundle/from:
- read a
HCLbundle descriptor to generate the binary bundle. #114
- read a
- bundle/patch:
- bundle/selector:
DIST:
- go: Build with Golang 1.17.7.
- go-boring: Build with Golang 1.17.7b7.
FEATURES:
- template/engine:
isodatetime formatter to RFC3389 date format.
- bundle/pipeline:
- Support custom input reader and output writer. #105
- bundle/selector:
- sdk/value:
DIST
- go: Build with Golang 1.17.6.
- build/ci
- Add SLSA Level 1 - Provenance generation step for binaries.
- Add Snyk as code / dependencies scanner via SARIF.
- Add Trivy dependencies scanner via SARIF.
FEATURES:
- api/proto:
BundlePatch:PatchOperationobject supportsreplaceKeysused to replace a key in the secret data
- cmd/to:
github-actionssecret exporter has been implemented to export all the filtered secret of a bundle as GitHub Repository Secrets.
- template/engine #95
parseJwtto parse JWT without signature validationverifyJwtto parse a JWT with signature validation
- template/engine #97
parsePemCertificateto decode a PEM content as a certificateparsePemCertificateBundleto decode a PEM content as a collection of certificatesparsePemCertificateRequestto decode a PEM content as a certificate requesttoTLSAto generate a TLSA-DANE fingerprint from a given certificate
CHANGES:
-
sdk/dep: #100
- github.com/fernet/fernet-go v0.0.0-20211208181803-9f70042a33ee
- github.com/gosimple/slug v1.12.0
- github.com/hashicorp/consul/api v1.12.0
- github.com/hashicorp/vault/api v1.30.1
- github.com/magefile/mage v1.12.1
- github.com/spf13/afero v1.8.0
- github.com/spf13/cobra v1.3.0
- github.com/spf13/viper v1.10.1
- go.step.sm/crypto v0.15.0
- go.uber.org/zap v1.20.0
- golang.org/x/crypto v0.0.0-20211215153901-e495a2d5b3d3
- golang.org/x/oauth2 v0.0.0-20211104180415-d3ed0bb246c8
- golang.org/x/sys v0.0.0-20211210111614-af8b64212486
- google.golang.org/genproto v0.0.0-20220126215142-9970aeb2e350
- google.golang.org/grpc v1.44.0
-
sdk/tools:
- Replace
go-headerdependency bygithub.com/denis-tingaikin/go-headerto prevent a possible identity spoofing. #96 - github.com/golangci/golangci-lint v1.44.0
- Replace
DIST:
- go-boring: Build with Golang 1.17.6.
DIST:
- Github actions release automation
- go: Build with Golang 1.17.6.
FEATURES:
- container/seal: introduce a naming convention for identity and container keys. #89
- cmd/transform #90
encrypt/decryptapply symmetric encryption transformerencode/decodeapply encoding/decoding to given inputsign/verifyapply signature algorithm or verify a signature from the given input
- cmd/keygen: JWK Key pair generation #90
CHANGES:
- cso/v1: Meta ring only require one path component. #90
- container/seal: Modern FIPS compatible container sealing process (ECDH+AES256-CTR+HMAC-SHA384 / ECDSA P-384 / HMAC-SHA512). #89
- crypto/paseto: move PASETO v4 primitives to
sdk/security/paseto/v4. #87 - sdk/deps #91
- GHSA - Security freeze
- github.com/opencontainers/image-spec v1.0.2
- github.com/opencontainers/runc v1.0.3
- github.com/hashicorp/hcl/v2 v2.11.1
- github.com/ory/dockertest/v3 v3.8.1
- golang.org/x/crypto v0.0.0-20210915214749-c084706c2272
- golang.org/x/sys v0.0.0-20210915083310-ed5796bab164
- golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1
- google.golang.org/genproto v0.0.0-20211207154714-918901c715cf
- GHSA - Security freeze
- cmd/transform: Deprecate
encryptionsub command in favor ofencryptanddecrypt. #90
DIST:
- go: Build with Golang 1.17.5.
- nix/shell: Expose
shell.nixto get a consistent development environment. #87
CHANGES:
- cso/v1: Support new Azure and IBM regions. #84
BREAKING-CHANGES:
- cmd/ruleset: Ruleset generation from a Bundle has been relocated to
to rulesetcommand. #77 - bundle/filter: parameter
--jmespathas been renamed to--query. #77 - bundle/dump: parameter
--jmespathas been renamed to--query. #77 - deprecation: package
github.com/elastic/harp/pkg/bundle/vfshas been removed. The Golang 1.16fs.FSimplementation must be used and located atgithub.com/elastic/harp/pkg/bundle/fs. #77 - container/identity: identities are using
ed25519key pairs vsx25519keys in previous versions. For conversion, you can still unseal a container using oldx25519key based identities, but you can't seal with them. To be future-proof, you have to regenerate new identities. #79 - sdk/transformer: Encryption transformers must be imported to be registered in the encryption transformer registry. #80
FEATURES:
- bundle/encryption: Partial bundle encryption based on annotations. #77
- task/bundle: Fully unit tested. #77
- core/kv: Support KV Store publication for Etcd3/Zookeeper/Consul. #77
- value/transformer: Transformer mock is available for testing. #77
- value/encryption: Expose
encryption.Must(value.Transformer, error)to build a transformer instance with a panic raised on error. #77 - sdk/cmdutil:
DiscardWriter()is aio.Writerprovider used to discard all output. #77 - sdk/cmdutil:
DirectWriter(io.Writer)is aio.Writerprovider used to delegate to input writer. #77 - sdk/cmdutil:
NewClosedWriter()is aio.Writerimplementation who always return onWrite()calls. #77 - pkg/kv: integration tests and behavior validation test suite. #78
- value/transformers: expose new JWE based encryption transformers #80
jwe:a128kw:<base64>to initialize a AES128 Key Wrapper with AES128 GCM Encryption transformerjwe:a192kw:<base64>to initialize a AES192 Key Wrapper with AES192 GCM Encryption transformerjwe:a256kw:<base64>to initialize a AES256 Key Wrapper with AES256 GCM Encryption transformerjwe:pbes2-hs256-a128kw:<ascii>to initialize a PBES2 key derivation function for AES128 key wrapping with AES128 GCM Encryption transformerjwe:pbes2-hs384-a192kw:<ascii>to initialize a PBES2 key derivation function for AES192 key wrapping with AES192 GCM Encryption transformerjwe:pbes2-hs512-a256kw:<ascii>to initialize a PBES2 key derivation function for AES256 key wrapping with AES256 GCM Encryption transformer
- sdk/transformer: Encryption transformer dynamic factory. #80
- Use
pkg/value/encryption.Register(prefix, factory)to register a transformer factory matching the given prefix.
- Use
- bundle/prefixer: parameter
--removeadded to support prefix removal operation. #81 - to/object: support
tomlformat as output. #81 - value/transformer: Support PASETO
v4.localtransformer. #82
CHANGES:
- container/identity: converge to
value.Transformerusage for identity protection. #81 - container/recover: converge to
value.Transformerusage for container key recovery from an identity. #81 - sdk/types:
IsNil()now recognize nil function pointer. #77 - sdk/dep: #79
- github.com/google/gops v0.3.22
- github.com/gosimple/slug v1.11.2
- github.com/hashicorp/consul/api v1.11.0
- github.com/hashicorp/vault/api v1.3.0
- github.com/zclconf/go-cty v1.10.0
- go.step.sm/crypto v0.13.0
- golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa
- golang.org/x/sys v0.0.0-20211113001501-0c823b97ae02
- google.golang.org/genproto v0.0.0-20211112145013-271947fe86fd
- google.golang.org/grpc v1.42.0
DIST:
- go: Build with Golang 1.17.3.
- tools: Update
golangci-linttov1.43.0. #76 - docs: General review for typo / grammar.
BREAKING-CHANGES:
- Metadata storage has been modified to support a JSON level complexity. All plugins must align their metadata management to the new format.
DIST:
- go: Build with Golang 1.17.2.
- homebrew: Approriate harp version can be installed according to your platform architecture and OS #71
CHANGES:
- core/vault: Replace JSON encoded metadata in secret data by a JSON object. #68
- crypto/pem: Delegate PEM encoding/decoding to
go.step.sm/crypto#73
FEATURES:
- to/vault: Support Vault >1.9 custom metadata for bundle metadata publication. #68
- from/vault: Support Vault >1.9 custom metadata for bundle metadata retrieval. #68
- from/vault: Support legacy bundle metadata format. #69
- template/engine:
jsonEscape/jsonUnescapeis added to handle string escaping using JSON character escaping strategy #70 - template/engine:
unquoteis added to unquote aquoteescaped string. #70 - bundle/prefixer: Globally add a prefix to all secret packages. #74
- plugin/kv: Promote harp-kv as builtin. #75
CHANGES:
- go: Build with Golang 1.17.1.