最終更新 2026-07-15
API制限
このページの対象
サイト運営者向けです。閲覧された天気データは共有・キャッシュ向きにし、OpenWeather 無料枠(既定1000回/日)の消費を抑えます。
日次・分間クォータ
constants/weather.js の既定:DAILY_LIMIT 1000、WARNING_THRESHOLD 800、SOFT_BLOCK_THRESHOLD 950、PER_MINUTE_LIMIT ローリング1分あたり60 upstream 呼び出し。platform_settings が daily_limit、soft_block_threshold、warning_threshold、per_minute_limit を上書き可能(初回 DB オープンで seed)。カウンタは UTC 深夜にリセット。
ステータス値
ok — 警告閾値未満。warning — warning_threshold 以上(既定800回/今日)。soft_block — soft_block_threshold 以上(既定950);upstream ブロック。hard_block — daily_limit(既定1000)。直近60秒で per_minute_limit 回あった場合、分間上限も upstream をブロック。
キャッシュヒット vs upstream
L2 DB ヒットは api_call_log に cache_hit=1 で記録し日次 upstream カウンタは増やさない。L1 メモリヒットは SQLite に記録しない — meta.layer が memory のとき recordCacheHit は早期 return。クォータにカウントするのは成功した upstream OpenWeather 呼び出し(status 200、cache_hit=0)のみ。ブロック時 emergency stale は upstream を避ける。
管理診断
/admin(ログイン後)で本日の使用量/日次上限、残り、ステータス、更新間隔設定。API:GET /api/admin/usage。
管理 API
GET /api/admin/usage — クォータスナップショットと最近の呼び出し。GET|PATCH /api/admin/config — 主管理設定 API(更新間隔、コネクタ、ダイジェスト既定、AdSense、アラートトグルなど)。狭いレガシー:PATCH /api/admin/settings { refreshIntervalMs }。認証:/login 後 HttpOnly セッション cookie meridian_admin_session。署名シークレットは ADMIN_SECRET(ADMIN_PASSWORD ではない)。Dev bypass:NODE_ENV=development、ALLOW_DEV_ADMIN_BYPASS=1、ADMIN_SECRET unset。
OpenWeather プロバイダ制限
meridian は独自 upstream カウンタを追跡;OpenWeather も独立してレート制限やキー拒否(401、429)の可能性。オーケストレーターはこれをクライアント向け構造化 API エラーにマップ。
緊急モード
soft/hard block 時も、座標にスナップショットが一度もなければ除き、ユーザーは freshness emergency とマークされた最後の acceptable SQLite スナップショットを見る(空白エラーではない)。