Repository navigation
twsnmpfc v1.72.0 リリースノート
v1.72.0 では、認証不要でマップ状態を安全に共有できる「マップダッシュボード公開機能」やマップ画像のダウンロード機能の追加、macOS 15(Sequoia)環境でのローカルネットワーク制限対応およびPINGタイムアウト障害の解消、依存ライブラリのセキュリティ脆弱性対応を実施しました。
🚀 主な新機能・機能改善
- マップダッシュボード公開機能 (
/dashboard/:key):- ランダムな秘密URLキーを利用して、認証不要でアクセス可能な読み取り専用のマップダッシュボード機能を追加しました。
- マップ設定画面から公開の有効/無効切り替え、公開キーの自動生成、URLコピーが可能です。
- 公開API(
/public/api/map/:key)経由で提供されるため、IPアドレス、MACアドレス、各種通信ログ等の機密情報はサニタイズ(除外)され、外部に安全にマップの稼働状態のみを共有できます。 - ダッシュボード上には状態別ノード数のKPIチップ、ズームコントロール(拡大/縮小/リセット/画面フィット)、再読み込みボタンを配置しています。
- マップ画像ダウンロード機能:
- マップ(および公開ダッシュボード)の表示状態を PNG 画像としてダウンロード・保存できる機能を追加しました。
- SPAフォールバック対応:
/dashboard/:keyなどの動的URLに直接アクセスしたりブラウザで再読み込みした際に 404 エラーとなる問題を解消するため、バックエンドでindex.htmlにフォールバックして Vue Router 側で解決できるように対応しました。
🐛 バグ修正・安定性向上
- macOS 15(Sequoia)のローカルネットワークアクセス制限対応:
- macOS 15 以降で導入されたローカルネットワークアクセス制限に対応するため、macOS 向けバイナリビルド時に
Info.plist(NSLocalNetworkUsageDescription)を埋め込むよう改善しました。
- macOS 15 以降で導入されたローカルネットワークアクセス制限に対応するため、macOS 向けバイナリビルド時に
- PINGタイムアウト障害の解消とネットワークトラフィック平滑化:
- PING の送受信処理を goroutine 分離し、独立受信ループ・先行パケットドレイン・高精度タイマーを採用して、macOS 環境や高負荷環境で発生していた PING タイムアウト障害を解消しました。
- ARP 解決用に応答待ちを行わない軽量送信 API(
SendPing)を追加しました。 - ARP Watch のバースト一括送信(5秒間隔)を廃止し、200ms 間隔の平滑送信に変更しました。
- 自動発見(Discover)の並行度抑制(最大16並行)、80ms ペーサーによるレートリミット、ポートスキャン並行度制限(最大2並行)を導入しました。
- 自動発見で新規登録されるポーリングの次回実行時刻を分散(ジッター付与)させ、初回負荷集中を防止しました。
- TCP ポーリングの即時クローズとリトライ待機処理の改善、ポーリングログの並行マップ競合を防止しました。
🔒 セキュリティ修正・依存ライブラリ更新
github.com/labstack/echo/v4を v4.15.3 に更新(CVE-2026-55677 対応)google.golang.org/grpcを v1.83.2 に更新go.opentelemetry.io/otel/sdkを v1.45.0 に更新github.com/klauspost/compressを v1.18.7 に更新