struktur proyek Fabric Apps

Fabric Proyek aplikasi menggunakan tata letak folder yang konsisten sehingga Anda dapat dengan cepat menemukan model data, konfigurasi backend, dan kode frontend. Artikel ini menjelaskan berkas dan folder yang kemungkinan besar akan paling sering Anda gunakan setelah Anda membuat proyek.

Tata letak folder

Saat Anda membuat proyek Fabric Apps baru, templat menghasilkan struktur berikut:

your-project/
├── rayfin/
│   ├── data/
│   │   ├── schema.ts
│   │   └── *.ts
│   ├── .env
│   ├── rayfin.yml
│   └── tsconfig.json
├── src/
├── package.json
├── tsconfig.json
└── README.md

File konfigurasi kunci

rayfin/rayfin.yml

File rayfin/rayfin.yml adalah file konfigurasi utama untuk backend Fabric Apps Anda. Ini mengontrol layanan mana yang berjalan selama pengembangan lokal dan mendukung interpolasi variabel lingkungan untuk nilai konfigurasi dinamis.

Contoh lengkap:

id: my-app
name: my-app
version: 1.0.0
services:
  auth:
    enabled: true
    expiryInMinutes: 60
    refreshToken:
      lifetimeInDays: 30
    customClaims:
      tenant: "default"
    scopes:
      - read:data
      - write:data
    allowedRedirectUris:
      - http://localhost:5173
      - http://localhost:5173/auth/callback
    password:
      enabled: true
    fabric:
      enabled: false
    passwordless:
      magicLink:
        enabled: false
        expiryMinutes: 15
      smsOtp:
        enabled: false
    email:
      enabled: false
      provider: smtp
      senderName: Rayfin Platform
      verificationTokenExpirationHours: 24
      passwordResetTokenExpirationMinutes: 30
      smtp:
        host: maildev
        port: 1025
        senderEmail: noreply@rayfin.local
        username: ""
        password: ""
        useSsl: false
        useStartTls: false
        webPort: 1080
  data:
    enabled: true
    dialect: mssql
  storage:
    enabled: false
  staticHosting:
    enabled: true
    root: .
    folder: dist
    buildCommand: npm run build
    indexDocument: index.html

Konfigurasi mencakup bidang kunci ini:

Bidang tingkat atas

Ladang Tipe Required Deskripsi
id string Yes Slug proyek yang digunakan sebagai nama proyek Docker Compose dan pengidentifikasi item Fabric.
name string Yes Nama tampilan proyek yang dapat dibaca manusia.
version string Yes Versi proyek (semver).
services object Yes Blok konfigurasi layanan.

services.data

Ladang Tipe Default Deskripsi
enabled boolean false Aktifkan layanan data.

services.auth

Ladang Tipe Default Deskripsi
enabled boolean false Aktifkan layanan autentikasi.
expiryInMinutes number Token JWT kedaluwarsa dalam hitung menit.
customClaims Record<string, string> Klaim kustom ditambahkan pada JWT yang dikeluarkan.
scopes string[] Cakupan akses OAuth (misalnya, ["read:data", "write:data"]).
refreshToken.lifetimeInDays number Refresh masa pakai token dalam hari.
allowedRedirectUris string[] ["http://localhost:5173"] URI pengalihan yang diizinkan untuk panggilan balik autentikasi.

services.auth.password

Ladang Tipe Default Deskripsi
enabled boolean true Mengaktifkan autentikasi email dan kata sandi untuk pengembangan lokal

services.auth.fabric

Ladang Tipe Default Deskripsi
enabled boolean false Aktifkan autentikasi terperantara Fabric (SSO Microsoft Entra ID).

services.staticHosting

Ladang Tipe Default Deskripsi
enabled boolean false Aktifkan penghostingan konten statis.
root string Direktori akar proyek frontend (relatif terhadap akar proyek).
folder string "dist" Direktori yang berisi aset statis bawaan (relatif terhadap root).
buildCommand string Perintah shell untuk dijalankan sebelum pengemasan (misalnya, npm run build).
indexDocument string Dokumen default disajikan untuk jalur akar (misalnya, index.html).

Tip

Semua nilai string mendukung interpolasi variabel lingkungan dengan ${VAR} sintaks dan ${VAR:-default} . Variabel ditentukan dari rayfin/.env dan lingkungan shell.

rayfin/.env

File rayfin/.env adalah file lingkungan opsional yang digunakan untuk menyediakan nilai rayfin.yml melalui interpolasi. Jangan menerapkan rahasia ke repositori Anda. Sebagai gantinya, buat rayfin/.env.example file untuk tujuan dokumentasi dan tambahkan .env ke file Anda .gitignore .

rayfin/tsconfig.json

File rayfin/tsconfig.json adalah konfigurasi TypeScript referensi proyek yang digunakan oleh Fabric Apps CLI untuk mengkompilasi definisi entitas Anda. Ini memperluas tsconfig.json root Anda dan mengambil alih pengaturan yang dibutuhkan aplikasi Fabric, seperti composite: true dan resolusi modul Node.js. Anda tidak perlu mengedit file ini secara langsung.

File model data

rayfin/data/*.ts

File dalam rayfin/data/ folder menentukan entitas Anda. Entitas adalah kelas TypeScript yang diberi dekorator @entity() serta dekorator untuk field seperti @uuid() dan @text(). Setiap file entitas mengekspor kelas yang mewakili model data di aplikasi Anda.

rayfin/data/schema.ts

File rayfin/data/schema.ts ini memetakan nama entitas ke kelasnya. Klien Rayfin SDK menggunakan peta ini untuk menyediakan akses aman jenis ke entitas melalui client.data.<Entity>. Saat menambahkan entitas baru, Anda harus mendaftarkannya dalam file skema ini.

Artefak yang dihasilkan

rayfin/.temp/

Folder rayfin/.temp/ berisi artefak backend yang dibuat saat Anda menjalankan server pengembangan. Jika backend tampaknya menggunakan skema atau konfigurasi kedaluarsa, hentikan dan mulai ulang tumpukan dev untuk meregenerasi file-file ini.

Important

Jangan commit folder .temp/ ke repositori Anda. Tambahkan itu ke dalam file Anda .gitignore.

Struktur frontend

Folder src/ berisi kode aplikasi frontend Anda. Struktur yang tepat tergantung pada templat mana yang Anda pilih saat membuat proyek Anda, seperti React atau Vue.

templat Fabric Apps menggunakan variabel lingkungan Vite berikut untuk konfigurasi frontend:

  • VITE_RAYFIN_API_URL – URL Dasar yang mengarahkan frontend ke backend aplikasi Fabric. Atur variabel lingkungan ini sebelum menjalankan npm run dev untuk mengganti setelan bawaan.
  • VITE_RAYFIN_PUBLISHABLE_KEY – Kunci yang dapat diterbitkan digunakan untuk autentikasi klien.
  • VITE_FABRIC_ITEM_ID – ID item Fabric yang ditetapkan oleh rayfin up. Ditulis ke .env.fabric-<workspacename> (dan .env.fabric) selama proses deployment. Digunakan untuk autentikasi yang dimediasi oleh broker Fabric.
  • VITE_FABRIC_WORKSPACE_ID – ID ruang kerja Fabric yang ditetapkan oleh rayfin up. Ditulis bersama VITE_FABRIC_ITEM_ID selama penerapan.