Skip to content

feat: Storeにリスト数・アイテム数の上限制限を追加(メモリ保護)#32

Merged
mohadayo merged 5 commits into
mainfrom
feat/store-limits
Apr 24, 2026
Merged

feat: Storeにリスト数・アイテム数の上限制限を追加(メモリ保護)#32
mohadayo merged 5 commits into
mainfrom
feat/store-limits

Conversation

@mohadayo
Copy link
Copy Markdown
Owner

変更概要

  • Store にリスト数(MAX_LISTS)とリスト毎のアイテム数(MAX_ITEMS_PER_LIST)の上限制限を追加
  • 上限超過時は409 Conflictステータスとエラーメッセージを返却
  • 環境変数で設定可能(デフォルト: MAX_LISTS=1000, MAX_ITEMS_PER_LIST=200)
  • 0を設定すると無制限(後方互換性維持)
  • リスト削除後はスロットが解放される

変更ファイル

  • store.go: NewStore引数追加、CreateList/AddItemでエラー返却、errMaxListsReached/errMaxItemsReached定義
  • handler.go: CreateList/AddItemのエラーハンドリング追加
  • main.go: 環境変数MAX_LISTS/MAX_ITEMS_PER_LISTの読み取り
  • store_test.go: 上限制限テスト5件追加(リスト数上限・削除後再作成・アイテム数上限・リスト間独立性・無制限設定)
  • handler_test.go: NewStore呼び出しの修正、パストラバーサルテストの修正

テスト

go test -v -race ./...
# 全テストパス
go vet ./...
# 問題なし

動作確認

# デフォルト: 1000リスト、200アイテム/リスト
MAX_LISTS=1000 MAX_ITEMS_PER_LIST=200 go run .

# 無制限
MAX_LISTS=0 MAX_ITEMS_PER_LIST=0 go run .

Closes #31

@mohadayo mohadayo merged commit b2dedd0 into main Apr 24, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat: Storeにリスト数・アイテム数の上限制限を追加(メモリ保護)

1 participant