Skip to content

ACUITY DB third party solutions tables

Kantemir Tvorogov edited this page Aug 9, 2023 · 1 revision

ACUITY uses many third party libraries, and some of them use their own database tables, so ACUITY does not define the structure and relations of these tables. Despite that, it may be useful to be familiar with them.

Spring Security and Spring Security ACL

The following tables store data used by Spring Security. They function as data storage for the access management system: users, groups, memberships, global permissions etc. These data are all dynamic.

  • users - users
  • groups - groups of users
  • group_members - users memberships in groups
  • authorities - roles assigned to users (in ACUITY, it's always DEFAULT_ROLE for all users)
  • group_authorities - roles assigned to groups

There is also a group of ACL tables that are managed by Spring Security ACL; they are never accessed directly from ACUITY code. In ACUITY, Spring Security ACL is used to manage permissions to access to different business entities (datasets etc) and ownerships of these entities for users and roles. These data are all dynamic except acl_class and acl_remote. ACL tables are:

  • acl_class - full names of managed entities Java classes. In ACUITY, their list is short and never changed, so it is Static data.
  • acl_sid - subjects of access permissions and ownerships: users and roles (linked to users and group_authorities table entries)
  • acl_object - objects of access permissions and ownerships: datasets, drug programmes, clinical studies (also: not main place to store objects data, just relations to them)
  • acl_entry - access permissions for subjects to objects
  • acl_object_identity - ownerships of objects by subjects
  • acl_remote - remote ACL locations; not used in current ACUITY configuration. Static data.

Spring Batch data

These tables are used by Spring Batch. Spring Batch works as a job management system in AdminUI ACUITY application. Its tables store data about the source files processing and their data conversion to the database entries.

  • batch_job_execution
  • batch_job_execution_context
  • batch_job_execution_params
  • batch_job_instance
  • batch_job_params
  • batch_step_execution
  • batch_step_execution_context You can find more detailed description of these tables here

Quartz Scheduler data

AdminUI application uses Quartz Scheduler for the time management of Spring Batch jobs. Quartz Scheduler stores its data in DB tables, but it never uses most of these tables in case of ACUITY. Quartz Scheduler tables are normally never accessed directly by ACUITY code.

  • qrtz_blob_triggers
  • qrtz_calendars
  • qrtz_cron_triggers
  • qrtz_fired_triggers
  • qrtz_job_details
  • qrtz_locks
  • qrtz_paused_trigger_grps
  • qrtz_scheduler_state
  • qrtz_simple_triggers
  • qrtz_simprop_triggers
  • qrtz_triggers

Flyway data

ACUITY uses Flyway to uphold and update database schema (not as a part of main applications; there is a special project acuity-flyway).

  • flyway_schema_history - database schema history
  • schema_version - empty table; legacy from old Flyway version. It will be removed soon.
Clone this wiki locally