背景
template には local development 用の認証 implementation が含まれる。
例:
- client:
localAuthProvider
- API:
localTokenVerifier
これらは production で利用できてはいけない security-sensitive stub であり、現在は APP_ENV=local/test のみ許可し、それ以外を拒否する fail-closed 実装になっている。
この性質を単なる implementation detail にすると、将来の refactor で accidentally fail-open になる可能性がある。
目的
「local/test 専用 implementation は production / unknown environment で必ず拒否する」を executable security contract にする。
実装案
local-only implementation に明示的な metadata / naming convention を持たせる。
例:
localAuthProvider
localTokenVerifier
mockMailer
fakePaymentProvider
各 implementation について environment matrix test を用意する。
APP_ENV=local -> allowed
APP_ENV=test -> allowed
APP_ENV=production -> rejected
APP_ENV=undefined -> rejected
APP_ENV=unknown -> rejected
可能なら共通 helper へ fail-closed 判定を集約し、個別 implementation が独自判定を持たないようにする。
静的検査候補
- local-only implementation の production entrypoint への直接 binding を warning / error
- local-only file の利用箇所を allowlist 化
- production Dockerfile / runtime config に
APP_ENV=production を必須化
production 以外なら許可 のような fail-open 判定 pattern を禁止する
注意
実際の安全性は AST rule だけでなく environment matrix test で保証する。
security-sensitive rule なので「静的解析にこだわる」より「機械的に壊れたら CI が落ちる」ことを優先する。
Acceptance Criteria
背景
template には local development 用の認証 implementation が含まれる。
例:
localAuthProviderlocalTokenVerifierこれらは production で利用できてはいけない security-sensitive stub であり、現在は
APP_ENV=local/testのみ許可し、それ以外を拒否する fail-closed 実装になっている。この性質を単なる implementation detail にすると、将来の refactor で accidentally fail-open になる可能性がある。
目的
「local/test 専用 implementation は production / unknown environment で必ず拒否する」を executable security contract にする。
実装案
local-only implementation に明示的な metadata / naming convention を持たせる。
例:
各 implementation について environment matrix test を用意する。
可能なら共通 helper へ fail-closed 判定を集約し、個別 implementation が独自判定を持たないようにする。
静的検査候補
APP_ENV=productionを必須化production 以外なら許可のような fail-open 判定 pattern を禁止する注意
実際の安全性は AST rule だけでなく environment matrix test で保証する。
security-sensitive rule なので「静的解析にこだわる」より「機械的に壊れたら CI が落ちる」ことを優先する。
Acceptance Criteria