ub-server #
Added #
5.18.2 2020-05-12 #
- for SQL Server before 2016 custom JSON function defined in
SQL_SERVER_NATIVE_JSON_POLYFILL
environment variable can be used instead of build-in JSON_VALUE. % in variable expression will be replaced by expresion & path. Examples:- use build-in function:
SQL_SERVER_NATIVE_JSON_POLYFILL="JSON_VALUE(%,'$%')" ub
- use custom function:
SQL_SERVER_NATIVE_JSON_POLYFILL="dbo.F_GetJsonValue(%,'%')" ub
This is a work around for old SQL Server, we we do not recommend using it in production
- use build-in function:
- req_getReqId() function added to http_server binding - used inside @unitybase/uba HTTPRequest.requestId getter to get
a unique HTTP request ID (the same as used to fill a
uba_auditTrail.request_id
)
5.18.1 2020-05-06 #
- entity attribute access restriction: "restrictions" section for entity attribute allow limit attributes values
selection, insertion or updating either for all users or only for specified role in case UBQL comes from outside the server.
Usage examples (see uba_user for real life usage):
- deny access to
uba_user.uPasswordHashHexa
attribute value for all users; - limit access to
uba_user.trustedIP
only toSupervisor
role members. For other roles show '*****' instead of actual value; - limit updating / insertion of document state attribute for all - such attributes should be modified only from inside server;
- deny access to
- DB connections now available in UB shell scripts (see ubjs/apps/autotest/testCmdLineDbConnection.js for sample)
- extended logging of authentication and authorization process in case server in dev mode; Can be used for debug purpose.
- LDAP authentication under Linux now use libldap instead of libcurl what has a known bug
- in case UBQL what comes from client side contains an unsafe field or where item such errors will be handled as
ESecurityException and logged into
uba_audit
. Before this patch such exceptions are handel as EMetadatabaseException and can be visible only in text logs. - BREAKING for security reason in case client UBQL contains
orderBy
by attribute what not in fieldList server will throw ESecurityException. To help migrate to UB5.18.1 new optionsecurity.unsafeOrderBy
is added to config and cet be set totrue
to prevent such exception. unsafeOrderBy will be removed in 5.18.2 - SQLite3 connection can return number of rows affected by last insert/update/delete operation (used in new loging)
Changed #
5.18.3 2020-05-21 #
- SQL logging: in case of error inside SQL statement parsed statement will be logged instead of original statement
5.18.1 2020-05-06 #
- default value for
security.forceNTLM
ubConfig setting changed from true to false. NTLM deprecated even by Microsoft - please, setup Kerberos for SSO. - optimization of
fs.readdirSync
on Linux platform - socket based (Linux) HTTP server optimizations - removed unneeded massive setsockopt syscalls + use vDSO under Linux to get a system time;
- MySQL support is temporary removed. Notify me in case someone need it.
- Postgres SQL access class rewritten from scratch. Now libpq is used directly without Zeos. This speed up Postgres query execution and fetch for 10-100% and decrease memory usage.
- Postgres connection config:
databaseName
can be a Postgres URL In this caseserverName
can be an empty string; User name and password can also be empty and defined either in environment variable or in libpg config - log format for SQL statement execution is changed:
- all supported DBMS now produce the same logging results
- DBMS level exception now without connection details (only exception message); invalid statement is logged into
next line with ERROR log level n form
q=statement what cause an exception
- sql statements are logged in the same form they passed to DBMS driver:
- Oracle: parameters are in
:AA, :BB
format - Postgres: parameters are in
$1, $2
format - SQLite2 & SQl Server: parameters are in
?, ?
format
- Oracle: parameters are in
App.prepareAndRun
enter/leave is removed - time to first row now logged directly into SQL log statement (reduce log size)select
statement log format:r=1 t=255 fr=254 c=81 q=SELECT column1, .....
update/insert/delete
statement log format:r=1 t=1332 c=78 q=update tableName...
- SQL log format explanation:
- r: affected row(s) count (count of updated rows for update, deleted for delete, selected for select etc)
- t: time to execute (include fetch time for select statements)
- fr: time to execute WITHOUT fetching rows (time to first row)
- c: in case > 0 - prepared statement cache index (Oracle, Postgres)
Removed #
5.18.2 2020-05-12 #
- because of big regression client UBQL allows attributes what not in fieldList to be used in orderBy clause (disallowed in 5.18.1),
but server will throw ESecurityException in case expression passed to orderBy is "unsafe".
Option
security.unsafeOrderBy
is removed from a config.
5.18.1 2020-05-06 #
- ubConfig sections
httpServer.headersPostprocessors
andhttpServer.watchFileChanges
are removed. Production server should use reverse proxy for caching / compressing of static content. - BREAKING UBQL with
options.totalRequired = true
no longer create a separate DataStore namespace__totalRecCount
. To get a total record count propertyDataStore.totalRowCount
should be used instead. This only affect a UB 1.12 legacy code like this:
if(mParams.options.totalRequired) {
ctx.dataStore.currentDataName = "__totalRecCount";
mParams.__totalRecCount = (ctx.dataStore.rowCount) ? ctx.dataStore.get(0) : ctx.dataStore.rowCount;
ctx.dataStore.currentDataName = "";
}
Code above should be replaced by
if(mParams.options.totalRequired) {
mParams.__totalRecCount = ctx.dataStore.totalRowCount
}
or simply removed - UB5.18.1 will add a mParams.__totalRecCount
output parameter automatically
Fixed #
5.18.3 2020-05-21 #
- SQL Server ODBC connection (Linux): fix "Error converting data type varchar to numeric" for small numbers like 0.01
- SQL server/Oracle: fix JSON serialization for small numbers (DB: -.01 -> JSON -0.01; DB: .002 -> JSON: 0.002)
- prevent accumulation of execution time (t=XXX in SQL log) for cached statement (Postgres and Oracle)
- allow asterisk queries like
UB.Repository('ubm_enum').attrs('*').select()
for cacheable entities. Before this fix <<<Access deny>>> occurs because server deny a '*' in fieldList while calc entity version.
5.18.2 2020-05-12 #
- in case
serverName
in Postgres DB config contains trailing/
("serverName": "postgresql://host:port/") UB will ignore it while constructs a Postgres URL. Preferred way to specify a Postgres connection in UB>=5.18.1 is to set a"serverName": ""
and specify a Postgres URL in"databaseName"
.
5.18.1 2020-05-06 #
- correct ubConfig ENV variable parse - in case % is found on different lines ("single line string" mode for regexp parser should be turned off)
- fix
process.env
in case env variable value contains=
inside - under Unix ubConfig parser allows setting an empty environment variable value in %VARIABLE% macros (variable should exist in form
VARIABLE=
). Under Windows such empty variables will be also replaced by empty strings BUT error will be written to console. - correct
SoftLock
mixin exception propagation in caseupdate
is raised from inside server-side JS method usingstore.run('update', ...)
. In this case caller should get the same errors as whenupdate
executed directly fromubql
:- <<<Record modified by another user>>>
- <<<Cannot lock multiple records>>>
- <<<Record locked by another user>>>
- Negotiate authorization will use UB schema (authentication - Negotiate as before). This speed up authorization checking
- http client:
{useCompression: false}
option will disable compression as expected (before this patch to disable compression{useCompression: -1}
should be used - PostgresSQL deep JSON query: in case of path
jsonAttr.val.subval
query to JSON attribute path#>>
operator is used to get a value. Before this patch->>
is used, and the result was null. - SQL Server 2008 ID generation fixed (2008 do not support sequences)
- fixed rare case when UB in -cd mode skip wroting of exception into console
@unitybase/adminui-vue #
Added #
1.11.4 2020-05-31 #
- introduce
UDatePicker
- a wrapper around ElDatePicker with date format and first date of week taken from UB localization. To be used as direct replacement of<el-date-picker>
1.11.2 2020-05-27 #
UTable
: lastTableRow slot added - used, for example, by UTableEntity to add a pagination in the end of the tableUTableEntity
: pagination buttons tooltips added (next page, prev page)UTableEntity
: next page pagination link added to the end of table scrollable areaUMasterDetailView
: in case called from shortcut will store table filters in localStorage and apply it on open
1.11.0 2020-05-22 #
utils/lookups
methodsubscribe
- subscribes to a local entity changes. Lookup attrs already includes ID and description attribute for current entity can be extended by attrs param.
await lookups.subscribe('tst_dictionary', ['code', 'userID'])
utils/lookups
methodunsubscribe
Unsubscribe from entity changes. Listener is removed only if current subscription is last.
await lookups.subscribe('tst_dictionary')
utils/lookups
methodget
Getter for lookups
/** Returns description attribute value by ID */
lookups.get('tst_dictionary', 245671369782)
/** Returns description attribute value by code */
lookups.get('tst_dictionary', {code: 'code10'})
/** Can search on several attributes */
lookups.get('ubm_enum', {eGroup: 'AUDIT_ACTION', code: 'INSERT'})
/** In case third param as string - returns displayValue as userID.fullName */
lookups.get('tst_dictionary', 245671369782, 'userID.fullName')
/**
* In case third param is true (boolean) - returns entire record
* as object with all attributes what passed to subscribe
*/
lookups.get('tst_dictionary', 245671369782, true)
utils/lookups
added to Vue prototype. Example:this.$lookups.get('tst_dictionary', 245671369782)
1.10.11 2020-05-17 #
- new icons
u-icon-circle
,u-icon-circle-bold
,u-icon-circle-close
,u-icon-circle-dollar
,u-icon-circle-double
,u-icon-circle-info
,u-icon-circle-minus
,u-icon-circle-plus
,u-icon-circle-question
,u-icon-circle-trademark
,u-icon-clock
,u-icon-data
,u-icon-eraser
,u-icon-exit
,u-icon-expand
,u-icon-eye-slash
,u-icon-folder-add
,u-icon-globe
,u-icon-grid
,u-icon-hand
,u-icon-image
,u-icon-key
,u-icon-layers
,u-icon-line-chart
,u-icon-message-alt
,u-icon-message-text
,u-icon-more-vertical
,u-icon-object-group
,u-icon-rectangle
,u-icon-rectangle-dotted
,u-icon-resize
,u-icon-rhombus
,u-icon-sort-asc-alt
,u-icon-sort-desc-alt
,u-icon-unlock
,u-icon-window-left
,u-icon-window-top
- replace most font-awesome and element-ui to UB icons analog
1.10.10 2020-05-13 #
- styles for scrollbar in firefox
1.10.9 2020-05-06 #
- icons set. See documentation here
UForm/mount/mountModal
: added merge form component props with dialog props before render, in case you need to use standard el-dialog props. For example:close-on-press-escape: false
,show-close: false
.
Changed #
1.11.4 2020-05-31 #
UTableEntity/filters
: width of the filter value input increased to fit all available space- for
USelectEntity
what based on the repository "Select from the dictionary" action will filter dictionary in the same way as in the repository. For example for such select:
"Select from dictionary" action shows only currency with<u-select-entity :repository="getRepo"> ... getRepo () { return UB.Repository('cdn_currency').attrs('ID', 'code3').where('code3', '>', 'UAH') }
codes > UAH
. Before this change developer had to explicitly define abuildShowDictionaryConfig
handler for such behavior. UTabelEntity
: values forBoolean
attributes rendered as "+" and "-" icons (instead of Yes/No); Content of such columns are centered (instead of left aligned)
1.11.3 2020-05-27 #
UFormRow
: in caselabel
is empty string - do not render a trailing:
1.11.2 2020-05-27 #
UTableEntity
,UTable
allow text selection in a table using mouseUTableEntity
allow scrolls table using PgUp/PgDown/CtrlPgUp/Ctrl+PgDownUTableEntity
filter: top/bottom margins decreased to 4px from 12px - this decrease total toolbar height by 16px
1.11.0 2020-05-22 #
utils/lookups
fully refactored and maked reactiveForm/processing
connection listener*:changed
now provides changed data. So no more need to do select for fresh data in the neighboring tabs.
[{
entity: 'tst_dictionary',
method: 'insert',
resultData: { ID: 123312132313, name: 'name 1', caption: 'caption 1' }
}]
UTableEntity
: use store getters (canAddNew
,canEdit
,canDelete
) to control keyboard events.UTableEntity
table header cell attribute divider changed from '->' to/
UTableEntity
column divider of fixed column no more hidingUTableEntity
: column of typeCurrency
is rendered using formatByPattern from@unitybase/cs-shared
with a thousand separator and 2 fractions digits2 203,00
3.10
(before this changes2203
,3.1
)UTableEntity
: column of typeDate
andDateTime
are rendered using formatByPattern from@unitybase/cs-shared
in short format (month as number). UK:23.05.2020
,23.05.2020 13:14
, en:05/23/2020
05/23/2020, 1:14 PM
UToolbar
: creation and modification dates are rendered using Intl dateTime format with seconds
1.10.12 2020-05-21 #
showList
command: in case config containsfieldList: ["*"]
actual fieldList is constructed by UTableEntity. This guaranty the same behavior of a command as with<u-table-entity :entity-name="nameOfEntity">
.- UTableEntity: column label for complex attribute like
currencyID.code
created as concatenation of a parent attributes captions up to 3 level depth:currency->code
(the same as for Ext based table); To override this behavior column label can be specified in columns (for vue renderer format) or fieldList for Ext format config.
1.10.11 2020-05-17 #
UMasterDetailView
in detail grid hides column which relatives detail grid with master gridUMasterDetailView
adding of a record sets a master attribute value as a detail default usingparentContext
param
1.10.10 2020-05-13 #
UTableEntity/excel export
uses a client-side export and format excel data accoding to current TableEntity configuration; Limitation: custom slots not exported yet; rows count limited to 50000.
Removed #
1.11.0 2020-05-22 #
- BREAKING methods
load
,getEnumValue
,getValueById
1.10.11 2020-05-17 #
UTableEntity
propertyuseRequestFieldList
is removed. From now grid usesfieldList
from request.UChat
component moved into @unitybase/messaging package and renamed toUmChat
Fixed #
1.11.4 2020-05-31 #
UTableEntity/filters
: typo for boolean isFalse filter from 'Yes' to 'No'UTableEntity
: prevent error 'template of undefined' while user change focused column
1.11.3 2020-05-27 #
- JSDoc for UFormRow
1.11.2 2020-05-27 #
UMasterDetailView
incorrect display of total count. Resetstotal
on any changes in filtersUTableEntity
css fixes:- filters will try to expand to full width
- will wrap on overflow
- pagination
white-space
sets tono-wrap
DatePicker
: localize date/dateTime/firstDayOfWeek format for form auto field, full text search and table filters controls
1.11.1 2020-05-25 #
UAutoFiled
forString
attributes will set a maxLength input property toattribute.size
, so user can't enter string longer when accepted by DB. This prevents a server-side errors like "attribute value will be truncated".- prevent
o.core.UBApp is undefined
error on login page (lookups initialized only in caseUB.core.UBApp
is defined) - production build of
@unitybase/adminui-vue
will exportslookups
as expected UTableEntity
table header cell attribute divider changed from '->' to/
for 3d level depthUMasterDetailView
detail header translated using i18n- date filter caption i18n fixed for ru (от..до.. -> с..по..) uk (вiд..до.. -> з..до..)
1.10.13 2020-05-21 #
UTableEntity
prevent errorparentAttribute of undefined
in caseattribute
param is passed in column config.
1.10.12 2020-05-21 #
UTableEntity
: ifcolumns
prop is not binds, then fieldList will contain attributes withdefaultView: true
only. This prevents to fetch from DB attributes what not visible in the current view.UTableEntity
: prevent errordataType of undefined
on export table with custom column
1.10.11 2020-05-17 #
UTableEntity
prevent error "get dataType of undefined" for a table with custom columnsElSelect(multiple)
removed fixed height to allow display several rowsUTableEntity/filters/entity/equal
prevent error "get descriptionAttribute of undefined" for custom attributes in column definitionUTableEntity
excel export: fixed export of eav attributes by using afieldList
from request instead of broken one from server
1.10.10 2020-05-13 #
u-icon*
centered inside container properly (before this change they could move slightly upwards). Fixed by sets font descent to 100
1.10.9 2020-05-06 #
UMasterDetailView
: prevent crops of the scrollbar's due to wrong navbar height (min navbar heingth set to 54px.UDialog/dialogDeleteRecord
: prevent error in case description attribute for entity is not definedUButton
: allow to bind any native events to inner <button> component. Example:<u-button @onmouseover="action">click me</u-button>
UCodeMirror
: error on ctrl+B (beautify)UTableEntity
: visibility of filters in case passedattribute
param in column definitionUTableEntity
,UMasterDetailView
: slottoolbarDropdownAddNew
. Previously this slot did not replace the button
@unitybase/adminui-pub #
Added #
5.13.15 2020-05-27 #
UBCommand/getNavshortcutCommandText
param shortcutCode in returned commandConfig
Changed #
5.13.12 2020-05-21 #
UBCommand/showForm
provide shortcut caption to cmdCode. Now tab title will be equal to the caption of the shortcut
5.13.11 2020-05-17 #
- replace most font-awesome and element-ui to UB icons analog
Fixed #
5.13.16 2020-05-31 #
- en i18n: "Select from dictionary" -> "Select from the dictionary"
- for
UBBaseComboBox
with applied filters (new Ext.util.Filter) applied "Select from the dictionary" action will filter Vue based dictionary in the same way as in the ComboBox store (the same behavior as with obsolete Ext-based dictionary)
5.13.12 2020-05-21 #
UB.ux.UBImg
: image content is scaled to maintain its aspect ratio while fitting within the element's content boxUBCommand.showList
: detailAttribute should be added to fieldList as object with visibility:false, to prevent lookup queries for this field- icon class for
MenuItem.Details
. Changed from u-icon-arrow-down to u-icon-arrow-right ubfieldset
: use icon classfa-angle-down|right
for expand a button -u-icon-dows
too large there
5.13.11 2020-05-17 #
UBMultiSelectBox
: changed orderList structure from Array<Object> to Object for compatibility witUB@5.18+
@unitybase/cdn #
Changed #
5.4.10 2020-05-17 #
- replace most font-awesome and element-ui to UB icons analog
@unitybase/cs-shared #
Added #
5.3.1 2020-05-25 #
formatByPattern.setLang2LocaleHook
function added - allows override default UB language to ICU locale transformation rules
5.3.0 2020-05-22 #
formatByPattern
module withformatNumber
andformatDate
functions using cached Intl instances. This module is moved from@unitybase/ubs
to be used in apps what not require a UBS model.
5.2.7 2020-05-13 #
- link to tutorial for an array bindings from
CustomRepository.where()
Changed #
5.3.1 2020-05-25 #
formatByPattern.formatDate
now accept any type as a value. For!value
returns '', for non-date value creates a Date using new Date(value)formatByPattern.formatNumber
now accept any type as a value. For!value
(except 0) andNaN
returns '', for non-number value usesparseFloat()
@unitybase/org #
Changed #
5.3.10 2020-05-17 #
- replace most font-awesome and element-ui to UB icons analog
@unitybase/ub-pub #
Fixed #
5.5.8 2020-05-06 #
- NativeMessages extension setup (@ub-e/nm-scanned, @ub-e/nm-pdfsign etc.) for FireFox >= 75 will show setup link for user as expected instead of silently ignore fact what extension not installed (work-around for bug in FF75+)
@unitybase/ub #
Added #
5.4.10 2020-05-17 #
- put a model version (version from package.json) into log while loading domain models on server startup. New log example:
20200514 09285007 " info Loading domain models...
20200514 09285007 " info "UB"(5.4.9) from "./node_modules/@unitybase/ub"
20200514 09285007 " info "UBA"(5.4.9) from "./node_modules/@unitybase/uba"
5.4.9 2020-05-13 #
- HTTPRequest.requestId property added: returns unique HTTP request ID - the same value as used to fill a
uba_auditTrail.request_id
; In case audit trail is disabled in domain (uba_auditTrail entity not available) or Ub server version < 5.18.2 returns 0.
5.4.8 2020-05-06 #
- support for "attribute restriction" feature added in UB server 5.18.1 (u)
@unitybase/uba #
Added #
5.4.8 2020-05-06 #
- BREAKING this version of @unitybase/uba require UB server to be at last 5.18.1 ("attribute restriction" feature used)
- SECURITY access to
uba_user.uPasswordHashHexa
is disallowed from client (restricted for all) - SECURITY access to
uba_user
disabled
,isPending
andtrustedIP
attributes are allowed only for members ofSupervisor
role; For other roles actual values is replaced by*****
for trustedIP andnull
fordisabled
,isPending
- SMS registration handler added to
uba_user.publicRegistration
rest method. Registration kind can be defined inserverConfig.application.customSettings.publicRegistration.kind
application config key. Seeuba_user.publicRegistration
documentation for details.
Changed #
5.4.10 2020-05-17 #
- replace most font-awesome and element-ui to UB icons analog
5.4.8 2020-05-06 #
- BREAKING
uba_otp.generateOtp
will generate a 6 digits random string instead of GUID
Fixed #
5.4.8 2020-05-06 #
- characters
,.[]{}?
added to password policy complexity check. Checking is carried out in case ubs_settingsUBA.passwordPolicy.checkCmplexity
value is set totrue
. - i18n added for
uba_auditTrail.actionUserName
attribute
@unitybase/ubcli #
Added #
5.5.9 2020-05-13 #
- detailed explanation of database creation in initDB - see https://unitybase.info/api/server-v5/module-initDB.html for tips how to create a database manually
@unitybase/ubm #
Changed #
5.3.10 2020-05-17 #
- replace most font-awesome and element-ui to UB icons analog
@unitybase/ubq #
Added #
5.3.10 2020-05-17 #
@unitybase/ubq/modules/mail-queue
exports a propertymailerEnabled
.- Indicate mailer is configured in
serverConfig.application.customSettings.mailerConfig
. - in case this property is false calls to
queueMail
do nothing, so better to verify it before mail creation to save a server resources
- Indicate mailer is configured in
Changed #
5.3.10 2020-05-17 #
queueMail
do not put a mail sending job into queue in case mailer is not configured inserverConfig.application.customSettings.mailerConfig
- replace most font-awesome and element-ui to UB icons analog
@unitybase/ubs #
Changed #
5.3.10 2020-05-17 #
- replace most font-awesome and element-ui to UB icons analog
Deprecated #
5.4.0 2020-05-22 #
- usage of
@unitybase/ubs/public/formatByPattern.js
is deprecated.require('@unitybase/cs-shared').formatByPattern
should be used instead.
Fixed #
5.3.8 2020-05-06 #
- fix ESLint warnings in initial JS template for ubs_report (no functional changes)
@unitybase/xlsx #
Changed #
5.1.26 2020-05-13 #
- reformat code according to ESLint rules (no functional changes)