Releases: OpenAF/openaf
Releases · OpenAF/openaf
20251115
Generic
- Unix/Mac support for Java CDS with direct improvement on startup time (created on install)
- Bump chart.js library
- Bump to commons-cli, commons-codec, commons-compress, commons-csv, commons-io, commons-lang3, commons-net, gson, h2, jacksons-annotations, jackson-core, jackson-databind, jetty-client, jetty-compression-common, jetty-http, jetty-io, jetty-util, jetty-web socket-, jjwt-, jna-*, jsch, kotlin-stdlib, ojdbc, okhttp, okio and postgresql
- Support for Java 25
- Support for shared JSON RPC connections (for LLM MCP servers support)
- New global flag JSONRPC enabling setting the default STDIO mcp server working directory (when used with $mcp)
- New global flag YAML enabling setting default YAML formatting and KYAML setting
- Small improvements on ANSI color caching
- $path new custom functions: "oafpd", "to_kyaml", "from_kyaml", "to_base64", "from_base64", "to_xml", "from_xml"
- "pidKill" when force=true will now also try to kill children processes
- New "fromJava2JS" to generically provide Java object conversion to javascript object
- "sh" new option "exitCallback" that enables providing a callback function on "sh" process execution end with the corresponding exitcode (added also to $sh.exitcb)
- "$mcp"/"$jsonrpc" new options "debug" (enables stdout output of jsonrpc communication) and "shared" (that will reuse existing jsonrpc connections when the same parameters are provided)
- "$mcp" new type "ojob" that doesn't run the oJob MCP server as an external process but rather just runs the corresponding oJob's jobs (to reduce memory footprint and faster startup)
- "$mcp" now adds a default protocol version to support connecting to MCP servers that require it.
- New "$mcp.toGptTools" that will automatically add all MCP tools to a "$llm/$gpt" connection.
- "askChoose" / "askChooseMultiple" now support going back to the bottom when going up from the first entry and going back to the top when going down from the last entry; also support "esc-esc" to cancel a return undefined.
- New "$ssh.delTunnelLocal" and "$ssh.delTunnelRemote"
- Small improvements in "nwu" http server type
AF
- "af.getEnconding" improvements for performance and correctness
- "af.toYAML" coloring option improvements
- New "af.toKYAML" function
- "externalAddClasspath" improvements integrating with OpenAF's class loader
DB
- "usArray" now returns long numbers instead of integers and small internal improvements were made
- Small improvements to support libs bump
SNMP
- Small improvements to support libs bump
ow.format
- formatWithMD now supports also inline code and strikethrough
ow.java
- "ini" now returns data in the correct original order
ow.template
- Support for pos-markdown extra html snippets (e.g. to add javascript script tags)
- Small bug corrections on markdown code blocks clipboard copy functionality
- New global flag MD_CHART to include chartjs library
- New "$toKYAML" handlebars custom function
- Chart.js support was greatly improved
- New "parseHTML2MD" function
ow.metrics
- added OpenAF class loader metrics
ow.obj
- Support for new okhttp major version
ow.net
- "getActualTime" implementation was refactored to use NTP servers
- new "createIP2ASNIndex" to create a json.gz index file to be quickly loaded when needed using new "getIP2ASNIndex" and searched using "asnIndexIP2ASN" and "asnIndexASN2IP"
ow.server
- mcp servers now have a default mcp version field if not provided
ow.ai
- $llm/$gpt new "setDebugCh" to audit/debug all communication to and from a LLM
- New functions across LLM providers implementation to: getLastStats, getModelName, getEmbeddings (from LLM text embedding models)
- $llm/$gpt new functions: getType, getModelName, getEmbeddings, getEmbeddingsWithStats, getLastStats, rawPromptWithStats, jsonPromptWithStats, withMcpTools and promptWithStats
- Several individual improvements to each LLM provider implementation to reflect recent providers changes
ow.oJob
- job.lang = "javascript" defaults to OpenAF javascript
- shortcut addition internal was improved
oJob
- New global flag OJOB_ARGS_FROM_ENVS equivalent to ojob.argsFromEnvs
- New option "-f" that enables passing parameters in YAML, JSON or SLON (similar to oAFp's "-f")
oPack
- New "-i" additional option for "remove4db" that adds interactive choice of oPack db to remove (similar to ojob.io/opack/remove)
- Fixes #1523 (update to use original install path)
oAFp
- New flag to support input db auto commit
- New input "mcp" for LLM MCP servers
- New input "minia" to support https://github.com/openaf/mini-a
- New outputs "kyaml", "ckyaml", "lkyaml" and "clkyaml"
- New output "ndcslon"
- New output "rawascii"
- Small bug corrections
Full Changelog: v20250721...v20251115
20250725
Generic
- New 'nvl' function
- New '$err' error handling functionality
- New '$sync' function for synchronized execution of provided functions using ReentrantLock
- New '$doV' as an alternative '$do' supporting virtual threads
- New '$queue' thread-safe functionality
- Several improvements to 'listFilesRecursive'
- Improve support for Java 24
- Improve performance and readability of splitArray and pForEach functions
- Simplify ANSI handling in printTree function for improved readability
- Libraries bump: jetty, commons-csv, jna, jna-platform, kotlin-stdlib, snmp4j, gson, okio, commons-io, commons-collection4, postgresql, semver4j, Jackson, oracle jdbc, commons-lang3
- Fix date handling in $path
- Fixes #1386, #1286
AF
- New 'swap' function
IO
- Support for LZ4 files and compression/decompression
Threads
- Add support for virtual threads with initVirtualThreadPerTaskExecutor and addVirtualThread methods
HTTPd
- Support for configurable HTTPd server buffer size
- Add support for Java built-in HttpServer implementation ('java')
- Add a new default 'nwu2' implementation based on Java 21 and with better SSL support
ow.format
- Refactoring of the 'toBytesAbbreviation' function
ow.obj
- Enhance key handling in fromObj2DBTableCreate for case sensitivity
- New "at position" ow.obj.syncArray method signatures: add and addALL; new methods subList and isEmpty
- Update data type description from NUMBER to NUMERIC in fromObj2DBTableCreate function
oJob
- Improvements of shared arguments handling
- New 'reference' documentation option with options to render or output reference in raw format
- Update startLog call to include recordLogHistory in load function
- Refactor host and IP retrieval for improved clarity and error handling
oPack
- Update erase function to handle update scenarios
ow.server
- Browse oPacks template and functionality
- Improvements to browse files functionality
- New JSONRPC endpoint implementation
- New LLM MCP endpoint implementation
- Refactored HTTPd route algorithm
- Add HTTPD_CUSTOMURIS to manage custom URIs in HTTPD routing
- Improved daemon for better performance
ow.ch
- Added default value handling to $cache and $ch cache type
- Small improvements to the channel type 'db'
ow.template
- Added table sorting option for HTML output
- MD parsing correct meta tag structure and improve CSS styling for responsiveness
- New template handlers: 'nvl' and 'nl'
ow.ai
- LLM: Adjusted system instructions for various supported APIs
- LLM: Several update improvements to supported APIs
ow.java
- Added Java Flight Recorder control methods
ow.metrics
- Added flag to inform if a thread is virtual or not
20250315
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
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
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
- New native “ojob llm” (https://docs.openaf.io/docs/guides/ojob/llm-shortcut)
- New native “ojob oafp” (https://docs.openaf.io/docs/guides/ojob/oafp-shortcut.html)
- Support for the Swift language
- Improvements to “ojob query”
- New output options “-json” and “-gb64json” (gzip base64 json) if oJob uses ow.oJob.output / “(output)”
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
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
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
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
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
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)