1. 前提:まず端末、必要なぶんだけサーバー
PsyColorzには2つの使い方があります。ローカル利用は、アカウントを作らずこの端末の中だけに記録し、DROPの内容をサーバーへ送りません。ただし、ページの配信に必要な接続情報は8節に記載した基盤で処理されます。アカウント利用(パスキー)は、別の端末から開いたり公開したりできます。DROPの内容がサーバーに保存されるのはこのときだけです。集める情報を少なくすること自体を設計にしています。このページは、実際のコードが何をしているかをそのまま書いたものです。
2. サーバーへ送らないもの
次のDROPは、アカウントを使っていても端末の中だけに残ります。
- ・広がりが「外部保存」しきい値(既定10)に届かないDROP
- ・本文が5文字未満のDROP
- ・本文にURLや外部サービスへの誘導を含むDROP
- ・保存モードを「ローカル」にしているときの新しいDROP
端末内だけのデータは外部バックアップではありません。ブラウザのデータを消すと戻りません。設定画面から暗号化ファイルとして書き出せます(パスフレーズを空にすると暗号化されません)。
3. サーバーに保存するもの
アカウント利用で、広がりが外部保存しきい値以上のDROPは、非公開のままデータベースに保存されます。利用方法にかかわらず、ページ配信に伴うアクセスログやエラー情報が基盤側で処理されることがあります。
- ・本文、あとから書いた意味づけ、色(HEXと色相・彩度・明度)、混色の相手色と進行度、感情ラベル、広がり、深度、装飾、作成日時
- ・自分の遷移とrootingでつないだ線、戻る導線の記録、保存した言葉、resの出入り
- ・アカウントID、端末ID、パスキーの公開鍵と識別子、最後にパスキーを確認した時刻
- ・同時接続数を判定するための一時的なハッシュ、環境区分、最終確認時刻と失効時刻(アカウントIDそのものはこの記録に入れません)
- ・配信基盤とデータベースのアクセスログ、エラー情報
4. 公開されるもの
公開は自動では起きません。あなたがそのDROPの広がりを上げたときだけ、その段階まで公開されます。既定のしきい値は次のとおりで、設定画面から変えられます。
- ・10以上:非公開のままサーバーへ保存
- ・40以上:色・濃度・抽象ラベルを公開
- ・70以上:本文を追加で公開
- ・100:contextを含む投稿内容を追加で公開
公開されたものは、アカウントを持たない人からも読めます。公開面に出るのは公開用のコピーで、原本のIDや利用者ID(node_id / user_id / app_user_id)は出しません。
5. ECHO(近くへ響かせる)
設定でECHOに参加しているとき、公開releaseを作った瞬間に、その彩が「近く」だけへ響きます。送るのは色・混色・感情ラベル・公開本文・公開context・rooting文・共鳴度と、そのreleaseのIDです。「近く」はサーバーがリクエストから決めます。あなたの端末は場所を一切送りません。
- ・判定に使うのは接続元のIPアドレス(IPv6は前半64ビットまで)と、配信基盤が付ける国・地域コードです
- ・これらは時間で入れ替わる秘密値と一緒にハッシュ化し、網・地域・地方・国・広域圏の5段の識別子にします。保存するのはハッシュだけで、IPアドレスそのものも地名も残しません
- ・どこまで広げるかの上限はあなたが選びます(既定は地方まで)
- ・残響は15〜30分で表示・取得の対象から外れます。期限切れの行は、その後の書き込み時または読み取り時の掃除で物理削除されます
- ・画面に出る距離(「約80m」など)は実測ではありません。実際に言えるのは「同じ回線にいる」までです
他の利用者からは誰の残響か分かりません。ただし濫用に対処するため、releaseのIDから運営がたどれる状態にしてあります。
6. 使っていないもの
次のものは実装していません。
- ・ブラウザの位置情報API:使いません。ブラウザ側で権限ごと塞いであります
- ・外部のAI:色の候補は端末内の辞書で計算しています。本文を外部のAIへ送っていません
- ・広告、アクセス解析タグ、行動トラッキング
- ・画像そのもの:contextに画像のデータは保存しません(言語化したメモだけ)
- ・背景テーマの自動切り替えは端末のタイムゾーンから日照を推定します。位置は送りません
7. 端末の中に保存するもの
ブラウザの保存領域に次のものを置きます。
- ・localStorage:端末ID、所有者ID、視覚設定(背景テーマ・色覚プリセット・ECHO参加)、テーマの計算結果、ECHO残響の一時控え、保存モードの上書き
- ・IndexedDB:DROP本体と下書き、context、公開releaseとタイムラインの控え、保存した言葉、戻る導線
- ・Cookie:ログイン状態(セッション)。DROPを開くときは8時間ごとにパスキーで確認します
ブラウザのデータを消すと、端末内だけのDROPと設定は失われます。
8. 保存する場所と委託先
ホスティングはVercel(bom1)、データベースと認証はSupabase(ap-south-1)で、どちらもインド・ムンバイのリージョンです。したがってデータは日本国外で保存・処理されます。bot対策としてCloudflare Turnstileを使うことがあります。個人情報を第三者へ売りません。法令に基づく場合を除き、同意なく第三者へ渡しません。
9. 保存期間と削除
保存する期間は次のとおりです。
- ・ECHOの残響:15〜30分で表示・取得の対象から外れ、期限切れの行は後続処理で物理削除されます
- ・同時接続の一時記録:最終確認から90秒で失効し、後続処理で物理削除されます
- ・パスキーの一時チャレンジ:短時間で失効します
- ・それ以外:サービス提供に必要な期間、または削除するまで
埋葬(bury)は完全削除ではありません。本文や意味づけを別の表へ退避して表示を止める操作で、あとから復活できます。今のアプリには、サーバー上のデータを完全に消す操作がありません。削除・開示・訂正の請求は下の窓口へ連絡してください。本人確認や技術的な理由で応じられないことがあります。一度公開したものや響かせた残響は、他の端末に控えが残ることがあるため、完全な回収は保証できません。
10. パスキーと復旧不能
パスキーはDROPを開くための鍵で、記録そのもののバックアップではありません。パスキーと端末の両方を失うと、アカウントとサーバー上のDROPを取り戻せなくなることがあります。復旧用のメールアドレスもパスワードも預かっていないため、運営からも戻せません。
11. 診断ではありません
PsyColorzは医療、心理診断、治療、危機介入を提供しません。色や表示は状態を断定しません。生命や身体に危険があるとき、強い不調があるとき、緊急性があるときは、地域の緊急窓口、医療機関、専門機関へ連絡してください。
12. 免責
データの消失、通信障害、外部サービスの障害、パスキーの紛失、端末やブラウザの設定に起因する損害について、法令で認められる範囲で責任を負いません。
13. 運営者と問い合わせ
運営者はsabo(個人による無料運営)です。問い合わせ、削除・開示の請求、公開されている内容への通報は takomania@protonmail.com へ連絡してください。無料・個人運営のため、対応にかかる時間は約束できません。開示請求など正当な必要がある場合は、必要な範囲で運営者情報を提示します。本ポリシーの準拠法は日本法です。
14. 改定
本ポリシーを変更するときは、施行日と内容をこのページに表示します。重要な変更があるときは、合理的な方法で知らせます。