From 2bc07c91df15eb839a64244a5fd2939b88e7617d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=98=AD?= <81747598+lan-yonghui@users.noreply.github.com> Date: Mon, 9 Dec 2024 17:57:34 +0800 Subject: [PATCH] pref: Improve Swagger authentication (#7298) --- backend/app/api/v1/app.go | 8 + backend/app/api/v1/app_install.go | 15 + backend/app/api/v1/auth.go | 1 + backend/app/api/v1/backup.go | 15 + backend/app/api/v1/clam.go | 13 + backend/app/api/v1/command.go | 10 + backend/app/api/v1/compose_template.go | 5 + backend/app/api/v1/container.go | 31 + backend/app/api/v1/cronjob.go | 10 + backend/app/api/v1/dashboard.go | 4 + backend/app/api/v1/database.go | 9 + backend/app/api/v1/database_common.go | 3 + backend/app/api/v1/database_mysql.go | 14 + backend/app/api/v1/database_postgresql.go | 9 + backend/app/api/v1/database_redis.go | 7 + backend/app/api/v1/device.go | 11 + backend/app/api/v1/docker.go | 8 + backend/app/api/v1/fail2ban.go | 7 + backend/app/api/v1/favorite.go | 3 + backend/app/api/v1/file.go | 23 + backend/app/api/v1/firewall.go | 10 + backend/app/api/v1/ftp.go | 8 + backend/app/api/v1/group.go | 4 + backend/app/api/v1/host.go | 8 + backend/app/api/v1/host_tool.go | 8 + backend/app/api/v1/image.go | 10 + backend/app/api/v1/image_repo.go | 6 + backend/app/api/v1/logs.go | 5 + backend/app/api/v1/monitor.go | 2 + backend/app/api/v1/nginx.go | 6 + backend/app/api/v1/php_extensions.go | 4 + backend/app/api/v1/process.go | 1 + backend/app/api/v1/recycle_bin.go | 4 + backend/app/api/v1/runtime.go | 10 + backend/app/api/v1/setting.go | 18 + backend/app/api/v1/snapshot.go | 9 + backend/app/api/v1/ssh.go | 8 + backend/app/api/v1/upgrade.go | 3 + backend/app/api/v1/website.go | 38 + backend/app/api/v1/website_acme_account.go | 3 + backend/app/api/v1/website_ca.go | 7 + backend/app/api/v1/website_dns_account.go | 4 + backend/app/api/v1/website_domain.go | 3 + backend/app/api/v1/website_ssl.go | 10 + backend/init/router/router.go | 2 +- cmd/server/docs/docs.go | 1190 +++++++++++++++++++- cmd/server/docs/swagger.json | 1190 +++++++++++++++++++- cmd/server/docs/swagger.yaml | 402 ++++++- cmd/server/main.go | 3 +- 49 files changed, 3168 insertions(+), 14 deletions(-) diff --git a/backend/app/api/v1/app.go b/backend/app/api/v1/app.go index 1f70d13fd..45ae5e29e 100644 --- a/backend/app/api/v1/app.go +++ b/backend/app/api/v1/app.go @@ -15,6 +15,7 @@ import ( // @Param request body request.AppSearch true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /apps/search [post] func (b *BaseApi) SearchApp(c *gin.Context) { var req request.AppSearch @@ -33,6 +34,7 @@ func (b *BaseApi) SearchApp(c *gin.Context) { // @Summary Sync app list // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /apps/sync [post] // @x-panel-log {"bodyKeys":[],"paramKeys":[],"BeforeFunctions":[],"formatZH":"应用商店同步","formatEN":"App store synchronization"} func (b *BaseApi) SyncApp(c *gin.Context) { @@ -65,6 +67,7 @@ func (b *BaseApi) SyncApp(c *gin.Context) { // @Param key path string true "app key" // @Success 200 {object} response.AppDTO // @Security ApiKeyAuth +// @Security Timestamp // @Router /apps/:key [get] func (b *BaseApi) GetApp(c *gin.Context) { appKey, err := helper.GetStrParamByKey(c, "key") @@ -88,6 +91,7 @@ func (b *BaseApi) GetApp(c *gin.Context) { // @Param version path string true "app type" // @Success 200 {object} response.AppDetailDTO // @Security ApiKeyAuth +// @Security Timestamp // @Router /apps/detail/:appId/:version/:type [get] func (b *BaseApi) GetAppDetail(c *gin.Context) { appID, err := helper.GetIntParamByKey(c, "appId") @@ -111,6 +115,7 @@ func (b *BaseApi) GetAppDetail(c *gin.Context) { // @Param appId path integer true "id" // @Success 200 {object} response.AppDetailDTO // @Security ApiKeyAuth +// @Security Timestamp // @Router /apps/details/:id [get] func (b *BaseApi) GetAppDetailByID(c *gin.Context) { appDetailID, err := helper.GetIntParamByKey(c, "id") @@ -131,6 +136,7 @@ func (b *BaseApi) GetAppDetailByID(c *gin.Context) { // @Accept json // @Success 200 {object} response.IgnoredApp // @Security ApiKeyAuth +// @Security Timestamp // @Router /apps/ignored [get] func (b *BaseApi) GetIgnoredApp(c *gin.Context) { res, err := appService.GetIgnoredApp() @@ -147,6 +153,7 @@ func (b *BaseApi) GetIgnoredApp(c *gin.Context) { // @Param request body request.AppInstallCreate true "request" // @Success 200 {object} model.AppInstall // @Security ApiKeyAuth +// @Security Timestamp // @Router /apps/install [post] // @x-panel-log {"bodyKeys":["name"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"安装应用 [name]","formatEN":"Install app [name]"} func (b *BaseApi) InstallApp(c *gin.Context) { @@ -178,6 +185,7 @@ func (b *BaseApi) GetAppTags(c *gin.Context) { // @Summary Get app list update // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /apps/checkupdate [get] func (b *BaseApi) GetAppListUpdate(c *gin.Context) { res, err := appService.GetAppUpdate() diff --git a/backend/app/api/v1/app_install.go b/backend/app/api/v1/app_install.go index 319e73fbf..69f2ac1d3 100644 --- a/backend/app/api/v1/app_install.go +++ b/backend/app/api/v1/app_install.go @@ -15,6 +15,7 @@ import ( // @Param request body request.AppInstalledSearch true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /apps/installed/search [post] func (b *BaseApi) SearchAppInstalled(c *gin.Context) { var req request.AppInstalledSearch @@ -46,6 +47,7 @@ func (b *BaseApi) SearchAppInstalled(c *gin.Context) { // @Accept json // @Success 200 array dto.AppInstallInfo // @Security ApiKeyAuth +// @Security Timestamp // @Router /apps/installed/list [get] func (b *BaseApi) ListAppInstalled(c *gin.Context) { list, err := appInstallService.GetInstallList() @@ -62,6 +64,7 @@ func (b *BaseApi) ListAppInstalled(c *gin.Context) { // @Param request body request.AppInstalledInfo true "request" // @Success 200 {object} response.AppInstalledCheck // @Security ApiKeyAuth +// @Security Timestamp // @Router /apps/installed/check [post] func (b *BaseApi) CheckAppInstalled(c *gin.Context) { var req request.AppInstalledInfo @@ -82,6 +85,7 @@ func (b *BaseApi) CheckAppInstalled(c *gin.Context) { // @Param request body dto.OperationWithNameAndType true "request" // @Success 200 {integer} port // @Security ApiKeyAuth +// @Security Timestamp // @Router /apps/installed/loadport [post] func (b *BaseApi) LoadPort(c *gin.Context) { var req dto.OperationWithNameAndType @@ -102,6 +106,7 @@ func (b *BaseApi) LoadPort(c *gin.Context) { // @Param request body dto.OperationWithNameAndType true "request" // @Success 200 {string} response.DatabaseConn // @Security ApiKeyAuth +// @Security Timestamp // @Router /apps/installed/conninfo/:key [get] func (b *BaseApi) LoadConnInfo(c *gin.Context) { var req dto.OperationWithNameAndType @@ -122,6 +127,7 @@ func (b *BaseApi) LoadConnInfo(c *gin.Context) { // @Param appInstallId path integer true "App install id" // @Success 200 {array} dto.AppResource // @Security ApiKeyAuth +// @Security Timestamp // @Router /apps/installed/delete/check/:appInstallId [get] func (b *BaseApi) DeleteCheck(c *gin.Context) { appInstallId, err := helper.GetIntParamByKey(c, "appInstallId") @@ -142,6 +148,7 @@ func (b *BaseApi) DeleteCheck(c *gin.Context) { // @Summary Sync app installed // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /apps/installed/sync [post] // @x-panel-log {"bodyKeys":[],"paramKeys":[],"BeforeFunctions":[],"formatZH":"同步已安装应用列表","formatEN":"Sync the list of installed apps"} func (b *BaseApi) SyncInstalled(c *gin.Context) { @@ -158,6 +165,7 @@ func (b *BaseApi) SyncInstalled(c *gin.Context) { // @Param request body request.AppInstalledOperate true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /apps/installed/op [post] // @x-panel-log {"bodyKeys":["installId","operate"],"paramKeys":[],"BeforeFunctions":[{"input_column":"id","input_value":"installId","isList":false,"db":"app_installs","output_column":"app_id","output_value":"appId"},{"input_column":"id","input_value":"installId","isList":false,"db":"app_installs","output_column":"name","output_value":"appName"},{"input_column":"id","input_value":"appId","isList":false,"db":"apps","output_column":"key","output_value":"appKey"}],"formatZH":"[operate] 应用 [appKey][appName]","formatEN":"[operate] App [appKey][appName]"} func (b *BaseApi) OperateInstalled(c *gin.Context) { @@ -178,6 +186,7 @@ func (b *BaseApi) OperateInstalled(c *gin.Context) { // @Param key path string true "request" // @Success 200 {array} response.AppService // @Security ApiKeyAuth +// @Security Timestamp // @Router /apps/services/:key [get] func (b *BaseApi) GetServices(c *gin.Context) { key := c.Param("key") @@ -195,6 +204,7 @@ func (b *BaseApi) GetServices(c *gin.Context) { // @Param appInstallId path integer true "request" // @Success 200 {array} dto.AppVersion // @Security ApiKeyAuth +// @Security Timestamp // @Router /apps/installed/update/versions [post] func (b *BaseApi) GetUpdateVersions(c *gin.Context) { var req request.AppUpdateVersion @@ -215,6 +225,7 @@ func (b *BaseApi) GetUpdateVersions(c *gin.Context) { // @Param request body request.PortUpdate true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /apps/installed/port/change [post] // @x-panel-log {"bodyKeys":["key","name","port"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"应用端口修改 [key]-[name] => [port]","formatEN":"Application port update [key]-[name] => [port]"} func (b *BaseApi) ChangeAppPort(c *gin.Context) { @@ -235,6 +246,7 @@ func (b *BaseApi) ChangeAppPort(c *gin.Context) { // @Param request body dto.OperationWithNameAndType true "request" // @Success 200 {string} content // @Security ApiKeyAuth +// @Security Timestamp // @Router /apps/installed/conf [post] func (b *BaseApi) GetDefaultConfig(c *gin.Context) { var req dto.OperationWithNameAndType @@ -256,6 +268,7 @@ func (b *BaseApi) GetDefaultConfig(c *gin.Context) { // @Param appInstallId path string true "request" // @Success 200 {object} response.AppParam // @Security ApiKeyAuth +// @Security Timestamp // @Router /apps/installed/params/:appInstallId [get] func (b *BaseApi) GetParams(c *gin.Context) { appInstallId, err := helper.GetIntParamByKey(c, "appInstallId") @@ -277,6 +290,7 @@ func (b *BaseApi) GetParams(c *gin.Context) { // @Param request body request.AppInstalledUpdate true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /apps/installed/params/update [post] // @x-panel-log {"bodyKeys":["installId"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"应用参数修改 [installId]","formatEN":"Application param update [installId]"} func (b *BaseApi) UpdateInstalled(c *gin.Context) { @@ -297,6 +311,7 @@ func (b *BaseApi) UpdateInstalled(c *gin.Context) { // @Param request body request.AppInstalledIgnoreUpgrade true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /apps/installed/ignore [post] // @x-panel-log {"bodyKeys":["installId"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"忽略应用 [installId] 版本升级","formatEN":"Application param update [installId]"} func (b *BaseApi) IgnoreUpgrade(c *gin.Context) { diff --git a/backend/app/api/v1/auth.go b/backend/app/api/v1/auth.go index 5556b0d3e..559e2e449 100644 --- a/backend/app/api/v1/auth.go +++ b/backend/app/api/v1/auth.go @@ -87,6 +87,7 @@ func (b *BaseApi) MFALogin(c *gin.Context) { // @Summary User logout // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /auth/logout [post] func (b *BaseApi) LogOut(c *gin.Context) { if err := authService.LogOut(c); err != nil { diff --git a/backend/app/api/v1/backup.go b/backend/app/api/v1/backup.go index d52f75d76..94fc9c816 100644 --- a/backend/app/api/v1/backup.go +++ b/backend/app/api/v1/backup.go @@ -17,6 +17,7 @@ import ( // @Param request body dto.BackupOperate true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /settings/backup [post] // @x-panel-log {"bodyKeys":["type"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"创建备份账号 [type]","formatEN":"create backup account [type]"} func (b *BaseApi) CreateBackup(c *gin.Context) { @@ -52,6 +53,7 @@ func (b *BaseApi) CreateBackup(c *gin.Context) { // @Summary Refresh OneDrive token // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /settings/backup/refresh/onedrive [post] func (b *BaseApi) RefreshOneDriveToken(c *gin.Context) { backupService.Run() @@ -64,6 +66,7 @@ func (b *BaseApi) RefreshOneDriveToken(c *gin.Context) { // @Param request body dto.ForBuckets true "request" // @Success 200 {array} string // @Security ApiKeyAuth +// @Security Timestamp // @Router /settings/backup/search [post] func (b *BaseApi) ListBuckets(c *gin.Context) { var req dto.ForBuckets @@ -100,6 +103,7 @@ func (b *BaseApi) ListBuckets(c *gin.Context) { // @Accept json // @Success 200 {object} dto.OneDriveInfo // @Security ApiKeyAuth +// @Security Timestamp // @Router /settings/backup/onedrive [get] func (b *BaseApi) LoadOneDriveInfo(c *gin.Context) { data, err := backupService.LoadOneDriveInfo() @@ -116,6 +120,7 @@ func (b *BaseApi) LoadOneDriveInfo(c *gin.Context) { // @Param request body dto.OperateByID true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /settings/backup/del [post] // @x-panel-log {"bodyKeys":["id"],"paramKeys":[],"BeforeFunctions":[{"input_column":"id","input_value":"id","isList":false,"db":"backup_accounts","output_column":"type","output_value":"types"}],"formatZH":"删除备份账号 [types]","formatEN":"delete backup account [types]"} func (b *BaseApi) DeleteBackup(c *gin.Context) { @@ -137,6 +142,7 @@ func (b *BaseApi) DeleteBackup(c *gin.Context) { // @Param request body dto.RecordSearch true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /settings/backup/record/search [post] func (b *BaseApi) SearchBackupRecords(c *gin.Context) { var req dto.RecordSearch @@ -162,6 +168,7 @@ func (b *BaseApi) SearchBackupRecords(c *gin.Context) { // @Param request body dto.RecordSearchByCronjob true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /settings/backup/record/search/bycronjob [post] func (b *BaseApi) SearchBackupRecordsByCronjob(c *gin.Context) { var req dto.RecordSearchByCronjob @@ -187,6 +194,7 @@ func (b *BaseApi) SearchBackupRecordsByCronjob(c *gin.Context) { // @Param request body dto.DownloadRecord true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /settings/backup/record/download [post] // @x-panel-log {"bodyKeys":["source","fileName"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"下载备份记录 [source][fileName]","formatEN":"download backup records [source][fileName]"} func (b *BaseApi) DownloadRecord(c *gin.Context) { @@ -209,6 +217,7 @@ func (b *BaseApi) DownloadRecord(c *gin.Context) { // @Param request body dto.BatchDeleteReq true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /settings/backup/record/del [post] // @x-panel-log {"bodyKeys":["ids"],"paramKeys":[],"BeforeFunctions":[{"input_column":"id","input_value":"ids","isList":true,"db":"backup_records","output_column":"file_name","output_value":"files"}],"formatZH":"删除备份记录 [files]","formatEN":"delete backup records [files]"} func (b *BaseApi) DeleteBackupRecord(c *gin.Context) { @@ -230,6 +239,7 @@ func (b *BaseApi) DeleteBackupRecord(c *gin.Context) { // @Param request body dto.BackupOperate true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /settings/backup/update [post] // @x-panel-log {"bodyKeys":["type"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"更新备份账号 [types]","formatEN":"update backup account [types]"} func (b *BaseApi) UpdateBackup(c *gin.Context) { @@ -266,6 +276,7 @@ func (b *BaseApi) UpdateBackup(c *gin.Context) { // @Summary List backup accounts // @Success 200 {array} dto.BackupInfo // @Security ApiKeyAuth +// @Security Timestamp // @Router /settings/backup/search [get] func (b *BaseApi) ListBackup(c *gin.Context) { data, err := backupService.List() @@ -283,6 +294,7 @@ func (b *BaseApi) ListBackup(c *gin.Context) { // @Param request body dto.BackupSearchFile true "request" // @Success 200 {array} string // @Security ApiKeyAuth +// @Security Timestamp // @Router /settings/backup/search/files [post] func (b *BaseApi) LoadFilesFromBackup(c *gin.Context) { var req dto.BackupSearchFile @@ -300,6 +312,7 @@ func (b *BaseApi) LoadFilesFromBackup(c *gin.Context) { // @Param request body dto.CommonBackup true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /settings/backup/backup [post] // @x-panel-log {"bodyKeys":["type","name","detailName"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"备份 [type] 数据 [name][detailName]","formatEN":"backup [type] data [name][detailName]"} func (b *BaseApi) Backup(c *gin.Context) { @@ -344,6 +357,7 @@ func (b *BaseApi) Backup(c *gin.Context) { // @Param request body dto.CommonRecover true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /settings/backup/recover [post] // @x-panel-log {"bodyKeys":["type","name","detailName","file"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"从 [file] 恢复 [type] 数据 [name][detailName]","formatEN":"recover [type] data [name][detailName] from [file]"} func (b *BaseApi) Recover(c *gin.Context) { @@ -394,6 +408,7 @@ func (b *BaseApi) Recover(c *gin.Context) { // @Param request body dto.CommonRecover true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /settings/backup/recover/byupload [post] // @x-panel-log {"bodyKeys":["type","name","detailName","file"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"从 [file] 恢复 [type] 数据 [name][detailName]","formatEN":"recover [type] data [name][detailName] from [file]"} func (b *BaseApi) RecoverByUpload(c *gin.Context) { diff --git a/backend/app/api/v1/clam.go b/backend/app/api/v1/clam.go index d6cd9a381..62f398249 100644 --- a/backend/app/api/v1/clam.go +++ b/backend/app/api/v1/clam.go @@ -13,6 +13,7 @@ import ( // @Param request body dto.ClamCreate true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /toolbox/clam [post] // @x-panel-log {"bodyKeys":["name","path"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"创建扫描规则 [name][path]","formatEN":"create clam [name][path]"} func (b *BaseApi) CreateClam(c *gin.Context) { @@ -34,6 +35,7 @@ func (b *BaseApi) CreateClam(c *gin.Context) { // @Param request body dto.ClamUpdate true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /toolbox/clam/update [post] // @x-panel-log {"bodyKeys":["name","path"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"修改扫描规则 [name][path]","formatEN":"update clam [name][path]"} func (b *BaseApi) UpdateClam(c *gin.Context) { @@ -55,6 +57,7 @@ func (b *BaseApi) UpdateClam(c *gin.Context) { // @Param request body dto.ClamUpdateStatus true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /toolbox/clam/status/update [post] // @x-panel-log {"bodyKeys":["id","status"],"paramKeys":[],"BeforeFunctions":[{"input_column":"id","input_value":"id","isList":false,"db":"clams","output_column":"name","output_value":"name"}],"formatZH":"修改扫描规则 [name] 状态为 [status]","formatEN":"change the status of clam [name] to [status]."} func (b *BaseApi) UpdateClamStatus(c *gin.Context) { @@ -76,6 +79,7 @@ func (b *BaseApi) UpdateClamStatus(c *gin.Context) { // @Param request body dto.SearchClamWithPage true "request" // @Success 200 {object} dto.PageResult // @Security ApiKeyAuth +// @Security Timestamp // @Router /toolbox/clam/search [post] func (b *BaseApi) SearchClam(c *gin.Context) { var req dto.SearchClamWithPage @@ -100,6 +104,7 @@ func (b *BaseApi) SearchClam(c *gin.Context) { // @Accept json // @Success 200 {object} dto.ClamBaseInfo // @Security ApiKeyAuth +// @Security Timestamp // @Router /toolbox/clam/base [get] func (b *BaseApi) LoadClamBaseInfo(c *gin.Context) { info, err := clamService.LoadBaseInfo() @@ -116,6 +121,7 @@ func (b *BaseApi) LoadClamBaseInfo(c *gin.Context) { // @Accept json // @Param request body dto.Operate true "request" // @Security ApiKeyAuth +// @Security Timestamp // @Router /toolbox/clam/operate [post] // @x-panel-log {"bodyKeys":["operation"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"[operation] Clam","formatEN":"[operation] FTP"} func (b *BaseApi) OperateClam(c *gin.Context) { @@ -137,6 +143,7 @@ func (b *BaseApi) OperateClam(c *gin.Context) { // @Accept json // @Param request body dto.OperateByID true "request" // @Security ApiKeyAuth +// @Security Timestamp // @Router /toolbox/clam/record/clean [post] // @x-panel-log {"bodyKeys":["id"],"paramKeys":[],"BeforeFunctions":[{"input_column":"id","input_value":"id","isList":true,"db":"clams","output_column":"name","output_value":"name"}],"formatZH":"清空扫描报告 [name]","formatEN":"clean clam record [name]"} func (b *BaseApi) CleanClamRecord(c *gin.Context) { @@ -158,6 +165,7 @@ func (b *BaseApi) CleanClamRecord(c *gin.Context) { // @Param request body dto.ClamLogSearch true "request" // @Success 200 {object} dto.PageResult // @Security ApiKeyAuth +// @Security Timestamp // @Router /toolbox/clam/record/search [post] func (b *BaseApi) SearchClamRecord(c *gin.Context) { var req dto.ClamLogSearch @@ -183,6 +191,7 @@ func (b *BaseApi) SearchClamRecord(c *gin.Context) { // @Param request body dto.ClamLogReq true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /toolbox/clam/record/log [post] func (b *BaseApi) LoadClamRecordLog(c *gin.Context) { var req dto.ClamLogReq @@ -205,6 +214,7 @@ func (b *BaseApi) LoadClamRecordLog(c *gin.Context) { // @Param request body dto.ClamFileReq true "request" // @Success 200 {object} dto.PageResult // @Security ApiKeyAuth +// @Security Timestamp // @Router /toolbox/clam/file/search [post] func (b *BaseApi) SearchClamFile(c *gin.Context) { var req dto.ClamFileReq @@ -227,6 +237,7 @@ func (b *BaseApi) SearchClamFile(c *gin.Context) { // @Param request body dto.UpdateByNameAndFile true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /toolbox/clam/file/update [post] func (b *BaseApi) UpdateFile(c *gin.Context) { var req dto.UpdateByNameAndFile @@ -246,6 +257,7 @@ func (b *BaseApi) UpdateFile(c *gin.Context) { // @Param request body dto.ClamDelete true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /toolbox/clam/del [post] // @x-panel-log {"bodyKeys":["ids"],"paramKeys":[],"BeforeFunctions":[{"input_column":"id","input_value":"ids","isList":true,"db":"clams","output_column":"name","output_value":"names"}],"formatZH":"删除扫描规则 [names]","formatEN":"delete clam [names]"} func (b *BaseApi) DeleteClam(c *gin.Context) { @@ -267,6 +279,7 @@ func (b *BaseApi) DeleteClam(c *gin.Context) { // @Param request body dto.OperateByID true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /toolbox/clam/handle [post] // @x-panel-log {"bodyKeys":["id"],"paramKeys":[],"BeforeFunctions":[{"input_column":"id","input_value":"id","isList":true,"db":"clams","output_column":"name","output_value":"name"}],"formatZH":"执行病毒扫描 [name]","formatEN":"handle clam scan [name]"} func (b *BaseApi) HandleClamScan(c *gin.Context) { diff --git a/backend/app/api/v1/command.go b/backend/app/api/v1/command.go index 45152bb0c..671abb4b5 100644 --- a/backend/app/api/v1/command.go +++ b/backend/app/api/v1/command.go @@ -13,6 +13,7 @@ import ( // @Param request body dto.CommandOperate true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /hosts/command [post] // @x-panel-log {"bodyKeys":["name","command"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"创建快捷命令 [name][command]","formatEN":"create quick command [name][command]"} func (b *BaseApi) CreateCommand(c *gin.Context) { @@ -34,6 +35,7 @@ func (b *BaseApi) CreateCommand(c *gin.Context) { // @Param request body dto.RedisCommand true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /hosts/command/redis [post] // @x-panel-log {"bodyKeys":["name","command"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"保存 redis 快捷命令 [name][command]","formatEN":"save quick command for redis [name][command]"} func (b *BaseApi) SaveRedisCommand(c *gin.Context) { @@ -55,6 +57,7 @@ func (b *BaseApi) SaveRedisCommand(c *gin.Context) { // @Param request body dto.SearchWithPage true "request" // @Success 200 {object} dto.PageResult // @Security ApiKeyAuth +// @Security Timestamp // @Router /hosts/command/search [post] func (b *BaseApi) SearchCommand(c *gin.Context) { var req dto.SearchCommandWithPage @@ -80,6 +83,7 @@ func (b *BaseApi) SearchCommand(c *gin.Context) { // @Param request body dto.SearchWithPage true "request" // @Success 200 {object} dto.PageResult // @Security ApiKeyAuth +// @Security Timestamp // @Router /hosts/command/redis/search [post] func (b *BaseApi) SearchRedisCommand(c *gin.Context) { var req dto.SearchWithPage @@ -104,6 +108,7 @@ func (b *BaseApi) SearchRedisCommand(c *gin.Context) { // @Accept json // @Success 200 {Array} dto.CommandTree // @Security ApiKeyAuth +// @Security Timestamp // @Router /hosts/command/tree [get] func (b *BaseApi) SearchCommandTree(c *gin.Context) { list, err := commandService.SearchForTree() @@ -119,6 +124,7 @@ func (b *BaseApi) SearchCommandTree(c *gin.Context) { // @Summary List redis commands // @Success 200 {Array} dto.RedisCommand // @Security ApiKeyAuth +// @Security Timestamp // @Router /hosts/command/redis [get] func (b *BaseApi) ListRedisCommand(c *gin.Context) { list, err := commandService.ListRedisCommand() @@ -134,6 +140,7 @@ func (b *BaseApi) ListRedisCommand(c *gin.Context) { // @Summary List commands // @Success 200 {object} dto.CommandInfo // @Security ApiKeyAuth +// @Security Timestamp // @Router /hosts/command [get] func (b *BaseApi) ListCommand(c *gin.Context) { list, err := commandService.List() @@ -151,6 +158,7 @@ func (b *BaseApi) ListCommand(c *gin.Context) { // @Param request body dto.BatchDeleteReq true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /hosts/command/del [post] // @x-panel-log {"bodyKeys":["ids"],"paramKeys":[],"BeforeFunctions":[{"input_column":"id","input_value":"ids","isList":true,"db":"commands","output_column":"name","output_value":"names"}],"formatZH":"删除快捷命令 [names]","formatEN":"delete quick command [names]"} func (b *BaseApi) DeleteCommand(c *gin.Context) { @@ -172,6 +180,7 @@ func (b *BaseApi) DeleteCommand(c *gin.Context) { // @Param request body dto.BatchDeleteReq true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /hosts/command/redis/del [post] // @x-panel-log {"bodyKeys":["ids"],"paramKeys":[],"BeforeFunctions":[{"input_column":"id","input_value":"ids","isList":true,"db":"redis_commands","output_column":"name","output_value":"names"}],"formatZH":"删除 redis 快捷命令 [names]","formatEN":"delete quick command of redis [names]"} func (b *BaseApi) DeleteRedisCommand(c *gin.Context) { @@ -193,6 +202,7 @@ func (b *BaseApi) DeleteRedisCommand(c *gin.Context) { // @Param request body dto.CommandOperate true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /hosts/command/update [post] // @x-panel-log {"bodyKeys":["name"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"更新快捷命令 [name]","formatEN":"update quick command [name]"} func (b *BaseApi) UpdateCommand(c *gin.Context) { diff --git a/backend/app/api/v1/compose_template.go b/backend/app/api/v1/compose_template.go index 6ee99f073..4d0ac7a89 100644 --- a/backend/app/api/v1/compose_template.go +++ b/backend/app/api/v1/compose_template.go @@ -13,6 +13,7 @@ import ( // @Param request body dto.ComposeTemplateCreate true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /containers/template [post] // @x-panel-log {"bodyKeys":["name"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"创建 compose 模版 [name]","formatEN":"create compose template [name]"} func (b *BaseApi) CreateComposeTemplate(c *gin.Context) { @@ -35,6 +36,7 @@ func (b *BaseApi) CreateComposeTemplate(c *gin.Context) { // @Produce json // @Success 200 {object} dto.PageResult // @Security ApiKeyAuth +// @Security Timestamp // @Router /containers/template/search [post] func (b *BaseApi) SearchComposeTemplate(c *gin.Context) { var req dto.SearchWithPage @@ -59,6 +61,7 @@ func (b *BaseApi) SearchComposeTemplate(c *gin.Context) { // @Produce json // @Success 200 {array} dto.ComposeTemplateInfo // @Security ApiKeyAuth +// @Security Timestamp // @Router /containers/template [get] func (b *BaseApi) ListComposeTemplate(c *gin.Context) { list, err := composeTemplateService.List() @@ -76,6 +79,7 @@ func (b *BaseApi) ListComposeTemplate(c *gin.Context) { // @Param request body dto.BatchDelete true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /containers/template/del [post] // @x-panel-log {"bodyKeys":["ids"],"paramKeys":[],"BeforeFunctions":[{"input_column":"id","input_value":"ids","isList":true,"db":"compose_templates","output_column":"name","output_value":"names"}],"formatZH":"删除 compose 模版 [names]","formatEN":"delete compose template [names]"} func (b *BaseApi) DeleteComposeTemplate(c *gin.Context) { @@ -97,6 +101,7 @@ func (b *BaseApi) DeleteComposeTemplate(c *gin.Context) { // @Param request body dto.ComposeTemplateUpdate true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /containers/template/update [post] // @x-panel-log {"bodyKeys":["id"],"paramKeys":[],"BeforeFunctions":[{"input_column":"id","input_value":"id","isList":false,"db":"compose_templates","output_column":"name","output_value":"name"}],"formatZH":"更新 compose 模版 [name]","formatEN":"update compose template information [name]"} func (b *BaseApi) UpdateComposeTemplate(c *gin.Context) { diff --git a/backend/app/api/v1/container.go b/backend/app/api/v1/container.go index 93179445e..23b37fd5e 100644 --- a/backend/app/api/v1/container.go +++ b/backend/app/api/v1/container.go @@ -17,6 +17,7 @@ import ( // @Produce json // @Success 200 {object} dto.PageResult // @Security ApiKeyAuth +// @Security Timestamp // @Router /containers/search [post] func (b *BaseApi) SearchContainer(c *gin.Context) { var req dto.PageContainer @@ -41,6 +42,7 @@ func (b *BaseApi) SearchContainer(c *gin.Context) { // @Produce json // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /containers/list [post] func (b *BaseApi) ListContainer(c *gin.Context) { list, err := containerService.List() @@ -57,6 +59,7 @@ func (b *BaseApi) ListContainer(c *gin.Context) { // @Param request body dto.SearchWithPage true "request" // @Success 200 {object} dto.PageResult // @Security ApiKeyAuth +// @Security Timestamp // @Router /containers/compose/search [post] func (b *BaseApi) SearchCompose(c *gin.Context) { var req dto.SearchWithPage @@ -81,6 +84,7 @@ func (b *BaseApi) SearchCompose(c *gin.Context) { // @Param request body dto.ComposeCreate true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /containers/compose/test [post] // @x-panel-log {"bodyKeys":["name"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"检测 compose [name] 格式","formatEN":"check compose [name]"} func (b *BaseApi) TestCompose(c *gin.Context) { @@ -103,6 +107,7 @@ func (b *BaseApi) TestCompose(c *gin.Context) { // @Param request body dto.ComposeCreate true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /containers/compose [post] // @x-panel-log {"bodyKeys":["name"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"创建 compose [name]","formatEN":"create compose [name]"} func (b *BaseApi) CreateCompose(c *gin.Context) { @@ -125,6 +130,7 @@ func (b *BaseApi) CreateCompose(c *gin.Context) { // @Param request body dto.ComposeOperation true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /containers/compose/operate [post] // @x-panel-log {"bodyKeys":["name","operation"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"compose [operation] [name]","formatEN":"compose [operation] [name]"} func (b *BaseApi) OperatorCompose(c *gin.Context) { @@ -146,6 +152,7 @@ func (b *BaseApi) OperatorCompose(c *gin.Context) { // @Param request body dto.ContainerOperate true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /containers/update [post] // @x-panel-log {"bodyKeys":["name","image"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"更新容器 [name][image]","formatEN":"update container [name][image]"} func (b *BaseApi) ContainerUpdate(c *gin.Context) { @@ -167,6 +174,7 @@ func (b *BaseApi) ContainerUpdate(c *gin.Context) { // @Param request body dto.OperationWithName true "request" // @Success 200 {object} dto.ContainerOperate // @Security ApiKeyAuth +// @Security Timestamp // @Router /containers/info [post] func (b *BaseApi) ContainerInfo(c *gin.Context) { var req dto.OperationWithName @@ -185,6 +193,7 @@ func (b *BaseApi) ContainerInfo(c *gin.Context) { // @Summary Load container limits // @Success 200 {object} dto.ResourceLimit // @Security ApiKeyAuth +// @Security Timestamp // @Router /containers/limit [get] func (b *BaseApi) LoadResourceLimit(c *gin.Context) { data, err := containerService.LoadResourceLimit() @@ -198,6 +207,7 @@ func (b *BaseApi) LoadResourceLimit(c *gin.Context) { // @Summary Load container stats // @Success 200 {array} dto.ContainerListStats // @Security ApiKeyAuth +// @Security Timestamp // @Router /containers/list/stats [get] func (b *BaseApi) ContainerListStats(c *gin.Context) { data, err := containerService.ContainerListStats() @@ -214,6 +224,7 @@ func (b *BaseApi) ContainerListStats(c *gin.Context) { // @Param request body dto.ContainerOperate true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /containers [post] // @x-panel-log {"bodyKeys":["name","image"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"创建容器 [name][image]","formatEN":"create container [name][image]"} func (b *BaseApi) ContainerCreate(c *gin.Context) { @@ -235,6 +246,7 @@ func (b *BaseApi) ContainerCreate(c *gin.Context) { // @Param request body dto.ContainerUpgrade true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /containers/upgrade [post] // @x-panel-log {"bodyKeys":["name","image"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"更新容器镜像 [name][image]","formatEN":"upgrade container image [name][image]"} func (b *BaseApi) ContainerUpgrade(c *gin.Context) { @@ -256,6 +268,7 @@ func (b *BaseApi) ContainerUpgrade(c *gin.Context) { // @Param request body dto.ContainerPrune true "request" // @Success 200 {object} dto.ContainerPruneReport // @Security ApiKeyAuth +// @Security Timestamp // @Router /containers/prune [post] // @x-panel-log {"bodyKeys":["pruneType"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"清理容器 [pruneType]","formatEN":"clean container [pruneType]"} func (b *BaseApi) ContainerPrune(c *gin.Context) { @@ -278,6 +291,7 @@ func (b *BaseApi) ContainerPrune(c *gin.Context) { // @Param request body dto.OperationWithName true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /containers/clean/log [post] // @x-panel-log {"bodyKeys":["name"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"清理容器 [name] 日志","formatEN":"clean container [name] logs"} func (b *BaseApi) CleanContainerLog(c *gin.Context) { @@ -299,6 +313,7 @@ func (b *BaseApi) CleanContainerLog(c *gin.Context) { // @Param request body dto.OperationWithNameAndType true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /containers/load/log [post] func (b *BaseApi) LoadContainerLog(c *gin.Context) { var req dto.OperationWithNameAndType @@ -316,6 +331,7 @@ func (b *BaseApi) LoadContainerLog(c *gin.Context) { // @Param request body dto.ContainerRename true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /containers/rename [post] // @x-panel-log {"bodyKeys":["name","newName"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"容器重命名 [name] => [newName]","formatEN":"rename container [name] => [newName]"} func (b *BaseApi) ContainerRename(c *gin.Context) { @@ -356,6 +372,7 @@ func (b *BaseApi) ContainerCommit(c *gin.Context) { // @Param request body dto.ContainerOperation true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /containers/operate [post] // @x-panel-log {"bodyKeys":["names","operation"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"容器 [names] 执行 [operation]","formatEN":"container [operation] [names]"} func (b *BaseApi) ContainerOperation(c *gin.Context) { @@ -376,6 +393,7 @@ func (b *BaseApi) ContainerOperation(c *gin.Context) { // @Param id path integer true "container id" // @Success 200 {object} dto.ContainerStats // @Security ApiKeyAuth +// @Security Timestamp // @Router /containers/stats/:id [get] func (b *BaseApi) ContainerStats(c *gin.Context) { containerID, ok := c.Params.Get("id") @@ -398,6 +416,7 @@ func (b *BaseApi) ContainerStats(c *gin.Context) { // @Param request body dto.InspectReq true "request" // @Success 200 {string} result // @Security ApiKeyAuth +// @Security Timestamp // @Router /containers/inspect [post] func (b *BaseApi) Inspect(c *gin.Context) { var req dto.InspectReq @@ -420,6 +439,7 @@ func (b *BaseApi) Inspect(c *gin.Context) { // @Param follow query string false "follow" // @Param tail query string false "tail" // @Security ApiKeyAuth +// @Security Timestamp // @Router /containers/search/log [post] func (b *BaseApi) ContainerLogs(c *gin.Context) { wsConn, err := upGrader.Upgrade(c.Writer, c.Request, nil) @@ -445,6 +465,7 @@ func (b *BaseApi) ContainerLogs(c *gin.Context) { // @Accept json // @Param request body dto.ContainerLog true "request" // @Security ApiKeyAuth +// @Security Timestamp // @Router /containers/download/log [post] func (b *BaseApi) DownloadContainerLogs(c *gin.Context) { var req dto.ContainerLog @@ -464,6 +485,7 @@ func (b *BaseApi) DownloadContainerLogs(c *gin.Context) { // @Produce json // @Success 200 {object} dto.PageResult // @Security ApiKeyAuth +// @Security Timestamp // @Router /containers/network/search [post] func (b *BaseApi) SearchNetwork(c *gin.Context) { var req dto.SearchWithPage @@ -488,6 +510,7 @@ func (b *BaseApi) SearchNetwork(c *gin.Context) { // @Produce json // @Success 200 {array} dto.Options // @Security ApiKeyAuth +// @Security Timestamp // @Router /containers/network [get] func (b *BaseApi) ListNetwork(c *gin.Context) { list, err := containerService.ListNetwork() @@ -504,6 +527,7 @@ func (b *BaseApi) ListNetwork(c *gin.Context) { // @Param request body dto.BatchDelete true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /containers/network/del [post] // @x-panel-log {"bodyKeys":["names"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"删除容器网络 [names]","formatEN":"delete container network [names]"} func (b *BaseApi) DeleteNetwork(c *gin.Context) { @@ -525,6 +549,7 @@ func (b *BaseApi) DeleteNetwork(c *gin.Context) { // @Param request body dto.NetworkCreate true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /containers/network [post] // @x-panel-log {"bodyKeys":["name"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"创建容器网络 name","formatEN":"create container network [name]"} func (b *BaseApi) CreateNetwork(c *gin.Context) { @@ -547,6 +572,7 @@ func (b *BaseApi) CreateNetwork(c *gin.Context) { // @Produce json // @Success 200 {object} dto.PageResult // @Security ApiKeyAuth +// @Security Timestamp // @Router /containers/volume/search [post] func (b *BaseApi) SearchVolume(c *gin.Context) { var req dto.SearchWithPage @@ -571,6 +597,7 @@ func (b *BaseApi) SearchVolume(c *gin.Context) { // @Produce json // @Success 200 {array} dto.Options // @Security ApiKeyAuth +// @Security Timestamp // @Router /containers/volume [get] func (b *BaseApi) ListVolume(c *gin.Context) { list, err := containerService.ListVolume() @@ -587,6 +614,7 @@ func (b *BaseApi) ListVolume(c *gin.Context) { // @Param request body dto.BatchDelete true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /containers/volume/del [post] // @x-panel-log {"bodyKeys":["names"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"删除容器存储卷 [names]","formatEN":"delete container volume [names]"} func (b *BaseApi) DeleteVolume(c *gin.Context) { @@ -608,6 +636,7 @@ func (b *BaseApi) DeleteVolume(c *gin.Context) { // @Param request body dto.VolumeCreate true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /containers/volume [post] // @x-panel-log {"bodyKeys":["name"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"创建容器存储卷 [name]","formatEN":"create container volume [name]"} func (b *BaseApi) CreateVolume(c *gin.Context) { @@ -629,6 +658,7 @@ func (b *BaseApi) CreateVolume(c *gin.Context) { // @Param request body dto.ComposeUpdate true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /containers/compose/update [post] // @x-panel-log {"bodyKeys":["name"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"更新 compose [name]","formatEN":"update compose information [name]"} func (b *BaseApi) ComposeUpdate(c *gin.Context) { @@ -651,6 +681,7 @@ func (b *BaseApi) ComposeUpdate(c *gin.Context) { // @Param follow query string false "follow" // @Param tail query string false "tail" // @Security ApiKeyAuth +// @Security Timestamp // @Router /containers/compose/search/log [get] func (b *BaseApi) ComposeLogs(c *gin.Context) { wsConn, err := upGrader.Upgrade(c.Writer, c.Request, nil) diff --git a/backend/app/api/v1/cronjob.go b/backend/app/api/v1/cronjob.go index 6e8cf513d..54c3153ac 100644 --- a/backend/app/api/v1/cronjob.go +++ b/backend/app/api/v1/cronjob.go @@ -16,6 +16,7 @@ import ( // @Param request body dto.CronjobCreate true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /cronjobs [post] // @x-panel-log {"bodyKeys":["type","name"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"创建计划任务 [type][name]","formatEN":"create cronjob [type][name]"} func (b *BaseApi) CreateCronjob(c *gin.Context) { @@ -37,6 +38,7 @@ func (b *BaseApi) CreateCronjob(c *gin.Context) { // @Param request body dto.PageCronjob true "request" // @Success 200 {object} dto.PageResult // @Security ApiKeyAuth +// @Security Timestamp // @Router /cronjobs/search [post] func (b *BaseApi) SearchCronjob(c *gin.Context) { var req dto.PageCronjob @@ -62,6 +64,7 @@ func (b *BaseApi) SearchCronjob(c *gin.Context) { // @Param request body dto.SearchRecord true "request" // @Success 200 {object} dto.PageResult // @Security ApiKeyAuth +// @Security Timestamp // @Router /cronjobs/search/records [post] func (b *BaseApi) SearchJobRecords(c *gin.Context) { var req dto.SearchRecord @@ -91,6 +94,7 @@ func (b *BaseApi) SearchJobRecords(c *gin.Context) { // @Param request body dto.OperateByID true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /cronjobs/records/log [post] func (b *BaseApi) LoadRecordLog(c *gin.Context) { var req dto.OperateByID @@ -107,6 +111,7 @@ func (b *BaseApi) LoadRecordLog(c *gin.Context) { // @Param request body dto.CronjobClean true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /cronjobs/records/clean [post] // @x-panel-log {"bodyKeys":["id"],"paramKeys":[],"BeforeFunctions":[{"input_column":"id","input_value":"id","isList":false,"db":"cronjobs","output_column":"name","output_value":"name"}],"formatZH":"清空计划任务记录 [name]","formatEN":"clean cronjob [name] records"} func (b *BaseApi) CleanRecord(c *gin.Context) { @@ -129,6 +134,7 @@ func (b *BaseApi) CleanRecord(c *gin.Context) { // @Param request body dto.CronjobBatchDelete true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /cronjobs/del [post] // @x-panel-log {"bodyKeys":["ids"],"paramKeys":[],"BeforeFunctions":[{"input_column":"id","input_value":"ids","isList":true,"db":"cronjobs","output_column":"name","output_value":"names"}],"formatZH":"删除计划任务 [names]","formatEN":"delete cronjob [names]"} func (b *BaseApi) DeleteCronjob(c *gin.Context) { @@ -150,6 +156,7 @@ func (b *BaseApi) DeleteCronjob(c *gin.Context) { // @Param request body dto.CronjobUpdate true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /cronjobs/update [post] // @x-panel-log {"bodyKeys":["id"],"paramKeys":[],"BeforeFunctions":[{"input_column":"id","input_value":"id","isList":false,"db":"cronjobs","output_column":"name","output_value":"name"}],"formatZH":"更新计划任务 [name]","formatEN":"update cronjob [name]"} func (b *BaseApi) UpdateCronjob(c *gin.Context) { @@ -171,6 +178,7 @@ func (b *BaseApi) UpdateCronjob(c *gin.Context) { // @Param request body dto.CronjobUpdateStatus true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /cronjobs/status [post] // @x-panel-log {"bodyKeys":["id","status"],"paramKeys":[],"BeforeFunctions":[{"input_column":"id","input_value":"id","isList":false,"db":"cronjobs","output_column":"name","output_value":"name"}],"formatZH":"修改计划任务 [name] 状态为 [status]","formatEN":"change the status of cronjob [name] to [status]."} func (b *BaseApi) UpdateCronjobStatus(c *gin.Context) { @@ -192,6 +200,7 @@ func (b *BaseApi) UpdateCronjobStatus(c *gin.Context) { // @Param request body dto.CronjobDownload true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /cronjobs/download [post] // @x-panel-log {"bodyKeys":["recordID"],"paramKeys":[],"BeforeFunctions":[{"input_column":"id","input_value":"recordID","isList":false,"db":"job_records","output_column":"file","output_value":"file"}],"formatZH":"下载计划任务记录 [file]","formatEN":"download the cronjob record [file]"} func (b *BaseApi) TargetDownload(c *gin.Context) { @@ -215,6 +224,7 @@ func (b *BaseApi) TargetDownload(c *gin.Context) { // @Param request body dto.OperateByID true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /cronjobs/handle [post] // @x-panel-log {"bodyKeys":["id"],"paramKeys":[],"BeforeFunctions":[{"input_column":"id","input_value":"id","isList":false,"db":"cronjobs","output_column":"name","output_value":"name"}],"formatZH":"手动执行计划任务 [name]","formatEN":"manually execute the cronjob [name]"} func (b *BaseApi) HandleOnce(c *gin.Context) { diff --git a/backend/app/api/v1/dashboard.go b/backend/app/api/v1/dashboard.go index 1e873e65d..b2cbc70fc 100644 --- a/backend/app/api/v1/dashboard.go +++ b/backend/app/api/v1/dashboard.go @@ -15,6 +15,7 @@ import ( // @Accept json // @Success 200 {object} dto.OsInfo // @Security ApiKeyAuth +// @Security Timestamp // @Router /dashboard/base/os [get] func (b *BaseApi) LoadDashboardOsInfo(c *gin.Context) { data, err := dashboardService.LoadOsInfo() @@ -32,6 +33,7 @@ func (b *BaseApi) LoadDashboardOsInfo(c *gin.Context) { // @Param netOption path string true "request" // @Success 200 {object} dto.DashboardBase // @Security ApiKeyAuth +// @Security Timestamp // @Router /dashboard/base/:ioOption/:netOption [get] func (b *BaseApi) LoadDashboardBaseInfo(c *gin.Context) { ioOption, ok := c.Params.Get("ioOption") @@ -58,6 +60,7 @@ func (b *BaseApi) LoadDashboardBaseInfo(c *gin.Context) { // @Param request body dto.DashboardReq true "request" // @Success 200 {object} dto.DashboardCurrent // @Security ApiKeyAuth +// @Security Timestamp // @Router /dashboard/current [post] func (b *BaseApi) LoadDashboardCurrentInfo(c *gin.Context) { var req dto.DashboardReq @@ -74,6 +77,7 @@ func (b *BaseApi) LoadDashboardCurrentInfo(c *gin.Context) { // @Param operation path string true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /dashboard/system/restart/:operation [post] func (b *BaseApi) SystemRestart(c *gin.Context) { operation, ok := c.Params.Get("operation") diff --git a/backend/app/api/v1/database.go b/backend/app/api/v1/database.go index ac976100f..cb9e4badf 100644 --- a/backend/app/api/v1/database.go +++ b/backend/app/api/v1/database.go @@ -15,6 +15,7 @@ import ( // @Param request body dto.DatabaseCreate true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /databases/db [post] // @x-panel-log {"bodyKeys":["name", "type"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"创建远程数据库 [name][type]","formatEN":"create database [name][type]"} func (b *BaseApi) CreateDatabase(c *gin.Context) { @@ -44,6 +45,7 @@ func (b *BaseApi) CreateDatabase(c *gin.Context) { // @Param request body dto.DatabaseCreate true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /databases/db/check [post] // @x-panel-log {"bodyKeys":["name", "type"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"检测远程数据库 [name][type] 连接性","formatEN":"check if database [name][type] is connectable"} func (b *BaseApi) CheckDatabase(c *gin.Context) { @@ -69,6 +71,7 @@ func (b *BaseApi) CheckDatabase(c *gin.Context) { // @Param request body dto.DatabaseSearch true "request" // @Success 200 {object} dto.PageResult // @Security ApiKeyAuth +// @Security Timestamp // @Router /databases/db/search [post] func (b *BaseApi) SearchDatabase(c *gin.Context) { var req dto.DatabaseSearch @@ -92,6 +95,7 @@ func (b *BaseApi) SearchDatabase(c *gin.Context) { // @Summary List databases // @Success 200 {array} dto.DatabaseOption // @Security ApiKeyAuth +// @Security Timestamp // @Router /databases/db/list/:type [get] func (b *BaseApi) ListDatabase(c *gin.Context) { dbType, err := helper.GetStrParamByKey(c, "type") @@ -112,6 +116,7 @@ func (b *BaseApi) ListDatabase(c *gin.Context) { // @Summary Retrieve database list based on type // @Success 200 {array} dto.DatabaseItem // @Security ApiKeyAuth +// @Security Timestamp // @Router /databases/db/item/:type [get] func (b *BaseApi) LoadDatabaseItems(c *gin.Context) { dbType, err := helper.GetStrParamByKey(c, "type") @@ -132,6 +137,7 @@ func (b *BaseApi) LoadDatabaseItems(c *gin.Context) { // @Summary Get databases // @Success 200 {object} dto.DatabaseInfo // @Security ApiKeyAuth +// @Security Timestamp // @Router /databases/db/:name [get] func (b *BaseApi) GetDatabase(c *gin.Context) { name, err := helper.GetStrParamByKey(c, "name") @@ -154,6 +160,7 @@ func (b *BaseApi) GetDatabase(c *gin.Context) { // @Param request body dto.OperateByID true "request" // @Success 200 {array} string // @Security ApiKeyAuth +// @Security Timestamp // @Router /db/remote/del/check [post] func (b *BaseApi) DeleteCheckDatabase(c *gin.Context) { var req dto.OperateByID @@ -175,6 +182,7 @@ func (b *BaseApi) DeleteCheckDatabase(c *gin.Context) { // @Param request body dto.DatabaseDelete true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /databases/db/del [post] // @x-panel-log {"bodyKeys":["ids"],"paramKeys":[],"BeforeFunctions":[{"input_column":"id","input_value":"ids","isList":true,"db":"databases","output_column":"name","output_value":"names"}],"formatZH":"删除远程数据库 [names]","formatEN":"delete database [names]"} func (b *BaseApi) DeleteDatabase(c *gin.Context) { @@ -196,6 +204,7 @@ func (b *BaseApi) DeleteDatabase(c *gin.Context) { // @Param request body dto.DatabaseUpdate true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /databases/db/update [post] // @x-panel-log {"bodyKeys":["name"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"更新远程数据库 [name]","formatEN":"update database [name]"} func (b *BaseApi) UpdateDatabase(c *gin.Context) { diff --git a/backend/app/api/v1/database_common.go b/backend/app/api/v1/database_common.go index 9ef71d068..3067bfdec 100644 --- a/backend/app/api/v1/database_common.go +++ b/backend/app/api/v1/database_common.go @@ -13,6 +13,7 @@ import ( // @Param request body dto.OperationWithNameAndType true "request" // @Success 200 {object} dto.DBBaseInfo // @Security ApiKeyAuth +// @Security Timestamp // @Router /databases/common/info [post] func (b *BaseApi) LoadDBBaseInfo(c *gin.Context) { var req dto.OperationWithNameAndType @@ -35,6 +36,7 @@ func (b *BaseApi) LoadDBBaseInfo(c *gin.Context) { // @Param request body dto.OperationWithNameAndType true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /databases/common/load/file [post] func (b *BaseApi) LoadDBFile(c *gin.Context) { var req dto.OperationWithNameAndType @@ -55,6 +57,7 @@ func (b *BaseApi) LoadDBFile(c *gin.Context) { // @Param request body dto.DBConfUpdateByFile true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /databases/common/update/conf [post] // @x-panel-log {"bodyKeys":["type","database"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"更新 [type] 数据库 [database] 配置信息","formatEN":"update the [type] [database] database configuration information"} func (b *BaseApi) UpdateDBConfByFile(c *gin.Context) { diff --git a/backend/app/api/v1/database_mysql.go b/backend/app/api/v1/database_mysql.go index 73b73a5e4..7d4e3a7a3 100644 --- a/backend/app/api/v1/database_mysql.go +++ b/backend/app/api/v1/database_mysql.go @@ -16,6 +16,7 @@ import ( // @Param request body dto.MysqlDBCreate true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /databases [post] // @x-panel-log {"bodyKeys":["name"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"创建 mysql 数据库 [name]","formatEN":"create mysql database [name]"} func (b *BaseApi) CreateMysql(c *gin.Context) { @@ -46,6 +47,7 @@ func (b *BaseApi) CreateMysql(c *gin.Context) { // @Param request body dto.BindUser true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /databases/bind [post] // @x-panel-log {"bodyKeys":["database", "username"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"绑定 mysql 数据库名 [database] [username]","formatEN":"bind mysql database [database] [username]"} func (b *BaseApi) BindUser(c *gin.Context) { @@ -76,6 +78,7 @@ func (b *BaseApi) BindUser(c *gin.Context) { // @Param request body dto.UpdateDescription true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /databases/description/update [post] // @x-panel-log {"bodyKeys":["id","description"],"paramKeys":[],"BeforeFunctions":[{"input_column":"id","input_value":"id","isList":false,"db":"database_mysqls","output_column":"name","output_value":"name"}],"formatZH":"mysql 数据库 [name] 描述信息修改 [description]","formatEN":"The description of the mysql database [name] is modified => [description]"} func (b *BaseApi) UpdateMysqlDescription(c *gin.Context) { @@ -97,6 +100,7 @@ func (b *BaseApi) UpdateMysqlDescription(c *gin.Context) { // @Param request body dto.ChangeDBInfo true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /databases/change/password [post] // @x-panel-log {"bodyKeys":["id"],"paramKeys":[],"BeforeFunctions":[{"input_column":"id","input_value":"id","isList":false,"db":"database_mysqls","output_column":"name","output_value":"name"}],"formatZH":"更新数据库 [name] 密码","formatEN":"Update database [name] password"} func (b *BaseApi) ChangeMysqlPassword(c *gin.Context) { @@ -127,6 +131,7 @@ func (b *BaseApi) ChangeMysqlPassword(c *gin.Context) { // @Param request body dto.ChangeDBInfo true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /databases/change/access [post] // @x-panel-log {"bodyKeys":["id"],"paramKeys":[],"BeforeFunctions":[{"input_column":"id","input_value":"id","isList":false,"db":"database_mysqls","output_column":"name","output_value":"name"}],"formatZH":"更新数据库 [name] 访问权限","formatEN":"Update database [name] access"} func (b *BaseApi) ChangeMysqlAccess(c *gin.Context) { @@ -148,6 +153,7 @@ func (b *BaseApi) ChangeMysqlAccess(c *gin.Context) { // @Param request body dto.MysqlVariablesUpdate true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /databases/variables/update [post] // @x-panel-log {"bodyKeys":[],"paramKeys":[],"BeforeFunctions":[],"formatZH":"调整 mysql 数据库性能参数","formatEN":"adjust mysql database performance parameters"} func (b *BaseApi) UpdateMysqlVariables(c *gin.Context) { @@ -169,6 +175,7 @@ func (b *BaseApi) UpdateMysqlVariables(c *gin.Context) { // @Param request body dto.MysqlDBSearch true "request" // @Success 200 {object} dto.PageResult // @Security ApiKeyAuth +// @Security Timestamp // @Router /databases/search [post] func (b *BaseApi) SearchMysql(c *gin.Context) { var req dto.MysqlDBSearch @@ -194,6 +201,7 @@ func (b *BaseApi) SearchMysql(c *gin.Context) { // @Param request body dto.PageInfo true "request" // @Success 200 {array} dto.MysqlOption // @Security ApiKeyAuth +// @Security Timestamp // @Router /databases/options [get] func (b *BaseApi) ListDBName(c *gin.Context) { list, err := mysqlService.ListDBOption() @@ -210,6 +218,7 @@ func (b *BaseApi) ListDBName(c *gin.Context) { // @Accept json // @Param request body dto.MysqlLoadDB true "request" // @Security ApiKeyAuth +// @Security Timestamp // @Router /databases/load [post] func (b *BaseApi) LoadDBFromRemote(c *gin.Context) { var req dto.MysqlLoadDB @@ -231,6 +240,7 @@ func (b *BaseApi) LoadDBFromRemote(c *gin.Context) { // @Param request body dto.MysqlDBDeleteCheck true "request" // @Success 200 {array} string // @Security ApiKeyAuth +// @Security Timestamp // @Router /databases/del/check [post] func (b *BaseApi) DeleteCheckMysql(c *gin.Context) { var req dto.MysqlDBDeleteCheck @@ -252,6 +262,7 @@ func (b *BaseApi) DeleteCheckMysql(c *gin.Context) { // @Param request body dto.MysqlDBDelete true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /databases/del [post] // @x-panel-log {"bodyKeys":["id"],"paramKeys":[],"BeforeFunctions":[{"input_column":"id","input_value":"id","isList":false,"db":"database_mysqls","output_column":"name","output_value":"name"}],"formatZH":"删除 mysql 数据库 [name]","formatEN":"delete mysql database [name]"} func (b *BaseApi) DeleteMysql(c *gin.Context) { @@ -276,6 +287,7 @@ func (b *BaseApi) DeleteMysql(c *gin.Context) { // @Param request body dto.OperationWithNameAndType true "request" // @Success 200 {boolean} isRemote // @Security ApiKeyAuth +// @Security Timestamp // @Router /databases/remote [post] func (b *BaseApi) LoadRemoteAccess(c *gin.Context) { var req dto.OperationWithNameAndType @@ -297,6 +309,7 @@ func (b *BaseApi) LoadRemoteAccess(c *gin.Context) { // @Param request body dto.OperationWithNameAndType true "request" // @Success 200 {object} dto.MysqlStatus // @Security ApiKeyAuth +// @Security Timestamp // @Router /databases/status [post] func (b *BaseApi) LoadStatus(c *gin.Context) { var req dto.OperationWithNameAndType @@ -319,6 +332,7 @@ func (b *BaseApi) LoadStatus(c *gin.Context) { // @Param request body dto.OperationWithNameAndType true "request" // @Success 200 {object} dto.MysqlVariables // @Security ApiKeyAuth +// @Security Timestamp // @Router /databases/variables [post] func (b *BaseApi) LoadVariables(c *gin.Context) { var req dto.OperationWithNameAndType diff --git a/backend/app/api/v1/database_postgresql.go b/backend/app/api/v1/database_postgresql.go index 56dc53b8d..ea41d2221 100644 --- a/backend/app/api/v1/database_postgresql.go +++ b/backend/app/api/v1/database_postgresql.go @@ -16,6 +16,7 @@ import ( // @Param request body dto.PostgresqlDBCreate true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /databases/pg [post] // @x-panel-log {"bodyKeys":["name"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"创建 postgresql 数据库 [name]","formatEN":"create postgresql database [name]"} func (b *BaseApi) CreatePostgresql(c *gin.Context) { @@ -46,6 +47,7 @@ func (b *BaseApi) CreatePostgresql(c *gin.Context) { // @Param request body dto.PostgresqlBindUser true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /databases/pg/bind [post] // @x-panel-log {"bodyKeys":["name", "username"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"绑定 postgresql 数据库 [name] 用户 [username]","formatEN":"bind postgresql database [name] user [username]"} func (b *BaseApi) BindPostgresqlUser(c *gin.Context) { @@ -67,6 +69,7 @@ func (b *BaseApi) BindPostgresqlUser(c *gin.Context) { // @Param request body dto.UpdateDescription true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /databases/pg/description [post] // @x-panel-log {"bodyKeys":["id","description"],"paramKeys":[],"BeforeFunctions":[{"input_column":"id","input_value":"id","isList":false,"db":"database_postgresqls","output_column":"name","output_value":"name"}],"formatZH":"postgresql 数据库 [name] 描述信息修改 [description]","formatEN":"The description of the postgresql database [name] is modified => [description]"} func (b *BaseApi) UpdatePostgresqlDescription(c *gin.Context) { @@ -88,6 +91,7 @@ func (b *BaseApi) UpdatePostgresqlDescription(c *gin.Context) { // @Param request body dto.ChangeDBInfo true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /databases/pg/privileges [post] // @x-panel-log {"bodyKeys":["database", "username"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"更新数据库 [database] 用户 [username] 权限","formatEN":"Update [user] privileges of database [database]"} func (b *BaseApi) ChangePostgresqlPrivileges(c *gin.Context) { @@ -109,6 +113,7 @@ func (b *BaseApi) ChangePostgresqlPrivileges(c *gin.Context) { // @Param request body dto.ChangeDBInfo true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /databases/pg/password [post] // @x-panel-log {"bodyKeys":["id"],"paramKeys":[],"BeforeFunctions":[{"input_column":"id","input_value":"id","isList":false,"db":"database_postgresqls","output_column":"name","output_value":"name"}],"formatZH":"更新数据库 [name] 密码","formatEN":"Update database [name] password"} func (b *BaseApi) ChangePostgresqlPassword(c *gin.Context) { @@ -139,6 +144,7 @@ func (b *BaseApi) ChangePostgresqlPassword(c *gin.Context) { // @Param request body dto.PostgresqlDBSearch true "request" // @Success 200 {object} dto.PageResult // @Security ApiKeyAuth +// @Security Timestamp // @Router /databases/pg/search [post] func (b *BaseApi) SearchPostgresql(c *gin.Context) { var req dto.PostgresqlDBSearch @@ -163,6 +169,7 @@ func (b *BaseApi) SearchPostgresql(c *gin.Context) { // @Accept json // @Param request body dto.PostgresqlLoadDB true "request" // @Security ApiKeyAuth +// @Security Timestamp // @Router /databases/pg/:database/load [post] func (b *BaseApi) LoadPostgresqlDBFromRemote(c *gin.Context) { database, err := helper.GetStrParamByKey(c, "database") @@ -185,6 +192,7 @@ func (b *BaseApi) LoadPostgresqlDBFromRemote(c *gin.Context) { // @Param request body dto.PostgresqlDBDeleteCheck true "request" // @Success 200 {array} string // @Security ApiKeyAuth +// @Security Timestamp // @Router /databases/pg/del/check [post] func (b *BaseApi) DeleteCheckPostgresql(c *gin.Context) { var req dto.PostgresqlDBDeleteCheck @@ -206,6 +214,7 @@ func (b *BaseApi) DeleteCheckPostgresql(c *gin.Context) { // @Param request body dto.PostgresqlDBDelete true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /databases/pg/del [post] // @x-panel-log {"bodyKeys":["id"],"paramKeys":[],"BeforeFunctions":[{"input_column":"id","input_value":"id","isList":false,"db":"database_postgresqls","output_column":"name","output_value":"name"}],"formatZH":"删除 postgresql 数据库 [name]","formatEN":"delete postgresql database [name]"} func (b *BaseApi) DeletePostgresql(c *gin.Context) { diff --git a/backend/app/api/v1/database_redis.go b/backend/app/api/v1/database_redis.go index bef94da82..2d16c2744 100644 --- a/backend/app/api/v1/database_redis.go +++ b/backend/app/api/v1/database_redis.go @@ -15,6 +15,7 @@ import ( // @Param request body dto.OperationWithName true "request" // @Success 200 {object} dto.RedisStatus // @Security ApiKeyAuth +// @Security Timestamp // @Router /databases/redis/status [post] func (b *BaseApi) LoadRedisStatus(c *gin.Context) { var req dto.OperationWithName @@ -36,6 +37,7 @@ func (b *BaseApi) LoadRedisStatus(c *gin.Context) { // @Param request body dto.OperationWithName true "request" // @Success 200 {object} dto.RedisConf // @Security ApiKeyAuth +// @Security Timestamp // @Router /databases/redis/conf [post] func (b *BaseApi) LoadRedisConf(c *gin.Context) { var req dto.OperationWithName @@ -57,6 +59,7 @@ func (b *BaseApi) LoadRedisConf(c *gin.Context) { // @Param request body dto.OperationWithName true "request" // @Success 200 {object} dto.RedisPersistence // @Security ApiKeyAuth +// @Security Timestamp // @Router /databases/redis/persistence/conf [post] func (b *BaseApi) LoadPersistenceConf(c *gin.Context) { var req dto.OperationWithName @@ -80,6 +83,7 @@ func (b *BaseApi) CheckHasCli(c *gin.Context) { // @Summary Install redis-cli // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /databases/redis/install/cli [post] func (b *BaseApi) InstallCli(c *gin.Context) { if err := redisService.InstallCli(); err != nil { @@ -96,6 +100,7 @@ func (b *BaseApi) InstallCli(c *gin.Context) { // @Param request body dto.RedisConfUpdate true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /databases/redis/conf/update [post] // @x-panel-log {"bodyKeys":[],"paramKeys":[],"BeforeFunctions":[],"formatZH":"更新 redis 数据库配置信息","formatEN":"update the redis database configuration information"} func (b *BaseApi) UpdateRedisConf(c *gin.Context) { @@ -117,6 +122,7 @@ func (b *BaseApi) UpdateRedisConf(c *gin.Context) { // @Param request body dto.ChangeRedisPass true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /databases/redis/password [post] // @x-panel-log {"bodyKeys":[],"paramKeys":[],"BeforeFunctions":[],"formatZH":"修改 redis 数据库密码","formatEN":"change the password of the redis database"} func (b *BaseApi) ChangeRedisPassword(c *gin.Context) { @@ -147,6 +153,7 @@ func (b *BaseApi) ChangeRedisPassword(c *gin.Context) { // @Param request body dto.RedisConfPersistenceUpdate true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /databases/redis/persistence/update [post] // @x-panel-log {"bodyKeys":[],"paramKeys":[],"BeforeFunctions":[],"formatZH":"redis 数据库持久化配置更新","formatEN":"redis database persistence configuration update"} func (b *BaseApi) UpdateRedisPersistenceConf(c *gin.Context) { diff --git a/backend/app/api/v1/device.go b/backend/app/api/v1/device.go index 5c709a27b..425e19d30 100644 --- a/backend/app/api/v1/device.go +++ b/backend/app/api/v1/device.go @@ -13,6 +13,7 @@ import ( // @Summary Load device base info // @Success 200 {object} dto.DeviceBaseInfo // @Security ApiKeyAuth +// @Security Timestamp // @Router /toolbox/device/base [post] func (b *BaseApi) LoadDeviceBaseInfo(c *gin.Context) { data, err := deviceService.LoadBaseInfo() @@ -29,6 +30,7 @@ func (b *BaseApi) LoadDeviceBaseInfo(c *gin.Context) { // @Accept json // @Success 200 {Array} string // @Security ApiKeyAuth +// @Security Timestamp // @Router /toolbox/device/zone/options [get] func (b *BaseApi) LoadTimeOption(c *gin.Context) { list, err := deviceService.LoadTimeZone() @@ -46,6 +48,7 @@ func (b *BaseApi) LoadTimeOption(c *gin.Context) { // @Param request body dto.OperationWithName true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /toolbox/device/conf [post] func (b *BaseApi) LoadDeviceConf(c *gin.Context) { var req dto.OperationWithName @@ -68,6 +71,7 @@ func (b *BaseApi) LoadDeviceConf(c *gin.Context) { // @Param request body dto.UpdateByNameAndFile true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /toolbox/device/update/byconf [post] func (b *BaseApi) UpdateDeviceByFile(c *gin.Context) { var req dto.UpdateByNameAndFile @@ -88,6 +92,7 @@ func (b *BaseApi) UpdateDeviceByFile(c *gin.Context) { // @Param request body dto.SettingUpdate true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /toolbox/device/update/conf [post] // @x-panel-log {"bodyKeys":["key","value"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"修改主机参数 [key] => [value]","formatEN":"update device conf [key] => [value]"} func (b *BaseApi) UpdateDeviceConf(c *gin.Context) { @@ -108,6 +113,7 @@ func (b *BaseApi) UpdateDeviceConf(c *gin.Context) { // @Summary Update device hosts // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /toolbox/device/update/host [post] // @x-panel-log {"bodyKeys":["key","value"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"修改主机 Host [key] => [value]","formatEN":"update device host [key] => [value]"} func (b *BaseApi) UpdateDeviceHost(c *gin.Context) { @@ -130,6 +136,7 @@ func (b *BaseApi) UpdateDeviceHost(c *gin.Context) { // @Param request body dto.ChangePasswd true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /toolbox/device/update/passwd [post] func (b *BaseApi) UpdateDevicePasswd(c *gin.Context) { var req dto.ChangePasswd @@ -158,6 +165,7 @@ func (b *BaseApi) UpdateDevicePasswd(c *gin.Context) { // @Param request body dto.SwapHelper true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /toolbox/device/update/swap [post] // @x-panel-log {"bodyKeys":["operate","path"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"[operate] 主机 swap [path]","formatEN":"[operate] device swap [path]"} func (b *BaseApi) UpdateDeviceSwap(c *gin.Context) { @@ -179,6 +187,7 @@ func (b *BaseApi) UpdateDeviceSwap(c *gin.Context) { // @Param request body dto.SettingUpdate true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /toolbox/device/check/dns [post] func (b *BaseApi) CheckDNS(c *gin.Context) { var req dto.SettingUpdate @@ -199,6 +208,7 @@ func (b *BaseApi) CheckDNS(c *gin.Context) { // @Summary Scan system // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /toolbox/scan [post] // @x-panel-log {"bodyKeys":[],"paramKeys":[],"BeforeFunctions":[],"formatZH":"扫描系统垃圾文件","formatEN":"scan System Junk Files"} func (b *BaseApi) ScanSystem(c *gin.Context) { @@ -211,6 +221,7 @@ func (b *BaseApi) ScanSystem(c *gin.Context) { // @Param request body []dto.Clean true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /toolbox/clean [post] // @x-panel-log {"bodyKeys":[],"paramKeys":[],"BeforeFunctions":[],"formatZH":"清理系统垃圾文件","formatEN":"Clean system junk files"} func (b *BaseApi) SystemClean(c *gin.Context) { diff --git a/backend/app/api/v1/docker.go b/backend/app/api/v1/docker.go index 90d3f1ca8..06593d4d8 100644 --- a/backend/app/api/v1/docker.go +++ b/backend/app/api/v1/docker.go @@ -14,6 +14,7 @@ import ( // @Produce json // @Success 200 {string} status // @Security ApiKeyAuth +// @Security Timestamp // @Router /containers/docker/status [get] func (b *BaseApi) LoadDockerStatus(c *gin.Context) { status := dockerService.LoadDockerStatus() @@ -25,6 +26,7 @@ func (b *BaseApi) LoadDockerStatus(c *gin.Context) { // @Produce json // @Success 200 {object} string // @Security ApiKeyAuth +// @Security Timestamp // @Router /containers/daemonjson/file [get] func (b *BaseApi) LoadDaemonJsonFile(c *gin.Context) { if _, err := os.Stat(constant.DaemonJsonPath); err != nil { @@ -44,6 +46,7 @@ func (b *BaseApi) LoadDaemonJsonFile(c *gin.Context) { // @Produce json // @Success 200 {object} dto.DaemonJsonConf // @Security ApiKeyAuth +// @Security Timestamp // @Router /containers/daemonjson [get] func (b *BaseApi) LoadDaemonJson(c *gin.Context) { conf := dockerService.LoadDockerConf() @@ -56,6 +59,7 @@ func (b *BaseApi) LoadDaemonJson(c *gin.Context) { // @Param request body dto.SettingUpdate true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /containers/daemonjson/update [post] // @x-panel-log {"bodyKeys":["key", "value"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"更新配置 [key]","formatEN":"Updated configuration [key]"} func (b *BaseApi) UpdateDaemonJson(c *gin.Context) { @@ -78,6 +82,7 @@ func (b *BaseApi) UpdateDaemonJson(c *gin.Context) { // @Param request body dto.LogOption true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /containers/logoption/update [post] // @x-panel-log {"bodyKeys":[],"paramKeys":[],"BeforeFunctions":[],"formatZH":"更新日志配置","formatEN":"Updated the log option"} func (b *BaseApi) UpdateLogOption(c *gin.Context) { @@ -100,6 +105,7 @@ func (b *BaseApi) UpdateLogOption(c *gin.Context) { // @Param request body dto.LogOption true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /containers/ipv6option/update [post] // @x-panel-log {"bodyKeys":[],"paramKeys":[],"BeforeFunctions":[],"formatZH":"更新 ipv6 配置","formatEN":"Updated the ipv6 option"} func (b *BaseApi) UpdateIpv6Option(c *gin.Context) { @@ -122,6 +128,7 @@ func (b *BaseApi) UpdateIpv6Option(c *gin.Context) { // @Param request body dto.DaemonJsonUpdateByFile true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /containers/daemonjson/update/byfile [post] // @x-panel-log {"bodyKeys":[],"paramKeys":[],"BeforeFunctions":[],"formatZH":"更新配置文件","formatEN":"Updated configuration file"} func (b *BaseApi) UpdateDaemonJsonByFile(c *gin.Context) { @@ -144,6 +151,7 @@ func (b *BaseApi) UpdateDaemonJsonByFile(c *gin.Context) { // @Param request body dto.DockerOperation true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /containers/docker/operate [post] // @x-panel-log {"bodyKeys":["operation"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"docker 服务 [operation]","formatEN":"[operation] docker service"} func (b *BaseApi) OperateDocker(c *gin.Context) { diff --git a/backend/app/api/v1/fail2ban.go b/backend/app/api/v1/fail2ban.go index 86d8023ec..5928160a9 100644 --- a/backend/app/api/v1/fail2ban.go +++ b/backend/app/api/v1/fail2ban.go @@ -13,6 +13,7 @@ import ( // @Summary Load fail2ban base info // @Success 200 {object} dto.Fail2BanBaseInfo // @Security ApiKeyAuth +// @Security Timestamp // @Router /toolbox/fail2ban/base [get] func (b *BaseApi) LoadFail2BanBaseInfo(c *gin.Context) { data, err := fail2banService.LoadBaseInfo() @@ -30,6 +31,7 @@ func (b *BaseApi) LoadFail2BanBaseInfo(c *gin.Context) { // @Param request body dto.Fail2BanSearch true "request" // @Success 200 {Array} string // @Security ApiKeyAuth +// @Security Timestamp // @Router /toolbox/fail2ban/search [post] func (b *BaseApi) SearchFail2Ban(c *gin.Context) { var req dto.Fail2BanSearch @@ -51,6 +53,7 @@ func (b *BaseApi) SearchFail2Ban(c *gin.Context) { // @Accept json // @Param request body dto.Operate true "request" // @Security ApiKeyAuth +// @Security Timestamp // @Router /toolbox/fail2ban/operate [post] // @x-panel-log {"bodyKeys":["operation"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"[operation] Fail2ban","formatEN":"[operation] Fail2ban"} func (b *BaseApi) OperateFail2Ban(c *gin.Context) { @@ -72,6 +75,7 @@ func (b *BaseApi) OperateFail2Ban(c *gin.Context) { // @Accept json // @Param request body dto.Operate true "request" // @Security ApiKeyAuth +// @Security Timestamp // @Router /toolbox/fail2ban/operate/sshd [post] func (b *BaseApi) OperateSSHD(c *gin.Context) { var req dto.Fail2BanSet @@ -93,6 +97,7 @@ func (b *BaseApi) OperateSSHD(c *gin.Context) { // @Param request body dto.Fail2BanUpdate true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /toolbox/fail2ban/update [post] // @x-panel-log {"bodyKeys":["key","value"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"修改 Fail2ban 配置 [key] => [value]","formatEN":"update fail2ban conf [key] => [value]"} func (b *BaseApi) UpdateFail2BanConf(c *gin.Context) { @@ -113,6 +118,7 @@ func (b *BaseApi) UpdateFail2BanConf(c *gin.Context) { // @Accept json // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /toolbox/fail2ban/load/conf [get] func (b *BaseApi) LoadFail2BanConf(c *gin.Context) { path := "/etc/fail2ban/jail.local" @@ -131,6 +137,7 @@ func (b *BaseApi) LoadFail2BanConf(c *gin.Context) { // @Param request body dto.UpdateByFile true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /toolbox/fail2ban/update/byconf [post] func (b *BaseApi) UpdateFail2BanConfByFile(c *gin.Context) { var req dto.UpdateByFile diff --git a/backend/app/api/v1/favorite.go b/backend/app/api/v1/favorite.go index c16297234..28666f3ee 100644 --- a/backend/app/api/v1/favorite.go +++ b/backend/app/api/v1/favorite.go @@ -14,6 +14,7 @@ import ( // @Param request body dto.PageInfo true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /files/favorite/search [post] func (b *BaseApi) SearchFavorite(c *gin.Context) { var req dto.PageInfo @@ -37,6 +38,7 @@ func (b *BaseApi) SearchFavorite(c *gin.Context) { // @Param request body request.FavoriteCreate true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /files/favorite [post] // @x-panel-log {"bodyKeys":["path"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"收藏文件/文件夹 [path]","formatEN":"收藏文件/文件夹 [path]"} func (b *BaseApi) CreateFavorite(c *gin.Context) { @@ -58,6 +60,7 @@ func (b *BaseApi) CreateFavorite(c *gin.Context) { // @Param request body request.FavoriteDelete true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /files/favorite/del [post] // @x-panel-log {"bodyKeys":["id"],"paramKeys":[],"BeforeFunctions":[{"input_column":"id","input_value":"id","isList":false,"db":"favorites","output_column":"path","output_value":"path"}],"formatZH":"删除收藏 [path]","formatEN":"delete avorite [path]"} func (b *BaseApi) DeleteFavorite(c *gin.Context) { diff --git a/backend/app/api/v1/file.go b/backend/app/api/v1/file.go index 2efd4b3d0..43e39dd30 100644 --- a/backend/app/api/v1/file.go +++ b/backend/app/api/v1/file.go @@ -32,6 +32,7 @@ import ( // @Param request body request.FileOption true "request" // @Success 200 {object} response.FileInfo // @Security ApiKeyAuth +// @Security Timestamp // @Router /files/search [post] func (b *BaseApi) ListFiles(c *gin.Context) { var req request.FileOption @@ -52,6 +53,7 @@ func (b *BaseApi) ListFiles(c *gin.Context) { // @Param request body request.SearchUploadWithPage true "request" // @Success 200 {array} response.FileInfo // @Security ApiKeyAuth +// @Security Timestamp // @Router /files/upload/search [post] func (b *BaseApi) SearchUploadWithPage(c *gin.Context) { var req request.SearchUploadWithPage @@ -75,6 +77,7 @@ func (b *BaseApi) SearchUploadWithPage(c *gin.Context) { // @Param request body request.FileOption true "request" // @Success 200 {array} response.FileTree // @Security ApiKeyAuth +// @Security Timestamp // @Router /files/tree [post] func (b *BaseApi) GetFileTree(c *gin.Context) { var req request.FileOption @@ -95,6 +98,7 @@ func (b *BaseApi) GetFileTree(c *gin.Context) { // @Param request body request.FileCreate true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /files [post] // @x-panel-log {"bodyKeys":["path"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"创建文件/文件夹 [path]","formatEN":"Create dir or file [path]"} func (b *BaseApi) CreateFile(c *gin.Context) { @@ -116,6 +120,7 @@ func (b *BaseApi) CreateFile(c *gin.Context) { // @Param request body request.FileDelete true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /files/del [post] // @x-panel-log {"bodyKeys":["path"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"删除文件/文件夹 [path]","formatEN":"Delete dir or file [path]"} func (b *BaseApi) DeleteFile(c *gin.Context) { @@ -137,6 +142,7 @@ func (b *BaseApi) DeleteFile(c *gin.Context) { // @Param request body request.FileBatchDelete true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /files/batch/del [post] // @x-panel-log {"bodyKeys":["paths"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"批量删除文件/文件夹 [paths]","formatEN":"Batch delete dir or file [paths]"} func (b *BaseApi) BatchDeleteFile(c *gin.Context) { @@ -158,6 +164,7 @@ func (b *BaseApi) BatchDeleteFile(c *gin.Context) { // @Param request body request.FileCreate true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /files/mode [post] // @x-panel-log {"bodyKeys":["path","mode"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"修改权限 [paths] => [mode]","formatEN":"Change mode [paths] => [mode]"} func (b *BaseApi) ChangeFileMode(c *gin.Context) { @@ -179,6 +186,7 @@ func (b *BaseApi) ChangeFileMode(c *gin.Context) { // @Param request body request.FileRoleUpdate true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /files/owner [post] // @x-panel-log {"bodyKeys":["path","user","group"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"修改用户/组 [paths] => [user]/[group]","formatEN":"Change owner [paths] => [user]/[group]"} func (b *BaseApi) ChangeFileOwner(c *gin.Context) { @@ -199,6 +207,7 @@ func (b *BaseApi) ChangeFileOwner(c *gin.Context) { // @Param request body request.FileCompress true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /files/compress [post] // @x-panel-log {"bodyKeys":["name"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"压缩文件 [name]","formatEN":"Compress file [name]"} func (b *BaseApi) CompressFile(c *gin.Context) { @@ -220,6 +229,7 @@ func (b *BaseApi) CompressFile(c *gin.Context) { // @Param request body request.FileDeCompress true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /files/decompress [post] // @x-panel-log {"bodyKeys":["path"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"解压 [path]","formatEN":"Decompress file [path]"} func (b *BaseApi) DeCompressFile(c *gin.Context) { @@ -241,6 +251,7 @@ func (b *BaseApi) DeCompressFile(c *gin.Context) { // @Param request body request.FileContentReq true "request" // @Success 200 {object} response.FileInfo // @Security ApiKeyAuth +// @Security Timestamp // @Router /files/content [post] // @x-panel-log {"bodyKeys":["path"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"获取文件内容 [path]","formatEN":"Load file content [path]"} func (b *BaseApi) GetContent(c *gin.Context) { @@ -262,6 +273,7 @@ func (b *BaseApi) GetContent(c *gin.Context) { // @Param request body request.FileEdit true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /files/save [post] // @x-panel-log {"bodyKeys":["path"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"更新文件内容 [path]","formatEN":"Update file content [path]"} func (b *BaseApi) SaveContent(c *gin.Context) { @@ -281,6 +293,7 @@ func (b *BaseApi) SaveContent(c *gin.Context) { // @Param file formData file true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /files/upload [post] // @x-panel-log {"bodyKeys":["path"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"上传文件 [path]","formatEN":"Upload file [path]"} func (b *BaseApi) UploadFiles(c *gin.Context) { @@ -389,6 +402,7 @@ func (b *BaseApi) UploadFiles(c *gin.Context) { // @Param request body request.FilePathCheck true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /files/check [post] func (b *BaseApi) CheckFile(c *gin.Context) { var req request.FilePathCheck @@ -408,6 +422,7 @@ func (b *BaseApi) CheckFile(c *gin.Context) { // @Param request body request.FileRename true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /files/rename [post] // @x-panel-log {"bodyKeys":["oldName","newName"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"重命名 [oldName] => [newName]","formatEN":"Rename [oldName] => [newName]"} func (b *BaseApi) ChangeFileName(c *gin.Context) { @@ -428,6 +443,7 @@ func (b *BaseApi) ChangeFileName(c *gin.Context) { // @Param request body request.FileWget true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /files/wget [post] // @x-panel-log {"bodyKeys":["url","path","name"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"下载 url => [path]/[name]","formatEN":"Download url => [path]/[name]"} func (b *BaseApi) WgetFile(c *gin.Context) { @@ -451,6 +467,7 @@ func (b *BaseApi) WgetFile(c *gin.Context) { // @Param request body request.FileMove true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /files/move [post] // @x-panel-log {"bodyKeys":["oldPaths","newPath"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"移动文件 [oldPaths] => [newPath]","formatEN":"Move [oldPaths] => [newPath]"} func (b *BaseApi) MoveFile(c *gin.Context) { @@ -470,6 +487,7 @@ func (b *BaseApi) MoveFile(c *gin.Context) { // @Accept json // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /files/download [get] func (b *BaseApi) Download(c *gin.Context) { filePath := c.Query("path") @@ -490,6 +508,7 @@ func (b *BaseApi) Download(c *gin.Context) { // @Param request body request.FileDownload true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /files/chunkdownload [post] // @x-panel-log {"bodyKeys":["name"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"下载文件 [name]","formatEN":"Download file [name]"} func (b *BaseApi) DownloadChunkFiles(c *gin.Context) { @@ -566,6 +585,7 @@ func (b *BaseApi) DownloadChunkFiles(c *gin.Context) { // @Param request body request.DirSizeReq true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /files/size [post] // @x-panel-log {"bodyKeys":["path"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"获取文件夹大小 [path]","formatEN":"Load file size [path]"} func (b *BaseApi) Size(c *gin.Context) { @@ -645,6 +665,7 @@ func mergeChunks(fileName string, fileDir string, dstDir string, chunkCount int, // @Param file formData file true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /files/chunkupload [post] func (b *BaseApi) UploadChunkFiles(c *gin.Context) { var err error @@ -765,6 +786,7 @@ func (b *BaseApi) Keys(c *gin.Context) { // @Param request body request.FileReadByLineReq true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /files/read [post] func (b *BaseApi) ReadFileByLine(c *gin.Context) { var req request.FileReadByLineReq @@ -785,6 +807,7 @@ func (b *BaseApi) ReadFileByLine(c *gin.Context) { // @Param request body request.FileRoleReq true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /files/batch/role [post] // @x-panel-log {"bodyKeys":["paths","mode","user","group"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"批量修改文件权限和用户/组 [paths] => [mode]/[user]/[group]","formatEN":"Batch change file mode and owner [paths] => [mode]/[user]/[group]"} func (b *BaseApi) BatchChangeModeAndOwner(c *gin.Context) { diff --git a/backend/app/api/v1/firewall.go b/backend/app/api/v1/firewall.go index 68e190751..ff55a9ee5 100644 --- a/backend/app/api/v1/firewall.go +++ b/backend/app/api/v1/firewall.go @@ -11,6 +11,7 @@ import ( // @Summary Load firewall base info // @Success 200 {object} dto.FirewallBaseInfo // @Security ApiKeyAuth +// @Security Timestamp // @Router /hosts/firewall/base [get] func (b *BaseApi) LoadFirewallBaseInfo(c *gin.Context) { data, err := firewallService.LoadBaseInfo() @@ -28,6 +29,7 @@ func (b *BaseApi) LoadFirewallBaseInfo(c *gin.Context) { // @Param request body dto.RuleSearch true "request" // @Success 200 {object} dto.PageResult // @Security ApiKeyAuth +// @Security Timestamp // @Router /hosts/firewall/search [post] func (b *BaseApi) SearchFirewallRule(c *gin.Context) { var req dto.RuleSearch @@ -53,6 +55,7 @@ func (b *BaseApi) SearchFirewallRule(c *gin.Context) { // @Param request body dto.FirewallOperation true "request" // @Success 200 {object} dto.PageResult // @Security ApiKeyAuth +// @Security Timestamp // @Router /hosts/firewall/operate [post] // @x-panel-log {"bodyKeys":["operation"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"[operation] 防火墙","formatEN":"[operation] firewall"} func (b *BaseApi) OperateFirewall(c *gin.Context) { @@ -75,6 +78,7 @@ func (b *BaseApi) OperateFirewall(c *gin.Context) { // @Param request body dto.PortRuleOperate true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /hosts/firewall/port [post] // @x-panel-log {"bodyKeys":["port","strategy"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"添加端口规则 [strategy] [port]","formatEN":"create port rules [strategy][port]"} func (b *BaseApi) OperatePortRule(c *gin.Context) { @@ -97,6 +101,7 @@ func (b *BaseApi) OperatePortRule(c *gin.Context) { // @Param request body dto.ForwardRuleOperate true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /hosts/firewall/forward [post] // @x-panel-log {"bodyKeys":["source_port"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"更新端口转发规则 [source_port]","formatEN":"update port forward rules [source_port]"} func (b *BaseApi) OperateForwardRule(c *gin.Context) { @@ -118,6 +123,7 @@ func (b *BaseApi) OperateForwardRule(c *gin.Context) { // @Param request body dto.AddrRuleOperate true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /hosts/firewall/ip [post] // @x-panel-log {"bodyKeys":["strategy","address"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"添加 ip 规则 [strategy] [address]","formatEN":"create address rules [strategy][address]"} func (b *BaseApi) OperateIPRule(c *gin.Context) { @@ -139,6 +145,7 @@ func (b *BaseApi) OperateIPRule(c *gin.Context) { // @Param request body dto.BatchRuleOperate true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /hosts/firewall/batch [post] func (b *BaseApi) BatchOperateRule(c *gin.Context) { var req dto.BatchRuleOperate @@ -159,6 +166,7 @@ func (b *BaseApi) BatchOperateRule(c *gin.Context) { // @Param request body dto.UpdateFirewallDescription true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /hosts/firewall/update/description [post] func (b *BaseApi) UpdateFirewallDescription(c *gin.Context) { var req dto.UpdateFirewallDescription @@ -179,6 +187,7 @@ func (b *BaseApi) UpdateFirewallDescription(c *gin.Context) { // @Param request body dto.PortRuleUpdate true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /hosts/firewall/update/port [post] func (b *BaseApi) UpdatePortRule(c *gin.Context) { var req dto.PortRuleUpdate @@ -199,6 +208,7 @@ func (b *BaseApi) UpdatePortRule(c *gin.Context) { // @Param request body dto.AddrRuleUpdate true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /hosts/firewall/update/addr [post] func (b *BaseApi) UpdateAddrRule(c *gin.Context) { var req dto.AddrRuleUpdate diff --git a/backend/app/api/v1/ftp.go b/backend/app/api/v1/ftp.go index b837f27f6..59a10ff85 100644 --- a/backend/app/api/v1/ftp.go +++ b/backend/app/api/v1/ftp.go @@ -13,6 +13,7 @@ import ( // @Summary Load FTP base info // @Success 200 {object} dto.FtpBaseInfo // @Security ApiKeyAuth +// @Security Timestamp // @Router /toolbox/ftp/base [get] func (b *BaseApi) LoadFtpBaseInfo(c *gin.Context) { data, err := ftpService.LoadBaseInfo() @@ -30,6 +31,7 @@ func (b *BaseApi) LoadFtpBaseInfo(c *gin.Context) { // @Param request body dto.FtpLogSearch true "request" // @Success 200 {object} dto.PageResult // @Security ApiKeyAuth +// @Security Timestamp // @Router /toolbox/ftp/log/search [post] func (b *BaseApi) LoadFtpLogInfo(c *gin.Context) { var req dto.FtpLogSearch @@ -54,6 +56,7 @@ func (b *BaseApi) LoadFtpLogInfo(c *gin.Context) { // @Accept json // @Param request body dto.Operate true "request" // @Security ApiKeyAuth +// @Security Timestamp // @Router /toolbox/ftp/operate [post] // @x-panel-log {"bodyKeys":["operation"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"[operation] FTP","formatEN":"[operation] FTP"} func (b *BaseApi) OperateFtp(c *gin.Context) { @@ -76,6 +79,7 @@ func (b *BaseApi) OperateFtp(c *gin.Context) { // @Param request body dto.SearchWithPage true "request" // @Success 200 {object} dto.PageResult // @Security ApiKeyAuth +// @Security Timestamp // @Router /toolbox/ftp/search [post] func (b *BaseApi) SearchFtp(c *gin.Context) { var req dto.SearchWithPage @@ -101,6 +105,7 @@ func (b *BaseApi) SearchFtp(c *gin.Context) { // @Param request body dto.FtpCreate true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /toolbox/ftp [post] // @x-panel-log {"bodyKeys":["user", "path"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"创建 FTP 账户 [user][path]","formatEN":"create FTP [user][path]"} func (b *BaseApi) CreateFtp(c *gin.Context) { @@ -130,6 +135,7 @@ func (b *BaseApi) CreateFtp(c *gin.Context) { // @Param request body dto.BatchDeleteReq true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /toolbox/ftp/del [post] // @x-panel-log {"bodyKeys":["ids"],"paramKeys":[],"BeforeFunctions":[{"input_column":"id","input_value":"ids","isList":true,"db":"ftps","output_column":"user","output_value":"users"}],"formatZH":"删除 FTP 账户 [users]","formatEN":"delete FTP users [users]"} func (b *BaseApi) DeleteFtp(c *gin.Context) { @@ -151,6 +157,7 @@ func (b *BaseApi) DeleteFtp(c *gin.Context) { // @Param request body dto.BatchDeleteReq true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /toolbox/ftp/sync [post] // @x-panel-log {"bodyKeys":[],"paramKeys":[],"BeforeFunctions":[],"formatZH":"同步 FTP 账户","formatEN":"sync FTP users"} func (b *BaseApi) SyncFtp(c *gin.Context) { @@ -167,6 +174,7 @@ func (b *BaseApi) SyncFtp(c *gin.Context) { // @Param request body dto.FtpUpdate true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /toolbox/ftp/update [post] // @x-panel-log {"bodyKeys":["user", "path"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"修改 FTP 账户 [user][path]","formatEN":"update FTP [user][path]"} func (b *BaseApi) UpdateFtp(c *gin.Context) { diff --git a/backend/app/api/v1/group.go b/backend/app/api/v1/group.go index 43a903cba..19933b375 100644 --- a/backend/app/api/v1/group.go +++ b/backend/app/api/v1/group.go @@ -13,6 +13,7 @@ import ( // @Param request body dto.GroupCreate true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /groups [post] // @x-panel-log {"bodyKeys":["name","type"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"创建组 [name][type]","formatEN":"create group [name][type]"} func (b *BaseApi) CreateGroup(c *gin.Context) { @@ -34,6 +35,7 @@ func (b *BaseApi) CreateGroup(c *gin.Context) { // @Param request body dto.OperateByID true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /groups/del [post] // @x-panel-log {"bodyKeys":["id"],"paramKeys":[],"BeforeFunctions":[{"input_column":"id","input_value":"id","isList":false,"db":"groups","output_column":"name","output_value":"name"},{"input_column":"id","input_value":"id","isList":false,"db":"groups","output_column":"type","output_value":"type"}],"formatZH":"删除组 [type][name]","formatEN":"delete group [type][name]"} func (b *BaseApi) DeleteGroup(c *gin.Context) { @@ -55,6 +57,7 @@ func (b *BaseApi) DeleteGroup(c *gin.Context) { // @Param request body dto.GroupUpdate true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /groups/update [post] // @x-panel-log {"bodyKeys":["name","type"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"更新组 [name][type]","formatEN":"update group [name][type]"} func (b *BaseApi) UpdateGroup(c *gin.Context) { @@ -76,6 +79,7 @@ func (b *BaseApi) UpdateGroup(c *gin.Context) { // @Param request body dto.GroupSearch true "request" // @Success 200 {array} dto.GroupInfo // @Security ApiKeyAuth +// @Security Timestamp // @Router /groups/search [post] func (b *BaseApi) ListGroup(c *gin.Context) { var req dto.GroupSearch diff --git a/backend/app/api/v1/host.go b/backend/app/api/v1/host.go index 569c70502..02685688e 100644 --- a/backend/app/api/v1/host.go +++ b/backend/app/api/v1/host.go @@ -14,6 +14,7 @@ import ( // @Param request body dto.HostOperate true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /hosts [post] // @x-panel-log {"bodyKeys":["name","addr"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"创建主机 [name][addr]","formatEN":"create host [name][addr]"} func (b *BaseApi) CreateHost(c *gin.Context) { @@ -36,6 +37,7 @@ func (b *BaseApi) CreateHost(c *gin.Context) { // @Param request body dto.HostConnTest true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /hosts/test/byinfo [post] func (b *BaseApi) TestByInfo(c *gin.Context) { var req dto.HostConnTest @@ -53,6 +55,7 @@ func (b *BaseApi) TestByInfo(c *gin.Context) { // @Param id path integer true "request" // @Success 200 {boolean} connStatus // @Security ApiKeyAuth +// @Security Timestamp // @Router /hosts/test/byid/:id [post] func (b *BaseApi) TestByID(c *gin.Context) { id, err := helper.GetParamID(c) @@ -71,6 +74,7 @@ func (b *BaseApi) TestByID(c *gin.Context) { // @Param request body dto.SearchForTree true "request" // @Success 200 {array} dto.HostTree // @Security ApiKeyAuth +// @Security Timestamp // @Router /hosts/tree [post] func (b *BaseApi) HostTree(c *gin.Context) { var req dto.SearchForTree @@ -93,6 +97,7 @@ func (b *BaseApi) HostTree(c *gin.Context) { // @Param request body dto.SearchHostWithPage true "request" // @Success 200 {array} dto.HostTree // @Security ApiKeyAuth +// @Security Timestamp // @Router /hosts/search [post] func (b *BaseApi) SearchHost(c *gin.Context) { var req dto.SearchHostWithPage @@ -118,6 +123,7 @@ func (b *BaseApi) SearchHost(c *gin.Context) { // @Param request body dto.BatchDeleteReq true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /hosts/del [post] // @x-panel-log {"bodyKeys":["ids"],"paramKeys":[],"BeforeFunctions":[{"input_column":"id","input_value":"ids","isList":true,"db":"hosts","output_column":"addr","output_value":"addrs"}],"formatZH":"删除主机 [addrs]","formatEN":"delete host [addrs]"} func (b *BaseApi) DeleteHost(c *gin.Context) { @@ -139,6 +145,7 @@ func (b *BaseApi) DeleteHost(c *gin.Context) { // @Param request body dto.HostOperate true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /hosts/update [post] // @x-panel-log {"bodyKeys":["name","addr"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"更新主机信息 [name][addr]","formatEN":"update host [name][addr]"} func (b *BaseApi) UpdateHost(c *gin.Context) { @@ -204,6 +211,7 @@ func (b *BaseApi) UpdateHost(c *gin.Context) { // @Param request body dto.ChangeHostGroup true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /hosts/update/group [post] // @x-panel-log {"bodyKeys":["id","group"],"paramKeys":[],"BeforeFunctions":[{"input_column":"id","input_value":"id","isList":false,"db":"hosts","output_column":"addr","output_value":"addr"}],"formatZH":"切换主机[addr]分组 => [group]","formatEN":"change host [addr] group => [group]"} func (b *BaseApi) UpdateHostGroup(c *gin.Context) { diff --git a/backend/app/api/v1/host_tool.go b/backend/app/api/v1/host_tool.go index eb2d7f243..2ac9cdd14 100644 --- a/backend/app/api/v1/host_tool.go +++ b/backend/app/api/v1/host_tool.go @@ -13,6 +13,7 @@ import ( // @Param request body request.HostToolReq true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /host/tool [post] func (b *BaseApi) GetToolStatus(c *gin.Context) { var req request.HostToolReq @@ -34,6 +35,7 @@ func (b *BaseApi) GetToolStatus(c *gin.Context) { // @Param request body request.HostToolCreate true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /host/tool/create [post] // @x-panel-log {"bodyKeys":["type"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"创建 [type] 配置","formatEN":"create [type] config"} func (b *BaseApi) InitToolConfig(c *gin.Context) { @@ -55,6 +57,7 @@ func (b *BaseApi) InitToolConfig(c *gin.Context) { // @Param request body request.HostToolReq true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /host/tool/operate [post] // @x-panel-log {"bodyKeys":["operate","type"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"[operate] [type] ","formatEN":"[operate] [type]"} func (b *BaseApi) OperateTool(c *gin.Context) { @@ -76,6 +79,7 @@ func (b *BaseApi) OperateTool(c *gin.Context) { // @Param request body request.HostToolConfig true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /host/tool/config [post] // @x-panel-log {"bodyKeys":["operate"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"[operate] 主机工具配置文件 ","formatEN":"[operate] tool config"} func (b *BaseApi) OperateToolConfig(c *gin.Context) { @@ -98,6 +102,7 @@ func (b *BaseApi) OperateToolConfig(c *gin.Context) { // @Param request body request.HostToolLogReq true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /host/tool/log [post] func (b *BaseApi) GetToolLog(c *gin.Context) { var req request.HostToolLogReq @@ -119,6 +124,7 @@ func (b *BaseApi) GetToolLog(c *gin.Context) { // @Param request body request.SupervisorProcessConfig true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /host/tool/supervisor/process [post] // @x-panel-log {"bodyKeys":["operate"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"[operate] 守护进程 ","formatEN":"[operate] process"} func (b *BaseApi) OperateProcess(c *gin.Context) { @@ -140,6 +146,7 @@ func (b *BaseApi) OperateProcess(c *gin.Context) { // @Accept json // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /host/tool/supervisor/process [get] func (b *BaseApi) GetProcess(c *gin.Context) { configs, err := hostToolService.GetSupervisorProcessConfig() @@ -156,6 +163,7 @@ func (b *BaseApi) GetProcess(c *gin.Context) { // @Param request body request.SupervisorProcessFileReq true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /host/tool/supervisor/process/file [post] // @x-panel-log {"bodyKeys":["operate"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"[operate] Supervisor 进程文件 ","formatEN":"[operate] Supervisor Process Config file"} func (b *BaseApi) GetProcessFile(c *gin.Context) { diff --git a/backend/app/api/v1/image.go b/backend/app/api/v1/image.go index d897f1ae9..e339be45a 100644 --- a/backend/app/api/v1/image.go +++ b/backend/app/api/v1/image.go @@ -14,6 +14,7 @@ import ( // @Produce json // @Success 200 {object} dto.PageResult // @Security ApiKeyAuth +// @Security Timestamp // @Router /containers/image/search [post] func (b *BaseApi) SearchImage(c *gin.Context) { var req dto.SearchWithPage @@ -38,6 +39,7 @@ func (b *BaseApi) SearchImage(c *gin.Context) { // @Produce json // @Success 200 {array} dto.ImageInfo // @Security ApiKeyAuth +// @Security Timestamp // @Router /containers/image/all [get] func (b *BaseApi) ListAllImage(c *gin.Context) { list, err := imageService.ListAll() @@ -53,6 +55,7 @@ func (b *BaseApi) ListAllImage(c *gin.Context) { // @Produce json // @Success 200 {array} dto.Options // @Security ApiKeyAuth +// @Security Timestamp // @Router /containers/image [get] func (b *BaseApi) ListImage(c *gin.Context) { list, err := imageService.List() @@ -69,6 +72,7 @@ func (b *BaseApi) ListImage(c *gin.Context) { // @Param request body dto.ImageBuild true "request" // @Success 200 {string} log // @Security ApiKeyAuth +// @Security Timestamp // @Router /containers/image/build [post] // @x-panel-log {"bodyKeys":["name"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"构建镜像 [name]","formatEN":"build image [name]"} func (b *BaseApi) ImageBuild(c *gin.Context) { @@ -92,6 +96,7 @@ func (b *BaseApi) ImageBuild(c *gin.Context) { // @Param request body dto.ImagePull true "request" // @Success 200 {string} log // @Security ApiKeyAuth +// @Security Timestamp // @Router /containers/image/pull [post] // @x-panel-log {"bodyKeys":["repoID","imageName"],"paramKeys":[],"BeforeFunctions":[{"input_column":"id","input_value":"repoID","isList":false,"db":"image_repos","output_column":"name","output_value":"reponame"}],"formatZH":"镜像拉取 [reponame][imageName]","formatEN":"image pull [reponame][imageName]"} func (b *BaseApi) ImagePull(c *gin.Context) { @@ -115,6 +120,7 @@ func (b *BaseApi) ImagePull(c *gin.Context) { // @Param request body dto.ImagePush true "request" // @Success 200 {string} log // @Security ApiKeyAuth +// @Security Timestamp // @Router /containers/image/push [post] // @x-panel-log {"bodyKeys":["repoID","tagName","name"],"paramKeys":[],"BeforeFunctions":[{"input_column":"id","input_value":"repoID","isList":false,"db":"image_repos","output_column":"name","output_value":"reponame"}],"formatZH":"[tagName] 推送到 [reponame][name]","formatEN":"push [tagName] to [reponame][name]"} func (b *BaseApi) ImagePush(c *gin.Context) { @@ -138,6 +144,7 @@ func (b *BaseApi) ImagePush(c *gin.Context) { // @Param request body dto.BatchDelete true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /containers/image/remove [post] // @x-panel-log {"bodyKeys":["names"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"移除镜像 [names]","formatEN":"remove image [names]"} func (b *BaseApi) ImageRemove(c *gin.Context) { @@ -160,6 +167,7 @@ func (b *BaseApi) ImageRemove(c *gin.Context) { // @Param request body dto.ImageSave true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /containers/image/save [post] // @x-panel-log {"bodyKeys":["tagName","path","name"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"保留 [tagName] 为 [path]/[name]","formatEN":"save [tagName] as [path]/[name]"} func (b *BaseApi) ImageSave(c *gin.Context) { @@ -182,6 +190,7 @@ func (b *BaseApi) ImageSave(c *gin.Context) { // @Param request body dto.ImageTag true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /containers/image/tag [post] // @x-panel-log {"bodyKeys":["repoID","targetName"],"paramKeys":[],"BeforeFunctions":[{"input_column":"id","input_value":"repoID","isList":false,"db":"image_repos","output_column":"name","output_value":"reponame"}],"formatZH":"tag 镜像 [reponame][targetName]","formatEN":"tag image [reponame][targetName]"} func (b *BaseApi) ImageTag(c *gin.Context) { @@ -204,6 +213,7 @@ func (b *BaseApi) ImageTag(c *gin.Context) { // @Param request body dto.ImageLoad true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /containers/image/load [post] // @x-panel-log {"bodyKeys":["path"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"从 [path] 加载镜像","formatEN":"load image from [path]"} func (b *BaseApi) ImageLoad(c *gin.Context) { diff --git a/backend/app/api/v1/image_repo.go b/backend/app/api/v1/image_repo.go index 3cf1061b2..409800b9e 100644 --- a/backend/app/api/v1/image_repo.go +++ b/backend/app/api/v1/image_repo.go @@ -14,6 +14,7 @@ import ( // @Produce json // @Success 200 {object} dto.PageResult // @Security ApiKeyAuth +// @Security Timestamp // @Router /containers/repo/search [post] func (b *BaseApi) SearchRepo(c *gin.Context) { var req dto.SearchWithPage @@ -38,6 +39,7 @@ func (b *BaseApi) SearchRepo(c *gin.Context) { // @Produce json // @Success 200 {array} dto.ImageRepoOption // @Security ApiKeyAuth +// @Security Timestamp // @Router /containers/repo [get] func (b *BaseApi) ListRepo(c *gin.Context) { list, err := imageRepoService.List() @@ -56,6 +58,7 @@ func (b *BaseApi) ListRepo(c *gin.Context) { // @Produce json // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /containers/repo/status [get] func (b *BaseApi) CheckRepoStatus(c *gin.Context) { var req dto.OperateByID @@ -77,6 +80,7 @@ func (b *BaseApi) CheckRepoStatus(c *gin.Context) { // @Produce json // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /containers/repo [post] // @x-panel-log {"bodyKeys":["name"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"创建镜像仓库 [name]","formatEN":"create image repo [name]"} func (b *BaseApi) CreateRepo(c *gin.Context) { @@ -99,6 +103,7 @@ func (b *BaseApi) CreateRepo(c *gin.Context) { // @Produce json // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /containers/repo/del [post] // @x-panel-log {"bodyKeys":["ids"],"paramKeys":[],"BeforeFunctions":[{"input_column":"id","input_value":"ids","isList":true,"db":"image_repos","output_column":"name","output_value":"names"}],"formatZH":"删除镜像仓库 [names]","formatEN":"delete image repo [names]"} func (b *BaseApi) DeleteRepo(c *gin.Context) { @@ -121,6 +126,7 @@ func (b *BaseApi) DeleteRepo(c *gin.Context) { // @Produce json // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /containers/repo/update [post] // @x-panel-log {"bodyKeys":["id"],"paramKeys":[],"BeforeFunctions":[{"input_column":"id","input_value":"id","isList":false,"db":"image_repos","output_column":"name","output_value":"name"}],"formatZH":"更新镜像仓库 [name]","formatEN":"update image repo information [name]"} func (b *BaseApi) UpdateRepo(c *gin.Context) { diff --git a/backend/app/api/v1/logs.go b/backend/app/api/v1/logs.go index 4e34f54cd..0e2cfb281 100644 --- a/backend/app/api/v1/logs.go +++ b/backend/app/api/v1/logs.go @@ -13,6 +13,7 @@ import ( // @Param request body dto.SearchLgLogWithPage true "request" // @Success 200 {object} dto.PageResult // @Security ApiKeyAuth +// @Security Timestamp // @Router /logs/login [post] func (b *BaseApi) GetLoginLogs(c *gin.Context) { var req dto.SearchLgLogWithPage @@ -38,6 +39,7 @@ func (b *BaseApi) GetLoginLogs(c *gin.Context) { // @Param request body dto.SearchOpLogWithPage true "request" // @Success 200 {object} dto.PageResult // @Security ApiKeyAuth +// @Security Timestamp // @Router /logs/operation [post] func (b *BaseApi) GetOperationLogs(c *gin.Context) { var req dto.SearchOpLogWithPage @@ -63,6 +65,7 @@ func (b *BaseApi) GetOperationLogs(c *gin.Context) { // @Param request body dto.CleanLog true "request" // @Success 200 {object} dto.PageResult // @Security ApiKeyAuth +// @Security Timestamp // @Router /logs/clean [post] // @x-panel-log {"bodyKeys":["logType"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"清空 [logType] 日志信息","formatEN":"Clean the [logType] log information"} func (b *BaseApi) CleanLogs(c *gin.Context) { @@ -83,6 +86,7 @@ func (b *BaseApi) CleanLogs(c *gin.Context) { // @Summary Load system log files // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /logs/system/files [get] func (b *BaseApi) GetSystemFiles(c *gin.Context) { data, err := logService.ListSystemLogFile() @@ -98,6 +102,7 @@ func (b *BaseApi) GetSystemFiles(c *gin.Context) { // @Summary Load system logs // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /logs/system [post] func (b *BaseApi) GetSystemLogs(c *gin.Context) { var req dto.OperationWithName diff --git a/backend/app/api/v1/monitor.go b/backend/app/api/v1/monitor.go index 709a8f4d8..fcac16499 100644 --- a/backend/app/api/v1/monitor.go +++ b/backend/app/api/v1/monitor.go @@ -20,6 +20,7 @@ import ( // @Param request body dto.MonitorSearch true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /hosts/monitor/search [post] func (b *BaseApi) LoadMonitor(c *gin.Context) { var req dto.MonitorSearch @@ -90,6 +91,7 @@ func (b *BaseApi) LoadMonitor(c *gin.Context) { // @Summary Clean monitor datas // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /hosts/monitor/clean [post] // @x-panel-log {"bodyKeys":[],"paramKeys":[],"BeforeFunctions":[],"formatZH":"清空监控数据","formatEN":"clean monitor datas"} func (b *BaseApi) CleanMonitor(c *gin.Context) { diff --git a/backend/app/api/v1/nginx.go b/backend/app/api/v1/nginx.go index 69591aced..e009ffbba 100644 --- a/backend/app/api/v1/nginx.go +++ b/backend/app/api/v1/nginx.go @@ -11,6 +11,7 @@ import ( // @Summary Load OpenResty conf // @Success 200 {object} response.FileInfo // @Security ApiKeyAuth +// @Security Timestamp // @Router /openresty [get] func (b *BaseApi) GetNginx(c *gin.Context) { fileInfo, err := nginxService.GetNginxConfig() @@ -27,6 +28,7 @@ func (b *BaseApi) GetNginx(c *gin.Context) { // @Param request body request.NginxScopeReq true "request" // @Success 200 {array} response.NginxParam // @Security ApiKeyAuth +// @Security Timestamp // @Router /openresty/scope [post] func (b *BaseApi) GetNginxConfigByScope(c *gin.Context) { var req request.NginxScopeReq @@ -48,6 +50,7 @@ func (b *BaseApi) GetNginxConfigByScope(c *gin.Context) { // @Param request body request.NginxConfigUpdate true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /openresty/update [post] // @x-panel-log {"bodyKeys":["websiteId"],"paramKeys":[],"BeforeFunctions":[{"input_column":"id","input_value":"websiteId","isList":false,"db":"websites","output_column":"primary_domain","output_value":"domain"}],"formatZH":"更新 nginx 配置 [domain]","formatEN":"Update nginx conf [domain]"} func (b *BaseApi) UpdateNginxConfigByScope(c *gin.Context) { @@ -66,6 +69,7 @@ func (b *BaseApi) UpdateNginxConfigByScope(c *gin.Context) { // @Summary Load OpenResty status info // @Success 200 {object} response.NginxStatus // @Security ApiKeyAuth +// @Security Timestamp // @Router /openresty/status [get] func (b *BaseApi) GetNginxStatus(c *gin.Context) { res, err := nginxService.GetStatus() @@ -82,6 +86,7 @@ func (b *BaseApi) GetNginxStatus(c *gin.Context) { // @Param request body request.NginxConfigFileUpdate true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /openresty/file [post] // @x-panel-log {"bodyKeys":[],"paramKeys":[],"BeforeFunctions":[],"formatZH":"更新 nginx 配置","formatEN":"Update nginx conf"} func (b *BaseApi) UpdateNginxFile(c *gin.Context) { @@ -101,6 +106,7 @@ func (b *BaseApi) UpdateNginxFile(c *gin.Context) { // @Summary Clear OpenResty proxy cache // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /openresty/clear [post] // @x-panel-log {"bodyKeys":[],"paramKeys":[],"BeforeFunctions":[],"formatZH":"清理 Openresty 代理缓存","formatEN":"Clear nginx proxy cache"} func (b *BaseApi) ClearNginxProxyCache(c *gin.Context) { diff --git a/backend/app/api/v1/php_extensions.go b/backend/app/api/v1/php_extensions.go index 6dbd4041c..25f928ccb 100644 --- a/backend/app/api/v1/php_extensions.go +++ b/backend/app/api/v1/php_extensions.go @@ -14,6 +14,7 @@ import ( // @Param request body request.PHPExtensionsSearch true "request" // @Success 200 {array} response.PHPExtensionsDTO // @Security ApiKeyAuth +// @Security Timestamp // @Router /runtimes/php/extensions/search [post] func (b *BaseApi) PagePHPExtensions(c *gin.Context) { var req request.PHPExtensionsSearch @@ -47,6 +48,7 @@ func (b *BaseApi) PagePHPExtensions(c *gin.Context) { // @Param request body request.PHPExtensionsCreate true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /runtimes/php/extensions [post] func (b *BaseApi) CreatePHPExtensions(c *gin.Context) { var req request.PHPExtensionsCreate @@ -66,6 +68,7 @@ func (b *BaseApi) CreatePHPExtensions(c *gin.Context) { // @Param request body request.PHPExtensionsUpdate true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /runtimes/php/extensions/update [post] func (b *BaseApi) UpdatePHPExtensions(c *gin.Context) { var req request.PHPExtensionsUpdate @@ -85,6 +88,7 @@ func (b *BaseApi) UpdatePHPExtensions(c *gin.Context) { // @Param request body request.PHPExtensionsDelete true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /runtimes/php/extensions/del [post] func (b *BaseApi) DeletePHPExtensions(c *gin.Context) { var req request.PHPExtensionsDelete diff --git a/backend/app/api/v1/process.go b/backend/app/api/v1/process.go index 5c1017bd7..b7f41a750 100644 --- a/backend/app/api/v1/process.go +++ b/backend/app/api/v1/process.go @@ -23,6 +23,7 @@ func (b *BaseApi) ProcessWs(c *gin.Context) { // @Param request body request.ProcessReq true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /process/stop [post] // @x-panel-log {"bodyKeys":["PID"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"结束进程 [PID]","formatEN":"结束进程 [PID]"} func (b *BaseApi) StopProcess(c *gin.Context) { diff --git a/backend/app/api/v1/recycle_bin.go b/backend/app/api/v1/recycle_bin.go index 6aaf7af9a..c233e4da4 100644 --- a/backend/app/api/v1/recycle_bin.go +++ b/backend/app/api/v1/recycle_bin.go @@ -14,6 +14,7 @@ import ( // @Param request body dto.PageInfo true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /files/recycle/search [post] func (b *BaseApi) SearchRecycleBinFile(c *gin.Context) { var req dto.PageInfo @@ -37,6 +38,7 @@ func (b *BaseApi) SearchRecycleBinFile(c *gin.Context) { // @Param request body request.RecycleBinReduce true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /files/recycle/reduce [post] // @x-panel-log {"bodyKeys":["name"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"还原回收站文件 [name]","formatEN":"Reduce RecycleBin file [name]"} func (b *BaseApi) ReduceRecycleBinFile(c *gin.Context) { @@ -56,6 +58,7 @@ func (b *BaseApi) ReduceRecycleBinFile(c *gin.Context) { // @Accept json // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /files/recycle/clear [post] // @x-panel-log {"bodyKeys":[],"paramKeys":[],"BeforeFunctions":[],"formatZH":"清空回收站","formatEN":"清空回收站"} func (b *BaseApi) ClearRecycleBinFile(c *gin.Context) { @@ -71,6 +74,7 @@ func (b *BaseApi) ClearRecycleBinFile(c *gin.Context) { // @Accept json // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /files/recycle/status [get] func (b *BaseApi) GetRecycleStatus(c *gin.Context) { settingInfo, err := settingService.GetSettingInfo() diff --git a/backend/app/api/v1/runtime.go b/backend/app/api/v1/runtime.go index 74f6354f2..fe68cdd9f 100644 --- a/backend/app/api/v1/runtime.go +++ b/backend/app/api/v1/runtime.go @@ -14,6 +14,7 @@ import ( // @Param request body request.RuntimeSearch true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /runtimes/search [post] func (b *BaseApi) SearchRuntimes(c *gin.Context) { var req request.RuntimeSearch @@ -37,6 +38,7 @@ func (b *BaseApi) SearchRuntimes(c *gin.Context) { // @Param request body request.RuntimeCreate true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /runtimes [post] // @x-panel-log {"bodyKeys":["name"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"创建运行环境 [name]","formatEN":"Create runtime [name]"} func (b *BaseApi) CreateRuntime(c *gin.Context) { @@ -58,6 +60,7 @@ func (b *BaseApi) CreateRuntime(c *gin.Context) { // @Param request body request.RuntimeDelete true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /runtimes/del [post] // @x-panel-log {"bodyKeys":["id"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"删除运行环境 [name]","formatEN":"Delete runtime [name]"} func (b *BaseApi) DeleteRuntime(c *gin.Context) { @@ -93,6 +96,7 @@ func (b *BaseApi) DeleteRuntimeCheck(c *gin.Context) { // @Param request body request.RuntimeUpdate true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /runtimes/update [post] // @x-panel-log {"bodyKeys":["name"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"更新运行环境 [name]","formatEN":"Update runtime [name]"} func (b *BaseApi) UpdateRuntime(c *gin.Context) { @@ -113,6 +117,7 @@ func (b *BaseApi) UpdateRuntime(c *gin.Context) { // @Param id path string true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /runtimes/:id [get] func (b *BaseApi) GetRuntime(c *gin.Context) { id, err := helper.GetIntParamByKey(c, "id") @@ -134,6 +139,7 @@ func (b *BaseApi) GetRuntime(c *gin.Context) { // @Param request body request.NodePackageReq true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /runtimes/node/package [post] func (b *BaseApi) GetNodePackageRunScript(c *gin.Context) { var req request.NodePackageReq @@ -154,6 +160,7 @@ func (b *BaseApi) GetNodePackageRunScript(c *gin.Context) { // @Param request body request.RuntimeOperate true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /runtimes/operate [post] // @x-panel-log {"bodyKeys":["id"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"操作运行环境 [name]","formatEN":"Operate runtime [name]"} func (b *BaseApi) OperateRuntime(c *gin.Context) { @@ -175,6 +182,7 @@ func (b *BaseApi) OperateRuntime(c *gin.Context) { // @Param request body request.NodeModuleReq true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /runtimes/node/modules [post] func (b *BaseApi) GetNodeModules(c *gin.Context) { var req request.NodeModuleReq @@ -195,6 +203,7 @@ func (b *BaseApi) GetNodeModules(c *gin.Context) { // @Param request body request.NodeModuleReq true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /runtimes/node/modules/operate [post] func (b *BaseApi) OperateNodeModules(c *gin.Context) { var req request.NodeModuleOperateReq @@ -214,6 +223,7 @@ func (b *BaseApi) OperateNodeModules(c *gin.Context) { // @Accept json // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /runtimes/sync [post] func (b *BaseApi) SyncStatus(c *gin.Context) { err := runtimeService.SyncRuntimeStatus() diff --git a/backend/app/api/v1/setting.go b/backend/app/api/v1/setting.go index 4ba8152cb..ccc9cee5c 100644 --- a/backend/app/api/v1/setting.go +++ b/backend/app/api/v1/setting.go @@ -18,6 +18,7 @@ import ( // @Summary Load system setting info // @Success 200 {object} dto.SettingInfo // @Security ApiKeyAuth +// @Security Timestamp // @Router /settings/search [post] func (b *BaseApi) GetSettingInfo(c *gin.Context) { setting, err := settingService.GetSettingInfo() @@ -32,6 +33,7 @@ func (b *BaseApi) GetSettingInfo(c *gin.Context) { // @Summary Load system available status // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /settings/search/available [get] func (b *BaseApi) GetSystemAvailable(c *gin.Context) { helper.SuccessWithData(c, nil) @@ -43,6 +45,7 @@ func (b *BaseApi) GetSystemAvailable(c *gin.Context) { // @Param request body dto.SettingUpdate true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /settings/update [post] // @x-panel-log {"bodyKeys":["key","value"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"修改系统配置 [key] => [value]","formatEN":"update system setting [key] => [value]"} func (b *BaseApi) UpdateSetting(c *gin.Context) { @@ -64,6 +67,7 @@ func (b *BaseApi) UpdateSetting(c *gin.Context) { // @Param request body dto.ProxyUpdate true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /settings/proxy/update [post] // @x-panel-log {"bodyKeys":["proxyUrl","proxyPort"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"服务器代理配置 [proxyPort]:[proxyPort]","formatEN":"set proxy [proxyPort]:[proxyPort]."} func (b *BaseApi) UpdateProxy(c *gin.Context) { @@ -94,6 +98,7 @@ func (b *BaseApi) UpdateProxy(c *gin.Context) { // @Param request body dto.SettingUpdate true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /settings/menu/update [post] // @x-panel-log {"bodyKeys":[],"paramKeys":[],"BeforeFunctions":[],"formatZH":"隐藏高级功能菜单","formatEN":"Hide advanced feature menu."} func (b *BaseApi) UpdateMenu(c *gin.Context) { @@ -115,6 +120,7 @@ func (b *BaseApi) UpdateMenu(c *gin.Context) { // @Param request body dto.PasswordUpdate true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /settings/password/update [post] // @x-panel-log {"bodyKeys":[],"paramKeys":[],"BeforeFunctions":[],"formatZH":"修改系统密码","formatEN":"update system password"} func (b *BaseApi) UpdatePassword(c *gin.Context) { @@ -136,6 +142,7 @@ func (b *BaseApi) UpdatePassword(c *gin.Context) { // @Param request body dto.SSLUpdate true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /settings/ssl/update [post] // @x-panel-log {"bodyKeys":["ssl"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"修改系统 ssl => [ssl]","formatEN":"update system ssl => [ssl]"} func (b *BaseApi) UpdateSSL(c *gin.Context) { @@ -155,6 +162,7 @@ func (b *BaseApi) UpdateSSL(c *gin.Context) { // @Summary Load system cert info // @Success 200 {object} dto.SettingInfo // @Security ApiKeyAuth +// @Security Timestamp // @Router /settings/ssl/info [get] func (b *BaseApi) LoadFromCert(c *gin.Context) { info, err := settingService.LoadFromCert() @@ -169,6 +177,7 @@ func (b *BaseApi) LoadFromCert(c *gin.Context) { // @Summary Download system cert // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /settings/ssl/download [post] func (b *BaseApi) DownloadSSL(c *gin.Context) { pathItem := path.Join(global.CONF.System.BaseDir, "1panel/secret/server.crt") @@ -185,6 +194,7 @@ func (b *BaseApi) DownloadSSL(c *gin.Context) { // @Accept json // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /settings/interface [get] func (b *BaseApi) LoadInterfaceAddr(c *gin.Context) { data, err := settingService.LoadInterfaceAddr() @@ -201,6 +211,7 @@ func (b *BaseApi) LoadInterfaceAddr(c *gin.Context) { // @Param request body dto.BindInfo true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /settings/bind/update [post] // @x-panel-log {"bodyKeys":["ipv6", "bindAddress"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"修改系统监听信息 => ipv6: [ipv6], 监听 IP: [bindAddress]","formatEN":"update system bind info => ipv6: [ipv6], 监听 IP: [bindAddress]"} func (b *BaseApi) UpdateBindInfo(c *gin.Context) { @@ -222,6 +233,7 @@ func (b *BaseApi) UpdateBindInfo(c *gin.Context) { // @Param request body dto.PortUpdate true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /settings/port/update [post] // @x-panel-log {"bodyKeys":["serverPort"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"修改系统端口 => [serverPort]","formatEN":"update system port => [serverPort]"} func (b *BaseApi) UpdatePort(c *gin.Context) { @@ -243,6 +255,7 @@ func (b *BaseApi) UpdatePort(c *gin.Context) { // @Param request body dto.PasswordUpdate true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /settings/expired/handle [post] // @x-panel-log {"bodyKeys":[],"paramKeys":[],"BeforeFunctions":[],"formatZH":"重置过期密码","formatEN":"reset an expired Password"} func (b *BaseApi) HandlePasswordExpired(c *gin.Context) { @@ -262,6 +275,7 @@ func (b *BaseApi) HandlePasswordExpired(c *gin.Context) { // @Summary Load local base dir // @Success 200 {string} path // @Security ApiKeyAuth +// @Security Timestamp // @Router /settings/basedir [get] func (b *BaseApi) LoadBaseDir(c *gin.Context) { helper.SuccessWithData(c, global.CONF.System.DataDir) @@ -273,6 +287,7 @@ func (b *BaseApi) LoadBaseDir(c *gin.Context) { // @Param request body dto.MfaCredential true "request" // @Success 200 {object} mfa.Otp // @Security ApiKeyAuth +// @Security Timestamp // @Router /settings/mfa [post] func (b *BaseApi) LoadMFA(c *gin.Context) { var req dto.MfaRequest @@ -295,6 +310,7 @@ func (b *BaseApi) LoadMFA(c *gin.Context) { // @Param request body dto.MfaCredential true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /settings/mfa/bind [post] // @x-panel-log {"bodyKeys":[],"paramKeys":[],"BeforeFunctions":[],"formatZH":"mfa 绑定","formatEN":"bind mfa"} func (b *BaseApi) MFABind(c *gin.Context) { @@ -332,6 +348,7 @@ func (b *BaseApi) MFABind(c *gin.Context) { // @Accept json // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /settings/api/config/generate/key [post] // @x-panel-log {"bodyKeys":[],"paramKeys":[],"BeforeFunctions":[],"formatZH":"生成 API 接口密钥","formatEN":"generate api key"} func (b *BaseApi) GenerateApiKey(c *gin.Context) { @@ -354,6 +371,7 @@ func (b *BaseApi) GenerateApiKey(c *gin.Context) { // @Param request body dto.ApiInterfaceConfig true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /settings/api/config/update [post] // @x-panel-log {"bodyKeys":["ipWhiteList"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"更新 API 接口配置 => IP 白名单: [ipWhiteList]","formatEN":"update api config => IP White List: [ipWhiteList]"} func (b *BaseApi) UpdateApiConfig(c *gin.Context) { diff --git a/backend/app/api/v1/snapshot.go b/backend/app/api/v1/snapshot.go index cf2b85566..777a6e56f 100644 --- a/backend/app/api/v1/snapshot.go +++ b/backend/app/api/v1/snapshot.go @@ -13,6 +13,7 @@ import ( // @Param request body dto.SnapshotCreate true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /settings/snapshot [post] // @x-panel-log {"bodyKeys":["from", "description"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"创建系统快照 [description] 到 [from]","formatEN":"Create system backup [description] to [from]"} func (b *BaseApi) CreateSnapshot(c *gin.Context) { @@ -34,6 +35,7 @@ func (b *BaseApi) CreateSnapshot(c *gin.Context) { // @Param request body dto.SnapshotImport true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /settings/snapshot/import [post] // @x-panel-log {"bodyKeys":["from", "names"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"从 [from] 同步系统快照 [names]","formatEN":"Sync system snapshots [names] from [from]"} func (b *BaseApi) ImportSnapshot(c *gin.Context) { @@ -55,6 +57,7 @@ func (b *BaseApi) ImportSnapshot(c *gin.Context) { // @Param request body dto.OperateByID true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /settings/snapshot/status [post] func (b *BaseApi) LoadSnapShotStatus(c *gin.Context) { var req dto.OperateByID @@ -76,6 +79,7 @@ func (b *BaseApi) LoadSnapShotStatus(c *gin.Context) { // @Param request body dto.UpdateDescription true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /settings/snapshot/description/update [post] // @x-panel-log {"bodyKeys":["id","description"],"paramKeys":[],"BeforeFunctions":[{"input_column":"id","input_value":"id","isList":false,"db":"snapshots","output_column":"name","output_value":"name"}],"formatZH":"快照 [name] 描述信息修改 [description]","formatEN":"The description of the snapshot [name] is modified => [description]"} func (b *BaseApi) UpdateSnapDescription(c *gin.Context) { @@ -97,6 +101,7 @@ func (b *BaseApi) UpdateSnapDescription(c *gin.Context) { // @Param request body dto.PageSnapshot true "request" // @Success 200 {object} dto.PageResult // @Security ApiKeyAuth +// @Security Timestamp // @Router /settings/snapshot/search [post] func (b *BaseApi) SearchSnapshot(c *gin.Context) { var req dto.PageSnapshot @@ -121,6 +126,7 @@ func (b *BaseApi) SearchSnapshot(c *gin.Context) { // @Param request body dto.PageSnapshot true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /settings/snapshot/size [post] func (b *BaseApi) LoadSnapshotSize(c *gin.Context) { var req dto.PageSnapshot @@ -142,6 +148,7 @@ func (b *BaseApi) LoadSnapshotSize(c *gin.Context) { // @Param request body dto.SnapshotRecover true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /settings/snapshot/recover [post] // @x-panel-log {"bodyKeys":["id"],"paramKeys":[],"BeforeFunctions":[{"input_column":"id","input_value":"id","isList":false,"db":"snapshots","output_column":"name","output_value":"name"}],"formatZH":"从系统快照 [name] 恢复","formatEN":"Recover from system backup [name]"} func (b *BaseApi) RecoverSnapshot(c *gin.Context) { @@ -163,6 +170,7 @@ func (b *BaseApi) RecoverSnapshot(c *gin.Context) { // @Param request body dto.SnapshotRecover true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /settings/snapshot/rollback [post] // @x-panel-log {"bodyKeys":["id"],"paramKeys":[],"BeforeFunctions":[{"input_column":"id","input_value":"id","isList":false,"db":"snapshots","output_column":"name","output_value":"name"}],"formatZH":"从系统快照 [name] 回滚","formatEN":"Rollback from system backup [name]"} func (b *BaseApi) RollbackSnapshot(c *gin.Context) { @@ -184,6 +192,7 @@ func (b *BaseApi) RollbackSnapshot(c *gin.Context) { // @Param request body dto.SnapshotBatchDelete true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /settings/snapshot/del [post] // @x-panel-log {"bodyKeys":["ids"],"paramKeys":[],"BeforeFunctions":[{"input_column":"id","input_value":"ids","isList":true,"db":"snapshots","output_column":"name","output_value":"name"}],"formatZH":"删除系统快照 [name]","formatEN":"Delete system backup [name]"} func (b *BaseApi) DeleteSnapshot(c *gin.Context) { diff --git a/backend/app/api/v1/ssh.go b/backend/app/api/v1/ssh.go index 75e8e95bb..079010b99 100644 --- a/backend/app/api/v1/ssh.go +++ b/backend/app/api/v1/ssh.go @@ -11,6 +11,7 @@ import ( // @Summary Load host SSH setting info // @Success 200 {object} dto.SSHInfo // @Security ApiKeyAuth +// @Security Timestamp // @Router /host/ssh/search [post] func (b *BaseApi) GetSSHInfo(c *gin.Context) { info, err := sshService.GetSSHInfo() @@ -26,6 +27,7 @@ func (b *BaseApi) GetSSHInfo(c *gin.Context) { // @Accept json // @Param request body dto.Operate true "request" // @Security ApiKeyAuth +// @Security Timestamp // @Router /host/ssh/operate [post] // @x-panel-log {"bodyKeys":["operation"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"[operation] SSH ","formatEN":"[operation] SSH"} func (b *BaseApi) OperateSSH(c *gin.Context) { @@ -47,6 +49,7 @@ func (b *BaseApi) OperateSSH(c *gin.Context) { // @Param request body dto.SSHUpdate true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /host/ssh/update [post] // @x-panel-log {"bodyKeys":["key","value"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"修改 SSH 配置 [key] => [value]","formatEN":"update SSH setting [key] => [value]"} func (b *BaseApi) UpdateSSH(c *gin.Context) { @@ -68,6 +71,7 @@ func (b *BaseApi) UpdateSSH(c *gin.Context) { // @Param request body dto.SSHConf true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /host/conffile/update [post] // @x-panel-log {"bodyKeys":[],"paramKeys":[],"BeforeFunctions":[],"formatZH":"修改 SSH 配置文件","formatEN":"update SSH conf"} func (b *BaseApi) UpdateSSHByfile(c *gin.Context) { @@ -89,6 +93,7 @@ func (b *BaseApi) UpdateSSHByfile(c *gin.Context) { // @Param request body dto.GenerateSSH true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /host/ssh/generate [post] // @x-panel-log {"bodyKeys":[],"paramKeys":[],"BeforeFunctions":[],"formatZH":"生成 SSH 密钥 ","formatEN":"generate SSH secret"} func (b *BaseApi) GenerateSSH(c *gin.Context) { @@ -110,6 +115,7 @@ func (b *BaseApi) GenerateSSH(c *gin.Context) { // @Param request body dto.GenerateLoad true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /host/ssh/secret [post] func (b *BaseApi) LoadSSHSecret(c *gin.Context) { var req dto.GenerateLoad @@ -131,6 +137,7 @@ func (b *BaseApi) LoadSSHSecret(c *gin.Context) { // @Param request body dto.SearchSSHLog true "request" // @Success 200 {object} dto.SSHLog // @Security ApiKeyAuth +// @Security Timestamp // @Router /host/ssh/log [post] func (b *BaseApi) LoadSSHLogs(c *gin.Context) { var req dto.SearchSSHLog @@ -150,6 +157,7 @@ func (b *BaseApi) LoadSSHLogs(c *gin.Context) { // @Summary Load host SSH conf // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /host/ssh/conf [get] func (b *BaseApi) LoadSSHConf(c *gin.Context) { data, err := sshService.LoadSSHConf() diff --git a/backend/app/api/v1/upgrade.go b/backend/app/api/v1/upgrade.go index 33d8355e8..2733861a6 100644 --- a/backend/app/api/v1/upgrade.go +++ b/backend/app/api/v1/upgrade.go @@ -11,6 +11,7 @@ import ( // @Summary Load upgrade info // @Success 200 {object} dto.UpgradeInfo // @Security ApiKeyAuth +// @Security Timestamp // @Router /settings/upgrade [get] func (b *BaseApi) GetUpgradeInfo(c *gin.Context) { info, err := upgradeService.SearchUpgrade() @@ -27,6 +28,7 @@ func (b *BaseApi) GetUpgradeInfo(c *gin.Context) { // @Param request body dto.Upgrade true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /settings/upgrade [get] func (b *BaseApi) GetNotesByVersion(c *gin.Context) { var req dto.Upgrade @@ -48,6 +50,7 @@ func (b *BaseApi) GetNotesByVersion(c *gin.Context) { // @Param request body dto.Upgrade true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /settings/upgrade [post] // @x-panel-log {"bodyKeys":["version"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"更新系统 => [version]","formatEN":"upgrade system => [version]"} func (b *BaseApi) Upgrade(c *gin.Context) { diff --git a/backend/app/api/v1/website.go b/backend/app/api/v1/website.go index 73a358e6d..59bdc6762 100644 --- a/backend/app/api/v1/website.go +++ b/backend/app/api/v1/website.go @@ -16,6 +16,7 @@ import ( // @Param request body request.WebsiteSearch true "request" // @Success 200 {object} dto.PageResult // @Security ApiKeyAuth +// @Security Timestamp // @Router /websites/search [post] func (b *BaseApi) PageWebsite(c *gin.Context) { var req request.WebsiteSearch @@ -37,6 +38,7 @@ func (b *BaseApi) PageWebsite(c *gin.Context) { // @Summary List websites // @Success 200 {array} response.WebsiteDTO // @Security ApiKeyAuth +// @Security Timestamp // @Router /websites/list [get] func (b *BaseApi) GetWebsites(c *gin.Context) { websites, err := websiteService.GetWebsites() @@ -51,6 +53,7 @@ func (b *BaseApi) GetWebsites(c *gin.Context) { // @Summary List website names // @Success 200 {array} string // @Security ApiKeyAuth +// @Security Timestamp // @Router /websites/options [get] func (b *BaseApi) GetWebsiteOptions(c *gin.Context) { websites, err := websiteService.GetWebsiteOptions() @@ -67,6 +70,7 @@ func (b *BaseApi) GetWebsiteOptions(c *gin.Context) { // @Param request body request.WebsiteCreate true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /websites [post] // @x-panel-log {"bodyKeys":["primaryDomain"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"创建网站 [primaryDomain]","formatEN":"Create website [primaryDomain]"} func (b *BaseApi) CreateWebsite(c *gin.Context) { @@ -96,6 +100,7 @@ func (b *BaseApi) CreateWebsite(c *gin.Context) { // @Param request body request.WebsiteOp true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /websites/operate [post] // @x-panel-log {"bodyKeys":["id", "operate"],"paramKeys":[],"BeforeFunctions":[{"input_column":"id","input_value":"id","isList":false,"db":"websites","output_column":"primary_domain","output_value":"domain"}],"formatZH":"[operate] 网站 [domain]","formatEN":"[operate] website [domain]"} func (b *BaseApi) OpWebsite(c *gin.Context) { @@ -117,6 +122,7 @@ func (b *BaseApi) OpWebsite(c *gin.Context) { // @Param request body request.WebsiteDelete true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /websites/del [post] // @x-panel-log {"bodyKeys":["id"],"paramKeys":[],"BeforeFunctions":[{"input_column":"id","input_value":"id","isList":false,"db":"websites","output_column":"primary_domain","output_value":"domain"}],"formatZH":"删除网站 [domain]","formatEN":"Delete website [domain]"} func (b *BaseApi) DeleteWebsite(c *gin.Context) { @@ -138,6 +144,7 @@ func (b *BaseApi) DeleteWebsite(c *gin.Context) { // @Param request body request.WebsiteUpdate true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /websites/update [post] // @x-panel-log {"bodyKeys":["primaryDomain"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"更新网站 [primaryDomain]","formatEN":"Update website [primaryDomain]"} func (b *BaseApi) UpdateWebsite(c *gin.Context) { @@ -158,6 +165,7 @@ func (b *BaseApi) UpdateWebsite(c *gin.Context) { // @Param id path integer true "request" // @Success 200 {object} response.WebsiteDTO // @Security ApiKeyAuth +// @Security Timestamp // @Router /websites/:id [get] func (b *BaseApi) GetWebsite(c *gin.Context) { id, err := helper.GetParamID(c) @@ -179,6 +187,7 @@ func (b *BaseApi) GetWebsite(c *gin.Context) { // @Param id path integer true "request" // @Success 200 {object} response.FileInfo // @Security ApiKeyAuth +// @Security Timestamp // @Router /websites/:id/config/:type [get] func (b *BaseApi) GetWebsiteNginx(c *gin.Context) { id, err := helper.GetParamID(c) @@ -202,6 +211,7 @@ func (b *BaseApi) GetWebsiteNginx(c *gin.Context) { // @Param request body request.NginxScopeReq true "request" // @Success 200 {object} response.WebsiteNginxConfig // @Security ApiKeyAuth +// @Security Timestamp // @Router /websites/config [post] func (b *BaseApi) GetNginxConfig(c *gin.Context) { var req request.NginxScopeReq @@ -222,6 +232,7 @@ func (b *BaseApi) GetNginxConfig(c *gin.Context) { // @Param request body request.NginxConfigUpdate true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /websites/config/update [post] // @x-panel-log {"bodyKeys":["websiteId"],"paramKeys":[],"BeforeFunctions":[{"input_column":"id","input_value":"websiteId","isList":false,"db":"websites","output_column":"primary_domain","output_value":"domain"}],"formatZH":"nginx 配置修改 [domain]","formatEN":"Nginx conf update [domain]"} func (b *BaseApi) UpdateNginxConfig(c *gin.Context) { @@ -242,6 +253,7 @@ func (b *BaseApi) UpdateNginxConfig(c *gin.Context) { // @Param id path integer true "request" // @Success 200 {object} response.WebsiteHTTPS // @Security ApiKeyAuth +// @Security Timestamp // @Router /websites/:id/https [get] func (b *BaseApi) GetHTTPSConfig(c *gin.Context) { id, err := helper.GetParamID(c) @@ -263,6 +275,7 @@ func (b *BaseApi) GetHTTPSConfig(c *gin.Context) { // @Param request body request.WebsiteHTTPSOp true "request" // @Success 200 {object} response.WebsiteHTTPS // @Security ApiKeyAuth +// @Security Timestamp // @Router /websites/:id/https [post] // @x-panel-log {"bodyKeys":["websiteId"],"paramKeys":[],"BeforeFunctions":[{"input_column":"id","input_value":"websiteId","isList":false,"db":"websites","output_column":"primary_domain","output_value":"domain"}],"formatZH":"更新网站 [domain] https 配置","formatEN":"Update website https [domain] conf"} func (b *BaseApi) UpdateHTTPSConfig(c *gin.Context) { @@ -287,6 +300,7 @@ func (b *BaseApi) UpdateHTTPSConfig(c *gin.Context) { // @Param request body request.WebsiteInstallCheckReq true "request" // @Success 200 {array} response.WebsitePreInstallCheck // @Security ApiKeyAuth +// @Security Timestamp // @Router /websites/check [post] func (b *BaseApi) CreateWebsiteCheck(c *gin.Context) { var req request.WebsiteInstallCheckReq @@ -307,6 +321,7 @@ func (b *BaseApi) CreateWebsiteCheck(c *gin.Context) { // @Param request body request.WebsiteNginxUpdate true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /websites/nginx/update [post] // @x-panel-log {"bodyKeys":["id"],"paramKeys":[],"BeforeFunctions":[{"input_column":"id","input_value":"id","isList":false,"db":"websites","output_column":"primary_domain","output_value":"domain"}],"formatZH":"[domain] Nginx 配置修改","formatEN":"[domain] Nginx conf update"} func (b *BaseApi) UpdateWebsiteNginxConfig(c *gin.Context) { @@ -327,6 +342,7 @@ func (b *BaseApi) UpdateWebsiteNginxConfig(c *gin.Context) { // @Param request body request.WebsiteLogReq true "request" // @Success 200 {object} response.WebsiteLog // @Security ApiKeyAuth +// @Security Timestamp // @Router /websites/log [post] // @x-panel-log {"bodyKeys":["id", "operate"],"paramKeys":[],"BeforeFunctions":[{"input_column":"id","input_value":"id","isList":false,"db":"websites","output_column":"primary_domain","output_value":"domain"}],"formatZH":"[domain][operate] 日志","formatEN":"[domain][operate] logs"} func (b *BaseApi) OpWebsiteLog(c *gin.Context) { @@ -348,6 +364,7 @@ func (b *BaseApi) OpWebsiteLog(c *gin.Context) { // @Param request body request.WebsiteDefaultUpdate true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /websites/default/server [post] // @x-panel-log {"bodyKeys":["id", "operate"],"paramKeys":[],"BeforeFunctions":[{"input_column":"id","input_value":"id","isList":false,"db":"websites","output_column":"primary_domain","output_value":"domain"}],"formatZH":"修改默认 server => [domain]","formatEN":"Change default server => [domain]"} func (b *BaseApi) ChangeDefaultServer(c *gin.Context) { @@ -368,6 +385,7 @@ func (b *BaseApi) ChangeDefaultServer(c *gin.Context) { // @Param id path integer true "request" // @Success 200 {object} response.PHPConfig // @Security ApiKeyAuth +// @Security Timestamp // @Router /websites/php/config/:id [get] func (b *BaseApi) GetWebsitePHPConfig(c *gin.Context) { id, err := helper.GetParamID(c) @@ -389,6 +407,7 @@ func (b *BaseApi) GetWebsitePHPConfig(c *gin.Context) { // @Param request body request.WebsitePHPConfigUpdate true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /websites/php/config [post] // @x-panel-log {"bodyKeys":["id"],"paramKeys":[],"BeforeFunctions":[{"input_column":"id","input_value":"id","isList":false,"db":"websites","output_column":"primary_domain","output_value":"domain"}],"formatZH":"[domain] PHP 配置修改","formatEN":"[domain] PHP conf update"} func (b *BaseApi) UpdateWebsitePHPConfig(c *gin.Context) { @@ -409,6 +428,7 @@ func (b *BaseApi) UpdateWebsitePHPConfig(c *gin.Context) { // @Param request body request.WebsitePHPFileUpdate true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /websites/php/update [post] // @x-panel-log {"bodyKeys":["websiteId"],"paramKeys":[],"BeforeFunctions":[{"input_column":"id","input_value":"websiteId","isList":false,"db":"websites","output_column":"primary_domain","output_value":"domain"}],"formatZH":"php 配置修改 [domain]","formatEN":"Nginx conf update [domain]"} func (b *BaseApi) UpdatePHPFile(c *gin.Context) { @@ -429,6 +449,7 @@ func (b *BaseApi) UpdatePHPFile(c *gin.Context) { // @Param request body request.WebsitePHPVersionReq true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /websites/php/version [post] // @x-panel-log {"bodyKeys":["websiteId"],"paramKeys":[],"BeforeFunctions":[{"input_column":"id","input_value":"websiteId","isList":false,"db":"websites","output_column":"primary_domain","output_value":"domain"}],"formatZH":"php 版本变更 [domain]","formatEN":"php version update [domain]"} func (b *BaseApi) ChangePHPVersion(c *gin.Context) { @@ -449,6 +470,7 @@ func (b *BaseApi) ChangePHPVersion(c *gin.Context) { // @Param request body request.NginxRewriteReq true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /websites/rewrite [post] func (b *BaseApi) GetRewriteConfig(c *gin.Context) { var req request.NginxRewriteReq @@ -469,6 +491,7 @@ func (b *BaseApi) GetRewriteConfig(c *gin.Context) { // @Param request body request.NginxRewriteUpdate true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /websites/rewrite/update [post] // @x-panel-log {"bodyKeys":["websiteID"],"paramKeys":[],"BeforeFunctions":[{"input_column":"id","input_value":"websiteID","isList":false,"db":"websites","output_column":"primary_domain","output_value":"domain"}],"formatZH":"伪静态配置修改 [domain]","formatEN":"Nginx conf rewrite update [domain]"} func (b *BaseApi) UpdateRewriteConfig(c *gin.Context) { @@ -489,6 +512,7 @@ func (b *BaseApi) UpdateRewriteConfig(c *gin.Context) { // @Param request body request.WebsiteUpdateDir true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /websites/dir/update [post] // @x-panel-log {"bodyKeys":["id"],"paramKeys":[],"BeforeFunctions":[{"input_column":"id","input_value":"id","isList":false,"db":"websites","output_column":"primary_domain","output_value":"domain"}],"formatZH":"更新网站 [domain] 目录","formatEN":"Update domain [domain] dir"} func (b *BaseApi) UpdateSiteDir(c *gin.Context) { @@ -509,6 +533,7 @@ func (b *BaseApi) UpdateSiteDir(c *gin.Context) { // @Param request body request.WebsiteUpdateDirPermission true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /websites/dir/permission [post] // @x-panel-log {"bodyKeys":["id"],"paramKeys":[],"BeforeFunctions":[{"input_column":"id","input_value":"id","isList":false,"db":"websites","output_column":"primary_domain","output_value":"domain"}],"formatZH":"更新网站 [domain] 目录权限","formatEN":"Update domain [domain] dir permission"} func (b *BaseApi) UpdateSiteDirPermission(c *gin.Context) { @@ -529,6 +554,7 @@ func (b *BaseApi) UpdateSiteDirPermission(c *gin.Context) { // @Param request body request.WebsiteProxyReq true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /websites/proxies [post] func (b *BaseApi) GetProxyConfig(c *gin.Context) { var req request.WebsiteProxyReq @@ -549,6 +575,7 @@ func (b *BaseApi) GetProxyConfig(c *gin.Context) { // @Param request body request.WebsiteProxyConfig true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /websites/proxies/update [post] // @x-panel-log {"bodyKeys":["id"],"paramKeys":[],"BeforeFunctions":[{"input_column":"id","input_value":"id","isList":false,"db":"websites","output_column":"primary_domain","output_value":"domain"}],"formatZH":"修改网站 [domain] 反向代理配置 ","formatEN":"Update domain [domain] proxy config"} func (b *BaseApi) UpdateProxyConfig(c *gin.Context) { @@ -570,6 +597,7 @@ func (b *BaseApi) UpdateProxyConfig(c *gin.Context) { // @Param request body request.NginxProxyUpdate true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /websites/proxy/file [post] // @x-panel-log {"bodyKeys":["websiteID"],"paramKeys":[],"BeforeFunctions":[{"input_column":"id","input_value":"websiteID","isList":false,"db":"websites","output_column":"primary_domain","output_value":"domain"}],"formatZH":"更新反向代理文件 [domain]","formatEN":"Nginx conf proxy file update [domain]"} func (b *BaseApi) UpdateProxyConfigFile(c *gin.Context) { @@ -590,6 +618,7 @@ func (b *BaseApi) UpdateProxyConfigFile(c *gin.Context) { // @Param request body request.NginxAuthReq true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /websites/auths [post] func (b *BaseApi) GetAuthConfig(c *gin.Context) { var req request.NginxAuthReq @@ -610,6 +639,7 @@ func (b *BaseApi) GetAuthConfig(c *gin.Context) { // @Param request body request.NginxAuthUpdate true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /websites/auths/update [post] func (b *BaseApi) UpdateAuthConfig(c *gin.Context) { var req request.NginxAuthUpdate @@ -629,6 +659,7 @@ func (b *BaseApi) UpdateAuthConfig(c *gin.Context) { // @Param request body request.NginxCommonReq true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /websites/leech [post] func (b *BaseApi) GetAntiLeech(c *gin.Context) { var req request.NginxCommonReq @@ -649,6 +680,7 @@ func (b *BaseApi) GetAntiLeech(c *gin.Context) { // @Param request body request.NginxAntiLeechUpdate true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /websites/leech/update [post] func (b *BaseApi) UpdateAntiLeech(c *gin.Context) { var req request.NginxAntiLeechUpdate @@ -668,6 +700,7 @@ func (b *BaseApi) UpdateAntiLeech(c *gin.Context) { // @Param request body request.NginxRedirectReq true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /websites/redirect/update [post] // @x-panel-log {"bodyKeys":["websiteID"],"paramKeys":[],"BeforeFunctions":[{"input_column":"id","input_value":"websiteID","isList":false,"db":"websites","output_column":"primary_domain","output_value":"domain"}],"formatZH":"修改网站 [domain] 重定向理配置 ","formatEN":"Update domain [domain] redirect config"} func (b *BaseApi) UpdateRedirectConfig(c *gin.Context) { @@ -689,6 +722,7 @@ func (b *BaseApi) UpdateRedirectConfig(c *gin.Context) { // @Param request body request.WebsiteProxyReq true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /websites/redirect [post] func (b *BaseApi) GetRedirectConfig(c *gin.Context) { var req request.WebsiteRedirectReq @@ -709,6 +743,7 @@ func (b *BaseApi) GetRedirectConfig(c *gin.Context) { // @Param request body request.NginxRedirectUpdate true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /websites/redirect/file [post] // @x-panel-log {"bodyKeys":["websiteID"],"paramKeys":[],"BeforeFunctions":[{"input_column":"id","input_value":"websiteID","isList":false,"db":"websites","output_column":"primary_domain","output_value":"domain"}],"formatZH":"更新重定向文件 [domain]","formatEN":"Nginx conf redirect file update [domain]"} func (b *BaseApi) UpdateRedirectConfigFile(c *gin.Context) { @@ -729,6 +764,7 @@ func (b *BaseApi) UpdateRedirectConfigFile(c *gin.Context) { // @Param request body request.WebsiteCommonReq true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /websites/dir [post] func (b *BaseApi) GetDirConfig(c *gin.Context) { var req request.WebsiteCommonReq @@ -748,6 +784,7 @@ func (b *BaseApi) GetDirConfig(c *gin.Context) { // @Accept json // @Success 200 {object} response.FileInfo // @Security ApiKeyAuth +// @Security Timestamp // @Router /websites/default/html/:type [get] func (b *BaseApi) GetDefaultHtml(c *gin.Context) { resourceType, err := helper.GetStrParamByKey(c, "type") @@ -769,6 +806,7 @@ func (b *BaseApi) GetDefaultHtml(c *gin.Context) { // @Param request body request.WebsiteHtmlUpdate true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /websites/default/html/update [post] // @x-panel-log {"bodyKeys":["type"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"更新默认 html","formatEN":"Update default html"} func (b *BaseApi) UpdateDefaultHtml(c *gin.Context) { diff --git a/backend/app/api/v1/website_acme_account.go b/backend/app/api/v1/website_acme_account.go index b7a219089..1b5d915b4 100644 --- a/backend/app/api/v1/website_acme_account.go +++ b/backend/app/api/v1/website_acme_account.go @@ -14,6 +14,7 @@ import ( // @Param request body dto.PageInfo true "request" // @Success 200 {object} dto.PageResult // @Security ApiKeyAuth +// @Security Timestamp // @Router /websites/acme/search [post] func (b *BaseApi) PageWebsiteAcmeAccount(c *gin.Context) { var req dto.PageInfo @@ -37,6 +38,7 @@ func (b *BaseApi) PageWebsiteAcmeAccount(c *gin.Context) { // @Param request body request.WebsiteAcmeAccountCreate true "request" // @Success 200 {object} response.WebsiteAcmeAccountDTO // @Security ApiKeyAuth +// @Security Timestamp // @Router /websites/acme [post] // @x-panel-log {"bodyKeys":["email"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"创建网站 acme [email]","formatEN":"Create website acme [email]"} func (b *BaseApi) CreateWebsiteAcmeAccount(c *gin.Context) { @@ -58,6 +60,7 @@ func (b *BaseApi) CreateWebsiteAcmeAccount(c *gin.Context) { // @Param request body request.WebsiteResourceReq true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /websites/acme/del [post] // @x-panel-log {"bodyKeys":["id"],"paramKeys":[],"BeforeFunctions":[{"input_column":"id","input_value":"id","isList":false,"db":"website_acme_accounts","output_column":"email","output_value":"email"}],"formatZH":"删除网站 acme [email]","formatEN":"Delete website acme [email]"} func (b *BaseApi) DeleteWebsiteAcmeAccount(c *gin.Context) { diff --git a/backend/app/api/v1/website_ca.go b/backend/app/api/v1/website_ca.go index 236c97262..7dd7842f1 100644 --- a/backend/app/api/v1/website_ca.go +++ b/backend/app/api/v1/website_ca.go @@ -17,6 +17,7 @@ import ( // @Param request body request.WebsiteCASearch true "request" // @Success 200 {object} dto.PageResult // @Security ApiKeyAuth +// @Security Timestamp // @Router /websites/ca/search [post] func (b *BaseApi) PageWebsiteCA(c *gin.Context) { var req request.WebsiteCASearch @@ -40,6 +41,7 @@ func (b *BaseApi) PageWebsiteCA(c *gin.Context) { // @Param request body request.WebsiteCACreate true "request" // @Success 200 {object} request.WebsiteCACreate // @Security ApiKeyAuth +// @Security Timestamp // @Router /websites/ca [post] // @x-panel-log {"bodyKeys":["name"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"创建网站 ca [name]","formatEN":"Create website ca [name]"} func (b *BaseApi) CreateWebsiteCA(c *gin.Context) { @@ -61,6 +63,7 @@ func (b *BaseApi) CreateWebsiteCA(c *gin.Context) { // @Param id path int true "id" // @Success 200 {object} response.WebsiteCADTO // @Security ApiKeyAuth +// @Security Timestamp // @Router /websites/ca/{id} [get] func (b *BaseApi) GetWebsiteCA(c *gin.Context) { id, err := helper.GetParamID(c) @@ -81,6 +84,7 @@ func (b *BaseApi) GetWebsiteCA(c *gin.Context) { // @Param request body request.WebsiteCommonReq true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /websites/ca/del [post] // @x-panel-log {"bodyKeys":["id"],"paramKeys":[],"BeforeFunctions":[{"input_column":"id","input_value":"id","isList":false,"db":"website_cas","output_column":"name","output_value":"name"}],"formatZH":"删除网站 ca [name]","formatEN":"Delete website ca [name]"} func (b *BaseApi) DeleteWebsiteCA(c *gin.Context) { @@ -101,6 +105,7 @@ func (b *BaseApi) DeleteWebsiteCA(c *gin.Context) { // @Param request body request.WebsiteCAObtain true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /websites/ca/obtain [post] // @x-panel-log {"bodyKeys":["id"],"paramKeys":[],"BeforeFunctions":[{"input_column":"id","input_value":"id","isList":false,"db":"website_cas","output_column":"name","output_value":"name"}],"formatZH":"自签 SSL 证书 [name]","formatEN":"Obtain SSL [name]"} func (b *BaseApi) ObtainWebsiteCA(c *gin.Context) { @@ -121,6 +126,7 @@ func (b *BaseApi) ObtainWebsiteCA(c *gin.Context) { // @Param request body request.WebsiteCAObtain true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /websites/ca/renew [post] // @x-panel-log {"bodyKeys":["id"],"paramKeys":[],"BeforeFunctions":[{"input_column":"id","input_value":"id","isList":false,"db":"website_cas","output_column":"name","output_value":"name"}],"formatZH":"自签 SSL 证书 [name]","formatEN":"Obtain SSL [name]"} func (b *BaseApi) RenewWebsiteCA(c *gin.Context) { @@ -146,6 +152,7 @@ func (b *BaseApi) RenewWebsiteCA(c *gin.Context) { // @Param request body request.WebsiteResourceReq true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /websites/ca/download [post] // @x-panel-log {"bodyKeys":["id"],"paramKeys":[],"BeforeFunctions":[{"input_column":"id","input_value":"id","isList":false,"db":"website_cas","output_column":"name","output_value":"name"}],"formatZH":"下载 CA 证书文件 [name]","formatEN":"download ca file [name]"} func (b *BaseApi) DownloadCAFile(c *gin.Context) { diff --git a/backend/app/api/v1/website_dns_account.go b/backend/app/api/v1/website_dns_account.go index ba8e53007..546a544da 100644 --- a/backend/app/api/v1/website_dns_account.go +++ b/backend/app/api/v1/website_dns_account.go @@ -14,6 +14,7 @@ import ( // @Param request body dto.PageInfo true "request" // @Success 200 {object} dto.PageResult // @Security ApiKeyAuth +// @Security Timestamp // @Router /websites/dns/search [post] func (b *BaseApi) PageWebsiteDnsAccount(c *gin.Context) { var req dto.PageInfo @@ -37,6 +38,7 @@ func (b *BaseApi) PageWebsiteDnsAccount(c *gin.Context) { // @Param request body request.WebsiteDnsAccountCreate true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /websites/dns [post] // @x-panel-log {"bodyKeys":["name"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"创建网站 dns [name]","formatEN":"Create website dns [name]"} func (b *BaseApi) CreateWebsiteDnsAccount(c *gin.Context) { @@ -57,6 +59,7 @@ func (b *BaseApi) CreateWebsiteDnsAccount(c *gin.Context) { // @Param request body request.WebsiteDnsAccountUpdate true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /websites/dns/update [post] // @x-panel-log {"bodyKeys":["name"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"更新网站 dns [name]","formatEN":"Update website dns [name]"} func (b *BaseApi) UpdateWebsiteDnsAccount(c *gin.Context) { @@ -77,6 +80,7 @@ func (b *BaseApi) UpdateWebsiteDnsAccount(c *gin.Context) { // @Param request body request.WebsiteResourceReq true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /websites/dns/del [post] // @x-panel-log {"bodyKeys":["id"],"paramKeys":[],"BeforeFunctions":[{"input_column":"id","input_value":"id","isList":false,"db":"website_dns_accounts","output_column":"name","output_value":"name"}],"formatZH":"删除网站 dns [name]","formatEN":"Delete website dns [name]"} func (b *BaseApi) DeleteWebsiteDnsAccount(c *gin.Context) { diff --git a/backend/app/api/v1/website_domain.go b/backend/app/api/v1/website_domain.go index 0ed158fb3..7b824c40f 100644 --- a/backend/app/api/v1/website_domain.go +++ b/backend/app/api/v1/website_domain.go @@ -13,6 +13,7 @@ import ( // @Param request body request.WebsiteDomainDelete true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /websites/domains/del [post] // @x-panel-log {"bodyKeys":["id"],"paramKeys":[],"BeforeFunctions":[{"input_column":"id","input_value":"id","isList":false,"db":"website_domains","output_column":"domain","output_value":"domain"}],"formatZH":"删除域名 [domain]","formatEN":"Delete domain [domain]"} func (b *BaseApi) DeleteWebDomain(c *gin.Context) { @@ -33,6 +34,7 @@ func (b *BaseApi) DeleteWebDomain(c *gin.Context) { // @Param request body request.WebsiteDomainCreate true "request" // @Success 200 {object} model.WebsiteDomain // @Security ApiKeyAuth +// @Security Timestamp // @Router /websites/domains [post] // @x-panel-log {"bodyKeys":["domain"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"创建域名 [domain]","formatEN":"Create domain [domain]"} func (b *BaseApi) CreateWebDomain(c *gin.Context) { @@ -54,6 +56,7 @@ func (b *BaseApi) CreateWebDomain(c *gin.Context) { // @Param websiteId path integer true "request" // @Success 200 {array} model.WebsiteDomain // @Security ApiKeyAuth +// @Security Timestamp // @Router /websites/domains/:websiteId [get] func (b *BaseApi) GetWebDomains(c *gin.Context) { websiteId, err := helper.GetIntParamByKey(c, "websiteId") diff --git a/backend/app/api/v1/website_ssl.go b/backend/app/api/v1/website_ssl.go index 10a2497a2..77d766ff3 100644 --- a/backend/app/api/v1/website_ssl.go +++ b/backend/app/api/v1/website_ssl.go @@ -19,6 +19,7 @@ import ( // @Param request body request.WebsiteSSLSearch true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /websites/ssl/search [post] func (b *BaseApi) PageWebsiteSSL(c *gin.Context) { var req request.WebsiteSSLSearch @@ -51,6 +52,7 @@ func (b *BaseApi) PageWebsiteSSL(c *gin.Context) { // @Param request body request.WebsiteSSLCreate true "request" // @Success 200 {object} request.WebsiteSSLCreate // @Security ApiKeyAuth +// @Security Timestamp // @Router /websites/ssl [post] // @x-panel-log {"bodyKeys":["primaryDomain"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"创建网站 ssl [primaryDomain]","formatEN":"Create website ssl [primaryDomain]"} func (b *BaseApi) CreateWebsiteSSL(c *gin.Context) { @@ -72,6 +74,7 @@ func (b *BaseApi) CreateWebsiteSSL(c *gin.Context) { // @Param request body request.WebsiteSSLApply true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /websites/ssl/obtain [post] // @x-panel-log {"bodyKeys":["ID"],"paramKeys":[],"BeforeFunctions":[{"input_column":"id","input_value":"ID","isList":false,"db":"website_ssls","output_column":"primary_domain","output_value":"domain"}],"formatZH":"申请证书 [domain]","formatEN":"apply ssl [domain]"} func (b *BaseApi) ApplyWebsiteSSL(c *gin.Context) { @@ -92,6 +95,7 @@ func (b *BaseApi) ApplyWebsiteSSL(c *gin.Context) { // @Param request body request.WebsiteDNSReq true "request" // @Success 200 {array} response.WebsiteDNSRes // @Security ApiKeyAuth +// @Security Timestamp // @Router /websites/ssl/resolve [post] func (b *BaseApi) GetDNSResolve(c *gin.Context) { var req request.WebsiteDNSReq @@ -112,6 +116,7 @@ func (b *BaseApi) GetDNSResolve(c *gin.Context) { // @Param request body request.WebsiteBatchDelReq true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /websites/ssl/del [post] // @x-panel-log {"bodyKeys":["ids"],"paramKeys":[],"BeforeFunctions":[{"input_column":"id","input_value":"ids","isList":true,"db":"website_ssls","output_column":"primary_domain","output_value":"domain"}],"formatZH":"删除 ssl [domain]","formatEN":"Delete ssl [domain]"} func (b *BaseApi) DeleteWebsiteSSL(c *gin.Context) { @@ -132,6 +137,7 @@ func (b *BaseApi) DeleteWebsiteSSL(c *gin.Context) { // @Param websiteId path integer true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /websites/ssl/website/:websiteId [get] func (b *BaseApi) GetWebsiteSSLByWebsiteId(c *gin.Context) { websiteId, err := helper.GetIntParamByKey(c, "websiteId") @@ -153,6 +159,7 @@ func (b *BaseApi) GetWebsiteSSLByWebsiteId(c *gin.Context) { // @Param id path integer true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /websites/ssl/:id [get] func (b *BaseApi) GetWebsiteSSLById(c *gin.Context) { id, err := helper.GetParamID(c) @@ -174,6 +181,7 @@ func (b *BaseApi) GetWebsiteSSLById(c *gin.Context) { // @Param request body request.WebsiteSSLUpdate true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /websites/ssl/update [post] // @x-panel-log {"bodyKeys":["id"],"paramKeys":[],"BeforeFunctions":[{"input_column":"id","input_value":"id","isList":false,"db":"website_ssls","output_column":"primary_domain","output_value":"domain"}],"formatZH":"更新证书设置 [domain]","formatEN":"Update ssl config [domain]"} func (b *BaseApi) UpdateWebsiteSSL(c *gin.Context) { @@ -194,6 +202,7 @@ func (b *BaseApi) UpdateWebsiteSSL(c *gin.Context) { // @Param request body request.WebsiteSSLUpload true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /websites/ssl/upload [post] // @x-panel-log {"bodyKeys":["type"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"上传 ssl [type]","formatEN":"Upload ssl [type]"} func (b *BaseApi) UploadWebsiteSSL(c *gin.Context) { @@ -214,6 +223,7 @@ func (b *BaseApi) UploadWebsiteSSL(c *gin.Context) { // @Param request body request.WebsiteResourceReq true "request" // @Success 200 // @Security ApiKeyAuth +// @Security Timestamp // @Router /websites/ssl/download [post] // @x-panel-log {"bodyKeys":["id"],"paramKeys":[],"BeforeFunctions":[{"input_column":"id","input_value":"id","isList":false,"db":"website_ssls","output_column":"primary_domain","output_value":"domain"}],"formatZH":"下载证书文件 [domain]","formatEN":"download ssl file [domain]"} func (b *BaseApi) DownloadWebsiteSSL(c *gin.Context) { diff --git a/backend/init/router/router.go b/backend/init/router/router.go index f529bb215..4de39bf27 100644 --- a/backend/init/router/router.go +++ b/backend/init/router/router.go @@ -172,7 +172,7 @@ func Routers() *gin.Engine { swaggerRouter := Router.Group("1panel") docs.SwaggerInfo.BasePath = "/api/v1" - swaggerRouter.Use(middleware.JwtAuth()).Use(middleware.SessionAuth()).GET("/swagger/*any", ginSwagger.WrapHandler(swaggerfiles.Handler)) + swaggerRouter.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerfiles.Handler)) PublicGroup := Router.Group("") { PublicGroup.GET("/health", func(c *gin.Context) { diff --git a/cmd/server/docs/docs.go b/cmd/server/docs/docs.go index 848dbfd35..ffbdad852 100644 --- a/cmd/server/docs/docs.go +++ b/cmd/server/docs/docs.go @@ -12,8 +12,8 @@ const docTemplate = `{ "termsOfService": "http://swagger.io/terms/", "contact": {}, "license": { - "name": "Apache 2.0", - "url": "http://www.apache.org/licenses/LICENSE-2.0.html" + "name": "GPL-3.0", + "url": "https://www.gnu.org/licenses/gpl-3.0.html" }, "version": "{{.Version}}" }, @@ -25,6 +25,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -58,6 +61,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "tags": [ @@ -76,6 +82,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -123,6 +132,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -156,6 +168,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -180,6 +195,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -224,6 +242,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -259,6 +280,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -294,6 +318,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -329,6 +356,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -365,6 +395,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -406,6 +439,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -433,6 +469,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -468,6 +507,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -535,6 +577,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -568,6 +613,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -609,6 +657,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -652,6 +703,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -684,6 +738,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "tags": [ @@ -709,6 +766,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -745,6 +805,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -777,6 +840,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -813,6 +879,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "tags": [ @@ -930,6 +999,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "tags": [ @@ -983,6 +1055,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -1025,6 +1100,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -1093,6 +1171,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -1134,6 +1215,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -1176,6 +1260,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -1211,6 +1298,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "tags": [ @@ -1251,6 +1341,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -1292,6 +1385,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -1333,6 +1429,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "produces": [ @@ -1357,6 +1456,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "produces": [ @@ -1381,6 +1483,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -1423,6 +1528,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -1462,6 +1570,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -1503,6 +1614,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "produces": [ @@ -1527,6 +1641,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -1555,6 +1672,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "produces": [ @@ -1582,6 +1702,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "produces": [ @@ -1609,6 +1732,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -1653,6 +1779,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -1694,6 +1823,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -1748,6 +1880,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -1803,6 +1938,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -1844,6 +1982,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -1887,6 +2028,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -1925,6 +2069,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -1976,6 +2123,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -2011,6 +2161,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -2046,6 +2199,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -2085,6 +2241,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "summary": "Load container limits", @@ -2103,6 +2262,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -2127,6 +2289,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "summary": "Load container stats", @@ -2148,6 +2313,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -2180,6 +2348,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -2219,6 +2390,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -2247,6 +2421,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -2288,6 +2465,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -2329,6 +2509,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -2367,6 +2550,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -2409,6 +2595,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -2453,6 +2642,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -2495,6 +2687,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "produces": [ @@ -2520,6 +2715,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -2564,6 +2762,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -2617,6 +2818,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -2655,6 +2859,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -2690,6 +2897,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -2743,6 +2953,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -2781,6 +2994,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "tags": [ @@ -2821,6 +3037,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "tags": [ @@ -2851,6 +3070,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "produces": [ @@ -2876,6 +3098,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -2917,6 +3142,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -2967,6 +3195,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -3005,6 +3236,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -3055,6 +3289,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -3097,6 +3334,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -3139,6 +3379,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -3167,6 +3410,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -3208,6 +3454,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -3249,6 +3498,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -3287,6 +3539,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -3329,6 +3584,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -3379,6 +3637,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -3429,6 +3690,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -3479,6 +3743,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -3529,6 +3796,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -3561,6 +3831,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -3596,6 +3869,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -3631,6 +3907,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -3682,6 +3961,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -3732,6 +4014,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -3772,6 +4057,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -3796,6 +4084,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -3831,6 +4122,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -3861,6 +4155,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -3902,6 +4199,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -3944,6 +4244,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -3994,6 +4297,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -4044,6 +4350,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -4079,6 +4388,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -4111,6 +4423,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -4153,6 +4468,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -4195,6 +4513,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "tags": [ @@ -4216,6 +4537,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -4258,6 +4582,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -4308,6 +4635,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "tags": [ @@ -4332,6 +4662,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "tags": [ @@ -4356,6 +4689,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -4391,6 +4727,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -4432,6 +4771,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -4482,6 +4824,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -4520,6 +4865,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -4571,6 +4919,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -4599,6 +4950,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -4637,6 +4991,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -4678,6 +5035,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -4706,6 +5066,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -4748,6 +5111,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -4798,6 +5164,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -4836,6 +5205,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -4887,6 +5259,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -4937,6 +5312,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -4979,6 +5357,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -5014,6 +5395,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -5049,6 +5433,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -5088,6 +5475,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "tags": [ @@ -5106,6 +5496,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -5145,6 +5538,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -5180,6 +5576,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -5219,6 +5618,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -5254,6 +5656,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -5289,6 +5694,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -5324,6 +5732,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -5359,6 +5770,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -5394,6 +5808,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -5433,6 +5850,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -5471,6 +5891,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -5512,6 +5935,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -5553,6 +5979,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -5597,6 +6026,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -5629,6 +6061,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -5670,6 +6105,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "tags": [ @@ -5697,6 +6135,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -5738,6 +6179,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -5782,6 +6226,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -5823,6 +6270,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -5864,6 +6314,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -5885,6 +6338,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -5926,6 +6382,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -5976,6 +6435,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -6008,6 +6470,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -6050,6 +6515,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -6092,6 +6560,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -6135,6 +6606,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "tags": [ @@ -6164,6 +6638,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -6192,6 +6669,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -6233,6 +6713,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -6265,6 +6748,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -6286,6 +6772,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -6328,6 +6817,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -6369,6 +6861,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -6404,6 +6899,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -6445,6 +6943,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -6483,6 +6984,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "tags": [ @@ -6519,6 +7023,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -6557,6 +7064,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -6600,6 +7110,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -6642,6 +7155,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -6700,6 +7216,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -6738,6 +7257,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -6780,6 +7302,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -6819,6 +7344,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "tags": [ @@ -6837,6 +7365,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -6876,6 +7407,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -6911,6 +7445,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -6948,6 +7485,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "tags": [ @@ -6969,6 +7509,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -7001,6 +7544,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -7043,6 +7589,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -7075,6 +7624,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -7116,6 +7668,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -7157,6 +7712,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -7189,6 +7747,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -7231,6 +7792,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -7250,6 +7814,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -7291,6 +7858,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -7332,6 +7902,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -7374,6 +7947,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "tags": [ @@ -7393,6 +7969,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -7435,6 +8014,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -7485,6 +8067,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "tags": [ @@ -7504,6 +8089,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -7546,6 +8134,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -7596,6 +8187,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -7631,6 +8225,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -7666,6 +8263,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -7690,6 +8290,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -7731,6 +8334,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -7781,6 +8387,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "tags": [ @@ -7802,6 +8411,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -7834,6 +8446,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -7875,6 +8490,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -7917,6 +8535,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -7961,6 +8582,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -8003,6 +8627,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -8038,6 +8665,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -8070,6 +8700,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -8102,6 +8735,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -8134,6 +8770,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "tags": [ @@ -8159,6 +8798,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "tags": [ @@ -8188,6 +8830,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -8226,6 +8871,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -8259,6 +8907,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -8291,6 +8942,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -8329,6 +8983,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -8371,6 +9028,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -8422,6 +9082,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -8466,6 +9129,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -8501,6 +9167,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -8536,6 +9205,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "tags": [ @@ -8554,6 +9226,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "tags": [ @@ -8572,6 +9247,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "tags": [ @@ -8593,6 +9271,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "tags": [ @@ -8618,6 +9299,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -8657,6 +9341,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -8695,6 +9382,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "tags": [ @@ -8716,6 +9406,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -8766,6 +9459,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "tags": [ @@ -8804,6 +9500,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -8845,6 +9544,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -8875,6 +9577,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -8916,6 +9621,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -8948,6 +9656,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -8980,6 +9691,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -9012,6 +9726,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -9053,6 +9770,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -9085,6 +9805,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -9117,6 +9840,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -9155,6 +9881,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -9187,6 +9916,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -9219,6 +9951,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -9240,6 +9975,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -9281,6 +10019,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -9309,6 +10050,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -9350,6 +10094,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -9391,6 +10138,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -9434,6 +10184,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -9484,6 +10237,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -9508,6 +10264,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -9558,6 +10317,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -9600,6 +10362,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -9632,6 +10397,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -9664,6 +10432,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -9708,6 +10479,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -9752,6 +10526,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "tags": [ @@ -9770,6 +10547,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "tags": [ @@ -9792,6 +10572,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -9830,6 +10613,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -9868,6 +10654,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -9909,6 +10698,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "tags": [ @@ -9930,6 +10722,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -9972,6 +10767,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -10011,6 +10809,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -10032,6 +10833,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -10071,6 +10875,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -10106,6 +10913,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -10145,6 +10955,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -10184,6 +10997,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -10225,6 +11041,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -10267,6 +11086,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "tags": [ @@ -10288,6 +11110,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "tags": [ @@ -10306,6 +11131,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -10348,6 +11176,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -10398,6 +11229,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -10449,6 +11283,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -10491,6 +11328,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -10541,6 +11381,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -10591,6 +11434,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -10626,6 +11472,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -10658,6 +11507,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -10690,6 +11542,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "tags": [ @@ -10708,6 +11563,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "tags": [ @@ -10729,6 +11587,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -10770,6 +11631,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -10812,6 +11676,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -10842,6 +11709,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -10883,6 +11753,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -10925,6 +11798,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -10949,6 +11825,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -10999,6 +11878,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -11034,6 +11916,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -11066,6 +11951,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -11116,6 +12004,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -11153,6 +12044,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -11199,6 +12093,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -11231,6 +12128,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -11266,6 +12166,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -11301,6 +12204,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -11352,6 +12258,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -11394,6 +12303,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -11436,6 +12348,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "tags": [ @@ -11457,6 +12372,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -11489,6 +12407,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -11521,6 +12442,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -11553,6 +12477,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -11595,6 +12522,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "tags": [ @@ -11623,6 +12553,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -11655,6 +12588,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -11697,6 +12633,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -11721,6 +12660,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "tags": [ @@ -11742,6 +12684,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -11763,6 +12708,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -11800,6 +12748,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -11828,6 +12779,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -11863,6 +12817,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -11905,6 +12862,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -11937,6 +12897,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -11979,6 +12942,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "tags": [ @@ -12000,6 +12966,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -12050,6 +13019,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -12085,6 +13057,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -12122,6 +13097,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -12157,6 +13135,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -12196,6 +13177,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -12238,6 +13222,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "tags": [ @@ -12263,6 +13250,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -12304,6 +13294,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -12337,6 +13330,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -12370,6 +13366,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -12401,6 +13400,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -12454,6 +13456,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -12498,6 +13503,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -12548,6 +13556,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -12583,6 +13594,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -12615,6 +13629,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -12647,6 +13664,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -12691,6 +13711,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -12741,6 +13764,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -12791,6 +13817,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -12841,6 +13870,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -12891,6 +13923,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -12926,6 +13961,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -12959,6 +13997,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -12997,6 +14038,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -13032,6 +14076,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -13082,6 +14129,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -13106,6 +14156,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -13147,6 +14200,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -13198,6 +14254,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -13248,6 +14307,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -13280,6 +14342,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -13330,6 +14395,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -13380,6 +14448,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -13421,6 +14492,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -13471,6 +14545,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -13506,6 +14583,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -13547,6 +14627,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -13591,6 +14674,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -13627,6 +14713,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -13677,6 +14766,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -13709,6 +14801,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -13741,6 +14836,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "tags": [ @@ -13765,6 +14863,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -13819,6 +14920,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -13869,6 +14973,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -13920,6 +15027,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "tags": [ @@ -13944,6 +15054,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -13994,6 +15107,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -14027,6 +15143,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -14077,6 +15196,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -14127,6 +15249,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -14159,6 +15284,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -14209,6 +15337,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -14259,6 +15390,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -14291,6 +15425,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -14341,6 +15478,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -14391,6 +15531,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -14423,6 +15566,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -14473,6 +15619,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -14508,6 +15657,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -14552,6 +15704,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -14582,6 +15737,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -14632,6 +15790,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -14682,6 +15843,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -14732,6 +15896,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -14770,6 +15937,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -14802,6 +15972,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -14852,6 +16025,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -14893,6 +16069,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -14923,6 +16102,9 @@ const docTemplate = `{ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -23372,7 +24554,7 @@ const docTemplate = `{ } }, "securityDefinitions": { - "CustomToken": { + "ApiKeyAuth": { "description": "Custom Token Format, Format: md5('1panel' + 1Panel-Token + 1Panel-Timestamp).\n` + "`" + `` + "`" + `` + "`" + `\neg:\ncurl -X GET \"http://localhost:4004/api/v1/resource\" \\\n-H \"1Panel-Token: \u003c1panel_token\u003e\" \\\n-H \"1Panel-Timestamp: \u003ccurrent_unix_timestamp\u003e\"\n` + "`" + `` + "`" + `` + "`" + `\n- ` + "`" + `1Panel-Token` + "`" + ` is the key for the panel API interface.", "type": "apiKey", "name": "1Panel-Token", @@ -23394,7 +24576,7 @@ var SwaggerInfo = &swag.Spec{ BasePath: "/api/v1", Schemes: []string{"http", "https"}, Title: "1Panel", - Description: "Open Source Linux Panel", + Description: "Top-Rated Web-based Linux Server Management Tool", InfoInstanceName: "swagger", SwaggerTemplate: docTemplate, LeftDelim: "{{", diff --git a/cmd/server/docs/swagger.json b/cmd/server/docs/swagger.json index bf3c120d5..974eb3ae8 100644 --- a/cmd/server/docs/swagger.json +++ b/cmd/server/docs/swagger.json @@ -5,13 +5,13 @@ ], "swagger": "2.0", "info": { - "description": "Open Source Linux Panel", + "description": "Top-Rated Web-based Linux Server Management Tool", "title": "1Panel", "termsOfService": "http://swagger.io/terms/", "contact": {}, "license": { - "name": "Apache 2.0", - "url": "http://www.apache.org/licenses/LICENSE-2.0.html" + "name": "GPL-3.0", + "url": "https://www.gnu.org/licenses/gpl-3.0.html" }, "version": "1.0" }, @@ -22,6 +22,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -55,6 +58,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "tags": [ @@ -73,6 +79,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -120,6 +129,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -153,6 +165,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -177,6 +192,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -221,6 +239,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -256,6 +277,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -291,6 +315,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -326,6 +353,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -362,6 +392,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -403,6 +436,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -430,6 +466,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -465,6 +504,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -532,6 +574,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -565,6 +610,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -606,6 +654,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -649,6 +700,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -681,6 +735,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "tags": [ @@ -706,6 +763,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -742,6 +802,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -774,6 +837,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -810,6 +876,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "tags": [ @@ -927,6 +996,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "tags": [ @@ -980,6 +1052,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -1022,6 +1097,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -1090,6 +1168,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -1131,6 +1212,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -1173,6 +1257,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -1208,6 +1295,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "tags": [ @@ -1248,6 +1338,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -1289,6 +1382,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -1330,6 +1426,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "produces": [ @@ -1354,6 +1453,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "produces": [ @@ -1378,6 +1480,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -1420,6 +1525,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -1459,6 +1567,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -1500,6 +1611,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "produces": [ @@ -1524,6 +1638,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -1552,6 +1669,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "produces": [ @@ -1579,6 +1699,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "produces": [ @@ -1606,6 +1729,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -1650,6 +1776,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -1691,6 +1820,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -1745,6 +1877,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -1800,6 +1935,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -1841,6 +1979,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -1884,6 +2025,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -1922,6 +2066,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -1973,6 +2120,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -2008,6 +2158,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -2043,6 +2196,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -2082,6 +2238,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "summary": "Load container limits", @@ -2100,6 +2259,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -2124,6 +2286,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "summary": "Load container stats", @@ -2145,6 +2310,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -2177,6 +2345,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -2216,6 +2387,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -2244,6 +2418,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -2285,6 +2462,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -2326,6 +2506,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -2364,6 +2547,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -2406,6 +2592,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -2450,6 +2639,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -2492,6 +2684,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "produces": [ @@ -2517,6 +2712,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -2561,6 +2759,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -2614,6 +2815,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -2652,6 +2856,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -2687,6 +2894,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -2740,6 +2950,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -2778,6 +2991,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "tags": [ @@ -2818,6 +3034,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "tags": [ @@ -2848,6 +3067,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "produces": [ @@ -2873,6 +3095,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -2914,6 +3139,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -2964,6 +3192,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -3002,6 +3233,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -3052,6 +3286,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -3094,6 +3331,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -3136,6 +3376,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -3164,6 +3407,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -3205,6 +3451,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -3246,6 +3495,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -3284,6 +3536,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -3326,6 +3581,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -3376,6 +3634,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -3426,6 +3687,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -3476,6 +3740,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -3526,6 +3793,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -3558,6 +3828,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -3593,6 +3866,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -3628,6 +3904,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -3679,6 +3958,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -3729,6 +4011,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -3769,6 +4054,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -3793,6 +4081,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -3828,6 +4119,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -3858,6 +4152,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -3899,6 +4196,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -3941,6 +4241,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -3991,6 +4294,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -4041,6 +4347,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -4076,6 +4385,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -4108,6 +4420,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -4150,6 +4465,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -4192,6 +4510,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "tags": [ @@ -4213,6 +4534,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -4255,6 +4579,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -4305,6 +4632,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "tags": [ @@ -4329,6 +4659,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "tags": [ @@ -4353,6 +4686,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -4388,6 +4724,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -4429,6 +4768,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -4479,6 +4821,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -4517,6 +4862,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -4568,6 +4916,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -4596,6 +4947,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -4634,6 +4988,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -4675,6 +5032,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -4703,6 +5063,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -4745,6 +5108,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -4795,6 +5161,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -4833,6 +5202,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -4884,6 +5256,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -4934,6 +5309,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -4976,6 +5354,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -5011,6 +5392,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -5046,6 +5430,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -5085,6 +5472,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "tags": [ @@ -5103,6 +5493,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -5142,6 +5535,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -5177,6 +5573,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -5216,6 +5615,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -5251,6 +5653,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -5286,6 +5691,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -5321,6 +5729,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -5356,6 +5767,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -5391,6 +5805,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -5430,6 +5847,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -5468,6 +5888,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -5509,6 +5932,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -5550,6 +5976,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -5594,6 +6023,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -5626,6 +6058,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -5667,6 +6102,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "tags": [ @@ -5694,6 +6132,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -5735,6 +6176,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -5779,6 +6223,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -5820,6 +6267,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -5861,6 +6311,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -5882,6 +6335,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -5923,6 +6379,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -5973,6 +6432,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -6005,6 +6467,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -6047,6 +6512,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -6089,6 +6557,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -6132,6 +6603,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "tags": [ @@ -6161,6 +6635,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -6189,6 +6666,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -6230,6 +6710,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -6262,6 +6745,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -6283,6 +6769,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -6325,6 +6814,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -6366,6 +6858,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -6401,6 +6896,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -6442,6 +6940,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -6480,6 +6981,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "tags": [ @@ -6516,6 +7020,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -6554,6 +7061,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -6597,6 +7107,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -6639,6 +7152,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -6697,6 +7213,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -6735,6 +7254,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -6777,6 +7299,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -6816,6 +7341,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "tags": [ @@ -6834,6 +7362,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -6873,6 +7404,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -6908,6 +7442,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -6945,6 +7482,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "tags": [ @@ -6966,6 +7506,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -6998,6 +7541,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -7040,6 +7586,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -7072,6 +7621,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -7113,6 +7665,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -7154,6 +7709,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -7186,6 +7744,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -7228,6 +7789,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -7247,6 +7811,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -7288,6 +7855,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -7329,6 +7899,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -7371,6 +7944,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "tags": [ @@ -7390,6 +7966,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -7432,6 +8011,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -7482,6 +8064,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "tags": [ @@ -7501,6 +8086,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -7543,6 +8131,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -7593,6 +8184,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -7628,6 +8222,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -7663,6 +8260,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -7687,6 +8287,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -7728,6 +8331,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -7778,6 +8384,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "tags": [ @@ -7799,6 +8408,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -7831,6 +8443,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -7872,6 +8487,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -7914,6 +8532,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -7958,6 +8579,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -8000,6 +8624,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -8035,6 +8662,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -8067,6 +8697,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -8099,6 +8732,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -8131,6 +8767,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "tags": [ @@ -8156,6 +8795,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "tags": [ @@ -8185,6 +8827,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -8223,6 +8868,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -8256,6 +8904,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -8288,6 +8939,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -8326,6 +8980,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -8368,6 +9025,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -8419,6 +9079,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -8463,6 +9126,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -8498,6 +9164,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -8533,6 +9202,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "tags": [ @@ -8551,6 +9223,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "tags": [ @@ -8569,6 +9244,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "tags": [ @@ -8590,6 +9268,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "tags": [ @@ -8615,6 +9296,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -8654,6 +9338,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -8692,6 +9379,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "tags": [ @@ -8713,6 +9403,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -8763,6 +9456,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "tags": [ @@ -8801,6 +9497,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -8842,6 +9541,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -8872,6 +9574,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -8913,6 +9618,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -8945,6 +9653,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -8977,6 +9688,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -9009,6 +9723,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -9050,6 +9767,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -9082,6 +9802,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -9114,6 +9837,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -9152,6 +9878,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -9184,6 +9913,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -9216,6 +9948,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -9237,6 +9972,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -9278,6 +10016,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -9306,6 +10047,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -9347,6 +10091,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -9388,6 +10135,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -9431,6 +10181,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -9481,6 +10234,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -9505,6 +10261,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -9555,6 +10314,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -9597,6 +10359,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -9629,6 +10394,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -9661,6 +10429,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -9705,6 +10476,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -9749,6 +10523,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "tags": [ @@ -9767,6 +10544,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "tags": [ @@ -9789,6 +10569,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -9827,6 +10610,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -9865,6 +10651,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -9906,6 +10695,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "tags": [ @@ -9927,6 +10719,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -9969,6 +10764,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -10008,6 +10806,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -10029,6 +10830,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -10068,6 +10872,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -10103,6 +10910,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -10142,6 +10952,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -10181,6 +10994,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -10222,6 +11038,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -10264,6 +11083,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "tags": [ @@ -10285,6 +11107,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "tags": [ @@ -10303,6 +11128,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -10345,6 +11173,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -10395,6 +11226,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -10446,6 +11280,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -10488,6 +11325,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -10538,6 +11378,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -10588,6 +11431,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -10623,6 +11469,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -10655,6 +11504,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -10687,6 +11539,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "tags": [ @@ -10705,6 +11560,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "tags": [ @@ -10726,6 +11584,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -10767,6 +11628,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -10809,6 +11673,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -10839,6 +11706,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -10880,6 +11750,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -10922,6 +11795,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -10946,6 +11822,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -10996,6 +11875,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -11031,6 +11913,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -11063,6 +11948,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -11113,6 +12001,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -11150,6 +12041,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -11196,6 +12090,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -11228,6 +12125,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -11263,6 +12163,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -11298,6 +12201,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -11349,6 +12255,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -11391,6 +12300,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -11433,6 +12345,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "tags": [ @@ -11454,6 +12369,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -11486,6 +12404,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -11518,6 +12439,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -11550,6 +12474,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -11592,6 +12519,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "tags": [ @@ -11620,6 +12550,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -11652,6 +12585,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -11694,6 +12630,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -11718,6 +12657,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "tags": [ @@ -11739,6 +12681,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -11760,6 +12705,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -11797,6 +12745,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -11825,6 +12776,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -11860,6 +12814,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -11902,6 +12859,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -11934,6 +12894,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -11976,6 +12939,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "tags": [ @@ -11997,6 +12963,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -12047,6 +13016,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -12082,6 +13054,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -12119,6 +13094,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -12154,6 +13132,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -12193,6 +13174,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -12235,6 +13219,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "tags": [ @@ -12260,6 +13247,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -12301,6 +13291,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -12334,6 +13327,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -12367,6 +13363,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -12398,6 +13397,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -12451,6 +13453,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -12495,6 +13500,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -12545,6 +13553,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -12580,6 +13591,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -12612,6 +13626,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -12644,6 +13661,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -12688,6 +13708,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -12738,6 +13761,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -12788,6 +13814,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -12838,6 +13867,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -12888,6 +13920,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -12923,6 +13958,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -12956,6 +13994,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -12994,6 +14035,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -13029,6 +14073,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -13079,6 +14126,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -13103,6 +14153,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -13144,6 +14197,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -13195,6 +14251,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -13245,6 +14304,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -13277,6 +14339,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -13327,6 +14392,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -13377,6 +14445,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -13418,6 +14489,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -13468,6 +14542,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -13503,6 +14580,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -13544,6 +14624,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -13588,6 +14671,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -13624,6 +14710,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -13674,6 +14763,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -13706,6 +14798,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -13738,6 +14833,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "tags": [ @@ -13762,6 +14860,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -13816,6 +14917,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -13866,6 +14970,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -13917,6 +15024,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "tags": [ @@ -13941,6 +15051,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -13991,6 +15104,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -14024,6 +15140,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -14074,6 +15193,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -14124,6 +15246,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -14156,6 +15281,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -14206,6 +15334,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -14256,6 +15387,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -14288,6 +15422,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -14338,6 +15475,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -14388,6 +15528,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -14420,6 +15563,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -14470,6 +15616,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -14505,6 +15654,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -14549,6 +15701,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -14579,6 +15734,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -14629,6 +15787,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -14679,6 +15840,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -14729,6 +15893,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -14767,6 +15934,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -14799,6 +15969,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -14849,6 +16022,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -14890,6 +16066,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -14920,6 +16099,9 @@ "security": [ { "ApiKeyAuth": [] + }, + { + "Timestamp": [] } ], "consumes": [ @@ -23369,7 +24551,7 @@ } }, "securityDefinitions": { - "CustomToken": { + "ApiKeyAuth": { "description": "Custom Token Format, Format: md5('1panel' + 1Panel-Token + 1Panel-Timestamp).\n```\neg:\ncurl -X GET \"http://localhost:4004/api/v1/resource\" \\\n-H \"1Panel-Token: \u003c1panel_token\u003e\" \\\n-H \"1Panel-Timestamp: \u003ccurrent_unix_timestamp\u003e\"\n```\n- `1Panel-Token` is the key for the panel API interface.", "type": "apiKey", "name": "1Panel-Token", diff --git a/cmd/server/docs/swagger.yaml b/cmd/server/docs/swagger.yaml index 423957a6a..4dc37ade2 100644 --- a/cmd/server/docs/swagger.yaml +++ b/cmd/server/docs/swagger.yaml @@ -5654,10 +5654,10 @@ definitions: type: object info: contact: {} - description: Open Source Linux Panel + description: Top-Rated Web-based Linux Server Management Tool license: - name: Apache 2.0 - url: http://www.apache.org/licenses/LICENSE-2.0.html + name: GPL-3.0 + url: https://www.gnu.org/licenses/gpl-3.0.html termsOfService: http://swagger.io/terms/ title: 1Panel version: "1.0" @@ -5679,6 +5679,7 @@ paths: $ref: '#/definitions/response.AppDTO' security: - ApiKeyAuth: [] + - Timestamp: [] summary: Search app by key tags: - App @@ -5689,6 +5690,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Get app list update tags: - App @@ -5719,6 +5721,7 @@ paths: $ref: '#/definitions/response.AppDetailDTO' security: - ApiKeyAuth: [] + - Timestamp: [] summary: Search app detail by appid tags: - App @@ -5739,6 +5742,7 @@ paths: $ref: '#/definitions/response.AppDetailDTO' security: - ApiKeyAuth: [] + - Timestamp: [] summary: Get app detail by id tags: - App @@ -5753,6 +5757,7 @@ paths: $ref: '#/definitions/response.IgnoredApp' security: - ApiKeyAuth: [] + - Timestamp: [] summary: Get Ignore App tags: - App @@ -5774,6 +5779,7 @@ paths: $ref: '#/definitions/model.AppInstall' security: - ApiKeyAuth: [] + - Timestamp: [] summary: Install app tags: - App @@ -5802,6 +5808,7 @@ paths: $ref: '#/definitions/response.AppInstalledCheck' security: - ApiKeyAuth: [] + - Timestamp: [] summary: Check app installed tags: - App @@ -5823,6 +5830,7 @@ paths: type: string security: - ApiKeyAuth: [] + - Timestamp: [] summary: Search default config by key tags: - App @@ -5844,6 +5852,7 @@ paths: type: string security: - ApiKeyAuth: [] + - Timestamp: [] summary: Search app password by key tags: - App @@ -5866,6 +5875,7 @@ paths: type: array security: - ApiKeyAuth: [] + - Timestamp: [] summary: Check before delete tags: - App @@ -5885,6 +5895,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: ignore App Update tags: - App @@ -5908,6 +5919,7 @@ paths: type: array security: - ApiKeyAuth: [] + - Timestamp: [] summary: List app installed tags: - App @@ -5929,6 +5941,7 @@ paths: type: integer security: - ApiKeyAuth: [] + - Timestamp: [] summary: Search app port by key tags: - App @@ -5948,6 +5961,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Operate installed app tags: - App @@ -5994,6 +6008,7 @@ paths: $ref: '#/definitions/response.AppParam' security: - ApiKeyAuth: [] + - Timestamp: [] summary: Search params by appInstallId tags: - App @@ -6013,6 +6028,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Change app params tags: - App @@ -6039,6 +6055,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Change app port tags: - App @@ -6067,6 +6084,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Page app installed tags: - App @@ -6077,6 +6095,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Sync app installed tags: - App @@ -6105,6 +6124,7 @@ paths: type: array security: - ApiKeyAuth: [] + - Timestamp: [] summary: Search app update version by install id tags: - App @@ -6124,6 +6144,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: List apps tags: - App @@ -6146,6 +6167,7 @@ paths: type: array security: - ApiKeyAuth: [] + - Timestamp: [] summary: Search app service by key tags: - App @@ -6156,6 +6178,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Sync app list tags: - App @@ -6230,6 +6253,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: User logout tags: - Auth @@ -6271,6 +6295,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Create container tags: - Container @@ -6298,6 +6323,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Clean container log tags: - Container @@ -6341,6 +6367,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Create compose tags: - Container Compose @@ -6367,6 +6394,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Operate compose tags: - Container Compose @@ -6396,6 +6424,7 @@ paths: $ref: '#/definitions/dto.PageResult' security: - ApiKeyAuth: [] + - Timestamp: [] summary: Page composes tags: - Container Compose @@ -6421,6 +6450,7 @@ paths: responses: {} security: - ApiKeyAuth: [] + - Timestamp: [] summary: Container Compose logs tags: - Container Compose @@ -6440,6 +6470,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Test compose tags: - Container Compose @@ -6466,6 +6497,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Update Container Compose tags: - Container Compose @@ -6487,6 +6519,7 @@ paths: $ref: '#/definitions/dto.DaemonJsonConf' security: - ApiKeyAuth: [] + - Timestamp: [] summary: Load docker daemon.json tags: - Container Docker @@ -6501,6 +6534,7 @@ paths: type: string security: - ApiKeyAuth: [] + - Timestamp: [] summary: Load docker daemon.json tags: - Container Docker @@ -6520,6 +6554,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Update docker daemon.json tags: - Container Docker @@ -6547,6 +6582,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Update docker daemon.json by upload file tags: - Container Docker @@ -6572,6 +6608,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Operate docker tags: - Container Docker @@ -6593,6 +6630,7 @@ paths: type: string security: - ApiKeyAuth: [] + - Timestamp: [] summary: Load docker status tags: - Container Docker @@ -6610,6 +6648,7 @@ paths: responses: {} security: - ApiKeyAuth: [] + - Timestamp: [] summary: Download Container logs tags: - Container @@ -6626,6 +6665,7 @@ paths: type: array security: - ApiKeyAuth: [] + - Timestamp: [] summary: load images options tags: - Container Image @@ -6642,6 +6682,7 @@ paths: type: array security: - ApiKeyAuth: [] + - Timestamp: [] summary: List all images tags: - Container Image @@ -6663,6 +6704,7 @@ paths: type: string security: - ApiKeyAuth: [] + - Timestamp: [] summary: Build image tags: - Container Image @@ -6689,6 +6731,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Load image tags: - Container Image @@ -6717,6 +6760,7 @@ paths: type: string security: - ApiKeyAuth: [] + - Timestamp: [] summary: Pull image tags: - Container Image @@ -6752,6 +6796,7 @@ paths: type: string security: - ApiKeyAuth: [] + - Timestamp: [] summary: Push image tags: - Container Image @@ -6786,6 +6831,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Delete image tags: - Container Image @@ -6812,6 +6858,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Save image tags: - Container Image @@ -6844,6 +6891,7 @@ paths: $ref: '#/definitions/dto.PageResult' security: - ApiKeyAuth: [] + - Timestamp: [] summary: Page images tags: - Container Image @@ -6863,6 +6911,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Tag image tags: - Container Image @@ -6898,6 +6947,7 @@ paths: $ref: '#/definitions/dto.ContainerOperate' security: - ApiKeyAuth: [] + - Timestamp: [] summary: Load container info tags: - Container @@ -6919,6 +6969,7 @@ paths: type: string security: - ApiKeyAuth: [] + - Timestamp: [] summary: Container inspect tags: - Container @@ -6938,6 +6989,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Update docker daemon.json ipv6 option tags: - Container Docker @@ -6956,6 +7008,7 @@ paths: $ref: '#/definitions/dto.ResourceLimit' security: - ApiKeyAuth: [] + - Timestamp: [] summary: Load container limits /containers/list: post: @@ -6968,6 +7021,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: List containers tags: - Container @@ -6982,6 +7036,7 @@ paths: type: array security: - ApiKeyAuth: [] + - Timestamp: [] summary: Load container stats /containers/load/log: post: @@ -6999,6 +7054,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Load container log tags: - Container @@ -7018,6 +7074,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Update docker daemon.json log option tags: - Container Docker @@ -7042,6 +7099,7 @@ paths: type: array security: - ApiKeyAuth: [] + - Timestamp: [] summary: List networks tags: - Container Network @@ -7060,6 +7118,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Create network tags: - Container Network @@ -7086,6 +7145,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Delete network tags: - Container Network @@ -7116,6 +7176,7 @@ paths: $ref: '#/definitions/dto.PageResult' security: - ApiKeyAuth: [] + - Timestamp: [] summary: Page networks tags: - Container Network @@ -7135,6 +7196,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Operate Container tags: - Container @@ -7164,6 +7226,7 @@ paths: $ref: '#/definitions/dto.ContainerPruneReport' security: - ApiKeyAuth: [] + - Timestamp: [] summary: Clean container tags: - Container @@ -7190,6 +7253,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Rename Container tags: - Container @@ -7214,6 +7278,7 @@ paths: type: array security: - ApiKeyAuth: [] + - Timestamp: [] summary: List image repos tags: - Container Image-repo @@ -7234,6 +7299,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Create image repo tags: - Container Image-repo @@ -7262,6 +7328,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Delete image repo tags: - Container Image-repo @@ -7298,6 +7365,7 @@ paths: $ref: '#/definitions/dto.PageResult' security: - ApiKeyAuth: [] + - Timestamp: [] summary: Page image repos tags: - Container Image-repo @@ -7319,6 +7387,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Load repo status tags: - Container Image-repo @@ -7340,6 +7409,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Update image repo tags: - Container Image-repo @@ -7376,6 +7446,7 @@ paths: $ref: '#/definitions/dto.PageResult' security: - ApiKeyAuth: [] + - Timestamp: [] summary: Page containers tags: - Container @@ -7401,6 +7472,7 @@ paths: responses: {} security: - ApiKeyAuth: [] + - Timestamp: [] summary: Container logs tags: - Container @@ -7419,6 +7491,7 @@ paths: $ref: '#/definitions/dto.ContainerStats' security: - ApiKeyAuth: [] + - Timestamp: [] summary: Container stats tags: - Container @@ -7435,6 +7508,7 @@ paths: type: array security: - ApiKeyAuth: [] + - Timestamp: [] summary: List compose templates tags: - Container Compose-template @@ -7453,6 +7527,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Create compose template tags: - Container Compose-template @@ -7479,6 +7554,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Delete compose template tags: - Container Compose-template @@ -7515,6 +7591,7 @@ paths: $ref: '#/definitions/dto.PageResult' security: - ApiKeyAuth: [] + - Timestamp: [] summary: Page compose templates tags: - Container Compose-template @@ -7534,6 +7611,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Update compose template tags: - Container Compose-template @@ -7566,6 +7644,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Update container tags: - Container @@ -7593,6 +7672,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Upgrade container tags: - Container @@ -7619,6 +7699,7 @@ paths: type: array security: - ApiKeyAuth: [] + - Timestamp: [] summary: List Container Volumes tags: - Container Volume @@ -7637,6 +7718,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Create Container Volume tags: - Container Volume @@ -7663,6 +7745,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Delete Container Volume tags: - Container Volume @@ -7693,6 +7776,7 @@ paths: $ref: '#/definitions/dto.PageResult' security: - ApiKeyAuth: [] + - Timestamp: [] summary: Page Container Volumes tags: - Container Volume @@ -7712,6 +7796,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Create cronjob tags: - Cronjob @@ -7739,6 +7824,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Delete cronjob tags: - Cronjob @@ -7771,6 +7857,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Download cronjob records tags: - Cronjob @@ -7803,6 +7890,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Handle cronjob once tags: - Cronjob @@ -7835,6 +7923,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Clean job records tags: - Cronjob @@ -7867,6 +7956,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Load Cronjob record log tags: - Cronjob @@ -7888,6 +7978,7 @@ paths: $ref: '#/definitions/dto.PageResult' security: - ApiKeyAuth: [] + - Timestamp: [] summary: Page cronjobs tags: - Cronjob @@ -7909,6 +8000,7 @@ paths: $ref: '#/definitions/dto.PageResult' security: - ApiKeyAuth: [] + - Timestamp: [] summary: Page job records tags: - Cronjob @@ -7928,6 +8020,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Update cronjob status tags: - Cronjob @@ -7961,6 +8054,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Update cronjob tags: - Cronjob @@ -7999,6 +8093,7 @@ paths: $ref: '#/definitions/dto.DashboardBase' security: - ApiKeyAuth: [] + - Timestamp: [] summary: Load dashboard base info tags: - Dashboard @@ -8013,6 +8108,7 @@ paths: $ref: '#/definitions/dto.OsInfo' security: - ApiKeyAuth: [] + - Timestamp: [] summary: Load os info tags: - Dashboard @@ -8034,6 +8130,7 @@ paths: $ref: '#/definitions/dto.DashboardCurrent' security: - ApiKeyAuth: [] + - Timestamp: [] summary: Load dashboard current info tags: - Dashboard @@ -8052,6 +8149,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: System restart panel tags: - Dashboard @@ -8071,6 +8169,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Create mysql database tags: - Database Mysql @@ -8097,6 +8196,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Bind user of mysql database tags: - Database Mysql @@ -8124,6 +8224,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Change mysql access tags: - Database Mysql @@ -8156,6 +8257,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Change mysql password tags: - Database Mysql @@ -8190,6 +8292,7 @@ paths: $ref: '#/definitions/dto.DBBaseInfo' security: - ApiKeyAuth: [] + - Timestamp: [] summary: Load base info tags: - Database Common @@ -8209,6 +8312,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Load Database conf tags: - Database Common @@ -8228,6 +8332,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Update conf by upload file tags: - Database Common @@ -8255,6 +8360,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Create database tags: - Database @@ -8275,6 +8381,7 @@ paths: $ref: '#/definitions/dto.DatabaseInfo' security: - ApiKeyAuth: [] + - Timestamp: [] summary: Get databases tags: - Database @@ -8294,6 +8401,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Check database tags: - Database @@ -8321,6 +8429,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Delete database tags: - Database @@ -8348,6 +8457,7 @@ paths: type: array security: - ApiKeyAuth: [] + - Timestamp: [] summary: Retrieve database list based on type tags: - Database @@ -8362,6 +8472,7 @@ paths: type: array security: - ApiKeyAuth: [] + - Timestamp: [] summary: List databases tags: - Database @@ -8383,6 +8494,7 @@ paths: $ref: '#/definitions/dto.PageResult' security: - ApiKeyAuth: [] + - Timestamp: [] summary: Page databases tags: - Database @@ -8402,6 +8514,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Update database tags: - Database @@ -8428,6 +8541,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Delete mysql database tags: - Database Mysql @@ -8464,6 +8578,7 @@ paths: type: array security: - ApiKeyAuth: [] + - Timestamp: [] summary: Check before delete mysql database tags: - Database Mysql @@ -8483,6 +8598,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Update mysql database description tags: - Database Mysql @@ -8514,6 +8630,7 @@ paths: responses: {} security: - ApiKeyAuth: [] + - Timestamp: [] summary: Load mysql database from remote tags: - Database Mysql @@ -8537,6 +8654,7 @@ paths: type: array security: - ApiKeyAuth: [] + - Timestamp: [] summary: List mysql database names tags: - Database Mysql @@ -8556,6 +8674,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Create postgresql database tags: - Database Postgresql @@ -8580,6 +8699,7 @@ paths: responses: {} security: - ApiKeyAuth: [] + - Timestamp: [] summary: Load postgresql database from remote tags: - Database Postgresql @@ -8599,6 +8719,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Bind postgresql user tags: - Database Postgresql @@ -8626,6 +8747,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Delete postgresql database tags: - Database Postgresql @@ -8662,6 +8784,7 @@ paths: type: array security: - ApiKeyAuth: [] + - Timestamp: [] summary: Check before delete postgresql database tags: - Database Postgresql @@ -8681,6 +8804,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Update postgresql database description tags: - Database Postgresql @@ -8715,6 +8839,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Change postgresql password tags: - Database Postgresql @@ -8747,6 +8872,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Change postgresql privileges tags: - Database Postgresql @@ -8776,6 +8902,7 @@ paths: $ref: '#/definitions/dto.PageResult' security: - ApiKeyAuth: [] + - Timestamp: [] summary: Page postgresql databases tags: - Database Postgresql @@ -8797,6 +8924,7 @@ paths: $ref: '#/definitions/dto.RedisConf' security: - ApiKeyAuth: [] + - Timestamp: [] summary: Load redis conf tags: - Database Redis @@ -8816,6 +8944,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Update redis conf tags: - Database Redis @@ -8832,6 +8961,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Install redis-cli tags: - Database Redis @@ -8851,6 +8981,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Change redis password tags: - Database Redis @@ -8878,6 +9009,7 @@ paths: $ref: '#/definitions/dto.RedisPersistence' security: - ApiKeyAuth: [] + - Timestamp: [] summary: Load redis persistence conf tags: - Database Redis @@ -8897,6 +9029,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Update redis persistence conf tags: - Database Redis @@ -8924,6 +9057,7 @@ paths: $ref: '#/definitions/dto.RedisStatus' security: - ApiKeyAuth: [] + - Timestamp: [] summary: Load redis status info tags: - Database Redis @@ -8945,6 +9079,7 @@ paths: type: boolean security: - ApiKeyAuth: [] + - Timestamp: [] summary: Load mysql remote access tags: - Database Mysql @@ -8966,6 +9101,7 @@ paths: $ref: '#/definitions/dto.PageResult' security: - ApiKeyAuth: [] + - Timestamp: [] summary: Page mysql databases tags: - Database Mysql @@ -8987,6 +9123,7 @@ paths: $ref: '#/definitions/dto.MysqlStatus' security: - ApiKeyAuth: [] + - Timestamp: [] summary: Load mysql status info tags: - Database Mysql @@ -9008,6 +9145,7 @@ paths: $ref: '#/definitions/dto.MysqlVariables' security: - ApiKeyAuth: [] + - Timestamp: [] summary: Load mysql variables info tags: - Database Mysql @@ -9027,6 +9165,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Update mysql variables tags: - Database Mysql @@ -9056,6 +9195,7 @@ paths: type: array security: - ApiKeyAuth: [] + - Timestamp: [] summary: Check before delete remote database tags: - Database @@ -9075,6 +9215,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Create file tags: - File @@ -9101,6 +9242,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Batch delete file tags: - File @@ -9127,6 +9269,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Batch change file mode and owner tags: - File @@ -9156,6 +9299,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Check file exist tags: - File @@ -9175,6 +9319,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Chunk Download file tags: - File @@ -9198,6 +9343,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Chunk upload file tags: - File @@ -9217,6 +9363,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Compress file tags: - File @@ -9245,6 +9392,7 @@ paths: $ref: '#/definitions/response.FileInfo' security: - ApiKeyAuth: [] + - Timestamp: [] summary: Load file content tags: - File @@ -9271,6 +9419,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Decompress file tags: - File @@ -9297,6 +9446,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Delete file tags: - File @@ -9316,6 +9466,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Download file tags: - File @@ -9335,6 +9486,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Create favorite tags: - File @@ -9361,6 +9513,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Delete favorite tags: - File @@ -9393,6 +9546,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: List favorites tags: - File @@ -9412,6 +9566,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Change file mode tags: - File @@ -9439,6 +9594,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Move file tags: - File @@ -9466,6 +9622,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Change file owner tags: - File @@ -9492,6 +9649,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Read file by Line tags: - File @@ -9504,6 +9662,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Clear Recycle Bin files tags: - File @@ -9529,6 +9688,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Reduce Recycle Bin files tags: - File @@ -9555,6 +9715,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: List Recycle Bin files tags: - File @@ -9567,6 +9728,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Get Recycle Bin status tags: - File @@ -9586,6 +9748,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Change file name tags: - File @@ -9613,6 +9776,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Update file content tags: - File @@ -9641,6 +9805,7 @@ paths: $ref: '#/definitions/response.FileInfo' security: - ApiKeyAuth: [] + - Timestamp: [] summary: List files tags: - File @@ -9660,6 +9825,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Load file size tags: - File @@ -9690,6 +9856,7 @@ paths: type: array security: - ApiKeyAuth: [] + - Timestamp: [] summary: Load files tree tags: - File @@ -9706,6 +9873,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Upload file tags: - File @@ -9736,6 +9904,7 @@ paths: type: array security: - ApiKeyAuth: [] + - Timestamp: [] summary: Page file tags: - File @@ -9755,6 +9924,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Wget file tags: - File @@ -9783,6 +9953,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Create system group tags: - System Group @@ -9810,6 +9981,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Delete system group tags: - System Group @@ -9852,6 +10024,7 @@ paths: type: array security: - ApiKeyAuth: [] + - Timestamp: [] summary: List system groups tags: - System Group @@ -9871,6 +10044,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Update system group tags: - System Group @@ -9898,6 +10072,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Update host SSH setting by file tags: - SSH @@ -9914,6 +10089,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Load host SSH conf tags: - SSH @@ -9933,6 +10109,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Generate host SSH secret tags: - SSH @@ -9960,6 +10137,7 @@ paths: $ref: '#/definitions/dto.SSHLog' security: - ApiKeyAuth: [] + - Timestamp: [] summary: Load host SSH logs tags: - SSH @@ -9977,6 +10155,7 @@ paths: responses: {} security: - ApiKeyAuth: [] + - Timestamp: [] summary: Operate SSH tags: - SSH @@ -9996,6 +10175,7 @@ paths: $ref: '#/definitions/dto.SSHInfo' security: - ApiKeyAuth: [] + - Timestamp: [] summary: Load host SSH setting info tags: - SSH @@ -10015,6 +10195,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Load host SSH secret tags: - SSH @@ -10034,6 +10215,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Update host SSH setting tags: - SSH @@ -10061,6 +10243,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Get tool status tags: - Host tool @@ -10080,6 +10263,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Get tool config tags: - Host tool @@ -10106,6 +10290,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Create Host tool Config tags: - Host tool @@ -10132,6 +10317,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Get tool logs tags: - Host tool @@ -10151,6 +10337,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Operate tool tags: - Host tool @@ -10171,6 +10358,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Get Supervisor process config tags: - Host tool @@ -10189,6 +10377,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Create Supervisor process tags: - Host tool @@ -10215,6 +10404,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Get Supervisor process config tags: - Host tool @@ -10241,6 +10431,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Create host tags: - Host @@ -10261,6 +10452,7 @@ paths: $ref: '#/definitions/dto.CommandInfo' security: - ApiKeyAuth: [] + - Timestamp: [] summary: List commands tags: - Command @@ -10279,6 +10471,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Create command tags: - Command @@ -10306,6 +10499,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Delete command tags: - Command @@ -10331,6 +10525,7 @@ paths: type: Array security: - ApiKeyAuth: [] + - Timestamp: [] summary: List redis commands tags: - Redis Command @@ -10349,6 +10544,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Save redis command tags: - Redis Command @@ -10376,6 +10572,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Delete redis command tags: - Redis Command @@ -10410,6 +10607,7 @@ paths: $ref: '#/definitions/dto.PageResult' security: - ApiKeyAuth: [] + - Timestamp: [] summary: Page redis commands tags: - Redis Command @@ -10431,6 +10629,7 @@ paths: $ref: '#/definitions/dto.PageResult' security: - ApiKeyAuth: [] + - Timestamp: [] summary: Page commands tags: - Command @@ -10445,6 +10644,7 @@ paths: type: Array security: - ApiKeyAuth: [] + - Timestamp: [] summary: Tree commands tags: - Command @@ -10464,6 +10664,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Update command tags: - Command @@ -10490,6 +10691,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Delete host tags: - Host @@ -10515,6 +10717,7 @@ paths: $ref: '#/definitions/dto.FirewallBaseInfo' security: - ApiKeyAuth: [] + - Timestamp: [] summary: Load firewall base info tags: - Firewall @@ -10534,6 +10737,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Batch create group tags: - Firewall @@ -10553,6 +10757,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Update firewall port group tags: - Firewall @@ -10579,6 +10784,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Create firewall group tags: - Firewall @@ -10608,6 +10814,7 @@ paths: $ref: '#/definitions/dto.PageResult' security: - ApiKeyAuth: [] + - Timestamp: [] summary: Page firewall status tags: - Firewall @@ -10634,6 +10841,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Create firewall port group tags: - Firewall @@ -10663,6 +10871,7 @@ paths: $ref: '#/definitions/dto.PageResult' security: - ApiKeyAuth: [] + - Timestamp: [] summary: Page firewall rules tags: - Firewall @@ -10682,6 +10891,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Uodate address group tags: - Firewall @@ -10701,6 +10911,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Update rule description tags: - Firewall @@ -10720,6 +10931,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Update firewall group tags: - Firewall @@ -10730,6 +10942,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Clean monitor datas tags: - Monitor @@ -10753,6 +10966,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Load monitor datas tags: - Monitor @@ -10776,6 +10990,7 @@ paths: type: array security: - ApiKeyAuth: [] + - Timestamp: [] summary: Page host tags: - Host @@ -10796,6 +11011,7 @@ paths: type: boolean security: - ApiKeyAuth: [] + - Timestamp: [] summary: Test host conn by host id tags: - Host @@ -10815,6 +11031,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Test host conn by info tags: - Host @@ -10838,6 +11055,7 @@ paths: type: array security: - ApiKeyAuth: [] + - Timestamp: [] summary: Load host tree tags: - Host @@ -10857,6 +11075,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Update host tags: - Host @@ -10884,6 +11103,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Update host group tags: - Host @@ -10919,6 +11139,7 @@ paths: $ref: '#/definitions/dto.PageResult' security: - ApiKeyAuth: [] + - Timestamp: [] summary: Clean operation logs tags: - Logs @@ -10947,6 +11168,7 @@ paths: $ref: '#/definitions/dto.PageResult' security: - ApiKeyAuth: [] + - Timestamp: [] summary: Page login logs tags: - Logs @@ -10968,6 +11190,7 @@ paths: $ref: '#/definitions/dto.PageResult' security: - ApiKeyAuth: [] + - Timestamp: [] summary: Page operation logs tags: - Logs @@ -10978,6 +11201,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Load system logs tags: - Logs @@ -10988,6 +11212,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Load system log files tags: - Logs @@ -11000,6 +11225,7 @@ paths: $ref: '#/definitions/response.FileInfo' security: - ApiKeyAuth: [] + - Timestamp: [] summary: Load OpenResty conf tags: - OpenResty @@ -11010,6 +11236,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Clear OpenResty proxy cache tags: - OpenResty @@ -11035,6 +11262,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Update OpenResty conf by upload file tags: - OpenResty @@ -11064,6 +11292,7 @@ paths: type: array security: - ApiKeyAuth: [] + - Timestamp: [] summary: Load partial OpenResty conf tags: - OpenResty @@ -11076,6 +11305,7 @@ paths: $ref: '#/definitions/response.NginxStatus' security: - ApiKeyAuth: [] + - Timestamp: [] summary: Load OpenResty status info tags: - OpenResty @@ -11095,6 +11325,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Update OpenResty conf tags: - OpenResty @@ -11125,6 +11356,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Stop Process tags: - Process @@ -11151,6 +11383,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Create runtime tags: - Runtime @@ -11176,6 +11409,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Get runtime tags: - Runtime @@ -11195,6 +11429,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Delete runtime tags: - Website @@ -11221,6 +11456,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Get Node modules tags: - Runtime @@ -11240,6 +11476,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Operate Node modules tags: - Runtime @@ -11259,6 +11496,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Get Node package scripts tags: - Runtime @@ -11278,6 +11516,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Operate runtime tags: - Runtime @@ -11304,6 +11543,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Create Extensions tags: - PHP Extensions @@ -11323,6 +11563,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Delete Extensions tags: - PHP Extensions @@ -11346,6 +11587,7 @@ paths: type: array security: - ApiKeyAuth: [] + - Timestamp: [] summary: Page Extensions tags: - PHP Extensions @@ -11365,6 +11607,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Update Extensions tags: - PHP Extensions @@ -11384,6 +11627,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: List runtimes tags: - Runtime @@ -11396,6 +11640,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Sync runtime status tags: - Runtime @@ -11415,6 +11660,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Update runtime tags: - Runtime @@ -11434,6 +11680,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Generate api key tags: - System Setting @@ -11459,6 +11706,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Update api config tags: - System Setting @@ -11485,6 +11733,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Create backup account tags: - Backup Account @@ -11511,6 +11760,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Backup system data tags: - Backup Account @@ -11539,6 +11789,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Delete backup account tags: - Backup Account @@ -11566,6 +11817,7 @@ paths: $ref: '#/definitions/dto.OneDriveInfo' security: - ApiKeyAuth: [] + - Timestamp: [] summary: Load OneDrive info tags: - Backup Account @@ -11585,6 +11837,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Delete backup record tags: - Backup Account @@ -11617,6 +11870,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Download backup record tags: - Backup Account @@ -11644,6 +11898,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Page backup records tags: - Backup Account @@ -11663,6 +11918,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Page backup records by cronjob tags: - Backup Account @@ -11682,6 +11938,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Recover system data tags: - Backup Account @@ -11711,6 +11968,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Recover system data by upload tags: - Backup Account @@ -11731,6 +11989,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Refresh OneDrive token tags: - Backup Account @@ -11745,6 +12004,7 @@ paths: type: array security: - ApiKeyAuth: [] + - Timestamp: [] summary: List backup accounts tags: - Backup Account @@ -11767,6 +12027,7 @@ paths: type: array security: - ApiKeyAuth: [] + - Timestamp: [] summary: List buckets tags: - Backup Account @@ -11790,6 +12051,7 @@ paths: type: array security: - ApiKeyAuth: [] + - Timestamp: [] summary: List files from backup accounts tags: - Backup Account @@ -11809,6 +12071,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Update backup account tags: - Backup Account @@ -11828,6 +12091,7 @@ paths: type: string security: - ApiKeyAuth: [] + - Timestamp: [] summary: Load local base dir tags: - System Setting @@ -11847,6 +12111,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Update system bind info tags: - System Setting @@ -11874,6 +12139,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Reset system password expired tags: - System Setting @@ -11892,6 +12158,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Load system address tags: - System Setting @@ -11911,6 +12178,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Update system setting tags: - System Setting @@ -11938,6 +12206,7 @@ paths: $ref: '#/definitions/mfa.Otp' security: - ApiKeyAuth: [] + - Timestamp: [] summary: Load mfa info tags: - System Setting @@ -11957,6 +12226,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Bind mfa tags: - System Setting @@ -11982,6 +12252,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Update system password tags: - System Setting @@ -12007,6 +12278,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Update system port tags: - System Setting @@ -12033,6 +12305,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Update proxy setting tags: - System Setting @@ -12053,6 +12326,7 @@ paths: $ref: '#/definitions/dto.SettingInfo' security: - ApiKeyAuth: [] + - Timestamp: [] summary: Load system setting info tags: - System Setting @@ -12063,6 +12337,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Load system available status tags: - System Setting @@ -12082,6 +12357,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Create system snapshot tags: - System Setting @@ -12109,6 +12385,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Delete system backup tags: - System Setting @@ -12141,6 +12418,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Update snapshot description tags: - System Setting @@ -12174,6 +12452,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Import system snapshot tags: - System Setting @@ -12201,6 +12480,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Recover system backup tags: - System Setting @@ -12233,6 +12513,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Rollback system backup tags: - System Setting @@ -12267,6 +12548,7 @@ paths: $ref: '#/definitions/dto.PageResult' security: - ApiKeyAuth: [] + - Timestamp: [] summary: Page system snapshot tags: - System Setting @@ -12286,6 +12568,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Load system snapshot size tags: - System Setting @@ -12305,6 +12588,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Load Snapshot status tags: - System Setting @@ -12315,6 +12599,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Download system cert tags: - System Setting @@ -12327,6 +12612,7 @@ paths: $ref: '#/definitions/dto.SettingInfo' security: - ApiKeyAuth: [] + - Timestamp: [] summary: Load system cert info tags: - System Setting @@ -12346,6 +12632,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Update system ssl tags: - System Setting @@ -12372,6 +12659,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Update system setting tags: - System Setting @@ -12399,6 +12687,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Load release notes by version tags: - System Setting @@ -12417,6 +12706,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Upgrade tags: - System Setting @@ -12443,6 +12733,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Create clam tags: - Clam @@ -12465,6 +12756,7 @@ paths: $ref: '#/definitions/dto.ClamBaseInfo' security: - ApiKeyAuth: [] + - Timestamp: [] summary: Load clam base info tags: - Clam @@ -12484,6 +12776,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Delete clam tags: - Clam @@ -12518,6 +12811,7 @@ paths: $ref: '#/definitions/dto.PageResult' security: - ApiKeyAuth: [] + - Timestamp: [] summary: Load clam file tags: - Clam @@ -12537,6 +12831,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Update clam file tags: - Clam @@ -12556,6 +12851,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Handle clam scan tags: - Clam @@ -12586,6 +12882,7 @@ paths: responses: {} security: - ApiKeyAuth: [] + - Timestamp: [] summary: Operate Clam tags: - Clam @@ -12610,6 +12907,7 @@ paths: responses: {} security: - ApiKeyAuth: [] + - Timestamp: [] summary: Clean clam record tags: - Clam @@ -12642,6 +12940,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Load clam record detail tags: - Clam @@ -12663,6 +12962,7 @@ paths: $ref: '#/definitions/dto.PageResult' security: - ApiKeyAuth: [] + - Timestamp: [] summary: Page clam record tags: - Clam @@ -12684,6 +12984,7 @@ paths: $ref: '#/definitions/dto.PageResult' security: - ApiKeyAuth: [] + - Timestamp: [] summary: Page clam tags: - Clam @@ -12703,6 +13004,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Update clam status tags: - Clam @@ -12736,6 +13038,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Update clam tags: - Clam @@ -12765,6 +13068,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Clean system tags: - Device @@ -12783,6 +13087,7 @@ paths: $ref: '#/definitions/dto.DeviceBaseInfo' security: - ApiKeyAuth: [] + - Timestamp: [] summary: Load device base info tags: - Device @@ -12802,6 +13107,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Check device DNS conf tags: - Device @@ -12821,6 +13127,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: load conf tags: - Device @@ -12840,6 +13147,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Update device conf by file tags: - Device @@ -12859,6 +13167,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Update device tags: - Device @@ -12877,6 +13186,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Update device hosts tags: - Device @@ -12904,6 +13214,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Update device passwd tags: - Device @@ -12923,6 +13234,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Update device swap tags: - Device @@ -12945,6 +13257,7 @@ paths: type: Array security: - ApiKeyAuth: [] + - Timestamp: [] summary: list time zone options tags: - Device @@ -12957,6 +13270,7 @@ paths: $ref: '#/definitions/dto.Fail2BanBaseInfo' security: - ApiKeyAuth: [] + - Timestamp: [] summary: Load fail2ban base info tags: - Fail2ban @@ -12969,6 +13283,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Load fail2ban conf tags: - Fail2ban @@ -12986,6 +13301,7 @@ paths: responses: {} security: - ApiKeyAuth: [] + - Timestamp: [] summary: Operate fail2ban tags: - Fail2ban @@ -13010,6 +13326,7 @@ paths: responses: {} security: - ApiKeyAuth: [] + - Timestamp: [] summary: Operate sshd of fail2ban tags: - Fail2ban @@ -13031,6 +13348,7 @@ paths: type: Array security: - ApiKeyAuth: [] + - Timestamp: [] summary: Page fail2ban ip list tags: - Fail2ban @@ -13050,6 +13368,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Update fail2ban conf tags: - Fail2ban @@ -13077,6 +13396,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Update fail2ban conf by file tags: - Fail2ban @@ -13096,6 +13416,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Create FTP user tags: - FTP @@ -13116,6 +13437,7 @@ paths: $ref: '#/definitions/dto.FtpBaseInfo' security: - ApiKeyAuth: [] + - Timestamp: [] summary: Load FTP base info tags: - FTP @@ -13135,6 +13457,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Delete FTP user tags: - FTP @@ -13169,6 +13492,7 @@ paths: $ref: '#/definitions/dto.PageResult' security: - ApiKeyAuth: [] + - Timestamp: [] summary: Load FTP operation log tags: - FTP @@ -13186,6 +13510,7 @@ paths: responses: {} security: - ApiKeyAuth: [] + - Timestamp: [] summary: Operate FTP tags: - FTP @@ -13214,6 +13539,7 @@ paths: $ref: '#/definitions/dto.PageResult' security: - ApiKeyAuth: [] + - Timestamp: [] summary: Page FTP user tags: - FTP @@ -13233,6 +13559,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Sync FTP user tags: - FTP @@ -13258,6 +13585,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Update FTP user tags: - FTP @@ -13276,6 +13604,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Scan system tags: - Device @@ -13301,6 +13630,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Create website tags: - Website @@ -13328,6 +13658,7 @@ paths: $ref: '#/definitions/response.WebsiteDTO' security: - ApiKeyAuth: [] + - Timestamp: [] summary: Search website by id tags: - Website @@ -13348,6 +13679,7 @@ paths: $ref: '#/definitions/response.FileInfo' security: - ApiKeyAuth: [] + - Timestamp: [] summary: Search website nginx by id tags: - Website Nginx @@ -13368,6 +13700,7 @@ paths: $ref: '#/definitions/response.WebsiteHTTPS' security: - ApiKeyAuth: [] + - Timestamp: [] summary: Load https conf tags: - Website HTTPS @@ -13388,6 +13721,7 @@ paths: $ref: '#/definitions/response.WebsiteHTTPS' security: - ApiKeyAuth: [] + - Timestamp: [] summary: Update https conf tags: - Website HTTPS @@ -13422,6 +13756,7 @@ paths: $ref: '#/definitions/response.WebsiteAcmeAccountDTO' security: - ApiKeyAuth: [] + - Timestamp: [] summary: Create website acme account tags: - Website Acme @@ -13448,6 +13783,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Delete website acme account tags: - Website Acme @@ -13482,6 +13818,7 @@ paths: $ref: '#/definitions/dto.PageResult' security: - ApiKeyAuth: [] + - Timestamp: [] summary: Page website acme accounts tags: - Website Acme @@ -13501,6 +13838,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Get AuthBasic conf tags: - Website @@ -13520,6 +13858,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Get AuthBasic conf tags: - Website @@ -13541,6 +13880,7 @@ paths: $ref: '#/definitions/request.WebsiteCACreate' security: - ApiKeyAuth: [] + - Timestamp: [] summary: Create website ca tags: - Website CA @@ -13568,6 +13908,7 @@ paths: $ref: '#/definitions/response.WebsiteCADTO' security: - ApiKeyAuth: [] + - Timestamp: [] summary: Get website ca tags: - Website CA @@ -13587,6 +13928,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Delete website ca tags: - Website CA @@ -13619,6 +13961,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Download CA file tags: - Website CA @@ -13651,6 +13994,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Obtain SSL tags: - Website CA @@ -13683,6 +14027,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Renew Obtain SSL tags: - Website CA @@ -13717,6 +14062,7 @@ paths: $ref: '#/definitions/dto.PageResult' security: - ApiKeyAuth: [] + - Timestamp: [] summary: Page website ca tags: - Website CA @@ -13740,6 +14086,7 @@ paths: type: array security: - ApiKeyAuth: [] + - Timestamp: [] summary: Check before create website tags: - Website @@ -13761,6 +14108,7 @@ paths: $ref: '#/definitions/response.WebsiteNginxConfig' security: - ApiKeyAuth: [] + - Timestamp: [] summary: Load nginx conf tags: - Website Nginx @@ -13780,6 +14128,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Update nginx conf tags: - Website Nginx @@ -13807,6 +14156,7 @@ paths: $ref: '#/definitions/response.FileInfo' security: - ApiKeyAuth: [] + - Timestamp: [] summary: Get default html tags: - Website @@ -13826,6 +14176,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Update default html tags: - Website @@ -13852,6 +14203,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Change default server tags: - Website @@ -13885,6 +14237,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Delete website tags: - Website @@ -13917,6 +14270,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Get website dir tags: - Website @@ -13936,6 +14290,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Update Site Dir permission tags: - Website @@ -13968,6 +14323,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Update Site Dir tags: - Website @@ -14000,6 +14356,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Create website dns account tags: - Website DNS @@ -14026,6 +14383,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Delete website dns account tags: - Website DNS @@ -14060,6 +14418,7 @@ paths: $ref: '#/definitions/dto.PageResult' security: - ApiKeyAuth: [] + - Timestamp: [] summary: Page website dns accounts tags: - Website DNS @@ -14079,6 +14438,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Update website dns account tags: - Website DNS @@ -14107,6 +14467,7 @@ paths: $ref: '#/definitions/model.WebsiteDomain' security: - ApiKeyAuth: [] + - Timestamp: [] summary: Create website domain tags: - Website Domain @@ -14136,6 +14497,7 @@ paths: type: array security: - ApiKeyAuth: [] + - Timestamp: [] summary: Search website domains by websiteId tags: - Website Domain @@ -14155,6 +14517,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Delete website domain tags: - Website Domain @@ -14187,6 +14550,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Get AntiLeech conf tags: - Website @@ -14206,6 +14570,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Update AntiLeech conf tags: - Website @@ -14220,6 +14585,7 @@ paths: type: array security: - ApiKeyAuth: [] + - Timestamp: [] summary: List websites tags: - Website @@ -14241,6 +14607,7 @@ paths: $ref: '#/definitions/response.WebsiteLog' security: - ApiKeyAuth: [] + - Timestamp: [] summary: Operate website log tags: - Website @@ -14274,6 +14641,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Update website nginx conf tags: - Website Nginx @@ -14306,6 +14674,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Operate website tags: - Website @@ -14334,6 +14703,7 @@ paths: type: array security: - ApiKeyAuth: [] + - Timestamp: [] summary: List website names tags: - Website @@ -14353,6 +14723,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Update website php conf tags: - Website PHP @@ -14386,6 +14757,7 @@ paths: $ref: '#/definitions/response.PHPConfig' security: - ApiKeyAuth: [] + - Timestamp: [] summary: Load website php conf tags: - Website @@ -14405,6 +14777,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Update php conf tags: - Website PHP @@ -14437,6 +14810,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Update php version tags: - Website PHP @@ -14469,6 +14843,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Get proxy conf tags: - Website @@ -14488,6 +14863,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Update proxy conf tags: - Website @@ -14520,6 +14896,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Update proxy file tags: - Website @@ -14552,6 +14929,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Get redirect conf tags: - Website @@ -14571,6 +14949,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Update redirect file tags: - Website @@ -14603,6 +14982,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Update redirect conf tags: - Website @@ -14635,6 +15015,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Get rewrite conf tags: - Website @@ -14654,6 +15035,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Update rewrite conf tags: - Website @@ -14688,6 +15070,7 @@ paths: $ref: '#/definitions/dto.PageResult' security: - ApiKeyAuth: [] + - Timestamp: [] summary: Page websites tags: - Website @@ -14709,6 +15092,7 @@ paths: $ref: '#/definitions/request.WebsiteSSLCreate' security: - ApiKeyAuth: [] + - Timestamp: [] summary: Create website ssl tags: - Website SSL @@ -14734,6 +15118,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Search website ssl by id tags: - Website SSL @@ -14753,6 +15138,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Delete website ssl tags: - Website SSL @@ -14785,6 +15171,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Download SSL file tags: - Website SSL @@ -14817,6 +15204,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Apply ssl tags: - Website SSL @@ -14853,6 +15241,7 @@ paths: type: array security: - ApiKeyAuth: [] + - Timestamp: [] summary: Resolve website ssl tags: - Website SSL @@ -14872,6 +15261,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Page website ssl tags: - Website SSL @@ -14891,6 +15281,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Update Website ssl tags: - Website SSL @@ -14923,6 +15314,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Upload Website ssl tags: - Website SSL @@ -14948,6 +15340,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Search website ssl by website id tags: - Website SSL @@ -14967,6 +15360,7 @@ paths: description: OK security: - ApiKeyAuth: [] + - Timestamp: [] summary: Update website tags: - Website @@ -14981,7 +15375,7 @@ schemes: - http - https securityDefinitions: - CustomToken: + ApiKeyAuth: description: |- Custom Token Format, Format: md5('1panel' + 1Panel-Token + 1Panel-Timestamp). ``` diff --git a/cmd/server/main.go b/cmd/server/main.go index 7a678fd7c..aa35dff9c 100644 --- a/cmd/server/main.go +++ b/cmd/server/main.go @@ -18,7 +18,7 @@ import ( // @BasePath /api/v1 // @schemes http https -// @securityDefinitions.apikey CustomToken +// @securityDefinitions.apikey ApiKeyAuth // @description Custom Token Format, Format: md5('1panel' + 1Panel-Token + 1Panel-Timestamp). // @description ``` // @description eg: @@ -30,6 +30,7 @@ import ( // @type apiKey // @in Header // @name 1Panel-Token + // @securityDefinitions.apikey Timestamp // @type apiKey // @in header