Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
320 commits
Select commit Hold shift + click to select a range
4b1818d
Merge pull request #223 from MZC-CSC/fix-web-navbar-project-scope
MZC-CSC Jul 20, 2026
b7c22c4
fix: project 단건조회/수정/삭제 operationId가 존재하지 않는 legacy 경로를 가리키던 문제 수정
yh-noh Jul 20, 2026
e893057
Merge pull request #224 from MZC-CSC/fix-web-delete-project-operationid
MZC-CSC Jul 20, 2026
a1e796f
feat(mci): MCI 배포 nodeGroups 매핑에 정식 필드 5개 추가 및 매핑 버그 수정
yh-noh Jul 22, 2026
4672425
Merge pull request #225 from MZC-CSC/feat-web-nodegroup-payload-mapping
MZC-CSC Jul 23, 2026
c8bd71f
fix: navbar 알림 목록 폴링에 정지 조건 추가 (Handling 0개 시 중단, track 시 재개)
yh-noh Jul 23, 2026
30aa4c9
feat(mci): 편집 폼에 template carry-through 필드 read-only 표시 섹션 추가
yh-noh Jul 23, 2026
6369e81
fix: 완료 토스트를 requestId당 1회로 제한하고 새로고침 시 재표시 제거
yh-noh Jul 23, 2026
02fc431
Merge pull request #226 from MZC-CSC/fix-web-async-notif-polling
MZC-CSC Jul 23, 2026
4ea51cb
[feat]: Company Info 화면을 Company API로 전환
yh-noh Jul 23, 2026
e56bb13
Merge pull request #227 from MZC-CSC/feat-web-companyinfo-api
MZC-CSC Jul 23, 2026
34f1527
fix(front): resolve mc-infra-manager address via getapihosts instead …
yh-noh Jul 23, 2026
fc8c34d
feat(mci): Extend VM에 template Add NodeGroup 지원 및 nodeGroup 배포 매핑 확장
yh-noh Jul 23, 2026
3d80cec
Merge pull request #228 from MZC-CSC/fix-web-remote-command-localhost
MZC-CSC Jul 23, 2026
8207659
Merge pull request #229 from MZC-CSC/feat-web-nodegroup-readonly-fields
MZC-CSC Jul 24, 2026
c8c33a6
feat(mci): template carry-through 필드를 항상 표시하고 잠김을 스타일로 구분
yh-noh Jul 24, 2026
1e2d6b1
Merge pull request #230 from MZC-CSC/feat-web-carrythrough-always-show
MZC-CSC Jul 24, 2026
194fa48
refactor: 표시 문구 용어 변경 (MCI→Infra, PMK→K8s, VM/Server→Node, Subgroup→N…
yh-noh Jul 24, 2026
64cea1a
feat(cloudresources): Cloud Resources 화면 정비 (Networks 기준 포맷 통일)
yh-noh Jul 28, 2026
f38e6ea
feat(cloudresources): NLB 화면 신규 구현 (Cloud Resources 하위)
yh-noh Jul 28, 2026
af5be95
fix(cloudresources): system ns 대용량 대응 — Specs limit, Images 조건 검색 전환
yh-noh Jul 28, 2026
491bbf2
Merge pull request #231 from MZC-CSC/feat-web-terminology-rename
MZC-CSC Jul 28, 2026
855329b
fix(toast): WARNING 토스트가 자동으로 사라지지 않던 문제 수정
yh-noh Jul 28, 2026
1ea7d92
feat: CSP 계정 등록 화면에 Tencent/Alibaba 추가 및 페이로드 정합 버그 수정
yh-noh Jul 28, 2026
a66041a
fix: CSP Role Edit 저장 미동작 수리 + IDP 필드 추가, 목록 표시·정렬 버그 수정
yh-noh Jul 28, 2026
e97c00a
Merge pull request #232 from MZC-CSC/feat-web-cspaccount-providers
MZC-CSC Jul 28, 2026
a7ef554
fix(api): commonAPIPost가 HTTP 에러를 삼켜 성공 처리하던 문제 수정
yh-noh Jul 28, 2026
ce452a3
fix(cloudresources): 삭제 확인창을 네이티브 confirm()에서 공용 modal 컴포넌트로 교체
yh-noh Jul 29, 2026
c312347
fix(cloudresources): API 진행 표시(#pageloader)가 뜨지 않던 문제 수정
yh-noh Jul 29, 2026
971f2cf
feat(networks): 목록에 체크박스 다중선택 삭제 action 추가
yh-noh Jul 30, 2026
53a48f7
feat(cloudresources): SecurityGroups/SSHKeys/MyImages/Disks/NLB에 다중선택…
yh-noh Jul 30, 2026
5b08e17
feat(cloudresources): 나머지 7개 화면(SG/SSHKeys/MyImages/Disks/NLB/Specs/I…
yh-noh Jul 30, 2026
7b7c422
feat(cloudresources): Specs/Images/SecurityGroups 세부 표시 개선
yh-noh Jul 30, 2026
98e64bc
fix: CSP Role 수정 액션명을 형제 패턴과 일치하는 UpdateCspRole로 원복
yh-noh Jul 30, 2026
65ef4a2
fix(cloudresources): Specs 등 로딩 표시가 도중에 사라지던 문제 수정
yh-noh Jul 30, 2026
b37d032
fix(cloudresources): Images Field 조건에서 중복된 Provider/Region/OS Type 제거
yh-noh Jul 30, 2026
44f476c
fix(nlbs): Infra select가 비어 GetAllInfra 응답 필드명 불일치로 항상 목록 없음 처리되던 문제 수정
yh-noh Jul 30, 2026
434fd1c
feat(cloudresources): Networks/SG/SSHKeys/MyImages/Disks/NLB에 Provide…
yh-noh Jul 30, 2026
e9bfc13
feat(nlbs): Infra 선택 없이 GetAllInfra→Infra별 GetAllNLB로 전체 목록 자동 로드
yh-noh Jul 30, 2026
a188c25
fix(nlbs): Create NLB 실행 시 PostNLB 400/500 에러 수정
yh-noh Jul 30, 2026
de23d99
feat(nlbs): Create NLB의 Infra select에 Provider/Region 정보 표시
yh-noh Jul 30, 2026
96a3c37
feat(nlbs): Create NLB 실행 전 Target NodeGroup 노드 상태 체크 추가
yh-noh Jul 30, 2026
21b7cdb
feat(roles): CSP Role Mapping에 Auth Method(OIDC/SAML/Secret Key) 선택 추가
yh-noh Jul 30, 2026
24279f0
feat(nlbs): Check Health/Delete를 목록으로 이동, 헬스체크 결과 파싱 버그 수정
yh-noh Jul 30, 2026
59ee45c
Merge pull request #233 from MZC-CSC/fix-web-csprole-edit
MZC-CSC Jul 30, 2026
1d8a06d
feat(csp-roles): CSP Role 생성 시 Auth Method(OIDC/SAML/Secret Key) 선택 추가
yh-noh Jul 30, 2026
93e1486
fix(csp-roles): 테이블 컨테이너 overflow:hidden을 auto로 변경 — Page Size 확대 시 잘…
yh-noh Jul 31, 2026
4edfd2a
fix(csp-roles): 테이블 헤더/페이지네이션 footer 고정, 데이터 영역만 스크롤
yh-noh Jul 31, 2026
b5790a0
feat(disks): Data Disk Attach/Detach 기능 추가 (Infra > NodeGroup > Node)
yh-noh Jul 31, 2026
6764106
fix(mci): Group 탭 VM 상세의 Block Device 영역이 Default 탭과 id 충돌하던 문제 수정
yh-noh Jul 31, 2026
adcd682
feat(mci): Infra Workloads Node Detail(Default/Group)에 Disk Attach/De…
yh-noh Jul 31, 2026
70991a9
feat(mciworkloads): Infra Workloads에 NLB 탭 추가
yh-noh Jul 31, 2026
6eabc3b
Merge pull request #234 from MZC-CSC/feat-web-csprole-authmethod-select
MZC-CSC Jul 31, 2026
74e86ca
Merge pull request #235 from MZC-CSC/feat-web-role-csp-mapping-authme…
MZC-CSC Jul 31, 2026
3ec8b46
refactor(mci): subgroup→nodegroup 코드/파일명 정리
yh-noh Jul 31, 2026
9fa0cf8
fix(scripts): read mc-iam-manager address from conf/api.yaml instead …
Jul 31, 2026
69dc5d6
fix(disks): Attach 팝업 버그 수정 및 제약조건 보완, 버튼 재배치
yh-noh Jul 31, 2026
6d429a3
fix(serverimages,serverspecs): project select 체크로직 제거, Delete 버튼 List…
yh-noh Jul 31, 2026
6eabb05
feat(securitygroups): Csp Detail Info의 Properties 등을 구조화해서 표시
yh-noh Jul 31, 2026
51e954b
fix(securitygroups): CSP Detail Info의 긴 Properties 값에 스크롤 추가
yh-noh Jul 31, 2026
520e2d8
Merge branch 'feat-web-terminology-rename' into feat-web-cloudresources
yh-noh Jul 31, 2026
218e9ee
fix(mci): 병합 후 남은 subgroup 잔재로 인한 Group 탭 Disk 기능 런타임 에러 수정
yh-noh Jul 31, 2026
90c4a2a
fix(mci): ScaleOut 요청 필드명 오류로 노드 수 지정 무시되는 문제 수정
yh-noh Aug 3, 2026
d037be3
Merge pull request #237 from MZC-CSC/fix-web-scaleout-numnodestoadd
MZC-CSC Aug 3, 2026
944a3de
Merge pull request #236 from MZC-CSC/fix-web-fr004-iam-endpoint
MZC-CSC Aug 3, 2026
a66b5a8
fix: PMK Add NodeGroup/Dynamic NodeGroup Root Disk Type 조회 연결
yh-noh Aug 4, 2026
ed39337
Merge pull request #238 from MZC-CSC/fix-web-pmk-nodegroup-rootdisktype
MZC-CSC Aug 4, 2026
59a3c1c
feat(cloudresources): Networks/SecurityGroups Edit 기능 추가, 체크박스 다중선택 회…
yh-noh Aug 4, 2026
2bbaea4
Merge pull request #239 from MZC-CSC/feat-web-cloudresources
MZC-CSC Aug 4, 2026
e9289a1
feat: add node MyImage creation and MyImage source in image recommend…
yh-noh Aug 5, 2026
e45786d
feat: add pagination and search to async request notification center
yh-noh Aug 6, 2026
11d9270
Merge pull request #240 from MZC-CSC/feat-web-notif-pagination
MZC-CSC Aug 6, 2026
36308d4
feat: Infra 생성 Done 시점 NodeGroup 단건 사전 검증 추가
yh-noh Aug 6, 2026
f07e0a8
feat: add CSP-specific guards for MyImage flows
yh-noh Aug 7, 2026
dab44f4
Merge pull request #241 from MZC-CSC/feat-web-node-myimage
MZC-CSC Aug 7, 2026
ace8346
Merge pull request #242 from MZC-CSC/feat-web-done-precheck
MZC-CSC Aug 7, 2026
b4f42a9
fix(workspace): project 목록 조회 403 시 project 셀렉터가 멈추는 문제 수정
yh-noh Aug 10, 2026
c55048b
Merge pull request #243 from MZC-CSC/fix-web-bug022-project-403-guard
MZC-CSC Aug 10, 2026
b5d88c4
feat: Infra 배포 시 custom label 설정 추가 (Infra/Node label 입력 + Node Passw…
yh-noh Aug 10, 2026
6ce0809
fix: iframe 메뉴 시드 메타 3종 추가 + generic loader opts 우선순위 수정 (#244)
MZC-CSC Aug 11, 2026
bf57282
Merge pull request #245 from MZC-CSC/feat-web-deploy-labels
MZC-CSC Aug 11, 2026
13f2764
fix: send matchedSpecId on image search and drop unused MCI image mod…
yh-noh Aug 13, 2026
6c21a9f
fix: make OS Architecture read-only in image recommendation modals
yh-noh Aug 13, 2026
38f3bc7
feat: let users proceed past review errors instead of blocking deploy…
yh-noh Aug 13, 2026
29020bb
Merge pull request #246 from MZC-CSC/fix-web-pmk-image-defects
MZC-CSC Aug 13, 2026
c15817e
Merge pull request #247 from MZC-CSC/feat-web-review-confirm
MZC-CSC Aug 13, 2026
2d449ea
feat: Create Infra 마법사·Add Node에 Data Disk Attach 옵션 추가
yh-noh Aug 18, 2026
e98c710
Merge pull request #248 from MZC-CSC/feat-web-diskattach-create
MZC-CSC Aug 18, 2026
6db40db
fix: Cloud Resources Import VNet/SSHKey에서 존재하지 않는 operationId 호출 및 잘못…
yh-noh Aug 18, 2026
798a715
Merge pull request #249 from MZC-CSC/fix-web-import-operationid
MZC-CSC Aug 18, 2026
410e1a0
feat: Infra NLB 탭을 노드 Assign/UnAssign으로 전환하고 Create 모달 제거
yh-noh Aug 13, 2026
58b24f7
fix: CSP VNet/VM 목록 조회가 잘못된 요청 형식으로 항상 400 실패하던 문제 수정
yh-noh Aug 19, 2026
868a9ba
feat: NLBs 화면 namespace 단일 조회(GetAllNLBInNs) 전환 + 노드 Assign/UnAssign …
yh-noh Aug 19, 2026
2119e6f
feat: Create NLB 모달에 health checker 입력 추가 (CSP별 지원 여부는 GetNLBSupport로…
yh-noh Aug 19, 2026
721b936
fix: Cloud Resources 4개 화면의 중복 Import 버튼 제거
yh-noh Aug 19, 2026
b9b79d1
Merge pull request #251 from MZC-CSC/fix-web-remove-cloudresources-im…
MZC-CSC Aug 19, 2026
2d12bc4
Merge pull request #250 from MZC-CSC/fix-web-import-forward-vnet
MZC-CSC Aug 19, 2026
6b6efbc
fix: Infra NLB 탭을 열 때마다 재조회하고 Type/Scope 대문자 키를 표시
yh-noh Aug 19, 2026
47dcbca
feat: NLB Detail 잘린 값 hover 시 전체 텍스트 툴팁 표시
yh-noh Aug 19, 2026
6ec3223
fix: Cloud Overview CSP Resource Sync 동작 복구
yh-noh Aug 19, 2026
5dc92cf
fix: Resource Sync 자원유형 옵션 정정 및 선행 의존성 검증 공용화
yh-noh Aug 19, 2026
c349db5
fix: CSP Overview/Schedule 자원유형 vm→node 정정, Cloud Overview 대상 프로젝트 선택 지원
yh-noh Aug 19, 2026
adccaa8
feat: Infra 탭 NLB Detail에도 잘린 값 hover 툴팁·복사 버튼 적용
yh-noh Aug 20, 2026
adc5db0
refactor: CSP Overview/Schedule 화면을 Resource Sync 탭으로 통합
yh-noh Aug 20, 2026
09e9820
Merge pull request #252 from MZC-CSC/feat-web-nlb-assign
MZC-CSC Aug 20, 2026
7e70293
fix: Resources 탭 등록 결과를 자원 단위로 집계하고 커넥션 단위 등록을 사전 확인
yh-noh Aug 20, 2026
fdaf777
feat: add Platform Role assignment UI to Groups screen
yh-noh Aug 13, 2026
ce55c2d
fix: surface backend error detail instead of generic HTTP status
yh-noh Aug 14, 2026
00a738e
Merge pull request #253 from MZC-CSC/feat-web-group-role-ui
MZC-CSC Aug 20, 2026
7fe22ab
Merge pull request #254 from MZC-CSC/fix-web-cloudoverview-sync-api
MZC-CSC Aug 20, 2026
3412673
feat: Infra를 JSON으로 Export하고 NodeGroup을 JSON에서 Import하는 기능 추가
yh-noh Aug 21, 2026
3d7ec3a
fix: K8s 클러스터 원격 명령 operationId를 PostCmdK8sCluster로 교체
yh-noh Aug 21, 2026
cccb0d5
fix: K8s 터미널이 열릴 때 자동 전송하던 SSH용 명령 제거
yh-noh Aug 21, 2026
11b6c30
fix: K8s 터미널 Namespace 입력 제거 및 모달 backdrop 잔존 수정
yh-noh Aug 21, 2026
ccb243a
feat: NodeGroup 이름 중복 방지, 노드 스코프 Export, Import 드래그앤드롭 추가
yh-noh Aug 21, 2026
548c223
fix: Infra 생성 postCommand를 postCommands 배열 구조로 전환
yh-noh Aug 21, 2026
c37b060
Merge pull request #257 from MZC-CSC/fix-web-infra-postcommands
MZC-CSC Aug 21, 2026
aa8e290
Merge pull request #255 from MZC-CSC/feat-web-infra-json-import-export
MZC-CSC Aug 21, 2026
f054183
fix: 터미널 모달 Namespace 라벨을 K8s Namespace로 명확화
yh-noh Aug 21, 2026
8f4a2d6
Merge pull request #256 from MZC-CSC/fix-web-k8s-remotecmd-operationid
MZC-CSC Aug 21, 2026
8e9c155
fix: cb-tumblebug v0.12.28/29 스펙 변경 반영 — Policy postCommands 전환 + Nod…
yh-noh Aug 24, 2026
77b7c21
Merge pull request #258 from MZC-CSC/fix-web-policy-postcommands
MZC-CSC Aug 24, 2026
54d6f5f
fix: cb-tumblebug v0.12.29 스펙 변경 반영 — Infra Template/JSON Import post…
yh-noh Aug 24, 2026
81d5098
Merge pull request #259 from MZC-CSC/fix-web-template-postcommands
MZC-CSC Aug 24, 2026
68285da
feat: Create Infra Expert Mode — 리소스 직접 선택 + Node User Password 대체 경로
yh-noh Aug 26, 2026
575a396
feat: K8s NodeGroup 액션 정리 및 비동기 처리, AWS 특수 케이스 대응
yh-noh Aug 26, 2026
80bb124
Merge pull request #261 from MZC-CSC/fix-web-k8s-nodegroup-actions
MZC-CSC Aug 26, 2026
4f62fee
fix: PostInfra/PostInfraNode를 async 추적 허용목록에 등록 — 동기 대기 우회 방식 정정
yh-noh Aug 26, 2026
f1a5910
feat: serve local menu list for GetAllAvailableMenus when USE_IAM is …
yh-noh Aug 26, 2026
2d7915d
Merge pull request #262 from MZC-CSC/feat/web-selfmode-menu-loader
MZC-CSC Aug 26, 2026
012ad94
Merge remote-tracking branch 'origin/develop' into feat-web-infra-exp…
yh-noh Aug 26, 2026
6bc454d
Merge pull request #260 from MZC-CSC/feat-web-infra-expert-mode
MZC-CSC Aug 26, 2026
b2a2554
fix(menu): export 파일명 타임스탬프 통일 및 재커밋 방지 gitignore 추가
yh-noh Aug 26, 2026
dd4fbc7
feat(menu): 아이콘 필드를 정본 yaml/DB/UI에 연동
yh-noh Aug 26, 2026
eedcae3
feat: add Workspaces > Projects cross-workspace management screen
yh-noh Aug 27, 2026
3099761
Merge pull request #265 from MZC-CSC/feat-web-workspaces-projects
MZC-CSC Aug 27, 2026
429390b
Merge pull request #263 from MZC-CSC/chore-web-menu-export-hygiene
MZC-CSC Aug 27, 2026
618905c
Merge pull request #264 from MZC-CSC/feat-web-menu-icon-field
MZC-CSC Aug 27, 2026
459c37e
fix: groups_api.js unwrapResponse가 204 No Content를 오류로 처리하지 않도록 방어 코드 추가
yh-noh Aug 27, 2026
d5686c3
Merge pull request #266 from MZC-CSC/fix-web-unwrapresponse-204
MZC-CSC Aug 27, 2026
74b7ed6
fix(k8s): switch Copy KubeConfig to cb-tumblebug's CSP-native endpoint
yh-noh Aug 31, 2026
43a2e7b
Merge pull request #267 from MZC-CSC/fix-web-k8s-kubeconfig-endpoint
MZC-CSC Aug 31, 2026
1366f66
chore(k8s): remove PMK Remote Command Terminal feature
yh-noh Sep 1, 2026
0ee9264
Merge pull request #268 from MZC-CSC/chore-web-k8s-remotecmd-removal
MZC-CSC Sep 1, 2026
30fb322
chore(menu): remove orphaned webconsole_menu_permissions.csv
yh-noh Sep 1, 2026
51e18af
Merge pull request #269 from MZC-CSC/chore-web-menu-permissions-csv-c…
MZC-CSC Sep 1, 2026
7bc9972
fix: PMK 이미지 검색 osType 기본값이 K8s 이미지와 매칭되지 않아 결과 0건 발생
yh-noh Sep 1, 2026
d089187
fix: PMK Spec/Image 재선택 시 Apply 미반영 및 이전 검색결과 잔존 수정
yh-noh Sep 1, 2026
e719754
Merge pull request #270 from MZC-CSC/fix-web-pmk-image-search-defaults
MZC-CSC Sep 1, 2026
d92db10
fix: MCI Spec 재선택 시 Apply가 이전 값을 다시 적용하는 문제 수정
yh-noh Sep 1, 2026
18da2e4
Merge pull request #271 from MZC-CSC/fix-web-mci-spec-reapply
MZC-CSC Sep 1, 2026
8bbd936
fix: replace container-xl with container-fluid across front templates
yh-noh Sep 1, 2026
c8caf1b
fix: restore mobile navbar toggler by removing d-none d-lg-flex
yh-noh Sep 1, 2026
11538e4
Merge pull request #273 from MZC-CSC/fix-web-mobile-navbar-hidden
MZC-CSC Sep 1, 2026
b020a19
fix: conf/api.yaml의 죽은 PostFileToK8sCluster 오퍼레이션 삭제
yh-noh Sep 1, 2026
564a1a8
docs: README 설치 섹션 재작성 — mc-admin-cli 통합설치 안내 + canonical 메뉴 소스 명시
yh-noh Sep 2, 2026
6123de9
Merge pull request #275 from MZC-CSC/chore-readme-installer-menu-source
MZC-CSC Sep 2, 2026
43d020b
Merge remote-tracking branch 'origin/develop' into fix-web-container-…
yh-noh Sep 2, 2026
4a4fb15
Merge pull request #272 from MZC-CSC/fix-web-container-fluid-margin
MZC-CSC Sep 2, 2026
ead4678
Merge pull request #274 from MZC-CSC/fix-web-apiyaml-dead-k8sfiletran…
MZC-CSC Sep 2, 2026
9297255
docs: fix wrong api port and dangling CLAUDE.md link in README
yh-noh Sep 2, 2026
5745000
Merge pull request #276 from MZC-CSC/fix-readme-doc-port-link
MZC-CSC Sep 2, 2026
fd744ce
fix: cb-tumblebug operationId Vm/VMs 명명을 Node로 정정
yh-noh Sep 3, 2026
915ca72
Merge pull request #277 from MZC-CSC/fix-web-operationid-vm-node-rename
MZC-CSC Sep 3, 2026
1165a3d
chore(web): remove orphaned selfiammenu.yaml
yh-noh Sep 4, 2026
fe6229a
Merge pull request #278 from MZC-CSC/chore-web-remove-selfiammenu
MZC-CSC Sep 4, 2026
607423e
fix: mc-web-console operationId 별칭을 cb-tumblebug 정본으로 통일
yh-noh Sep 4, 2026
72f4596
fix: 소문자-only operationId 25건을 cb-tumblebug 정본 케이싱으로 통일
yh-noh Sep 4, 2026
1a76c93
Merge pull request #280 from MZC-CSC/fix-web-operationid-casing-drift
MZC-CSC Sep 4, 2026
562d075
fix: VNet 삭제 시 action=withsubnets 누락으로 서브넷 있는 VPC 삭제가 항상 500
yh-noh Sep 4, 2026
a30fb80
feat(menu): 메뉴 카탈로그 priority/menunumber 체계 재정의
yh-noh Sep 4, 2026
0dede0d
Merge pull request #281 from MZC-CSC/feat-web-menu-redefine
MZC-CSC Sep 4, 2026
04a40c4
fix(menu): 실제 페이지 없는 Members 메뉴 항목 제거
yh-noh Sep 4, 2026
f660009
Merge pull request #282 from MZC-CSC/feat-web-menu-redefine
MZC-CSC Sep 4, 2026
7f7a14a
fix(web): rename mciworkloads/pmkworkloads templates to match menu id…
yh-noh Sep 4, 2026
3a01576
Merge pull request #283 from MZC-CSC/fix-web-workloads-template-rename
MZC-CSC Sep 4, 2026
4ecac84
feat(menu): answer all menu list queries locally in self mode
yh-noh Sep 4, 2026
d67850d
feat(setup-status): make menu re-sync an explicit force re-seed
yh-noh Sep 4, 2026
03303c1
Merge pull request #284 from MZC-CSC/feat/webconsole-self-mode-local-…
MZC-CSC Sep 4, 2026
2cdaa6d
Merge pull request #285 from MZC-CSC/feat/webconsole-setup-status-for…
MZC-CSC Sep 4, 2026
5435ec7
Merge pull request #279 from MZC-CSC/fix-web-operationid-canonical-cl…
MZC-CSC Sep 7, 2026
964ffac
fix: Bastion API 7종 resourcePath 파라미터명을 cb-tumblebug 정본으로 정정
yh-noh Sep 7, 2026
37d3dbf
Merge pull request #286 from MZC-CSC/fix-web-bastion-operationid-para…
MZC-CSC Sep 7, 2026
2d50896
feat(cloudsps): CSP Definitions 화면 신설 및 Cloud Drivers 조회 복구
yh-noh Sep 7, 2026
25d8304
Merge pull request #287 from MZC-CSC/feat-web-cspdefinition-screen
MZC-CSC Sep 7, 2026
42ed9f0
fix(cloudresources): Server Spec/Image의 CSP 조회 팝업 정상화
yh-noh Sep 8, 2026
6543022
Merge pull request #288 from MZC-CSC/fix-web-forward-spider-path-params
MZC-CSC Sep 8, 2026
a12f1a7
refactor(web): mci_api.js → infra_api.js 파일명 변경
yh-noh Sep 8, 2026
48fe46e
refactor(web): 나머지 mci/pmk 파일명 21개 rename (WEB-BUG-028)
yh-noh Sep 8, 2026
4f856d1
Merge pull request #289 from MZC-CSC/chore-web-rename-mci-api-to-infr…
MZC-CSC Sep 8, 2026
246d4d2
fix: K8s 생성 화면 Region/Connection 정합성 수정
yh-noh Sep 9, 2026
ac6518f
fix: Azure/NHN Simple Creation 및 AWS 전체에서 AutoScaling Off 선택 차단
yh-noh Sep 9, 2026
1f1516d
fix: 사용자 테스트 지적 4건 수정 (폼 누수·VPC 미로딩·AutoScaling 경로·SSH Key)
yh-noh Sep 10, 2026
6147c17
refactor: K8s 화면의 native alert를 공통 모달로 교체 (37건)
yh-noh Sep 10, 2026
a7af393
Merge pull request #290 from MZC-CSC/fix-web-k8s-connection-mismatch
MZC-CSC Sep 10, 2026
acd0646
feat: K8s 이미지 선택에 Use Default 옵션과 목록 필터 추가
yh-noh Sep 10, 2026
ca2ab38
fix: K8s NodeGroup 카드 체크박스 이중 토글 수정
yh-noh Sep 10, 2026
c8ea025
Merge pull request #291 from MZC-CSC/fix-web-k8s-image-selection
MZC-CSC Sep 10, 2026
7fba289
Merge pull request #292 from MZC-CSC/fix-web-k8s-nodegroup-checkbox-t…
MZC-CSC Sep 10, 2026
be4b029
feat(k8s): NodeGroup 스케일 폼을 Desired + Autoscaling 체크박스로 개편
yh-noh Sep 14, 2026
71597d9
Merge pull request #293 from MZC-CSC/feat-web-k8s-nodegroup-edit-scaling
MZC-CSC Sep 14, 2026
e19fff7
fix(k8s): Expert 생성이 요청 없이 성공 토스트를 띄우고 NodeGroup 폼이 숨김 상태로 고착되던 문제 (W…
yh-noh Sep 15, 2026
b6c1360
fix(k8s): Add NodeGroup 요청을 tumblebug 타입으로 맞춰 보낸다 (WEB-BUG-102)
yh-noh Sep 15, 2026
b14d00e
fix(api): Tencent 루트 디스크 목록에 CLOUD_HSSD·CLOUD_BSSD 추가
yh-noh Sep 15, 2026
d8d2910
fix(k8s): NCP Simple 생성이 항상 실패하던 autoscale 번역 수정 (WEB-BUG-104)
yh-noh Sep 15, 2026
aa37d57
fix(k8s): WEB-BUG-108 NHN Add NodeGroup 이 max 를 0 으로 보내지 않게 한다
yh-noh Sep 16, 2026
78a3b77
feat(k8s): Edit Scaling 을 생성 폼과 같은 컨트롤·번역 규칙으로 통일
yh-noh Sep 16, 2026
ab8583f
fix(k8s): 단계 사이 대기가 CSP 원본 상태를 보게 한다 — NHN Set 400 해소
yh-noh Sep 16, 2026
71000e5
fix: K8s 클러스터 생성에서 목록 밖 Kubernetes 버전을 입력할 수 있게 하고 CSP 허용 버전을 안내
yh-noh Sep 16, 2026
046ff5e
fix: Remote Command/File Transfer 타겟 쿼리파라미터를 nodeId/nodeGroupId로 정정
yh-noh Sep 7, 2026
d657082
fix: 원격 명령 확인 모달 취소 시 입력 화면이 사라지던 문제 수정
yh-noh Sep 7, 2026
a93888e
fix: 원격 명령 대상 노드 조회의 API 모듈 키를 infra_api로 정정
yh-noh Sep 16, 2026
bcc79fe
fix(k8s): NHN·Alibaba 해제 계획의 대기 타임아웃을 5분으로 늘린다
yh-noh Sep 17, 2026
f316753
fix(k8s): 생성 폼과 수정 모달의 고정 크기 안내 문구를 분리한다
yh-noh Sep 17, 2026
1121b29
Merge pull request #294 from MZC-CSC/fix-web-k8s-version-skipcheck
MZC-CSC Sep 17, 2026
549788a
Merge pull request #295 from MZC-CSC/fix-web-remotecmd-target-params
MZC-CSC Sep 17, 2026
01dbe29
Merge origin/develop into fix-web-k8s-live-csp-coverage
yh-noh Sep 17, 2026
c384584
feat(k8s): Edit Scaling 화면 계약을 전 CSP 동일하게 통일하고 CSP 번역을 사실 기반으로 단일화
yh-noh Sep 19, 2026
c5fd1cd
Merge pull request #296 from MZC-CSC/feat-web-k8s-scaling-uniform-con…
MZC-CSC Sep 19, 2026
f4be272
fix: iframe 메뉴 진입 시 사이드바 부모 드롭다운이 펼쳐지지 않는 문제 수정
yh-noh Sep 29, 2026
f94dfc5
fix: local 메뉴 진입 시 형제 하위 메뉴까지 active 로 표시되는 문제 수정
yh-noh Sep 29, 2026
c2f51a5
Merge pull request #297 from MZC-CSC/fix-web-sidebar-iframe-active
MZC-CSC Sep 29, 2026
56097aa
feat: Install SW 버튼을 mc-application-manager 설치 화면 iframe 팝업으로 연동
yh-noh Sep 29, 2026
f957900
feat: Install SW를 Running 노드에서만 활성화하고 AM VM 규약 파라미터로 전달
yh-noh Sep 29, 2026
1a753d2
Merge pull request #298 from MZC-CSC/feat-web-installsw-am-iframe
MZC-CSC Sep 29, 2026
6e931e6
fix: 체크박스 선택 시 K8s·Infra·Node 삭제 대상이 비는 문제 수정 및 삭제를 terminate로 전환
yh-noh Oct 5, 2026
d042da0
fix: Running 노드 상세에서 public IP가 비어 보이는 문제 수정
yh-noh Oct 5, 2026
a2f0111
Merge pull request #299 from MZC-CSC/fix-web-k8s-cluster-delete-checkbox
MZC-CSC Oct 5, 2026
a008966
fix: K8s Expert 생성에서 AWS는 서로 다른 AZ의 subnet을 2개 이상 선택하도록 수정
yh-noh Oct 6, 2026
62abb53
fix: K8s 상세 kubeconfig는 Active일 때만 조회하고 진행 토스트가 닫히지 않던 문제 수정
yh-noh Oct 6, 2026
da085b0
fix: SSH Key 상세에서 Private Key를 언제든 가려서 표시하고 복사할 수 있도록 보완
yh-noh Oct 6, 2026
c5db641
Merge pull request #300 from MZC-CSC/fix-web-k8s-expert-aws-multi-az-…
MZC-CSC Oct 6, 2026
23d7c98
Merge pull request #301 from MZC-CSC/fix-web-k8s-kubeconfig-progress-…
MZC-CSC Oct 6, 2026
422a2d1
Merge pull request #302 from MZC-CSC/fix-web-sshkey-private-key-masked
MZC-CSC Oct 6, 2026
1b47ffc
chore: api.yaml의 mc-iam-manager 버전을 0.6.4로 갱신
yh-noh Oct 6, 2026
026b241
fix: Terminal에서 원격 명령 실패 사유가 (No output)으로만 표시되던 문제 수정
yh-noh Oct 6, 2026
dcfabf7
Merge pull request #304 from MZC-CSC/fix-web-remotecmd-error-field
MZC-CSC Oct 6, 2026
aef9735
fix: 로그인 이후 추가된 project가 화면 이동 시 상단 Project 목록에서 사라지는 문제 수정
yh-noh Oct 6, 2026
5c0f09f
Merge pull request #305 from MZC-CSC/fix-web-navbar-project-cache
MZC-CSC Oct 6, 2026
123eedb
Merge pull request #303 from MZC-CSC/chore/web-iam-v0.6.4
MZC-CSC Oct 6, 2026
5316b57
fix: Resource Sync Run Sync 대상을 Query 조회 범위에 연동
yh-noh Oct 8, 2026
473e60d
Merge pull request #307 from MZC-CSC/fix-web-resourcesync-query-scope
MZC-CSC Oct 8, 2026
85938b7
chore: KT provider 로고 이미지 추가 (img_logo_kt.png)
yh-noh Oct 12, 2026
5582c7a
Merge pull request #309 from MZC-CSC/chore-web-add-kt-logo
MZC-CSC Oct 12, 2026
77a00d5
chore: KT provider 로고 이미지 교체 (img_logo_kt.png)
yh-noh Oct 12, 2026
038a84b
Merge pull request #310 from MZC-CSC/chore-web-update-kt-logo
MZC-CSC Oct 12, 2026
42d93ce
feat: Networks·Security Groups·SSH Keys 화면에 연관 Node(Used By) 조회와 사용 중…
yh-noh Oct 14, 2026
645f768
fix: Credential 등록 Provider별 자동 Key를 mc-infra-manager 허용 형식(Credentia…
yh-noh Oct 14, 2026
f0d7b32
Merge pull request #312 from MZC-CSC/fix-web-credential-csp-keys
MZC-CSC Oct 14, 2026
cfd5563
Merge pull request #311 from MZC-CSC/feat-web-resource-used-by
MZC-CSC Oct 14, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,11 @@ conf/selfiamauthsetting.yaml
conf/selfiamuser.dat
conf/serverinfo

# menu export artifacts (WEB-TECH-067) - 브라우저 다운로드 산출물이 conf/에 실수로 반입되는 것 방지
conf/menu-export-*.json
conf/menu-export-*.yaml
conf/menu-export-*.yml

# scripts
!scripts/.env
scripts/container-volume
Expand Down
232 changes: 46 additions & 186 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,214 +12,74 @@ The MC-WEB-CONSOLE multi-cloud management portal and open interfaces include sev
- 멀티 클라우드 관리 플랫폼 일반 사용자 포털
- 멀티 클라우드 관리 플랫폼 관리자 포털

---
## Documentation

## Quick Start with docker
프로젝트 문서는 [docs/](docs/) 폴더에 역할별로 정리되어 있습니다.

Use this guide to start MC-WEB-CONOLE using the docker. This guide explains on the premise that all prerequisites have been met.
- [API (Swagger)](docs/api/index.html)
- [개발 기록 (bug/fix)](docs/development/)
- [수동 테스트](docs/manual-testing/)
- [E2E 스냅샷 (mcmp-e2e mirror)](docs/e2e-snapshot/)

### Prequisites
---

- Ubuntu (22.04 is tested) with external access (https-443, http-80, ssh-ANY)
- pre-installed [MC-INFRA-MANAGER](https://github.com/m-cmp/mc-infra-manager) and [MC-IAM-MANAGER](https://github.com/m-cmp/mc-iam-manager)
- Both should be completed setting (users, pre-Runscript, credential ….)
- Stop or Disable Services using 3001 port for web interface
## Installation

### Step one : Clone this repo
mc-web-console is one subsystem of the M-CMP platform. It depends on **mc-iam-manager** (authentication/menu/RBAC) and **mc-infra-manager** (multi-cloud infra API) being reachable, and its menu catalog (`conf/webconsole_menu_resources.yaml`, see [Menu Catalog](#menu-catalog-canonical-source) below) is the platform-wide canonical source that mc-iam-manager seeds itself from.

```bash
git clone <https://github.com/m-cmp/mc-web-console> <YourFolderName>
### Recommended: install the whole platform with mc-admin-cli

```

### Step two : Configuration

- Modifying an Environment variable in docker-compose file
- Those marked with OPTIONAL do not have to be changed. Those marked with REQUIRED are fixed values that must be changed or used after setting.
- port
- GO_ENV
- MCINFRAMANAGER
- MCIAMMANAGER
- API_USERNAME
- API_PASSWORD
- DEV_DATABASE_URL
- POSTGRES_DB
- POSTGRES_USER
- POSTGRES_PASSWORD
For a new environment, use [mc-admin-cli](https://github.com/m-cmp/mc-admin-cli)'s `installAll.sh` — it is the **unified installer** for the whole M-CMP platform (mc-infra-manager/cb-tumblebug, mc-iam-manager, mc-web-console, and the rest of the microservices) and brings everything up together via Docker Compose, including seeding mc-iam-manager's menu/role data from this repo.

```bash
cd <YourFolderName>/scripts
vi dockerfile
git clone https://github.com/m-cmp/mc-admin-cli.git -b v0.5.0
cd mc-admin-cli/conf/docker/conf/mc-iam-manager
cp .env.setup .env # edit: platform admin ID/password and other REQUIRE-marked values
cd ../../../../bin
./installAll.sh
```

```jsx
version: '3.8'

services:
mcwebconsole:
build: ../
container_name: mcwebconsole
depends_on:
- postgresdb
ports:
- "3000:3000"
- "3001:3001"
environment:
GO_ENV: development # production | development # Please CHANGE ME (OPTIONAL)
GODEBUG: netdns=go
MCIAMMANAGER: <https://sample.mc-iam-manager.com:5000> # Please CHANGE ME (REQUIRE)
MCINFRAMANAGER: <http://sample.m-cmp.com:1323/tumblebug> # Please CHANGE ME (REQUIRE)
API_USERNAME: API_USERNAME # Please CHANGE ME (REQUIRE)
API_PASSWORD: API_PASSWORD # Please CHANGE ME (REQUIRE)
DEV_DATABASE_URL: postgres://mcwebadmin:mcwebadminpassword@mcwebconsole-postgresdb:5432/mcwebconsoledbdev # Please CHANGE ME (OPTIONAL)
PROD_DATABASE_URL: postgres://mcwebadmin:mcwebadminpassword@mcwebconsole-postgresdb:5432/mcwebconsoledbprod # Please CHANGE ME (OPTIONAL)
restart: always
networks:
- mcwebconsole

mcwebconsole-postgresdb:
image: postgres:14-alpine
container_name: mcwebconsole-postgresdb
volumes:
- ~/.m-cmp/mc-web-console/postgresql/data:/var/lib/postgresql/data
environment:
POSTGRES_DB: mcwebconsoledbdev # [mcwebconsoledbdev / mcwebconsoledbprod] # Please CHANGE ME (OPTIONAL)
POSTGRES_USER: mcwebadmin # Please CHANGE ME (OPTIONAL)
POSTGRES_PASSWORD: mcwebadminpassword # Please CHANGE ME (OPTIONAL)
networks:
- mcwebconsole

networks:
mcwebconsole:
See mc-admin-cli's [README](https://github.com/m-cmp/mc-admin-cli#readme) (Quick Start / Quick Guide) for the full walkthrough, deployment modes, and troubleshooting. Once it finishes, mc-web-console is reachable at `https://<server>:3001` with default credentials `mcmp` / `mcmp_password`.

```
### Local development (contributors)

mc-web-console runs as **two separate Echo servers**: `api/` (backend API / proxy to mc-iam-manager, mc-infra-manager, and the other microservices, default port 3000) and `front/` (HTML templates + static assets, default port 3001).

### Step three: Excute docker-compose
**Prerequisites**
- Go 1.25+ ([install guide](https://go.dev/doc/install))
- Node.js (for `front/`'s webpack build)
- A reachable mc-iam-manager instance (and mc-infra-manager, for infra-resource screens) — either one you run locally, or a shared dev/stage instance

**1. Clone and configure**
```bash
docker-compose up --build -d
git clone https://github.com/m-cmp/mc-web-console.git
cd mc-web-console
cp conf/.env.sample conf/.env
# edit conf/.env — MC_WEB_CONSOLE_* ports, Postgres connection, MC_WEB_CONSOLE_USE_IAM, etc.
```
`conf/api.yaml` (committed, not a `.sample`) holds the `services.<name>.baseurl` map the API server proxies to — update `services.mc-iam-manager.baseurl` / `services.mc-infra-manager.baseurl` to point at the instances you're using. Client-side (browser) access means these must be real, reachable addresses — not `localhost`/`127.0.0.1` — unless you're also running the browser on the same host.

If you check the log as below, it seems that you have successfully built and deployed the mc-web-console without any problems.

**2. Build and run**
```bash
$ docker-compose up --build -d
## This warning sign is a natural occurrence when running an existing MCIAMMANAGER with docker components.
WARNING: Found orphan containers (mciammanager, mciammanager-keycloak, mciammanager-nginx, mciammanager-certbot) for this project. If you removed or renamed this service in your compose file, you can run this command with the --remove-orphans flag to clean it up.
Building mcwebconsole
Step 1/32 : FROM golang:1.25-alpine AS builder
---> 0594d7786b7c
Step 2/32 : RUN apk add --no-cache gcc libc-dev musl-dev curl npm wget
---> Using cache
---> ed49efe7089b
Step 3/32 : RUN npm install --global yarn
.....
Creating mcwebconsole-postgresdb ... done
Creating mcwebconsole ... done
# api
cd api && go build -o ../bin/api ./cmd/main.go && cd ..
MC_WEB_CONSOLE_API_PORT=3000 ./bin/api

# front (separate terminal)
cd front && npm install && npm run build && go build -o ../bin/front ./cmd/app && cd ..
MC_WEB_CONSOLE_FRONT_PORT=3001 ./bin/front
```
For active `front/` development, `npm run dev` (webpack `--watch`) rebuilds static assets automatically instead of running `npm run build` by hand each time; the Go binaries (`api/`, `front/`) still need a manual rebuild.

### Step four: Ready Check

1. **Verify Framework and Service Status**

• Confirm that the services required by MC-WEB-CONSOLE, such as MC-INFRA-MANAGER and MC-IAM-MANAGER, are running.

• Ensure the database connection is established without issues.

2. **Check Status in Browser**

• Open a web browser and navigate to the following URL to verify the service response:

```bash
http://<YOUR_ADDRESS>:3001/readyz
```


### WELCOME: **Visit Web pages**

```jsx
http://<YOUR_ADDRESS>:3001/auth/login

**3. Verify**
```bash
curl http://localhost:3001/readyz
```
Then open `http://<host>:3001/auth/login` — you should reach the login screen and be able to sign in as a user created in mc-iam-manager.

MC-WEB-CONSOLE has been successfully deployed if the login screen is displayed when accessing the endpoint above. Login users can log in as users created by MC-IAM-MANAGER.

---

**[설치 환경]**

mc-web-console은 1.25 이상의 Go 버전이 설치된 다양한 환경에서 실행 가능하지만 최종 동작을 검증한 OS는 Ubuntu 22.0.4입니다.

**[의존성]**

mc-web-console은 내부적으로 mc-iam-manager & mc-infra-manager의 개방형 API를 이용하기 때문에 각 서버의 연동이 필요합니다.(필수)

- https://github.com/m-cmp/mc-infra-manager README 참고하여 설치 및 실행
- https://github.com/m-cmp/mc-iam-manager README 참고하여 설치 및 실행 (검증된 버전 : mc-iam-manager v0.2.0).

---

**[소스 설치]**

- Git 설치
- `$ sudo apt update`
- `$ sudo apt install git`
- Go 1.25 이상의 버전 설치 ( 공식 문서 참고 )
- https://go.dev/doc/install
- mc-web-console 설치

```bash
$ git clone <https://github.com/m-cmp/mc-web-console.git>
```

```bash
$ git clone <https://github.com/m-cmp/mc-web-console.git>
```

- api

```bash
$ cd mc-web-console/api
$ go build ./...
```

- front

```bash
$ cd mc-web-console/front
$ npm install
$ npm run build
$ go build ./cmd/app
```


---
### Menu Catalog (canonical source)

**[환경 설정]**

- /conf/.env.sample 파일을 .env로 변경합니다.
- .env 파일에서 이용하고자 하는 개방형 API 서버의 실제 URL 정보로 수정합니다.

**[주의사항]**

mc-web-console을 비롯하여 연동되는 모든 서버가 자신의 로컬 환경에서 개발되는 경우를 제외하고는 클라이언트의 웹브라우저에서 접근하기 때문에 localhost나 127.0.0.1 주소가 아닌 실제 IP 주소를 사용해야 합니다.


---
`conf/webconsole_menu_resources.yaml` in this repo is the **platform-wide canonical menu catalog** — every menu item's id, hierarchy, and (for embedded microservice screens) `viewtype`/`frameworkservice`/`path`. mc-iam-manager does not maintain its own menu definitions. How the file is used depends on the mode:

**[mc-web-console 실행]**

- 코드기반 실행

```bash
$ cd <YourFolderName>/api
$ source ../conf/.env
$ go run ./cmd
```

```bash
$ cd <YourFolderName>/front
$ source ../conf/.env
$ go run ./cmd/app
```
- **IAM mode** (`MC_WEB_CONSOLE_USE_IAM=true`, the mc-admin-cli default): the catalog is seeded into mc-iam-manager's `mcmp_menus` table **once, at first install**. mc-admin-cli bundles a copy of this file under `conf/docker/conf/mc-web-console/api/conf/` and mounts it into the mc-iam-manager container (`MC_WEB_CONSOLE_MENUYAML` points at the mounted path; a URL is also accepted). After that the IAM DB is the source of truth — menus and role-menu mappings are edited through the console's Menus / Roles screens (or mc-iam-manager's `/api/menus*` APIs), and the console reads the full menu (`/api/menus/list`) and the caller's role-filtered menu (`/api/users/menus/list`) from IAM. Re-running the seed skips when menus already exist; an operator can explicitly `force` a re-seed (role mappings are backed up first) — see mc-iam-manager's README "Menu Management". So changing this file affects existing deployments only when someone updates the mc-admin-cli copy and forces a re-seed.
- **self mode** (`MC_WEB_CONSOLE_USE_IAM=false`): the API server loads this file at boot and answers the menu queries (`GetAllAvailableMenus`, `Getmenuresources`, `listMenus`) from it directly — full menu = role menu, no IAM round trip. Screens that only work with IAM (Menus, Roles, CSP Roles, Cloud Overview's Setup Status) are hidden from the local list (`api/internal/handler/menu_local.go`).
1 change: 1 addition & 0 deletions api/Dockerfile.mcwebconsoleapi
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ FROM debian:bookworm-slim AS deploy
WORKDIR /app/
COPY --from=build /bin/api .
ADD ./conf/api.yaml /conf/api.yaml
ADD ./conf/webconsole_menu_resources.yaml /conf/webconsole_menu_resources.yaml

ENV API_ADDR=0.0.0.0
ENV API_PORT=3000
Expand Down
37 changes: 37 additions & 0 deletions api/cmd/main.go
Original file line number Diff line number Diff line change
@@ -1,3 +1,16 @@
// mc-web-console BFF API server.
//
// @title mc-web-console API
// @version 1.0.0
// @description mc-web-console BFF API server (Echo). Auth, disk lookup, admin BFF, and multi-cloud proxy via /api/{subsystemName}/{operationId}.
// @host localhost:3100
// @BasePath /
// @schemes http
//
// @securityDefinitions.apikey BearerAuth
// @in header
// @name Authorization
// @description JWT Bearer token (Authorization header or AccessToken cookie)
package main

import (
Expand Down Expand Up @@ -36,6 +49,7 @@ func main() {
jwt.SetSecretKey(jwtSecret)

// 데이터베이스 초기화 (MC_WEB_CONSOLE_POSTGRES_HOST 환경변수가 설정된 경우에만 활성화)
dbEnabled := false
if os.Getenv("MC_WEB_CONSOLE_POSTGRES_HOST") != "" {
if err := repository.InitDatabase(cfg); err != nil {
log.Fatalf("Failed to initialize database: %v", err)
Expand All @@ -46,6 +60,7 @@ func main() {
if err := repository.AutoMigrate(); err != nil {
log.Fatalf("Failed to migrate database: %v", err)
}
dbEnabled = true
} else {
log.Println("⚠️ MC_WEB_CONSOLE_POSTGRES_HOST not configured, running without database (session management disabled)")
}
Expand All @@ -72,6 +87,12 @@ func main() {
})

// Health check 엔드포인트
// @Summary Health check
// @Description Server readiness probe
// @Tags system
// @Produce json
// @Success 200 {object} map[string]interface{}
// @Router /readyz [get]
e.GET("/readyz", func(c echo.Context) error {
return c.JSON(200, map[string]interface{}{
"status": "OK",
Expand Down Expand Up @@ -101,6 +122,17 @@ func main() {
api.POST("/disklookup", handler.DiskLookup)
api.POST("/getapihosts", handler.GetApiHosts)

// Async request history (WEB-TECH-017) — must register before subsystem wildcard
asyncReq := api.Group("/async-requests")
asyncReq.GET("", handler.ListAsyncRequests)
asyncReq.DELETE("", handler.ClearFinishedAsyncRequests)
asyncReq.PATCH("/:requestId", handler.PatchAsyncRequest)
asyncReq.DELETE("/:requestId", handler.DeleteAsyncRequest)

if dbEnabled {
service.StartAsyncRequestPoller(cfg)
}

// 관리자 전용 BFF 라우트 (와일드카드보다 먼저 등록되어야 정적 매칭됨)
// FR-CLOUD-ADMIN-006-08: 외부 raw YAML 도달성 확인 (CORS 우회 + 토큰 노출 방지)
// 인증 모델: SubsystemAnyController와 동일 — front Buffalo의 IsTokenExistMiddleware(cookie 검증)
Expand All @@ -113,6 +145,11 @@ func main() {
api.Any("/:subsystemName/:operationId", handler.SubsystemAnyController)

// 테스트 엔드포인트들
// @Summary Hello
// @Tags test
// @Produce json
// @Success 200 {object} map[string]interface{}
// @Router /api/hello [get]
api.GET("/hello", func(c echo.Context) error {
requestID := middleware.GetRequestID(c)
return c.JSON(200, map[string]interface{}{
Expand Down
14 changes: 14 additions & 0 deletions api/internal/config/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package config

import (
"fmt"
"log"
"os"

"github.com/spf13/viper"
Expand All @@ -16,6 +17,7 @@ type Config struct {
RegistryCache RegistryCacheInterface
SetupYaml SetupYamlConfig
IframeTargetIsHost bool // IFRAME_TARGET_IS_HOST 환경변수
Menus []Menu
}

// SetupYamlConfig FR-CLOUD-ADMIN-006-08용 raw yaml 도달성 확인 설정
Expand Down Expand Up @@ -101,6 +103,18 @@ func Load() (*Config, error) {
}
cfg.ApiSpec = apiSpec

// self 모드(USE_IAM=false)에서 GetAllAvailableMenus를 mc-iam-manager로 프록시하지 않고
// 로컬 정본 메뉴 yaml로 응답하기 위한 로드. USE_IAM=true 배포에서는 이 파일이 없어도
// 서버 기동을 막지 않는다.
if !cfg.MCIAM.Use {
menuSpec, err := LoadMenuSpec("../conf/webconsole_menu_resources.yaml")
if err != nil {
log.Printf("failed to load local menu spec (../conf/webconsole_menu_resources.yaml): %v", err)
} else {
cfg.Menus = menuSpec.Menus
}
}

return cfg, nil
}

Expand Down
Loading
Loading