システム環境変数の値を利用してMTの設定を行えるようにする

Description

より。センシティブな設定をデータベースに保存したくないユーザのために MT_CONFIG_ で始まるシステム環境変数経由で MT の設定を指定できるようにする。ひとまずすべて大文字、区切りなしの環境変数が設定されていたらその値を利用するものとするが、初期化時に手を入れればスネークケースにしたものを大文字化したものを許容するくらいはできそう。複数の値を取り得るものについては書式が複雑になるので対応しない。また、環境変数由来の値が存在しているときはその値を上書きしたりデータベースに保存したりできないようにしておいた方がよさそう。

システム環境変数があったらウイザードの初期値を上書きしたり mt-config.cgi には書き出さないようにしたりする必要もありそうだが、フォームフィールド名と環境変数名の対応がかならずしも一致せず、あれこれ書き直す(か、マッピングテーブルを用意して都度読み替えてやる)必要があるので別枠で扱う。

Checklists

None

Activity

Show:

Kenichi IshigakiApril 24, 2024 at 3:01 PM

ありがとうございます。マージしました。

Reiko SatoApril 24, 2024 at 3:09 AM


3バージョンとも上記手順で起動/管理画面へアクセスできる事を確認。
env.ymlの中身を大文字小文字混在、アンダースコアを入れた場合も同様に、アクセスできる事を確認。

Kenichi IshigakiApril 22, 2024 at 6:05 AM

ありがとうございます。

それぞれ以下で対応しました。

  • (MT8)

  • (MT80)

  • (MT7)

今回も検証時に mt-dev 環境に手を入れる必要があります。手元で動作することは確認してありますが、詰まったらお知らせください。

  • mt-dev/mt/env.yml を以下のような内容で保存する

  • 手元に mt-dev 用の mt-config.cgi があったら、 DBUser と DBPassword の項目をコメントアウトしておく

  • この状態で vagrant mt-dev up-psgi (ないし make up-psgi) して、管理画面にアクセスする(DB につながらないのでしばらく待たされて、いずれはタイムアウトしますが、つながらないことが確認できたら止めてよいです)

  • 一度 mt-dev 環境を止める

  • 起動時のオプションに DOCKER_COMPOSE_USER_YAML="-f ./mt/env.yml" を追加(するか、 .env ファイルに書いておいたうえで)して再度 mt-dev 環境を立ち上げる

  • 今度は管理画面に正しくアクセスできることを確認する

  • 必要に応じて MT_CONFIG_DB_USER のようにアンダースコアを追加して読みやすくした場合や、 MT_CONFIG_DBUser のように大文字小文字が混ざっている場合でも期待通りの動作をするか試してみてください

  • 検証が終わったら mt/env.yml と DOCKER_COMPOSE_USER_YAML の設定を消して、 mt-config.cgi も元に戻しておいてください

Keita SugamaApril 22, 2024 at 3:17 AM

ありがとうございます。良さそうです。

Kenichi IshigakiApril 22, 2024 at 2:50 AM

ありがとうございます。MT 8.0 / 7 用の PR も追加しました。念のためレビューおねがいします。なお、MT7 には stringify_config がないのでテストを微調整しています。

  • (MT80)

  • (MT7)

Implemented

Details

Assignee

Reporter

Fix versions

Priority

Smart Checklist

Created April 16, 2024 at 10:45 AM
Updated March 3, 2025 at 4:46 AM
Resolved April 24, 2024 at 3:01 PM