structure de projet Fabric Apps

Les projets Fabric Apps utilisent une structure de dossiers cohérente pour vous permettre de trouver rapidement les modèles de données, la configuration du back-end et le code du front-end. Cet article explique les fichiers et dossiers que vous êtes le plus susceptible d’utiliser une fois que vous avez créé un projet.

Disposition des dossiers

Lorsque vous créez un projet Fabric Apps, le modèle génère la structure suivante :

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

Fichiers de configuration de clé

rayfin/rayfin.yml

Le fichier rayfin/rayfin.yml est le fichier de configuration principal de votre back-end Fabric Apps. Il contrôle les services exécutés pendant le développement local et prend en charge l’interpolation des variables d’environnement pour les valeurs de configuration dynamique.

Exemple complet :

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 configuration inclut ces champs clés :

Champs de niveau supérieur

Champ Type Obligatoire Description
id string Oui Project slug utilisé comme nom de project Docker Compose et identificateur d’élément Fabric.
name string Oui Nom d’affichage du projet compréhensible par l’homme.
version string Oui Version du projet (semver).
services object Oui Bloc de configuration de service.

services.data

Champ Type Par défaut Description
enabled boolean false Activez le service de données.

services.auth

Champ Type Par défaut Description
enabled boolean false Activez le service d’authentification.
expiryInMinutes number Expiration du jeton JWT en minutes.
customClaims Record<string, string> Claims personnalisés ajoutés aux jetons JWT émis.
scopes string[] Étendues OAuth (par exemple, ["read:data", "write:data"]).
refreshToken.lifetimeInDays number Durée de vie du jeton d’actualisation en jours.
allowedRedirectUris string[] ["http://localhost:5173"] URI de redirection autorisées pour les retours d’authentification.

services.auth.password

Champ Type Par défaut Description
enabled boolean true Activer l’authentification par e-mail et mot de passe pour le développement local

services.auth.fabric

Champ Type Par défaut Description
enabled boolean false Activez l’authentification négociée de Fabric (Microsoft Entra ID SSO).

services.staticHosting

Champ Type Par défaut Description
enabled boolean false Activez l’hébergement de contenu statique.
root string Répertoire racine du projet front-end (relatif à la racine du projet).
folder string "dist" Répertoire contenant des ressources statiques générées (par rapport à root).
buildCommand string Commande Shell à exécuter avant l’empaquetage (par exemple, npm run build).
indexDocument string Document par défaut renvoyé pour le chemin racine (par exemple, index.html).

Conseil / Astuce

Toutes les valeurs de chaîne prennent en charge l’interpolation des variables d’environnement avec la syntaxe ${VAR} et ${VAR:-default}. Les variables sont résolues à partir de rayfin/.env et de l’environnement shell.

rayfin/.env

Le fichier rayfin/.env est un fichier d’environnement facultatif utilisé pour fournir des valeurs à rayfin.yml par interpolation. N’ajoutez pas d’informations sensibles à votre dépôt. Au lieu de cela, créez un fichier rayfin/.env.example à des fins de documentation et ajoutez .env à votre fichier .gitignore.

rayfin/tsconfig.json

Le fichier rayfin/tsconfig.json est une configuration TypeScript de référence de projet utilisée par l’interface CLI Fabric Apps pour compiler vos définitions d’entité. Il étend votre racine tsconfig.json et redéfinit les paramètres de configuration dont Fabric Apps a besoin, tels que composite: true et la résolution des modules Node.js. Vous n’avez pas besoin de modifier ce fichier directement.

Fichiers de modèle de données

rayfin/data/*.ts

Les fichiers du rayfin/data/ dossier définissent vos entités. Les entités sont des classes TypeScript décorées avec @entity(), ainsi que des décorateurs de champs tels que @uuid() et @text(). Chaque fichier d’entité exporte une classe qui représente un modèle de données dans votre application.

rayfin/data/schema.ts

Le rayfin/data/schema.ts fichier mappe les noms d’entités à leurs classes. Le client du Kit de développement logiciel (SDK) Rayfin utilise cette carte pour fournir un accès de type sécurisé aux entités via client.data.<Entity>. Lorsque vous ajoutez une nouvelle entité, vous devez l’inscrire dans ce fichier de schéma.

Artefacts générés

rayfin/.temp/

Le rayfin/.temp/ dossier contient des artefacts back-end générés qui sont créés lorsque vous exécutez le serveur de développement. Si le back-end semble utiliser un schéma ou une configuration obsolète, arrêtez et redémarrez la pile de développement pour régénérer ces fichiers.

Important

Ne validez pas le dossier .temp/ dans votre dépôt. Ajoutez-le à votre .gitignore fichier.

Structure du frontend

Le src/ dossier contient votre code d’application front-end. La structure exacte dépend du modèle que vous avez choisi lors de la création de votre projet, tel que React ou Vue.

Les modèles d’applications Fabric utilisent les variables d’environnement Vite suivantes pour la configuration de l’interface utilisateur :

  • VITE_RAYFIN_API_URL : URL de base pointant le front-end sur le serveur principal Fabric Apps. Définissez cette variable d’environnement avant d’exécuter npm run dev pour remplacer la valeur par défaut.
  • VITE_RAYFIN_PUBLISHABLE_KEY : clé modifiable utilisée pour l’authentification du client.
  • VITE_FABRIC_ITEM_ID : ID d’élément Fabric défini par rayfin up. Écrit dans .env.fabric-<workspacename> (et .env.fabric) pendant le déploiement. Utilisé pour l’authentification répartie Fabric.
  • VITE_FABRIC_WORKSPACE_ID : ID d’espace de travail Fabric défini par rayfin up. Écrit avec VITE_FABRIC_ITEM_ID pendant le déploiement.