コンテンツにスキップ

ゼロから read/write アクセスグラフへ

このチュートリアルを終えると、Olivares AI がローカルで稼働し、その中心的な アーティファクトに到達します。すなわち、実際の Permitted-vs-Observed ドリフト 結果を伴う read/write アクセスグラフ です。あなたは 製品が動くのを見ることで 製品を学びます — これは学習用の経路であり、本番インストールではありません (それについてはセルフホスティングを参照)。

ここでは同梱の デモ estate--seed-demo)を使います。これはエージェント、 アイデンティティ、リソースの小さな合成セットで、ライブの pgAudit や OpenTelemetry collector とまったく同じように 実際の イベントバスを流れます。 すべては localhost 上で実行されます。

  • Go 1.26+(バイナリをビルドするため)、または Docker(コンテナ経路については セルフホスティングの how-to を参照)。
  • シェルから API と対話するための curlpython3
  • Olivares AI リポジトリのチェックアウト。
  1. 単一のバイナリをビルドします。 リポジトリのルートから:

    Terminal window
    task setup # install git hooks, commit tooling and web deps
    task build # compile the static binary with the web embedded (go:embed)
    ./bin/olivares version

    task build は web バンドル、ファーストパーティのコネクタプラグイン、そして バイナリをビルドし、./bin/olivares に 1 つの自己完結型アーティファクトを 生成します。

  2. デモ 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

サーバーを実行したままにして、2 つ目のターミナルを開きます。

  1. デモ認証情報で ログイン して bearer トークンを取得します:

    Terminal window
    BASE=http://127.0.0.1:8901
    TOKEN="$(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"])')"
  2. デモテナントを解決します(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"]')"
  3. 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 に分類されています。

  4. 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 に書き込んでいる共有プールのアイデンティティ(近似的な帰属)。
  5. (オプション) 投入されたインベントリ全体を見る:

    Terminal window
    curl -sf "$BASE/v1/m/inventory/summary" \
    -H "Authorization: Bearer $TOKEN" -H "X-Olivares-Tenant: $TENANT" | python3 -m json.tool

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 アノテーション)を理解するには、 アーキテクチャ概要を読んでください。