プライバシーポリシー¶
この文書は便宜のための翻訳であり、内容に相違がある場合は英語版の PRIVACY.md が優先します。
ポリシーバージョン9、2026年10月14日施行。このリポジトリの brisk の Python API とコマンドラインツール、それらのアップロード先である非公開の記録アーカイブ、およびそのクラウド API に適用されます。
自分専用のアーカイブ¶
アップロードしたものは非公開です。アップロードはすべて、あなたの ID の下に保存されます。
ID とは、最初に必要になったときに、ツールがお使いのコンピューター上で作るランダムな秘密の値です。
ID は、システムの資格情報ストア(macOS のキーチェーンまたは Windows の資格情報マネージャー。それ以外の環境や BRISK_IDENTITY_STORE=file を指定した場合はファイルのみ)と、
~/.config/brisk/identity.json(または $XDG_CONFIG_HOME/brisk/)に保存され、本人だけが読めます。一方が失われても、もう一方から戻ります。登録、アカウント、メールアドレス、パスワードはありません。アーカイブがあなたを識別するのは、秘密の値の一方向ハッシュである owner ID だけで、リクエストが持っていると証明した owner ID のアップロードだけを一覧・ダウンロード・削除します。ほかの誰にも、一覧もダウンロードもできません。バケットで公開されているオブジェクトは、
samples/ の下のサンプルだけです。通信をそのまま記録した旧形式のサンプルのコピーです。
- 秘密の値を持つ人は、アーカイブにとってあなた本人です。秘密にしてください。この値は
28文字の復元コードとしても表せます。復元コードは ID の作成時に表示され、
brisk identity --recovery-codeでも再表示できます。brisk identity --recover CODEで別のコンピューターでも使えます。また、代わりにBRISK_IDENTITYでプロセスに秘密の値を渡すこともできます。 - すべてのコピーと復元コードをなくすと、その ID でアップロードしたものにアクセスできなくなります。アップロードしたものは、運営者が削除するまで保存されたままです。
brisk delete PREFIX(またはbriskapi.Archive().delete(prefix))は、記録またはタイミングレポートを自分のアーカイブから削除します。以後、一覧にもダウンロードにも出なくなります。30日間は元に戻せます。brisk list --deletedで削除したものとその期限を確認でき、brisk restore PREFIX(またはbriskapi.Archive().restore(prefix))で復元します。 30日を過ぎると復元できなくなり、ストレージが1日以内に削除します。- アーカイブの運営者(後述)はストレージを運用しており、ほかのホスティングサービスと同様に、保存されたデータにアクセスできます。運営者がそれを公開することも共有することもありません。
- 自分のバー: 証券会社(SBI、e支店、松井、マネックス、SMBC日興)の記録の取引日ごとに、アーカイブは、その日の自分の現在の記録に含まれる約定から OHLCV バー(銘柄ごとの始値・高値・安値・終値・出来高。 1秒から1日まで)を作り(各約定は1回だけ数えます)、自分の owner ID の下に保存します。含まれるのは、自分の記録が完全にカバーしているバーだけです。他の人のアップロードがそこに入ることはなく、自分のアップロードが他の人のバーに入ることもありません。その日の記録をアップロード、削除、復元するたびに作り直され、置き換えられた古いバージョンは1日以内に削除されます。
- クラウド API: 照会(
briskapi.Historical、brisk query)は、ID を API キーとして使い、読むのは自分の記録、上記の自分のバー、公開デモだけです。公開デモはどの ID からでも照会できます。大きな結果をダウンロードできるよう、結果は最長1日保持されます。無料で、ID ごとの上限(1分に60リクエスト、1日に 2 GB)と IP アドレスごとの上限(1分に120リクエスト、1日に 4 GB)があります。サービスは、何を照会したかを記録しません。
自動アップロード¶
アップロードは既定でオンです。コマンドラインで初めて記録する、パッケージ化する、またはライブセッションを開くと、以下に説明するすべての内容を載せた短い通知が表示され、一度だけ確認されます。Enter を押すと同意したことになり、その答えは保存されて以降の実行に使われます。それ以降は、最後まで正常に終わったセッションはすべて、確認なしで自分専用のアーカイブにアップロードされます。対象は、デモのセッション(brisk record、brisk live、
briskapi.connect()、briskapi.record())と、証券会社のセッション(SBI、立花証券 e支店、松井証券、マネックス証券、SMBC日興証券。brisk live --site sbi またはほかの証券会社のサイト、briskapi.connect(site=...))で、後者はタイミングの要約と、デコードした市場データの記録をアップロードします。証券会社のセッションは、止めるまで取引日を次々に記録し、各日を前場と後場の2つの記録としてアップロードします。前場の記録は昼休みに入った時点で、後場の記録はその日が終わったとき(サイトが次の取引日を配信し始めたとき、またはサーバーがストリームを閉じたとき)です。日の途中で証券会社の BRiSK との接続が切れた場合、セッションは自動で再接続します。切れる前に記録した分はそれだけで完結した記録として、ほかの記録と同じようにアップロードされ、その日の残りは新しいスナップショットから記録されます。ライブセッションの動作中、各日は届いたそばから、お使いのコンピューターの
briskapi のスプールフォルダー(~/.local/share/brisk/spool、または $XDG_DATA_HOME の下)に Parquet ファイルとして書き込まれるので、クラッシュしても失われるのは最後の30秒ほどだけです。これらのファイルは、その日がパッケージ化されると削除されます。
Python API の呼び出しは確認を求めません。確認できない場面(Python API、または端末のないコマンド実行)で、まだ決めていない場合、セッションは既定でアップロードされます。ツールは、プロセスごとに一度その旨(Python では警告、または stderr)を表示し、あなたの owner ID とオプトアウトの方法を示し、
ID がなければ作ります。brisk consent --accept または --revoke(briskapi.consent(accept=True) または
revoke=True)で決めると、この既定が置き換えられます。証券会社のセッションを止めると(Ctrl-C、kill、コンピューターのシャットダウン、Python の close())、その日はそこで、日の終わりと同じように終わり、残りの分がほかの記録と同じようにアップロードされます。途中までの再生(--limit-frames)はアップロードされません。日を終えられなかった証券会社のセッション(クラッシュや強制終了で止まった、または止めるよう求めてから
30秒以内に終わらなかった)は、代わりに仕上げられます。その日のそれまでの分(最後の30秒ほどを除くすべて)に、セッションが書けなかった終わりの印を付け、そのセッションの設定どおりに保存・アップロードします(すぐに、またはクラッシュ後に次にフィードを起動したときに)。アップロードがオフで --output もなく、何も残さない設定だったセッションは、そのときも何も残しません。
オプトアウトするには:
- 最初の確認で拒否する(
n)。 brisk consent --revoke(またはbriskapi.consent(revoke=True))で、brisk consent --acceptで再びオンにするまでアップロードをオフにする。BRISK_UPLOAD=0を設定した環境のすべてのプロセスで、アップロードを無効にする。--no-upload(Python ではupload=False)で、1回の実行を完全にローカルに残す。--no-upload-market-data(briskapi.connect()ではupload_market_data=False)で、証券会社のセッション1回分の市場データの記録をローカルに残し、タイミングの要約だけをアップロードする。
アップロードの内容¶
保存される記録は、デコードした記録を収めた4つの Parquet テーブルと、その保存場所の一覧、
manifest.json からなります。デモの記録の市場データのテーブルは誰にとっても同じなので、アーカイブは1つだけ保持し、デモのアップロードごとに送って保存するのは自分のタイミングのテーブルだけです。ダウンロードすると記録全体が返ります。
- 記録した市場データ: BRiSK デモの銘柄マスターとデコードした板寄せの気配、または証券会社のセッションのデコードした銘柄マスターと板寄せの気配(価格、数量、売買代金、銘柄の状態、銘柄コード、フラグ、ソース時刻。板の各側の、注文のある価格のうち上位10本とその数量・注文件数、引け条件付き注文についても同様のもの、板全体の注文合計)、そしてすべての約定(時刻、価格、株数、仕掛けた側)。セッションのスナップショットがその日の早い時間から復元する約定も含みます。バージョン5で板、売買代金、証券会社の銘柄の状態が加わり、バージョン6で約定、引け条件付きの板、板全体の合計が、バージョン9で松井証券、マネックス証券、SMBC日興証券のセッションからの同じ内容が加わりました。デモの内容は、固定した基準の再生と照合して検証します。証券会社の内容はアップロードした本人の申告によるもので、アーカイブは、ちょうどこれらのフィールドだけを正規のエンコードで持ち、形式が正しいこと(銘柄、順序、時刻、値の範囲)を検査しますが、市場データとしての整合性は検査しません。
- ローカルのタイミング計測値: フレームごとのデコード時間(
decode_ns)、お使いのコンピューターの時計による受信時刻(ミリ秒、received_unix_ms)、再生の遅れ、再生の合計時間、デモのアセットのダウンロード時間、およびアセットがウェブサイトとローカルのキャッシュのどちらから来たか。受信時刻から、記録した日時がわかります。タイミングの値には、お使いのコンピューターの速度や負荷がある程度反映されることがあります。 - マニフェスト: 要約(ソース、取引日、対象の銘柄、時刻範囲、件数、サイズ、SHA-256)。
証券会社のパッケージには、フレームごとの受信・デコードのタイミングとセッションの長さが含まれます。通信の出所として残すのは、サイトに固定された WebSocket のオリジンだけです(sbi.brisk.jp、next.e-shiten.brisk.jp、matsui.brisk.jp、monex.brisk.jp、smbcnikko.brisk.jp)。接続とデコーダーの診断情報は、パッケージ化の前に取り除かれます。
収集しないもの¶
ツールは、証券口座や BRiSK のアカウント、Cookie、セッショントークン、パスキー、注文、ユーザー名、ホスト名、ファイルパス、環境変数、ハードウェア識別子に関することを一切送りません。 ID の秘密の値が送られるのは、アーカイブの関数だけです(HTTPS 経由)。リクエストがどの owner ID のものかを証明するためで、サービスが保持するのは owner ID だけで、秘密の値は保持しません。アーカイブのサービスは、上に挙げたフィールドだけを受け付け、それ以外のフィールドを含む記録は拒否します。
証券会社の BRiSK¶
BRiSK のサイト用クライアント(briskapi.brisk。SBI は brisk live --site sbi、ほかは site= と
brisk live --site に、立花証券 e支店の BRiSK Next は e-shiten、松井証券は matsui、マネックス証券は
monex、SMBC日興証券は smbcnikko)は、ご自身のブラウザーのセッション Cookie を使います。
Cookie は認証情報です。
- Cookie は、発行したサイト(
https://sbi.brisk.jp、https://next.e-shiten.brisk.jp、https://matsui.brisk.jp、https://monex.brisk.jp、https://smbcnikko.brisk.jp)にのみ、そのサイトが発行する API トークンとともに送られます。クライアントはリダイレクトを一切たどらないので、ほかの場所へ転送されることはありません。ライブストリームは別の BRiSK ホスト(api.brisk.jp)にある場合があります。ブラウザーと同様に、クライアントがそこへ送るのはサイトの起動時の応答に示されたセッションで、Cookie ではありません。また、brisk.jpの外にあるストリームは拒否します。 briskapi.login(..., remember=True)を呼ばない限り、Cookie はメモリー上にだけあります。呼ぶと~/.config/brisk/sbi-cookies.json(ほかはe-shiten-cookies.jsonのように<サイト>-cookies.json。または$XDG_CONFIG_HOME/brisk/)に保存され、本人だけが読めます。briskapi.logout()はそれらを削除します。- ライブホストは、Cookie をコマンドラインではなく環境変数で受け取ります。
brisk enroll/brisk login(選んだ証券会社へのパスキーでのサインイン。SBI証券、松井証券、マネックス証券、SMBC日興証券、立花証券 e支店、または自分で追加した証券会社)は、その証券会社で登録したパスキーを取り込み、それを使って BRiSK のセッション Cookie を取得します。パスキーの秘密鍵は認証情報で、持っている人は誰でもあなたの証券口座にサインインできます。秘密鍵は、証券会社の名前(および、e支店のようにパスキーのフォームが先にユーザIDを求める証券会社では、ユーザID)とともに、 macOS のキーチェーンまたは Windows の資格情報マネージャーにのみ保存されます(BRISK_PASSKEY_STORE=fileを設定した場合は~/.config/brisk/の下の本人のみ読み取り可のファイルに保存され、 Windows ではユーザープロファイルのフォルダーで保護されます)。サインイン用のヘルパーには標準入力で渡し、コマンドラインでは渡しません。ログへの記録、アップロード、記録への混入は一切ありません。brisk forgetはここから削除します。証券会社側でも削除してください。ユーザIDは証券会社のログインページに入力され、こちらもログには記録されません。5社の Cookie は上記のとおり保存されます。自分で追加した、データクライアントのない証券会社の Cookie は、~/.config/brisk/cookies/の下の本人のみ読み取り可のファイルに保存されます。サインインに使う Chrome のプロファイルは一時的なもので、使用後に削除されます(強制終了された実行で残ったものは、次回の起動時に削除されます)。そこから取り出すのは BRiSK ホストの Cookie だけです。- アップロードがオンのとき、証券会社のセッションのデコードした市場データの記録は、取引日ごとに2つに分けてアップロードされます。前場の記録は昼休みに入った時点で、後場の記録(板のスナップショットから始まり、全銘柄の最新の気配をもう一度含みます)は日が終わったときです。接続が切れる前の分は再接続した時点で、セッションを止めた場合やクラッシュ・強制終了した場合は残りの分(上記のとおり修復して)がアップロードされます。
--no-upload-market-dataまたはbriskapi.connect(site=..., upload_market_data=False)の場合は、ローカルに残ります。 - アップロードがオンのとき、証券会社のセッションは、取引日ごと(接続が切れたり止めたりして日が分かれた場合はその部分ごと)に1件のタイミングの要約を、その日が終わった時点、または止めた時点(100フレーム以上を受信していれば)で自分専用のアーカイブにアップロードします。内容は、フレームごとのデコード時間、ローカルで受信した時点でのフィード時刻の遅れ、フレーム間隔のそれぞれの p50/p90/p99/最大値、1秒を超える停滞の回数、フレーム数、取引日、セッションの最初と最後の分(日本時間)、briskapi のバージョンです。
briskapi.connect()のupload=FalseまたはBRISK_UPLOAD=0は、要約も市場データの記録もローカルに残します。環境変数によるオプトアウトは、対話形式の確認も出さなくします。
ネットワークのメタデータ¶
アップロード、一覧、ダウンロード、削除、照会では、AWS Lambda の関数 URL と、東京(ap-northeast-1)の
Amazon S3 に接続します。これらのサービスは、リクエストのたびにお使いの IP アドレスを受け取ります。
- サービスが IP アドレスを使うのは、リクエスト回数などの制限のためだけです。すべてのリクエストがそのアドレスの分として数えられ(1分に120回)、アップロードのチケット、タイミングレポート、削除、復元、およびクラウド API が返すバイト数も同様に数えられます。ID の作成には費用がかからないため、 1台のコンピューターが ID を推測したり増やしたりするのを防ぐのはアドレスの役目です。サービスが保存するのは、アドレス(IPv6 アドレスでは /64 ブロック)の鍵付きハッシュ(デプロイごとの秘密の鍵を使った HMAC-SHA-256)で、アドレスそのものは保存しません。また、owner ID ごとの制限のために owner ID も保存します。両者は別々のエントリーです。各エントリーには、カウント期間の2倍(2分、2時間または2日)が過ぎると期限切れになる印が付けられ、期限切れのエントリーは DynamoDB が削除します。通常は数日以内です。
- サービスは IP アドレス、ID の秘密の値、記録の内容をログに記録しません。ログに残るのはインフラのエラーで、 14日後に削除されます。S3 のサーバーアクセスログは有効にしていません。
デモの記録では、そのアセットを https://next-demo.brisk.jp/ からダウンロードします。そのリクエストは BRiSK のサーバーに送られ、このポリシーではなく BRiSK のポリシーが適用されます。
保存、アクセス、保持期間¶
- 保存された記録とタイミングレポートは、その owner ID 専用の非公開のものです。 削除するまで(または運営者が削除するまで)保存されます。削除したものは30日間は復元でき、その後1日以内にストレージから削除されます。記録は owner ID の下に、内容で識別して(コンテンツアドレス方式で)保存されるので、同じ記録を2回アップロードしても保存されるのは1つです。名前には、取引日と、最初と最後の時刻が含まれます。
- アップロードは非公開のステージング領域で検証され、受理されても拒否されても、検証の直後に削除されます。ステージングにあるチケットのメタデータ(マニフェスト、owner ID、ステータス)は2日後に期限切れになります。拒否されたアップロードは保存されません。
- アーカイブが公開されていたポリシーバージョン6より前に保存された記録は、もう公開されておらず、ツールからもアクセスできません。運営者が保管しており、依頼があれば削除します。例外は、通信をそのまま記録した旧形式のサンプル(2026-03-11)で、公開のダウンロードとして
samples/にコピーされています。 - お使いのコンピューターでは、ツールはアップロードの設定を
~/.config/brisk/uploads.jsonに、 ID を~/.config/brisk/identity.json(または$XDG_CONFIG_HOME/brisk/)と、システムの資格情報ストアのbriskapi-archive-identityという名前の項目に保存します。briskapi.pull()は検証済みのダウンロードを~/.cache/brisk/(または$XDG_CACHE_HOME/brisk/)にキャッシュします。これらのファイルはいつでも削除できます。ただし、復元コードがないまま ID のコピーをすべて削除すると、その ID でアップロードしたものにアクセスできなくなります。
運営者と変更¶
アーカイブは、honvl/briskapi のオーナーが運営しています。インフラは AWS が提供します。削除のご依頼やプライバシーに関するご質問は、その GitHub アカウントを通じて運営者にお送りください。個人データを公開の issue に投稿しないでください。
今後のバージョンで、ここに記載した以外のものを収集したり、収集したものを別の用途に使ったりする場合は、ポリシーバージョンを上げます。その場合、以前の選択は適用されなくなります。コマンドラインではアップロードの前にもう一度確認し、確認できない場面では、最初に決める前と同じように、その旨を一度表示します。