Skip to content

Releases: mandelsoft/spiff

v1.7.0-beta-5

25 May 12:39
Compare
Choose a tag to compare

Features:

  • support ~ in file paths
  • function contains now supports checking keys in maps

Fixes:

  • package spiffing: fix registry creation for adding function to spiff context

v1.7.0-beta-4

21 Feb 16:13
Compare
Choose a tag to compare
  • support of multi-dimensional index operator (matrix[1,2])

  • enable ref through completed paths in partly resolved collections

  • support of root level indexing (.[index]) on lists and maps

  • support disabeing interpretation of keyed list entries

  • keyed list entry stub merging for lists with unique key set, only

  • support of deep structures for option -D

  • upgate Gg version to 1.18

v1.7.0-beta-3 (The Control Release)

16 Jan 11:20
8643998
Compare
Choose a tag to compare
Pre-release
  • Semver support based on Masterminds Semver Library
    There is a set of functions to examine, match, validate and modify semantic version names.
  • Dynamic merge support for overwriting of fields. Instead of inheriting a fixed value through the processing chain it is now possible
    to dynamically evaluate an inherited template expression in the context of every overwrite action.
  • command execution result cache now in execution state
  • IP arithmetic o CIDRs
  • YAML based control structures
  • ARM support for Linux

Fixes:

  • synchronized access to command execution result cache
  • missing type support for float
  • documentation fixes

v1.7.0-beta-2

29 May 21:05
Compare
Choose a tag to compare
v1.7.0-beta-2 Pre-release
Pre-release

The beta-2 release introduces a new tag feature. Tags offer separate namespaces to resolve reference expressions in addition to the default document namespace. Any document node can be tagged. Using this tag in reference expressions as qualifier can be used to lookup a reference in the value of the tag,

Tags can be used in a multi-document template stream processing to provide cross-document information. Global tags are also passed along the stub merges.

A Tag may consist of a sequence of tag components to provide a structured namespace. This can be used to resolve a reference path in a tag hierarchy by the first matching tree level.

v1.7.0-beta-1

28 Apr 12:45
Compare
Choose a tag to compare
v1.7.0-beta-1 Pre-release
Pre-release

This release offers a first draft version for string interpolation. It is now possible to incorporate dynaml expressions in regular yaml string values. This way string composition can be directly expressed:

name: alice
dnsname: (( name )).spiff.mandelsoft.org

Because this alpha feature is not compatible with the previous behaviour, it must be enabled by using the environment variable SPIFF_FEATURES=interpolation, or by using the command line option --interpolation.

Additionally a whole bunch of go's math functions for floats is now available as dynaml functions, like ceil, abs, sin and much more. Type conversions are possible using the integer, string, float and bool functions.

It also fixes the evaluation of qualified reference expressions. It is possible now to refer to catch(expr).error.

The state library and depending libraries have been extended to enable the usage of their functions in dynaml expressions generating intermediate (non-static) structural elements for the final document.

The project now uses go modules instead of godep and tool dependencies for the peg parser generator. It uses go generate to generate the parser now.

v1.6.1

09 Apr 08:32
Compare
Choose a tag to compare

Various fixes

  • fix error propagation for ||
  • error messages for http(s) access
  • cert lib fix
  • use crypto lib for wireguard keys

Features:

  • map{} on lists
  • multi document write mode
  • merge option --evaluate to evaluate expression
  • more validation operators for comparison of numbers and strings
  • state lib now supports adaption of stub path for state access

v1.6.0

04 Apr 14:35
Compare
Choose a tag to compare

Dynaml Features

  • access to value bindings (___)
  • public key extraction from certificate
  • wireguard key support
  • merging root nodes
  • function contains_ip
  • function check to check yaml struction like validate but without error

Options and Commands

  • option --define to declare bindings on the command line
  • option --bindings to pass value bindings from file
  • command convert to convert yaml/json to json/yaml

Go API

some more spiffing utility functions

The Virtual Release

02 Oct 09:39
Compare
Choose a tag to compare

The main feature of this release is to base all file system related functions of the dynaml templating engine on a virtual file system instead of the OS file system. Together with the new golang library view for spiff it is possible now to use spiff templating as part of any go program with complete control over the file system functions of the templating engine. The file system visible to the templating engine can be composed using parts of the OS filesystem or any kind of simulated file system content by using a memory based implementation for the virtual filesystem.

More information about the virtual file system can be found in project mandelsoft/vfs.

The library frontend of the templating engine supports:

  • state handling
  • value injection for simple templating
  • injection of additional dynaml functions
  • cascading with out without additional values
  • orchestratable file system view for file system related dynaml functions

Additionally the templating engine is able to work with float arithmetic, also.

v1.5.0

23 Jul 08:42
Compare
Choose a tag to compare

New functions:

  • mkdir create a directory and all its intermediate ones
  • basename
  • dirname
  • parseutl to map an URL string to a map of formal URL fields

New features:

  • support generation of PKIX format (PEM type PUBLIC KEY) for RSA public keys (default is still PKCS1 as PEM type RSA PUBLIC KEY) (required by Kubernetes).
  • Escaping for spiff special keywords like <<! and `((! ))``
  • sum now support nil (~) as initial value, which is returned for an empty aggregation
  • Library mode now supports pre-validation of template
  • Library mode now support disabling of OS related functions (like writeand read)
  • Options --preserve-temporary and --preserve-escapes to control the cleanup processing of the final document

Fixes:

  • fix output of unicode characters in \u notation

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