RndManage API 문서
← 홈으로웹 UI와 같은 데이터·같은 권한·같은 감사 로그를 쓰는 공개 API입니다. Claude(MCP)·Gemini CLI·GPT(Actions)·curl 어디서든 붙을 수 있습니다.
1. 빠른 시작 — 인증과 첫 호출
자체 API 키·PAT는 없습니다. Google이 발급한 1시간짜리 토큰을 Authorization: Bearer 헤더로 보냅니다. 토큰의 이메일이 회사 화이트리스트에 있어야 하고, 다른 앱용으로 발급된 토큰은 audience 검증에서 거부됩니다.
# 회사 Google 계정으로 gcloud 로그인 (최초 1회)
gcloud auth login
# 1시간짜리 토큰 발급 → 문서 목록 조회
TOKEN=$(gcloud auth print-identity-token)
curl -H "Authorization: Bearer $TOKEN" "https://rm.up-tec.io/api/documents?limit=10"# PowerShell
$token = gcloud auth print-identity-token
curl -H "Authorization: Bearer $token" "https://rm.up-tec.io/api/documents?limit=10"토큰은 1시간 뒤 만료됩니다(401) — 호출 직전마다 재발급하면 됩니다. 반드시 https://rm.up-tec.io 도메인을 직접 사용하세요 (구 도메인은 리다이렉트 과정에서 인증 헤더가 소실됩니다).
2. 주요 엔드포인트
| 메서드 | 경로 | 설명 |
|---|---|---|
| GET | /api/documents | 문서 목록 (limit·docType·status 필터) |
| POST | /api/documents | 문서 저장 — id 동일 시 수정, 동시 편집 충돌 시 409 |
| GET | /api/documents/{docType}/{id} | 문서 본문 조회 |
| DELETE | /api/documents/{docType}/{id} | 휴지통 이동 (복구 가능) |
| GET | /api/documents/{docType}/{id}/pdf | PDF 생성·다운로드 (첨부 자동 병합) |
| POST | /api/documents/clone | 문서 복제 (계획→결과 전환) |
| GET | /api/master-data | 사원·과제·거래처·설정 조회 |
| POST | /api/master-data/sync | CoreDB 정본에서 마스터 동기화 |
| GET | /api/numbering/peek | 다음 문서번호 미리보기 |
| GET | /api/budgets/status | 과제×비목 예산 집행 현황 |
| GET | /api/inspections | 검수 예정 집계 |
| GET | /api/tax-invoices | 세금계산서 수집 (CSV 지원) |
| GET | /api/trips | 출장 목록 |
| GET | /api/audit | 감사 로그 (CSV 지원) |
| GET | /api/backup | 전체 백업 JSON 다운로드 |
전체 요청/응답 스키마는 Swagger 레퍼런스에서 직접 실행해 볼 수 있습니다 (Authorize 버튼에 토큰 입력).
3. MCP 서버 — Claude·Gemini CLI 연결
저장소의 mcp/server.mjs가 API를 MCP 도구 10종으로 감쌉니다. 토큰 env를 생략하면 서버가 gcloud auth print-identity-token을 직접 실행해 만료 5분 전 자동 재발급합니다.
Claude Code
claude mcp add rndmanage --env RNDMANAGE_URL=https://rm.up-tec.io \
-- node C:/Users/jimmy/MyProjects/RndManage/mcp/server.mjsClaude Desktop (claude_desktop_config.json) · Gemini CLI (~/.gemini/settings.json)
{
"mcpServers": {
"rndmanage": {
"command": "node",
"args": ["C:/Users/jimmy/MyProjects/RndManage/mcp/server.mjs"],
"env": { "RNDMANAGE_URL": "https://rm.up-tec.io" }
}
}
}도구: list/get/save/clone/delete_document(휴지통까지만), get_master_data, peek_doc_number, get_budget_status, list_trips, health — 설치 상세는 mcp/README.md
4. GPT Actions (커스텀 GPT)
- 커스텀 GPT 만들기 → Configure → Actions → Create new action
- Import from URL:
https://rm.up-tec.io/api/openapi.json(인증 없이 import 가능) - Authentication: API Key → Bearer 선택 후
gcloud auth print-identity-token결과 입력
Google 토큰은 1시간 만료 — GPT Actions는 자동 갱신이 없어 일회성 조회·집계 세션에 적합합니다. 상시 연동은 MCP(§3)를 권장합니다.
5. 안전장치·정책
- 인증 정책(A안): 자체 API 키/PAT 미발급 — Google 단기 토큰만. 유출돼도 1시간이면 무효.
- 모든 쓰기는 감사 로그에 기록 (누가·언제·무엇을, 인증 경로 session/bearer 구분)
- 에이전트의 삭제는 휴지통 이동까지 — 웹 UI에서 복구 가능
Bearer 토큰으로 차단되는 작업 (403 — 웹 UI 전용)
| 문서 영구 삭제 | DELETE /api/trash/{docType}/{id} |
| 휴지통 비우기 / 30일 자동 정리 | DELETE /api/trash · POST /api/trash/auto-cleanup |
| 백업 복원 (대량 덮어쓰기) | POST /api/backup |
| 고아 첨부 영구 삭제 | DELETE /api/attachments/orphans |
| 마스터데이터 전체 교체 (xlsx) | POST /api/master-data/import |