Files
windmill_workflow/CLAUDE.md
Akira 2d00dd6beb docs: CLAUDE.md追加
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-21 16:15:10 +09:00

95 lines
4.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 <path> # フロー詳細取得
./wm-api.sh create-flow <json-file> # フロー作成
./wm-api.sh create-schedule <json-file> # スケジュール作成
./wm-api.sh run-flow <path> # フロー手動実行
./wm-api.sh job-status <job-id> # ジョブ状態確認
```
## フローのデプロイ手順
```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/<path>"
curl -sk -X POST \
-H "Authorization: Bearer qLJ3VPZ61kTDiIwaUPUu1dXszGrsN1Dh" \
-H "Content-Type: application/json" \
-d @flows/<file>.flow.json \
"https://windmill.keinafarm.net/api/w/admins/flows/create"
# 3. コミット&プッシュ
git add flows/<file>.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)