Comments (54)
@ntorsen Ready for testing ๐ฅณ
Flyt.Versioning.demo.mov
from flyt.
๐ Hi everyone.
I'm adding a resolution
select input. So that the user can look at all changes grouped by year, month, day, minute or second intervals. This should also make it easier to test more functionality in a shorter time... @ntorsen
@Linedueo give me a shout if you have any design input here.
I also changed the text Today
to Now
as it is more precise wrt. the new resolution selections.
Change is rolling out to test environments as I type this.
Update: Ready in Dev, Test and QA
from flyt.
Working good now ๐ @SjoenH
from flyt.
Versjonshistorikken blir visualisert som en timeline. Denne viser en oversikt over datoer hvor prosessen har blitt endret (oppsummert per dag)
from flyt.
I just built a version to dev, which should fix these issues
- UserAccess DELETE is now handled by accessing the Accesses table, not the UserAccesses view.
- Task-category links changelogging now uses explicit db calls rather than assuming the entity has its project entity included
- Corrected the column name in the VsmUpdates db function.
from flyt.
Looks good @SjoenH ๐
from flyt.
@SjoenH That's true. Sure, you can remove it ๐
from flyt.
FYI. Ready in QA as well for some testing.
This one is a bit hard to test well, since we need changes spanning a couple of days...
I've done that testing in Dev environment, so I'm pretty confident that it's ok, but you might discover something else. ๐ So super if you can start some light testing of this. ๐ช
from flyt.
@SjoenH Created a process in QA, but it is not saved.. something's off.
from flyt.
@SjoenH Tried out new resolution select input, and Flyt does not seem to like it when I go back to the start on Seconds (both for Current and To-be process). Message "ERROR: Project contains no root onjects" pops up. If I select other versions other than the first one this is not a problem.
from flyt.
I've attempted a fix by returning the Update values instead of the PeriodStart values stored, but this is not late enough after the creation process to avoid making the version of the process without objects in it visible. At the moment, I'm inclined not to do more to hide this unless @knudsvik and @askbulle think it's important to hide.
from flyt.
@ntorsen fix is out in QA again. ๐งช
from flyt.
Should #192 be solved at the same time?
from flyt.
I was thinking this story could be split into two features. to ease us into it. One feature to view the changes on the VSM and another to allow the admin some method to start a rollback process, whatever it may include....
from flyt.
After technical exploration with @pagodo we have some conclusions:
- The Temporal Tables feature of our database seem to be our best approach for this versioning feature, offering performance improvements over maintaining our own history tables with triggers and an improved syntax for querying the history.
- This should minimize the alterations to existing code for CRUD operations.
- In order to actually perform time travelling queries we have two options:
- Drop down in abstraction to SQL instead of Entity Framework for these queries.
- Update the API server to run on .Net 6, so we can access Entity Framework Core 6. Both of these technologies are currently considered release candidates, not finished releases.
from flyt.
Moving to a release candidate for the technology the api is based on is not a good idea, there is a good chance we will be left with a unstable system. The release of these versions is set to early november and we should at least wait with the prod release until the technology is formaly released and if we are to release a early version of dotnet6 we have to do extensive testing of the api. But we may do development targeting a release candidate
from flyt.
Maybe we should put this on hold untill @Linedueo have landed on designing functionality requirements with our POs?
We may consider supporting the release-candidate only for Flyt application if we find that the new functionality it provides is the best way to implement our versioning -requirements.
from flyt.
From Daily 29 sept:
It sounds like we probalbly should store all changes with timestamps in the back-end. (temporal tables etc)
Then it is a visualisation problem to pick good points. Or we could show them all like in Figma history view.
Talking with @Magos we believe that the view should be able to update quite quickly when selecting a prior state.
from flyt.
Sounds good @Linedueo.
Please update user-story and notify us when it's ready for development.
from flyt.
from flyt.
@Magos let's write some requirements when we have the time for it.
from flyt.
@Magos tells us that .Net6 is out! ๐ฅณ
from flyt.
@SjoenH : New requirement for this feature. Update the delete/reset button explanatory texts, ref #192 . When a to-be process is reset, the version history will still keep the old version I guess.
from flyt.
API discussion.
Changing created
and lastUpdated
to a date.
The created
object is used today to check if we are an admin, thus userAccesses
needs to include the admin as well. (remove filter)
Remember: We want all connected vsmObjects
(card
) and task
(PQIR
) etcโฆ -changes to be reflected in the process
-changelog.
Aggregating the changes to one day.
Front-end or back-end? ๐ค
Are there any performance considerations here?
from flyt.
@Magos @SjoenH Let's have a quick chat later today
from flyt.
@Magos What you have done sounds good.
Aggregation is a front-end task as of now.
@Magos have looked at api-endpoint for process-changelog, but mentions that he could add endpoints for VSMObjects, and PQIR, but not implementing that at this time.
Let me know when it is ready for testing in Front-end. ๐
from flyt.
@Magos Would you take a look at this error?
I'm having trouble with removing users from a process.
Adding an example below.
DELETE https://api.statoil.com/app/vsm/dev/api/v1.0/userAccess/425/2356
{
"developerMessage": "The entity type 'UserAccess' is not mapped to a table, therefore the entities cannot be persisted to the database. Call 'ToTable' in 'OnModelCreating' to map it to a table.",
"userMessage": "Server error, contact system responsible",
"code": "500",
"httpStatusCode": 500
}
from flyt.
@Magos Also trouble with adding categories to PQIRs.
POST https://api.statoil.com/app/vsm/dev/api/v1.0/taskCategory/link/140/432
{
"developerMessage": "Object reference not set to an instance of an object.",
"userMessage": "Server error, contact system responsible",
"code": "500",
"httpStatusCode": 500
}
from flyt.
@Magos I tested the new updates
endpoint but I'm getting a 500 error.
GET https://api.statoil.com/app/vsm/dev/api/v1.0/project/425/updates
{
"developerMessage": "Invalid column name 'SysStartTime'.\nCould not use view or function 'dbo.VsmUpdates' because of binding errors.",
"userMessage": "Server error, contact system responsible",
"code": "500",
"httpStatusCode": 500
}
from flyt.
@Magos I'm back from my vacation now and will test your new build ๐ช
from flyt.
@Magos. Some initial testing.
- Update endpoint now returns an array dates. #154 (comment)
- Adding categories seems to work as expected. #154 (comment)
- Removing a user from a process works #154 (comment)
- But changing the role of a user gives error 500(?)
Error 500
The entity type 'UserAccess' is not mapped to a table, therefore the entities cannot be persisted to the database. Call 'ToTable' in 'OnModelCreating' to map it to a table.
from flyt.
Update-ruter som ikke fungerer pr nรฅ:
- UserAccess
- Object
from flyt.
Also, adding that there seems to be some issues with getting the process I want for a given date-time. asOf
string not matching or something? Needs to be looked into.
from flyt.
@Magos Do you have an update on where we are at with versioning?
from flyt.
Had a talk with @Magos
Current status. API is now ready for further front-end development.
Updates should now be watched by the API and stored in history. So the issue I raised above should now be fixed.
from flyt.
I've updated the story with some requirements. Please let me know if it looks alright ๐ @ntorsen
#154 (comment)
from flyt.
@Magos I've released to Dev. Seems to work fine, except for selecting the first date. Could you help debug why that is? Example process
from flyt.
@ntorsen I want to remove the requirement - "User cannot delete a previous version. The button should be disabled to not confuse users." As it doesn't feel quite necessary... ๐ค
Delete warning is also clear about this:
from flyt.
Update: API does not include Timezone information in the /updates
-response. @Magos will take a look at adding it. ๐
from flyt.
@knudsvik What number process?
@Magos could you help investigate? Also, seems like the sorting on the front-page is reversed...? Are we running the same in Test as in QA? ๐ค
from flyt.
Ahh, they are there, just reversed on the front page as you say
from flyt.
Super ๐ช
from flyt.
@Magos I get error 500 when I delete Problem, Questions and Ideas when testing. They do get deleted eventually, but this message pop up so it looks like it is having some problems. This is in Test environment.
Also problem with deleting Risk, but here comes code 400.
from flyt.
I deployed a fix for the 500 error, but the Risk report seems to be correct as such. Could you have been pressing delete before the front-end had updated after a change?
from flyt.
I deployed a fix for the 500 error, but the Risk report seems to be correct as such. Could you have been pressing delete before the front-end had updated after a change?
Working good now @Magos ๐คฉ
No trouble with Risk either, it could have been that I pressed deleted before front-end had updated after change.
from flyt.
@Magos is this something you want to improve? Looks like the first logged change in /updates
is created before the process is ready.
from flyt.
@Magos To reproduce. Create a new process. Then the first returned timestamp in the /updates
response does not exist.
from flyt.
Todo:
- Remove second-resolution selection.
from flyt.
I've removed the second resolution and released to QA again. @ntorsen Would you please do a final test of everything before we plan the release?
from flyt.
@SjoenH here are some feedback from testing done in QA environment.
User requirements for testing โ
Second-resolution selection is removed โ
Deleting PQIRs is working as expected โ
Other remarks:
-
If you copy the URL of a previous version and opening it in a new window, you will see that that version is visible. However, when looking at cards for more info a "invalid process type" message pops up as well as a 500 internal server error. This does not happen for all cards, but in this case it happened on a blue and yellow card.
-
Going back in time (to the start) when selecting Minute-resolution selection, same message as for Second-resolution comes up:
from flyt.
@ntorsen can you reproduce the error with a new process?
from flyt.
@ntorsen I'll look into the 500 errors.
To reproduce: delete a card, navigate back to when it existed and try to open it.
This is a front-end bug.... thus moving this back into in-progress. ๐
from flyt.
@SjoenH able to recreate it by deleting a card --> navigate back to when it existed --> copy URL into a new window (incognito) --> clicking on deleted card to view it
(reproduced with a new process also)
from flyt.
โณ ๐ @knudsvik @askbulle
We have some changes that requires downtime. We are planning to release at 11:45.
Estimated downtime up to 1 hour.
- Database. Schema changes. Activate system-versioning (or whatever it is called...)
- Code
- Some changes related to solving tasks.
Frontend
Push out what's in QA and bump version + change-log.
from flyt.
Related Issues (20)
- Chore: Patch vulnerabilities
- Fix TEST environment
- Fix: Wrong position when move a subAct card to a child of choice card
- feat: Show zoom value next to controls HOT 4
- Feat: Zoom percentage display
- Improve roles HOT 1
- Lead times
- Upgrade dependencies HOT 2
- Decommision VSM API endpoint in mad API Management HOT 2
- Bug: Zoom level duplicated in top right HOT 2
- Chore: Setup QA env to build from main
- Consume API in Radix when running locally
- Fix: text on edged disappear after merge HOT 2
- SIPOC helper text HOT 10
- Suppress drag events when clicking a node HOT 3
- fix search for PQIR & unit HOT 3
- Patch vulnerabilities HOT 2
- Task: Update Flyt wiki page with new gif HOT 1
- fix: Radix build issue
- Add validation to PR in Flyt
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. ๐๐๐
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from flyt.