Support for multiple libraries
Overview
To support multiple libraries, the process will proceed in two stages as follows:
Stage 1: Load the ADAPT standard data to the dev
instance. Ensure that two libraries can operate independently.
Stage 2: Aim for harmonization among the libraries.
Stage 1
The initial task of Stage 1 is to transfer ADAPT standard data to the develop instance with connectSpec. In this case, the following ADAPT data should be transferred:
Users
Namespace
Core Components
Release
Module
Business Contexts (Optional)
Considerations
Library
Add the library concept and similarly establish associations between the library and components (e.g., Library - Core Component).
Users
If there are duplicate users, proceed by overwriting them. If the password or other information differs, overwrite it based on the data in the ADAPT instance.
It may be necessary to assign different access permissions for each user in the future. To support this, it would be beneficial to further categorize user roles by library.
Namespace
Namespaces should also be managed separately by library. Each library should operate independently in this regard.
Core Components
Establish a relationship where each library has multiple releases, and each release contains multiple core components.
It is necessary to consider whether a single core component can exist simultaneously in multiple libraries. To ensure the independent operation of each library, a 1:1 relationship should be established, and if duplication is needed, a copy mechanism should be followed. However, for harmonious operation, a 1:n or m:n relationship may be required.
Since there is no feature to assign different access permissions per library for users, a connectSpec user can modify ADAPT standard, or vice versa.
The criteria applied to the Core Component are also applied to similar entities, such as Code List, Agency ID List, and BIE.
Release
Currently, the Release includes a Working Release, which references the most up-to-date components and is used by developers for the next release development. However, to operate multiple libraries independently, there must be one Working Release for each library.
The Release has a sub-feature called "Generate Migration Script," which is used during the deployment of the release. Currently, it applies to all data except for the BIE and Business Context of the entire release. If individual libraries need to be deployed independently, the data must be separated by library, and a migration script should be generated for each library.
The current Migration Script separates data based on a specific ID number (1 billion), where IDs smaller than this are considered developer data, and IDs larger than this are considered user data. However, this can lead to issues such as conflicts with duplicate IDs when adding libraries. Therefore, a restructuring is needed to avoid using numeric IDs and enable independent deployment.
Module
Modules should also be managed separately by library, ensuring that the ADAPT Module cannot reference the Namespace or Release of connectSpec. Each library should operate independently in this regard.
Business Contexts
Business Context, like users, can retrieve data without much concern. However, whether each library should manage its own independent Business Context needs to be discussed.
UI Changes
Stage 2
TBD