データベース App とカスタム App の違い
- データベース App — 既定の種類です。レコード(エンティティ、フィールド、リレーション)を定義すると、Kylon がデータベースを用意し、Data Viewer でテーブル、ボード、カレンダーの各ビュー、保存ビュー、フィルター、グルーピング、レコードのディスカッションを使えます。ソースリポジトリやデプロイは不要です。
- カスタム App — 独自のソースコードを持つ App です。カスタムページ、ダッシュボード、フォーム、公開サイト、独自 API、サーバー側のビジネスロジックに使います。ドラフトから構築し、公開前にプレビューで確認します。レコードを保存する場合はデータベースを使いますが、静的サイトにレコード定義は必須ではありません。
App を見つけて使う
Apps にはアクセスできる App が表示されます。ホーム Room からも開けます。個人のサイドバーに表示したい場合は既存の App をピン留めします。作成とピン留めは別の操作です。テンプレートカタログから選んだ Room に App をインストールすることもできます。外部サービスへの接続は別途認可が必要です。 Data Viewer ではレコードを閲覧・編集し、テーブル、ボード、カレンダーのビューを切り替え、レコードのディスカッションを開けます。エージェントはapp docs <app_id> で契約を確認して app api で操作します。保存ビュー、フィルター、並び順、グループ、表示フィールドは app data-view で管理する共有設定であり、レコードのアクセス制限ではありません。
アクセスと共有
App の構築、公開、移動、削除、共有範囲の変更はホーム Room の権限に従います。利用できる相手は App の可視性で決まります。
Data Viewer にレコードごとのアクセス制御はありません。App に入れる相手は、そこで公開されているすべてのレコードを読めます。フィルタービューで機密データを分離することはできません。エージェントが共有範囲を広げるときは、人の承認が必要です。
Share で適切なリンクを取得します。private と workspace のリンクはサインインが必要で、Room のメッセージやファイルへのアクセスは付与しません。古いカスタム App は、ワークスペース全体に共有する前に更新・再公開が必要な場合があります。
データベース App のライフサイクル
app createで App を作成する。--runtime-kind custom_appを指定しない限り、データベース App になります。- データベースをプロビジョニングし、スキーマを定義する。
app registerでエンティティとフィールドを登録し、Data Viewer と App API にデータの形を伝える。- 運用する:
app docs <app_id>で生成されたコントラクトを読み、app apiで呼び出し、共有ビューはapp data-viewで調整します。
カスタム App のドラフトと公開
カスタム App は、公開済みのリリースと作業中のドラフトを持ちます。ドラフトには独立したプレビューデータベースがあり、そこで編集したテストデータは公開版へコピーされません。スキーマと初期データの変更はバージョン管理されたマイグレーションに記述し、レビュー前にプレビューへ、公開時に本番へ適用します。 準備が完了したプレビューを確認して、そのデプロイを指定して公開します。公開はデプロイ済みコードを更新する操作であり、利用中のレコードを固定する操作ではありません。ドラフトの公開ボタンを使うか、確認したプレビューの公開をエージェントに依頼します。権限を持つ人は、その App に対するエージェントの公開を24時間または無期限で事前承認し、後から取り消せます。共有範囲を広げる判断は別途人が行います。 詳しくはカスタム App を構築・公開する(英語)を参照してください。外部サービス
新しい App に外部サービスへの認可はありません。構築したエージェントが利用できる接続でも、App 用に明示的な認可が必要です。app connections list、grant、revoke で確認・管理します。認証情報はサーバー側に置き、App connections proxy(英語)経由で使用します。
App が管理するオートメーション
App の登録情報やソースでオートメーションを宣言できます。Room の一覧に Managed by App と表示され、一時停止、再開、手動実行、クレジット保護を操作できます。定義の変更は App の宣言で行います。オートメーションを参照してください。従来のテーブル
App が登場する前、構造化データは独立したテーブルに置かれていました。既存のテーブルは、リソースごとの切り替え(カットオーバー)まで引き続き利用できます。table、row、field、view コマンドは、まだアップグレードされていないテーブルにのみ使えます。移行するには table upgrade-plan <table> を実行し、続けて table upgrade-to-app <table> を実行します。カットオーバー後は、置き換え先の App だけを使います。新しいテーブルは作成しないでください。
リファレンス
コマンド全体はkylon workspace app(英語)に記載されています。ワークスペースで最も大きなサブコマンドなので、フラグを覚えようとせず、生成されたリファレンスを参照してください。