ub-server #
Added #
5.18.22 2020-11-17 #
5.18.21 2020-11-14 #
ub-delpoy
: --nobackup command line switch added. Prevents backup of existed app/product. Useful in the CI scripts for dev environments to install over the same version./metrics
endpoint - expose a various server metrics in Prometheus format. See metrics tutorial for details.- systemd unit:
remote-fs.target
if added toAfter=
section og unitybase@.service unit. This prevent UnityBase to start before a remote fs are mounted (if any).
5.18.20 2020-11-25 #
UBEntityAttribute.privateSettings
&UBEntity.privateSettings
properties. Can be defined in meta file and available in server-side domain. not available on client-side. Client-side implemented in@unitybase/cs-shared@5.5.11
.- Windows platform: support for de-duplicated NTFS file systems. Previous versions do not see files with FILE_ATTRIBUTE_REPARSE_POINT
- new command line switch
-p
- evaluate script and print result
# print version from package.json to console
ub -p "require('package.json').version"
# assign version to variable in shell script
VER=$(ub -p "require('package.json').version") && echo $VER
5.18.19 2020-11-15 #
- set systemd service status to 'Stopping...' during service shut down. This operation can be slow because server waits for active request handler to be finished.
crypto
: added a node-compatible functions:prng
,pseudoRandomBytes
,randomBytes
,randomFill
,randomFillSync
,rng
5.18.18 2020-11-11 #
ub-app-new
lifecycle script will list all deployed products in case -p parameter is invalidub-app-new
&ub-app-upgrade
for a product based apps will force linking of all static assets from productinetpub
into appinetpub
5.18.17 2020-11-06 #
getDomainInfo
: added "vendorModels" & "customerModels" fields - contains the same as in application ubConfig- added
dbConnectionsRelease
method toub_dbConnection
binding (exposed for a developer as @unitybase/base.releaseDBConnectionPool). Should be used in case controller creates a DB connection pool in Shell script and when usesstartSertver()
. In such case before starting a server local DB connection pool MUST be released. /usr/bin/ubcli
script (installed by server deb/rmp) - allow not to usenpx ubcli ...
- just typeubcli ...
in any application folder
Changed #
5.18.22 2020-11-17 #
EventEmitter.defaultMaxListeners
is increased to 100. This prevents ERROR(node) warning: possible EventEmitter memory leak detected
in logs. For server-side typical pattern is to subscribe to the event end never unsubscribe, so the nodejs behavior of tracking leaks (someone forgot to unsubscribe) is not applicable.
5.18.21 2020-11-14 #
- BREAKING CentOS and Ubuntu based Docker containers are published to the
git-pub.intecracy.com:4567/docker/unitybase/ub-server
(instead ofgit-pub.intecracy.com:4567/unitybase/ub-server
) - Linux: on startup server calls a libc
setlocale(LC_ALL, 'C')
to force all C libraries loaded by UnityBase to use a POSIX locale by default instead of ones, specified inLC_
variables
5.18.20 2020-11-25 #
process.platform
andprocess.arch
now read-only and enumerable instead of read-write and non-enumerable
5.18.19 2020-11-15 #
- speed up server startup in production mode by skip fetching of uba_els.code column during ELS initialization. For huge (> 10000) ELS sets it's give a 2x speed up (0.6 sec -> 0.3 sec)
5.18.18 2020-11-11 #
- deb/rpm package setup will:
- sets permission for apps/products folders to 755 and data to 750, so unitybase group members (like nginx) will have a read only permission
- adds user nginx (if available) to group unitybase, so nginx can
read a BLOB stores content and
inetpub
apps folders
- BREAKING application data folder sets to
/var/opt/unitybase
instead of/var/lib/unitybase
In case apps based on UB 5.18.17 is already deployed, usesudo mv /var/lib/unitybase /var/opt
after upgrade ub-server.
5.18.17 2020-11-06 #
- under Linux deb/rpm server setup sets owner of
/opt/unitybase/products
to unitybase:unitybase (instead of root:root). This allows call a lincStatic in application folder based on a product without permission violation. - httpServer port is added to a log file name (after host name) - this prevents possible file naming conflicts in
case several apps wrote logs to the same folder (
/var/log/unitybase
for example). - BREAKING on production UB_APPDATA=/var/lib/unitybase/$UB_APP
5.18.16 2020-11-01 #
- skip logging of empty enter/leave blocks for methods that guarantee less than 10 ns work:
- TubStorageMixin.beforeinsert
- TubStorageMixin.afterdelete
- TubDataHistoryMixin.select
- TubDataHistoryMixin.insert
- TubDataHistoryMixin.delete
- TubClobTruncateMixin.beforeupdate
- TubClobTruncateMixin.beforeinsert The overall effect is ~2% of log size decrease and ~10% of log lines count decrease (verified for DocFlow product).
- maximum number of application DB connections are limited to 20
Deprecated #
5.18.22 2020-11-17 #
5.18.21 2020-11-14 #
- Windows: performance counters registration via
ub -perf
is removed; Under Windows UB specific statistics available using/stat
endpoint and via HTTP_queue build-in Windows counter. - ubConfig:
logging.performanceCounters
setting key is removed - usemetrics
instead
5.18.20 2020-11-25 #
- BREAKING
http.setGlobalProxyConfiguration
is obsolete, do nothing except output warning and should be removed from code. Use http_proxy & no_proxy environment variables.- under Windows no_proxy should be semicolon delimited,
- under Linux a comma delimited, see https://curl.se/libcurl/c/CURLOPT_PROXY.html
5.18.18 2020-11-11 #
5.18.16 2020-11-01 #
Removed #
5.18.22 2020-11-17 #
5.18.18 2020-11-11 #
5.18.16 2020-11-01 #
Fixed #
5.18.22 2020-11-17 #
- fixed EThreadError what can occur on hi-load environment in case a several thread simultaneously tries to get next 100 IDs from database sequence. Such error can cause a server to hang, so issue level is CRITICAL. Affects all RDBMS types except SQLite3 (where in-memory ID generator is used) and all versions of UB starting from 1.12.
5.18.21 2020-11-14 #
- Installation from rpm under Docker fixed: rpm package detect systemd using
pidof systemd
instead oftest -f "/usr/bin/systemctl"
. Incentos:8
docker image/usr/bin/systemctl
exists but systemd not used. - Password expiration check: prevent asking user to change an expired password (for apps with ubs_settings
UBA.passwordPolicy.maxDurationDays
> 0) in case authorization method uses an external password storage (LDAP, Kerberos) or do not use password at all (UBIP). In fact onlyBasic
andUB
schemas should perform password expiration check. - reader interface (req.read('utf-8') for example): throw an error
Source is not a UTF8 encoded string
in case source buffer is not a UTF8 encoded string. This slows operation a bit, but prevent possible AV inside JS engine.
5.18.20 2020-11-25 #
UB.UBAbort
server side JS abort error now logged asERR
log level instead ofEXC
- AV for empty script evaluation fixed (ub -e without script)
5.18.19 2020-11-15 #
- simplify Docker file for better usage of layer cache during docker build
5.18.18 2020-11-11 #
- systemd service uses %i instead of %I as UB_APP, %I escapes
-
->/
, so app nameora-autotest
becomesora/autotest
5.18.17 2020-11-06 #
- in shell mode (-e, -T, -f or script.js as first parameter) console.* calls should not add a log level to stdout output.
ub -T
should show config as multiline string instead of one line. Problem is introduced in 5.18.16. - more user-friendly exception in case "connectionName" points to not existed connection
- mute logging of ECurlHTTP exception in shell mode - it's already intercepted by JS. This prevent logging of entites like
ECurlHTTP ("libcurl error 7 (Couldn't connect to server) on GET http://localhost:8081/getAppInfo"
during checkServerStarted() call.
5.18.16 2020-11-01 #
- direct SQL execution inside command line script (using createDBConnectionPool) now works
in case server is started from command line script using
startServer()
. The only limitation is - transaction must be committed manually. If server is not started by script then connection committed on script termination automatically. - allow debugging a shell script using
ub /path/to/file.js -debug
. - fixed potential AV inside
isEndpointAllowed
method (can occur in case one of default roles are missed in the database)
@unitybase/adminui-vue #
Added #
1.13.20 2020-11-19 #
- new optional column property
filterable
for column configuration of UTableEntity. To disable filtration by column setscolumn.filterable = false
UFormContainer
: providesisDisabled
property to child controls. This property disables child "U-controls" when itstrue
.UBaseInput
,UAutoField
andUSelectEntity
inheritisDisabled
from parentUForm.processing
: callbackerrorNotification
is added. Allows override a default error notification behavior.
1.13.19 2020-11-15 #
processing.load
: added.misc({ ID: ID })
which allows to make a request with ID bypassing caching, soft deletion and history. This solves the problem with the opening of forms of records that are no longer relevant.
1.13.18 2020-11-14 #
- UTableEntity: new prop
bordered
(true by default) - display a border around table and toolbar. See for example cdn_person form - with border around Contacts its looks better.
Changed #
1.13.22 2020-11-23 #
- user menu
Settings
now contains a sub-menuScanner settings
what shows a scanner settings form. Ext basedubm_desktop-userSettings
form (was shown on setting menu click before these changes) is removed.
1.13.20 2020-11-19 #
UTableEntity
- prevent hangs on huge text attributes content:- in case columns is not specified will exclude attributes of type
Text
,JSON
andDocument
from autogenerated columns list (before this fix attributes of typeText
are included) UTableEntity
: in case attributes or Repository not specified will exclude from autogenerated Repository attributes of typesText
,JSON
andDocument
even in case defaultView for such attributes is true in metadata
- in case columns is not specified will exclude attributes of type
1.13.18 2020-11-14 #
UCodeMirror
- useesversion: 8
(async functions) as default for linter
1.13.17 2020-11-10 #
USidebar
sidebar width to0px
in collapsed state and screen less than768px
(mobile)
1.13.14 2020-11-01 #
USelectEntity
: propreadonly
does not disable actionedit
in dropdown anymore, butdisabled
still does
Fixed #
1.13.23 2020-11-25 #
UBaseInput
: fixdisabled
prop in case need to disable only this field and not the entire form containerUTableEntity
<entity-name>:changed
events (does not try to refresh) in case payload not contains a validresultData
with IDUTableEntity
: fixed disabling of sorting by clicking on a column header if the column configured as not sortableUTableEntity
filter - use correct translation for multiple condition -Multiple
instead ofContains
1.13.22 2020-11-23 #
UBaseInput
,UAutoField
,USelectEntity
: fixed missing injection in case when the control is outside theUFormContainer
UTableEntity
: sorting now replaces theorderList
rather than adding a new condition to the existing one
1.13.21 2020-11-20 #
UTableEntity
: fixed attributes filtration for tables initialized with columns (introduced in 1.13.20)
1.13.20 2020-11-19 #
UFile
: prevent download document in casepreview-mode
not setsUTableEntity
error on click column which has no filters
1.13.16 2020-11-08 #
UDialog
- ifCancel
button not available - sets focus to the first available button.
1.13.14 2020-11-01 #
store.canRefresh
getter returnstrue
for any non-new record (before this fix - for non-new and dirty). This allows calling "Refresh" action on the non-dirty forms.
@unitybase/adminui-pub #
Changed #
5.13.51 2020-11-14 #
UBCodeMirror
- useesversion: 8
(async functions) as default for linter
@unitybase/base #
Added #
5.4.6 2020-11-15 #
DBConnection.selectParsedAsObject
for Postgres warning added: Postgres return all field name in lower case ifAS "normalName"
is not specified, so better to write a query as suchselect ID as "ID", modelName AS "modelName" from ..
instead ofselect ID, modelName from ..
5.4.5 2020-11-14 #
ServerRepository.selectAsArrayOfValues()
- for Repository with ONE attribute returns a flat array of attribute valuesconst usersIDs = UB.Repository('uba_user').attrs('ID').limit(100).selectAsArrayOfValues() // usersIDs is array of IDs [1, 2, 3, 4]
5.4.3 2020-11-10 #
argv.establishConnectionFromCmdLineAttributes
: default value for -host parameter is changed toauto
. if-host auto
or UB_HOST=auto env variable is defined then host will be taken from application config
5.4.2 2020-11-08 #
DBCOnnection.selectParsedAsObject
for Oracle warning added: Oracle return all field name in UPPER case ifAS "normalName"
is not specified, so better to write a query as suchselect ID, modelName AS "modelName" from ..
instead ofselect ID, modelName from ..
5.4.0 2020-11-05 #
createDBConnectionPool
adds connection with nameDEFAULT
for easy access to default DB connection- in case
DBConnection.genID
called withundefined
it return ID for connection. If with entity code - for specified entity. argv.establishConnectionFromCmdLineAttributes
will always uses 'ROOT' auth schema if user is 'root'. Before this fix 'ROOT' schema is used if user is root AND server is started by this session.
Changed #
5.4.6 2020-11-15 #
ServerRepository.selectScalar()
optimized to use less JS memory
5.4.1 2020-11-08 #
options.parseVerbose
( a command line parameters parser) will throw in case of invalid / missed parameters. This returns a 1 exit code to caller and, for example, can prevent batch script from further execution.
5.4.0 2020-11-05 #
createDBConnectionPool
will re-use previously created pool
Fixed #
5.4.0 2020-11-05 #
- added missing {ubRequest} type definition
@unitybase/blob-stores #
Added #
5.5.0 2020-11-15 #
-
BLOB stores: new
storeSize
Hourly
- asDaily
but with sub-folder for each hour inside a day folder -
BLOB sores: new property
LUCount
- a count of Logical Units BLOB stores divided into. If > 0 then files are stored insideLogical Unit
sub-folders/LU01
,/LU02
,.Write operations works with last LU folder. Each LU folder can be mounted to his own partition. In this case
tempPath
should point to the same partition as last LU.
5.4.17 2020-11-14 #
@unitybase/blob-stores/storesPerfTest.js
- BLOB store performance testing endpoints implementation. See doc inside astoresPerfTest.js
for usage sample.
5.4.11 2020-11-01 #
App.blobStores.getContentPath
method - retrieve full path to a file with BLOB content (in case store is file-based)
Changed #
5.5.2 2020-11-20 #
-
mdb
BLOB store: if reverseProxy isnginx
thengetDocument
request for permanently stored items will redirect tosendFileLocationRoot/models
internal location to unify retrieving of models and cmodels.On the production
cmodels
is located in then/var/opt/unitybase/..
while models - in the/opt/unitybase/...
Since linkStatic links both to theinetpub/clientRequire/models
, so better to get allmdb
items from there.ubcli generateNginxCfg
should be executed after upgrade to this version (ub-app-upgrade
lifecycle script is doing this)
5.4.16 2020-11-12 #
- mdb store now stores MD5
Fixed #
5.4.12 2020-11-05 #
- MdbBlobStore do not throw an error on deletion
@unitybase/cdn #
Changed #
5.4.43 2020-11-10 #
cdn_profession.meta
: addeddefaultView: false
for attributedescription
Removed #
5.4.43 2020-11-10 #
-cdn_profession-fm.def
: better to use autoform
Fixed #
5.4.49 2020-11-23 #
cdn_organization
- deny ANY update for organizations with government organization type (orgBusinessTypeID.isGovAuthority=true
) by roles not incdn.organization.accessAddGovByRoles
list.
Before this fix updating was possible if orgBusinessTypeID
is not changed. Also, was possible to change an org type from
government to non-government.
5.4.39 2020-11-01 #
cdn_contact-fm.vue
: fixed form opening without parentContext [UBDF-12453]
@unitybase/cs-shared #
Added #
5.5.11 2020-11-20 #
UBEntityAttribute.privateSettings
&UBEntity.privateSettings
properties. Can be defined in meta file and available in server-side domain. not available on client-side. Require UB server 5.18.20 and up.
5.5.9 2020-11-14 #
CustomRepository.selectAsArrayOfValues()
- for Repository with ONE attribute returns a flat array of attribute values
5.5.8 2020-11-05 #
- new properties
UBDomain.customerModels
&UBDomain.vendorModels
- array of customer/vendor models names. Require UB server to be >= 5.18.17. For earlier versions returns empty arrays.
Changed #
5.5.7 2020-11-01 #
- ClientRepository Object result will force converting Enums attributes values to String. This fix a problem when enum value is number like (1 for example) and client got a numeric response. General recommendations is to set enum values to alphanumeric string.
Fixed #
5.5.8 2020-11-05 #
- DBConnectionConfig type definition: added missing
isDefault
property
@unitybase/mailer #
Added #
5.4.0 2020-11-23 #
- notes in the README about SSL setup for Linux
UBMail.UBMailImap
class - receive mail using IMAP protocolUBMail.TubMailReceiverImap
- a direct replacement forUBMail.TubMailReceiver
but uses IMAP instead of POP3fullSSL
property added forTubMailReceiver
,TubMailSender
andTubMailImap
. Iftrue
- setup TLS before any command to mail server. See README for OpenSSL requirements.
@unitybase/org #
Changed #
5.4.20 2020-11-25 #
-
allow log-in for user who not assigned to employee for members of Admin group (in addition to
admin
androot
user). This fix regression introduced in @unitybase/org@5.4.0.The source of regression is so called "local administrators" - a regional administrator`s in a huge organizations.
5.4.13 2020-11-10 #
org_unit-fm
,org_staffunit-fm
,org_profession-fm
,org_department-fm
: rewritten to vue
Fixed #
5.4.20 2020-11-25 #
org_staffunit-fm
: fixed typo in parent context of org_employeeonstaff grid
5.4.17 2020-11-19 #
org_staffunit-fm
,org_profession-fm
,org_department-fm
: fixed form saving without a requiredcaption
field by addingmasterFieldList
[UBDF-12721]
@unitybase/ub-pub #
Added #
5.5.30 2020-11-14 #
ClientRepository.selectAsArrayOfValues()
- for Repository with ONE attribute returns a flat array of attribute valuesconst usersIDs = await UB.Repository('uba_user').attrs('ID').limit(100).selectAsArrayOfValues() // usersIDs is array of IDs [1, 2, 3, 4]
@unitybase/ub #
Added #
5.7.8 2020-11-20 #
- new
privateSettings
property for entity and attribute added to the JSON schema for entity metadata
5.7.0 2020-11-05 #
ub_migration
&ub_version
entities added
5.6.8 2020-11-01 #
App.blobStores.getContentPath
- retrieve full path to a file with BLOB content- EE & DE edition: added
dstu.iit.strictMode
parameter. If true (default) - force server-side signature format to CADES_X_LONG (enable TSP if disabled)
Fixed #
5.7.7 2020-11-19 #
UB.UBAbort
server side abort error now logged asERR
log level instead ofEXC
(as should be) for UBServer@5.18.20. For UBServer < 5.18.20 nothing changed and UB.UBAbort will be logged asEXC
.
@unitybase/uba #
Added #
5.4.37 2020-11-05 #
- Nav Shortcuts:
Migrations
folder withModels versions
andApplied files
shortcuts
@unitybase/ubcli #
Added #
5.10.0 2020-11-23 #
ubcli execSql
:-withResult
option added - if passed then expect last statement in the batch to be a statement what returns a result, exec it using runSQL and returns a result as JSON
ubcli execSql -sql 'select * from uba_user' -withResult
# run a statement and output colored beautified result
ubcli execSql -sql 'select * from uba_user' -withResult -noLogo | sed -n "/--BEGIN/,/--END/p" | tail -n +2 | head -n -2 | jq -r .
5.9.8 2020-11-20 #
ubcli generateNginxCfg
- added internal locationlocation /{{sendFileLocationRoot}}/models
mdb BLOB store redirect to it agetDocument
requests. This fix problem on production deployment whencmodels
is located in the/var/opt/..
.
5.9.5 2020-11-14 #
ubcli generateNginxCfg
: new parameter-nginxPort
- a port for nginxlisten
directive. If not specified then equal tohttpServer.externalURL
port (if specified, like http://server.com:8083, of 80/443 for short notation of externalUrl). Use this parameter in 2-proxy configurations.
5.9.3 2020-11-10 #
- all
ubcli
command what accept -host parameter now automatically discovers a server URL from ubConfig if-host auto
(or UB_HOST=auto env var) is not explicitly defined. This helps to useubcli
in CI script.
5.9.0 2020-11-05 #
ubcli execSql
: new option-sql script
added for execute SQL script from string. Usage sample:
ubcli execSql -sql
###### ~5.8.0~ ~2020-11-01~
- new `generateDDL` parameter `-c connectionName`. If passed DDL generator works only for entities for specified connection.
- new command `ubcli execSql -c connectionName -f path/to/script.sql`.
Exec a multi-statement SQL script in specified connection without starting a server, so can be used to apply some patches.
Can be used as a module:
```javascript
const execSql = require('@unitybase/ubcli/lib/execSql')
execSql({
connection: 'main',
file: './myScript.sql',
optimistic: true
})
- In case UB > 5.18.15 DDL generator will execute result script using
@unitybase/ubcli/lib/execSql
- split a result file into parts and directly execute SQL statements instead of using runSQL endpoint.
Changed #
5.9.4 2020-11-12 #
ubcli generateNgingCfg
: a final message for CentOS propose to link config to/etc/nginx/conf.d
instead of/etc/nginx/sites-available
for Ubuntu
5.9.3 2020-11-10 #
ubcli execSql
will log first 30 chars of statement for-sql
mode instead of-sql
word
5.9.2 2020-11-08 #
- removed many unnecessary logging messages form
ubcli
tools output.
5.9.1 2020-11-08 #
ubcli createStore
: minimize console output by notify only for newly created directory pathubcli execSql
mute per-statement exception in case it contains--@optimistic
comment somewhere in text. In example below in case table1 already exists exception wil be muted. For table2 - will be raised (--@optimistic
not in statement text).
--@optimistic
create table1 ....
create table2...
5.9.0 2020-11-05 #
linkStatic
command uses realpath for a config to search fornode_modules
. This allows usinglinkStatic
in product based apps, where config is sym-linked from/opt/unitybase/products
.- generateDDL: prevent unnecessary warning for SQLite3 default constraint changing
- generateDDL: removed unnecessary logout after generateDDL function is ends. Consider generateDDL always executed as local root (-u root)
5.8.0 2020-11-01 #
- DDL generator result will join all object annotation (comment on) into one SQL statement - this speed up database generation a lot
- DDL generator for Oracle moves sequence incrementation calls into annotation block, so all of them are executed as a single call
Fixed #
5.9.6 2020-11-15 #
ubcli migrate
- prevent duplicate model insertion intoub_version
for Postgres. For Postgres direct query execution usingDBConnection.selectParsedAsObject
without filed aliases in SQL returns field names in lower case, soselect ID, modelName...
returns[{id: 1, modelname: "}, ..]
). The solution is to specify aliasselect ID ad "ID", modelName as "modelName" ....
- in this case result will be as expected[{ID: 1, modelName: "}, ..]
. Notes - for Oracle fields without aliases is UPPERCASE'S, so alias is mandatory for cross-db solutions.
5.9.1 2020-11-08 #
ubcli migrate
: command line doc addedubcli linkStatic
: skip creation of.entryPoint.js
for modules with folder entry-point For example:"main": "./src"
in package.json. Such links create a file system loop. In any case they can't be required from client side by systemJS.- if invalid arguments is passed to the
ubcli
command it exits with exit code 1. This prevents a batch script from further execution in case of invalid command.
5.9.0 2020-11-05 #
- DDL generator will skip attributes mapped to another existed attribute BEGIN\n import_users.do_import;\n END;--\n delete from aa where 1=0;'
- `ubcli migrate` - see [Version migrations tutorial](https://unitybase.info/api/server-v5/tutorial-migrations.html)
- `ubcli initialize` will fill `ub_version` table by versions of the models on the moment of initialization
###### ~5.8.0~ ~2020-11-01~
- `genSuffixesIndexInitScript` fixed to generate an SQL with valid argument for `dbo.strTails`
- DDL generator: remove warning from a console in case entity metadata is congruence with the database for connection
# [@unitybase/ubm](https://git-pub.intecracy.com/unitybase/ubjs/tree/master/packages/ubm)
#### Fixed
###### ~5.4.26~ ~2020-11-12~
- fix last used scanner and supplement type for UBScan on scanner settings form
###### ~5.4.25~ ~2020-11-10~
- `ubm_desktop-scanerSettings-fm`: fixed correct settings saving and localization [UBDF-12670], [LDOC-1010],
[LDOC-1041], [LDOC-1011], [LDOC-1015]
# [@unitybase/ubq](https://git-pub.intecracy.com/unitybase/ubjs/tree/master/packages/ubq)
#### Added
###### ~5.4.18~ ~2020-11-23~
- `mailerConfig.fullSSL` parameter added to UBQ partial config - use a TLS tunnel for SMTP.
Environment variable - `UB_SMTP_FULL_SSL` (false by default)
# [@unitybase/ubs](https://git-pub.intecracy.com/unitybase/ubjs/tree/master/packages/ubs)
#### Fixed
###### ~5.4.36~ ~2020-11-19~
- a client-side report builder `UBReport` uses a `/clientRequire` endpoint instead of `/getDocument` to obtain a report template.
This fix 404 report template response on production deployment where models can be either inside
app folder (`/opt/unitybase/apps/appName`) or inside appData folder (`var/opt/unitybase/apps/appName`)