Domain object model (metadata) - in-memory representation of all *.meta files included in the application config. Developer should never create UBDomain class directly, but instead use a:

  
      // server-side example
 const UB = require('@unitybase/ub')
 const App = UB.App
 let ubaAuditPresent = App.domainInfo.has('uba_audit')
  

# new UBDomain (domainInfoobject)

Arguments:
  • domainInfo: object
    • domainobject

      raw entities collection

    • entityMethodsobject

      entities methods access rights for current user

    • modelsobject

      information about domain models

    • i18nobject

      entities localization to current user language

    getDomainInfo UB server method result

Members

# dialectsPriority static

Priority to apply a mapping of a attributes/entities to the physical tables depending on connection dialect

Name Type Description
MSSQL2012
MSSQL2008
MSSQL
Oracle11
Oracle10
Oracle9
Oracle
PostgreSQL
AnsiSQL
Firebird
SQLite3

# EntityCacheTypes static

Name Type Description
None
Entity
Session
SessionEntity

# EntityDataSourceType : string static

Entity dataSource types

Name Type Description
Normal string
External string
System string
Virtual string

# ExpressionType static

Types of expressions in attribute mapping

Name Type Description
Field
Expression

# ubDataTypes static

Possible types of the attributes

Name Type Description
String Small string. MSSQL: NVARCHAR, ORACLE: NVARCHAR2, POSTGRE: VARCHAR
Int 32-bite Integer. MSSQL: INT, ORACLE: INTEGER, POSTGRE: INTEGER
BigInt 64-bite Integer. MSSQL: BIGINT, ORACLE: NUMBER(19), POSTGRE: BIGINT
Float Double. MSSQL: FLOAT, ORACLE: NUMBER(19, 4), POSTGRE: NUMERIC(19, 4)
Currency Currency. MSSQL: FLOAT, ORACLE: NUMBER(19, 2), POSTGRE: NUMERIC(19, 2)
Boolean Boolean. MSSQL: TINYINT, ORACLE: NUMBER(1), POSTGRE: SMALLINT
DateTime Date + Time in UTC (GMT+0) timezone. MSSQL: DATETIME, OARCLE: DATE, POSTGRE: TIMESTAMP WITH TIME ZONE
Text Long strint. MSSQL: NVARCHAR(MAX), ORACLE: CLOB, POSTGRE: TEXT
ID Alias for BigInt
Entity Reference to enother entity. BigInt
Document Store a JSON with information about Document place in blob store
Many
TimeLog Seconds since UNIX epoch, Int64. MSSQL: BIGINT, ORACLE: NUMBER(19), POSTGRE: BIGINT
Enum Enumertion (see ubm_enum)
BLOB Bynary data. MSSQL: VARBINARY(MAX), ORACLE: BLOB, POSTGRE: BYTEA
Date Date (without time) in UTC (GMT+0)
Json Json stored in database. Postgres: JSONB, _MSSQL: NVARCHAR(4000), ORACLE: NVARCHAR2(2000)

# ubServiceFields static

Service attribute names

Name Type Description
dateFrom
dateTo

# connections : Array.<DBConnectionConfig> instance

Connection collection (extended domain only)

# customerModels : Array.<string> instance

Array of customer models names

# defaultConnection : DBConnectionConfig instance

Default connection (extended domain only)

# entities : Object.<string, UBEntity> instance

Map with keys is entity name, value is UBEntity

# models : Object.<string, UBModel> instance

Models collection

# orderedModels : Array.<UBModel> instance

Array of models, sorted by the order of loading

# vendorModels : Array.<string> instance

Array of vendor models names

Methods

# getPhysicalDataType (dataTypestring) → string static

Return physical type by UBDataType

Arguments:

# eachEntity (cbdomainEntitiesIteratorCallback) → object instance

Iterates over domain entities and invokes callBack for each entity. The iteratee is invoked with three arguments: (UBEntity, entityName, UBDomain.entities)

# filterEntities (predicateobject) → Array.<UBEntity> instance

Filter entities by properties

Arguments:
  • predicate: object| function

    Either a function passed to lodash filter or object

  
      // sessionCachedEntities contains all entities with property cacheType === Session
var sessionCachedEntities = domain.filterEntities({cacheType: 'Session'});
  

# get (entityCodestring, raiseErrorIfNotExistsoptboolean) → UBEntity instance

Get entity by code

Arguments:
  • entityCode: string
  • raiseErrorIfNotExists = true: boolean

    If true(default) and entity does not exists throw error

# has (entityCodestring) → boolean instance

Check entity present in domain & user has access right for at least one entity method

Arguments:

# isEntityMethodsAccessible (entityCodestring, methodNamesstring) → boolean instance

Check all provided entity methods are accessible via ELS.

If entity does not exist in domain or at last one of provided methods is not accessible - return false

Arguments: