Fabric Apps projektstruktur

Fabric Apps-projekter bruger et ensartet mappelayout, så du hurtigt kan finde datamodeller, backend-konfiguration og frontend-kode. Denne artikel forklarer de filer og mapper, du sandsynligvis vil arbejde med, efter du har oprettet et projekt.

Mappelayout

Når du opretter et nyt Fabric Apps-projekt, genererer skabelonen følgende struktur:

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

Nøglekonfigurationsfiler

Rayfin/rayfin.yml

rayfin/rayfin.yml-filen er hovedkonfigurationsfilen for din Fabric Apps backend. Den styrer, hvilke tjenester der kører under lokal udvikling, og understøtter interpolation af miljøvariabler for dynamiske konfigurationsværdier.

Fuldt eksempel:

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 inkluderer disse nøglefelter:

Topniveau-felter

Felt Type Påkrævet Beskrivelse
id string Ja Project slug bruges som Docker Compose project navn og Fabric item identifier.
name string Ja Menneskeligt læsbart projektvisningsnavn.
version string Ja Project-version (semver).
services object Ja Servicekonfigurationsblok.

services.data

Felt Type Standardindstilling Beskrivelse
enabled boolean false Aktivér datatjenesten.

services.auth

Felt Type Standardindstilling Beskrivelse
enabled boolean false Aktivér autentificeringstjenesten.
expiryInMinutes number JWT-tokenet udløber om få minutter.
customClaims Record<string, string> Toldkrav tilføjet til udstedte JWT'er.
scopes string[] OAuth-scopes (for eksempel, ["read:data", "write:data"]).
refreshToken.lifetimeInDays number Opdater tokenets levetid i dage.
allowedRedirectUris string[] ["http://localhost:5173"] Tillod omdirigerings-URI'er til godkendelses-callbacks.

services.auth.password

Felt Type Standardindstilling Beskrivelse
enabled boolean true Aktiver e-mail- og adgangskodeautentificering til lokal udvikling

services.auth.fabric

Felt Type Standardindstilling Beskrivelse
enabled boolean false Aktiver Fabric brokered authentication (Microsoft Entra ID SSO).

services.staticHosting

Felt Type Standardindstilling Beskrivelse
enabled boolean false Aktivér hosting af statisk indhold.
root string Rodmappen for frontend-projektet (i forhold til projektets rod).
folder string "dist" Mappe, der indeholder byggede statiske assets (relativt til root).
buildCommand string Shell-kommandoen skal køre før pakning (for eksempel, npm run build).
indexDocument string Standarddokument leveret for rodstien (for eksempel index.html).

Tip

Alle strengværdier understøtter interpolation af miljøvariabler med ${VAR} og syntaks ${VAR:-default} . Variabler opløses fra rayfin/.env og shell-miljøet.

rayfin/.env

Filen rayfin/.env er en valgfri miljøfil, der bruges til at levere værdier til rayfin.yml gennem interpolation. Lad være med at lægge hemmeligheder i dit arkiv. Opret i stedet en rayfin/.env.example fil til dokumentationsformål og tilføj .env til din .gitignore fil.

Rayfin/tsconfig.json

rayfin/tsconfig.json-filen er en projektreference TypeScript-konfiguration, der bruges af Fabric Apps CLI til at kompilere dine entitetsdefinitioner. Den udvider din root tsconfig.json og overskriver de indstillinger, som Fabric Apps har brug for, såsom composite: true og Node.js modulopløsning. Du burde ikke behøve at redigere denne fil direkte.

Datamodelfiler

Rayfin/Data/*.ts

Filerne i mappen definerer rayfin/data/ dine enheder. Entiteter er TypeScript-klasser dekoreret med @entity() plus feltdekoratorer som @uuid() og @text(). Hver enhedsfil eksporterer en klasse, der repræsenterer en datamodel i din applikation.

Rayfin/Data/schema.ts

Filen rayfin/data/schema.ts kortlægger entitetsnavne til deres klasser. Rayfin SDK-klienten bruger dette kort til at give type-sikker adgang til enheder gennem client.data.<Entity>. Når du tilføjer en ny entitet, skal du registrere den i denne skemafil.

Genererede artefakter

rayfin/.temp/

Mappen rayfin/.temp/ indeholder genererede backend-artefakter, der oprettes, når du kører udviklingsserveren. Hvis backenden ser ud til at bruge forældet skema eller konfiguration, stop og genstart udviklingsstakken for at generere disse filer.

Vigtig

Commit .temp/ ikke mappen til dit repository. Tilføj det til din .gitignore fil.

Frontendstruktur

Mappen src/ indeholder din frontend-applikationskode. Den præcise struktur afhænger af, hvilken skabelon du valgte, når du lavede dit projekt, såsom React eller Vue.

Fabric Apps-skabeloner bruger følgende Vite-miljøvariabler til frontend-konfiguration:

  • VITE_RAYFIN_API_URL – Basis-URL, der peger frontend mod Fabric Apps backend. Sæt denne miljøvariabel før kørsel npm run dev til at tilsidesætte standarden.
  • VITE_RAYFIN_PUBLISHABLE_KEY – Publicerbar nøgle brugt til klientautentificering.
  • VITE_FABRIC_ITEM_ID – Fabric vare-ID sat med rayfin up. Skrevet til .env.fabric-<workspacename> (og .env.fabric) under udsendelse. Bruges til Fabric brokered authentication.
  • VITE_FABRIC_WORKSPACE_ID – Fabric arbejdsområde-ID sat af rayfin up. Skrevet ved siden af VITE_FABRIC_ITEM_ID under udsendelsen.