Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Fabric проекты приложений используют согласованный макет папок, чтобы быстро найти модели данных, конфигурацию серверной части и интерфейсный код. В этой статье описываются файлы и папки, с которыми вы, скорее всего, будете работать после создания проекта.
Макет папки
При создании проекта приложений Fabric шаблон создает следующую структуру:
your-project/
├── rayfin/
│ ├── data/
│ │ ├── schema.ts
│ │ └── *.ts
│ ├── .env
│ ├── rayfin.yml
│ └── tsconfig.json
├── src/
├── package.json
├── tsconfig.json
└── README.md
Файлы конфигурации ключей
rayfin/rayfin.yml
Файл rayfin/rayfin.yml — это основной файл конфигурации для серверной части Fabric Apps. Он определяет, какие службы выполняются во время локальной разработки и поддерживают интерполяцию переменных среды для динамических значений конфигурации.
Полный пример:
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
Конфигурация включает следующие ключевые поля:
Поля верхнего уровня
| Поле | Тип | Обязательный | Description |
|---|---|---|---|
id |
string |
Да | Project slug, используемый в качестве имени project Docker Compose и идентификатор элемента Fabric. |
name |
string |
Да | Отображаемое имя проекта, понятное человеку. |
version |
string |
Да | Версия проекта (semver). |
services |
object |
Да | Блок конфигурации службы. |
services.data
| Поле | Тип | По умолчанию | Description |
|---|---|---|---|
enabled |
boolean |
false |
Включите службу данных. |
services.auth
| Поле | Тип | По умолчанию | Description |
|---|---|---|---|
enabled |
boolean |
false |
Включите службу проверки подлинности. |
expiryInMinutes |
number |
— | Срок действия токена JWT в минутах. |
customClaims |
Record<string, string> |
— | Пользовательские утверждения, добавленные в выданные JWT. |
scopes |
string[] |
— | Области OAuth (например, ["read:data", "write:data"]). |
refreshToken.lifetimeInDays |
number |
— | Срок действия токена обновления в днях. |
allowedRedirectUris |
string[] |
["http://localhost:5173"] |
Разрешенные URI для перенаправления обратных вызовов аутентификации. |
services.auth.password
| Поле | Тип | По умолчанию | Description |
|---|---|---|---|
enabled |
boolean |
true |
Включение проверки подлинности электронной почты и пароля для локальной разработки |
services.auth.fabric
| Поле | Тип | По умолчанию | Description |
|---|---|---|---|
enabled |
boolean |
false |
Включите аутентификацию Fabric через брокер (единый вход (SSO) Microsoft Entra ID). |
services.staticHosting
| Поле | Тип | По умолчанию | Description |
|---|---|---|---|
enabled |
boolean |
false |
Включите размещение статического содержимого. |
root |
string |
— | Корневой каталог фронтенд-проекта (относительно корневого каталога проекта). |
folder |
string |
"dist" |
Каталог, содержащий встроенные статические ресурсы (относительно root). |
buildCommand |
string |
— | Команда оболочки для выполнения перед упаковкой (например, npm run build). |
indexDocument |
string |
— | Документ по умолчанию служит для корневого пути (например, index.html). |
Подсказка
Все строковые значения поддерживают интерполяцию переменных среды с использованием синтаксиса ${VAR} и ${VAR:-default}. Переменные определяются из rayfin/.env и среды оболочки.
rayfin/.env
Файл rayfin/.env — это необязательный файл переменных среды, используемый для передачи значений в rayfin.yml через интерполяцию. Не фиксируйте секреты в репозитории. Вместо этого создайте rayfin/.env.example файл в целях документации и добавьте .env его в .gitignore файл.
rayfin/tsconfig.json
Файл rayfin/tsconfig.json — это конфигурация TypeScript с ссылкой на проект, используемая интерфейсом командной строки Fabric Apps для компиляции определений сущностей. Он расширяет корневой файл tsconfig.json и переопределяет параметры, которые нужны приложениям Fabric, такие как composite: true и разрешение модулей Node.js. Не нужно изменять этот файл напрямую.
Файлы модели данных
rayfin/data/*.ts
Файлы в папке rayfin/data/ определяют ваши сущности. Сущности — это классы TypeScript с декоратором @entity(), а также с декораторами полей, такими как @uuid() и @text(). Каждый файл сущности экспортирует класс, представляющий модель данных в приложении.
rayfin/data/schema.ts
Файл rayfin/data/schema.ts сопоставляет имена сущностей с их классами. Клиент SDK Rayfin использует это отображение для типобезопасного доступа к сущностям через client.data.<Entity>. При добавлении новой сущности необходимо зарегистрировать ее в этом файле схемы.
Созданные артефакты
rayfin/.temp/
Папка rayfin/.temp/ содержит артефакты серверной части, которые создаются при запуске сервера разработки. Если серверная часть, как представляется, использует устаревшую схему или конфигурацию, остановите и перезапустите стек разработки для повторного создания этих файлов.
Important
Не зафиксируйте папку .temp/ в репозитории. Добавьте его в .gitignore файл.
Структура внешнего интерфейса
Папка src/ содержит код интерфейсного приложения. Точную структуру зависит от того, какой шаблон вы выбрали при создании проекта, например React или Vue.
Fabric шаблоны приложений используют следующие переменные среды Vite для конфигурации внешнего интерфейса:
-
VITE_RAYFIN_API_URL— базовый URL-адрес, направляющий фронтенд к бэкенду Fabric Apps. Задайте эту переменную среды перед запускомnpm run dev, чтобы переопределить значение по умолчанию. -
VITE_RAYFIN_PUBLISHABLE_KEY— доступный для публикации ключ, используемый для проверки подлинности клиента. -
VITE_FABRIC_ITEM_ID— идентификатор элемента Fabric, заданныйrayfin up. Записано в.env.fabric-<workspacename>(и в.env.fabric) во время развертывания. Используется для посреднической проверки подлинности в Fabric. -
VITE_FABRIC_WORKSPACE_ID— идентификатор рабочей области Fabric, заданныйrayfin up. Записывается вместе сVITE_FABRIC_ITEM_IDво время развертывания.