관리자 설정

SentinelTrace Operations

운영 가이드

워크스페이스 세션, 저장 계층, 보안 전달, 유출 분석, 증거 패키지 기준을 한 문서에서 관리합니다.

로그인 · 세션

로그인은 이메일, 워크스페이스명, 비밀번호에서 워크스페이스 ID와 owner proof를 파생합니다. 브라우저에는 세션 proof만 보관하고, 원격 API는 owner proof hash로 권한을 검증합니다.

  • 권리, 성인, 추적 고지 동의가 모두 확인된 세션만 관리자 콘솔에 진입합니다.
  • raw password는 워크스페이스 상태나 설정 저장소에 저장하지 않습니다.
  • 세션 영수증은 auth_session_ledger에 저장되며 global workspace search에서 session id와 receipt hash로 조회할 수 있습니다.
  • 로그아웃 전 Cloudflare workspace state 저장을 시도합니다.

DB · 저장 구조

사용자 설정은 /api/workspace-settings가 담당합니다. Cloudflare D1 바인딩이 있으면 workspace_settings SQL 테이블을 사용하고, 없으면 KV record fallback으로 동작합니다.

  • 저장 컬럼: workspace_id, owner_proof_hash, settings_json, settings_hash, created_at, updated_at
  • 워크스페이스 설정, 멤버 권한, auth session 영수증은 global workspace search에서 D1 결과로 조회됩니다.
  • Webhook secret은 raw 값 대신 SHA-256 hash와 짧은 preview만 저장합니다.
  • 콘텐츠, 링크, 분석 상태는 기존 workspace state snapshot으로 동기화됩니다.

콘텐츠 등록

콘텐츠 업로드는 권리·성인·동의 게이트를 먼저 통과해야 합니다. 등록된 파일은 fingerprint, thumbnail metadata, consent snapshot, custody event와 연결됩니다.

  • 원본 파일은 public URL로 노출하지 않는 전제를 유지합니다.
  • 원본 삭제 후에도 fingerprint와 감사 이벤트는 남길 수 있습니다.
  • 콘텐츠 분석은 사용자가 등록한 기록과 재생 로그 기반으로 계산됩니다.

워터마크

배포 대상별로 trace_id, 정책 snapshot, signal manifest, watermark artifact를 생성합니다. 가시 모드는 전체 화면 캡처 안의 후보 미디어 영역을 자동 추출한 뒤 trace 후보와 signal plan integrity를 검증합니다.

  • 기본 모드: 비가시, 반가시, 가시 중 워크스페이스 설정에서 지정합니다.
  • trace_id에는 이메일, 전화번호, 실명 같은 직접 개인정보를 넣지 않습니다.
  • 유출 리포트 표현은 “유출 경로 추정”과 “해당 워터마크 버전 접근 로그”를 사용합니다.

보안 링크

secure link는 raw token을 한 번만 발급하고, 저장소에는 token hash와 정책 metadata를 남깁니다. D1이 연결되면 secure_link_ledger에는 링크 metadata를, link_access_events에는 열람·재생 이벤트를 분리해 저장합니다.

  • 수신자 URL은 백업 파일에 포함하지 않습니다.
  • edge sync가 가능한 환경에서는 링크 상태, view count, revoke 상태, 접근 로그를 Cloudflare API와 D1 query로 동기화합니다.
  • viewer 로그는 trace_id, link_id, session, IP, user agent, 재생 구간과 연결됩니다.
  • global workspace search에서는 링크 metadata와 접근 이벤트가 각각 backend-secure-link, backend-access-log 결과로 표시됩니다.

유출 분석

의심 파일을 업로드하면 fingerprint, visible watermark scan, operator trace hint, 접근 로그를 별도 신호로 계산합니다. D1이 연결되면 intake와 최종 리포트를 분리 저장하며, 단일 신호만으로 유출자를 단정하지 않습니다.

  • 가시 워터마크 후보는 전체 이미지, deskew rotation, screenshot-region crop, multi-frame consensus, signal plan hash 검증 결과를 함께 기록합니다.
  • 분석 결과에는 원본 후보, trace 후보, matching logs, evidence scope를 포함합니다.
  • leak_evidence_intake는 intake id, trace_id, result hash 기준으로 D1 list/query와 global workspace search에서 조회됩니다.
  • leak_analysis_reports는 report id, trace_id, content id, report hash 기준으로 D1 list/query와 global workspace search에서 조회됩니다.
  • trace_query_cache는 trace_id와 result hash 기준으로 global workspace search에서 조회됩니다.
  • CSV/PDF/evidence package export는 권한이 있는 관리자만 실행합니다.

Content Intelligence

수익 기록과 transcript cue는 /api/content-signals에 별도 ledger로 저장하고, /api/content-intelligence가 workspace state와 signal ledger를 합쳐 인사이트를 계산합니다.

  • 수익 CSV, 수동 수익, transcript cue는 owner proof hash 검증 후 backend provenance를 남깁니다.
  • Backend 분석 결과는 generated insight, signal counts, asset metrics, result hash만 반환합니다.
  • raw token, viewer URL, owner proof, password는 signal ledger와 intelligence 응답에 포함하지 않습니다.

기능별 재점검

제품화 기준으로 QA가 확인해야 하는 핵심 동작입니다.

release checklist
영역 현재 기준 검증
로그인 세션 proof와 동의 상태가 맞을 때만 관리자 진입, auth session ledger backend search qa/workspace-auth-qa.mjs
사용자 설정 D1 SQL 가능, KV fallback, settings hash 표시, 멤버·설정 backend search qa/workspace-settings-qa.mjs
영상지문 파일 hash, frame/thumbnail metadata, edge vault sync qa/invisible-signal-manifest-qa.mjs
가시 워터마크 캡처 이미지 scan, screenshot-region crop, consensus, plan integrity 검증 qa/visible-watermark-capture-qa.mjs
보안 링크 hash token, 만료/조회/기기 제한, D1 secure_link_ledger query, edge log sync qa/link-lifecycle-qa.mjs, qa/global-search-qa.mjs
증거 패키지 token-safe export, watermark/fingerprint/log 분리 보존 qa/evidence-package-download-qa.mjs
Trace query D1 trace_query_cache 저장, result hash, global workspace search 조회 qa/trace-query-qa.mjs
Fingerprint vault D1 fingerprint_vault_ledger list/query, content id/hash global workspace search 조회 qa/fingerprint-vault-attestation-qa.mjs
Leak intake D1 leak_evidence_intake list/query, intake id/result hash workspace search 조회 qa/visible-watermark-capture-qa.mjs
Leak analysis reports D1 leak_analysis_reports list/query, report id/trace/content/hash workspace search 조회 qa/leak-analysis-edge-sync-qa.mjs
Robustness benchmarks D1 robustness_benchmark_runs list/query, benchmark id/content/scenario/hash workspace search 조회 qa/robustness-benchmark-qa.mjs
Content signals 수익·transcript record를 backend ledger에 저장하고 응답에서 secret field 차단 qa/content-intelligence-qa.mjs
Backend Intelligence workspace state와 content-signals ledger를 합쳐 generated insight와 hash 산출 qa/content-intelligence-qa.mjs
가이드 관리자 설정에서 문서 링크 제공 outputs/guide.html