Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
270 commits
Select commit Hold shift + click to select a range
ebfa5ae
feature(backend): Move to fastapi-mail and redis for disposable mail …
simonvanlierde Nov 6, 2025
31bd113
feature(backend): add order_by query param to get_products route
simonvanlierde Nov 6, 2025
662c32e
fix(backend): graceful handling of failed redis connection on app sta…
simonvanlierde Nov 6, 2025
9db5f41
fix(backend): Include built email templates in git
simonvanlierde Nov 7, 2025
5c4d92c
fix(backend): Fix cache dependency in docker compose file (backend, n…
simonvanlierde Nov 7, 2025
775728b
chore: update pre-commit revs
simonvanlierde Nov 7, 2025
36434c3
feature(backend): Use SecretStr for secret env vars in the core config
simonvanlierde Nov 7, 2025
fd86e95
fix(docker): Improve healthcheck timing and override REDIS_HOST var i…
simonvanlierde Nov 7, 2025
f2662a4
fix(backend): default example redis password should be empty
simonvanlierde Nov 7, 2025
d98d002
feature(backend): Use custom fork of fastapi-mail and pass redis clie…
simonvanlierde Nov 7, 2025
623961d
fix(backend): Use try except else pattern
simonvanlierde Nov 7, 2025
dc94217
fix(docker): Persist cache data in prod
simonvanlierde Nov 7, 2025
0097982
fix(backend): Move Annotated validation from database models to Creat…
simonvanlierde Nov 7, 2025
5194bd3
feature(backend): Fix Pydantic 2.12 issues and move to python 3.14
simonvanlierde Nov 8, 2025
5bd435c
fix(backend): Init disposable email checker without Redis if no Redis…
simonvanlierde Nov 8, 2025
a0e4533
fix(cicd): Lint pre-commit yaml and update mdformat pre-commit hook
simonvanlierde Nov 8, 2025
9bbd556
fix(backend): Move back to python 3.13 because Dockerized asyncpg doe…
simonvanlierde Nov 8, 2025
7ed08d9
chore(deps): update infrastructure
renovate[bot] Oct 21, 2025
ec74a11
fix(deps): update expo monorepo
renovate[bot] Oct 21, 2025
dadebaa
chore(deps): update dependency @react-navigation/bottom-tabs to v7.4.9
renovate[bot] Oct 20, 2025
086f963
fix(backend): Use TypeAlias over simple type declaration for custom s…
simonvanlierde Nov 8, 2025
b4f3fb6
fix(backend): Only apply sorting if explicit sorting was requested
simonvanlierde Nov 8, 2025
3325db7
feature(backend): Mask user emails in logs for privacy
simonvanlierde Nov 8, 2025
1511004
Potential fix for code scanning alert no. 8: Log Injection
simonvanlierde Nov 8, 2025
7a43515
fix(backend): Simplify URL serializing to DB
simonvanlierde Nov 8, 2025
db2e6e5
fix(backend): Simplify dummy data checking logic
simonvanlierde Nov 8, 2025
fbb34dd
fix(backend): Spellcheck
simonvanlierde Nov 8, 2025
fffbff3
feat(backend): Add circularity_properties model to products
simonvanlierde Nov 17, 2025
d9d2edb
fix(backend): Don't initialize email checker for on synthetic user cr…
simonvanlierde Nov 17, 2025
3b49519
feature(backend): Allow superuser to remove any product
simonvanlierde Nov 17, 2025
e66f286
feature(backend): Move from kg to g for physical_properties weight field
simonvanlierde Nov 17, 2025
0cd5def
feature: paginate users/me/products
simonvanlierde Nov 17, 2025
100039d
fix(backend): make circularity properties optional
simonvanlierde Nov 24, 2025
71a680e
chore(backend): Update to python 3.14
simonvanlierde Nov 25, 2025
04715fe
chore: linting
simonvanlierde Nov 25, 2025
5e69941
feat(backend): Allow patching videos
simonvanlierde Nov 27, 2025
93a469e
Merge pull request #80 from CMLPlatform/frontend-app-circularity-prop…
simonvanlierde Nov 27, 2025
89c64ce
chore: linting
simonvanlierde Nov 27, 2025
ba4017b
chore(backend): Simplify circularity properties model
simonvanlierde Nov 27, 2025
0223b0e
fix(docker): Update runtime stage python version to 3.14 in backend_m…
simonvanlierde Nov 27, 2025
671c006
fix(frontend-app): omit circularityproperties if all fields are null
simonvanlierde Nov 27, 2025
6cf7e9f
fix(backend): Add some logging on rpi-cam related network errors
simonvanlierde Nov 27, 2025
f68a950
fix(backend): Remove unused docker arg
simonvanlierde Nov 27, 2025
ef7deb5
fix(backend): update ruff target python version
simonvanlierde Dec 1, 2025
1ef6d7a
fix(backend): Update python target version for ruff to 3.14
simonvanlierde Dec 1, 2025
cbdfbc3
fix(backend): Move logging module
simonvanlierde Dec 1, 2025
324ce8e
fix(backend): Lint backend with ruff targeted to 3.14 and remove unus…
simonvanlierde Dec 2, 2025
c4eb2be
fix(backend): Remove min length constraints from CircularityPropertie…
simonvanlierde Dec 8, 2025
88a6cbc
fix(backend): Hotfix for SQLmodel issues
simonvanlierde Dec 8, 2025
d74517d
fix(backend): Revert to old-school sqlalchemy typing to fix runtime O…
simonvanlierde Dec 8, 2025
c6665bd
feat(backend): Add timeout and use-cookies vars to rclone backup script
simonvanlierde Dec 8, 2025
23750d1
fix(backend): Simplify UserRead model for admin level user GET paths
simonvanlierde Feb 9, 2026
bd24f92
feature(backend): Move from pyright to ty for type checking
simonvanlierde Feb 12, 2026
96204d0
fix(backend): Update devcontainer and vscode settings for use of ty f…
simonvanlierde Feb 12, 2026
5a31886
fix(backend): Some type issue fixes
simonvanlierde Feb 12, 2026
0f2a131
fix(backend): Type fixes after ty linting - alembic migrations
simonvanlierde Feb 17, 2026
dc14b96
feature(backend): WIP: test suite
simonvanlierde Feb 17, 2026
cb8c259
fix(backend): some type fixes in scripts
simonvanlierde Feb 17, 2026
7b26374
fix(backend): Some type and linting fixes
simonvanlierde Feb 17, 2026
055fd4b
feature(docker): Create publicly available test env
simonvanlierde Feb 18, 2026
36b2389
fix(docker): More explicit cloudflare tunnel token definitions
simonvanlierde Mar 2, 2026
38874cf
fix(ci): Add pytest cache to root-level .gitignore
simonvanlierde Mar 2, 2026
2528ee7
feature(backend): Implement environment variables (dev, testing, stag…
simonvanlierde Mar 2, 2026
dd6e686
fix(backend): Update minimum python version
simonvanlierde Mar 2, 2026
6828d0f
fix(ci): Update ty config for VS code
simonvanlierde Mar 2, 2026
55df6ca
fix(backend): Simplify alembic config
simonvanlierde Mar 2, 2026
4797595
feature(backend): Implement session-based auth with Redis database
simonvanlierde Mar 2, 2026
6190d44
feature(backend): Suppress sending emails in dev and testing env
simonvanlierde Mar 2, 2026
0fe616e
feature(backend): Add last login and ip to user model for session con…
simonvanlierde Mar 2, 2026
d9b4d77
fix(backend): Only init disposable email checker in staging and prod
simonvanlierde Mar 2, 2026
38a35f7
feature(backend): Add rate limiting for login and register endpoints
simonvanlierde Mar 2, 2026
93490bd
feature(backend): Add caching of background data and remove asyncache…
simonvanlierde Mar 2, 2026
eb223af
fix(backend): Refactor file mounting to separate file
simonvanlierde Mar 2, 2026
472eed5
feature(backend): Move to Loguru for logging
simonvanlierde Mar 2, 2026
7ddf770
feature(backend): Add rate limiting exception handler
simonvanlierde Mar 2, 2026
0bbe71e
fix(backend): Move to custom async cache for camera status caching
simonvanlierde Mar 2, 2026
b7af978
feature(Implement updated oauth service in youtube streaming service …
simonvanlierde Mar 2, 2026
dac20ae
fix(backend): Fix linting issues
simonvanlierde Mar 2, 2026
fac9ff4
fix(backend): Fix linting issues in scripts
simonvanlierde Mar 2, 2026
37c39cd
fix(backend): Simplify linting config
simonvanlierde Mar 2, 2026
452158b
feature(backend): WIP: test suite
simonvanlierde Mar 2, 2026
2263cee
feature(ci): Add just task runner
simonvanlierde Mar 2, 2026
b6b6ddb
fix(backend): Add deps to pyproject.toml
simonvanlierde Mar 2, 2026
efb98ca
fix(docker): Remove reference to alembic.ini in Docker image
simonvanlierde Mar 11, 2026
68a83b6
fix(backend): Ensure user update data is validated
simonvanlierde Mar 11, 2026
509865a
feature(backend): Disable rate limiting in dev and testing envs
simonvanlierde Mar 11, 2026
9c4241a
feature(backend): Implement custom oauth router that allows redirects…
simonvanlierde Mar 11, 2026
9b0db13
chore(backend): Update email templates
simonvanlierde Mar 11, 2026
8027b9c
feature(frontend-app): Update frontend to work with the new auth back…
simonvanlierde Mar 11, 2026
11b3afa
feature(frontend-web): Update privacy policy
simonvanlierde Mar 11, 2026
6ef0d8e
chore(deps): Update uv base image
simonvanlierde Mar 17, 2026
12bd0c9
fix(docker): Move from snake_case to kebab-case for backend-migration…
simonvanlierde Mar 17, 2026
22ced6d
fix(ci): Update pre-commit config
simonvanlierde Mar 18, 2026
d5f8ece
fix(ci): Update devcontainer config
simonvanlierde Mar 18, 2026
5278215
fix(docs): Small updates in repo docs
simonvanlierde Mar 18, 2026
d653449
fix(ci): Update renovate.json
simonvanlierde Mar 18, 2026
b9e5d0e
fix(ci): Update vs code config
simonvanlierde Mar 18, 2026
18a2056
fix(backend): Move test cov reports
simonvanlierde Mar 18, 2026
1f523a3
fix(backend): Update license expression
simonvanlierde Mar 18, 2026
7b7aab2
fix(backend): Use alembic built in check instead of alembic-autogen dep
simonvanlierde Mar 18, 2026
efd43a7
fix(backend): Create own fork of fastapi-cache2 for stability
simonvanlierde Mar 18, 2026
48d4870
fix(ci): Move from snake_case to kebab-case
simonvanlierde Mar 18, 2026
1926f43
chore(backend): newline to end of email templates
simonvanlierde Mar 18, 2026
5a28518
fix(docs): update casing in backup readme
simonvanlierde Mar 18, 2026
e7c572b
feature(frontend-web): Move from expo to Astro
simonvanlierde Mar 18, 2026
365e2cb
feature(docs): Move from mkdocs-material to zensical
simonvanlierde Mar 18, 2026
f88bdbb
feature(backend): Add healthcheck endpoints
simonvanlierde Mar 18, 2026
dde0138
fix(backend): Refactor base model and crud functionality to adhere to…
simonvanlierde Mar 18, 2026
3fafd5d
fix(ci): Update justfiles
simonvanlierde Mar 18, 2026
2190f61
feature(backend): Overhaul backend auth (remove sessions, override oa…
simonvanlierde Mar 18, 2026
c65d750
fix(backend): Small linting fixes
simonvanlierde Mar 18, 2026
1df8111
fix(backend): Small linting fixes in scripts
simonvanlierde Mar 18, 2026
e946c50
fix(backend): Update tests
simonvanlierde Mar 18, 2026
1269795
fix(backend): Add test deps
simonvanlierde Mar 18, 2026
89471bb
fix(frontend-app): Integrate new backend auth
simonvanlierde Mar 18, 2026
d15114f
fix(frontend-app): add health endpoint
simonvanlierde Mar 18, 2026
8b413de
fix(frontend-app): Add eslintcache to gitignore
simonvanlierde Mar 18, 2026
b8eec6d
fix(ci): Update compose files (add healthchecks, add frontend-web sta…
simonvanlierde Mar 18, 2026
c3888fd
chore: update lockfiles
simonvanlierde Mar 18, 2026
529d35d
fix(ci): Update staging config
simonvanlierde Mar 18, 2026
df07d66
fix(backend): Fix backend migrations uploading files to wrong volume …
simonvanlierde Mar 18, 2026
404d1ed
fix(ci): Fix CORS issues in staging env
simonvanlierde Mar 18, 2026
25def38
fix(ci): Add staging env for docs
simonvanlierde Mar 18, 2026
8662579
fix(backend): Remove ALLOWED_ORIGINS env var
simonvanlierde Mar 18, 2026
9c37507
fix: Make root gitignore stricter
simonvanlierde Mar 20, 2026
4972b7a
fix(ci): Add shellcheck
simonvanlierde Mar 20, 2026
cddc556
fix(ci): Update gitignores
simonvanlierde Mar 20, 2026
b1ac6c7
fix(infra): Update devcontainer config
simonvanlierde Mar 20, 2026
385fae6
fix(docker): Update dockerignores
simonvanlierde Mar 20, 2026
8fd6ad8
fix(ci): Fix backend ruff config so that it is correctly parsed when …
simonvanlierde Mar 20, 2026
e20b6c4
fix(cd): Improve dotenv setup
simonvanlierde Mar 20, 2026
665a13b
fix(infra): Update devcontainer docs
simonvanlierde Mar 20, 2026
64e25c6
fix(ci): Update docker compose setup (add ci and e2e compose files), …
simonvanlierde Mar 20, 2026
d02e68b
fix(ci): Update dockerfiles (move healthchecks to Dockerfiles, pin py…
simonvanlierde Mar 20, 2026
08d211d
fix(backend): Update scripts
simonvanlierde Mar 20, 2026
8eb263e
fix(backend): Update oauth backend to propagate errors to frontend
simonvanlierde Mar 20, 2026
392b574
fix(backend): Implement Pydantic SecretStr for relevant model and sch…
simonvanlierde Mar 20, 2026
87f0e89
fix(backend): Use new env file config for rpi_cam_plugin
simonvanlierde Mar 20, 2026
1aad026
fix(backend): Replace tldextract dependency with built in url parsing
simonvanlierde Mar 20, 2026
91da15a
fix(backend): Update backend UI to work with new auth setup, update s…
simonvanlierde Mar 20, 2026
7149862
fix(docs): Update documentation, add justfile
simonvanlierde Mar 20, 2026
1179d26
fix(frontend-app): Update frontend-app deps, add justfile)
simonvanlierde Mar 20, 2026
15288c0
feature(frontend-app): add e2e test skeleton
simonvanlierde Mar 20, 2026
9373663
fix(frontend-app): Update api fetching based on new backend auth
simonvanlierde Mar 20, 2026
2af9bca
feature(frontend-app): Add basic test suite
simonvanlierde Mar 20, 2026
458fe18
feature(frontend-web): Add e2e tests, small fixes
simonvanlierde Mar 20, 2026
7fe9958
fix(backend): Simplify config
simonvanlierde Mar 20, 2026
c266df5
fix(backend): Small updates
simonvanlierde Mar 20, 2026
5381fbc
fix: Update root justfile
simonvanlierde Mar 20, 2026
388a0f7
fix(docs): Update documentation
simonvanlierde Mar 20, 2026
ea98083
fix(ci): Update renovate.json
simonvanlierde Mar 20, 2026
05ebc96
fix(ci): add cspell config
simonvanlierde Mar 24, 2026
b75539e
fix(ci): Add uv lock upgrades to all python subrepos in pre-commit co…
simonvanlierde Mar 24, 2026
dbed457
fix(ci): Update justfiles
simonvanlierde Mar 24, 2026
941a6e9
fix(frontend-web): Enhance error handling for undefined and empty bas…
simonvanlierde Mar 24, 2026
48a2043
feature(frontend-web): Update styling to match app
simonvanlierde Mar 24, 2026
7601934
fix(frontend-web): Add footer and enhance styling for better responsi…
simonvanlierde Mar 24, 2026
5ba971d
fix(frontend-web): Remove redundant health screen (replaced by Caddy …
simonvanlierde Mar 24, 2026
36264ab
fix(frontend-web): Update exclude paths in config files
simonvanlierde Mar 24, 2026
d2a9505
fix(frontend-web): Update tests
simonvanlierde Mar 24, 2026
e0bcce7
chore(frontend-web): Lint env files
simonvanlierde Mar 24, 2026
f7a8553
chore(docs): Add linting dependencies
simonvanlierde Mar 24, 2026
a2c8aca
feature(docs): Add footer with copyright and social links, fix spelli…
simonvanlierde Mar 24, 2026
f1c956a
chore: upgrade uv lockfiles
simonvanlierde Mar 24, 2026
2657b1f
feature(backend): Add in-memory refresh token storage for dev situati…
simonvanlierde Mar 24, 2026
ff27b3f
feature(backend): Add cors origin regex var for easier local development
simonvanlierde Mar 24, 2026
39d50eb
fix(backend): Small fixes to scripts
simonvanlierde Mar 24, 2026
c31d8dc
feature(backend): Add file cleanup service and script
simonvanlierde Mar 24, 2026
7ef1499
fix(backend): Make cleanup service fully async
simonvanlierde Mar 24, 2026
a4c9c9b
feature(backend): Add load_sqlmodel_models tool
simonvanlierde Mar 24, 2026
0bf97bc
fix(backend): Simplify config setup
simonvanlierde Mar 24, 2026
c631ee5
fix(backend): Add order by options for filtered endpoints
simonvanlierde Mar 24, 2026
db9e79a
refactor(backend): Refactor model construction to avoid missing ID ty…
simonvanlierde Mar 24, 2026
598626d
feature(backend): Add tsvector search endpoint for products
simonvanlierde Mar 24, 2026
3955d4d
feature(backend): Paginate get routes with many items
simonvanlierde Mar 24, 2026
30940da
feature(backend): Allow login with username and email simultaneously
simonvanlierde Mar 24, 2026
9aac196
fix(backend): Allow local storage for auth caching in dev mode
simonvanlierde Mar 24, 2026
37c5df1
fix(backend): Optimize email checker task
simonvanlierde Mar 24, 2026
93ba283
feature(backend): Ensure file storage paths exists
simonvanlierde Mar 24, 2026
6c3c3b3
refactor(backend): Replace heavy google api client dep with custom pr…
simonvanlierde Mar 24, 2026
a42ea35
feature(backend): Add image processing pipeline, resize endpoint, pro…
simonvanlierde Mar 24, 2026
d4d9530
fix(backend): Misc updates related to previous commits
simonvanlierde Mar 24, 2026
9279008
feature(backend): Update styling of backend UI and emails
simonvanlierde Mar 24, 2026
86ea3e5
fix(backend): Update tests
simonvanlierde Mar 24, 2026
112fd8c
refactor(backend): Replace fastapi-storage dependency with custom sto…
simonvanlierde Mar 24, 2026
27634f3
chore(frontend-web): linting and updating deps
simonvanlierde Mar 25, 2026
31d671d
fix(ci): Update pre-commit config
simonvanlierde Mar 25, 2026
e0412e5
feature(backend): Refactor codebase to deduplicate shared logic, proc…
simonvanlierde Mar 25, 2026
ab14dda
chore(backend): Rebuild email templates
simonvanlierde Mar 25, 2026
fcaceda
feature(frontend-app: Overhaul UI , refactor code, fix 1500 linting e…
simonvanlierde Mar 25, 2026
efe2eef
fix: Misc linting and small docs and ci updates
simonvanlierde Mar 25, 2026
4fc478d
fix(ci): Harmonize justfiles
simonvanlierde Mar 25, 2026
30dfbd3
fix(docs): Update development docs and github templates
simonvanlierde Mar 25, 2026
40df9a8
fix(backend): Let test factories discover TSVECTOR type
simonvanlierde Mar 25, 2026
c30cf5a
feature(ci): Move from commitizen to release-please for version mgmt
simonvanlierde Mar 25, 2026
d89f9fc
ci: add github workflows
simonvanlierde Mar 25, 2026
612f356
ci: update renovate config
simonvanlierde Mar 25, 2026
992d68b
fix(frontend): exclude lockfiles and data jsons from linting
simonvanlierde Mar 25, 2026
f610491
fix(auth): enhance login redirect safety and sanitize user email logg…
simonvanlierde Mar 25, 2026
d725326
fix(backend): sanitize log values to prevent log-breaking characters.
simonvanlierde Mar 25, 2026
b8d9bb2
fix(login): sanitize 'next' input value and enhance path safety check…
simonvanlierde Mar 25, 2026
dee050c
test(backend): Add test for redirect validation
simonvanlierde Mar 25, 2026
4b28c1e
fix(backend): Simplify login redirect to always point to index
simonvanlierde Mar 25, 2026
cfd199a
fix(backend): Simplify login html to not recognize redirect URIs
simonvanlierde Mar 25, 2026
72876fc
Merge remote-tracking branch 'origin/main' into pr-prep
simonvanlierde Mar 25, 2026
7e6c4ae
fix(frontend-web): Remove unnecessary copy of astro.config.ts in Dock…
simonvanlierde Mar 25, 2026
cd2c746
ci: add update just commands
simonvanlierde Mar 25, 2026
e75a96f
chore: update lockfiles
simonvanlierde Mar 25, 2026
1002beb
ci: Move from pip-audit to uv-audit
simonvanlierde Mar 25, 2026
67560b4
build(backend): Streamline build deps
simonvanlierde Mar 25, 2026
c386560
refactor(security): Move to manual gitleaks, remove advanced codeql s…
simonvanlierde Mar 25, 2026
19241d2
fix(backend): Lazily load Fernet key to allow migrations on lean dep …
simonvanlierde Mar 25, 2026
4beb9f2
refactor(component): streamline input styles in LocalizedFloatInput t…
simonvanlierde Mar 25, 2026
8fac973
refactor(tests): update GitHub link text to be more descriptive in la…
simonvanlierde Mar 25, 2026
0b11be8
fix(backend): Disable shellcheck sourcing to fix CI pipeline (which d…
simonvanlierde Mar 25, 2026
5063442
feature(backend): Allow username for superuser creation
simonvanlierde Mar 25, 2026
88211b5
ci: Add alembic check within backend test suite to avoid explicit dep…
simonvanlierde Mar 25, 2026
c3a2926
fix(backend): Allow null-valued cors-origin regex in prod and staging…
simonvanlierde Mar 25, 2026
7ef7b53
ci(docker): Include migrations in build commands
simonvanlierde Mar 25, 2026
76fb419
fix(backend): Decouple migrations script vars
simonvanlierde Mar 25, 2026
11b7315
build(frontend-app): Compile app in staging environment
simonvanlierde Mar 25, 2026
aa2944a
feat(auth): implement public callback URL construction and add unit t…
simonvanlierde Mar 25, 2026
0275377
fix(frontend-web): Make back to browsing button easier to see
simonvanlierde Mar 25, 2026
e59da89
fix(backend): Ensure deterministic order of email templates for stabi…
simonvanlierde Mar 25, 2026
8d26148
chore(backend): linting
simonvanlierde Mar 25, 2026
bc0f132
ci(docker): fix --profiles -> --profile arg
simonvanlierde Mar 25, 2026
7e44968
feature(backend): Auto-cycle through dummy users in dummy product cre…
simonvanlierde Mar 25, 2026
00ecabf
ci: make cloudflared wait for backend health
simonvanlierde Mar 25, 2026
3e274e2
chore: lint caddyfiles
simonvanlierde Mar 25, 2026
dfc5fbe
fix(frontend-app): Fix race condition on OAuth login
simonvanlierde Mar 25, 2026
52bac81
ci: extend cpsell default libraries
simonvanlierde Mar 25, 2026
44a77f5
ci: add docker orchestration smoke test for backend
simonvanlierde Mar 25, 2026
751f472
fix(backend): Simplify email config and fix failing email config init…
simonvanlierde Mar 25, 2026
9cfac5e
ci: refactor ci actions
simonvanlierde Mar 25, 2026
56ddda3
ci: update security workflow
simonvanlierde Mar 25, 2026
dc9314f
ci: fix frontend e2e test setup by using uncommon ports
simonvanlierde Mar 26, 2026
1f757b0
ci: add explicit codecov config
simonvanlierde Mar 26, 2026
7d086c4
test(frontend-app): Update and expand e2e test suite
simonvanlierde Mar 26, 2026
c860a0b
ci: add explicit codecov config
simonvanlierde Mar 26, 2026
4542366
ci: Use justfile command for ci e2e test
simonvanlierde Mar 26, 2026
29d65a8
ci: only run e2e tests on main
simonvanlierde Mar 26, 2026
a0f9e13
fix(backend): Small fixes to backend scripts
simonvanlierde Mar 26, 2026
74865d5
fix: Add local Docker compose overrides to gitignore
simonvanlierde Mar 26, 2026
d93d279
feature(backend): Add user creation script
simonvanlierde Mar 26, 2026
8ae3641
feature(frontend-app):
simonvanlierde Mar 27, 2026
2a25c0b
fix(frontend-app): fix login test
simonvanlierde Mar 27, 2026
d91d90a
fix(frontend-app): Fix "add new brand" button not showing in edit pro…
simonvanlierde Mar 27, 2026
ab774d4
fix(backend): Use CPV description for product type name and move CPV …
simonvanlierde Mar 27, 2026
26e6dd4
fix(frontend-app): Update OAuth login flow to use full-page redirect …
simonvanlierde Mar 30, 2026
4b294d5
fix: Add explicit gallery and camera buttons on mobile web
simonvanlierde Mar 30, 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
  •  
  •  
  •  
84 changes: 84 additions & 0 deletions .cspell.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
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
ignorePaths:
- .devcontainer
- .dockerignore
- .git
- .gitignore
- .vscode
- package-lock.json
- uv.lock
- "frontend-app/src/assets/data/**"
language: en_us,nl
words:
- categorymateriallink
- categoryproducttypelink
- circularityproperties
- crowdsource
- dismissable
- Donati
- ERD
- fileparenttype
- imageparenttype
- Lierde
- materialproductlink
- newslettersubscriber
- orcid
- organizationrole
- oauthaccount
- physicalproperties
- pressable
- primaryjoin
- producttype
- relab
- remanufacturability
- remanufacturable
- repairability
- selectinload
- shellcheck
- subcomponent
- subcomponents
- subrepo
- subrepos
- supercategory
- taxonomydomain
- tsquery
- tsvector
- trixie
- UNEP
- viewability
- zenodo

# Temp
- ASGI
- Caddyfile
- cloudflared
- Fernet
- fontawesome
- justfile
- mdformat
- mjml
- rclone
- Zensical

ignoreWords:
- ellipsize
- htmlcov
- piexif
- worklets
- xdist
7 changes: 2 additions & 5 deletions .devcontainer/backend/devcontainer.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,13 @@
// 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 '🚀 Backend dev container ready!\\n📦 If .venv is missing, run: uv sync\\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)'",
"features": {
"ghcr.io/devcontainers/features/git:1": {}
},
"customizations": {
"vscode": {
"extensions": ["charliermarsh.ruff", "ms-python.python", "wholroyd.jinja"],
"extensions": ["astral-sh.ty", "charliermarsh.ruff", "ms-python.python", "wholroyd.jinja"],
"settings": {
"[python][notebook]": {
"editor.codeActionsOnSave": {
Expand All @@ -27,8 +26,6 @@
"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
Expand Down
8 changes: 4 additions & 4 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -1,25 +1,27 @@
{
"name": "relab-fullstack",
"dockerComposeFile": ["../compose.yml", "../compose.override.yml"],
"service": "frontend-web",
"service": "frontend-app",
"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)'",
"postAttachCommand": "echo '🚀 Fullstack dev container ready!\\n📦 If node_modules/.venv are missing, run npm ci and uv sync in the relevant subrepo\\n💡 Web frontend: http://localhost:8010\\n💡 Backend: http://localhost:8011\\n💡 Docs: http://localhost:8012\\n💡 App frontend: http://localhost:8013'",
"customizations": {
"vscode": {
"extensions": [
// Frontend
"astro-build.astro-vscode",
"msjsdiag.vscode-react-native",
"christian-kohler.npm-intellisense",
"esbenp.prettier-vscode",
"dbaeumer.vscode-eslint",
"expo.vscode-expo-tools",
// Backend
"astral-sh.ty",
"charliermarsh.ruff",
"ms-python.python",
"wholroyd.jinja",
Expand Down Expand Up @@ -51,8 +53,6 @@
"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,
Expand Down
30 changes: 15 additions & 15 deletions .devcontainer/docs/devcontainer.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
[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)
- Zensical in the devcontainer live reloads /docs (synced from local ./docs)
*/
"mounts": ["source=${localWorkspaceFolder},target=/opt/relab,type=bind,consistency=cached"],
"features": {
Expand All @@ -25,20 +25,20 @@
"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
],
"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
}
}
}
}
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
{
"name": "relab-frontend-web",
"name": "relab-frontend-app",
"dockerComposeFile": ["../../compose.yml", "../../compose.override.yml"],
"service": "frontend-web",
"runServices": ["frontend-web"],
"workspaceFolder": "/opt/relab/frontend-web",
"service": "frontend-app",
"runServices": ["frontend-app"],
"workspaceFolder": "/opt/relab/frontend-app",
// The local workspace is mounted in /opt/relab for git integration
"mounts": ["source=${localWorkspaceFolder},target=/opt/relab,type=bind,consistency=cached"],
"mounts": ["source=${localWorkspaceFolder},target=/opt/relab,type=bind"],
"overrideCommand": true,
"postAttachCommand": "echo '🚀 Frontend dev container ready!\\n💡 To start the Expo dev server, run: npx expo start --web\\n🌐 The server will be available at http://localhost:8010 (forwarded port)'",
"postAttachCommand": "echo '🚀 App frontend dev container ready!\\n📦 If node_modules is missing, run: npm ci\\n💡 To start the Expo dev server, run: npx expo start --web\\n🌐 The server will be available at http://localhost:8013 (forwarded port)'",
"features": {
"ghcr.io/devcontainers/features/git:1": {},
"ghcr.io/devcontainers-extra/features/expo-cli:1": {}
Expand Down
30 changes: 30 additions & 0 deletions .devcontainer/frontend-web/devcontainer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
{
"name": "relab-frontend-web",
"dockerComposeFile": ["../../compose.yml", "../../compose.override.yml"],
"service": "frontend-web",
"runServices": ["frontend-web"],
"workspaceFolder": "/opt/relab/frontend-web",
// The local workspace is mounted in /opt/relab for git integration
"mounts": ["source=${localWorkspaceFolder},target=/opt/relab,type=bind,consistency=cached"],
"overrideCommand": true,
"postAttachCommand": "echo '🚀 Web frontend dev container ready!\\n📦 If node_modules is missing, run: npm ci\\n💡 To start the Astro dev server, run: npx astro dev\\n🌐 The server will be available at http://localhost:8010 (forwarded port)'",
"features": {
"ghcr.io/devcontainers/features/git:1": {}
},
"customizations": {
"vscode": {
"extensions": ["astro-build.astro-vscode", "biomejs.biome", "christian-kohler.npm-intellisense"],
"settings": {
"editor.formatOnSave": true,
"biome.requireConfiguration": true,
"[astro][javascript][typescript][javascriptreact][typescriptreact][json][jsonc]": {
"editor.defaultFormatter": "biomejs.biome",
"editor.codeActionsOnSave": {
"source.fixAll.biome": "always",
"source.organizeImports.biome": "always"
}
}
}
}
}
}
18 changes: 13 additions & 5 deletions .env.example
Original file line number Diff line number Diff line change
@@ -1,14 +1,22 @@
# Example of root .env file
# Copy this file to .env and fill in the values marked with 🔀.

# Enable docker compose bake
COMPOSE_BAKE=true

# Cloudflare Tunnel Token
TUNNEL_TOKEN=your_token
# Cloudflare Tunnel Tokens (used by compose.prod.yml and compose.staging.yml)
TUNNEL_TOKEN_PROD=your_token # 🔀
TUNNEL_TOKEN_STAGING=your_token # 🔀

# Host directory where database and user upload backups are stored
BACKUP_DIR=./backups

# Remote backup config (for use of backend/scripts/backup/backup_rclone.sh script)
BACKUP_REMOTE_HOST=user@host
BACKUP_REMOTE_PATH=/path/to/remote/backup
# Remote rsync backup config (for use of backend/scripts/backup/rsync_backup.sh script)
BACKUP_RSYNC_REMOTE_HOST=user@host # 🔀
BACKUP_RSYNC_REMOTE_PATH=/path/to/remote/backup # 🔀

# Remote rclone backup config (for use of backend/scripts/backup/rclone_backup.sh script)
BACKUP_RCLONE_REMOTE=myremote:/path/to/remote/backup # 🔀
BACKUP_RCLONE_MULTI_THREAD_STREAMS=16
BACKUP_RCLONE_TIMEOUT=5m
BACKUP_RCLONE_USE_COOKIES=false
3 changes: 3 additions & 0 deletions .github/.release-please-manifest.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
".": "0.1.0"
}
33 changes: 33 additions & 0 deletions .github/ISSUE_TEMPLATE/bug-report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
---
about: Report a bug
assignees: ''
labels: bug
name: Bug report
title: 'bug: '
---

## What happened?

_Describe the bug in one or two sentences._

## Environment

_Only include details that help reproduce the issue._

- _App area: backend / web / app_
- _OS / browser / device_
- _Version or build_

## How to reproduce

1. _Go to ..._
1. _Do ..._
1. _See the error_

## What should happen?

_Describe the expected behavior._

## Anything else?

_Add logs, screenshots, or a link to a failing run if useful._
36 changes: 0 additions & 36 deletions .github/ISSUE_TEMPLATE/bug_report.md

This file was deleted.

5 changes: 5 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
blank_issues_enabled: false
contact_links:
- name: Contribution guide
url: https://github.com/CMLPlatform/relab/blob/main/CONTRIBUTING.md
about: Read this first if you need repo conventions, setup help, or contribution guidance.
14 changes: 7 additions & 7 deletions .github/ISSUE_TEMPLATE/feature-request.md
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
---
name: Feature request
about: Suggest an idea for this project
title: 'feature request: '
labels: feature request
about: Propose an improvement
assignees: ''
labels: feature request
name: Feature request
title: 'feature: '
---

## Problem statement
## Problem

_A clear and concise description of the problem._
_What are users trying to do, and what's getting in the way?_

## Proposed solution

_A clear and concise description of what you want to happen._
_Describe the smallest change that would solve it._

## Implementation ideas

Expand Down
Loading
Loading