projectstructuur Fabric Apps

Fabric Apps-projecten gebruiken een consistente mapindeling, zodat u snel gegevensmodellen, back-endconfiguratie en front-endcode kunt vinden. In dit artikel worden de bestanden en mappen uitgelegd waarmee u waarschijnlijk kunt werken nadat u een project hebt gemaakt.

Mapindeling

Wanneer u een nieuw Fabric Apps-project maakt, genereert de sjabloon de volgende structuur:

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

Sleutelconfiguratiebestanden

rayfin/rayfin.yml

Het bestand rayfin/rayfin.yml is het hoofdconfiguratiebestand voor uw back-end van Fabric Apps. Het bepaalt welke services worden uitgevoerd tijdens lokale ontwikkeling en ondersteunt omgevingsvariabele interpolatie voor dynamische configuratiewaarden.

Volledig voorbeeld:

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

De configuratie bevat de volgende sleutelvelden:

Velden op het hoogste niveau

Veld Type Required Beschrijving
id string Ja Projectslug wordt gebruikt als de Docker Compose-projectnaam en de Fabric-item-id.
name string Ja Leesbare weergavenaam van het project.
version string Ja Project versie (semver).
services object Ja Blok voor serviceconfiguratie.

services.data

Veld Type Verstek Beschrijving
enabled boolean false Schakel de gegevensservice in.

services.auth

Veld Type Verstek Beschrijving
enabled boolean false Schakel de verificatieservice in.
expiryInMinutes number Vervaltijd van JWT-token in minuten.
customClaims Record<string, string> Aangepaste claims toegevoegd aan uitgegeven JWT's.
scopes string[] OAuth-bereiken (bijvoorbeeld ["read:data", "write:data"]).
refreshToken.lifetimeInDays number Levensduur van het vernieuwingstoken in dagen.
allowedRedirectUris string[] ["http://localhost:5173"] Toegestane omleidings-URI's voor callbacks voor verificatie.

services.auth.password

Veld Type Verstek Beschrijving
enabled boolean true E-mail- en wachtwoordverificatie inschakelen voor lokale ontwikkeling

services.auth.fabric

Veld Type Verstek Beschrijving
enabled boolean false Schakel Fabric brokered authentication (Microsoft Entra ID SSO) in.

services.staticHosting

Veld Type Verstek Beschrijving
enabled boolean false Schakel hosting van statische inhoud in.
root string Hoofdmap van het frontendproject (relatief aan de hoofdmap van het project).
folder string "dist" Map met gegenereerde statische assets (ten opzichte van root).
buildCommand string Shell-opdracht die moet worden uitgevoerd voordat ze worden verpakt (bijvoorbeeld npm run build).
indexDocument string Standaarddocument dat wordt geleverd voor het hoofdpad (bijvoorbeeld index.html).

Tip

Alle tekenreekswaarden ondersteunen omgevingsvariabeleinterpolatie met ${VAR} en ${VAR:-default} syntaxis. Variabelen worden opgelost uit rayfin/.env en de shell-omgeving.

rayfin/.env

Het rayfin/.env bestand is een optioneel omgevingsbestand dat wordt gebruikt voor het leveren van waarden via rayfin.yml interpolatie. Voer geen geheimen door naar uw opslagplaats. Maak in plaats daarvan een rayfin/.env.example bestand voor documentatiedoeleinden en voeg dit toe .env aan uw .gitignore bestand.

rayfin/tsconfig.json

Het bestand rayfin/tsconfig.json is een typeScript-configuratie met projectverwijzingen die wordt gebruikt door de CLI van Fabric Apps om uw entiteitsdefinities te compileren. Het breidt uw basis-tsconfig.json uit en overschrijft de instellingen die Fabric Apps vereist, zoals composite: true en Node.js-module-resolutie. U hoeft dit bestand niet rechtstreeks te bewerken.

Gegevensmodelbestanden

rayfin/data/*.ts

Bestanden in de rayfin/data/ map definiëren uw entiteiten. Entiteiten zijn TypeScript-klassen voorzien van @entity() en velddecorators zoals @uuid() en @text(). Elk entiteitsbestand exporteert een klasse die een gegevensmodel in uw toepassing vertegenwoordigt.

rayfin/data/schema.ts

Het rayfin/data/schema.ts bestand wijst entiteitsnamen toe aan hun klassen. De Rayfin SDK-client gebruikt deze mapping om typeveilige toegang tot entiteiten te bieden via client.data.<Entity>. Wanneer u een nieuwe entiteit toevoegt, moet u deze registreren in dit schemabestand.

Gegenereerde artefacten

rayfin/.temp/

De rayfin/.temp/ map bevat gegenereerde backend-artefacten die worden aangemaakt wanneer u de ontwikkelserver uitvoert. Als de back-end verouderde schema's of configuraties lijkt te gebruiken, moet u de ontwikkelstack stoppen en opnieuw starten om deze bestanden opnieuw te genereren.

Important

Voer de .temp/ map niet door naar uw opslagplaats. Voeg het toe aan uw .gitignore bestand.

Front-endstructuur

De src/ map bevat de code van uw front-endtoepassing. De exacte structuur is afhankelijk van de sjabloon die u hebt gekozen bij het maken van uw project, zoals React of Vue.

Fabric Apps-sjablonen gebruiken de volgende omgevingsvariabelen voor Vite voor front-endconfiguratie:

  • VITE_RAYFIN_API_URL – Basis-URL die de frontend naar de Fabric Apps-backend verwijst. Stel deze omgevingsvariabele in voordat u npm run dev uitvoert om de standaardwaarde te overschrijven.
  • VITE_RAYFIN_PUBLISHABLE_KEY – Publiceerbare sleutel die wordt gebruikt voor clientverificatie.
  • VITE_FABRIC_ITEM_ID – Fabric item-id ingesteld door rayfin up. Geschreven naar .env.fabric-<workspacename> (en .env.fabric) tijdens de implementatie. Wordt gebruikt voor Fabric brokered verificatie.
  • VITE_FABRIC_WORKSPACE_ID – Fabric werkruimte-id ingesteld door rayfin up. Geschreven naast VITE_FABRIC_ITEM_ID tijdens de implementatie.