v0.12.0
v0.12.0
Section titled “v0.12.0”リリース日: 2026-02-13
セキュリティ強化と監査ログ基盤の導入を中心としたリリース。proof サービスの HTTP エンドポイントにおけるセキュリティ脆弱性 5 件を修正し、全サービスに Cloudflare Pipelines ベースの監査ログ(AUDIT_STREAM)を追加。また、jigger/vault/cellar パッケージに 298 件のユニットテストを新規追加し、テストカバレッジを大幅に向上させた。
- 監査ログパイプライン(AUDIT_STREAM): 全サービス・ゲートウェイに本番監査パイプラインバインディングを追加。
@speakeasy/jigger/logstreamにcreateAuditHelper/PipelinesClientを新設し、ドメインイベント形式で組織作成・メンバー操作・パスワードリセット等の操作を記録 - ユーザー名重複チェック API: proof サービスに
checkUsernameExistsRPC メソッド、tap ゲートウェイにGET /owner/check-username/:usernameエンドポイントを追加 - パスワード自動生成・再発行エンドポイント: tap ゲートウェイに
POST /owner/:pureloversShopId/generate-passwordを追加。パスワード自動生成、リセット、店舗メール宛の通知を一括処理 - 店舗メールアドレス対応: 店舗オーナー作成時に
shopEmailパラメータをサポート。外部メールが渡された場合は hooks が自動で内部メールに置換し outerMail に登録
- メンバー追加エンドポイントの認可強化:
/api/organization/add-memberにセッション検証と組織 owner/admin 権限チェックを追加 - サインインレート制限: email に加え、username ベースのサインインにもレート制限(10 回/15 分)を適用
- SQL インジェクション対策: アカウント削除時の生 SQL(テンプレートリテラル)を Drizzle ORM の
db.delete()に置換 - XSS 対策: proof エラーページの HTML 出力に
escapeHtmlを適用し、ユーザー入力由来の値をエスケープ - 未使用エンドポイント削除:
/api/anonymous-signinおよび/api/create-session-by-idHTTP エンドポイントを削除 - エラーメッセージのサニタイズ: RPC エラー時に内部エラー詳細をクライアントに返さず、汎用メッセージに置換
- スラッグ生成ロジック改善: 先頭・末尾のハイフン除去、短いスラッグに対する UUID 補完ロジックの追加
- ユーザー名 unique 制約エラーのハンドリング: 重複時にユーザーフレンドリーなエラーコード
USERNAME_TAKEN(409)を返却 - グループ作成時の userId 分離: グループ組織作成時に userId を渡さず組織のみ作成するよう変更
- jigger パッケージ: スキーマ(base, contact, chatroom, event-sourcing, password)、analytics、logstream(audit-helper, pipelines-client)、rpc/smart-client のテストを追加
- vault パッケージ: schema, relations, seed-migrations のテストを追加
- cellar パッケージ: schema, diagnostics, event-sourcing, pagination のテストを追加
- door ゲートウェイ: permissions のロール権限テストを追加
- mule ゲートウェイ: purelovers クライアントのテストを追加
- proof サービス: audit-utils, error-page のテストを追加
- vintage/fizz/bell サービス: CRUD テスト・フィルターテストを拡充
対象サービス
Section titled “対象サービス”- packages: jigger, cellar, vault
- services: proof, vintage, fizz, bell, base
- gateways: tap, door, mule