Skip to content

스토어 (Pinia) 개요

앱의 전역 상태는 Pinia 스토어로 관리됩니다. apps/web-ui/src/stores/ 아래에 정의되어 있습니다.

핵심 스토어

스토어파일역할
authauth.ts로그인·로그아웃, 사용자 정보, 관리자 여부, 비밀번호 재설정, Supabase 세션 관리
setupsetup.ts설치 마법사 진행 상태 (/setup), 백엔드 /setup/status 폴링
settingssettings.ts전역 설정 (사이트명, 점검 모드 maintenanceMode, 커뮤니티 활성화 등)
rolesroles.ts역할별 관리자 메뉴 접근 제어 (canAccess(routeName, role))
featureFlagsfeatureFlags.ts기능 플래그
adminUIadminUI.ts관리자 레이아웃 UI 상태

기능 빌더 / 페이지 콘텐츠

스토어파일역할
featureBuilderfeatureBuilder.ts빌더 카테고리, 그리드 레이아웃, slotProps, 홈 카드, 이벤트 규칙. 백엔드 사이트 설정 JSON에 저장

콘텐츠 / 운영

스토어파일역할
noticesnotices.ts공지사항 (목록, 팝업) — Supabase notices
bannersbanners.ts배너 (점검, 이벤트) — Supabase banners
supportsupport.ts제보·문의 — Supabase support
changelogchangelog.ts변경 내역 — Supabase changelog
auditLogauditLog.ts감사 로그
i18nOverridesi18nOverrides.ts다국어 오버라이드 (관리자 i18n에서 설정, ko/en)

AI / 에이전트 / RAG / MCP

스토어파일역할
agentsagents.ts에이전트 목록, 서버 실행 상태, 브리핑, SSE 스트림
aiModelConfigaiModelConfig.tsLLM 모델 설정 (백엔드 /llm-models)
conversationsconversations.ts챗봇 대화 세션
ragDocumentsragDocuments.tsRAG 문서 인덱싱·메타
mcpServersmcpServers.tsMCP 서버 등록·연결 상태
apiKeysapiKeys.tsOpenAI / Anthropic 등 외부 API 키

업무 기능

스토어파일역할
taskstasks.ts태스크 관리 (/feature/tasks) — 보드/칸반, 백엔드 트리거
projectsprojects.ts프로젝트 메타
documentsdocuments.ts문서 트리·콘텐츠 (/feature/docs, Tiptap + Yjs)
githubgithub.tsGitHub 저장소·PR·이슈 연동
giteagitea.tsGitea 저장소 연동
notificationsnotifications.ts알림 FAB·드로어

UX 헬퍼

스토어파일역할
toasttoast.ts토스트 알림 (useToast 컴포저블과 연동)
loadingloading.ts전역 로딩 오버레이
globalErrorglobalError.ts전역 에러 처리

auth 스토어 주요 기능

Supabase와 직접 연동하는 핵심 스토어입니다.

함수/상태설명
user현재 로그인 사용자 (AuthUser 타입)
isLoggedIn로그인 여부
isSupabaseReadySupabase 환경변수 설정 여부
profileAvatarUrl아바타 URL (없으면 ui-avatars.com 기반 placeholder)
sessionExpired세션 만료 여부 (만료 시 모달 표시)
pendingPasswordRecovery비밀번호 재설정 링크로 진입한 경우
authReady초기 세션 복원 완료 Promise (라우터 가드가 await)
initAuth()앱 시작 시 세션 복원 + onAuthStateChange 구독
restoreSession()F5 새로고침 후 세션 복원
login(email, password)Supabase signInWithPassword
logout()Presence 정리 후 Supabase signOut
fetchRoleFromApp()get_my_role RPC로 역할 조회 후 user에 반영
getAccessToken()현재 Supabase access_token 반환 (백엔드 호출 시 첨부)
setNewPasswordAfterRecovery()비밀번호 재설정 완료 처리

featureBuilder 스토어 주요 기능

  • 그리드 위젯 배열, 카테고리 메타, getSlotProps / setSlotProps, getGridLayout / setGridLayout
  • 캔버스·설정 패널·실제 기능 페이지(FeaturePageContent, DynamicFeaturePage)가 이 스토어를 구독
  • 백엔드 사이트 설정 JSON으로 저장 (lib/siteSettings.tssaveSiteSettingJson()) — 스토리지 버전 v2
  • 기본 카테고리: chatbot, community, tasks, github, docs