Open kabilar opened 3 months ago
@kabilar merged https://github.com/lincbrain/webknossos/pull/13 and merged into production (still need to update dev -> staging -> prod workflow)
Should finalize handling of use case of: Configure front-end so that AWS Access Key ID and and Secret Access Key are not required by user
Hi @aaronkanzer, I updated our list above. Phases 3 and/or 4 may get pushed into year 2.
Hi @kabilar -- a couple updates/progress here for Phase 2
:
Automated pushes of Docker images to DockerHub upon pull request merges to the master branch
Right now, we are configured to push each branch, no matter master
or not -- I think I'd like to keep it this way actually -- as we need to push containers remotely to best test them in staging. Perhaps we can discuss producing a CHANGELOG
for what ends up in production
I'm also planning to follow alongside WebKNOSSOS migrations documentation, as it prescribes any updates we might need to do on our end if we sync upstream with our fork
How will we update Docker container? Will there be downtime?
We will have minimal downtime -- this should be as simple as:
docker-compose.yml
for the API reference link heredocker-compose up webknossos
to launch new versionAs long as the newer version is compatible with pre-existing schemas (e.g. postgres, fossildb), this should work as intended. We will have staging as a safeguard for any issues of course.
Configure backups
Currently working through this -- I've been using scalableminds fossildb-client
for commands to properly backup and restore see here for code reference -- still stress-testing/confirming that the workflow can restore properly.
We will know more in terms of memory size, but it seems only a couple KB per annotation in FossilDB.
For Postgres, this is the standard pg_dump
scenario (similar to LINC Archive).
For both, my hope is to have a cron job on the EC2 instance that exports the backups to S3 routinely. We can discuss the cadence for the cron job.
I'm going to continue to update https://github.com/lincbrain/webknossos/pull/10 with more playbook-ish docs for data restoration/backup -- seems we are in a good place overall.
Let me know if you have any questions in the meantime.
@kabilar A couple other fun updates (albeit in Phase 4, but still good in terms of understanding how WebKNOSSOS<>LINC will eventually communicate)
In this commit, I introduced SameSite of .lincbrain.org
for our WebKNOSSOS auth-related cookies 🍪
(Assuming you are logged into staging), you can now see GET payloads for datasets and annotations for example -- we can ping these endpoints to reflect whatever need-be in LINC Data Platform
A couple of other useful notes here: • WebKNOSSOS datasets are name-unique, thus if "dataset-zarr-hipct" exists, a user can't come along and create "dataset-zarr-hipct" for a different dataset -- this could get tricky for drafts, etc. but something to think about in terms of naming conventions
• We will still need to determine the workflow for how an end user gets the cookie initially -- right now, when you log into WebKNOSSOS, the expiration of the cookie is 1 year -- we can alter as needed. There is a POST route for /auth/login for WebKNOSSOS, but that logic could be more complex -- can look into further.
Nevertheless, good news here in terms of how we want to guide LINC users towards annotations and datasets in WebKNOSSOS
Awesome, thanks for breaking down each component. This is very helpful. I have some naive questions that we can discuss today.
Update lincbrain.org front-end to include a copy button for S3 URI of an asset
Handled via code mostly in https://github.com/lincbrain/linc-archive/pull/175
@kabilar proper backup scripts and cronjob definitions should be all set 📈 https://github.com/lincbrain/webknossos/pull/10/commits/68768f1953085fd88118f240ef35dbd0690ff415
APPROVED
/binaryData
,/persistent
Developer Guide
section in the LINC Docs to the respective design and deployment docs.Upload Datasets
tabUpload Annotation(s)
buttonread
every dataset and every annotation. Users is apart of theDefault
team and set up withDataset Manager
permissions upon account creation.wkcuber
, and upload to lincbrain.orgwrite
permissions on select annotations