4. User stories 4.1. User - Profile management [canceled] Id 4.1. Description As a Generic User I need to be able to update my personal information So that my information stays accurate and up to date Priority High Actors User API Calls N/A Linked Processes Status Canceled - We don't keep personal information that would need to be updated Preconditions The User must be authenticated. Postconditions The System returns the updated user information. Main flow The User triggers an update of his profile user the APIs (PUT/PATCH). The system returns the update user information. Exceptions [400 Bad Request] Invalid input: If mandatory fields are missing or invalid, the system returns an error message. [500 Internal Server Error] System Error If the system fails to save changes due to an internal error, it displays an appropriate message and logs the error for further investigation. 4.2. User - Change password Id 4.2. Description As a Generic User I want to be able to change my password   So that I can keep my account secure Priority High Actors User API Calls N/A Linked Processes Status Implemented - Only user with access to django-admin use password authentication, and therefore only these users can perform a password change via UI.  API users, use API keys and don't have passwords to manage. Preconditions The User must be authenticated. The User must known his old password Postconditions The System returns a confirmation that the password has been reset. Main flow The User triggers a credential change via the django-admin UI. The system returns a confirmation indicating the the password has been updated. Exceptions [400 Bad Request] Invalid input: If mandatory fields are missing or invalid, the system returns an error message. [500 Internal Server Error] System Error If the system fails to save changes due to an internal error, it displays an appropriate message and logs the error for further investigation. 4.3. User - Manage user secrets [canceled] Id 4.3. Description As a Generic User I want to be able to manage my secrets linked to the chosen authentication mechanism and to revoke consents given to external applications, So that I can grant and revoke access given to external applications to my account Priority High Actors User API Calls N/A Linked Processes Status Canceled - Each application will receive a dedicated user with the appropriate role and a dedicated access token Preconditions The User must be authenticated. Postconditions The System returns a list of external application to which the user has granted access. The system updates the external application secrets / information as requested by the user. If the user choses to revoke the external application’s permissions, the system deletes that external application’s credentials and the application can no longer access the system on behalf of the user. Main flow The User retrieves the list of external applications to which he has granted access (GET). The user performs the updates needed to the external applications grants (e.g. update secrets, change name, …) (PUT) If needed the user can revoke the access granted to an external application (DELETE) The system applies the instructions given by the user. Exceptions [400 Bad Request] Invalid input: If mandatory fields are missing or invalid, the system returns an error message. [500 Internal Server Error] System Error If the system fails to save changes due to an internal error, it displays an appropriate message and logs the error for further investigation. 4.4. Application Administrator - Create users Id 4.4. Description As a Application Administrator , I must be able to create user accounts and assigning them the appropriate roles, So that I can control access to the system and ensure that each user has the correct permissions based on their responsibilities. Priority High Actors Application Administrator API Calls GET /admin/api-users POST /admin/api-users Linked Processes Status Implemented Preconditions The User must be authenticated and have the Application Administrator role. The system must have a list of predefined roles available for assignment. Postconditions The user list is updated with the new accounts. All assigned roles are correctly enforced by the system Main flow The Application Administrator retrieves a list of existing users with their details and roles (GET). The Application Administrator uses an API to add a new user by entering required details (e.g., name, email) and assigning roles (POST). The system validates the input data. The system saves the changes and updates the user list. Exceptions [400 Bad Request] Invalid input: If mandatory fields are missing or invalid, the system returns an error message. [409 Already Exists] Duplicate User If the Application Administrator attempts to add a user with an email already registered, the system returns an error and prevents duplicate creation. [500 Internal Server Error] System Error If the system fails to save changes due to an internal error, it displays an appropriate message and logs the error for further investigation. 4.5. Application Administrator - Update users Id 4.5. Description As a Application Administrator , I must be able to update user accounts and re-assign them appropriate roles, So that I can control access to the system and ensure that each user has the correct permissions based on their responsibilities. Priority High Actors User API Calls GET /admin/api-users/ PUT /admin/api-users/ PATCH /admin/api-users/ Linked Processes Status Implemented Preconditions The User must be authenticated and have the Application Administrator role. The system must have a list of predefined roles available for assignment. The user to be modified must exist on the platform Postconditions The user list is updated with the modified accounts. All assigned roles are correctly enforced by the system. Main flow The Application Administrator retrieves a list of existing users with their details and roles (GET). The Application Administrator uses an API to modify an existing user by modifying the required details (e.g., name, email) and assigning roles (PUT/PATCH). The system validates the input data. The system saves the changes and updates the user list. Exceptions [400 Bad Request] Invalid input: If mandatory fields are missing or invalid, the system returns an error message. [404 Not found] User not found If the Application Administrator attempts to modify a user that does not exist, the system returns an error and prevents the action. [500 Internal Server Error] System Error If the system fails to save changes due to an internal error, it displays an appropriate message and logs the error for further investigation. 4.6. Application Administrator - Delete users Id 4.6. Description As a Application Administrator , I must be able to mark a user for deletion, So that I can remove the access for users that no longer require it, and to ensure that personal data linked to old users are properly removed from the system without impacting existing data. Priority High Actors Application Administrator  API Calls PUT /admin/api-users/ PATCH /admin/api-users/ DELETE /admin/api-users/ Linked Processes Status Implemented Preconditions The User must be authenticated and have the Application Administrator role. The user to be deleted must exist on the platform Postconditions The user is marked as “inactive”. The user is disabled and can no longer login or use the system in any way. After a period of X days (X being configurable by the Application Administrator ), all personal data of that user is deleted (name, lastname, email) and replaced by generic data. IMPORTANT: No data entries linked to the vertical cabling datasets that are linked to that user are deleted! The organisation information, to which that user was linked is kept. Main flow The Application Administrator retrieves a list of existing users with their details and roles (GET). The Application Administrator uses an API to modify the existing user and the flag “is_active=false” (PUT/PATCH/DELETE). The system validates the input data. The system saves the changes and updates the user list. After the pre-defined period the system deletes all personal data linked to the inactive user. Exceptions [400 Bad Request] Invalid input: If mandatory fields are missing or invalid, the system returns an error message. [403 Forbidden] User cannot delete himself If the Application Administrator attempts to delete his own user, an error will be returned. [404 Not found] User not found If the Application Administrator attempts to modify a user that does not exist, the system returns an error and prevents the action. [500 Internal Server Error] System Error If the system fails to save changes due to an internal error, it displays an appropriate message and logs the error for further investigation. 4.7. Application Administrator - Recover users marked for deletion Id 4.7. Description As a Application Administrator , I must be able to recover a user marked for deletion, So that I can recover the access of a user that was deleted by mistake. Priority High Actors Application Administrator API Calls GET /admin/api-users/ PUT /admin/api-users/ PATCH /admin/api-users/ Linked Processes Status Implemented Preconditions The User must be authenticated and have the Application Administrator role. The system must have a list of predefined roles available for assignment. The user to be recovered must be inactive and not yet be deleted. Postconditions The user is active. The user can again login and use the system in accordance with the assigned roles. Main flow The Application Administrator retrieves the user that is marked for deletion (GET). The Application Administrator uses an API to recover the user removing the flag “marked for deletion” (PUT/PATCH). The system validates the input data. The system saves the changes and updates the user list. Exceptions [400 Bad Request] Invalid input: If mandatory fields are missing or invalid, the system returns an error message. [404 Not found] User not found If the Application Administrator attempts to recover a user that does not exist, the system returns an error and prevents the action. [409 Not marked for deletion] User not marked for deletion If the Applicaiton Administrator attempts to recover a user that is not marked for deleting, the system returns an error and prevents the action. [500 Internal Server Error] System Error If the system fails to save changes due to an internal error, it displays an appropriate message and logs the error for further investigation. 4.8. Application Administrator - Create access tokens [new] Id 4.8. Description As an Application Administrator I need to be able to create access tokens linked to existing users So that I can grant access to the APIs to the different users Priority High Actors Application Administrator API Calls POST /admin/tokens Linked Processes N/A Status Implemented Preconditions The User must be authenticated and have the Application Administrator role. The User for which the Application Administrator wants to create a token must exist on the platform. Postconditions The User token is generated Main flow The Application Administrator retrieves the users. The Application Administrator uses the API to generate a token for the selected user. The system returns the generated token Exceptions [400 Bad Request] Invalid input: If mandatory fields are missing or invalid, the system returns an error message. [409 Already exists] Token already exists A token already exists for the given user. [500 Internal Server Error] System Error If the system fails to save changes due to an internal error, it displays an appropriate message and logs the error for further investigation. 4.9. Application Administrator - Delete access tokens [new] Id 4.9. Description As an Application Administrator I need to be able to delete access tokens So that I can revoke access to the APIs for the different users Priority High Actors Application Administrator API Calls DELETE /admin/tokens Linked Processes Status Implemented Preconditions The User must be authenticated and have the Application Administrator role. The Token that the Application Administrator wants to delete a token must exist on the platform. Postconditions The User token is deleted Main flow The Application Administrator retrieves the existing tokens. The Application Administrator uses the API to delete a selected token. The system confirms that the token was deleted. Exceptions [400 Bad Request] Invalid input: If mandatory fields are missing or invalid, the system returns an error message. [404 Not Found] Token not found The token, that the Application Administrator tried to delete does not exist. [500 Internal Server Error] System Error If the system fails to save changes due to an internal error, it displays an appropriate message and logs the error for further investigation. 4.10. Application Administrator - View audit logs Id 4.10. Description As an Application Administrator I want to have access to audit logs So that I can find out what actions have been performed in the system and by whom Priority High Actors User API Calls GET /audit-logs GET /audit-logs/ Linked Processes Status Implemented Preconditions The User must be authenticated and have the Application Administrator role. Postconditions The System returns the list of audit logs. Main flow The Application Administrator retrieves the audit logs using the API (GET). Optionally the Application Administrator can filter logs linked to to a specific: user site block unit The user can also specify a time range of interest. The system validates the request parameters. The system returns the list of audit logs that match the query. Exceptions [400 Bad Request] Invalid input: If mandatory fields are missing or invalid, the system returns an error message. [404 Not found] Data not found If the Application Administrator attempts to retrieve audit logs using filters for resources that do not exist, the system will return an error. [500 Internal Server Error] System Error If the system fails to save changes due to an internal error, it displays an appropriate message and logs the error for further investigation. 4.11. Application Administrator - View all data on the platform Id 4.11. Description As an Application Administrator I need to see everything that happens in the system including the data itself So that I can analyse any potential issues in the system Priority Low Actors Application Administrator API Calls GET /admin/addresses GET /admin/sites GET /admin/blocks GET /admin/units GET /admin/equipments GET /admin/physical-links Linked Processes Status Implemented Preconditions The User must be authenticated and have the Application Administrator role. Postconditions The System returns the requested data. Main flow The Application Administrator retrieves any information related to vertical cabling : audit logs sites blocks units equipments physical links … The system validates the request parameters. The system returns the list of requested data. Exceptions [400 Bad Request] Invalid input: If mandatory fields are missing or invalid, the system returns an error message. [404 Not found] Data not found If the Application Administrator attempts to retrieve a resources that does not exist, the system will return an error. [500 Internal Server Error] System Error If the system fails to save changes due to an internal error, it displays an appropriate message and logs the error for further investigation. 4.12. Application Administrator - Restore deleted records Id 4.12. Description As an Application Administrator I need to be able to recover records marked as deleted So that I can rollback invalid changes Priority High Actors Application Administrator API Calls POST /sites//restore  POST /blocks//restore POST /units//restore POST /equipments//restore Linked Processes Status Implemented Preconditions The User must be authenticated and have the Application Administrator role. The User must have a deleted record that he wants to recover Postconditions The System recovers the selected record. Main flow The Application Administrator retrieves a record marked as deleted. The Application Administrator recovers the record. The system validates the request parameters. The system recovers the deleted record. Exceptions [400 Bad Request] Invalid input: If mandatory fields are missing or invalid, the system returns an error message. [404 Not found] Data not found If the Application Administrator attempts to recover a resources that does not exist, the system will return an error. [409 Not deleted] Data not marked as deleted If the Application Administrator attempts to recover a resources that is not marked as deleted, the system will return an error. [500 Internal Server Error] System Error If the system fails to save changes due to an internal error, it displays an appropriate message and logs the error for further investigation. 4.13. Application Administrator - Un-reject/approve an approved/rejected record Id 4.13. Description As an Application Administrator I need to be able to un-approve/reject a record that was unintentionally rejected/approved   So that I can rollback invalid changes and allow the approvers to correct their mistakes. Priority Low Actors User API Calls POST /phyiscal-links//reset-approval/ Linked Processes Status Implemented Preconditions The User must be authenticated and have the Application Administrator role. The User must have an approved/rejected record that he wants to un-approve/reject Postconditions The System rolls back the approval/rejection. Main flow The Application Administrator retrieves a record marked as approved/rejected. The Application Administrator un-approves/rejects the record. The system validates the request parameters. The system rolls back the approval/rejection. Exceptions [400 Bad Request] Invalid input: If mandatory fields are missing or invalid, the system returns an error message. [404 Not found] Data not found If the Application Administrator attempts to un-approve/reject a resources that does not exist, the system will return an error. [409 Not approved/reject] Data not marked as approved or rejected If the Application Administrator attempts to rollback a resources that is not marked as approved or rejected, the system will return an error. [500 Internal Server Error] System Error If the system fails to save changes due to an internal error, it displays an appropriate message and logs the error for further investigation. 4.14. Application Administrator - Export all Id 4.14. Description As an Application Administrator I want to be able to export the entire database in a format that is supported by external analytics platforms (JSON, CSV) such as Tableau So that I can perform analytics no top of my data Priority High Actors Application Administrator API Calls N/A Linked Processes Status Not started Preconditions The User must be authenticated and have the Application Administrator role. Postconditions The System returns a file containing the exported data (Json, CSV, …). Main flow The Application Administrator triggers the export of the entire vertical cabling data and specifies the format of the export (Json, CSV,…) The system returns a file containing the requested data (Json, CSV, …). Exceptions [400 Bad Request] Invalid input: If mandatory fields are missing or invalid, the system returns an error message. [500 Internal Server Error] System Error If the system fails to save changes due to an internal error, it displays an appropriate message and logs the error for further investigation. 4.15. Application Administrator - Monitoring Id 4.15. Description As an Application Administrator   I want to have access to the health status of each component of the system   So that I can quickly identify issues and resolve them. Priority High Actors Application Administrator API Calls N/A Linked Processes Status Implemented Preconditions The User must be authenticated and have the Application Administrator role. Postconditions The System returns returns all necessary health metrics and visualisations needed to identify if the system is running as intended. Main flow The Application Administrator logs into the monitoring interface The System returns the necessary views / information relevant to the health of the system 4.16. Application Administrator - Alerting Id 4.16. Description As an Application Administrator   I want to be notified if the monitoring detects any issues with the components of the system   So that I can take corrective actions and inform the customers in case of issues. Priority High Actors User API Calls N/A Linked Processes Status Not started Preconditions The System identifies an incident that requires immediate attention Postconditions The System notifies the Application Administrators and any other contacts as specified by MyConnectivity that an incident has been detected. (e-mail / sms / other ? ) Main flow The System detects an incident The System notifies the Application Administrators as well as the other contacts as specified by MyConnectivity that an incident has been detected. (e-mail / sms / other ? ) 4.17. Application Administrator - Lightweight Administration Panel Id 4.17. Description As an Application Administrator   I need a lightweight administration panel where I can perform all the above mentioned actions. The panel should usable on Desktop/Tablet/Mobile (PWA).   So that I can perform my duties as Application Administrator. Priority High Actors Application Administrator API Calls N/A Linked Processes Status Implemented Preconditions The User must be authenticated and have the Application Administrator role. Postconditions The User has access to a lightweight administration panel Main flow The User logs into the administration panel The User can perform all the actions linked to the Application Administrator role 4.18. Application Administrator - Define webhooks [new] Id 4.18. Description As an Application Administrator I need to be able to configure webhooks  So that the platform notifies external systems of events Priority High Actors Application Administrator API Calls Not done via API calls. Webhooks are configured in the Django Administration panel Linked Processes Status Not started Preconditions The User must be authenticated and have the Application Administrator role. The User has an external application that he wants to integrate. Postconditions The Webhook is configured and the selected events trigger the external application. Main flow The Application Administrator  navigates to django admin and configures a new Webhook. The Application Administrator   selects the URL of the external application to which the system will send notifications. The Application Administrator  selects the type of events that should be sent to the external application. The Application Administrator   configures the authentication method and saves. 4.19. Organisation Administrator - Create organisation users Id 4.19. Description As an Organisation Administrator ,   I want to create user accounts belonging to my organisation by adding users and assigning them appropriate roles,   So that I can control access to the system for my organisation and ensure that each user has the correct permissions based on their responsibilities. Priority Medium Actors Organisation Administrator API Calls GET /admin/api-users POST /admin/api-users Linked Processes Status Implemented Preconditions The User must be authenticated and have the Organisation Administrator role. The system must have a list of predefined roles available for assignment. Postconditions The user list is updated with the new user account. The new user belongs to the same organisation as the Organisation Administrator and can only be assigned with roles of type Editor, Organisation Approver, Organisation Administrator or Viewer. All assigned roles are correctly enforced by the system Main flow The Organisation Administrator retrieves the list of existing users for his organisation with their details and roles (GET). The Application Administrator uses the APIs to add a new user by entering required details (e.g., name, email) and assigning valid roles (Editor, Validator, Organisation Administrator or Viewer) (POST). The system validates the input data and adds the right organisation to the newly created user. The system saves the changes and updates the user list. Exceptions [400 Bad Request] Invalid input: If mandatory fields are missing or invalid, the system returns an error message. [404 Already Exists] Duplicate User If the Organisation Administrator attempts to add a user with an email already registered, the system returns an error message and prevents duplicate creation. [500 Internal Server Error] System Error If the system fails to save changes due to an internal error, it displays an appropriate message and logs the error for further investigation. 4.20. Organisation Administrator - Update organisation users Id 4.20. Description As an Organisation Administrator , I want to update user accounts belonging to my organisation and assigning them appropriate roles, So that I can control access to the system for my organisation and ensure that each user has the correct permissions based on their responsibilities. Priority Medium Actors Organisation Administrator API Calls GET /admin/api-users/ PUT /admin/api-users/ PATCH /admin/api-users/ Linked Processes Status Implemented Preconditions The User must be authenticated and have the Organisation Administrator role. The system must have a list of predefined roles that organisation administrators can assign to their users. This is not the full list of roles available (only will include Editor, Organisation Approver, Viewer and Organisation Administrator). The user to be modified must exist on the platform and belong to the organisation of the Organisation Administrator Postconditions The user list is updated with the modified account. The modified user belongs to the Organisation Administrator ’s organisation The modified user only has roles that can be assigned by the Organisation Administrator. All assigned roles are correctly enforced by the system Main flow The Organisation Administrator retrieves a list of existing users that belong to his organisation with their details and roles (GET). The Organisation Administrator uses an API to modify an existing user by modifying the required details (e.g., name, email) and assigning roles (PUT/PATCH). The system validates the input data. The system saves the changes and updates the user list. Exceptions [400 Bad Request] Invalid input: If mandatory fields are missing or invalid, the system returns an error message. [404 Not found] User not found If the Organisation Administrator attempts to modify a user that does not exist or does not belong to his organisation, the system returns an error and prevents the action. [500 Internal Server Error] System Error If the system fails to save changes due to an internal error, it displays an appropriate message and logs the error for further investigation. 4.21. Organisation Administrator - Delete organisation users Id 4.21. Description As an Organisation Administrator , I want to be able to mark users of my organisation for deletion, So that I can ensure that users that do no longer require access to the System have their access revoked. Priority Medium Actors Organisation Administrator API Calls PUT /admin/api-users/ PATCH /admin/api-users/ DELETE /admin/api-users/ Linked Processes Status Implemented Preconditions The User must be authenticated and have the Organisation Administrator role. The user to be deleted must exist on the platform and belong to the Organisation Administrator’s organisation Postconditions The user is marked as “inactive”. The user is disabled and can no longer login or use the system in any way. After a period of X days (configurable by the Application Administrator ), all personal data of that user is deleted (name, lastname, email) and replaced by generic data. IMPORTANT: No data entries linked to the vertical cabling datasets that are linked to that user are deleted! The organisation information, to which that user was linked is kept. Main flow The Organisation Administrator retrieves a list of existing users that belong to his organisation with their details and roles (GET). The Organisation Administrator uses an API to modify the existing user and the flag “active=false” (PUT/PATCH). The system validates the input data. The system saves the changes and updates the user list. After the pre-defined period the system deletes all personal data linked to the inactive user. Exceptions [400 Bad Request] Invalid input: If mandatory fields are missing or invalid, the system returns an error message. [403 Forbidden] User cannot delete himself If the Organisation Administrator attempts to delete his own user, an error will be returned. [404 Not found] User not found If the Organisation Administrator attempts to modify a user that does not exist or does not belong to his organisation, the system returns an error and prevents the action. [500 Internal Server Error] System Error If the system fails to save changes due to an internal error, it displays an appropriate message and logs the error for further investigation. 4.22. Organisation Approver - Recover organisation users marked for deletion Id 4.22. Description As an Organisation Administrator ,   I want to be able to recover a user marked for deletion that belongs to my organisation,   So that I can recover the access of a user that was deleted by mistake. Priority Low Actors Organisation Administrator API Calls GET /admin/api-users/ PUT /admin/api-users/ PATCH /admin/api-users/ Linked Processes Status Implemented Preconditions The User must be authenticated and have the Organisation Administrator role. The system must have a list of predefined roles available for assignment. The user to be recovered must belong to the Organisation Administrator’s organisation, be marked for deletion and not yet be deleted. Postconditions The user is not marked as inactive any more. The user is enabled and can again login and use the system in accordance with the assigned roles. Main flow The Organisation Administrator retrieves the user that belongs to his organisation and is marked for deletion (GET). The Organisation Administrator uses an API to recover the user removing the flag “marked for deletion” (PUT/PATCH). The system validates the input data. The system saves the changes and updates the user list. Exceptions [400 Bad Request] Invalid input: If mandatory fields are missing or invalid, the system returns an error message. [404 Not found] User not found If the Organisation Administrator attempts to recover a user that does not exist or does not belong to his organisation, the system returns an error and prevents the action. [409 Not marked for deletion] User not marked for deletion If the Organisation Administrator attempts to recover a user that is not marked for deleting, the system returns an error and prevents the action. [500 Internal Server Error] System Error If the system fails to save changes due to an internal error, it displays an appropriate message and logs the error for further investigation. 4.23. Organisation Administrator - Create organisation access tokens [new] Id 4.23. Description As an Organisation Administrator I need to be able to create access tokens linked to existing users of my organisation So that I can grant access to the APIs to the different users Priority Medium Actors Organisation Administrator API Calls POST /admin/tokens Linked Processes N/A Status Implemented Preconditions The User must be authenticated and have the Organisation Administrator role. The User for which the Organisation Administrator wants to create a token must exist on the platform. Postconditions The User token is generated Main flow The Organisation Administrator retrieves the users. The Organisation Administrator uses the API to generate a token for the selected user. The system returns the generated token Exceptions [400 Bad Request] Invalid input: If mandatory fields are missing or invalid, the system returns an error message. [409 Already exists] Token already exists A token already exists for the given user. [500 Internal Server Error] System Error If the system fails to save changes due to an internal error, it displays an appropriate message and logs the error for further investigation. 4.24. Organisation Administrator - Delete organisation access tokens [new] Id 4.24. Description As an Organisation  Administrator I need to be able to delete access tokens for users belonging to my organisation So that I can revoke access to the APIs for the different users Priority Medium Actors Application Administrator API Calls DELETE /admin/tokens Linked Processes Status Implemented Preconditions The User must be authenticated and have the Organisation Administrator role. The Token that the Organisation  Administrator wants to delete a token must exist on the platform. Postconditions The User token is deleted Main flow The Organisation  Administrator retrieves the existing tokens. The Organisation  Administrator uses the API to delete a selected token. The system confirms that the token was deleted. Exceptions [400 Bad Request] Invalid input: If mandatory fields are missing or invalid, the system returns an error message. [404 Not Found] Token not found The token, that the Organisation  Administrator tried to delete does not exist. [500 Internal Server Error] System Error If the system fails to save changes due to an internal error, it displays an appropriate message and logs the error for further investigation. 4.25. Organisation Administrator - View organisation audit logs Id 4.25. Description As an Organisation Administrator ,   I want to have access to audit logs of all the actions perform by the users assigned to my organisation   So that I can find out what actions have been performed in the system and by whom Priority Low Actors Organisation Administrator API Calls GET /audit-logs GET /audit-logs/ Linked Processes Status Implemented Preconditions The User must be authenticated and have the Organisation Administrator role. Postconditions The System returns the list of audit logs that are linked to users that belong to the Organisation Administrator’s organisation. Main flow The Organisation Administrator retrieves the audit logs using the API (GET). Optionally the Organisation Administrator can filter logs linked to to a specific: user of the Organisation Administrator’s organisation site block unit The user can also specify a time range of interest. The system validates the request parameters. The system returns the list of audit logs that match the query and are linked to the Organisation Administrator’s organisation. Exceptions [400 Bad Request] Invalid input: If mandatory fields are missing or invalid, the system returns an error message. [404 Not found] Data not found If the Organisation Administrator attempts to retrieve audit logs using filters for resources that do not exist or belong to another organisation, the system will return an error. [500 Internal Server Error] System Error If the system fails to save changes due to an internal error, it displays an appropriate message and logs the error for further investigation. 4.26. Organisation Administrator - Un-reject/approve an approved/rejected record lined to organisation Id 4.26. Description As an Organisation Administrator   I need to be able to un-approve/reject a record belonging to my organisation that was unintentionally rejected/approved.   So that I can rollback invalid changes and allow the approvers to correct their mistakes. Priority Medium Actors Organisation Administrator API Calls POST /phyiscal-links//reset-approval/ Linked Processes Status Implemented Preconditions The User must be authenticated and have the Organisation Administrator role. The User must have an approved/rejected record that belongs to his organisation and that he wants to un-approve/reject Postconditions The System rolls back the approval/rejection. Main flow The Organisation Administrator retrieves a record marked as approved/rejected that belongs to his organisation. The Organisation Administrator un-approves/rejects the record. The system validates the request parameters. The system rolls back the approval/rejection. Exceptions [400 Bad Request] Invalid input: If mandatory fields are missing or invalid, the system returns an error message. [400 Bad Request] Record already approved / un-approved: If the user tries to approve a record that is already approved an error is returned. [404 Not found] Data not found If the Organisation Administrator attempts to un-approve/reject a resources that does not exist or does not belong to his organisation, the system will return an error. [409 Not approved/reject] Data not marked as approved or rejected If the Organisation Administrator attempts to rollback a resources that is not marked as approved or rejected, the system will return an error. [500 Internal Server Error] System Error If the system fails to save changes due to an internal error, it displays an appropriate message and logs the error for further investigation. 4.27. Organisation Administrator - Restore records deleted by the organisation Id 4.27. Description As an Organisation Administrator I need to be able to recover records marked as deleted by my organisation. So that I can rollback invalid changes Priority High Actors Organisation Administrator API Calls POST /sites//restore POST /blocks//restore POST /units//restore POST /equipments//restore Linked Processes Status Implemented Preconditions The User must be authenticated and have the Organisation Administrator role. The User must have a deleted record that he wants to recover The record must have been deleted by a user in his organisation Postconditions The System recovers the selected record. Main flow The Organisation Administrator retrieves a record marked as deleted. The Organisation Administrator recovers the record. The system validates the request parameters. The system recovers the deleted record. Exceptions [400 Bad Request] Invalid input: If mandatory fields are missing or invalid, the system returns an error message. [404 Not found] Data not found If the Organisation Administrator attempts to recover a resources that does not exist, the system will return an error. [409 Not deleted] Data not marked as deleted If the Organisation Administrator attempts to recover a resources that is not marked as deleted, the system will return an error. [500 Internal Server Error] System Error If the system fails to save changes due to an internal error, it displays an appropriate message and logs the error for further investigation. 4.28. Editor - Create temporary address Id 4.28. Description As an Editor ,    I want to be able to add a missing address to the System,   So that I am not blocked by missing information and can perform my contribution. Priority High Actors Editor API Calls POST /addresses Linked Processes 7.2. Create missing address process Status Implemented Preconditions The User must be authenticated and have the Editor role. The User has all the required address information Postconditions The requested address is created with a flag (validated = false) indicating that the address is not validated and is temporary. If a site structure is provided, the site structure is persisted and linked to the created address. If no site structure is provided, a default site structure is persisted and linked to the created address. The requested address is returned to the user. Main flow See linked process Exceptions See linked process 4.29. Editor - Create an additional temporary address for an existing site [canceled] This call has been removed. Addresses now need to be configured on the blocks exclusively and are back populated to the sites. Id 4.29. Description As an Editor ,   I want to be able to add a missing address to an existing site,   So that I can find the site independently of the address used to search it. Priority Medium Actors Editor API Calls POST /sites//addresses Linked Processes 7.3. Create missing address for existing site or block process Status Implemented Preconditions The User must be authenticated and have the Editor role. The User has the site id to which he wants to add an address The User has all the required address information Postconditions The requested address is created with a flag (validated = false) indicating that the address is not validated and is temporary. The created address is linked to the given site The requested address is returned to the user. Main flow See linked process Exceptions See linked process 4.30. Editor - Create an additional temporary address for an existing block Id 4.30. Description As an Editor ,   I want to be able to add a missing address to an existing block,   So that I can find the block or site independently of the address used to search it. Priority Medium Actors Editor API Calls POST /blocks//addresses Linked Processes 7.3. Create missing address for existing site or block process Status Implemented Preconditions The User must be authenticated and have the Editor role. The User has the block id to which he wants to add an address The User has all the required address information Postconditions The requested address is created with a flag (validated = false) indicating that the address is not validated and is temporary. The created address is linked to the given block The requested address is returned to the user. Main flow See linked process Exceptions See linked process 4.31. Editor - Add a site Id 4.31. Description As an Editor ,   I want to be able to create a site for an address that already exists in the register,   So that I am not blocked by missing information and can perform my contribution. Priority High Actors User API Calls POST /sites Linked Processes Status Implemented Preconditions The User must be authenticated and have the Editor role. The User has on or more addresses to which the new site needs to be assigned to. The User has the mandatory site information Postconditions The system returns the created site Main flow The Editor uses an API call to create a new site for a given list of addresses. The system validates the input parameters. The system returns the created site Exceptions [400 Bad Request] Invalid input: If mandatory fields are missing or invalid, the system returns an error message. [409 Conflict] Addresses already used Error returned by the system if the all or some of the given address are already linked to another site or block. [500 Internal Server Error] System Error If the system fails to save changes due to an internal error, it displays an appropriate message and logs the error for further investigation. 4.32. Editor - Update a site Id 4.32. Description As an Editor ,   I want to be able to update the site information,   So that I can correct the site’s name and/or contact if it is missing or wrong. Priority High Actors Editor API Calls PATCH /sites/ PUT /sites/ Linked Processes Status Implemented Preconditions The User must be authenticated and have the Editor role. The User has a valid site ID to update The User has new name or contact information to assign to the site Postconditions The system returns the updated site Main flow The Organisation Editor uses an API call to update a specific site by ID (PUT / PATCH). The system validates the search parameters. The system returns the list of sites that match the searched address. Exceptions [400 Bad Request] Invalid input: If mandatory fields are missing or invalid, the system returns an error message. [404 Not Found] Site not found Error returned by the system if the site is not found. [409 Conflict] Addresses already used Error returned by the system if the all or some of the given address are already linked to another site or block. [500 Internal Server Error] System Error If the system fails to save changes due to an internal error, it displays an appropriate message and logs the error for further investigation. 4.33. Editor - Delete a site Id 4.33. Description As an Editor ,   I want to be able to delete a site that has been demolished or entered multiple times with different addresses,   So that I can correct the registry, avoid confusion and improve reliability on the data. Priority Medium Actors Editor API Calls DELETE /sites/ Linked Processes Status Implemented Preconditions The User must be authenticated and have the Editor role. The User has a valid site ID to delete The User has selected a reason for deleting the site Postconditions The system returns a confirmation that the site has been marked as “to be deleted”. Main flow The Organisation Editor uses an API call to delete a specific site by ID (DELETE). The system validates the input parameters. The system marks the site, its blocks and its units as well as their connections as “to be deleted”. WARNING: If the site is already used somewhere in the system, the site gets marked as deleted but is kept in the database. The system returns a confirmation that the site has been marked as “to be deleted” Exceptions [400 Bad Request] Invalid input: If mandatory fields are missing or invalid, the system returns an error message. [404 Not Found] Site not found Error returned by the system if the site is not found. [500 Internal Server Error] System Error If the system fails to save changes due to an internal error, it displays an appropriate message and logs the error for further investigation. 4.34. Editor - Add a block Id 4.34. Description As an Editor ,   I want to be able to create a missing block for a given site,   So that I can attach at a later stage the units for which I need to create vertical cabling entries. Priority High Actors User API Calls POST /blocks Linked Processes Status Implemented Preconditions The User must be authenticated and have the Editor role. The User has a site id for which he wants to create a block The User has the name of the block and list of zero or more addresses to be linked to that specific block Postconditions The system returns the created block Main flow The Editor uses an API call to create a new block for a given site. The system validates the input parameters. The system returns the created block Exceptions [400 Bad Request] Invalid input: If mandatory fields are missing or invalid, the system returns an error message. [409 Conflict] Addresses already used Error returned by the system if the all or some of the given address are already linked to another site. [500 Internal Server Error] System Error If the system fails to save changes due to an internal error, it displays an appropriate message and logs the error for further investigation. 4.35. Editor - Update a block Id 4.35. Description As an Editor ,   I want to be able to update wrong or missing block information,   So that I can improve the quality and reliability of the register. Priority High Actors Editor API Calls PUT /blocks/ PATCH /blocks/ Linked Processes Status Implemented Preconditions The User must be authenticated and have the Editor role. The User has a block id for which he wants to send an update The User has the name of the block and list of zero or more addresses to be linked to that specific block Postconditions The system returns the updated block Main flow The  Editor uses an API call to update a specific block by ID (PUT / PATCH). The system validates the input parameters. The system returns the updated block Exceptions [400 Bad Request] Invalid input: If mandatory fields are missing or invalid, the system returns an error message. [404 Not Found] Block not found Error returned by the system if the given block does not exist. [409 Conflict] Addresses already used Error returned by the system if the all or some of the given address are already linked to another site or block. [500 Internal Server Error] System Error If the system fails to save changes due to an internal error, it displays an appropriate message and logs the error for further investigation. 3.36. Editor - Delete a block Id 4.36. Description As an Editor ,   I want to be able to delete a block that was created by mistake,   So that I can improve the quality and reliability of the register. Priority Medium Actors Editor API Calls DELETE /blocks/ Linked Processes Status Implemented Preconditions The User must be authenticated and have the Editor role. The User has a block id that he wants to delete The site for which the block is being deleted has more than one block. The User has a valid reason to delete the block Postconditions The system returns a confirmation that the block has been marked as “to be deleted”. Main flow The Organisation Editor uses an API call to delete a specific block by ID (DELETE). The system validates the input parameters. The system marks the block, its units as well as their connections as “to be deleted”. WARNING: If the block is already used somewhere in the system, the block gets marked as deleted but is kept in the database. The system returns a confirmation that the block has been marked as “to be deleted”. Exceptions [400 Bad Request] Invalid input: If mandatory fields are missing or invalid, the system returns an error message. [404 Not Found] Block not found Error returned by the system if the given block does not exist. [409 Conflict] Site must have at least one block Error returned by the system if the given block is the only block of a site. A site must always have at least one block attached to. [500 Internal Server Error] System Error If the system fails to save changes due to an internal error, it displays an appropriate message and logs the error for further investigation. 4.37. Editor - Add a unit Id 4.37. Description As an Editor ,   I want to be able to create a missing unit for a given block,   So that I can attach at a later stage the vertical cabling entries for that unit. Priority High Actors Editor API Calls POST /units Linked Processes Status Implemented Preconditions The User must be authenticated and have the Editor role. The User has a block id for which he wants to create a block The User has the mandatory unit information Postconditions The system returns the created unit Main flow The  Editor uses an API call to create a new unit for a given block. The system validates the input parameters. The system returns the created unit Exceptions [400 Bad Request] Invalid input: If mandatory fields are missing or invalid, the system returns an error message. [500 Internal Server Error] System Error If the system fails to save changes due to an internal error, it displays an appropriate message and logs the error for further investigation. 4.38. Editor - Update a unit Id 4.38. Description As an Editor ,   I want to be able to update wrong or missing unit information,   So that I can improve the quality and reliability of the register. Priority High Actors Editor API Calls PUT /units/ PATCH /units/ Linked Processes Status Implemented Preconditions The User must be authenticated and have the Editor role. The User has a unit id for which he wants to send an update The User has the mandatory unit information Postconditions The system returns the updated unit Main flow The  Editor uses an API call to update a specific unit by ID (PUT / PATCH). The system validates the input parameters. The system returns the updated unit Exceptions [400 Bad Request] Invalid input: If mandatory fields are missing or invalid, the system returns an error message. [404 Not Found] Unit not found Error returned by the system if the given unit does not exist. [500 Internal Server Error] System Error If the system fails to save changes due to an internal error, it displays an appropriate message and logs the error for further investigation. 4.39. Editor - Delete a unit Id 4.39. Description As an Editor ,   I want to be able to delete a unit that was created by mistake,   So that I can improve the quality and reliability of the register. Priority Medium Actors Editor API Calls DELETE /units/ Linked Processes Status Implemented Preconditions The User must be authenticated and have the Editor role. The User has a unit id that he wants to delete The User has a valid reason to delete the unit Postconditions The system returns a confirmation that the unit has been marked as “to be deleted”. Main flow The  Editor uses an API call to delete a specific unit by ID (DELETE). The system validates the input parameters. The system marks the unit as well as its connections as “to be deleted”. WARNING: If the unit is used anywhere else in the system, the unit is marked as deleted but kept in the database. The system returns a confirmation that the unit has been marked as “to be deleted”. Exceptions [400 Bad Request] Invalid input: If mandatory fields are missing or invalid, the system returns an error message. [404 Not Found] Unit not found Error returned by the system if the given unit does not exist. [500 Internal Server Error] System Error If the system fails to save changes due to an internal error, it displays an appropriate message and logs the error for further investigation. 4.40. Editor - Add an equipment Id 4.40. Description As an Editor ,   I want to be able to create a missing equipment for a given unit,   So that I can determine at a later stage if the vertical cabling connects a given unit has a connected equipment to the NTP/BAP. Priority High Actors Editor API Calls POST /equipments Linked Processes Status Implemented Preconditions The User must be authenticated and have the Editor role. The User has a unit id for which he wants to create an equipment The User has the mandatory equipment information Postconditions The system returns the created equipment Main flow The  Editor uses an API call to create a new equipment for a given unit. The system validates the input parameters. The system returns the created equipment Exceptions [400 Bad Request] Invalid input: If mandatory fields are missing or invalid, the system returns an error message. [500 Internal Server Error] System Error If the system fails to save changes due to an internal error, it displays an appropriate message and logs the error for further investigation. 4.41. Editor - Update an equipment Id 4.41. Description As an Editor ,   I want to be able to update wrong or missing equipment information,   So that I can improve the quality and reliability of the register. Priority High Actors Editor API Calls PUT /equipments/ PATCH /equipments/ Linked Processes Status Implemented Preconditions The User must be authenticated and have the Editor role. The User has an equipment id for which he wants to send an update The User has the mandatory equipment information Postconditions The system returns the updated unit Main flow The  Editor uses an API call to update a specific equipment by ID (PUT / PATCH). The system validates the input parameters. The system returns the updated equipment Exceptions [400 Bad Request] Invalid input: If mandatory fields are missing or invalid, the system returns an error message. [404 Not Found] Equipment not found Error returned by the system if the given equipment does not exist. [500 Internal Server Error] System Error If the system fails to save changes due to an internal error, it displays an appropriate message and logs the error for further investigation. 4.42. Editor - Delete an equipment Id 4.42. Description As an Editor ,   I want to be able to delete an equipment that was created by mistake or has been decommissioned,   So that I can improve the quality and reliability of the register. Priority High Actors Editor API Calls DELETE /equipments/ Linked Processes Status Implemented Preconditions The User must be authenticated and have the Editor role. The User has a equipment id that he wants to delete The User has a valid reason to delete the equipment Postconditions The system returns a confirmation that the equipment has been marked as “to be deleted”. Main flow The  Editor uses an API call to delete a specific equipment by ID (DELETE). The system validates the input parameters. The system marks the equipment as “to be deleted”. WARNING: If the equipment is already used somewhere else in the system, the equipment is marked as deleted but is kept in the database. The system returns a confirmation that the equipment has been marked as “to be deleted”. Exceptions [400 Bad Request] Invalid input: If mandatory fields are missing or invalid, the system returns an error message. [404 Not Found] Equipment not found Error returned by the system if the given equipment does not exist. [500 Internal Server Error] System Error If the system fails to save changes due to an internal error, it displays an appropriate message and logs the error for further investigation. 4.43. Editor - Attach pictures [postponed] Id 4.43. Description As an Editor ,   I want to be able to add pictures to a specific site, bloc or unit,   So that I can document my register entries and complex on premise situations. Priority Medium Actors Editor API Calls POST /pictures Linked Processes Status Postponed Preconditions The User must be authenticated and have the Editor role. The User has a site id / block id / unit id to which he wants to attach an image The User has the has the image to be uploaded Postconditions The system returns the URL and meta data of the created picture Main flow The  Editor uses an API call to upload a new picture for a given site/block/unit. The system validates the input parameters. The system returns the created picture url and metadata Exceptions [400 Bad Request] Invalid input: If mandatory fields are missing or invalid, the system returns an error message. [500 Internal Server Error] System Error If the system fails to save changes due to an internal error, it displays an appropriate message and logs the error for further investigation. 4.44. Editor - Delete Pictures [postponed] Id 4.44. Description As an Editor ,   I want to be able to delete a picture that is not up to date anymore,   So that I can improve the quality and reliability of the register. Priority High Actors Editor API Calls DELETE /pictures/ Linked Processes Status Postponed Preconditions The User must be authenticated and have the Editor role. The User has a picture id that he wants to delete The User has a valid reason to delete the picture Postconditions The system returns a confirmation that the picture has been marked as “to be deleted”. Main flow The Editor uses an API call to delete a specific picture by ID (DELETE). The system validates the input parameters. The system marks the picture as “to be deleted”. WARNING: The picture is marked as deleted but kept in the database. The system returns a confirmation that the picture has been marked as “to be deleted”. Exceptions [400 Bad Request] Invalid input: If mandatory fields are missing or invalid, the system returns an error message. [404 Not Found] picture not found Error returned by the system if the given picture does not exist. [500 Internal Server Error] System Error If the system fails to save changes due to an internal error, it displays an appropriate message and logs the error for further investigation. 4.45. Editor - Search a site by address Id 4.45. Description As an Editor ,   I want to be able to search for an address and retrieve the linked site information,   So that I can get an understanding of the vertical cabling situation on site. Priority High Actors Editor API Calls GET /sites Linked Processes Status Implemented Preconditions The User must be authenticated and have the Editor role. The User inputs a full or partial address Postconditions The system returns the list of sites that match the searched address Main flow The Editor uses an API call to query the sites by using either a full address or partial address information (GET). The system validates the search parameters. The system returns the list of sites that match the searched address Exceptions [400 Bad Request] Invalid input: If mandatory fields are missing or invalid, the system returns an error message. [500 Internal Server Error] System Error If the system fails to save changes due to an internal error, it displays an appropriate message and logs the error for further investigation. 4.46. Editor - Send an update vertical cabling request Id 4.46. Description As an Editor ,   I want to be able to send an update for a vertical cable entry,   So that I can add information on my interventions on vertical cabling as well as to improve the quality and reliability of the register. Priority High Actors Editor API Calls POST /physical-links Linked Processes 7.5. Send update vertical cabling request process Status Implemented Preconditions The User must be authenticated and have the Editor role. The User has the equipment ids of the two equipment for which he wants to send an update request or the equipment id of the source equipment and the unit id of the destination. The User has all the mandatory information (physical link type, physical link added / deleted) Postconditions The system returns a confirmation that the update request was successfully transmitted Main flow The  Editor uses an API call to send an update for a connection in between two units. The system validates the input parameters. The system returns the confirmation that the update was successfully transmitted including the complete object that was stored. Exceptions [400 Bad Request] Invalid input: If mandatory fields are missing or invalid, the system returns an error message. [500 Internal Server Error] System Error If the system fails to save changes due to an internal error, it displays an appropriate message and logs the error for further investigation. 4.47. Approver - Approve deleted site request Id 4.47. Description As an Approver ,   I need to be able to approve site deletion requests,   So that I can guarantee that no site is deleted by mistake and to preserve the quality and reliability of the register Priority Medium Actors Approver API Calls POST /sites//approve POST /sites//reject PUT /sites/ PATCH  /sites/ Linked Processes 7.7. Approve delete site request Status Implemented Preconditions The User must be authenticated and have the  Approver role. The User has a valid site ID that is marked as “to be deleted” Postconditions The system returns a confirmation that the decision (validation/rejection) has successfully been applied Main flow The Approver uses an API call to approve/reject the site deletion by ID (POST). The system validates the deletion request. The system returns the confirmation that the request has been approved/rejected Exceptions [400 Bad Request] Invalid input: If mandatory fields are missing or invalid, the system returns an error message. [404 Not Found] Site not found Error returned by the system if the site is not found. [500 Internal Server Error] System Error If the system fails to save changes due to an internal error, it displays an appropriate message and logs the error for further investigation. 4.48. Approver - Approve deleted block request Id 4.48. Description As an Approver ,   I need to be able to approve block deletion requests,   So that I can guarantee that no block is deleted by mistake and to preserve the quality and reliability of the register Priority Medium Actors Approver API Calls POST /blocks//approve POST /blocks//reject  PUT /blocks/ PATCH /blocks/ Linked Processes 7.8. Approve delete block request Status Implemented Preconditions The User must be authenticated and have the  Approver role. The User has a valid block ID that is marked as “to be deleted” Postconditions The system returns a confirmation that the decision (validation/rejection) has successfully been applied Main flow The Approver uses an API call to approve/reject the block deletion by ID (POST). The system validates the deletion request. The system returns the confirmation that the request has been approved/rejected Exceptions [400 Bad Request] Invalid input: If mandatory fields are missing or invalid, the system returns an error message. [404 Not Found] Block not found Error returned by the system if the block is not found. [500 Internal Server Error] System Error If the system fails to save changes due to an internal error, it displays an appropriate message and logs the error for further investigation. 4.49. Approver - Approve deleted unit request Id 4.49. Description As an Approver ,   I need to be able to approve unit deletion requests,   So that I can guarantee that no unit is deleted by mistake and to preserve the quality and reliability of the register Priority Medium Actors Approver API Calls POST /units//approve POST /units//reject PUT /units/ PATCH /units/ Linked Processes 7.9. Approve delete unit request Status Implemented Preconditions The User must be authenticated and have the  Approver role. The User has a valid unit ID that is marked as “to be deleted” Postconditions The system returns a confirmation that the decision (validation/rejection) has successfully been applied Main flow The Approver uses an API call to approve/reject the unit deletion by ID (POST). The system validates the deletion request. The system returns the confirmation that the request has been approved/rejected Exceptions [400 Bad Request] Invalid input: If mandatory fields are missing or invalid, the system returns an error message. [404 Not Found] Unit not found Error returned by the system if the unit is not found. [500 Internal Server Error] System Error If the system fails to save changes due to an internal error, it displays an appropriate message and logs the error for further investigation. 4.50. Approver - Approve deleted equipment request Id 4.50. Description As an Approver ,   I need to be able to approve equipment deletion requests,   So that I can guarantee that no equipment is deleted by mistake and to preserve the quality and reliability of the register Priority Medium Actors Approver API Calls POST  /equipments//approve POST  /equipments//reject PUT /equipments/ PATCH /equipments/ Linked Processes 7.10. Approve delete equipment request Status Implemented Preconditions The User must be authenticated and have the  Approver role. The User has a valid equipment id that is marked as “to be deleted” Postconditions The system returns a confirmation that the decision (validation/rejection) has successfully been applied Main flow The Approver uses an API call to approve/reject the equipment deletion by id (POST). The system validates the deletion request. The system returns the confirmation that the request has been approved/rejected Exceptions [400 Bad Request] Invalid input: If mandatory fields are missing or invalid, the system returns an error message. [404 Not Found] Equipment not found Error returned by the system if the NTP is not found. [500 Internal Server Error] System Error If the system fails to save changes due to an internal error, it displays an appropriate message and logs the error for further investigation. 4.51. Approver - Approve or reject update vertical cabling request Id 4.51. Description As an Approver ,   I need to be able to approve an update vertical cabling request   So that I can guarantee that the data updates performed on the registry are accurate and meet the needed data quality standards. Priority High Actors Approver API Calls GET /physical-links POST /physical-links//approve POST /physical-links//reject PUT /physical-links/ PATCH /physical-links/ Linked Processes 7.6. Approve update vertical cabling request Status Implemented Preconditions The User must be authenticated and have the  Approver role. The User has a valid Physical Link ID that has to be validated Postconditions The system returns a confirmation that the decision (validation/rejection) has successfully been applied Main flow The Approver retrieves the list of physical links to be approved (GET) The Approver can perform amendments if needed prior to the approval The Approver uses an API call to approve/reject the physical link by ID (POST). The System validates the approval request. The System returns the confirmation that the request has been approved/rejected Exceptions [400 Bad Request] Invalid input: If mandatory fields are missing or invalid, the system returns an error message. [404 Not Found] Physical link not found Error returned by the system if the physical link is not found. [500 Internal Server Error] System Error If the system fails to save changes due to an internal error, it displays an appropriate message and logs the error for further investigation. 4.52. Organisation Approver - Approve deleted site request for organisation Id 4.52. Description As an Organisation Approver ,   I need to be able to approve site deletion requests from Editors linked to my Organisation,   So that I can guarantee that no site is deleted by mistake and to preserve the quality and reliability of the register Priority Medium Actors Organisation Approver API Calls POST /sites//approve POST /sites//reject PUT /sites/ PATCH /sites/ Linked Processes 7.7. Approve delete site request Status Implemented Preconditions The User must be authenticated and have the Organisation Approver role. The User has a valid site ID that is marked as “to be deleted” The delete request has been performed by a user from the Approver’s organisation. Postconditions The system returns a confirmation that the decision (validation/rejection) has successfully been applied Main flow The Organisation Approver uses an API call to approve/reject the site deletion by ID (POST). The system validates the deletion request. The system returns the confirmation that the request has been approved/rejected Exceptions [400 Bad Request] Invalid input: If mandatory fields are missing or invalid, the system returns an error message. [404 Not Found] Site not found Error returned by the system if the site is not found. [500 Internal Server Error] System Error If the system fails to save changes due to an internal error, it displays an appropriate message and logs the error for further investigation. 4.53. Organisation Approver - Approve deleted block request for organisation Id 4.53. Description As an Organisation Approver ,   I need to be able to approve block deletion requests from Editors linked to my Organisation,   So that I can guarantee that no block is deleted by mistake and to preserve the quality and reliability of the register Priority Medium Actors Organisation Approver API Calls POST /blocks//approve POST /blocks//reject PUT /blocks/ PATCH /blocks/ Linked Processes 7.8. Approve delete block request Status Implemented Preconditions The User must be authenticated and have the Organisation Approver role. The User has a valid block ID that is marked as “to be deleted” The delete request has been performed by a user from the Approver’s organisation. Postconditions The system returns a confirmation that the decision (validation/rejection) has successfully been applied Main flow The Organisation Approver uses an API call to approve/reject the block deletion by ID (POST). The system validates the deletion request. The system returns the confirmation that the request has been approved/rejected Exceptions [400 Bad Request] Invalid input: If mandatory fields are missing or invalid, the system returns an error message. [404 Not Found] Block not found Error returned by the system if the block is not found. [500 Internal Server Error] System Error If the system fails to save changes due to an internal error, it displays an appropriate message and logs the error for further investigation. 4.54. Organisation Approver - Approve deleted unit request for organisation Id 4.54. Description As an Organisation Approver ,   I need to be able to approve unit deletion requests from Editors linked to my Organisation,   So that I can guarantee that no unit is deleted by mistake and to preserve the quality and reliability of the register Priority Medium Actors Organisation Approver API Calls POST /units//approve POST /units//reject PUT /units/ PATCH  /units/ Linked Processes 7.9. Approve delete unit request Status Implemented Preconditions The User must be authenticated and have the Organisation Approver role. The User has a valid unit ID that is marked as “to be deleted” The delete request has been performed by a user from the Approver’s organisation. Postconditions The system returns a confirmation that the decision (validation/rejection) has successfully been applied Main flow The Organisation Approver uses an API call to approve/reject the unit deletion by ID (PUT). The system validates the deletion request. The system returns the confirmation that the request has been approved/rejected Exceptions [400 Bad Request] Invalid input: If mandatory fields are missing or invalid, the system returns an error message. [404 Not Found] Unit not found Error returned by the system if the unit is not found. [500 Internal Server Error] System Error If the system fails to save changes due to an internal error, it displays an appropriate message and logs the error for further investigation. 4.55. Organisation Approver - Approve delete equipment request for organisation Id 4.55. Description As an Organisation Approver ,   I need to be able to approve equipment deletion requests from Editors linked to my Organisation,   So that I can guarantee that no equipment is deleted by mistake and to preserve the quality and reliability of the register Priority Medium Actors Organisation Approver API Calls POST /equipments//approve POST /equipments//reject PUT /equipments/ PATCH /equipments/ Linked Processes 7.10. Approve delete equipment request Status Implemented Preconditions The User must be authenticated and have the Organisation Approver role. The User has a valid equipment id that is marked as “to be deleted” The delete request has been performed by a user from the Approver’s organisation. Postconditions The system returns a confirmation that the decision (validation/rejection) has successfully been applied Main flow The Organisation Approver uses an API call to approve/reject the equipment deletion by id (POST). The system validates the deletion request. The system returns the confirmation that the request has been approved/rejected Exceptions [400 Bad Request] Invalid input: If mandatory fields are missing or invalid, the system returns an error message. [404 Not Found] Equipment not found Error returned by the system if the equipment is not found. [500 Internal Server Error] System Error If the system fails to save changes due to an internal error, it displays an appropriate message and logs the error for further investigation. 4.56. Organisation Approver - Approve or reject update vertical cabling request for organisation Id 4.56. Description As an Organisation Approver ,   I need to be able to approve an update vertical cabling request from Editors linked to my Organisation,   So that I can guarantee that the data updates performed on the registry are accurate and meet the needed data quality standards. Priority High Actors Organisation Approver API Calls GET /physical-links POST /physical-links//approve POST /physical-links//reject PUT /physical-links/ PATCH /physical-links/ Linked Processes 7.6. Approve update vertical cabling request Status Implemented Preconditions The User must be authenticated and have the Organisation Approver role. The User has a valid Phyiscal Link ID that has to be validated The delete request has been performed by a user from the Approver’s organisation. Postconditions The system returns a confirmation that the decision (validation/rejection) has successfully been applied Main flow The Organisation Approver retrieves the list of physical links to be approved (GET) The Organisation Approver can perform amendments if needed prior to the approval The Organisation Approver uses an API call to approve/reject the physical link by ID (POST). The System validates the approval request. The System returns the confirmation that the request has been approved/rejected Exceptions [400 Bad Request] Invalid input: If mandatory fields are missing or invalid, the system returns an error message. [404 Not Found] Physical link not found Error returned by the system if the physical-link is not found. [500 Internal Server Error] System Error If the system fails to save changes due to an internal error, it displays an appropriate message and logs the error for further investigation. 4.57. Analyst - Access to all data Id 4.57. Description As an Analyst ,   I need access to all the data in the System,   So that I can apply visualisations and perform advanced analytics on the available data and extract valuable insight. Priority High Actors Analyst API Calls GET /analyst/access-control-procedure-types GET /analyst/organisation-types GET /analyst/organisations GET /analyst/addresses GET  /analyst/site-types GET /analyst/sites GET /analyst/block-types GET /analyst/blocks GET /analyst/unit-types GET /analyst/units GET /analyst/equipment-types GET /analyst/equipments GET /analyst/physical-link-types GET /analyst/physical-links Linked Processes Status Implemented Preconditions The User must be authenticated and have the Analyst role. Postconditions The System returns the request data. Main flow The User triggers the retrieval of vertical cabling data via the APIs (GET). The system returns the requested data. Exceptions [400 Bad Request] Invalid input: If mandatory fields are missing or invalid, the system returns an error message. [500 Internal Server Error] System Error If the system fails to save changes due to an internal error, it displays an appropriate message and logs the error for further investigation. 4.58. Analyst - Querying data Id 4.58. Description As an Analyst ,   I need perform advanced queries on the available data,   So that I can extract specific datasets for further analysis. Priority High Actors Analyst API Calls   GET /analyst/access-control-procedure-types GET /analyst/organisation-types GET /analyst/organisations GET /analyst/addresses GET  /analyst/site-types GET /analyst/sites GET /analyst/block-types GET /analyst/blocks GET /analyst/unit-types GET /analyst/units GET /analyst/equipment-types GET /analyst/equipments GET /analyst/physical-link-types GET /analyst/physical-links Linked Processes Status Implemented Preconditions The User must be authenticated and have the Analyst role. Postconditions The System returns the request data. Main flow The User triggers the retrieval of vertical cabling data via the APIs (GET) and adds the needed filters or search queries to the request. The system returns the data that corresponds to given search/filters. Exceptions [400 Bad Request] Invalid input: If mandatory fields are missing or invalid, the system returns an error message. [500 Internal Server Error] System Error If the system fails to save changes due to an internal error, it displays an appropriate message and logs the error for further investigation. 4.59. Analyst - Query historical data Id 4.59. Description As an Analyst ,   I need to be able to analyse trends in the vertical cabling infrastructure and historical evolutions,   So that I determine the progress and trends of vertical cabling adoption over the years. Priority High Actors Analyst API Calls GET /analyst/sites GET /analyst/blocks GET /analyst/units GET /analyst/equipments GET /analyst/physical-links Linked Processes Status Implemented Preconditions The User must be authenticated and have the Analyst role. Postconditions The System returns the requested data including all versions of the connections stored in the system. Main flow The User triggers the retrieval of vertical cabling data via the APIs (GET). The system returns the data including all the connection versions linked to the retrieved data. Exceptions [400 Bad Request] Invalid input: If mandatory fields are missing or invalid, the system returns an error message. [500 Internal Server Error] System Error If the system fails to save changes due to an internal error, it displays an appropriate message and logs the error for further investigation. 4.60. Analyst - Query audit logs Id 4.60. Description As an Analyst ,   I need to be able to analyse the audit logs,   So that I perform advanced analytics on changes performed on the system. Priority Medium Actors Analyst API Calls GET /analyst/audit-logs Linked Processes Status Implemented Preconditions The User must be authenticated and have the Analyst role. Postconditions The System returns the requested audit logs. Main flow The User triggers the retrieval of audit logs via the APIs (GET). The system returns the requested audit logs. Exceptions [400 Bad Request] Invalid input: If mandatory fields are missing or invalid, the system returns an error message. [500 Internal Server Error] System Error If the system fails to save changes due to an internal error, it displays an appropriate message and logs the error for further investigation. 4.61. Analyst - Export data [to be reviewed] Id 4.61. Description As an Analyst ,   I must be able to export all or part of the data,   So that I can analyse the data in external analytics tools or import it into other systems. Priority High Actors Analyst API Calls N/A Linked Processes Status   Preconditions The User must be authenticated and have the Analyst role. Postconditions The System returns the requested data export. Main flow The User triggers the export of all available vertical cabling data via the APIs (GET) and specifies the exact format expected (e.g. CSV, Json) The system returns the requested export. Exceptions [400 Bad Request] Invalid input: If mandatory fields are missing or invalid, the system returns an error message. [500 Internal Server Error] System Error If the system fails to save changes due to an internal error, it displays an appropriate message and logs the error for further investigation. 4.62. Analyst - Integrate external applications Id 4.62. Description As an Analyst ,   I must be able to integrate external application with the register,   So that I can access the data from within these applications in order to perform advance analytics (e.g. Tableau). Priority High Actors Analyst API Calls Not done via API.  Webhooks are configured via the Django Administration panel. Linked Processes Status Implemented Preconditions The User must be authenticated and have the Analyst role. The User has an external application that he wants to integrate. Postconditions The Webhook is configured and the selected events trigger the external application. Main flow The Analyst navigates to django admin and configures a new Webhook. The Analyst selects the URL of the external application to which the system will send notifications. The Analyst selects the type of events that should be sent to the external application. The Analyst configures the authentication method and saves. Exceptions [400 Bad Request] Invalid input: If mandatory fields are missing or invalid, the system returns an error message. [500 Internal Server Error] System Error If the system fails to save changes due to an internal error, it displays an appropriate message and logs the error for further investigation. 4.63. Analyst - Un-reject/approve an approved/rejected record Id 4.63. Description As an Analyst   I need to be able to un-approve/reject that do not comply with the quality standards defined.   So that I can rollback invalid changes and allow the approvers to correct their mistakes. Priority Low Actors Analyst API Calls GET /analyst/phyiscal-links// POST /analyst/phyiscal-links//reset-approval/ Linked Processes Status Implemented Preconditions The User must be authenticated and have the Analyst role. The User must have an approved/rejected record that he wants to un-approve/reject Postconditions The System rolls back the approval/rejection. Main flow The Analyst retrieves a record marked as approved/rejected. The Analyst un-approves/rejects the record. The system validates the request parameters. The system rolls back the approval/rejection. Exceptions [400 Bad Request] Invalid input: If mandatory fields are missing or invalid, the system returns an error message. [404 Not found] Data not found If the Analyst attempts to un-approve/reject a resources that does not exist, the system will return an error. [500 Internal Server Error] System Error If the system fails to save changes due to an internal error, it displays an appropriate message and logs the error for further investigation. 4.64. Viewer - Search sites/blocks/units/equipments by address Id 4.64. Description As a Viewer ,   I must be able to search for sites, blocks, units or NTPs by address,   So that I can determine the vertical cabling status of a given site, block, unit or NTP. Priority High Actors Viewer API Calls GET /sites GET /blocks GET /units GET /equipments GET /physical-links Linked Processes Status Implemented Preconditions The User must be authenticated and have the Viewer role. The user must have an address to be looked up on the system. Postconditions The System returns the data that matches the request. Main flow The User triggers a search by address. The system returns the resources that match the query. Exceptions [400 Bad Request] Invalid input: If mandatory fields are missing or invalid, the system returns an error message. [404 Not Found] Resource not found: Error returned if the Server could not find any resource for the given search criteria. [500 Internal Server Error] System Error If the system fails to save changes due to an internal error, it displays an appropriate message and logs the error for further investigation. 4.65. Viewer - Read single entries by ID Id 4.65. Description As a Viewer ,   I must be able to access any site / block / unit / connection / ntp by ID,   So that I can retrieve detailed information on a given database entry. Priority High Actors Viewer API Calls GET /sites/ GET /blocks/ GET /units/ GET /equipments/ GET /physical-links/ Linked Processes Status Implemented Preconditions The User must be authenticated and have the Viewer role. The user must have the id of a resource on the system. Postconditions The System returns the data that matches the request. Main flow The User requests a resource by id. The system returns the requested resource. Exceptions [400 Bad Request] Invalid input: If mandatory fields are missing or invalid, the system returns an error message. [404 Not Found] Resource not found: Error returned if the Server could not find any resource with the given id. [500 Internal Server Error] System Error If the system fails to save changes due to an internal error, it displays an appropriate message and logs the error for further investigation. 4.66. Viewer - Read different versions of connections - Required Premium License Id 4.66. Description As a Viewer ,   I must be able to access a specific physical link version,    So that I can compare previous and new versions of a physical link and understand the works that have been performed on site. Priority High Actors Viewer API Calls GET /physical-links GET /physical-links/ Linked Processes Status Implemented Preconditions The User must be authenticated and have the Viewer role. The user must have the source, destination and Physical Link Type of a physical link for which he wants a specific version. Postconditions The System returns the given version of the physical link. Main flow The User requests a specific version of a physical link. The system returns the requested version. Exceptions [400 Bad Request] Invalid input: If mandatory fields are missing or invalid, the system returns an error message. [500 Internal Server Error] System Error If the system fails to save changes due to an internal error, it displays an appropriate message and logs the error for further investigation. 4.67. ETL - Retrieve addresses Id 4.67. Description As an ETL user,   I must be able to read all address information present in the RNCV address database,    So that I can determine the changes that need to be performed on the address database to synchronise it with the external Address Data Providers Priority High Actors ETL API Calls GET /addresses GET /addresses/ Linked Processes Status Implemented Preconditions The User must be authenticated and have the ETL role. The user must have an address to be looked up on the system (id or filter / search criteria) Postconditions The System returns the data that matches the request. Main flow The ETL user triggers an address request (GET) by id or using search/filter criteria. The system returns the addresses that match the query. Exceptions [400 Bad Request] Invalid input: If mandatory fields are missing or invalid, the system returns an error message. [404 Not Found] Address not found: Error returned if the Server could not find any address for the given search criteria. [500 Internal Server Error] System Error If the system fails to save changes due to an internal error, it displays an appropriate message and logs the error for further investigation. 4.68. ETL - Create and update addresses Id 4.68. Description As an ETL user,   I must be able to create and update address on the RNCV address database,   So that I can populate new addresses or correct / approve existing ones. Priority High Actors ETL API Calls POST /addresses PUT /addresses/ PATCH /addresses/ Linked Processes Status Implemented Preconditions The User must be authenticated and have the ETL role. The user must have an address to create or update Postconditions The System returns the updated address instance. Main flow The ETL user triggers a creation (POST) or update of an address (PUT / PATCH). The system returns the added / updated address. Exceptions [400 Bad Request] Invalid input: If mandatory fields are missing or invalid, the system returns an error message. [404 Not Found] Address not found: Error returned if the Server could not find any address for a given address id (update use case). [500 Internal Server Error] System Error If the system fails to save changes due to an internal error, it displays an appropriate message and logs the error for further investigation.