Skip to content

HBSA280_Endpoints (엔드포인트 레지스트리·연결) ​

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

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

개요 ​

멀티 엔드포인트 레지스트리(env SYSADMIN_ENDPOINTS)를 표시하고, 엔드포인트별 라이브 상태 확인(?probe=true → systemWhoAmI)과 운영자 본인 자격증명 등록(연결)/해제를 관리한다. 각 엔드포인트는 독립 인증 realm이라 엔드포인트마다 본인 계정으로 연결해야 데이터가 조회된다. 로그인한 엔드포인트는 자동 연결된다. 볼트(SYSADMIN_VAULT_KEY) 설정 시 자격증명이 재시작 후에도 유지된다.

문서 히스토리 ​

날짜작성자팀변경 내용
2026-08-25카나콸최초 작성 (redesign PR #583 코드 census 기반, 라이브 미실사)
2026-10-01카나PM테이블 「식별자」 열 + 「불일치」 배지 신설, 부팅 시 instanceId 레지스트리 동기화(f1c4111b, #918) — 커밋 근거, 라이브 실사 이월(TBU)

Data I/O ​

Client → Server ​

액션콘솔 REST오케스트레이션
목록/상태 확인GET /api/endpoints?probe=true각 엔드포인트 callEndpoint(platform.systemWhoAmI)
자격증명 등록(연결)POST /api/endpoints/:id/credentialsverifyOperatorCredential → setCredentials
해제DELETE /api/endpoints/:id/credentialsclearCredentials

Server → Client ​

변수소스비고
endpoints[]레지스트리 + probeid/name/env/baseUrl/status/hasCredentials/identifier/instanceId/registryInstanceId(#918)
endpointVaultEnabled서버(SYSADMIN_VAULT_KEY 유무)영속 안내 문구 분기

코드 근거: tabs/endpoints.html, server/routes/endpoints.ts, orchestrator/endpoints.ts, orchestrator/credential-vault.ts.


화면 플로우 ​


메인 사양표 ​

번호항목/기능명타입사양 및 기능 설명연관/영향 범위비고
00화면 진입 조건-activeTab === 'endpoints'-
01초기 상태Output"Endpoints — 등록 {n}개" + "상태 확인" 버튼 → loadEndpoints(true)-probe
10안내Info"각 엔드포인트는 독립된 인증 체계(별도 계정·DB)예요. 엔드포인트마다 운영자 본인 계정으로 연결해야 해당 엔드포인트의 데이터가 조회·관리돼요. 로그인한 엔드포인트는 자동으로 연결됩니다."-원문 카피
20결과/에러 메시지AlertendpointMsg green / endpointError red 배너-
30엔드포인트 테이블List[List] 컬럼 name/env/식별자(#918)/base URL/상태/연결 계정/액션endpoints⚠ f1c4111b 시점 코드 헤더는 name/env/식별자/상태/CS 동기화/액션 — 문서 열 구성과 차이, 실사 필요
31ㄴ env 배지Badgeprod=primary / else gray-
ㄴ31-1ㄴ 식별자Output• 헤더 "식별자" — DB instanceId 표시, 값 없음: "미설정"(흐린 글씨)
 - CASE01 [레지스트리 id와 다름]: 빨간 "불일치" 배지, 툴팁 "레지스트리 식별자 「{id}」와 달라요. 다른 엔드포인트가 이 식별자를 쓰고 있는지 확인해 주세요."
• 서버 부팅 시 레지스트리 id로 자동 맞춤(다른 행이 이미 쥐면 경고 로그만, 그 엔드포인트는 게시 시 409)
ep.instanceId · ep.registryInstanceId신설(f1c4111b, #918) · TBU: 라이브 실사
32ㄴ 상태 배지Badgeok "연결됨"(green) / unauthenticated "인증 필요"(yellow) / failed "연결 실패"(red) / hasCredentials만 "등록됨"(yellow) / 없으면 "미등록"(gray)ep.status4-way 매핑
33ㄴ 연결 계정Outputep.identifier 또는 "—"-
34ㄴ 액션Button"연결"/"재연결"(hasCredentials 시) → openEndpointCredForm(id) / "해제" → clearEndpointCredentials(id)-
40값 없음 처리-identifier 없으면 "—"-
50권한별 차이-OPERATOR만 콘솔 접근(엔드포인트 연결). 레지스트리는 env 고정 — 콘솔에서 엔드포인트 추가/삭제 UI 없음[[POL_권한(RBAC)]]레지스트리 CRUD는 인프라 config

서브 화면 / 인라인 폼 사양표 ​

자격증명 등록 폼 ​

번호항목/기능명타입사양 및 기능 설명연관/영향 범위비고
00노출 조건-credFormEndpointId. 타이틀 "엔드포인트 연결 — {id}"openEndpointCredForm()
01안내Info"이 엔드포인트의 운영자(OPERATOR) 본인 계정으로 로그인해요." + 볼트 분기: case01 [볼트 on] "자격증명은 콘솔 서버에 암호화 보관돼요 — 재시작 후에도 연결이 유지돼요." / case02 [볼트 off] "자격증명은 서버 메모리에만 보관되고 재시작 시 사라져요 (영속하려면 SYSADMIN_VAULT_KEY 설정)."endpointVaultEnabled원문 카피
10입력Input Box"이메일"(email) / "비밀번호"(password)credForm
20제출Button"연결" → saveEndpointCredentials(). 진행 중 "확인 중..."verifyOperatorCredential → setCredentials검증-후-등록

권한 / 상태 요약 ​

시나리오트리거결과비고
case01 [상태 확인]상태 확인probe로 4-way 배지 갱신
case02 [연결 성공]연결 제출setCredentials + 볼트 시 영속
case03 [연결 실패]틀린 자격/비-OPERATORendpointError, 기존 등록 세션 보존라이브 버그 교정 원칙
case04 [해제]해제세션 자격 제거 → "미등록"

OQ ​

  • 콘솔에서 엔드포인트 레지스트리 추가/편집은 코드상 없음(env 고정) — UI 필요 여부 = 후속 결정
  • probe 미실행 시 기본 상태 표기(hasCredentials만 있는 "등록됨") 실측 = TBU