Skip to content

ERD DB 구조 변경 #652

Description

@linear-code

작업 설명

조직 기반 Team 권한 모델을 정리하고, 사용자 계정 상태 관리 및 권한 확장 컬럼 구조를 추가했습니다.

상세 작업

  • users.organization_id 제거
  • 사용자 조직 소속을 team_memberships 기준으로 해석하도록 변경
  • organization.parent_id 제거
  • organization_structure 테이블 제거
  • Team 기반 권한 테이블 구조 정리
    • team_memberships
    • team_workflow_permissions
    • team_knowledge_permissions
    • team_llm_permissions
    • team_audit_permissions
  • teams(id, organization_id) unique constraint 추가
  • Team 관련 중간 테이블에 composite FK 적용
  • 기존 option String(50) 제거
  • options JSONB 추가
  • flags BIGINT 추가
  • flags >= 0 check constraint 추가
  • users.deactivated_at 추가
  • users.last_login_at 추가
  • 비활성화된 사용자 로그인/토큰 인증 차단
  • 로그인, 회원가입 후 자동 로그인, Google OAuth 성공 시 last_login_at 갱신
  • Knowledge/RAG 생성 시 사용자 직접 organization_id 대신 TeamMembership 기반 조직 조회 사용
  • 관련 Alembic migration 추가
  • DB 모델 테스트 및 인증 서비스 테스트 추가
  • RBAC / Team Workspace / 데이터 모델 문서 갱신

front-end 기능

  • 추후 Organization Switcher 추가 필요
  • 현재 Organization 기준 대시보드/모듈/지식 관리/통계 화면 필터링 필요
  • Organization Settings, Members, Teams/Roles, Audit Logs 화면 추가 필요
  • 현재 사용자 권한에 따른 버튼 노출 제어 필요
  • AppService.create_app 자동 생성 로직 제거

참고 사항

  • 기존 option 데이터 보존은 고려하지 않는 방향으로 진행
  • Personal 리소스와 Organization 리소스 분리 정책은 추가 결정 필요
  • Marketplace의 조직 내부 공유 범위 정책은 추가 검토 필요
  • 관리자 권한은 별도 user 컬럼보다 Team/Role 기반으로 처리하는 방향
  • 테스트 결과: 14 passed, 1 warning
  • Docker PostgreSQL 임시 DB에서 migration upgrade/downgrade 검증 완료

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Fields

Priority

None yet

Projects

Status
Backlog

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions