Fabric 앱 프로젝트는 일관된 폴더 레이아웃을 사용하므로 데이터 모델, 백 엔드 구성 및 프런트 엔드 코드를 빠르게 찾을 수 있습니다. 이 문서에서는 프로젝트를 만든 후 작업할 가능성이 가장 큰 파일 및 폴더에 대해 설명합니다.
폴더 레이아웃
새 Fabric Apps 프로젝트를 만들 때 템플릿은 다음 구조를 생성합니다.
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 앱 백 엔드의 기본 구성 파일입니다. 로컬 개발 중에 실행되는 서비스를 제어하고 동적 구성 값에 대한 환경 변수 보간을 지원합니다.
전체 예제:
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
구성에는 다음 주요 필드가 포함됩니다.
최상위 필드
| Field | Type | 필수 | Description |
|---|---|---|---|
id |
string |
예 | Docker Compose 프로젝트 이름 및 Fabric 항목 식별자로 사용되는 프로젝트 슬러그입니다. |
name |
string |
예 | 사람이 읽을 수 있는 프로젝트 표시 이름입니다. |
version |
string |
예 | 프로젝트 버전 (semver). |
services |
object |
예 | 서비스 구성 블록. |
services.data
| Field | Type | 기본값 | Description |
|---|---|---|---|
enabled |
boolean |
false |
데이터 서비스를 사용하도록 설정합니다. |
services.auth
| Field | Type | 기본값 | 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
| Field | Type | 기본값 | Description |
|---|---|---|---|
enabled |
boolean |
true |
로컬 개발에 전자 메일 및 암호 인증 사용 |
services.auth.fabric
| Field | Type | 기본값 | Description |
|---|---|---|---|
enabled |
boolean |
false |
Fabric 조정된 인증(Microsoft Entra ID SSO)을 사용하도록 설정합니다. |
services.staticHosting
| Field | Type | 기본값 | 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 파일은 Fabric Apps CLI에서 엔터티 정의를 컴파일하는 데 사용하는 프로젝트 참조 TypeScript 구성입니다. 루트 tsconfig.json 확장하고 Fabric 앱에 필요한 설정(예: composite: true 및 Node.js 모듈 해상도)을 재정의합니다. 이 파일을 직접 편집할 필요가 없습니다.
데이터 모델 파일
rayfin/data/*.ts
rayfin/data/ 폴더의 파일은 엔터티를 정의합니다. 엔터티는 @entity()와 @uuid(), @text() 같은 필드 데코레이터로 데코레이팅된 TypeScript 클래스입니다. 각 엔터티 파일은 애플리케이션의 데이터 모델을 나타내는 클래스를 내보냅니다.
rayfin/data/schema.ts
파일은 rayfin/data/schema.ts 엔터티 이름을 해당 클래스에 매핑합니다. Rayfin SDK 클라이언트는 이 맵을 사용하여 client.data.<Entity>를 통해 엔터티에 타입 안전한 방식으로 접근할 수 있도록 합니다. 새 엔터티를 추가할 때 이 스키마 파일에 등록해야 합니다.
생성된 아티팩트
rayfin/.temp/
이 rayfin/.temp/ 폴더에는 개발 서버를 실행할 때 생성되는 생성된 백 엔드 아티팩트가 포함됩니다. 백 엔드가 부실 스키마 또는 구성을 사용하는 것처럼 보이면 개발 스택을 중지하고 다시 시작하여 이러한 파일을 다시 생성합니다.
Important
.temp/ 폴더를 리포지토리에 커밋하지 마세요. 당신의 .gitignore 파일에 추가합니다.
프런트 엔드 구조
폴더에는 src/ 프런트 엔드 애플리케이션 코드가 포함되어 있습니다. 정확한 구조는 React 또는 Vue와 같은 프로젝트를 만들 때 선택한 템플릿에 따라 달라집니다.
Fabric 앱 템플릿은 프런트 엔드 구성에 다음 Vite 환경 변수를 사용합니다.
-
VITE_RAYFIN_API_URL– Fabric 앱 백 엔드의 프런트 엔드를 가리키는 기본 URL입니다. 실행npm run dev하기 전에 이 환경 변수를 설정하여 기본값을 재정의합니다. -
VITE_RAYFIN_PUBLISHABLE_KEY– 클라이언트 인증에 사용되는 게시 가능한 키입니다. -
VITE_FABRIC_ITEM_ID–rayfin up에 의해 설정된 Fabric 항목 ID. 배포 중에.env.fabric-<workspacename>(및.env.fabric)에 기록됩니다. Fabric 브로커 기반 인증에 사용됩니다. -
VITE_FABRIC_WORKSPACE_ID–rayfin up에 의해 설정된 Fabric 작업 영역 ID. 배포 중VITE_FABRIC_ITEM_ID와 함께 작성됩니다.