API Documentation
# AlertConfigController
Base Path: /api/alert-config
| Method | Path | Function | Parameters | Return Type | Description |
|---|---|---|---|---|---|
| GET | /api/alert-config | getConfig | Result<AlertConfigDTO> | Query alert configuration (switch/notification methods/threshold metrics) | |
| PUT | /api/alert-config | saveConfig | @RequestBody AlertConfigDTO dto | Result<Void> | Save alert configuration; captures changes before saving for audit comparison |
| POST | /api/alert-config/restore-defaults | restoreDefaults | Result<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
| Method | Path | Function | Parameters | Return Type | Description |
|---|---|---|---|---|---|
| GET | /api/apps/{appId}/class-libs | list | @PathVariable Long appId, @RequestParam int page, int size | Result<PageResult<Map<String, Object>>> | Paged query of an application's class library (JAR packages in the lib directory) list |
| POST | /api/apps/{appId}/class-libs | upload | @PathVariable String appId, @RequestParam MultipartFile file | Result<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-libs | delete | @PathVariable String appId, @RequestParam String jarName | Result<Void> | Delete the specified JAR package from the application class library |
# AppIncrementController
Base Path: /api/apps/{appId}/increments
| Method | Path | Function | Parameters | Return Type | Description |
|---|---|---|---|---|---|
| GET | /api/apps/{appId}/increments | list | @PathVariable Long appId, @RequestParam int page, int size | Result<PageResult<AppIncrement>> | Paged query of an application's incremental update package list |
| POST | /api/apps/{appId}/increments | upload | @PathVariable String appId, @RequestParam MultipartFile file, String description | Result<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 id | Result<Void> | Delete the specified incremental update package |
| POST | /api/apps/{appId}/increments/{id}/apply | apply | @PathVariable String appId, Long id | Result<Void> | Apply the specified incremental update package to the application |
# ApplicationController
Base Path: /api/apps
| Method | Path | Function | Parameters | Return Type | Description |
|---|---|---|---|---|---|
| GET | /api/apps | list | AppQueryDTO query | Result<PageResult<ApplicationDTO>> | Paged query of application list (filter by name/context path/virtual host/status) |
| GET | /api/apps/{id} | get | @PathVariable Application app | Result<ApplicationDTO> | Get application details by ID |
| GET | /api/apps/{id}/urls | getAppUrls | @PathVariable Application app | Result<List<AppUrlDTO>> | Get the access URL list of the application |
| GET | /api/apps/check-name | checkAppName | @RequestParam String appName, String virtualHost, Long excludeId | Result<Boolean> | Check whether the application name already exists (can exclude a specified ID) |
| GET | /api/apps/check-context | checkContextPath | @RequestParam String contextPath, String virtualHost, Long excludeId | Result<Boolean> | Check whether the context path already exists (can exclude a specified ID) |
| GET | /api/apps/check-context-backup | checkContextPathForBackup | @RequestParam String contextPath, String virtualHost, String appName | Result<Boolean> | Check context path conflicts during backup restore |
| POST | /api/apps | create | @RequestBody ApplicationDTO dto | Result<Long> | Create an application, returns the new application ID |
| PUT | /api/apps/{id} | update | @PathVariable Application app, @RequestBody ApplicationDTO dto | Result<Void> | Update application configuration (audit records before/after differences) |
| DELETE | /api/apps/{id} | delete | @PathVariable Application app, @RequestParam boolean force | Result<Void> | Undeploy/delete an application; force=true deletes forcibly (does not go to the recycle bin) |
| POST | /api/apps/{id}/start | start | @PathVariable Application app | Result<Void> | Start the application |
| POST | /api/apps/{id}/stop | stop | @PathVariable Application app | Result<Void> | Stop the application |
| POST | /api/apps/{id}/reload | reload | @PathVariable Application app | Result<Void> | Reload the application |
| POST | /api/apps/{id}/redeploy | redeploy | @PathVariable Application app, @RequestPart ApplicationDTO dto, MultipartFile file, String localWarPath, String localDirPath | Result<Void> | Redeploy the application (supports uploading a war file or specifying a local server path) |
| POST | /api/apps/{id}/deploy | deploy | @PathVariable Application app, @RequestParam MultipartFile file, String localWarPath, String localDirPath | Result<Void> | Deploy an application package (one of: war file / local war path / local directory path) |
| GET | /api/apps/war-browse | browseWarFiles | @RequestParam String path | Result<ServerFileListResponse> | Browse deployable war file directories on the server |
| GET | /api/apps/backups | getBackups | Result<List<Map<String, Object>>> | Get the backup list of all applications | |
| POST | /api/apps/{id}/backups | createBackup | @PathVariable Application app | Result<Void> | Create a backup for the specified application |
| GET | /api/apps/backups/{backupName}/config | getBackupConfig | @PathVariable String backupName | Result<Map<String, Object>> | Get the application configuration in the backup package |
| POST | /api/apps/backups/{backupName}/restore | restoreBackup | @PathVariable String backupName, @RequestBody ApplicationDTO dto | ResponseEntity<Result<Void>> | Restore an application from a backup; returns 409 on conflict |
| POST | /api/apps/backups/{backupName}/restore-force | restoreBackupForce | @PathVariable String backupName, @RequestBody ApplicationDTO dto | Result<Void> | Forcibly restore an application from a backup (overwrites the existing application) |
| GET | /api/apps/backups/{backupName}/download | downloadBackup | @PathVariable String backupName | ResponseEntity<Resource> | Download the backup package file |
| DELETE | /api/apps/backups/{backupName} | deleteBackup | @PathVariable String backupName | Result<Void> | Delete the backup package |
| GET | /api/apps/recycled | getRecycledApps | AppQueryDTO query | Result<List<RecycledAppDTO>> | Get the list of applications in the recycle bin |
| POST | /api/apps/recycle/{fileName}/restore | restore | @PathVariable String fileName, @RequestBody ApplicationDTO dto | Result<Void> | Restore an application from the recycle bin |
| GET | /api/apps/recycle/{fileName}/config | getRecycleArchiveConfig | @PathVariable String fileName | Result<Map<String, Object>> | Get the application configuration in the recycle bin archive |
| DELETE | /api/apps/recycle/{fileName}/permanent | permanentlyDelete | @PathVariable String fileName | Result<Void> | Permanently delete an application in the recycle bin (irrecoverable) |
| DELETE | /api/apps/external | deleteExternal | @RequestBody ExternalAppInfo info | Result<Void> | Delete an externally deployed application (not deployed by the console) |
| POST | /api/apps/external/backups | createExternalBackup | @RequestBody ExternalAppInfo info | Result<Map<String, Object>> | Create a backup for an externally deployed application |
| POST | /api/apps/external/redeploy | redeployExternal | @RequestPart ExternalAppInfo info, MultipartFile file, String localWarPath | Result<Void> | Redeploy an external application |
| POST | /api/apps/external/reload | reloadExternal | @RequestBody ExternalAppInfo info | Result<Void> | Reload an external application |
| POST | /api/apps/external/redeploy-with-props | redeployExternalWithProps | @RequestPart ExternalAppInfo info, ApplicationDTO dto, MultipartFile file, String localWarPath | Result<Void> | Redeploy an external application with configuration properties |
| GET | /api/apps/recycle/config | getRecycleConfig | Result<Map<String, Object>> | Get recycle bin configuration (retention path/retention days, etc.) | |
| PUT | /api/apps/recycle/config | updateRecycleConfig | @RequestBody Map<String, Object> config | Result<?> | Save recycle bin configuration; returns 400 with field errors on validation failure |
| GET | /api/apps/backup/config | getBackupConfig | Result<Map<String, Object>> | Get backup configuration | |
| PUT | /api/apps/backup/config | updateBackupConfig | @RequestBody Map<String, Object> config | Result<?> | 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
| Method | Path | Function | Parameters | Return Type | Description |
|---|---|---|---|---|---|
| GET | /api/audit/operation-logs | list | AuditLogQueryDTO query | Result<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 id | Result<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/export | export | AuditLogQueryDTO query, HttpServletResponse response | void (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
| Method | Path | Function | Parameters | Return Type | Description |
|---|---|---|---|---|---|
| POST | /api/auth/login | login | @RequestBody LoginRequest request, HttpServletRequest servletRequest | Result<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-login | cliLogin | @RequestBody LoginRequest request, HttpServletRequest servletRequest | Result<LoginResponse> | CLI login: same flow as login but does not validate the graphic captcha |
| POST | /api/auth/logout | logout | HttpServletRequest request | Result<Void> | Logout: adds the current token to the blacklist and records the logout log |
| GET | /api/auth/captcha-status | getCaptchaStatus | Result<Map<String, Object>> | Get the graphic captcha switch status (enabled) | |
| GET | /api/auth/otp-status | getOtpStatus | Result<Map<String, Object>> | Get the global switch status of OTP two-factor authentication | |
| GET | /api/auth/email-code/status | getEmailCodeStatus | Result<Map<String, Object>> | Get the switch status of email code login verification | |
| POST | /api/auth/email-code/send | sendEmailCode | @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/setup | setupOtp | @RequestBody Map<String, String> body | Result<Map<String, Object>> | Generate an OTP secret and QR code for the currently logged-in user (secret, otpAuthUri, qrCodeDataUri) |
| POST | /api/auth/otp/verify-setup | verifyOtpSetup | @RequestBody Map<String, String> body (secret, code) | Result<Void> | Verify the dynamic code and complete OTP binding |
| POST | /api/auth/otp/disable | disableOtp | @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/profile | updateProfile | @RequestBody Map<String, String> body (phone/email/description) | Result<Void> | Update the personal information of the currently logged-in user |
| GET | /api/auth/me | me | Result<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
| Method | Path | Function | Parameters | Return Type | Description |
|---|---|---|---|---|---|
| GET | /api/baseline/rules | listRules | Result<String> | List all baseline check rules (XML/JSON string) | |
| GET | /api/baseline/rules/{id} | getRule | @PathVariable String id | Result<String> | Get a single rule's content by rule ID (id allows only letters, digits, underscores and hyphens, otherwise 400) |
| POST | /api/baseline/rules | saveRule | @RequestBody String ruleXml | Result<String> | Add a baseline check rule (raw rule XML as the input) |
| PUT | /api/baseline/rules/{id} | updateRule | @PathVariable String id, @RequestBody String ruleXml | Result<String> | Update the rule with the specified ID (saves the entire rule XML) |
| DELETE | /api/baseline/rules/{id} | deleteRule | @PathVariable String id | Result<String> | Delete the baseline rule with the specified ID |
| PUT | /api/baseline/rules/{id}/enabled | setRuleEnabled | @PathVariable String id, @RequestBody EnabledRequest request | Result<String> | Enable/disable the specified baseline rule |
| GET | /api/baseline/script | readScript | @RequestParam String fileName | Result<String> | Read the content of a check script file |
| POST | /api/baseline/script | saveScript | @RequestParam String fileName, @RequestBody String content | Result<String> | Save a check script file |
| POST | /api/baseline/checks | startCheck | @RequestBody StartCheckRequest request | Result<String> | Manually trigger a baseline check, returns the task ID (empty ruleIds means all rules) |
| GET | /api/baseline/checks/{taskId} | pollTask | @PathVariable String taskId | Result<String> | Poll the execution progress/result of a check task |
| GET | /api/baseline/reports | listReports | ReportQuery 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 id | Result<BaselineReport> | Get details of a single baseline report |
| DELETE | /api/baseline/reports/{id} | deleteReport | @PathVariable Long id | Result<Void> | Delete a single baseline report |
| DELETE | /api/baseline/reports | deleteReports | @RequestBody List<Long> ids | Result<Void> | Batch delete baseline reports |
| GET | /api/baseline/reports/{id}/download | downloadReport | @PathVariable Long id, @RequestParam(required=false) String format | ResponseEntity<ByteArrayResource> | Download a single report file (format optional, e.g. pdf/html, returned as an attachment stream) |
| POST | /api/baseline/reports/export | exportReports | @RequestBody List<Long> ids | ResponseEntity<ByteArrayResource> | Package multiple reports into a ZIP for export and download |
| GET | /api/baseline/settings | getSettings | Result<String> | Read all baseline check configuration items | |
| PUT | /api/baseline/settings | saveSetting | @RequestBody ConfigEntry entry | Result<String> | Modify a single baseline configuration item; cron/master switch changes publish events for hot-reloading scheduled tasks |
| GET | /api/baseline/report-config | getReportConfig | Result<String> | Read report-related configuration (same as getSettings) | |
| PUT | /api/baseline/report-config | saveReportConfig | @RequestBody ConfigEntry entry | Result<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
| Method | Path | Function | Parameters | Return Type | Description |
|---|---|---|---|---|---|
| GET | /api/auth/captcha | getCaptcha | Result<Map<String, String>> | Generate a graphic captcha, returns the key and base64 image | |
| GET | /api/auth/captcha-test | getCaptchaTest | @RequestParam String key | Result<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
| Method | Path | Function | Parameters | Return Type | Description |
|---|---|---|---|---|---|
| GET | /api/config/web/certs | list | @RequestParam int page, int size, String name, String storeType | Result<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 id | Result<CertificateStore> | Get certificate store details by ID (password returned masked); returns 404 if not found |
| POST | /api/config/web/certs | create | @RequestBody CertificateStoreDTO dto | Result<Long> | Create a certificate store, returns the new record ID |
| PUT | /api/config/web/certs/{idOrName} | update | @PathVariable String idOrName, @RequestBody CertificateStoreDTO dto | Result<Void> | Update a certificate store by ID or name |
| DELETE | /api/config/web/certs/{idOrName} | delete | @PathVariable String idOrName | Result<Void> | Delete a certificate store by ID or name |
| GET | /api/config/web/certs/{id}/entries | listEntries | @PathVariable Long id, @RequestParam String password | Result<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 password | Result<Void> | Delete the certificate entry with the specified alias from the store |
| POST | /api/config/web/certs/{idOrName}/import-entries | importEntries | @PathVariable String idOrName, @RequestParam MultipartFile file, String sourcePassword, String aliases, String targetPassword, String targetAlias, String entryPassword | Result<Void> | Import entries from an uploaded certificate store file (optional alias filtering and target alias/password) |
| POST | /api/config/web/certs/{idOrName}/import-pem | importPem | @PathVariable String idOrName, @RequestParam String content, String alias, String targetPassword, String entryPassword, boolean isPrivateKey | Result<Void> | Import a certificate or private key by pasting PEM content (isPrivateKey marks a private key) |
| POST | /api/config/web/certs/{idOrName}/import | importStore | @PathVariable String idOrName, @RequestParam MultipartFile file | Result<Void> | Import an entire certificate store file (overwrite and replace) |
| GET | /api/config/web/certs/{id}/download | download | @PathVariable Long id | ResponseEntity<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
| Method | Path | Function | Parameters | Return Type | Description |
|---|---|---|---|---|---|
| POST | /api/class-analysis/upload | upload | @RequestParam("file") MultipartFile file | Result<Map<String, Object>> | Upload a file to be analyzed (jar/war, etc.), returns filePath/fileName/fileSize |
| POST | /api/class-analysis/start | start | @RequestBody ClassAnalysisStartRequest req | Result<Map<String, Object>> | Start a class analysis task, returns recordId (analysis record ID) |
| GET | /api/class-analysis/records/{id} | getRecord | @PathVariable Long id | Result<ClassAnalysisRecordDTO> | Query details of a single class analysis record (including the issue list) |
| GET | /api/class-analysis/records | listRecords | ClassAnalysisRecordQuery 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 id | Result<Void> | Delete the specified class analysis record |
| GET | /api/class-analysis/records/{id}/export | exportReport | @PathVariable Long id | ResponseEntity<byte[]> | Render the analysis record as a PDF report for download |
| GET | /api/class-analysis/deployed-apps | listDeployedApps | @RequestParam(required=false) String keyword, @RequestParam(defaultValue="1") int page, @RequestParam(defaultValue="20") int pageSize | Result<PageResult<AppOptionDTO>> | 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
| Method | Path | Function | Parameters | Return Type | Description |
|---|---|---|---|---|---|
| GET | /api/classloader/tree | getClassLoaderTree | Result<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 id | Result<ClassLoaderDetail> | Get class loader details by ID (class name, instance, hash, class path, etc.) |
| GET | /api/classloader/search | searchClass | @RequestParam String className | Result<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
| Method | Path | Function | Parameters | Return Type | Description |
|---|---|---|---|---|---|
| GET | /api/config/jvm/crac/env-check | envCheck | Result<CracEnvCheckReport> | Synchronously run 7 CRaC environment compatibility checks (triggered when the CRaC switch is turned on) | |
| GET | /api/config/jvm/crac/status | status | Result<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/images | makeImage | @RequestBody CracMakeImageRequest request | Result<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
| Method | Path | Function | Parameters | Return Type | Description |
|---|---|---|---|---|---|
| GET | /api/dashboard/overview | getOverview | Result<DashboardOverviewDTO> | Get dashboard home overview data (system statistics, application status, quick info, etc.) |
# DatasourceController
Base Path: /api/resources/datasources
| Method | Path | Function | Parameters | Return Type | Description |
|---|---|---|---|---|---|
| GET | /api/resources/datasources | list | DatasourceQueryDTO query | Result<PageResult<Datasource>> | Paged query of datasource list |
| GET | /api/resources/datasources/{id} | get | @PathVariable Long id | Result<Datasource> | Get datasource details by ID |
| POST | /api/resources/datasources (JSON) | createByJson | @Valid @RequestBody Datasource ds | Result<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 overwrite | Result<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 ds | Result<Void> | Update a datasource by ID or name |
| DELETE | /api/resources/datasources/{idOrName} | delete | @PathVariable String idOrName | Result<Void> | Delete a datasource by ID or name |
| POST | /api/resources/datasources/{idOrName}/status | toggleStatus | @PathVariable String idOrName, @RequestParam Integer status | Result<Void> | Enable/disable a datasource (status allows only 0 or 1) |
| POST | /api/resources/datasources/ping | pingByParams | @RequestBody Datasource ds | Result<Map<String, Object>> | Test datasource connectivity with the given parameters (url is required) |
| POST | /api/resources/datasources/{idOrName}/ping | ping | @PathVariable String idOrName | Result<Map<String, Object>> | Test connectivity of an existing datasource |
| POST | /api/resources/datasources/{idOrName}/driver | uploadDriver | @PathVariable String idOrName, @RequestParam MultipartFile driverFile, boolean overwrite | Result<Void> | Upload a JDBC driver package for the datasource |
| GET | /api/resources/datasources/driver-exists | checkDriverExists | @RequestParam String filename | Result<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-path | checkDriverPath | @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
| Method | Path | Function | Parameters | Return Type | Description |
|---|---|---|---|---|---|
| GET | /api/config/web/channels | list | @RequestParam int page, int size, String name, String protocol, Integer enabled | Result<PageResult<HttpChannel>> | Paged query of HTTP channel list |
| GET | /api/config/web/channels/{id} | get | @PathVariable Long id | Result<HttpChannel> | Get HTTP channel details by ID; returns 404 if not found |
| POST | /api/config/web/channels | create | @RequestBody HttpChannel channel | Result<Void> | Add an HTTP channel (requires restart to take effect) |
| PUT | /api/config/web/channels/{idOrName} | update | @PathVariable String idOrName, @RequestBody HttpChannel channel | Result<Void> | Update an HTTP channel by ID or name (requires restart to take effect) |
| DELETE | /api/config/web/channels/{idOrName} | delete | @PathVariable String idOrName | Result<Void> | Delete an HTTP channel by ID or name (requires restart to take effect) |
| GET | /api/config/web/channels/cipher-suites | getSupportedCipherSuites | Result<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
| Method | Path | Function | Parameters | Return Type | Description |
|---|---|---|---|---|---|
| GET | /api/inspection/reports | list | @RequestParam(required=false) String name, String status, LocalDateTime startTime, LocalDateTime endTime, @RequestParam(defaultValue="1") int page, @RequestParam(defaultValue="10") int size | Result<PageResult<InspectionReportDTO>> | Paged query of inspection report list (time format yyyy-MM-dd HH:mm:ss) |
| GET | /api/inspection/reports/has-running | hasRunning | Result<Boolean> | Query whether there is an inspection task currently running | |
| GET | /api/inspection/reports/{id} | get | @PathVariable Long id | Result<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}/status | status | @PathVariable Long id | Result<String> | Query the execution status of an inspection report (RUNNING/SUCCESS/FAILED, etc.) |
| GET | /api/inspection/reports/{id}/summary | summary | @PathVariable Long id | Result<InspectionReportDTO.InspectionSummaryDTO> | Get the report summary (counts of CPU/memory/heap/disk exceeding 80%) |
| POST | /api/inspection/reports | trigger | @RequestBody @Valid InspectionTriggerDTO dto | Result<InspectionReportDTO> | Trigger a new inspection, returns the report (dto.timeoutSeconds is the collection timeout in seconds) |
| POST | /api/inspection/reports/{id}/rerun | rerun | @PathVariable Long id | Result<InspectionReportDTO> | Re-run an inspection based on a historical report |
| GET | /api/inspection/reports/{id}/download | download | @PathVariable Long id | ResponseEntity<Resource> | Download the inspection report ZIP package (including all snapshot files) |
| DELETE | /api/inspection/reports/{id} | delete | @PathVariable Long id | Result<Void> | Delete the specified inspection report |
| GET | /api/inspection/reports/{id}/snapshots/{type} | snapshotText | @PathVariable Long id, @PathVariable String type | Result<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}/download | downloadSnapshot | @PathVariable Long id, @PathVariable String type | ResponseEntity<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
| Method | Path | Function | Parameters | Return Type | Description |
|---|---|---|---|---|---|
| GET | /api/monitor/invoke-chain/records | listRecords | @RequestParam(required=false) LocalDateTime startTime, LocalDateTime endTime, String status, Long minSize, @RequestParam(defaultValue="1") int page, @RequestParam(defaultValue="5") int size | Result<PageResult<InvokeChainTrace>> | 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 id | Result<Void> | Delete the specified trace record |
| GET | /api/monitor/invoke-chain/settings | getSettings | Result<Map<String, Object>> | Get invocation chain analysis configuration (including apmHome, etc.) | |
| PUT | /api/monitor/invoke-chain/settings/apm-home | saveApmHome | @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/start | startTrace | @RequestBody @Valid InvokeChainTraceStartRequest request | Result<Map<String, Object>> | Start invocation chain tracing (parameters such as cost threshold/package filtering) |
| POST | /api/monitor/invoke-chain/trace/stop | stopTrace | Result<Map<String, Object>> | Stop the current invocation chain trace | |
| GET | /api/monitor/invoke-chain/trace/status | status | Result<Map<String, Object>> | Query the trace running status | |
| GET | /api/monitor/invoke-chain/records/{id}/xml | downloadXml | @PathVariable Long id | ResponseEntity<Resource> | Download the trace result XML file |
| GET | /api/monitor/invoke-chain/records/{id}/flame-graph | flameGraph | @PathVariable Long id | ResponseEntity<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
| Method | Path | Function | Parameters | Return Type | Description |
|---|---|---|---|---|---|
| GET | /api/config/jmx | getConfig | Result<JmxConfig> | Get JMX configuration (keyStorePassword/keyPassword returned masked with asterisks) | |
| GET | /api/config/jmx/cipher-suites | getSupportedCipherSuites | Result<List<String>> | Get the list of strong cipher suites supported by the JVM (weak suites filtered out) | |
| PUT | /api/config/jmx | saveConfig | @RequestBody JmxConfig config | Result<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
| Method | Path | Function | Parameters | Return Type | Description |
|---|---|---|---|---|---|
| GET | /api/resources/jndi | list | PageQueryDTO query | Result<PageResult<JndiResource>> | Paged query of JNDI resource list |
| GET | /api/resources/jndi/{id} | get | @PathVariable Long id | Result<JndiResource> | Get JNDI resource details by ID; returns 404 if not found |
| POST | /api/resources/jndi | create | @RequestBody JndiResourceDTO dto | Result<Void> | Create a JNDI resource |
| PUT | /api/resources/jndi/{id} | update | @PathVariable Long id, @RequestBody JndiResourceDTO dto | Result<Void> | Update a JNDI resource |
| DELETE | /api/resources/jndi/{id} | delete | @PathVariable Long id | Result<Void> | Delete a JNDI resource |
| POST | /api/resources/jndi/{id}/status | toggleStatus | @PathVariable Long id, @RequestParam Integer status | Result<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
| Method | Path | Function | Parameters | Return Type | Description |
|---|---|---|---|---|---|
| GET | /api/config/jvm | getConfig | Result<JvmConfig> | Get JVM configuration | |
| PUT | /api/config/jvm | saveConfig | @RequestBody JvmConfig config | Result<?> | 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
| Method | Path | Function | Parameters | Return Type | Description |
|---|---|---|---|---|---|
| GET | /api/license/info | info | Result<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-remaining | daysRemaining | Result<Map<String, Object>> | Get the remaining days of the license | |
| POST | /api/license/update | update | @RequestParam MultipartFile file, String content, String fileName | Result<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
| Method | Path | Function | Parameters | Return Type | Description |
|---|---|---|---|---|---|
| GET | /api/logs/files | getLogFiles | Result<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/content | getLogContent | @RequestParam String fileName, long offset, String direction, int pageSize, String keyword, String logLevel, String startTime, String endTime | Result<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/raw | getLogRawContent | @RequestParam String fileName | Result<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/config | getLogConfig | Result<Map<String, Object>> | Get system log and access log configuration (two parts: systemLog/accessLog) | |
| PUT | /api/logs/config | updateLogConfig | @RequestBody Map<String, Object> config | Result<?> | 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/rotate | rotateLog | @RequestParam String fileName | Result<Void> | Rotate the specified log file |
| DELETE | /api/logs/clear | clearLogs | @RequestParam String fileName | Result<Void> | Clear the content of the specified log file |
| POST | /api/logs/export | exportLog | @RequestBody Map<String, String> body | Result<Map<String, Object>> | Generate a log export download link (returns downloadUrl and the zip file name) |
| GET | /api/logs/download | downloadLog | @RequestParam String fileName, String logType, String keyword, String logLevel, String startTime, String endTime, HttpServletResponse response | void | Download the log zip file (only matching log entries are exported when filter conditions are present) |
| POST | /api/logs/config/sync | syncLogConfig | Result<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
| Method | Path | Function | Parameters | Return Type | Description |
|---|---|---|---|---|---|
| GET | /api/audit/login-logs | list | LoginLogQueryDTO query | Result<PageResult<LoginLog>> | Paged query of login audit logs |
| GET | /api/audit/login-logs/export | export | LoginLogQueryDTO query, HttpServletResponse response | void | Export login audit logs as a CSV wrapped in a zip (including event time, account, event type, IP, description, result) |
# MetricsController
Base Path: /metrics
| Method | Path | Function | Parameters | Return Type | Description |
|---|---|---|---|---|---|
| GET | /metrics | metrics | HttpServletRequest servletRequest, @RequestHeader String authHeader | ResponseEntity<?> | Prometheus metrics endpoint (text/plain), 404 when the switch is off; supports Basic Auth / Access Token + IP whitelist |
| GET | /metrics/collectors | listCollectors | HttpServletRequest servletRequest, @RequestHeader String authHeader | ResponseEntity<?> | List all collector names and category mappings (JSON, requires the Restful switch enabled and authentication passed) |
| GET | /metrics/data | collectAll | HttpServletRequest servletRequest, @RequestHeader String authHeader | ResponseEntity<?> | Get all monitor data (merging all collectors), returns RestfulMetricsResponse |
| GET | /metrics/data/{category} | collectCategory | @PathVariable String category, HttpServletRequest servletRequest, @RequestHeader String authHeader | ResponseEntity<?> | 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 authHeader | ResponseEntity<?> | Get monitor data of a single collector (category/name); unknown collector returns 404 |
# MonitorConfigController
Base Path: /api/monitor/config
| Method | Path | Function | Parameters | Return Type | Description |
|---|---|---|---|---|---|
| GET | /api/monitor/config | getConfig | Result<MonitorConfig> | Get monitor service configuration (SNMP v3 passwords returned masked with asterisks; Prometheus credentials decrypted and returned with password masked) | |
| PUT | /api/monitor/config | saveConfig | @RequestBody MonitorConfigDTO dto | Result<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-defaults | restoreDefaults | Result<MonitorConfig> | Restore monitor service default configuration | |
| POST | /api/monitor/config/prometheus-auth-token/refresh | refreshPrometheusAuthToken | Result<Map<String, String>> | Regenerate the Prometheus Authorization Bearer token (plaintext returned only in this response, stored encrypted) | |
| PUT | /api/monitor/config/interface-service | updateInterfaceService | @RequestBody InterfaceServiceConfigDTO dto | Result<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-defaults | restoreInterfaceServiceDefaults | Result<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
| Method | Path | Function | Parameters | Return Type | Description |
|---|---|---|---|---|---|
| GET | /api/monitor/data/system | getSystemResource | Result<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/history | getSystemResourceHistory | @RequestParam LocalDateTime startTime, LocalDateTime endTime | Result<SystemResourceTrendDTO> | Query system resource historical trend data (default last 1 hour, max 30 days) |
| GET | /api/monitor/data/jvm | getJvmMonitor | Result<Map<String, Object>> | Get JVM memory/garbage collection real-time monitor data | |
| GET | /api/monitor/data/jvm/history | getJvmHistory | @RequestParam LocalDateTime startTime, LocalDateTime endTime | Result<JvmHistoryDTO> | Query JVM monitor history data (memory, GC trends, etc.) |
| GET | /api/monitor/data/threads | getThreadInfo | Result<Map<String, Object>> | Get JVM thread real-time monitor information | |
| GET | /api/monitor/data/fullgc/records | fullGcRecords | @RequestParam LocalDateTime startTime, LocalDateTime endTime, Integer current, Integer size | Result<Page<FullGcRecordDTO>> | Paged query of Full GC records (default last 1 day, max 30 days) |
| GET | /api/monitor/data/fullgc/trend | fullGcTrend | @RequestParam LocalDateTime startTime, LocalDateTime endTime | Result<FullGcTrendDTO> | Query Full GC trend statistics |
| GET | /api/monitor/data/fullgc/status | fullGcStatus | Result<Map<String, Object>> | Get Full GC collector status (supported: whether supported, listening: whether listening) | |
| POST | /api/monitor/data/fullgc/switch/on | fullGcSwitchOn | Result<Void> | Start Full GC collection listening | |
| POST | /api/monitor/data/fullgc/switch/off | fullGcSwitchOff | Result<Void> | Stop Full GC collection listening | |
| GET | /api/monitor/data/fullgc/export | exportFullGcRecords | @RequestParam LocalDateTime startTime, LocalDateTime endTime, HttpServletResponse response | void | Export Full GC records as a CSV file |
| GET | /api/monitor/data/jndi | getJndiTree | Result<Map<String, Object>> | Get the JNDI tree structure | |
| GET | /api/monitor/data/sql | getSqlTrace | Result<Map<String, Object>> | Get SQL trace monitor data | |
| GET | /api/monitor/data/perf | getPerfData | Result<Map<String, Object>> | Get performance collection data | |
| GET | /api/monitor/data/datasource | getDatasourceMonitor | Result<Map<String, Object>> | Get datasource connection pool real-time monitor data | |
| GET | /api/monitor/data/datasource-replay | getDatasourceReplay | Result<Map<String, Object>> | Get datasource monitor data (replay scenario, not restricted by switches) | |
| POST | /api/monitor/data/datasource/test | testDatasource | @RequestParam String jndiName | Result<Boolean> | Test connectivity of the specified JNDI datasource |
| GET | /api/monitor/data/datasource/history | getDatasourceHistory | @RequestParam LocalDateTime startTime, LocalDateTime endTime, String jndiName | Result<DatasourceTrendDTO> | Query datasource historical trend (filterable by JNDI name) |
| GET | /api/monitor/data/http | getHttpChannelMonitor | Result<Map<String, Object>> | Get HTTP channel real-time monitor data | |
| GET | /api/monitor/data/http-replay | getHttpChannelReplay | Result<Map<String, Object>> | Get HTTP channel monitor data (replay scenario) | |
| GET | /api/monitor/data/threadpool | getThreadPoolMonitor | Result<Map<String, Object>> | Get thread pool real-time monitor data | |
| GET | /api/monitor/data/threadpool-replay | getThreadPoolReplay | Result<Map<String, Object>> | Get thread pool monitor data (replay scenario) | |
| GET | /api/monitor/data/threadpool/history | getThreadPoolHistory | @RequestParam LocalDateTime startTime, LocalDateTime endTime, String poolName | Result<ThreadPoolHistoryDTO> | Query thread pool history data (filterable by thread pool name) |
| GET | /api/monitor/data/threadpool/{name}/detail | getThreadPoolDetail | @PathVariable String name | Result<Map<String, Object>> | Get detailed information of the specified thread pool |
| GET | /api/monitor/data/app-sessions | getAppSessionMonitor | Result<Map<String, Object>> | Get application session real-time monitor data | |
| GET | /api/monitor/data/app-sessions-replay | getAppSessionReplay | Result<Map<String, Object>> | Get application session monitor data (replay scenario) | |
| GET | /api/monitor/data/app-sessions/history | getAppSessionHistory | @RequestParam LocalDateTime startTime, LocalDateTime endTime, String contextPath | Result<AppSessionTrendDTO> | Query application session historical trend (filterable by application context path) |
| GET | /api/monitor/data/http/trend | getHttpChannelTrend | @RequestParam String port | Result<Map<String, Object>> | Get HTTP channel request trend data (filterable by port) |
| GET | /api/monitor/data/http/history | getHttpChannelHistory | @RequestParam LocalDateTime startTime, LocalDateTime endTime, String port | Result<HttpChannelHistoryDTO> | Query HTTP channel history data (filterable by port) |
| GET | /api/monitor/data/http-connections | getHttpConnections | Result<Map<String, Object>> | Get HTTP connection count data (shared by dashboard/monitor) |
# NotificationController
Base Path: /api/notifications
| Method | Path | Function | Parameters | Return Type | Description |
|---|---|---|---|---|---|
| GET | /api/notifications | list | @RequestParam Integer page, Integer size, Integer readStatus | Result<PageResult<Notification>> | Paged query of the current user's notification list (filterable by read status) |
| GET | /api/notifications/unread-count | unreadCount | Result<Map<String, Object>> | Get the current user's unread notification count | |
| PUT | /api/notifications/{id}/read | markRead | @PathVariable Long id | Result<Void> | Mark the specified notification as read |
| PUT | /api/notifications/read-all | markAllRead | Result<Void> | Mark all notifications of the current user as read | |
| POST | /api/notifications | create | @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/notifications | deleteBatch | @RequestBody List<Long> ids | Result<Integer> | Batch delete notifications, returns the number deleted |
# PasswordController
Base Path: /api/auth
| Method | Path | Function | Parameters | Return Type | Description |
|---|---|---|---|---|---|
| GET | /api/auth/password-policy | getPasswordPolicy | Result<PasswordPolicyDTO> | Get the current system password policy | |
| POST | /api/auth/change-password | changePassword | @RequestBody ChangePasswordRequest request | Result<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
| Method | Path | Function | Parameters | Return Type | Description |
|---|---|---|---|---|---|
| GET | /api/system/patches | list | PageQueryDTO query | Result<PageResult<Patch>> | Paged query of patch list |
| POST | /api/system/patches/upload | upload | @RequestParam String name, String version, String platform, String description, MultipartFile file | Result<Void> | Upload a patch package (multipart form) |
| POST | /api/system/patches/{id}/apply | apply | @PathVariable Long id, String upgradeNote, Integer forceUpgrade | Result<Void> | Apply (upgrade) the specified patch, with optional upgrade note and force upgrade flag |
| POST | /api/system/patches/{id}/rollback | rollback | @PathVariable Long id, String rollbackNote | Result<Void> | Roll back the specified patch |
| DELETE | /api/system/patches/{id} | delete | @PathVariable Long id | Result<Void> | Delete the specified patch |
| GET | /api/system/patches/{id}/progress | getProgress | @PathVariable Long id | Result<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
| Method | Path | Function | Parameters | Return Type | Description |
|---|---|---|---|---|---|
| GET | /api/monitor/replay/system | system | @RequestParam String start, String end | Result<Map<String, Object>> | Query system-dimension (host/system resource) historical sampling point replay data |
| GET | /api/monitor/replay/jvm | jvm | @RequestParam String start, String end | Result<Map<String, Object>> | Query JVM-dimension historical sampling point replay data |
| GET | /api/monitor/replay/datasource | datasource | @RequestParam String start, String end, String target | Result<Map<String, Object>> | Query historical sampling point replay data of the specified datasource (target) |
| GET | /api/monitor/replay/app-session | appSession | @RequestParam String start, String end, String target | Result<Map<String, Object>> | Query session count historical sampling point replay data of the specified application (target) |
| GET | /api/monitor/replay/http-channel | httpChannel | @RequestParam String start, String end, String target | Result<Map<String, Object>> | Query historical sampling point replay data of the specified HTTP channel (target) |
| GET | /api/monitor/replay/thread-pool | threadPool | @RequestParam String start, String end, String target | Result<Map<String, Object>> | Query historical sampling point replay data of the specified thread pool (target) |
# ResourceController
Base Path: /api/resources
| Method | Path | Function | Parameters | Return Type | Description |
|---|---|---|---|---|---|
| GET | /api/resources/permission-tree | permissionTree | Result<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
| Method | Path | Function | Parameters | Return Type | Description |
|---|---|---|---|---|---|
| GET | /api/roles | list | PageQueryDTO query, @RequestParam String roleCode, Integer builtin | Result<PageResult<RoleDTO>> | Paged query of role list (filterable by role code and whether built-in) |
| GET | /api/roles/all | listAll | Result<List<RoleDTO>> | Query all roles (no pagination) | |
| GET | /api/roles/{id} | get | @PathVariable Long id | Result<RoleDTO> | Get role details by ID |
| POST | /api/roles | create | @RequestBody RoleDTO dto | Result<Void> | Create a role (Create validation group, empty string fields normalized to null) |
| PUT | /api/roles/{id} | update | @PathVariable Long id, @RequestBody RoleDTO dto | Result<Void> | Update the specified role |
| DELETE | /api/roles/{id} | delete | @PathVariable Long id | Result<Void> | Delete the specified role |
| DELETE | /api/roles/batch | deleteBatch | @RequestBody List<Long> ids | Result<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
| Method | Path | Function | Parameters | Return Type | Description |
|---|---|---|---|---|---|
| GET | /api/script-recording | list | @RequestParam String name, String status, LocalDateTime startTime, LocalDateTime endTime, long page, long size | Result<PageResult<ScriptRecordingVO>> | Paged query of script recording task list, supports name/status/time range filtering |
| GET | /api/script-recording/active | active | Authentication authentication | Result<Boolean> | Whether the current user has a recording task in progress (used for logout confirmation, returns only their own status) |
| POST | /api/script-recording | create | @RequestBody ScriptRecordingCreateDTO dto, Authentication authentication | Result<ScriptRecordingVO> | Create a script recording task (with the current user as creator), audit recorded |
| POST | /api/script-recording/{id}/stop | stop | @PathVariable Long id, Authentication authentication | Result<ScriptRecordingStopResult> | Stop recording and generate scripts (aascli/postman/curl) |
| POST | /api/script-recording/{id}/stop-empty | stopEmpty | @PathVariable Long id, Authentication authentication | Result<Void> | Stop recording without generating scripts (empty task discarded), audit recorded |
| DELETE | /api/script-recording/{id} | delete | @PathVariable Long id, Authentication authentication | Result<Void> | Delete a recording task (creator only) |
| GET | /api/script-recording/{id}/download | download | @PathVariable Long id, @RequestParam List<String> formats | ResponseEntity<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
| Method | Path | Function | Parameters | Return Type | Description |
|---|---|---|---|---|---|
| GET | /api/security/config | getConfigs | Result<Map<String, String>> | Get all security configuration items (smtp_password uniformly returned as an encrypted string) | |
| PUT | /api/security/config | updateConfigs | @RequestBody Map<String, String> configs, @RequestHeader String X-Current-User-Email | Result<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-mail | testMail | @RequestBody Map<String, String> body (to) | Result<Map<String, Object>> | Send an SMTP test email to the specified recipient |
| GET | /api/security/config/smtp | getSmtpEnabled | Result<Map<String, Object>> | Get the email verification switch status | |
| PUT | /api/security/config/smtp | updateSmtpEnabled | @RequestBody Map<String, Object> body (smtpEnabled) | Result<Void> | Update the email verification switch |
| GET | /api/security/config/auth-policy | getAuthPolicy | Result<Map<String, Object>> | Get authentication policy configuration | |
| PUT | /api/security/config/auth-policy | updateAuthPolicy | @RequestBody Map<String, Object> policy | Result<Void> | Save authentication policy configuration |
| POST | /api/security/config/backup-now | backupNow | Result<Map<String, Object>> | Immediately execute a manual backup of business configuration | |
| GET | /api/security/config/backup-list | listBackups | Result<List<Map<String, Object>>> | Query the business configuration backup file list | |
| POST | /api/security/config/backup-restore | restoreBackup | @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 fileName | Result<Void> | Delete the specified business configuration backup file |
| POST | /api/security/config/restart | restart | Result<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
| Method | Path | Function | Parameters | Return Type | Description |
|---|---|---|---|---|---|
| GET | /api/security/realms | list | SecurityRealmQueryDTO query | Result<PageResult<SecurityRealmDTO>> | Paged query of security realm list |
| GET | /api/security/realms/all | listAll | Result<List<SecurityRealmDTO>> | Query all security realms (no pagination) | |
| GET | /api/security/realms/{id} | get | @PathVariable Long id | Result<SecurityRealmDTO> | Get security realm details by ID (returns 404 if not found) |
| POST | /api/security/realms | create | @RequestBody SecurityRealmDTO dto | Result<Void> | Create a security realm (requires restart to take effect) |
| PUT | /api/security/realms/{id} | update | @PathVariable Long id, @RequestBody SecurityRealmDTO dto | Result<Void> | Update a security realm (requires restart to take effect) |
| DELETE | /api/security/realms/{id} | delete | @PathVariable Long id | Result<Void> | Delete a security realm (requires restart to take effect) |
| DELETE | /api/security/realms/batch | deleteBatch | @RequestBody List<Long> ids | Result<Integer> | Batch delete security realms, returns the number deleted |
| GET | /api/security/realms/user-database-resources | getUserDatabaseResources | Result<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
| Method | Path | Function | Parameters | Return Type | Description |
|---|---|---|---|---|---|
| GET | /api/config/web/sessions/all | listAll | Result<List<SessionManager>> | Query all session managers (no pagination) | |
| GET | /api/config/web/sessions/redis-plugin-status | redisPluginStatus | Result<Map<String, Boolean>> | Get Redis session plugin status (loaded/jarsInstalled/commonLoaderConfigured) | |
| GET | /api/config/web/sessions | list | @RequestParam int page, int size, String name, String type | Result<PageResult<SessionManagerListItem>> | Paged query of session manager list (filterable by name and type) |
| GET | /api/config/web/sessions/{id} | get | @PathVariable Long id | Result<SessionManagerListItem> | Get session manager details by ID (returns 404 if not found) |
| POST | /api/config/web/sessions | create | @RequestBody SessionManager sm | Result<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 sm | Result<Void> | Update a session manager (same validation as create, excluding itself from duplicate check) |
| DELETE | /api/config/web/sessions/{id} | delete | @PathVariable Long id | Result<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
| Method | Path | Function | Parameters | Return Type | Description |
|---|---|---|---|---|---|
| GET | /api/resources/sharedlibs | list | SharedLibQueryDTO query | Result<PageResult<SharedLib>> | Paged query of shared library list |
| GET | /api/resources/sharedlibs/{id} | get | @PathVariable Long id | Result<SharedLib> | Get shared library details by ID |
| POST | /api/resources/sharedlibs | create | @RequestBody SharedLib lib | Result<Long> | Create a shared library, returns the new record ID |
| PUT | /api/resources/sharedlibs/{id} | update | @PathVariable Long id, @RequestBody SharedLib lib | Result<Void> | Update a shared library |
| DELETE | /api/resources/sharedlibs/{id} | delete | @PathVariable Long id | Result<Void> | Delete a shared library |
| POST | /api/resources/sharedlibs/{id}/upload-jar | uploadJar | @PathVariable Long id, @RequestParam MultipartFile file | Result<Void> | Upload a JAR file to the shared library |
| GET | /api/resources/sharedlibs/{id}/jars | listJarFiles | @PathVariable Long id | Result<List<Map<String, Object>>> | List the uploaded JAR files in the shared library |
| GET | /api/resources/sharedlibs/{id}/jars/{fileName}/download | downloadJar | @PathVariable Long id, @PathVariable String fileName, HttpServletResponse response | void | Download the specified JAR file in the shared library |
| DELETE | /api/resources/sharedlibs/{id}/jars/{fileName} | deleteJarFile | @PathVariable Long id, @PathVariable String fileName | Result<Void> | Delete the specified JAR file in the shared library |
| POST | /api/resources/sharedlibs/{id}/jars/delete-batch | deleteJarFiles | @PathVariable Long id, @RequestBody List<String> fileNames | Result<Void> | Batch delete JAR files in the shared library |
| POST | /api/resources/sharedlibs/{id}/apps | bindApp | @PathVariable Long id, @RequestParam Long appId | Result<Void> | Bind the shared library to the specified application |
| DELETE | /api/resources/sharedlibs/{id}/apps | unbindApp | @PathVariable Long id, @RequestParam Long appId | Result<Void> | Unbind the shared library from the application |
| GET | /api/resources/sharedlibs/{id}/apps | listBoundApps | @PathVariable Long id | Result<List<Map<String, Object>>> | Query the list of applications bound to the shared library |
| PUT | /api/resources/sharedlibs/{id}/priority | updatePriority | @PathVariable Long id, @RequestParam Integer priority | Result<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
| Method | Path | Function | Parameters | Return Type | Description |
|---|---|---|---|---|---|
| GET | /api/monitor/snapshot-config | getConfig | Result<SnapshotConfig> | Query automatic snapshot configuration (currently effective configuration) | |
| PUT | /api/monitor/snapshot-config | saveConfig | @RequestBody SnapshotConfigDTO dto | Result<Void> | Save automatic snapshot configuration (including content and trigger rules), audit log recorded |
| POST | /api/monitor/snapshot-config/restore-defaults | restoreDefaults | Result<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
| Method | Path | Function | Parameters | Return Type | Description |
|---|---|---|---|---|---|
| GET | /api/monitor/snapshots | getSnapshotList | SnapshotQueryDTO query | Result<PageResult<Snapshot>> | Paged query of snapshot list |
| POST | /api/monitor/snapshots | createSnapshot | @RequestBody SnapshotCreateDTO dto | Result<Void> | Create a manual snapshot task (generated asynchronously) |
| DELETE | /api/monitor/snapshots/{id} | deleteSnapshot | @PathVariable Long id | Result<Void> | Delete the specified snapshot |
| GET | /api/monitor/snapshots/{id}/download/file | downloadSnapshotFile | @PathVariable Long id, HttpServletResponse response | void | Download 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
| Method | Path | Function | Parameters | Return Type | Description |
|---|---|---|---|---|---|
| GET | /api/snmp-config | getConfig | Result<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-config | saveConfig | @RequestBody @Valid SnmpConfigDTO dto | Result<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-defaults | restoreDefaults | Result<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
| Method | Path | Function | Parameters | Return Type | Description |
|---|---|---|---|---|---|
| GET | /api/monitor/sql-trace/config | getConfig | Result<SqlTraceConfig> | Get SQL trace configuration | |
| POST | /api/monitor/sql-trace/config | saveConfig | @RequestBody @Valid SqlTraceConfig config | Result<Void> | Save SQL trace configuration (global switch/threshold/stack switch/max record count/datasource configuration) |
| POST | /api/monitor/sql-trace/start | start | Result<Void> | Start SQL tracing | |
| POST | /api/monitor/sql-trace/stop | stop | Result<Void> | Stop SQL tracing | |
| GET | /api/monitor/sql-trace/records | query | SqlTraceQueryDTO query (binds query parameters, @Valid) | Result<PageResult<SqlTraceRecord>> | Paged query of SQL trace records |
| GET | /api/monitor/sql-trace/records/export | export | SqlTraceQueryDTO query, HttpServletResponse response | void | Export 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
| Method | Path | Function | Parameters | Return Type | Description |
|---|---|---|---|---|---|
| GET | /api/system/version | getVersion | Result<Map<String, String>> | Get version information (currentVersion/buildTime/javaVersion) | |
| GET | /api/system/upgrades | getUpgradeHistory | Result<List<Map<String, Object>>> | Instance upgrade history list (placeholder implementation, currently returns an empty list) | |
| POST | /api/system/upgrade | upgrade | @RequestBody Map<String, Object> body | Result<Map<String, Object>> | Submit an instance upgrade request (placeholder implementation, returns upgradeId/status/message) |
| POST | /api/system/restart | restart | Result<Map<String, Object>> | Restart the AAS server, returns status=RESTARTING | |
| GET | /api/system/restart-pending | getRestartPending | Result<Map<String, Object>> | Query pending configuration changes (needsRestart and the changes list) |
# ThreadDiagnosisController
Base Path: /api/monitor/thread-diagnosis
| Method | Path | Function | Parameters | Return Type | Description |
|---|---|---|---|---|---|
| POST | /api/monitor/thread-diagnosis/start | start | @RequestBody ThreadDiagnosisStartRequest request | Result<Void> | Start thread diagnosis sampling (intervalSec required, 1~3600 seconds; maxDataMb controls the sampling data limit) |
| POST | /api/monitor/thread-diagnosis/stop | stop | Result<Void> | Stop thread diagnosis sampling | |
| POST | /api/monitor/thread-diagnosis/session-end | endSession | Result<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/snapshot | getSnapshot | Result<Map<String, Object>> | Get the current thread diagnosis snapshot (thread list and status data) | |
| GET | /api/monitor/thread-diagnosis/thread/{id}/stack | getThreadStack | @PathVariable("id") long threadId | Result<Map<String, Object>> | Get the stack information of the specified thread |
| POST | /api/monitor/thread-diagnosis/thread/{id}/stop | stopThread | @PathVariable("id") long threadId | Result<Void> | Stop the specified thread |
| POST | /api/monitor/thread-diagnosis/analyze | analyze | @RequestParam(defaultValue="live") String source | Result<Map<String, Object>> | Synchronously run thread diagnosis analysis (source defaults to live real-time data) |
| POST | /api/monitor/thread-diagnosis/analyze/async | startAnalyzeJob | @RequestParam(defaultValue="live") String source | Result<Map<String, Object>> | Asynchronously start an analysis task, returns jobId |
| GET | /api/monitor/thread-diagnosis/analyze/async/{jobId} | getAnalyzeJob | @PathVariable("jobId") String jobId | Result<Map<String, Object>> | Query the progress/result of an async analysis task |
| POST | /api/monitor/thread-diagnosis/analyze/async/{jobId}/cancel | cancelAnalyzeJob | @PathVariable("jobId") String jobId | Result<Void> | Cancel an async analysis task |
| GET | /api/monitor/thread-diagnosis/export | exportData | @RequestParam(defaultValue="live") String source, @RequestParam(required=false) Long startTime, Long endTime, HttpServletResponse response | void | Export the thread diagnosis sampling data file (a time range can be specified) |
| GET | /api/monitor/thread-diagnosis/export-report | exportReport | @RequestParam(defaultValue="live") String source, @RequestParam(defaultValue="html") String format, HttpServletResponse response | void | Export the diagnosis analysis report (format defaults to html) |
| POST | /api/monitor/thread-diagnosis/import/probe | probeImport | @RequestParam("file") MultipartFile file | Result<Map<String, Object>> | Upload a thread diagnosis data file and pre-check it (probe file content/time range) |
| POST | /api/monitor/thread-diagnosis/import/confirm | confirmImport | @RequestParam(required=false) Long startTime, Long endTime | Result<Map<String, Object>> | Confirm importing the pre-checked diagnosis data (optionally trimming the time range) |
| GET | /api/monitor/thread-diagnosis/imported | getImportedData | Result<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
| Method | Path | Function | Parameters | Return Type | Description |
|---|---|---|---|---|---|
| GET | /api/config/web/pools | list | @RequestParam int page, int size, String name, Integer maxThreads, Integer priority | Result<PageResult<ThreadPool>> | Paged query of thread pool list, supports name/max threads/priority filtering |
| GET | /api/config/web/pools/{id} | get | @PathVariable Long id | Result<ThreadPool> | Get thread pool details by ID; throws an exception if not found |
| GET | /api/config/web/pools/defaults | getDefaults | Result<Map<String, Object>> | Get thread pool default parameters (defaults such as minThreads calculated by CPU core count) | |
| POST | /api/config/web/pools | create | @RequestBody ThreadPool pool | Result<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 pool | Result<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 idOrName | Result<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
| Method | Path | Function | Parameters | Return Type | Description |
|---|---|---|---|---|---|
| POST | /api/monitor/thread-trace/long/start | startLongTrace | @RequestBody LongTraceStartRequest request | Result<Void> | Start long-request thread tracing (both thresholdMs/intervalMs are required, otherwise 400) |
| POST | /api/monitor/thread-trace/long/stop | stopLongTrace | Result<Void> | Stop long-request thread tracing | |
| GET | /api/monitor/thread-trace/long/snapshot | getLongTraceSnapshot | Result<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
| Method | Path | Function | Parameters | Return Type | Description |
|---|---|---|---|---|---|
| GET | /api/system/upgrade-history | list | PageQueryDTO 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
| Method | Path | Function | Parameters | Return Type | Description |
|---|---|---|---|---|---|
| GET | /api/users | list | UserQueryDTO query (filters such as username/status/roleType/builtin + pagination) | Result<PageResult<UserDTO>> | Paged query of user list |
| GET | /api/users/{id} | get | @PathVariable Long id | Result<UserDTO> | Get user details by ID |
| POST | /api/users | create | @RequestBody UserDTO dto | Result<Void> | Create a user (Create validation group, including initial password), audit recorded |
| PUT | /api/users/{id} | update | @PathVariable Long id, @RequestBody UserDTO dto | Result<Void> | Update user information, audit recorded |
| DELETE | /api/users/{id} | delete | @PathVariable Long id | Result<Void> | Delete a single user, audit recorded |
| DELETE | /api/users/batch | deleteBatch | @RequestBody List<Long> ids | Result<Integer> | Batch delete users, returns the number deleted |
| POST | /api/users/{id}/status | toggleStatus | @PathVariable Long id, @RequestParam Integer status | Result<Void> | Enable/disable a user (status: 0=disable 1=enable) |
| POST | /api/users/{id}/unlock | unlock | @PathVariable Long id | Result<Void> | Unlock a user (clears the login lockout state) |
| POST | /api/users/{id}/reset-password | resetPassword | @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) |
| String | ||
| 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
| Method | Path | Function | Parameters | Return Type | Description |
|---|---|---|---|---|---|
| GET | /api/users/{userId}/permission | getByUserId | @PathVariable Long userId | Result<UserPermissionDTO> | Get the permission configuration of the specified user (IP whitelist/time/classification level/extra roles) |
| PUT | /api/users/{userId}/permission | saveOrUpdate | @PathVariable Long userId, @RequestBody UserPermissionDTO dto | Result<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
| Method | Path | Function | Parameters | Return Type | Description |
|---|---|---|---|---|---|
| GET | /api/config/web/hosts/all | listAll | Result<List<VirtualHost>> | Query all virtual hosts (no pagination, for dropdown selection) | |
| GET | /api/config/web/hosts | list | @RequestParam int page, int size, String name, String alias, String docBase | Result<PageResult<VirtualHost>> | Paged query of virtual host list |
| GET | /api/config/web/hosts/{id} | get | @PathVariable Long id | Result<VirtualHost> | Get virtual host details by ID; returns 404 if not found |
| POST | /api/config/web/hosts | create | @RequestBody VirtualHost host | Result<Void> | Add a virtual host, requires restart to take effect, audit recorded |
| PUT | /api/config/web/hosts/{idOrName} | update | @PathVariable String idOrName, @RequestBody VirtualHost host | Result<Void> | Update a virtual host by ID or name, requires restart to take effect |
| DELETE | /api/config/web/hosts/{idOrName} | delete | @PathVariable String idOrName | Result<Void> | Delete a virtual host by ID or name, requires restart to take effect |
| PUT | /api/config/web/hosts/{idOrName}/default | setDefault | @PathVariable String idOrName | Result<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 |