ub-server #
Added #
5.19.1 2021-02-23 #
loginFailed
event for Session object emitted with second parameter - userName. This allows to log a userName who is fails to log-in intouba_audit.targetUser
.- startServer() function (available in shell script) accept
withWait
parameter. If true, program continue execution after shell script ends until got an STP (Ctrl+C) signal. This allows to start a multi-thread server with some threads listen for some queue (redis for example) - under Linux blocking syscalls (socket, fs) inside threads are unblocked on SIGQUIT, SIGTSTP, SIGINT, SIGTERM signals.
This allows to stop multi-thread server with some threads waiting for blocking operation ends.
Added only for a server, started from shell script using
startServer()
(for compatibility reasons) - "redis" section added to ubConfig
Changed #
5.19.1 2021-02-23 #
- compiler optimization level sets to -O3 (better code generation)
- maximum allowed thread pool size increased to 128 (from 64)
5.19.0 2021-02-02 #
-
BREAKING JS endpoints, added by
App.registerEndpoint
and native endpoints, added by a server (stat, auth, ubql, logout and metrics) now executed usingApp.launchEndpoint
JS implementation. This allows to use the samereq
andresp
objects for both endpoint types, and a one step forward to pure JS ubql implementation. These changes require@unitybase/ub@5.19
package. -
BREAKING IncomingMessages.read() function can be called only once. This allows to free memory allocated in native code for HTTP response ASAP. Should not affect a projects sources.
-
libicu library used for Unicode string comparison in native code instead of
cwstring
FPC module
Deprecated #
5.19.1 2021-02-23 #
Removed #
5.19.1 2021-02-23 #
Fixed #
5.19.2 2021-02-25 #
- Fixed #34: SQl builder will add a filter by
mi_deleteDate
for sub-queries what based on entities withsafeDelete: true
in case there is no condition bymi_deleteDate
yet. BREAKING -.misc({__allowSelectSafeDeleted: true})
do not work for sub-queries, so after this patch developer can't create a sub-query what skips safe deletion.
5.19.1 2021-02-23 #
- rpm package dependency:
libicu
version sets to >=50 (instead of >= 60) - this allows to install on CentOS7
5.19.0 2021-02-02 #
- fixed possible exception during server shutdown on Windows platform
deb
package correctly addsunitybase
user to awww-data
group (if such a group exists). This fixusermod: group '%{ub_user}' does not exist
warning during deb package setup.- fix a possible bypass of session signature timestamp increasing check in case Negotiate authentication is enabled
- under Linux all instances of
http.request
now shares the same DNS, TLS and TCP connections cache across all threads. This significantly improves the performance of queries to external HTTP(S) resources, especially for HTTPS for all environment and under Docker where local DNS resolver cache is broken. - fix unexpected MessageBox on Widows in case SQLIte3 engine is outdated - server throws in this case
@unitybase/adminui-vue #
Added #
5.19.4 2021-02-25 #
USelectEntity
will force selecting of new record added by user using "Add new" action. Also added propskipAutoComplete
to disable this functionality for some selected field.Form.js
: addedtitleTooltip
param. By default equal totitle
. Used to display a tab tooltip.Form.mountTab
added the ability to change the tooltip of current tab in theUNavbar
using the provided with$formServices
functionsetTooltip
.UTableEntity
now supports a new propertyhideActions
. It allows to hide an action from all the possible places at once: toolbar, context menu, toolbar dropdown, it also disables keyboard shortcuts for the actions. Before the change, to disable an action for entity table, it required something like:
<template>
<u-table-entity>
...
<!-- Disallow copy -->
<template #contextMenuCopy>
<div/>
</template>
<template #toolbarDropdownCopy>
<div/>
</template>
</u-table-entity>
</template>
And still, it won't affect keyboard actions. Now it is much easier to disable actions with the
new property. It supports the following actions: addNew
, copy
, newVersion
, showVersions
, edit
, delete
,
audit
, summary
, export
, link
, viewMode
How, it is possible to control multiple actions with one property and be sure actions will be hidden in all the places:
<template>
<u-table-entity
:hide-actions="['copy', 'export']"
...
>
....
</u-table-entity>
</template>
5.19.2 2021-02-08 #
Form.mountModal
will provideisModal: true
to the child components, child components can inject it asparentIsModal
UFormContainer
will injectisModal
asparentIsModal
UFile
(FileRenderer
) component support preview (pre-listen) of audio content- ALS mixin support for UAutoField and autoforms. Can be used in custom forms as such
const alsMixin = require('@adminui-vue/components/controls/mixins/alsMixin')
...
mixins: ['alsMixin']
SET_ALS_INFO
mutation added toprocessing
vuex module. In case als mixin assigned to the entityprocessing.load
adds information about als intoalsInfo
object in vuex state.
Changed #
5.19.4 2021-02-25 #
org_unit-fm
: 'parentID' field isreadonly
instead ofdisabled
, that allows to open parent form [UBDF-13217]- UTable: In a table view mode the position of a sorting window popup has moved from a button on the toolbar to a sorted column header.
5.19.2 2021-02-08 #
USelectEntity
- actionsEditItem
andAddNewItem
use parent modal state (parentIsModal) to show item form. If parent is inside a modal dialog - form shows as modal, else - in the new tab.
This behavior can be disabled by addingappConfig.uiSettings.adminUI.forceModalsForEditForms: true
to ubConfig
Fixed #
5.19.4 2021-02-25 #
UNavbar
: display of html-content inside the tab tooltipUNavbar
: support for ext-based form tooltip that was created withBasePanel
UAutoField
: in casereadonly
property sets totrue
- convert it todisable
, because 'el-checkbox'/'el-switch' doesn't havereadonly
propprocessing
+UToolbar
- "Save and Close" must close ONLY if save was successful
5.19.3 2021-02-10 #
UTableEntity
attributes with Document data type did not work correctly, if attribute was not the root, for example, for attribute likelinkedDocID.docImage
, it caused JS error, if user try to download it. Now for such attributes, repository MUST include the ID field of the record with document, for the previous example, it MUST includelinkedDocID
attribute. This is done instead of additional (and failed!) request to server for the ID value.
5.19.2 2021-02-08 #
- UFile ignore charset part in BLOB content type while calculates an icon for file. After this fix correct icons are displayed for txt, html, js, html and so on.
5.19.1 2021-02-03 #
- UMasterDetailView: fixed
Entity with code "[object Object]" does not exist or not accessible
in caserepository
property is Object (ubql). For example as in ubm_enum shortcut definition. - UMasterDetailView: fixed
Entity with code "" does not exist or not accessible
in caseentityName
is passed into attributes. For example as in uba_audit shortcut definition.
5.19.0 2021-02-02 #
- Error
Cannot read property 'showAllItem' of undefined
on clicking to Ext filter arrows up/down. - UFormRow: Fixed styles for labelPosition="right" - colon sing after label is removed; added padding between control and label
@unitybase/adminui-pub #
Changed #
5.19.4 2021-02-25 #
showAuditTrail
select data by parentEntityInfo_id or entityinfo_id attributes instead of parentEntityInfo_id. Auditing on child records will now appear in the base entity audit form and the parent entity audit form.
5.19.2 2021-02-08 #
UBBaseComboBox
- actionsEditItem
andAddNewItem
use parent modal state (this.up('basepanel').isModal
) to show item form. If parent is inside a modal dialog - form shows as modal, else - in the new tab. This behavior can be disabled by addingappConfig.uiSettings.adminUI.forceModalsForEditForms: true
to ubConfig.
@unitybase/base #
Fixed #
5.19.0 2021-02-02 #
- prevent unnecessary call to IncomingMessage.read() for responses with JSON content type (reduce memory usage)
@unitybase/blob-stores #
Added #
5.19.3 2021-02-10 #
-
in case UB is behind nginx
getDocument
endpoint for fileSystemBlobStores adds x-query-params header what contains URL parameters. This allows to extend a proxy config with rules what depends on URL parameters.See example what uses this feature to add an image resize (thumbnails) in reverse proxy tutorial
Changed #
5.19.0 2021-02-02 #
setDocument
endpoint will usereq.writeToFile
if request body not in base64 instead of reading body into JS memory and when write it using fs.writeFileSync. This prevents double memory allocation.- BREAKING
BlobStoreCustom.saveContentToTempStore
method signature changed.content
parameter can be either ArrayBuffer or THTTPRequest. Support forcontent: THTTPRequest
MUST be added to descendants. - use new property
req.parsedParameters
instead ofqueryString.parse(req.parameters)
Fixed #
5.19.2 2021-02-08 #
setDocument
endpoint return valid file size for dirty document, based onfs.statSync()
result
@unitybase/cdn #
Added #
5.19.4 2021-02-25 #
- new attribute
cdn_organization.countryID
@unitybase/cs-shared #
Fixed #
5.5.18 2021-02-03 #
- fix typo in
UBDomain.prototype.get
error message in case entity does not exist
@unitybase/only-office #
Changed #
5.19.0 2021-02-02 #
- use new property
req.parsedParameters
instead ofqueryString.parse(req.parameters)
@unitybase/openid-connect #
Changed #
5.19.0 2021-02-02 #
- use new method
req.getHeader('origin')
to get aOrigin
header value - use new property
req.parsedParameters
instead ofqueryString.parse(req.parameters)
@unitybase/ub #
Added #
5.19.2 2021-02-08 #
- new syntax sugar methods
insert
,insertAsObject
,update
andupdateAsObject
are added toTubDataStore
. Methods semantic are the same as for Connection. See TubDataStore documentation for details. Example:
const STORE = UB.DataStore('uba_role')
// return ID (generated, since ID not passed in the execParamms)
// 3000000000201
const testRoleID = STORE.insert({
fieldList: ['ID'],
execParams: {
name: 'testRole1',
allowedAppMethods: 'runList'
}
})
5.19.0 2021-02-02 #
THTTPRequest
extended by helper functions:- req.getHeader(name) -> string|undefined
- req.getHeaderNames() -> array<string>
- req.getHeaders() -> Object
THTTPRequest
extended byparsedParameters
getter. Result is cached, so second call is faster than first
// for parameters 'foo=bar&baz=qux&baz=quux&corge' return
req.parsedParameters // { foo: 'bar', baz: ['qux', 'quux'], corge: '' }
We recommend using this getter instead of querystring.parse(req.parameters)
to prevent multiple
call to parameter parsing from different methods (require UB server >= 5.19.0).
THTTPRequest.writeToFile
can accept second parameterencoding
- 'bin' (default) orbase64
. Forbasse64
request body will be converted from base64 into binary before write to file
Changed #
5.19.0 2021-02-02 #
- BREAKING JS endpoints, added by
App.registerEndpoint
and native endpoints, added by a server (stat, auth, ubql, logout and metrics) now executed usingApp.launchEndpoint
JS implementation.
This allows to use the same req
and resp
objects for both endpoint types, and a one step forward to pure JS ubql implementation.
These changes require UB server >= 5.19.0.
@unitybase/uba #
Changed #
5.19.1 2021-02-03 #
- for UB@5.19.1
loginFailed
event logs intouba_audit.actionUser
name of user who tries to log-in. Before this changesanonymous
is written there. For UB@5.19.0anonymous
is written as before this patch.
5.19.0 2021-02-02 #
- use new property
req.parsedParameters
instead ofqueryString.parse(req.parameters)
@unitybase/ubcli #
Added #
5.19.4 2021-02-25 #
ubcli execSql
command accept-v
parameter for a verbose mode. In the verbose mode each executed SQL statement will be logged into consoleubcli migrate
command accept-v
parameter for a verbose mode and-p
parameter for progress. Both a passed to execSql, this allows output all executed SQL statement into a console (SQL statement logging)