Repository navigation
OpenBao backend を、利用者が個人・チームで自分のサーバを立てて使う前提の文書と雛形に揃える #295
Description
何をしたいか
devbase の OpenBao backend を、利用者が個人またはチームで自分の OpenBao サーバを立てて使う前提で使えるようにする。
今の文書と設計は、ある 1 つの組織が運用しているサーバへ接続することを前提に書かれている。OSS として多くの人が使うなら、サーバの用意から devbase の接続までを、利用者が公開の情報だけで再現できる必要がある。
今どうなっているか
main = 2ee7e27(2026-10-06)で確認した。
| 場所 | 現状 | OSS の利用者にとっての問題 |
|---|---|---|
docs/user/env-backend.md:34-48「OpenBao 側で用意するもの」 |
「サーバの構築と運用は devbase の範囲外です。管理者から次の値を受け取ってください」 | 管理者のいない個人や小さなチームは、何を用意すればよいか分からない |
docs/user/env-backend.md:42、docs/specifications/secret-backend.md:922 |
利用者の識別子を「社内メールアドレスの @ より前」と説明している |
特定の組織の運用の決まりで、一般の前提ではない |
docs/specifications/secret-backend.md:393,926-929,1418,1652 |
サーバ側の構成(KV v2 のマウント、ポリシー、AppRole、token の期限)は「運用側のリポジトリ」が持つとし、サーバの構築・運用は devbase の範囲外としている | devbase が前提にしているポリシー(本人だけが users/<user>/ を読み書きできる、チーム共通は書き込み権限を持つ人だけ、version: 2 ではグループ単位)が公開されておらず、再現できない |
lib/devbase/env/backend_config.py:126-141 |
URL は https、または loopback 宛ての http だけを受け付ける |
個人で bao server -dev を手元で動かす形は通る。ただし下の「確かめること」のとおり、コンテナの中からは同じ URL で届かない疑いがある |
lib/devbase/cli.py:522-546、lib/devbase/env/openbao.py |
認証は AppRole(role_id / 端末ごとの secret_id)だけ |
個人の 1 台の利用でも、AppRole の有効化・ロール・ポリシーを自分で組む必要がある。手順が無い |
提案
| 項目 | 内容 |
|---|---|
| 利用の形 | 次の 3 つを文書で分けて示す。(1) 個人: 手元または自分のサーバに 1 台立てて 1 人で使う。(2) チーム: チームで 1 台立て、チーム共通と個人の置き場を分ける。(3) 既存のサーバ: 組織が運用しているサーバへ接続する(今の文書の形) |
| サーバの用意の手順 | KV v2 のマウント(既定 devbase)、AppRole の有効化、利用者ごとのロールと端末ごとの secret_id の発行、entity と alias の作成を、bao のコマンドで順に示す |
| ポリシーの雛形 | devbase が前提にする権限(本人の users/<user>/、チーム共通の読み取りと書き込み、version: 2 のグループ単位の team/<group>/…。例: team/personal/…)を HCL の雛形としてリポジトリに置く(例 docs/user/openbao/ や etc/openbao/)。version: 1 と version: 2 の両方 |
| 最小の試し方 | 個人が数分で試せる構成(bao server -dev か、docker compose の 1 ファイル)と、終わったら片付ける手順 |
| 利用者の識別子 | 「社内メールアドレス」ではなく「サーバの entity 名と同じ識別子」と説明する |
| 前提の書き直し | 確定仕様から非公開のリポジトリへの参照を外し、devbase がサーバに求める条件(マウント・パス・ポリシー・認証)を仕様の側に書く。secret-backend.md:393,926-929,1418,1652 と、利用者の識別子を「社内メールアドレスの @ より前」とする secret-backend.md:922 の書き直しはこの課題が持つ(置き換えではなく、前提の書き直しのため #294 に含めない) |
確かめること
openbao.urlをhttp://127.0.0.1:8200にしたとき、devbase upがコンテナへ渡すBAO_ADDR(lib/devbase/commands/container.py:921-932の_bao_environment)がコンテナの中から届くか。_bao_environmentはopenbao.urlをそのままBAO_ADDRに入れ、loopback の宛先を書き換えないため、コンテナの中の127.0.0.1はコンテナ自身を指す。届かないなら、個人の手元のサーバの形では、コンテナの中のbaoが使えない- 個人の 1 人の利用で、
version: 2(グループ別の置き場)とgroup_aliasesが要るか。要らないなら、個人の形の既定をどうするか。アカウントグループの宣言は必須で、defaultは予約語として弾かれる(アカウントグループの default を廃止し、全プロジェクトでグループの宣言を必須にする #315)。backend を問わず各プロジェクトのenvにDEVBASE_ACCOUNT_GROUPが要るため、個人の形で宣言するグループ名(例:personal)を合わせて決める - AppRole のほかに、個人の形で token による認証を足す価値があるか(足すなら、token の保存先と期限切れの扱い)
- 雛形のポリシーで、今の受け入れ条件(他人のパスは 403、チーム共通への書き込みは権限のある人だけ)が満たされるか。実機の OpenBao(2.6 系)で確かめる
決めること
- devbasex が共通の OpenBao サーバを 1 台運用する案は採らない(2026-09-26 に決定)。 利用者が個人またはチームで自分のサーバを立てる形(セルフホスト)を前提にする。試用のための共通サーバも、この課題では作らない。理由は次の 4 つ
- 全利用者の機密が 1 か所に集まり、侵害されたときの被害が全利用者に及ぶ。その責任を OSS の運営が負う
- 利用者と端末の資格情報の発行・失効、濫用への対応、可用性、費用が続く。ツールの開発ではなくサービスの運営になる
- 機密を自前で持ちたいから OpenBao を選ぶ利用者が多い。手順と雛形があれば、同じ構成を誰でも再現できる
- 多数の他人で 1 台を共有すると、ポリシーの誤りがそのまま他人の機密の漏れになる
- ポリシーの雛形とサーバを試す構成をどこに置くか(
docs/か、配布物に含めるか) - 個人・チーム・既存のサーバの 3 つの形を、1 つの文書にまとめるか分けるか
devbase env backend use openbaoに、個人の形の初期設定を助ける機能(例: ポリシーの雛形を書き出す副命令)を足すか、文書だけにするか
完了条件
- 管理者のいない個人が、公開の文書と雛形だけで OpenBao サーバを立て、
devbase env backend use openbaoで接続し、env set/env get/devbase upの機密の読み込みまで通せる - チームで 1 台立てたとき、本人以外の個人の置き場が 403 になり、チーム共通への書き込みが権限のある人だけに限られることを、雛形のポリシーで確かめてある
- 利用者向けの文書と確定仕様が、特定の組織のサーバや運用の決まりを前提にしていない
関連
- feat: devbase list の TUI で env を編集できるようにし、グループ・個人の区別と OpenBao の設定もそこで扱う #273(閉じた)—
devbase listの TUI の「OpenBao の接続設定」(lib/devbase/tui/actions_env_openbao.py)が入った。この画面は token を入力させず保存もしない。個人の形で token の認証を足すなら、この画面と揃える - 作成者の所属組織・顧客・個人に固有の名前が文書・コード・テストに残っていて、OSS として読む人に意味が通らない #294(閉じた)— 固有の情報の除去。組織のグループ名の置き換えは 作成者の所属組織・顧客・個人に固有の名前が文書・コード・テストに残っていて、OSS として読む人に意味が通らない #294、サーバの前提の書き直しはこの課題
- アカウントグループの default を廃止し、全プロジェクトでグループの宣言を必須にする #315(閉じた)— 前提 10 の
team/personal/…のポリシーを、公開の雛形としてこの課題が示す。アカウントグループの default を廃止し、全プロジェクトでグループの宣言を必須にする #315 の完了はこの課題を待たない
由来
利用者からの依頼(2026-09-26)。「OSS として多くの人が利用する場合は、利用者が個人・チームでそれぞれのサーバを立てる前提での運用が必要」。
依頼(原文)
OSS として多くの人が利用する場合は、利用者が個人・チームでそれぞれのサーバを立てる前提での運用が必要
(書き手: 利用者、日付: 2026-09-26。本文の「由来」の節が引いた依頼の文)
devbasex は共通の OpenBao サーバを運用しない。利用者が個人またはチームで自分のサーバを立てる形(セルフホスト)を前提にする
試用のための共通サーバも、この課題では作らない。要るなら別の課題で扱う
(書き手: 起票者が利用者の決定を記録したコメント、日付: 2026-09-26。決定の記録として、利用者が決めた条件に扱う)
個人の形も
version: 2(グループ別の置き場)にそろえ、宣言するアカウントグループの名前はpersonalにする。形が 1 つで済み、後からチームの形へ移りやすい
認証は AppRole だけにする。token による認証は足さない(保存先と期限切れの扱いを持ち込まない)
(書き手: 起票者が利用者の決定を記録したコメント「決定(2026-10-11 利用者)」、日付: 2026-10-11。同上)
上の 3 つのほかの本文(何をしたいか・今どうなっているか・提案・確かめること・決めること・完了条件)は起票者が書いた。
利用者の指示の原文としては扱わず、原文に無い条件は次の「起票者の推定」に写す。
起票者の推定
題・本文のうち、利用者の指示の原文に無く起票者が推して足した条件。承認ゲート 1 で利用者が確かめるまで、利用者の決定として扱わない。
| # | 条件 | 推した出所 | この要求での扱い |
|---|---|---|---|
| S1 | 利用の形を「個人」「チーム」「既存のサーバ」の 3 つに分けて文書で示す | 本文「提案」の「利用の形」 | 受け入れ条件 1 |
| S2 | サーバの用意(KV v2 のマウント・AppRole の有効化・ロールと端末ごとの secret_id・entity と alias)を bao のコマンドで順に示す |
本文「提案」の「サーバの用意の手順」 | 受け入れ条件 2・3 |
| S3 | ポリシーの雛形を HCL のファイルとしてリポジトリに置き、version: 1 と version: 2 の両方を用意する |
本文「提案」の「ポリシーの雛形」 | 受け入れ条件 4・5。置き場は未決 1 |
| S4 | 個人が数分で試せる構成(bao server -dev か docker compose の 1 ファイル)と、片付けの手順を示す |
本文「提案」の「最小の試し方」 | 受け入れ条件 6・7 |
| S5 | 利用者の識別子を「社内メールアドレスの @ より前」でなく「サーバの entity 名と同じ識別子」と説明する |
本文「提案」の「利用者の識別子」 | 受け入れ条件 10 |
| S6 | 確定仕様から非公開のリポジトリ(運用側のリポジトリ)への参照を外し、devbase がサーバに求める条件を仕様に書く | 本文「提案」の「前提の書き直し」 | 受け入れ条件 11・12 |
| S7 | 管理者のいない個人が、公開の文書と雛形だけで env set / env get / devbase up の機密の読み込みまで通せる |
本文「完了条件」1 | 受け入れ条件 13 |
| S8 | チームで 1 台立てたとき、他人の個人の置き場が 403、チーム共通への書き込みが権限のある人だけになることを雛形で確かめる(実機の OpenBao 2.6 系) | 本文「完了条件」2・「確かめること」4 | 受け入れ条件 14 |
| S9 | 利用者向けの文書と確定仕様が、特定の組織のサーバや運用の決まりを前提にしない | 本文「完了条件」3 | 受け入れ条件 9・11 |
| S10 | openbao.url が loopback のとき、コンテナの中の bao が同じ URL で届くかを確かめる |
本文「確かめること」1 | 受け入れ条件 8。届かせる手段は未決 4 |
| S11 | devbase env backend use openbao に、個人の形の初期設定を助ける機能(雛形を書き出す副命令など)を足すかを決める |
本文「決めること」4 | 未決 3 |
目的
- 組織の管理者がいない個人や小さなチームが、公開されている文書と雛形だけで自分の OpenBao サーバを立て、
devbase の OpenBao backend で機密を扱えるようにする - 利用者向けの文書と確定仕様から、特定の組織が運用するサーバと運用の決まりを前提にした記述を無くす
前提
- 前提 1: devbasex は共通の OpenBao サーバを運用せず、試用のための共通サーバも作らない(2026-09-26 の決定)
- 前提 2: 認証は今の AppRole(利用者ごとの
role_id・端末ごとのsecret_id)だけで、token による認証は足さない(2026-10-11 の決定) - 前提 3: 個人の形も
version: 2(openbao.layout: group)を使い、プロジェクトが宣言するアカウントグループはpersonalとする(2026-10-11 の決定)。個人の形でgroup_aliasesは使わない - 前提 4: 対象の OpenBao は base イメージの
baoと同じ 2.6 系(containers/base/DockerfileのARG BAO_VERSION=2.6.2)とする。ほかの版での動作は確かめない - 前提 5: devbase がサーバへ送る要求(4 経路のパス・KV v2 の API・AppRole のログイン)は変えない。サーバの側の雛形と文書を、今の devbase の要求に合わせる
- 前提 6:
bao server -devは機密を記憶にだけ置き、止めると消える。試用の構成は本物の機密を置く場所としては案内しない - 前提 7: 実機の確認は、利用者の実際の環境の
devbase up(P3)を使わず、作業用のプロジェクトと試用のサーバで行う。利用者の環境での確かめはリリース後テストで利用者が行う
対象範囲
含む:
- 利用者向けの文書(
docs/user/env-backend.mdと、要れば新しい文書)の、サーバの用意から接続までの手順 - OpenBao のポリシーの雛形(HCL)と、試用の構成(起動の手順か compose のファイル)をリポジトリに置くこと
- 確定仕様(
docs/specifications/secret-backend.md)の、サーバの前提の書き直し(393・922・926-929・1418-1420・1652 行の付近) - コンテナの中の
baoが、個人の形の構成で使えるかの確認と、その結果に合わせた文書(届かせるためにコードを変えるかは未決 4) - 用語集への語の追加
含まない:
- devbasex が運用する共通の OpenBao サーバ、試用のための共通サーバ(前提 1)
- token による認証(前提 2)
- サーバの冗長化・バックアップ・監査ログ・TLS の証明書の発行など、サーバの本番の運用の手順(公式の文書へのリンクにとどめる)
- 組織のグループ名などの固有の語の置き換え(作成者の所属組織・顧客・個人に固有の名前が文書・コード・テストに残っていて、OSS として読む人に意味が通らない #294 で済んでいる)
- base イメージの
baoの版の変更(P1) - devbase がサーバへ送る要求の変更(前提 5)
ドメインイベント
| # | イベント | 引き金 | 失敗したとき | 順序の前提 |
|---|---|---|---|---|
| E1 | 利用者が利用の形(個人・チーム・既存のサーバ)を選んだ | 利用者が文書を開いた | 形を選べない → 文書の冒頭で形の違いを示す(受け入れ条件 1) | — |
| E2 | 利用者が OpenBao サーバを起動した | 利用者が試用の構成か自分のサーバで起動の手順を打った | ポートが使われている・起動しない → 文書に確かめ方(bao status)を書く(受け入れ条件 6) |
E1 |
| E3 | 管理する人が KV v2 を既定の devbase にマウントした |
手順のコマンド | 既にマウントがある → 手順に既存のマウントの扱いを書く | E2 |
| E4 | 管理する人が AppRole を有効にし、雛形のポリシーを書き込んだ | 手順のコマンド | HCL の誤り → bao policy write が拒む。雛形は 2.6 系で書き込めることを確かめておく(受け入れ条件 4) |
E3 |
| E5 | 管理する人が利用者の entity・alias・ロールを作った | 利用者を足すとき | entity 名と devbase の user が食い違う → 個人の置き場が 403。文書に揃える旨を書く(受け入れ条件 10) |
E4 |
| E6 | 管理する人が端末の secret_id を発行した |
端末を足すとき | — | E5 |
| E7 | 利用者が devbase env backend use openbao で接続した |
利用者のコマンド | URL の検査で止まる・ログインが失敗する → devbase env backend test で切り分ける |
E6 |
| E8 | 利用者がプロジェクトで DEVBASE_ACCOUNT_GROUP=personal を宣言した |
利用者が projects/<name>/env を書いた |
宣言が無い → 機密のコマンドと up が止まる(今の振る舞い) |
— |
| E9 | 利用者が env set / env get で機密を読み書きした |
利用者のコマンド | 他人の個人の置き場・権限の無いチーム共通への書き込み → 403(受け入れ条件 14) | E7・E8 |
| E10 | devbase up がコンテナへ機密を入れた |
利用者の devbase up |
サーバに届かない → 今の振る舞い(キャッシュへ落ちるか止まる) | E9 |
| E11 | コンテナの中の bao がサーバへ届いた(または届かなかった) |
利用者がコンテナの中で bao を打った |
loopback の URL が届かない → 未決 4 と受け入れ条件 8 | E10 |
| E12 | 管理する人が端末の secret_id を失効させた |
端末を手放したとき | — | E6 |
| E13 | 利用者が試用の構成を片付けた | 試し終えたとき | devbase の設定がサーバを指したまま残る → 機密のコマンドが不達で止まる。片付けに backend を戻す手順を含める(受け入れ条件 7) | E7 |
用語
| 用語 | 意味 |
|---|---|
| 利用の形 | OpenBao サーバの持ち方の 3 つの区分。個人の形(1 人で 1 台)・チームの形(チームで 1 台、チーム共通と個人の置き場を分ける)・既存のサーバの形(組織が運用するサーバへ接続する) |
| ポリシーの雛形 | devbase が前提にする権限を OpenBao のポリシー(HCL)として書いた、リポジトリに置くファイル。利用者が自分のサーバへ書き込んで使う |
| 試用の構成 | 個人が手元で OpenBao を立てて devbase の接続を試すための、起動から片付けまでの最小の構成 |
受け入れ条件
文書と雛形:
- 1. 利用者向けの文書が、利用の形の 3 つ(個人・チーム・既存のサーバ)を見出しで分け、それぞれで利用者が何を用意するかを示している
- 2. 個人の形とチームの形の文書が、KV v2 のマウント(既定
devbase)・AppRole の有効化・ポリシーの書き込み・entity と alias の作成・利用者ごとのロールの作成・端末ごとのsecret_idの発行を、baoのコマンドで順に示している - 3. チームの形の文書が、利用者と端末を足す手順と、端末 1 台の
secret_idを失効させる手順をbaoのコマンドで示している - 4. ポリシーの雛形がリポジトリに HCL のファイルとして置かれ、
version: 1とversion: 2の両方がある。どの雛形も OpenBao 2.6 系のbao policy writeで拒まれない - 5.
version: 2の雛形は、グループの名前を書き換えるだけでteam/<group>/…の置き場に使える(例としてpersonalを示す)。雛形の中に特定の組織の名前が無い - 6. 試用の構成が、個人が手元の 1 台で OpenBao を起動し、受け入れ条件 2 の手順を打ち、
devbase env backend use openbaoで接続するまでを示している。起動を確かめるコマンドと、止めると機密が消えること(前提 6)を書いている - 7. 試用の構成の文書が片付けの手順を持ち、サーバを止めることと、devbase の backend を元へ戻すこと(
secrets/backend.ymlとsecrets/bootstrap.env.ageの扱い)を含んでいる。手順の後にdevbase env backend statusが OpenBao を指していない - 8. 個人の形の文書が、コンテナの中の
baoを使えるかと、使うときのopenbao.urlの書き方を明記している。使えると書いた構成では、dev コンテナの中のbao kv getが本人の個人共通の置き場を読める - 9.
docs/user/env-backend.mdから「サーバの構築と運用は devbase の範囲外です。管理者から次の値を受け取ってください」の前提が消え、既存のサーバの形でだけ「管理者から受け取る」と書かれている - 10. 利用者向けの文書と確定仕様が、利用者の識別子(設定の
user)を「サーバの entity 名と同じ識別子」と説明し、「社内メールアドレス」の語がdocs/user/とdocs/specifications/secret-backend.mdに無い - 11.
docs/specifications/secret-backend.mdに「運用側のリポジトリ」の語が無く、関連リンクから運用側のリポジトリへの参照が消えている - 12.
docs/specifications/secret-backend.mdが、devbase がサーバに求める条件(KV v2 のマウント・4 経路のパス・AppRole のログイン・本人のパスの読み書き・チームのパスの読み取り・チーム共通への書き込みは権限のある人だけ・他人のパスとusers/直下の一覧の拒否・version: 2のグループ単位の権限)を書き、ポリシーの雛形の置き場を示している
実機(OpenBao 2.6 系):
- 13. 前提: 管理者のいない端末。操作: 公開の文書と雛形だけを見て、試用の構成でサーバを立て、
devbase env backend use openbaoで接続し、DEVBASE_ACCOUNT_GROUP=personalを宣言した作業用のプロジェクトでenv set→env get→devbase upを打つ。結果:env getが書いた値を返し、upしたコンテナの環境変数にその値がある - 14. 前提:
version: 2の雛形を書き込んだサーバに、利用者 2 人(member01・member02)がいて、チーム共通への書き込みはmember01にだけ許している。結果:member02の資格でusers/member01/…の読み取りが 403、member02のチーム共通への書き込みが 403、member01のチーム共通への書き込みと両者のチーム共通の読み取りが通る。version: 1の雛形でも、他人の個人の置き場の 403 とチーム共通への書き込みの制限が同じく効く - 15. 前提: 受け入れ条件 14 のサーバ。操作:
member02の端末のsecret_idを失効させる。結果: その端末のdevbase env backend testがログインの失敗で止まり、member02の別の端末のsecret_idではログインが通る
退行しないこと:
- 16. 既存のサーバの形の利用者は、
secrets/backend.ymlとsecrets/bootstrap.env.ageを変えずに、これまでと同じコマンドで機密を読み書きできる(env-backend.mdの接続の手順のコマンドと引数が変わらない) - 17.
env -u DEVBASE_ROOT uv run --locked pytest tests/ -qが通る - 18.
python3 .github/scripts/proper_term_check.pyが「語の一覧が無いため飛ばした」と出さずに通る(固有の語の一覧のある端末で打つ)
非機能の条件
| 大項目 | 条件 |
|---|---|
| セキュリティ | ポリシーの雛形は、受け入れ条件 12 に並べた権限のほかを許さない(本人以外の個人の置き場・sys/ の管理の経路を利用者のポリシーに含めない)。文書の例に実の token・secret_id・root token の値を書かない。devbase の接続に root token を使う手順を示さない。secret_id をコマンド引数で渡す手順を示さない(今の --secret-id-stdin を使う) |
| 運用・保守性 | 雛形と試用の構成は OpenBao の版を 1 か所に書き、base イメージの BAO_VERSION と同じ 2.6 系に揃える |
| システム環境 | 試用の構成は macOS の Docker Desktop と Linux の Docker の両方で動く手順を示す。片方でしか確かめていなければ、文書に確かめた環境を書く |
影響
| 対象 | 影響 |
|---|---|
| 公開インタフェース | 変わらない。初期設定を助ける副命令を足すかは未決 3 で、足すなら追加だけで既存のコマンドは変えない |
| データ | 変わらない。secrets/backend.yml の形とサーバ上のパスは変えない |
| 既存の振る舞い | 文書と確定仕様の記述が変わる。コンテナの BAO_ADDR の扱いを変える場合(未決 4)は、loopback の openbao.url を使う利用者のコンテナの中の bao の宛先だけが変わる |
検証手段
| 項目 | 手段 |
|---|---|
| テスト | env -u DEVBASE_ROOT uv run --locked pytest tests/ -q |
| 静的解析 | uvx ruff check --select=E9,F63,F7,F82 lib、python3 .github/scripts/proper_term_check.py |
| 文書の語 | grep -rn '社内メールアドレス|運用側のリポジトリ' docs/user docs/specifications/secret-backend.md が 0 件(受け入れ条件 10・11) |
| 手動確認(マージ前) | 受け入れ条件 4・14・15: 作業用の端末で OpenBao 2.6 系を試用の構成で立て、雛形を書き込み、2 人の利用者の資格で読み書きと失効を打つ。コマンドと結果を PR の本文かコメントに残す |
| 手動確認(マージ前) | 受け入れ条件 8・13: 作業用のプロジェクト(実の利用者の環境ではない)で接続から devbase up とコンテナの中の bao kv get までを打ち、結果を残す。非対話のセッションで base を建てられないときは「判断が要る」で返す |
| 手動確認 | リリース後テストで、利用者が自分の端末で個人の形の文書を最初から辿り、受け入れ条件 13 と同じ結果になるかを見る |
前提とする取り決め
| 項目 | 参照先 / 決めたこと |
|---|---|
| プロジェクト構造 | AGENTS.md の「このリポジトリ」。利用者向けの文書は docs/user/、確定仕様は docs/specifications/。雛形の置き場は未決 1 |
| コーディング規約 | AGENTS.md の「書き方」。文書は日本語、用語は用語集の語。実機の記録は member01 などの中立の名前で書く |
| テスト戦略 | 文書と雛形は手動確認(マージ前)で実機の OpenBao に当てる。コードを変える場合(未決 3・4)は pytest で入出力を固める。今の偽の OpenBao(http.server)のテストは変えない |
境界
| 区分 | 内容 |
|---|---|
| 常に行う | 全体のテストと lint と固有の語の検査、CHANGELOG.md の [Unreleased] の記入(利用者向けの文書が変わるため)、用語集の更新と render |
| 確認してから行う | 新しい副命令などの公開インタフェースの追加(未決 3)、BAO_ADDR の書き換えなどコードの振る舞いの変更(未決 4)。どちらも承認ゲートで人が見る |
| 行わない | base イメージの bao の版の変更(P1)、実の利用者の環境での devbase up(P3)、共通サーバの用意、token の認証の追加、devbase がサーバへ送る要求の変更 |
未決
| # | 項目 | 誰が決めるか | 期限 |
|---|---|---|---|
| 1 | ポリシーの雛形と試用の構成の置き場(docs/ の下か、etc/ など配布物の中か) |
設計 | 設計 PR |
| 2 | 利用の形の 3 つを 1 つの文書にまとめるか、形ごとに分けるか | 設計 | 設計 PR |
| 3 | devbase env backend use openbao に、雛形を書き出すなど個人の形の初期設定を助ける機能を足すか、文書だけにするか |
設計 | 設計 PR |
| 4 | openbao.url が loopback のとき、コンテナの中の bao を届かせる手段(BAO_ADDR の宛先を host.docker.internal などへ書き換えるか、文書で別の URL を案内するか、コンテナの中の bao は使えないと書くか)。サーバが loopback だけで待つ場合の Linux の Docker の扱いを含む |
設計(実機の確認の結果で決める) | 設計 PR |
| 5 | 試用の構成を bao server -dev にするか、docker compose の 1 ファイルにするか |
設計 | 設計 PR |
進行
モード: —
- 要求と受け入れ条件 — 2026-10-12 22:27
- 作業場所の用意 — 2026-10-12 22:54
- 設計 — 2026-10-12 22:31
- 素材の収集と出典の確定
- ドキュメント再構成
- ドキュメントレビュー
- 計画 — 2026-10-12 22:53
- 実装 — 2026-10-12 23:16
- 構造改善 — 2026-10-12 23:51
- 実装レビュー — 2026-10-13 00:09
- 完了判定 — 2026-10-12 23:32
- Pull Request — 2026-10-12 23:35
- 確定仕様化 — 2026-10-13 00:50
- 後片付け — 2026-10-13 01:00
- 配布 — 2026-10-13 01:00
- 体裁レビュー
- リリース後テスト — 2026-10-13 01:03
- 振り返り — 2026-10-13 01:03
- 棚卸し — 2026-10-13 01:20
振り返り: #472 (comment)
Activity
takemi-ohama commentedon Sep 26, 2026
決定(2026-09-26)
「決めること」の 1 つ目は提案どおり決まった。
残りの「決めること」(雛形の置き場所、文書を 1 本にするか分けるか、初期設定を助ける機能を足すか)は、設計の中で決める。
takemi-ohama commentedon Oct 11, 2026
決定(2026-10-11 利用者)
「確かめること」のうち 2 つが決まった。
version: 2(グループ別の置き場)にそろえ、宣言するアカウントグループの名前はpersonalにする。 形が 1 つで済み、後からチームの形へ移りやすい残り(loopback の
openbao.urlがコンテナの中から届くか、雛形のポリシーで受け入れ条件が満たされるかの実機の確認、雛形の置き場所、文書の分け方)は設計の中で決める。これで判断待ちは解けた。Merge pull request #468 from devbasex/design/issue-295
Merge pull request #470 from devbasex/feat/issue-295-m8b
Merge pull request #474 from devbasex/docs/m8b-spec