Fabric Apps-Projektstruktur

Fabric Apps-Projekte verwenden ein einheitliches Ordnerlayout, sodass Sie Datenmodelle, Back-End-Konfiguration und Frontend-Code schnell finden können. In diesem Artikel werden die Dateien und Ordner erläutert, mit den Sie wahrscheinlich arbeiten, nachdem Sie ein Projekt erstellt haben.

Ordnerstruktur

Wenn Sie ein neues Fabric Apps-Projekt erstellen, generiert die Vorlage die folgende Struktur:

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

Wichtige Konfigurationsdateien

rayfin/rayfin.yml

Die datei rayfin/rayfin.yml ist die Hauptkonfigurationsdatei für Ihr Fabric Apps-Back-End. Er steuert, welche Dienste während der lokalen Entwicklung ausgeführt werden und die Interpolation von Umgebungsvariablen für dynamische Konfigurationswerte unterstützt.

Vollständiges Beispiel:

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

Die Konfiguration umfasst die folgenden Schlüsselfelder:

Felder auf oberster Ebene

Feld Typ Erforderlich Description
id string Ja Projekt-Slug, der als Docker-Compose-Projektname und Fabric-Elementkennung verwendet wird.
name string Ja Für Menschen lesbarer Projektanzeigename.
version string Ja Projektversion (semver).
services object Ja Konfigurationsblock des Dienstes.

services.data

Feld Typ Vorgabe Description
enabled boolean false Aktivieren Sie den Datendienst.

services.auth

Feld Typ Vorgabe Description
enabled boolean false Aktivieren Sie den Authentifizierungsdienst.
expiryInMinutes number JWT-Token läuft in Minuten ab.
customClaims Record<string, string> Benutzerdefinierte Ansprüche, die zu ausgestellten JWTs hinzugefügt wurden.
scopes string[] OAuth-Bereiche (z. B ["read:data", "write:data"]. ).
refreshToken.lifetimeInDays number Aktualisierung der Tokenlebensdauer in Tagen.
allowedRedirectUris string[] ["http://localhost:5173"] Zulässige Umleitungs-URIs für Authentifizierungsrückrufe.

services.auth.password

Feld Typ Vorgabe Description
enabled boolean true Aktivieren der E-Mail- und Kennwortauthentifizierung für die lokale Entwicklung

services.auth.fabric

Feld Typ Vorgabe Description
enabled boolean false Aktivieren sie Fabric brokered authentication (Microsoft Entra ID SSO).

services.staticHosting

Feld Typ Vorgabe Description
enabled boolean false Aktivieren Sie statisches Inhaltshosting.
root string Stammverzeichnis des Frontend-Projekts (relativ zum Projektstamm).
folder string "dist" Verzeichnis mit erstellten statischen Assets (relativ zu root).
buildCommand string Shell-Befehl, der vor dem Verpacken ausgeführt werden soll (z. B npm run build. ).
indexDocument string Standarddokument, das für den Stammpfad bereitgestellt wird (z. B index.html. ).

Tipp

Alle Zeichenfolgenwerte unterstützen die Interpolation von Umgebungsvariablen mit ${VAR} und ${VAR:-default} syntax. Variablen werden aus rayfin/.env und der Shell-Umgebung ermittelt.

rayfin/.env

Die rayfin/.env Datei ist eine optionale Umgebungsdatei, die verwendet wird, um Werte rayfin.yml über die Interpolation bereitzustellen. Übernehmen Sie keine geheimen Daten für Ihr Repository. Erstellen Sie stattdessen eine rayfin/.env.example-Datei für Dokumentationszwecke und fügen Sie .env zu Ihrer .gitignore-Datei hinzu.

rayfin/tsconfig.json

Die Datei rayfin/tsconfig.json ist eine TypeScript-Konfiguration mit Projektreferenz, die von der Fabric Apps CLI zum Kompilieren Ihrer Entitätsdefinitionen verwendet wird. Sie erweitert ihre Stamm-tsconfig.json und überschreibt die Einstellungen, die Fabric Apps benötigen, z. B. composite: true und Node.js Modulauflösung. Sie sollten diese Datei nicht direkt bearbeiten müssen.

Datenmodelldateien

rayfin/data/*.ts

Dateien im rayfin/data/ Ordner definieren Ihre Entitäten. Entitäten sind TypeScript-Klassen, die mit @entity() sowie Feldd dekoratoren wie @uuid() und @text() versehen sind. Jede Entitätsdatei exportiert eine Klasse, die ein Datenmodell in Ihrer Anwendung darstellt.

rayfin/data/schema.ts

Die rayfin/data/schema.ts Datei ordnet entitätsnamen ihren Klassen zu. Der Rayfin SDK-Client verwendet diese Zuordnung, um typsicheren Zugriff auf Entitäten über client.data.<Entity> bereitzustellen. Wenn Sie eine neue Entität hinzufügen, müssen Sie sie in dieser Schemadatei registrieren.

Generierte Artefakte

rayfin/.temp/

Der rayfin/.temp/ Ordner enthält generierte Back-End-Artefakte, die beim Ausführen des Entwicklungsservers erstellt werden. Wenn das Back-End offenbar ein veraltetes Schema oder eine veraltete Konfiguration verwendet, beenden und starten Sie den Dev-Stack neu, um diese Dateien neu zu generieren.

Important

Übernehmen Sie den .temp/ Ordner nicht in Ihr Repository. Fügen Sie sie Zu Ihrer .gitignore Datei hinzu.

Front-End-Struktur

Der src/ Ordner enthält Ihren Front-End-Anwendungscode. Die genaue Struktur hängt davon ab, welche Vorlage Sie beim Erstellen Ihres Projekts ausgewählt haben, z. B. React oder Vue.

Fabric Apps-Vorlagen verwenden die folgenden Vite-Umgebungsvariablen für die Front-End-Konfiguration:

  • VITE_RAYFIN_API_URL – Basis-URL, die das Frontend auf das Fabric-Apps-Backend verweist. Legen Sie diese Umgebungsvariable fest, bevor Sie npm run dev ausführen, um den Standard zu überschreiben.
  • VITE_RAYFIN_PUBLISHABLE_KEY – Veröffentlichungsfähiger Schlüssel, der für die Clientauthentifizierung verwendet wird.
  • VITE_FABRIC_ITEM_ID – Fabric Element-ID, die von rayfin up festgelegt wurde. Geschrieben in .env.fabric-<workspacename> (und .env.fabric) während der Bereitstellung. Wird für die Fabric-vermittelte Authentifizierung verwendet.
  • VITE_FABRIC_WORKSPACE_ID – Fabric Arbeitsbereichs-ID, die von rayfin up festgelegt wurde. Wird während der Bereitstellung zusammen mit VITE_FABRIC_ITEM_ID geschrieben.