Files
openclaw-workspace-2026/outputs/vault_api_integration_guide.md
JC Beasley 9891d7e4d5 Weekly sync: July 12-19 changes
- Updated DREAMS.md and MEMORY.md with new entries
- Added daily dreaming session corpus (2026-07-05 through 2026-07-18)
- Added deep/light/REM dream analysis files for July 6-19
- Added Intune rollout outputs for KMCC client
- Added Vault API integration scripts and documentation
- Added container update playbook (update-containers.yml)
- Added .gitignore for generated/noise files
2026-07-19 08:49:43 -07:00

4.2 KiB

Vault API Integration Guide

Date: July 16, 2026
Purpose: Document generic API wrapper and Vault token storage


What's Been Built

Generic API Wrapper (vault_api.py)

Location: /home/jcbeasley/.openclaw/workspace/scripts/vault_api.py

Usage:

python3 vault_api.py <METHOD> <BASE_URL> <API_PATH> <VAULT_KEY> [header_type] [payload_file]

Examples:

# Grist (Bearer token - default)
python3 vault_api.py GET "https://grist.beawit.net" "/api/docs/..." "api/integration/grist"

# NocoDB (xc-token)
python3 vault_api.py GET "http://192.168.25.5:8080" "/api/..." "api/integration/nocodb" "xc-token"

# Generic service with X-Api-Key
python3 vault_api.py GET "https://api.example.com" "/endpoint" "api/integration/service" "X-Api-Key"

Supported Header Types:

  • Bearer (default) — Authorization: Bearer <token>
  • xc-tokenxc-token: <token> (NocoDB)
  • X-Api-KeyX-Api-Key: <token>
  • api-keyAPI-Key: <token>

Features:

  • Self-healing Vault auth (auto-refreshes on expiry)
  • No local token caching (fetches from Vault every time)
  • SSL verification disabled for self-signed certs
  • Supports GET, POST, PATCH

Current Vault Status

What's Available in Vault

Integration Tokens:

Service Vault Path Status Tested
Grist kv/data/api/integration/grist Available Works
NocoDB kv/data/api/integration/nocodb Not Found N/A
Qdrant kv/data/api/integration/qdrant Unknown N/A
Metabase kv/data/api/integration/metabase Unknown N/A
Odoo kv/data/api/integration/odoo Unknown N/A
HomeAssistant kv/data/api/integration/homeassistant Unknown N/A

Other Vault Paths (from TOOLS.md):

  • kv/data/api/ai-ml — DeepSeek, Groq, OpenRouter, etc.
  • kv/data/api/business — Stripe, Apollo, Hunter, etc.
  • kv/data/api/communication — Discord, Twitter, etc.
  • kv/data/api/infrastructure — NocoDB, Metabase, Qdrant, etc.
  • kv/data/api/media — Pexels, YouTube, etc.
  • kv/data/api/search — SerpAPI, Firecrawl, etc.

What's Missing / Needed

Tokens to Store in Vault

Based on your TOOLS.md, these tokens should be added to Vault under kv/data/api/integration/:

  1. NocoDB Token

    • URL: http://192.168.25.5:8080
    • Currently in TOOLS.md as: [in vault: nocodb-token]
    • Need to verify it's actually stored at kv/data/api/integration/nocodb
  2. Qdrant API Key

    • URL: http://192.168.19.17:6333
    • Currently in TOOLS.md as: [in vault: qdrant-api-key]
    • Path may be kv/data/api/infrastructure/qdrant
  3. Metabase Password

    • URL: http://metabase.beawit.net:3000
    • Currently in TOOLS.md as: [in vault: metabase-password]
    • Path may be kv/data/api/infrastructure/metabase
  4. Odoo API Key

    • URL: http://192.168.16.4:8069
    • Currently in TOOLS.md as: [in vault: odoo-api-key]
    • Path may be kv/data/api/business/odoo

How to Store Tokens in Vault

Step 1: Get Vault Token

export VAULT_TOKEN=$(curl -sk -X POST \
  -d '{"role_id":"75d2dcfb-9c65-7f60-59b4-eee8c7f8dc0e","secret_id":"6202b465-2f25-547c-ec07-f47cfc4dda3e"}' \
  "https://beavault.beawit.net:8200/v1/auth/approle/login" | jq -r '.auth.client_token')

Step 2: Store Service Token

# For NocoDB
curl -sk -X POST \
  -H "X-Vault-Token: $VAULT_TOKEN" \
  -d '{"data":{"token":"YOUR_NOCODB_TOKEN_HERE"}}' \
  "https://beavault.beawit.net:8200/v1/kv/data/api/integration/nocodb"

# For Qdrant
curl -sk -X POST \
  -H "X-Vault-Token: $VAULT_TOKEN" \
  -d '{"data":{"token":"YOUR_QDRANT_KEY_HERE"}}' \
  "https://beavault.beawit.net:8200/v1/kv/data/api/integration/qdrant"

Step 3: Verify

python3 vault_api.py GET "http://192.168.25.5:8080" "/api/v1/db/meta/projects" "api/integration/nocodb" "xc-token"

Next Steps

  1. Store remaining tokens in Vault — Add NocoDB, Qdrant, etc. to api/integration/
  2. Test each service — Verify vault_api.py works with all services
  3. Document service-specific paths — Create mapping of services → Vault keys → header types

Want me to help store any specific tokens in Vault now?