CHANGELOG.md
Rama main · réplica de lectura del repositorio original.
# 変更履歴 (Changelog)
すべての重要な変更は本ドキュメントに記録されます。
バージョニングは [Semantic Versioning 2.0.0](https://semver.org/lang/ja/) に準拠しています。
---
## [1.0.0] - 2026-09-24
### 🎉 初版リリース (Initial Release)
Tollgate の最初のメジャーバージョンです。マルチテナント SaaS・マイクロサービス基盤向けの軽量 API キー管理 & 認可リバースプロキシとして、単一バイナリによるゼロ依存起動から大規模分散構成までをサポートします。
### ✨ 主な機能
#### 1. API キー ライフサイクル管理 & 認可
- **マルチテナント二段構成**:
- **テナントキー**: テナント ID とサービス ID を保持し、下流サービスへ確実にコンテキストを注入。
- **サービスキー**: クライアント指定の動的 `X-Tenant-ID` を透過フォワード。
- **セキュアな設計 (Fail-Fast)**:
- 平文キーは一切永続化せず SHA-256 ダイジェストのみを保存。
- 認証コンテキスト不一致(コンフリクト)時は `403 Forbidden` で即座に遮断。
- フォールバックシークレットのハードコードを完全排除。
- **ゼロダウンタイム・キーローテーション**:
- 旧キーの猶予期間(Grace Period)を保ちながら新キーを即時発行。
- **高速キャッシュ層**:
- TTL によるキーメタデータのインメモリキャッシュを内蔵。
#### 2. 動的マルチターゲット・リバースプロキシ
- パスプレフィックスに応じた自動ルーティング、Prefix Stripping、スコープ認可(`billing:*` 等)。
- 接続プール最適化および TIME_WAIT 枯渇抑止トランスポートチューニング。
#### 3. マルチストレージ・アーキテクチャ
- **SQLite** (`modernc.org/sqlite`): CGO 不要な純 Go 実装。外部コンテナなし・単一バイナリで即座に起動可能。
- **Amazon DynamoDB**: AWS 完全マネージド、GSI スパースインデックス対応。
- **Azure Cosmos DB** (`github.com/Azure/azure-sdk-for-go/sdk/data/azcosmos`): Azure 完全マネージド NoSQL、Point Read (1 RU) 最適化。
- **Google Cloud Firestore** (`cloud.google.com/go/firestore`): GCP ネイティブ NoSQL、アトミックトランザクション対応。
#### 4. 高精度レートリミット & クォータ制御
- **分散スライディングウィンドウ (Redis / Valkey)**: Redis Sorted Set + Lua スクリプトによるミリ秒精度のアトミック流量制御。Redis 障害時の Fail-Open(可用性優先)設計。
- **2段キャッシュレートリミット (Two-Tier)**: L1 ローカルインメモリ判定 + L2 分散 Redis / Valkey 同期のハイブリッド階層化制御。
- **インメモリ・スライディングウィンドウ**: 極小メモリフットプリントなノードローカル流量制限。
- **月間クォータ集計**: アトミックカウンターによる月間リクエスト上限管理。
#### 5. オブザーバビリティ & ドキュメント
- **Kubernetes プローブ**: `/livez`、`/readyz`、`/healthz`
- **Prometheus メトリクス**: `/metrics`
- **Grafana 連携**: 事前設定済みダッシュボードおよび自動プロビジョニング設定の同梱。
- **API ドキュメント**: OpenAPI 3.1 仕様 (`/openapi.json`) および Scalar UI (`/docs`) の内蔵。