Skip to content

Releases: mandelsoft/spiff

v1.4.0 (St Nicholas' Day Release)

06 Dec 20:25
Compare
Choose a tag to compare

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 intersection
  • reverse 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)

13 Oct 19:12
Compare
Choose a tag to compare
Pre-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 intersection
  • reverse for reversing the order of list entries.

v1.4 beta release 1 (library release)

02 Oct 15:50
Compare
Choose a tag to compare
Pre-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

14 Apr 07:30
Compare
Choose a tag to compare

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 and asyaml)
  • 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 bcryptand bcrypt_checkcan 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 mode importmulti and multiyaml
  • 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 (like map[]) 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 splitand replace
  • 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

10 Apr 13:25
Compare
Choose a tag to compare
v1.3 beta release 7 Pre-release
Pre-release

Here is the list of new features:

  • marshal and unmarshal yaml and json strings from/as parts of the yaml document (parse, asjson and asyaml)
  • 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 bcryptand bcrypt_checkcan 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 mode importmulti and multiyaml
  • 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 (like map[]) 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 splitand replace
  • 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

31 Mar 20:36
Compare
Choose a tag to compare

This is a flowting release. It reflects the last qualified dev version.

v1.3 beta release 6

16 Mar 18:23
Compare
Choose a tag to compare
v1.3 beta release 6 Pre-release
Pre-release

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 and asyaml)
  • 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 bcryptand bcrypt_checkcan 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 mode importmulti and multiyaml
  • 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 (like map[]) 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 splitand replace
  • replace with lambda based replacement
  • offering some dynaml libraries

Compatibility for single document output

05 Mar 16:59
Compare
Choose a tag to compare

Avoid leading --- for single documents

v1.3 beta release 5 (carnival release)

04 Mar 09:57
Compare
Choose a tag to compare
Pre-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 and asyaml)
  • 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 bcryptand bcrypt_checkcan 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 mode importmulti and multiyaml
  • 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

24 Feb 21:16
Compare
Choose a tag to compare
v1.3 beta release 3 Pre-release
Pre-release

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 and asyaml)
  • 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 bcryptand bcrypt_checkcan 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 mode importmulti
  • 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