-- name: InsertBoundarySession :one INSERT INTO boundary_sessions ( id, workspace_agent_id, confined_process_name, started_at, updated_at ) VALUES ( @id, @workspace_agent_id, @confined_process_name, @started_at, @updated_at ) RETURNING *; -- name: GetBoundarySessionByID :one SELECT * FROM boundary_sessions WHERE id = @id; -- name: InsertBoundaryLog :one INSERT INTO boundary_logs ( id, session_id, sequence_number, captured_at, created_at, proto, method, detail, matched_rule ) VALUES ( @id, @session_id, @sequence_number, @captured_at, @created_at, @proto, @method, @detail, @matched_rule ) RETURNING *; -- name: GetBoundaryLogByID :one SELECT * FROM boundary_logs WHERE id = @id; -- name: ListBoundaryLogsBySessionID :many -- Lists boundary logs for a session, sorted by sequence number ascending. -- Supports optional exclusive sequence number bounds (seq_after, seq_before) -- for fetching events between two known interceptions. SELECT * FROM boundary_logs WHERE session_id = @session_id AND CASE WHEN sqlc.narg('seq_after')::int IS NOT NULL THEN sequence_number > sqlc.narg('seq_after') ELSE true END AND CASE WHEN sqlc.narg('seq_before')::int IS NOT NULL THEN sequence_number < sqlc.narg('seq_before') ELSE true END ORDER BY sequence_number ASC LIMIT COALESCE(NULLIF(@limit_opt::int, 0), 100); -- name: DeleteOldBoundaryLogs :execrows -- Deletes boundary logs older than the given time, bounded by a row limit -- to avoid long-running transactions. WITH old_logs AS ( SELECT id FROM boundary_logs WHERE captured_at < @before_time::timestamptz ORDER BY captured_at ASC LIMIT @limit_count ) DELETE FROM boundary_logs USING old_logs WHERE boundary_logs.id = old_logs.id;