Releases: mandelsoft/spiff
v1.4.0 (St Nicholas' Day Release)
This release improves the lambda function feature of spiff and supports the possibility to use spiff as go library.
- It is possible now to declare optional parameters for lambda functions by specifying defaults for trailing parameters.
- This is attended by the introduction of a currying operator (
*(
) that works for lambda functions as well as for built-in functions of spiff. - Support of indexed and named arguments in function calls and currying expressions.
- Additionally inline list expansion is supported now by the list expansion postfix operator (
...
) usable in argument lists or list literals. - It is possible to handle templates as go objects and to process input documents using those templates without file system usage.
A new marker (&default
) is supported now. It can be used to define default values for downstream nodes.
In contrast to &inject
those settings do not override existing downstream settings.
Several new built-in functions are added:
intersect
for list intersectionreverse
for reversing the order of list entries.- multiple regexp matches
md5crypt
support to generate linux password hashes- generation of ssh public key format for generated x509 keys
Fixes:
- chained
or
expressions
v1.4 beta release 2 (parameter release)
This release improves the lambda function feature of spiff.
- It is possible now to declare optional parameters for lambda functions by specifying defaults for trailing parameters.
- This is attended by the introduction of a currying operator (
*(
) that works for lambda functions as well as for built-in functions of spiff. - Additionally inline list expansion is supported now by the list expansion postfix operator (
...
) usable in argument lists or list literals.
A new marker (&default
) is supported now. It can be used to define default values for downstream nodes.
In contrast to &inject
those settings do not override existing downstream settings.
Several new built-in functions are added:
intersect
for list intersectionreverse
for reversing the order of list entries.
v1.4 beta release 1 (library release)
This release now supports the possibility to use spiff as go library. It is possible to handle templates as go objects and to process input documents using those templates without file system usage.
Additionally some new functionality has been added:
- multiple regexp matches
md5crypt
support to generate linux password hashes- generation of ssh public key format for generated x509 keys
Fixes:
- chained
or
expressions
The Dynamic Release
This release opens a new dimension for generating deployment manifests by supporting state and access to status information of deployments. This can be used to influence the generation of multiple inter-dependent deployments described in a single yaml template.
Here is the list of new features:
- marshal and unmarshal yaml and json strings from/as parts of the yaml document (
parse
,asjson
andasyaml
) - stream content from the yaml document into a command processing and catch its result (
pipe
) - function
catch
offers a possibility to handle evaluation errors - function
sync
supports the synchronization of the template processing with external content - functions
bcrypt
andbcrypt_check
can be used to generate and validate bcrypt based password hashes - functions
lower
,upper
and sort (with lambda compare funtion support) - function
rand
to generate random numbers and strings - function
write
writes content to files - option
--path
can be used to specify a sub path of the document for the output - option
--split
can be used to split a list output into a multi document stream - state support using option
--state
- extend the reference lookup for nested merge function with access to outer bindings
- enrich the
__ctx
field to offer access to all levels of outer documents in merge functions. - map mode for
map
statement - filtering of maps and lists via
select
statement - importing of multi documents (as list of nodes) with
read
modeimportmulti
andmultiyaml
- parsing to and reading of templates
- access to defining scope in lambda functions using scope literal
_
- access to template and definining scope in templates using scope literal
_
- scoped expressions with
( "alice"=25 ) expr
- scope literal
__
- support of negative list indices
- support of regular list index syntax in dynaml without dot
- support of json like string literals in dynaml
- omit
_
in inline lambda expressions as part of a statement syntax (likemap[]
) to support
such statements in self-reflective lambdas - improved error reporting with call stack of lambda function and location of parsing errors in dynaml
expressions. - function
lookup_file
to lookup files and directories in a list of directories - function
list_files
to list directory entries. - function
tempfile
to use data files temporarily during the template processig - function
split
now supports splitting for maximum line length - function
write
now supports binary data - expression
merge none
disables field merging - operator
//
to default invalid values - function
stub
now accepts a field list argument, also - function
merge
now supports a list of maps as argument - function
x509parsecert
- function
validate
can be used to validate expressions using a set of own or built-in validators - regexp variants for
split
andreplace
replace
with lambda based replacement- offering some dynaml libraries
- generating archives
- node validation
- encryption/decryption
- support
<<<:
as substitute for<<:
to support newer yaml parsers
v1.3 beta release 7
Here is the list of new features:
- marshal and unmarshal yaml and json strings from/as parts of the yaml document (
parse
,asjson
andasyaml
) - stream content from the yaml document into a command processing and catch its result (
pipe
) - function
catch
offers a possibility to handle evaluation errors - function
sync
supports the synchronization of the template processing with external content - functions
bcrypt
andbcrypt_check
can be used to generate and validate bcrypt based password hashes - functions
lower
,upper
and sort (with lambda compare funtion support) - function
rand
to generate random numbers and strings - function
write
writes content to files - option
--path
can be used to specify a sub path of the document for the output - option
--split
can be used to split a list output into a multi document stream - state support using option
--state
- extend the reference lookup for nested merge function with access to outer bindings
- enrich the
__ctx
field to offer access to all levels of outer documents in merge functions. - map mode for
map
statement - filtering of maps and lists via
select
statement - importing of multi documents (as list of nodes) with
read
modeimportmulti
andmultiyaml
- parsing to and reading of templates
- access to defining scope in lambda functions using scope literal
_
- access to template and definining scope in templates using scope literal
_
- scoped expressions with
( "alice"=25 ) expr
- scope literal
__
- support of negative list indices
- support of regular list index syntax in dynaml without dot
- support of json like string literals in dynaml
- omit
_
in inline lambda expressions as part of a statement syntax (likemap[]
) to support
such statements in self-reflective lambdas - improved error reporting with call stack of lambda function and location of parsing errors in dynaml
expressions. - function
lookup_file
to lookup files and directories in a list of directories - function
list_files
to list directory entries. - function
tempfile
to use data files temporarily during the template processig - function
split
now supports splitting for maximum line length - function
write
now supports binary data - expression
merge none
disables field merging - operator
//
to default invalid values - function
stub
now accepts a field list argument, also - function
merge
now supports a list of maps as argument - function
x509parsecert
- function
validate
can be used to validate expressions using a set of own or built-in validators - regexp variants for
split
andreplace
replace
with lambda based replacement- offering some dynaml libraries
- generating archives
- node validation
- encryption/decryption
- support
<<<:
as substitute for<<:
to support newer yaml parsers
Test-Release - Reflecting the last development state
This is a flowting release. It reflects the last qualified dev version.
v1.3 beta release 6
This release opens a new dimension for generating deployment manifests by supporting access to status information of deployments. This can be used to influence the generation of multiple inter-dependent deployments described in a single yaml template.
Here is the list of new features:
- marshal and unmarshal yaml and json strings from/as parts of the yaml document (
parse
,asjson
andasyaml
) - stream content from the yaml document into a command processing and catch its result (
pipe
) - function
catch
offers a possibility to handle evaluation errors - function
sync
supports the synchronization of the template processing with external content - functions
bcrypt
andbcrypt_check
can be used to generate and validate bcrypt based password hashes - functions
lower
,upper
and sort (with lambda compare funtion support) - function
rand
to generate random numbers and strings - function
write
writes content to files - option
--path
can be used to specify a sub path of the document for the output - option
--split
can be used to split a list output into a multi document stream - state support using option
--state
- extend the reference lookup for nested merge function with access to outer bindings
- enrich the
__ctx
field to offer access to all levels of outer documents in merge functions. - map mode for
map
statement - filtering of maps and lists via
select
statement - importing of multi documents (as list of nodes) with
read
modeimportmulti
andmultiyaml
- parsing to and reading of templates
- access to defining scope in lambda functions using scope literal
_
- access to template and definining scope in templates using scope literal
_
- scoped expressions with
( "alice"=25 ) expr
- scope literal
__
- support of negative list indices
- support of regular list index syntax in dynaml without dot
- support of json like string literals in dynaml
- omit
_
in inline lambda expressions as part of a statement syntax (likemap[]
) to support
such statements in self-reflective lambdas - improved error reporting with call stack of lambda function and location of parsing errors in dynaml
expressions. - function
lookup_file
to lookup files and directories in a list of directories - function
list_files
to list directory entries. - function
tempfile
to use data files temporarily during the template processig - expression
merge none
disables field merging - operator
//
to default invalid values - function
stub
now accepts a field list argument, also - function
merge
now supports a list of maps as argument - function
x509parsecert
- regexp variants for
split
andreplace
replace
with lambda based replacement- offering some dynaml libraries
Compatibility for single document output
Avoid leading --- for single documents
v1.3 beta release 5 (carnival release)
Bug fix for beta-4:
The operator ==
did not handle boolean values.
This release opens a new dimension for generating deployment manifests by supporting access to status information of deployments. This can be used to influence the generation of multiple inter-dependent deployments described in a single yaml template.
Here is the list of new features:
- marshal and unmarshal yaml and json strings from/as parts of the yaml document (
parse
,asjson
andasyaml
) - stream content from the yaml document into a command processing and catch its result (
pipe
) - function
catch
offers a possibility to handle evaluation errors - function
sync
supports the synchronization of the template processing with external content - functions
bcrypt
andbcrypt_check
can be used to generate and validate bcrypt based password hashes - function
write
writes content to files - option
--path
can be used to specify a sub path of the document for the output - option
--split
can be used to split a list output into a multi document stream - extend the reference lookup for nested merge function with access to outer bindings
- enrich the
__ctx
field to offer access to all levels of outer documents in merge functions. - filtering of maps and lists via
select
statement - importing of multi documents (as list of nodes) with
read
modeimportmulti
andmultiyaml
- access to defining scope in lambda functions using scope literal
_
- access to template and definining scope in templates using scope literal
_
- scoped expressions with
( "alice"=25 ) expr
- scope literal
__
- support of negative list indices
- support of regular list index syntax in dynaml without dot
- improved error reporting with call stack of lambda function and location of parsing errors in dynaml
expressions. - function
lookup_file
to lookup files and directories in a list of directories - function
tempfile
to use data files temporarily during the template processig - expression
merge none
disables field merging - operator
//
to default invalid values - function
stub
now accepts a field list argument, also
v1.3 beta release 3
This release opens a new dimension for generating deployment manifests by supporting access to status information of deployments. This can be used to influence the generation of multiple inter-dependent deployments described in a single yaml template.
Here is the list of new features:
- marshal and unmarshal yaml and json strings from/as parts of the yaml document (
parse
,asjson
andasyaml
) - stream content from the yaml document into a command processing and catch its result (
pipe
) - function
catch
offers a possibility to handle evaluation errors - function
sync
supports the synchronization of the template processing with external content - functions
bcrypt
andbcrypt_check
can be used to generate and validate bcrypt based password hashes - function
write
writes content to files - option
--path
can be used to specify a sub path of the document for the output - option
--split
can be used to split a list output into a multi document stream - extend the reference lookup for nested merge function with access to outer bindings
- enrich the
__ctx
field to offer access to all levels of outer documents in merge functions. - filtering of maps and lists via
select
statement - importing of multi documents (as list of nodes) with
read
modeimportmulti
- access to defining scope in lambda functions using
_
- scoped expressions with
( "alice"=25 ) expr
- improved error reporting with call stack of lambda function and location of parsing errors in dynaml
expressions. - function
lookup_file
to lookup files and directories in a list of directories - function
tempfile
to use data files temporarily during the template processig - expression
merge none
disables field merging - operator
//
to default invalid values - function
stub
now accepts a field list argument, also