Skip to content

HBSA000_시스템 관리 (플랫폼 콘솔)

(Hereby) 시스템 관리 > 앱 개요

메타프로토타입 바로가기 (TBU)

개요

시스템 관리는 병원 내부 Admin Panel이 아니라, 플랫폼 운영자가 병원 tenant를 만들고 관리하는 standalone platform operations console이다. 신규 병원 provisioning, 병원 admin 계정, 병원별 roles/permissions, cross-tenant 근태 리뷰를 다룬다. tenant lifecycle·platform-level audit·IP/VPN 접근통제의 정본 콘솔이다.접근 차단 (라이브 미확인, docs 기반): system-admin.dev.hereby.me는 standalone host + IP allowlist로 격리되어 있고, 현재 접속 IP가 허용되지 않아 Access Denied("Connection from current IP is not permitted.")가 반환됐다. 따라서 화면 세부는 docs.dev + 접근 실패 화면 기준이며, 실제 UI 필드는 allowlist 환경에서 재확인 필요(TBU). standalone host + IP allowlist = 최상위 콘솔의 네트워크 격리 자체가 보안 사양이다.포지셔닝: 구독형 SaaS 멀티테넌트 운영의 심장. provisioning(SA) → import(HBIM 47시트) → tenant 운영(HBAD) 체인이 병원 1곳 도입 end-to-end를 완성한다.

문서 히스토리

  • 2026-07-06 최초 작성 - 카나/콸
  • 2026-07-10 접속 재확인 (기능 검토 라운드) - 카나/콸
  • 2026-07-21 🔴 정정: tenant config(세율/호봉/항목코드/연차기준/근무유형/롤)는 HBAD 소관 확정 — TC 00-SA 매핑 재지정 (TC 정본, 콸 승인) - 카나/콸
  • 2026-08-18 라이브 재검증 정정 - 카나: standalone host system-admin.dev.hereby.me는 현재 환경에서 DNS 미해석(NXDOMAIN) 으로 접근 자체 불가(IP 차단 화면도 못 봄). tenant route okbest /system-admin404가 아니라 S3 AccessDenied XML 반환(스펙 "404" 정정). 어느 경로든 접근 불가 = 기록만, 보안 격리 정합

Data I/O

메타Client/Network → Server:${client_ip} : 접속 IP. IpAllowlist/AccessPolicy 미통과 시 Access Denied (standalone host에서 확인)${operator_session} : platform operator 세션(User/PlatformRole). allowlist 통과 후 login/console 노출 (auth UI 미확인)${selected_organization} : cross-tenant scope 대상 org.id. 없으면 all/list${date_range} : 근태 리뷰 기간 필터(AttendanceRecord)Server → Client:${organizations} : 모든 등록 병원 list/search (Organization[])${organizationSettings} : name/legalName/type/size/timezone/fiscalYear (OrganizationSettings)${adminAccounts} : 병원 admin 계정 (AdminUser[])${roles} / ${permissions} : 병원별 roles / scoped permissions (Role[]/Permission[])${attendanceRecords} : cross-tenant 근태 records (AttendanceRecord[])${auditLogs} : platform mutation audit (PlatformAuditLog[], 존재 여부 TBU)Client → Server mutation (전부 high-risk, confirm+audit):organization provision : org details + initial admin + default roles → systemAdmin.provisionOrganization() (추정)admin account create/edit/delete · password reset(break-glass, reason+audit) → systemAdmin.admin.*() (추정)role/permission update → systemAdmin.permission.update() (추정)

화면/접근 플로우 (IP gate → provisioning → audit)

flowchart TD START["system-admin.dev.hereby.me 접속"] --> IP{"IP allowlisted?"} IP -->|no| DENY["Access DeniedConnection from current IP is not permitted"] IP -->|yes| AUTH{"platform operator auth?"} AUTH -->|no| LOGIN["Login/TBU"] AUTH -->|yes| HOME["System Admin Console"] HOME --> ORGS["Organizations"] HOME --> PROV["Provisioning"] HOME --> ATT["Attendance Review"] PROV --> DETAILS["Organization details"] DETAILS --> ADMIN["Initial admin account"] ADMIN --> ROLES["Default roles/permissions"] ROLES --> REVIEW["Preflight/review"] REVIEW --> CONFIRM{"Operator confirm?"} CONFIRM -->|yes| CREATE["Create org + admin + permissions"] CONFIRM -->|no| EDIT["Edit inputs"] CREATE --> AUDIT["PlatformAuditLog"] style START fill:#27ae60,color:#fff style DENY fill:#e74c3c,color:#fff style HOME fill:#3498db,color:#fff style CONFIRM fill:#e67e22,color:#fff style AUDIT fill:#3498db,color:#fff

최고권한 콘솔 = network gate(IP allowlist) 선행. 모든 org/admin/권한 mutation은 operator confirm + audit 경계. 라이브 UI 세부는 allowlist 환경에서 재확인.

앱 개요 사양표

번호항목/기능명타입사양 및 기능 설명연관/영향 범위비고
00접근 차단 / Network Gate-standalone host + IP allowlist 선행. 허용되지 않은 IP는 Access Denied. ⚠ 2026-08-18: standalone host DNS 미해석(NXDOMAIN). tenant route(okbest /system-admin)는 S3 AccessDenied XML(2026-08-18 정정: 기존 "404" 폐기) = System Admin은 tenant route 아님. allowlist 통과 시 platform operator login/consoleIpAllowlist · AccessPolicy2026-08-18: DNS NXDOMAIN·tenant route AccessDenied
10OrganizationsList/Detail모든 등록 병원 list/search + 병원 상세 review/edit + 설정 폼(name / legal name / type / size / timezone / fiscal year) + 저장. 라이브 미확인(docs 기반), UI 필드 TBUOrganization · OrganizationSettingshigh-risk, audit 필요
20ProvisioningForm/Processorganization details + initial admin account + default roles/permissions(template)를 one-step provision(org + admin + 권한 한 번에 생성). first login policy = 첫 로그인 password change 강제. 라이브 미확인(docs 기반), exact fields TBUProvisioningRun · AdminUser · Role/Permissionhigh-risk mutation
30Admin 계정Table/Form병원 선택 후 admin list + create/edit admin + reset password(break-glass, reason/audit) + delete admin(destructive, confirm). 라이브 미확인(docs 기반), UI TBUAdminUser · PasswordResethigh-risk
40역할 · 권한Gridrole list + permission matrix(role별 permission/scope) + default template(신규 병원 기본 권한셋) + save changes. HBAD 권한 트리와 연결. 라이브 미확인(docs 기반)Role · Permission · RolePermissionhigh-risk, audit 필요
50근태 리뷰Table/Filterorganization 필터 + date range + employee number 필터 + status 필터 + cross-tenant attendance table(전 병원 records review). 라이브 미확인(docs 기반), columns/status enum TBUAttendanceRecordcross-tenant scope
60Admin Panel 경계-System Admin = 플랫폼 운영자·cross-tenant·standalone host+IP allowlist·위험도 매우 높음(org 생성/admin 계정/병원별 권한). HBAD = 병원 내부·single organization·tenant app route. 아래 경계표 참조HBAD000cross-tenant vs single-org
70도입 체인-provisioning(SA) → import(HBIM 47시트) → tenant 운영(HBAD). ProvisioningRun↔ImportRun 연결로 도입 상태 end-to-end 추적. 아래 도입 체인표 참조ProvisioningRun · ImportRun"신규 병원 온보딩 1주" 근거

System Admin vs Admin Panel 경계

구분System Admin (본 앱)Admin Panel (HBAD)
사용자플랫폼 운영자병원 내부 시스템 관리자/HR admin
scopecross-tenant / all hospitalssingle organization
목적tenant provisioning, admin bootstrap, platform ops직원/팀/권한/근태/병원 설정 운영
접근standalone host + IP allowlisttenant app route
위험도매우 높음높음
mutationorg 생성, admin 계정, 병원별 권한직원/팀/권한/근태/병원 설정
tenant config아님 — 세율/호봉/항목코드/연차기준/근무유형/롤 생성은 HBSA 소관이 아님HBAD 소관 확정 — 일반 admin이 payroll.createTaxBracket · salaryGrade.create · itemCode.bulkCreate* · leaveRequest.upsertEntitlementRule · shift.create · role.create 수행 (🔴 정정, TC 확정: 00-SA 전반 — adminClient 실행)

도입 체인 — System Admin → Importer → Admin Panel

단계System AdminImporter (HBIM)Admin Panel (HBAD)결과
10Organization 생성target organization 필요-tenant root 생성
20initial admin 생성imported employee/admin 연결admin login 시작점최초 관리자 bootstrap
30default roles/permissions 생성imported users에 role mappingtenant 내부 권한 운영병원 표준 권한셋 생성
40ProvisioningRun 생성ImportRun과 연결onboarding 상태 확인도입 진행 상태 추적
50tenant ready 확인Excel payroll workbook import직원/팀/권한/근태 운영 시작병원 1곳 운영 개시

AI 접점 요약

System Admin AI는 설정을 대신 바꾸는 agent가 아니라, platform operator가 실수 없이 tenant를 만들고 권한/접근 위험을 검토하도록 돕는 preflight 보조자다. 최고권한 콘솔이므로 AI 안전경계는 12개 앱 중 가장 강하다 — AI 자동 org 생성/admin 생성·삭제·password reset/role·permission mutation/IP allowlist 변경 모두 금지, 모든 mutation은 operator confirm + audit (POL_AI안전경계).

AI Skill트리거 위치동작안전 경계우선도
provisioningChecklistProvisioningorg 생성 → initial admin → default roles → import → activate 단계 가이드 및 누락 표시읽기 전용★★★★★
accessPolicyAudit역할·권한 / Admin병원별 admin 권한 위험 조합, 과다권한, 비활성 admin, access policy gap 플래그읽기 전용, mutation 금지★★★★★
permissionTemplateSuggest역할·권한한국 병원 직제/규모에 맞는 default roles/permissions 표준셋 제안제안만, 사람 확정★★★★☆
attendanceAnomalyBrief근태 리뷰cross-tenant attendance에서 52시간 위반 병원 등 이상 패턴 요약읽기 전용★★★☆☆

권한 / 상태 요약

시나리오트리거결과비고
[허용되지 않은 IP]allowlist 밖 접속Access Denied — Connection from current IP is not permitted.live 확인, 네트워크 격리 = 보안 사양
[tenant route 접근]okbest /system-adminS3 AccessDenied XML (2026-08-18 정정: 기존 "404" 폐기)System Admin은 tenant route 아님
[allowlist 통과 + provision]operator confirmorg + admin + default 권한 생성 + PlatformAuditLog첫 로그인 password change 강제

OQ

  • 00-SA TC 시나리오 소관확정: TC 00-SA의 tenant config 작업(세율·호봉·항목코드·연차기준·근무유형·롤)은 일반 admin 수행 = HBAD(single-org) 소관. HBSA는 provisioning/admin bootstrap/플랫폼 권한 템플릿까지만 (TC 확정: 00 전반).
  • PlatformAuditLog 존재 여부 및 cross-tenant audit SoT 위치(HBAD ↔ HBSA) = TBU
  • IP allowlist 관리 UI가 System Admin 내부인지 별도 infra인지 = TBU
  • allowlist 환경에서의 실제 UI census(Organizations/Provisioning/Attendance 화면 필드), platform operator auth 방식 = TBU
  • organization provision form fields 전체, default role/permission template 상세 = TBU
  • ProvisioningRun↔ImportRun 연결 여부, provisioning→import→activate 도입 체인 자동화 범위 = TBU
  • 멀티테넌트 운영 주체/권한 모델(단독 운영 vs 운영팀) = TBU