Štruktúra projektu Fabric Apps

Projekty Fabric Apps používajú konzistentné rozloženie priečinkov, takže rýchlo nájdete dátové modely, backendovú konfiguráciu a frontendový kód. Tento článok vysvetľuje súbory a priečinky, s ktorými pravdepodobne budete pracovať po vytvorení projektu.

Rozloženie priečinkov

Keď vytvoríte nový projekt Fabric Apps, šablóna vygeneruje nasledujúcu štruktúru:

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

Kľúčové konfiguračné súbory

Rayfin/rayfin.yml

Súbor rayfin/rayfin.yml je hlavný konfiguračný súbor pre backend Fabric Apps. Kontroluje, ktoré služby bežia počas lokálneho vývoja a podporuje interpoláciu environmentálnych premenných pre dynamické konfiguračné hodnoty.

Celý prí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

Konfigurácia zahŕňa tieto kľúčové polia:

Najvyššie úrovne polí

Pole Typ Povinné Description
id string Áno Project slug používaný ako názov project v Docker Compose a identifikátor položky Fabric.
name string Áno Zobrazovací názov projektu, ktorý je čitateľný pre človeka.
version string Áno Project verzia (semver).
services object Áno Blok konfigurácie služieb.

services.data

Pole Typ Predvolené Description
enabled boolean false Zapnite dátovú službu.

services.auth

Pole Typ Predvolené Description
enabled boolean false Povolte autentifikovaciu službu.
expiryInMinutes number Expirácia tokenu JWT trvá niekoľko minút.
customClaims Record<string, string> K vydaným JWT sa pridávali colné nároky.
scopes string[] OAuth rozsahy (napríklad ["read:data", "write:data"]).
refreshToken.lifetimeInDays number Obnoviť životnosť tokenu za pár dní.
allowedRedirectUris string[] ["http://localhost:5173"] Povolil presmerovanie URI pre overovacie callbacky.

services.auth.password

Pole Typ Predvolené Description
enabled boolean true Povoliť overenie e-mailom a heslom pre lokálny rozvoj

services.auth.fabric

Pole Typ Predvolené Description
enabled boolean false Povoliť autentifikáciu sprostredkovanú Fabric (Microsoft Entra ID SSO).

services.staticHosting

Pole Typ Predvolené Description
enabled boolean false Povolte statický hosting obsahu.
root string Koreňový adresár frontendového projektu (vzhľadom na koreňový adresár projektu).
folder string "dist" Adresár obsahujúci vybudované statické aktíva (vzhľadom na root).
buildCommand string Príkaz shell na spustenie pred zabalením (napríklad npm run build).
indexDocument string Predvolený dokument podávaný pre koreňovú cestu (napríklad index.html).

Tip

Všetky hodnoty reťazcov podporujú interpoláciu environmentálnych premenných s ${VAR} a ${VAR:-default} syntaxou. Premenné sa rozlišujú z rayfin/.env prostredia shellu.

rayfin/.env

Súbor rayfin/.env je voliteľný environmentálny súbor používaný na zadávanie hodnôt prostredníctvom rayfin.yml interpolácie. Neukladajte tajomstvá do svojho repozitára. Namiesto toho vytvorte rayfin/.env.example súbor na dokumentačné účely a pridajte .env ho do svojho .gitignore súboru.

Rayfin/tsconfig.json

Súbor rayfin/tsconfig.json je konfigurácia TypeScriptu s referenciou na projekt, ktorú používa CLI Fabric Apps na kompiláciu definícií vašich entít. Rozširuje tvoj root tsconfig.json a prepisuje nastavenia, ktoré Fabric aplikácie potrebujú, ako sú composite: true a rozlíšenie Node.js modulov. Tento súbor by si nemal musieť upravovať priamo.

Súbory dátových modelov

Rayfin/Data/*.ts

Súbory v priečinku rayfin/data/ definujú vaše entity. Entity sú triedy TypeScript zdobené plus dekorátormi @entity()@uuid() ako a @text(). Každý súbor entity exportuje triedu, ktorá reprezentuje dátový model vo vašej aplikácii.

Rayfin/Data/schema.ts

Súbor mapuje rayfin/data/schema.ts mená entít na ich triedy. Klient Rayfin SDK používa túto mapu na zabezpečenie typovo bezpečného prístupu k entitám prostredníctvom client.data.<Entity>. Keď pridáte novú entitu, musíte ju zaregistrovať v tomto schémaovom súbore.

Generované artefakty

rayfin/.temp/

Priečinok rayfin/.temp/ obsahuje generované backendové artefakty, ktoré vznikajú pri spustení vývojového servera. Ak backend používa zastaranú schému alebo konfiguráciu, zastavte a reštartujte vývojový stack, aby ste tieto súbory znovu vygenerovali.

Dôležité

Neukladajte priečinok .temp/ do svojho repozitára. Pridajte ho do svojho .gitignore súboru.

Klientska štruktúra

Zložka src/ obsahuje váš frontendový aplikačný kód. Presná štruktúra závisí od toho, ktorú šablónu ste si vybrali pri tvorbe projektu, napríklad React alebo Vue.

Šablóny Fabric Apps používajú nasledujúce environmentálne premenné Vite pre konfiguráciu frontendu:

  • VITE_RAYFIN_API_URL – Základná URL adresa smerujúca frontend na backend Fabric Apps. Nastavte túto environmentálnu premennú pred spustením npm run dev , aby ste prepísali predvolenú hodnotu.
  • VITE_RAYFIN_PUBLISHABLE_KEY – Publikovateľný kľúč používaný na autentifikáciu klienta.
  • VITE_FABRIC_ITEM_ID – Fabric ID položky nastavené rayfin up. Napísané na .env.fabric-<workspacename> (a .env.fabric) počas nasadenia. Používa sa na autentifikáciu sprostredkované Fabric.
  • VITE_FABRIC_WORKSPACE_ID – ID pracovného priestoru Fabric nastavené rayfin up. Napísané spolu VITE_FABRIC_ITEM_ID počas nasadenia.