0018_oscar_bridge_sessions.up.sql 1.3 KB

123456789101112131415161718192021222324252627282930313233343536
  1. -- Create table for storing WebAPI to OSCAR bridge sessions
  2. -- This table maps WebAPI sessions to OSCAR authentication cookies
  3. -- and tracks connection details for bridged sessions
  4. CREATE TABLE IF NOT EXISTS oscar_bridge_sessions (
  5. -- WebAPI session identifier (aimsid)
  6. web_session_id VARCHAR(64) PRIMARY KEY,
  7. -- OSCAR authentication cookie (hex encoded)
  8. oscar_cookie BLOB NOT NULL,
  9. -- BOS server connection details
  10. bos_host VARCHAR(255) NOT NULL,
  11. bos_port INTEGER NOT NULL,
  12. use_ssl BOOLEAN DEFAULT FALSE,
  13. -- Screen name associated with the session
  14. screen_name VARCHAR(97) NOT NULL,
  15. -- Session metadata
  16. created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  17. last_accessed TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  18. -- Optional: Track client info
  19. client_name VARCHAR(255),
  20. client_version VARCHAR(50)
  21. );
  22. -- Create index for quick lookups by screen name
  23. CREATE INDEX idx_oscar_bridge_screen_name ON oscar_bridge_sessions(screen_name);
  24. -- Create index for cleanup of old sessions
  25. CREATE INDEX idx_oscar_bridge_last_accessed ON oscar_bridge_sessions(last_accessed);
  26. -- Optional: Create a trigger to auto-update last_accessed on SELECT/UPDATE
  27. -- (SQLite doesn't support this directly, would need application logic)