From 6e863ca355f93ae24afb9a6868dd389b2844f459 Mon Sep 17 00:00:00 2001 From: xbgmsharp Date: Mon, 19 Feb 2024 09:32:18 +0100 Subject: [PATCH] Update migration 202402, add cron_prune_otp_fn --- initdb/99_migrations_202402.sql | 35 +++++++++++++++++++++++++++++---- 1 file changed, 31 insertions(+), 4 deletions(-) diff --git a/initdb/99_migrations_202402.sql b/initdb/99_migrations_202402.sql index f90c2dd..db3955a 100644 --- a/initdb/99_migrations_202402.sql +++ b/initdb/99_migrations_202402.sql @@ -697,6 +697,33 @@ COMMENT ON FUNCTION public.cron_deactivated_fn IS 'init by pg_cron, check for vessel with no activity for more than 1 year then send notification and delete data'; +DROP FUNCTION IF EXISTS public.cron_prune_otp_fn; +CREATE OR REPLACE FUNCTION public.cron_prune_otp_fn() RETURNS void +AS $$ + DECLARE + otp_rec record; + BEGIN + -- Purge OTP older than 15 minutes + RAISE NOTICE 'cron_prune_otp_fn'; + FOR otp_rec in + SELECT * + FROM auth.otp + WHERE otp_timestamp < NOW() AT TIME ZONE 'UTC' - INTERVAL '15 MINUTES' + ORDER BY otp_timestamp desc + LOOP + RAISE NOTICE '-> cron_prune_otp_fn deleting expired otp for user [%]', otp_rec.user_email; + -- remove entry + DELETE FROM auth.otp + WHERE user_email = otp_rec.user_email; + RAISE NOTICE '-> cron_prune_otp_fn deleted expire otp for user [%]', otp_rec.user_email; + END LOOP; + END; +$$ language plpgsql; +-- Description +COMMENT ON FUNCTION + public.cron_prune_otp_fn + IS 'init by pg_cron to purge older than 15 minutes OTP token'; + DROP FUNCTION IF EXISTS public.cron_process_prune_otp_fn(); DROP FUNCTION IF EXISTS public.cron_process_no_vessel_fn(); DROP FUNCTION IF EXISTS public.cron_process_no_metadata_fn(); @@ -706,10 +733,10 @@ DROP FUNCTION IF EXISTS public.cron_process_windy_fn(); DROP FUNCTION IF EXISTS public.cron_process_alerts_fn(); -- Remove deprecated fn -DROP FUNCTION public.cron_process_new_account_fn(); -DROP FUNCTION public.cron_process_new_account_otp_validation_fn(); -DROP FUNCTION public.cron_process_new_moorage_fn(); -DROP FUNCTION public.cron_process_new_vessel_fn(); +DROP FUNCTION IF EXISTS public.cron_process_new_account_fn(); +DROP FUNCTION IF EXISTS public.cron_process_new_account_otp_validation_fn(); +DROP FUNCTION IF EXISTS public.cron_process_new_moorage_fn(); +DROP FUNCTION IF EXISTS public.cron_process_new_vessel_fn(); -- Update version UPDATE public.app_settings