Repository navigation
#295 を実装する(スプリント m8b) - #470
Merged
Merged
Conversation
…nternal に置き換える (#295) openbao.url が http の loopback で docker の接続先がローカル扱いのときだけ、dev の インスタンスの BAO_ADDR のホストを host.docker.internal に置き換え、 host.docker.internal:host-gateway の行を足す。https・リモート扱い・network_mode: host の dev サービスは今のまま。ホストの devbase が使う URL と検査は変えない。 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
docs/user/openbao-server.md に個人・チーム・既存のサーバの 3 つの形と、マウント・AppRole・ ポリシー・entity と alias・ロール・端末の secret_id の発行と失効の手順を書く。 docs/user/openbao/ に version 1 / 2 のポリシーの雛形と、開発モードの試用の構成 (compose.yml) を置く。env-backend.md は管理者から受け取る前提を既存のサーバの形だけにし、 利用者の識別子をサーバの entity 名と同じ値と説明する。 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
非公開の運用のリポジトリへの参照と、利用者の識別子を組織の決まりで説明した記述を外す。 devbase がサーバに求める条件(マウント・パス・AppRole・本人とチームの権限・拒否・ version 2 のグループ単位)と雛形の置き場、loopback の接続先の置き換えを書く。目次に サーバの用意の文書を足す。 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
雛形がマウント devbase の data/ と metadata/ の下だけを書き、管理の経路を含まないこと、 個人の雛形が本人の entity に限ること、読み取りの雛形が読むだけであること、version 2 の 雛形が __GROUP__ の置き換えで 1 つのグループを指すこと、試用の構成の版が base の BAO_VERSION と同じ 2.6 系でポートが loopback だけであることを確かめる。 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… サービスを足す (#295) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
takemi-ohama
marked this pull request as ready for review
October 12, 2026 14:39
This was referenced Oct 12, 2026
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
手元で動かす OpenBao のサーバにも、コンテナの中の
baoから届くようにしました。接続先が loopback のときはhost.docker.internalに置き換えます。あわせて、サーバの用意の文書・ポリシーの雛形・試用の構成を加え、確定仕様からサーバの前提を外しました(#295)。利用者向けの変化
host.docker.internalに置き換わります。これでコンテナの中のbaoからサーバへ届きます。docs/user/openbao-server.mdにあります。devbase-userと、v1・v2 のteam-read/team-write)と試用の構成(docs/user/openbao/compose.yml)を使えます。BAO_ADDRを置き換えない場合は、network_mode: hostの dev サービスを足す手順をdocs/user/env-backend.mdで案内します。移行の手順
変更の要点
lib/devbase/commands/container.py: コンテナへ渡す OpenBao の接続先が loopback のとき、host.docker.internalに置き換えます。lib/devbase/volume/compose.py: コンテナからhost.docker.internalでホストへ届くための構成を加えました。docs/user/openbao-server.mdとdocs/user/openbao/: サーバの用意の文書、ポリシーの雛形、試用の構成を置きました。接続の文書は利用の形に揃えました。docs/user/env-backend.md: コンテナのBAO_ADDRを置き換えない場合の、network_mode: hostの dev サービスを書き足しました。テスト
tests/commands/test_container_bao.py: コンテナのbaoの接続先の置き換えtests/volume/test_compose_host_gateway.py: ホストへの経路の構成tests/docs/test_openbao_templates.py: ポリシーの雛形と試用の構成の形issues/issue-295-design.md)。設計に名前の出るテストは 0 件設計と違う点
httpの loopback のopenbao.urlはローカル扱いのときだけBAO_ADDRを置き換え、host-gatewayの行を足す)network_mode: hostのときは置き換えずextra_hostsも足さない(_apply_host_gateway)。決定 4 の本文はこの除外を書いていないnetwork_mode: hostの項で、生成の側で判定できるか確かめるとしていた。host のネットワークでは loopback がそのまま届き、extra_hostsも使えないため除外した。確定仕様(secret-backend.md)・CHANGELOG・env-backend.mdには書いてある設計と違えたところ
_bao_environmentがコンテナから見た接続先を決め、extra_hostsの行も返す_bao_environment()は今のままopenbao.urlを返し、置き換えは新しいcontainer_bao_address(url, remote=)と_host_gateway_kwargsが決める。置き換えた値はgenerate_scaled_compose(host_gateway_environment=…)で別に渡し、生成の側が dev のインスタンスへBAO_ADDRの上書きとhost-gatewayの行をまとめて当てるnetwork_mode: hostを生成の側で判定するため。network_mode: hostの dev サービスでは上書きも行も当てず、openbao.urlのまま残す(loopback がそのまま届き、extra_hostsも使えない)。_bao_environmentの形を変えないので、tests/commands/test_container_up_order.pyの差し替え(lambda: {})も触らずに済む--secret-id <値>・BAO_TOKEN=<値>・root token の値が無いことを pytest で見るproper_term_check.py)の持ち場のため手で確かめたこと(macOS の Docker Desktop・Docker 29.4.3 linux/arm64・OpenBao 2.6.2)
試用の構成(
docs/user/openbao/compose.yml)で立てたサーバに、文書の管理の手順を上から打った。受け入れ条件 4: 5 つの雛形がどれも
bao policy writeで通った(version: 2は__GROUP__をpersonalに置き換えて書き込んだ)受け入れ条件 14:
member01(personalの書き込みあり)・member02(読み取りだけ)の AppRole でログインして打ったmember01がusers/member01/personal/globalを書く・読むmember01が本人の未作成のパスを読むmember02がusers/member01/personal/globalを読むmember02がusers/直下を一覧するmember01/member02がteam/personal/globalへ書くmember01/member02がteam/personal/globalを読むmember02がteam/other/globalを読む・member01が書くversion: 1:member02がusers/member01/globalを読むversion: 1:member01/member02がteam/globalへ書くversion: 1:member01/member02がteam/globalを読むversion: 1:member02がteam/projects/webへ書くmember02がsys/policyを読むチームの節の、entity の
policiesの書き換えで書き込みを許す・外す手順: 許した後のチーム共通への書き込みが 200、外した後が 403(発行済みの token にもすぐ効いた)。ロールと entity の削除も通った受け入れ条件 13・8: この作業場所を
DEVBASE_ROOTにし(age の鍵は作業用の別の置き場)、DEVBASE_ACCOUNT_GROUP=personalを宣言した作業用のプロジェクトで、secret_idを発行のコマンドからdevbase env backend use openbao --url http://127.0.0.1:8200 --user member01 --role-id … --secret-id-stdinへパイプで渡して接続した。env backend testが 4 参照を読み、env set/env set --user→env getが書いた値を返し、devbase upのコンテナの環境変数に両方の値があった。生成した構成の dev-1 はBAO_ADDR=http://host.docker.internal:8200とextra_hosts: [host.docker.internal:host-gateway]を持ち、コンテナの中のbao kv get -mount=devbase users/member01/personal/globalが本人の値を読み、users/member02/…はpermission deniedだった受け入れ条件 15:
member02に端末 2 台分(m2-laptop・m2-desktop)のsecret_idを metadata 付きで発行し、文書の一覧の手順(accessor とsecret-id-accessor/lookup)でm2-laptopを選んでsecret-id-accessor/destroyした。m2-laptopの資格ではdevbase env backend testが「認証が拒まれました: HTTP 400」で終了コード 1、m2-desktopでは 0受け入れ条件 7: 文書の片付け(退避が無いとき)の手順を打ち、
devbase env backend statusがplaintext (設定なし)を指すことを確かめた受け入れ条件 17:
env -u DEVBASE_ROOT uv run --locked pytest tests/ -qが 4300 passed / 27 skipped。uvx ruff check --select=E9,F63,F7,F82 libも通ったgrep -rn '社内メールアドレス\|運用側のリポジトリ' docs/user docs/specifications/secret-backend.mdが 0 件残した事項
~/.config/devbase/proper-terms.txt)が無く、proper_term_check.pyは「語の一覧が無いため飛ばした」で終わった。一覧のある端末で打つ必要がある127.0.0.1にだけ公開したポートへhost-gatewayから届かない見込みで、文書と確定仕様に「確かめた環境は macOS の Docker Desktop」「Linux の Docker では確かめていない」と書いたdevbase upは作業用のプロジェクトで打ったが、グループpersonalのボリュームdevbase_home_personal・共有のdevbase_home_ubuntu・devbase_work_1はこの端末に既にあり、作業用のコンテナはそれらを付けて起動した。自動スナップショットが作業場所のbackups/に作ったフル(約 3 GB)は消し、作業用のプロジェクト・secrets/・VS Code Server のボリューム・試用のサーバも片付けたenv-backend.mdの接続の手順のコマンドと引数を変えていないことと、httpsの URL で生成した構成が今と同じこと(pytest)で見た。既存のサーバへの実際の接続は確かめていないモード: standard / 通した工程: 実装 → 完了判定 → Pull Request
🤖 Generated with Claude Code