The functional requirements section lists the technical capabilities that this building block should have. These requirements should be sufficient to deliver all functionality that is listed in the Key Digital Functionalities section. These functional requirements do not define specific APIs - they provide a list of information about functionality that must be implemented within the building block.
As an Administrator/Analyst I want to use a web user interface to create a register database (example registry use case - social security program), so that I can configure and launch the registry database instantly to be used by internet users and client systems (e.g. Registration BB, Information Mediator BB) VIA web interface and API.
Actors: Analyst - An administrator user who is creating / changing registry database schema.Main actor/user in these requirements is the Analyst.
Preconditions:
- 1.User is authenticated.
- 2.User is authorized as an admin;
- 3.The user interface is a web interface;
- 4.User has internet;
- 5.System has electricity.
Process:
- 1.Create a new registry database project.
- 2.Define the database fields.
- 3.Publish the database.
- 4.Validate/configure the API services.
- 5.Manage user rights to access the database and APIs.
Post conditions:
- 1.System contains a database that is ready to process new data.
- 2.System has API services to CRUD data (and API to validate if data exist).
- 3.User can enter data to the registry via web UI.
- 4.User can see log information in the UI.
- 5.User can see statistics in the UI.
- 6.User can give authorization to use the database and process data.
REQ-# | Requirement | Type/UC-nr |
---|---|---|
DRS-1 | Analysts must have the option to create a new registry database by filling the following information:
|
Must have UC1 |
DRS-2 | Analysts can create multiple databases into one system instance. Databases must be linkable with foreign keys. See foreign key API description example in Appendix 2. Analysts can configure which databases and which fields are linked in the user interface. In this document and foreign key function we consider databases as database tables that can be linked with one another. See example illustration here. User story: As a user I can browse database content (Data) in the UI and when databases are linked, then I can click and move from one database to another where the corresponding linked data will open in the UI. In the Digital Registries Data user interface, it must be possible to open another database by clicking on the record ID in one database and all corresponding records from the other Database will open. It is required to have at least two levels of ID’s (database ID and field ID) to link the databases. See example API below in Appendix 2. Example: In one registry database we store information about Mother and Child record. In the second registry database we store information about payments made for the mother. System must enable a foreign key link between the payment database to the Mother and child record database. Users can click in the payment database record UI to the Mother ID field and the system UI must open the corresponding record in the Mother and Child database. |
Must have |
DRS-3 | Analysts must have the option to add fields to the database schema.
|
Must have UC1 |
DRS-4 | Analysts must have the option to publish the database. Publishing will reveal the database to users.
|
Must have |
DRS-5 | Analysts must be able to configure the API services per registry database.
|
Must have |
DRS-6 | Authorization to:
Analyst must have the option to manage user rights of a database and data via API and via UI.
Authorization/user rights are stored in addition in the central GovStack IAM system- read more here. |
Must have |
DRS-7 | The system must log all data processing in the database.
See more Audit Logging requirements here. |
Must have UC3 |
DRS-8 | Personal Data usage. System must automatically store all data read requests and store these in log table.
|
UC3 |
DRS-9 | Analysts must be able to create views of a database.
|
Optional |
DRS-10 | Must have the option export/import database schema to JSON file, (optional: xls file). | Must have |
DRS-11 | Import DB structure
|
Optional |
DRS-12 | Service usage statistics
|
Optional |
DRS-13 | Analyst must be able to mark a field as PersonalData log object- This field contains personal data. | UC3 |
DRS-14 | Analyst must be able to mark a field as PersonalDataID. This is the data owner’s ID. | UC3 |
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. Information in transit between the BB-s is secured with encryption. Information in Transit is described and governed by Information Mediator BB. |
Must have |
DRS-16 | Analyst must have the option to read database schema in the web UI. | Must have |
As an Administrator/ Analyst I want to process (CRUD) registry data so that I do not have to know the query language.
Actors:
- Analyst- main actor in these requirements is the Analyst/administrator.
- Data owner- is a physical person whose personal data is stored in the registry.
Preconditions:
- Analyst is authenticated and authorized to use the BB and process data in the database.
- The user interface is a web interface.
- User has internet;
- System has electricity.
Process:
- Analyst searches a record via search or filter function.
- Analyst selects a record.
- Analyst processes a record.
- System stores changes to the Change Log database.
Post conditions:
- Processing changes done by analysts are done and log for change is created.
REQ-# | Requirement | Type |
---|---|---|
DRS-17 | Analysts must have a view to see all data in the registry. Two main views:
|
Must have UC2 UC3 |
DRS-18 |
|
Must have |
DRS-19 | Analysts can use additional functions to simplify data searching:
|
Must have UC2 |
DRS-20 | Import data to the registry Analyst must have an option to import information to the database. Import formats are: json, csv, xls. |
Must have |
DRS-21 | Export data from the registry Analyst must have an option to export selected/filtered data from a registry to CSV, XLS, Json. |
Must have UC2 |
DRS-22 | Statistical queries. The system should have the ability to:
|
Must have |
DRS-33 | Users can share data with other users. Share data with other users via e-mail, or via unique and secure URL. Sharing must be record level and field level. Data sharing can be turned off in authorization module. Data can be shared to anonymous users with URL. |
May have |
As an Applicant I want to process (Create, Read, Update, Delete) data in the registry database.
Actors:
- Applicant - Main actor in these requirements is an applicant via client system. In this use case applicant is any user who is using a client system (Registration BB). For example, a Health Care worker is an applicant in this user story; a mother, using the Registration BB. Example client system in this document is Registration BB.
Preconditions:
- Applicant is using client system (e.g. Registration BB) that is connected to Information Mediator BB;
- Client system has been given authorization to access Registry to process (CRUD) information;
- Applicant has been given authorization to access Registry to process (CRUD) information;
- Applicants are registered in the system and able to use authentication. Applicant is Authenticated by client system or Security BB (Authentication).
- Applicant has internet;
- System has electricity.
Process:
- Applicant uses a client system to process data in the registry
- Applicant can create data;
- Applicant can read data;
- Applicant can update data;
- Applicant can delete data;
- Applicant can create or update data;
- Applicant can validate data.
- System logs all processing events in the dedicated audit registry;
Post conditions:
- When Applicant is authenticated by a client system (e.g. Registration BB) the registry allows processing (CRUD) information from the registry. All users who are authenticated can read data.
- When a user is not authenticated in the system, the system allows to process (CRUD) data from all databases where an anonymous user has been allowed to process data.
- When a user has no authorization, one can not process (CRUD) any information in the registry.
REQ-# | Requirement | Type |
---|---|---|
DRS-23 | BB must enable client systems to process (CRUD) the database records via Open API services.
BB authorizes client systems and users to process data. |
Must have UC1;UC2 |
DRS-24 | BB must have an Open API service list (Swagger) to visualize all API services and API service versions.
If possible then the example must be real so that whoever is looking at the API specifications can test the example data in the service (try it). |
Must have |
DRS-25 | System must have an API for PersonalData usage report.
|
Must have UC3 |
DRS-26 | Statistical queries via API.
|
May have |
DRS-27 | Using viewing event logs- every data owner has the right to see who has looked at their personal data.
|
Must have UC3 |
As an IT-developer I want to Create/update/delete registry database schema via API services.
Actors:
- IT-developer (Developer)- Main actor in these requirements is planning to open a new business program and web form to capture applicants data. Captured data must be registered in the registry. In this use case a Developer is any user who is using API services to create and manage registries database.
Preconditions:
- Developer is using API with a client system or a script that is connected to Information Mediator BB. Client system is any BB that is using API services via IM;
- IT-Developer (IM organization) has been given authorization to Create/update/delete database schemas via API services.
- Developer has internet;
- System has electricity.
Process:
- Developer uses a client system to edit registry database in the BB
- Developer can create database/schema;
- Developer can read database schema;
- Developer can modify database schema;
- Developer can delete database schema and all data in it.
Post conditions:
- When Developer is authorized to use BB API then the Digital Registries BB allows processing (CRUD) schema of a registry. All authorized users can read/create/update/delete database schema;
- When Developer is not authorized to process/CRUD the database schema, the system allows to process schema of all databases where an anonymous user has been allowed to edit database schema (simplification for GovStack Sandbox instance);
- When a user has no authorization, one can not create nor change (CRUD) any schema in the BB.
REQ-# | Requirement | Type |
---|---|---|
DRS-28 | Developer must have the option to create a new registry database by sending data via API:
See full list of example API descriptions /database/modify here. |
Must have |
DRS-29 | Developer can create multiple registry databases into one system instance. | Must have |
DRS-30 | Developer must have the option to publish the database. Publishing will reveal the database to users. | Must have |
DRS-31 | Developer must be able to modify API services per registry database.
|
Must have |
DRS-32 | Developer must have the option to read database schema via API. Developer must have the option to read the list API services available per Database. |
Must have |
The coverage map shows how the Functional Capabilities (by an applicant and a registrar) in specific use cases match the functional requirements described
Use Case | User Journey | Functional Capabilities | Technical Requirements of Admin tools | Technical Requirements of User tools |
---|---|---|---|---|
Registration |
Postpartum and Infant Care | 6. Update Register. The local register is updated for later use. |
4.1 User story 1 - Registry schema User Interface; 4.4 User story 4- Registry schema API; DRS-1; DRS-3; DRS-4; DRS-5; DRS-6 |
4.3 User story 3 - CRUD data APIs; 6. Service APIs; |
Registration |
Postpartum and Infant Care | 9. Update Registry The card number and mothers details are sent to the Govn. Registry for update, e.g. Department of Health or Home Affairs. |
DRS-5 | 4.3 User story 3 - CRUD data APIs; |
Registration | Postpartum and Infant Care | 11. Update Register |
DRS-5; DRS-13; DRS-14 |
4.3 User story 3 - CRUD data APIs; |
Registration | Postpartum and Infant Care | 13. Give Reference Number |
DRS-5 | 4.3 User story 3 - CRUD data APIs; |
Registration | Postpartum and Infant Care | 14. Search Patient Case |
DRS-5; DRS-13; DRS-14 |
4.3 User story 3 - CRUD data APIs; |
Registration |
Postpartum and Infant Care | 15. Update Registry |
DRS-5; DRS-13; DRS-14 |
4.3 User story 3 - CRUD data APIs; |
Payments | Postpartum and Infant Care | 3. Capture details for the Mother Capture data to verify the mother and prevent fraud per legal requirements, for processing later. |
DRS-5; DRS-13; DRS-14; DRS-28; DRS-29; DRS-30; DRS-31. |
4.3 User story 3 - CRUD data APIs; |
Payments | Postpartum and Infant Care | 4.1 Validate the mother has completed all steps | DRS-2; |
4.3 User story 3 - CRUD data APIs; |
Payments | Postpartum and Infant Care | 4.2 Verify mother has no pending incentive voucher for this milestone? | DRS-2; DRS-5; |
4.3 User story 3 - CRUD data APIs; |
Payments | Postpartum and Infant Care | 6. For the mother, a cash payment is given via a paper payment voucher | DRS-2; DRS-5; |
4.3 User story 3 - CRUD data APIs; API - Data |
Payments | Postpartum and Infant Care | 9. Record payment status and amounts in registry | DRS-3 DRS-5; |
4.3 User story 3 - CRUD data APIs; |
Case Management | Postpartum and Infant Care |
3. HC workers have access to minimal required data for the purposes of completing this process. |
DRS-5; | 4.3 User story 3 - CRUD data APIs; |
Case Management | Postpartum and Infant Care |
5. The HC worker updates prescriptions for medication | DRS-2; DRS-5; |
4.3 User story 3 - CRUD data APIs; |
Registration | Unconditional Social Cash Transfer | 3. The admin may create a new registration record if none exists for for the potential beneficiary | DRS-2; DRS-5; |
4.3 User story 3 - CRUD data APIs; |
Registration | Unconditional Social Cash Transfer | 7. Optional: Programme specific data is often entered into a separate Beneficiary Registry associated with a Beneficiary Operations Management System (BOMS)* | DRS-1 DRS-2; DRS-3; DRS-4; DRS-5; |
4.3 User story 3 - CRUD data APIs; |