| 받아쓰기·세그먼트·제목 | 사용자가 삭제할 때까지; 30/90/365일 자동 삭제 선택 가능 | 세션별 삭제, 이 계정의 기기 데이터 삭제, 전체 로컬 JSON 내보내기 |
| Provider API key | 사용자가 개별 삭제 또는 기기 데이터 삭제를 실행할 때까지 이 기기에 저장 | 개별 삭제, 기기 데이터 삭제. 내보내기에는 원문 key를 넣지 않음 |
| 개인 단어장·적용 prompt | 개인 단어 최대 200개와 revision을 인증된 계정의 Supabase snapshot에 계정 수명 동안 저장하고 같은 계정의 다른 컴퓨터와 동기화; 현재 기기 IndexedDB에는 같은 계정의 마지막 검증 snapshot만 fail-open cache로 보관. 관리자 기본 단어와 결합해 224토큰 안에서 적용되는 prompt는 작업 시작 때 메모리에 고정하고 선택한 STT provider 요청에 직접 전달하며 SoriCue 로그·진단·분석·확장 protocol에는 저장하지 않음. 개인 단어 삭제는 중앙 snapshot과 cache에 반영하고 기기 데이터 삭제는 해당 기기 cache를, 회원 탈퇴는 중앙 privacy plane에서 개인 snapshot을 명시적으로 삭제한 뒤 Auth cascade로 다시 삭제; 관리자 전역 snapshot은 다른 사용자의 탈퇴로 삭제되지 않음 | 개인 단어별 삭제, 같은 계정의 마지막 검증 snapshot 로컬 JSON 내보내기, 현재 기기 cache 삭제, 회원 탈퇴 시 중앙 개인 snapshot 삭제. 관리자 기본 단어장은 다른 사용자의 탈퇴로 삭제되지 않음 |
| 오디오 | 열린 녹음 gate와 provider 요청 중 메모리에서만 사용하고 앱 서버 저장 없음; video frame은 소비·저장하지 않음 | 앱 저장본 없음; provider 측 사본은 provider 정책 적용 |
| 직접 만든 고정 일정 | 사용자별 최대 100개·128KiB의 제목·날짜·시각·색상·반복·받아쓰기 방식·revision을 Supabase에 계정 수명 동안 보존하고 브라우저·확장에는 실행용 사본을 보관 | 일정별 삭제는 중앙 원본과 사본에 반영; 기기 데이터 삭제는 해당 기기 사본을, 회원 탈퇴는 Auth cascade로 중앙 원본을 삭제. Supabase backup 순환 정책 적용 |
| Biz PT 일정 계정 원본 | actual/projected occurrence 최대 500개·512KiB와 repeat config 최대 32주·16KiB. 현재·원본 제목(회원·학생명일 수 있음), source ID·logical identity, 현재·원본 시작/종료, mode·enabled·offset·명시 시각·hidden, base·override와 repeat week를 Supabase에 계정 수명 동안 보존 | 재가져오기·편집·비우기로 중앙 원본을 갱신하고 다른 컴퓨터에서 복원. 기기 데이터 삭제는 그 기기의 cache와 content-free sync marker만 지우며, 회원 탈퇴는 Auth cascade로 중앙 원본을 삭제. Supabase backup 순환 정책 적용 |
| 예약 녹음·외부 요약 로컬 상태 | 사용자·기기·날짜별 예약 고지 동의와 확장 로컬 실행 일정 snapshot·alarm·bounded run/attempt는 각 TTL·활성 SoriCue binding 동안 보존합니다. Biz PT 취소·삭제 감소 재확인 marker는 콘텐츠 없이 1개·최대 2분 보관하고, ChatGPT·Gemini·Claude 통합 v5 동의는 철회·로그아웃·계정 전환·기기 데이터 삭제·회원 탈퇴까지 보존 | 준비 취소, SoriCue 기기 연결 해제, provider 동의 철회, 로그아웃·계정 전환, 기기 데이터 삭제 또는 회원 탈퇴 범위에 따라 제거 |
| 선택 MP3 | 옵션이 켜진 예약 구간만 안전하게 정리한 일정 제목과 충돌 방지 suffix로 사용자가 선택한 로컬 폴더에 저장 | SoriCue 서버 업로드 없음; 앱 데이터 삭제와 별개로 사용자가 파일 시스템에서 삭제 |
| 녹음 사용량 | 사용자 ID별 날짜·시작/완료 횟수·녹음 초를 중앙 계정 수명 동안 보존 | 관리자 조회 가능; Google 재인증 회원 탈퇴가 중앙 원장과 함께 삭제 |
| 운영 진단 | 기본 운영 진단은 content-free strict schema만 사용. SoriCue-origin 일정 진단 localStorage는 사용자별 최대 400개·14일, IndexedDB 전달 outbox는 사용자별 최대 256개·14일이며 서버의 영구 수락 ACK 뒤에만 삭제하고 offline 재시도·멱등 eventId·최대 50개 batch를 사용; 확장 private storage는 SHA-256 사용자 partition별 최대 800개·512KiB·30일, event당 4KiB, 최근 partition 최대 8개로 제한하고 서버의 영구 수락 뒤에만 ACK 삭제. expected-subject와 인증 session subject가 일치하는 same-origin Route Handler만 최대 event 8KiB를 받아 service_role admin client로 Supabase Postgres 구조화 event·incident table에 기본 30일 저장하며 Storage object log는 사용하지 않음. direct anon/authenticated table 권한은 없고 RLS를 강제하며 회원 탈퇴 privacy plane이 event·incident를 명시적으로 삭제한 뒤 auth.users FK cascade도 적용. occurredAt/receivedAt은 시스템 동작의 발생·수신 시각이며 일정 제목이나 사용자가 입력한 정확한 개인 수업 시각을 뜻하거나 저장하지 않음 | 전용 bearer export token을 macOS Keychain에만 둔 운영 수집기가 no-store cursor API에서 content-free event·incident를 증분 수집해 ~/Library/Application Support/SoriCue/Diagnostics 아래 권한 700/600의 NDJSON·incident JSON·일별 report로 기본 365일 보관. launchd는 로그인 시와 5분마다 실행하고 token·payload·로컬 경로를 자체 로그에 남기지 않으며 retention 변경·날짜 기준 삭제·uninstall 명령을 제공; 이미 export된 운영자 사본은 회원 탈퇴 FK cascade가 자동 회수하지 않으므로 승인된 권리 요청·로컬 보존 정책으로 별도 삭제 |
| 본인 허용용 Full Diagnostic | 기본 content-free 운영 진단과 분리된 본인 계정 allowlist용 Full Diagnostic Shadow Mode. 서버 환경에서 기능과 정확한 Auth UUID를 허용하고 사용자가 이 브라우저에서 직접 켠 동안에만 로컬 IndexedDB에 사건·provider 원본 결과를 최대 7일 보관하며, 품질 이상 오디오 보존은 별도 기본-off 선택으로 최대 24시간·20개·50MiB. 오디오 bytes·provider 원본 결과·prompt·API key는 진단 서버나 운영 Postgres로 전송하지 않고, 서버에는 별도 strict content-free 단계·집계·hash만 전송; 기능 비활성화나 allowlist 회수로 전체 사용자에게 켜지지 않음 | 기본 진단과 분리되며 전체 사용자에게 켜지지 않음 |
| Product UX 분석 | 필수 개인정보처리방침에 동의한 인증 사용자의 엄격한 제품 경로 allowlist만 same-origin API로 수집; 전용 server-only HMAC salt로 만든 익명 사용자 값, journey별 무작위 session ID·sequence, route·action ID·outcome·제한된 duration·online/offline/file 방식·viewport와 UTC 달력 날짜만 Supabase에 오늘 포함 최대 90개 달력 날짜 보관하고 매일 인증된 Cron 및 요청 시 만료분 삭제. 인스턴스별 120회/분 burst 제한과 별도로 DB가 익명 사용자·UTC 날짜별 최대 10,000행을 원자적으로 제한하며 받아쓴 내용·hash·prompt·AI 답변·회원/일정/파일명·정확한 시각·email·token·API key·audio·DOM text·session replay는 수집하지 않음. 관리자는 집계만 조회; 회원 탈퇴 시작 시 적재를 차단하고 Auth 삭제 뒤 다시 purge하며 잔존 access token 차단용 HMAC tombstone은 날짜만 담아 최대 31개 UTC 달력 날짜 뒤 삭제 | 회원 탈퇴 시작 시 적재 차단·purge, Auth 삭제 뒤 재삭제; 관리자에게는 집계만 제공 |
| 계정·라이선스 | 중앙 auth·권한 기록 | Google 재인증 후 로컬·라이선스·중앙 권한·동의·Auth 사용자와 이메일을 plane별로 삭제; 부분 실패는 성공 처리하지 않음 |