v3.4.0
News:
- added:
date.setTimeZone(timezone) - added: `NOSQL('~absolute_path.nosql')' loads external NoSQL embedded database
- added: `TABLE('~absolute_path.nosql')' loads external Table
- added:
(generate)subtype into theconfigfiles - added:
String.isBase64() - added: new schema type
Base64 - added: SchemaEntity supports
schema.addWorkflowExtension(name, fn($, [data])) - added: SchemaEntity supports
schema.addTransformExtension(name, fn($, [data])) - added: SchemaEntity supports
schema.addOperationExtension(name, fn($, [data])) - added: SchemaEntity supports
schema.addHookExtension(name, fn($, [data])) - added: SchemaEntity supports
schema.setSaveExtension(fn($, [data])) - added: SchemaEntity supports
schema.setReadExtension(fn($, [data])) - added: SchemaEntity supports
schema.setQueryExtension(fn($, [data])) - added: SchemaEntity supports
schema.setRemoveExtension(fn($, [data])) - added: SchemaEntity supports
schema.setInsertExtension(fn($, [data])) - added: SchemaEntity supports
schema.setUpdateExtension(fn($, [data])) - added: SchemaEntity supports
schema.setPatchExtension(fn($, [data])) - added: SchemaOptions supports
$.extend([data])for evaluating of all extensions for the current operation - added:
WebSocket.keysproperty (it contains all keys with connections) - added:
threadsdirectory for server-less functionality - added: a global variable called
THREADwith a name of current thread - added:
require('total.js').http(..., { thread: 'thread_name' })evaluates only specified thread - added:
require('total.js').cluster.http(..., { thread: 'thread_name' })evaluates only specified thread in cluster - added: framework creates a file with app stats in the form
your_init_script_name.js.json - added: a new config key
allow_stats_snapshot - added: view engine
@{import()}supports auto-merging JS or CSS files:@{import('default.js + ui.js')} - added:
exports.optionsdelegate to component inFLOWSTREAM - added:
DatabaseBuilder.autofill()from DBMS - added:
HttpFile.extensionproperty - added:
HttpFile.sizeproperty alias toHttpFile.length - added: auto-session cleaner of unused sessions
- added:
allow_sessions_unusedconfig key for cleaning of unused sessions - added: missing
PATH.schemas,PATH.operationsandPATH.tasks - added: a new method
PATH.updates - added: easy updating of applications via
UPDATE(versions, [callback], [pause_server_message]) - added: NOSQL counter
.reset([type], [id], [date], [callback])method- - added:
session.listlive(callback)returns all live items in session - added:
controller.uareturns parsed User-Agent - added:
$.uareturns parsed User-Agent in Schemas, Operations, TaskBuilder,MIDDLEWARE()andAUTH() - added: support for
.mjsextensions - added: a simple support for DDOS protection
allow_reqlimit : Number(max. concurent requests by IP just-in-time) - added: unit-testing supports colors, added by @dacrhu
- added:
String.encryptUID()as alias forU.encryptUID() - added:
String.decryptUID()as alias forU.decryptUID()
Updates:
- updated:
WEBSOCKET()supports+,-and🔒as authorization flags - updated:
LOAD()supportsservicetype - updated: cluster watches
restartorrestart_NAME_of_THREADfiles for restarting of existing threads - updated: cluster supports
automode - updated: cluster supports watcher in
debugmode - updated:
*.filefs(),*.filenosql(),*.imagefs(),*.imagenosql()by addingcheckmetaargument - updated:
$.done([user_instance])method inAUTH(), added a new argument calleduser_instance(optional) - updated: GZIP is enabled only for JSON bodies which have more than 4096 bytes
- updated:
.envparser supports parsing of.env-debugor.env-releasefiles according to the mode - updated: list of user-agents in
String.parseUA()
Fixes:
- fixed:
ON('error404')when the route doens't exist - fixed:
filterin Schemaworkflows,transformationsandoperations - fixed:
NOSQL()joins with absolute paths - fixed:
TABLE()joins with absolute paths - fixed:
(random)subtype inconfigfiles - fixed:
(response)phrase inROUTE()for multipleOPERATIONS - fixed: a response in
ROUTE()with mulitple operations if the result contained some error - fixed: a security bug with a path traversal vulnerability
- fixed:
debugwatcher forthemes - fixed:
generatorsin schemas with a new declaration - fixed: a problem with handling files in 404 action
- fixed:
startupdirectory in bundles - fixed:
schema.inherit()didn't copyrequiredfields. - fixed:
SUCCESS()serialization withSUCCESS()argument - fixed: a critial bug with
UID()generator - fixed: clearing of DNS cache
Improvements:
- improved:
LOGMAIL()mail format - improved: starting logs in console output (added IPv4 local address)
- improved: performance with JSON serialization in
controller.success()andcontroller.done()