작업 설명
조직 기반 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 검증 완료
작업 설명
조직 기반 Team 권한 모델을 정리하고, 사용자 계정 상태 관리 및 권한 확장 컬럼 구조를 추가했습니다.
상세 작업
users.organization_id제거team_memberships기준으로 해석하도록 변경organization.parent_id제거organization_structure테이블 제거team_membershipsteam_workflow_permissionsteam_knowledge_permissionsteam_llm_permissionsteam_audit_permissionsteams(id, organization_id)unique constraint 추가option String(50)제거options JSONB추가flags BIGINT추가flags >= 0check constraint 추가users.deactivated_at추가users.last_login_at추가last_login_at갱신organization_id대신 TeamMembership 기반 조직 조회 사용front-end 기능
참고 사항
option데이터 보존은 고려하지 않는 방향으로 진행14 passed, 1 warning