Fabric Apps 프로젝트 구조

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_IDrayfin up에 의해 설정된 Fabric 항목 ID. 배포 중에 .env.fabric-<workspacename>(및 .env.fabric)에 기록됩니다. Fabric 브로커 기반 인증에 사용됩니다.
  • VITE_FABRIC_WORKSPACE_IDrayfin up에 의해 설정된 Fabric 작업 영역 ID. 배포 중 VITE_FABRIC_ITEM_ID와 함께 작성됩니다.