Members
blobStores
static
BLOB stores methods. Usage:
App.blobStores.getContent to get BLOB content
App.blobStores.putContent to put BLOB content
App.blobStores.markRevisionAsPermanent to mark revision as permanent
dbConnections: Object.<string, DBConnection>
static
Databases connections
defaultLang: String
static
readonly
Application default language
domainInfo: UBDomain
static
Extended information about application domain (metadata)
emitterEnabled: Boolean
static
Is event emitter enabled for App singleton. Default is false
- Deprecated:
- Starting from 1.11 this property ignored (always TRUE)
externalURL: String
static
readonly
URL that the User from the internet will use to access your server. To be used in case server is behind a reverse proxy
localIPs
static
List of a local server IP addresses CRLF (or CR for non-windows) separated
package: Object
static
Application package.json content (parsed)
serverConfig: Object
static
readonly
Server configuration - result of argv.getServerConfiguration
Properties:
BLOB stores methods. Usage:
App.blobStores.getContentto get BLOB contentApp.blobStores.putContentto put BLOB contentApp.blobStores.markRevisionAsPermanentto mark revision as permanent
- Starting from 1.11 this property ignored (always TRUE)
package.json content (parsed)
argv.getServerConfiguration
| Name | Type | Description | ||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
httpServer |
Object | HTTP server config |
||||||||||||||||||||||||
application |
Object |
Properties
|
||||||||||||||||||||||||
uiSettings |
Object | Section |
||||||||||||||||||||||||
security |
Object |
serverPublicCert: string static
Contains non empty value in case security.dstu.trafficEncryption === true and key name defined in security.dstu.novaLib.keyName
serverURL: String static readonly
staticPath: String static readonly
Methods
addAppLevelMethod()
static
- Deprecated:
- Use
App.registerEndpoint instead
authFromRequest() → Boolean
static
Try retrieve or create new session from request header
Return true if success
dbCommit(connectionNameopt) → Boolean
static
Commit active database transaction if any.
In case connectionName is not passed will commit all active transactions for all connections.
Return true if transaction is committed, or false if database not in use or no active transaction.
Arguments:
-
[connectionName] (String)
dbInTransaction(connectionName) → Boolean
static
Check database are used in current endpoint context and DB transaction is already active
Arguments:
-
connectionName (String)
dbRollback(connectionNameopt) → Boolean
static
Rollback active database transaction if any.
In case connectionName is not passed will rollback all active transactions for all connections.
Return true if transaction is rollback'ed, or false if database not in use or no active transaction.
Arguments:
-
[connectionName] (String)
dbStartTransaction(connectionName) → Boolean
static
Start a transaction for a specified database. If database is not used in this context will
create a connection to the database and start transaction.
For Oracle with DBLink first statement to DBLink'ed table must be
either update/insert/delete or you MUST manually start transaction
to prevent "ORA-01453: SET TRANSACTION be first statement"
Arguments:
-
connectionName (String)
deleteFromFTSIndex(entityName, instanceID)
static
Delete row from FTS index for exemplar with instanceID of entity entityName (mixin fts must be enabled for entity)
Arguments:
els(entityCode, methodCode) → boolean
static
Check Entity-Level-Security for specified entity/method
if App.els('uba_user', 'insert'){
// do something
}
Arguments:
fileChecksum(pathToFile) → string
static
First check in global cache for a entry "UB_GLOBAL_CACHE_CHECKSUM + filePath"
and if not exists - calculate a checksum using algorithm defined in
CONTROLLER.serverConfig.HTTPServer.watchFileChanges.hashingStrategy
if server in dev mode always return current timestamp
values from cache will be cleared in directoryNotifiers
Arguments:
-
pathToFile (String)
folderChecksum(pathToFolder) → string
static
A folder checksum (see fileChecksum for algorithm details)
Arguments:
-
pathToFolder
getUISettings() → string
static
Return stringified JSON specified in serverConfig.uiSettings
- Deprecated:
- Use App.serverConfig.uiSettings: Object instead
globalCacheGet(key) → String
static
Get value from global cache. Global cache shared between all threads.
Return '' (empty string) in case key not present in cache.
Arguments:
-
key (String)  Key to retrive
globalCachePut(key, value)
static
Put value to global cache.
Arguments:
logout()
static
Logout (kill stored Sessions) current session user
logoutAllWithTheSameNameExceptMe()
static
Logout (kill stored Sessions) all users with the same as
currently logged (except currently logged user)
preventDefault()
static
Accessible inside app-level :before event handler. Call to prevent default method handler.
In this case developer are responsible to fill response object, otherwise HTTP 400 is returned.
registerEndpoint(endpointName, handler, authorizationRequiredopt, isDefaultopt)
static
Register a server endpoint.
One of the endpoints can be default endpoint - it will be used as a fallback
in case URL do not start with any of known endpoints name.
Exceptions inside endpoint handler are intercepted by UB server. In case exception is occurred
server will rollback any active DB transactions and serialize an exception message
to response depending on server execution mode:
- for
dev mode - original exception text will be serialized (for debugging purpose)
for production mode - in case exception message is wrapped into <<<..>>> then this message will be serialized,
if not - text will be always Internal server error (for security reason)
Recommended way to throw an handled error inside endpoint handler is throw new UB.UBAbort('.....')
Arguments:
-
endpointName (String)
-
handler (function)
-
[authorizationRequired=true] (boolean)  If true UB will check for valid Authorization header before
execute endpoint handler
-
[isDefault=false] (boolean)
Example
// Write a custom request body to file FIXTURES/req and echo file back to client
// @param {THTTPRequest} req
// @param {THTTPResponse} resp
//
function echoToFile(req, resp) {
var fs = require('fs');
fs.writeFileSync(FIXTURES + 'req', req.read('bin'));
resp.statusCode = 200;
resp.writeEnd(fs.readFileSync(FIXTURES + 'req', {encoding: 'bin'}));
}
App.registerEndpoint('echoToFile', echoToFile);
resolveStatic(aRequestedFile) → String
static
Resolve aRequestedFile to real file path.
Internally analyse request and if it start with model/ - resolve it to model public folder
else - to inetPub folder.
Will return '' in case of error (filePath not under inetPub or model/) to prevent ../../ attack
Arguments:
-
aRequestedFile (String)
serviceMethodByPassAuthentication()
static
- Deprecated:
- Use
App.registerEndpoint instead
updateFTSIndex(entityName, instanceID)
static
Update FTS index for for exemplar with instanceID of entity entityName (mixin fts must be enabled for entity).
In case row dose not exist in FTS perform insert action automatically.
Arguments:
- Use
App.registerEndpointinstead
connectionName is not passed will commit all active transactions for all connections.
Return true if transaction is committed, or false if database not in use or no active transaction.
[connectionName] (String)
connectionName (String)
connectionName is not passed will rollback all active transactions for all connections.
Return true if transaction is rollback'ed, or false if database not in use or no active transaction.
[connectionName] (String)
For Oracle with DBLink first statement to DBLink'ed table must be either update/insert/delete or you MUST manually start transaction to prevent "ORA-01453: SET TRANSACTION be first statement"
connectionName (String)
instanceID of entity entityName (mixin fts must be enabled for entity)
Check Entity-Level-Security for specified entity/method
if App.els('uba_user', 'insert'){
// do something
}
pathToFile (String)
pathToFolder
- Use App.serverConfig.uiSettings: Object instead
Return '' (empty string) in case key not present in cache.
key (String)  Key to retrive
:before event handler. Call to prevent default method handler.
In this case developer are responsible to fill response object, otherwise HTTP 400 is returned.
Register a server endpoint. One of the endpoints can be default endpoint - it will be used as a fallback in case URL do not start with any of known endpoints name.
Exceptions inside endpoint handler are intercepted by UB server. In case exception is occurred server will rollback any active DB transactions and serialize an exception message to response depending on server execution mode:
- for
devmode - original exception text will be serialized (for debugging purpose) for production mode - in case exception message is wrapped into
<<<..>>>then this message will be serialized, if not - text will be alwaysInternal server error(for security reason)Recommended way to throw an handled error inside endpoint handler is
throw new UB.UBAbort('.....')
endpointName (String)
handler (function)
[authorizationRequired=true] (boolean)  If true UB will check for valid Authorization header before
execute endpoint handler
[isDefault=false] (boolean)
// Write a custom request body to file FIXTURES/req and echo file back to client
// @param {THTTPRequest} req
// @param {THTTPResponse} resp
//
function echoToFile(req, resp) {
var fs = require('fs');
fs.writeFileSync(FIXTURES + 'req', req.read('bin'));
resp.statusCode = 200;
resp.writeEnd(fs.readFileSync(FIXTURES + 'req', {encoding: 'bin'}));
}
App.registerEndpoint('echoToFile', echoToFile);model/ - resolve it to model public folder
else - to inetPub folder.
Will return '' in case of error (filePath not under inetPub or model/) to prevent ../../ attack
aRequestedFile (String)
- Use
App.registerEndpointinstead
instanceID of entity entityName (mixin fts must be enabled for entity).
In case row dose not exist in FTS perform insert action automatically.