Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Fabric Apps projeleri arka uç yapılandırmasını, veri modellerini ve ön uç kodunu birbirinden ayırır. Kesin yerleşim şablona bağlıdır. Varsayılan blankapp şablon, ayrı ön yüz, veri ve paylaşılan paketlere sahip bir npm çalışma alanı olan Universal App olarak çözümlenir.
Klasör düzeni
Varsayılan Universal App iskelesi aşağıdaki yapıya sahiptir:
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
| Location | Sahiplik |
|---|---|
rayfin/ |
Arka uç yapılandırması ve aktif ortam değerleri. |
packages/frontend/ |
Tarayıcı arayüzü, istemci başlatma ve ön yüz oluşturma. |
packages/data/ |
Dekoratör uygulanmış runtime varlık sınıfları ve şema kaydı. |
packages/shared/ |
Ön yüz ile paylaşılan izomorfik kayıt sözleşmeleri ve şema türleri. Buraya yalnızca arka uca ait kodu koymayın. |
Veri, temel iskelede devre dışı bırakılmıştır. Uygulamanızın kalıcı kayıtlara ihtiyacı olduğunda etkinleştirin:
npm run pack:add -- data-modeling
Bu yetenek, başlangıç varlığı ve ortak sözleşme ekler ve veri hizmetini etkinleştirir. Varlık yazarlığı ve MSSQL lehçe yapılandırması için bkz. Veri modellerini tanımla.
Düz şablon alternatifi
Bazı şablonlar ve mevcut uygulamalar, ön uç kodu kök src/ içinde, varlıklar rayfin/data/ içinde ve rayfin/data/schema.ts içinde bir şema türü eşlemesi ile düz bir düzen kullanır. Bu düzen geçerliliğini koruyor. Başka bir şablonla eşleşmek için dosyaları taşımayın veya kopyalanmış paketler oluşturmayın. Projenizin rayfin/rayfin.yml gerçekten oluşturduğu dizinleri bulmak için servis yollarını okuyun.
Anahtar yapılandırma dosyaları
rayfin/rayfin.yml
rayfin/rayfin.yml dosyası, Fabric Apps arka ucunuzun ana yapılandırma dosyasıdır. Yerel geliştirme sırasında hangi hizmetlerin çalıştığını denetler ve dinamik yapılandırma değerleri için ortam değişkeni ilişkilendirmesini destekler.
Varsayılan çalışma alanı açıkça tanımlanmış hizmet yolları kullanır. Aşağıdaki örnek, veritabanı ihtiyacı olan bir uygulama için Data etkinleştirilmiş olan bu yolları göstermektedir:
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
Hizmet path değerleri proje köküne göredir. Derleme komutları çözümlenen hizmet dizininden çalıştırılır. Fonksiyonların başlatılması, packages/functions gibi bir çalışma alanı paketi seçtiğinde services.functions.path öğesini de kaydeder. Düz projeler mevcut rayfin/functions konumu kullanabilir. Bkz. Fonksiyonları Kullan.
Yapılandırma şu anahtar alanlarını içerir:
Üst düzey alanlar
| Alan | Türü | Zorunlu | Açıklama |
|---|---|---|---|
id |
string |
Evet | Docker Compose proje adı ve Fabric öğesi tanımlayıcısı olarak kullanılan proje kısa adı. |
name |
string |
Evet | İnsan tarafından okunabilir proje görüntüleme adı. |
version |
string |
Evet | Proje sürümü (semver). |
services |
object |
Evet | Hizmet yapılandırma bloğu. |
services.data
| Alan | Türü | Varsayılan | Açıklama |
|---|---|---|---|
enabled |
boolean |
false |
Veri hizmetini etkinleştirin. |
dialect |
string |
— | Fabric'te SQL veritabanı için mssql kullanın. Veri etkin olduğunda gereklidir. |
path |
string |
— | Proje köküne göre veri paketi dizini, örneğin packages/data. Düz şablonlar rayfin/data kullanabilir. |
buildCommand |
string |
— | Yapılandırılmış veri paketi için derleme komutu. |
services.auth
| Alan | Türü | Varsayılan | Açıklama |
|---|---|---|---|
enabled |
boolean |
false |
Kimlik doğrulama hizmetini etkinleştirin. |
expiryInMinutes |
number |
— | JWT belirtecinin dakika cinsinden geçerlilik süresi. |
customClaims |
Record<string, string> |
— | Verilen JWT'lere eklenen özel talepler. |
scopes |
string[] |
— | OAuth kapsamları (örneğin, ["read:data", "write:data"]). |
refreshToken.lifetimeInDays |
number |
— | Yenileme belirtecinin gün cinsinden kullanım süresi. |
allowedRedirectUris |
string[] |
["http://localhost:5173"] |
Kimlik doğrulama geri çağırmaları için izin verilen yönlendirme URI'leri. |
services.auth.password
| Alan | Türü | Varsayılan | Açıklama |
|---|---|---|---|
enabled |
boolean |
true |
Yerel geliştirme için e-posta ve parola kimlik doğrulamasını etkinleştirme |
services.auth.fabric
| Alan | Türü | Varsayılan | Açıklama |
|---|---|---|---|
enabled |
boolean |
false |
Fabric aracılı kimlik doğrulamasını (Microsoft Entra ID SSO) etkinleştirin. |
externalEntraExchange |
boolean |
— | Hedef ortam tarafından desteklendiğinde doğrudan devredilen Entra token değişimi ve harici-ebeveyn-host kimlik doğrulamasını etkinleştirin. |
services.staticHosting
| Alan | Türü | Varsayılan | Açıklama |
|---|---|---|---|
enabled |
boolean |
false |
Statik içerik barındırmayı etkinleştirin. |
path |
string |
— | Proje köküne göre ön uç paket dizini. |
root |
string |
— | Düz konfigürasyonlarda kullanılan eski frontend kökü. |
folder |
string |
"dist" |
Çözülen ön uç yoluna göre derlenmiş statik varlıkları içeren dizin. |
buildCommand |
string |
— | Paketlemeden önce çalıştırılacak kabuk komutu (örneğin, npm run build). |
indexDocument |
string |
— | Kök yol için sunulan varsayılan belge (örneğin, index.html). |
Tavsiye
Tüm dize değerleri, ${VAR} ve ${VAR:-default} sözdizimiyle ortam değişkeni enterpolasyonunu destekler. Değişkenler, rayfin/.env ve kabuk ortamından çözümlenir.
rayfin/.env
rayfin/.env dosyası aktif çalışma zamanı ve dağıtım değerlerini içerir ve enterpolasyon yoluyla rayfin.yml öğesine değerler sağlar. CLI, aktif arka uç için framework-neutral RAYFIN_PUBLIC_* değerler yazar. Sadece bu önekli değişkenler oluşturulan ön yüz ortam dosyalarına yansıtılır.
RAYFIN_PUBLIC_* değişkenlere asla gizli bilgileri koymayın.
rayfin/.env sürüm kontrolünden uzak tutun. Beklenen değişkenleri yer tutucularla belgelemek için kullanılır rayfin/.env.example .
rayfin/.deployments.json
Dağıtım kayıt defteri, projenizin dağıtımları için arka uç URL'lerini, barındırma URL'lerini, öğe kimliklerini ve çalışma alanı kimliklerini kaydeder. Bu bir ön uç ortam dosyası değil. Sürüm kontrolünden uzak tutun. Kayıtlı dağıtımları listelemek için npx rayfin up switch <name>, etkin dağıtımı değiştirmek ve ortam değerlerini yeniden oluşturmak için npx rayfin up list kullanın.
rayfin/tsconfig.json
Şablonlar, yerleşimleri için TypeScript yapılandırması sağlar. Workspace paketlerinin kendi yapılandırmaları ve proje referansları vardır; düz şablonlar varlıkları rayfin/tsconfig.json aracılığıyla derleyebilir. İskelet projenin referanslarını koruyun ve tek bir kökten derleme varsaymak yerine derleme ve tür denetimi betiklerini kullanın.
Veri modeli dosyaları
Seçtiğiniz düzen için çalışma zamanı kaydını ve istemciye yönelik türleri hizalı tutun.
İş alanı varlıkları ve paylaşılan sözleşmeler
Universal App'te, packages/data/src/ altındaki dosyalar süslü varlık sınıflarını tanımlar. Çalışma zamanı sınıflarını packages/data/src/index.ts tarafından dışa aktarılan schema dizisine kaydedin.
packages/shared/src/index.ts içinde kayıt arayüzlerini ve UniversalAppSchema türünü eşleştirmeyi sürdürün. Ön uç, dekore edilmiş backend sınıflarını içe aktarmak yerine bu sözleşmeyi @rayfin-app/shared içinden içe aktarır.
Düz şablonlu varlıklar
Düz bir şablonda, rayfin/data/*.ts varlıkları tanımlar ve rayfin/data/schema.ts, client.data.<Entity> için varlık adlarını türlerle eşler. O şablonun sağladığı kayıt mekanizmasını takip edin.
Oluşturulan yapıtlar
rayfin/.temp/
Klasör, rayfin/.temp/ geliştirme sunucusunu çalıştırdığınızda oluşturulan arka uç yapıtlarını içerir. Arka uç eski şema veya yapılandırma kullanıyor gibi görünüyorsa, bu dosyaları yeniden oluşturmak için geliştirme yığınını durdurun ve yeniden başlatın.
Important
.temp/ klasörünü deponuza commit etmeyin. Dosyanıza .gitignore ekleyin.
Ön yüz yapısı
Varsayılan frontend packages/frontend/src/ içindedir. Düz şablonlar kök src/kullanabilir.
services.staticHosting.path ayarı ön uç paketini tanımlar.
Aktif ortam ve çerçeve eşlemesi
rayfin dev ve rayfin up, rayfin/.env'ten çerçeveye özgü .env.local değerleri üretir. İçiçe içe bir ön uç için, dosya altında services.staticHosting.pathyazılır, örneğin packages/frontend/.env.local; düz projeler proje kökünü kullanır.
İçindeki kaynak rayfin/.env |
Vite çıktısı .env.local |
Next.js'teki çıktı .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 |
Kaynak değerleri oluşturulan dosyada değil, rayfin/.env içinde düzenleyin. Dağıtım yapmadan yenilemek için:
npx rayfin env --framework vite
Diğer desteklenen eşlemeler için --framework nextjs veya --framework plain kullanın.
--show bir çıktı dizini seçmek veya --output <dir> yazmadan genel eşlemeyi incelemek için kullanın. Oluşturulan .env.local dosyaları kaynak kontrolünden uzak tutun.
Eski bir ortam düzenini taşı
Eski projeler .env.fabric-<workspace> veya .env.fabric dosyaları içerebilir. Bu dosyalar mevcut düzendeki aktif ortam dosyaları değildir. Geçerli ortam iş akışını kullanmak için npx rayfin up komutunu çalıştırın. Herhangi bir göç mesajını gözden geçirin ve gerektiğinde özel değerleri rayfin/.env içine kopyalayın. Dağıtım kayıt defteri, çalışma alanı başına ortam dosyalarının yerini alır. Yeni uygulamaları onlara bağımlı hâle gelecek şekilde yapılandırmayın.