struktura projektu Fabric Apps

projekty Fabric Apps używają spójnego układu folderów, dzięki czemu można szybko znaleźć modele danych, konfigurację zaplecza i kod frontonu. W tym artykule wyjaśniono, z jakimi plikami i folderami najprawdopodobniej będziesz pracować po utworzeniu projektu.

Układ folderu

Podczas tworzenia nowego projektu Fabric Apps szablon generuje następującą strukturę:

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

Kluczowe pliki konfiguracyjne

rayfin/rayfin.yml

Plik rayfin/rayfin.yml jest głównym plikiem konfiguracji zaplecza Fabric Apps. Steruje ona usługami uruchamianymi podczas programowania lokalnego i obsługuje interpolację zmiennych środowiskowych dla dynamicznych wartości konfiguracji.

Pełny przykład:

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

Konfiguracja obejmuje następujące pola klucza:

Pola najwyższego poziomu

Pole Typ Required Opis
id string Yes Skrót projektu używany jako nazwa projektu Docker Compose i identyfikator elementu Fabric.
name string Yes Czytelna dla człowieka wyświetlana nazwa projektu.
version string Yes Wersja projektu (semver).
services object Yes Blok konfiguracji usługi.

services.data

Pole Typ Wartość domyślna Opis
enabled boolean false Włącz usługę danych.

services.auth

Pole Typ Wartość domyślna Opis
enabled boolean false Włącz usługę uwierzytelniania.
expiryInMinutes number Czas wygaśnięcia tokenu JWT w minutach.
customClaims Record<string, string> Niestandardowe roszczenia dodane do wystawionych tokenów JWT.
scopes string[] Zakresy OAuth (na przykład ["read:data", "write:data"]).
refreshToken.lifetimeInDays number Okres istnienia tokenu odświeżania w dniach.
allowedRedirectUris string[] ["http://localhost:5173"] Dozwolone adresy URI przekierowań dla wywołań zwrotnych uwierzytelniania.

services.auth.password

Pole Typ Wartość domyślna Opis
enabled boolean true Włączanie uwierzytelniania wiadomości e-mail i hasła na potrzeby programowania lokalnego

services.auth.fabric

Pole Typ Wartość domyślna Opis
enabled boolean false Włącz uwierzytelnianie Fabric obsługiwane przez brokera (Microsoft Entra ID SSO).

services.staticHosting

Pole Typ Wartość domyślna Opis
enabled boolean false Włącz hosting zawartości statycznej.
root string Katalog główny projektu frontendowego (względem katalogu głównego projektu).
folder string "dist" Katalog zawierający skompilowane zasoby statyczne (względem root).
buildCommand string Polecenie powłoki do uruchomienia przed pakowaniem (na przykład npm run build).
indexDocument string Dokument domyślnie udostępniany dla ścieżki głównej (na przykład index.html).

Wskazówka

Wszystkie wartości tekstowe obsługują interpolację zmiennych środowiskowych w składni ${VAR} i ${VAR:-default}. Zmienne są pobierane z rayfin/.env i środowiska powłoki.

rayfin/.env

Plik rayfin/.env jest opcjonalnym plikiem zmiennych środowiskowych służącym do przekazywania wartości do rayfin.yml za pomocą interpolacji. Nie umieszczaj tajnych danych w swoim repozytorium. Zamiast tego utwórz rayfin/.env.example plik do celów dokumentacji i dodaj .env go do pliku .gitignore .

rayfin/tsconfig.json

Plik rayfin/tsconfig.json jest plikiem konfiguracyjnym TypeScript z odwołaniem do projektu, używanym przez narzędzie wiersza polecenia Fabric Apps do kompilacji definicji encji. Rozszerza główny element tsconfig.json i przesłania ustawienia wymagane przez aplikacje Fabric, takie jak composite: true i mechanizm rozpoznawania modułów Node.js. Nie należy bezpośrednio edytować tego pliku.

Pliki modelu danych

rayfin/data/*.ts

Pliki w folderze rayfin/data/ definiują encje. Encje to klasy TypeScript oznaczone dekoratorem @entity() oraz dekoratorami pól, takimi jak @uuid() i @text(). Każdy plik jednostki eksportuje klasę reprezentującą model danych w aplikacji.

rayfin/data/schema.ts

Plik rayfin/data/schema.ts przyporządkowuje nazwy encji do ich klas. Klient SDK Rayfin używa tej mapy do zapewnienia dostępu do encji z zachowaniem bezpieczeństwa typów przez client.data.<Entity>. Po dodaniu nowej jednostki należy ją zarejestrować w tym pliku schematu.

Wygenerowane artefakty

rayfin/.temp/

Folder rayfin/.temp/ zawiera wygenerowane artefakty zaplecza, które są tworzone podczas uruchamiania serwera programistycznego. Jeśli zaplecze wydaje się używać nieaktualnego schematu lub konfiguracji, zatrzymaj i uruchom ponownie stos deweloperski, aby ponownie wygenerować te pliki.

Ważna

Nie zatwierdzaj .temp/ folderu w repozytorium. Dodaj go do .gitignore pliku.

Struktura frontonu

Folder src/ zawiera kod aplikacji frontonu. Dokładna struktura zależy od szablonu wybranego podczas tworzenia projektu, takiego jak React lub Vue.

szablony Fabric Apps używają następujących zmiennych środowiskowych Vite na potrzeby konfiguracji frontonu:

  • VITE_RAYFIN_API_URL — bazowy adres URL kierujący frontend do backendu Fabric Apps. Ustaw tę zmienną środowiskową przed uruchomieniem npm run dev , aby zastąpić wartość domyślną.
  • VITE_RAYFIN_PUBLISHABLE_KEY — Klucz możliwy do opublikowania używany do uwierzytelniania klienta.
  • VITE_FABRIC_ITEM_ID — identyfikator elementu Fabric ustawiony przez rayfin up. Zapisywane do .env.fabric-<workspacename> (i .env.fabric) podczas wdrażania. Służy do uwierzytelniania pośredniczonego przez brokera w usłudze Fabric.
  • VITE_FABRIC_WORKSPACE_ID — identyfikator obszaru roboczego Fabric ustawiony przez rayfin up. Napisany obok VITE_FABRIC_ITEM_ID podczas wdrażania.