From bb6b0d1934707a15cac02c2dd1670037b54bd27d Mon Sep 17 00:00:00 2001 From: happybell80 Date: Thu, 18 Sep 2025 00:51:20 +0900 Subject: [PATCH] Add naverworks_token table structure to tables.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 18개 컬럼 정의 (id, user_id, tokens, metadata 등) - 인덱스 3개 (PK, user_id, expires_at) - Foreign key: user_id → user(id) CASCADE 삭제 - 트리거: updated_at 자동 갱신 - 사용자당 하나의 토큰만 허용 (UNIQUE constraint) 🤖 Generated with Claude Code Co-Authored-By: Claude --- 300_architecture/database/tables.md | 35 +++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/300_architecture/database/tables.md b/300_architecture/database/tables.md index 9673f34..c61dbb0 100644 --- a/300_architecture/database/tables.md +++ b/300_architecture/database/tables.md @@ -235,6 +235,41 @@ --- +### naverworks_token +- **용도**: NAVER WORKS OAuth 토큰 및 Passport 정보 +- **Primary Key**: id (UUID) +- **Unique**: user_id (사용자당 하나의 토큰만) +- **Foreign Key**: user_id → user(id) ON DELETE CASCADE +- **레코드**: 1개 (2025-09-18 기준) + +| 컬럼명 | 타입 | NULL | 기본값 | 설명 | +|--------|------|------|--------|------| +| id | UUID | NO | gen_random_uuid() | 토큰 ID | +| user_id | UUID | NO | | 사용자 ID (FK → user) | +| access_token | TEXT | YES | | 액세스 토큰 (개별 저장용) | +| refresh_token | TEXT | YES | | 리프레시 토큰 (개별 저장용) | +| token_type | VARCHAR(50) | YES | 'Bearer' | 토큰 타입 | +| expires_at | TIMESTAMP | YES | | 토큰 만료 시각 | +| scopes | JSONB | YES | | OAuth 스코프 목록 | +| domain_id | VARCHAR(255) | YES | | NAVER WORKS 도메인 ID | +| service_account | VARCHAR(255) | YES | | 서비스 계정 | +| metadata | JSONB | YES | | 사용자 메타데이터 | +| created_at | TIMESTAMPTZ | YES | CURRENT_TIMESTAMP | 생성 시각 | +| updated_at | TIMESTAMPTZ | YES | CURRENT_TIMESTAMP | 수정 시각 | +| username | VARCHAR(255) | YES | | 사용자명 | +| account_id | VARCHAR(255) | YES | | NAVER WORKS 계정 ID | +| token_data | JSONB | YES | | 토큰 데이터 (통합 저장용) | +| oauth_config | JSONB | YES | | OAuth 설정 정보 | +| expiry | TIMESTAMP | YES | | 토큰 만료 시각 (passport용) | +| is_equipped | BOOLEAN | YES | false | Passport 장착 여부 | + +**인덱스**: +- idx_naverworks_token_user_id (user_id) +- idx_naverworks_token_expires_at (expires_at) + +**트리거**: +- update_naverworks_token_updated_at: updated_at 자동 갱신 + ## 6. 기타 정보 ### Custom Types