Fabric Apps projektstruktúra

Fabric Alkalmazásprojektek egységes mappaelrendezést használnak, így gyorsan megtalálhatja az adatmodelleket, a háttérkonfigurációt és az előtérbeli kódot. Ez a cikk a projekt létrehozása után valószínűleg használt fájlokat és mappákat ismerteti.

Mappaelrendezés

Új Fabric Apps-projekt létrehozásakor a sablon a következő struktúrát hozza létre:

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

Kulcskonfigurációs fájlok

rayfin/rayfin.yml

A rayfin/rayfin.yml fájl a Fabric Apps háttérrendszerének fő konfigurációs fájlja. Szabályozza, hogy mely szolgáltatások futnak a helyi fejlesztés során, és támogatja a környezeti változók interpolációját a dinamikus konfigurációs értékekhez.

Teljes példa:

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

A konfiguráció a következő kulcsmezőket tartalmazza:

Felső szintű mezők

Field Típus Szükséges Leírás
id string Igen A Docker Compose-projektnévként és Fabric-elemazonosítóként használt projektslug.
name string Igen Ember által olvasható projekt megjelenítendő neve.
version string Igen Projektverzió (semver).
services object Igen Szolgáltatáskonfigurációs blokk.

services.data

Field Típus Alapértelmezett Leírás
enabled boolean false Engedélyezze az adatszolgáltatást.

services.auth

Field Típus Alapértelmezett Leírás
enabled boolean false Engedélyezze a hitelesítési szolgáltatást.
expiryInMinutes number JWT-token lejárati ideje percben.
customClaims Record<string, string> A kiadott JWT-khez hozzáadva egyéni állítások.
scopes string[] OAuth-hatókörök (például ["read:data", "write:data"]).
refreshToken.lifetimeInDays number A frissítési token élettartama napokban.
allowedRedirectUris string[] ["http://localhost:5173"] Engedélyezett átirányítási URI-k hitelesítéses visszahívásokhoz.

services.auth.password

Field Típus Alapértelmezett Leírás
enabled boolean true E-mail- és jelszóhitelesítés engedélyezése helyi fejlesztéshez

services.auth.fabric

Field Típus Alapértelmezett Leírás
enabled boolean false Engedélyezze Fabric közvetítőalapú hitelesítést (Microsoft Entra ID egyszeri bejelentkezést).

services.staticHosting

Field Típus Alapértelmezett Leírás
enabled boolean false Statikus tartalom üzemeltetésének engedélyezése.
root string A frontend projekt gyökérkönyvtára (a projekt gyökérkönyvtárához viszonyítva).
folder string "dist" A létrehozott statikus erőforrásokat tartalmazó könyvtár (a(z) root könyvtárhoz viszonyítva).
buildCommand string A csomagolás előtt futtatandó Shell-parancs (például npm run build).
indexDocument string A gyökér elérési úthoz kiszolgált alapértelmezett dokumentum (például index.html).

Jótanács

Minden karakterláncérték támogatja a környezeti változók interpolációját a ${VAR} és ${VAR:-default} szintaxis használatával. A változók feloldása a(z) rayfin/.env és a parancsértelmező környezetéből történik.

rayfin/.env

A rayfin/.env fájl egy opcionális környezeti fájl, amely a(z) rayfin.yml értékeinek interpolációval történő megadására szolgál. Ne commitoljon titkos adatokat a repozitóriumba. Ehelyett hozzon létre egy rayfin/.env.example fájlt dokumentációs célokra, és adja hozzá .env a .gitignore fájlhoz.

rayfin/tsconfig.json

A rayfin/tsconfig.json fájl egy projektreferencia-TypeScript-konfiguráció, amelyet a Fabric Apps CLI az entitásdefiníciók lefordításához használ. Kibővíti a gyökérszintű tsconfig.json elemet, és felülírja a Fabric-alkalmazások számára szükséges beállításokat, például a composite: true elemet és a Node.js-modulok feloldását. Nem kell közvetlenül szerkesztenie ezt a fájlt.

Adatmodell-fájlok

rayfin/data/*.ts

A mappában lévő rayfin/data/ fájlok határozzák meg az entitásokat. Az entitások olyan TypeScript-osztályok, amelyeket a @entity(), valamint meződekorátorok, például a @uuid() és @text() dekorálnak. Minden entitásfájl exportál egy osztályt, amely egy adatmodellt jelöl az alkalmazásban.

rayfin/data/schema.ts

A rayfin/data/schema.ts fájl leképozza az entitásneveket az osztályaikra. A Rayfin SDK-ügyfél ezen a térképen keresztül biztosít típusbiztos hozzáférést az entitásokhoz client.data.<Entity>. Új entitás hozzáadásakor regisztrálnia kell azt ebben a sémafájlban.

Generált artefaktumok

rayfin/.temp/

A rayfin/.temp/ mappa olyan létrehozott háttérösszetevőket tartalmaz, amelyek a fejlesztési kiszolgáló futtatásakor jönnek létre. Ha úgy tűnik, hogy a háttérrendszer elavult sémát vagy konfigurációt használ, állítsa le és indítsa újra a fejlesztői vermet a fájlok újragenerálásához.

Important

Ne véglegesítse a .temp/ mappát az adattárban. Adja hozzá a .gitignore fájlhoz.

Frontend struktúra

A src/ mappa tartalmazza az előtéralkalmazás kódját. A pontos struktúra attól függ, hogy a projekt létrehozásakor melyik sablont választotta, például a Reactet vagy a Vue-t.

Fabric Alkalmazássablonok a következő Vite környezeti változókat használják az előtérbeli konfigurációhoz:

  • VITE_RAYFIN_API_URL – A frontendet a Fabric Apps háttérrendszerére irányító alapértelmezett URL-cím. Állítsa be ezt a környezeti változót a npm run dev futtatása előtt az alapértelmezett érték felülbírálásához.
  • VITE_RAYFIN_PUBLISHABLE_KEY – Az ügyfélhitelesítéshez használt közzétételi kulcs.
  • VITE_FABRIC_ITEM_ID – A(z) rayfin up által beállított Fabric-elemazonosító. Az üzembe helyezés során ide lesz írva: .env.fabric-<workspacename> (és .env.fabric). Fabric közvetítőalapú hitelesítéséhez használatos.
  • VITE_FABRIC_WORKSPACE_ID – Fabric rayfin up által beállított munkaterület-azonosító. Az üzembe helyezés során a(z) VITE_FABRIC_ITEM_ID elemmel együtt íródik.