id
grantee_organization_id
user_id
workflow_id 또는 llm_credential_id
auth_state
assigned_by
assigned_at
options
flags
1. user 인증
2. active organization 결정
3. resource organization scope 확인
4. organization.created_by 또는 organization.managed_by이면 manager
5. active organization의 team membership 조회
6. team permission 조회
7. user direct permission 조회
8. team/user direct 중 가장 강한 auth_state 선택
9. permission action 허용 여부 반환
10. 거부 또는 grant/revoke는 audit_logs 기록
none < viewer < operator < builder < manager
auditor < raw_auditor < manager
목표
viewer/operator/builder/manager기반auth_state표준을 코드에 반영한다.user_workflow_permissions,user_llm_permissions를 additive allow로 추가한다.관련 Linear
구현 범위
none/viewer/operator/builder/manager/auditor/raw_auditor와 permission vocabulary를 shared layer에 정의한다.manager, team permission, user direct permission을 합산해 가장 강한 권한을 반환한다.user_workflow_permissions,user_llm_permissions모델과 migration을 추가한다.require_workflow_permission,require_llm_credential_permission같은 API dependency 또는 service helper를 만든다.audit_logs에 기록한다.apps/shared/services/tracing/rbac.py의read/write/execute/admin체계를 MVP 표준 상태로 맞춘다.read/write/execute/admin이 있으면 의미가 유지되도록 migration 또는 compatibility mapping을 둔다.구현 방법
apps/shared/db/models/team.py에 기존 team permission table을 건드리지 않고 user direct permission model만 추가한다.user_workflow_permissions,user_llm_permissions를 생성한다.auth_state강도는 다음으로 고정한다.admin은 permission으로 쓰지 않는다. 기존admin문자열이 남아 있으면manager의미로만 호환한다.roles,user_roles,resource_permissions는 만들지 않는다.Acceptance Criteria:
manager로 판정된다.viewer는 workflow read만 가능하다.operator는 workflow execute 가능, write 불가다.builder는 workflow write/execute 가능, deploy/manage 불가다.manager는 workflow deploy/manage까지 가능하다.viewer+ user directbuilder이면 effective permission은builder다.manager+ user directviewer이면 effective permission은manager다.operator또는builder는use가능하다.viewer는use불가다.audit_logs에 남는다.auth_state를 기준으로 통과한다.Out of Scope
user_knowledge_permissionsuser_audit_permissions참고 사항
MVP-01-기반 문서