BizDock data model
BizDock is built around an extensible data model which spans most of the business concepts of PPM and enterprise governance management. There are a few principles for BizDock objects:
- Each object map to a table
- Most of the objects are “never” deleted (they have a “deleted” flag but are not physically deleted from the database). There is however a few exceptions such as the Principal object.
Framework data model
The framework data model gathers the “technical” objects of the application. These are the objects which are not specific to the PPM domain and could be potentially reused for other types of applications. These objects are :
This package contains two interfaces which are used a lot through the application:
- IModel : is the interface implemented by most of the BizDock objects. It defines a set of standard behaviors.
- IModelConstants : contains some variables which are used with @Column annotations in the @Entity objects. For instance MEDIUM_STRING is used to define String columns of 64 characters (which are usually mapped to VARCHAR(64).
This package contains all the objects which are specifically associated with a user of the system.
|Credential||This object contains the credentials of a user (= the authentication parameters). Its content depends on the authentication model which is selected.|
|Notification||This object represents a notification for a user. In BizDock the users can be notified or the completion of some asynchronous tasks or if some actions are required (example: validation of a governance milestone)|
|NotificationCategory||This objects represents the type of a notification.|
|Preference||This object contains a “reference” to a user or system preference. This one works in combination with the custom attributes framework (see the “common” package below).|
|Principal||This object represents a “user” of the system. There is one principal record per “user”.|
|Shortcut||This object represents a shortcut or a bookmark. A user can indeed in BizDock “bookmark” a certain page to access it quicker.|
|SystemLevelRole||A system level role is an association between a user (a Principal) and a SystemLevelRoleType which is actually a “role” definition.|
|SystemLevelRoleType||A role in BizDock. A role is an aggregation of permissions. The administrator of BizDock can define, by configuration, as many roles as required.|
|SystemPermission||A permission which provides certain rights to a user. These permissions are mapped to “variables” (in https://github.com/theAgileFactory/app-framework/blob/master/app/framework/commons/IFrameworkConstants.java or in https://github.com/theAgileFactory/maf-desktop-datamodel/blob/master/app/constants/IMafConstants.java). These variables are used in annotations at controller or controller-method level.|
Only one class in this package. This one is used to store the authentication keys for the API framework.
|ApiRegistration||An object which stores the application key and shared secret for the BizDock API authentication framework.|
This package contains various “utility” classes such as :
- ActionLog : which is used to “log” actions performed by a user
- Country or Address
This package also contains various classes related to the custom attributes framework.
This package contains various classes related to the KPI framework.
This class is used along the patcher. The patcher is a BizDock technical feature which is used to perform some “data patching” activity in the context of a new release. When BizDock is started (depending on the application release) it will execute some “patching” code (see AbstractDatabaseDependencyServiceImpl the patching service which is “extended” in BizDock and can execute some custom code).
|DashboardPage||This table contains the data description of a home page “dashboard” page|
|DashboardRowTemplate||This table actions references a set of widgets which are attached to a row of a dashboard page|
|DashboardWidget||The configuration of a widget (specific to a user)|
|DashboardWidgetColor||An enum listing the possible colors for a BizDock widget|
|PluginDefinition||This table contains the list of available “plugins”. This list is used to “filter” the list of plugins which are available to the users. Indeed the plugins are dynamically loaded from a plugin JAR but the system read this table to know which are the plugins which are to be “available” to the BizDock administrator.|
|PluginConfiguration||This table contains the configuration data for a plugin “instance”. If the plugin allows it (example: a JIRA plugin) it is possible to create multiple instance of the same plugin type with different configurations.|
|PluginIdentificationLink||This table is used by the plugins which “synchronized” BizDock objects with external objects. This table stores the association between a BizDock object and a third party object.|
|PluginLog||This table contains the plugin logs. These ones are displayed in the plugin administration interface.|
|PluginRegistration||This table stores the association between a plugin and a BizDock object. Today the only object to which a plugin can be “registered” is an initiative (see Initiative plugin integration)|
deprecated This class is not used anymore.
deprecated This class is not used anymore.
BizDock desktop data model
This data model gathers the “business” objects of BizDock. These objects are :
This package only contains one object “DateFormatter” which is used to format dates in JSON (see API).
This package contains a data object to be used to represent an architecture Block. The purpose is to represent an architecture as a hierarchical tree of “blocks”.
This package contains the objects which are related to the “initiative” deliveries (see Initiative deliveries), namelly:
- deliverables, which represents “something” produced by a delivery
- requirements, which represents an “initiative” requirement
This package contains the various financial objects of BizDock namely:
This package contains the governance related objects.
This package contains the objects which are related to the core PPM features of BizDock, namely:
- PortfolioEntry (Initiative) which can be used to represent any kind of activity (project for instance)
This package contains the objects which are used by the reporting framework. BizDock makes use of Jasper Reports to execute some reports. It is possible to create some custom reports and deploy them dynamically into a BizDock instance (such as a plugin).
This package contains the objects related to the Timesheet module of BizDock.