HAL 운영자 콘솔 화면(운영 현황·고객·주문·상품·사이트·메일·도메인·서버·백업·이전·릴리스·작업·장애·감사·플랫폼 복구)과 포털 고객 지원 조회·대신 변경·일시 접근 (§25~§34)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
zzabisagent-lab
2026-10-26 12:15:48 +00:00
co-authored by Claude Fable 5.1
parent 709d72338e
commit 005e0944e4
10 changed files with 677 additions and 0 deletions
+17
View File
@@ -0,0 +1,17 @@
/**
* portal/ops/model.mjs — 운영자 고객 지원 영역의 표.
* support_access : 고객 지원용 일시 접근(§25): 대상·이유·만료·승인 기록. 허용 범위(scope_json) 안에서만 조회·변경할 수 있음을 화면에 보인다.
* ops_changes : 운영자가 고객 대신 바꾼 값의 변경 전후·사유·승인자(§26.2). 고객 감사 기록(audit_log)에도 같은 내용이 남는다.
*/
export const MIGRATIONS = [{ id: 'ops_0001', sql: `
CREATE TABLE IF NOT EXISTS support_access (
id TEXT PRIMARY KEY, group_id TEXT NOT NULL, target_type TEXT NOT NULL, target_id TEXT, reason TEXT NOT NULL, scope_json TEXT NOT NULL,
requested_by TEXT NOT NULL, approved_by TEXT, approved_at TEXT, created_at TEXT NOT NULL, expires_at TEXT NOT NULL, revoked_at TEXT, revoked_by TEXT, last_used_at TEXT
);
CREATE INDEX IF NOT EXISTS support_access_group ON support_access(group_id, expires_at);
CREATE TABLE IF NOT EXISTS ops_changes (
id TEXT PRIMARY KEY, group_id TEXT NOT NULL, subject_type TEXT NOT NULL, subject_id TEXT NOT NULL, field TEXT NOT NULL, before_json TEXT, after_json TEXT,
reason TEXT NOT NULL, operator TEXT NOT NULL, approver TEXT, created_at TEXT NOT NULL
);
CREATE INDEX IF NOT EXISTS ops_changes_group ON ops_changes(group_id, created_at);
` }];