Files
immich/server/src/queries/session.repository.sql
T
santanoce dbf30b77bf feat(server): added backchannel logout api endpoint (#26235)
* feat(server): added backchannel logout api endpoint

* test(server): fixed e2e tests

* fix(server): fixed suggested changes by reviewer

* feat(server): created function invalidateOAuth

* fix(server): fixed session.repository.sql

* test(server): added unit tests for backchannelLogout function

* test(server): added e2e tests for oidc backchnnel logout

* docs(server): added documentation on backchannel logout url

* docs(server): fixed typo

* feat(server): minor improvements of the oidc backchannel logout

* test(server): fixed tests after merge with main

* fix(server): fixed e2e test file

* refactor(server): tiny refactor of validateLogoutToken

* chore: cleanup

* fix: tests

* fix: make jwks extractable

---------

Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2026-04-17 18:45:33 +00:00

101 lines
1.7 KiB
SQL

-- NOTE: This file is auto generated by ./sql-generator
-- SessionRepository.get
select
"id",
"expiresAt",
"pinExpiresAt"
from
"session"
where
"id" = $1
-- SessionRepository.isPendingSyncReset
select
"isPendingSyncReset"
from
"session"
where
"id" = $1
-- SessionRepository.getByToken
select
"session"."id",
"session"."updatedAt",
"session"."pinExpiresAt",
"session"."appVersion",
(
select
to_json(obj)
from
(
select
"user"."id",
"user"."name",
"user"."email",
"user"."isAdmin",
"user"."quotaUsageInBytes",
"user"."quotaSizeInBytes"
from
"user"
where
"user"."id" = "session"."userId"
and "user"."deletedAt" is null
) as obj
) as "user"
from
"session"
where
"session"."token" = $1
and (
"session"."expiresAt" is null
or "session"."expiresAt" > $2
)
-- SessionRepository.getByUserId
select
"session".*
from
"session"
inner join "user" on "user"."id" = "session"."userId"
and "user"."deletedAt" is null
where
"session"."userId" = $1
and (
"session"."expiresAt" is null
or "session"."expiresAt" > $2
)
order by
"session"."updatedAt" desc,
"session"."createdAt" desc
-- SessionRepository.delete
delete from "session"
where
"id" = $1::uuid
-- SessionRepository.invalidateAll
delete from "session"
where
"userId" = $1
and "id" != $2
-- SessionRepository.lockAll
update "session"
set
"pinExpiresAt" = $1
where
"userId" = $2
-- SessionRepository.resetSyncProgress
begin
update "session"
set
"isPendingSyncReset" = $1
where
"id" = $2
delete from "session_sync_checkpoint"
where
"sessionId" = $1
commit