docs: CLAUDE.md追加
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
94
CLAUDE.md
Normal file
94
CLAUDE.md
Normal file
@@ -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 <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)
|
||||
Reference in New Issue
Block a user