Skip to content

Releases: OpenAF/openaf

20250315

15 Mar 17:38
6861932
Compare
Choose a tag to compare

BREAKING CHANGES

  • continue deprecating use with JRE 8; the main engine and functionality is now only JRE >= 21 compatible

Generic

  • Due to changes for JRE 21 on pre-compiled classes added compilation logic to check version and recompile if necessary automatically.
  • Fix script generation logic to handle parameter shifting and improve help display conditions
  • $path new functions: to_numSpace, from_numSpace
  • $path better handling of date conversion using Java (to_isoDate and to_date)
  • New "--py" option and "pyoaf" script to run Python scripts with OpenAF extensions
  • "ojob -syntax" besides including new oJob functionality has been increased in contents
  • New "ojob -i" for ojob assisted argument prompt.
  • New $pyExec function to start a Python script in "standalone" mode (as the main process but still connected to OpenAF)
  • New logFlush function to ensure when logging is asynchronous it's flushed.
  • Improvements on askChoose and askChooseMultiple functions to improve console output formatting and enhance line length handling
  • Fix double type handling in map output visualization
  • Increase support for oJob* functions to return results to code when using ow.oJob.output or $o
  • Improvements to SLON and nLinq language parsing.
  • Enhance SQL to NLinq conversion by adding missing support for NOT LIKE condition.
  • Bump nLinq with new attachBy, attachNotBy, and attachByEmpty.
  • Several security and performance improvements to the internal nwu (http server) functionality
  • Fix fo #1255
  • Improvements on shell completion generation performance.
  • Enhance printTree function to support mono and color options in output formatting (new output modes "btree" and "mtree")
  • Enhancements on printTable with focus on value type formatting.
  • Optimizations on URLClassLoader management with better loader caching
  • Upgraded to Mozilla Rhino 1.8.0

Libs bump

  • commons-io, commons-codec, commons-csv, commons-codec, commons-logging, gson, postgresql, Jackson, kotlin, kotlin-stdlib, jetty, jna, semver4j, okio, jsch, dns-java, snmp4j, snmp4j-agent, slf4j

AF

  • Function af.fromObj2XML now supports attribute prefixes when converting a JSON object to XML
  • New setInteractiveTerminal and unsetInteractiveTerminal functions to manage unix tty settings
  • Several improvements to fromJSSLON including YAML detection and parsing
  • Add handling for raw string input in fromJSSLON function in openaf.js ("$raw$")
  • Fix regex pattern in toYAML function to ensure proper key matching

oPack

  • Added support for multiple packages install, update and erase
  • Better install, update and erase operation summaries
  • New dependency ordering algorithm for installing, updating and erasing packages
  • Enhance to preinstall, postinstall, preerase, and posterase to accept arrays of shell commands with new environment variables (OAF_PATH, JAVA_HOME, OAF_HOME, OAF_VERSION, OAF_DIST and OJOB_HOME)
  • For preinstall, postinstall, preerase, and posterase javascript text based code the variables OAF_PATH, JAVA_HOME, OAF_HOME, OAF_VERSION, OAF_DIST and OJOB_HOME available on the args map.
  • Improved error handling on pre and post code actions.
  • New OAF_OPACKS environment variable (comma separated) with file paths or URLs to remote oPack repositories.

ow.oJob

  • Improvements to Go "lang" jobs
  • Small improvements on embedded shortcut jobs
  • #1225

ow.format

  • New toNumberSpacing and _fromNumberSpacing functions
  • New fromISODate function
  • Improvements to the fromTimeAbbreviation function

ow.obj

  • New ow.obj.syncMap.forEach for thread-safe forEach

ow.server

  • Improved MIME type handling and add support for additional file extensions
  • Improve error messages in ow.server.httpd.route
  • Improve Mermaid library loading logic to check for file existence before loading

ow.template

  • Added markdown code block copy button functionality (feature flag MD_CODECLIP)
  • Added support for trigger extras in Markdown to HTML conversion
  • Refactor helper and partial management to utilize syncMap for improved performance and consistency
  • Added support for forced or automated dark mode on HTML output (flag MD_DARKMODE ("auto", "true" and "false"))
  • Dark mode support on nJSMap
  • Better UTF-8 support on markdown HTML generation.
  • Refactor nJSMap function to handle nested arrays and improve output rendering.

ow.python

  • New alone mode letting you start a Python script, as the main process, and embedding OpenAF code on it
  • New functions execStandalone

ow.java

  • The getLocalJavaPIDs now allows specifying where is the temporary folder

ow.ai

  • Support for Google Gemini LLMs
  • Support for Anthropic LLMs

ow.metrics

  • Improvements on timestamp handling on fromOpenMetrics2Array

HTTPServer

  • Enhance error logging in JSResponse to include stack trace and exception class
  • New thread handling in nwu with flag HTTPD_THREADS
  • Enhance data handling in JSResponse to support multiple data types and improve error logging

SNMP

  • Enhance SNMP class to manage transport mapping and add close method for resource cleanup

20241117

17 Nov 08:34
2cfe58a
Compare
Choose a tag to compare

BREAKING CHANGES

  • deprecating use with JRE 8; some functionality will still work in JRE8 but recommended to use JRE 21
  • ask functions now use stderr*

Generic

  • Support for bash and zsh completion (oaf, opack, ojob and oafp)
  • load now supports providing the indication of the oPack to use (e.g. @my-opack/my.js)
  • merge function updated to improve performance when handling undefined objects
  • performance improvements on pForEach
  • getEnvsDef now parses SLON as well as JSON
  • askChoose improvements to support different terminals
  • console type detection improvements
  • new $fetch to mimic missing fetch with $rest functionality
  • $path new functions: if, at, random, srandom

Flags

  • OAF_FLAGS allows for a JSON/SLON map to change flags values

Libs bumps

  • commons-cli
  • commons-compress
  • commons-civ
  • commons-io
  • commons-logging
  • commons-lang3
  • dnsjava
  • jackson
  • kotlin
  • postgresql
  • jetty upgrade to 12
  • jna
  • jsch
  • okio
  • semver4j

AF

  • Improvements to fromJSSLON format detection
  • Support for colored YAML in toYAML

IO

  • new io.zip and io.unzip
  • Support lenient in readStreamJSON

ZIP

  • Add support for concurrent file system access in ZIP plugin

ow.ojob

  • Support 'cyaml' output format

ow.obj

  • http: support options.followSslRedirects and options.followRedirects

ow.sec

  • new $sec.procMap to process options from a map

ow.server

  • improvements to replyFile

ow.net

  • new getIP2ASNCache and getIP2ASN functions
  • getDNS with new extended data option

ow.ai

  • gpt: initial support for tools
  • gpt: support for custom headers in openai API wrapper

20240812

12 Aug 01:12
0c6affc
Compare
Choose a tag to compare

Generic

  • New Rhino javascript runtime (1.7.15)
  • Added functions to programmatically access oafp functionality
  • new $path functions: to_toml, from_toml, range, ranges, inc, dec, unset, getc, search_keys, search_values, k2a, geta, sql_format, sort_semver, sort_by_semver, progress, ch, path, opath, to_ms, env, envs, oafp
  • New OAF_CONSOLE boolean environment variable to force ansi color rendering in capable terminals (for example when using oafp with pipes)
  • New askChooseMultiple and improvements to askChoose with new color format theme options
  • New pForEach function for parallel forEach equivalent.
  • New askStruct function to make a questionnaire based on a provided map over using other “ask*” functions.
  • New filter capability for askChoose and askChooseMultiple
  • New byPopularity behaviour for $cache when maxSize is defined
  • For non javascript, json and yaml extensions the ‘—sb’ option will generate a oafp shebang addition
  • Support for oafp shebang as oafp-sb
  • Fixes and performance improvements on printTable
  • Improvements to parallel automatic load balancing
  • Performances improvements in printTree

Flags

  • New SH.prefixLog flag to control if $sh().prefix should use, by default, log or print functions
  • New HTTP_DEFAULT_HEADERS flag to control if default headers (e.g. Accept) should be included.
  • New HTTP_USE_MEDIA_TYPE flag to control the use of OkHttp media type functionality.
  • isJavaArray function to better determine if the Java object provided is an array
  • New PATH_CNF flag to allow for the inclusion of custom $path functions
  • New ALTERNATIVES.listFilesRecursive feature flag to use the new listFilesRecursive implementation
  • New ALTERNATIVES.colorify feature flag to use the new colorify implementation

Libs bumps

  • Commons-Cli, Commons-Codec, Commons-Compress, Commons-CSV, Commons-Logging, Commons-IO, Commons-Net
  • GSON
  • Jetty
  • Jackson
  • JSCH
  • JJWT
  • Kotlin
  • H2
  • PostgreSQL
  • SNMP4J
  • DNSJava
  • SLF4J

oJob

IO

  • Performance improvements and new mode, permissions and linkName fields to io.listFilesTAR

SSH

  • New getSession, isConnected and sendKeepAlive functions

ow.format

  • New sqlFormat to beautify SQL statements for different databases
  • “string.wordWrap” improvements
  • New semVer for semantic versioning handling

ow.obj

  • Improvements to rest functions character enconding
  • New syncMap for synchronized javascript Map functionality
  • New key2array to return the values of filtered keys
  • Fix #1017

ow.ch

  • Small improvements to server
  • New option multifile for type file

ow.ai

  • GPT getModels
  • Improvements on normalize.withSchema
  • New normalize.denormalizeWithSchema to denormalize previously normalized data given a schema
  • New gpt.promptImgGen function to support image generation transformation models
  • New normalize.softMax and normalize.quantitize
  • Improvements to GPT external models API requests
  • Support for brainjs with new network types: neuralnetwork, rnntimestep, lstmtimestep, grutimestep, rnn, lstm, gru, feedforward and recurrent

ow.java

  • cipher.getCert4String function to obtain a Java certificate object from a string certificate representation (X509)
  • parseHSPerf improved to be able to read dumps right after shutdown of the original java process
  • withMD as new color theme options for better customization (specially for light and dark terminals)

ow.template

  • new helper function oafp

20240318

18 Mar 22:03
36aaef2
Compare
Choose a tag to compare

Generic

  • New oafp tool (from https://openaf.io/openaf/oafp)
  • Refactor "merge" to better handle arrays and maps
  • Improvements on ask and askChoose
  • $path: several new custom functions
  • Fix SQL query method auto determination when functions are used
  • $sql improved to have a configurable sample of records for column type detection
  • Fixes to oJobRunFile and $job
  • #913
  • #920
  • new conReset function
  • Refactor and fixes to af.fromXML2Obj
  • Refactor of sortMapKeys to handle nested maps and arrays
  • Fix ansi colors and performance improvements on printTree
  • Fixes and improvements on $o/$output
  • Fix ignoreNonJson option on the jsonParse function
  • Improvements to the isJavaObject function
  • Improvement on print buffer stream size
  • Remove logback library
  • Refactor $$ get and set functions
  • Stringify corrected to handle null elements on arrays
  • New "splitBySepWithEnc" function
  • New af.fromJSSLON function
  • Improvements to printChart function to support dec4, hSize and vSize
  • Improvements on splitKVBySeperator
  • Bump libraries: jackson, slf4j, jsch, jjwt, commons-codec, okio, jetty, postgresql, commons-compress, diff, kotlin and others
  • Improvements to color render for printMap
  • Support for oafp opack libraries extensions
  • printBars support for custom space characters
  • genscript (--install) now checks for Java runtime module support
  • new OAF_LEVEL environment variable to influence the Rhino compile level (default is 9)
  • Adding Open wrapper oBook (promoted from ow.dev)
  • Add the javascript chart.js library

oJob

  • Corrected missing parallel shortcuts args and considering only defined args in shortcut definitions
  • Fix job sec get secEnv boolean parsing
  • job.check._in and job.check._out for checks above the from/to scope
  • Improvements on listing global jobs
  • Refactor stdout handling
  • Fix console initialisation
  • New ojob ask included job

oPack

  • Install and erase operation now tries to remove old files

ow.format

  • New string.pauseString function
  • New string.tabExpand function
  • Add ANSI scroll up/down function
  • withMD function now removes HTML tags and script code adding horizontal line support
  • grid support for md and text types and corresponding word wrapping
  • Refactor progress bar to dynamically determine size

ow.obj

  • Fixes and improvements to fromArray2DB and fromObj2DBTableCreate
  • filterKeys was refactored for faster execution

ow.ch

  • Refactor of the 'simple' type for a much faster and lighter implementation

ow.sec

  • Support for SLON based bucket environment variable data

ow.java

  • New jcmd, pidSystemProperties and pidThreadDump functions
  • Added support for using the BouncyCastle opack when generating certificates with Java 21
  • Fix SSL certificate verification for custom domains to allow "insecure" like access in development situations

ow.ai

  • LLM json output parameter support
  • LLM support for custom like OpenAI APIs
  • GPT keep conversation functionality

ow.metrics

  • Fixed fromObj2OpenMetrics labels of map arrays
  • Fix on round method call

ow.test

  • Test functions can now receive a data argument

ow.template

  • Support UTF-9 in parseMD2HTML
  • Added OpenAF helper $pchart, $pbars and $pbar

CSV

  • Fix CSV parsing logic

JMX

  • Refactor to be also used with JRE setups

20231222

23 Dec 00:14
be94e9d
Compare
Choose a tag to compare

Breaking Changes: SNMP.trap changed it's signature to include time

Generic

  • traverse, merge and extend were refactored for performance (you can control the use of the new version with __flags.ALTERNATIVES)
  • new $output/$o function equivalent to the functionality provided by ow.oJob.output
  • the $sql method now defaults to automatic determination if it should use nlinq or H2 to achieve the desire result and supports multiple tables
  • printChart now supports "-min" and "-max" to specify the chart scale
  • performance improvements in printTree
  • jsonParse: improved ignoreNonJson detection
  • $llm/$gpt shortcut for ow.ai.gpt functionality
  • new option on getNumberOfCores to return the real number of cores independently of multiply factor applied
  • new $await.notifyAll
  • new askChoose function
  • removal of logback for security reasons
  • bump of jjwt, okhttp, commons-io, jsch, commons-cli, kotlin-stdlib, dnsjava, postgresql, commons-compress, commons-io, commons-lang3, Jackson-annotations, commons-logging, jna, slf4j-api, jQuery, +materialize2 and commons-email

oJob

  • better support for escaping double-quotes in args (requires regenerating the ojob script with oaf --install)
  • new typeArgs.eachThreads to establish the number of threads use with "each" jobs
  • new typeArgs.pwd for all langs except openaf, js, python and ssh

DB

  • better support for date and timestamp dates with changes across several functions

ZIP

  • new streamCreate and streamCreateFolder functions

SNMP

  • change to SNMP.trap to allow to specify the time parameter

ow.obj

  • fromObj2TableCreate better detection of boolean, number and timestamps

ow.format

  • bool shortcut for string.bool
  • string.grid improvements
  • withMD: better italic and bold support
  • new percentile function

ow.ai

  • new ow.ai.gpt to support Generate Propose Transformer models and Large Language Models (LLM)
  • support for LLM using APIs from Ollama and OpenAI

ow.metrics

  • improvement of performance in ow.metrics.fromObj2OpenMetrics

20231014

14 Oct 17:28
306224a
Compare
Choose a tag to compare

IMPORTANT: GIT plugin has been moved to an external plugin-git

Generic

  • Support for ojob shebang (detected by the extension of the provided file)
  • Bump libraries: h2, commons-lang3, handlebars, nLinq, jetty, commons-compress, commons-net, jackson, kotlin-stdlib, jjwt, jsch, okio, okio-jvm and kotlin-stdlib
  • #612
  • Added af.toCSLON and changed lprint* functions to optionally use it
  • Added ansiMove function
  • printTable word-wrap functionality
  • Improved table color settings
  • Thread pool factor is now, by default, 2
  • Sigil lib added $$.unset + support for “or” and dotted key strings.
  • clone function improved for arrays
  • Generated scripts improvements
  • “includeOPack” function will try to avoid interactive questions
  • Performance improvements on sortMapKeys
  • New object query method using simple SQL (af.fromSQL, af.fromSQL2NLinq and $sql)
  • New option on af.toYAML to “sanitize” an object that contains java objects
  • New option on af.fromObj2XML to “sanitize” an object that contains java objects
  • printTable support for banded rows for easier reading
  • Small performance improvements on printTree
  • New option on jsonParse to ignore non json prefixes and suffixes

oJob

  • New “-syntax” option to display all oJob yaml based entry combinations for reference
  • The included ojob jobs now also have shortcuts reference for each
  • New output options: stable, ctable
  • New output querying arg: __sql
  • #613
  • #653
  • Langs support for argsFn, returnRE, returnFn and pre & pos code to handle args
  • New langs support for node.
  • Improvements to oJob debug
  • Option to output the original markdown for “ojob print md”
  • Improvements to avoid duplicated shortcut/job
  • New include ojob shortcuts: “run”, “convert” and “debug”
  • “ojob query” now also supports SQL
  • New option to skip the load of jobs in loadJSON

ow.format

  • withMD: support dash separator, side line, code blocks, bullets, numbered lists, word wrap tables and links
  • New string.wordWrapArray
  • New side line themes: closedOneSpace, simpleOneSpace, doubleOneSpace, openCurvedSpace, blockCurvedSpace
  • New option for streamSHPrefix to allow handling of output after prefix printing

ow.obj

  • #624
  • Performance improvements on filterKeys

ow.template

  • Added OpenAF helpers: $pass, $sline, $startsWith, $endsWith, $match, $concat and $set
  • #638
  • Support for custom js libs for static html gen (with Mermaid in mind)

ow.server

  • https now reuses previous httpd objects by port
  • Improvements on httpd.replyData

ow.java

ow.test

  • Including assert stats

ow.ai

  • Added +convertBools option to normalize

20230704

04 Jul 21:30
842ad3d
Compare
Choose a tag to compare

Generic

  • new "-v" option to display the OpenAF version and distribution
  • improved color cache for ansiColor
  • bump on jetty, nlinq, jQuery, dnsjava, jjwt, kotlin, commons-csv, jackson, jna, commons-io, snmp4j, commons-cli, commons-compress, commons-lang3, ojdbc, okhttp, okio, postgresql, commons-codec
  • $path - added custom functions: count_by, unique, to_map, flat_map, delete, substring, groupBy, search_keys and search_values
  • new printChart, printBars, print, ansiLength function
  • new $t shortcut for templify
  • new getEnvsDef and improvements on getEnvs
  • $csv improvements to handle dates, maps and arrays
  • new $sh.getYaml
  • new force exit option
  • automated ocli update support
  • improvements on njsmap to display correctly missing properties on tables
  • improvements on exceptions handling on compileToClasses
  • new flags to control precompile level
  • changed colors and template for ask* functions
  • genUUID alternative implementation

AF

  • new fromSLON parser function
  • new fromNLinq parser function

IO

  • io.writeFileTARStream now adds the modified date
  • new flag to change the default buffer size used

oPack

  • indicates when an operation is done
  • small improvements on new line logs
  • ensure sorting of files in metadata package generation

ow.oJob

  • new color theme with console logs going to stderr now by default
  • new ojob shortcuts functionality
  • faster includeOJob that now happens by default
  • new options for nolog/ignoreNoLog specially for ojob shortcuts
  • new ojob.depsOnFail option
  • new ojob pass (handling nulls in args) and print md job (several improvements on existing included ojobs)
  • improvements to todo args passing
  • delayed the automatic oaf::global creation to allow to define the channel with a different type and options
  • several small improvements including for subjoins
  • support for templateArgs in individual oJob using typeArgs
  • output: new csv, key and html output
  • correction on inPM
  • support for changing OpenAF flags on startup
  • support multi map checks in jobs[].check
  • disabled new feature to test warnings for jobs changes and removal

ow.format

  • new string.dataLineChart, dataClean, lineChart, updateLine and bool
  • fromTimeAbbreviation now includes "w" (week)
  • added toBase32, fromBase32, toBase16, fromBase16 and hmacSHA1
  • improvements to string.grid including support for charts, area and bar
  • improved unicode syms
  • improve printWithWaiting to support suffixes
  • new toCSLON function

ow.server

  • support for external js libs like mermaid

ow.template

  • new acolor, toJSON, from, ptable, tree, cjson, cslon, pmap, jsmap, $t, data, isoDate, number, boolean, string, keys, values, __, alen, len, repeat, a2m, a4m, m2a, m4a and helper
  • parseMD2HTML now can have default and specific showdown options

ow.java

  • updates to oDoc
  • new getCCPU, getLinuxUptime and getLinuxCPUInfo functions
  • new getLatestversionString function

SSH

  • support ssh urls without passwords
  • bump jsch library

20230325

25 Mar 23:19
b705663
Compare
Choose a tag to compare

Generic

  • Improvements on the fnDef4Help
  • sigil: support java objects
  • updated libs: jetty, gson, Jackson, jsch, okhttp,
  • new OAF_HOME env variable

oJob

  • Setting ojob.includeOJob adds the embedded ojob.yaml from oJob-common that it's now include in this distro
  • new ojob.poolThreadFactor to enable better control on the number of threads used
  • new ojob.owraps to automatically load ow.load*
  • jobhelp improvements
  • support in printTable & printTree for background color
  • better support of args in from/to jobs
  • new output format 'cjson'

ow.format

  • string.wildcardRE to generate the regular expression that implements the wildcard filtering
  • new fromSIAbbreviaton function
  • correction of word-wrap in withSideLine

ow.debug

  • new types: tree, block and table

ow.sec

  • $sec.encSKey enables retrieving the encrypted version of a sbucket with the current main secret for the repo
  • fixing encryption or plain text secret files

ow.net

  • new functions sendUDPPacket and sendTCPPacket

ow.ch

  • ensure lock assignments are sync

ow.java

  • function cipher.getCert4File to retrieve a certificate object from a file

ow.template

  • added the $$ template helper
  • added $switch, $case and $default template helpers

ow.python

  • new _g (equivalent to $get) and _s functions (equivalent to $set)

20221216

16 Dec 04:17
c356044
Compare
Choose a tag to compare

Generic

  • New functions: splitKVBySeparator, nowE, nowNanoE
  • New flags: OJOB_SHAREARGS, HTTP_TIMEOUT, HTTP_CON_TIMEOUT
  • When generating scripts (install) adds the env variable OAF_JARGS to make it easier to pass JVM args like memory limits
  • oJobRunFile defaults for running with shareArgs disabled
  • $path extended to support function: ends_with
  • visibleLength improved to be faster and support a broader set of characters (e.g. including Asian)
  • Updated libs
  • Apache commons-text lib was removed
  • Fixed $csv.fromInFn not properly using setStreamFormat

oJob

  • Performance improvements on startup
  • oJob.output support for types: res, args, ndjson, xml, map and set_ (which uses $set)
  • oJob.output now supports arg __path to filter results
  • Fixed previewFile to better handle includes
  • Fixes on ojob.
  • Better support, on jobs.check, for using references to global variables
  • Supports integrity check using ow.java.checkDigest

oPack

  • List sorting ignoring case

IO

  • writeFileGzipStream now supports appending

ow.format

  • New functions: wildcardTest
  • Improvements on string.closest

ow.obj

  • signVerify now supports ow.java.checkDigest
  • ow.obj.filter now supports both $from and $path

ow.template

  • Fixed OpenAFHelper get

ow.net

  • New functions: ipv4SubNetInfo, getAddressInfo, ipv4SubNetInRange

ow.metrics

  • fromObj2OpenMetrics now avoids using “_” as the first char in a label

ow.java

  • New functions: getDigestAlgs, digestAsHex and checkDigest
  • Improvements on getJarVersion

ow.dev

  • obook: fixed support for mac keyboards

20220822

22 Aug 02:37
8fa3499
Compare
Choose a tag to compare

Breaking changes

  • ow.template: built-in helpers now use “$” as a prefix
  • okhttp makes all headers low-case

Generic

  • HTTP libs moved from Apache HTTPComponents to OKHTTP
  • range function (equivalent to python)
  • Improvements on core code isolation
  • “-c” option with better code separation
  • Installation scripts try to determine where they are installed
  • Improvements to includeOPack
  • load/require: several improvements
  • $doA2B improvements
  • isJavaClass: to determine if value is a Java class
  • $$ .getI: same as $$.get but case-insensitive
  • nowTZ: same as now but adjusted to local time one
  • $a4m: builds a map of maps from an array of maps (shortcut to ow.obj.fromArray2Obj)
  • $m4a: builds an array of maps from a map of maps (shortcut to ow.obj.fromObj2Array)
  • Sigil: corrected greater and greaterEquals
  • $ch now supports not including the “compress” legacy first argument
  • newFn: creates a new function supporting ow.debug
  • printTree: new function to represent maps and arrays
  • $csv: new shortcut to encapsulate CSV handling
  • If a password starts with “$raw$” no check if it’s encrypted will be performed.
  • Included nLinq for browser support
  • All configuration files written are fallback to the current tmp directory if it’s not possible to write on the user home directory

Console

  • Better handling of java exceptions
  • Better handling of byte arrays
  • Better handling of nulls
  • Support for printTree faster representation by default (tree off to disable it)

oJob

  • oJobRunJob correctly inherits ojob settings
  • Supports template OpenAF, Format and Conditional helpers and “_state” helper (controlled by typeArgs.noTemplateArgs)
  • jobsInclude will now not include any existing help legacy jobs
  • Fixed handling of from/to and checks with different langs
  • Support for JSON log (when OJOB_JSONLOG env variable is set to true or ojob.logOjob = true)
  • Supports running local oJobs stored in __flags.OJOB_LOCALPATH directly (“-global” will list these oJobs)
  • “-which” new option to determine from where an oJob will be executed (path)
  • When ojob.sequential = true each job execution return (stored in $get(“res”)) will be included in the receiving rags.

oPack

  • improvements on directory removal
  • when retrieving from oPack server with authentication will try to keep credentials with $sec
  • Repack improvements

AF

  • compile now uses better optimization and language settings
  • visibleLength: function to calculate aString visible length independently of string size (e.g. emoticons)
  • parse: parses javascript code to an array of javascript lines
  • Improvements on the handling of input in sh.
  • support to work with older gson libs

IO

  • readStreamJSON: reading a JSON file as a stream with a callback function to enable the parsing of large JSON files
  • readFileBytesRO: reads a file’s bytes enforcing read-only mode if the file is locked.
  • Several new functions to support TAR handling (https://docs.openaf.io/docs/guides/medium/reading-listing-writing-tar-files.html)
  • pipeLn: supports waiting for stdin and calling a callback function to handle lines
  • pipeCh: supports waiting for stdin and calling a callback function to handle characters
  • createTempDir: creates a temporary directory that will be deleted upon execution end (similar to createTempFile)

SSH

  • library upgraded to mwiede/jsch

SNMP

  • Supports for traps with decimal values (#379)
  • Better handling java objects

XML

  • fromNodes2XML: converts the result of XML.find* into a E4X object

ow.format

  • withSideLines: cosmetic improvements
  • elapsedTime4ms: improvements
  • getTmpDir: retrieves the system temporary directory
  • getUserName: retrieves the current perceive user name
  • string.chart: produces simple ascii based charts
  • fromTimeAbbreviation: reverts to ms time from elapsed time
  • New func type for string.grid
  • Support for abbreviations in time ago
  • Support for decimal values in fromBytesAbbreviation
  • streamHandle: helper function to be used as an $sh callback to provide similar functionality to Unix’s expect.

ow.ch

  • utils.getMirrorSubscriber: aFunc also provides the operation that triggers callback
  • utils.poolChanges: supports triggering subscribe on channels by pooling for value changes (for small channels that don’t support value change notification)
  • mvs: improvements
  • elasticsearch: supports timeout option
  • file: supports gzip and tmp (for temporary file usage) option
  • buffer: several improvements on time option

ow.obj

  • filter: allows to query arrays/maps with a map of options equivalent to $from

ow.server

  • passive telemetry now supports option for json or openmetrics output

ow.net

  • host4URL: given an URL will return host:port
  • path4URL: given an URL will return the URI
  • Include isIPv4, isIPv6, isURL and isHost
  • getDNS: retrieves DNS information using dnsjava lib
  • getCAStoredCertificates: get the current Java CA certificates
  • getJSSECAStoredCertificates: get the current Java JSSE CA certificates
  • getStoredCertificates: lists the certificates included in a file

ow.template

  • adding OpenAF helpers $get and $getObj
  • __flags.MD_NOMAXWIDTH controls if generated markdown should have a max width or not
  • md.fromTable: converts a markdown table into a javascript array
  • $dateDiff helper (from nAttrMon)

ow.metrics

  • improvements to fromObj2OpenMetrics
  • __flags.OPENMETRICS_LABEL_MAX restricts the maximum label length to the recommended 128 characters.
  • added metrics from cgroup memory usage when running on Linux containers
  • added metrics for hotspot VM performance
  • Solved currency issue that would trigger “Cannot find function map in object [object Object]”

ow.test

  • setKeepStackTrace to keep java exceptions on tests
  • test results can now be stored

ow.java

  • getCMemory: on Linux containers retrieves the current cgroup memory usage
  • getLocalJavaPIDs: retrieves the current local Java running process PIDs
  • parseHSPerf: for HotSpot based JVMs parses the performance data stored in the temporary folder
  • encodeCert: encodes a certificate into a base64 PEM representation
  • encodeKey: encodes a public or private key into a base64 PEM representation
  • decodeKey: decodes a key encoded with encodeKey
  • Ini: support for windows like “ini” files

ow.debug

  • adding debug comment based optional debug features

ow.dev

  • improvements on multi-line code support

Updated libs

  • H2
  • Jackson-*
  • Logback
  • Rhino
  • PostgreSQL
  • Jetty*
  • Showdown
  • FuseJS
  • JQuery
  • Lodash
  • Highlight
  • GSON
  • nLinq
  • Materialize

Other bugs & improvements