* refactor: split restore point flow into stage per component
fix: hook into TaskEnd instead of log completion
* chore: permit orchestrator reset
* chore: misc.
* feat: create local backend
* fix: build kysely async
* fix: re-bootstrap after restore
* chore: use provided redirect_uri
* chore: provide redirect uri
* feat: Dockerfile for michael
* feat: prompt for immich setup
* chore: bump version
Signed-off-by: izzy <me@insrt.uk>
* feat: create local backend
* refactor: add developmentMode flag for module
* fix: skip import step for other two cases
* feat: configure schedule repositories
* chore: enable developmentMode for local dev server
* chore: format
---------
Signed-off-by: izzy <me@insrt.uk>
* refactor: split restore point flow into stage per component
fix: hook into TaskEnd instead of log completion
* chore: permit orchestrator reset
* chore: misc.
* feat: create local backend
* fix: build kysely async
* fix: re-bootstrap after restore
* chore: use provided redirect_uri
* chore: provide redirect uri
* feat: Dockerfile for michael
* feat: prompt for immich setup
* chore: bump version
Signed-off-by: izzy <me@insrt.uk>
* feat: create local backend
* refactor: add developmentMode flag for module
* fix: skip import step for other two cases
* chore: enable developmentMode for local dev server
* chore: format
---------
Signed-off-by: izzy <me@insrt.uk>
* feat: initial commit (mise, nest, restic-api)
* ci: should use new nested tasks
* chore: use absolute imports
* chore: format
* fix: absolute imports for jest
* feat: REST API impl. with in-memory storage
* feat: s3 storage backing (wip)
* fix: use Range in S3 get object
* feat: validate path parameters
* chore: clean up checks
* chore: remove TODO
* docs: add descriptions to mise commands
* feat: JWT auth
* feat: load secrets from env (validate w. zod)
* chore: set default compose variables
* chore: add docker commands to mise
* fix: don't eat JWT errors
* fix: obfuscate s3 errors
* chore: validate auth schema
* feat: commit errors.ts
* fix: return partial status if Range provided
* chore: split jwt/payload validation errors
* fix: check name is a sha256 hash
* feat: streaming download
* feat: streaming upload
* feat: WORM / write once support
* fix: don't obscure other S3 errors for checkBucket
* refactor: more concise error types
* test: service unit tests for app/auth; e2e for storage
* chore: prettier ignore .dev folder
* feat: interceptor for Restic JSON routes
* test: app e2e tests (wip)
* test: partial content response
* chore: lint
* refactor: use class-validator for auth dto
* refactor: clean up constants through project
* refactor: also update binary content type
* fix: incorrect Basic parsing
* fix: actually handle validation errors in auth dto
* chore: delete .gitignore
* fix: should use 403 not 405 in worm
* chore: expose minio console for debug
* feat: delete config route
* fix: error consistency with restic reference
* feat: validate sha256 on blob upload
* fix: use bad request exception for mismatch
* feat: initial work on full e2e test
* fix: respond with correct headers for Range
refactor: unify respond logic
* test: backup & restore e2e test
* feat: setup empty yucca-api project
* feat: setup kysely for yucca-api & db repository
* refactor: `utils.ts` -> `utils/s3.ts`
* fix: shut down database after e2e test
* chore: remove stray log
* test: refactor getObject test
* chore: add built wrapper for now
* chore: add e2e/ to mise task
* chore: format
* fix: esm jest
* feat: setup database migrator
* feat: minimal template for frontend project
* chore: add prettier-plugin-tailwindcss to workspace
* chore: configure @immich/ui
* feat: sdk for web, hook up sample
* chore: add @oazapfts/runtime dependency
* chore: ignore `yucca-sdk/src/fetch-client.ts` from eslint
* chore: format
* chore: move all CI check stages into mise config
* test: mock $env/dynamic/publish for ui library
* chore: format code
* fix: correct restic API port in e2e test
* chore: move tasks around
* chore: use restic-wrapper from npm
* chore: string
* test: comprehensive e2e tests for restic API
* test: cover new commands in e2e tests
* test: worm-case for prune
* feat: lingui for svelte
* chore: ensure check runs lingui
* chore: ignore locales from checks
* chore: format/lint
* chore: configure nix-ld for mise
* chore: move `env.ts` to common package
* chore: accept any no. of arguments for docker tasks/e2e
* chore: different strategy for e2e clean up
* chore: configure Git Town
Signed-off-by: izzy <me@insrt.uk>
* chore: add default.nix for mise
Signed-off-by: izzy <me@insrt.uk>
* chore: lost changes from parent
Signed-off-by: izzy <me@insrt.uk>
* fix: use valid language code
* chore: ignore migration errors in dev
* fix: apply fixes to @common/server (again)
* fix: wait for common:build
---------
Signed-off-by: izzy <me@insrt.uk>
* feat: initial commit (mise, nest, restic-api)
* ci: should use new nested tasks
* chore: use absolute imports
* chore: format
* fix: absolute imports for jest
* feat: REST API impl. with in-memory storage
* feat: s3 storage backing (wip)
* fix: use Range in S3 get object
* feat: validate path parameters
* chore: clean up checks
* chore: remove TODO
* docs: add descriptions to mise commands
* feat: JWT auth
* feat: load secrets from env (validate w. zod)
* chore: set default compose variables
* chore: add docker commands to mise
* fix: don't eat JWT errors
* fix: obfuscate s3 errors
* chore: validate auth schema
* feat: commit errors.ts
* fix: return partial status if Range provided
* chore: split jwt/payload validation errors
* fix: check name is a sha256 hash
* feat: streaming download
* feat: streaming upload
* feat: WORM / write once support
* fix: don't obscure other S3 errors for checkBucket
* refactor: more concise error types
* test: service unit tests for app/auth; e2e for storage
* chore: prettier ignore .dev folder
* feat: interceptor for Restic JSON routes
* test: app e2e tests (wip)
* test: partial content response
* chore: lint
* refactor: use class-validator for auth dto
* refactor: clean up constants through project
* refactor: also update binary content type
* fix: incorrect Basic parsing
* fix: actually handle validation errors in auth dto
* chore: delete .gitignore
* fix: should use 403 not 405 in worm
* chore: expose minio console for debug
* feat: delete config route
* fix: error consistency with restic reference
* feat: validate sha256 on blob upload
* fix: use bad request exception for mismatch
* feat: initial work on full e2e test
* fix: respond with correct headers for Range
refactor: unify respond logic
* test: backup & restore e2e test
* feat: setup empty yucca-api project
* feat: setup kysely for yucca-api & db repository
* refactor: `utils.ts` -> `utils/s3.ts`
* fix: shut down database after e2e test
* chore: remove stray log
* test: refactor getObject test
* chore: add built wrapper for now
* chore: add e2e/ to mise task
* chore: format
* fix: esm jest
* feat: setup database migrator
* feat: minimal template for frontend project
* chore: add prettier-plugin-tailwindcss to workspace
* chore: configure @immich/ui
* feat: sdk for web, hook up sample
* chore: add @oazapfts/runtime dependency
* chore: ignore `yucca-sdk/src/fetch-client.ts` from eslint
* chore: format
* chore: move all CI check stages into mise config
* test: mock $env/dynamic/publish for ui library
* chore: format code
* fix: correct restic API port in e2e test
* chore: move tasks around
* chore: use restic-wrapper from npm
* chore: string
* test: comprehensive e2e tests for restic API
* test: cover new commands in e2e tests
* test: worm-case for prune
* feat: lingui for svelte
* chore: ensure check runs lingui
* chore: ignore locales from checks
* chore: format/lint
* chore: configure nix-ld for mise
* chore: accept any no. of arguments for docker tasks/e2e
* chore: different strategy for e2e clean up
* chore: configure Git Town
Signed-off-by: izzy <me@insrt.uk>
* chore: add default.nix for mise
Signed-off-by: izzy <me@insrt.uk>
* chore: lost changes from parent
Signed-off-by: izzy <me@insrt.uk>
* fix: use valid language code
---------
Signed-off-by: izzy <me@insrt.uk>