OptiLync / セキュリティ

セキュリティ

会員の個人情報とお金を預かるシステムなので、どこに何を置いているかを公開しています。 当社は少人数の会社です。できることと、お約束できないことを両方書きます。

カード情報は、当社を通りません

決済代行(PAY.JP)のトークン方式を使っています
  • カード番号は会員のブラウザから決済代行会社へ直接送られ、当社のサーバーとデータベースには保存されません
  • 当社が保持するのは、決済代行会社が発行した「このカードを使う」ための識別子だけです
  • 同じ処理が二重に走っても二重課金にならないよう、決済には冪等キーを付けています
  • キャンセルは「返金してから予約を取り消す」順番です。返金に失敗したときは予約を残します(取り消したのに返金されない事故を防ぐため)

データの置き場所

データベース
Supabase(PostgreSQL)/東京リージョン
アプリケーション
Vercel/東京リージョン(hnd1)
通信
すべて HTTPS(TLS)で暗号化
接続情報・鍵
ソースコードには含めず、実行環境の環境変数でのみ管理
会員の写真
非公開の保管領域に置き、本人にだけ期限付きの URL で表示(URL を知っていても他人は開けません)

誰が何を見られるか

役割ごとに、見える範囲を分けています
  • 店長・スタッフ・コーチは、売上金額と会員数を見られません(表示だけでなく、取得する処理の側で止めています)
  • 法人契約の社員の予約・来店回数は、法人の代表者にも見せません
  • データベース側でも行単位のアクセス制御を全テーブルで有効にしています。会員画面から読めるのは、そのために用意した限られた列だけで、緊急用の暗証番号や店舗の設定値は読めません
  • 書き込みはすべてサーバー側の処理を経由します。利用者のブラウザから直接データベースに書き込むことはできません

会員のログインにパスワードはありません。LINE ログイン、またはメールに届く確認コードで入ります。 パスワードを作らせない=使い回されたパスワードが漏れて他店の被害が波及する、という経路そのものを無くす設計です。

データが壊れないようにする

「運用で気をつける」ではなく、データベース側で禁止しています
  • 同じ打席・同じ時間帯の予約が重なることを、データベースの制約で禁止しています(画面の作りに関係なく二重予約が入りません)
  • 同じ会員・同じ月の月会費が二重に立たないよう、一意制約を掛けています
  • 複数のテーブルにまたがる処理(入会・退会・プラン変更・イベント申込・キャンセル)は、途中で失敗したら全部元に戻る単位で実行します
  • 日付と時刻は、日本時間に変換する共通の処理を必ず通します(サーバーは協定世界時で動くため)

AI に何を渡しているか

お客様のデータでモデルを学習させてはいません
  • 生成AIは、依頼のたびにその時の数値を添えて渡す方式です。店舗のデータを蓄積してモデルを作り直す、ということはしていません
  • 稼働率・KPI・退会予兆スコア・来週の需要見込みは、生成AIではなく決まった計算式で出しています。提案の文章だけが生成AIです(この区別を曖昧にしません)
  • スイング動画を扱う機能では、動画そのものを送らず、端末側で切り出した静止画だけを送ります。動画は保存しません

外部に委託している範囲

OptiLync の提供にあたり、以下の事業者のサービスを利用しています。

Supabase
データベース・認証(東京リージョン)
Vercel
アプリケーションの実行・配信(東京リージョン)
PAY.JP(PAY株式会社)
クレジットカード決済
LINEヤフー株式会社
LINE ログイン・LINE 通知
Anthropic
生成AIによる分析コメント・文面の下書き
構造計画研究所(RemoteLOCK)/
アート株式会社(ALLIGATE)
入退室(解錠)の連携

個人情報の取扱いの詳細はプライバシーポリシーに記載しています。

変更を安全に反映するために

前の状態に戻せることを、運用の前提にしています
  • コード・設定・データベース構造の変更は、すべて履歴として保存しています
  • データベースの構造変更は日付つきの手順書として残し、現在の構造をスナップショットとして保持しています
  • 反映のたびに、型チェック・ルールの自動テスト・書式チェックを自動で実行しています。これを通らないものは反映されません
  • 反映後は「保存できました」の表示を根拠にせず、公開されている画面を開いて確認します

お約束できないこと

できることだけを書いて、いざというときに困っていただきたくないので、明記します。

当社は少人数体制です
  • 24時間365日の即時障害対応と、夜間休日の駆けつけはお約束していません。ご連絡は営業時間内の対応が基本です
  • 停止が直ちに人身や巨額の損害につながる用途には適しません
  • 入退室については、クラウドや通信が使えないときでも入れる手段(暗証番号など)を必ず併用していただく前提で設計しています。鍵をシステムだけに依存させないでください
  • 第三者機関によるセキュリティ認証(ISMS 等)は、現時点で取得していません

セキュリティに関するご質問、脆弱性のご報告は support@optilync.jp までご連絡ください。