⚙️ Vault運用
SCALE_Base連携仕様
最終更新 2026年04月27日 / 90_Meta/SCALE_Base連携仕様.md
SCALE Base → Obsidian Inbox 自動連携仕様
SCALE Base(独自業務システム)の全情報を、毎朝8:30に自動でObsidian Vaultに取り込む。
SCALE Base本体: https://scale-base.pages.dev/home/
コードベース: /Users/oogushiyuuki/Library/CloudStorage/.../マイドライブ/AI/scale-base/
30秒で全体像
| 観点 | 一言 |
|---|---|
| 核心 | 毎朝8:30、scale-baseのAPIを叩いて全業務データをInboxへ取り込む |
| キーワード | obsidian-export / D1 + KV / Bearer Token / launchd |
| 使う人 | 大串(運用管理) / 開発担当 |
| 読了目安 | 5-7分 |
現在のステータス(2026-04-27時点)
| 項目 | 状態 |
|---|---|
| 仕様書作成 | 完了 |
| ローカルスクリプト | ~/Obsidian/scripts/scale_base_to_inbox.sh 作成済み |
| launchd 登録 | com.scale.scalebase-inbox.plist 登録済み(毎朝8:30) |
| scale-base API実装 | functions/api/obsidian-export.ts 実装済み(2026-04-27) |
| Cloudflare 環境変数 | OBSIDIAN_EXPORT_SECRET 設定が必要 |
| ローカルシークレット | ~/.scale_base_export_token 作成が必要 |
| scale-base デプロイ | デプロイが必要 |
全体像
graph TB
subgraph SCALE_Base[scale-base on Cloudflare Pages]
D1[(D1 Database)]
KV[(KV: scale-task-cron)]
API[/api/obsidian-export]
end
SCRIPT[~/Obsidian/scripts/scale_base_to_inbox.sh]
INBOX[00_Inbox/]
CLAUDE[Claude Inbox整理]
VAULT[各部署フォルダ]
D1 --> API
KV --> API
API -->|Bearer Token| SCRIPT
SCRIPT -->|Markdown化| INBOX
INBOX -->|10/15/20時自動整理| CLAUDE
CLAUDE --> VAULT
style API fill:#fff3e0
style SCRIPT fill:#e3f2fd
style INBOX fill:#fce4ec
API 仕様(実装済み)
エンドポイント
GET https://scale-base.pages.dev/api/obsidian-export?since=2026-04-26T00:00:00Z
Authorization: Bearer <OBSIDIAN_EXPORT_SECRET>
レスポンス
{
version: "1.0",
generated_at: "2026-04-27T08:30:00Z",
since: "2026-04-26T08:30:00Z",
data: {
crm: {
new_leads: [...], // stage='lead' の updated_at >= since
deals_updated: [...], // stage in (opportunity/negotiation/won) の updated
recent_touches: [...], // crm_touches 直近50件
won_count: number,
lost_count: number,
},
calendar: {
today: [...], // calendar_entries の today
tomorrow: [...], // 翌日
past_24h: [...], // 過去24h
},
goals: [...], // status='active' の goals
insights: [...], // insight_results 直近30件
tasks_kv_snapshot: {...}, // scale-task-cron Worker から取得
}
}
認証
- 環境変数
OBSIDIAN_EXPORT_SECRETをCloudflare Pagesに設定 - リクエストヘッダー
Authorization: Bearer <secret>で照合 - Token不一致 → 401返却
完成までの残作業(3ステップ)
Step 1: シークレット生成
# 32バイトのランダム文字列
SECRET=$(openssl rand -hex 32)
echo "$SECRET" > ~/.scale_base_export_token
●●●●●● 600 ~/.scale_base_export_token
●●●●●● "Generated: $SECRET"
Step 2: Cloudflare Pages 環境変数設定
# scale-base ディレクトリで実行
cd ~/Library/CloudStorage/GoogleDrive-y-ogushi@scale-group.co.jp/マイドライブ/AI/scale-base
npx wrangler pages secret put OBSIDIAN_EXPORT_SECRET ●●●●●●=scale-base
# プロンプトに $SECRET を貼り付け
または Cloudflare ダッシュボードから:
- https://dash.cloudflare.com → Pages → scale-base → Settings → Environment variables
- 「Production」タブで OBSIDIAN_EXPORT_SECRET を追加
Step 3: scale-base デプロイ
cd ~/Library/CloudStorage/GoogleDrive-y-ogushi@scale-group.co.jp/マイドライブ/AI/scale-base
bash scripts/deploy.sh
動作確認
手動テスト
# シークレット読み込み
TOKEN=$(cat ~/.scale_base_export_token)
# API直叩き
curl -s -H "Authorization: Bearer $TOKEN" \
"https://scale-base.pages.dev/api/obsidian-export?since=$(date -u -v-1d '+%Y-%m-%dT%H:%M:%SZ')" \
| jq .
# launchdスクリプト直接実行
~/Obsidian/scripts/scale_base_to_inbox.sh
# ログ確認
tail ~/Obsidian/logs/scale_base_inbox.log
# Inbox確認
ls ~/Obsidian/SCALE-Brain/00_Inbox/
launchd 状態確認
launchctl list | grep scalebase
# → 1234 0 com.scale.scalebase-inbox 等の表示が出ればOK
期待される運用イメージ
朝 8:00 Slack writing_hand 取り込み(既存)
朝 8:30 SCALE Base 全情報取り込み(NEW)← この仕組み
朝 10:00 Claude が Inbox 整理 → 部署フォルダへ振り分け
朝 10:30 Dashboard を見ると、昨日の業務全体が部署別に整理されている
なぜこの設計?
| 設計判断 | 理由 |
|---|---|
| 取得側と提供側を疎結合 | API経由なら片方が変わってももう片方は影響受けない |
| Bearer Token 認証 | 第三者がアクセスできない |
| 増分取得(since) | 前回以降の差分だけ取る |
| Inbox→Claude整理→部署配置 | 既存の整理パイプラインに乗せて新仕組みを足さない |