Action App Package(以下、Appパッケージ)は、Gravioのアクション、トリガー、関連リソースを一つのパッケージにまとめて管理・配布するための仕組みです。アクションフローを効率的に開発し、他のHubシステムへ簡単に展開できることを目的としています。
Appパッケージの開発に至るまでには、いくつかの段階がありました:
Appパッケージには以下のような利点があります:
Appパッケージは以下のディレクトリ構成で実装されています:
actmgr/actions/
+- [アプリ名].app/
+- actions/ # アクションファイル
| +- a.acs
| +- b.acs
+- data/ # リソースファイル
| +- sounds/
| +- a.mp3
+- triggers/ # トリガー設定
| +- events/
| | +- xxx.json
| +- timers/
| +- calendars/
+- bases/ # ベースプロパティ
| +- xxx.basp
+- layers/ # レイヤー情報(開発中)
Appパッケージを新規作成する基本的な手順は以下の通りです:
actmgr/actions
ディレクトリに拡張子 .app
でディレクトリを作成しますactions/
data/
triggers/events/
triggers/timers/
triggers/calendars/
bases/
layers/
(※現時点では将来対応)ファイルの配置には以下のルールがあります:
.acs
ファイルは actions/
ディレクトリに配置しますtriggers/
の適切なサブディレクトリに配置しますbases/
ディレクトリに配置しますdata/
以下の適切なディレクトリに配置します重要なのは、ファイルの内容を変更せずにそのままコピーするだけで動作することです。IDはグローバル環境と分離されるため、ID重複の問題は発生しません。
Appパッケージ内のトリガーやアクションは、原則として同一パッケージ内のリソースのみを参照します:
data/
ディレクトリを基点として解決されますグローバル環境とAppパッケージの間には以下の関係があります:
appname/actionid
形式で指定しますappname/actionid
形式に変換されて処理されますAppパッケージを他のHubに配布する手順は以下の通りです:
.app
ディレクトリ全体をアーカイブしますactmgr/actions/
ディレクトリに展開しますAppパッケージには以下の制限や非互換ポイントがあります:
..
などを使用して data
ディレクトリの外を参照するケースでは、グローバルアクションとApp内アクションで参照先が異なりますベースプロパティについては以下の改善が検討されています:
これにより、配布先の環境に合わせた設定で動作させる柔軟性が向上します。