diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..fc6baa1 --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,94 @@ +# Windmill Workflow プロジェクト + +白皇集落営農組合 統合システム向けの Windmill ワークフロー管理リポジトリ。 + +## 環境 + +| 項目 | 値 | +|------|-----| +| Windmillサーバー | https://windmill.keinafarm.net | +| ワークスペース | `admins` | +| APIトークン | `wm-api.sh` に設定済み | +| Gitリモート | https://gitea.keinafarm.net/akira/windmill_workflow.git | + +## 重要な制約 + +- **`wmill` CLIは使用不可**(CE版のグローバルAPI認証制限)→ `wm-api.sh` または curl で直接REST APIを叩く +- **フローの PUT更新は 405**(Windmill CE版の制限)→ DELETE してから POST で再作成する +- **`wmill.get_state()` はインラインフロースクリプトで永続化されない**→ 状態管理は必ず `wmill.get_variable()` / `set_variable()` を使う +- **`python3` コマンドは Windows環境で失敗する**→ curl の出力は grep等で直接処理する + +## ディレクトリ構成 + +``` +windmill_workflow/ +├── flows/ # フロー定義JSON +│ ├── system_heartbeat.flow.json # Windmill自己診断フロー +│ └── shiraou_notification.flow.json # 白皇集落 変更通知フロー +├── docs/ +│ └── shiraou/ # 白皇集落営農組合関連ドキュメント +│ ├── 19_windmill_通知ワークフロー連携仕様.md # API仕様書 +│ └── 20_マスタードキュメント_Windmill通知ワークフロー編.md # マスタードキュメント +├── .agent/workflows/ # エージェント作業手順 +│ ├── windmill-push.md # サーバーへのpush手順 +│ ├── windmill-pull.md # サーバーからのpull手順 +│ └── windmill-new-script.md # 新規スクリプト作成手順 +├── wm-api.sh # Windmill REST APIヘルパー +└── wmill.yaml # wmill設定(defaultTs: bun) +``` + +## 登録済みワークフロー + +| パス | 概要 | スケジュール | +|------|------|-------------| +| `f/app_custom/system_heartbeat` | Windmill自己診断 | なし(手動) | +| `f/shiraou/shiraou_notification` | 白皇集落営農 変更通知 | 5分毎(JST) | +| `u/antigravity/git_sync` | Git同期 | 30分毎 | + +## wm-api.sh コマンド一覧 + +```bash +./wm-api.sh version # サーバーバージョン確認 +./wm-api.sh flows # フロー一覧 +./wm-api.sh schedules # スケジュール一覧 +./wm-api.sh get-flow # フロー詳細取得 +./wm-api.sh create-flow # フロー作成 +./wm-api.sh create-schedule # スケジュール作成 +./wm-api.sh run-flow # フロー手動実行 +./wm-api.sh job-status # ジョブ状態確認 +``` + +## フローのデプロイ手順 + +```bash +# 1. flows/*.flow.json を編集 + +# 2. 削除して再作成(PUTは405のため) +curl -sk -X DELETE \ + -H "Authorization: Bearer qLJ3VPZ61kTDiIwaUPUu1dXszGrsN1Dh" \ + "https://windmill.keinafarm.net/api/w/admins/flows/delete/" + +curl -sk -X POST \ + -H "Authorization: Bearer qLJ3VPZ61kTDiIwaUPUu1dXszGrsN1Dh" \ + -H "Content-Type: application/json" \ + -d @flows/.flow.json \ + "https://windmill.keinafarm.net/api/w/admins/flows/create" + +# 3. コミット&プッシュ +git add flows/.flow.json +git commit -m "..." +git push origin main +``` + +## Windmill Variables + +| 変数パス | Secret | 説明 | +|---------|--------|------| +| `u/admin/NOTIFICATION_API_KEY` | ✅ | shiraou APIキー | +| `u/admin/LINE_CHANNEL_ACCESS_TOKEN` | ✅ | LINE Messaging APIトークン | +| `u/admin/LINE_TO` | ✅ | LINE通知先ID(ユーザーまたはグループ) | +| `u/admin/SHIRAOU_LAST_CHECKED_AT` | ❌ | 前回確認時刻(ワークフローが自動更新) | + +## マスタードキュメント + +- [白皇集落 Windmill通知ワークフロー](docs/shiraou/20_マスタードキュメント_Windmill通知ワークフロー編.md)