Fabric Apps(預覽版)協助你在 Microsoft Fabric 上建立資料驅動應用程式,結合資料模型、產生的 API、認證與主機託管於一個開發流程中。 你可以在 TypeScript 中定義資料模型,Fabric Apps 會用它們來產生應用程式所需的後端部分。 Fabric Apps 支援 TypeScript 作為資料模型、客戶端程式碼及應用邏輯的語言。
Important
這項功能目前處於預覽階段。
關鍵功能
Fabric Apps 提供以下功能:
-
從資料模型到 API – 使用
@entity()、@text()、@uuid()及其他裝飾器來裝飾 TypeScript 類別。 Fabric Apps 會自動產生資料庫架構與 GraphQL 端點。 - 型別安全客戶端 ——客戶端 SDK 會在查詢與變異到達後端前驗證,並在開發過程中捕捉錯誤。
- 內建認證 – 包含會話管理、權杖處理及認證流程。 為已部署的應用程式設定 Fabric SSO,或在本地開發時使用電子郵件與密碼。
- 靜態主機 — 只需一個部署指令,就能在後端 API 旁建置並服務你的前端應用程式。
- Local development – 用 Docker 本地執行全端以快速迭代,準備好後部署到 Microsoft Fabric。 建立專案骨架、使用 GitHub Copilot 進行開發,並使用 Rayfin CLI 部署至 Fabric。
先決條件
織物容量
你的工作區必須有分配 Fabric 容量。 建立新工作區時,請選擇要與該工作區建立關聯的 Fabric 容量。 Fabric Apps 服務會從指派的容量中耗用容量單位。
租戶管理員設定
Fabric 租戶管理員必須先啟用 Fabric Apps 工作負載,使用者才能建立項目。
- 登入 Fabric 管理入口網站。
- 進入 租戶設定。
- 在 Fabric Apps (preview),將設定切換為 Enabled。
- 選擇是為整個組織啟用,還是針對特定安全群組啟用。
- 選擇 「申請」。
變化可能需要幾分鐘才能傳播。
運作原理
Fabric 應用程式在 Microsoft Fabric 中以管理服務形式執行,並包含定義後端的一系列服務,如應用程式主機、資料庫、GraphQL API 及認證。 Fabric 負責主機託管、網路與擴展。 認證僅使用 Fabric SSO(Microsoft Entra ID 單一登入)——部署後不再提供其他認證提供者。
當你使用 rayfin up 部署應用程式時,Fabric 會根據你的 rayfin.yml 設定來建立子服務。 這些兒童服務會在 Fabric 入口網站的 Fabric 應用程式中以兒童項目形式出現。
| 兒童服務 | 它所提供的是什麼 | 入口功能 |
|---|---|---|
| Fabric 中的 SQL 資料庫 | 一個管理式 SQL 資料庫,並將你的結構描述透過 TypeScript 資料模型裝飾器套用其中。 | 查看資料庫,使用查詢編輯器執行查詢,複製連線字串。 資料庫在入口網站中是唯讀的——結構變更必須由您的程式碼透過 rayfin up 進行。 |
| 驗證 | Fabric 使用 Microsoft Entra ID(SSO)進行代理驗證。 使用者透過現有的 Fabric 身份登入。 | 在 SQL 資料庫中查看已認證的使用者。 |
| 靜態內容 | 您建置的前端資產(HTML、CSS、JS)使用 OneLake 儲存體,並透過公開 URL 提供。 | 查看主機網址。 資產會在每次部署時更新。 |
應用程式後端網址
每個 Fabric 應用程式都有一個端點,提供所有服務的存取:
https://<your-app>-app.rayfin.windows.net/
端點會為每個服務暴露一條路徑:
| 路徑 | Service |
|---|---|
/api/graphql |
資料 API(GraphQL)— 供 RayfinClient 用於讀取與寫入作業 |
/auth |
認證服務 |
/storage |
檔案記憶體 |
Fabric 入口網站中的管理
部署完成後,你可以直接在 Fabric 入口網站管理你的 Fabric 應用程式。
查看項目屬性
在入口網站開啟 Fabric 應用程式,可以看到:
- 應用程式後端網址 — 此端點用於應用程式所使用的所有後端服務。
- App URL — 你靜態內容所託管的公開網址。 存取該應用程式需要 Fabric SSO。
管理子項目
選擇 Fabric 應用程式以查看其兒童服務:
-
SQL 資料庫 Fabric — 開啟 Fabric SQL 資料庫項目以檢視物件探索器。 你可以對資料執行讀取查詢。 架構變更應該總是在資料夾下的
rayfin/data程式碼中進行。 如果直接在 SQL 資料庫中更改結構,可能會發生結構衝突,並可能導致應用程式失效。
項目權限
Workspace 角色不會凌駕於項目層級的權限。 要與組織內的某人分享應用程式,他們需要 執行與互動 權限(讀取與執行)來執行該應用程式並調用後端 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 Apps 最適合:
- 快速原型製作 ——利用預先設定的基礎設施,從構想到即時網址只需幾分鐘。
- 內部工具與儀表板 ——建立認證的管理介面,無需撰寫後端範本。
- 資料探索與視覺化 – 透過 GraphQL 查詢Fabric資料,並在自訂前端顯示。
- AI 與代理應用 – 為需要持久狀態的 AI 代理提供結構化後端服務。
Fabric 應用程式可能不適合:
- 需要複雜多步驟交易或儲存程序的應用。
- 需要自訂認證提供者的應用程式,除了 Fabric SSO 和電子郵件/密碼之外。
安全職責
Fabric 提供:Fabric 單一登入(Microsoft Entra ID)、透過 @role 裝飾項實作的資料列層級安全性、HTTPS、PKCE,以及工作區和項目層級權限。
你負責:
- 將秘密、API 金鑰和敏感資料排除在程式碼、前端資產和資料庫之外。 靜態內容則由公開網址提供。
- 你的應用程式透過 Fabric SSO 暴露的內容會控制登入,因為你的程式碼控制了經過認證的使用者看到和做什麼。
- 只授予貢獻者部署或管理應用程式所需的權限。
- 你的應用程式所收集、處理及儲存之資料的法律與合規責任。