Skip to content

v3.4.0

Compare
Choose a tag to compare
@petersirka petersirka released this 11 Feb 07:33
· 4 commits to v3.4.0 since this release

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 the config 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 in FLOWSTREAM
  • added: DatabaseBuilder.autofill() from DBMS
  • added: HttpFile.extension property
  • added: HttpFile.size property alias to HttpFile.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 and PATH.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() and AUTH()
  • 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 for U.encryptUID()
  • added: String.decryptUID() as alias for U.decryptUID()

Updates:

  • updated: WEBSOCKET() supports +, - and 🔒 as authorization flags
  • updated: LOAD() supports service type
  • updated: cluster watches restart or restart_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 adding checkmeta argument
  • updated: $.done([user_instance]) method in AUTH(), added a new argument called user_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 Schema workflows, transformations and operations
  • fixed: NOSQL() joins with absolute paths
  • fixed: TABLE() joins with absolute paths
  • fixed: (random) subtype in config files
  • fixed: (response) phrase in ROUTE() for multiple OPERATIONS
  • 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 for themes
  • 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 copy required fields.
  • fixed: SUCCESS() serialization with SUCCESS() 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() and controller.done()