Windmillに新しいTriggerCrud型のトリガーを追加する際、バックエンドからCLI、画面、同期やキャプチャ機能まで必要な変更箇所を確認できる開発チェックリストです。
- 新しい外部サービスのトリガーを追加したいとき
- 実装箇所の抜け漏れを点検したいとき
- トリガー追加のPR前に検証したいとき
Windmillのワークスペース設定を読み取り、YAMLやJSONで確認・変更する手順を扱います。反映範囲やシークレットの保持、同期時の注意も確認できます。
MUST use when reading or changing workspace settings, or the settings.yaml file `wmill sync` keeps.
実行スコア 未検証
インストール方法を見るWindmillのワークスペース設定を読み取り、CLIや同期リポジトリを通じて変更する際の手順と注意点を扱います。wmill workspace get-settings で設定を取得し、wmill workspace apply-settings でYAMLまたはJSONの内容を反映できます。部分適用では記載したキーだけが変更されますが、指定したキーの値は丸ごと置き換わるため、入れ子の設定を更新するときは現在値を確認して必要な項目を含めます。ドライランでは変更前後を確認できます。wmill.yaml で設定同期を有効にすると、settings.yaml への取得やワークスペースへの反映も行えます。
設定の現在値を確認したいとき、複数の設定変更をファイルで管理したいとき、同期リポジトリから設定を反映したいときに向いています。管理者権限のある利用者が、変更範囲や反映結果を事前に確かめながら作業できます。
設定の読み取りと変更にはワークスペース管理者権限が必要です。設定変更は複数キーをまとめた単一トランザクションではありません。読み取り時にシークレットは伏せて表示されるため、変更時はそのプレースホルダーを保持します。Enterprise限定の設定は利用できない場合があります。
この紹介文は、公開されている SKILL.md をもとに AI(OpenAI Codex)が作成しました。正確な仕様は下の原文を確認してください。
インストールする前に、エージェントに与えられる指示の中身を確認できます。
Everything an admin sets on the Workspace settings page is one document: a mapping of top-level
keys, the same layout as the settings.yaml file wmill sync keeps. Only a workspace admin can
read or change it.
null clears that setting; an on/off switch cleared this way reads as false.before / after per key, without writing anything.name is never applied: rename a workspace on the settings page. color is applied only when
set to a value, so null does not clear it.slack_oauth_client_secret is the one secret. A read shows __SENSITIVE_AND_UNCHANGED__ in place
of a set secret; sending that placeholder back keeps the stored value. A value starting with
$encrypted: is decrypted with the workspace key, and one encrypted with another workspace's key
is left unchanged with a warning; any other value is taken as plaintext. Never
write a secret you were not given: keep the placeholder.
| Key | Value |
|---|---|
auto_invite | { enabled, mode: invite | add, operator, instance_groups?, instance_groups_roles? }. The instance groups are managed only when instance_groups is stated; clearing a group removes the members it added. |
error_handler / success_handler | { path, extra_args?, muted_on_cancel?, muted_on_user_path? }, path being script/<path> or flow/<path>. |
error_handler_fallback_to_instance_alerts | Report failures to the instance critical alert channels when no error handler is set. |
webhook | URL POSTed a JSON event on every change to the workspace's items. |
ai_config | Providers, default and completion models, custom prompts, copilot_disabled. |
large_file_storage | Workspace object storage: { type, s3_resource_path | azure_blob_resource_path | gcs_resource_path, public_resource?, secondary_storage?, advanced_permissions? }. |
git_sync | { repositories: [...] }, each with git_repo_resource_path, script_path and settings (include/exclude paths and types). Server-owned fields (webhook secrets, sync state, credentials) are never read nor written. |
datatable | { datatables: { <name>: { database: { resource_type, resource_path } } } }, both required: resource_type: postgresql with resource_path a Postgres resource's path, or instance, or external_instance (Enterprise only), with resource_path the name of a database a superadmin set up. A fork's entry can instead be { reference: { workspace_id, datatable } }, pointing at its parent's data table; keep it as is. main is the one scripts use by default. Role permissions are datatable_permissions. |
datatable_permissions | { <data table>: { default_role, roles: { <role>: [tenants] } } }: who may connect to each data table as which role. Tenants are u/<user>, g/<group>, f/<folder> or *; admin is always a role, and default_role: null means no default. A data table the value omits is no longer under roles. Only a data table on a cluster Windmill manages can be. |
protection_rules | { <rule name>: { rules: [...], bypass_groups: [...], bypass_users: [...] } }, rules among DisableDirectDeployment, DisableWorkspaceForking, RestrictDeployToDeployers, RestrictAnonymousAppDeployment, RestrictPublicRunSharing, RestrictGuestAppDeployment, RequireIsolatedForks. A rule the value omits is deleted. The dev workspace lock is not listed and cannot be set here. |
ducklake | { ducklakes: { <name>: { catalog, storage, ... } } }. |
dbt_warehouses | dbt warehouse connections. |
default_app | Path of the app shown as the workspace home. |
default_scripts | { order?, hidden?, default_script_content? } for the script language picker. |
deploy_ui | { include_path?, include_type? }: what the deploy-to-workspace UI offers. |
operator_settings | What operators see and do: page visibility flags (runs, schedules, resources, variables, assets, audit_logs, groups, folders, workers, triggers) and write rights (manage_schedules, manage_triggers, builder_flows, builder_apps). A write right the value omits keeps its stored value. |
mute_critical_alerts | Mute the workspace's critical alerts. |
slack_team_id, slack_name | Read only: set by connecting Slack on the settings page. |
slack_command_script / teams_command_script | Script or flow handling the Slack / Teams command. |
slack_oauth_client_id / slack_oauth_client_secret | The workspace's own Slack OAuth app. Clearing either removes both. |
public_app_execution_limit_per_minute | Rate limit for public apps, null for none. |
guest_access_enabled, guest_jwt_public_key, guest_jwt_jwks_url | Guest access to public apps and the key that signs guest JWTs. |
add_admins_and_developers_to_forks | Add the workspace's admins and developers to each fork. |
color | Workspace color, #rrggbb. |
wmill workspace get-settings prints the document (--encrypted for secrets encrypted with the
workspace key, --json for JSON). wmill workspace apply-settings <file> applies a partial
document from a YAML or JSON file: it shows the changes and asks before writing (--dry-run to
only show them, -y to skip the question, --replace to clear what the file omits).
With includeSettings: true in wmill.yaml, wmill sync pull writes the document to
settings.yaml, secrets encrypted with the workspace key (plaintext only with plainSecrets), and
wmill sync push applies it. Unlike a partial apply, a push treats the file as the whole
document: a setting the file omits is cleared, except operator_settings, color, the auto-invite
instance groups, and the keys ducklake, dbt_warehouses, deploy_ui, teams_command_script,
public_app_execution_limit_per_minute, guest_access_enabled, guest_jwt_public_key,
guest_jwt_jwks_url, error_handler_fallback_to_instance_alerts and
add_admins_and_developers_to_forks, which are managed only when the file states them.
datatable_permissions is pushed only with includeDatatablePermissions: true (or
--include-datatable-permissions). A push ignores protection_rules: protection-rules.yaml and
wmill protection-rules push sync them.
まだレビューはありません。使ってみた感想をお寄せください。
ログインなしで書き込めます。使ってみた感想、質問、動かなかった環境などを気軽にどうぞ。
まだコメントはありません。最初のコメントを書いてみませんか。
Windmillに新しいTriggerCrud型のトリガーを追加する際、バックエンドからCLI、画面、同期やキャプチャ機能まで必要な変更箇所を確認できる開発チェックリストです。
WindmillのAIチャットを変更するときに、ツールやプロンプト、結果の返し方、コンテキスト量を整理し、評価で変更前後の挙動を比べるための指針です。
WindmillのAI生成モード向けに、実際の利用要求に沿ったベンチマークケースを作成・実行します。生成結果を決定的な検証とLLM評価で確認し、AIチャットやcopilotの変更前後を比較できます。
Windmill CLIのコマンドを使い、スクリプトやフローなどの管理、ジョブの実行履歴確認、失敗原因の調査を進めるためのリファレンスです。
モジュールのインターフェースを小さく保ちながら、内部に複雑な処理をまとめる設計を支援します。テストしやすさや変更のしやすさを考え、処理の境目を整理できます。
変更内容を確認し、対象ファイルだけを選んで、形式や長さの規則に沿ったConventional Commits形式のGitコミットを作成するスキルです。