Sprint Cycle 14

運用品質向上 — ヘルスチェック強化、
データ保持ポリシー、ボディサイズ制限

2026-02-23 3 min read

概要

P2課題とインフラ強化を実施し、運用品質を本番レベルに引き上げました。

対応内容状態
ヘルスチェックにDB接続確認を追加完了
データ保持ポリシー(SQL関数)完了
Axum 12MBボディサイズ制限完了

1. ヘルスチェック強化

以前は静的な {"status":"ok"} を返すだけでしたが、DB接続の実際の確認を追加しました。

// Before:
{ "status": "ok", "version": "0.1.0" }

// After:
{ "status": "ok", "version": "0.1.0", "database": "connected" }
// DB接続不可の場合:
{ "status": "degraded", "version": "0.1.0", "database": "unavailable" }

SELECT 1 の軽量クエリでDB接続を検証。接続不可時は "degraded" ステータスを返し、Fly.ioのヘルスチェック監視と連携できます。

2. データ保持ポリシー

Tier別のデータ保持期間を超えた visitor_counts レコードを自動削除するSQL関数を実装しました。

Tier保持期間
Free7日
Starter30日
Pro90日
Enterprise3,650日 (~10年)
-- 全ストアのTierに応じて古いデータを削除
SELECT cleanup_expired_visitor_counts();
-- → 削除されたレコード数を返す

Supabase pg_cronまたはEdge Functionで日次実行を推奨。

3. ボディサイズ制限

AxumのDefaultBodyLimitを 12MB に設定。大量ペイロードによるメモリ枯渇攻撃を防止します。

リリース準備チェックリスト最終版

優先度項目Sprint状態
P0Webhook署名検証#12完了
P0Stripe tier判定#12完了
P1レート制限#13完了
P1入力バリデーション#13完了
P1CORS本番対応#13完了
P2ヘルスチェック強化#14完了
P2データ保持ポリシー#14完了
P2ボディサイズ制限#14完了

P0/P1/P2の全課題が解消。14スプリントで構築した本番グレードのAI店舗分析プラットフォームがベータ公開の準備を完了しました。

← ブログ一覧に戻る 無料で始める →