pinakes-server: TLS support; session persistence and security polish
Signed-off-by: NotAShelf <raf@notashelf.dev> Change-Id: If2c9c3e3af62bbf9f33a97be89ac40bc6a6a6964
This commit is contained in:
parent
758aba0f7a
commit
87a4482576
19 changed files with 1835 additions and 111 deletions
18
migrations/postgres/V11__session_persistence.sql
Normal file
18
migrations/postgres/V11__session_persistence.sql
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
-- Session persistence for database-backed sessions
|
||||
-- Replaces in-memory session storage
|
||||
|
||||
CREATE TABLE IF NOT EXISTS sessions (
|
||||
session_token TEXT PRIMARY KEY NOT NULL,
|
||||
user_id TEXT,
|
||||
username TEXT NOT NULL,
|
||||
role TEXT NOT NULL,
|
||||
created_at TIMESTAMPTZ NOT NULL,
|
||||
expires_at TIMESTAMPTZ NOT NULL,
|
||||
last_accessed TIMESTAMPTZ NOT NULL
|
||||
);
|
||||
|
||||
-- Index for efficient cleanup of expired sessions
|
||||
CREATE INDEX IF NOT EXISTS idx_sessions_expires_at ON sessions(expires_at);
|
||||
|
||||
-- Index for listing sessions by username
|
||||
CREATE INDEX IF NOT EXISTS idx_sessions_username ON sessions(username);
|
||||
18
migrations/sqlite/V11__session_persistence.sql
Normal file
18
migrations/sqlite/V11__session_persistence.sql
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
-- Session persistence for database-backed sessions
|
||||
-- Replaces in-memory session storage
|
||||
|
||||
CREATE TABLE IF NOT EXISTS sessions (
|
||||
session_token TEXT PRIMARY KEY NOT NULL,
|
||||
user_id TEXT,
|
||||
username TEXT NOT NULL,
|
||||
role TEXT NOT NULL,
|
||||
created_at TEXT NOT NULL,
|
||||
expires_at TEXT NOT NULL,
|
||||
last_accessed TEXT NOT NULL
|
||||
);
|
||||
|
||||
-- Index for efficient cleanup of expired sessions
|
||||
CREATE INDEX IF NOT EXISTS idx_sessions_expires_at ON sessions(expires_at);
|
||||
|
||||
-- Index for listing sessions by username
|
||||
CREATE INDEX IF NOT EXISTS idx_sessions_username ON sessions(username);
|
||||
Loading…
Add table
Add a link
Reference in a new issue