Fabric Apps proje yapısı

Fabric Uygulamalar projeleri tutarlı bir klasör düzeni kullanır, böylece veri modellerini, arka uç yapılandırmasını ve ön uç kodunu hızla bulabilirsiniz. Bu makalede, proje oluşturduktan sonra çalışma olasılığınızın en yüksek olduğu dosya ve klasörler açıklanmaktadır.

Klasör düzeni

Yeni bir Fabric Apps projesi oluşturduğunuzda şablon aşağıdaki yapıyı oluşturur:

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

Anahtar yapılandırma dosyaları

rayfin/rayfin.yml

rayfin/rayfin.yml dosyası, Fabric Apps arka ucunuzun ana yapılandırma dosyasıdır. Yerel geliştirme sırasında hangi hizmetlerin çalıştığını denetler ve dinamik yapılandırma değerleri için ortam değişkeni ilişkilendirmesini destekler.

Tam örnek:

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

Yapılandırma şu anahtar alanlarını içerir:

Üst düzey alanlar

Alan Türü Zorunlu Açıklama
id string Evet Docker Compose proje adı ve Fabric öğesi tanımlayıcısı olarak kullanılan proje kısa adı.
name string Evet İnsan tarafından okunabilir proje görüntüleme adı.
version string Evet Proje sürümü (semver).
services object Evet Hizmet yapılandırma bloğu.

services.data

Alan Türü Varsayılan Açıklama
enabled boolean false Veri hizmetini etkinleştirin.

services.auth

Alan Türü Varsayılan Açıklama
enabled boolean false Kimlik doğrulama hizmetini etkinleştirin.
expiryInMinutes number JWT belirtecinin dakika cinsinden geçerlilik süresi.
customClaims Record<string, string> Verilen JWT'lere eklenen özel talepler.
scopes string[] OAuth kapsamları (örneğin, ["read:data", "write:data"]).
refreshToken.lifetimeInDays number Yenileme belirtecinin gün cinsinden kullanım süresi.
allowedRedirectUris string[] ["http://localhost:5173"] Kimlik doğrulama geri çağırmaları için izin verilen yönlendirme URI'leri.

services.auth.password

Alan Türü Varsayılan Açıklama
enabled boolean true Yerel geliştirme için e-posta ve parola kimlik doğrulamasını etkinleştirme

services.auth.fabric

Alan Türü Varsayılan Açıklama
enabled boolean false Fabric aracılı kimlik doğrulamasını (Microsoft Entra ID SSO) etkinleştirin.

services.staticHosting

Alan Türü Varsayılan Açıklama
enabled boolean false Statik içerik barındırmayı etkinleştirin.
root string Ön uç projesinin kök dizini (proje köküne göre).
folder string "dist" Derlenmiş statik varlıkları içeren dizin (root öğesine göreli).
buildCommand string Paketlemeden önce çalıştırılacak kabuk komutu (örneğin, npm run build).
indexDocument string Kök yol için sunulan varsayılan belge (örneğin, index.html).

Tavsiye

Tüm dize değerleri, ${VAR} ve ${VAR:-default} sözdizimiyle ortam değişkeni enterpolasyonunu destekler. Değişkenler, rayfin/.env ve kabuk ortamından çözümlenir.

rayfin/.env

rayfin/.env dosyası, interpolasyon yoluyla rayfin.yml’e değer sağlamak için kullanılan isteğe bağlı bir ortam dosyasıdır. Gizli bilgileri deponuza commit etmeyin. Bunun yerine, belge amacıyla bir rayfin/.env.example dosya oluşturun ve dosyanıza .env ekleyin.gitignore.

rayfin/tsconfig.json

rayfin/tsconfig.json dosyası, Fabric Apps CLI tarafından varlık tanımlarınızı derlemek için kullanılan bir proje başvurusu TypeScript yapılandırmasıdır. Kök tsconfig.json genişletir ve composite: true ve Node.js modül çözümlemesi gibi Fabric Uygulamaların ihtiyaç duyduğu ayarları geçersiz kılar. Bu dosyayı doğrudan düzenlemeniz gerekmez.

Veri modeli dosyaları

rayfin/data/*.ts

Klasördeki rayfin/data/ dosyalar varlıklarınızı tanımlar. Varlıklar, @entity() ile işaretlenmiş TypeScript sınıflarıdır; ayrıca @uuid() ve @text() gibi alan dekoratörleri de kullanılır. Her varlık dosyası, uygulamanızdaki bir veri modelini temsil eden bir sınıfı dışarı aktarır.

rayfin/data/schema.ts

rayfin/data/schema.ts dosyası, varlık adlarını sınıflarıyla eşleştirir. Rayfin SDK istemcisi aracılığıyla client.data.<Entity>varlıklara tür açısından güvenli erişim sağlamak için bu haritayı kullanır. Yeni bir varlık eklediğinizde, bu şema dosyasına kaydetmeniz gerekir.

Oluşturulan yapıtlar

rayfin/.temp/

Klasör, rayfin/.temp/ geliştirme sunucusunu çalıştırdığınızda oluşturulan arka uç yapıtlarını içerir. Arka uç eski şema veya yapılandırma kullanıyor gibi görünüyorsa, bu dosyaları yeniden oluşturmak için geliştirme yığınını durdurun ve yeniden başlatın.

Important

.temp/ klasörünü deponuza commit etmeyin. Dosyanıza .gitignore ekleyin.

Ön yüz yapısı

klasörü src/ ön uç uygulama kodunuzu içerir. Tam yapı, projenizi oluştururken seçtiğiniz React veya Vue gibi şablona bağlıdır.

Fabric Apps şablonları ön uç yapılandırması için aşağıdaki Vite ortam değişkenlerini kullanır:

  • VITE_RAYFIN_API_URL – Ön yüzü Fabric Apps arka ucuna yönlendiren temel URL. Varsayılanı geçersiz kılmak için çalıştırmadan npm run dev önce bu ortam değişkenini ayarlayın.
  • VITE_RAYFIN_PUBLISHABLE_KEY – İstemci kimlik doğrulaması için kullanılan yayımlanabilir anahtar.
  • VITE_FABRIC_ITEM_IDrayfin up tarafından ayarlanan Fabric öğe kimliği. Dağıtım sırasında .env.fabric-<workspacename> içine (ve .env.fabric içine) yazılır. Fabric aracılı kimlik doğrulaması için kullanılır.
  • VITE_FABRIC_WORKSPACE_IDrayfin up tarafından ayarlanan Fabric çalışma alanı kimliği. Dağıtım sırasında VITE_FABRIC_ITEM_ID ile birlikte yazılır.