mirror of
git://f0xx.org/ac/ac-deploy
synced 2026-07-29 05:19:12 +03:00
57 lines
2.5 KiB
SQL
57 lines
2.5 KiB
SQL
-- Remote access control plane (WireGuard v1; reverse SSH reserved).
|
|
-- MariaDB / production: mysql -u root -p androidcast_crashes < sql/migrations/007_remote_access.sql
|
|
|
|
CREATE TABLE IF NOT EXISTS remote_access_devices (
|
|
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
|
|
device_id VARCHAR(128) NOT NULL,
|
|
company_id INT UNSIGNED NOT NULL DEFAULT 1,
|
|
whitelisted TINYINT(1) NOT NULL DEFAULT 0,
|
|
opt_in_mode ENUM('none','wireguard','rssh') NOT NULL DEFAULT 'none',
|
|
last_random VARCHAR(96) NULL,
|
|
app_version VARCHAR(64) NULL,
|
|
last_seen_at TIMESTAMP NULL,
|
|
notes TEXT NULL,
|
|
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
|
UNIQUE KEY uq_ra_device (device_id),
|
|
KEY idx_ra_device_company (company_id),
|
|
KEY idx_ra_device_whitelist (whitelisted, opt_in_mode)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
|
|
CREATE TABLE IF NOT EXISTS remote_access_sessions (
|
|
id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
|
|
session_id VARCHAR(36) NOT NULL,
|
|
device_id VARCHAR(128) NOT NULL,
|
|
company_id INT UNSIGNED NOT NULL DEFAULT 1,
|
|
operator_user_id INT UNSIGNED NULL,
|
|
status ENUM('pending','active','inactive','closed','closed_timeout') NOT NULL DEFAULT 'pending',
|
|
tunnel ENUM('wireguard','ssh_reverse') NOT NULL DEFAULT 'wireguard',
|
|
endpoint VARCHAR(255) NULL,
|
|
wg_client_private_key VARCHAR(64) NULL,
|
|
wg_client_address VARCHAR(64) NULL,
|
|
wg_server_public_key VARCHAR(64) NULL,
|
|
wg_peer_allowed_ips VARCHAR(255) NULL,
|
|
expires_at INT UNSIGNED NULL,
|
|
last_activity_at TIMESTAMP NULL,
|
|
close_reason VARCHAR(255) NULL,
|
|
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
closed_at TIMESTAMP NULL,
|
|
UNIQUE KEY uq_ra_session (session_id),
|
|
KEY idx_ra_sess_device (device_id, status),
|
|
KEY idx_ra_sess_status (status, last_activity_at)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
|
|
CREATE TABLE IF NOT EXISTS remote_access_events (
|
|
id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
|
|
session_id VARCHAR(36) NULL,
|
|
device_id VARCHAR(128) NOT NULL,
|
|
actor_user_id INT UNSIGNED NULL,
|
|
action VARCHAR(64) NOT NULL,
|
|
reason VARCHAR(255) NULL,
|
|
meta_json LONGTEXT NULL,
|
|
client_ip VARCHAR(64) NULL,
|
|
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
KEY idx_ra_evt_device (device_id, created_at),
|
|
KEY idx_ra_evt_session (session_id)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|