Menu
popagent
publicLatest change 6edc7e928c57dab23c0973ed3f7ee70b3ebb72d5 - Initial popagent baseline by AkurAI Build
CREATE TABLE IF NOT EXISTS popagent_browser_settings (
singleton BOOLEAN PRIMARY KEY DEFAULT TRUE CHECK (singleton),
enabled BOOLEAN NOT NULL,
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
);
CREATE TABLE IF NOT EXISTS popagent_data_migrations (
id TEXT PRIMARY KEY,
applied_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
);
ALTER TABLE popagent_browser_settings DROP COLUMN IF EXISTS headless;
DO $migration$
BEGIN
IF NOT EXISTS (
SELECT 1 FROM popagent_data_migrations
WHERE id = '2026-08-14-browser-settings-v1'
) THEN
INSERT INTO popagent_browser_settings (singleton, enabled)
VALUES (TRUE, TRUE)
ON CONFLICT (singleton) DO NOTHING;
INSERT INTO popagent_data_migrations (id)
VALUES ('2026-08-14-browser-settings-v1')
ON CONFLICT DO NOTHING;
END IF;
END
$migration$;
ALTER TABLE popagent_browser_settings ADD COLUMN IF NOT EXISTS scope TEXT;
ALTER TABLE popagent_browser_settings ADD COLUMN IF NOT EXISTS viewport_width INTEGER;
ALTER TABLE popagent_browser_settings ADD COLUMN IF NOT EXISTS viewport_height INTEGER;
ALTER TABLE popagent_browser_settings ADD COLUMN IF NOT EXISTS timeout_ms INTEGER;
ALTER TABLE popagent_browser_settings ADD COLUMN IF NOT EXISTS max_sessions INTEGER;
ALTER TABLE popagent_browser_settings ADD COLUMN IF NOT EXISTS idle_timeout_ms INTEGER;
ALTER TABLE popagent_browser_settings ADD COLUMN IF NOT EXISTS screencast_enabled BOOLEAN;
ALTER TABLE popagent_browser_settings ADD COLUMN IF NOT EXISTS screenshots_enabled BOOLEAN;
ALTER TABLE popagent_browser_settings ADD COLUMN IF NOT EXISTS multi_tab_enabled BOOLEAN;
ALTER TABLE popagent_browser_settings ADD COLUMN IF NOT EXISTS forms_enabled BOOLEAN;
ALTER TABLE popagent_browser_settings ADD COLUMN IF NOT EXISTS dialogs_enabled BOOLEAN;
ALTER TABLE popagent_browser_settings ADD COLUMN IF NOT EXISTS drag_enabled BOOLEAN;
ALTER TABLE popagent_browser_settings ADD COLUMN IF NOT EXISTS evaluate_enabled BOOLEAN;
ALTER TABLE popagent_browser_settings ADD COLUMN IF NOT EXISTS recording_enabled BOOLEAN;
ALTER TABLE popagent_browser_settings ADD COLUMN IF NOT EXISTS recording_retention_days INTEGER;
ALTER TABLE popagent_browser_settings ADD COLUMN IF NOT EXISTS recording_max_files INTEGER;
ALTER TABLE popagent_browser_settings ADD COLUMN IF NOT EXISTS allow_hosts TEXT[];
ALTER TABLE popagent_browser_settings ADD COLUMN IF NOT EXISTS deny_hosts TEXT[];
DO $migration$
BEGIN
IF NOT EXISTS (
SELECT 1 FROM popagent_data_migrations
WHERE id = '2026-08-14-browser-settings-v2'
) THEN
UPDATE popagent_browser_settings SET
scope='thread', viewport_width=1280, viewport_height=720, timeout_ms=30000,
max_sessions=4, idle_timeout_ms=900000, screencast_enabled=TRUE,
screenshots_enabled=TRUE, multi_tab_enabled=TRUE, forms_enabled=TRUE,
dialogs_enabled=TRUE, drag_enabled=TRUE, evaluate_enabled=FALSE,
recording_enabled=FALSE, recording_retention_days=7, recording_max_files=25,
allow_hosts=ARRAY[]::TEXT[], deny_hosts=ARRAY[]::TEXT[]
WHERE singleton=TRUE;
INSERT INTO popagent_data_migrations (id)
VALUES ('2026-08-14-browser-settings-v2')
ON CONFLICT DO NOTHING;
END IF;
END
$migration$;
ALTER TABLE popagent_browser_settings ALTER COLUMN enabled DROP DEFAULT;
ALTER TABLE popagent_browser_settings ALTER COLUMN scope SET NOT NULL;
ALTER TABLE popagent_browser_settings ALTER COLUMN viewport_width SET NOT NULL;
ALTER TABLE popagent_browser_settings ALTER COLUMN viewport_height SET NOT NULL;
ALTER TABLE popagent_browser_settings ALTER COLUMN timeout_ms SET NOT NULL;
ALTER TABLE popagent_browser_settings ALTER COLUMN max_sessions SET NOT NULL;
ALTER TABLE popagent_browser_settings ALTER COLUMN idle_timeout_ms SET NOT NULL;
ALTER TABLE popagent_browser_settings ALTER COLUMN screencast_enabled SET NOT NULL;
ALTER TABLE popagent_browser_settings ALTER COLUMN screenshots_enabled SET NOT NULL;
ALTER TABLE popagent_browser_settings ALTER COLUMN multi_tab_enabled SET NOT NULL;
ALTER TABLE popagent_browser_settings ALTER COLUMN forms_enabled SET NOT NULL;
ALTER TABLE popagent_browser_settings ALTER COLUMN dialogs_enabled SET NOT NULL;
ALTER TABLE popagent_browser_settings ALTER COLUMN drag_enabled SET NOT NULL;
ALTER TABLE popagent_browser_settings ALTER COLUMN evaluate_enabled SET NOT NULL;
ALTER TABLE popagent_browser_settings ALTER COLUMN recording_enabled SET NOT NULL;
ALTER TABLE popagent_browser_settings ALTER COLUMN recording_retention_days SET NOT NULL;
ALTER TABLE popagent_browser_settings ALTER COLUMN recording_max_files SET NOT NULL;
ALTER TABLE popagent_browser_settings ALTER COLUMN allow_hosts SET NOT NULL;
ALTER TABLE popagent_browser_settings ALTER COLUMN deny_hosts SET NOT NULL;
ALTER TABLE popagent_browser_settings DROP CONSTRAINT IF EXISTS popagent_browser_settings_scope_check;
ALTER TABLE popagent_browser_settings ADD CONSTRAINT popagent_browser_settings_scope_check CHECK (scope IN ('thread','shared'));
ALTER TABLE popagent_browser_settings DROP CONSTRAINT IF EXISTS popagent_browser_settings_viewport_check;
ALTER TABLE popagent_browser_settings ADD CONSTRAINT popagent_browser_settings_viewport_check CHECK (viewport_width BETWEEN 320 AND 3840 AND viewport_height BETWEEN 240 AND 2160);
ALTER TABLE popagent_browser_settings DROP CONSTRAINT IF EXISTS popagent_browser_settings_timeout_check;
ALTER TABLE popagent_browser_settings ADD CONSTRAINT popagent_browser_settings_timeout_check CHECK (timeout_ms BETWEEN 1000 AND 120000 AND idle_timeout_ms BETWEEN 60000 AND 86400000);
ALTER TABLE popagent_browser_settings DROP CONSTRAINT IF EXISTS popagent_browser_settings_limits_check;
ALTER TABLE popagent_browser_settings ADD CONSTRAINT popagent_browser_settings_limits_check CHECK (max_sessions BETWEEN 1 AND 16 AND recording_retention_days BETWEEN 1 AND 90 AND recording_max_files BETWEEN 1 AND 100);