From 680d879d034adffa4df1dd99620ad819061d73ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Laurent=20Gourv=C3=A9nec?= Date: Thu, 21 Aug 2025 14:17:25 +0200 Subject: [PATCH] feat(hydra-cleaner): clean authentication_session table --- .../hydra-cleaner/files/hydra-cleaner.sh | 73 ++++++++++++++++++- 1 file changed, 72 insertions(+), 1 deletion(-) diff --git a/components/hydra-cleaner/files/hydra-cleaner.sh b/components/hydra-cleaner/files/hydra-cleaner.sh index da52fe7..889f522 100644 --- a/components/hydra-cleaner/files/hydra-cleaner.sh +++ b/components/hydra-cleaner/files/hydra-cleaner.sh @@ -16,10 +16,13 @@ set -o nounset # -> delete "cascade" on table "flow" cleans access, code, oidc, pkce and refresh tables. +# For table authentication_session, a simple delete on this table is enough. +# Delete all rows without reference from table flow (foreign key) DSN="${DSN:-postgresql://${HYDRA_DATABASE_USER}:${HYDRA_DATABASE_PASSWORD}@${HYDRA_DATABASE_SERVICE_NAME}:${HYDRA_DATABASE_SERVICE_PORT:-5432}/hydra?sslmode=disable}" RETENTION_HOURS="${RETENTION_HOURS:-48}" BATCH_SIZE="${BATCH_SIZE:-50}" +BATCH_SIZE_ORIG="${BATCH_SIZE}" LIMIT="${LIMIT:-1000}" BEFORE_DATE="$(date +'%Y-%m-%d %H:%M:%S' --date=@$(($(date +%s) - RETENTION_HOURS * 3600)))" @@ -66,6 +69,7 @@ where table_schema = 'public' order by 4 desc; EOF +log "Cleaning flow table..." REMAINING_ELMTS="${LIMIT}" while [ "${REMAINING_ELMTS}" -gt 0 ]; do @@ -86,7 +90,7 @@ EOF log "${OUTPUT}" if ! [[ "${OUTPUT}" =~ '^DELETE ' ]] ; then - log "Output doesn't seems OK..." + log "Output doesn't seem OK..." break fi OUTPUT_NB=$(echo "${OUTPUT}" | cut -d' ' -f 2) @@ -101,6 +105,73 @@ EOF fi done +log "Cleaning authentication_session table..." + +BATCH_SIZE="${BATCH_SIZE_ORIG}" +REMAINING_ELMTS="${LIMIT}" + +OUTPUT=$(psql "${DSN}" <