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 :

Parent

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).

Account

This package contains all the objects which are specifically associated with a user of the system.

Object Description
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.

API

Only one class in this package. This one is used to store the authentication keys for the API framework.

Object Description
ApiRegistration An object which stores the application key and shared secret for the BizDock API authentication framework.

Common

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.

Kpi

This package contains various classes related to the KPI framework.

Patcher

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).

Plugin

This class contains the persistent representation of the BizDock plugins and widgets widgets.

Object Description
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.
PluginConfigurationBlock This table is linked to a PluginConfiguration and contains a configuration “element” for a named plugin. This could be a set of properties, a javascript snippet, etc.
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)

Scheduler

deprecated This class is not used anymore.

Workspace

deprecated This class is not used anymore.

BizDock desktop data model

This data model gathers the “business” objects of BizDock. These objects are :

Api/utils

This package only contains one object “DateFormatter” which is used to format dates in JSON (see API).

Architecture

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”.

Datasyndication

Deprecated

Delivery

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

Finance

This package contains the various financial objects of BizDock namely:

  • Initiative budget objects (which represents the budget of an initiative - see Initiative budget)
  • Organization budget “buckets” (which represents the budget of an organization and is possibly associated with a cost center - see Budget bucket)

Governance

This package contains the governance related objects.

PMO

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)

Reporting

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).

Timesheet

This package contains the objects related to the Timesheet module of BizDock.