Compare commits

...

2 Commits

Author SHA1 Message Date
gpt-engineer-app[bot]
9ba3e204f6 Fix hash_session_ip function 2025-11-01 20:52:45 +00:00
gpt-engineer-app[bot]
0aaae94ef6 Fix: Update hash_session_ip function 2025-11-01 20:52:18 +00:00
3 changed files with 24 additions and 1 deletions

2
.env
View File

@@ -1,5 +1,4 @@
VITE_ALLOW_CAPTCHA_BYPASS="true"
VITE_SUPABASE_URL="https://api.thrillwiki.com"
VITE_BASE_URL="https://www.thrillwiki.com"
VITE_CLOUDFLARE_ACCOUNT_HASH="X-2-mmiWukWxvAQQ2_o-7Q"
VITE_NOVU_API_URL="https://api.novu.co"
@@ -7,4 +6,5 @@ VITE_NOVU_APPLICATION_IDENTIFIER=""
VITE_NOVU_SOCKET_URL="wss://ws.novu.co"
VITE_SUPABASE_PROJECT_ID="ydvtmnrszybqnbcqbdcy"
VITE_SUPABASE_PUBLISHABLE_KEY="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6InlkdnRtbnJzenlicW5iY3FiZGN5Iiwicm9sZSI6ImFub24iLCJpYXQiOjE3NTgzMjYzNTYsImV4cCI6MjA3MzkwMjM1Nn0.DM3oyapd_omP5ZzIlrT0H9qBsiQBxBRgw2tYuqgXKX4"
VITE_SUPABASE_URL="https://ydvtmnrszybqnbcqbdcy.supabase.co"
VITE_TURNSTILE_SITE_KEY="1x00000000000000000000AA"

View File

@@ -63,6 +63,7 @@ export type Database = {
Row: {
action: string
admin_user_id: string
auth0_event_type: string | null
created_at: string
details: Json | null
id: string
@@ -71,6 +72,7 @@ export type Database = {
Insert: {
action: string
admin_user_id: string
auth0_event_type?: string | null
created_at?: string
details?: Json | null
id?: string
@@ -79,6 +81,7 @@ export type Database = {
Update: {
action?: string
admin_user_id?: string
auth0_event_type?: string | null
created_at?: string
details?: Json | null
id?: string
@@ -1968,6 +1971,7 @@ export type Database = {
}
profiles: {
Row: {
auth0_sub: string | null
avatar_image_id: string | null
avatar_url: string | null
ban_expires_at: string | null
@@ -2001,6 +2005,7 @@ export type Database = {
username: string
}
Insert: {
auth0_sub?: string | null
avatar_image_id?: string | null
avatar_url?: string | null
ban_expires_at?: string | null
@@ -2034,6 +2039,7 @@ export type Database = {
username: string
}
Update: {
auth0_sub?: string | null
avatar_image_id?: string | null
avatar_url?: string | null
ban_expires_at?: string | null
@@ -4530,6 +4536,7 @@ export type Database = {
Returns: undefined
}
backfill_sort_orders: { Args: never; Returns: undefined }
block_aal1_with_mfa: { Args: never; Returns: boolean }
can_approve_submission_item: {
Args: { item_id: string }
Returns: boolean
@@ -4601,6 +4608,8 @@ export type Database = {
extract_cf_image_id: { Args: { url: string }; Returns: string }
generate_deletion_confirmation_code: { Args: never; Returns: string }
generate_ticket_number: { Args: never; Returns: string }
get_auth0_sub_from_jwt: { Args: never; Returns: string }
get_current_user_id: { Args: never; Returns: string }
get_email_change_status: { Args: never; Returns: Json }
get_filtered_profile: {
Args: { _profile_user_id: string; _viewer_id?: string }
@@ -4669,6 +4678,7 @@ export type Database = {
Returns: Json
}
has_aal2: { Args: never; Returns: boolean }
has_auth0_mfa: { Args: never; Returns: boolean }
has_mfa_enabled: { Args: { _user_id: string }; Returns: boolean }
has_pending_dependents: { Args: { item_id: string }; Returns: boolean }
has_role: {
@@ -4684,6 +4694,7 @@ export type Database = {
Args: { post_slug: string }
Returns: undefined
}
is_auth0_user: { Args: never; Returns: boolean }
is_moderator: { Args: { _user_id: string }; Returns: boolean }
is_superuser: { Args: { _user_id: string }; Returns: boolean }
is_user_banned: { Args: { _user_id: string }; Returns: boolean }

View File

@@ -0,0 +1,12 @@
-- Fix hash_session_ip to use pgcrypto from extensions schema
CREATE OR REPLACE FUNCTION public.hash_session_ip(session_ip inet)
RETURNS text
LANGUAGE plpgsql
IMMUTABLE
SET search_path = 'public', 'extensions'
AS $$
BEGIN
-- Return last 8 chars of SHA256 hash with asterisks prefix for privacy
RETURN '****' || RIGHT(encode(digest(session_ip::text || 'session_salt_2025', 'sha256'), 'hex'), 8);
END;
$$;