Fabric Apps-projektstruktur

Projekten i Fabric Apps använder en enhetlig mappstruktur så att du snabbt kan hitta datamodeller, serverdelskonfiguration och klientkod. I den här artikeln beskrivs de filer och mappar som du troligtvis kommer att arbeta med när du har skapat ett projekt.

Mapplayout

När du skapar ett nytt Fabric Apps-projekt genererar mallen följande struktur:

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

Nyckelkonfigurationsfiler

rayfin/rayfin.yml

Filen rayfin/rayfin.yml är huvudkonfigurationsfilen för serverdelen för Fabric Apps. Den styr vilka tjänster som körs under lokal utveckling och stöder miljövariabelinterpolation för dynamiska konfigurationsvärden.

Fullständigt exempel:

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

Konfigurationen innehåller följande nyckelfält:

Fält på toppnivå

Fält Type Obligatoriskt Description
id string Yes Projektslugg som används som projektnamn i Docker Compose och som Fabric-objektidentifierare.
name string Yes Projektets visningsnamn som är läsbart för människor.
version string Yes Projektversion (semver).
services object Yes Block för tjänstkonfiguration.

services.data

Fält Type Standardinställning Description
enabled boolean false Aktivera datatjänsten.

services.auth

Fält Type Standardinställning Description
enabled boolean false Aktivera autentiseringstjänsten.
expiryInMinutes number JWT-token upphör att gälla på några minuter.
customClaims Record<string, string> Anpassade anspråk har lagts till i utfärdade JWTs.
scopes string[] OAuth-omfång (till exempel ["read:data", "write:data"]).
refreshToken.lifetimeInDays number Uppdatera tokens livslängd i dagar.
allowedRedirectUris string[] ["http://localhost:5173"] Tillåtna omdirigerings-URI:er för autentiseringsåteranrop.

services.auth.password

Fält Type Standardinställning Description
enabled boolean true Aktivera e-post- och lösenordsautentisering för lokal utveckling

services.auth.fabric

Fält Type Standardinställning Description
enabled boolean false Aktivera Fabric-förmedlad autentisering (Microsoft Entra ID-enkel inloggning).

services.staticHosting

Fält Type Standardinställning Description
enabled boolean false Aktivera värd för statiskt innehåll.
root string Rotkatalog för frontendprojektet (relativt till projektroten).
folder string "dist" Katalog som innehåller inbyggda statiska tillgångar (i förhållande till root).
buildCommand string Shell-kommando som ska köras före paketering (till exempel npm run build).
indexDocument string Standarddokument som levereras för rotsökvägen (till exempel index.html).

Tips/Råd

Alla strängvärden stöder miljövariabelinterpolation med ${VAR} och ${VAR:-default} syntax. Variabler löses från rayfin/.env och shell-miljön.

rayfin/.env

Filen rayfin/.env är en valfri miljöfil som används för att ange värden till rayfin.yml via interpolering. Checka inte in hemliga uppgifter i ditt repo. Skapa i stället en rayfin/.env.example fil i dokumentationssyfte och lägg till .env i .gitignore filen.

rayfin/tsconfig.json

Filen rayfin/tsconfig.json är en TypeScript-konfiguration för projektreferens som används av Fabric Apps CLI för att kompilera entitetsdefinitioner. Den utökar din tsconfig.json på rotnivå och åsidoskriver de inställningar som Fabric Apps behöver, till exempel composite: true och Node.js-modulupplösning. Du bör inte behöva redigera den här filen direkt.

Datamodellfiler

rayfin/data/*.ts

Filer i rayfin/data/ mappen definierar dina entiteter. Entiteter är TypeScript-klasser som är dekorerade med @entity() plusfältdekoratörer som @uuid() och @text(). Varje entitetsfil exporterar en klass som representerar en datamodell i ditt program.

rayfin/data/schema.ts

Filen rayfin/data/schema.ts mappar entitetsnamn till deras klasser. Rayfin SDK-klienten använder den här kartan för att ge typsäker åtkomst till entiteter via client.data.<Entity>. När du lägger till en ny entitet måste du registrera den i den här schemafilen.

Genererade artefakter

rayfin/.temp/

Mappen rayfin/.temp/ innehåller genererade backend-artefakter som skapas när du kör utvecklingsservern. Om serverdelen verkar använda inaktuellt schema eller konfiguration stoppar du och startar om utvecklingsstacken för att återskapa filerna.

Important

Checka inte in mappen på .temp/ lagringsplatsen. Lägg till den i .gitignore filen.

Klientdelsstruktur

Mappen src/ innehåller klientdelsprogrammets kod. Den exakta strukturen beror på vilken mall du valde när du skapade projektet, till exempel React eller Vue.

Fabric Apps-mallar använder följande Vite-miljövariabler för klientdelskonfiguration:

  • VITE_RAYFIN_API_URL – Bas-URL som pekar klientdelen på Fabric Apps-serverdelen. Ange den här miljövariabeln innan du kör npm run dev för att åsidosätta standardinställningen.
  • VITE_RAYFIN_PUBLISHABLE_KEY – Publiceringsbar nyckel som används för klientautentisering.
  • VITE_FABRIC_ITEM_ID – Fabric objekt-ID som anges av rayfin up. Skrivs till .env.fabric-<workspacename> (och .env.fabric) under distributionen. Används för Fabric-mäklarförmedlad autentisering.
  • VITE_FABRIC_WORKSPACE_ID – Fabric arbetsyte-ID som anges av rayfin up. Skrivs samtidigt som VITE_FABRIC_ITEM_ID under driftsättning.