immich/server/src/services
Afonso Mendonça Ribeiro 95c1f0efeb
fix: timestamp handling for database backup in Web UI (#27359)
* Fix #26502: Fix timestamp handling for database backup in Web UI

Frontend parsed backup timestamps as UTC, but they were in the
server's local timezone, causing wrong relative times.

Add `timezone` field to DatabaseBackupDto to expose server timezone.
Update frontend to parse timestamps using this timezone.
Convert timestamps to user's local timezone before rendering.
Fallback to browser timezone if server timezone is missing.

Ensures correct relative time display in Web UI.

* fix: regenerate open-api types and remove custom backup type

- Ran `make open-api` to update types based on backend changes
- Removed custom BackupWithTimezone type in MaintenanceBackupsList
- Updated timezone props to use the newly generated native type

* fix: simplify timezone handling for database backups

- Updated DatabaseBackupDto to make timezone a required property
- Removed manual DateTime.local().zoneName fallbacks
- Cleaned up type casts after regenerating OpenAPI types

* fix: Add missing newline at end of spec file
2026-04-06 17:27:48 +02:00
..
activity.service.spec.ts refactor: small test factories (#26862) 2026-03-12 14:48:49 -04:00
activity.service.ts refactor: enum casing (#19946) 2025-07-15 14:50:13 -04:00
album.service.spec.ts chore: upgrade to kysely 0.28.11 (#26744) 2026-03-11 16:17:31 +01:00
album.service.ts fix: shared link add to album (#27063) 2026-03-20 13:14:07 -05:00
api-key.service.spec.ts refactor: small test factories (#26862) 2026-03-12 14:48:49 -04:00
api-key.service.ts refactor: prefer buffer (#26469) 2026-02-24 13:26:36 +00:00
api.service.ts fix: validate accept header before returning html (#27019) 2026-03-18 14:15:48 -04:00
asset-media.service.spec.ts feat(server): Add support for .ts files (#27529) 2026-04-06 15:50:05 +02:00
asset-media.service.ts feat(server): add checksum algorithm field (#26573) 2026-03-26 18:20:25 +00:00
asset.service.spec.ts refactor: small test factories (#26862) 2026-03-12 14:48:49 -04:00
asset.service.ts refactor: move encoded video to asset files table (#26863) 2026-03-12 16:15:21 -04:00
audit.service.spec.ts refactor: enum casing (#19946) 2025-07-15 14:50:13 -04:00
audit.service.ts refactor: job names (#19949) 2025-07-15 18:39:00 -04:00
auth-admin.service.ts feat: reset oauth ids (#20798) 2025-08-08 15:42:38 -04:00
auth.service.spec.ts fix(server): fallback to email when name is empty (#27016) 2026-03-19 12:41:20 -04:00
auth.service.ts fix(server): fallback to email when name is empty (#27016) 2026-03-19 12:41:20 -04:00
base.service.ts feat: image editing (#24155) 2026-01-09 17:59:52 -05:00
cli.service.spec.ts refactor: small test factories (#26862) 2026-03-12 14:48:49 -04:00
cli.service.ts chore: migrate to sql-tools library (#26400) 2026-02-23 09:50:16 -05:00
database-backup.service.spec.ts fix(database restores): don't assume onboarding has completed (#27052) 2026-03-26 18:30:14 +01:00
database-backup.service.ts fix: timestamp handling for database backup in Web UI (#27359) 2026-04-06 17:27:48 +02:00
database.service.spec.ts feat: schema-check (#25904) 2026-02-12 17:59:00 -05:00
database.service.ts feat: schema-check (#25904) 2026-02-12 17:59:00 -05:00
download.service.spec.ts fix: Download the edited version when downloading multiple photos (#26259) 2026-02-18 21:47:45 +00:00
download.service.ts fix: Download the edited version when downloading multiple photos (#26259) 2026-02-18 21:47:45 +00:00
duplicate.service.spec.ts feat(server): resolve duplicates (#25316) 2026-03-26 18:33:55 +00:00
duplicate.service.ts feat(server): resolve duplicates (#25316) 2026-03-26 18:33:55 +00:00
index.ts refactor(server): move database restores code into a service (#25918) 2026-02-10 12:12:27 -05:00
job.service.spec.ts refactor: more small tests (#26159) 2026-02-12 08:34:32 -05:00
job.service.ts chore: upgrade to kysely 0.28.11 (#26744) 2026-03-11 16:17:31 +01:00
library.service.spec.ts refactor: more small tests (#26159) 2026-02-12 08:34:32 -05:00
library.service.ts feat(server): add checksum algorithm field (#26573) 2026-03-26 18:20:25 +00:00
maintenance.service.spec.ts feat: restore database backups (#23978) 2026-01-20 09:22:28 -06:00
maintenance.service.ts feat: restore database backups (#23978) 2026-01-20 09:22:28 -06:00
map.service.spec.ts refactor: small test factories (#26862) 2026-03-12 14:48:49 -04:00
map.service.ts refactor: last repository (#16042) 2025-02-11 22:15:56 +00:00
media.service.spec.ts refactor: move encoded video to asset files table (#26863) 2026-03-12 16:15:21 -04:00
media.service.ts fix: detection of WebM container (#24182) 2026-03-31 11:44:51 -04:00
memory.service.spec.ts chore: upgrade to kysely 0.28.11 (#26744) 2026-03-11 16:17:31 +01:00
memory.service.ts fix(server): accept showAt and hideAt for creating memories (#26429) 2026-02-23 21:26:34 +00:00
metadata.service.spec.ts feat(server): add checksum algorithm field (#26573) 2026-03-26 18:20:25 +00:00
metadata.service.ts feat(server): add checksum algorithm field (#26573) 2026-03-26 18:20:25 +00:00
notification-admin.service.spec.ts feat(server): Option to configure SMTPS transport (#22833) 2025-10-17 10:21:27 +00:00
notification-admin.service.ts chore: eslint 10 (#26490) 2026-02-24 08:24:18 -05:00
notification.service.spec.ts chore: upgrade to kysely 0.28.11 (#26744) 2026-03-11 16:17:31 +01:00
notification.service.ts chore: eslint 10 (#26490) 2026-02-24 08:24:18 -05:00
ocr.service.spec.ts refactor: small tests (#26141) 2026-02-11 11:49:00 -05:00
ocr.service.ts fix(server): use bigrams for cjk (#24285) 2025-12-01 17:24:37 +00:00
partner.service.spec.ts refactor: small test factories (#26862) 2026-03-12 14:48:49 -04:00
partner.service.ts chore: upgrade to kysely 0.28.11 (#26744) 2026-03-11 16:17:31 +01:00
person.service.spec.ts feat: create new person in face editor (#27364) 2026-04-02 15:28:40 +00:00
person.service.ts feat: create new person in face editor (#27364) 2026-04-02 15:28:40 +00:00
plugin-host.functions.ts feat: workflow foundation (#23621) 2025-11-14 20:05:05 +00:00
plugin.service.ts feat: disable admin setup (#24628) 2025-12-22 14:15:08 -05:00
queue.service.spec.ts feat: image editing (#24155) 2026-01-09 17:59:52 -05:00
queue.service.ts feat: queues (#24142) 2025-11-25 08:19:40 -05:00
search.service.spec.ts chore: upgrade to kysely 0.28.11 (#26744) 2026-03-11 16:17:31 +01:00
search.service.ts feat(web): add search filter for camera lens model. (#21792) 2025-10-24 14:41:34 -04:00
server.service.spec.ts feat: maintenance mode (#23431) 2025-11-17 17:15:44 +00:00
server.service.ts feat: disable admin setup (#24628) 2025-12-22 14:15:08 -05:00
session.service.spec.ts refactor: small test factories (#26862) 2026-03-12 14:48:49 -04:00
session.service.ts refactor: prefer buffer (#26469) 2026-02-24 13:26:36 +00:00
shared-link.service.spec.ts chore: upgrade to kysely 0.28.11 (#26744) 2026-03-11 16:17:31 +01:00
shared-link.service.ts fix: add to shared link (#26886) 2026-03-12 16:10:55 -04:00
smart-info.service.spec.ts refactor: small tests (#26141) 2026-02-11 11:49:00 -05:00
smart-info.service.ts fix: typos in comments and error messages (#25320) 2026-01-17 18:58:26 -06:00
stack.service.spec.ts chore: upgrade to kysely 0.28.11 (#26744) 2026-03-11 16:17:31 +01:00
stack.service.ts feat(web): Remove from Stack (#19703) 2025-07-22 22:17:06 -04:00
storage-template.service.spec.ts chore: upgrade to kysely 0.28.11 (#26744) 2026-03-11 16:17:31 +01:00
storage-template.service.ts fix(server): Live Photo migration bug when album is in template (#25329) 2026-02-27 12:46:55 +01:00
storage.service.spec.ts feat: change default media location to /data (#20367) 2025-07-29 16:58:50 -04:00
storage.service.ts feat: schema-check (#25904) 2026-02-12 17:59:00 -05:00
sync.service.spec.ts refactor: small test factories (#26862) 2026-03-12 14:48:49 -04:00
sync.service.ts feat(server): SyncAssetEditV1 (#26446) 2026-02-25 18:12:41 +00:00
system-config.service.spec.ts fix(server): opus handling as accepted audio codec in transcode policy (#26736) 2026-03-07 13:08:42 -05:00
system-config.service.ts feat: availability checks (#22185) 2025-09-19 12:18:42 -04:00
system-metadata.service.spec.ts refactor: enum casing (#19946) 2025-07-15 14:50:13 -04:00
system-metadata.service.ts refactor: enum casing (#19946) 2025-07-15 14:50:13 -04:00
tag.service.spec.ts chore: refactor more queries (#25572) 2026-02-19 10:48:30 -05:00
tag.service.ts chore: refactor more queries (#25572) 2026-02-19 10:48:30 -05:00
telemetry.service.ts refactor: user delete (#23163) 2025-10-22 12:54:29 -04:00
timeline.service.spec.ts feat(web): map timeline sidepanel (#26532) 2026-02-26 12:03:23 -05:00
timeline.service.ts fix(server): only asset owner should see favorite status (#20654) 2025-10-16 21:52:36 +00:00
trash.service.spec.ts refactor: job names (#19949) 2025-07-15 18:39:00 -04:00
trash.service.ts refactor: job names (#19949) 2025-07-15 18:39:00 -04:00
user-admin.service.spec.ts refactor: small test factories (#26862) 2026-03-12 14:48:49 -04:00
user-admin.service.ts refactor: user delete (#23163) 2025-10-22 12:54:29 -04:00
user.service.spec.ts refactor: small test factories (#26862) 2026-03-12 14:48:49 -04:00
user.service.ts refactor: user delete (#23163) 2025-10-22 12:54:29 -04:00
version.service.spec.ts chore(server): use dev version check endpoint for non-production environments (#27508) 2026-04-05 10:52:59 +01:00
version.service.ts chore(server): use dev version check endpoint for non-production environments (#27508) 2026-04-05 10:52:59 +01:00
view.service.spec.ts chore: upgrade to kysely 0.28.11 (#26744) 2026-03-11 16:17:31 +01:00
view.service.ts refactor: remove album entity, update types (#17450) 2025-04-18 23:10:34 +02:00
workflow.service.ts feat: workflow ui (#24190) 2025-12-20 21:07:07 -06:00