struktura projektu Fabric Apps

projekty Fabric Apps používají konzistentní rozložení složek, abyste mohli rychle najít datové modely, konfiguraci back-endu a front-endový kód. Tento článek vysvětluje soubory a složky, se kterými budete pravděpodobně pracovat po vytvoření projektu.

Rozložení složky

Když vytvoříte nový projekt Fabric Apps, šablona vygeneruje následující strukturu:

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

Konfigurační soubory klíčů

rayfin/rayfin.yml

Soubor rayfin/rayfin.yml je hlavním konfiguračním souborem back-endu Fabric Apps. Řídí, které služby běží během místního vývoje, a podporuje interpolaci proměnných prostředí pro dynamické hodnoty konfigurace.

Úplný příklad:

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

Konfigurace zahrnuje tato klíčová pole:

Pole nejvyšší úrovně

Pole Typ Povinné Description
id string Ano Slug projektu používaný jako název projektu Docker Compose a identifikátor položky Fabric.
name string Ano Zobrazovaný název projektu čitelný pro člověka
version string Ano Verze projektu (semver).
services object Ano Blok konfigurace služby.

services.data

Pole Typ Výchozí Description
enabled boolean false Povolte datovou službu.

services.auth

Pole Typ Výchozí Description
enabled boolean false Povolte službu ověřování.
expiryInMinutes number Platnost tokenu JWT vyprší v minutách.
customClaims Record<string, string> Vlastní nároky přidané do vydaných tokenů JWT.
scopes string[] Obory OAuth (například ["read:data", "write:data"]).
refreshToken.lifetimeInDays number Platnost obnovovacího tokenu ve dnech.
allowedRedirectUris string[] ["http://localhost:5173"] Povolené identifikátory URI pro přesměrování pro ověřovací zpětná volání

services.auth.password

Pole Typ Výchozí Description
enabled boolean true Povolení ověřování e-mailů a hesel pro místní vývoj

services.auth.fabric

Pole Typ Výchozí Description
enabled boolean false Povolte zprostředkované ověřování Fabric (Microsoft Entra ID SSO).

services.staticHosting

Pole Typ Výchozí Description
enabled boolean false Povolte hostování statického obsahu.
root string Kořenový adresář front-endového projektu (vzhledem k kořenovému adresáři projektu).
folder string "dist" Adresář obsahující zkompilované statické zdroje (vzhledem k root).
buildCommand string Příkaz shellu, který se má spustit před balením (například npm run build).
indexDocument string Výchozí dokument poskytovaný pro kořenovou cestu (například index.html).

Tip

Všechny řetězcové hodnoty podporují interpolaci proměnných prostředí se syntaxí ${VAR} a ${VAR:-default}. Proměnné se vyhodnocují z rayfin/.env a z prostředí shellu.

rayfin/.env

Soubor rayfin/.env je volitelný soubor prostředí, který slouží k zadávání hodnot rayfin.yml prostřednictvím interpolace. Neukládejte tajné kódy do úložiště. Místo toho vytvořte rayfin/.env.example soubor pro účely dokumentace a přidejte .env ho do souboru .gitignore .

rayfin/tsconfig.json

Soubor rayfin/tsconfig.json je konfigurační soubor TypeScriptu pro odkaz na projekt, který nástroj příkazového řádku Fabric Apps používá ke kompilaci definic entit. Rozšiřuje váš kořenový soubor tsconfig.json a přepisuje nastavení, která aplikace Fabric potřebuje, například composite: true a způsob vyhledávání modulů v Node.js. Tento soubor byste neměli upravovat přímo.

Soubory datového modelu

rayfin/data/*.ts

Soubory ve rayfin/data/ složce definují vaše entity. Entity jsou třídy v TypeScriptu opatřené dekorátorem @entity() a dekorátory polí, jako jsou @uuid() a @text(). Každý soubor entity exportuje třídu, která představuje datový model ve vaší aplikaci.

rayfin/data/schema.ts

Soubor rayfin/data/schema.ts mapuje názvy entit na jejich třídy. Klient Rayfin SDK používá tuto mapu k poskytování typově bezpečného přístupu k entitám prostřednictvím client.data.<Entity>. Když přidáte novou entitu, musíte ji zaregistrovat v tomto souboru schématu.

Generované artefakty

rayfin/.temp/

Složka rayfin/.temp/ obsahuje vygenerované back-endové artefakty, které se vytvoří při spuštění vývojového serveru. Pokud se zdá, že backend používá zastaralé schéma nebo konfiguraci, zastavte a restartujte vývojové prostředí, aby se tyto soubory znovu vygenerovaly.

Important

Nesdílejte .temp/ složku do úložiště. Přidejte ho do .gitignore souboru.

Front-endová struktura

Složka src/ obsahuje kód front-endové aplikace. Přesná struktura závisí na tom, kterou šablonu jste zvolili při vytváření projektu, například React nebo Vue.

Šablony aplikací Fabric používají pro konfiguraci frontendu následující proměnné prostředí Vite:

  • VITE_RAYFIN_API_URL – základní URL, která směruje frontend na backend Fabric Apps. Před spuštěním npm run dev nastavte tuto proměnnou prostředí, aby se přepsalo výchozí nastavení.
  • VITE_RAYFIN_PUBLISHABLE_KEY – Publikovatelný klíč používaný pro ověřování klientů.
  • VITE_FABRIC_ITEM_ID – ID položky Fabric nastavené pomocí rayfin up. Zapsáno do .env.fabric-<workspacename> (a .env.fabric) během nasazování. Používá se pro ověřování zprostředkované službou Fabric.
  • VITE_FABRIC_WORKSPACE_ID – ID pracovního prostoru Fabric nastavené pomocí rayfin up. Zapsáno spolu s VITE_FABRIC_ITEM_ID během nasazení.