Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
554 commits
Select commit Hold shift + click to select a range
fbdb55b
refactor: update Docker and ignore files for improved build and runti…
simonvanlierde Mar 30, 2026
cf8d107
ci: add smoke test for user-upload backups image in justfile and ci
simonvanlierde Mar 30, 2026
e17ae37
feat: add performance baseline workflow and update related scripts an…
simonvanlierde Mar 30, 2026
379c9c0
refactor: pass through exceptions to base API exception file
simonvanlierde Mar 30, 2026
5b75785
feat(backend): add thumbnail generation and deletion functions for im…
simonvanlierde Mar 30, 2026
710a6ee
feat(backend): Refactor file storage system to support S3 backend
simonvanlierde Mar 30, 2026
6ef1cfc
feat(backend): add image deletion function and integrate thumbnail cl…
simonvanlierde Mar 30, 2026
0c4a057
feat(backend): add option to skip password breach check during user c…
simonvanlierde Mar 30, 2026
d707cb8
refactor(backend): Refactor schemas and models for improved readabili…
simonvanlierde Mar 30, 2026
0204105
refactor(frontend-app): Lint with biome, fix linting issues
simonvanlierde Mar 30, 2026
dc8ba32
test(backend): Update tests for backend)
simonvanlierde Mar 30, 2026
d92a5e4
fix(backend): Remove unused code
simonvanlierde Mar 30, 2026
9ed8634
feat(frontend-app): Migrate all 5 auth forms to RHF + zodResolver
simonvanlierde Mar 31, 2026
51783ef
refactor(backend): Major refactoring to increase maintainability
simonvanlierde Mar 31, 2026
0a840d9
docs: update architecture docs and add C4 diagrams
simonvanlierde Apr 2, 2026
c83aee6
test(backend): Simplify and update backend test suite
simonvanlierde Apr 7, 2026
2627d17
test(frontend-app): update and simplify test suite
simonvanlierde Apr 7, 2026
7e384f9
test(frontend-app): update profile test
simonvanlierde Apr 7, 2026
89b56b4
chore(frontend-web): Update deps and e2e test setup
simonvanlierde Apr 8, 2026
dbc948b
refactor(backend): Flatten physical and circularity properties into p…
simonvanlierde Apr 8, 2026
c19f02b
feat(backend): Add user preferences field
simonvanlierde Apr 8, 2026
97d79f5
feat: Add websocket connection for rpi-cams and build rpi-cam managem…
simonvanlierde Apr 8, 2026
3416159
feat: Small linting fixes and improve typing of base class int/UUID i…
simonvanlierde Apr 8, 2026
a7313d4
fix(backend): update scripts
simonvanlierde Apr 8, 2026
0f876bc
feat(backend): add dev script to mock rpi-cam-plugin
simonvanlierde Apr 8, 2026
af57be0
test(backend): update tests
simonvanlierde Apr 8, 2026
918597f
chore(backend): fix linting
simonvanlierde Apr 8, 2026
e8e63d1
docs: Update doc on raspberry pi camera integration; fix linting
simonvanlierde Apr 8, 2026
615b3c4
fix(backend): refactor for maintainability, add theme picker
simonvanlierde Apr 8, 2026
bb6d4f8
test(frontend-app): Update tests
simonvanlierde Apr 8, 2026
9358d36
chore(frontend-app): Update deps and env files
simonvanlierde Apr 8, 2026
ceaf50d
ci: simplify backend healthcheck
simonvanlierde Apr 8, 2026
f760a37
ci: use gitignore in cspell config
simonvanlierde Apr 8, 2026
81a2759
docs: add rpi-cam install guide
simonvanlierde Apr 8, 2026
88318b7
chore: update root uv lock
simonvanlierde Apr 8, 2026
d670d21
test(frontend-app): Fix e2e tests
simonvanlierde Apr 8, 2026
c382f30
fix(docker): Copy overrides into docs image
simonvanlierde Apr 8, 2026
feb5bf5
fix(frontend-app): update RPI-cam API key instructions
simonvanlierde Apr 8, 2026
4789032
refactor(backend): Simplify file storage and category crud
simonvanlierde Apr 8, 2026
6c74011
refactor: Remove unused filters and simplify API responses for organi…
simonvanlierde Apr 8, 2026
bead38d
fix: Pin slowapi fork
simonvanlierde Apr 8, 2026
4fb1ba1
refactor: Remove unused streaming functions and simplify camera inter…
simonvanlierde Apr 8, 2026
6e4b3d3
test(backend): Update OpenAPI endpoint tests for improved parameter v…
simonvanlierde Apr 8, 2026
85b0a2a
refactor(frontend-app) Remove MJPEG streaming functionality and simpl…
simonvanlierde Apr 8, 2026
831250b
chore(backend): Update lockfile
simonvanlierde Apr 8, 2026
9991672
fix: process github security audit issues
simonvanlierde Apr 8, 2026
3e1b447
ci: Enhance production and staging stack commands with optional profi…
simonvanlierde Apr 8, 2026
18ba756
update cspell config
simonvanlierde Apr 8, 2026
f070949
ci: Update OpenTelemetry configuration and enable tracing in staging …
simonvanlierde Apr 8, 2026
d64a8be
infra: clean up extensions
simonvanlierde Apr 8, 2026
2f718db
test(backend): update tests
simonvanlierde Apr 8, 2026
ae6c6af
refactor: remove unused MJPEG streaming functionality and clean up re…
simonvanlierde Apr 8, 2026
e32c6d8
docs: update installation and user guide for clarity on WebSocket rel…
simonvanlierde Apr 8, 2026
67aca38
fix(frontend-app): update documented default location of websocket c…
simonvanlierde Apr 8, 2026
3edc001
refactor(backend): swap SQLModel query API to SQLAlchemy equivalents
simonvanlierde Apr 8, 2026
6df6bfa
refactor(backend): migrate all models from SQLModel to SQLAlchemy 2.0
simonvanlierde Apr 8, 2026
b2b3243
refactor(docker): optimize COPY commands
simonvanlierde Apr 8, 2026
87b342e
ci: simplify ci
simonvanlierde Apr 9, 2026
35855e8
refactor(backend): replace custom slowapi fork with in-house limiter …
simonvanlierde Apr 9, 2026
5fa9edc
feat(rpi_cam): simplify rpi-cam plugin
simonvanlierde Apr 9, 2026
b20e47d
refactor(backend): Refactor SQLModel to SQLAlchemy
simonvanlierde Apr 9, 2026
761b3fb
test(backend): Update tests
simonvanlierde Apr 9, 2026
3e5d5b7
docs: update sqlmodel -> sqlalchemy
simonvanlierde Apr 9, 2026
e5dbef4
test(frontend-app): fix failing tests and add coverage
simonvanlierde Apr 9, 2026
91c0569
feat(frontend-app): add CSP_API_ORIGIN environment variable for stagi…
simonvanlierde Apr 9, 2026
e2ffd6b
update compose files
simonvanlierde Apr 9, 2026
88f2bc4
fix backend logs
simonvanlierde Apr 9, 2026
a27f8ca
fix docker
simonvanlierde Apr 9, 2026
c3a430a
fix(Caddyfile): update Content Security Policy comments and ensure pr…
simonvanlierde Apr 9, 2026
5604f4c
remove log volumes for docker containers
simonvanlierde Apr 9, 2026
3667d67
frontend fixes
simonvanlierde Apr 9, 2026
66822d8
move to pnpm and fix ci stuff
simonvanlierde Apr 9, 2026
8770844
expand CSP
simonvanlierde Apr 9, 2026
da854e4
remove qr code
simonvanlierde Apr 9, 2026
177103f
update pnpm
simonvanlierde Apr 9, 2026
477d969
fix user uploads permissions
simonvanlierde Apr 9, 2026
797dd96
fix
simonvanlierde Apr 9, 2026
07121dc
update caddyfile
simonvanlierde Apr 9, 2026
a9425ef
fix
simonvanlierde Apr 9, 2026
8647e7d
fix
simonvanlierde Apr 10, 2026
f989f81
fix
simonvanlierde Apr 10, 2026
f9ab2f0
modernize rpi cam setup
simonvanlierde Apr 14, 2026
3f018e8
feat: update product ownership handling and visibility settings
simonvanlierde Apr 14, 2026
39f3aff
refactor(backend): Refactor CRUD operations and improve model retriev…
simonvanlierde Apr 14, 2026
86a7b93
feat(backend): Add LL-HLS proxy and telemetry endpoints for camera in…
simonvanlierde Apr 14, 2026
7437090
test(backend): Refactor RPi Cam tests and services
simonvanlierde Apr 14, 2026
14cc669
chore: update deps
simonvanlierde Apr 14, 2026
39332af
feat(frontend-app): support new rpi mgmt
simonvanlierde Apr 14, 2026
b96e307
chore: update frontend deps
simonvanlierde Apr 14, 2026
454f249
chore: small linting issues
simonvanlierde Apr 15, 2026
d9577d6
fix hmac secret warning
simonvanlierde Apr 15, 2026
a6d3db0
chore(backend): fix linting issues
simonvanlierde Apr 15, 2026
16ce341
test(frontend-app): update tests
simonvanlierde Apr 15, 2026
8248479
ci: update ci and deps
simonvanlierde Apr 15, 2026
43c472f
feat: implement cross-worker relay for RPi camera WebSocket commands
simonvanlierde Apr 15, 2026
2c42fa4
feat: implement camera unpair notification on delete and update WebSo…
simonvanlierde Apr 15, 2026
5742459
refactor: clean up import statements and streamline logging in WebSoc…
simonvanlierde Apr 15, 2026
930ab0c
refactor: rename timeout parameter to timeout_s for consistency in cr…
simonvanlierde Apr 15, 2026
b80ea24
feat: add background task for camera unpair notification on delete op…
simonvanlierde Apr 15, 2026
77c8245
feat: add unit test for camera deletion and background unpair notific…
simonvanlierde Apr 15, 2026
bd56e5b
feat(frontend-app): improve navigation
simonvanlierde Apr 15, 2026
e2051cc
fix(backend): Add hls retry
simonvanlierde Apr 15, 2026
47831ca
some more linting
simonvanlierde Apr 15, 2026
c3c4988
fix: update dependency audit command
simonvanlierde Apr 15, 2026
6f43af4
Merge branch 'main' into pr-prep
simonvanlierde Apr 15, 2026
625a61e
fix: reorganize setup-node action to properly configure package-manag…
simonvanlierde Apr 15, 2026
be83c67
fix: enhance product validation error handling and logging
simonvanlierde Apr 15, 2026
4e8b798
refactor: streamline FastAPI app creation and logging setup
simonvanlierde Apr 15, 2026
9611603
fix: refactor file storage service to directly call storage functions
simonvanlierde Apr 15, 2026
20ce9ca
feat: add YouTube live streaming integration and local connection sup…
simonvanlierde Apr 15, 2026
0d083aa
feat: implement local access info retrieval and self-unpairing for Ra…
simonvanlierde Apr 15, 2026
fd4e78c
feat: enhance camera connection status display and streamline connect…
simonvanlierde Apr 15, 2026
7cbde8b
Refactor and enhance various components across backend and frontend
simonvanlierde Apr 15, 2026
3b5f3b1
refactor: remove router dependency from CameraCard and update navigat…
simonvanlierde Apr 15, 2026
4b2fa76
refactor: clean up imports and improve code formatting across multipl…
simonvanlierde Apr 15, 2026
2144379
feat: add YouTube OAuth association and toggle functionality in profile
simonvanlierde Apr 15, 2026
3e5dab8
feat: enhance camera connection messaging and improve platform-specif…
simonvanlierde Apr 15, 2026
c5f2d12
feat: enhance YouTube OAuth flow with consent prompt and offline acce…
simonvanlierde Apr 15, 2026
80c7b4c
refactor: simplify imports and improve connection messaging in Camera…
simonvanlierde Apr 15, 2026
3e5cb7a
docs: update LivePreview component documentation for improved clarity…
simonvanlierde Apr 15, 2026
48fa828
feat: improve YouTube Live section with dynamic messaging and streaml…
simonvanlierde Apr 15, 2026
7ae9b89
fix: cast user to UserOAuthProtocol during OAuth account update to en…
simonvanlierde Apr 15, 2026
48f691f
refactor: improve code readability by formatting alert messages in Pr…
simonvanlierde Apr 15, 2026
6c95532
feat: resolve last_image_url in CameraCard and API responses for impr…
simonvanlierde Apr 15, 2026
3797fdd
refactor: streamline relay bootstrap logic and enhance state manageme…
simonvanlierde Apr 15, 2026
258937b
feat: enhance streaming functionality with new components and improve…
simonvanlierde Apr 15, 2026
e6f40c1
refactor: reorganize components and improve streaming integration wit…
simonvanlierde Apr 15, 2026
083da1d
feat: add snapshot functionality and camera picker dialog for streaming
simonvanlierde Apr 15, 2026
79b3348
feat: add YouTube token management during OAuth unlinking and session…
simonvanlierde Apr 15, 2026
76d6143
fix youtube stuff
simonvanlierde Apr 15, 2026
4cb6f98
fix live preview typing issues
simonvanlierde Apr 15, 2026
0c2d04f
refactor: update test stubs and patching for image URL builder in rpi…
simonvanlierde Apr 15, 2026
04c1a1d
feat: enhance camera stream handling and connection management
simonvanlierde Apr 15, 2026
39e27e3
feat: update Docker Compose configurations for production and staging…
simonvanlierde Apr 15, 2026
9a261e0
feat: update devcontainer configurations for backend, frontend, and d…
simonvanlierde Apr 15, 2026
3717dfd
refactor: rename backend services to api and update dependencies in d…
simonvanlierde Apr 15, 2026
875493f
refactor: update service names in documentation and task runner for c…
simonvanlierde Apr 15, 2026
9803d95
refactor: update Dockerfiles for consistency and optimize build stages
simonvanlierde Apr 15, 2026
6b379ad
refactor: update service names in security workflow and performance r…
simonvanlierde Apr 15, 2026
12f1d1e
feat: enhance frontend and backend configuration and tooling
simonvanlierde Apr 15, 2026
b2d8a20
refactor(frontend-app): simplification pass (wip)
simonvanlierde Apr 15, 2026
e808f3a
infra: streamline workflows, enhance documentation, and improve perfo…
simonvanlierde Apr 15, 2026
74cccba
test(frontend-app): streamline dialog handling in tests and update Pl…
simonvanlierde Apr 15, 2026
84e92a1
refactor(frontend-web): modernize
simonvanlierde Apr 15, 2026
7bf8a3b
refactor(docs): move from zensical to astro
simonvanlierde Apr 15, 2026
6e3dc59
chore: update configuration files for docs and workflows, adjust path…
simonvanlierde Apr 15, 2026
971552d
update website
simonvanlierde Apr 15, 2026
188cf02
update docs
simonvanlierde Apr 15, 2026
217bb14
update docs
simonvanlierde Apr 15, 2026
4223ef0
update website
simonvanlierde Apr 15, 2026
91acc5f
Refactor code structure for improved readability and maintainability
simonvanlierde Apr 15, 2026
8312bc8
update docs
simonvanlierde Apr 15, 2026
63bb5be
refactor(frontend-app): massive refactoring
simonvanlierde Apr 15, 2026
5f5c4f1
refactor(backend): massive refactoring
simonvanlierde Apr 15, 2026
722bb93
docs and ci
simonvanlierde Apr 15, 2026
5d63e14
chore: update Dockerfiles for consistency and clarity
simonvanlierde Apr 15, 2026
269355b
fix(docs): correct details formatting for styled architecture overview
simonvanlierde Apr 15, 2026
d2125f0
feat: add products screen hook with filtering, sorting, and paginatio…
simonvanlierde Apr 15, 2026
f326ec5
Refactor file storage CRUD operations by modularizing support functions
simonvanlierde Apr 15, 2026
0d65620
feat: enhance category and product tree endpoints to support bounded …
simonvanlierde Apr 15, 2026
6ca8185
chore: update performance report structure
simonvanlierde Apr 16, 2026
6fe33cf
Refactor RPi camera API endpoints and performance tests
simonvanlierde Apr 16, 2026
a2dae20
refactor: reorganize hooks and update API interactions
simonvanlierde Apr 16, 2026
c62390f
feat: implement organization loading and management enhancements
simonvanlierde Apr 16, 2026
eb0906a
feat: add authHelpers functions and integrate into authentication module
simonvanlierde Apr 16, 2026
71d604e
Add unit tests for background data CRUD operations and validation
simonvanlierde Apr 16, 2026
f77e6f1
feat: refactor authentication module and enhance user session management
simonvanlierde Apr 16, 2026
976b8cf
Add behavior-focused tests for newsletter preferences and organizatio…
simonvanlierde Apr 16, 2026
2b29425
refactor: update type hint imports to use TYPE_CHECKING for better pe…
simonvanlierde Apr 16, 2026
84692cc
feat: implement camera connection and capture actions hooks with asso…
simonvanlierde Apr 16, 2026
7f1d82c
feat: enhance streaming functionality and improve user experience acr…
simonvanlierde Apr 16, 2026
f96f7a6
Refactor product mutation routers and CRUD operations
simonvanlierde Apr 16, 2026
d915f85
feat: add OAuth helper functions and tests for callback and redirect …
simonvanlierde Apr 16, 2026
b86914f
aaa
simonvanlierde Apr 16, 2026
f2f1123
bbb
simonvanlierde Apr 16, 2026
341a05f
aaa
simonvanlierde Apr 16, 2026
d044bd8
feat: remove snapshot endpoint and related functionality from RPi cam…
simonvanlierde Apr 16, 2026
88b1447
feat: update WebSocket command handling and add request ID generation
simonvanlierde Apr 16, 2026
c0daccb
feat: enhance static asset handling and improve SPA routing in Caddyfile
simonvanlierde Apr 16, 2026
17e55f5
test: add unit tests for ActiveStreamBanner and StreamingSheet compon…
simonvanlierde Apr 16, 2026
5b420a0
feat: refactor video handling and improve layout in CameraCard and St…
simonvanlierde Apr 16, 2026
2d2df9a
feat: update conditional checks for Python and Node audits in securit…
simonvanlierde Apr 21, 2026
1fdef04
feat: enhance user retrieval methods to eagerly load oauth_accounts
simonvanlierde Apr 21, 2026
8a3daec
refactor(frontend-web): Simplify source and tes suite, expand linting…
simonvanlierde Apr 21, 2026
e3337d1
chore(frontend-web): update deps
simonvanlierde Apr 21, 2026
1e15b1f
feat(frontend-app): Harden rpi pairing, inmplement alst_preview_tumbn…
simonvanlierde Apr 21, 2026
ea26116
refactor(docs): simplify docs, expand linting coverage, fix linting i…
simonvanlierde Apr 21, 2026
7c1325c
lint frontend-web
simonvanlierde Apr 21, 2026
81bcd64
test(backend): simplify and update test suite
simonvanlierde Apr 21, 2026
f3b996d
refactor(backend): wip: simplification and linting of baceknd
simonvanlierde Apr 21, 2026
e83675d
ci: update
simonvanlierde Apr 21, 2026
e8e7bef
ci(backend): update
simonvanlierde Apr 21, 2026
9d7a38c
ci: update compose setup
simonvanlierde Apr 21, 2026
dc9668d
docs: update example env
simonvanlierde Apr 21, 2026
81bc103
misc
simonvanlierde Apr 21, 2026
a11449e
udpate docs
simonvanlierde Apr 21, 2026
38975e2
docs(frontend-app): update docs
simonvanlierde Apr 21, 2026
a31e6c9
feat(backend): enhance organization loading and user fixtures for imp…
simonvanlierde Apr 21, 2026
4cd5e80
update infra of frontend-app
simonvanlierde Apr 21, 2026
0c9f2e0
test(frontend-app): simplify and fix linting errors of test suite
simonvanlierde Apr 21, 2026
34987fc
fix(frontend): Optimize test suite
simonvanlierde Apr 22, 2026
e588363
fix(frontend-web): modernize tsconfig
simonvanlierde Apr 22, 2026
16ee14b
docs(frontend-web): Simplify readme
simonvanlierde Apr 22, 2026
8180ff0
fix(frontend-web): refine test configuration and remove unused mobile…
simonvanlierde Apr 22, 2026
ab72058
fix: harmonize task runners and scripts across subrepos
simonvanlierde Apr 22, 2026
f20a846
fix: modernize and simplify dockerfiles
simonvanlierde Apr 22, 2026
49014bf
fix: remove unused scripts
simonvanlierde Apr 22, 2026
95d6c4a
fix(docs): update docs, simplify dockerfile, add spellcheck config
simonvanlierde Apr 22, 2026
6924d8e
docs(frontend-app): Update readme
simonvanlierde Apr 22, 2026
9be2c36
test(backend): Speed up test suite and add pytest marks where relevant
simonvanlierde Apr 22, 2026
1c6f609
fix(backend): Remove unused erd render script
simonvanlierde Apr 22, 2026
87b10a4
feat: Revise issue templates for bug reports, feature requests, and i…
simonvanlierde Apr 22, 2026
e5a9657
chore: lint ci workflows
simonvanlierde Apr 22, 2026
fff68d5
docs: replace just validate -> ci in docs
simonvanlierde Apr 22, 2026
07d068c
fix: misc linting
simonvanlierde Apr 22, 2026
f221e73
fix: update validate -> ci
simonvanlierde Apr 22, 2026
230d097
fix: address misc codeql issues
simonvanlierde Apr 22, 2026
ab9b469
fix: update monorepo biome config
simonvanlierde Apr 22, 2026
ba4acd1
feat: modernize node tooling config and dep update commands in justfiles
simonvanlierde Apr 22, 2026
39ee4a1
feat: enhance GitHub actions with container security matrix and runti…
simonvanlierde Apr 22, 2026
2030ff4
fix: linting
simonvanlierde Apr 22, 2026
16413dd
fix: update comments in codecov.yml for clarity on path resolution
simonvanlierde Apr 22, 2026
8edd198
fix: remove unused expo-env.d.ts from Dockerfile copy command
simonvanlierde Apr 22, 2026
b848d92
feat: update renovate configuration for improved dependency managemen…
simonvanlierde Apr 22, 2026
c5016e8
feat: add cspell and update pre-commit
simonvanlierde Apr 22, 2026
9db7a49
feat: enhance GitHub Actions workflow with pre-commit caching and spe…
simonvanlierde Apr 22, 2026
9f1b92e
fix: streamline formatting in renovate.json for improved readability
simonvanlierde Apr 22, 2026
b41bf89
refactor: remove unused last image URL functionality and streamline c…
simonvanlierde Apr 22, 2026
b203dab
feat: update deployment and telemetry config
simonvanlierde Apr 23, 2026
2e0f183
fix(backend): fix search utilities
simonvanlierde Apr 23, 2026
c336a5c
fix(backend): include modification time in preview thumbnail URLs
simonvanlierde Apr 23, 2026
7ce715a
refactor(backend): streamline OpenTelemetry configuration and enablem…
simonvanlierde Apr 23, 2026
424abbe
chore(backend): bump relab rpi cam models version
simonvanlierde Apr 23, 2026
ef035cb
feat(backend): add log export functionality to OpenTelemetry integration
simonvanlierde Apr 23, 2026
8cb835c
fix(backend): remove explicit endpoint for OTLP log and trace exporters
simonvanlierde Apr 23, 2026
828d045
feat(backend): add OTLP headers configuration for OpenTelemetry
simonvanlierde Apr 23, 2026
2fa7726
feat(tests): add full-stack cross-browser E2E test command
simonvanlierde Apr 23, 2026
7ef79dd
refactor(dosc): refactor docs and fix 404 issue
simonvanlierde Apr 23, 2026
75737b9
feat(frontend-app): enhance product detail and navigation tests with …
simonvanlierde Apr 23, 2026
cf9d8dd
chore: update deps
simonvanlierde Apr 23, 2026
1684924
chore: update cspell config
simonvanlierde Apr 23, 2026
15b715e
fix: linting
simonvanlierde Apr 23, 2026
75ee809
fix(frontend-app): linting and e2e test suite optimization
simonvanlierde Apr 23, 2026
ebe9f24
test(frontend-app): expand test coverage
simonvanlierde Apr 23, 2026
7b8fd1a
test(backend): add unit tests for password validation, OAuth associat…
simonvanlierde Apr 23, 2026
423eabe
ci: ci fixes
simonvanlierde Apr 23, 2026
c23c56f
ci: more ci fixes
simonvanlierde Apr 23, 2026
2004eb3
feat: add .trivyignore for vulnerability allowlist and update securit…
simonvanlierde Apr 23, 2026
9450502
feat: add E2E testing job for Frontend Web and update conditions for …
simonvanlierde Apr 23, 2026
2962bab
chore: update version to 0.2.0 across all relevant files and enhance …
simonvanlierde Apr 23, 2026
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
  •  
  •  
  •  
120 changes: 120 additions & 0 deletions .cspell.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,120 @@
version: "0.2"
dictionaries:
- coding-terms
- cpp-compound-words
- data-science
- docker
- en-gb
- en-us
- filetypes
- fullstack
- npm
- python
- python-common
- software-tools
enabled: true
enabledFileTypes:
"*": true
dot: true
useGitignore: true
cache:
useCache: true
cacheStrategy: content
ignorePaths:
- .cspell.yml
- .cspellcache
- .devcontainer
- .dockerignore
- .git
- .gitignore
- .trivyignore
- .vscode
- package-lock.json
- pnpm-lock.yaml
- uv.lock
- backend/app/api/auth/resources/disposable_email_domains.txt
- frontend-app/src/assets/data/**
- frontend-app/src/types/api.generated.ts

language: en_us
words:
# Proper nouns
- Donati
- Lierde
- RELab

# Font names
- grotesk

# Technical terms
- linkinator
- LogQL
- mpegurl
- nosniff
- OTLP
- shellcheck
- subrepo
- subrepos
- trivyignores
- trixie
- tsvector

# Miscellaneous
- orcid
- refurbishers
- remanufacturability
- remanufacturable
- repairability
- zenodo

ignoreWords:
- USEPOLLING

overrides:
- filename: "{backend,docs}/**"
words:
# Model terms
- categorymateriallink
- categoryproducttypelink
- circularityproperties
- fileparenttype
- imageparenttype
- materialproductlink
- newslettersubscriber
- organizationrole
- oauthaccount
- physicalproperties
- producttype
- subcomponent
- subcomponents
- supercategory
- taxonomydomain

- filename: "backend/**"
words:
# Technical terms
- instrumentor
- instrumentors
- piexif
- PYTHONDONTWRITEBYTECODE
- PYTHONUNBUFFERED
- primaryjoin
- selectinload
- tsquery
- uninstrument
- xdist
- zxcvbn

- filename: "docs/**"
words:
- RTMP
- HIBP

- filename: "frontend-app/**"
words:
# Technical terms
- ellipsize
- pressable
- pressables
- refetches
- worklets
33 changes: 11 additions & 22 deletions .devcontainer/backend/devcontainer.json
Original file line number Diff line number Diff line change
@@ -1,37 +1,26 @@
{
"name": "relab-backend",
"dockerComposeFile": ["../../compose.yml", "../../compose.override.yml"],
"service": "backend",
"runServices": ["backend"],
"dockerComposeFile": ["../../compose.yml", "../../compose.dev.yml"],
"service": "api",
"runServices": ["api", "redis", "postgres"],
"workspaceFolder": "/opt/relab/backend",
// The local workspace is mounted in /opt/relab for git integration
"mounts": ["source=${localWorkspaceFolder},target=/opt/relab,type=bind,consistency=cached"],
"overrideCommand": true,
"postCreateCommand": "",
"postAttachCommand": "echo '🚀 Backend dev container ready!\\n💡 To start the FastAPI dev server, run: fastapi dev\\n🔄 If that fails, try: uv run fastapi dev\\n🌐 The server will be available at http://localhost:8011 (forwarded port)'",
"postAttachCommand": "echo 'RELab backend devcontainer ready.\\nUse this for focused backend work; the root full-stack container is the default onboarding path.\\nRun just install if needed, then just dev or just check.\\nAPI: http://localhost:8011'",
"features": {
"ghcr.io/devcontainers/features/git:1": {}
},
"customizations": {
"vscode": {
"extensions": ["charliermarsh.ruff", "ms-python.python", "wholroyd.jinja"],
"settings": {
"[python][notebook]": {
"editor.codeActionsOnSave": {
"source.fixAll": "explicit",
"source.organizeImports": "explicit"
},
"editor.defaultFormatter": "charliermarsh.ruff"
"python.defaultInterpreterPath": "${containerWorkspaceFolder}/.venv/bin/python",
"ty.configuration": {
"environment": {
"root": ["${containerWorkspaceFolder}"],
"python": "${containerWorkspaceFolder}/.venv/"
}
},
"editor.formatOnSave": true,
"python-envs.terminal.showActivateButton": true,
"python.analysis.autoFormatStrings": true,
"python.analysis.typeCheckingMode": "standard",
"python.linting.enabled": true,
"python.linting.ruffEnabled": true,
"python.terminal.activateEnvInCurrentTerminal": true,
"python.terminal.activateEnvironment": true,
"python.testing.pytestEnabled": true
"ty.interpreter": ["${containerWorkspaceFolder}/.venv/bin/python"]
}
}
}
Expand Down
68 changes: 4 additions & 64 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -1,74 +1,14 @@
{
"name": "relab-fullstack",
"dockerComposeFile": ["../compose.yml", "../compose.override.yml"],
"service": "frontend-web",
"dockerComposeFile": ["../compose.yml", "../compose.dev.yml"],
"service": "app-site",
"runServices": ["api", "redis", "postgres", "docs-site", "web-site", "app-site"],
"workspaceFolder": "/opt/relab",
"mounts": ["source=${localWorkspaceFolder},target=/opt/relab,type=bind,consistency=cached"],
"features": {
"ghcr.io/devcontainers/features/git:1": {},
"ghcr.io/devcontainers-extra/features/expo-cli:1": {},
"ghcr.io/jsburckhardt/devcontainer-features/uv:1": {}
},
"postAttachCommand": "echo '🚀 Fullstack dev container ready!\\n💡 Frontend: http://localhost:8010\\n💡 Backend: http://localhost:8011\\n💡 Docs: http://localhost:8012 (all forwarded ports)'",
"customizations": {
"vscode": {
"extensions": [
// Frontend
"msjsdiag.vscode-react-native",
"christian-kohler.npm-intellisense",
"esbenp.prettier-vscode",
"dbaeumer.vscode-eslint",
"expo.vscode-expo-tools",
// Backend
"charliermarsh.ruff",
"ms-python.python",
"wholroyd.jinja",
// Docs
"bierner.markdown-mermaid",
"bierner.markdown-preview-github-styles",
"DavidAnson.vscode-markdownlint",
"shd101wyy.markdown-preview-enhanced",
"yzhang.markdown-all-in-one"
],
"settings": {
// Frontend
"[javascript][typescript][javascriptreact][typescriptreact]": {
"editor.codeActionsOnSave": {
"source.fixAll.eslint": "always",
"source.organizeImports": "explicit"
},
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"eslint.format.enable": true,
"eslint.lintTask.enable": true,
"eslint.run": "onSave",
// Backend
"[python][notebook]": {
"editor.codeActionsOnSave": {
"source.fixAll": "explicit",
"source.organizeImports": "explicit"
},
"editor.defaultFormatter": "charliermarsh.ruff"
},
"python.analysis.typeCheckingMode": "standard",
"python.linting.enabled": true,
"python.linting.ruffEnabled": true,
"python.terminal.activateEnvInCurrentTerminal": true,
"python.terminal.activateEnvironment": true,
"python.testing.pytestEnabled": true,
// Docs
"[markdown]": {
"editor.defaultFormatter": "DavidAnson.vscode-markdownlint"
},
"editor.formatOnSave": true,
"github.copilot.enable": {
"markdown": true
},
"markdown.extension.completion.enabled": true,
"markdown.extension.orderedList.marker": "one",
"markdown.extension.tableFormatter.normalizeIndentation": true,
"markdown.extension.theming.decoration.renderTrailingSpace": true
}
}
}
"postAttachCommand": "echo 'RELab full-stack devcontainer ready.\\nPrimary workflow: run just install once, then use just dev / just ci from the repo root.\\nPlatform: http://localhost:8010\\nAPI: http://localhost:8011\\nDocs: http://localhost:8012\\nApp: http://localhost:8013'"
}
39 changes: 4 additions & 35 deletions .devcontainer/docs/devcontainer.json
Original file line number Diff line number Diff line change
@@ -1,44 +1,13 @@
{
"name": "relab-docs",
"dockerComposeFile": ["../../compose.yml", "../../compose.override.yml"],
"service": "docs",
"runServices": ["docs"],
"dockerComposeFile": ["../../compose.yml", "../../compose.dev.yml"],
"service": "docs-site",
"runServices": ["docs-site"],
"workspaceFolder": "/opt/relab/docs",
/*
NOTE: The non-trivial mount setup to allow live reload and git:

[Devcontainer: /opt/relab/docs] ⇄ [Local ./docs] ⇄ [Devcontainer: /docs]

- Edit in git-integrated /opt/relab/docs (devcontainer) → updates local ./docs
- MkDocs in the devcontainer live reloads /docs (synced from local ./docs)
*/
"mounts": ["source=${localWorkspaceFolder},target=/opt/relab,type=bind,consistency=cached"],
"postAttachCommand": "echo 'RELab docs devcontainer ready.\\nUse this for focused docs work; the root full-stack container is the default onboarding path.\\nRun just install if needed, then just dev or just check.\\nDocs: http://localhost:8012'",
"features": {
"ghcr.io/cirolosapio/devcontainers-features/alpine-bash:0": {},
"ghcr.io/devcontainers/features/git:1": {}
},
"customizations": {
"vscode": {
"extensions": [
"bierner.markdown-mermaid",
"bierner.markdown-preview-github-styles",
"DavidAnson.vscode-markdownlint",
"shd101wyy.markdown-preview-enhanced",
"yzhang.markdown-all-in-one"
]
},
"settings": {
"[markdown]": {
"editor.defaultFormatter": "DavidAnson.vscode-markdownlint"
},
"editor.formatOnSave": true,
"github.copilot.enable": {
"markdown": true
},
"markdown.extension.completion.enabled": true,
"markdown.extension.orderedList.marker": "one",
"markdown.extension.tableFormatter.normalizeIndentation": true,
"markdown.extension.theming.decoration.renderTrailingSpace": true
}
}
}
14 changes: 14 additions & 0 deletions .devcontainer/frontend-app/devcontainer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
"name": "relab-frontend-app",
"dockerComposeFile": ["../../compose.yml", "../../compose.dev.yml"],
"service": "app-site",
"runServices": ["app-site"],
"workspaceFolder": "/opt/relab/frontend-app",
"mounts": ["source=${localWorkspaceFolder},target=/opt/relab,type=bind,consistency=cached"],
"overrideCommand": true,
"postAttachCommand": "echo 'RELab app devcontainer ready.\\nUse this for focused app work; the root full-stack container is the default onboarding path.\\nRun just install if needed, then just dev or just check.\\nApp: http://localhost:8013'",
"features": {
"ghcr.io/devcontainers/features/git:1": {},
"ghcr.io/devcontainers-extra/features/expo-cli:1": {}
}
}
13 changes: 13 additions & 0 deletions .devcontainer/frontend-web/devcontainer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"name": "relab-frontend-web",
"dockerComposeFile": ["../../compose.yml", "../../compose.dev.yml"],
"service": "web-site",
"runServices": ["web-site"],
"workspaceFolder": "/opt/relab/frontend-web",
"mounts": ["source=${localWorkspaceFolder},target=/opt/relab,type=bind,consistency=cached"],
"overrideCommand": true,
"postAttachCommand": "echo 'RELab web devcontainer ready.\\nUse this for focused web work; the root full-stack container is the default onboarding path.\\nRun just install if needed, then just dev or just check.\\nWeb: http://localhost:8010'",
"features": {
"ghcr.io/devcontainers/features/git:1": {}
}
}
42 changes: 0 additions & 42 deletions .devcontainer/frontend/devcontainer.json

This file was deleted.

Loading
Loading