25 lines
1.0 KiB
SQL
25 lines
1.0 KiB
SQL
-- 021_sessions.sql
|
|
-- Anonymous / session participants for workflow channels (v0.24.3)
|
|
|
|
CREATE TABLE IF NOT EXISTS session_participants (
|
|
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
session_token TEXT NOT NULL UNIQUE,
|
|
channel_id UUID NOT NULL REFERENCES channels(id) ON DELETE CASCADE,
|
|
display_name TEXT NOT NULL DEFAULT 'Visitor',
|
|
fingerprint TEXT,
|
|
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
|
|
);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_session_participants_channel
|
|
ON session_participants(channel_id);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_session_participants_token
|
|
ON session_participants(session_token);
|
|
|
|
COMMENT ON TABLE session_participants IS 'Ephemeral identities for anonymous workflow channel visitors.';
|
|
|
|
-- Allow channels to opt in to anonymous session access.
|
|
ALTER TABLE channels ADD COLUMN IF NOT EXISTS allow_anonymous BOOLEAN NOT NULL DEFAULT FALSE;
|
|
|
|
COMMENT ON COLUMN channels.allow_anonymous IS 'When true, unauthenticated visitors can join via session token (workflow channels only).';
|