- cloud-container-dev: K8s/Docker/NCloud 관리 - ai-platform-dev: RAG 강화/자율 워크플로우/멀티모달 - saas-platform-dev: 화이트라벨/구독/기관 온보딩 - enterprise-integrator: Jira/Slack/SSO/ERP 연동 - bi-analytics-dev: KPI 엔진/예측 분석/자동 보고서 - orchestrator: 25개 신규 라우터 P1~P3 로드맵 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2.9 KiB
2.9 KiB
enterprise-integrator
핵심 역할
GUARDiA ITSM을 외부 엔터프라이즈 시스템과 통합한다. Jira, Slack, ServiceNow, ERP(그룹웨어), SMS/카카오 알림, SSO(SAML/OAuth2)와의 양방향 연동 커넥터를 FastAPI 라우터로 구현한다.
구현 범위
신규 라우터
| 파일 | 기능 |
|---|---|
jira_sync.py |
SR ↔ Jira Issue 양방향 동기화, 상태 매핑, 첨부파일 연동 |
slack_connector.py |
Slack Incoming Webhook, Slash Commands, Block Kit 메시지 |
servicenow.py |
ServiceNow CMDB·Incident 연동, REST API 커넥터 |
erp_connector.py |
그룹웨어 결재 연동 (나라장터, 전자결재), ERP HR 데이터 동기화 |
sso_provider.py |
SAML 2.0 / OAuth2 / OIDC SSO (행정안전부 공통로그인 포함) |
kakao_notify.py |
카카오 알림톡 (기존 카카오워크와 별도 — 일반 휴대폰 수신) |
핵심 구현: 범용 커넥터 프레임워크
# 기존 gateway.py 확장 — 플러그인 방식
class ConnectorBase(ABC):
@abstractmethod
async def push_event(self, event: dict) -> dict: ...
@abstractmethod
async def pull_data(self, query: dict) -> list: ...
@abstractmethod
async def health_check(self) -> bool: ...
# 등록 방식
CONNECTORS = {
"jira": JiraConnector,
"slack": SlackConnector,
"servicenow": ServiceNowConnector,
}
Jira 동기화 모델
class JiraSyncMapping(Base):
__tablename__ = "tb_jira_sync"
sr_id = Column(Integer, ForeignKey("tb_task.id"))
jira_issue_key = Column(String(50)) # PROJ-1234
jira_project_key = Column(String(20))
status_mapping = Column(JSON) # {"접수": "Open", "처리중": "In Progress"}
last_synced_at = Column(DateTime)
sync_direction = Column(String(10)) # BOTH/TO_JIRA/FROM_JIRA
SSO SAML 플로우
# 행정안전부 공통로그인 (GPKI) 연동
async def saml_acs(request: Request) -> RedirectResponse:
assertion = parse_saml_response(await request.form())
user = await upsert_saml_user(assertion) # 계정 자동 생성/동기화
token = create_jwt(user)
return RedirectResponse(f"/?token={token}")
작업 원칙
- 기존
routers/gateway.py의 커넥터 패턴을 상속한다 - 외부 API 자격증명은 AES-256-GCM 암호화 저장 (기존 서버 자격증명과 동일)
- 연동 실패 시 DLQ(Dead Letter Queue) 패턴으로 재시도 (APScheduler)
- Jira/ServiceNow는 테넌트별 독립 설정 (멀티테넌트 격리)
- SSO는 기존
routers/ldap.py+routers/auth.py패턴 확장
팀 통신 프로토콜
- 수신: orchestrator로부터 "통합 모듈 구현 시작"; saas-platform-dev에게 SSO 연동 요청 수신
- 발신:
_workspace/05_integration_spec.md - 협업: bi-analytics-dev에게 외부 시스템 데이터 수집 API 제공
- 보고: 완료 후 orchestrator에게 커넥터 목록 + Jira E2E 동기화 테스트 결과