🆔FP: History of changes
Work in progress
Status Feature Passport
STATUS | OWNER | DATE |
---|---|---|
In proposal | Sofie | 13 + 14/04/2022 |
In refinement - Design Research | 29/09/22 | |
In refinement - Technical Research/Feedback | ||
In development | ||
In QA/ Testing | ||
In Final state |
Analysis
Linked Jira tickets
Current state
We (ABB users) don't have any information on any change event.
Developers can archive data (data cannot be deleted due to Linked Open Data)
Goal
It would be valuable to have this functionality for audit & educational purposes for internal ABB users.
Data we'd like to include (needs to be refined more): data on the properties or classes that have an impact when they need to be archived due to incorrect data or other reasons.
Full name of the person who made a change
Timestamp: Date / hour
Action that was taken / fields that were changed
Make sure other ABB-products can benefit from it as well
Most important example: For easy and correct archiving it would be an improvement to know who created a person or an administrative unit in case of double registrations.
Usecases
Audit & educational purposes
As OP-ABB-internal user, I want to be able to audit changes made that happened incorrectly.
As OP-ABB-internal user, I want to be able to educate or notify users that incorrectly made changes
🤩 Expectations
We have taken into account the advise from the developers in the comments of OP-871.
It is not realistic and overkill to have a history on all classes (see Past discussion points on full history in this FP).
Some bookkeeping on created resources might be a good idea
created date
created by
modified date
last modified by
on classes, but not on the separate fields
Classes in module 'Bestuurseenheden'
🔴 bestuurseenheid (or class organisation? > generalisation)
🔴 veranderingsgebeurtenissen
🟠 Gerelateerde organisaties
🟡 (vestiging)
🟡 bestuursorgaan
🟡 (betrokken lokale besturen)
Classes in Module 'Personen'
🔴 persoon
🔴 positie (or class Agent in positie?)
🕵️♂️Use Cases
See Use Cases on FP: Archive/Delete data
🤔 Past discussion points on full history
Solution
Research requirements
Set-up meetings with other PO's/PMs of Gelinkt Notuleren & Loket to research
Current solutions, developments & future plans how they track changes, both on user side as on back-end side
Goals & wishes they have if all is possible & with constraints
Feedback on our prototype
Whether their engineers would be willing to add changes to a global platform
Design solution & requirements
We will design a potential full fledge vision, focussed on the main usecase (auditing & educational purposes), but also including potential other future usecases to tease out reactions of other products.
Back-end, stand-alone solution for all ABB-users
Ability to log-in based on the right permissions
Overview with a list of changes that can be filtered
Name of editor
Role of editor
Date change was made
Change made
Module & Field where the change was made
How data got into OP (Loket / Sharepoint / manual input)
Filtering possibilities
Editor page
Changes made
Email & contact details (to alert)
Reporting module
List view & aggregate (totals) with filters
Report (with charts)
CSV export of data with filters
Preventive measurements
Notification system
Ability to watch pages & be alerted when a change is made to a page
Automatic alert to person who created page
Ability to review changes
Ability to revert changes
Front-end solution
Ability to easily see change history of organisations and people on the front-end if you have the right rights
Technical solution for all items
[7/12/2021 - Proposed solutions by Nordine in the comments]
Idea 1 (the simplest and the least “elegant”):
We add
createdDate
,createdBy
,updatedBy
&updatedDate
to all classes in domain.json (or we create a class with those properties that all class will inherits).Frontend will be responsible for managing these fields through ember data.
Idea 2:
new microservice that uses delta notifier’s message to populate an
elasticsearchindex with the required fields (createdDate
,createdBy
,updatedBy
&updatedDate
,propertyUri
,subjectUri
).
Idea 3:
Having this feature in the semtech stack out of the box. This makes sense if it becomes a requirement for other projects in the future.
Idea 4:
we only add the properties createdDate, updatedDate to the class we are interested in. We will not know which property has been updated, and we won’t have an history of changes (only the latest change will be available).
Idea 5:
We have more roles (acm/idm) and we limit WRITE access to certain types (e.g Only users with roles “Organization-Edit” can edit an Organization).
For idea 5, check FP: Roles and Rights
Design
This part of the feature passport is owned by the designer
User research
[If there is any user research preceding the wireframe mock-up stage, it needs to be documented here]
Mock-ups
[link to figma mockups + any explanation or extra documentation]
Technical
This part of the feature passport is owned by the technical team
[Information about the technical solutions for expectations that need it - e.g. using mu-search for showing all types of positions in one table.]
After the designer and/or the technical team finish their task, a meeting follows where the solutions are presented. The team exchanges feedback and amends the feature passport where necessary.
Last updated