API文檔
# AlertConfigController
基礎路徑:/api/alert-config
| 方法 | 路徑 | 函數 | 參數 | 返回類型 | 說明 |
|---|---|---|---|---|---|
| GET | /api/alert-config | getConfig | Result<AlertConfigDTO> | 查詢告警配置(開關/通知方式/閾值指標) | |
| PUT | /api/alert-config | saveConfig | @RequestBody AlertConfigDTO dto | Result<Void> | 儲存告警配置,儲存前捕獲變更用於審計對比 |
| POST | /api/alert-config/restore-defaults | restoreDefaults | Result<AlertConfigDTO> | 恢復告警配置為預設值,記審計 |
AlertConfigDTO 字段說明
| 字段名 | 類型 | 說明 |
|---|---|---|
| enabled | Integer | 告警總開關(0=關 1=開) |
| intervalMinutes | Integer | 告警間隔(分鐘,1-527040) |
| emailEnabled | Integer | 郵件通知開關 |
| emailRecipients | String | 接收郵件地址,多個用英文分號隔開 |
| emailSmtpHost | String | SMTP 伺服器地址 |
| emailSmtpSsl | Integer | SMTP SSL 開關 |
| emailSmtpPort | Integer | SMTP 端口(1-65535) |
| emailSmtpUser | String | SMTP 傳送郵箱 |
| emailSmtpPassword | String | SMTP 密碼 |
| snmpEnabled | Integer | SNMP 通知開關 |
| snmpVersion | String | SNMP 版本(v2c/v3) |
| snmpCommunity | String | SNMP 團體名 |
| snmpAddress | String | SNMP 目標地址 |
| snmpSecurity | String | SNMPv3 安全級別 |
| snmpUsername | String | SNMPv3 用戶名稱 |
| snmpAuthMethod | String | SNMPv3 認證方式 |
| snmpAuthPassword | String | SNMPv3 認證密碼 |
| snmpCipher | String | SNMPv3 加密演算法 |
| snmpPrivPassword | String | SNMPv3 加密密碼 |
| snmpSenderEngineId | String | SNMPv3 傳送端 engine ID(只讀,僅用於前端展示) |
| platformEnabled | Integer | 告警平臺通知開關 |
| platformLevel | String | 上報告警平臺的告警級別 |
| platformUrl | String | 告警平臺地址(http/https) |
| metrics | List | 告警指標閾值配置列表(metricCode/threshold/consecutiveCount/unit) |
# AppClassLibController
基礎路徑:/api/apps/{appId}/class-libs
| 方法 | 路徑 | 函數 | 參數 | 返回類型 | 說明 |
|---|---|---|---|---|---|
| GET | /api/apps/{appId}/class-libs | list | @PathVariable Long appId, @RequestParam int page, int size | Result<PageResult<Map<String, Object>>> | 分頁查詢應用的類庫(lib 目錄 JAR 包)列表 |
| POST | /api/apps/{appId}/class-libs | upload | @PathVariable String appId, @RequestParam MultipartFile file | Result<Void> | 上傳 JAR 包到應用類庫目錄;appId 路徑段相容數字 ID 或應用名(腳本回放) |
| DELETE | /api/apps/{appId}/class-libs | delete | @PathVariable String appId, @RequestParam String jarName | Result<Void> | 刪除應用類庫中的指定 JAR 包 |
# AppIncrementController
基礎路徑:/api/apps/{appId}/increments
| 方法 | 路徑 | 函數 | 參數 | 返回類型 | 說明 |
|---|---|---|---|---|---|
| GET | /api/apps/{appId}/increments | list | @PathVariable Long appId, @RequestParam int page, int size | Result<PageResult<AppIncrement>> | 分頁查詢應用的增量更新包列表 |
| POST | /api/apps/{appId}/increments | upload | @PathVariable String appId, @RequestParam MultipartFile file, String description | Result<Long> | 上傳增量更新包,返回增量包 ID;appId 路徑段相容數字 ID 或應用名 |
| DELETE | /api/apps/{appId}/increments/{id} | delete | @PathVariable String appId, Long id | Result<Void> | 刪除指定增量更新包 |
| POST | /api/apps/{appId}/increments/{id}/apply | apply | @PathVariable String appId, Long id | Result<Void> | 應用指定增量更新包到應用 |
# ApplicationController
基礎路徑:/api/apps
| 方法 | 路徑 | 函數 | 參數 | 返回類型 | 說明 |
|---|---|---|---|---|---|
| GET | /api/apps | list | AppQueryDTO query | Result<PageResult<ApplicationDTO>> | 分頁查詢應用列表(按名稱/上下文路徑/虛擬主機/狀態過濾) |
| GET | /api/apps/{id} | get | @PathVariable Application app | Result<ApplicationDTO> | 按 ID 獲取應用詳情 |
| GET | /api/apps/{id}/urls | getAppUrls | @PathVariable Application app | Result<List<AppUrlDTO>> | 獲取應用的訪問 URL 列表 |
| GET | /api/apps/check-name | checkAppName | @RequestParam String appName, String virtualHost, Long excludeId | Result<Boolean> | 校驗應用名是否已存在(可排除指定 ID) |
| GET | /api/apps/check-context | checkContextPath | @RequestParam String contextPath, String virtualHost, Long excludeId | Result<Boolean> | 校驗上下文路徑是否已存在(可排除指定 ID) |
| GET | /api/apps/check-context-backup | checkContextPathForBackup | @RequestParam String contextPath, String virtualHost, String appName | Result<Boolean> | 備份恢復時校驗上下文路徑衝突 |
| POST | /api/apps | create | @RequestBody ApplicationDTO dto | Result<Long> | 創建應用,返回新應用 ID |
| PUT | /api/apps/{id} | update | @PathVariable Application app, @RequestBody ApplicationDTO dto | Result<Void> | 更新應用配置(審計記錄變更前後差異) |
| DELETE | /api/apps/{id} | delete | @PathVariable Application app, @RequestParam boolean force | Result<Void> | 解除安裝/刪除應用,force=true 時強制刪除(不進回收站) |
| POST | /api/apps/{id}/start | start | @PathVariable Application app | Result<Void> | 啟動應用 |
| POST | /api/apps/{id}/stop | stop | @PathVariable Application app | Result<Void> | 停止應用 |
| POST | /api/apps/{id}/reload | reload | @PathVariable Application app | Result<Void> | 過載應用 |
| POST | /api/apps/{id}/redeploy | redeploy | @PathVariable Application app, @RequestPart ApplicationDTO dto, MultipartFile file, String localWarPath, String localDirPath | Result<Void> | 重新部署應用(支援上傳 war 或指定伺服器本地路徑) |
| POST | /api/apps/{id}/deploy | deploy | @PathVariable Application app, @RequestParam MultipartFile file, String localWarPath, String localDirPath | Result<Void> | 部署應用包(war 檔案/本地 war 路徑/本地目錄路徑三選一) |
| GET | /api/apps/war-browse | browseWarFiles | @RequestParam String path | Result<ServerFileListResponse> | 瀏覽伺服器上可部署的 war 檔案目錄 |
| GET | /api/apps/backups | getBackups | Result<List<Map<String, Object>>> | 獲取全部應用備份列表 | |
| POST | /api/apps/{id}/backups | createBackup | @PathVariable Application app | Result<Void> | 為指定應用創建備份 |
| GET | /api/apps/backups/{backupName}/config | getBackupConfig | @PathVariable String backupName | Result<Map<String, Object>> | 獲取備份包中的應用配置資訊 |
| POST | /api/apps/backups/{backupName}/restore | restoreBackup | @PathVariable String backupName, @RequestBody ApplicationDTO dto | ResponseEntity<Result<Void>> | 從備份恢復應用,衝突時返回 409 |
| POST | /api/apps/backups/{backupName}/restore-force | restoreBackupForce | @PathVariable String backupName, @RequestBody ApplicationDTO dto | Result<Void> | 強制從備份恢復應用(覆蓋已有應用) |
| GET | /api/apps/backups/{backupName}/download | downloadBackup | @PathVariable String backupName | ResponseEntity<Resource> | 下載備份包檔案 |
| DELETE | /api/apps/backups/{backupName} | deleteBackup | @PathVariable String backupName | Result<Void> | 刪除備份包 |
| GET | /api/apps/recycled | getRecycledApps | AppQueryDTO query | Result<List<RecycledAppDTO>> | 獲取回收站中的應用列表 |
| POST | /api/apps/recycle/{fileName}/restore | restore | @PathVariable String fileName, @RequestBody ApplicationDTO dto | Result<Void> | 從回收站恢復應用 |
| GET | /api/apps/recycle/{fileName}/config | getRecycleArchiveConfig | @PathVariable String fileName | Result<Map<String, Object>> | 獲取回收站歸檔中的應用配置 |
| DELETE | /api/apps/recycle/{fileName}/permanent | permanentlyDelete | @PathVariable String fileName | Result<Void> | 徹底刪除回收站中的應用(不可恢復) |
| DELETE | /api/apps/external | deleteExternal | @RequestBody ExternalAppInfo info | Result<Void> | 刪除外部部署的應用(非管控臺部署) |
| POST | /api/apps/external/backups | createExternalBackup | @RequestBody ExternalAppInfo info | Result<Map<String, Object>> | 為外部部署的應用創建備份 |
| POST | /api/apps/external/redeploy | redeployExternal | @RequestPart ExternalAppInfo info, MultipartFile file, String localWarPath | Result<Void> | 重新部署外部應用 |
| POST | /api/apps/external/reload | reloadExternal | @RequestBody ExternalAppInfo info | Result<Void> | 過載外部應用 |
| POST | /api/apps/external/redeploy-with-props | redeployExternalWithProps | @RequestPart ExternalAppInfo info, ApplicationDTO dto, MultipartFile file, String localWarPath | Result<Void> | 攜帶配置屬性重新部署外部應用 |
| GET | /api/apps/recycle/config | getRecycleConfig | Result<Map<String, Object>> | 獲取回收站配置(保留路徑/保留天數等) | |
| PUT | /api/apps/recycle/config | updateRecycleConfig | @RequestBody Map<String, Object> config | Result<?> | 儲存回收站配置,校驗失敗返回 400 及字段錯誤 |
| GET | /api/apps/backup/config | getBackupConfig | Result<Map<String, Object>> | 獲取備份配置 | |
| PUT | /api/apps/backup/config | updateBackupConfig | @RequestBody Map<String, Object> config | Result<?> | 儲存備份配置,校驗失敗返回 400 及字段錯誤 |
ApplicationDTO 字段說明
| 字段名 | 類型 | 說明 |
|---|---|---|
| id | Long | 應用 ID |
| appName | String | 應用名稱 |
| contextPath | String | 應用上下文路徑 |
| status | Integer | 應用執行狀態 |
| classLoaderOrder | String | 類載入順序 |
| jspPrecompile | Boolean | 是否預編譯 JSP |
| virtualHost | String | 所屬虛擬主機 |
| sessionManager | String | 會話管理器配置 |
| deployOrder | Integer | 部署順序 |
| sharedLib | String | 共享庫名稱 |
| sharedLibId | Long | 共享庫 ID |
| sharedLibPriority | String | 共享庫載入優先級 |
| deployTimeout | Integer | 部署超時時間(秒) |
| classLevel | Integer | 密級標識(秘密/機密/絕密) |
| description | String | 應用描述 |
| deployTime | String | 部署時間 |
| recycledTime | String | 回收時間 |
| securityDomain | String | 安全域 |
| deployProps | Map<String, String> | 部署屬性 |
| managedByConsole | Boolean | 是否由管控臺部署(false=外部部署) |
| docBase | String | 應用文件根目錄 |
| deploySource | String | 部署來源:CONSOLE(管控臺部署)/MANUAL_CONFIG(手動配置)/AUTO_DEPLOY(自動掃描部署) |
| originalVirtualHost | String | 修改虛擬主機前的原虛擬主機名(遷移用) |
AppQueryDTO 字段說明(繼承 PageQueryDTO:page 頁碼預設1,size 每頁條數預設20)
| 字段名 | 類型 | 說明 |
|---|---|---|
| appName | String | 應用名稱(模糊查詢) |
| contextPath | String | 上下文路徑 |
| virtualHost | String | 虛擬主機 |
| status | Integer | 應用狀態 |
# AuditLogController
基礎路徑:/api/audit/operation-logs
| 方法 | 路徑 | 函數 | 參數 | 返回類型 | 說明 |
|---|---|---|---|---|---|
| GET | /api/audit/operation-logs | list | AuditLogQueryDTO query | Result<PageResult<AuditLogEntity>> | 分頁查詢操作審計日誌(按操作人/事件類型/操作對象/結果/時間範圍過濾) |
| GET | /api/audit/operation-logs/{id} | getById | @PathVariable Long id | Result<AuditLogEntity> | 按 ID 獲取單條審計日誌(description 中的 i18n key 按當前 Locale 翻譯),不存在返回 404 |
| GET | /api/audit/operation-logs/export | export | AuditLogQueryDTO query, HttpServletResponse response | void(application/zip) | 匯出審計日誌:按查詢條件匯出全部記錄,打包為 operation_audit.zip(內含 UTF-8 BOM 的 operation_audit.csv) |
AuditLogQueryDTO 字段說明(繼承 PageQueryDTO:page 頁碼預設1,size 每頁條數預設20)
| 字段名 | 類型 | 說明 |
|---|---|---|
| username | String | 操作人用戶名稱 |
| operation | String | 事件類型(CREATE/EDIT/DELETE/START/STOP/AUTH/IMPORT/EXPORT/LICENSE/BACKUP) |
| target | String | 操作對象 |
| result | String | 操作結果(SUCCESS/FAIL) |
| startTime | String | 開始時間 |
| endTime | String | 結束時間 |
# AuthController
基礎路徑:/api/auth
| 方法 | 路徑 | 函數 | 參數 | 返回類型 | 說明 |
|---|---|---|---|---|---|
| POST | /api/auth/login | login | @RequestBody LoginRequest request, HttpServletRequest servletRequest | Result<LoginResponse> | 用戶登入:AES 解密用戶名稱密碼,依次校驗驗證碼、賬號狀態(鎖定/停用/過期)、訪問時間窗與 IP 白名單、OTP、郵箱驗證碼,成功後簽發 JWT 並記錄登入日誌 |
| POST | /api/auth/cli-login | cliLogin | @RequestBody LoginRequest request, HttpServletRequest servletRequest | Result<LoginResponse> | CLI 登入:同登入流程但不校驗圖形驗證碼 |
| POST | /api/auth/logout | logout | HttpServletRequest request | Result<Void> | 登出:將當前 token 加入黑名單並記錄登出日誌 |
| GET | /api/auth/captcha-status | getCaptchaStatus | Result<Map<String, Object>> | 獲取圖形驗證碼開關狀態(enabled) | |
| GET | /api/auth/otp-status | getOtpStatus | Result<Map<String, Object>> | 獲取 OTP 雙因子認證全域開關狀態 | |
| GET | /api/auth/email-code/status | getEmailCodeStatus | Result<Map<String, Object>> | 獲取郵箱驗證碼登入校驗開關狀態 | |
| POST | /api/auth/email-code/send | sendEmailCode | @RequestBody Map<String, String> body(username) | Result<Map<String, Object>> | 傳送登入郵箱驗證碼,含 60 秒重發限制 |
| POST | /api/auth/otp/setup | setupOtp | @RequestBody Map<String, String> body | Result<Map<String, Object>> | 為當前登入用戶生成 OTP 金鑰及二維碼(secret、otpAuthUri、qrCodeDataUri) |
| POST | /api/auth/otp/verify-setup | verifyOtpSetup | @RequestBody Map<String, String> body(secret、code) | Result<Void> | 校驗動態碼並完成 OTP 綁定 |
| POST | /api/auth/otp/disable | disableOtp | @RequestBody Map<String, String> body(code) | Result<Void> | 關閉當前用戶的 OTP(需輸入當前動態碼確認) |
| PUT | /api/auth/profile | updateProfile | @RequestBody Map<String, String> body(phone/email/description) | Result<Void> | 修改當前登入用戶自己的個人資訊 |
| GET | /api/auth/me | me | Result<Map<String, Object>> | 獲取當前登入用戶資訊(角色、密級、聯絡方式、會話超時、資源編碼列表等) |
LoginRequest 字段說明
| 字段名 | 類型 | 說明 |
|---|---|---|
| username | String | 用戶名稱(AES 加密傳輸,服務端解密) |
| password | String | 密碼(AES 加密傳輸,服務端解密) |
| captchaKey | String | 圖形驗證碼 key |
| captchaCode | String | 圖形驗證碼答案 |
| otpCode | String | OTP 動態碼 |
| otpSecret | String | OTP 金鑰(首次綁定時由後端下發、前端回傳) |
| emailCode | String | 郵箱驗證碼 |
LoginResponse 字段說明
| 字段名 | 類型 | 說明 |
|---|---|---|
| token | String | JWT 訪問令牌 |
| tokenType | String | 令牌類型,固定 Bearer |
| username | String | 登入用戶名稱 |
| roles | List | 用戶角色編碼列表 |
| firstLogin | boolean | 是否首次登入(需強制改密) |
| passwordExpired | boolean | 密碼已過期,需要修改密碼 |
| requireOtp | boolean | 全域是否要求 OTP 校驗 |
| otpEnabled | boolean | 當前用戶是否已綁定 OTP |
| requireEmailCode | boolean | 本次登入是否需要郵箱驗證碼 |
| emailCodeEnabled | boolean | 郵箱驗證碼功能是否啟用 |
| otpQrDataUri | String | OTP 首次綁定的二維碼 base64 dataUri |
| otpSecret | String | OTP 首次綁定的金鑰(二次提交時回傳) |
| passwordExpireWarning | boolean | 密碼即將過期警告(剩餘 7 天內) |
| resources | List | 用戶擁有的資源編碼列表(前端選單許可權用) |
# BaselineCheckController
基礎路徑:/api/baseline
| 方法 | 路徑 | 函數 | 參數 | 返回類型 | 說明 |
|---|---|---|---|---|---|
| GET | /api/baseline/rules | listRules | Result<String> | 列出全部基線檢查規則(XML/JSON 字串) | |
| GET | /api/baseline/rules/{id} | getRule | @PathVariable String id | Result<String> | 按規則 ID 獲取單條規則內容(id 僅允許字母數字下劃線連字元,否則 400) |
| POST | /api/baseline/rules | saveRule | @RequestBody String ruleXml | Result<String> | 新增基線檢查規則(規則 XML 原文入參) |
| PUT | /api/baseline/rules/{id} | updateRule | @PathVariable String id, @RequestBody String ruleXml | Result<String> | 更新指定 ID 的規則(整體儲存規則 XML) |
| DELETE | /api/baseline/rules/{id} | deleteRule | @PathVariable String id | Result<String> | 刪除指定 ID 的基線規則 |
| PUT | /api/baseline/rules/{id}/enabled | setRuleEnabled | @PathVariable String id, @RequestBody EnabledRequest request | Result<String> | 啟用/停用指定基線規則 |
| GET | /api/baseline/script | readScript | @RequestParam String fileName | Result<String> | 讀取檢查指令碼檔案內容 |
| POST | /api/baseline/script | saveScript | @RequestParam String fileName, @RequestBody String content | Result<String> | 儲存檢查指令碼檔案 |
| POST | /api/baseline/checks | startCheck | @RequestBody StartCheckRequest request | Result<String> | 手動觸發一次基線檢查,返回任務 ID(ruleIds 為空表示全量規則) |
| GET | /api/baseline/checks/{taskId} | pollTask | @PathVariable String taskId | Result<String> | 輪詢檢查任務執行進度/結果 |
| GET | /api/baseline/reports | listReports | ReportQuery query(綁定查詢參數:name/overall/startTime/endTime/page/size) | Result<PageResult<BaselineReport>> | 分頁查詢基線檢查報告歷史 |
| GET | /api/baseline/reports/{id} | getReport | @PathVariable Long id | Result<BaselineReport> | 獲取單份基線報告詳情 |
| DELETE | /api/baseline/reports/{id} | deleteReport | @PathVariable Long id | Result<Void> | 刪除單份基線報告 |
| DELETE | /api/baseline/reports | deleteReports | @RequestBody List<Long> ids | Result<Void> | 批次刪除基線報告 |
| GET | /api/baseline/reports/{id}/download | downloadReport | @PathVariable Long id, @RequestParam(required=false) String format | ResponseEntity<ByteArrayResource> | 下載單份報告檔案(format 可選,如 pdf/html 等,附件流返回) |
| POST | /api/baseline/reports/export | exportReports | @RequestBody List<Long> ids | ResponseEntity<ByteArrayResource> | 將多份報告打包為 ZIP 匯出下載 |
| GET | /api/baseline/settings | getSettings | Result<String> | 讀取基線檢查全部配置項 | |
| PUT | /api/baseline/settings | saveSetting | @RequestBody ConfigEntry entry | Result<String> | 修改單個基線配置項;cron/總開關變更釋出事件實現定時任務熱過載 |
| GET | /api/baseline/report-config | getReportConfig | Result<String> | 讀取報告相關配置(同 getSettings) | |
| PUT | /api/baseline/report-config | saveReportConfig | @RequestBody ConfigEntry entry | Result<String> | 修改報告相關配置項 |
StartCheckRequest 字段說明
| 字段名 | 類型 | 說明 |
|---|---|---|
| ruleIds | List | 要執行的規則 ID 列表,為空表示執行全部規則 |
EnabledRequest 字段說明
| 字段名 | 類型 | 說明 |
|---|---|---|
| enabled | boolean | 規則啟用狀態(true 啟用 / false 停用) |
ReportQuery 字段說明
| 字段名 | 類型 | 說明 |
|---|---|---|
| name | String | 報告名稱模糊查詢 |
| overall | String | 報告總體結論(透過/不透過等)篩選 |
| startTime | LocalDateTime | 檢查時間起(ISO 日期時間格式) |
| endTime | LocalDateTime | 檢查時間止 |
| page | int | 頁碼,預設 1 |
| size | int | 每頁條數,預設 10 |
ConfigEntry 字段說明
| 字段名 | 類型 | 說明 |
|---|---|---|
| key | String | 配置項鍵名(如 baseline.schedule.cron、baseline.enabled) |
| value | String | 配置項值 |
BaselineReport 字段說明(返回實體,繼承 BaseEntity 公共字段 id/createdTime/updatedTime/deleted)
| 字段名 | 類型 | 說明 |
|---|---|---|
| name | String | 報告名稱 |
| instance | String | 檢查目標實例標識 |
| checkTime | LocalDateTime | 檢查執行時間 |
| overall | String | 總體結論(如 PASS/FAIL) |
| passCount | Integer | 透過項數量 |
| minorCount | Integer | 輕微問題數量 |
| generalCount | Integer | 一般問題數量 |
| severeCount | Integer | 嚴重問題數量 |
| ruleCount | Integer | 參與檢查的規則總數 |
| reportFile | String | 報告檔案儲存路徑 |
| format | String | 報告檔案格式 |
| reportJson | String | 報告明細 JSON 內容 |
| triggerType | String | 觸發類型(MANUAL 手動 / SCHEDULED 定時) |
| size | Long | 報告檔案大小(位元組),查詢時按實際檔案填充,非資料庫字段 |
# CaptchaController
基礎路徑:/api/auth
| 方法 | 路徑 | 函數 | 參數 | 返回類型 | 說明 |
|---|---|---|---|---|---|
| GET | /api/auth/captcha | getCaptcha | Result<Map<String, String>> | 生成圖形驗證碼,返回 key 與 base64 圖片 | |
| GET | /api/auth/captcha-test | getCaptchaTest | @RequestParam String key | Result<Map<String, String>> | 測試輔助介面:按 key 獲取驗證碼明文,僅自動化測試環境開啟(aas.security.captcha.test-enabled),禁止在生產環境開啟,否則驗證碼機制將失效 |
# CertificateStoreController
基礎路徑:/api/config/web/certs
| 方法 | 路徑 | 函數 | 參數 | 返回類型 | 說明 |
|---|---|---|---|---|---|
| GET | /api/config/web/certs | list | @RequestParam int page, int size, String name, String storeType | Result<PageResult<CertificateStore>> | 分頁查詢證書庫列表(密碼字段以 15 個星號掩碼返回),storeType 僅支援 keystore/truststore |
| GET | /api/config/web/certs/{id} | get | @PathVariable Long id | Result<CertificateStore> | 按 ID 獲取證書庫詳情(密碼掩碼返回),不存在返回 404 |
| POST | /api/config/web/certs | create | @RequestBody CertificateStoreDTO dto | Result<Long> | 創建證書庫,返回新記錄 ID |
| PUT | /api/config/web/certs/{idOrName} | update | @PathVariable String idOrName, @RequestBody CertificateStoreDTO dto | Result<Void> | 按 ID 或名稱更新證書庫 |
| DELETE | /api/config/web/certs/{idOrName} | delete | @PathVariable String idOrName | Result<Void> | 按 ID 或名稱刪除證書庫 |
| GET | /api/config/web/certs/{id}/entries | listEntries | @PathVariable Long id, @RequestParam String password | Result<List<CertEntryDTO>> | 列出證書庫中的證書條目(可選密碼解鎖) |
| DELETE | /api/config/web/certs/{idOrName}/entries/{alias} | deleteEntry | @PathVariable String idOrName, String alias, @RequestParam String password | Result<Void> | 刪除證書庫中指定別名的證書條目 |
| POST | /api/config/web/certs/{idOrName}/import-entries | importEntries | @PathVariable String idOrName, @RequestParam MultipartFile file, String sourcePassword, String aliases, String targetPassword, String targetAlias, String entryPassword | Result<Void> | 從上傳的證書庫檔案匯入條目(可選別名篩選與目標別名/密碼) |
| POST | /api/config/web/certs/{idOrName}/import-pem | importPem | @PathVariable String idOrName, @RequestParam String content, String alias, String targetPassword, String entryPassword, boolean isPrivateKey | Result<Void> | 貼上 PEM 內容匯入證書或私鑰(isPrivateKey 標識私鑰) |
| POST | /api/config/web/certs/{idOrName}/import | importStore | @PathVariable String idOrName, @RequestParam MultipartFile file | Result<Void> | 整體匯入證書庫檔案(覆蓋替換) |
| GET | /api/config/web/certs/{id}/download | download | @PathVariable Long id | ResponseEntity<Resource> | 下載證書庫檔案,檔案不存在返回 404 |
CertificateStoreDTO 字段說明
| 字段名 | 類型 | 說明 |
|---|---|---|
| id | Long | 證書庫 ID |
| name | String | 證書庫名稱(創建必填,最長 64 字元,僅字母/數字/下劃線/短橫線/點號) |
| storeType | String | 證書庫用途(創建必填,keystore 或 truststore) |
| type | String | 證書庫類型(創建必填,JKS 或 PKCS12) |
| password | String | 證書庫密碼(支援 ENCRYPT* 密文,最長 128/256 字元) |
| description | String | 描述(最長 255 字元) |
| enabled | Integer | 是否啟用 |
# ClassAnalysisController
基礎路徑:/api/class-analysis
| 方法 | 路徑 | 函數 | 參數 | 返回類型 | 說明 |
|---|---|---|---|---|---|
| POST | /api/class-analysis/upload | upload | @RequestParam("file") MultipartFile file | Result<Map<String, Object>> | 上傳待分析的檔案(jar/war 等),返回 filePath/fileName/fileSize |
| POST | /api/class-analysis/start | start | @RequestBody ClassAnalysisStartRequest req | Result<Map<String, Object>> | 啟動類分析任務,返回 recordId(分析記錄 ID) |
| GET | /api/class-analysis/records/{id} | getRecord | @PathVariable Long id | Result<ClassAnalysisRecordDTO> | 查詢單條類分析記錄詳情(含問題列表) |
| GET | /api/class-analysis/records | listRecords | ClassAnalysisRecordQuery q(綁定查詢參數:startTime/endTime/target/appOrFileName/page/pageSize) | Result<PageResult<ClassAnalysisRecordDTO>> | 分頁查詢類分析歷史記錄 |
| DELETE | /api/class-analysis/records/{id} | deleteRecord | @PathVariable Long id | Result<Void> | 刪除指定類分析記錄 |
| GET | /api/class-analysis/records/{id}/export | exportReport | @PathVariable Long id | ResponseEntity<byte[]> | 將分析記錄渲染為 PDF 報告下載 |
| GET | /api/class-analysis/deployed-apps | listDeployedApps | @RequestParam(required=false) String keyword, @RequestParam(defaultValue="1") int page, @RequestParam(defaultValue="20") int pageSize | Result<PageResult<AppOptionDTO>> | 分頁查詢已部署應用列表(供選擇分析目標) |
ClassAnalysisStartRequest 字段說明
| 字段名 | 類型 | 說明 |
|---|---|---|
| name | String | 分析任務名稱 |
| target | String | 分析目標類型(如上傳檔案/已部署應用) |
| appId | Long | 目標應用 ID(分析已部署應用時填寫) |
| uploadFilePath | String | 已上傳檔案的儲存路徑(分析上傳檔案時填寫) |
| scope | String | 分析範圍 |
| checkConflict | Boolean | 是否執行類衝突檢查 |
| checkRedundant | Boolean | 是否執行冗餘類檢查 |
# ClassLoaderController
基礎路徑:/api/classloader
| 方法 | 路徑 | 函數 | 參數 | 返回類型 | 說明 |
|---|---|---|---|---|---|
| GET | /api/classloader/tree | getClassLoaderTree | Result<Map<String, Object>> | 獲取類載入器樹(data.classLoaders 為 ClassLoaderNode 樹形列表) | |
| GET | /api/classloader/detail/{id} | getClassLoaderDetail | @PathVariable String id | Result<ClassLoaderDetail> | 按類載入器 ID 獲取詳情(類名、實例、hash、類路徑等) |
| GET | /api/classloader/search | searchClass | @RequestParam String className | Result<List<ClassSearchResult>> | 按類名搜尋類在各類載入器中的載入情況(名稱/狀態/所屬應用/載入器/位置) |
ClassLoaderNode 字段說明
| 字段名 | 類型 | 說明 |
|---|---|---|
| id | String | 節點唯一標識 |
| name | String | 類載入器顯示名稱 |
| className | String | 類載入器實現類全名 |
| instance | String | 實例標識 |
| hash | String | 實例 hash |
| app | String | 所屬應用 |
| isAppLoader | boolean | 是否為應用類載入器 |
| paths | List | 類搜尋路徑列表 |
| children | List | 子類載入器節點 |
# CracController
基礎路徑:/api/config/jvm/crac
| 方法 | 路徑 | 函數 | 參數 | 返回類型 | 說明 |
|---|---|---|---|---|---|
| GET | /api/config/jvm/crac/env-check | envCheck | Result<CracEnvCheckReport> | 同步執行 7 項 CRaC 環境相容性檢測(開啟 CRaC 開關時觸發) | |
| GET | /api/config/jvm/crac/status | status | Result<CracStatusDTO> | 獲取「製作映象」按鈕置灰聯動狀態:已開啟儲存 + 無待重啟 + 當前 JVM 支援 CRaC + 非恢復態程序 + 執行時目錄與固定值一致時才允許製作;reason 取值 notEnabled/pendingRestart/notCracJdk/restored/dirMismatch;同時返回 crac.log 路徑 | |
| POST | /api/config/jvm/crac/images | makeImage | @RequestBody CracMakeImageRequest request | Result<Void> | 製作 CRaC 映象:校驗透過後派生 detached helper 非同步完成映象生成與伺服器拉起(結果見 logs/crac.log);檢查點目錄已有映象資料時返回業務碼 409,前端確認後以 force=true 重試 |
CracMakeImageRequest 字段說明
| 字段名 | 類型 | 說明 |
|---|---|---|
| name | String | 映象名稱(必填,限字母/數字/下劃線/中劃線/點,最長 64) |
| desc | String | 映象說明(可選,最長 200) |
| force | boolean | 檢查點目錄已有映象資料時是否強制覆蓋 |
# DashboardController
基礎路徑:/api/dashboard
| 方法 | 路徑 | 函數 | 參數 | 返回類型 | 說明 |
|---|---|---|---|---|---|
| GET | /api/dashboard/overview | getOverview | Result<DashboardOverviewDTO> | 獲取儀表盤首頁概覽資料(系統統計、應用狀態、快捷資訊等) |
# DatasourceController
基礎路徑:/api/resources/datasources
| 方法 | 路徑 | 函數 | 參數 | 返回類型 | 說明 |
|---|---|---|---|---|---|
| GET | /api/resources/datasources | list | DatasourceQueryDTO query | Result<PageResult<Datasource>> | 分頁查詢資料來源列表 |
| GET | /api/resources/datasources/{id} | get | @PathVariable Long id | Result<Datasource> | 按 ID 獲取資料來源詳情 |
| POST | /api/resources/datasources (JSON) | createByJson | @Valid @RequestBody Datasource ds | Result<Datasource> | 以 JSON 方式創建資料來源(使用已上傳的驅動路徑) |
| POST | /api/resources/datasources (multipart) | create | @Valid @RequestPart Datasource ds, MultipartFile driverFile, boolean overwrite | Result<Datasource> | 以 multipart 方式創建資料來源,可同時上傳驅動包(overwrite 控制覆蓋同名驅動) |
| PUT | /api/resources/datasources/{idOrName} | update | @PathVariable String idOrName, @Valid @RequestBody Datasource ds | Result<Void> | 按 ID 或名稱更新資料來源 |
| DELETE | /api/resources/datasources/{idOrName} | delete | @PathVariable String idOrName | Result<Void> | 按 ID 或名稱刪除資料來源 |
| POST | /api/resources/datasources/{idOrName}/status | toggleStatus | @PathVariable String idOrName, @RequestParam Integer status | Result<Void> | 啟用/停用資料來源(status 僅允許 0 或 1) |
| POST | /api/resources/datasources/ping | pingByParams | @RequestBody Datasource ds | Result<Map<String, Object>> | 按傳入參數測試資料來源連通性(url 必填) |
| POST | /api/resources/datasources/{idOrName}/ping | ping | @PathVariable String idOrName | Result<Map<String, Object>> | 測試已存在資料來源的連通性 |
| POST | /api/resources/datasources/{idOrName}/driver | uploadDriver | @PathVariable String idOrName, @RequestParam MultipartFile driverFile, boolean overwrite | Result<Void> | 為資料來源上傳 JDBC 驅動包 |
| GET | /api/resources/datasources/driver-exists | checkDriverExists | @RequestParam String filename | Result<Map<String, Object>> | 檢查驅動目錄是否已存在同名驅動包(上傳前預檢) |
| POST | /api/resources/datasources/check-driver-path | checkDriverPath | @RequestBody Map<String, String> body(driverPath) | Result<Map<String, Object>> | 檢查指定的驅動路徑是否存在 |
Datasource 字段說明(創建/更新請求體,僅列主要業務字段)
| 字段名 | 類型 | 說明 |
|---|---|---|
| name | String | 資料來源名稱(最長 128 字元) |
| jndiName | String | JNDI 名稱 |
| dbType | String | 資料庫類型 |
| driverClass | String | JDBC 驅動類名(最長 128 字元) |
| url | String | 連線 URL(最長 500 字元) |
| username | String | 連線用戶名稱 |
| password | String | 連線密碼 |
| maxConnections | Integer | 最大連線數(0-10000) |
| initialConnections | Integer | 初始連線數(0-10000) |
| maxWaitMs | Integer | 獲取連線最大等待時間(毫秒,-1 表示無限等待) |
| validationQuery | String | 連線驗證 SQL |
| classLevel | Integer | 密級標識 |
| status | Integer | 狀態 |
| driverJarPath | String | 驅動 JAR 路徑 |
| driverPath | String | 驅動路徑 |
| slowSqlMs | Integer | 慢 SQL 閾值(毫秒) |
| leakDetectionThresholdMs | Integer | 連線洩漏檢測閾值(毫秒) |
| suspectTimeoutMs | Integer | 疑似洩露判定超時(毫秒) |
| testOnBorrow | Integer | 獲取連線時是否校驗(0/1) |
| testOnReturn | Integer | 歸還連線時是否校驗(0/1) |
| testWhileIdle | Integer | 空閒時是否校驗(0/1) |
| testOnConnect | Integer | 建立連線時是否校驗(0/1) |
| resourceType | String | 資源類型 |
| host | String | 主機名 |
| port | Integer | 端口號(1-65535) |
| databaseName | String | 資料庫名 |
| customProperties | String | 自定義屬性 |
| idleTimeoutMs | Integer | 空閒超時時間(毫秒) |
| idleCheckPeriodMs | Integer | 空閒檢測週期(毫秒) |
| maxCheckConnections | Integer | 最大檢測連線數 |
| minIdle | Integer | 最小空閒連線數 |
| maxIdle | Integer | 最大空閒連線數 |
| validationIntervalMs | Integer | 連線校驗間隔(毫秒) |
| validationTimeoutSeconds | Integer | 校驗超時時間(秒,0-3600) |
| maxLifetimeMs | Integer | 連線最大存活時間(毫秒) |
| leakRecover | Integer | 是否回收洩露連線(0/1) |
| connectionAutoReclaim | Integer | 連線自動回收(0/1) |
| removeAbandonedOnMaintenance | Integer | 維護時移除廢棄連線(0/1) |
| logAbandoned | Integer | 記錄廢棄連線日誌(0/1) |
| abandonWhenPercentageFull | Integer | 廢棄百分比閾值(0-100) |
| autoCommit | Integer | 自動提交(0/1) |
| sqlTraceEnabled | Integer | SQL 追蹤開關(0/1) |
| failedSqlAlertEnabled | Integer | 失敗 SQL 告警開關(0/1) |
| haProbeEnabled | Integer | HA 探測開關(0/1) |
# HttpChannelController
基礎路徑:/api/config/web/channels
| 方法 | 路徑 | 函數 | 參數 | 返回類型 | 說明 |
|---|---|---|---|---|---|
| GET | /api/config/web/channels | list | @RequestParam int page, int size, String name, String protocol, Integer enabled | Result<PageResult<HttpChannel>> | 分頁查詢 HTTP 通道列表 |
| GET | /api/config/web/channels/{id} | get | @PathVariable Long id | Result<HttpChannel> | 按 ID 獲取 HTTP 通道詳情,不存在返回 404 |
| POST | /api/config/web/channels | create | @RequestBody HttpChannel channel | Result<Void> | 新增 HTTP 通道(需重啟生效) |
| PUT | /api/config/web/channels/{idOrName} | update | @PathVariable String idOrName, @RequestBody HttpChannel channel | Result<Void> | 按 ID 或名稱更新 HTTP 通道(需重啟生效) |
| DELETE | /api/config/web/channels/{idOrName} | delete | @PathVariable String idOrName | Result<Void> | 按 ID 或名稱刪除 HTTP 通道(需重啟生效) |
| GET | /api/config/web/channels/cipher-suites | getSupportedCipherSuites | Result<List<String>> | 獲取 JVM 支援的強加密套件列表(已過濾弱 CBC/RSA 套件) |
HttpChannel 字段說明(@RequestBody,字段較多,按分組概述)
| 字段名 | 類型 | 說明 |
|---|---|---|
| name | String | 通道名稱 |
| protocol | String | 協議(HTTP/HTTPS) |
| host | String | 監聽主機 |
| port | Integer | 監聽端口 |
| executor | String | 關聯線程池 executor 名稱 |
| enabled | Integer | 是否啟用 |
| sslEnabled | Integer | 是否啟用 SSL |
| redirectPort | Integer | 重定向端口 |
| acceptCount | Integer | 等待佇列長度 |
| connectionTimeout | Integer | 連線超時(毫秒) |
| proxyName / proxyPort | String / Integer | 反向代理主機名/端口 |
| receiveBufferSize / sendBufferSize | Integer | 接收/傳送緩衝區大小 |
| processorCache | Integer | 處理器快取大小 |
| maxConnections | Integer | 最大連線數 |
| tcpNoDelay | Integer | 是否啟用 TCP_NODELAY |
| maxKeepAliveRequests / keepAliveTimeout | Integer | 長連線最大請求數/超時 |
| useIPVHosts | Integer | 是否按 IP 匹配虛擬主機 |
| longThreadEnabled 等 longThread* | - | 長線程檢測開關及閾值/週期/日誌目錄 |
| sdosEnabled 等 sdos* | - | 慢拒絕服務(SDoS)防護開關、模式、閾值、黑名單 TTL 等 |
| generalProperties | String | 一般自定義屬性 |
| gracefulStopAwaitMillis | Integer | 優雅停止等待時間(毫秒) |
| uriEncoding / responseCharacterEncoding | String | URI/響應字元編碼 |
| enableLookups | Integer | 是否允許 DNS 反查 |
| compression 等 compression* | - | 響應壓縮開關、可壓縮 MIME 類型、最小壓縮大小 |
| httpTrace | Integer | HTTP 訪問跟蹤開關 |
| maxPostSize / maxParameterCount / maxHeaderCount / maxHttpHeaderSize | Integer | POST 大小/參數個數/請求頭個數與大小上限 |
| poweredBy | Integer | 是否顯示 Server 響應頭 |
| disableUploadTimeout / connectionUploadTimeout | Integer | 上傳超時配置 |
| useBodyEncodingForURI / asyncTimeout | - | URI 編碼來源/非同步請求超時 |
| responseHeaders | String | 自定義響應頭 |
| gmEnabled | Integer | 國密 SSL 開關 |
| clientAuth | String | SSL 客戶端認證模式 |
| keyPassword / certificateFormat / tlsProtocols / sslProtocol | String | SSL 金鑰密碼/證書格式/TLS 協議版本 |
| certificateAlias | String | 證書別名 |
| keystorePath / keystorePassword | String | 金鑰庫路徑/密碼 |
| truststorePath / truststorePassword / truststoreType | String | 信任庫路徑/密碼/類型 |
| sslCipherSuites | String | SSL 加密套件列表 |
| certificateType | String | 證書類型(JSON 屬性名 type) |
| certificateCustom / keystoreName / keystoreEntry / truststoreName / truststoreEntry | - | 證書庫引用方式及條目 |
| http2Enabled 等 http2* | - | HTTP/2 開關及壓縮、併發流、頭/幀大小、讀寫超時等配置 |
| http2Properties | String | HTTP/2 自定義屬性 |
# InspectionController
基礎路徑:/api/inspection/reports
| 方法 | 路徑 | 函數 | 參數 | 返回類型 | 說明 |
|---|---|---|---|---|---|
| GET | /api/inspection/reports | list | @RequestParam(required=false) String name, String status, LocalDateTime startTime, LocalDateTime endTime, @RequestParam(defaultValue="1") int page, @RequestParam(defaultValue="10") int size | Result<PageResult<InspectionReportDTO>> | 分頁查詢巡檢報告列表(時間格式 yyyy-MM-dd HH:mm:ss) |
| GET | /api/inspection/reports/has-running | hasRunning | Result<Boolean> | 查詢當前是否存在執行中的巡檢任務 | |
| GET | /api/inspection/reports/{id} | get | @PathVariable Long id | Result<InspectionReportDTO> | 獲取單份巡檢報告詳情(含彙總、實例列表、基線項、監控資料),不存在時報 404 |
| GET | /api/inspection/reports/{id}/status | status | @PathVariable Long id | Result<String> | 查詢巡檢報告執行狀態(RUNNING/SUCCESS/FAILED 等) |
| GET | /api/inspection/reports/{id}/summary | summary | @PathVariable Long id | Result<InspectionReportDTO.InspectionSummaryDTO> | 獲取報告摘要(CPU/記憶體/堆/磁碟超 80% 計數) |
| POST | /api/inspection/reports | trigger | @RequestBody @Valid InspectionTriggerDTO dto | Result<InspectionReportDTO> | 觸發一次新巡檢,返回報告(dto.timeoutSeconds 為採集超時秒數) |
| POST | /api/inspection/reports/{id}/rerun | rerun | @PathVariable Long id | Result<InspectionReportDTO> | 基於歷史報告重新執行巡檢 |
| GET | /api/inspection/reports/{id}/download | download | @PathVariable Long id | ResponseEntity<Resource> | 下載巡檢報告 ZIP 包(含全部快照檔案) |
| DELETE | /api/inspection/reports/{id} | delete | @PathVariable Long id | Result<Void> | 刪除指定巡檢報告 |
| GET | /api/inspection/reports/{id}/snapshots/{type} | snapshotText | @PathVariable Long id, @PathVariable String type | Result<String> | 線上檢視報告內指定類型系統快照(jstack/lsof/netstat/top)文本內容 |
| GET | /api/inspection/reports/{id}/snapshots/{type}/download | downloadSnapshot | @PathVariable Long id, @PathVariable String type | ResponseEntity<Resource> | 下載指定類型快照 XML 檔案 |
InspectionTriggerDTO 字段說明
| 字段名 | 類型 | 說明 |
|---|---|---|
| timeoutSeconds | Integer | 巡檢採集超時時間(秒),必填,1~172800 |
InspectionReportDTO 字段說明(響應 DTO)
| 字段名 | 類型 | 說明 |
|---|---|---|
| id | Long | 報告 ID |
| name | String | 報告名稱 |
| timeoutSeconds | Integer | 採集超時秒數 |
| status | String | 執行狀態 |
| startedAt | LocalDateTime | 開始時間 |
| finishedAt | LocalDateTime | 結束時間 |
| createdTime | LocalDateTime | 創建時間 |
| summary | InspectionSummaryDTO | 報告摘要(僅詳情介面返回) |
| instances | List | 巡檢實例列表(僅詳情介面返回) |
| baselineItems | List | 安全基線檢查項列表 |
| monitorData | Map<String, Object> | 監控資料(應用程式/HTTP通道/資料來源/線程池/OS/JVM) |
| snapshotStatuses | Map<String, SnapshotStatus> | 系統快照採集狀態(key: jstack/lsof/netstat/top),含 status(OK/NOT_INSTALLED/FALLBACK/SKIPPED/FAILED/TIMEOUT)與 message |
# InvokeChainTraceController
基礎路徑:/api/monitor/invoke-chain
| 方法 | 路徑 | 函數 | 參數 | 返回類型 | 說明 |
|---|---|---|---|---|---|
| GET | /api/monitor/invoke-chain/records | listRecords | @RequestParam(required=false) LocalDateTime startTime, LocalDateTime endTime, String status, Long minSize, @RequestParam(defaultValue="1") int page, @RequestParam(defaultValue="5") int size | Result<PageResult<InvokeChainTrace>> | 分頁查詢呼叫鏈追蹤歷史記錄(時間格式 yyyy-MM-dd HH:mm:ss) |
| DELETE | /api/monitor/invoke-chain/records/{id} | deleteRecord | @PathVariable Long id | Result<Void> | 刪除指定追蹤記錄 |
| GET | /api/monitor/invoke-chain/settings | getSettings | Result<Map<String, Object>> | 獲取呼叫鏈分析配置(含 apmHome 等) | |
| PUT | /api/monitor/invoke-chain/settings/apm-home | saveApmHome | @RequestBody Map<String, String> body(取 apmHome 鍵) | Result<Map<String, Object>> | 儲存 APM 探針安裝目錄(apmHome),需重啟生效 |
| POST | /api/monitor/invoke-chain/trace/start | startTrace | @RequestBody @Valid InvokeChainTraceStartRequest request | Result<Map<String, Object>> | 啟動呼叫鏈追蹤(按耗時閾值/包過濾等參數) |
| POST | /api/monitor/invoke-chain/trace/stop | stopTrace | Result<Map<String, Object>> | 停止當前呼叫鏈追蹤 | |
| GET | /api/monitor/invoke-chain/trace/status | status | Result<Map<String, Object>> | 查詢追蹤執行狀態 | |
| GET | /api/monitor/invoke-chain/records/{id}/xml | downloadXml | @PathVariable Long id | ResponseEntity<Resource> | 下載追蹤結果 XML 檔案 |
| GET | /api/monitor/invoke-chain/records/{id}/flame-graph | flameGraph | @PathVariable Long id | ResponseEntity<Resource> | 生成並下載該記錄的火焰圖 HTML 檔案 |
InvokeChainTraceStartRequest 字段說明
| 字段名 | 類型 | 說明 |
|---|---|---|
| cost | Long | 請求最小耗時(毫秒),必填,正整數 |
| methodMinCost | Long | 方法最小耗時(毫秒),必填,正整數且必須小於 cost |
| excPkgs | String | 排除的包名,多個用逗號分隔(不能含空格) |
| incPkgs | String | 包含的包名,多個用逗號分隔(不能含空格) |
| appContext | String | 目標應用上下文路徑(如 /myapp),可選;為空不按應用過濾 |
| deadline | LocalDateTime | 追蹤截止時間(yyyy-MM-dd HH:mm:ss),可選;為空不自動停止 |
InvokeChainTrace 字段說明(返回實體,繼承 BaseEntity 公共字段 id/createdTime/updatedTime/deleted)
| 字段名 | 類型 | 說明 |
|---|---|---|
| startTime | LocalDateTime | 追蹤開始時間 |
| endTime | LocalDateTime | 追蹤結束時間 |
| status | String | 狀態:SUCCESS / FAILED |
| params | String | 追蹤參數快照 JSON(cost/methodMinCost/incPkgs/excPkgs/appContext/deadline) |
| fileName | String | 追蹤結果 XML 檔名(用於下載) |
| filePath | String | 追蹤結果 XML 檔案絕對路徑(探針所在機器路徑) |
| dataSize | Long | 追蹤結果 XML 資料大小(位元組) |
| errorMsg | String | 失敗/異常資訊 |
# JmxConfigController
基礎路徑:/api/config/jmx
| 方法 | 路徑 | 函數 | 參數 | 返回類型 | 說明 |
|---|---|---|---|---|---|
| GET | /api/config/jmx | getConfig | Result<JmxConfig> | 獲取 JMX 配置(keyStorePassword/keyPassword 以星號掩碼返回) | |
| GET | /api/config/jmx/cipher-suites | getSupportedCipherSuites | Result<List<String>> | 獲取 JVM 支援的強加密套件列表(已過濾弱套件) | |
| PUT | /api/config/jmx | saveConfig | @RequestBody JmxConfig config | Result<Void> | 儲存 JMX 配置(字串字段去空格,需重啟生效) |
JmxConfig 字段說明
| 字段名 | 類型 | 說明 |
|---|---|---|
| enabled | Integer | 是否啟用 JMX |
| host | String | JMX 監聽主機 |
| port | Integer | JMX 監聽端口 |
| authenticate | Integer | 是否啟用認證 |
| passwordFile | String | 密碼檔案路徑 |
| accessFile | String | 訪問控制檔案路徑 |
| sslEnabled | Integer | 是否啟用 SSL |
| clientAuth | Integer | 是否要求客戶端證書認證 |
| keyStoreFile | String | 金鑰庫檔案路徑 |
| keyPassword | String | 金鑰密碼 |
| keyStorePassword | String | 金鑰庫密碼 |
| keyStoreType | String | 金鑰庫類型 |
| trustStoreFile | String | 信任庫檔案路徑 |
| trustStorePassword | String | 信任庫密碼 |
| trustStoreType | String | 信任庫類型 |
| enabledCipherSuites | String | 啟用的加密套件列表 |
| certificateCustom | Integer | 是否自定義證書庫引用 |
| keyStoreName | String | 金鑰庫名稱(證書庫引用) |
| trustStoreName | String | 信任庫名稱(證書庫引用) |
| keyStoreEntry | String | 金鑰庫證書條目別名 |
# JndiResourceController
基礎路徑:/api/resources/jndi
| 方法 | 路徑 | 函數 | 參數 | 返回類型 | 說明 |
|---|---|---|---|---|---|
| GET | /api/resources/jndi | list | PageQueryDTO query | Result<PageResult<JndiResource>> | 分頁查詢 JNDI 資源列表 |
| GET | /api/resources/jndi/{id} | get | @PathVariable Long id | Result<JndiResource> | 按 ID 獲取 JNDI 資源詳情,不存在返回 404 |
| POST | /api/resources/jndi | create | @RequestBody JndiResourceDTO dto | Result<Void> | 創建 JNDI 資源 |
| PUT | /api/resources/jndi/{id} | update | @PathVariable Long id, @RequestBody JndiResourceDTO dto | Result<Void> | 更新 JNDI 資源 |
| DELETE | /api/resources/jndi/{id} | delete | @PathVariable Long id | Result<Void> | 刪除 JNDI 資源 |
| POST | /api/resources/jndi/{id}/status | toggleStatus | @PathVariable Long id, @RequestParam Integer status | Result<Void> | 啟用/停用 JNDI 資源(status 只能為 0 或 1) |
JndiResourceDTO 字段說明
| 字段名 | 類型 | 說明 |
|---|---|---|
| jndiName | String | JNDI 名稱(創建必填,最長 256 字元) |
| resourceType | String | 資源類型(創建必填) |
| factoryClass | String | 工廠類全限定類名(創建必填,最長 512 字元) |
| properties | String | 自定義屬性(JSON 對象字串,最長 65536 字元) |
| description | String | 資源描述(最長 256 字元) |
# JvmConfigController
基礎路徑:/api/config/jvm
| 方法 | 路徑 | 函數 | 參數 | 返回類型 | 說明 |
|---|---|---|---|---|---|
| GET | /api/config/jvm | getConfig | Result<JvmConfig> | 獲取 JVM 配置 | |
| PUT | /api/config/jvm | saveConfig | @RequestBody JvmConfig config | Result<?> | 儲存 JVM 配置:校驗堆大小(Xms≤Xmx、正整數)、元空間(-1 或正數、初始≤最大)、JVM 選項格式(-D/-X/-XX:/-javaagent: 開頭且不重複)、本地庫路徑存在性、除錯選項格式;開啟 CRaC 時校驗 fdPolicy 必填且為存在的檔案。400 時 data 捎帶 cracFdPolicy 等字段名供前端展示。需重啟生效 |
JvmConfig 字段說明
| 字段名 | 類型 | 說明 |
|---|---|---|
| jdkPath | String | JDK 路徑 |
| javaVersion | String | Java 版本 |
| xms | String | 堆最小值(MB,正整數) |
| xmx | String | 堆最大值(MB,不小於 xms) |
| xmn | String | 新生代大小 |
| permSize / maxPermSize | String | 永久代初始/最大大小(相容舊配置) |
| metaspaceSize | String | 元空間初始值(-1 或正整數) |
| maxMetaspaceSize | String | 元空間最大值(-1 或正整數,不小於初始值) |
| gcType | String | 垃圾收集器類型 |
| gcLogPath | String | GC 日誌路徑 |
| debugEnabled | Integer | 是否啟用遠端除錯 |
| debugOptions | String | 除錯選項(僅允許 -D/-X/-XX:/-agentlib: 開頭的 token) |
| nativeLibraryPath | String | 本地庫路徑(多個路徑以路徑分隔符分隔,均需存在) |
| jvmOptions | String | 附加 JVM 選項(每行一條,-D/-X/-XX:/-javaagent: 開頭且不重複) |
| oomAction | String | OOM 處理策略 |
| cracEnabled | Integer | 是否啟用 CRaC 特性 |
| cracCheckpointDir | String | CRaC 檢查點目錄(服務端固定下發,請求值忽略) |
| cracFdPolicy | String | CRaC 檔案描述符策略檔案路徑(開啟 CRaC 時必填且必須存在) |
| cracTraceStartupTime | Integer | CRaC 啟動耗時跟蹤 |
| cracPrintResources | Integer | CRaC 列印資源資訊 |
| cracCollectFdStacktraces | Integer | CRaC 收集 fd 堆疊 |
| cracFdPolicyDefault | String | fdPolicy 預設路徑(執行時解析,不入庫,供前端恢復預設值) |
# LicenseController
基礎路徑:/api/license
| 方法 | 路徑 | 函數 | 參數 | 返回類型 | 說明 |
|---|---|---|---|---|---|
| GET | /api/license/info | info | Result<Map<String, Object>> | 獲取當前生效授權資訊(含機器標識 iden、是否有授權、特性碼、授權對象、起止日期、授權類型、是否永久、剩餘天數、產品名/版本、是否雲環境) | |
| GET | /api/license/days-remaining | daysRemaining | Result<Map<String, Object>> | 獲取授權剩餘天數 | |
| POST | /api/license/update | update | @RequestParam MultipartFile file, String content, String fileName | Result<License> | 更新授權(上傳 .lic/.xml 檔案或直接提交授權文本內容,帶檔案大小/檔名/內容長度校驗) |
# LogController
基礎路徑:/api/logs
| 方法 | 路徑 | 函數 | 參數 | 返回類型 | 說明 |
|---|---|---|---|---|---|
| GET | /api/logs/files | getLogFiles | Result<List<Map<String, Object>>> | 獲取日誌檔案列表(掃描系統日誌目錄與訪問日誌目錄,含檔名、路徑、大小、最後修改時間、類型) | |
| GET | /api/logs/content | getLogContent | @RequestParam String fileName, long offset, String direction, int pageSize, String keyword, String logLevel, String startTime, String endTime | Result<LogContentResponse> | 流式雙向游標分頁讀取日誌內容(支援 forward/backward/last/tail/raw-* 方向及關鍵字、級別、時間範圍過濾) |
| GET | /api/logs/raw | getLogRawContent | @RequestParam String fileName | Result<LogRawContentResponse> | 讀取日誌檔案完整原始內容(UTF-8 失敗時回退 GBK,返回內容與檔案大小) |
| GET | /api/logs/config | getLogConfig | Result<Map<String, Object>> | 獲取系統日誌與訪問日誌配置(systemLog/accessLog 兩部分) | |
| PUT | /api/logs/config | updateLogConfig | @RequestBody Map<String, Object> config | Result<?> | 更新日誌配置(校驗後儲存系統/訪問日誌配置並下發到 AAS 實例應用,需重啟生效) |
| POST | /api/logs/rotate | rotateLog | @RequestParam String fileName | Result<Void> | 滾動(輪轉)指定日誌檔案 |
| DELETE | /api/logs/clear | clearLogs | @RequestParam String fileName | Result<Void> | 清空指定日誌檔案內容 |
| POST | /api/logs/export | exportLog | @RequestBody Map<String, String> body | Result<Map<String, Object>> | 生成日誌匯出下載連結(返回 downloadUrl 與 zip 檔名) |
| GET | /api/logs/download | downloadLog | @RequestParam String fileName, String logType, String keyword, String logLevel, String startTime, String endTime, HttpServletResponse response | void | 下載日誌 zip 檔案(有過濾條件時僅匯出匹配的日誌條目) |
| POST | /api/logs/config/sync | syncLogConfig | Result<Map<String, Object>> | 從 AAS 實例同步日誌配置回控制台並返回最新配置 |
# LoginLogController
基礎路徑:/api/audit/login-logs
| 方法 | 路徑 | 函數 | 參數 | 返回類型 | 說明 |
|---|---|---|---|---|---|
| GET | /api/audit/login-logs | list | LoginLogQueryDTO query | Result<PageResult<LoginLog>> | 分頁查詢登入審計日誌 |
| GET | /api/audit/login-logs/export | export | LoginLogQueryDTO query, HttpServletResponse response | void | 匯出登入審計日誌為 zip 包裹的 CSV(含事件時間、賬號、事件類型、IP、描述、結果) |
# MetricsController
基礎路徑:/metrics
| 方法 | 路徑 | 函數 | 參數 | 返回類型 | 說明 |
|---|---|---|---|---|---|
| GET | /metrics | metrics | HttpServletRequest servletRequest, @RequestHeader String authHeader | ResponseEntity<?> | Prometheus 指標端點(text/plain),開關關閉時 404;支援 Basic Auth / Access Token + IP 白名單 |
| GET | /metrics/collectors | listCollectors | HttpServletRequest servletRequest, @RequestHeader String authHeader | ResponseEntity<?> | 列出所有 collector 名稱與類目對映(JSON,需開啟 Restful 開關並透過認證) |
| GET | /metrics/data | collectAll | HttpServletRequest servletRequest, @RequestHeader String authHeader | ResponseEntity<?> | 獲取全部監控資料(合併所有 collector),返回 RestfulMetricsResponse |
| GET | /metrics/data/{category} | collectCategory | @PathVariable String category, HttpServletRequest servletRequest, @RequestHeader String authHeader | ResponseEntity<?> | 獲取單類目(category)監控資料,未知類目返回 404 |
| GET | /metrics/data/{category}/{name} | collectOne | @PathVariable String category, @PathVariable String name, HttpServletRequest servletRequest, @RequestHeader String authHeader | ResponseEntity<?> | 獲取單 collector(category/name)監控資料,未知 collector 返回 404 |
# MonitorConfigController
基礎路徑:/api/monitor/config
| 方法 | 路徑 | 函數 | 參數 | 返回類型 | 說明 |
|---|---|---|---|---|---|
| GET | /api/monitor/config | getConfig | Result<MonitorConfig> | 獲取監控服務配置(SNMP v3 密碼以星號掩碼返回,Prometheus 憑據解密返回且密碼掩碼) | |
| PUT | /api/monitor/config | saveConfig | @RequestBody MonitorConfigDTO dto | Result<Void> | 儲存監控服務/告警/SNMP 配置(不含介面服務字段;Full GC 監控關閉時停止採集器) |
| POST | /api/monitor/config/restore-defaults | restoreDefaults | Result<MonitorConfig> | 恢復監控服務預設配置 | |
| POST | /api/monitor/config/prometheus-auth-token/refresh | refreshPrometheusAuthToken | Result<Map<String, String>> | 重新生成 Prometheus Authorization Bearer token(明文僅本次響應返回,存庫加密) | |
| PUT | /api/monitor/config/interface-service | updateInterfaceService | @RequestBody InterfaceServiceConfigDTO dto | Result<MonitorConfig> | 僅更新 Prometheus/Restful 介面服務配置(開關、認證方式、Basic Auth 憑據、Token、白名單;Basic Auth 密碼非空時校驗複雜度) |
| POST | /api/monitor/config/interface-service/restore-defaults | restoreInterfaceServiceDefaults | Result<MonitorConfig> | 僅恢復介面服務相關字段為預設值 |
MonitorConfigDTO 字段說明(僅列業務字段,省略均為 0/1 開關的重複校驗說明)
| 字段名 | 類型 | 說明 |
|---|---|---|
| monitorEnabled | Integer | 監控服務總開關(0/1) |
| mbeanMonitorEnabled | Integer | MBean 監控開關(0/1) |
| collectIntervalSeconds | Integer | 採集週期(秒,10~3600) |
| jvmMonitorEnabled | Integer | JVM 監控開關(0/1) |
| threadPoolMonitorEnabled | Integer | 線程池監控開關(0/1) |
| dsMonitorEnabled | Integer | JDBC 連線池監控開關(0/1) |
| httpMonitorEnabled | Integer | HTTP 通道監控開關(0/1) |
| sessionMonitorEnabled | Integer | 會話監控開關(0/1) |
| systemResourceMonitorEnabled | Integer | 系統資源監控開關(0/1) |
| fullGcMonitorEnabled | Integer | Full GC 監控開關(0/1) |
| cpuMonitorEnabled | Integer | CPU 監控開關(0/1) |
| memoryMonitorEnabled | Integer | 記憶體監控開關(0/1) |
| maxDataPoints | Integer | 最大數據點數 |
| replaySampleInterval | Integer | 回放取樣間隔(秒,1~86400) |
| alertEnabled | Integer | 告警開關(0/1) |
| alertIntervalMinutes | Integer | 告警間隔(分鐘,1~1440) |
| alertCpuThreshold | Integer | CPU 告警閾值(0~100) |
| alertMemoryThreshold | Integer | 記憶體告警閾值(0~100) |
| alertDiskThreshold | Integer | 磁碟告警閾值(0~100) |
| httpThreadAlertEnabled | Integer | HTTP 線程告警開關(0/1) |
| httpThreadThreshold | Integer | HTTP 線程告警閾值 |
| cpuAlertEnabled | Integer | CPU 告警通知開關(0/1) |
| virtualMemoryAlertEnabled | Integer | 虛擬記憶體告警開關(0/1) |
| virtualMemoryThreshold | Integer | 虛擬記憶體告警閾值(0~100) |
| physicalMemoryAlertEnabled | Integer | 實體記憶體告警開關(0/1) |
| physicalMemoryThreshold | Integer | 實體記憶體告警閾值(0~100) |
| fullGcAlertEnabled | Integer | Full GC 告警開關(0/1) |
| fullGcDurationSeconds | Integer | Full GC 持續時間閾值(秒) |
| fullGcFrequencyLimit | Integer | Full GC 頻率限制(次) |
| jdbcAlertEnabled | Integer | JDBC 告警開關(0/1) |
| jdbcErrorThreshold | Integer | JDBC 錯誤閾值 |
| alertSendMessageEnabled | Integer | 告警傳送訊息開關(0/1) |
| alertGenerateSnapshotEnabled | Integer | 告警生成快照開關(0/1) |
| snapshotThreadEnabled | Integer | 線程快照開關(0/1) |
| snapshotHeapEnabled | Integer | 堆快照開關(0/1) |
| snapshotProcessEnabled | Integer | 程序快照開關(0/1) |
| sendEmailEnabled | Integer | 郵件通知開關(0/1) |
| sendSnmpEnabled | Integer | SNMP 通知開關(0/1) |
| sendPlatformEnabled | Integer | 平臺通知開關(0/1) |
| snmpEnabled | Integer | SNMP 開關(0/1) |
| snmpHost | String | SNMP Agent 綁定地址(IPv4/IPv6 字面量,最長 128) |
| snmpPort | Integer | SNMP 端口(1~65535) |
| snmpCommunity | String | SNMP 團體名 |
| snmpProtocol | String | SNMP 協議 |
| snmpVersion | String | SNMP 版本 |
| snmpAddress | String | NMS 端地址(IP/port 格式) |
| snmpSecurity | String | SNMP v3 安全級別(無/認證不加密/認證加密) |
| snmpUsername | String | SNMP v3 用戶名稱 |
| snmpAuthMethod | String | SNMP v3 認證方式(MD5/SHA) |
| snmpAuthPassword | String | SNMP v3 認證密碼(明文入參,服務端加密入庫) |
| snmpCipher | String | SNMP v3 加密演算法(DES/3DES/AES128/AES192/AES256) |
| snmpPrivPassword | String | SNMP v3 加密密碼 |
| prometheusEnabled | Integer | Prometheus 介面開關(0/1) |
| restfulEnabled | Integer | Restful 監控資料介面開關(0/1) |
| prometheusAuthMethod | String | 認證方式(none/basic/authorization) |
| prometheusAuthUsername | String | Basic Auth 用戶名稱(明文入參,服務端加密) |
| prometheusAuthPassword | String | Basic Auth 密碼(明文入參,服務端加密) |
| prometheusAuthToken | String | Authorization Bearer 值(明文入參,服務端加密) |
| prometheusWhitelist | String | 白名單原文(多行/逗號分隔的 IP 或 CIDR,含 IPv6) |
InterfaceServiceConfigDTO 字段說明
| 字段名 | 類型 | 說明 |
|---|---|---|
| prometheusEnabled | Integer | Prometheus 開關(0=關閉 1=開啟) |
| restfulEnabled | Integer | Restful 監控資料介面開關(0=關閉 1=開啟) |
| prometheusAuthMethod | String | 認證方式(none/basic/authorization) |
| prometheusAuthUsername | String | Basic Auth 用戶名稱(明文入參,服務端加密;僅字母數字._@-) |
| prometheusAuthPassword | String | Basic Auth 密碼(明文入參,不允許含 <>;非空時校驗密碼策略複雜度) |
| prometheusAuthToken | String | Authorization Bearer 值(明文入參,不允許含 <>) |
| prometheusWhitelist | String | 白名單原文(多行/逗號分隔的 IP 或 CIDR,含 IPv6,最長 512) |
# MonitorDataController
基礎路徑:/api/monitor/data
| 方法 | 路徑 | 函數 | 參數 | 返回類型 | 說明 |
|---|---|---|---|---|---|
| GET | /api/monitor/data/system | getSystemResource | Result<Map<String, Object>> | 獲取系統資源即時監控資料(CPU/記憶體/磁碟等,模組開關關閉時返回 null) | |
| GET | /api/monitor/data/system-resource/history | getSystemResourceHistory | @RequestParam LocalDateTime startTime, LocalDateTime endTime | Result<SystemResourceTrendDTO> | 查詢系統資源歷史趨勢資料(預設最近 1 小時,最長 30 天) |
| GET | /api/monitor/data/jvm | getJvmMonitor | Result<Map<String, Object>> | 獲取 JVM 記憶體/垃圾回收等即時監控資料 | |
| GET | /api/monitor/data/jvm/history | getJvmHistory | @RequestParam LocalDateTime startTime, LocalDateTime endTime | Result<JvmHistoryDTO> | 查詢 JVM 監控歷史資料(記憶體、GC 等趨勢) |
| GET | /api/monitor/data/threads | getThreadInfo | Result<Map<String, Object>> | 獲取 JVM 線程即時監控資訊 | |
| GET | /api/monitor/data/fullgc/records | fullGcRecords | @RequestParam LocalDateTime startTime, LocalDateTime endTime, Integer current, Integer size | Result<Page<FullGcRecordDTO>> | 分頁查詢 Full GC 記錄(預設最近 1 天,最長 30 天) |
| GET | /api/monitor/data/fullgc/trend | fullGcTrend | @RequestParam LocalDateTime startTime, LocalDateTime endTime | Result<FullGcTrendDTO> | 查詢 Full GC 趨勢統計 |
| GET | /api/monitor/data/fullgc/status | fullGcStatus | Result<Map<String, Object>> | 獲取 Full GC 採集器狀態(supported 是否支援、listening 是否監聽中) | |
| POST | /api/monitor/data/fullgc/switch/on | fullGcSwitchOn | Result<Void> | 啟動 Full GC 採集監聽 | |
| POST | /api/monitor/data/fullgc/switch/off | fullGcSwitchOff | Result<Void> | 停止 Full GC 採集監聽 | |
| GET | /api/monitor/data/fullgc/export | exportFullGcRecords | @RequestParam LocalDateTime startTime, LocalDateTime endTime, HttpServletResponse response | void | 匯出 Full GC 記錄為 CSV 檔案 |
| GET | /api/monitor/data/jndi | getJndiTree | Result<Map<String, Object>> | 獲取 JNDI 樹結構 | |
| GET | /api/monitor/data/sql | getSqlTrace | Result<Map<String, Object>> | 獲取 SQL 追蹤監控資料 | |
| GET | /api/monitor/data/perf | getPerfData | Result<Map<String, Object>> | 獲取效能採集資料 | |
| GET | /api/monitor/data/datasource | getDatasourceMonitor | Result<Map<String, Object>> | 獲取資料來源連線池即時監控資料 | |
| GET | /api/monitor/data/datasource-replay | getDatasourceReplay | Result<Map<String, Object>> | 獲取資料來源監控資料(回放場景,不受開關限制) | |
| POST | /api/monitor/data/datasource/test | testDatasource | @RequestParam String jndiName | Result<Boolean> | 測試指定 JNDI 資料來源連通性 |
| GET | /api/monitor/data/datasource/history | getDatasourceHistory | @RequestParam LocalDateTime startTime, LocalDateTime endTime, String jndiName | Result<DatasourceTrendDTO> | 查詢資料來源歷史趨勢(可按 JNDI 名過濾) |
| GET | /api/monitor/data/http | getHttpChannelMonitor | Result<Map<String, Object>> | 獲取 HTTP 通道即時監控資料 | |
| GET | /api/monitor/data/http-replay | getHttpChannelReplay | Result<Map<String, Object>> | 獲取 HTTP 通道監控資料(回放場景) | |
| GET | /api/monitor/data/threadpool | getThreadPoolMonitor | Result<Map<String, Object>> | 獲取線程池即時監控資料 | |
| GET | /api/monitor/data/threadpool-replay | getThreadPoolReplay | Result<Map<String, Object>> | 獲取線程池監控資料(回放場景) | |
| GET | /api/monitor/data/threadpool/history | getThreadPoolHistory | @RequestParam LocalDateTime startTime, LocalDateTime endTime, String poolName | Result<ThreadPoolHistoryDTO> | 查詢線程池歷史資料(可按線程池名過濾) |
| GET | /api/monitor/data/threadpool/{name}/detail | getThreadPoolDetail | @PathVariable String name | Result<Map<String, Object>> | 獲取指定線程池明細資訊 |
| GET | /api/monitor/data/app-sessions | getAppSessionMonitor | Result<Map<String, Object>> | 獲取應用會話即時監控資料 | |
| GET | /api/monitor/data/app-sessions-replay | getAppSessionReplay | Result<Map<String, Object>> | 獲取應用會話監控資料(回放場景) | |
| GET | /api/monitor/data/app-sessions/history | getAppSessionHistory | @RequestParam LocalDateTime startTime, LocalDateTime endTime, String contextPath | Result<AppSessionTrendDTO> | 查詢應用會話歷史趨勢(可按應用上下文路徑過濾) |
| GET | /api/monitor/data/http/trend | getHttpChannelTrend | @RequestParam String port | Result<Map<String, Object>> | 獲取 HTTP 通道請求趨勢資料(可按端口過濾) |
| GET | /api/monitor/data/http/history | getHttpChannelHistory | @RequestParam LocalDateTime startTime, LocalDateTime endTime, String port | Result<HttpChannelHistoryDTO> | 查詢 HTTP 通道歷史資料(可按端口過濾) |
| GET | /api/monitor/data/http-connections | getHttpConnections | Result<Map<String, Object>> | 獲取 HTTP 連線數資料(儀表盤/監控共用) |
# NotificationController
基礎路徑:/api/notifications
| 方法 | 路徑 | 函數 | 參數 | 返回類型 | 說明 |
|---|---|---|---|---|---|
| GET | /api/notifications | list | @RequestParam Integer page, Integer size, Integer readStatus | Result<PageResult<Notification>> | 分頁查詢當前用戶的通知列表(可按已讀狀態過濾) |
| GET | /api/notifications/unread-count | unreadCount | Result<Map<String, Object>> | 獲取當前用戶未讀通知數量 | |
| PUT | /api/notifications/{id}/read | markRead | @PathVariable Long id | Result<Void> | 將指定通知標記為已讀 |
| PUT | /api/notifications/read-all | markAllRead | Result<Void> | 將當前用戶全部通知標記為已讀 | |
| POST | /api/notifications | create | @RequestBody Map<String, String> body(title/type/content/severity/targetUser) | Result<Notification> | 創建通知(可指定目標用戶,審計記錄) |
| DELETE | /api/notifications | deleteBatch | @RequestBody List<Long> ids | Result<Integer> | 批次刪除通知,返回刪除條數 |
# PasswordController
基礎路徑:/api/auth
| 方法 | 路徑 | 函數 | 參數 | 返回類型 | 說明 |
|---|---|---|---|---|---|
| GET | /api/auth/password-policy | getPasswordPolicy | Result<PasswordPolicyDTO> | 獲取當前系統密碼策略 | |
| POST | /api/auth/change-password | changePassword | @RequestBody ChangePasswordRequest request | Result<Void> | 修改當前登入用戶密碼(AES 加密傳輸,校驗舊密碼、密碼策略、歷史密碼重複;成功後強制該用戶所有會話失效) |
ChangePasswordRequest 字段說明
| 字段名 | 類型 | 說明 |
|---|---|---|
| oldPassword | String | 舊密碼(AES 加密後的密文) |
| newPassword | String | 新密碼(AES 加密後的密文) |
| confirmPassword | String | 確認新密碼(AES 加密後的密文,須與 newPassword 一致) |
# PatchController
基礎路徑:/api/system/patches
| 方法 | 路徑 | 函數 | 參數 | 返回類型 | 說明 |
|---|---|---|---|---|---|
| GET | /api/system/patches | list | PageQueryDTO query | Result<PageResult<Patch>> | 分頁查詢補丁列表 |
| POST | /api/system/patches/upload | upload | @RequestParam String name, String version, String platform, String description, MultipartFile file | Result<Void> | 上傳補丁包(multipart 表單) |
| POST | /api/system/patches/{id}/apply | apply | @PathVariable Long id, String upgradeNote, Integer forceUpgrade | Result<Void> | 應用(升級)指定補丁,可附升級說明與強制升級標誌 |
| POST | /api/system/patches/{id}/rollback | rollback | @PathVariable Long id, String rollbackNote | Result<Void> | 回滾指定補丁 |
| DELETE | /api/system/patches/{id} | delete | @PathVariable Long id | Result<Void> | 刪除指定補丁 |
| GET | /api/system/patches/{id}/progress | getProgress | @PathVariable Long id | Result<Map<String, Object>> | 獲取補丁應用/回滾進度 |
Patch 字段說明
| 字段名 | 類型 | 說明 |
|---|---|---|
| id | Long | 補丁ID |
| patchName | String | 補丁名稱 |
| version | String | 補丁版本 |
| platform | String | 適用平臺版本 |
| description | String | 補丁描述 |
| filePath | String | 補丁檔案路徑 |
| status | Integer | 補丁狀態(0=未應用,1=已應用,2=失敗,3=已回退) |
| progress | Integer | 安裝進度百分比 |
| installTime | LocalDateTime | 安裝時間 |
| rolledBackTime | LocalDateTime | 回退時間 |
| upgradeNote | String | 升級備註 |
| rollbackNote | String | 回退備註 |
| forceUpgrade | Integer | 強制升級標誌 |
| progressDetail | String | 進度詳情(JSON格式) |
# ReplayController
基礎路徑:/api/monitor/replay
| 方法 | 路徑 | 函數 | 參數 | 返回類型 | 說明 |
|---|---|---|---|---|---|
| GET | /api/monitor/replay/system | system | @RequestParam String start, String end | Result<Map<String, Object>> | 查詢系統維度(主機/系統資源)歷史取樣點回放資料 |
| GET | /api/monitor/replay/jvm | jvm | @RequestParam String start, String end | Result<Map<String, Object>> | 查詢 JVM 維度歷史取樣點回放資料 |
| GET | /api/monitor/replay/datasource | datasource | @RequestParam String start, String end, String target | Result<Map<String, Object>> | 查詢指定資料來源(target)的歷史取樣點回放資料 |
| GET | /api/monitor/replay/app-session | appSession | @RequestParam String start, String end, String target | Result<Map<String, Object>> | 查詢指定應用(target)會話數歷史取樣點回放資料 |
| GET | /api/monitor/replay/http-channel | httpChannel | @RequestParam String start, String end, String target | Result<Map<String, Object>> | 查詢指定 HTTP 通道(target)的歷史取樣點回放資料 |
| GET | /api/monitor/replay/thread-pool | threadPool | @RequestParam String start, String end, String target | Result<Map<String, Object>> | 查詢指定線程池(target)的歷史取樣點回放資料 |
# ResourceController
基礎路徑:/api/resources
| 方法 | 路徑 | 函數 | 參數 | 返回類型 | 說明 |
|---|---|---|---|---|---|
| GET | /api/resources/permission-tree | permissionTree | Result<List<PermissionTreeNode>> | 獲取許可權樹(模組 → 頁面 → 操作三級結構),用於角色許可權配置 |
PermissionTreeNode 字段說明
| 字段名 | 類型 | 說明 |
|---|---|---|
| code | String | 節點編碼(選單編碼或 API 許可權編碼,如 app_list:create) |
| name | String | 節點顯示名稱 |
| nameKey | String | i18n 名稱 key(menu:xxx 或 permission:xxx) |
| resourceId | Long | 關聯資源 ID(選單節點才有) |
| children | List | 子節點列表(頁面/操作) |
# RoleController
基礎路徑:/api/roles
| 方法 | 路徑 | 函數 | 參數 | 返回類型 | 說明 |
|---|---|---|---|---|---|
| GET | /api/roles | list | PageQueryDTO query, @RequestParam String roleCode, Integer builtin | Result<PageResult<RoleDTO>> | 分頁查詢角色列表(可按角色編碼、是否內建過濾) |
| GET | /api/roles/all | listAll | Result<List<RoleDTO>> | 查詢全部角色(不分頁) | |
| GET | /api/roles/{id} | get | @PathVariable Long id | Result<RoleDTO> | 按 ID 查詢角色詳情 |
| POST | /api/roles | create | @RequestBody RoleDTO dto | Result<Void> | 創建角色(Create 校驗分組,空字串字段規範化為 null) |
| PUT | /api/roles/{id} | update | @PathVariable Long id, @RequestBody RoleDTO dto | Result<Void> | 更新指定角色 |
| DELETE | /api/roles/{id} | delete | @PathVariable Long id | Result<Void> | 刪除指定角色 |
| DELETE | /api/roles/batch | deleteBatch | @RequestBody List<Long> ids | Result<Integer> | 批次刪除角色,返回刪除條數 |
RoleDTO 字段說明
| 字段名 | 類型 | 說明 |
|---|---|---|
| id | Long | 角色 ID |
| roleCode | String | 角色編碼(創建必填,僅字母/數字/下劃線/短橫線,最長 64) |
| roleName | String | 角色顯示名(最長 64) |
| description | String | 角色說明(最長 255) |
| builtin | Integer | 是否內建角色(1=內建,不可修改刪除) |
| classLevel | Integer | 角色密級標識 |
| resourceIds | List | 關聯的資源 ID 列表 |
| resourceCodes | List | 關聯的資源編碼列表(用於顯示) |
| userNames | List | 關聯的用戶名稱列表 |
| userCount | Integer | 關聯用戶數(列表展示用) |
| defaultRole | Integer | 是否預設角色(僅一個角色可為預設) |
| permissions | List | 許可權編碼列表(含選單和操作許可權) |
# ScriptRecordingController
基礎路徑:/api/script-recording
| 方法 | 路徑 | 函數 | 參數 | 返回類型 | 說明 |
|---|---|---|---|---|---|
| GET | /api/script-recording | list | @RequestParam String name, String status, LocalDateTime startTime, LocalDateTime endTime, long page, long size | Result<PageResult<ScriptRecordingVO>> | 分頁查詢指令碼錄製任務列表,支援名稱/狀態/時間範圍過濾 |
| GET | /api/script-recording/active | active | Authentication authentication | Result<Boolean> | 當前用戶是否有錄製中任務(登出確認用,僅返回自己的狀態) |
| POST | /api/script-recording | create | @RequestBody ScriptRecordingCreateDTO dto, Authentication authentication | Result<ScriptRecordingVO> | 創建指令碼錄製任務(以當前用戶為創建者),記審計 |
| POST | /api/script-recording/{id}/stop | stop | @PathVariable Long id, Authentication authentication | Result<ScriptRecordingStopResult> | 停止錄製並生成指令碼(aascli/postman/curl) |
| POST | /api/script-recording/{id}/stop-empty | stopEmpty | @PathVariable Long id, Authentication authentication | Result<Void> | 停止錄製但不生成指令碼(空任務丟棄),記審計 |
| DELETE | /api/script-recording/{id} | delete | @PathVariable Long id, Authentication authentication | Result<Void> | 刪除錄製任務(僅創建者本人) |
| GET | /api/script-recording/{id}/download | download | @PathVariable Long id, @RequestParam List<String> formats | ResponseEntity<byte[]> | 下載錄製生成的指令碼 ZIP 包(預設打包 aascli/postman/curl 三種格式) |
ScriptRecordingCreateDTO 字段說明
| 字段名 | 類型 | 說明 |
|---|---|---|
| name | String | 指令碼名稱(字母/數字/下劃線/短橫線/點,1-255 字元) |
| timeoutMinutes | Integer | 超時時間(分鐘),0=無限制 |
| description | String | 說明,可空,不超過 1000 字元 |
ScriptRecordingVO 字段說明
| 字段名 | 類型 | 說明 |
|---|---|---|
| id | Long | 錄製任務 ID |
| name | String | 指令碼名稱 |
| status | String | 任務狀態(錄製中/已停止等) |
| description | String | 說明 |
| timeoutMinutes | Integer | 超時時間(分鐘) |
| creator | String | 創建者用戶名稱 |
| startTime | LocalDateTime | 開始錄製時間 |
| endTime | LocalDateTime | 結束錄製時間 |
| opCount | Integer | 已錄製運算元 |
| elapsedSeconds | long | 已錄製時長(秒),錄製中即時計算 |
# SecurityConfigController
基礎路徑:/api/security/config
| 方法 | 路徑 | 函數 | 參數 | 返回類型 | 說明 |
|---|---|---|---|---|---|
| GET | /api/security/config | getConfigs | Result<Map<String, String>> | 獲取全部安全配置項(smtp_password 統一以加密串返回) | |
| PUT | /api/security/config | updateConfigs | @RequestBody Map<String, String> configs, @RequestHeader String X-Current-User-Email | Result<Map<String, Object>> | 批次更新安全配置(backup_enabled 由關轉開時立即執行一次備份;smtp_verify_enabled 開啟時自動傳送測試郵件並返回結果) |
| POST | /api/security/config/test-mail | testMail | @RequestBody Map<String, String> body(to) | Result<Map<String, Object>> | 傳送 SMTP 測試郵件到指定收件人 |
| GET | /api/security/config/smtp | getSmtpEnabled | Result<Map<String, Object>> | 獲取郵件驗證開關狀態 | |
| PUT | /api/security/config/smtp | updateSmtpEnabled | @RequestBody Map<String, Object> body(smtpEnabled) | Result<Void> | 更新郵件驗證開關 |
| GET | /api/security/config/auth-policy | getAuthPolicy | Result<Map<String, Object>> | 獲取認證策略配置 | |
| PUT | /api/security/config/auth-policy | updateAuthPolicy | @RequestBody Map<String, Object> policy | Result<Void> | 儲存認證策略配置 |
| POST | /api/security/config/backup-now | backupNow | Result<Map<String, Object>> | 立即執行一次業務配置手動備份 | |
| GET | /api/security/config/backup-list | listBackups | Result<List<Map<String, Object>>> | 查詢業務配置備份檔案列表 | |
| POST | /api/security/config/backup-restore | restoreBackup | @RequestBody Map<String, String> body(fileName) | Result<Map<String, Object>> | 按檔名恢復業務配置備份 |
| DELETE | /api/security/config/backup/{fileName} | deleteBackup | @PathVariable String fileName | Result<Void> | 刪除指定業務配置備份檔案 |
| POST | /api/security/config/restart | restart | Result<Map<String, Object>> | 重啟 AAS 伺服器(返回 RESTARTING 狀態) |
SecurityConfig 字段說明
| 字段名 | 類型 | 說明 |
|---|---|---|
| id | Long | 配置ID |
| configKey | String | 配置項鍵名 |
| configValue | String | 配置項值 |
| description | String | 配置說明 |
# SecurityRealmController
基礎路徑:/api/security/realms
| 方法 | 路徑 | 函數 | 參數 | 返回類型 | 說明 |
|---|---|---|---|---|---|
| GET | /api/security/realms | list | SecurityRealmQueryDTO query | Result<PageResult<SecurityRealmDTO>> | 分頁查詢安全域列表 |
| GET | /api/security/realms/all | listAll | Result<List<SecurityRealmDTO>> | 查詢全部安全域(不分頁) | |
| GET | /api/security/realms/{id} | get | @PathVariable Long id | Result<SecurityRealmDTO> | 按 ID 查詢安全域詳情(不存在返回 404) |
| POST | /api/security/realms | create | @RequestBody SecurityRealmDTO dto | Result<Void> | 創建安全域(需重啟生效) |
| PUT | /api/security/realms/{id} | update | @PathVariable Long id, @RequestBody SecurityRealmDTO dto | Result<Void> | 更新安全域(需重啟生效) |
| DELETE | /api/security/realms/{id} | delete | @PathVariable Long id | Result<Void> | 刪除安全域(需重啟生效) |
| DELETE | /api/security/realms/batch | deleteBatch | @RequestBody List<Long> ids | Result<Integer> | 批次刪除安全域,返回刪除條數 |
| GET | /api/security/realms/user-database-resources | getUserDatabaseResources | Result<List<String>> | 獲取 AAS 實例中可用的用戶資料庫資源名列表 |
SecurityRealmDTO 字段說明
| 字段名 | 類型 | 說明 |
|---|---|---|
| id | Long | 安全域 ID |
| name | String | 安全域名稱 |
| type | String | 類型(DataSourceRealm/UserDatabaseRealm/JAASRealm/JNDIRealm/Custom) |
| config | String | 配置內容(JSON 或自定義格式) |
| xmlConfig | String | XML 配置輸出(用於 server.xml) |
| description | String | 描述 |
| passwordHashAlgorithm | String | 密碼雜湊演算法(無/MD5/SHA-1/SHA-256/SHA-512) |
| boundApps | List | 綁定應用名稱列表 |
| lockEnabled | Boolean | 是否啟用賬號鎖定機制 |
| maxFailedAttempts | Integer | 允許密碼錯誤次數 |
| lockTimeout | Integer | 鎖定超時時間(秒) |
| cacheSize | Integer | 快取大小 |
| cacheRemovalWarningTime | Integer | 快取移除警告時間(秒) |
| userTable | String | 用戶表名(DataSource Realm) |
| usernameField | String | 用戶名稱字段 |
| passwordField | String | 密碼字段 |
| roleTable | String | 角色表名 |
| roleField | String | 角色字段 |
| dataSourceJndi | String | 資料來源 JNDI 名稱(DataSource Realm) |
| resourceName | String | 資源名(UserDatabase Realm) |
| jaasLoginModules | List | JAAS LoginModule 配置列表(含 loginModuleClass/controlFlag/options) |
| userPrincipalClass | String | 用戶 Principal 實現類(JAAS Realm) |
| rolePrincipalClass | String | 角色 Principal 實現類 |
| contextFactory | String | 上下文工廠類名(JNDI Realm) |
| jndiConnectionUrl | String | 連線 URL |
| alternateUrl | String | 備用連線 URL |
| connectionUsername | String | 連線用戶名稱 |
| connectionPassword | String | 連線密碼 |
| userSearchBase | String | 用戶搜尋基準 |
| userSearchFilter | String | 用戶搜尋匹配 |
| userSubtree | Boolean | 用戶子樹搜尋 |
| userPattern | String | 用戶 DN 模式 |
| userSearchAsUser | Boolean | 以用戶身份搜尋用戶 |
| userPasswordAttr | String | 用戶密碼屬性名 |
| userRoleName | String | 用戶條目中的角色屬性名 |
| userRoleAttribute | String | 用戶角色屬性(用於 roleSearch 替換) |
| roleSearchBase | String | 角色搜尋基準 |
| roleSearchFilter | String | 角色搜尋匹配 |
| roleNameAttribute | String | 角色名稱屬性 |
| roleSubtree | Boolean | 角色子樹搜尋 |
| roleNested | Boolean | 巢狀角色搜尋 |
| roleSearchAsUser | Boolean | 以用戶身份搜尋角色 |
| commonRole | String | 通用角色 |
| connectionTimeout | String | 連線超時(毫秒) |
| readTimeout | String | 讀取超時(毫秒) |
| connectionPoolSize | Integer | 連線池大小(須大於 0) |
# SessionManagerController
基礎路徑:/api/config/web/sessions
| 方法 | 路徑 | 函數 | 參數 | 返回類型 | 說明 |
|---|---|---|---|---|---|
| GET | /api/config/web/sessions/all | listAll | Result<List<SessionManager>> | 查詢全部會話管理器(不分頁) | |
| GET | /api/config/web/sessions/redis-plugin-status | redisPluginStatus | Result<Map<String, Boolean>> | 獲取 Redis 會話外掛狀態(loaded/jarsInstalled/commonLoaderConfigured) | |
| GET | /api/config/web/sessions | list | @RequestParam int page, int size, String name, String type | Result<PageResult<SessionManagerListItem>> | 分頁查詢會話管理器列表(可按名稱、類型過濾) |
| GET | /api/config/web/sessions/{id} | get | @PathVariable Long id | Result<SessionManagerListItem> | 按 ID 查詢會話管理器詳情(不存在返回 404) |
| POST | /api/config/web/sessions | create | @RequestBody SessionManager sm | Result<Void> | 創建會話管理器(含名稱/類型/Redis/路徑等字段級校驗,名稱重複報錯) |
| PUT | /api/config/web/sessions/{id} | update | @PathVariable Long id, @RequestBody SessionManager sm | Result<Void> | 更新會話管理器(同 create 校驗,排除自身查重) |
| DELETE | /api/config/web/sessions/{id} | delete | @PathVariable Long id | Result<Void> | 刪除會話管理器(邏輯刪除,預存名稱供審計) |
SessionManager 字段說明(不含 BaseEntity 公共字段)
| 字段名 | 類型 | 說明 |
|---|---|---|
| name | String | 會話管理器名稱(必填,最長 128) |
| type | String | 類型(memory/file/redis/database) |
| maxSessions | Integer | 最大活躍會話數(-1 表示不限制,否則 ≥1) |
| persistPath | String | 會話持久化檔案路徑(memory 類型,僅允許相對路徑) |
| saveOnRestart | Integer | 重啟時是否儲存會話 |
| maxIdleBackup | Integer | 空閒備份閾值(秒,-1 或 ≥0) |
| minIdleSwap | Integer | 最小空閒交換閾值(秒) |
| maxIdleSwap | Integer | 最大空閒交換閾值(秒) |
| persistenceDir | String | 持久化目錄(file 類型,僅允許相對路徑) |
| redisMode | String | Redis 模式(standalone/sentinel) |
| redisNodes | String | Redis 節點(host:port,多節點逗號分隔) |
| redisMasterName | String | 哨兵模式主節點名稱 |
| redisPassword | String | Redis 密碼(最長 256) |
| redisDatabase | Integer | Redis 資料庫索引(0~15) |
| redisConnectTimeout | Integer | Redis 連線超時(毫秒) |
| redisMaxConn | Integer | Redis 最大連線數(≥1) |
| redisMinIdle | Integer | Redis 最小空閒連線數(≥0) |
| redisMaxIdle | Integer | Redis 最大空閒連線數 |
| redisMaxWait | Integer | Redis 最大等待時間(毫秒) |
| sessionPersistPolicies | String | 會話持久化策略(SAVE_ON_CHANGE/ALWAYS_SAVE_AFTER_REQUEST,逗號組合) |
| sessionAttributeNameFilter | String | 會話屬性名過濾器(正規表示式) |
| sessionAttributeValueClassNameFilter | String | 會話屬性值類名過濾器(正規表示式) |
| warnOnFilterFailure | Integer | 過濾器失敗時是否告警 |
| notifyAttributeOnUnchanged | Integer | 屬性未變更時是否通知 |
| notifyBindingOnUnchanged | Integer | 綁定未變更時是否通知 |
| dataSourceName | String | 資料來源名稱(database 類型必填) |
| localDataSource | Integer | 是否使用本地資料來源 |
# SharedLibController
基礎路徑:/api/resources/sharedlibs
| 方法 | 路徑 | 函數 | 參數 | 返回類型 | 說明 |
|---|---|---|---|---|---|
| GET | /api/resources/sharedlibs | list | SharedLibQueryDTO query | Result<PageResult<SharedLib>> | 分頁查詢共享庫列表 |
| GET | /api/resources/sharedlibs/{id} | get | @PathVariable Long id | Result<SharedLib> | 按 ID 查詢共享庫詳情 |
| POST | /api/resources/sharedlibs | create | @RequestBody SharedLib lib | Result<Long> | 創建共享庫,返回新記錄 ID |
| PUT | /api/resources/sharedlibs/{id} | update | @PathVariable Long id, @RequestBody SharedLib lib | Result<Void> | 更新共享庫 |
| DELETE | /api/resources/sharedlibs/{id} | delete | @PathVariable Long id | Result<Void> | 刪除共享庫 |
| POST | /api/resources/sharedlibs/{id}/upload-jar | uploadJar | @PathVariable Long id, @RequestParam MultipartFile file | Result<Void> | 向共享庫上傳 JAR 檔案 |
| GET | /api/resources/sharedlibs/{id}/jars | listJarFiles | @PathVariable Long id | Result<List<Map<String, Object>>> | 列出共享庫下已上傳的 JAR 檔案 |
| GET | /api/resources/sharedlibs/{id}/jars/{fileName}/download | downloadJar | @PathVariable Long id, @PathVariable String fileName, HttpServletResponse response | void | 下載共享庫中指定 JAR 檔案 |
| DELETE | /api/resources/sharedlibs/{id}/jars/{fileName} | deleteJarFile | @PathVariable Long id, @PathVariable String fileName | Result<Void> | 刪除共享庫中指定 JAR 檔案 |
| POST | /api/resources/sharedlibs/{id}/jars/delete-batch | deleteJarFiles | @PathVariable Long id, @RequestBody List<String> fileNames | Result<Void> | 批次刪除共享庫中的 JAR 檔案 |
| POST | /api/resources/sharedlibs/{id}/apps | bindApp | @PathVariable Long id, @RequestParam Long appId | Result<Void> | 將共享庫綁定到指定應用 |
| DELETE | /api/resources/sharedlibs/{id}/apps | unbindApp | @PathVariable Long id, @RequestParam Long appId | Result<Void> | 解除共享庫與應用的綁定 |
| GET | /api/resources/sharedlibs/{id}/apps | listBoundApps | @PathVariable Long id | Result<List<Map<String, Object>>> | 查詢共享庫已綁定的應用列表 |
| PUT | /api/resources/sharedlibs/{id}/priority | updatePriority | @PathVariable Long id, @RequestParam Integer priority | Result<Void> | 更新共享庫載入優先級(0~9999,數值越小優先級越高) |
SharedLib 字段說明(不含 BaseEntity 公共字段)
| 字段名 | 類型 | 說明 |
|---|---|---|
| name | String | 共享庫名稱(必填,最長 128) |
| path | String | 共享庫路徑(最長 512) |
| version | String | 版本號(最長 64) |
| description | String | 描述 |
| classLevel | Integer | 類級別(≥0) |
| status | Integer | 狀態(0/1) |
| loadStrategy | String | 類載入策略(application-first/classes-first/shared-first) |
| sortOrder | Integer | 排序值(≥0) |
| priority | Integer | 載入優先級(0~9999,數值越小優先級越高,預設 0) |
| fileCount | Integer | 檔案數(非持久化字段,列表展示用) |
| refCount | Integer | 引用次數(非持久化字段,列表展示用) |
# SnapshotConfigController
基礎路徑:/api/monitor/snapshot-config
| 方法 | 路徑 | 函數 | 參數 | 返回類型 | 說明 |
|---|---|---|---|---|---|
| GET | /api/monitor/snapshot-config | getConfig | Result<SnapshotConfig> | 查詢自動快照配置(當前生效配置) | |
| PUT | /api/monitor/snapshot-config | saveConfig | @RequestBody SnapshotConfigDTO dto | Result<Void> | 儲存自動快照配置(含內容與觸發規則),記審計日誌 |
| POST | /api/monitor/snapshot-config/restore-defaults | restoreDefaults | Result<SnapshotConfig> | 恢復自動快照配置為預設值 |
SnapshotConfigDTO 字段說明
| 字段名 | 類型 | 說明 |
|---|---|---|
| id | Long | 配置記錄 ID |
| autoEnabled | Integer | 自動快照開關(0=關 1=開) |
| contentAccessLog | Integer | 快照內容:訪問日誌開關 |
| contentGcLog | Integer | 快照內容:GC日誌開關 |
| contentSystemConfig | Integer | 快照內容:系統配置開關 |
| contentSystemLog | Integer | 快照內容:系統日誌開關 |
| contentHostMonitor | Integer | 快照內容:主機監控資料開關 |
| contentInstanceMetrics | Integer | 快照內容:實例監視量開關 |
| contentCoreDump | Integer | 快照內容:系統Coredump開關 |
| contentThreadDump | Integer | 快照內容:線程棧開關 |
| threadStackCount | Integer | 線程棧抓取次數(1-10) |
| contentHeapDump | Integer | 快照內容:Heapdump開關 |
| heapdumpMode | String | Heapdump模式(all/live) |
| maxSnapshots | Integer | 最多儲存快照數(1-1000) |
| intervalMinutes | Integer | 生成間隔時間(分鐘,1-1440) |
| ruleCpuThreshold | Double | CPU使用率閾值(0-100%) |
| ruleCpuOccurrences | Integer | CPU連續發生次數 |
| ruleMemoryThreshold | Double | 記憶體使用率閾值(0-100%) |
| ruleMemoryOccurrences | Integer | 記憶體連續發生次數 |
| ruleFullGcCountThreshold | Integer | FullGC次數閾值 |
| ruleFullGcCountOccurrences | Integer | FullGC次數連續發生次數 |
| ruleFullGcTimeThreshold | Integer | FullGC時間閾值 |
| ruleFullGcTimeOccurrences | Integer | FullGC時間連續發生次數 |
| ruleHttpTimeoutThreshold | Integer | HTTP慢請求數閾值 |
| ruleHttpTimeoutOccurrences | Integer | HTTP慢請求數連續發生次數 |
| ruleHttpWaitThreshold | Integer | HTTP等待任務數閾值 |
| ruleHttpWaitOccurrences | Integer | HTTP等待任務數連續發生次數 |
| ruleHttpErrorThreshold | Integer | HTTP錯誤數閾值 |
| ruleHttpErrorOccurrences | Integer | HTTP錯誤數連續發生次數 |
| ruleJdbcWaitThreshold | Integer | JDBC等待請求數閾值 |
| ruleJdbcWaitOccurrences | Integer | JDBC等待請求數連續發生次數 |
| ruleJdbcLeakThreshold | Integer | JDBC疑似洩露連線數閾值 |
| ruleJdbcLeakOccurrences | Integer | JDBC疑似洩露連線數連續發生次數 |
# SnapshotController
基礎路徑:/api/monitor/snapshots
| 方法 | 路徑 | 函數 | 參數 | 返回類型 | 說明 |
|---|---|---|---|---|---|
| GET | /api/monitor/snapshots | getSnapshotList | SnapshotQueryDTO query | Result<PageResult<Snapshot>> | 分頁查詢快照列表 |
| POST | /api/monitor/snapshots | createSnapshot | @RequestBody SnapshotCreateDTO dto | Result<Void> | 創建手動快照任務(非同步生成) |
| DELETE | /api/monitor/snapshots/{id} | deleteSnapshot | @PathVariable Long id | Result<Void> | 刪除指定快照 |
| GET | /api/monitor/snapshots/{id}/download/file | downloadSnapshotFile | @PathVariable Long id, HttpServletResponse response | void | 下載快照 zip 檔案(pending/running 狀態禁止下載,檔案不存在報錯) |
SnapshotCreateDTO 字段說明
| 字段名 | 類型 | 說明 |
|---|---|---|
| contentTypes | List | 快照內容類型列表(至少選擇一項,如線程棧/堆/程序等) |
| threadStackCount | Integer | 線程棧抓取次數(1~10) |
| heapdumpMode | String | Heapdump 模式(all=全部對象 / live=僅存活對象) |
# SnmpConfigController
基礎路徑:/api/snmp-config
| 方法 | 路徑 | 函數 | 參數 | 返回類型 | 說明 |
|---|---|---|---|---|---|
| GET | /api/snmp-config | getConfig | Result<MonitorConfig> | 獲取 SNMP 代理配置(僅 SNMP 業務字段檢視,已儲存密碼以 15 個星號佔位,不含 Prometheus 等無關敏感字段) | |
| PUT | /api/snmp-config | saveConfig | @RequestBody @Valid SnmpConfigDTO dto | Result<Void> | 儲存 SNMP 配置(密碼留空表示保留原值,明文單次加密入庫;審計攜帶 before/after 快照) |
| POST | /api/snmp-config/restore-defaults | restoreDefaults | Result<Void> | 恢復 SNMP 配置為預設值 |
SnmpConfigDTO 字段說明
| 字段名 | 類型 | 說明 |
|---|---|---|
| snmpEnabled | Integer | SNMP 開關(0 關 / 1 開) |
| snmpHost | String | SNMP 綁定地址(必填,最長 128) |
| snmpPort | Integer | SNMP 綁定端口(1-65535) |
| snmpProtocol | String | 傳輸協議(udp / tcp) |
| snmpVersion | String | SNMP 版本(v2c / v3) |
| snmpCommunity | String | SNMP 團體名(v2c 用,最長 255) |
| snmpSecurity | String | SNMP v3 安全級別 |
| snmpUsername | String | SNMP v3 用戶名稱(最長 255) |
| snmpAuthMethod | String | SNMP v3 認證方式 |
| snmpAuthPassword | String | SNMP v3 認證密碼(最長 255,留空保留原值) |
| snmpCipher | String | SNMP v3 加密演算法 |
| snmpPrivPassword | String | SNMP v3 加密密碼(最長 255,留空保留原值) |
# SqlTraceController
基礎路徑:/api/monitor/sql-trace
| 方法 | 路徑 | 函數 | 參數 | 返回類型 | 說明 |
|---|---|---|---|---|---|
| GET | /api/monitor/sql-trace/config | getConfig | Result<SqlTraceConfig> | 獲取 SQL 追蹤配置 | |
| POST | /api/monitor/sql-trace/config | saveConfig | @RequestBody @Valid SqlTraceConfig config | Result<Void> | 儲存 SQL 追蹤配置(全域開關/閾值/堆疊開關/最大記錄量/資料來源配置) |
| POST | /api/monitor/sql-trace/start | start | Result<Void> | 啟動 SQL 追蹤 | |
| POST | /api/monitor/sql-trace/stop | stop | Result<Void> | 停止 SQL 追蹤 | |
| GET | /api/monitor/sql-trace/records | query | SqlTraceQueryDTO query(綁定查詢參數,@Valid) | Result<PageResult<SqlTraceRecord>> | 分頁查詢 SQL 追蹤記錄 |
| GET | /api/monitor/sql-trace/records/export | export | SqlTraceQueryDTO query, HttpServletResponse response | void | 按查詢條件匯出 SQL 追蹤記錄 CSV 檔案(先校驗查詢條件) |
SqlTraceConfig 字段說明(@RequestBody 實體,id 為固定主鍵,非業務語義)
| 字段名 | 類型 | 說明 |
|---|---|---|
| enabled | Integer | 全域開關(0 關 / 1 開,必填) |
| thresholdMs | Integer | 執行時長閾值(毫秒),超過才記錄(必填,非負) |
| stackEnabled | Integer | 是否記錄呼叫堆疊(0 關 / 1 開,必填) |
| maxRecordCount | Integer | 最大 SQL 記錄量(必填,≥1) |
| datasourceConfigs | String | 各資料來源獨立配置(JSON 串) |
SqlTraceQueryDTO 字段說明(繼承 PageQueryDTO 的分頁字段 page/size)
| 字段名 | 類型 | 說明 |
|---|---|---|
| startTime | LocalDateTime | 執行時間起(yyyy-MM-dd HH:mm:ss) |
| endTime | LocalDateTime | 執行時間止 |
| datasource | String | 資料來源名稱篩選 |
| event | String | 事件類型篩選 |
| keyword | String | 關鍵字篩選(SQL 文本等模糊匹配) |
SqlTraceRecord 字段說明(返回實體)
| 字段名 | 類型 | 說明 |
|---|---|---|
| id | Long | 記錄 ID |
| event | String | 事件類型 |
| sqlText | String | SQL 文本 |
| stackTrace | String | 呼叫堆疊 |
| datasource | String | 所屬資料來源 |
| executeCount | Integer | 執行次數 |
| avgTimeMs | Integer | 平均執行耗時(毫秒) |
| maxTimeMs | Integer | 最大執行耗時(毫秒) |
| executeTime | LocalDateTime | SQL 執行時間 |
| createdTime | LocalDateTime | 記錄創建時間 |
# SystemController
基礎路徑:/api/system
| 方法 | 路徑 | 函數 | 參數 | 返回類型 | 說明 |
|---|---|---|---|---|---|
| GET | /api/system/version | getVersion | Result<Map<String, String>> | 獲取版本資訊(currentVersion/buildTime/javaVersion) | |
| GET | /api/system/upgrades | getUpgradeHistory | Result<List<Map<String, Object>>> | 實例升級歷史列表(佔位實現,當前返回空列表) | |
| POST | /api/system/upgrade | upgrade | @RequestBody Map<String, Object> body | Result<Map<String, Object>> | 提交實例升級請求(佔位實現,返回 upgradeId/status/message) |
| POST | /api/system/restart | restart | Result<Map<String, Object>> | 重啟 AAS 伺服器,返回 status=RESTARTING | |
| GET | /api/system/restart-pending | getRestartPending | Result<Map<String, Object>> | 查詢待生效的配置變更(needsRestart 與 changes 列表) |
# ThreadDiagnosisController
基礎路徑:/api/monitor/thread-diagnosis
| 方法 | 路徑 | 函數 | 參數 | 返回類型 | 說明 |
|---|---|---|---|---|---|
| POST | /api/monitor/thread-diagnosis/start | start | @RequestBody ThreadDiagnosisStartRequest request | Result<Void> | 啟動線程診斷取樣(intervalSec 必填,1~3600 秒;maxDataMb 控制取樣資料上限) |
| POST | /api/monitor/thread-diagnosis/stop | stop | Result<Void> | 停止線程診斷取樣 | |
| POST | /api/monitor/thread-diagnosis/session-end | endSession | Result<Void> | 會話結束(跳走/關閉頁面/session 過期)時安靜停止監控並清理診斷任務,不生成資料檔案 | |
| GET | /api/monitor/thread-diagnosis/snapshot | getSnapshot | Result<Map<String, Object>> | 獲取當前線程診斷快照(線程列表及狀態資料) | |
| GET | /api/monitor/thread-diagnosis/thread/{id}/stack | getThreadStack | @PathVariable("id") long threadId | Result<Map<String, Object>> | 獲取指定線程的堆疊資訊 |
| POST | /api/monitor/thread-diagnosis/thread/{id}/stop | stopThread | @PathVariable("id") long threadId | Result<Void> | 停止指定線程 |
| POST | /api/monitor/thread-diagnosis/analyze | analyze | @RequestParam(defaultValue="live") String source | Result<Map<String, Object>> | 同步執行線程診斷分析(source 預設 live 即時資料) |
| POST | /api/monitor/thread-diagnosis/analyze/async | startAnalyzeJob | @RequestParam(defaultValue="live") String source | Result<Map<String, Object>> | 非同步啟動分析任務,返回 jobId |
| GET | /api/monitor/thread-diagnosis/analyze/async/{jobId} | getAnalyzeJob | @PathVariable("jobId") String jobId | Result<Map<String, Object>> | 查詢非同步分析任務進度/結果 |
| POST | /api/monitor/thread-diagnosis/analyze/async/{jobId}/cancel | cancelAnalyzeJob | @PathVariable("jobId") String jobId | Result<Void> | 取消非同步分析任務 |
| GET | /api/monitor/thread-diagnosis/export | exportData | @RequestParam(defaultValue="live") String source, @RequestParam(required=false) Long startTime, Long endTime, HttpServletResponse response | void | 匯出線程診斷取樣資料檔案(可指定時間範圍) |
| GET | /api/monitor/thread-diagnosis/export-report | exportReport | @RequestParam(defaultValue="live") String source, @RequestParam(defaultValue="html") String format, HttpServletResponse response | void | 匯出診斷分析報告(format 預設 html) |
| POST | /api/monitor/thread-diagnosis/import/probe | probeImport | @RequestParam("file") MultipartFile file | Result<Map<String, Object>> | 上傳線程診斷資料檔案並預檢(探測檔案內容/時間範圍) |
| POST | /api/monitor/thread-diagnosis/import/confirm | confirmImport | @RequestParam(required=false) Long startTime, Long endTime | Result<Map<String, Object>> | 確認匯入已預檢的診斷資料(可選裁剪時間範圍) |
| GET | /api/monitor/thread-diagnosis/imported | getImportedData | Result<Map<String, Object>> | 獲取當前已匯入的診斷資料 |
ThreadDiagnosisStartRequest 字段說明
| 字段名 | 類型 | 說明 |
|---|---|---|
| intervalSec | Integer | 取樣間隔(秒),必填,取值 1~3600 |
| maxDataMb | Long | 取樣資料大小上限(MB),1~100,達到後自動丟棄最早資料,預設 10 |
# ThreadPoolController
基礎路徑:/api/config/web/pools
| 方法 | 路徑 | 函數 | 參數 | 返回類型 | 說明 |
|---|---|---|---|---|---|
| GET | /api/config/web/pools | list | @RequestParam int page, int size, String name, Integer maxThreads, Integer priority | Result<PageResult<ThreadPool>> | 分頁查詢線程池列表,支援名稱/最大線程數/優先級過濾 |
| GET | /api/config/web/pools/{id} | get | @PathVariable Long id | Result<ThreadPool> | 按 ID 查詢線程池詳情,不存在則拋異常 |
| GET | /api/config/web/pools/defaults | getDefaults | Result<Map<String, Object>> | 獲取線程池預設參數(按 CPU 核數計算 minThreads 等預設值) | |
| POST | /api/config/web/pools | create | @RequestBody ThreadPool pool | Result<Void> | 新增線程池(校驗名稱唯一),需重啟生效,記審計 |
| PUT | /api/config/web/pools/{idOrName} | update | @PathVariable String idOrName, @RequestBody ThreadPool pool | Result<Void> | 按 ID 或名稱更新線程池(校驗名稱唯一),需重啟生效 |
| DELETE | /api/config/web/pools/{idOrName} | delete | @PathVariable String idOrName | Result<Void> | 按 ID 或名稱刪除線程池,需重啟生效,記審計 |
ThreadPool 字段說明
| 字段名 | 類型 | 說明 |
|---|---|---|
| name | String | 線程池名稱 |
| maxThreads | Integer | 最大線程數 |
| minThreads | Integer | 最小線程數 |
| maxIdleTime | Integer | 線程最大空閒時間(毫秒) |
| queueSize | Integer | 等待佇列大小 |
| priority | Integer | 線程優先級 |
| threadStepReclaim | Integer | 線程階梯回收開關/值 |
| threadStepSize | Integer | 線程階梯步長(每批創建線程數) |
| threadStepTime | Integer | 線程階梯時間間隔 |
| connectionAutoReclaim | String | 連線自動回收("true"/"false") |
| enabled | Integer | 是否啟用(0=停用 1=啟用) |
# ThreadTraceController
基礎路徑:/api/monitor/thread-trace
| 方法 | 路徑 | 函數 | 參數 | 返回類型 | 說明 |
|---|---|---|---|---|---|
| POST | /api/monitor/thread-trace/long/start | startLongTrace | @RequestBody LongTraceStartRequest request | Result<Void> | 啟動長請求線程追蹤(thresholdMs/intervalMs 均必填,否則 400) |
| POST | /api/monitor/thread-trace/long/stop | stopLongTrace | Result<Void> | 停止長請求線程追蹤 | |
| GET | /api/monitor/thread-trace/long/snapshot | getLongTraceSnapshot | Result<Map<String, Object>> | 獲取長請求追蹤快照(執行時長超過閾值的線程資料) |
LongTraceStartRequest 字段說明
| 字段名 | 類型 | 說明 |
|---|---|---|
| thresholdMs | Long | 閾值(毫秒),執行時長超過該值的請求判定為長請求,必填 |
| intervalMs | Long | 取樣頻率(毫秒),必填 |
# UpgradeHistoryController
基礎路徑:/api/system/upgrade-history
| 方法 | 路徑 | 函數 | 參數 | 返回類型 | 說明 |
|---|---|---|---|---|---|
| GET | /api/system/upgrade-history | list | PageQueryDTO query(page/size 分頁參數) | Result<PageResult<UpgradeHistory>> | 分頁查詢實例升級歷史記錄 |
UpgradeHistory 字段說明
| 字段名 | 類型 | 說明 |
|---|---|---|
| version | String | 升級到的版本號 |
| upgradeTime | LocalDateTime | 升級時間 |
| status | Integer | 狀態:0=失敗 1=成功 2=進行中 |
| note | String | 備註 |
# UserController
基礎路徑:/api/users
| 方法 | 路徑 | 函數 | 參數 | 返回類型 | 說明 |
|---|---|---|---|---|---|
| GET | /api/users | list | UserQueryDTO query(username/status/roleType/builtin 等過濾+分頁) | Result<PageResult<UserDTO>> | 分頁查詢用戶列表 |
| GET | /api/users/{id} | get | @PathVariable Long id | Result<UserDTO> | 按 ID 查詢用戶詳情 |
| POST | /api/users | create | @RequestBody UserDTO dto | Result<Void> | 創建用戶(Create 校驗分組,含初始密碼),記審計 |
| PUT | /api/users/{id} | update | @PathVariable Long id, @RequestBody UserDTO dto | Result<Void> | 更新用戶資訊,記審計 |
| DELETE | /api/users/{id} | delete | @PathVariable Long id | Result<Void> | 刪除單個用戶,記審計 |
| DELETE | /api/users/batch | deleteBatch | @RequestBody List<Long> ids | Result<Integer> | 批次刪除用戶,返回刪除數量 |
| POST | /api/users/{id}/status | toggleStatus | @PathVariable Long id, @RequestParam Integer status | Result<Void> | 啟用/停用用戶(status:0=停用 1=啟用) |
| POST | /api/users/{id}/unlock | unlock | @PathVariable Long id | Result<Void> | 解鎖用戶(清除登入鎖定狀態) |
| POST | /api/users/{id}/reset-password | resetPassword | @PathVariable Long id, @RequestBody Map<String, String> body(password) | Result<Void> | 重置用戶密碼 |
UserDTO 字段說明
| 字段名 | 類型 | 說明 |
|---|---|---|
| id | Long | 用戶 ID |
| username | String | 用戶名稱(字母/數字/下劃線/短橫線) |
| String | 郵箱 | |
| phone | String | 電話 |
| status | Integer | 狀態(0-2) |
| firstLogin | Integer | 是否首次登入 |
| classLevel | Integer | 密級標識 |
| roles | List | 角色編碼列表 |
| password | String | 創建用戶時的初始密碼(僅寫入,不序列化到響應) |
| builtin | Integer | 是否內建預設用戶(admin/secure/audit),僅響應字段 |
| otpEnabled | Integer | 是否啟用 OTP 雙因子認證,僅響應字段 |
| expireDate | LocalDateTime | 賬號過期時間,空表示永久有效 |
| createdTime | LocalDateTime | 創建時間 |
| description | String | 備註/說明 |
# UserPermissionController
基礎路徑:/api/users
| 方法 | 路徑 | 函數 | 參數 | 返回類型 | 說明 |
|---|---|---|---|---|---|
| GET | /api/users/{userId}/permission | getByUserId | @PathVariable Long userId | Result<UserPermissionDTO> | 獲取指定用戶的許可權配置(IP白名單/時間/密級/額外角色) |
| PUT | /api/users/{userId}/permission | saveOrUpdate | @PathVariable Long userId, @RequestBody UserPermissionDTO dto | Result<Void> | 儲存/更新用戶許可權配置,記審計(AUTH 操作) |
UserPermissionDTO 字段說明
| 字段名 | 類型 | 說明 |
|---|---|---|
| id | Long | 許可權配置記錄 ID |
| userId | Long | 用戶 ID |
| allowedIps | String | 允許訪問的 IP 白名單,多個用逗號分隔 |
| accessStartTime | String | 允許訪問的開始時間(HH:mm:ss) |
| accessEndTime | String | 允許訪問的結束時間(HH:mm:ss) |
| accessWeekdays | String | 允許訪問的星期,逗號分隔 1-7 |
| dataClassLevel | Integer | 資料密級(0=公開 1=內部 2=秘密 3=機密 4=絕密) |
| extraRoleCodes | String | 額外授予的角色編碼,逗號分隔 |
| role | String | 許可權分配角色(前端字段,對映到 extraRoleCodes) |
| ipWhitelist | String | IP 白名單(前端字段,對映到 allowedIps) |
| startTime | String | 開始訪問時間(前端字段,對映到 accessStartTime) |
| endTime | String | 結束訪問時間(前端字段,對映到 accessEndTime) |
| classLevel | Integer | 資料密級(前端字段,對映到 dataClassLevel) |
| timeLimitEnabled | Integer | 是否啟用時間限制 |
# VirtualHostController
基礎路徑:/api/config/web/hosts
| 方法 | 路徑 | 函數 | 參數 | 返回類型 | 說明 |
|---|---|---|---|---|---|
| GET | /api/config/web/hosts/all | listAll | Result<List<VirtualHost>> | 查詢全部虛擬主機(不分頁,供下拉選擇) | |
| GET | /api/config/web/hosts | list | @RequestParam int page, int size, String name, String alias, String docBase | Result<PageResult<VirtualHost>> | 分頁查詢虛擬主機列表 |
| GET | /api/config/web/hosts/{id} | get | @PathVariable Long id | Result<VirtualHost> | 按 ID 查詢虛擬主機詳情,不存在返回 404 |
| POST | /api/config/web/hosts | create | @RequestBody VirtualHost host | Result<Void> | 新增虛擬主機,需重啟生效,記審計 |
| PUT | /api/config/web/hosts/{idOrName} | update | @PathVariable String idOrName, @RequestBody VirtualHost host | Result<Void> | 按 ID 或名稱更新虛擬主機,需重啟生效 |
| DELETE | /api/config/web/hosts/{idOrName} | delete | @PathVariable String idOrName | Result<Void> | 按 ID 或名稱刪除虛擬主機,需重啟生效 |
| PUT | /api/config/web/hosts/{idOrName}/default | setDefault | @PathVariable String idOrName | Result<Void> | 將指定虛擬主機設為預設主機,需重啟生效 |
VirtualHost 字段說明
| 字段名 | 類型 | 說明 |
|---|---|---|
| name | String | 虛擬主機名稱 |
| domain | String | 域名 |
| alias | String | 別名 |
| docBase | String | 應用根目錄(docBase) |
| enabled | Integer | 是否啟用 |
| isDefault | Integer | 是否為預設主機 |
| serviceName | String | 所屬服務(Service)名稱 |
| logFile | String | 日誌檔案路徑 |
| accessIpWhitelist | String | 訪問 IP 白名單 |
| accessIpBlacklist | String | 訪問 IP 黑名單 |
| accessDomainWhitelist | String | 訪問域名白名單 |
| accessDomainBlacklist | String | 訪問域名黑名單 |
| accessTime | String | 訪問時間限制 |
| sso | String | 單點登入配置 |
| ssoHttpOnly | Integer | SSO Cookie 是否 HttpOnly |
| extraProps | String | 擴展屬性(自定義屬性串) |
# 附錄:HTTP 方法說明
| 方法 | 說明 |
|---|---|
| GET | 獲取資源 |
| POST | 創建資源 |
| PUT | 更新資源 |
| DELETE | 刪除資源 |
| PATCH | 部分更新資源 |
| REQUEST | 通用請求 |