Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement WebAuthn #8109

Closed
wants to merge 179 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
179 commits
Select commit Hold shift + click to select a range
57e7077
WebAuthn base implementation
robert-oleynik Oct 1, 2024
18fb4e0
Fewer hdf5 reads when loading precomputed meshes (#8110)
fm3 Oct 7, 2024
2cd6647
Allow admins to view and cancel other users jobs (#8112)
frcroth Oct 7, 2024
8ef29f4
Slider improvements (#8095)
knollengewaechs Oct 8, 2024
a2ff405
quickfix materialize volume annotation job via adding default named o…
MichaelBuessemeyer Oct 8, 2024
4d72158
Fix shape in zarr.json in zarr3 streaming (#8116)
MichaelBuessemeyer Oct 9, 2024
1d490ad
Ensure user has edit permissions before deleting sharing token (#8114)
frcroth Oct 9, 2024
a504c4d
Fix comment list search behavior (#8101)
hotzenklotz Oct 9, 2024
fb4372a
Add e2e test adding metadata to skeleton tracing (#8113)
frcroth Oct 9, 2024
046c4ff
Allow align sections job for non-superusers (#8121)
fm3 Oct 14, 2024
d6af59a
Add name to worker in database (#8115)
frcroth Oct 16, 2024
b7b682a
Restructure Documentation (#8023)
hotzenklotz Oct 16, 2024
6e53057
fix broken links in docs
hotzenklotz Oct 16, 2024
6466697
fix link in docs
hotzenklotz Oct 16, 2024
2d7c439
fix broken doc links
hotzenklotz Oct 16, 2024
2bb287c
Fix skeleton search (#8129)
MichaelBuessemeyer Oct 17, 2024
3ed7ddb
debug nightly circleci image
hotzenklotz Oct 18, 2024
4f1847a
Merge branch 'master' of github.com:scalableminds/webknossos
hotzenklotz Oct 18, 2024
e6ec9b8
fix keyboard shortcut links
hotzenklotz Oct 18, 2024
754a5d1
add nightly screenshot/puppeteer Github action stub
hotzenklotz Oct 18, 2024
e2c2e5a
add a manual trigger for nightly action
hotzenklotz Oct 18, 2024
fb9b450
Sort mags before streaming them via zarr streaming (#8125)
MichaelBuessemeyer Oct 21, 2024
19e73ed
extend segment search to default name used in segments list (#8133)
MichaelBuessemeyer Oct 21, 2024
b9db33e
add stub for wkorg-nightly test
hotzenklotz Oct 21, 2024
50a6070
Add Github action for nightly tests (#8134)
hotzenklotz Oct 21, 2024
934bb6a
Move wkorg screenshot test from CircleCI to GitHub actions (#8135)
hotzenklotz Oct 21, 2024
60f77ac
Rename Resolution to Mag (#8111)
knollengewaechs Oct 21, 2024
bedb16e
OME-Zarr NGFF v0.5 dataset exploration (#8122)
frcroth Oct 23, 2024
7099fe3
step up to http api version 8 (#8142)
fm3 Oct 23, 2024
7b03f97
update default predict wofklow template (#8144)
fm3 Oct 24, 2024
6a0dcc0
add stubs for CI workflow
hotzenklotz Oct 24, 2024
2953fa7
Automatically use user token when sharing token is not sufficient for…
MichaelBuessemeyer Oct 28, 2024
9d6e322
Update pen_tablets youtube video link
hotzenklotz Oct 28, 2024
8993bab
updated broken links to WK docs
hotzenklotz Oct 28, 2024
e4eec0f
fix formatting
hotzenklotz Oct 28, 2024
ccb8929
Fix datavault tests for non-existent s3 buckets (#8151)
fm3 Oct 28, 2024
fda194b
Update zarr.md
normanrz Oct 28, 2024
9b5a12e
Fix bbox export via bbox menu (#8152)
MichaelBuessemeyer Oct 28, 2024
684a588
Add button to select all trees and all segments that match a search (…
knollengewaechs Oct 29, 2024
d40dfbe
Route to register aiModel (#8127)
fm3 Oct 29, 2024
4213684
Allow downloading tasks of teams you are not in (#8155)
fm3 Oct 30, 2024
f937be0
Use mapping from viewconfig when generating thumbnail (#8157)
frcroth Nov 4, 2024
43dd861
Update DEV_INSTALL.md
hotzenklotz Nov 4, 2024
97b2058
move "merge annotation with fallback" in docs
hotzenklotz Nov 4, 2024
159f868
Allow to delete bbox even if there is no visible segmentation layer (…
knollengewaechs Nov 4, 2024
96c9d7f
Enable S3 compliant data vaults using https and http (#8167)
frcroth Nov 4, 2024
5988865
Allow for the deletion of workflow reports (#8156)
frcroth Nov 6, 2024
8f8a1d2
Always Upload Screenshot Artifacts for Nightly Tests (#8171)
hotzenklotz Nov 6, 2024
41f3d9e
Change long unit name in frontend from ångström to angstrom (#8173)
fm3 Nov 7, 2024
432da71
Update README.md (#8178)
jackyko1991 Nov 8, 2024
f04daba
log unknown data type when exploring neuroglancer precomputed dataset…
MichaelBuessemeyer Nov 11, 2024
2256919
Some Timetracking view improvements (#8170)
MichaelBuessemeyer Nov 11, 2024
c13694c
Wrap antd tree to enable scrolling while dragging (#8162)
MichaelBuessemeyer Nov 11, 2024
078fc20
Remove unnecessary scrollbars in skeleton tab (#8148)
knollengewaechs Nov 11, 2024
a8c0969
Zarr streaming e2e test (#8137)
frcroth Nov 11, 2024
0bc8368
Fix layout persistence when switching between orthogonal, flight, and…
daniel-wer Nov 11, 2024
73e0be8
Send right parameter to createNodeSkeletonAction (#8185)
knollengewaechs Nov 12, 2024
8dec578
Fix: Use forwardRef for scrollable virtualized tree (#8186)
MichaelBuessemeyer Nov 12, 2024
015016b
Fix expected node type from server by renaming resolution to mag (#8187)
MichaelBuessemeyer Nov 12, 2024
825b1f8
Async reading in FileSystemDataVault (#8126)
frcroth Nov 13, 2024
eba9447
Release 24.11.1 (#8188)
fm3 Nov 13, 2024
3a18852
Add dataset upload test (without using frontend) (#8184)
frcroth Nov 13, 2024
1ec9b19
Update default security.txt for 2025 (#8192)
frcroth Nov 13, 2024
8ff5b67
Fix performance bottleneck when deleting a lot of trees at once (#8176)
daniel-wer Nov 13, 2024
b15098e
Fix MD Link in CHANGELOG.released.md
hotzenklotz Nov 15, 2024
ec3015f
Improve error messages for starting jobs on other orgs datasets (#8181)
frcroth Nov 18, 2024
e3d8e89
fix icon margin in dashboard
hotzenklotz Nov 18, 2024
7a10a64
Exploring remote datasets: drop neuroglancer prefixes from URIs (#8195)
fm3 Nov 19, 2024
3e04578
Do not restrict bbox size for inferral jobs for super users (#8200)
MichaelBuessemeyer Nov 19, 2024
42f1c52
Remove Google Analytics (#8201)
fm3 Nov 19, 2024
417ce8f
Rename parameter in findAllListableExplorationals (#8208)
frcroth Nov 20, 2024
a8fe8b7
Insert sample ai model in development initial data (#8214)
fm3 Nov 20, 2024
3c7700c
Remove explicit returns (#8205)
frcroth Nov 20, 2024
4cf7252
Fix changing color of active segment (#8225)
MichaelBuessemeyer Nov 21, 2024
cb46bf5
fix docstring for registerSegment (#8226)
philippotto Nov 21, 2024
bf6ea15
Update contributing guide (#8220)
hotzenklotz Nov 22, 2024
0d2e029
On dataset upload, create orga dir if it does not exist (#8230)
fm3 Nov 26, 2024
b53752a
Accept terms of Service at signup (#8193)
frcroth Nov 27, 2024
5d3d66d
Log data loading errors in conversion / mapping application (#8202)
frcroth Nov 27, 2024
6c0a472
Allow renaming datasets & dataset with duplicate names (#8075)
MichaelBuessemeyer Nov 27, 2024
7206862
Fix accessing public datasets (#8242)
fm3 Nov 27, 2024
781f687
add debug logging for dataset list route (#8246)
MichaelBuessemeyer Nov 28, 2024
db31a50
Relax bounding box requirements for model training (#8222)
daniel-wer Nov 28, 2024
24e4981
Add further debug logging for ds listing (#8247)
MichaelBuessemeyer Nov 28, 2024
3d25f3d
remove logging (#8248)
MichaelBuessemeyer Nov 28, 2024
0a4ff64
Fix permisson error in listGrouped in list datasets route (#8249)
MichaelBuessemeyer Nov 28, 2024
ec72322
Sync dataset name with datasource in add remote view (#8245)
MichaelBuessemeyer Nov 29, 2024
991ca91
Add missing isValidNewName legacy route (#8252)
MichaelBuessemeyer Nov 29, 2024
3b00409
Add total voxel count and dataset extent to tooltip in dataset info t…
knollengewaechs Dec 2, 2024
c0fab5a
Rename resolution to mag in local variables (#8168)
knollengewaechs Dec 2, 2024
0a2afa4
Re-Add debug logging for ds listing (#8251)
MichaelBuessemeyer Dec 2, 2024
6b4f176
Misc layout improvements in dataset upload (#8231)
philippotto Dec 2, 2024
4dbd203
Improve color palette for tree colors (#8228)
philippotto Dec 2, 2024
fb1f275
Disallow empty annotation layer names and names starting with a '.' (…
MichaelBuessemeyer Dec 2, 2024
c3729ea
Warn user when using precomputed meshes after brushing (#8218)
frcroth Dec 3, 2024
2781061
Fix `FATAL: role "postgres" does not exists` for docker compose deplo…
robert-oleynik Dec 4, 2024
9a5c8e8
Fix image in docs
hotzenklotz Dec 4, 2024
6483aad
In NML upload with overwritingDatasetId, do not require valid orga fi…
fm3 Dec 4, 2024
2ebe1c0
Fix legacy support for outdated displayName field of datasets (#8263)
MichaelBuessemeyer Dec 5, 2024
2bdc9eb
Remove debug logging for ds listing (#8256)
MichaelBuessemeyer Dec 5, 2024
14737b3
Release 24.12.0 (#8264)
philippotto Dec 6, 2024
5dc711d
Fix already upload of zarr datasets with already existing `datasource…
MichaelBuessemeyer Dec 10, 2024
f909097
Allow dollar in layer name (#8241)
MichaelBuessemeyer Dec 10, 2024
002c915
Add switch orga to legacy routes (#8257)
MichaelBuessemeyer Dec 11, 2024
c18c5e3
Data loading: save mem + cpu by re-using allocated fill-value chunks …
fm3 Dec 11, 2024
a8e5ca1
Update Documentation (#8262)
hotzenklotz Dec 12, 2024
43fe639
fix Links in docs
hotzenklotz Dec 12, 2024
8c842c3
Only show locked banner if current user is in organization of the ann…
MichaelBuessemeyer Dec 12, 2024
6febb57
Fix nml upload with only ds name in nml by using user's orga as fallb…
MichaelBuessemeyer Dec 16, 2024
e1dd067
Fix appending task bbox to user bbox in annotation nml upload (#8280)
MichaelBuessemeyer Dec 16, 2024
7fce714
Update Cursor Right Away When Bounding Box Is Hovered (#8253)
knollengewaechs Dec 16, 2024
a75c6a4
Bump nanoid from 3.3.2 to 3.3.8 (#8272)
dependabot[bot] Dec 16, 2024
112c584
update the documentation on 2024 publications using WK (#8284)
hotzenklotz Dec 17, 2024
8b3102e
update links in publications (docs)
hotzenklotz Dec 17, 2024
cc75b60
Bump FossilDB to 0.1.33 (#8287)
fm3 Dec 17, 2024
fe53375
Don't require zarr 3 Bytes Codec configuration key (#8282)
frcroth Dec 18, 2024
32257f1
Fix screenshot tests (#8289)
MichaelBuessemeyer Dec 18, 2024
2b1242f
Update screenshots (#8294)
MichaelBuessemeyer Dec 19, 2024
f20ec50
Speed up some requests (#8290)
fm3 Jan 6, 2025
4e11a14
remove unused legacy routes (#8293)
MichaelBuessemeyer Jan 6, 2025
777f294
Allow selective segment visibility regardless of proofreading tool (#…
philippotto Jan 6, 2025
8606100
Allow to restrict floodfill to a bounding box (#8267)
philippotto Jan 6, 2025
ccf3a71
Omit mag slider in TIFF export if only one mag is available (#8297)
knollengewaechs Jan 6, 2025
e5aecf5
Remove isScratch banner (#8296)
philippotto Jan 6, 2025
6b4b192
Call triggers/reload with fallback layer name (#8298)
knollengewaechs Jan 6, 2025
da2d0dc
Fix screenshot tests (#8304)
MichaelBuessemeyer Jan 7, 2025
6b36e40
Choose mag when training models on multiple annotations (#8266)
knollengewaechs Jan 7, 2025
cad8de3
Improve styling of buttons in toolbar & refactor CSS (#8295)
philippotto Jan 7, 2025
5a556be
Fix regression in styling of skeleton and segment tree UI (#8307)
philippotto Jan 7, 2025
97ce494
Allow to specify mask during inference when using a custom workflow (…
daniel-wer Jan 8, 2025
abce5a5
Update biome to v1.9.4 (#8313)
hotzenklotz Jan 9, 2025
e007e41
Add Bluesky account to emails (#8315)
hotzenklotz Jan 9, 2025
466ce63
Allow to switch to fill or pick segment tool when eraser is active (#…
philippotto Jan 9, 2025
17ac2c9
Dont crash job list for unknown jobs (#8300)
knollengewaechs Jan 13, 2025
cc877f9
Bump http-proxy-middleware from 2.0.6 to 2.0.7 (#8146)
dependabot[bot] Jan 13, 2025
2704f0b
Refactor backend: Use “folder” only for dashboard folders, otherwise …
fm3 Jan 14, 2025
e8445bc
Support OME-NGFF zarr dataset translation (#8311)
frcroth Jan 15, 2025
e2140bb
Updated dev_install.md docs (#8309)
hotzenklotz Jan 15, 2025
3fb49a0
Misc improvements to details table in skeleton and segments tab (#8316)
philippotto Jan 16, 2025
761f1b1
Add option to train AI using Tasks and their bounding boxes (#8310)
MichaelBuessemeyer Jan 16, 2025
a04bca6
When jobsEnabled=False, send empty jobsSupportedByAvailableWorkers li…
fm3 Jan 16, 2025
ec79b53
Fix viewport min/max button in Safari (#8337)
hotzenklotz Jan 17, 2025
46de3b8
Make email footer line configurable (#8326)
fm3 Jan 20, 2025
e1b924d
Avoid SQL error in case of duplicate mag in datasource-properties (#8…
fm3 Jan 20, 2025
1287169
Implement option to export proofreading as segmentation (#8286)
cdfhalle Jan 20, 2025
d71e780
updated publications list in docs
hotzenklotz Jan 20, 2025
be83f8e
Fix edge cases in NGFF dataset upload (#8341)
frcroth Jan 20, 2025
eb1423c
Fix processing job list (#8323)
knollengewaechs Jan 21, 2025
3ebae3f
Release 25.01.0 (#8346)
philippotto Jan 22, 2025
7428962
Assert that all migrations are mentioned in migration guide and that …
philippotto Jan 22, 2025
14ac142
Bump cross-spawn from 7.0.3 to 7.0.6 (#8213)
dependabot[bot] Jan 22, 2025
e9c31a9
Redirect rather than proxy to about page (#8344)
fm3 Jan 22, 2025
71d1936
Use match shorthand DataLayerWithMagLocators.mapped (#8343)
fm3 Jan 22, 2025
1fed6d3
Allow permanent dataset layer rotation in dataset settings (#8159)
MichaelBuessemeyer Jan 22, 2025
7f49dda
fix: don't use internal sun.reflect exception (#8351)
jrudolph Jan 23, 2025
4e33465
Certificate validation (#8320)
normanrz Jan 23, 2025
e20c218
Revert "Allow permanent dataset layer rotation in dataset settings (#…
MichaelBuessemeyer Jan 24, 2025
8588eaf
Allow merger mode when null-mapping is locked (#8335)
philippotto Jan 27, 2025
baa129c
Log slow RPC requests (#8349)
fm3 Jan 27, 2025
13f8c14
Unified annotation versioning (#7917)
fm3 Jan 27, 2025
fd97cd5
In UAV migration, respect timezone when comparing annotation modified…
fm3 Jan 28, 2025
3400b36
Fix merging trees (#8359)
MichaelBuessemeyer Jan 29, 2025
f83da10
more verbose error message when duplicating updates fails (#8360)
fm3 Jan 29, 2025
a46d76b
Readd fixed version of "Allow permanent dataset layer rotation in dat…
MichaelBuessemeyer Jan 29, 2025
c8d5bf0
Fix serializing DeleteSegmentDataUpdateAction (#8362)
fm3 Jan 29, 2025
014a8e8
Update MIGRATIONS.released.md (#8365)
philippotto Jan 30, 2025
2171b8f
Set actionTracingId to tracingId for editableMappingUpdates (#8361)
fm3 Jan 30, 2025
bd70862
Fix merging editable mappings where self-merge is generated; fix comp…
fm3 Jan 30, 2025
a723fcd
Evaluate segmentation in infer neurons task (#8221)
cdfhalle Jan 31, 2025
9f1a334
Fix segment registering in coarser mags for non-mag-aligned bounding …
daniel-wer Feb 3, 2025
5aacd64
Show measurement tool in read-only mode (#8334)
knollengewaechs Feb 3, 2025
a471709
Avoid onboarding screen if /api/organizationsIsEmpty fails (#8356)
knollengewaechs Feb 3, 2025
f1035db
Add more videos to docs (#8373)
hotzenklotz Feb 4, 2025
3b946f8
Use ObjectId directly as parameter in routes (#8285)
frcroth Feb 5, 2025
5447c6e
Improve Slider Scrolling (#8321)
knollengewaechs Feb 6, 2025
5d04993
Fix UAV migration bug: look up editableMappingsInfo versions in corre…
fm3 Feb 7, 2025
7c2975f
Support reading Blosc-compressed data chunks with autoshuffle (#8387)
fm3 Feb 11, 2025
a386e5e
WebAuthn base implementation
robert-oleynik Oct 1, 2024
62f7277
Merge branch 'webauthn' of github.com:scalableminds/webknossos into w…
robert-oleynik Feb 11, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
119 changes: 4 additions & 115 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,9 @@ jobs:
docker-compose up -d postgres
sleep 3
docker-compose run compile tools/postgres/dbtool.js check-evolutions-schema
- run:
name: Assert that all migrations are mentioned in one migration guide and that they have a reversion counterpart.
command: tools/assert-complete-migrations.sh
- run:
name: Build frontend documentation
command: |
Expand Down Expand Up @@ -118,6 +121,7 @@ jobs:
- run:
name: Run end-to-end tests
command: |
mkdir -p binaryData/Organization_X && chmod 777 binaryData/Organization_X
for i in {1..3}; do # retry
.circleci/not-on-master.sh docker-compose run e2e-tests && s=0 && break || s=$?
done
Expand Down Expand Up @@ -200,99 +204,6 @@ jobs:
name: Send Slack notification (master only)
command: .circleci/slack-notification.sh

nightly:
docker:
- image: scalableminds/puppeteer:master
resource_class: large
steps:
- checkout
- run:
name: Remove dev-deployment
command: >
curl
-X POST
-H "X-Auth-Token: $RELEASE_API_TOKEN"
https://kubernetix.scm.io/hooks/remove/webknossos/dev/master?user=CI+%28nightly%29
- run:
name: Wait 3min
command: sleep 180
- run:
name: Install dev-deployment
command: >
curl
-X POST
-H "X-Auth-Token: $RELEASE_API_TOKEN"
https://kubernetix.scm.io/hooks/install/webknossos/dev/master?user=CI+%28nightly%29
- run:
name: Install dependencies and sleep at least 3min
command: |
yarn install --immutable &
sleep 180 &
wait
- run:
name: Refresh datasets
command: curl -X POST --fail https://master.webknossos.xyz/data/triggers/checkInboxBlocking?token=$WK_AUTH_TOKEN
- run:
name: Run screenshot-tests
command: |
# CircleCI cancels the job after 60 minutes. To ensure that screenshots are still
# uploaded as artifacts, we define a timeout of 50 minutes for the screenshot tests.
URL=https://master.webknossos.xyz/ \
timeout 3000 \
yarn test-screenshot

- store_artifacts:
path: frontend/javascripts/test/screenshots

- store_artifacts:
path: frontend/javascripts/test/snapshots/type-check

- run:
name: Bundle screenshots
when: always
command: |
tar -czvf screenshots.tar frontend/javascripts/test/screenshots

- store_artifacts:
path: screenshots.tar

wkorg_nightly:
docker:
- image: scalableminds/puppeteer:master
resource_class: large
steps:
- checkout
- run:
name: Install dependencies
command: |
yarn install --immutable

- run:
name: Assert GZIP
command: |
# Test gzipped assets
curl -s -I -H "Accept-Encoding: gzip" https://webknossos.org/assets/bundle/main.js | grep -q "content-encoding: gzip"
curl -s -I -H "Accept-Encoding: gzip" https://webknossos.org/assets/bundle/main.css | grep -q "content-encoding: gzip"
# Test gzipped buckets
curl -s -i \
-H 'accept: application/octet-stream' \
-H 'Accept-Encoding: gzip' \
-H 'content-type: application/json' \
--data-raw '[{"position":[2752,4320,1728],"additionalCoordinates":[],"mag":[1,1,1],"cubeSize":32,"fourBit":false}]' \
'https://data-humerus.webknossos.org/data/datasets/scalable_minds/l4dense_motta_et_al_demo/layers/segmentation/data?token=' \
| grep -q "content-encoding: gzip"
echo Success.

- run:
name: Run screenshot-tests
command: |
# CircleCI cancels the job after 60 minutes. To ensure that screenshots are still
# uploaded as artifacts, we define a timeout of 50 minutes for the screenshot tests.
timeout 3000 \
yarn test-wkorg-screenshot

- store_artifacts:
path: frontend/javascripts/test/screenshots-wkorg

workflows:
version: 2
Expand All @@ -304,25 +215,3 @@ workflows:
filters:
tags:
only: /.*/
circleci_nightly:
jobs:
- nightly
triggers:
- schedule:
# 02:15 AM UTC
cron: "15 2 * * *"
filters:
branches:
only:
- master
circleci_wkorg_nightly:
jobs:
- wkorg_nightly
triggers:
- schedule:
# 03:15 AM UTC
cron: "15 3 * * *"
filters:
branches:
only:
- master
2 changes: 1 addition & 1 deletion .codespellrc
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[codespell]
# Ref: https://github.com/codespell-project/codespell#using-a-config-file
skip = *.svg,*.sublime-workspace,*.lock,.codespellrc,./util/target/,./binaryData,./node_modules,./pg,./project/target,./target,./webknossos-datastore/target,./webknossos-jni/target,./webknossos-tracingstore/target,./util/target,./coverage,./public-test,./tools/proxy/node_modules,./docs/publications.md,./public/bundle
skip = *.svg,*.sublime-workspace,*.lock,.codespellrc,./util/target/,./binaryData,./node_modules,./pg,./project/target,./target,./webknossos-datastore/target,./webknossos-jni/target,./webknossos-tracingstore/target,./util/target,./coverage,./public-test,./tools/proxy/node_modules,./docs/publications.md,./public/bundle,./tools/migration-unified-annotation-versioning/venv
# some names and camelCased variables etc
ignore-regex = \b([a-z]+[A-Z][a-zA-Z]*|H Mattern|Manuel|Nat Commun)\b
ignore-words-list = lod,nd,ue
3 changes: 3 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,9 @@ charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true

[*.py]
indent_size = 4

[*.md]
trim_trailing_whitespace = false

Expand Down
2 changes: 2 additions & 0 deletions .github/common_edge_cases.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,3 +14,5 @@ Consider SQL pitfalls:
- `x IN ()` statements must never called with empty list
- `ARRAY_AGG(x)` may have nullable values (use `ARRAY_REMOVE(ARRAY_AGG(x), null)` instead)
- Complex SQL queries may have a fanout effect due to multiple left joins, leading to duplicates

When changing the API version, also adapt `ApiVersioning.CURRENT_API_VERSION`
13 changes: 13 additions & 0 deletions .github/workflows/build_test_deploy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
name: CI Pipeline

on:
workflow_dispatch:

jobs:
foo:
runs-on: ubuntu-20.04
steps:
- name: Checkout code
uses: actions/checkout@v3
with:
fetch-depth: 5
62 changes: 62 additions & 0 deletions .github/workflows/nightly.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
name: Nightly Test Pipeline

on:
workflow_dispatch: {}
schedule:
# Runs every day at 12:00 AM UTC
- cron: '0 0 * * *'

jobs:
nightly-screenshot-tests:
runs-on: ubuntu-latest

steps:
- name: Checkout code
uses: actions/checkout@v3

- name: Remove dev-deployment
run: |
curl -X POST \
-H "X-Auth-Token: ${{ secrets.RELEASE_API_TOKEN }}" \
https://kubernetix.scm.io/hooks/remove/webknossos/dev/master?user=CI+%28nightly%29

- name: Wait 3 minutes
run: sleep 180

- name: Install dev-deployment
run: |
curl -X POST \
-H "X-Auth-Token: ${{ secrets.RELEASE_API_TOKEN }}" \
https://kubernetix.scm.io/hooks/install/webknossos/dev/master?user=CI+%28nightly%29

- uses: actions/setup-node@v4
with:
node-version: 18

- name: Install dependencies and wait
run: |
corepack enable && yarn install --immutable &
sleep 180 &
wait

- name: Refresh datasets
run: |
curl -X POST --fail https://master.webknossos.xyz/data/triggers/checkInboxBlocking?token=${{ secrets.WK_AUTH_TOKEN }}

- name: Run screenshot tests
run: |
URL=https://master.webknossos.xyz/ \
timeout 3000 \
yarn test-screenshot
env:
URL: https://master.webknossos.xyz/
WK_AUTH_TOKEN: ${{ secrets.WK_AUTH_TOKEN }}
BROWSERSTACK_USERNAME: ${{ secrets.BROWSERSTACK_USERNAME }}
BROWSERSTACK_ACCESS_KEY : ${{ secrets.BROWSERSTACK_ACCESS_KEY }}

- name: Upload screenshots as artifact
uses: actions/upload-artifact@v4
if: always()
with:
name: screenshots
path: frontend/javascripts/test/screenshots
60 changes: 60 additions & 0 deletions .github/workflows/wkorg-nightly.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
name: Nightly WK.org Test Pipeline

on:
workflow_dispatch: {}
schedule:
# Runs every day at 12:00 AM UTC
- cron: '0 0 * * *'

jobs:
nightly-screenshot-tests:
runs-on: ubuntu-latest
timeout-minutes: 50

steps:
- name: Checkout code
uses: actions/checkout@v3

- uses: actions/setup-node@v4
with:
node-version: 18

- name: Install dependencies
run: |
corepack enable && yarn install --immutable

- name: Run screenshot tests
run: |
yarn test-wkorg-screenshot
env:
URL: https://webknossos.org/
WK_AUTH_TOKEN: ${{ secrets.WK_AUTH_TOKEN }}
BROWSERSTACK_USERNAME: ${{ secrets.BROWSERSTACK_USERNAME }}
BROWSERSTACK_ACCESS_KEY : ${{ secrets.BROWSERSTACK_ACCESS_KEY }}

- name: Upload screenshots as artifact
uses: actions/upload-artifact@v4
if: always()
with:
name: screenshots
path: frontend/javascripts/test/screenshots-wkorg


nightly-gzip-test:
runs-on: ubuntu-latest

steps:
- name: Assert GZIP is enabled
run: |
# Test gzipped assets
curl -s -I -H "Accept-Encoding: gzip" https://webknossos.org/assets/bundle/main.js | grep -q "content-encoding: gzip"
curl -s -I -H "Accept-Encoding: gzip" https://webknossos.org/assets/bundle/main.css | grep -q "content-encoding: gzip"
# Test gzipped buckets
curl -s -i \
-H 'accept: application/octet-stream' \
-H 'Accept-Encoding: gzip' \
-H 'content-type: application/json' \
--data-raw '[{"position":[2752,4320,1728],"additionalCoordinates":[],"mag":[1,1,1],"cubeSize":32,"fourBit":false}]' \
'https://data-humerus.webknossos.org/data/datasets/scalable_minds/l4dense_motta_et_al_demo/layers/segmentation/data?token=' \
| grep -q "content-encoding: gzip"
echo Success.
12 changes: 11 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ RUNNING_PID
.bloop
.metals
metals.sbt
__pycache__/


# Webknossos
Expand Down Expand Up @@ -89,6 +90,15 @@ flow-coverage/
.nyc_output
coverage
coverage-ts
*.vscode
.bsp
temp-webknossos-schema**
conf/application.conf-e
.env
.bloop
.metals
metals.sbt

**/screenshots/*.diff.png
**/screenshots/*.new.png

Expand All @@ -100,4 +110,4 @@ coverage-ts
!.yarn/releases
!.yarn/sdks
!.yarn/versions
tools/proxy/.yarn/*
tools/**/.yarn/*
Loading