Apusic文档中心
首页
  • 应用服务器 AAS
  • 负载均衡器 ALB
  • 分布式消息队列 ADMQ
  • 分布式缓存 AMDC
  • 分布式配置中心 ADCC
  • Java开发工具包软件 AJDK
  • 搜索引擎 ASE
  • 中间件云平台 ACP
  • 统一管理平台 AUMP
  • 云原生中间件管理 ACMP
  • DevOps平台 ADOP
  • 许可授权中心 ACLS
  • Copilot智能问答系统 ACS
  • 监控平台 AMP
  • 智能日志 AILP
  • 应用性能管理 AAPM
  • 智能告警 AAlarm
  • 金蝶Apusic AI 极光
  • 主数据管理 AMDM
  • 数据交换平台 ADXP
  • 企业服务总线 AESB
  • 数据智脑 ADPR
  • 服务治理 ASGP
  • 统一身份管理 AIDM
  • 标准模板
  • Markdown教程 (opens new window)
  • VuePress官方社区 (opens new window)
  • 帮助
贡献文档 (opens new window)
首页
  • 应用服务器 AAS
  • 负载均衡器 ALB
  • 分布式消息队列 ADMQ
  • 分布式缓存 AMDC
  • 分布式配置中心 ADCC
  • Java开发工具包软件 AJDK
  • 搜索引擎 ASE
  • 中间件云平台 ACP
  • 统一管理平台 AUMP
  • 云原生中间件管理 ACMP
  • DevOps平台 ADOP
  • 许可授权中心 ACLS
  • Copilot智能问答系统 ACS
  • 监控平台 AMP
  • 智能日志 AILP
  • 应用性能管理 AAPM
  • 智能告警 AAlarm
  • 金蝶Apusic AI 极光
  • 主数据管理 AMDM
  • 数据交换平台 ADXP
  • 企业服务总线 AESB
  • 数据智脑 ADPR
  • 服务治理 ASGP
  • 统一身份管理 AIDM
  • 标准模板
  • Markdown教程 (opens new window)
  • VuePress官方社区 (opens new window)
  • 帮助
贡献文档 (opens new window)
文档中心
  • 金蝶Apusic应用服务器

    • 产品白皮书
    • 产品更新说明
    • Product Whitepaper
    • 產品白皮書
    • V10.0.8SP12标准版

    • V10.0.8SP12标准版_繁體

    • V10.0.8SP12标准版_EN

      • Installation and Deployment
      • Quick Start
      • User Manual
      • Console User Manual
      • Command Line Operation Guide
      • Monitoring Metrics
      • API Documentation
      • Release Notes
    • V10.0.8SP11企业版

    • V10.0.8SP11标准版

    • V10.0.8SP10企业版

    • V10.0.8SP9企业版

    • V10.0.8SP9标准版

    • V10.0.8SP8企业版

    • V10.0.8SP8标准版

    • V10.0.8SP9智能安全版

    • V9.0.0SP9企业版

    • V9.0.0SP8企业版

    • V10.0.8SP8国际版

    • V10.0.10标准版

    • V10.0.10SP1企业版

    • V10.0.11标准版

    • 迁移工具V1.0

    • 金蝶Apusic应用迁移工具

  • 金蝶Apusic负载均衡器

  • 金蝶Apusic分布式消息队列

  • 金蝶Apusic分布式缓存

  • 金蝶Apusic分布式配置中心

  • 金蝶Apusic Java开发工具包软件

  • 金蝶Apusic全文检索

API Documentation

# AlertConfigController

Base Path: /api/alert-config

MethodPathFunctionParametersReturn TypeDescription
GET/api/alert-configgetConfigResult<AlertConfigDTO>Query alert configuration (switch/notification methods/threshold metrics)
PUT/api/alert-configsaveConfig@RequestBody AlertConfigDTO dtoResult<Void>Save alert configuration; captures changes before saving for audit comparison
POST/api/alert-config/restore-defaultsrestoreDefaultsResult<AlertConfigDTO>Restore alert configuration to defaults, with audit record

AlertConfigDTO Fields

Field Type Description
enabled Integer Alert master switch (0=off 1=on)
intervalMinutes Integer Alert interval (minutes, 1-527040)
emailEnabled Integer Email notification switch
emailRecipients String Recipient email addresses, multiple separated by semicolons
emailSmtpHost String SMTP server address
emailSmtpSsl Integer SMTP SSL switch
emailSmtpPort Integer SMTP port (1-65535)
emailSmtpUser String SMTP sender mailbox
emailSmtpPassword String SMTP password
snmpEnabled Integer SNMP notification switch
snmpVersion String SNMP version (v2c/v3)
snmpCommunity String SNMP community name
snmpAddress String SNMP target address
snmpSecurity String SNMPv3 security level
snmpUsername String SNMPv3 username
snmpAuthMethod String SNMPv3 authentication method
snmpAuthPassword String SNMPv3 authentication password
snmpCipher String SNMPv3 encryption algorithm
snmpPrivPassword String SNMPv3 encryption password
snmpSenderEngineId String SNMPv3 sender engine ID (read-only, for frontend display only)
platformEnabled Integer Alert platform notification switch
platformLevel String Alert level reported to the alert platform
platformUrl String Alert platform address (http/https)
metrics List Alert metric threshold configuration list (metricCode/threshold/consecutiveCount/unit)

# AppClassLibController

Base Path: /api/apps/{appId}/class-libs

MethodPathFunctionParametersReturn TypeDescription
GET/api/apps/{appId}/class-libslist@PathVariable Long appId, @RequestParam int page, int sizeResult<PageResult<Map<String, Object>>>Paged query of an application's class library (JAR packages in the lib directory) list
POST/api/apps/{appId}/class-libsupload@PathVariable String appId, @RequestParam MultipartFile fileResult<Void>Upload a JAR package to the application class library directory; the appId path segment accepts either a numeric ID or an application name (script replay)
DELETE/api/apps/{appId}/class-libsdelete@PathVariable String appId, @RequestParam String jarNameResult<Void>Delete the specified JAR package from the application class library

# AppIncrementController

Base Path: /api/apps/{appId}/increments

MethodPathFunctionParametersReturn TypeDescription
GET/api/apps/{appId}/incrementslist@PathVariable Long appId, @RequestParam int page, int sizeResult<PageResult<AppIncrement>>Paged query of an application's incremental update package list
POST/api/apps/{appId}/incrementsupload@PathVariable String appId, @RequestParam MultipartFile file, String descriptionResult<Long>Upload an incremental update package, returns the package ID; the appId path segment accepts either a numeric ID or an application name
DELETE/api/apps/{appId}/increments/{id}delete@PathVariable String appId, Long idResult<Void>Delete the specified incremental update package
POST/api/apps/{appId}/increments/{id}/applyapply@PathVariable String appId, Long idResult<Void>Apply the specified incremental update package to the application

# ApplicationController

Base Path: /api/apps

MethodPathFunctionParametersReturn TypeDescription
GET/api/appslistAppQueryDTO queryResult<PageResult<ApplicationDTO>>Paged query of application list (filter by name/context path/virtual host/status)
GET/api/apps/{id}get@PathVariable Application appResult<ApplicationDTO>Get application details by ID
GET/api/apps/{id}/urlsgetAppUrls@PathVariable Application appResult<List<AppUrlDTO>>Get the access URL list of the application
GET/api/apps/check-namecheckAppName@RequestParam String appName, String virtualHost, Long excludeIdResult<Boolean>Check whether the application name already exists (can exclude a specified ID)
GET/api/apps/check-contextcheckContextPath@RequestParam String contextPath, String virtualHost, Long excludeIdResult<Boolean>Check whether the context path already exists (can exclude a specified ID)
GET/api/apps/check-context-backupcheckContextPathForBackup@RequestParam String contextPath, String virtualHost, String appNameResult<Boolean>Check context path conflicts during backup restore
POST/api/appscreate@RequestBody ApplicationDTO dtoResult<Long>Create an application, returns the new application ID
PUT/api/apps/{id}update@PathVariable Application app, @RequestBody ApplicationDTO dtoResult<Void>Update application configuration (audit records before/after differences)
DELETE/api/apps/{id}delete@PathVariable Application app, @RequestParam boolean forceResult<Void>Undeploy/delete an application; force=true deletes forcibly (does not go to the recycle bin)
POST/api/apps/{id}/startstart@PathVariable Application appResult<Void>Start the application
POST/api/apps/{id}/stopstop@PathVariable Application appResult<Void>Stop the application
POST/api/apps/{id}/reloadreload@PathVariable Application appResult<Void>Reload the application
POST/api/apps/{id}/redeployredeploy@PathVariable Application app, @RequestPart ApplicationDTO dto, MultipartFile file, String localWarPath, String localDirPathResult<Void>Redeploy the application (supports uploading a war file or specifying a local server path)
POST/api/apps/{id}/deploydeploy@PathVariable Application app, @RequestParam MultipartFile file, String localWarPath, String localDirPathResult<Void>Deploy an application package (one of: war file / local war path / local directory path)
GET/api/apps/war-browsebrowseWarFiles@RequestParam String pathResult<ServerFileListResponse>Browse deployable war file directories on the server
GET/api/apps/backupsgetBackupsResult<List<Map<String, Object>>>Get the backup list of all applications
POST/api/apps/{id}/backupscreateBackup@PathVariable Application appResult<Void>Create a backup for the specified application
GET/api/apps/backups/{backupName}/configgetBackupConfig@PathVariable String backupNameResult<Map<String, Object>>Get the application configuration in the backup package
POST/api/apps/backups/{backupName}/restorerestoreBackup@PathVariable String backupName, @RequestBody ApplicationDTO dtoResponseEntity<Result<Void>>Restore an application from a backup; returns 409 on conflict
POST/api/apps/backups/{backupName}/restore-forcerestoreBackupForce@PathVariable String backupName, @RequestBody ApplicationDTO dtoResult<Void>Forcibly restore an application from a backup (overwrites the existing application)
GET/api/apps/backups/{backupName}/downloaddownloadBackup@PathVariable String backupNameResponseEntity<Resource>Download the backup package file
DELETE/api/apps/backups/{backupName}deleteBackup@PathVariable String backupNameResult<Void>Delete the backup package
GET/api/apps/recycledgetRecycledAppsAppQueryDTO queryResult<List<RecycledAppDTO>>Get the list of applications in the recycle bin
POST/api/apps/recycle/{fileName}/restorerestore@PathVariable String fileName, @RequestBody ApplicationDTO dtoResult<Void>Restore an application from the recycle bin
GET/api/apps/recycle/{fileName}/configgetRecycleArchiveConfig@PathVariable String fileNameResult<Map<String, Object>>Get the application configuration in the recycle bin archive
DELETE/api/apps/recycle/{fileName}/permanentpermanentlyDelete@PathVariable String fileNameResult<Void>Permanently delete an application in the recycle bin (irrecoverable)
DELETE/api/apps/externaldeleteExternal@RequestBody ExternalAppInfo infoResult<Void>Delete an externally deployed application (not deployed by the console)
POST/api/apps/external/backupscreateExternalBackup@RequestBody ExternalAppInfo infoResult<Map<String, Object>>Create a backup for an externally deployed application
POST/api/apps/external/redeployredeployExternal@RequestPart ExternalAppInfo info, MultipartFile file, String localWarPathResult<Void>Redeploy an external application
POST/api/apps/external/reloadreloadExternal@RequestBody ExternalAppInfo infoResult<Void>Reload an external application
POST/api/apps/external/redeploy-with-propsredeployExternalWithProps@RequestPart ExternalAppInfo info, ApplicationDTO dto, MultipartFile file, String localWarPathResult<Void>Redeploy an external application with configuration properties
GET/api/apps/recycle/configgetRecycleConfigResult<Map<String, Object>>Get recycle bin configuration (retention path/retention days, etc.)
PUT/api/apps/recycle/configupdateRecycleConfig@RequestBody Map<String, Object> configResult<?>Save recycle bin configuration; returns 400 with field errors on validation failure
GET/api/apps/backup/configgetBackupConfigResult<Map<String, Object>>Get backup configuration
PUT/api/apps/backup/configupdateBackupConfig@RequestBody Map<String, Object> configResult<?>Save backup configuration; returns 400 with field errors on validation failure

ApplicationDTO Fields

Field Type Description
id Long Application ID
appName String Application name
contextPath String Application context path
status Integer Application running status
classLoaderOrder String Class loading order
jspPrecompile Boolean Whether to precompile JSP
virtualHost String Owning virtual host
sessionManager String Session manager configuration
deployOrder Integer Deployment order
sharedLib String Shared library name
sharedLibId Long Shared library ID
sharedLibPriority String Shared library loading priority
deployTimeout Integer Deployment timeout (seconds)
classLevel Integer Classification level (secret/confidential/top secret)
description String Application description
deployTime String Deployment time
recycledTime String Recycle time
securityDomain String Security domain
deployProps Map<String, String> Deployment properties
managedByConsole Boolean Whether deployed by the console (false=externally deployed)
docBase String Application document root directory
deploySource String Deployment source: CONSOLE (deployed by console) / MANUAL_CONFIG (manual configuration) / AUTO_DEPLOY (auto-scan deployment)
originalVirtualHost String Original virtual host name before changing the virtual host (for migration)

AppQueryDTO Fields (inherits PageQueryDTO: page defaults to 1, size defaults to 20)

Field Type Description
appName String Application name (fuzzy query)
contextPath String Context path
virtualHost String Virtual host
status Integer Application status

# AuditLogController

Base Path: /api/audit/operation-logs

MethodPathFunctionParametersReturn TypeDescription
GET/api/audit/operation-logslistAuditLogQueryDTO queryResult<PageResult<AuditLogEntity>>Paged query of operation audit logs (filter by operator/event type/operation target/result/time range)
GET/api/audit/operation-logs/{id}getById@PathVariable Long idResult<AuditLogEntity>Get a single audit log by ID (i18n keys in description are translated according to the current Locale); returns 404 if not found
GET/api/audit/operation-logs/exportexportAuditLogQueryDTO query, HttpServletResponse responsevoid (application/zip)Export audit logs: export all records matching the query conditions, packaged as operation_audit.zip (containing operation_audit.csv with UTF-8 BOM)

AuditLogQueryDTO Fields (inherits PageQueryDTO: page defaults to 1, size defaults to 20)

Field Type Description
username String Operator username
operation String Event type (CREATE/EDIT/DELETE/START/STOP/AUTH/IMPORT/EXPORT/LICENSE/BACKUP)
target String Operation target
result String Operation result (SUCCESS/FAIL)
startTime String Start time
endTime String End time

# AuthController

Base Path: /api/auth

MethodPathFunctionParametersReturn TypeDescription
POST/api/auth/loginlogin@RequestBody LoginRequest request, HttpServletRequest servletRequestResult<LoginResponse>User login: AES-decrypts username and password, sequentially validates captcha, account status (locked/disabled/expired), access time window and IP whitelist, OTP, and email code; issues a JWT on success and records the login log
POST/api/auth/cli-logincliLogin@RequestBody LoginRequest request, HttpServletRequest servletRequestResult<LoginResponse>CLI login: same flow as login but does not validate the graphic captcha
POST/api/auth/logoutlogoutHttpServletRequest requestResult<Void>Logout: adds the current token to the blacklist and records the logout log
GET/api/auth/captcha-statusgetCaptchaStatusResult<Map<String, Object>>Get the graphic captcha switch status (enabled)
GET/api/auth/otp-statusgetOtpStatusResult<Map<String, Object>>Get the global switch status of OTP two-factor authentication
GET/api/auth/email-code/statusgetEmailCodeStatusResult<Map<String, Object>>Get the switch status of email code login verification
POST/api/auth/email-code/sendsendEmailCode@RequestBody Map<String, String> body (username)Result<Map<String, Object>>Send login email verification code, with a 60-second resend limit
POST/api/auth/otp/setupsetupOtp@RequestBody Map<String, String> bodyResult<Map<String, Object>>Generate an OTP secret and QR code for the currently logged-in user (secret, otpAuthUri, qrCodeDataUri)
POST/api/auth/otp/verify-setupverifyOtpSetup@RequestBody Map<String, String> body (secret, code)Result<Void>Verify the dynamic code and complete OTP binding
POST/api/auth/otp/disabledisableOtp@RequestBody Map<String, String> body (code)Result<Void>Disable OTP for the current user (requires entering the current dynamic code for confirmation)
PUT/api/auth/profileupdateProfile@RequestBody Map<String, String> body (phone/email/description)Result<Void>Update the personal information of the currently logged-in user
GET/api/auth/memeResult<Map<String, Object>>Get current logged-in user information (roles, classification level, contact info, session timeout, resource code list, etc.)

LoginRequest Fields

Field Type Description
username String Username (AES-encrypted in transit, decrypted on the server)
password String Password (AES-encrypted in transit, decrypted on the server)
captchaKey String Graphic captcha key
captchaCode String Graphic captcha answer
otpCode String OTP dynamic code
otpSecret String OTP secret (issued by the backend on first binding and echoed by the frontend)
emailCode String Email verification code

LoginResponse Fields

Field Type Description
token String JWT access token
tokenType String Token type, fixed as Bearer
username String Login username
roles List User role code list
firstLogin boolean Whether this is the first login (forced password change required)
passwordExpired boolean Password has expired and must be changed
requireOtp boolean Whether OTP verification is globally required
otpEnabled boolean Whether the current user has bound OTP
requireEmailCode boolean Whether this login requires an email verification code
emailCodeEnabled boolean Whether the email verification code feature is enabled
otpQrDataUri String QR code base64 dataUri for first-time OTP binding
otpSecret String OTP secret for first-time binding (echoed back on the second submission)
passwordExpireWarning boolean Password expiring soon warning (within the remaining 7 days)
resources List List of resource codes owned by the user (for frontend menu permissions)

# BaselineCheckController

Base Path: /api/baseline

MethodPathFunctionParametersReturn TypeDescription
GET/api/baseline/ruleslistRulesResult<String>List all baseline check rules (XML/JSON string)
GET/api/baseline/rules/{id}getRule@PathVariable String idResult<String>Get a single rule's content by rule ID (id allows only letters, digits, underscores and hyphens, otherwise 400)
POST/api/baseline/rulessaveRule@RequestBody String ruleXmlResult<String>Add a baseline check rule (raw rule XML as the input)
PUT/api/baseline/rules/{id}updateRule@PathVariable String id, @RequestBody String ruleXmlResult<String>Update the rule with the specified ID (saves the entire rule XML)
DELETE/api/baseline/rules/{id}deleteRule@PathVariable String idResult<String>Delete the baseline rule with the specified ID
PUT/api/baseline/rules/{id}/enabledsetRuleEnabled@PathVariable String id, @RequestBody EnabledRequest requestResult<String>Enable/disable the specified baseline rule
GET/api/baseline/scriptreadScript@RequestParam String fileNameResult<String>Read the content of a check script file
POST/api/baseline/scriptsaveScript@RequestParam String fileName, @RequestBody String contentResult<String>Save a check script file
POST/api/baseline/checksstartCheck@RequestBody StartCheckRequest requestResult<String>Manually trigger a baseline check, returns the task ID (empty ruleIds means all rules)
GET/api/baseline/checks/{taskId}pollTask@PathVariable String taskIdResult<String>Poll the execution progress/result of a check task
GET/api/baseline/reportslistReportsReportQuery query (binds query parameters: name/overall/startTime/endTime/page/size)Result<PageResult<BaselineReport>>Paged query of baseline check report history
GET/api/baseline/reports/{id}getReport@PathVariable Long idResult<BaselineReport>Get details of a single baseline report
DELETE/api/baseline/reports/{id}deleteReport@PathVariable Long idResult<Void>Delete a single baseline report
DELETE/api/baseline/reportsdeleteReports@RequestBody List<Long> idsResult<Void>Batch delete baseline reports
GET/api/baseline/reports/{id}/downloaddownloadReport@PathVariable Long id, @RequestParam(required=false) String formatResponseEntity<ByteArrayResource>Download a single report file (format optional, e.g. pdf/html, returned as an attachment stream)
POST/api/baseline/reports/exportexportReports@RequestBody List<Long> idsResponseEntity<ByteArrayResource>Package multiple reports into a ZIP for export and download
GET/api/baseline/settingsgetSettingsResult<String>Read all baseline check configuration items
PUT/api/baseline/settingssaveSetting@RequestBody ConfigEntry entryResult<String>Modify a single baseline configuration item; cron/master switch changes publish events for hot-reloading scheduled tasks
GET/api/baseline/report-configgetReportConfigResult<String>Read report-related configuration (same as getSettings)
PUT/api/baseline/report-configsaveReportConfig@RequestBody ConfigEntry entryResult<String>Modify a report-related configuration item

StartCheckRequest Fields

Field Type Description
ruleIds List List of rule IDs to execute; empty means execute all rules

EnabledRequest Fields

Field Type Description
enabled boolean Rule enabled status (true enable / false disable)

ReportQuery Fields

Field Type Description
name String Report name fuzzy query
overall String Filter by report overall conclusion (pass/fail, etc.)
startTime LocalDateTime Check time from (ISO datetime format)
endTime LocalDateTime Check time to
page int Page number, default 1
size int Page size, default 10

ConfigEntry Fields

Field Type Description
key String Configuration item key (e.g. baseline.schedule.cron, baseline.enabled)
value String Configuration item value

BaselineReport Fields (returned entity, inherits BaseEntity common fields id/createdTime/updatedTime/deleted)

Field Type Description
name String Report name
instance String Target instance identifier of the check
checkTime LocalDateTime Check execution time
overall String Overall conclusion (e.g. PASS/FAIL)
passCount Integer Number of passed items
minorCount Integer Number of minor issues
generalCount Integer Number of general issues
severeCount Integer Number of severe issues
ruleCount Integer Total number of rules involved in the check
reportFile String Report file storage path
format String Report file format
reportJson String Report detail JSON content
triggerType String Trigger type (MANUAL / SCHEDULED)
size Long Report file size (bytes); populated from the actual file at query time, not a database field

# CaptchaController

Base Path: /api/auth

MethodPathFunctionParametersReturn TypeDescription
GET/api/auth/captchagetCaptchaResult<Map<String, String>>Generate a graphic captcha, returns the key and base64 image
GET/api/auth/captcha-testgetCaptchaTest@RequestParam String keyResult<Map<String, String>>Test helper endpoint: get the captcha plaintext by key; only enabled in automated test environments (aas.security.captcha.test-enabled), Do not enable this in the production environment, otherwise the CAPTCHA mechanism will become ineffective

# CertificateStoreController

Base Path: /api/config/web/certs

MethodPathFunctionParametersReturn TypeDescription
GET/api/config/web/certslist@RequestParam int page, int size, String name, String storeTypeResult<PageResult<CertificateStore>>Paged query of certificate store list (password field returned masked with 15 asterisks); storeType supports only keystore/truststore
GET/api/config/web/certs/{id}get@PathVariable Long idResult<CertificateStore>Get certificate store details by ID (password returned masked); returns 404 if not found
POST/api/config/web/certscreate@RequestBody CertificateStoreDTO dtoResult<Long>Create a certificate store, returns the new record ID
PUT/api/config/web/certs/{idOrName}update@PathVariable String idOrName, @RequestBody CertificateStoreDTO dtoResult<Void>Update a certificate store by ID or name
DELETE/api/config/web/certs/{idOrName}delete@PathVariable String idOrNameResult<Void>Delete a certificate store by ID or name
GET/api/config/web/certs/{id}/entrieslistEntries@PathVariable Long id, @RequestParam String passwordResult<List<CertEntryDTO>>List certificate entries in the store (optional password to unlock)
DELETE/api/config/web/certs/{idOrName}/entries/{alias}deleteEntry@PathVariable String idOrName, String alias, @RequestParam String passwordResult<Void>Delete the certificate entry with the specified alias from the store
POST/api/config/web/certs/{idOrName}/import-entriesimportEntries@PathVariable String idOrName, @RequestParam MultipartFile file, String sourcePassword, String aliases, String targetPassword, String targetAlias, String entryPasswordResult<Void>Import entries from an uploaded certificate store file (optional alias filtering and target alias/password)
POST/api/config/web/certs/{idOrName}/import-pemimportPem@PathVariable String idOrName, @RequestParam String content, String alias, String targetPassword, String entryPassword, boolean isPrivateKeyResult<Void>Import a certificate or private key by pasting PEM content (isPrivateKey marks a private key)
POST/api/config/web/certs/{idOrName}/importimportStore@PathVariable String idOrName, @RequestParam MultipartFile fileResult<Void>Import an entire certificate store file (overwrite and replace)
GET/api/config/web/certs/{id}/downloaddownload@PathVariable Long idResponseEntity<Resource>Download the certificate store file; returns 404 if the file does not exist

CertificateStoreDTO Fields

Field Type Description
id Long Certificate store ID
name String Certificate store name (required on create, max 64 characters, letters/digits/underscores/hyphens/dots only)
storeType String Certificate store purpose (required on create, keystore or truststore)
type String Certificate store type (required on create, JKS or PKCS12)
password String Certificate store password (supports ENCRYPT* ciphertext, max 128/256 characters)
description String Description (max 255 characters)
enabled Integer Whether enabled

# ClassAnalysisController

Base Path: /api/class-analysis

MethodPathFunctionParametersReturn TypeDescription
POST/api/class-analysis/uploadupload@RequestParam("file") MultipartFile fileResult<Map<String, Object>>Upload a file to be analyzed (jar/war, etc.), returns filePath/fileName/fileSize
POST/api/class-analysis/startstart@RequestBody ClassAnalysisStartRequest reqResult<Map<String, Object>>Start a class analysis task, returns recordId (analysis record ID)
GET/api/class-analysis/records/{id}getRecord@PathVariable Long idResult<ClassAnalysisRecordDTO>Query details of a single class analysis record (including the issue list)
GET/api/class-analysis/recordslistRecordsClassAnalysisRecordQuery q (binds query parameters: startTime/endTime/target/appOrFileName/page/pageSize)Result<PageResult<ClassAnalysisRecordDTO>>Paged query of class analysis history records
DELETE/api/class-analysis/records/{id}deleteRecord@PathVariable Long idResult<Void>Delete the specified class analysis record
GET/api/class-analysis/records/{id}/exportexportReport@PathVariable Long idResponseEntity<byte[]>Render the analysis record as a PDF report for download
GET/api/class-analysis/deployed-appslistDeployedApps@RequestParam(required=false) String keyword, @RequestParam(defaultValue="1") int page, @RequestParam(defaultValue="20") int pageSizeResult<PageResult<AppOptionDTO>>Paged query of deployed application list (for selecting the analysis target)

ClassAnalysisStartRequest Fields

Field Type Description
name String Analysis task name
target String Analysis target type (e.g. uploaded file / deployed application)
appId Long Target application ID (fill in when analyzing a deployed application)
uploadFilePath String Storage path of the uploaded file (fill in when analyzing an uploaded file)
scope String Analysis scope
checkConflict Boolean Whether to perform class conflict check
checkRedundant Boolean Whether to perform redundant class check

# ClassLoaderController

Base Path: /api/classloader

MethodPathFunctionParametersReturn TypeDescription
GET/api/classloader/treegetClassLoaderTreeResult<Map<String, Object>>Get the class loader tree (data.classLoaders is a tree-structured list of ClassLoaderNode)
GET/api/classloader/detail/{id}getClassLoaderDetail@PathVariable String idResult<ClassLoaderDetail>Get class loader details by ID (class name, instance, hash, class path, etc.)
GET/api/classloader/searchsearchClass@RequestParam String classNameResult<List<ClassSearchResult>>Search by class name for how a class is loaded across class loaders (name/status/owning application/loader/location)

ClassLoaderNode Fields

Field Type Description
id String Node unique identifier
name String Class loader display name
className String Full name of the class loader implementation class
instance String Instance identifier
hash String Instance hash
app String Owning application
isAppLoader boolean Whether it is an application class loader
paths List Class search path list
children List Child class loader nodes

# CracController

Base Path: /api/config/jvm/crac

MethodPathFunctionParametersReturn TypeDescription
GET/api/config/jvm/crac/env-checkenvCheckResult<CracEnvCheckReport>Synchronously run 7 CRaC environment compatibility checks (triggered when the CRaC switch is turned on)
GET/api/config/jvm/crac/statusstatusResult<CracStatusDTO>Get the enabled/disabled linkage status of the "Make Image" button: image making is allowed only when enabled and saved + no pending restart + current JVM supports CRaC + the process is not in a restored state + the runtime directory matches the fixed value; reason values: notEnabled/pendingRestart/notCracJdk/restored/dirMismatch; also returns the crac.log path
POST/api/config/jvm/crac/imagesmakeImage@RequestBody CracMakeImageRequest requestResult<Void>Make a CRaC image: after validation passes, spawns a detached helper to asynchronously complete image generation and server startup (see logs/crac.log for results); returns business code 409 when image data already exists in the checkpoint directory, retry with force=true after frontend confirmation

CracMakeImageRequest Fields

Field Type Description
name String Image name (required, letters/digits/underscores/hyphens/dots only, max 64)
desc String Image description (optional, max 200)
force boolean Whether to forcibly overwrite when image data already exists in the checkpoint directory

# DashboardController

Base Path: /api/dashboard

MethodPathFunctionParametersReturn TypeDescription
GET/api/dashboard/overviewgetOverviewResult<DashboardOverviewDTO>Get dashboard home overview data (system statistics, application status, quick info, etc.)

# DatasourceController

Base Path: /api/resources/datasources

MethodPathFunctionParametersReturn TypeDescription
GET/api/resources/datasourceslistDatasourceQueryDTO queryResult<PageResult<Datasource>>Paged query of datasource list
GET/api/resources/datasources/{id}get@PathVariable Long idResult<Datasource>Get datasource details by ID
POST/api/resources/datasources (JSON)createByJson@Valid @RequestBody Datasource dsResult<Datasource>Create a datasource via JSON (using an already uploaded driver path)
POST/api/resources/datasources (multipart)create@Valid @RequestPart Datasource ds, MultipartFile driverFile, boolean overwriteResult<Datasource>Create a datasource via multipart, can upload a driver package at the same time (overwrite controls overwriting a driver with the same name)
PUT/api/resources/datasources/{idOrName}update@PathVariable String idOrName, @Valid @RequestBody Datasource dsResult<Void>Update a datasource by ID or name
DELETE/api/resources/datasources/{idOrName}delete@PathVariable String idOrNameResult<Void>Delete a datasource by ID or name
POST/api/resources/datasources/{idOrName}/statustoggleStatus@PathVariable String idOrName, @RequestParam Integer statusResult<Void>Enable/disable a datasource (status allows only 0 or 1)
POST/api/resources/datasources/pingpingByParams@RequestBody Datasource dsResult<Map<String, Object>>Test datasource connectivity with the given parameters (url is required)
POST/api/resources/datasources/{idOrName}/pingping@PathVariable String idOrNameResult<Map<String, Object>>Test connectivity of an existing datasource
POST/api/resources/datasources/{idOrName}/driveruploadDriver@PathVariable String idOrName, @RequestParam MultipartFile driverFile, boolean overwriteResult<Void>Upload a JDBC driver package for the datasource
GET/api/resources/datasources/driver-existscheckDriverExists@RequestParam String filenameResult<Map<String, Object>>Check whether a driver package with the same name already exists in the driver directory (pre-upload check)
POST/api/resources/datasources/check-driver-pathcheckDriverPath@RequestBody Map<String, String> body (driverPath)Result<Map<String, Object>>Check whether the specified driver path exists

Datasource Fields (create/update request body, only main business fields listed)

Field Type Description
name String Datasource name (max 128 characters)
jndiName String JNDI name
dbType String Database type
driverClass String JDBC driver class name (max 128 characters)
url String Connection URL (max 500 characters)
username String Connection username
password String Connection password
maxConnections Integer Maximum connections (0-10000)
initialConnections Integer Initial connections (0-10000)
maxWaitMs Integer Maximum wait time for acquiring a connection (milliseconds, -1 means wait indefinitely)
validationQuery String Connection validation SQL
classLevel Integer Classification level
status Integer Status
driverJarPath String Driver JAR path
driverPath String Driver path
slowSqlMs Integer Slow SQL threshold (milliseconds)
leakDetectionThresholdMs Integer Connection leak detection threshold (milliseconds)
suspectTimeoutMs Integer Suspected leak determination timeout (milliseconds)
testOnBorrow Integer Whether to validate when borrowing a connection (0/1)
testOnReturn Integer Whether to validate when returning a connection (0/1)
testWhileIdle Integer Whether to validate while idle (0/1)
testOnConnect Integer Whether to validate when establishing a connection (0/1)
resourceType String Resource type
host String Host name
port Integer Port number (1-65535)
databaseName String Database name
customProperties String Custom properties
idleTimeoutMs Integer Idle timeout (milliseconds)
idleCheckPeriodMs Integer Idle check period (milliseconds)
maxCheckConnections Integer Maximum checked connections
minIdle Integer Minimum idle connections
maxIdle Integer Maximum idle connections
validationIntervalMs Integer Connection validation interval (milliseconds)
validationTimeoutSeconds Integer Validation timeout (seconds, 0-3600)
maxLifetimeMs Integer Maximum connection lifetime (milliseconds)
leakRecover Integer Whether to reclaim leaked connections (0/1)
connectionAutoReclaim Integer Automatic connection reclaim (0/1)
removeAbandonedOnMaintenance Integer Remove abandoned connections during maintenance (0/1)
logAbandoned Integer Log abandoned connections (0/1)
abandonWhenPercentageFull Integer Abandon percentage threshold (0-100)
autoCommit Integer Auto commit (0/1)
sqlTraceEnabled Integer SQL trace switch (0/1)
failedSqlAlertEnabled Integer Failed SQL alert switch (0/1)
haProbeEnabled Integer HA probe switch (0/1)

# HttpChannelController

Base Path: /api/config/web/channels

MethodPathFunctionParametersReturn TypeDescription
GET/api/config/web/channelslist@RequestParam int page, int size, String name, String protocol, Integer enabledResult<PageResult<HttpChannel>>Paged query of HTTP channel list
GET/api/config/web/channels/{id}get@PathVariable Long idResult<HttpChannel>Get HTTP channel details by ID; returns 404 if not found
POST/api/config/web/channelscreate@RequestBody HttpChannel channelResult<Void>Add an HTTP channel (requires restart to take effect)
PUT/api/config/web/channels/{idOrName}update@PathVariable String idOrName, @RequestBody HttpChannel channelResult<Void>Update an HTTP channel by ID or name (requires restart to take effect)
DELETE/api/config/web/channels/{idOrName}delete@PathVariable String idOrNameResult<Void>Delete an HTTP channel by ID or name (requires restart to take effect)
GET/api/config/web/channels/cipher-suitesgetSupportedCipherSuitesResult<List<String>>Get the list of strong cipher suites supported by the JVM (weak CBC/RSA suites filtered out)

HttpChannel Fields (@RequestBody, many fields, summarized by group)

Field Type Description
name String Channel name
protocol String Protocol (HTTP/HTTPS)
host String Listening host
port Integer Listening port
executor String Associated thread pool executor name
enabled Integer Whether enabled
sslEnabled Integer Whether SSL is enabled
redirectPort Integer Redirect port
acceptCount Integer Waiting queue length
connectionTimeout Integer Connection timeout (milliseconds)
proxyName / proxyPort String / Integer Reverse proxy host name/port
receiveBufferSize / sendBufferSize Integer Receive/send buffer size
processorCache Integer Processor cache size
maxConnections Integer Maximum connections
tcpNoDelay Integer Whether to enable TCP_NODELAY
maxKeepAliveRequests / keepAliveTimeout Integer Maximum requests per keep-alive connection/timeout
useIPVHosts Integer Whether to match virtual hosts by IP
longThreadEnabled and other longThread* - Long thread detection switch and threshold/period/log directory
sdosEnabled and other sdos* - Slow denial of service (SDoS) protection switch, mode, thresholds, blacklist TTL, etc.
generalProperties String General custom properties
gracefulStopAwaitMillis Integer Graceful stop wait time (milliseconds)
uriEncoding / responseCharacterEncoding String URI/response character encoding
enableLookups Integer Whether DNS reverse lookup is allowed
compression and other compression* - Response compression switch, compressible MIME types, minimum compression size
httpTrace Integer HTTP access trace switch
maxPostSize / maxParameterCount / maxHeaderCount / maxHttpHeaderSize Integer Limits on POST size/parameter count/header count and size
poweredBy Integer Whether to show the Server response header
disableUploadTimeout / connectionUploadTimeout Integer Upload timeout configuration
useBodyEncodingForURI / asyncTimeout - URI encoding source / async request timeout
responseHeaders String Custom response headers
gmEnabled Integer Chinese cryptography (GM) SSL switch
clientAuth String SSL client authentication mode
keyPassword / certificateFormat / tlsProtocols / sslProtocol String SSL key password/certificate format/TLS protocol versions
certificateAlias String Certificate alias
keystorePath / keystorePassword String Keystore path/password
truststorePath / truststorePassword / truststoreType String Truststore path/password/type
sslCipherSuites String SSL cipher suite list
certificateType String Certificate type (JSON property name type)
certificateCustom / keystoreName / keystoreEntry / truststoreName / truststoreEntry - Certificate store reference mode and entries
http2Enabled and other http2* - HTTP/2 switch and compression, concurrent streams, header/frame size, read/write timeouts, etc.
http2Properties String HTTP/2 custom properties

# InspectionController

Base Path: /api/inspection/reports

MethodPathFunctionParametersReturn TypeDescription
GET/api/inspection/reportslist@RequestParam(required=false) String name, String status, LocalDateTime startTime, LocalDateTime endTime, @RequestParam(defaultValue="1") int page, @RequestParam(defaultValue="10") int sizeResult<PageResult<InspectionReportDTO>>Paged query of inspection report list (time format yyyy-MM-dd HH:mm:ss)
GET/api/inspection/reports/has-runninghasRunningResult<Boolean>Query whether there is an inspection task currently running
GET/api/inspection/reports/{id}get@PathVariable Long idResult<InspectionReportDTO>Get details of a single inspection report (including summary, instance list, baseline items, monitor data); returns 404 if not found
GET/api/inspection/reports/{id}/statusstatus@PathVariable Long idResult<String>Query the execution status of an inspection report (RUNNING/SUCCESS/FAILED, etc.)
GET/api/inspection/reports/{id}/summarysummary@PathVariable Long idResult<InspectionReportDTO.InspectionSummaryDTO>Get the report summary (counts of CPU/memory/heap/disk exceeding 80%)
POST/api/inspection/reportstrigger@RequestBody @Valid InspectionTriggerDTO dtoResult<InspectionReportDTO>Trigger a new inspection, returns the report (dto.timeoutSeconds is the collection timeout in seconds)
POST/api/inspection/reports/{id}/rerunrerun@PathVariable Long idResult<InspectionReportDTO>Re-run an inspection based on a historical report
GET/api/inspection/reports/{id}/downloaddownload@PathVariable Long idResponseEntity<Resource>Download the inspection report ZIP package (including all snapshot files)
DELETE/api/inspection/reports/{id}delete@PathVariable Long idResult<Void>Delete the specified inspection report
GET/api/inspection/reports/{id}/snapshots/{type}snapshotText@PathVariable Long id, @PathVariable String typeResult<String>View the text content of a specified type of system snapshot (jstack/lsof/netstat/top) in the report online
GET/api/inspection/reports/{id}/snapshots/{type}/downloaddownloadSnapshot@PathVariable Long id, @PathVariable String typeResponseEntity<Resource>Download the specified type of snapshot XML file

InspectionTriggerDTO Fields

Field Type Description
timeoutSeconds Integer Inspection collection timeout (seconds), required, 1~172800

InspectionReportDTO Fields (response DTO)

Field Type Description
id Long Report ID
name String Report name
timeoutSeconds Integer Collection timeout in seconds
status String Execution status
startedAt LocalDateTime Start time
finishedAt LocalDateTime Finish time
createdTime LocalDateTime Creation time
summary InspectionSummaryDTO Report summary (returned only by the detail endpoint)
instances List Inspection instance list (returned only by the detail endpoint)
baselineItems List Security baseline check item list
monitorData Map<String, Object> Monitor data (applications/HTTP channels/datasources/thread pools/OS/JVM)
snapshotStatuses Map<String, SnapshotStatus> System snapshot collection status (key: jstack/lsof/netstat/top), including status (OK/NOT_INSTALLED/FALLBACK/SKIPPED/FAILED/TIMEOUT) and message

# InvokeChainTraceController

Base Path: /api/monitor/invoke-chain

MethodPathFunctionParametersReturn TypeDescription
GET/api/monitor/invoke-chain/recordslistRecords@RequestParam(required=false) LocalDateTime startTime, LocalDateTime endTime, String status, Long minSize, @RequestParam(defaultValue="1") int page, @RequestParam(defaultValue="5") int sizeResult<PageResult<InvokeChainTrace>>Paged query of invocation chain trace history records (time format yyyy-MM-dd HH:mm:ss)
DELETE/api/monitor/invoke-chain/records/{id}deleteRecord@PathVariable Long idResult<Void>Delete the specified trace record
GET/api/monitor/invoke-chain/settingsgetSettingsResult<Map<String, Object>>Get invocation chain analysis configuration (including apmHome, etc.)
PUT/api/monitor/invoke-chain/settings/apm-homesaveApmHome@RequestBody Map<String, String> body (takes the apmHome key)Result<Map<String, Object>>Save the APM agent installation directory (apmHome); requires restart to take effect
POST/api/monitor/invoke-chain/trace/startstartTrace@RequestBody @Valid InvokeChainTraceStartRequest requestResult<Map<String, Object>>Start invocation chain tracing (parameters such as cost threshold/package filtering)
POST/api/monitor/invoke-chain/trace/stopstopTraceResult<Map<String, Object>>Stop the current invocation chain trace
GET/api/monitor/invoke-chain/trace/statusstatusResult<Map<String, Object>>Query the trace running status
GET/api/monitor/invoke-chain/records/{id}/xmldownloadXml@PathVariable Long idResponseEntity<Resource>Download the trace result XML file
GET/api/monitor/invoke-chain/records/{id}/flame-graphflameGraph@PathVariable Long idResponseEntity<Resource>Generate and download the flame graph HTML file of the record

InvokeChainTraceStartRequest Fields

Field Type Description
cost Long Minimum request cost (milliseconds), required, positive integer
methodMinCost Long Minimum method cost (milliseconds), required, positive integer and must be less than cost
excPkgs String Excluded package names, multiple separated by commas (no spaces allowed)
incPkgs String Included package names, multiple separated by commas (no spaces allowed)
appContext String Target application context path (e.g. /myapp), optional; empty means no application filtering
deadline LocalDateTime Trace deadline (yyyy-MM-dd HH:mm:ss), optional; empty means no automatic stop

InvokeChainTrace Fields (returned entity, inherits BaseEntity common fields id/createdTime/updatedTime/deleted)

Field Type Description
startTime LocalDateTime Trace start time
endTime LocalDateTime Trace end time
status String Status: SUCCESS / FAILED
params String Trace parameter snapshot JSON (cost/methodMinCost/incPkgs/excPkgs/appContext/deadline)
fileName String Trace result XML file name (used for download)
filePath String Absolute path of the trace result XML file (path on the machine where the agent resides)
dataSize Long Trace result XML data size (bytes)
errorMsg String Failure/exception information

# JmxConfigController

Base Path: /api/config/jmx

MethodPathFunctionParametersReturn TypeDescription
GET/api/config/jmxgetConfigResult<JmxConfig>Get JMX configuration (keyStorePassword/keyPassword returned masked with asterisks)
GET/api/config/jmx/cipher-suitesgetSupportedCipherSuitesResult<List<String>>Get the list of strong cipher suites supported by the JVM (weak suites filtered out)
PUT/api/config/jmxsaveConfig@RequestBody JmxConfig configResult<Void>Save JMX configuration (string fields trimmed, requires restart to take effect)

JmxConfig Fields

Field Type Description
enabled Integer Whether to enable JMX
host String JMX listening host
port Integer JMX listening port
authenticate Integer Whether to enable authentication
passwordFile String Password file path
accessFile String Access control file path
sslEnabled Integer Whether to enable SSL
clientAuth Integer Whether client certificate authentication is required
keyStoreFile String Keystore file path
keyPassword String Key password
keyStorePassword String Keystore password
keyStoreType String Keystore type
trustStoreFile String Truststore file path
trustStorePassword String Truststore password
trustStoreType String Truststore type
enabledCipherSuites String Enabled cipher suite list
certificateCustom Integer Whether to use a custom certificate store reference
keyStoreName String Keystore name (certificate store reference)
trustStoreName String Truststore name (certificate store reference)
keyStoreEntry String Keystore certificate entry alias

# JndiResourceController

Base Path: /api/resources/jndi

MethodPathFunctionParametersReturn TypeDescription
GET/api/resources/jndilistPageQueryDTO queryResult<PageResult<JndiResource>>Paged query of JNDI resource list
GET/api/resources/jndi/{id}get@PathVariable Long idResult<JndiResource>Get JNDI resource details by ID; returns 404 if not found
POST/api/resources/jndicreate@RequestBody JndiResourceDTO dtoResult<Void>Create a JNDI resource
PUT/api/resources/jndi/{id}update@PathVariable Long id, @RequestBody JndiResourceDTO dtoResult<Void>Update a JNDI resource
DELETE/api/resources/jndi/{id}delete@PathVariable Long idResult<Void>Delete a JNDI resource
POST/api/resources/jndi/{id}/statustoggleStatus@PathVariable Long id, @RequestParam Integer statusResult<Void>Enable/disable a JNDI resource (status can only be 0 or 1)

JndiResourceDTO Fields

Field Type Description
jndiName String JNDI name (required on create, max 256 characters)
resourceType String Resource type (required on create)
factoryClass String Fully qualified factory class name (required on create, max 512 characters)
properties String Custom properties (JSON object string, max 65536 characters)
description String Resource description (max 256 characters)

# JvmConfigController

Base Path: /api/config/jvm

MethodPathFunctionParametersReturn TypeDescription
GET/api/config/jvmgetConfigResult<JvmConfig>Get JVM configuration
PUT/api/config/jvmsaveConfig@RequestBody JvmConfig configResult<?>Save JVM configuration: validates heap size (Xms<=Xmx, positive integers), metaspace (-1 or positive, initial<=max), JVM option format (must start with -D/-X/-XX:/-javaagent: and not be duplicated), native library path existence, and debug option format; when CRaC is enabled, validates that fdPolicy is required and is an existing file. On 400, data carries field names such as cracFdPolicy for frontend display. Requires restart to take effect

JvmConfig Fields

Field Type Description
jdkPath String JDK path
javaVersion String Java version
xms String Minimum heap (MB, positive integer)
xmx String Maximum heap (MB, not less than xms)
xmn String Young generation size
permSize / maxPermSize String Initial/maximum permanent generation size (legacy configuration compatibility)
metaspaceSize String Initial metaspace size (-1 or positive integer)
maxMetaspaceSize String Maximum metaspace size (-1 or positive integer, not less than the initial value)
gcType String Garbage collector type
gcLogPath String GC log path
debugEnabled Integer Whether to enable remote debugging
debugOptions String Debug options (only tokens starting with -D/-X/-XX:/-agentlib: are allowed)
nativeLibraryPath String Native library path (multiple paths separated by the path separator, all must exist)
jvmOptions String Additional JVM options (one per line, starting with -D/-X/-XX:/-javaagent: and not duplicated)
oomAction String OOM handling policy
cracEnabled Integer Whether to enable the CRaC feature
cracCheckpointDir String CRaC checkpoint directory (fixed by the server, request value ignored)
cracFdPolicy String CRaC file descriptor policy file path (required and must exist when CRaC is enabled)
cracTraceStartupTime Integer CRaC startup time tracing
cracPrintResources Integer CRaC print resource information
cracCollectFdStacktraces Integer CRaC collect fd stack traces
cracFdPolicyDefault String Default fdPolicy path (resolved at runtime, not persisted, for frontend default restoration)

# LicenseController

Base Path: /api/license

MethodPathFunctionParametersReturn TypeDescription
GET/api/license/infoinfoResult<Map<String, Object>>Get the currently effective license information (including machine identifier iden, whether licensed, feature codes, licensed object, validity dates, license type, whether perpetual, remaining days, product name/version, whether cloud environment)
GET/api/license/days-remainingdaysRemainingResult<Map<String, Object>>Get the remaining days of the license
POST/api/license/updateupdate@RequestParam MultipartFile file, String content, String fileNameResult<License>Update the license (upload a .lic/.xml file or directly submit license text content, with file size/file name/content length validation)

# LogController

Base Path: /api/logs

MethodPathFunctionParametersReturn TypeDescription
GET/api/logs/filesgetLogFilesResult<List<Map<String, Object>>>Get the log file list (scans the system log directory and access log directory, including file name, path, size, last modified time, type)
GET/api/logs/contentgetLogContent@RequestParam String fileName, long offset, String direction, int pageSize, String keyword, String logLevel, String startTime, String endTimeResult<LogContentResponse>Streaming bidirectional cursor-paged reading of log content (supports forward/backward/last/tail/raw-* directions and keyword, level, time range filtering)
GET/api/logs/rawgetLogRawContent@RequestParam String fileNameResult<LogRawContentResponse>Read the complete raw content of a log file (falls back to GBK when UTF-8 fails, returns content and file size)
GET/api/logs/configgetLogConfigResult<Map<String, Object>>Get system log and access log configuration (two parts: systemLog/accessLog)
PUT/api/logs/configupdateLogConfig@RequestBody Map<String, Object> configResult<?>Update log configuration (after validation, saves the system/access log configuration and pushes it to the AAS instance application; requires restart to take effect)
POST/api/logs/rotaterotateLog@RequestParam String fileNameResult<Void>Rotate the specified log file
DELETE/api/logs/clearclearLogs@RequestParam String fileNameResult<Void>Clear the content of the specified log file
POST/api/logs/exportexportLog@RequestBody Map<String, String> bodyResult<Map<String, Object>>Generate a log export download link (returns downloadUrl and the zip file name)
GET/api/logs/downloaddownloadLog@RequestParam String fileName, String logType, String keyword, String logLevel, String startTime, String endTime, HttpServletResponse responsevoidDownload the log zip file (only matching log entries are exported when filter conditions are present)
POST/api/logs/config/syncsyncLogConfigResult<Map<String, Object>>Synchronize log configuration from the AAS instance back to the console and return the latest configuration

# LoginLogController

Base Path: /api/audit/login-logs

MethodPathFunctionParametersReturn TypeDescription
GET/api/audit/login-logslistLoginLogQueryDTO queryResult<PageResult<LoginLog>>Paged query of login audit logs
GET/api/audit/login-logs/exportexportLoginLogQueryDTO query, HttpServletResponse responsevoidExport login audit logs as a CSV wrapped in a zip (including event time, account, event type, IP, description, result)

# MetricsController

Base Path: /metrics

MethodPathFunctionParametersReturn TypeDescription
GET/metricsmetricsHttpServletRequest servletRequest, @RequestHeader String authHeaderResponseEntity<?>Prometheus metrics endpoint (text/plain), 404 when the switch is off; supports Basic Auth / Access Token + IP whitelist
GET/metrics/collectorslistCollectorsHttpServletRequest servletRequest, @RequestHeader String authHeaderResponseEntity<?>List all collector names and category mappings (JSON, requires the Restful switch enabled and authentication passed)
GET/metrics/datacollectAllHttpServletRequest servletRequest, @RequestHeader String authHeaderResponseEntity<?>Get all monitor data (merging all collectors), returns RestfulMetricsResponse
GET/metrics/data/{category}collectCategory@PathVariable String category, HttpServletRequest servletRequest, @RequestHeader String authHeaderResponseEntity<?>Get monitor data of a single category; unknown category returns 404
GET/metrics/data/{category}/{name}collectOne@PathVariable String category, @PathVariable String name, HttpServletRequest servletRequest, @RequestHeader String authHeaderResponseEntity<?>Get monitor data of a single collector (category/name); unknown collector returns 404

# MonitorConfigController

Base Path: /api/monitor/config

MethodPathFunctionParametersReturn TypeDescription
GET/api/monitor/configgetConfigResult<MonitorConfig>Get monitor service configuration (SNMP v3 passwords returned masked with asterisks; Prometheus credentials decrypted and returned with password masked)
PUT/api/monitor/configsaveConfig@RequestBody MonitorConfigDTO dtoResult<Void>Save monitor service/alert/SNMP configuration (excluding interface service fields; stops the collector when Full GC monitoring is turned off)
POST/api/monitor/config/restore-defaultsrestoreDefaultsResult<MonitorConfig>Restore monitor service default configuration
POST/api/monitor/config/prometheus-auth-token/refreshrefreshPrometheusAuthTokenResult<Map<String, String>>Regenerate the Prometheus Authorization Bearer token (plaintext returned only in this response, stored encrypted)
PUT/api/monitor/config/interface-serviceupdateInterfaceService@RequestBody InterfaceServiceConfigDTO dtoResult<MonitorConfig>Update only the Prometheus/Restful interface service configuration (switches, auth method, Basic Auth credentials, Token, whitelist; validates complexity when the Basic Auth password is non-empty)
POST/api/monitor/config/interface-service/restore-defaultsrestoreInterfaceServiceDefaultsResult<MonitorConfig>Restore only the interface service related fields to defaults

MonitorConfigDTO Fields (only business fields listed; repeated validation notes for 0/1 switches omitted)

Field Type Description
monitorEnabled Integer Monitor service master switch (0/1)
mbeanMonitorEnabled Integer MBean monitoring switch (0/1)
collectIntervalSeconds Integer Collection interval (seconds, 10~3600)
jvmMonitorEnabled Integer JVM monitoring switch (0/1)
threadPoolMonitorEnabled Integer Thread pool monitoring switch (0/1)
dsMonitorEnabled Integer JDBC connection pool monitoring switch (0/1)
httpMonitorEnabled Integer HTTP channel monitoring switch (0/1)
sessionMonitorEnabled Integer Session monitoring switch (0/1)
systemResourceMonitorEnabled Integer System resource monitoring switch (0/1)
fullGcMonitorEnabled Integer Full GC monitoring switch (0/1)
cpuMonitorEnabled Integer CPU monitoring switch (0/1)
memoryMonitorEnabled Integer Memory monitoring switch (0/1)
maxDataPoints Integer Maximum number of data points
replaySampleInterval Integer Replay sampling interval (seconds, 1~86400)
alertEnabled Integer Alert switch (0/1)
alertIntervalMinutes Integer Alert interval (minutes, 1~1440)
alertCpuThreshold Integer CPU alert threshold (0~100)
alertMemoryThreshold Integer Memory alert threshold (0~100)
alertDiskThreshold Integer Disk alert threshold (0~100)
httpThreadAlertEnabled Integer HTTP thread alert switch (0/1)
httpThreadThreshold Integer HTTP thread alert threshold
cpuAlertEnabled Integer CPU alert notification switch (0/1)
virtualMemoryAlertEnabled Integer Virtual memory alert switch (0/1)
virtualMemoryThreshold Integer Virtual memory alert threshold (0~100)
physicalMemoryAlertEnabled Integer Physical memory alert switch (0/1)
physicalMemoryThreshold Integer Physical memory alert threshold (0~100)
fullGcAlertEnabled Integer Full GC alert switch (0/1)
fullGcDurationSeconds Integer Full GC duration threshold (seconds)
fullGcFrequencyLimit Integer Full GC frequency limit (times)
jdbcAlertEnabled Integer JDBC alert switch (0/1)
jdbcErrorThreshold Integer JDBC error threshold
alertSendMessageEnabled Integer Alert send message switch (0/1)
alertGenerateSnapshotEnabled Integer Alert generate snapshot switch (0/1)
snapshotThreadEnabled Integer Thread snapshot switch (0/1)
snapshotHeapEnabled Integer Heap snapshot switch (0/1)
snapshotProcessEnabled Integer Process snapshot switch (0/1)
sendEmailEnabled Integer Email notification switch (0/1)
sendSnmpEnabled Integer SNMP notification switch (0/1)
sendPlatformEnabled Integer Platform notification switch (0/1)
snmpEnabled Integer SNMP switch (0/1)
snmpHost String SNMP Agent bind address (IPv4/IPv6 literal, max 128)
snmpPort Integer SNMP port (1~65535)
snmpCommunity String SNMP community name
snmpProtocol String SNMP protocol
snmpVersion String SNMP version
snmpAddress String NMS-side address (IP/port format)
snmpSecurity String SNMP v3 security level (none/auth-no-priv/auth-priv)
snmpUsername String SNMP v3 username
snmpAuthMethod String SNMP v3 authentication method (MD5/SHA)
snmpAuthPassword String SNMP v3 authentication password (plaintext input, encrypted on the server before storage)
snmpCipher String SNMP v3 encryption algorithm (DES/3DES/AES128/AES192/AES256)
snmpPrivPassword String SNMP v3 encryption password
prometheusEnabled Integer Prometheus interface switch (0/1)
restfulEnabled Integer Restful monitor data interface switch (0/1)
prometheusAuthMethod String Authentication method (none/basic/authorization)
prometheusAuthUsername String Basic Auth username (plaintext input, encrypted on the server)
prometheusAuthPassword String Basic Auth password (plaintext input, encrypted on the server)
prometheusAuthToken String Authorization Bearer value (plaintext input, encrypted on the server)
prometheusWhitelist String Whitelist raw text (multi-line/comma-separated IPs or CIDRs, including IPv6)

InterfaceServiceConfigDTO Fields

Field Type Description
prometheusEnabled Integer Prometheus switch (0=off 1=on)
restfulEnabled Integer Restful monitor data interface switch (0=off 1=on)
prometheusAuthMethod String Authentication method (none/basic/authorization)
prometheusAuthUsername String Basic Auth username (plaintext input, encrypted on the server; letters, digits and ._@- only)
prometheusAuthPassword String Basic Auth password (plaintext input, must not contain <>; validates password policy complexity when non-empty)
prometheusAuthToken String Authorization Bearer value (plaintext input, must not contain <>)
prometheusWhitelist String Whitelist raw text (multi-line/comma-separated IPs or CIDRs, including IPv6, max 512)

# MonitorDataController

Base Path: /api/monitor/data

MethodPathFunctionParametersReturn TypeDescription
GET/api/monitor/data/systemgetSystemResourceResult<Map<String, Object>>Get real-time system resource monitor data (CPU/memory/disk, etc.; returns null when the module switch is off)
GET/api/monitor/data/system-resource/historygetSystemResourceHistory@RequestParam LocalDateTime startTime, LocalDateTime endTimeResult<SystemResourceTrendDTO>Query system resource historical trend data (default last 1 hour, max 30 days)
GET/api/monitor/data/jvmgetJvmMonitorResult<Map<String, Object>>Get JVM memory/garbage collection real-time monitor data
GET/api/monitor/data/jvm/historygetJvmHistory@RequestParam LocalDateTime startTime, LocalDateTime endTimeResult<JvmHistoryDTO>Query JVM monitor history data (memory, GC trends, etc.)
GET/api/monitor/data/threadsgetThreadInfoResult<Map<String, Object>>Get JVM thread real-time monitor information
GET/api/monitor/data/fullgc/recordsfullGcRecords@RequestParam LocalDateTime startTime, LocalDateTime endTime, Integer current, Integer sizeResult<Page<FullGcRecordDTO>>Paged query of Full GC records (default last 1 day, max 30 days)
GET/api/monitor/data/fullgc/trendfullGcTrend@RequestParam LocalDateTime startTime, LocalDateTime endTimeResult<FullGcTrendDTO>Query Full GC trend statistics
GET/api/monitor/data/fullgc/statusfullGcStatusResult<Map<String, Object>>Get Full GC collector status (supported: whether supported, listening: whether listening)
POST/api/monitor/data/fullgc/switch/onfullGcSwitchOnResult<Void>Start Full GC collection listening
POST/api/monitor/data/fullgc/switch/offfullGcSwitchOffResult<Void>Stop Full GC collection listening
GET/api/monitor/data/fullgc/exportexportFullGcRecords@RequestParam LocalDateTime startTime, LocalDateTime endTime, HttpServletResponse responsevoidExport Full GC records as a CSV file
GET/api/monitor/data/jndigetJndiTreeResult<Map<String, Object>>Get the JNDI tree structure
GET/api/monitor/data/sqlgetSqlTraceResult<Map<String, Object>>Get SQL trace monitor data
GET/api/monitor/data/perfgetPerfDataResult<Map<String, Object>>Get performance collection data
GET/api/monitor/data/datasourcegetDatasourceMonitorResult<Map<String, Object>>Get datasource connection pool real-time monitor data
GET/api/monitor/data/datasource-replaygetDatasourceReplayResult<Map<String, Object>>Get datasource monitor data (replay scenario, not restricted by switches)
POST/api/monitor/data/datasource/testtestDatasource@RequestParam String jndiNameResult<Boolean>Test connectivity of the specified JNDI datasource
GET/api/monitor/data/datasource/historygetDatasourceHistory@RequestParam LocalDateTime startTime, LocalDateTime endTime, String jndiNameResult<DatasourceTrendDTO>Query datasource historical trend (filterable by JNDI name)
GET/api/monitor/data/httpgetHttpChannelMonitorResult<Map<String, Object>>Get HTTP channel real-time monitor data
GET/api/monitor/data/http-replaygetHttpChannelReplayResult<Map<String, Object>>Get HTTP channel monitor data (replay scenario)
GET/api/monitor/data/threadpoolgetThreadPoolMonitorResult<Map<String, Object>>Get thread pool real-time monitor data
GET/api/monitor/data/threadpool-replaygetThreadPoolReplayResult<Map<String, Object>>Get thread pool monitor data (replay scenario)
GET/api/monitor/data/threadpool/historygetThreadPoolHistory@RequestParam LocalDateTime startTime, LocalDateTime endTime, String poolNameResult<ThreadPoolHistoryDTO>Query thread pool history data (filterable by thread pool name)
GET/api/monitor/data/threadpool/{name}/detailgetThreadPoolDetail@PathVariable String nameResult<Map<String, Object>>Get detailed information of the specified thread pool
GET/api/monitor/data/app-sessionsgetAppSessionMonitorResult<Map<String, Object>>Get application session real-time monitor data
GET/api/monitor/data/app-sessions-replaygetAppSessionReplayResult<Map<String, Object>>Get application session monitor data (replay scenario)
GET/api/monitor/data/app-sessions/historygetAppSessionHistory@RequestParam LocalDateTime startTime, LocalDateTime endTime, String contextPathResult<AppSessionTrendDTO>Query application session historical trend (filterable by application context path)
GET/api/monitor/data/http/trendgetHttpChannelTrend@RequestParam String portResult<Map<String, Object>>Get HTTP channel request trend data (filterable by port)
GET/api/monitor/data/http/historygetHttpChannelHistory@RequestParam LocalDateTime startTime, LocalDateTime endTime, String portResult<HttpChannelHistoryDTO>Query HTTP channel history data (filterable by port)
GET/api/monitor/data/http-connectionsgetHttpConnectionsResult<Map<String, Object>>Get HTTP connection count data (shared by dashboard/monitor)

# NotificationController

Base Path: /api/notifications

MethodPathFunctionParametersReturn TypeDescription
GET/api/notificationslist@RequestParam Integer page, Integer size, Integer readStatusResult<PageResult<Notification>>Paged query of the current user's notification list (filterable by read status)
GET/api/notifications/unread-countunreadCountResult<Map<String, Object>>Get the current user's unread notification count
PUT/api/notifications/{id}/readmarkRead@PathVariable Long idResult<Void>Mark the specified notification as read
PUT/api/notifications/read-allmarkAllReadResult<Void>Mark all notifications of the current user as read
POST/api/notificationscreate@RequestBody Map<String, String> body (title/type/content/severity/targetUser)Result<Notification>Create a notification (a target user can be specified; audit recorded)
DELETE/api/notificationsdeleteBatch@RequestBody List<Long> idsResult<Integer>Batch delete notifications, returns the number deleted

# PasswordController

Base Path: /api/auth

MethodPathFunctionParametersReturn TypeDescription
GET/api/auth/password-policygetPasswordPolicyResult<PasswordPolicyDTO>Get the current system password policy
POST/api/auth/change-passwordchangePassword@RequestBody ChangePasswordRequest requestResult<Void>Change the current logged-in user's password (AES-encrypted in transit; validates the old password, password policy, and historical password duplication; on success, all sessions of the user are forcibly invalidated)

ChangePasswordRequest Fields

Field Type Description
oldPassword String Old password (AES-encrypted ciphertext)
newPassword String New password (AES-encrypted ciphertext)
confirmPassword String Confirm new password (AES-encrypted ciphertext, must match newPassword)

# PatchController

Base Path: /api/system/patches

MethodPathFunctionParametersReturn TypeDescription
GET/api/system/patcheslistPageQueryDTO queryResult<PageResult<Patch>>Paged query of patch list
POST/api/system/patches/uploadupload@RequestParam String name, String version, String platform, String description, MultipartFile fileResult<Void>Upload a patch package (multipart form)
POST/api/system/patches/{id}/applyapply@PathVariable Long id, String upgradeNote, Integer forceUpgradeResult<Void>Apply (upgrade) the specified patch, with optional upgrade note and force upgrade flag
POST/api/system/patches/{id}/rollbackrollback@PathVariable Long id, String rollbackNoteResult<Void>Roll back the specified patch
DELETE/api/system/patches/{id}delete@PathVariable Long idResult<Void>Delete the specified patch
GET/api/system/patches/{id}/progressgetProgress@PathVariable Long idResult<Map<String, Object>>Get patch apply/rollback progress

Patch Fields

Field Type Description
id Long Patch ID
patchName String Patch name
version String Patch version
platform String Applicable platform version
description String Patch description
filePath String Patch file path
status Integer Patch status (0=not applied, 1=applied, 2=failed, 3=rolled back)
progress Integer Installation progress percentage
installTime LocalDateTime Installation time
rolledBackTime LocalDateTime Rollback time
upgradeNote String Upgrade note
rollbackNote String Rollback note
forceUpgrade Integer Force upgrade flag
progressDetail String Progress details (JSON format)

# ReplayController

Base Path: /api/monitor/replay

MethodPathFunctionParametersReturn TypeDescription
GET/api/monitor/replay/systemsystem@RequestParam String start, String endResult<Map<String, Object>>Query system-dimension (host/system resource) historical sampling point replay data
GET/api/monitor/replay/jvmjvm@RequestParam String start, String endResult<Map<String, Object>>Query JVM-dimension historical sampling point replay data
GET/api/monitor/replay/datasourcedatasource@RequestParam String start, String end, String targetResult<Map<String, Object>>Query historical sampling point replay data of the specified datasource (target)
GET/api/monitor/replay/app-sessionappSession@RequestParam String start, String end, String targetResult<Map<String, Object>>Query session count historical sampling point replay data of the specified application (target)
GET/api/monitor/replay/http-channelhttpChannel@RequestParam String start, String end, String targetResult<Map<String, Object>>Query historical sampling point replay data of the specified HTTP channel (target)
GET/api/monitor/replay/thread-poolthreadPool@RequestParam String start, String end, String targetResult<Map<String, Object>>Query historical sampling point replay data of the specified thread pool (target)

# ResourceController

Base Path: /api/resources

MethodPathFunctionParametersReturn TypeDescription
GET/api/resources/permission-treepermissionTreeResult<List<PermissionTreeNode>>Get the permission tree (three-level structure: module -> page -> operation), used for role permission configuration

PermissionTreeNode Fields

Field Type Description
code String Node code (menu code or API permission code, e.g. app_list:create)
name String Node display name
nameKey String i18n name key (menu:xxx or permission:xxx)
resourceId Long Associated resource ID (only for menu nodes)
children List Child node list (pages/operations)

# RoleController

Base Path: /api/roles

MethodPathFunctionParametersReturn TypeDescription
GET/api/roleslistPageQueryDTO query, @RequestParam String roleCode, Integer builtinResult<PageResult<RoleDTO>>Paged query of role list (filterable by role code and whether built-in)
GET/api/roles/alllistAllResult<List<RoleDTO>>Query all roles (no pagination)
GET/api/roles/{id}get@PathVariable Long idResult<RoleDTO>Get role details by ID
POST/api/rolescreate@RequestBody RoleDTO dtoResult<Void>Create a role (Create validation group, empty string fields normalized to null)
PUT/api/roles/{id}update@PathVariable Long id, @RequestBody RoleDTO dtoResult<Void>Update the specified role
DELETE/api/roles/{id}delete@PathVariable Long idResult<Void>Delete the specified role
DELETE/api/roles/batchdeleteBatch@RequestBody List<Long> idsResult<Integer>Batch delete roles, returns the number deleted

RoleDTO Fields

Field Type Description
id Long Role ID
roleCode String Role code (required on create, letters/digits/underscores/hyphens only, max 64)
roleName String Role display name (max 64)
description String Role description (max 255)
builtin Integer Whether it is a built-in role (1=built-in, cannot be modified or deleted)
classLevel Integer Role classification level
resourceIds List Associated resource ID list
resourceCodes List Associated resource code list (for display)
userNames List Associated username list
userCount Integer Number of associated users (for list display)
defaultRole Integer Whether it is the default role (only one role can be the default)
permissions List Permission code list (including menu and operation permissions)

# ScriptRecordingController

Base Path: /api/script-recording

MethodPathFunctionParametersReturn TypeDescription
GET/api/script-recordinglist@RequestParam String name, String status, LocalDateTime startTime, LocalDateTime endTime, long page, long sizeResult<PageResult<ScriptRecordingVO>>Paged query of script recording task list, supports name/status/time range filtering
GET/api/script-recording/activeactiveAuthentication authenticationResult<Boolean>Whether the current user has a recording task in progress (used for logout confirmation, returns only their own status)
POST/api/script-recordingcreate@RequestBody ScriptRecordingCreateDTO dto, Authentication authenticationResult<ScriptRecordingVO>Create a script recording task (with the current user as creator), audit recorded
POST/api/script-recording/{id}/stopstop@PathVariable Long id, Authentication authenticationResult<ScriptRecordingStopResult>Stop recording and generate scripts (aascli/postman/curl)
POST/api/script-recording/{id}/stop-emptystopEmpty@PathVariable Long id, Authentication authenticationResult<Void>Stop recording without generating scripts (empty task discarded), audit recorded
DELETE/api/script-recording/{id}delete@PathVariable Long id, Authentication authenticationResult<Void>Delete a recording task (creator only)
GET/api/script-recording/{id}/downloaddownload@PathVariable Long id, @RequestParam List<String> formatsResponseEntity<byte[]>Download the script ZIP package generated by recording (packages all three formats aascli/postman/curl by default)

ScriptRecordingCreateDTO Fields

Field Type Description
name String Script name (letters/digits/underscores/hyphens/dots, 1-255 characters)
timeoutMinutes Integer Timeout (minutes), 0=unlimited
description String Description, optional, max 1000 characters

ScriptRecordingVO Fields

Field Type Description
id Long Recording task ID
name String Script name
status String Task status (recording/stopped, etc.)
description String Description
timeoutMinutes Integer Timeout (minutes)
creator String Creator username
startTime LocalDateTime Recording start time
endTime LocalDateTime Recording end time
opCount Integer Number of operations recorded
elapsedSeconds long Elapsed recording duration (seconds), calculated in real time while recording

# SecurityConfigController

Base Path: /api/security/config

MethodPathFunctionParametersReturn TypeDescription
GET/api/security/configgetConfigsResult<Map<String, String>>Get all security configuration items (smtp_password uniformly returned as an encrypted string)
PUT/api/security/configupdateConfigs@RequestBody Map<String, String> configs, @RequestHeader String X-Current-User-EmailResult<Map<String, Object>>Batch update security configuration (when backup_enabled changes from off to on, a backup is executed immediately; when smtp_verify_enabled is turned on, a test email is automatically sent and the result returned)
POST/api/security/config/test-mailtestMail@RequestBody Map<String, String> body (to)Result<Map<String, Object>>Send an SMTP test email to the specified recipient
GET/api/security/config/smtpgetSmtpEnabledResult<Map<String, Object>>Get the email verification switch status
PUT/api/security/config/smtpupdateSmtpEnabled@RequestBody Map<String, Object> body (smtpEnabled)Result<Void>Update the email verification switch
GET/api/security/config/auth-policygetAuthPolicyResult<Map<String, Object>>Get authentication policy configuration
PUT/api/security/config/auth-policyupdateAuthPolicy@RequestBody Map<String, Object> policyResult<Void>Save authentication policy configuration
POST/api/security/config/backup-nowbackupNowResult<Map<String, Object>>Immediately execute a manual backup of business configuration
GET/api/security/config/backup-listlistBackupsResult<List<Map<String, Object>>>Query the business configuration backup file list
POST/api/security/config/backup-restorerestoreBackup@RequestBody Map<String, String> body (fileName)Result<Map<String, Object>>Restore a business configuration backup by file name
DELETE/api/security/config/backup/{fileName}deleteBackup@PathVariable String fileNameResult<Void>Delete the specified business configuration backup file
POST/api/security/config/restartrestartResult<Map<String, Object>>Restart the AAS server (returns RESTARTING status)

SecurityConfig Fields

Field Type Description
id Long Configuration ID
configKey String Configuration item key
configValue String Configuration item value
description String Configuration description

# SecurityRealmController

Base Path: /api/security/realms

MethodPathFunctionParametersReturn TypeDescription
GET/api/security/realmslistSecurityRealmQueryDTO queryResult<PageResult<SecurityRealmDTO>>Paged query of security realm list
GET/api/security/realms/alllistAllResult<List<SecurityRealmDTO>>Query all security realms (no pagination)
GET/api/security/realms/{id}get@PathVariable Long idResult<SecurityRealmDTO>Get security realm details by ID (returns 404 if not found)
POST/api/security/realmscreate@RequestBody SecurityRealmDTO dtoResult<Void>Create a security realm (requires restart to take effect)
PUT/api/security/realms/{id}update@PathVariable Long id, @RequestBody SecurityRealmDTO dtoResult<Void>Update a security realm (requires restart to take effect)
DELETE/api/security/realms/{id}delete@PathVariable Long idResult<Void>Delete a security realm (requires restart to take effect)
DELETE/api/security/realms/batchdeleteBatch@RequestBody List<Long> idsResult<Integer>Batch delete security realms, returns the number deleted
GET/api/security/realms/user-database-resourcesgetUserDatabaseResourcesResult<List<String>>Get the list of user database resource names available in the AAS instance

SecurityRealmDTO Fields

Field Type Description
id Long Security realm ID
name String Security realm name
type String Type (DataSourceRealm/UserDatabaseRealm/JAASRealm/JNDIRealm/Custom)
config String Configuration content (JSON or custom format)
xmlConfig String XML configuration output (for server.xml)
description String Description
passwordHashAlgorithm String Password hash algorithm (none/MD5/SHA-1/SHA-256/SHA-512)
boundApps List Bound application name list
lockEnabled Boolean Whether to enable the account lockout mechanism
maxFailedAttempts Integer Allowed number of wrong password attempts
lockTimeout Integer Lockout timeout (seconds)
cacheSize Integer Cache size
cacheRemovalWarningTime Integer Cache removal warning time (seconds)
userTable String User table name (DataSource Realm)
usernameField String Username field
passwordField String Password field
roleTable String Role table name
roleField String Role field
dataSourceJndi String Datasource JNDI name (DataSource Realm)
resourceName String Resource name (UserDatabase Realm)
jaasLoginModules List JAAS LoginModule configuration list (including loginModuleClass/controlFlag/options)
userPrincipalClass String User Principal implementation class (JAAS Realm)
rolePrincipalClass String Role Principal implementation class
contextFactory String Context factory class name (JNDI Realm)
jndiConnectionUrl String Connection URL
alternateUrl String Alternate connection URL
connectionUsername String Connection username
connectionPassword String Connection password
userSearchBase String User search base
userSearchFilter String User search filter
userSubtree Boolean User subtree search
userPattern String User DN pattern
userSearchAsUser Boolean Search for users as the user
userPasswordAttr String User password attribute name
userRoleName String Role attribute name in the user entry
userRoleAttribute String User role attribute (used for roleSearch substitution)
roleSearchBase String Role search base
roleSearchFilter String Role search filter
roleNameAttribute String Role name attribute
roleSubtree Boolean Role subtree search
roleNested Boolean Nested role search
roleSearchAsUser Boolean Search for roles as the user
commonRole String Common role
connectionTimeout String Connection timeout (milliseconds)
readTimeout String Read timeout (milliseconds)
connectionPoolSize Integer Connection pool size (must be greater than 0)

# SessionManagerController

Base Path: /api/config/web/sessions

MethodPathFunctionParametersReturn TypeDescription
GET/api/config/web/sessions/alllistAllResult<List<SessionManager>>Query all session managers (no pagination)
GET/api/config/web/sessions/redis-plugin-statusredisPluginStatusResult<Map<String, Boolean>>Get Redis session plugin status (loaded/jarsInstalled/commonLoaderConfigured)
GET/api/config/web/sessionslist@RequestParam int page, int size, String name, String typeResult<PageResult<SessionManagerListItem>>Paged query of session manager list (filterable by name and type)
GET/api/config/web/sessions/{id}get@PathVariable Long idResult<SessionManagerListItem>Get session manager details by ID (returns 404 if not found)
POST/api/config/web/sessionscreate@RequestBody SessionManager smResult<Void>Create a session manager (field-level validation of name/type/Redis/path, etc.; error on duplicate name)
PUT/api/config/web/sessions/{id}update@PathVariable Long id, @RequestBody SessionManager smResult<Void>Update a session manager (same validation as create, excluding itself from duplicate check)
DELETE/api/config/web/sessions/{id}delete@PathVariable Long idResult<Void>Delete a session manager (logical delete, name preserved for audit)

SessionManager Fields (excluding BaseEntity common fields)

Field Type Description
name String Session manager name (required, max 128)
type String Type (memory/file/redis/database)
maxSessions Integer Maximum active sessions (-1 means unlimited, otherwise >=1)
persistPath String Session persistence file path (memory type, relative paths only)
saveOnRestart Integer Whether to save sessions on restart
maxIdleBackup Integer Idle backup threshold (seconds, -1 or >=0)
minIdleSwap Integer Minimum idle swap threshold (seconds)
maxIdleSwap Integer Maximum idle swap threshold (seconds)
persistenceDir String Persistence directory (file type, relative paths only)
redisMode String Redis mode (standalone/sentinel)
redisNodes String Redis nodes (host:port, multiple nodes separated by commas)
redisMasterName String Sentinel mode master node name
redisPassword String Redis password (max 256)
redisDatabase Integer Redis database index (0~15)
redisConnectTimeout Integer Redis connection timeout (milliseconds)
redisMaxConn Integer Redis maximum connections (>=1)
redisMinIdle Integer Redis minimum idle connections (>=0)
redisMaxIdle Integer Redis maximum idle connections
redisMaxWait Integer Redis maximum wait time (milliseconds)
sessionPersistPolicies String Session persistence policies (SAVE_ON_CHANGE/ALWAYS_SAVE_AFTER_REQUEST, comma-combined)
sessionAttributeNameFilter String Session attribute name filter (regular expression)
sessionAttributeValueClassNameFilter String Session attribute value class name filter (regular expression)
warnOnFilterFailure Integer Whether to alert on filter failure
notifyAttributeOnUnchanged Integer Whether to notify when an attribute is unchanged
notifyBindingOnUnchanged Integer Whether to notify when a binding is unchanged
dataSourceName String Datasource name (required for database type)
localDataSource Integer Whether to use a local datasource

# SharedLibController

Base Path: /api/resources/sharedlibs

MethodPathFunctionParametersReturn TypeDescription
GET/api/resources/sharedlibslistSharedLibQueryDTO queryResult<PageResult<SharedLib>>Paged query of shared library list
GET/api/resources/sharedlibs/{id}get@PathVariable Long idResult<SharedLib>Get shared library details by ID
POST/api/resources/sharedlibscreate@RequestBody SharedLib libResult<Long>Create a shared library, returns the new record ID
PUT/api/resources/sharedlibs/{id}update@PathVariable Long id, @RequestBody SharedLib libResult<Void>Update a shared library
DELETE/api/resources/sharedlibs/{id}delete@PathVariable Long idResult<Void>Delete a shared library
POST/api/resources/sharedlibs/{id}/upload-jaruploadJar@PathVariable Long id, @RequestParam MultipartFile fileResult<Void>Upload a JAR file to the shared library
GET/api/resources/sharedlibs/{id}/jarslistJarFiles@PathVariable Long idResult<List<Map<String, Object>>>List the uploaded JAR files in the shared library
GET/api/resources/sharedlibs/{id}/jars/{fileName}/downloaddownloadJar@PathVariable Long id, @PathVariable String fileName, HttpServletResponse responsevoidDownload the specified JAR file in the shared library
DELETE/api/resources/sharedlibs/{id}/jars/{fileName}deleteJarFile@PathVariable Long id, @PathVariable String fileNameResult<Void>Delete the specified JAR file in the shared library
POST/api/resources/sharedlibs/{id}/jars/delete-batchdeleteJarFiles@PathVariable Long id, @RequestBody List<String> fileNamesResult<Void>Batch delete JAR files in the shared library
POST/api/resources/sharedlibs/{id}/appsbindApp@PathVariable Long id, @RequestParam Long appIdResult<Void>Bind the shared library to the specified application
DELETE/api/resources/sharedlibs/{id}/appsunbindApp@PathVariable Long id, @RequestParam Long appIdResult<Void>Unbind the shared library from the application
GET/api/resources/sharedlibs/{id}/appslistBoundApps@PathVariable Long idResult<List<Map<String, Object>>>Query the list of applications bound to the shared library
PUT/api/resources/sharedlibs/{id}/priorityupdatePriority@PathVariable Long id, @RequestParam Integer priorityResult<Void>Update the shared library loading priority (0~9999, smaller value means higher priority)

SharedLib Fields (excluding BaseEntity common fields)

Field Type Description
name String Shared library name (required, max 128)
path String Shared library path (max 512)
version String Version number (max 64)
description String Description
classLevel Integer Class level (>=0)
status Integer Status (0/1)
loadStrategy String Class loading strategy (application-first/classes-first/shared-first)
sortOrder Integer Sort order (>=0)
priority Integer Loading priority (0~9999, smaller value means higher priority, default 0)
fileCount Integer File count (non-persistent field, for list display)
refCount Integer Reference count (non-persistent field, for list display)

# SnapshotConfigController

Base Path: /api/monitor/snapshot-config

MethodPathFunctionParametersReturn TypeDescription
GET/api/monitor/snapshot-configgetConfigResult<SnapshotConfig>Query automatic snapshot configuration (currently effective configuration)
PUT/api/monitor/snapshot-configsaveConfig@RequestBody SnapshotConfigDTO dtoResult<Void>Save automatic snapshot configuration (including content and trigger rules), audit log recorded
POST/api/monitor/snapshot-config/restore-defaultsrestoreDefaultsResult<SnapshotConfig>Restore automatic snapshot configuration to defaults

SnapshotConfigDTO Fields

Field Type Description
id Long Configuration record ID
autoEnabled Integer Automatic snapshot switch (0=off 1=on)
contentAccessLog Integer Snapshot content: access log switch
contentGcLog Integer Snapshot content: GC log switch
contentSystemConfig Integer Snapshot content: system configuration switch
contentSystemLog Integer Snapshot content: system log switch
contentHostMonitor Integer Snapshot content: host monitor data switch
contentInstanceMetrics Integer Snapshot content: instance metrics switch
contentCoreDump Integer Snapshot content: system core dump switch
contentThreadDump Integer Snapshot content: thread stack switch
threadStackCount Integer Thread stack capture count (1-10)
contentHeapDump Integer Snapshot content: heap dump switch
heapdumpMode String Heap dump mode (all/live)
maxSnapshots Integer Maximum number of snapshots to keep (1-1000)
intervalMinutes Integer Generation interval (minutes, 1-1440)
ruleCpuThreshold Double CPU usage threshold (0-100%)
ruleCpuOccurrences Integer CPU consecutive occurrences
ruleMemoryThreshold Double Memory usage threshold (0-100%)
ruleMemoryOccurrences Integer Memory consecutive occurrences
ruleFullGcCountThreshold Integer Full GC count threshold
ruleFullGcCountOccurrences Integer Full GC count consecutive occurrences
ruleFullGcTimeThreshold Integer Full GC time threshold
ruleFullGcTimeOccurrences Integer Full GC time consecutive occurrences
ruleHttpTimeoutThreshold Integer HTTP slow request count threshold
ruleHttpTimeoutOccurrences Integer HTTP slow request count consecutive occurrences
ruleHttpWaitThreshold Integer HTTP waiting task count threshold
ruleHttpWaitOccurrences Integer HTTP waiting task count consecutive occurrences
ruleHttpErrorThreshold Integer HTTP error count threshold
ruleHttpErrorOccurrences Integer HTTP error count consecutive occurrences
ruleJdbcWaitThreshold Integer JDBC waiting request count threshold
ruleJdbcWaitOccurrences Integer JDBC waiting request count consecutive occurrences
ruleJdbcLeakThreshold Integer JDBC suspected leaked connection count threshold
ruleJdbcLeakOccurrences Integer JDBC suspected leaked connection count consecutive occurrences

# SnapshotController

Base Path: /api/monitor/snapshots

MethodPathFunctionParametersReturn TypeDescription
GET/api/monitor/snapshotsgetSnapshotListSnapshotQueryDTO queryResult<PageResult<Snapshot>>Paged query of snapshot list
POST/api/monitor/snapshotscreateSnapshot@RequestBody SnapshotCreateDTO dtoResult<Void>Create a manual snapshot task (generated asynchronously)
DELETE/api/monitor/snapshots/{id}deleteSnapshot@PathVariable Long idResult<Void>Delete the specified snapshot
GET/api/monitor/snapshots/{id}/download/filedownloadSnapshotFile@PathVariable Long id, HttpServletResponse responsevoidDownload the snapshot zip file (download forbidden in pending/running status, error if the file does not exist)

SnapshotCreateDTO Fields

Field Type Description
contentTypes List Snapshot content type list (at least one must be selected, e.g. thread stack/heap/process)
threadStackCount Integer Thread stack capture count (1~10)
heapdumpMode String Heap dump mode (all=all objects / live=live objects only)

# SnmpConfigController

Base Path: /api/snmp-config

MethodPathFunctionParametersReturn TypeDescription
GET/api/snmp-configgetConfigResult<MonitorConfig>Get SNMP agent configuration (SNMP business fields view only; saved passwords replaced with 15 asterisks; unrelated sensitive fields such as Prometheus excluded)
PUT/api/snmp-configsaveConfig@RequestBody @Valid SnmpConfigDTO dtoResult<Void>Save SNMP configuration (an empty password means keep the original value; plaintext encrypted once before storage; audit carries before/after snapshots)
POST/api/snmp-config/restore-defaultsrestoreDefaultsResult<Void>Restore SNMP configuration to defaults

SnmpConfigDTO Fields

Field Type Description
snmpEnabled Integer SNMP switch (0 off / 1 on)
snmpHost String SNMP bind address (required, max 128)
snmpPort Integer SNMP bind port (1-65535)
snmpProtocol String Transport protocol (udp / tcp)
snmpVersion String SNMP version (v2c / v3)
snmpCommunity String SNMP community name (for v2c, max 255)
snmpSecurity String SNMP v3 security level
snmpUsername String SNMP v3 username (max 255)
snmpAuthMethod String SNMP v3 authentication method
snmpAuthPassword String SNMP v3 authentication password (max 255, empty keeps the original value)
snmpCipher String SNMP v3 encryption algorithm
snmpPrivPassword String SNMP v3 encryption password (max 255, empty keeps the original value)

# SqlTraceController

Base Path: /api/monitor/sql-trace

MethodPathFunctionParametersReturn TypeDescription
GET/api/monitor/sql-trace/configgetConfigResult<SqlTraceConfig>Get SQL trace configuration
POST/api/monitor/sql-trace/configsaveConfig@RequestBody @Valid SqlTraceConfig configResult<Void>Save SQL trace configuration (global switch/threshold/stack switch/max record count/datasource configuration)
POST/api/monitor/sql-trace/startstartResult<Void>Start SQL tracing
POST/api/monitor/sql-trace/stopstopResult<Void>Stop SQL tracing
GET/api/monitor/sql-trace/recordsquerySqlTraceQueryDTO query (binds query parameters, @Valid)Result<PageResult<SqlTraceRecord>>Paged query of SQL trace records
GET/api/monitor/sql-trace/records/exportexportSqlTraceQueryDTO query, HttpServletResponse responsevoidExport SQL trace records as a CSV file by query conditions (query conditions validated first)

SqlTraceConfig Fields (@RequestBody entity, id is a fixed primary key, no business semantics)

Field Type Description
enabled Integer Global switch (0 off / 1 on, required)
thresholdMs Integer Execution duration threshold (milliseconds); only records exceeding it (required, non-negative)
stackEnabled Integer Whether to record the call stack (0 off / 1 on, required)
maxRecordCount Integer Maximum SQL record count (required, >=1)
datasourceConfigs String Per-datasource independent configuration (JSON string)

SqlTraceQueryDTO Fields (inherits PageQueryDTO pagination fields page/size)

Field Type Description
startTime LocalDateTime Execution time from (yyyy-MM-dd HH:mm:ss)
endTime LocalDateTime Execution time to
datasource String Datasource name filter
event String Event type filter
keyword String Keyword filter (fuzzy match on SQL text, etc.)

SqlTraceRecord Fields (returned entity)

Field Type Description
id Long Record ID
event String Event type
sqlText String SQL text
stackTrace String Call stack
datasource String Owning datasource
executeCount Integer Execution count
avgTimeMs Integer Average execution time (milliseconds)
maxTimeMs Integer Maximum execution time (milliseconds)
executeTime LocalDateTime SQL execution time
createdTime LocalDateTime Record creation time

# SystemController

Base Path: /api/system

MethodPathFunctionParametersReturn TypeDescription
GET/api/system/versiongetVersionResult<Map<String, String>>Get version information (currentVersion/buildTime/javaVersion)
GET/api/system/upgradesgetUpgradeHistoryResult<List<Map<String, Object>>>Instance upgrade history list (placeholder implementation, currently returns an empty list)
POST/api/system/upgradeupgrade@RequestBody Map<String, Object> bodyResult<Map<String, Object>>Submit an instance upgrade request (placeholder implementation, returns upgradeId/status/message)
POST/api/system/restartrestartResult<Map<String, Object>>Restart the AAS server, returns status=RESTARTING
GET/api/system/restart-pendinggetRestartPendingResult<Map<String, Object>>Query pending configuration changes (needsRestart and the changes list)

# ThreadDiagnosisController

Base Path: /api/monitor/thread-diagnosis

MethodPathFunctionParametersReturn TypeDescription
POST/api/monitor/thread-diagnosis/startstart@RequestBody ThreadDiagnosisStartRequest requestResult<Void>Start thread diagnosis sampling (intervalSec required, 1~3600 seconds; maxDataMb controls the sampling data limit)
POST/api/monitor/thread-diagnosis/stopstopResult<Void>Stop thread diagnosis sampling
POST/api/monitor/thread-diagnosis/session-endendSessionResult<Void>When the session ends (navigating away/closing the page/session expiry), quietly stop monitoring and clean up the diagnosis task without generating a data file
GET/api/monitor/thread-diagnosis/snapshotgetSnapshotResult<Map<String, Object>>Get the current thread diagnosis snapshot (thread list and status data)
GET/api/monitor/thread-diagnosis/thread/{id}/stackgetThreadStack@PathVariable("id") long threadIdResult<Map<String, Object>>Get the stack information of the specified thread
POST/api/monitor/thread-diagnosis/thread/{id}/stopstopThread@PathVariable("id") long threadIdResult<Void>Stop the specified thread
POST/api/monitor/thread-diagnosis/analyzeanalyze@RequestParam(defaultValue="live") String sourceResult<Map<String, Object>>Synchronously run thread diagnosis analysis (source defaults to live real-time data)
POST/api/monitor/thread-diagnosis/analyze/asyncstartAnalyzeJob@RequestParam(defaultValue="live") String sourceResult<Map<String, Object>>Asynchronously start an analysis task, returns jobId
GET/api/monitor/thread-diagnosis/analyze/async/{jobId}getAnalyzeJob@PathVariable("jobId") String jobIdResult<Map<String, Object>>Query the progress/result of an async analysis task
POST/api/monitor/thread-diagnosis/analyze/async/{jobId}/cancelcancelAnalyzeJob@PathVariable("jobId") String jobIdResult<Void>Cancel an async analysis task
GET/api/monitor/thread-diagnosis/exportexportData@RequestParam(defaultValue="live") String source, @RequestParam(required=false) Long startTime, Long endTime, HttpServletResponse responsevoidExport the thread diagnosis sampling data file (a time range can be specified)
GET/api/monitor/thread-diagnosis/export-reportexportReport@RequestParam(defaultValue="live") String source, @RequestParam(defaultValue="html") String format, HttpServletResponse responsevoidExport the diagnosis analysis report (format defaults to html)
POST/api/monitor/thread-diagnosis/import/probeprobeImport@RequestParam("file") MultipartFile fileResult<Map<String, Object>>Upload a thread diagnosis data file and pre-check it (probe file content/time range)
POST/api/monitor/thread-diagnosis/import/confirmconfirmImport@RequestParam(required=false) Long startTime, Long endTimeResult<Map<String, Object>>Confirm importing the pre-checked diagnosis data (optionally trimming the time range)
GET/api/monitor/thread-diagnosis/importedgetImportedDataResult<Map<String, Object>>Get the currently imported diagnosis data

ThreadDiagnosisStartRequest Fields

Field Type Description
intervalSec Integer Sampling interval (seconds), required, value range 1~3600
maxDataMb Long Sampling data size limit (MB), 1~100; earliest data automatically discarded when reached, default 10

# ThreadPoolController

Base Path: /api/config/web/pools

MethodPathFunctionParametersReturn TypeDescription
GET/api/config/web/poolslist@RequestParam int page, int size, String name, Integer maxThreads, Integer priorityResult<PageResult<ThreadPool>>Paged query of thread pool list, supports name/max threads/priority filtering
GET/api/config/web/pools/{id}get@PathVariable Long idResult<ThreadPool>Get thread pool details by ID; throws an exception if not found
GET/api/config/web/pools/defaultsgetDefaultsResult<Map<String, Object>>Get thread pool default parameters (defaults such as minThreads calculated by CPU core count)
POST/api/config/web/poolscreate@RequestBody ThreadPool poolResult<Void>Add a thread pool (validates name uniqueness), requires restart to take effect, audit recorded
PUT/api/config/web/pools/{idOrName}update@PathVariable String idOrName, @RequestBody ThreadPool poolResult<Void>Update a thread pool by ID or name (validates name uniqueness), requires restart to take effect
DELETE/api/config/web/pools/{idOrName}delete@PathVariable String idOrNameResult<Void>Delete a thread pool by ID or name, requires restart to take effect, audit recorded

ThreadPool Fields

Field Type Description
name String Thread pool name
maxThreads Integer Maximum threads
minThreads Integer Minimum threads
maxIdleTime Integer Maximum thread idle time (milliseconds)
queueSize Integer Waiting queue size
priority Integer Thread priority
threadStepReclaim Integer Thread step reclaim switch/value
threadStepSize Integer Thread step size (number of threads created per batch)
threadStepTime Integer Thread step time interval
connectionAutoReclaim String Automatic connection reclaim ("true"/"false")
enabled Integer Whether enabled (0=disabled 1=enabled)

# ThreadTraceController

Base Path: /api/monitor/thread-trace

MethodPathFunctionParametersReturn TypeDescription
POST/api/monitor/thread-trace/long/startstartLongTrace@RequestBody LongTraceStartRequest requestResult<Void>Start long-request thread tracing (both thresholdMs/intervalMs are required, otherwise 400)
POST/api/monitor/thread-trace/long/stopstopLongTraceResult<Void>Stop long-request thread tracing
GET/api/monitor/thread-trace/long/snapshotgetLongTraceSnapshotResult<Map<String, Object>>Get the long-request trace snapshot (data of threads whose execution time exceeds the threshold)

LongTraceStartRequest Fields

Field Type Description
thresholdMs Long Threshold (milliseconds); requests whose execution time exceeds this value are judged as long requests, required
intervalMs Long Sampling frequency (milliseconds), required

# UpgradeHistoryController

Base Path: /api/system/upgrade-history

MethodPathFunctionParametersReturn TypeDescription
GET/api/system/upgrade-historylistPageQueryDTO query (page/size pagination parameters)Result<PageResult<UpgradeHistory>>Paged query of instance upgrade history records

UpgradeHistory Fields

Field Type Description
version String Version number upgraded to
upgradeTime LocalDateTime Upgrade time
status Integer Status: 0=failed 1=success 2=in progress
note String Note

# UserController

Base Path: /api/users

MethodPathFunctionParametersReturn TypeDescription
GET/api/userslistUserQueryDTO query (filters such as username/status/roleType/builtin + pagination)Result<PageResult<UserDTO>>Paged query of user list
GET/api/users/{id}get@PathVariable Long idResult<UserDTO>Get user details by ID
POST/api/userscreate@RequestBody UserDTO dtoResult<Void>Create a user (Create validation group, including initial password), audit recorded
PUT/api/users/{id}update@PathVariable Long id, @RequestBody UserDTO dtoResult<Void>Update user information, audit recorded
DELETE/api/users/{id}delete@PathVariable Long idResult<Void>Delete a single user, audit recorded
DELETE/api/users/batchdeleteBatch@RequestBody List<Long> idsResult<Integer>Batch delete users, returns the number deleted
POST/api/users/{id}/statustoggleStatus@PathVariable Long id, @RequestParam Integer statusResult<Void>Enable/disable a user (status: 0=disable 1=enable)
POST/api/users/{id}/unlockunlock@PathVariable Long idResult<Void>Unlock a user (clears the login lockout state)
POST/api/users/{id}/reset-passwordresetPassword@PathVariable Long id, @RequestBody Map<String, String> body (password)Result<Void>Reset a user's password

UserDTO Fields

Field Type Description
id Long User ID
username String Username (letters/digits/underscores/hyphens)
email String Email
phone String Phone
status Integer Status (0-2)
firstLogin Integer Whether first login
classLevel Integer Classification level
roles List Role code list
password String Initial password when creating a user (write-only, not serialized into responses)
builtin Integer Whether a built-in default user (admin/secure/audit), response field only
otpEnabled Integer Whether OTP two-factor authentication is enabled, response field only
expireDate LocalDateTime Account expiration time; empty means permanently valid
createdTime LocalDateTime Creation time
description String Remarks/description

# UserPermissionController

Base Path: /api/users

MethodPathFunctionParametersReturn TypeDescription
GET/api/users/{userId}/permissiongetByUserId@PathVariable Long userIdResult<UserPermissionDTO>Get the permission configuration of the specified user (IP whitelist/time/classification level/extra roles)
PUT/api/users/{userId}/permissionsaveOrUpdate@PathVariable Long userId, @RequestBody UserPermissionDTO dtoResult<Void>Save/update user permission configuration, audit recorded (AUTH operation)

UserPermissionDTO Fields

Field Type Description
id Long Permission configuration record ID
userId Long User ID
allowedIps String IP whitelist allowed for access, multiple separated by commas
accessStartTime String Allowed access start time (HH:mm:ss)
accessEndTime String Allowed access end time (HH:mm:ss)
accessWeekdays String Allowed access weekdays, comma-separated 1-7
dataClassLevel Integer Data classification level (0=public 1=internal 2=secret 3=confidential 4=top secret)
extraRoleCodes String Additionally granted role codes, comma-separated
role String Permission assignment role (frontend field, mapped to extraRoleCodes)
ipWhitelist String IP whitelist (frontend field, mapped to allowedIps)
startTime String Access start time (frontend field, mapped to accessStartTime)
endTime String Access end time (frontend field, mapped to accessEndTime)
classLevel Integer Data classification level (frontend field, mapped to dataClassLevel)
timeLimitEnabled Integer Whether to enable time restriction

# VirtualHostController

Base Path: /api/config/web/hosts

MethodPathFunctionParametersReturn TypeDescription
GET/api/config/web/hosts/alllistAllResult<List<VirtualHost>>Query all virtual hosts (no pagination, for dropdown selection)
GET/api/config/web/hostslist@RequestParam int page, int size, String name, String alias, String docBaseResult<PageResult<VirtualHost>>Paged query of virtual host list
GET/api/config/web/hosts/{id}get@PathVariable Long idResult<VirtualHost>Get virtual host details by ID; returns 404 if not found
POST/api/config/web/hostscreate@RequestBody VirtualHost hostResult<Void>Add a virtual host, requires restart to take effect, audit recorded
PUT/api/config/web/hosts/{idOrName}update@PathVariable String idOrName, @RequestBody VirtualHost hostResult<Void>Update a virtual host by ID or name, requires restart to take effect
DELETE/api/config/web/hosts/{idOrName}delete@PathVariable String idOrNameResult<Void>Delete a virtual host by ID or name, requires restart to take effect
PUT/api/config/web/hosts/{idOrName}/defaultsetDefault@PathVariable String idOrNameResult<Void>Set the specified virtual host as the default host, requires restart to take effect

VirtualHost Fields

Field Type Description
name String Virtual host name
domain String Domain name
alias String Alias
docBase String Application root directory (docBase)
enabled Integer Whether enabled
isDefault Integer Whether it is the default host
serviceName String Owning service (Service) name
logFile String Log file path
accessIpWhitelist String Access IP whitelist
accessIpBlacklist String Access IP blacklist
accessDomainWhitelist String Access domain whitelist
accessDomainBlacklist String Access domain blacklist
accessTime String Access time restriction
sso String Single sign-on configuration
ssoHttpOnly Integer Whether the SSO Cookie is HttpOnly
extraProps String Extended properties (custom property string)

# Appendix: HTTP Method Description

Method Description
GET Retrieve a resource
POST Create a resource
PUT Update a resource
DELETE Delete a resource
PATCH Partially update a resource
REQUEST Generic request
编辑页面 (opens new window)

← Monitoring Metrics Release Notes→

  • 浅色模式