ゼロから read/write アクセスグラフへ
このチュートリアルを終えると、Olivares AI がローカルで稼働し、その中心的な アーティファクトに到達します。すなわち、実際の Permitted-vs-Observed ドリフト 結果を伴う read/write アクセスグラフ です。あなたは 製品が動くのを見ることで 製品を学びます — これは学習用の経路であり、本番インストールではありません (それについてはセルフホスティングを参照)。
ここでは同梱の デモ estate(--seed-demo)を使います。これはエージェント、
アイデンティティ、リソースの小さな合成セットで、ライブの pgAudit や
OpenTelemetry collector とまったく同じように 実際の イベントバスを流れます。
すべては localhost 上で実行されます。
- Go 1.26+(バイナリをビルドするため)、または Docker(コンテナ経路については セルフホスティングの how-to を参照)。
- シェルから API と対話するための
curlとpython3。 - Olivares AI リポジトリのチェックアウト。
ビルドして起動する
Section titled “ビルドして起動する”-
単一のバイナリをビルドします。 リポジトリのルートから:
Terminal window task setup # install git hooks, commit tooling and web depstask build # compile the static binary with the web embedded (go:embed)./bin/olivares versiontask buildは web バンドル、ファーストパーティのコネクタプラグイン、そして バイナリをビルドし、./bin/olivaresに 1 つの自己完結型アーティファクトを 生成します。 -
デモ estate で起動します(ループバック上)。クリーンな状態で始めるために、 新しいデータディレクトリを選びます:
Terminal window DATA="$(mktemp -d)"./bin/olivares serve --insecure --seed-demo \--listen 127.0.0.1:8901 --grpc-listen 127.0.0.1:8902 \--data-dir "$DATA"--insecureフラグはループバック上で平文 HTTP を提供します(ローカルチュートリアル には問題ありません。それ以外ではデフォルトで TLS が有効です)。起動時に、デモ 認証情報を伴う DEMO MODE バナーが表示されます:demo@olivares.local / olivares-demo-estate
アクセスグラフに到達する
Section titled “アクセスグラフに到達する”サーバーを実行したままにして、2 つ目のターミナルを開きます。
-
デモ認証情報で ログイン して bearer トークンを取得します:
Terminal window BASE=http://127.0.0.1:8901TOKEN="$(curl -sf -X POST "$BASE/v1/auth/login" \-H 'Content-Type: application/json' \-d '{"email":"demo@olivares.local","password":"olivares-demo-estate"}' \| python3 -c 'import sys,json;print(json.load(sys.stdin)["token"])')" -
デモテナントを解決します(access-map エンドポイントはテナントスコープです):
Terminal window TENANT="$(curl -sf "$BASE/v1/system/orgs" -H "Authorization: Bearer $TOKEN" \| python3 -c 'import sys,json;[print(o["tenant_id"]) for o in json.load(sys.stdin)["items"] if o["slug"]=="demo"]')" -
read/write グラフを取得します。 これがモジュール III — access map です:
Terminal window curl -sf "$BASE/v1/m/accessmap/graph?limit=200" \-H "Authorization: Bearer $TOKEN" -H "X-Olivares-Tenant: $TENANT" | python3 -m json.toolデモ estate はおおよそ 20 ノードと 13 エッジ を返します — エージェント、 アイデンティティ、MCP サーバー、モデル、プロバイダー、リソースで、各エッジは read または read-write に分類されています。
-
Permitted-vs-Observed ドリフトを取得します:
Terminal window curl -sf "$BASE/v1/m/accessmap/drift" \-H "Authorization: Bearer $TOKEN" -H "X-Olivares-Tenant: $TENANT" | python3 -m json.toolこれは投入された 予期しないアクセス を表面化させます。たとえば:
- 一度も付与されていない
appdb.public.secretsを読み取っているエージェント(帰属あり)。そして appdb.public.logsに書き込んでいる共有プールのアイデンティティ(近似的な帰属)。
- 一度も付与されていない
-
(オプション) 投入されたインベントリ全体を見る:
Terminal window curl -sf "$BASE/v1/m/inventory/summary" \-H "Authorization: Bearer $TOKEN" -H "X-Olivares-Tenant: $TENANT" | python3 -m json.tool
web UI で見る
Section titled “web UI で見る”web UI は 同じバイナリに組み込まれて おり、同じオリジンから提供されます。デモ サーバーをまだ実行したまま、次を開きます:
http://127.0.0.1:8901デモ認証情報でログインし、access-map ビューを開きます。グラフは同じノードとエッジを レンダリングし、ドリフトオーバーレイが予期しないアクセスをハイライトし、 ダッシュボードが estate を要約します。
ここで起きていない こと(そして次にすべきこと)
Section titled “ここで起きていない こと(そして次にすべきこと)”- デモデータは合成であり、デモパスワードは公開されています — これは セキュアな デプロイではありません。実際のものについてはセルフホスティングに 従ってください: デフォルト認証情報がなく、ワンタイムセットアップトークンを使います。
- 上で使ったモジュールエンドポイント(
/v1/m/accessmap/*、/v1/m/inventory/*)は 到達可能ですが、設計上、提供される OpenAPI ドキュメントの 一部ではありません。 API リファレンスが core REST サーフェスを記載しています。 - グラフが なぜ このように構築されるのか(協調的テレメトリとネイティブなストア 監査の交差、バックストップとしての eBPF、信頼できないものとして扱われる MCP アノテーション)を理解するには、 アーキテクチャ概要を読んでください。