Skip to content

HBSA230_Secom Sync (지문 동기화 소스) ​

(Hereby) 시스템 관리 > [[HBSA200]] > Secom Sync

앱System Admin (포트 4100)
부모 화면[[HBSA200]]
대상 사용자플랫폼 운영자(OPERATOR)
프로토타입TBU
관련 정책[[POL_권한(RBAC)]]
Statusdraft (코드 기반 — 라이브 실사 불가: dev 라우트 AccessDenied 격리, 2026-08-25 확인)
Owner카나

개요 ​

Secom 지문 게이트웨이 데이터를 조직별로 끌어오는 동기화 소스를 관리한다. 소스 생성 시 secom-puller 서비스가 다음 cron tick부터 자동 pull을 시작한다. secom_sync_state는 엔티티 없이 API 내부 raw query로 다뤄지며(design), 콘솔은 fan-out 조회 + 단일-org mutation.

문서 히스토리 ​

날짜작성자팀변경 내용
2026-08-25카나콸최초 작성 (redesign PR #583 코드 census 기반, 라이브 미실사)

Data I/O ​

Client → Server ​

액션콘솔 RESTsystemProcedure
목록GET /api/secom-sync (fan-out)systemSecomSyncStates
생성POST /api/secom-syncsystemCreateSecomSyncState
ON/OFFPUT /api/secom-sync/:sourceKeysystemToggleSecomSyncState
커서 초기화POST .../reset-cursorsystemResetSecomSyncCursor
삭제DELETE .../:sourceKeysystemDeleteSecomSyncState

Server → Client ​

변수소스비고
secomSyncStates[]systemSecomSyncStatessourceKey/schemaName/organization/enabled/lastGatewayCreatedAt/lastRunAt/lastPulledCount/totalEvents

코드 근거: tabs/secom-sync.html, server/routes/secom-sync.ts.


화면 플로우 ​


메인 사양표 ​

번호항목/기능명타입사양 및 기능 설명연관/영향 범위비고
00화면 진입 조건-activeTab === 'secom-sync'-
01초기 상태Output"Sources: {n}" + "refresh" + "+ Add Source"-
10소스 테이블List[List] 컬럼 source key/schema/organization/enabled/last cursor/last run/last pulled/total events/actionssecomSyncStatessource key=orange
11ㄴ enabledToggleON=green/OFF=gray 배지 클릭 → toggleSecomSync(key, !enabled)systemToggleSecomSyncState
12ㄴ resetButton"reset"(yellow) → ask "커서를 초기화하시겠습니까?\n모든 데이터를 처음부터 다시 가져옵니다." → resetSecomCursor()systemResetSecomSyncCursordanger tone
13ㄴ deleteButton"delete"(red) → ask "이 소스를 삭제하시겠습니까?" → deleteSecomSync()systemDeleteSecomSyncState
10-Eㄴ EmptyText"No sync sources configured. Add one to start pulling Secom fingerprint data."-
20값 없음 처리-organization 없으면 "—", lastRunAt 없으면 "never", cursor 없으면 "—"-
30에러·실패-로드 실패 tabError. 중복 sourceKey 409, 없는 키 404-

서브 화면 / 모달 사양표 ​

Add Secom Sync Source 모달 ​

번호항목/기능명타입사양 및 기능 설명연관/영향 범위비고
00노출 조건-showSecomSyncForm. 타이틀 "Add Secom Sync Source"openSecomSyncForm()
10SOURCE KEYInput Box"SOURCE KEY *"(placeholder "bestrh") 안내 "고유 식별자 (예: 병원 코드 소문자)"secomSyncForm.sourceKey
20SCHEMAInput Box"GATEWAY SCHEMA NAME *"(placeholder "bestrh_secom") 안내 "Gateway DB의 스키마명 (Secom Manager가 쓰는 스키마)"schemaName
30ORGANIZATIONDropdown"선택..." + 전 조직(name (code))organizationId필수
40생성 후 안내Info"생성 후:" · "enabled=true, cursor=1970-01-01 (epoch)로 초기화" · "secom-puller 서비스가 다음 cron tick에서 자동으로 데이터 가져오기 시작" · "Gateway DB 연결 정보는 .env의 GATEWAY_DB_* 환경변수에서 읽음"-
50제출Button"Create" → createSecomSync(). 진행 중 "creating...". 에러 red 배너(secomSyncFormError)systemCreateSecomSyncState

권한 / 상태 요약 ​

시나리오트리거결과비고
case01 [생성]Createenabled·epoch cursor로 소스 등록audit
case02 [중복 key]기존 sourceKey409
case03 [reset]확인처음부터 재수집파괴적

OQ ​

  • Gateway DB 접속·puller cron 주기 상세 = 콘솔 UI 범위 밖(.env), TBU