Bemærk
Adgang til denne side kræver godkendelse. Du kan prøve at logge på eller ændre mapper.
Adgang til denne side kræver godkendelse. Du kan prøve at ændre mapper.
Fabric Apps projekterer separate backend-konfigurationer, datamodeller og frontend-kode. Den præcise opbygning afhænger af skabelonen. Standardskabelonen blankapp løser til Universal App, et npm-arbejdsområde med separate frontend-, data- og delte pakker.
Mappelayout
Standard Universal App-stilladset har følgende struktur:
your-project/
├── rayfin/
│ ├── .env
│ ├── rayfin.yml
│ └── tsconfig.json
├── packages/
│ ├── frontend/
│ │ ├── src/
│ │ └── package.json
│ ├── data/
│ │ └── src/index.ts
│ └── shared/
│ └── src/index.ts
├── package.json
├── tsconfig.json
└── README.md
| Lokation | Ejerskab |
|---|---|
rayfin/ |
Backend-konfiguration og aktive miljøværdier. |
packages/frontend/ |
Browser-UI, klientinitialisering og frontend-build. |
packages/data/ |
Dekorerede runtime-entitetsklasser og skemaregistrering. |
packages/shared/ |
Isomorfe postkontrakter og skematyper deles med frontend. Læg ikke kun backend-kode her. |
Data er deaktiveret i basisstilladset. Aktiver det, når din app har brug for vedvarende poster:
npm run pack:add -- data-modeling
Kapaciteten tilføjer en starterenhed og en delt kontrakt og muliggør dataservicen. For entitetsforfatterskab og MSSQL-dialektkonfiguration, se Definér datamodeller.
Flad-skabelon alternativ
Nogle skabeloner og eksisterende apps bruger et fladt layout med frontend-kode i root src/, entities i rayfin/data/, og et skema-type map i rayfin/data/schema.ts. Denne opbygning er stadig gyldig. Flyt ikke filer eller lav dubletter af pakker bare for at matche en anden skabelon. Læs servicevejene ind rayfin/rayfin.yml for at finde de mapper, dit projekt faktisk bygger.
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.
Standardarbejdsområdet bruger eksplicitte servicestier. Følgende eksempel viser de stier med Data aktiveret for en app, der har brug for en database:
id: my-app
name: my-app
version: 1.0.0
services:
auth:
enabled: true
allowedRedirectUris:
- http://localhost:5173
fabric:
enabled: true
externalEntraExchange: true
password:
enabled: false
data:
enabled: true
dialect: mssql
path: packages/data
buildCommand: npm run build
staticHosting:
enabled: true
path: packages/frontend
folder: dist
buildCommand: npm run build:fabric
indexDocument: index.html
assetAccess: protected
Serviceværdier path er relative til projektets rod. Byg-kommandoer kører fra den løste servicemappe. Funktionsinitialisering registrerer services.functions.path også, når den vælger en arbejdsområdepakke såsom packages/functions. Flade projekter kan bruge den eksisterende rayfin/functions placering. Se Brug funktioner.
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. |
dialect |
string |
– | Brug mssql til en SQL-database i Fabric. Påkrævet, når Data er aktiveret. |
path |
string |
– | Datapakkekatalog relativt til projektets rod, såsom packages/data. Flade skabeloner kan bruge rayfin/data. |
buildCommand |
string |
– | Byg kommandoen til den konfigurerede datapakke. |
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). |
externalEntraExchange |
boolean |
– | Aktiver direkte delegeret entra-tokenudveksling og ekstern parent-host-autentificering, når det understøttes af målmiljøet. |
services.staticHosting
| Felt | Type | Standardindstilling | Beskrivelse |
|---|---|---|---|
enabled |
boolean |
false |
Aktivér hosting af statisk indhold. |
path |
string |
– | Frontend pakkemappe i forhold til projektets rod. |
root |
string |
– | Legacy frontend root, der bruges af flade konfigurationer. |
folder |
string |
"dist" |
Mappe med byggede statiske assets i forhold til den løste frontend-sti. |
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 indeholder de aktive runtime- og deployment-værdier og leverer værdier til rayfin.yml gennem interpolation. CLI'en skriver framework-neutrale RAYFIN_PUBLIC_* værdier for den aktive backend. Kun variabler med det præfiks projiceres ind i genererede frontend-miljøfiler. Læg aldrig hemmeligheder i RAYFIN_PUBLIC_* variabler.
Hold dig rayfin/.env ude af kildekodekontrol. Brug rayfin/.env.example den til at dokumentere forventede variable med pladsholdere.
Rayfin/.deployments.json
Implementeringsregistret registrerer backend-URL'er, hosting-URL'er, item-ID'er og arbejdsområde-ID'er for dit projekts deployments. Det er ikke en frontend-miljøfil. Hold det ude af versionskontrol. Brug npx rayfin up list til at liste registrerede udrulninger og npx rayfin up switch <name> til at skifte den aktive udrulning og gengenerere dens miljøværdier.
Rayfin/tsconfig.json
Skabeloner giver TypeScript-konfiguration til deres layout. Workspace-pakker har deres egne konfigurationer og projektreferencer; flade skabeloner kan kompilere enheder gennem rayfin/tsconfig.json. Bevar stillingens referencer og brug dens build- og type-check-scripts i stedet for at antage en enkelt root-kompilering.
Datamodelfiler
Hold kørselsregistrering og kundeorienterede typer tilpasset dit valgte layout.
Workspace-enheder og delte kontrakter
I Universal App definerer filer under packages/data/src/ dekorerede entitetsklasser. Registrer runtime-klasserne i arrayet, der schema eksporteres af packages/data/src/index.ts.
Behold matchende record-interfaces og UniversalAppSchema typen i packages/shared/src/index.ts. Frontenden importerer denne kontrakt fra @rayfin-app/shared i stedet for at importere dekorerede backend-klasser.
Flad-skabelon-enheder
I en flad skabelon rayfin/data/*.ts definerer entiteter og rayfin/data/schema.ts afbilder entitetsnavne til typer for client.data.<Entity>. Følg registreringsmekanismen, som den skabelon giver.
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
Standardfrontenden er i packages/frontend/src/. Flade skabeloner kan bruge root src/. Indstillingen services.staticHosting.path identificerer frontend-pakken.
Aktiv miljø- og rammekortlægning
rayfin dev og rayfin up generere rammeværksspecifikke .env.local værdier fra rayfin/.env. For en indlejret frontend skrives filen under services.staticHosting.path, såsom packages/frontend/.env.local; flade projekter bruger projektets rod.
Kilde i rayfin/.env |
Vite-output i .env.local |
Next.js output i .env.local |
|---|---|---|
RAYFIN_PUBLIC_API_URL |
VITE_RAYFIN_API_URL |
NEXT_PUBLIC_RAYFIN_API_URL |
RAYFIN_PUBLIC_PUBLISHABLE_KEY |
VITE_RAYFIN_PUBLISHABLE_KEY |
NEXT_PUBLIC_RAYFIN_PUBLISHABLE_KEY |
RAYFIN_PUBLIC_ITEM_ID |
VITE_FABRIC_ITEM_ID |
NEXT_PUBLIC_FABRIC_ITEM_ID |
RAYFIN_PUBLIC_WORKSPACE_ID |
VITE_FABRIC_WORKSPACE_ID |
NEXT_PUBLIC_FABRIC_WORKSPACE_ID |
RAYFIN_PUBLIC_PORTAL_URL |
VITE_FABRIC_PORTAL_URL |
NEXT_PUBLIC_FABRIC_PORTAL_URL |
Rediger kildeværdierne i rayfin/.env, ikke den genererede fil. For at regenerere uden at udrulle:
npx rayfin env --framework vite
Brug --framework nextjs eller --framework plain for andre understøttede mappinger. Brug --output <dir> til at vælge en outputmappe eller --show til at inspicere den offentlige mapping uden at skrive. Hold genererede .env.local filer ude af versionskontrol.
Migrer et ældre miljølayout
Ældre projekter kan indeholde .env.fabric filer eller .env.fabric-<workspace> filer. Disse filer er ikke de aktive miljøfiler i det nuværende layout. Kør npx rayfin up for at bruge det nuværende miljøworkflow. Gennemgå eventuelle migrationsmeddelelser, og kopier brugerdefinerede værdier efter rayfin/.env behov. Deployeringsregistret erstatter filerne for miljøer pr. arbejdsområde. Konfigurer ikke nye apps til at være afhængige af dem.