Maurice
e015e5e5e8
fix(server): run the remaining multi-statement service writes in one transaction
...
A sweep of the services for write sequences that committed step by step,
each one leaving half a change behind when the next statement failed:
- accommodations: the linked bookings' times moved after the stay's own
transaction had committed
- airports: the boot backfill wrote a flight's two endpoints one at a
time, and a flight left with only the first was never picked up again;
each flight is its own transaction now
- auth: the admin settings form and a password reset (retire the old
link, issue the new one) each land whole
- oauth: a refresh revoked the old pair before issuing the new one, so a
failure in between logged the client out; rotating a client secret and
revoking its tokens go together too
- oidc: the identity link, the role from the claims and the avatar of a
returning user are one write
- addons, notification preferences: a settings save lands whole
- places: create with its tags, update, and the GPX/KML imports with
their track colours
- trips: the trip row, the shifted leave entries and the rebuilt day grid
- vacay: a first visit provisions the plan in one transaction with a
second look against a concurrent first visit; updatePlan fetches the
public holidays between two transactions instead of inside its writes
- memories: a photo and its trip link, and the deletes with the orphan
sweep behind them
AddonsService, AirportsService and OauthService take the UnitOfWork for
this. Network I/O stays outside every transaction. Comments that only
narrated the migration plan make room under the lint:size entries, which
drop with them.
2026-10-08 18:41:32 +02:00
..
2026-10-08 18:41:32 +02:00
2026-10-06 19:27:30 +02:00
2026-10-08 18:41:01 +02:00
2026-10-08 18:40:15 +02:00
2026-10-08 18:38:29 +02:00
2026-10-08 13:04:38 +02:00
2026-10-06 19:27:30 +02:00
2026-10-06 19:27:30 +02:00
2026-10-06 19:27:30 +02:00
2026-10-08 14:11:55 +02:00
2026-10-06 19:27:30 +02:00
2026-08-07 19:58:12 +02:00
2026-10-06 19:27:30 +02:00
2026-10-08 18:40:52 +02:00
2026-10-06 19:27:30 +02:00
2026-10-06 19:27:30 +02:00
2026-09-27 23:26:42 +02:00
2026-10-06 19:27:30 +02:00
2026-10-08 18:41:32 +02:00
2026-10-06 19:27:30 +02:00
2026-10-06 19:27:30 +02:00
2026-10-08 18:41:32 +02:00
2026-10-06 19:27:30 +02:00
2026-10-08 18:38:29 +02:00
2026-10-06 19:27:30 +02:00
2026-10-06 19:27:30 +02:00
2026-10-06 19:27:30 +02:00
2026-10-08 18:40:15 +02:00
2026-10-08 18:40:15 +02:00
2026-06-16 22:22:45 +02:00
2026-10-06 19:27:30 +02:00
2026-10-06 19:27:30 +02:00
2026-10-07 16:16:26 +02:00
2026-10-08 18:40:15 +02:00
2026-10-06 22:43:09 +02:00
2026-10-06 22:43:09 +02:00
2026-08-17 14:48:23 +02:00
2026-09-15 21:36:34 +02:00
2026-10-06 19:27:30 +02:00
2026-10-06 19:27:30 +02:00
2026-10-08 18:40:15 +02:00
2026-10-06 19:27:30 +02:00
2026-10-08 18:41:01 +02:00
2026-10-08 18:41:01 +02:00
2026-08-07 15:14:14 +02:00
2026-10-08 18:38:28 +02:00
2026-08-22 11:33:55 +02:00
2026-10-07 16:03:19 +02:00
2026-10-08 18:38:28 +02:00
2026-10-08 18:38:28 +02:00
2026-10-06 19:27:30 +02:00
2026-10-06 19:27:30 +02:00
2026-10-06 19:27:30 +02:00
2026-10-08 18:38:28 +02:00
2026-10-06 19:27:30 +02:00
2026-10-06 19:27:30 +02:00
2026-10-07 22:56:35 +02:00
2026-10-06 19:27:30 +02:00
2026-10-06 19:27:30 +02:00
2026-10-06 19:27:30 +02:00
2026-10-06 19:27:30 +02:00
2026-10-06 19:27:30 +02:00
2026-08-12 14:14:37 +02:00
2026-10-06 19:27:30 +02:00
2026-10-08 18:41:01 +02:00
2026-09-19 21:01:45 +02:00
2026-10-06 19:27:30 +02:00
2026-10-06 19:27:30 +02:00
2026-08-25 19:26:38 +02:00
2026-06-16 22:22:45 +02:00
2026-09-01 17:18:10 +02:00
2026-10-08 18:40:37 +02:00
2026-10-06 19:27:30 +02:00
2026-10-06 19:27:30 +02:00
2026-10-06 19:27:30 +02:00
2026-10-06 19:27:30 +02:00
2026-09-14 23:00:57 +02:00
2026-10-06 19:27:30 +02:00
2026-09-14 23:00:57 +02:00
2026-10-06 19:27:30 +02:00
2026-10-06 19:27:30 +02:00
2026-10-06 19:27:30 +02:00
2026-10-06 19:27:30 +02:00
2026-10-06 22:43:09 +02:00
2026-10-06 19:27:30 +02:00
2026-10-06 22:43:09 +02:00
2026-10-06 19:27:30 +02:00
2026-08-07 18:42:53 +02:00
2026-10-06 19:27:30 +02:00
2026-10-06 19:27:30 +02:00
2026-10-08 18:40:37 +02:00
2026-10-08 18:40:15 +02:00
2026-08-11 16:42:49 +02:00
2026-10-08 18:40:37 +02:00
2026-10-06 19:27:30 +02:00
2026-10-06 19:27:30 +02:00
2026-10-06 19:27:30 +02:00
2026-09-16 11:08:07 +02:00
2026-10-06 19:27:30 +02:00
2026-10-06 19:27:30 +02:00
2026-10-08 18:41:01 +02:00
2026-09-01 17:18:10 +02:00
2026-10-06 19:27:30 +02:00
2026-10-08 13:04:38 +02:00
2026-10-06 19:27:30 +02:00
2026-10-08 18:41:06 +02:00
2026-10-06 19:27:30 +02:00
2026-10-08 13:04:38 +02:00
2026-08-20 15:43:27 +02:00
2026-10-06 19:27:30 +02:00
2026-09-03 10:47:08 +02:00
2026-10-06 19:27:30 +02:00
2026-10-08 18:40:15 +02:00
2026-10-06 19:27:30 +02:00
2026-08-15 16:42:27 +02:00
2026-08-15 16:42:27 +02:00
2026-09-12 18:02:57 +02:00
2026-08-15 16:42:27 +02:00
2026-08-15 16:42:27 +02:00
2026-09-07 18:36:54 +02:00
2026-10-06 19:27:30 +02:00
2026-10-06 19:27:30 +02:00
2026-10-06 19:27:30 +02:00
2026-10-06 19:27:30 +02:00
2026-10-06 19:27:30 +02:00
2026-10-06 19:27:30 +02:00
2026-10-06 19:27:30 +02:00
2026-10-06 19:27:30 +02:00
2026-09-07 18:36:54 +02:00
2026-10-06 19:27:30 +02:00
2026-09-07 14:05:33 +02:00
2026-10-06 19:27:30 +02:00
2026-10-06 19:27:30 +02:00
2026-10-06 19:27:30 +02:00
2026-10-06 19:27:30 +02:00
2026-10-06 19:27:30 +02:00
2026-09-07 18:36:54 +02:00
2026-10-06 19:27:30 +02:00
2026-10-06 19:27:30 +02:00
2026-10-08 13:04:38 +02:00
2026-10-06 19:27:30 +02:00
2026-09-26 11:22:20 +02:00
2026-10-06 19:27:30 +02:00
2026-10-06 19:27:30 +02:00
2026-10-08 18:41:32 +02:00
2026-10-06 19:27:30 +02:00
2026-10-06 19:27:30 +02:00
2026-10-06 19:27:30 +02:00
2026-10-08 13:02:57 +02:00
2026-09-04 12:15:53 +02:00
2026-10-08 18:41:01 +02:00
2026-10-07 16:45:21 +02:00
2026-10-08 18:41:01 +02:00
2026-10-08 18:41:32 +02:00
2026-08-15 16:42:27 +02:00
2026-10-08 18:41:01 +02:00
2026-10-08 18:41:32 +02:00
2026-10-06 19:27:30 +02:00
2026-10-06 19:27:30 +02:00
2026-10-08 18:38:28 +02:00
2026-10-08 18:41:01 +02:00
2026-10-06 19:27:30 +02:00
2026-10-06 19:27:30 +02:00
2026-08-10 17:08:54 +02:00
2026-10-06 19:27:30 +02:00
2026-10-06 19:27:30 +02:00
2026-10-08 18:41:01 +02:00
2026-10-06 19:27:30 +02:00
2026-10-08 13:04:38 +02:00
2026-10-06 19:27:30 +02:00
2026-10-06 19:27:30 +02:00
2026-10-06 19:27:30 +02:00
2026-10-06 19:27:30 +02:00
2026-10-06 22:43:09 +02:00
2026-10-06 19:27:30 +02:00
2026-07-30 17:07:12 +02:00
2026-08-12 17:43:22 +02:00
2026-10-08 18:41:32 +02:00
2026-10-06 19:27:30 +02:00
2026-10-08 18:41:32 +02:00
2026-10-08 18:41:01 +02:00
2026-10-08 18:41:01 +02:00
2026-10-06 19:27:30 +02:00
2026-10-06 19:27:30 +02:00
2026-10-06 19:27:30 +02:00
2026-10-08 18:41:01 +02:00
2026-10-07 22:40:12 +00:00
2026-08-10 19:54:46 +02:00
2026-10-06 19:27:30 +02:00
2026-10-06 19:27:30 +02:00
2026-10-08 13:02:57 +02:00
2026-10-08 18:41:06 +02:00
2026-10-08 18:41:06 +02:00
2026-09-12 11:23:09 +02:00
2026-09-20 13:54:31 +02:00
2026-10-06 19:27:30 +02:00
2026-10-06 19:27:30 +02:00
2026-10-06 19:27:30 +02:00
2026-10-06 19:27:30 +02:00
2026-09-12 12:24:33 +02:00
2026-10-06 19:27:30 +02:00
2026-10-06 19:27:30 +02:00
2026-10-06 19:27:30 +02:00
2026-10-06 19:27:30 +02:00
2026-10-06 19:27:30 +02:00
2026-10-06 19:27:30 +02:00
2026-10-06 19:27:30 +02:00
2026-10-06 19:27:30 +02:00
2026-09-30 23:00:12 +02:00
2026-10-06 19:27:30 +02:00
2026-10-06 19:27:30 +02:00
2026-09-02 21:06:42 +02:00
2026-09-09 10:11:36 +02:00
2026-10-08 18:38:28 +02:00
2026-08-25 19:26:38 +02:00
2026-10-08 13:04:38 +02:00
2026-10-06 19:27:30 +02:00
2026-10-06 19:27:30 +02:00
2026-10-06 19:27:30 +02:00
2026-10-06 19:27:30 +02:00
2026-10-06 19:27:30 +02:00
2026-10-06 19:27:30 +02:00
2026-10-06 19:27:30 +02:00
2026-10-06 19:27:30 +02:00
2026-10-06 19:27:30 +02:00
2026-10-06 19:27:30 +02:00
2026-10-06 22:43:09 +02:00
2026-10-07 20:54:10 +02:00
2026-10-07 20:54:10 +02:00
2026-10-06 22:43:09 +02:00
2026-10-07 20:54:10 +02:00
2026-10-07 20:54:10 +02:00
2026-08-01 12:45:35 +02:00
2026-10-08 18:41:01 +02:00
2026-10-06 19:27:30 +02:00
2026-10-06 19:27:30 +02:00
2026-10-06 19:27:30 +02:00
2026-09-23 22:35:01 +02:00
2026-10-08 18:40:15 +02:00
2026-10-06 19:27:30 +02:00
2026-10-06 19:27:30 +02:00
2026-10-06 19:27:30 +02:00
2026-10-08 18:38:28 +02:00
2026-10-06 19:27:30 +02:00
2026-10-08 18:38:28 +02:00
2026-10-07 16:11:41 +02:00
2026-10-08 18:41:32 +02:00
2026-10-08 18:41:32 +02:00
2026-10-08 18:38:28 +02:00
2026-10-08 13:02:58 +02:00
2026-10-06 19:27:30 +02:00
2026-10-07 16:59:52 +02:00
2026-08-23 11:59:12 +02:00
2026-08-15 16:42:27 +02:00
2026-08-18 22:24:29 +02:00
2026-10-06 19:27:30 +02:00
2026-09-24 14:05:42 +02:00
2026-10-06 22:43:09 +02:00
2026-08-11 09:58:37 +02:00
2026-06-16 22:22:45 +02:00