Digital Registries (FGA)
Summary
Differences between Registries Platform and specification: |
Main actors' responsibilities and possibilities |
Registry platform supports only DB, Digital Registries supports multiple |
One root entity in Digital registries for one database. Registry platform allows multiple root entities |
Registry Platform supports only relational database to communicate with |
Registry platform have almost the same functionality on a RestAPI level but a bit different approach how to map logical methods onto http rest api methods and organization of rest API in general (POST methods for data read) |
Key Digital Functionalities :
Name |
| Fit Gap Comments |
Administrator | ||
1.Create a new register/database (API or Web user interface); | Implemented |
|
2.Create and configure schema of the register(API or Web user interface); | Implemented |
|
3.Change schema configuration and publish new version of the database and API services (API or Web user interface); | Not the same approach | Changes that lead to the table or column removal are not allowed. |
4.Enter data to the register (API or Web user interface); | Implemented |
|
5.View data records in the register (API or Web user interface); | Could be implemented |
|
6.Update data in the register (API or Web user interface); | Could be implemented |
|
7.Import/export data from/to external files; | Implemented |
|
8.Import/export registry database schema; | Implemented |
|
9.Create API services; | Implemented |
|
10.View statistics(API or Web user interface); | Implemented |
|
11.Inspect transaction log of registry data operations (API or Web user interface). | Implemented |
|
12.Manage access to registry data. Authorize users to see and edit registry records or data field (ABAC based access management). | Could be implemented |
|
13.Share data with other users via e-mail, or via unique and secure URL. sharing can be field level or record level. | Could be implemented |
|
Applicant | ||
1.Search data from the register (API service); | Implemented |
|
2.Read/pull data from the register (API service); | Implemented |
|
3.Create data in the register(API service); | Implemented |
|
4.Update data in the register(API service); | Implemented |
|
5.Delete data in the register (API service); | Implemented |
|
6.Validate if given content exists in specified register (API service); | Implemented |
|
7.Read statistics (API service). | Could be implemented |
|
Cross-Cutting Requirements :
Citizen-Centric (2.1 in Architecture Blueprint) | Could be implemented |
Open (2.2 in Architecture Blueprint ) | Implemented |
Robust ( 2.7 in Architecture Blueprint) | Implemented |
Databases MUST not include business logic (3.21 in Architecture Blueprint) | Implemented |
Privacy and protection of user data | Could be implemented |
Functional Requirements :
Name |
|
|
| Fit Gap Comments |
6.1 User Story 1 - Registry Schema User Interface |
|
|
|
|
DRS-1 | Analysts must have the option to create a new registry database by filling the following information: | Must have | Implemented | Implemented (not part of RR and not over API) |
DRS-2 | Analysts can create multiple databases into one system instance. | Must have | Implemented | Implemented |
DRS-3 | Analysts must have the option to add fields to the database schema. Fields of the database must contain at least the following elements:
| Must have | Could be implemented | 1 and 2 implemented. |
DRS-4 | Analysts must have the option to publish the database. Publishing will reveal the database to users. | Must have | Implemented | Administrators can publish a new version of the database schema. Migration of data should be managed by a migrations script or changes should be compatible by design. |
DRS-5 | Analysts must be able to configure the API services per registry database. | Must have | Implemented | API can be hidden or deleted |
DRS-6 | Authorization to: | Must have | Implemented | Partially implemented |
DRS-7 | The system must log all data processing in the database. | Must have | Could be implemented | Schema changes stored in git. |
DRS-8 | Personal Data usage. | Must have | Could be implemented | Planned to be implemented |
DRS-9 | Analysts must be able to create views of a database. | Optional | Implemented | Implemented without an anonymous user. |
DRS-10 | Must have the option export/import database schema to JSON file, (optional: xls file). | Must have | Implemented | Implemented in XML |
DRS-11 | Import DB structure | Optional | Implemented | Schema first approach is used, so schema defined in XML format from the beginning (liquibase xml) |
DRS-12 | Service usage statistics | Optional | Implemented | Grafana statistic and audit |
DRS-13 | Analyst must be able to mark a field as PersonalData log object- This field contains personal data. | Optional | Could be implemented | Planed |
DRS-14 | Analyst must be able to mark a field as PersonalDataID. This is the data owner’s ID. | Optional | Could be implemented | Planed |
DRS-15 | Analyst must be able to mark a field as secret- This field contains secret data (credit card number). E.g. secret data (card data) must be encrypted while at rest. | Must have | Could be implemented | Planed |
DRS-16 | Analyst must have the option to read database schema in the web UI. | Must have | Implemented | Partially implemented in admin portal, the active phase of development at the moment |
DRS-33 | Analyst has capabilities to configure database field properties:
Validation options- required, unique, max, min.
field mask, format, |
| Implemented | API validation options: could be configured using liquibase configuration API related fields UI related field properties: partially Implemented there is no Field advanced properties and Triggers |
DRS-34 | Analyst must have capabilities to add encryption key per database. | Must have | Implemented | Database data encrypted at transit using SSL Database data is encrypted at rest using storage capabilities utilized by RDMS (so data encrypted at rest, but this is not the responsibility of RDMS itself) Read encrypted data via API is not restricted by encryption key |
DRS-35 | Analyst must have capabilities to automate data exchange between databases internally and externally via API. | Must have | Implemented | We need to run several instances of registry instead of having several databases for single instance of registry |
DRS-36 | Analyst may have capabilities to use database schema templates so that the registry creation is faster. | May have | Could be implemented | We have a single template defined for the “schema first” database definition. So the generic schema template mechanism is in place, it could be extended to have several templates defined and used to build a database schema definition. |
6.2 User Story 2 - CRUD Data in User Interface |
|
|
|
|
DRS-17 | Analysts must have a view to see all data in the registry. | Must have | Could be implemented | The data accessible over API |
DRS-18 | Analysts must have a view to edit data in the registry. Two main views: | Must have | Implemented | Can be implemented by changing configuration |
DRS-19 | Analysts can use additional functions to simplify data searching: | Must have | Implemented | Accessible over API |
DRS-20 | Import data to the registry | Must have | Implemented | An initial data load mechanism already in place. CSV data format is used currently. Support for additional file formats could be added. |
DRS-21 | Export data from the registry | Must have | Implemented | Data accessible via RestAPI. Searching/filtering of data supported. Exact exporting of data to a specific format could be implemented. Redash reports could be used as an alternative to get the data. |
DRS-22 | Statistical queries. | Must have | Could be implemented | Grafana dashboard and time series data could be used to build proper statistic reports |
DRS-33 | Users can share data with other users. | May have | Not the same approach | There are no sharing capabilities of the data in the database itself. The exported data to a specific file or report could be shared potentially and controlled by those shared files in the future (needs to be implemented) |
6.3 User Story 3 - CRUD Data APIs |
|
|
|
|
DRS-23 | BB must enable client systems to process (CRUD) the database records via Open API services. | Must have | Implemented | Implemented |
DRS-24 | BB must have an Open API service list (Swagger) to visualize all API services and API service versions. | Must have | Implemented | Implemented but not used by Applicant |
DRS-25 | System must have an API for PersonalData usage report. | Must have | Could be implemented | Planned |
DRS-26 | Statistical queries via API. | May have | Implemented | Implemented |
DRS-27 | Using viewing event logs- every data owner has the right to see who has looked at their personal data. | Must have | Could be implemented | Planned |
6.4 User Story 4- Registry Schema API |
|
|
|
|
DRS-28 | Developer must have the option to create a new registry database by sending data via API: | Must have | Implemented | Developers creating the database schema definition using admin portal UI |
DRS-29 | Developer can create multiple registry databases into one system instance. | Must have | Implemented | No need to create several databases in a single registry instance. Multiple registry instances could be up an running instead. |
DRS-30 | Developer must have the option to publish the database. Publishing will reveal the database to users. | Must have | Implemented | Implemented. The registry publication pipeline and admin portal are responsible for integrating and publishing new database definitions. |
DRS-31 | Developer must be able to modify API services per registry database. | Must have | Implemented | Implemented for the single database |
DRS-32 | Developer must have the option to read database schema via API. |
| Implemented | Developers can read database schema details via admin portal RestAPI. |
Data Structures :
7.1 Standards/Protocols | |
1.All dates should follow ISO 8601. | Implemented |
2.RFC 7159 - The JavaScript Object Notation (JSON) | Implemented |
3.Open -API Version 3.1.0 | Implemented |
7.3 Data Elements | Could be implemented |
Service APIs :
Name | FitGap Comments | |
8.1 DATA CREATE | Implemented |
|
8.2 DATA UPDATE | Implemented | Implemented and partial update |
8.3 DATA UPDATE-OR-CREATE | Implemented |
|
8.4 DATA UPDATE-ENTRIES | Could be implemented | Batch update not implemented, could be implemented if required |
8.5 DATA LIST (Search) | Could be implemented | Not by regex, search possible by sql operators (like, eq, gt, lt, in, etc) |
8.6 DATA READ | Implemented |
|
8.7 DATA READ-VALUE | Implemented | Can be implemented by SC (returned false ) |
8.8 DATA EXISTS | Implemented | Can be implemented by SC |
8.9 DATA DELETE | Implemented |
|
8.10 DATA My personal data usage | Could be implemented |
|
8.11 DATABASE SCHEMA READ | Implemented |
|
8.12 DATABASE SCHEMA MODIFY | Could be implemented | Will be available via admin-portal (currently in an active phase of development), |
8.13 DATABASE SCHEMA DELETE | Implemented | No need to create several databases for single registry instance. Multiple registry instances could be running instead. |
8.14 DATABASES LIST | Implemented | No need to create several databases for single registry instance. Multiple registry instances could be running instead. |
8.15 DATA CREATE-ENTRIES | Could be implemented | Batch create not implemented but could be implemented if required |