Skip to content

fix: #302 Environment.type で ENV['RACK_ENV'] を優先#315

Merged
pooza merged 4 commits into
developfrom
fix/env-rack-env-fallback
Apr 24, 2026
Merged

fix: #302 Environment.type で ENV['RACK_ENV'] を優先#315
pooza merged 4 commits into
developfrom
fix/env-rack-env-fallback

Conversation

@pooza
Copy link
Copy Markdown
Owner

@pooza pooza commented Apr 24, 2026

Summary

cure-api 側の局所 override で `Environment.type` に ENV['RACK_ENV'] を読ませる。v3.0.3 として小修正リリースする。

経緯

#302 の根本原因が判明:

  • `Ginseng::Environment.type` は `Config.instance['/environment']` のみ読み、ENV を見ない
  • cure-api の application.yaml に `/environment` キーは存在しない
  • 結果、rc.d で `RACK_ENV=production` を渡しても `rescue :development` に落ち、Puma は development モードで起動
  • セキュリティ的にも問題: development では Sinatra のエラー詳細が外部に出る(今日の EPIPE スタック露出もこれが効いていた)

修正

app/lib/cure_api/environment.rb で `type` を override:

```ruby
def self.type
env = ENV['RACK_ENV']
return env.to_sym if env && !env.empty?
return super
end
```

優先順位: ENV['RACK_ENV'] → Config['/environment'] → :development

ginseng-core 本体の対処

ginseng-core #479 で起票済み。横断的影響評価が必要なため別作業とする。本 PR は cure-api 局所対処にとどめる。

Test plan

  • develop マージ後 v3.0.3 として release
  • 本番デプロイ後、新 Puma 起動ログが `Environment: production` になること
  • `procstat -e ` で RACK_ENV=production が反映されていること(既に v3.0.2 時点で確認済み)

Closes #302

🤖 Generated with Claude Code

pooza and others added 4 commits April 25, 2026 07:50
ginseng-core の Ginseng::Environment.type は Config.instance['/environment']
のみを読み、ENV['RACK_ENV'] を見ない。cure-api の application.yaml に
/environment キーが無いため、rc.d で RACK_ENV=production を渡しても
Puma は development モードで起動していた(エラー時に詳細スタックが
クライアントに公開される問題の遠因)。

cure-api 側の局所対処として ENV['RACK_ENV'] を優先する override を入れる。
ginseng-core 本体の根本対処は ginseng-core #479 で別途。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@pooza pooza merged commit 82ecffa into develop Apr 24, 2026
1 check failed
@pooza pooza deleted the fix/env-rack-env-fallback branch April 24, 2026 22:59
@pooza pooza mentioned this pull request Apr 24, 2026
3 tasks
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.

1 participant