Struttura del progetto app Fabric

Fabric i progetti di app usano un layout coerente delle cartelle per trovare rapidamente modelli di dati, configurazione back-end e codice front-end. Questo articolo illustra i file e le cartelle con cui è più probabile lavorare dopo aver creato un progetto.

Layout della cartella

Quando si crea un nuovo progetto app di Fabric, il modello genera la struttura seguente:

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

File di configurazione chiave

rayfin/rayfin.yml

Il file rayfin/rayfin.yml è il file di configurazione principale per il back-end Fabric Apps. Controlla i servizi eseguiti durante lo sviluppo locale e supporta l'interpolazione di variabili di ambiente per i valori di configurazione dinamica.

Esempio completo:

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

La configurazione include questi campi chiave:

Campi di primo livello

Campo Tipo Obbligatorio Description
id string Slug del progetto usato come nome del progetto Docker Compose e identificatore dell'elemento Fabric.
name string Nome visualizzato del progetto comprensibile.
version string Versione del progetto (semver).
services object Blocco di configurazione del servizio.

services.data

Campo Tipo Impostazione predefinita Description
enabled boolean false Abilitare il servizio dati.

services.auth

Campo Tipo Impostazione predefinita Description
enabled boolean false Abilitare il servizio di autenticazione.
expiryInMinutes number Il token JWT scade in pochi minuti.
customClaims Record<string, string> Attestazioni personalizzate aggiunte ai token JWT emessi.
scopes string[] Scope OAuth (ad esempio, ["read:data", "write:data"]).
refreshToken.lifetimeInDays number Durata del token di aggiornamento in giorni.
allowedRedirectUris string[] ["http://localhost:5173"] URI di reindirizzamento consentiti per i callback di autenticazione.

services.auth.password

Campo Tipo Impostazione predefinita Description
enabled boolean true Abilitare l'autenticazione tramite posta elettronica e password per lo sviluppo locale

services.auth.fabric

Campo Tipo Impostazione predefinita Description
enabled boolean false Abilitare l'autenticazione mediata di Fabric (Microsoft Entra ID SSO).

services.staticHosting

Campo Tipo Impostazione predefinita Description
enabled boolean false Abilitare l'hosting di contenuto statico.
root string Cartella radice del progetto frontend (relativa alla radice del progetto).
folder string "dist" Directory che contiene le risorse statiche generate (relative a root).
buildCommand string Comando Shell da eseguire prima della creazione del pacchetto , ad esempio npm run build.
indexDocument string Documento predefinito servito per il percorso radice (ad esempio, index.html).

Suggerimento

Tutti i valori di tipo stringa supportano l'interpolazione delle variabili di ambiente con la sintassi ${VAR} e ${VAR:-default}. Le variabili vengono ricavate da rayfin/.env e dall'ambiente della shell.

rayfin/.env

Il rayfin/.env file è un file di ambiente facoltativo usato per fornire valori a rayfin.yml tramite interpolazione. Non fare commit di informazioni sensibili nel tuo repository. Creare invece un rayfin/.env.example file a scopo di documentazione e aggiungerlo .env al .gitignore file.

rayfin/tsconfig.json

Il file rayfin/tsconfig.json è una configurazione TypeScript di riferimento al progetto usata dall'interfaccia della riga di comando di Fabric Apps per compilare le definizioni di entità. Estende l'elemento radice tsconfig.json e sovrascrive le impostazioni necessarie per Fabric Apps, ad esempio composite: true e la risoluzione dei moduli Node.js. Non è necessario modificare direttamente questo file.

File del modello di dati

rayfin/data/*.ts

I file nella rayfin/data/ cartella definiscono le entità. Le entità sono classi TypeScript decorate con @entity(), oltre a decoratori di campo come @uuid() e @text(). Ogni file di entità esporta una classe che rappresenta un modello di dati nell'applicazione.

rayfin/data/schema.ts

Il file rayfin/data/schema.ts associa i nomi delle entità alle rispettive classi. Il client dell'SDK Rayfin usa questa mappa per fornire un accesso alle entità con controllo dei tipi tramite client.data.<Entity>. Quando si aggiunge una nuova entità, è necessario registrarla in questo file di schema.

Artefatti generati

rayfin/.temp/

La rayfin/.temp/ cartella contiene elementi back-end generati creati quando si esegue il server di sviluppo. Se il back-end sembra usare uno schema o una configurazione non aggiornati, arrestare e riavviare lo stack di sviluppo per rigenerare questi file.

Importante

Non eseguire il commit della .temp/ cartella nel repository. Aggiungerlo al .gitignore file.

Struttura front-end

La src/ cartella contiene il codice dell'applicazione front-end. La struttura esatta dipende dal modello scelto durante la creazione del progetto, ad esempio React o Vue.

Fabric modelli di app usano le variabili di ambiente Vite seguenti per la configurazione front-end:

  • VITE_RAYFIN_API_URL – URL di base che punta il frontend al backend di Fabric Apps. Impostare questa variabile d'ambiente prima di eseguire npm run dev per sovrascrivere l'impostazione predefinita.
  • VITE_RAYFIN_PUBLISHABLE_KEY : chiave pubblicabile usata per l'autenticazione client.
  • VITE_FABRIC_ITEM_ID – ID dell'elemento Fabric impostato da rayfin up. Scritto in .env.fabric-<workspacename> (e .env.fabric) durante la distribuzione. Usato per l'autenticazione mediata di Fabric.
  • VITE_FABRIC_WORKSPACE_ID : ID dell'area di lavoro Fabric impostato da rayfin up. Viene scritto insieme a VITE_FABRIC_ITEM_ID durante la distribuzione.