Skip to content

Releases: OpenAF/openaf

20211229

29 Dec 17:26
38f209b
Compare
Choose a tag to compare

Potential breaking change: H2 version doesn't support old versions (use ojob.io/h2/export, ojob.io/h2/import and ojob.io/h2/onlineMigration for H2 db mitigation or ojob.io/oaf/mvs/import & ojob.io/oaf/mvs/export for H2 MVS mitigation)

Generic

  • improvements on printTable and printMap
  • $from: new cartesian and filter functions
  • $rest: keeping request headers in upload (#305)
  • isDef now correctly checks if it's a Java object
  • improvements on Windows old command prompt UI detection
  • new log formats supporting json and OpenAF's slon
  • includeOPack will just add to the local opack db if include opack is a local folder (#312)
  • improvements on isJavaObject to avoid stack overflows
  • new $atomic .set and .setIf (#315)
  • improvements on oPromise/$do (#316)
  • sigil: new toNumber, toString, toBoolean, toArray, toDate and toMap conversion helpers
  • initial support for Java 17
  • small startup performance improvements
  • oJobRunFile bug correction (#307)
  • Java libraries updates (#300, #301, #317

oJob

  • new language support for "sh"
  • new jobs.typesArgs.url
  • new todo.when supporting global states changed with ow.oJob.setState
  • new help main entry with support for mandatory args and improved -jobhelp
  • new active metrics (ojob.metrics.active) for nAttrMon and Prometheus
  • new getMetric and setMetric functions
  • new ojob.integrity for integrity check on includes
  • new ojob.check for input and output arguments sigil-based checks and conversions (#318)
  • job.exec now overrides job.execRequire
  • improvements on async/sequential modes, job "res" return and include functionality

ow.format

  • withSideLine themes and function
  • new sshProgress support
  • toDate new timezone argument
  • withMD support for headings and tables

ow.ch

  • new prometheus type
  • Elasticsearch: getSet improvement and exception handling (#304); improved support for ElasticSearch 7.x; new seeAll option; new stamp option (#314)
  • revision on several types to ensure key entries sorting when desirable
  • waitForJobs improvements based on (#316)
  • small bug corrections

ow.obj

  • http: support for replacing existing headers like the user agent header

ow.server

  • telemetry: new send2nAttrMon and send2Prometheus

ow.sec

  • new support for secret files
  • new special bucket "system" with environment variables based entries

ow.metrics

  • More stats on $rest calls
  • New log functions metrics
  • New java related metrics
  • fromObj2OpenMetrics improvements
  • New fromOpenMetrics2Array
  • Bug correction for $cache metrics

ow.java

  • new getSystemProperties, getClassPath, getInputArguments and getLibraryPath

ow.python

  • pid file is now placed on user's home
  • try to fallback to python3 if python is not found

SSH

  • sftpPut now correctly identifies between a string or a java stream in some situations

CSV

  • improvements on stream format functions

20210721

21 Jul 03:14
3065942
Compare
Choose a tag to compare

Potential breaking changes on: ow.server.jwt

Generic

  • Help is now offline by default
  • Improvements to Windows ANSI handling (you might need to run --install to update startup scripts) #266
  • new _i$ alternative to _$ that will interactive ask for input if not defined
  • new $f and $ft wrappers around Java's Formatter
  • new $lock wrapper around Java's Reentrant Locks
  • new $flock wrapper around Java's file locking functionality
  • new md2, sha384, hmacSHA384 and hmacSHA512 bug fixed
  • ansiLength and ansiColor now support 8-bit color
  • compare was improved
  • plugin now supports different Java plugin classes on the same plugin oPack
  • load improvements when errors are found or files are not found
  • $rest improvements to avoid rare issues with the preAction option
  • oPromise/$do small improvements
  • Third-party libraries updates (including #275, #284, #286 )

Console

  • Slight look&feel change: errors and help now have a colored side line in ANSI terminals; error info was also improved
  • In Windows will output warning if started without UTF-8 encoding set

oJob

  • Improved args handling under-the-woods
  • Support for oJob map hash check integrity (by file or oPack) and/or JWT signature map validation
  • You can now customizer the ojob.daemonFunc when daemon is set to true
  • More languages small improvements
  • execRequire forcely uses "oaf" language
  • new ojob map code section so execRequire can have embedded code in the same file (useful for distribution scenarios)
  • Added a ojobio alias

DB

  • After establishing a connection it tries to set auto commit always to false
  • Rollback will ignore errors (controllable by an argument flag)
  • Connection user and password are only set if defined (to support JDBC drivers that don't use user/pass)
  • New getAutoCommit and setAutoCommit for better direct control of auto commit connection flag

ow.format

  • Wordwrap improvements and new "side line" formatting
  • Very basic markdown support for console
  • streamSHPrefix now has a template option
  • xls.getStyle now ensures correct fill pattern if not specified
  • xls.getColor now supports also color number indexes

ow.obj

  • New sign, isSigned and signVerify functionality to sign map objects with a JWT
  • flatMap now accepts a separator argument
  • new reorderArrayMap to reorder keys of each map of an array of maps

ow.ch

  • Big improvements on getHousekeepSubscriber to handle heavy concurrency situations
  • Improvements on the "all" channel type (e.g. including custom functions for handling available keys and values)
  • Improvements on the destroy method of "buffer" channel type
  • The "file" channel type now supports using the new $flock
  • waitForJobs returns immediately if no jobs are set

ow.server

  • jwt was reimplemented. to use the jjwt library See odoc help to understand changes to arguments although functionality is pretty similar.

ow.net

  • New getSSLPublicCertificates to retrieve public certificates from a HTTPS connection
  • getPublicIP now has an alternative implementation and enables checking on other IP addresses too.

ow.template

  • Improvements to OpenAF helper functions and added new ones

ow.ai

  • New regression with functionality for calculating linear, power, exponential, logarithmic and polynomial regressions over a set of values
  • New valuesArray with functionality for calculating deviation, variance and movingAverage over a set of values

SNMP plugin

  • Update to libraries
  • Fix engineId #267

20210515

16 May 03:55
80717bb
Compare
Choose a tag to compare

Generic

  • Small improvements on merge
  • Main openaf_profile is now compiled if possible to improve startup
  • Improvements on JSON and YAML generation that can be controlled with __JSONformat and __YAMLformat
  • Updated libs jackson-core, postgresql, js-yaml
  • Update to handlebars (security issue GHSA-f2jv-r9rf-7988)

AF

  • The function af.fromXML2Obj now can have an optional prefix for XML attributes

oJob

  • OJOB_AUTHORIZEDDOMAINS is now a global array so it can be set on profile also
  • Small improvements on lang support
  • Small improvements on using ansi output
  • Supports safe or unsafe tags in YAML

oPack

  • Preliminary support for per-user extra opack db allowing to install opacks on user space

ow.format

  • New functions: getUserHome, getOSArch and getOSVersion
  • Included shortcuts for: toBase64, fromBase64, md5, sha1, sha256, sha512, toBoolean, now, nowUTC, nowNano, hmacSHA256 and hmacSHA512

ow.ch

  • New parameter to channel elasticsearch to include id calculation function

ow.obj

  • New flatMap function

ow.java

  • New cipher functions: saveKey2String, saveKey2Stream, readKey4String and readKey4Stream

ow.net

  • New oWrap to include network related functions from ow.format and ow.java

ow.metrics

  • Added metrics for architecture, openaf distribution and OS version
  • Collecting OpenAF channel now also includes date object as key
  • Improvements on stopCollecting

20210412

13 Apr 09:46
e9c81c7
Compare
Choose a tag to compare

This is maintenance release from 20210412.

The main updates are:

  • Solved security dependency update (GHSA-26vr-8j45-3r4w)
  • Corresponding update on external libraries and small code changes to adapt where needed

20210404

04 Apr 21:42
dcfd016
Compare
Choose a tag to compare

General

  • Total replacemente of the old jlinq with nlinq
  • Small bug corrections and performance improvements
  • Fixing help search
  • JSON output on log functions
  • New "merge" implementation
  • Support for inline $ssh.key and $ssh.prefix
  • Default DNS TTL resolution set to 60s.
  • Undefined or void 0 can now also be alias with "__"
  • New functions: uniqArray, $get, $set, $sec.list, $job, toBoolean, askDef, syncFn, objOrStr

oJob

  • Shell improvements (e.g. langFn, withFile)
  • Per job definition "file" entry
  • Built-in support for langs "ssh", "winssh", "go", "ruby" and "perl"
  • Shell prefix support for langs "ssh"/"winssh"
  • Output support for jsmap, slon and prettyjson
  • Control log channel history size (automatic housekeeping)
  • oJob.execRequire setting for automatic external code (require) assignment
  • Improvements to oJobRunJob
  • On error args are no longer logged, by default (can be turned on with ojob.logArgs)

ow.format

  • Adapting for plugin-XLS
  • Correction on applying XLS auto-filter
  • New functions: toSLON, fromBytesAbbreviation and getTLSCertificates

ow.obj

  • flatten: improvements and avoiding duplicates
  • fromObj2Array: improvements
  • http upload support

ow.ch

  • "File" type compact option
  • Lock improvements

ow.server

  • rest.reply: option to return HTML
  • JWT decode support
  • OAuth support

ow.template

  • Generate markdown table

ow.metrics

  • Ensure that OpenMetrics output keys don't have spaces

SNMP

  • Update SNMP4J lib
  • SNMP Server improvements

Email

  • Login corrections

20201111

12 Nov 01:53
16444b2
Compare
Choose a tag to compare

Generic

  • Min JVM version moved from 1.7 to 8
  • Update libs to latest JVM 8 versions
  • Update Mozilla Rhino engine to 1.7.13
  • YAML: support for multidoc
  • XLS/DOC plugin were moved to their own separate opack
  • sh/$sh support for environment variables
  • new ask, ask1, askEncrypt and askN functions for user input (using the internal Console plugin)
  • printMap/printTable now default to ansi if available
  • new loadPy function supporting python files and python string code
  • improvements to $openaf
  • if the openaf.jar.orig is not available and a repack operation requires it, it will try to download it directly, if possible

Console:

  • Support for multi line entries

oJob:

  • Support for job typeArgs.lock for ensure locking for each job execute instance and across jobs
  • Support for shell and custom shell job execution
  • Improvements to subOJobs
  • New jobsInclude main entry to load jobs without the todos from any ojob definition
  • Support to load ojob definitions from complete URLs (as long as the domain is in the authorised list)

oPack:

  • Small restyle for list and info command-line verbs

ow.sec:

  • New OpenWrap to handle secure secret buckets to be used in keeping passwords, usernames, etc... including creating the corresponding objects (e.g. DB, SSH, ow.obj.pool.SSH, ...) directly.

ow.ch:

  • Improvements on elasticsearch

ow.java:

  • cipher: adding symetric keys support

ow.python:

  • adding python function "_d" as a shortcut for dumping a dictionary
  • support for python in Windows
  • environment variable OAF_PYTHON forces the python interpreter to use

20200819

19 Aug 07:19
Compare
Choose a tag to compare

Generic

  • New $bottleneck function to build function bottleneck on propose to control function access
  • Improvements on $cache default values
  • Improved support for Java 11
  • Another new function to facilitate running oJobs: oJob.
  • The processExpr now supports different string sources other than __expr
  • oDoc performance improvements
  • Small improvements on library loading and $doA2B (including an errorFunction option)
  • New "openInBrowser", "arrayContains" function
  • Generate an update script to facilitate updating openaf
  • New $py, $pyStart and $pyStop helper functions
  • af.sh/sh/$sh dontWait new option
  • Potential resource leakage corrections and other small improvements

oJob

  • Support for ojob.io
  • New options to support ow.metrics
  • ow.oJob.output support for CSV
  • Improvements on arguments command-line parsing and job deps
  • Corrections on job type "jobs"
  • 'each' option includes arguments on 'catch' method
  • Support for python exec jobs (typeArgs.lang)
  • New job typeArgs options: execJs, execRequire and execPy

Console

  • Improved auto-complete
  • Input trim for spaces
  • New "ojob" default alias
  • Small "desc" command improvements

ow.metrics

  • New module for automated metrics gathering
  • Options to select specific metrics for active queries.
  • "fromObj2OpenMetrics" to convert a map to open metrics strings

ow.obj

  • New functions to facilitate data generation: oneOf, oneOfFn, randomRange and randomDateRange

ow.format

  • New functions to render strings in grids (string.renderLines & string.grid)
  • New function testHost

ow.server

  • New ow.server.telemetry functions to help integrate passive or active ow.metrics
  • New ow.server.socket functionality
  • New httpd.replyFn to wrap a POST request for an instance function

ow.ch

  • Improvements to avoid thread locking in type big
  • Improvements on type all
  • MVS channel pagination support

ow.java

  • Support for memory mapped files (ow.java.memComm and ow.java.jsonMemComm)

ow.python

  • New module for python support using python 2 or 3 without any libraries other than standard
  • Support for python server process

IO

  • New io.onDirEvent callback function

HTTPServer

  • Improved error handling

ZIP

  • Stream functions lazy close

Future features in testing

  • Auto-update lock

20200524

24 May 04:52
Compare
Choose a tag to compare

Generic

  • new oaf/oafc scripts
  • adding $rest.head
  • af.jsonParse using the correct GSON lib method
  • update to httpclient and jna libs
  • shebang improvements
  • new yprint method

Console

  • option for automatic update
  • exit actions

IO

  • Specific io.readFileJSON and io.writeFileJSON

oJob

  • added getJob function
  • enable download via http/s with authorized domains
  • improvements to include section
  • adding ojob.cronInLocalTime
  • job.each option
  • correcting previous accidental breaking change on global
  • default ojobhelp set to "help" job
  • new oJob.output function

ow.obj

  • ow.obj.schemaGenerator: adding description and extra detections
  • new useTransaction option on AF pool

ow.ch

  • improved getAll and other references
  • new type "all"

ow.format

  • added isIPv4, isIPv6, isEmail, isURL and isHost

ow.server

  • solved documentRoot bug in ow.server.httpd.reply
  • forcing cron expr UTC and option for localTime
  • support for websockets server

ow.template

  • new html.inlineImageTag, html.inlineSrc, html.genStaticVersion*, inlineSrcURL
  • adding options to showdownjs lib

HTTPServer

  • Websocket server options

XLS

  • adding xls.getSheetNames()

20200329

29 Mar 23:46
8dd525d
Compare
Choose a tag to compare

General

  • Support for precompiled opack libs for faster startup times
  • Adding loadCompiled, af.runFromExternalClass, $throwIfUnDef, object.values, oJobRunFileAsync
  • Added $sh.prefix option
  • Added encoding option for ioStreamReadLines and sh
  • Update to libs: js-yaml, gson, ajv, handlebars
  • Improvement on ow.format loading speed
  • Improved support for Java >= 12
  • Automatic update tries to download an already repacked binary to avoid repacking
  • Better support for moving the openaf folder with opacks ("--install" will repair the opack db)
  • Documentation updates

Console

  • Repaired the "phantom" cyan color that appeared in some outputs

oJob

  • Slight performance improvements and bug corrections
  • add2Todo function
  • Individual job catch function
  • Job deps can be a single string now

ow.format

  • Added ow.format.escapeHTML4, ow.format.unescapeHTML4, ow.format.int2IP and ow.format.IP2Int

ow.obj

  • Added ow.obj.schemaGenerator, ow.obj.fromObj2DBTableCreate

ow.ch

  • ElasticSearch improvements & corrections
  • Old db implementation renamed to dbold
  • New db implementation

ow.server

  • Each route function now also provides the httpd server object as a parameter

ow.java

  • New IMAP functionality
  • Support for different cipher algorithms in ow.java.cipher

ow.template

  • Added quick html snippets to add to markdown (ow.template.html)

XLS

  • Corrected bug #162

DOC

  • Added default headings, addNumbering and writeTable

20200202

03 Feb 03:47
Compare
Choose a tag to compare

General:

  • $cache: reuse of previously created objects enabling multiple calls
  • ioStreamReadLines bug #161
  • getFromZip: option not to use memory
  • nwu is now included and changed to use the openaf's class loader
  • performance improvements over ansi printing on all platforms
  • added $atomic, $retry, $await and $doA2B
  • SVN plugin removal (replaced by plugin-SVN opack)
  • small performance improvements on openaf's class loader

oJob:

  • console logs small redesign and pid is now included on start, end and error job logs

Console:

  • correction of pause calculations for certain screen size cases

ow.format:

  • adding xls.setTable
  • adding getDoH, getReverseDoH

ow.obj

  • adding socket functionality
  • http: support for OPTIONS verb and optional cookies store access and context access (redirects tracking)
  • httpd: generic reply method with content auto-detection

ow.java

  • adding dns utilities (dns over https, reverse dns, etc...)
  • adding sign, verify and genCert (SSL self-signed)
  • adding maven getLicenseByVersion

ow.server

  • adding JWT (Json Web Tokens) basic support

XLS:

  • improvements on determining cell types