jubnl
|
49976ab383
|
feat(storage): retire photos as a configurable category — served-only via the ServedCategory seam
|
2026-08-20 20:20:43 +02:00 |
|
jubnl
|
32a12068c6
|
feat(server): allow mirrors on any storage category — lift the backups-only rule
|
2026-08-20 18:50:38 +02:00 |
|
jubnl
|
28ae8f3959
|
test(server): storage slice-1 review follow-ups — mirror s3-replica probe decrypt, all-encrypted seed without key, test-route 401
|
2026-08-20 13:33:24 +02:00 |
|
jubnl
|
bc55167a19
|
fix(server): final-review polish — encryption-gate wording, all-field sentinel guard, README/e2e notes
|
2026-08-20 09:05:20 +02:00 |
|
jubnl
|
67f237733e
|
feat(server): api/admin/storage/test — per-target ephemeral probes, mirror targets probed individually
|
2026-08-20 08:19:02 +02:00 |
|
jubnl
|
7439bcd33c
|
feat(server): api/admin/storage GET/PUT — masked secrets, preview-gated saves, wired reload, audits
|
2026-08-20 08:06:02 +02:00 |
|
jubnl
|
5dc78dd5cf
|
feat(server): registry snapshot() — effective storage config with provenance
|
2026-08-20 07:58:10 +02:00 |
|
jubnl
|
261c67d572
|
feat(server): seed-once storage-config.json boot import — fail closed on any invalid seed
|
2026-08-20 01:01:21 +02:00 |
|
jubnl
|
d9f6151f53
|
feat(server): deriveSecurity.encryptionKeySet and storage secret plumbing (gate, encrypt, unmask, mask, redact)
|
2026-08-20 00:50:27 +02:00 |
|
jubnl
|
a6fb82833f
|
feat(server): remove TREK_S3_*/TREK_UPLOADS_DIR — tombstone boot rule, built-in override as the relocation path
|
2026-08-20 00:41:03 +02:00 |
|
jubnl
|
5758471e4e
|
feat(server): accept settings-declared s3 backends — shared-schema options, decrypt-at-build, registry preview()
|
2026-08-20 00:30:47 +02:00 |
|
jubnl
|
f86e55f104
|
chore(server): final-review polish — stale CI refs, dockerignore key, boundary pins, zero-byte tempfile contract case
|
2026-08-19 22:46:52 +02:00 |
|
jubnl
|
0a4c36e1fb
|
fix(server): scope the zero-byte put workaround to buffered bodies; bind test MinIO to localhost
|
2026-08-19 21:54:44 +02:00 |
|
jubnl
|
0054ae8287
|
fix(server): S3 driver zero-byte put — work around aws4 duplicate Content-Length signing defect
|
2026-08-19 21:46:51 +02:00 |
|
jubnl
|
52b39c7201
|
test(server): env-gated S3 driver contract suite against MinIO
|
2026-08-19 21:39:50 +02:00 |
|
jubnl
|
8b84586db9
|
feat(server): env-declared s3-main storage backend; settings-declared s3 rejected
|
2026-08-19 21:34:50 +02:00 |
|
jubnl
|
6d3d57f97f
|
fix(server): S3 driver Upload monitoring — Transform interposition, stream cleanup
|
2026-08-19 21:26:23 +02:00 |
|
jubnl
|
3906fd3841
|
feat(server): S3 driver put — bounded-peek routing, Upload inactivity deadline
|
2026-08-19 21:03:28 +02:00 |
|
jubnl
|
683270f911
|
feat(server): S3 driver getStream and list — ranged full-object stat, iterator pagination
|
2026-08-19 20:48:53 +02:00 |
|
jubnl
|
c3c0a4cd01
|
feat(server): S3 driver core — aws-lite client seam, stat/delete, driver-owned deadlines
|
2026-08-19 20:36:56 +02:00 |
|
jubnl
|
8ae73a2b5c
|
test(server): pin ranged-read stat and zero-byte roundtrip in the storage driver contract
|
2026-08-19 20:20:58 +02:00 |
|
jubnl
|
939c2ec3e8
|
refactor(memories): immich upload reads through storage; drop uploads-root
|
2026-08-17 06:15:01 +02:00 |
|
jubnl
|
db3c5da04e
|
fix(storage): age-gate the boot spool sweep
|
2026-08-16 09:53:26 +02:00 |
|
jubnl
|
f9d84f5907
|
fix(storage): default defParamCharset to utf8 in the upload factory
|
2026-08-16 09:53:25 +02:00 |
|
jubnl
|
7ae7295e1e
|
feat(storage): multer upload options factory
|
2026-08-16 09:21:15 +02:00 |
|
jubnl
|
75d5bbcfc2
|
feat(storage): settings-backed registry, StorageService facade, module wiring
|
2026-08-16 00:21:22 +02:00 |
|
jubnl
|
5ad1670bd9
|
feat(storage): MirrorDriver composite backend
|
2026-08-16 00:00:26 +02:00 |
|
jubnl
|
19f18a2b3a
|
feat(storage): storage key validation, driver contract suite, LocalDriver
|
2026-08-15 23:54:43 +02:00 |
|