- Now available for more platforms on pkgr including RHEL6
- Feature: Added consul datasource link
- Feature: API now returns an additional field of
found
, this is useful for diferentiating between a value that is not found and a value that is explicitly set to null. link - Feature: Added
dig
output handler for returning subsets of returned data link - Feature: Added
lookup_key
flag to the HTTP datasource link - Bugfix: Datasource arguments were not processing defaults correctly, this is now fixed link
- Bugfix: Docker image build failing with missing gem dependency, fixed. link
-
Feature: API now supports optional data encoding type of messagepack. The default behaviour is still JSON as with previous versions, but now if you specify a content type of
application/x-msgpack
(and encode your payload with msgpack) then Jerakia will return responses in msgpack instead of JSON. This has some small performance gains but also solves an issue with JSON encoding integer hash keys as strings (https://github.com/crayfishx/jerakia/issues/95). This is currently an opt-in change, however we aim to make msgpack the default serialization format for Jerakia 3. Thanks to @hhenkel for the contribution (https://github.com/crayfishx/jerakia/pull/96) -
Enhancement: Better error reporting and softer handling of situations where there is no logfile. Jerakia will no longer cause an exception to be thrown if the logfile cannot be opened, instead it will direct logs to
STDOUT
with a warning to the user, and continue executing. The previous behaviour was frustrating, especially when using the rubygem installation method that doesn't set up all the scaffolding for you. Other errors such as failure to open the database files are also better reported and more understandable. AnyJerakia::Error
thrown on the CLI is now captured and reported back in an easier to understand way
- Enhancement: Added
--bind
,--port
and--token_ttl
options tojerakia server
to override these values from the CLI
- New feature:
config
CLI option to display current runtime configuration - Fix: Better descrption of --verbose and --debug for server CLI options
- Fix:
plugindir
default of/var/lib/jerakia/plugins
added - Fix: More meaningful error message when a policy is not found, now throws a proper
Jerakia::PolicyError
exception
- Tighter permissions on logfile and configuration file when installing with system packages (https://github.com/crayfishx/jerakia/pull/85)
- Bugfix: An issue in 2.0.0 meant that if you use
stop
with aconfine
orexclude
statement in a lookup, that the lookup never actually gets invoked (https://github.com/crayfishx/jerakia/pull/86) - Fixed issues installing on Debian using apt (https://github.com/crayfishx/jerakia/pull/83)
- Fixed HTTP datasource to be compatible with the new datasource API (https://github.com/crayfishx/jerakia/pull/82)
- Fixed validation of datasource parameters when nil and not mandatory
- Fixed default location of logfile to be
/var/log/jerakia/jerakia.log
- Added default for
databasedir
to point to/var/db/jerakia
The main additions for 2.0 are the introduction of encryption as a first class citizen and integration with the transit secret backend for vault to provide encryption. We've also changed the API for datasources to make them easier to write.
2.0 removes some features, particularly around Puppet integration that are now available as a third party plugin rather than shipped in Jerakia core.
- Introduced encryption as a first class citizen to Jerakia
- Encryption services are now pluggable with the default being Vault transit
- The output provider
:encryption
now uses whichever encryption provider has been configured - API changes to data sources to make them more understandable
- Lookups can now be accepted without a key or a namespace, this is paving the way for data sources that can potentially be keyless - eg: return all data in one query.
- The legacy Puppet data binding terminus and Hiera 3.x backend have been removed from core but are still available with the
jerakia-puppet
rubygem. - Integration with Puppet 4.9+ is now via a Hiera 5 data provider function in the
crayfishx/jerakia
Puppet module
- Fixed omision from 1.2 that failed to authenticate tokens using the API
- New feature, Jerakia Server
- New feature, PuppetDB scope handler
- This release has many additions, please see the full release notes for complete documentation
- Various bugfixes around resource cloning between lookups, and from the CLI (https://github.com/crayfishx/jerakia/pull/61).
- Fix for #58, boolean options for data sources with true as a default not overridable.
- Fix for #59, HTTP datasource incorrectly parsing nil return (ref: crayfishx/lookup_http#2)
- Fix for #54, multiple lookups in a policy sometimes cause exceptions with cascading look ups. Fixed.
- Enhanced error handling
- Internal refactor of DSL parser and other code cleanups
- More spec tests
- Changed clone_request to use .clone() instead of Marshal.dump, this fixes some very strange behaviour under specific circumstances in Puppet. see #53
- Stable release, no functional changes since 0.5.3
- Bugfix: Issue #41, fixes problem where the boolean false is returned as nil.
- Bugfix: deep_merge gem missing from Gem dependancies
- Feature: added yaml output (--output yaml) for the command line
- Issue #9 : Added data schema feature
- Issue #12: Added deep merge capability
- Issue #35: Bugfix: reverse priority given to hash merges
- Issue #33: Use default values for jerakia.yaml options so file is not mandatory
- Issue #36: Plugins now support an
autorun
method to run upon use without needing to call plugin methods - Issue #37: Configuration can now be passed to Jerakia plugins from
jerakia.yaml
in aplugins
hash. - Misc:
plugin.hiera.rewrite_lookup
is now deprecated (currently warns), this feature is now run using the autorun method - Misc: File data source now supports a JSON file handler
- Bug fix release: fix for looking up nested vars (eg: foo::bar::bob) from Hiera
- --verbose feature added to show lookup keys
- Fixed issues with declaring alternative scope handlers
- Added YAML scope handler
- Policy can be overriden using request metadata
- Data sources can define multiple types for their options
- Integration tests added for data bindings, hiera lookups and puppet runs
- JERAKIA_CONFIG environment variable can be used to set the jerakia.yaml location
- internal minor bug fixes
- --debug feature added to the CLI to log to stdout
- Bugfix: hiera backend throwing errors with unresolvable 'config' method
- Added Jerakia::VERSION constant
- Added version flag to CLI
- BREAK - CLI overhaul of the jerakia command line (David Danzilio)
- Feature: Fragments (.d) support for the file datasource
- Numerous testing enhancements
- Internal improvements
- BREAK by default, jerakia will now use .yaml instead of .yml for all YAML files.
- introduced HTTP datasource using lookup_http