Fabric Apps (プレビュー) は、データ モデル、生成された API、認証、ホスティングを 1 つの開発ワークフローで組み合わせることによって、Microsoft Fabricでデータドリブン アプリケーションを構築するのに役立ちます。 TypeScript でデータ モデルを定義し、Fabric Apps ではそれらを使用して、アプリに必要なバックエンド部分を生成します。 Fabric Apps では、データ モデル、クライアント コード、アプリケーション ロジックの言語として TypeScript がサポートされます。
Important
この機能は プレビュー段階です。
主要な機能
Fabric Apps には、次の機能があります。
-
API へのデータ モデル – typeScript クラスを
@entity()、@text()、@uuid()、およびその他のデコレーターで装飾します。 Fabric Apps では、データベース スキーマと GraphQL エンドポイントが自動的に生成されます。 - タイプ セーフなクライアント – クライアント SDK は、バックエンドに到達する前にクエリと変更を検証し、開発中にエラーをキャッチします。
- 組み込みの認証 – セッション管理、トークン処理、および認証フローが含まれています。 デプロイされたアプリケーションのFabric SSO を構成するか、ローカル開発時に電子メールとパスワードを使用します。
- 静的ホスティング – 1 つのデプロイ コマンドを使用して、バックエンド API と共にフロントエンド アプリケーションを構築して提供します。
- ローカル開発 – Docker を使用してフル スタックをローカルで実行して迅速なイテレーションを行い、運用環境の準備ができたらMicrosoft Fabricにデプロイします。 Rayfin CLI を使用して、プロジェクトをスキャフォールディングし、GitHub Copilotを使用して開発し、Fabricにデプロイします。
前提条件
Fabric の容量
ワークスペースにはFabric容量が割り当てられている必要があります。 新しいワークスペースを作成するときに、それに関連付けるFabric容量を選択します。 Fabric Apps サービスは、割り当てられた容量の容量ユニットを消費します。
テナント管理者の設定
Fabric テナント管理者は、ユーザーがアイテムを作成する前に、Fabric Apps ワークロードを有効にする必要があります。
- Fabric 管理ポータルにサインインします。
- [テナント設定] に移動します。
- [Fabric アプリ (プレビュー) で、設定を Enabled に切り替えます。
- 組織全体または特定のセキュリティ グループに対して有効にするかどうかを選択します。
- を選択してを適用します。
変更が反映されるまでに数分かかる場合があります。
どのように機能するのか
Fabric アプリは、アプリ ホスティング、データベース、GraphQL API、認証などのバックエンドを定義する一連のサービスを使用して、Microsoft Fabricでマネージド サービスとして実行されます。 Fabricは、ホスティング、ネットワーク、スケーリングを管理します。 認証では、Fabric SSO (Microsoft Entra ID シングル サインオン) のみを使用します。デプロイ後に他の認証プロバイダーを使用することはできません。
rayfin up を使用してアプリケーションをデプロイすると、Fabricは、rayfin.yml 構成に基づいて子サービスを作成します。 これらの子サービスは、Fabric ポータルの Fabric アプリの下に子アイテムとして表示されます。
| 子サービス | 提供される内容 | ポータル機能 |
|---|---|---|
| Fabric 内の SQL データベース | TypeScript データ モデル デコレーターから適用されたスキーマを持つマネージド SQL データベース。 | データベースを表示し、クエリ エディターでクエリを実行し、接続文字列コピーします。 データベースはポータルで読み取り専用です。スキーマの変更は、 rayfin up経由でコードから行う必要があります。 |
| Authentication | Microsoft Entra ID (SSO) を使用した Fabric のブローカー認証。 ユーザーは、既存のFabric ID を使用してサインインします。 | SQL データベースの認証済みユーザーを表示します。 |
| 静的コンテンツ | ビルドされたフロントエンド資産 (HTML、CSS、JS) は、OneLake ストレージを使用してパブリック URL で提供されます。 | ホスティング URL を表示します。 アセットは、各デプロイで更新されます。 |
アプリ バックエンド URL
各Fabric アプリには、すべてのサービスへのアクセスを提供する単一のエンドポイントがあります。
https://<your-app>-app.rayfin.windows.net/
エンドポイントは、各サービスのパスを公開します。
| Path | Service |
|---|---|
/api/graphql |
データ API (GraphQL) — 読み取り操作と書き込み操作に RayfinClient によって使用されます |
/auth |
認証サービス |
/storage |
ファイル保存 |
Fabric ポータルでの管理
デプロイ後、Fabric ポータルでFabric アプリを直接管理できます。
アイテムのプロパティを表示する
ポータルで Fabric アプリを開き、次の情報を表示します。
- アプリ バックエンド URL — このエンドポイントは、アプリケーションによって使用されるすべてのバックエンド サービスに使用されます。
- アプリ URL — 静的コンテンツがホストされているパブリック URL。 アプリにアクセスするには、Fabric SSO が必要です。
子項目の管理
Fabric アプリを選択して、その子サービスを表示します。
- Fabric の
SQL データベース - Fabric SQL Database 項目を開き、オブジェクト エクスプローラーを表示します。 データに対して読み取りクエリを実行できます。 スキーマの変更は常に、 rayfin/dataフォルダーの下のコードで行う必要があります。 スキーマの競合は、SQL Database でスキーマが直接変更された場合に発生し、アプリを中断する可能性があります。
アイテムのアクセス許可
ワークスペース ロールは、アイテム レベルのアクセス許可よりも優先されません。 組織内のユーザーとアプリを共有するには、アプリを実行してバックエンド API を呼び出すために、 実行と対話 のアクセス許可 (読み取りと実行) が必要です。
| 許可 | それが可能にする内容 |
|---|---|
| 実行と対話 (既定) | デプロイされたアプリケーションを開いて使用します。 既定では、すべてのワークスペース メンバーがこのレベルを受け取ります。 |
| 編集 (書き込み) | Fabric アプリを変更します。rayfin up を使用してコードをデプロイし、スキーマの変更を適用し、設定を更新し、子サービスを管理します。 |
| 再共有する | 他のユーザーにFabric アプリへのアクセス権を付与します。 ワークスペースの 管理者 ロールが必要です。 |
ワークスペースロールの詳細を確認します。
Rayfin CLI を使用した開発
CLI は新しいプロジェクトをスキャフォールディングし、ローカル インフラストラクチャを起動し、スキーマの変更を同期して、Fabricにデプロイします。
npm create @microsoft/rayfin@latestと共にインストールします。
主なコマンド:
| 命令 | Purpose |
|---|---|
npm create @microsoft/rayfin@latest |
テンプレートから新しいプロジェクトを作成します。 |
npx rayfin up |
プロジェクトをFabricに配置します。 |
npx rayfin up db apply |
データベース スキーマの変更を適用します。 |
完全なコマンド リファレンスについては、 CLI リファレンスを参照してください。
データ モデル デコレーター
TypeScript デコレーターを使用してデータ モデルを定義します。
import {
entity,
role,
text,
boolean,
date,
uuid,
} from '@microsoft/rayfin-core';
@entity()
@role('authenticated', '*', {
policy: (claims, item) => claims.sub.eq(item.user_id),
})
export class Todo {
@uuid() id!: string;
@text({ min: 1, max: 100 }) title!: string;
@boolean() isCompleted!: boolean;
@date() createdAt!: Date;
@date({ optional: true }) dueDate?: Date;
@text() user_id!: string;
}
Fabric Apps では、これらのデコレーターが分析され、次の結果が生成されます。
- データベース テーブルの定義
- GraphQL API エンドポイント
- 行レベルの承認規則
- 型安全なクライアント メソッド
Fabric アプリを使用するタイミング
Fabric アプリは次の場合に最適です。
- 迅速なプロトタイプ作成 – 構成済みのインフラストラクチャを使用して、アイデアからライブ URL に数分で移行できます。
- 内部ツールとダッシュボード – バックエンドの定型句を記述せずに、認証済みの管理インターフェイスを構築します。
- Data の探索と視覚化 – GraphQL を使用してデータFabricクエリを実行し、カスタム フロントエンドに表示します。
- AI およびエージェント アプリケーション – 永続的な状態を必要とする AI エージェントに対して構造化されたバックエンド サービスを提供します。
Fabric アプリは、次に適していない可能性があります。
- 複雑なマルチステップ トランザクションまたはストアド プロシージャを必要とするアプリケーション。
- Fabric SSO およびメール/パスワード認証以外のカスタム認証プロバイダーを必要とするアプリ。
セキュリティの責任
Fabric では次が提供されます: Fabric のシングル サインオン (Microsoft Entra ID)、@role デコレーターを介した行レベル セキュリティ、HTTPS、PKCE、ワークスペース レベルおよびアイテム レベルのアクセス許可。
お客様の責任は次のとおりです。
- シークレット、API キー、機密データをコード、フロントエンド資産、リポジトリから除外する。 静的コンテンツはパブリック URL から提供されます。
- Fabric SSO を通じてアプリが公開するものは、認証されたユーザーの表示と実行をコードが制御するため、サインインを制御します。
- アプリをデプロイまたは管理するために必要なアクセス許可の共同作成者のみを付与する。
- アプリが収集、処理、および格納するデータに対する法的およびコンプライアンスのアカウンタビリティ。