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 theconfig
files - 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.keys
property (it contains all keys with connections) - added:
threads
directory for server-less functionality - added: a global variable called
THREAD
with 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.options
delegate to component inFLOWSTREAM
- added:
DatabaseBuilder.autofill()
from DBMS - added:
HttpFile.extension
property - added:
HttpFile.size
property alias toHttpFile.length
- added: auto-session cleaner of unused sessions
- added:
allow_sessions_unused
config key for cleaning of unused sessions - added: missing
PATH.schemas
,PATH.operations
andPATH.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.ua
returns parsed User-Agent - added:
$.ua
returns parsed User-Agent in Schemas, Operations, TaskBuilder,MIDDLEWARE()
andAUTH()
- added: support for
.mjs
extensions - 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()
supportsservice
type - updated: cluster watches
restart
orrestart_NAME_of_THREAD
files for restarting of existing threads - updated: cluster supports
auto
mode - updated: cluster supports watcher in
debug
mode - updated:
*.filefs()
,*.filenosql()
,*.imagefs()
,*.imagenosql()
by addingcheckmeta
argument - 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:
.env
parser supports parsing of.env-debug
or.env-release
files according to the mode - updated: list of user-agents in
String.parseUA()
Fixes:
- fixed:
ON('error404')
when the route doens't exist - fixed:
filter
in Schemaworkflows
,transformations
andoperations
- fixed:
NOSQL()
joins with absolute paths - fixed:
TABLE()
joins with absolute paths - fixed:
(random)
subtype inconfig
files - 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:
debug
watcher forthemes
- fixed:
generators
in schemas with a new declaration - fixed: a problem with handling files in 404 action
- fixed:
startup
directory in bundles - fixed:
schema.inherit()
didn't copyrequired
fields. - 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()