Showing preview only (5,310K chars total). Download the full file or copy to clipboard to get everything.
Repository: certimate-go/certimate
Branch: main
Commit: 30552d3313d1
Files: 1663
Total size: 4.7 MB
Directory structure:
gitextract_ubpd6109/
├── .dockerignore
├── .editorconfig
├── .gitattributes
├── .github/
│ ├── FUNDING.yml
│ ├── ISSUE_TEMPLATE/
│ │ ├── 1-bug_report.yml
│ │ ├── 2-feature_request.yml
│ │ ├── 3-questions.yml
│ │ └── config.yml
│ ├── PULL_REQUEST_TEMPLATE.md
│ └── workflows/
│ ├── push_image.yml
│ ├── push_image_next.yml
│ ├── release.yml
│ ├── release_sync_gitee.py
│ └── release_sync_gitee.yml
├── .gitignore
├── .goreleaser.yml
├── .vscode/
│ ├── extensions.json
│ ├── settings.json
│ └── settings.tailwind.json
├── CHANGELOG.md
├── CONTRIBUTING.md
├── CONTRIBUTING_zh.md
├── Dockerfile
├── Dockerfile.gh
├── LICENSE
├── Makefile
├── README.md
├── README_zh.md
├── cmd/
│ ├── intercmd.go
│ ├── serve_nonwindows.go
│ ├── serve_windows.go
│ ├── winsc_nonwindows.go
│ └── winsc_windows.go
├── docker/
│ └── docker-compose.yml
├── go.mod
├── go.sum
├── internal/
│ ├── app/
│ │ ├── app.go
│ │ ├── scheduler.go
│ │ └── singleton.go
│ ├── certacme/
│ │ ├── account.go
│ │ ├── certifiers/
│ │ │ ├── registry.go
│ │ │ ├── sp_35cn.go
│ │ │ ├── sp_51dnscom.go
│ │ │ ├── sp_acmedns.go
│ │ │ ├── sp_acmehttpreq.go
│ │ │ ├── sp_akamai_edgedns.go
│ │ │ ├── sp_aliyun_dns.go
│ │ │ ├── sp_aliyun_esa.go
│ │ │ ├── sp_arvancloud.go
│ │ │ ├── sp_aws_route53.go
│ │ │ ├── sp_azure_dns.go
│ │ │ ├── sp_baiducloud_dns.go
│ │ │ ├── sp_bookmyname.go
│ │ │ ├── sp_bunny.go
│ │ │ ├── sp_cloudflare.go
│ │ │ ├── sp_cloudns.go
│ │ │ ├── sp_cmcccloud_dns.go
│ │ │ ├── sp_constellix.go
│ │ │ ├── sp_cpanel.go
│ │ │ ├── sp_ctcccloud_smartdns.go
│ │ │ ├── sp_desec.go
│ │ │ ├── sp_digitalocean.go
│ │ │ ├── sp_dnsexit.go
│ │ │ ├── sp_dnsla.go
│ │ │ ├── sp_dnsmadeeasy.go
│ │ │ ├── sp_duckdns.go
│ │ │ ├── sp_dynu.go
│ │ │ ├── sp_dynv6.go
│ │ │ ├── sp_gandinet.go
│ │ │ ├── sp_gcore.go
│ │ │ ├── sp_gname.go
│ │ │ ├── sp_godaddy.go
│ │ │ ├── sp_hetzner.go
│ │ │ ├── sp_hostingde.go
│ │ │ ├── sp_hostinger.go
│ │ │ ├── sp_huaweicloud_dns.go
│ │ │ ├── sp_infomaniak.go
│ │ │ ├── sp_ionos.go
│ │ │ ├── sp_jdcloud_dns.go
│ │ │ ├── sp_linode.go
│ │ │ ├── sp_local.go
│ │ │ ├── sp_namecheap.go
│ │ │ ├── sp_namedotcom.go
│ │ │ ├── sp_namesilo.go
│ │ │ ├── sp_netcup.go
│ │ │ ├── sp_netlify.go
│ │ │ ├── sp_ns1.go
│ │ │ ├── sp_ovhcloud.go
│ │ │ ├── sp_porkbun.go
│ │ │ ├── sp_powerdns.go
│ │ │ ├── sp_qingcloud_dns.go
│ │ │ ├── sp_rainyun.go
│ │ │ ├── sp_rfc2136.go
│ │ │ ├── sp_s3.go
│ │ │ ├── sp_spaceship.go
│ │ │ ├── sp_ssh.go
│ │ │ ├── sp_technitiumdns.go
│ │ │ ├── sp_tencentcloud_dns.go
│ │ │ ├── sp_tencentcloud_eo.go
│ │ │ ├── sp_todaynic.go
│ │ │ ├── sp_ucloud_udnr.go
│ │ │ ├── sp_vercel.go
│ │ │ ├── sp_volcengine_dns.go
│ │ │ ├── sp_vultr.go
│ │ │ ├── sp_westcn.go
│ │ │ └── sp_xinnet.go
│ │ ├── client.go
│ │ ├── client_obtain.go
│ │ ├── client_revoke.go
│ │ ├── config.go
│ │ └── logging.go
│ ├── certificate/
│ │ ├── service.go
│ │ └── service_deps.go
│ ├── certmgmt/
│ │ ├── client.go
│ │ ├── client_deploy.go
│ │ └── deployers/
│ │ ├── registry.go
│ │ ├── sp_1panel.go
│ │ ├── sp_1panel_console.go
│ │ ├── sp_aliyun_alb.go
│ │ ├── sp_aliyun_apigw.go
│ │ ├── sp_aliyun_cas.go
│ │ ├── sp_aliyun_casdeploy.go
│ │ ├── sp_aliyun_cdn.go
│ │ ├── sp_aliyun_clb.go
│ │ ├── sp_aliyun_dcdn.go
│ │ ├── sp_aliyun_ddospro.go
│ │ ├── sp_aliyun_esa.go
│ │ ├── sp_aliyun_esasaas.go
│ │ ├── sp_aliyun_fc.go
│ │ ├── sp_aliyun_ga.go
│ │ ├── sp_aliyun_live.go
│ │ ├── sp_aliyun_nlb.go
│ │ ├── sp_aliyun_oss.go
│ │ ├── sp_aliyun_vod.go
│ │ ├── sp_aliyun_waf.go
│ │ ├── sp_apisix.go
│ │ ├── sp_aws_acm.go
│ │ ├── sp_aws_cloudfront.go
│ │ ├── sp_aws_iam.go
│ │ ├── sp_azure_keyvault.go
│ │ ├── sp_baiducloud_appblb.go
│ │ ├── sp_baiducloud_blb.go
│ │ ├── sp_baiducloud_cdn.go
│ │ ├── sp_baiducloud_cert.go
│ │ ├── sp_baishan_cdn.go
│ │ ├── sp_baotapanel.go
│ │ ├── sp_baotapanel_console.go
│ │ ├── sp_baotapanelgo.go
│ │ ├── sp_baotapanelgo_console.go
│ │ ├── sp_baotawaf.go
│ │ ├── sp_baotawaf_console.go
│ │ ├── sp_bunny_cdn.go
│ │ ├── sp_byteplus_cdn.go
│ │ ├── sp_cachefly.go
│ │ ├── sp_cdnfly.go
│ │ ├── sp_cpanel.go
│ │ ├── sp_ctcccloud_ao.go
│ │ ├── sp_ctcccloud_cdn.go
│ │ ├── sp_ctcccloud_cms.go
│ │ ├── sp_ctcccloud_elb.go
│ │ ├── sp_ctcccloud_faas.go
│ │ ├── sp_ctcccloud_icdn.go
│ │ ├── sp_ctcccloud_lvdn.go
│ │ ├── sp_dogecloud_cdn.go
│ │ ├── sp_dokploy.go
│ │ ├── sp_flexcdn.go
│ │ ├── sp_flyio.go
│ │ ├── sp_gcore_cdn.go
│ │ ├── sp_goedge.go
│ │ ├── sp_huaweicloud_cdn.go
│ │ ├── sp_huaweicloud_elb.go
│ │ ├── sp_huaweicloud_obs.go
│ │ ├── sp_huaweicloud_scm.go
│ │ ├── sp_huaweicloud_waf.go
│ │ ├── sp_jdcloud_alb.go
│ │ ├── sp_jdcloud_cdn.go
│ │ ├── sp_jdcloud_live.go
│ │ ├── sp_jdcloud_vod.go
│ │ ├── sp_kong.go
│ │ ├── sp_ksyun_cdn.go
│ │ ├── sp_kubernetes_secret.go
│ │ ├── sp_lecdn.go
│ │ ├── sp_local.go
│ │ ├── sp_mohua_mvh.go
│ │ ├── sp_netlify.go
│ │ ├── sp_nginxproxymanager.go
│ │ ├── sp_proxmoxve.go
│ │ ├── sp_qiniu_cdn.go
│ │ ├── sp_qiniu_kodo.go
│ │ ├── sp_qiniu_pili.go
│ │ ├── sp_rainyun_rcdn.go
│ │ ├── sp_rainyun_sslcenter.go
│ │ ├── sp_ratpanel.go
│ │ ├── sp_ratpanel_console.go
│ │ ├── sp_s3.go
│ │ ├── sp_safeline.go
│ │ ├── sp_ssh.go
│ │ ├── sp_synologydsm.go
│ │ ├── sp_tencentcloud_cdn.go
│ │ ├── sp_tencentcloud_clb.go
│ │ ├── sp_tencentcloud_cos.go
│ │ ├── sp_tencentcloud_css.go
│ │ ├── sp_tencentcloud_ecdn.go
│ │ ├── sp_tencentcloud_eo.go
│ │ ├── sp_tencentcloud_gaap.go
│ │ ├── sp_tencentcloud_scf.go
│ │ ├── sp_tencentcloud_ssl.go
│ │ ├── sp_tencentcloud_ssldeploy.go
│ │ ├── sp_tencentcloud_sslupdate.go
│ │ ├── sp_tencentcloud_vod.go
│ │ ├── sp_tencentcloud_waf.go
│ │ ├── sp_ucloud_ualb.go
│ │ ├── sp_ucloud_ucdn.go
│ │ ├── sp_ucloud_uclb.go
│ │ ├── sp_ucloud_uewaf.go
│ │ ├── sp_ucloud_upathx.go
│ │ ├── sp_ucloud_us3.go
│ │ ├── sp_unicloud_webhost.go
│ │ ├── sp_upyun_cdn.go
│ │ ├── sp_upyun_file.go
│ │ ├── sp_volcengine_alb.go
│ │ ├── sp_volcengine_cdn.go
│ │ ├── sp_volcengine_certcenter.go
│ │ ├── sp_volcengine_clb.go
│ │ ├── sp_volcengine_dcdn.go
│ │ ├── sp_volcengine_imagex.go
│ │ ├── sp_volcengine_live.go
│ │ ├── sp_volcengine_tos.go
│ │ ├── sp_volcengine_vod.go
│ │ ├── sp_volcengine_waf.go
│ │ ├── sp_wangsu_cdn.go
│ │ ├── sp_wangsu_cdnpro.go
│ │ ├── sp_wangsu_certificate.go
│ │ └── sp_webhook.go
│ ├── domain/
│ │ ├── access.go
│ │ ├── acme_account.go
│ │ ├── certificate.go
│ │ ├── dtos/
│ │ │ ├── certificate.go
│ │ │ ├── notify.go
│ │ │ └── workflow.go
│ │ ├── error.go
│ │ ├── expr/
│ │ │ ├── expr.go
│ │ │ └── expr_test.go
│ │ ├── meta.go
│ │ ├── provider.go
│ │ ├── settings.go
│ │ ├── statistics.go
│ │ ├── workflow.go
│ │ ├── workflow_log.go
│ │ ├── workflow_output.go
│ │ └── workflow_run.go
│ ├── notify/
│ │ ├── client.go
│ │ ├── client_notifier.go
│ │ ├── notifiers/
│ │ │ ├── registry.go
│ │ │ ├── sp_dingtalkbot.go
│ │ │ ├── sp_discordbot.go
│ │ │ ├── sp_email.go
│ │ │ ├── sp_larkbot.go
│ │ │ ├── sp_mattermost.go
│ │ │ ├── sp_slackbot.go
│ │ │ ├── sp_telegrambot.go
│ │ │ ├── sp_webhook.go
│ │ │ └── sp_wecombot.go
│ │ ├── service.go
│ │ └── service_deps.go
│ ├── repository/
│ │ ├── access.go
│ │ ├── acme_account.go
│ │ ├── certificate.go
│ │ ├── settings.go
│ │ ├── statistics.go
│ │ ├── workflow.go
│ │ ├── workflow_log.go
│ │ ├── workflow_output.go
│ │ └── workflow_run.go
│ ├── rest/
│ │ ├── handlers/
│ │ │ ├── certificates.go
│ │ │ ├── notifications.go
│ │ │ ├── statistics.go
│ │ │ └── workflows.go
│ │ ├── resp/
│ │ │ └── resp.go
│ │ └── routes/
│ │ └── routes.go
│ ├── scheduler/
│ │ ├── certificate.go
│ │ ├── scheduler.go
│ │ └── workflow.go
│ ├── statistics/
│ │ ├── service.go
│ │ └── service_deps.go
│ ├── tools/
│ │ ├── mproc/
│ │ │ ├── receiver.go
│ │ │ └── sender.go
│ │ ├── s3/
│ │ │ ├── client.go
│ │ │ └── config.go
│ │ ├── smtp/
│ │ │ ├── client.go
│ │ │ ├── config.go
│ │ │ ├── errhandler.go
│ │ │ └── message.go
│ │ └── ssh/
│ │ ├── auth.go
│ │ ├── client.go
│ │ └── config.go
│ └── workflow/
│ ├── dispatcher/
│ │ ├── deps.go
│ │ ├── dispatcher.go
│ │ ├── singleton.go
│ │ └── task.go
│ ├── engine/
│ │ ├── context.go
│ │ ├── deps.go
│ │ ├── engine.go
│ │ ├── errors.go
│ │ ├── executor.go
│ │ ├── executor_bizapply.go
│ │ ├── executor_bizdeploy.go
│ │ ├── executor_bizmonitor.go
│ │ ├── executor_biznotify.go
│ │ ├── executor_bizupload.go
│ │ ├── executor_condition.go
│ │ ├── executor_delay.go
│ │ ├── executor_end.go
│ │ ├── executor_start.go
│ │ ├── executor_trycatch.go
│ │ ├── logger.go
│ │ ├── models.go
│ │ └── state.go
│ ├── pbhook.go
│ ├── pbjob.go
│ ├── service.go
│ ├── service_deps.go
│ ├── service_inst.go
│ └── workflow.go
├── main.go
├── migrations/
│ ├── 1757476800_upgrade_v0.4.0.go
│ ├── 1757476801_initialize_v0.4.0.go
│ ├── 1760486400_upgrade_v0.4.1.go
│ ├── 1762142400_upgrade_v0.4.3.go
│ ├── 1762516800_upgrade_v0.4.4.go
│ ├── 1763373600_upgrade_v0.4.5.go
│ ├── 1763640000_upgrade_v0.4.6.go
│ ├── 1766592000_upgrade_v0.4.11.go
│ ├── 1766800800_upgrade_v0.4.12.go
│ ├── 1767024000_upgrade_v0.4.13.go
│ ├── 1768363200_upgrade_v0.4.14.go
│ ├── 1769313600_upgrade_v0.4.15.go
│ ├── snaps/
│ │ ├── v0.3/
│ │ │ └── workflow.go
│ │ └── v0.4/
│ │ └── workflow.go
│ └── tracer.go
├── pkg/
│ ├── core/
│ │ ├── certifier/
│ │ │ ├── challenger.go
│ │ │ └── challengers/
│ │ │ ├── dns01/
│ │ │ │ ├── 35cn/
│ │ │ │ │ └── 35cn.go
│ │ │ │ ├── 51dnscom/
│ │ │ │ │ ├── 51dnscom.go
│ │ │ │ │ └── internal/
│ │ │ │ │ └── lego.go
│ │ │ │ ├── acmedns/
│ │ │ │ │ └── acmedns.go
│ │ │ │ ├── acmehttpreq/
│ │ │ │ │ └── acmehttpreq.go
│ │ │ │ ├── akamai-edgedns/
│ │ │ │ │ └── akamai_edgedns.go
│ │ │ │ ├── aliyun/
│ │ │ │ │ └── aliyun.go
│ │ │ │ ├── aliyun-esa/
│ │ │ │ │ └── aliyun_esa.go
│ │ │ │ ├── arvancloud/
│ │ │ │ │ └── arvancloud.go
│ │ │ │ ├── aws-route53/
│ │ │ │ │ └── aws-route53.go
│ │ │ │ ├── azure-dns/
│ │ │ │ │ └── azure-dns.go
│ │ │ │ ├── baiducloud/
│ │ │ │ │ └── baiducloud.go
│ │ │ │ ├── bookmyname/
│ │ │ │ │ └── bookmyname.go
│ │ │ │ ├── bunny/
│ │ │ │ │ └── bunny.go
│ │ │ │ ├── cloudflare/
│ │ │ │ │ └── cloudflare.go
│ │ │ │ ├── cloudns/
│ │ │ │ │ └── cloudns.go
│ │ │ │ ├── cmcccloud/
│ │ │ │ │ ├── cmcccloud.go
│ │ │ │ │ └── internal/
│ │ │ │ │ └── lego.go
│ │ │ │ ├── constellix/
│ │ │ │ │ └── constellix.go
│ │ │ │ ├── cpanel/
│ │ │ │ │ └── cpanel.go
│ │ │ │ ├── ctcccloud/
│ │ │ │ │ ├── ctcccloud.go
│ │ │ │ │ └── internal/
│ │ │ │ │ └── lego.go
│ │ │ │ ├── desec/
│ │ │ │ │ └── desec.go
│ │ │ │ ├── digitalocean/
│ │ │ │ │ └── digitalocean.go
│ │ │ │ ├── dnsexit/
│ │ │ │ │ └── dnsexit.go
│ │ │ │ ├── dnsla/
│ │ │ │ │ ├── dnsla.go
│ │ │ │ │ └── internal/
│ │ │ │ │ └── lego.go
│ │ │ │ ├── dnsmadeeasy/
│ │ │ │ │ └── dnsmadeeasy.go
│ │ │ │ ├── duckdns/
│ │ │ │ │ └── duckdns.go
│ │ │ │ ├── dynu/
│ │ │ │ │ └── dynu.go
│ │ │ │ ├── dynv6/
│ │ │ │ │ ├── dynv6.go
│ │ │ │ │ └── internal/
│ │ │ │ │ └── lego.go
│ │ │ │ ├── gandinet/
│ │ │ │ │ └── gandinet.go
│ │ │ │ ├── gcore/
│ │ │ │ │ └── gcore.go
│ │ │ │ ├── gname/
│ │ │ │ │ ├── gname.go
│ │ │ │ │ └── internal/
│ │ │ │ │ └── lego.go
│ │ │ │ ├── godaddy/
│ │ │ │ │ └── godaddy.go
│ │ │ │ ├── hetzner/
│ │ │ │ │ └── hetzner.go
│ │ │ │ ├── hostingde/
│ │ │ │ │ └── hostingde.go
│ │ │ │ ├── hostinger/
│ │ │ │ │ └── hostinger.go
│ │ │ │ ├── huaweicloud/
│ │ │ │ │ └── huaweicloud.go
│ │ │ │ ├── infomaniak/
│ │ │ │ │ └── infomaniak.go
│ │ │ │ ├── ionos/
│ │ │ │ │ └── ionos.go
│ │ │ │ ├── jdcloud/
│ │ │ │ │ └── jdcloud.go
│ │ │ │ ├── linode/
│ │ │ │ │ └── linode.go
│ │ │ │ ├── namecheap/
│ │ │ │ │ └── namecheap.go
│ │ │ │ ├── namedotcom/
│ │ │ │ │ └── namedotcom.go
│ │ │ │ ├── namesilo/
│ │ │ │ │ └── namesilo.go
│ │ │ │ ├── netcup/
│ │ │ │ │ └── netcup.go
│ │ │ │ ├── netlify/
│ │ │ │ │ └── netlify.go
│ │ │ │ ├── ns1/
│ │ │ │ │ └── ns1.go
│ │ │ │ ├── ovhcloud/
│ │ │ │ │ ├── consts.go
│ │ │ │ │ └── ovhcloud.go
│ │ │ │ ├── porkbun/
│ │ │ │ │ └── porkbun.go
│ │ │ │ ├── powerdns/
│ │ │ │ │ └── powerdns.go
│ │ │ │ ├── qingcloud/
│ │ │ │ │ ├── internal/
│ │ │ │ │ │ └── lego.go
│ │ │ │ │ └── qingcloud.go
│ │ │ │ ├── rainyun/
│ │ │ │ │ └── rainyun.go
│ │ │ │ ├── rfc2136/
│ │ │ │ │ └── rfc2136.go
│ │ │ │ ├── spaceship/
│ │ │ │ │ └── spaceship.go
│ │ │ │ ├── technitiumdns/
│ │ │ │ │ └── technitiumdns.go
│ │ │ │ ├── tencentcloud/
│ │ │ │ │ └── tencentcloud.go
│ │ │ │ ├── tencentcloud-eo/
│ │ │ │ │ └── tencentcloud_eo.go
│ │ │ │ ├── todaynic/
│ │ │ │ │ └── todaynic.go
│ │ │ │ ├── ucloud/
│ │ │ │ │ ├── internal/
│ │ │ │ │ │ └── lego.go
│ │ │ │ │ └── ucloud.go
│ │ │ │ ├── vercel/
│ │ │ │ │ └── vercel.go
│ │ │ │ ├── volcengine/
│ │ │ │ │ └── volcengine.go
│ │ │ │ ├── vultr/
│ │ │ │ │ └── vultr.go
│ │ │ │ ├── westcn/
│ │ │ │ │ └── westcn.go
│ │ │ │ └── xinnet/
│ │ │ │ ├── internal/
│ │ │ │ │ └── lego.go
│ │ │ │ └── xinnet.go
│ │ │ └── http01/
│ │ │ ├── local/
│ │ │ │ └── local.go
│ │ │ ├── s3/
│ │ │ │ └── s3.go
│ │ │ └── ssh/
│ │ │ └── ssh.go
│ │ ├── certmgr/
│ │ │ ├── errors.go
│ │ │ ├── provider.go
│ │ │ └── providers/
│ │ │ ├── 1panel/
│ │ │ │ ├── 1panel.go
│ │ │ │ └── 1panel_test.go
│ │ │ ├── aliyun-cas/
│ │ │ │ ├── aliyun_cas.go
│ │ │ │ ├── aliyun_cas_test.go
│ │ │ │ └── internal/
│ │ │ │ └── client.go
│ │ │ ├── aliyun-slb/
│ │ │ │ ├── aliyun_slb.go
│ │ │ │ ├── aliyun_slb_test.go
│ │ │ │ └── internal/
│ │ │ │ └── client.go
│ │ │ ├── aws-acm/
│ │ │ │ └── aws_acm.go
│ │ │ ├── aws-iam/
│ │ │ │ └── aws_iam.go
│ │ │ ├── azure-keyvault/
│ │ │ │ ├── azure_keyvault.go
│ │ │ │ └── azure_keyvault_test.go
│ │ │ ├── baiducloud-cert/
│ │ │ │ ├── baiducloud_cert.go
│ │ │ │ └── baiducloud_cert_test.go
│ │ │ ├── baishan-cdn/
│ │ │ │ ├── baishan_cdn.go
│ │ │ │ └── baishan_cdn_test.go
│ │ │ ├── byteplus-cdn/
│ │ │ │ └── byteplus_cdn.go
│ │ │ ├── ctcccloud-ao/
│ │ │ │ ├── ctcccloud_ao.go
│ │ │ │ └── ctcccloud_ao_test.go
│ │ │ ├── ctcccloud-cdn/
│ │ │ │ ├── ctcccloud_cdn.go
│ │ │ │ └── ctcccloud_cdn_test.go
│ │ │ ├── ctcccloud-cms/
│ │ │ │ ├── ctcccloud_cms.go
│ │ │ │ └── ctcccloud_cms_test.go
│ │ │ ├── ctcccloud-elb/
│ │ │ │ ├── ctcccloud_elb.go
│ │ │ │ └── ctcccloud_elb_test.go
│ │ │ ├── ctcccloud-icdn/
│ │ │ │ ├── ctcccloud_icdn.go
│ │ │ │ └── ctcccloud_icdn_test.go
│ │ │ ├── ctcccloud-lvdn/
│ │ │ │ ├── ctcccloud_lvdn.go
│ │ │ │ └── ctcccloud_lvdn_test.go
│ │ │ ├── dogecloud/
│ │ │ │ └── dogecloud.go
│ │ │ ├── dokploy/
│ │ │ │ ├── dokploy.go
│ │ │ │ └── dokploy_test.go
│ │ │ ├── gcore-cdn/
│ │ │ │ └── gcore_cdn.go
│ │ │ ├── huaweicloud-elb/
│ │ │ │ ├── huaweicloud_elb.go
│ │ │ │ └── internal/
│ │ │ │ └── client.go
│ │ │ ├── huaweicloud-scm/
│ │ │ │ ├── huaweicloud_scm.go
│ │ │ │ └── internal/
│ │ │ │ └── client.go
│ │ │ ├── huaweicloud-waf/
│ │ │ │ ├── huaweicloud_waf.go
│ │ │ │ └── internal/
│ │ │ │ └── client.go
│ │ │ ├── jdcloud-ssl/
│ │ │ │ ├── jdcloud_ssl.go
│ │ │ │ └── jdcloud_ssl_test.go
│ │ │ ├── nginxproxymanager/
│ │ │ │ ├── consts.go
│ │ │ │ ├── nginxproxymanager.go
│ │ │ │ └── nginxproxymanager_test.go
│ │ │ ├── qiniu-sslcert/
│ │ │ │ ├── qiniu_sslcert.go
│ │ │ │ └── qiniu_sslcert_test.go
│ │ │ ├── rainyun-sslcenter/
│ │ │ │ ├── rainyun_sslcenter.go
│ │ │ │ └── rainyun_sslcenter_test.go
│ │ │ ├── tencentcloud-ssl/
│ │ │ │ ├── internal/
│ │ │ │ │ └── client.go
│ │ │ │ ├── tencentcloud_ssl.go
│ │ │ │ └── tencentcloud_ssl_test.go
│ │ │ ├── ucloud-ulb/
│ │ │ │ ├── ucloud_ulb.go
│ │ │ │ └── ucloud_ulb_test.go
│ │ │ ├── ucloud-upathx/
│ │ │ │ ├── ucloud_upathx.go
│ │ │ │ └── ucloud_upathx_test.go
│ │ │ ├── ucloud-ussl/
│ │ │ │ ├── ucloud_ussl.go
│ │ │ │ └── ucloud_ussl_test.go
│ │ │ ├── upyun-ssl/
│ │ │ │ ├── upyun_ssl.go
│ │ │ │ └── upyun_ssl_test.go
│ │ │ ├── volcengine-cdn/
│ │ │ │ ├── internal/
│ │ │ │ │ └── client.go
│ │ │ │ └── volcengine_cdn.go
│ │ │ ├── volcengine-certcenter/
│ │ │ │ ├── internal/
│ │ │ │ │ └── client.go
│ │ │ │ ├── volcengine_certcenter.go
│ │ │ │ └── volcengine_certcenter_test.go
│ │ │ ├── volcengine-live/
│ │ │ │ └── volcengine_live.go
│ │ │ └── wangsu-certificate/
│ │ │ ├── wangsu_certificate.go
│ │ │ └── wangsu_certificate_test.go
│ │ ├── deployer/
│ │ │ ├── provider.go
│ │ │ └── providers/
│ │ │ ├── 1panel/
│ │ │ │ ├── 1panel.go
│ │ │ │ ├── 1panel_test.go
│ │ │ │ └── consts.go
│ │ │ ├── 1panel-console/
│ │ │ │ ├── 1panel_console.go
│ │ │ │ └── 1panel_console_test.go
│ │ │ ├── aliyun-alb/
│ │ │ │ ├── aliyun_alb.go
│ │ │ │ ├── aliyun_alb_test.go
│ │ │ │ ├── consts.go
│ │ │ │ └── internal/
│ │ │ │ └── client.go
│ │ │ ├── aliyun-apigw/
│ │ │ │ ├── aliyun_apigw.go
│ │ │ │ ├── aliyun_apigw_test.go
│ │ │ │ ├── consts.go
│ │ │ │ └── internal/
│ │ │ │ └── client.go
│ │ │ ├── aliyun-cas/
│ │ │ │ └── aliyun_cas.go
│ │ │ ├── aliyun-cas-deploy/
│ │ │ │ ├── aliyun_cas_deploy.go
│ │ │ │ └── internal/
│ │ │ │ └── client.go
│ │ │ ├── aliyun-cdn/
│ │ │ │ ├── aliyun_cdn.go
│ │ │ │ ├── aliyun_cdn_test.go
│ │ │ │ ├── consts.go
│ │ │ │ └── internal/
│ │ │ │ └── client.go
│ │ │ ├── aliyun-clb/
│ │ │ │ ├── aliyun_clb.go
│ │ │ │ ├── aliyun_clb_test.go
│ │ │ │ ├── consts.go
│ │ │ │ └── internal/
│ │ │ │ └── client.go
│ │ │ ├── aliyun-dcdn/
│ │ │ │ ├── aliyun_dcdn.go
│ │ │ │ ├── aliyun_dcdn_test.go
│ │ │ │ ├── consts.go
│ │ │ │ └── internal/
│ │ │ │ └── client.go
│ │ │ ├── aliyun-ddospro/
│ │ │ │ ├── aliyun_ddospro.go
│ │ │ │ ├── aliyun_ddospro_test.go
│ │ │ │ ├── consts.go
│ │ │ │ └── internal/
│ │ │ │ └── client.go
│ │ │ ├── aliyun-esa/
│ │ │ │ ├── aliyun_esa.go
│ │ │ │ ├── aliyun_esa_test.go
│ │ │ │ └── internal/
│ │ │ │ └── client.go
│ │ │ ├── aliyun-esa-saas/
│ │ │ │ ├── aliyun_esasaas.go
│ │ │ │ ├── aliyun_esasaas_test.go
│ │ │ │ ├── consts.go
│ │ │ │ └── internal/
│ │ │ │ └── client.go
│ │ │ ├── aliyun-fc/
│ │ │ │ ├── aliyun_fc.go
│ │ │ │ ├── aliyun_fc_test.go
│ │ │ │ ├── consts.go
│ │ │ │ └── internal/
│ │ │ │ └── client.go
│ │ │ ├── aliyun-ga/
│ │ │ │ ├── aliyun_ga.go
│ │ │ │ ├── aliyun_ga_test.go
│ │ │ │ ├── consts.go
│ │ │ │ └── internal/
│ │ │ │ └── client.go
│ │ │ ├── aliyun-live/
│ │ │ │ ├── aliyun_live.go
│ │ │ │ ├── aliyun_live_test.go
│ │ │ │ ├── consts.go
│ │ │ │ └── internal/
│ │ │ │ └── client.go
│ │ │ ├── aliyun-nlb/
│ │ │ │ ├── aliyun_nlb.go
│ │ │ │ ├── aliyun_nlb_test.go
│ │ │ │ ├── consts.go
│ │ │ │ └── internal/
│ │ │ │ └── client.go
│ │ │ ├── aliyun-oss/
│ │ │ │ ├── aliyun_oss.go
│ │ │ │ └── aliyun_oss_test.go
│ │ │ ├── aliyun-vod/
│ │ │ │ ├── aliyun_vod.go
│ │ │ │ ├── aliyun_vod_test.go
│ │ │ │ ├── consts.go
│ │ │ │ └── internal/
│ │ │ │ └── client.go
│ │ │ ├── aliyun-waf/
│ │ │ │ ├── aliyun_waf.go
│ │ │ │ ├── aliyun_waf_test.go
│ │ │ │ ├── consts.go
│ │ │ │ └── internal/
│ │ │ │ └── client.go
│ │ │ ├── apisix/
│ │ │ │ ├── apisix.go
│ │ │ │ ├── apisix_test.go
│ │ │ │ └── consts.go
│ │ │ ├── aws-acm/
│ │ │ │ └── aws_acm.go
│ │ │ ├── aws-cloudfront/
│ │ │ │ ├── aws_cloudfront.go
│ │ │ │ ├── aws_cloudfront_test.go
│ │ │ │ └── consts.go
│ │ │ ├── aws-iam/
│ │ │ │ └── aws_iam.go
│ │ │ ├── azure-keyvault/
│ │ │ │ └── azure_keyvault.go
│ │ │ ├── baiducloud-appblb/
│ │ │ │ ├── baiducloud_appblb.go
│ │ │ │ ├── baiducloud_appblb_test.go
│ │ │ │ └── consts.go
│ │ │ ├── baiducloud-blb/
│ │ │ │ ├── baiducloud_blb.go
│ │ │ │ ├── baiducloud_blb_test.go
│ │ │ │ └── consts.go
│ │ │ ├── baiducloud-cdn/
│ │ │ │ ├── baiducloud_cdn.go
│ │ │ │ ├── baiducloud_cdn_test.go
│ │ │ │ └── consts.go
│ │ │ ├── baiducloud-cert/
│ │ │ │ └── baiducloud_cert.go
│ │ │ ├── baishan-cdn/
│ │ │ │ ├── baishan_cdn.go
│ │ │ │ ├── baishan_cdn_test.go
│ │ │ │ └── consts.go
│ │ │ ├── baotapanel/
│ │ │ │ ├── baotapanel.go
│ │ │ │ └── baotapanel_test.go
│ │ │ ├── baotapanel-console/
│ │ │ │ ├── baotapanel_console.go
│ │ │ │ └── baotapanel_console_test.go
│ │ │ ├── baotapanelgo/
│ │ │ │ ├── baotapanelgo.go
│ │ │ │ └── baotapanelgo_test.go
│ │ │ ├── baotapanelgo-console/
│ │ │ │ ├── baotapanelgo_console.go
│ │ │ │ └── baotapanelgo_console_test.go
│ │ │ ├── baotawaf/
│ │ │ │ ├── baotawaf.go
│ │ │ │ └── baotawaf_test.go
│ │ │ ├── baotawaf-console/
│ │ │ │ ├── baotawaf_console.go
│ │ │ │ └── baotawaf_console_test.go
│ │ │ ├── bunny-cdn/
│ │ │ │ ├── bunny_cdn.go
│ │ │ │ └── bunny_cdn_test.go
│ │ │ ├── byteplus-cdn/
│ │ │ │ ├── byteplus_cdn.go
│ │ │ │ ├── byteplus_cdn_test.go
│ │ │ │ └── consts.go
│ │ │ ├── cachefly/
│ │ │ │ ├── cachefly.go
│ │ │ │ └── cachefly_test.go
│ │ │ ├── cdnfly/
│ │ │ │ ├── cdnfly.go
│ │ │ │ ├── cdnfly_test.go
│ │ │ │ └── consts.go
│ │ │ ├── cpanel/
│ │ │ │ ├── consts.go
│ │ │ │ ├── cpanel.go
│ │ │ │ └── cpanel_test.go
│ │ │ ├── ctcccloud-ao/
│ │ │ │ ├── consts.go
│ │ │ │ ├── ctcccloud_ao.go
│ │ │ │ └── ctcccloud_ao_test.go
│ │ │ ├── ctcccloud-cdn/
│ │ │ │ ├── consts.go
│ │ │ │ ├── ctcccloud_cdn.go
│ │ │ │ └── ctcccloud_cdn_test.go
│ │ │ ├── ctcccloud-cms/
│ │ │ │ ├── ctcccloud_cms.go
│ │ │ │ └── ctcccloud_cms_test.go
│ │ │ ├── ctcccloud-elb/
│ │ │ │ ├── consts.go
│ │ │ │ ├── ctcccloud_elb.go
│ │ │ │ └── ctcccloud_elb_test.go
│ │ │ ├── ctcccloud-faas/
│ │ │ │ ├── ctcccloud_faas.go
│ │ │ │ └── ctcccloud_faas_test.go
│ │ │ ├── ctcccloud-icdn/
│ │ │ │ ├── consts.go
│ │ │ │ ├── ctcccloud_icdn.go
│ │ │ │ └── ctcccloud_icdn_test.go
│ │ │ ├── ctcccloud-lvdn/
│ │ │ │ ├── consts.go
│ │ │ │ ├── ctcccloud_lvdn.go
│ │ │ │ └── ctcccloud_lvdn_test.go
│ │ │ ├── dogecloud-cdn/
│ │ │ │ ├── consts.go
│ │ │ │ ├── dogecloud_cdn.go
│ │ │ │ └── dogecloud_cdn_test.go
│ │ │ ├── dokploy/
│ │ │ │ ├── dokploy.go
│ │ │ │ └── dokploy_test.go
│ │ │ ├── flexcdn/
│ │ │ │ ├── consts.go
│ │ │ │ ├── flexcdn.go
│ │ │ │ └── flexcdn_test.go
│ │ │ ├── flyio/
│ │ │ │ ├── flyio.go
│ │ │ │ └── flyio_test.go
│ │ │ ├── gcore-cdn/
│ │ │ │ ├── gcore_cdn.go
│ │ │ │ └── gcore_cdn_test.go
│ │ │ ├── goedge/
│ │ │ │ ├── consts.go
│ │ │ │ ├── goedge.go
│ │ │ │ └── goedge_test.go
│ │ │ ├── huaweicloud-cdn/
│ │ │ │ ├── consts.go
│ │ │ │ ├── huaweicloud_cdn.go
│ │ │ │ ├── huaweicloud_cdn_test.go
│ │ │ │ └── internal/
│ │ │ │ └── client.go
│ │ │ ├── huaweicloud-elb/
│ │ │ │ ├── consts.go
│ │ │ │ ├── huaweicloud_elb.go
│ │ │ │ ├── huaweicloud_elb_test.go
│ │ │ │ └── internal/
│ │ │ │ └── client.go
│ │ │ ├── huaweicloud-obs/
│ │ │ │ ├── huaweicloud_obs.go
│ │ │ │ └── huaweicloud_obs_test.go
│ │ │ ├── huaweicloud-scm/
│ │ │ │ └── huaweicloud_scm.go
│ │ │ ├── huaweicloud-waf/
│ │ │ │ ├── consts.go
│ │ │ │ ├── huaweicloud_waf.go
│ │ │ │ ├── huaweicloud_waf_test.go
│ │ │ │ └── internal/
│ │ │ │ └── client.go
│ │ │ ├── jdcloud-alb/
│ │ │ │ ├── consts.go
│ │ │ │ ├── internal/
│ │ │ │ │ └── client.go
│ │ │ │ ├── jdcloud_alb.go
│ │ │ │ └── jdcloud_alb_test.go
│ │ │ ├── jdcloud-cdn/
│ │ │ │ ├── consts.go
│ │ │ │ ├── internal/
│ │ │ │ │ └── client.go
│ │ │ │ ├── jdcloud_cdn.go
│ │ │ │ └── jdcloud_cdn_test.go
│ │ │ ├── jdcloud-live/
│ │ │ │ ├── consts.go
│ │ │ │ ├── internal/
│ │ │ │ │ └── client.go
│ │ │ │ ├── jdcloud_live.go
│ │ │ │ └── jdcloud_live_test.go
│ │ │ ├── jdcloud-vod/
│ │ │ │ ├── consts.go
│ │ │ │ ├── internal/
│ │ │ │ │ └── client.go
│ │ │ │ ├── jdcloud_vod.go
│ │ │ │ └── jdcloud_vod_test.go
│ │ │ ├── k8s-secret/
│ │ │ │ ├── k8s_secret.go
│ │ │ │ └── k8s_secret_test.go
│ │ │ ├── kong/
│ │ │ │ ├── consts.go
│ │ │ │ ├── kong.go
│ │ │ │ └── kong_test.go
│ │ │ ├── ksyun-cdn/
│ │ │ │ ├── consts.go
│ │ │ │ ├── ksyun_cdn.go
│ │ │ │ └── ksyun_cdn_test.go
│ │ │ ├── lecdn/
│ │ │ │ ├── consts.go
│ │ │ │ ├── lecdn.go
│ │ │ │ └── lecdn_test.go
│ │ │ ├── local/
│ │ │ │ ├── consts.go
│ │ │ │ ├── local.go
│ │ │ │ └── local_test.go
│ │ │ ├── mohua-mvh/
│ │ │ │ ├── mohua_mvh.go
│ │ │ │ └── mohua_mvh_test.go
│ │ │ ├── netlify/
│ │ │ │ ├── consts.go
│ │ │ │ ├── netlify.go
│ │ │ │ └── netlify_test.go
│ │ │ ├── nginxproxymanager/
│ │ │ │ ├── consts.go
│ │ │ │ ├── nginxproxymanager.go
│ │ │ │ └── nginxproxymanager_test.go
│ │ │ ├── proxmoxve/
│ │ │ │ ├── proxmoxve.go
│ │ │ │ └── proxmoxve_test.go
│ │ │ ├── qiniu-cdn/
│ │ │ │ ├── consts.go
│ │ │ │ ├── qiniu_cdn.go
│ │ │ │ └── qiniu_cdn_test.go
│ │ │ ├── qiniu-kodo/
│ │ │ │ ├── qiniu_kodo.go
│ │ │ │ └── qiniu_kodo_test.go
│ │ │ ├── qiniu-pili/
│ │ │ │ ├── consts.go
│ │ │ │ ├── qiniu_pili.go
│ │ │ │ └── qiniu_pili_test.go
│ │ │ ├── rainyun-rcdn/
│ │ │ │ ├── consts.go
│ │ │ │ ├── rainyun_rcdn.go
│ │ │ │ └── rainyun_rcdn_test.go
│ │ │ ├── rainyun-sslcenter/
│ │ │ │ ├── rainyun_sslcenter.go
│ │ │ │ └── rainyun_sslcenter_test.go
│ │ │ ├── ratpanel/
│ │ │ │ ├── consts.go
│ │ │ │ ├── ratpanel.go
│ │ │ │ └── ratpanel_test.go
│ │ │ ├── ratpanel-console/
│ │ │ │ ├── ratpanel_console.go
│ │ │ │ └── ratpanel_console_test.go
│ │ │ ├── s3/
│ │ │ │ ├── consts.go
│ │ │ │ └── s3.go
│ │ │ ├── safeline/
│ │ │ │ ├── consts.go
│ │ │ │ ├── safeline.go
│ │ │ │ └── safeline_test.go
│ │ │ ├── ssh/
│ │ │ │ ├── consts.go
│ │ │ │ ├── ssh.go
│ │ │ │ └── ssh_test.go
│ │ │ ├── synologydsm/
│ │ │ │ ├── synologydsm.go
│ │ │ │ └── synologydsm_test.go
│ │ │ ├── tencentcloud-cdn/
│ │ │ │ ├── consts.go
│ │ │ │ ├── internal/
│ │ │ │ │ └── client.go
│ │ │ │ ├── tencentcloud_cdn.go
│ │ │ │ └── tencentcloud_cdn_test.go
│ │ │ ├── tencentcloud-clb/
│ │ │ │ ├── consts.go
│ │ │ │ ├── internal/
│ │ │ │ │ └── client.go
│ │ │ │ ├── tencentcloud_clb.go
│ │ │ │ └── tencentcloud_clb_test.go
│ │ │ ├── tencentcloud-cos/
│ │ │ │ ├── internal/
│ │ │ │ │ └── client.go
│ │ │ │ ├── tencentcloud_cos.go
│ │ │ │ └── tencentcloud_cos_test.go
│ │ │ ├── tencentcloud-css/
│ │ │ │ ├── consts.go
│ │ │ │ ├── internal/
│ │ │ │ │ └── client.go
│ │ │ │ ├── tencentcloud_css.go
│ │ │ │ └── tencentcloud_css_test.go
│ │ │ ├── tencentcloud-ecdn/
│ │ │ │ ├── consts.go
│ │ │ │ ├── internal/
│ │ │ │ │ └── client.go
│ │ │ │ ├── tencentcloud_ecdn.go
│ │ │ │ └── tencentcloud_ecdn_test.go
│ │ │ ├── tencentcloud-eo/
│ │ │ │ ├── consts.go
│ │ │ │ ├── internal/
│ │ │ │ │ └── client.go
│ │ │ │ ├── tencentcloud_eo.go
│ │ │ │ └── tencentcloud_eo_test.go
│ │ │ ├── tencentcloud-gaap/
│ │ │ │ ├── consts.go
│ │ │ │ ├── internal/
│ │ │ │ │ └── client.go
│ │ │ │ ├── tencentcloud_gaap.go
│ │ │ │ └── tencentcloud_gaap_test.go
│ │ │ ├── tencentcloud-scf/
│ │ │ │ ├── consts.go
│ │ │ │ ├── internal/
│ │ │ │ │ └── client.go
│ │ │ │ ├── tencentcloud_scf.go
│ │ │ │ └── tencentcloud_scf_test.go
│ │ │ ├── tencentcloud-ssl/
│ │ │ │ └── tencentcloud_ssl.go
│ │ │ ├── tencentcloud-ssl-deploy/
│ │ │ │ ├── internal/
│ │ │ │ │ └── client.go
│ │ │ │ └── tencentcloud_ssl_deploy.go
│ │ │ ├── tencentcloud-ssl-update/
│ │ │ │ ├── internal/
│ │ │ │ │ └── client.go
│ │ │ │ └── tencentcloud_ssl_update.go
│ │ │ ├── tencentcloud-vod/
│ │ │ │ ├── consts.go
│ │ │ │ ├── internal/
│ │ │ │ │ └── client.go
│ │ │ │ ├── tencentcloud_vod.go
│ │ │ │ └── tencentcloud_vod_test.go
│ │ │ ├── tencentcloud-waf/
│ │ │ │ ├── internal/
│ │ │ │ │ └── client.go
│ │ │ │ ├── tencentcloud_waf.go
│ │ │ │ └── tencentcloud_waf_test.go
│ │ │ ├── ucloud-ualb/
│ │ │ │ ├── consts.go
│ │ │ │ ├── ucloud_ualb.go
│ │ │ │ └── ucloud_ualb_test.go
│ │ │ ├── ucloud-ucdn/
│ │ │ │ ├── ucloud_ucdn.go
│ │ │ │ └── ucloud_ucdn_test.go
│ │ │ ├── ucloud-uclb/
│ │ │ │ ├── consts.go
│ │ │ │ ├── ucloud_uclb.go
│ │ │ │ └── ucloud_uclb_test.go
│ │ │ ├── ucloud-uewaf/
│ │ │ │ ├── ucloud_uewaf.go
│ │ │ │ └── ucloud_uewaf_test.go
│ │ │ ├── ucloud-upathx/
│ │ │ │ ├── ucloud_upathx.go
│ │ │ │ └── ucloud_upathx_test.go
│ │ │ ├── ucloud-us3/
│ │ │ │ ├── ucloud_us3.go
│ │ │ │ └── ucloud_us3_test.go
│ │ │ ├── unicloud-webhost/
│ │ │ │ ├── unicloud_webhost.go
│ │ │ │ └── unicloud_webhost_test.go
│ │ │ ├── upyun-cdn/
│ │ │ │ ├── consts.go
│ │ │ │ ├── upyun_cdn.go
│ │ │ │ └── upyun_cdn_test.go
│ │ │ ├── upyun-file/
│ │ │ │ ├── upyun_file.go
│ │ │ │ └── upyun_file_test.go
│ │ │ ├── volcengine-alb/
│ │ │ │ ├── consts.go
│ │ │ │ ├── internal/
│ │ │ │ │ └── client.go
│ │ │ │ ├── volcengine_alb.go
│ │ │ │ └── volcengine_alb_test.go
│ │ │ ├── volcengine-cdn/
│ │ │ │ ├── consts.go
│ │ │ │ ├── internal/
│ │ │ │ │ └── client.go
│ │ │ │ ├── volcengine_cdn.go
│ │ │ │ └── volcengine_cdn_test.go
│ │ │ ├── volcengine-certcenter/
│ │ │ │ └── volcengine_certcenter.go
│ │ │ ├── volcengine-clb/
│ │ │ │ ├── consts.go
│ │ │ │ ├── internal/
│ │ │ │ │ └── client.go
│ │ │ │ ├── volcengine_clb.go
│ │ │ │ └── volcengine_clb_test.go
│ │ │ ├── volcengine-dcdn/
│ │ │ │ ├── consts.go
│ │ │ │ ├── internal/
│ │ │ │ │ └── client.go
│ │ │ │ ├── volcengine_dcdn.go
│ │ │ │ └── volcengine_dcdn_test.go
│ │ │ ├── volcengine-imagex/
│ │ │ │ ├── volcengine_imagex.go
│ │ │ │ └── volcengine_imagex_test.go
│ │ │ ├── volcengine-live/
│ │ │ │ ├── consts.go
│ │ │ │ ├── volcengine_live.go
│ │ │ │ └── volcengine_live_test.go
│ │ │ ├── volcengine-tos/
│ │ │ │ ├── volcengine_tos.go
│ │ │ │ └── volcengine_tos_test.go
│ │ │ ├── volcengine-vod/
│ │ │ │ ├── consts.go
│ │ │ │ ├── volcengine_vod.go
│ │ │ │ └── volcengine_vod_test.go
│ │ │ ├── volcengine-waf/
│ │ │ │ ├── consts.go
│ │ │ │ ├── internal/
│ │ │ │ │ └── client.go
│ │ │ │ ├── volcengine_waf.go
│ │ │ │ └── volcengine_waf_test.go
│ │ │ ├── wangsu-cdn/
│ │ │ │ ├── consts.go
│ │ │ │ ├── wangsu_cdn.go
│ │ │ │ └── wangsu_cdn_test.go
│ │ │ ├── wangsu-cdnpro/
│ │ │ │ ├── consts.go
│ │ │ │ ├── wangsu_cdnpro.go
│ │ │ │ └── wangsu_cdnpro_test.go
│ │ │ ├── wangsu-certificate/
│ │ │ │ ├── wangsu_certificate.go
│ │ │ │ └── wangsu_certificate_test.go
│ │ │ └── webhook/
│ │ │ ├── webhook.go
│ │ │ └── webhook_test.go
│ │ ├── notifier/
│ │ │ ├── provider.go
│ │ │ └── providers/
│ │ │ ├── dingtalkbot/
│ │ │ │ ├── dingtalkbot.go
│ │ │ │ └── dingtalkbot_test.go
│ │ │ ├── discordbot/
│ │ │ │ ├── discordbot.go
│ │ │ │ └── discordbot_test.go
│ │ │ ├── email/
│ │ │ │ ├── consts.go
│ │ │ │ ├── email.go
│ │ │ │ └── email_test.go
│ │ │ ├── larkbot/
│ │ │ │ ├── larkbot.go
│ │ │ │ └── larkbot_test.go
│ │ │ ├── mattermost/
│ │ │ │ ├── mattermost.go
│ │ │ │ └── mattermost_test.go
│ │ │ ├── slackbot/
│ │ │ │ ├── slackbot.go
│ │ │ │ └── slackbot_test.go
│ │ │ ├── telegrambot/
│ │ │ │ ├── telegrambot.go
│ │ │ │ └── telegrambot_test.go
│ │ │ ├── webhook/
│ │ │ │ ├── webhook.go
│ │ │ │ └── webhook_test.go
│ │ │ └── wecombot/
│ │ │ ├── wecombot.go
│ │ │ └── wecombot_test.go
│ │ └── shared.go
│ ├── forks/
│ │ └── gitlab.ecloud.com/
│ │ └── ecloud/
│ │ ├── README.md
│ │ ├── ecloudsdkclouddns@v1.0.1/
│ │ │ ├── client.go
│ │ │ ├── go.mod
│ │ │ └── model/
│ │ │ ├── create_record_body.go
│ │ │ ├── create_record_openapi_body.go
│ │ │ ├── create_record_openapi_request.go
│ │ │ ├── create_record_openapi_response.go
│ │ │ ├── create_record_openapi_response_body.go
│ │ │ ├── create_record_openapi_response_tags.go
│ │ │ ├── create_record_request.go
│ │ │ ├── create_record_response.go
│ │ │ ├── create_record_response_body.go
│ │ │ ├── create_record_response_tags.go
│ │ │ ├── delete_record_body.go
│ │ │ ├── delete_record_openapi_body.go
│ │ │ ├── delete_record_openapi_request.go
│ │ │ ├── delete_record_openapi_response.go
│ │ │ ├── delete_record_openapi_response_body.go
│ │ │ ├── delete_record_request.go
│ │ │ ├── delete_record_response.go
│ │ │ ├── delete_record_response_body.go
│ │ │ ├── list_record_body.go
│ │ │ ├── list_record_openapi_body.go
│ │ │ ├── list_record_openapi_query.go
│ │ │ ├── list_record_openapi_request.go
│ │ │ ├── list_record_openapi_response.go
│ │ │ ├── list_record_openapi_response_body.go
│ │ │ ├── list_record_openapi_response_data.go
│ │ │ ├── list_record_openapi_response_tags.go
│ │ │ ├── list_record_query.go
│ │ │ ├── list_record_request.go
│ │ │ ├── list_record_response.go
│ │ │ ├── list_record_response_body.go
│ │ │ ├── list_record_response_results.go
│ │ │ ├── modify_record_body.go
│ │ │ ├── modify_record_openapi_body.go
│ │ │ ├── modify_record_openapi_request.go
│ │ │ ├── modify_record_openapi_response.go
│ │ │ ├── modify_record_openapi_response_body.go
│ │ │ ├── modify_record_openapi_response_tags.go
│ │ │ ├── modify_record_request.go
│ │ │ ├── modify_record_response.go
│ │ │ └── modify_record_response_body.go
│ │ └── ecloudsdkcore@v1.0.0/
│ │ ├── api_client.go
│ │ ├── api_response.go
│ │ ├── config/
│ │ │ └── config.go
│ │ ├── configuration.go
│ │ ├── go.mod
│ │ ├── http_request.go
│ │ ├── open_api_request.go
│ │ └── position/
│ │ └── http_position.go
│ ├── logging/
│ │ ├── handler.go
│ │ └── record.go
│ ├── sdk3rd/
│ │ ├── 1panel/
│ │ │ ├── api_settings_ssl_update.go
│ │ │ ├── api_website_get.go
│ │ │ ├── api_website_https_get.go
│ │ │ ├── api_website_https_post.go
│ │ │ ├── api_website_search.go
│ │ │ ├── api_website_ssl_get.go
│ │ │ ├── api_website_ssl_search.go
│ │ │ ├── api_website_ssl_upload.go
│ │ │ ├── client.go
│ │ │ ├── types.go
│ │ │ └── v2/
│ │ │ ├── api_core_settings_ssl_update.go
│ │ │ ├── api_website_get.go
│ │ │ ├── api_website_https_get.go
│ │ │ ├── api_website_https_post.go
│ │ │ ├── api_website_search.go
│ │ │ ├── api_website_ssl_get.go
│ │ │ ├── api_website_ssl_search.go
│ │ │ ├── api_website_ssl_upload.go
│ │ │ ├── client.go
│ │ │ └── types.go
│ │ ├── 51dnscom/
│ │ │ ├── api_domain_list.go
│ │ │ ├── api_record_create.go
│ │ │ ├── api_record_remove.go
│ │ │ ├── client.go
│ │ │ └── types.go
│ │ ├── apisix/
│ │ │ ├── api_ssl_update.go
│ │ │ ├── client.go
│ │ │ └── types.go
│ │ ├── azure/
│ │ │ └── env/
│ │ │ └── config.go
│ │ ├── baiducloud/
│ │ │ └── cert/
│ │ │ ├── cert.go
│ │ │ ├── client.go
│ │ │ └── model.go
│ │ ├── baishan/
│ │ │ ├── api_get_domain_config.go
│ │ │ ├── api_get_domain_list.go
│ │ │ ├── api_set_domain_config.go
│ │ │ ├── api_upload_domain_certificate.go
│ │ │ ├── client.go
│ │ │ └── types.go
│ │ ├── btpanel/
│ │ │ ├── api_config_save_panel_ssl.go
│ │ │ ├── api_mod_proxy_com_set_ssl.go
│ │ │ ├── api_site_set_ssl.go
│ │ │ ├── api_ssl_cert_save_cert.go
│ │ │ ├── api_ssl_set_batch_cert_to_site.go
│ │ │ ├── api_system_service_admin.go
│ │ │ ├── client.go
│ │ │ └── types.go
│ │ ├── btpanelgo/
│ │ │ ├── api_config_set_panel_ssl.go
│ │ │ ├── api_datalist_get_data_list.go
│ │ │ ├── api_files_upload.go
│ │ │ ├── api_panel_get_config.go
│ │ │ ├── api_site_get_project_list.go
│ │ │ ├── api_site_set_site_pfx_ssl.go
│ │ │ ├── api_site_set_site_ssl.go
│ │ │ ├── client.go
│ │ │ └── types.go
│ │ ├── btwaf/
│ │ │ ├── api_config_set_cert.go
│ │ │ ├── api_get_site_list.go
│ │ │ ├── api_modify_site.go
│ │ │ ├── client.go
│ │ │ └── types.go
│ │ ├── bunny/
│ │ │ ├── api_add_custom_certificate.go
│ │ │ └── client.go
│ │ ├── cachefly/
│ │ │ ├── api_create_certificate.go
│ │ │ ├── client.go
│ │ │ └── types.go
│ │ ├── cdnfly/
│ │ │ ├── api_create_cert.go
│ │ │ ├── api_get_site.go
│ │ │ ├── api_update_cert.go
│ │ │ ├── api_update_site.go
│ │ │ ├── client.go
│ │ │ └── types.go
│ │ ├── cpanel/
│ │ │ ├── api_ssl_install_ssl.go
│ │ │ ├── client.go
│ │ │ └── types.go
│ │ ├── ctyun/
│ │ │ ├── ao/
│ │ │ │ ├── api_create_cert.go
│ │ │ │ ├── api_get_domain_config.go
│ │ │ │ ├── api_list_certs.go
│ │ │ │ ├── api_modify_domain_config.go
│ │ │ │ ├── api_query_cert.go
│ │ │ │ ├── api_query_domains.go
│ │ │ │ ├── client.go
│ │ │ │ └── types.go
│ │ │ ├── cdn/
│ │ │ │ ├── api_create_cert.go
│ │ │ │ ├── api_query_cert_detail.go
│ │ │ │ ├── api_query_cert_list.go
│ │ │ │ ├── api_query_domain_detail.go
│ │ │ │ ├── api_query_domain_list.go
│ │ │ │ ├── api_update_domain.go
│ │ │ │ ├── client.go
│ │ │ │ └── types.go
│ │ │ ├── cms/
│ │ │ │ ├── api_get_certificate_list.go
│ │ │ │ ├── api_upload_certificate.go
│ │ │ │ ├── client.go
│ │ │ │ └── types.go
│ │ │ ├── dns/
│ │ │ │ ├── api_add_record.go
│ │ │ │ ├── api_delete_record.go
│ │ │ │ ├── api_query_record_list.go
│ │ │ │ ├── api_update_record.go
│ │ │ │ ├── client.go
│ │ │ │ └── types.go
│ │ │ ├── elb/
│ │ │ │ ├── api_create_certificate.go
│ │ │ │ ├── api_list_certificates.go
│ │ │ │ ├── api_list_listeners.go
│ │ │ │ ├── api_show_listener.go
│ │ │ │ ├── api_update_listener.go
│ │ │ │ ├── client.go
│ │ │ │ └── types.go
│ │ │ ├── faas/
│ │ │ │ ├── api_get_custom_domain.go
│ │ │ │ ├── api_update_custom_domain.go
│ │ │ │ ├── client.go
│ │ │ │ └── types.go
│ │ │ ├── icdn/
│ │ │ │ ├── api_create_cert.go
│ │ │ │ ├── api_query_cert_detail.go
│ │ │ │ ├── api_query_cert_list.go
│ │ │ │ ├── api_query_domain_detail.go
│ │ │ │ ├── api_query_domain_list.go
│ │ │ │ ├── api_update_domain.go
│ │ │ │ ├── client.go
│ │ │ │ └── types.go
│ │ │ ├── lvdn/
│ │ │ │ ├── api_create_cert.go
│ │ │ │ ├── api_query_cert_detail.go
│ │ │ │ ├── api_query_cert_list.go
│ │ │ │ ├── api_query_domain_detail.go
│ │ │ │ ├── api_query_domain_list.go
│ │ │ │ ├── api_update_domain.go
│ │ │ │ ├── client.go
│ │ │ │ └── types.go
│ │ │ └── openapi/
│ │ │ └── client.go
│ │ ├── dcloud/
│ │ │ └── unicloud/
│ │ │ ├── api_create_domain_with_cert.go
│ │ │ ├── client.go
│ │ │ └── types.go
│ │ ├── dnsla/
│ │ │ ├── api_create_record.go
│ │ │ ├── api_delete_record.go
│ │ │ ├── api_list_domains.go
│ │ │ ├── api_list_records.go
│ │ │ ├── api_update_record.go
│ │ │ ├── client.go
│ │ │ └── types.go
│ │ ├── dogecloud/
│ │ │ ├── api_bind_cdn_cert.go
│ │ │ ├── api_list_cdn_domain.go
│ │ │ ├── api_upload_cdn_cert.go
│ │ │ ├── client.go
│ │ │ └── types.go
│ │ ├── dokploy/
│ │ │ ├── api_certificates_all.go
│ │ │ ├── api_certificates_create.go
│ │ │ ├── api_user_get.go
│ │ │ ├── client.go
│ │ │ └── types.go
│ │ ├── dynv6/
│ │ │ ├── api_add_record.go
│ │ │ ├── api_delete_record.go
│ │ │ ├── api_list_records.go
│ │ │ ├── api_list_zones.go
│ │ │ ├── client.go
│ │ │ └── types.go
│ │ ├── flexcdn/
│ │ │ ├── api_update_ssl_cert.go
│ │ │ ├── client.go
│ │ │ └── types.go
│ │ ├── flyio/
│ │ │ ├── api_import_custom_certificate.go
│ │ │ ├── client.go
│ │ │ └── types.go
│ │ ├── gcore/
│ │ │ ├── endpoint.go
│ │ │ └── signer.go
│ │ ├── gname/
│ │ │ ├── api_add_domain_resolution.go
│ │ │ ├── api_delete_domain_resolution.go
│ │ │ ├── api_list_domain_resolution.go
│ │ │ ├── api_modify_domain_resolution.go
│ │ │ ├── client.go
│ │ │ └── types.go
│ │ ├── goedge/
│ │ │ ├── api_update_ssl_cert.go
│ │ │ ├── client.go
│ │ │ └── types.go
│ │ ├── lecdn/
│ │ │ └── v3/
│ │ │ ├── client/
│ │ │ │ ├── api_update_certificate.go
│ │ │ │ ├── client.go
│ │ │ │ └── types.go
│ │ │ └── master/
│ │ │ ├── api_update_certificate.go
│ │ │ ├── client.go
│ │ │ └── types.go
│ │ ├── netlify/
│ │ │ ├── api_provision_site_tls_certificate.go
│ │ │ ├── client.go
│ │ │ └── types.go
│ │ ├── nginxproxymanager/
│ │ │ ├── api_nginx_create_certificate.go
│ │ │ ├── api_nginx_list_certificates.go
│ │ │ ├── api_nginx_list_dead_hosts.go
│ │ │ ├── api_nginx_list_proxy_hosts.go
│ │ │ ├── api_nginx_list_redirection_hosts.go
│ │ │ ├── api_nginx_list_streams.go
│ │ │ ├── api_nginx_update_dead_host.go
│ │ │ ├── api_nginx_update_proxy_host.go
│ │ │ ├── api_nginx_update_redirection_host.go
│ │ │ ├── api_nginx_update_stream.go
│ │ │ ├── api_nginx_upload_certificate.go
│ │ │ ├── api_settings_get_default_site.go
│ │ │ ├── api_settings_set_default_site.go
│ │ │ ├── client.go
│ │ │ └── types.go
│ │ ├── qingcloud/
│ │ │ └── dns/
│ │ │ ├── api_create_record.go
│ │ │ ├── api_delete_record.go
│ │ │ ├── client.go
│ │ │ └── types.go
│ │ ├── qiniu/
│ │ │ ├── auth.go
│ │ │ ├── cdn.go
│ │ │ ├── kodo.go
│ │ │ ├── sslcert.go
│ │ │ └── util.go
│ │ ├── rainyun/
│ │ │ ├── api_rcdn_instance_ssl_bind.go
│ │ │ ├── api_ssl_center_create.go
│ │ │ ├── api_ssl_center_get.go
│ │ │ ├── api_ssl_center_list.go
│ │ │ ├── api_ssl_center_update.go
│ │ │ ├── client.go
│ │ │ └── types.go
│ │ ├── ratpanel/
│ │ │ ├── api_set_cert_update.go
│ │ │ ├── api_set_setting_cert.go
│ │ │ ├── api_set_website_cert.go
│ │ │ ├── client.go
│ │ │ └── types.go
│ │ ├── safeline/
│ │ │ ├── api_update_certificate.go
│ │ │ ├── client.go
│ │ │ └── types.go
│ │ ├── synologydsm/
│ │ │ ├── api_auth_login.go
│ │ │ ├── api_auth_logout.go
│ │ │ ├── api_core_certificate_crt_list.go
│ │ │ ├── api_core_certificate_import.go
│ │ │ ├── api_core_certificate_service_set.go
│ │ │ ├── api_info_query.go
│ │ │ ├── client.go
│ │ │ ├── types.go
│ │ │ └── utils.go
│ │ ├── ucloud/
│ │ │ ├── ucdn/
│ │ │ │ ├── api_get_ucdn_domain_config.go
│ │ │ │ ├── api_update_ucdn_domain_https_config_v2.go
│ │ │ │ ├── client.go
│ │ │ │ └── types.go
│ │ │ ├── udnr/
│ │ │ │ ├── api_add_domain_dns.go
│ │ │ │ ├── api_delete_domain_dns.go
│ │ │ │ ├── api_query_domain_dns.go
│ │ │ │ ├── client.go
│ │ │ │ └── types.go
│ │ │ ├── uewaf/
│ │ │ │ ├── api_add_waf_domain_certificate_info.go
│ │ │ │ └── client.go
│ │ │ ├── ufile/
│ │ │ │ ├── api_add_ufile_ssl_cert.go
│ │ │ │ └── client.go
│ │ │ ├── ulb/
│ │ │ │ ├── api_add_ssl_binding.go
│ │ │ │ ├── api_bind_ssl.go
│ │ │ │ ├── api_create_ssl.go
│ │ │ │ ├── api_delete_ssl_binding.go
│ │ │ │ ├── api_describe_listeners.go
│ │ │ │ ├── api_describe_ssl.go
│ │ │ │ ├── api_describe_ssl_v2.go
│ │ │ │ ├── api_describe_vserver.go
│ │ │ │ ├── api_unbind_ssl.go
│ │ │ │ ├── api_update_listener_attribute.go
│ │ │ │ └── client.go
│ │ │ ├── upathx/
│ │ │ │ ├── api_bind_pathx_ssl.go
│ │ │ │ ├── api_create_pathx_ssl.go
│ │ │ │ ├── api_describe_pathx_ssl.go
│ │ │ │ ├── api_unbind_pathx_ssl.go
│ │ │ │ └── client.go
│ │ │ └── ussl/
│ │ │ ├── api_download_certificate.go
│ │ │ ├── api_get_certificate_detail_info.go
│ │ │ ├── api_get_certificate_list.go
│ │ │ ├── api_upload_normal_certificate.go
│ │ │ ├── client.go
│ │ │ └── types.go
│ │ ├── upyun/
│ │ │ └── console/
│ │ │ ├── api_get_buckets.go
│ │ │ ├── api_get_https_certificate_manager.go
│ │ │ ├── api_get_https_service_manager.go
│ │ │ ├── api_migrate_https_domain.go
│ │ │ ├── api_update_https_certificate_manager.go
│ │ │ ├── api_upload_https_certificate.go
│ │ │ ├── client.go
│ │ │ └── types.go
│ │ ├── wangsu/
│ │ │ ├── cdn/
│ │ │ │ ├── api_batch_update_certificate_config.go
│ │ │ │ ├── client.go
│ │ │ │ └── types.go
│ │ │ ├── cdnpro/
│ │ │ │ ├── api_create_certificate.go
│ │ │ │ ├── api_create_deployment_task.go
│ │ │ │ ├── api_get_deployment_task_detail.go
│ │ │ │ ├── api_get_hostname_detail.go
│ │ │ │ ├── api_update_certificate.go
│ │ │ │ ├── client.go
│ │ │ │ └── types.go
│ │ │ ├── certificate/
│ │ │ │ ├── api_create_certificate.go
│ │ │ │ ├── api_list_certificates.go
│ │ │ │ ├── api_update_certificate.go
│ │ │ │ ├── client.go
│ │ │ │ └── types.go
│ │ │ └── openapi/
│ │ │ └── client.go
│ │ └── xinnet/
│ │ ├── api_dns_create.go
│ │ ├── api_dns_delete.go
│ │ ├── client.go
│ │ └── types.go
│ └── utils/
│ ├── cert/
│ │ ├── common.go
│ │ ├── comparer.go
│ │ ├── converter.go
│ │ ├── extractor.go
│ │ ├── hostname/
│ │ │ ├── hostname.go
│ │ │ └── hostname_test.go
│ │ ├── key/
│ │ │ └── key.go
│ │ ├── parser.go
│ │ ├── transformer.go
│ │ └── x509/
│ │ └── x509.go
│ ├── crypto/
│ │ └── aes.go
│ ├── env/
│ │ └── get.go
│ ├── file/
│ │ └── io.go
│ ├── filepath/
│ │ └── path.go
│ ├── http/
│ │ ├── parser.go
│ │ └── transport.go
│ ├── maps/
│ │ ├── get.go
│ │ └── marshal.go
│ ├── ssh/
│ │ ├── cmd.go
│ │ └── io.go
│ ├── tls/
│ │ └── config.go
│ └── wait/
│ ├── delay.go
│ └── until.go
└── ui/
├── .gitignore
├── embed.go
├── eslint.config.mjs
├── index.html
├── package.json
├── prettier.config.mjs
├── public/
│ └── robots.txt
├── src/
│ ├── App.tsx
│ ├── api/
│ │ ├── certificates.ts
│ │ ├── notifications.ts
│ │ ├── statistics.ts
│ │ └── workflows.ts
│ ├── components/
│ │ ├── AppDocument.tsx
│ │ ├── AppLocale.tsx
│ │ ├── AppTheme.tsx
│ │ ├── AppVersion.tsx
│ │ ├── CodeTextInput.tsx
│ │ ├── CopyableText.tsx
│ │ ├── DrawerForm.tsx
│ │ ├── Empty.tsx
│ │ ├── FileTextInput.tsx
│ │ ├── ModalForm.tsx
│ │ ├── MultipleInput.tsx
│ │ ├── MultipleSplitValueInput.tsx
│ │ ├── Show.tsx
│ │ ├── Tips.tsx
│ │ ├── access/
│ │ │ ├── AccessEditDrawer.tsx
│ │ │ ├── AccessForm.tsx
│ │ │ ├── AccessSelect.tsx
│ │ │ └── forms/
│ │ │ ├── AccessConfigFieldsProvider.tsx
│ │ │ ├── AccessConfigFieldsProvider1Panel.tsx
│ │ │ ├── AccessConfigFieldsProvider35cn.tsx
│ │ │ ├── AccessConfigFieldsProvider51DNScom.tsx
│ │ │ ├── AccessConfigFieldsProviderACMECA.tsx
│ │ │ ├── AccessConfigFieldsProviderACMEDNS.tsx
│ │ │ ├── AccessConfigFieldsProviderACMEHttpReq.tsx
│ │ │ ├── AccessConfigFieldsProviderAPISIX.tsx
│ │ │ ├── AccessConfigFieldsProviderAWS.tsx
│ │ │ ├── AccessConfigFieldsProviderActalisSSL.tsx
│ │ │ ├── AccessConfigFieldsProviderAkamai.tsx
│ │ │ ├── AccessConfigFieldsProviderAliyun.tsx
│ │ │ ├── AccessConfigFieldsProviderArvanCloud.tsx
│ │ │ ├── AccessConfigFieldsProviderAzure.tsx
│ │ │ ├── AccessConfigFieldsProviderBaiduCloud.tsx
│ │ │ ├── AccessConfigFieldsProviderBaishan.tsx
│ │ │ ├── AccessConfigFieldsProviderBaotaPanel.tsx
│ │ │ ├── AccessConfigFieldsProviderBaotaPanelGo.tsx
│ │ │ ├── AccessConfigFieldsProviderBaotaWAF.tsx
│ │ │ ├── AccessConfigFieldsProviderBookMyName.tsx
│ │ │ ├── AccessConfigFieldsProviderBunny.tsx
│ │ │ ├── AccessConfigFieldsProviderBytePlus.tsx
│ │ │ ├── AccessConfigFieldsProviderCMCCCloud.tsx
│ │ │ ├── AccessConfigFieldsProviderCPanel.tsx
│ │ │ ├── AccessConfigFieldsProviderCTCCCloud.tsx
│ │ │ ├── AccessConfigFieldsProviderCacheFly.tsx
│ │ │ ├── AccessConfigFieldsProviderCdnfly.tsx
│ │ │ ├── AccessConfigFieldsProviderClouDNS.tsx
│ │ │ ├── AccessConfigFieldsProviderCloudflare.tsx
│ │ │ ├── AccessConfigFieldsProviderConstellix.tsx
│ │ │ ├── AccessConfigFieldsProviderDNSExit.tsx
│ │ │ ├── AccessConfigFieldsProviderDNSLA.tsx
│ │ │ ├── AccessConfigFieldsProviderDNSMadeEasy.tsx
│ │ │ ├── AccessConfigFieldsProviderDeSEC.tsx
│ │ │ ├── AccessConfigFieldsProviderDigiCert.tsx
│ │ │ ├── AccessConfigFieldsProviderDigitalOcean.tsx
│ │ │ ├── AccessConfigFieldsProviderDingTalkBot.tsx
│ │ │ ├── AccessConfigFieldsProviderDiscordBot.tsx
│ │ │ ├── AccessConfigFieldsProviderDogeCloud.tsx
│ │ │ ├── AccessConfigFieldsProviderDokploy.tsx
│ │ │ ├── AccessConfigFieldsProviderDuckDNS.tsx
│ │ │ ├── AccessConfigFieldsProviderDynu.tsx
│ │ │ ├── AccessConfigFieldsProviderDynv6.tsx
│ │ │ ├── AccessConfigFieldsProviderEmail.tsx
│ │ │ ├── AccessConfigFieldsProviderFlexCDN.tsx
│ │ │ ├── AccessConfigFieldsProviderFlyIO.tsx
│ │ │ ├── AccessConfigFieldsProviderGandinet.tsx
│ │ │ ├── AccessConfigFieldsProviderGcore.tsx
│ │ │ ├── AccessConfigFieldsProviderGlobalSignAtlas.tsx
│ │ │ ├── AccessConfigFieldsProviderGname.tsx
│ │ │ ├── AccessConfigFieldsProviderGoDaddy.tsx
│ │ │ ├── AccessConfigFieldsProviderGoEdge.tsx
│ │ │ ├── AccessConfigFieldsProviderGoogleTrustServices.tsx
│ │ │ ├── AccessConfigFieldsProviderHetzner.tsx
│ │ │ ├── AccessConfigFieldsProviderHostingde.tsx
│ │ │ ├── AccessConfigFieldsProviderHostinger.tsx
│ │ │ ├── AccessConfigFieldsProviderHuaweiCloud.tsx
│ │ │ ├── AccessConfigFieldsProviderIONOS.tsx
│ │ │ ├── AccessConfigFieldsProviderInfomaniak.tsx
│ │ │ ├── AccessConfigFieldsProviderJDCloud.tsx
│ │ │ ├── AccessConfigFieldsProviderKong.tsx
│ │ │ ├── AccessConfigFieldsProviderKsyun.tsx
│ │ │ ├── AccessConfigFieldsProviderKubernetes.tsx
│ │ │ ├── AccessConfigFieldsProviderLarkBot.tsx
│ │ │ ├── AccessConfigFieldsProviderLeCDN.tsx
│ │ │ ├── AccessConfigFieldsProviderLinode.tsx
│ │ │ ├── AccessConfigFieldsProviderLiteSSL.tsx
│ │ │ ├── AccessConfigFieldsProviderMattermost.tsx
│ │ │ ├── AccessConfigFieldsProviderMohua.tsx
│ │ │ ├── AccessConfigFieldsProviderNS1.tsx
│ │ │ ├── AccessConfigFieldsProviderNameDotCom.tsx
│ │ │ ├── AccessConfigFieldsProviderNameSilo.tsx
│ │ │ ├── AccessConfigFieldsProviderNamecheap.tsx
│ │ │ ├── AccessConfigFieldsProviderNetcup.tsx
│ │ │ ├── AccessConfigFieldsProviderNetlify.tsx
│ │ │ ├── AccessConfigFieldsProviderNginxProxyManager.tsx
│ │ │ ├── AccessConfigFieldsProviderOVHcloud.tsx
│ │ │ ├── AccessConfigFieldsProviderPorkbun.tsx
│ │ │ ├── AccessConfigFieldsProviderPowerDNS.tsx
│ │ │ ├── AccessConfigFieldsProviderProxmoxVE.tsx
│ │ │ ├── AccessConfigFieldsProviderQingCloud.tsx
│ │ │ ├── AccessConfigFieldsProviderQiniu.tsx
│ │ │ ├── AccessConfigFieldsProviderRFC2136.tsx
│ │ │ ├── AccessConfigFieldsProviderRainYun.tsx
│ │ │ ├── AccessConfigFieldsProviderRatPanel.tsx
│ │ │ ├── AccessConfigFieldsProviderS3.tsx
│ │ │ ├── AccessConfigFieldsProviderSSH.tsx
│ │ │ ├── AccessConfigFieldsProviderSSLCom.tsx
│ │ │ ├── AccessConfigFieldsProviderSafeLine.tsx
│ │ │ ├── AccessConfigFieldsProviderSectigo.tsx
│ │ │ ├── AccessConfigFieldsProviderSlackBot.tsx
│ │ │ ├── AccessConfigFieldsProviderSpaceship.tsx
│ │ │ ├── AccessConfigFieldsProviderSynologyDSM.tsx
│ │ │ ├── AccessConfigFieldsProviderTechnitiumDNS.tsx
│ │ │ ├── AccessConfigFieldsProviderTelegramBot.tsx
│ │ │ ├── AccessConfigFieldsProviderTencentCloud.tsx
│ │ │ ├── AccessConfigFieldsProviderTodayNIC.tsx
│ │ │ ├── AccessConfigFieldsProviderUCloud.tsx
│ │ │ ├── AccessConfigFieldsProviderUniCloud.tsx
│ │ │ ├── AccessConfigFieldsProviderUpyun.tsx
│ │ │ ├── AccessConfigFieldsProviderVercel.tsx
│ │ │ ├── AccessConfigFieldsProviderVolcEngine.tsx
│ │ │ ├── AccessConfigFieldsProviderVultr.tsx
│ │ │ ├── AccessConfigFieldsProviderWangsu.tsx
│ │ │ ├── AccessConfigFieldsProviderWeComBot.tsx
│ │ │ ├── AccessConfigFieldsProviderWebhook.tsx
│ │ │ ├── AccessConfigFieldsProviderWestcn.tsx
│ │ │ ├── AccessConfigFieldsProviderXinnet.tsx
│ │ │ ├── AccessConfigFieldsProviderZeroSSL.tsx
│ │ │ ├── _context.ts
│ │ │ └── _hooks.ts
│ │ ├── certificate/
│ │ │ ├── CertificateDetail.tsx
│ │ │ └── CertificateDetailDrawer.tsx
│ │ ├── icons/
│ │ │ ├── IconLanguageEnZh.tsx
│ │ │ ├── IconLanguageZhEn.tsx
│ │ │ ├── createIconComponent.ts
│ │ │ └── index.ts
│ │ ├── preset/
│ │ │ ├── PresetNotifyTemplatesPopselect.tsx
│ │ │ └── PresetScriptTemplatesPopselect.tsx
│ │ ├── provider/
│ │ │ ├── ACMEDns01ProviderSelect.tsx
│ │ │ ├── ACMEHttp01ProviderSelect.tsx
│ │ │ ├── AccessProviderPicker.tsx
│ │ │ ├── AccessProviderSelect.tsx
│ │ │ ├── CAProviderSelect.tsx
│ │ │ ├── DeploymentProviderPicker.tsx
│ │ │ ├── DeploymentProviderSelect.tsx
│ │ │ ├── NotificationProviderPicker.tsx
│ │ │ ├── NotificationProviderSelect.tsx
│ │ │ └── _shared.ts
│ │ └── workflow/
│ │ ├── WorkflowGraphExportBox.tsx
│ │ ├── WorkflowGraphExportModal.tsx
│ │ ├── WorkflowGraphImportInputBox.tsx
│ │ ├── WorkflowGraphImportModal.tsx
│ │ ├── WorkflowRunDetail.tsx
│ │ ├── WorkflowRunDetailDrawer.tsx
│ │ ├── WorkflowStatus.tsx
│ │ └── designer/
│ │ ├── Designer.tsx
│ │ ├── Minimap.tsx
│ │ ├── NodeDrawer.tsx
│ │ ├── NodeRender.tsx
│ │ ├── NodeRenderContext.ts
│ │ ├── Toolbar.tsx
│ │ ├── _context.ts
│ │ ├── _util.ts
│ │ ├── elements/
│ │ │ ├── Adder.tsx
│ │ │ ├── BranchAdder.tsx
│ │ │ ├── Collapse.tsx
│ │ │ ├── DragHighlightAdder.tsx
│ │ │ ├── DragNode.tsx
│ │ │ ├── DraggingAdder.tsx
│ │ │ ├── Null.tsx
│ │ │ ├── TryCatchCollapse.tsx
│ │ │ └── index.ts
│ │ ├── flowgram.css
│ │ ├── forms/
│ │ │ ├── BizApplyNodeConfigDrawer.tsx
│ │ │ ├── BizApplyNodeConfigFieldsProvider.tsx
│ │ │ ├── BizApplyNodeConfigFieldsProviderAWSRoute53.tsx
│ │ │ ├── BizApplyNodeConfigFieldsProviderAliyunESA.tsx
│ │ │ ├── BizApplyNodeConfigFieldsProviderHuaweiCloudDNS.tsx
│ │ │ ├── BizApplyNodeConfigFieldsProviderJDCloudDNS.tsx
│ │ │ ├── BizApplyNodeConfigFieldsProviderLocal.tsx
│ │ │ ├── BizApplyNodeConfigFieldsProviderS3.tsx
│ │ │ ├── BizApplyNodeConfigFieldsProviderSSH.tsx
│ │ │ ├── BizApplyNodeConfigForm.tsx
│ │ │ ├── BizDeployNodeConfigDrawer.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProvider.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProvider1Panel.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProvider1PanelConsole.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderAPISIX.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderAWSACM.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderAWSCloudFront.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderAWSIAM.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderAliyunALB.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderAliyunAPIGW.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderAliyunCAS.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderAliyunCASDeploy.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderAliyunCDN.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderAliyunCLB.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderAliyunDCDN.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderAliyunDDoSPro.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderAliyunESA.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderAliyunESASaaS.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderAliyunFC.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderAliyunGA.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderAliyunLive.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderAliyunNLB.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderAliyunOSS.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderAliyunVOD.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderAliyunWAF.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderAzureKeyVault.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderBaiduCloudAppBLB.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderBaiduCloudBLB.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderBaiduCloudCDN.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderBaishanCDN.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderBaotaPanel.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderBaotaPanelConsole.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderBaotaPanelGo.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderBaotaPanelGoConsole.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderBaotaWAF.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderBaotaWAFConsole.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderBunnyCDN.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderBytePlusCDN.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderCPanel.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderCTCCCloudAO.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderCTCCCloudCDN.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderCTCCCloudELB.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderCTCCCloudFaaS.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderCTCCCloudICDN.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderCTCCCloudLVDN.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderCdnfly.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderDogeCloudCDN.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderFlexCDN.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderFlyIO.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderGcoreCDN.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderGoEdge.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderHuaweiCloudCDN.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderHuaweiCloudELB.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderHuaweiCloudOBS.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderHuaweiCloudWAF.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderJDCloudALB.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderJDCloudCDN.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderJDCloudLive.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderJDCloudVOD.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderKong.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderKsyunCDN.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderKubernetesSecret.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderLeCDN.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderLocal.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderMohuaMVH.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderNetlify.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderNginxProxyManager.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderProxmoxVE.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderQiniuCDN.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderQiniuKodo.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderQiniuPili.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderRainYunRCDN.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderRainYunSSLCenter.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderRatPanel.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderS3.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderSSH.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderSafeLine.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderSynologyDSM.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderTencentCloudCDN.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderTencentCloudCLB.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderTencentCloudCOS.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderTencentCloudCSS.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderTencentCloudECDN.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderTencentCloudEO.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderTencentCloudGAAP.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderTencentCloudSCF.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderTencentCloudSSL.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderTencentCloudSSLDeploy.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderTencentCloudSSLUpdate.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderTencentCloudVOD.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderTencentCloudWAF.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderUCloudUALB.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderUCloudUCDN.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderUCloudUCLB.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderUCloudUEWAF.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderUCloudUPathX.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderUCloudUS3.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderUniCloudWebHost.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderUpyunCDN.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderUpyunFile.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderVolcEngineALB.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderVolcEngineCDN.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderVolcEngineCLB.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderVolcEngineCertCenter.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderVolcEngineDCDN.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderVolcEngineImageX.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderVolcEngineLive.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderVolcEngineTOS.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderVolcEngineVOD.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderVolcEngineWAF.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderWangsuCDN.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderWangsuCDNPro.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderWangsuCertificate.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderWebhook.tsx
│ │ │ ├── BizDeployNodeConfigForm.tsx
│ │ │ ├── BizMonitorNodeConfigDrawer.tsx
│ │ │ ├── BizMonitorNodeConfigForm.tsx
│ │ │ ├── BizNotifyNodeConfigDrawer.tsx
│ │ │ ├── BizNotifyNodeConfigFieldsProvider.tsx
│ │ │ ├── BizNotifyNodeConfigFieldsProviderDiscordBot.tsx
│ │ │ ├── BizNotifyNodeConfigFieldsProviderEmail.tsx
│ │ │ ├── BizNotifyNodeConfigFieldsProviderMattermost.tsx
│ │ │ ├── BizNotifyNodeConfigFieldsProviderSlackBot.tsx
│ │ │ ├── BizNotifyNodeConfigFieldsProviderTelegramBot.tsx
│ │ │ ├── BizNotifyNodeConfigFieldsProviderWebhook.tsx
│ │ │ ├── BizNotifyNodeConfigForm.tsx
│ │ │ ├── BizUploadNodeConfigDrawer.tsx
│ │ │ ├── BizUploadNodeConfigForm.tsx
│ │ │ ├── BranchBlockNodeConfigDrawer.tsx
│ │ │ ├── BranchBlockNodeConfigExprInputBox.tsx
│ │ │ ├── BranchBlockNodeConfigForm.tsx
│ │ │ ├── DelayNodeConfigDrawer.tsx
│ │ │ ├── DelayNodeConfigForm.tsx
│ │ │ ├── StartNodeConfigDrawer.tsx
│ │ │ ├── StartNodeConfigForm.tsx
│ │ │ ├── _context.ts
│ │ │ └── _shared.tsx
│ │ ├── index.ts
│ │ └── nodes/
│ │ ├── BizApplyNodeRegistry.tsx
│ │ ├── BizDeployNodeRegistry.tsx
│ │ ├── BizMonitorNodeRegistry.tsx
│ │ ├── BizNotifyNodeRegistry.tsx
│ │ ├── BizUploadNodeRegistry.tsx
│ │ ├── ConditionNode.tsx
│ │ ├── DelayNode.tsx
│ │ ├── EndNode.tsx
│ │ ├── StartNode.tsx
│ │ ├── TryCatchNode.tsx
│ │ ├── _example.ts
│ │ ├── _shared.tsx
│ │ ├── index.ts
│ │ └── typings.ts
│ ├── domain/
│ │ ├── access.ts
│ │ ├── app.ts
│ │ ├── certificate.ts
│ │ ├── provider.ts
│ │ ├── settings.ts
│ │ ├── statistics.ts
│ │ ├── workflow.ts
│ │ ├── workflowLog.ts
│ │ └── workflowRun.ts
│ ├── global.css
│ ├── hooks/
│ │ ├── index.ts
│ │ ├── useAntdForm.ts
│ │ ├── useAntdFormName.ts
│ │ ├── useAppSettings.ts
│ │ ├── useBrowserTheme.ts
│ │ ├── useTriggerElement.ts
│ │ ├── useVersionChecker.ts
│ │ └── useZustandShallowSelector.ts
│ ├── i18n/
│ │ ├── index.ts
│ │ └── locales/
│ │ ├── en/
│ │ │ ├── index.ts
│ │ │ ├── nls.access.json
│ │ │ ├── nls.certificate.json
│ │ │ ├── nls.common.json
│ │ │ ├── nls.dashboard.json
│ │ │ ├── nls.login.json
│ │ │ ├── nls.preset.json
│ │ │ ├── nls.provider.json
│ │ │ ├── nls.settings.json
│ │ │ ├── nls.workflow.json
│ │ │ ├── nls.workflow.nodes.json
│ │ │ ├── nls.workflow.runs.json
│ │ │ └── nls.workflow.vars.json
│ │ ├── index.ts
│ │ └── zh/
│ │ ├── index.ts
│ │ ├── nls.access.json
│ │ ├── nls.certificate.json
│ │ ├── nls.common.json
│ │ ├── nls.dashboard.json
│ │ ├── nls.login.json
│ │ ├── nls.preset.json
│ │ ├── nls.provider.json
│ │ ├── nls.settings.json
│ │ ├── nls.workflow.json
│ │ ├── nls.workflow.nodes.json
│ │ ├── nls.workflow.runs.json
│ │ └── nls.workflow.vars.json
│ ├── index.css
│ ├── main.tsx
│ ├── pages/
│ │ ├── AuthLayout.tsx
│ │ ├── ConsoleLayout.tsx
│ │ ├── ErrorLayout.tsx
│ │ ├── accesses/
│ │ │ ├── AccessList.tsx
│ │ │ └── AccessNew.tsx
│ │ ├── certificates/
│ │ │ └── CertificateList.tsx
│ │ ├── dashboard/
│ │ │ └── Dashboard.tsx
│ │ ├── login/
│ │ │ └── Login.tsx
│ │ ├── presets/
│ │ │ ├── PresetList.tsx
│ │ │ ├── PresetListNotifyTemplates.tsx
│ │ │ └── PresetListScriptTemplates.tsx
│ │ ├── settings/
│ │ │ ├── Settings.tsx
│ │ │ ├── SettingsAbout.tsx
│ │ │ ├── SettingsAccount.tsx
│ │ │ ├── SettingsAppearance.tsx
│ │ │ ├── SettingsDiagnostics.tsx
│ │ │ ├── SettingsPersistence.tsx
│ │ │ └── SettingsSSLProvider.tsx
│ │ └── workflows/
│ │ ├── WorkflowDetail.tsx
│ │ ├── WorkflowDetailDesign.tsx
│ │ ├── WorkflowDetailRuns.tsx
│ │ ├── WorkflowList.tsx
│ │ └── WorkflowNew.tsx
│ ├── repository/
│ │ ├── _pocketbase.ts
│ │ ├── access.ts
│ │ ├── admin.ts
│ │ ├── certificate.ts
│ │ ├── settings.ts
│ │ ├── system.ts
│ │ ├── workflow.ts
│ │ ├── workflowLog.ts
│ │ └── workflowRun.ts
│ ├── routers/
│ │ └── index.tsx
│ ├── stores/
│ │ ├── access/
│ │ │ ├── index.ts
│ │ │ └── types.ts
│ │ ├── settings/
│ │ │ ├── contact/
│ │ │ │ ├── index.ts
│ │ │ │ └── types.ts
│ │ │ ├── index.ts
│ │ │ ├── persistence/
│ │ │ │ ├── index.ts
│ │ │ │ └── types.ts
│ │ │ ├── sslprovider/
│ │ │ │ ├── index.ts
│ │ │ │ └── types.ts
│ │ │ └── template/
│ │ │ ├── index.ts
│ │ │ └── types.ts
│ │ └── workflow/
│ │ ├── index.ts
│ │ └── types.ts
│ └── utils/
│ ├── browser.ts
│ ├── cron.ts
│ ├── css.ts
│ ├── error.ts
│ ├── file.ts
│ ├── search.ts
│ ├── validator.ts
│ └── x509.ts
├── tsconfig.app.json
├── tsconfig.json
├── tsconfig.node.json
├── types/
│ ├── global.d.ts
│ ├── global.utility.d.ts
│ ├── shims-antd.d.ts
│ └── vite-env.d.ts
└── vite.config.ts
================================================
FILE CONTENTS
================================================
================================================
FILE: .dockerignore
================================================
vendor
ui/node_modules
pb_data
build
.vscode
================================================
FILE: .editorconfig
================================================
# http://editorconfig.org
root = true
[*]
charset = utf-8
end_of_line = crlf
indent_size = 2
indent_style = space
trim_trailing_whitespace = true
insert_final_newline = true
[*.go]
charset = utf-8
end_of_line = lf
indent_size = 2
indent_style = tab
================================================
FILE: .gitattributes
================================================
* text=auto eol=crlf
*.go text eol=lf
================================================
FILE: .github/FUNDING.yml
================================================
# These are supported funding model platforms
github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
patreon: # Replace with a single Patreon username
open_collective: # Replace with a single Open Collective username
ko_fi: # Replace with a single Ko-fi username
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
liberapay: # Replace with a single Liberapay username
issuehunt: # Replace with a single IssueHunt username
lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry
polar: # Replace with a single Polar username
buy_me_a_coffee: # Replace with a single Buy Me a Coffee username
thanks_dev: # Replace with a single thanks.dev username
custom: ["https://profile.ikit.fun/sponsors/"]
================================================
FILE: .github/ISSUE_TEMPLATE/1-bug_report.yml
================================================
name: "🐞 Bug Report"
description: "Create a report to help us improve. / 报告缺陷来帮助我们完善。"
title: "[Bug] Describe the Bug briefly / 简要描述你发现的缺陷"
type: bug
labels:
- bug
body:
- type: markdown
attributes:
value: |
**Before you submit the issue, please make sure of the following checklist**:
1. Yes, I'm using the latest release and can reproduce the issue. Issues that are not in the latest version will be closed directly.
2. Yes, I've searched for [existing issues](https://github.com/certimate-go/certimate/issues) (including closed ones) on GitHub and didn't find any similar.
3. Yes, I've read the [documentation](https://docs.certimate.me/) and didn't find any similar.
4. Please describe the problem in detail according to the template specification, otherwise the issue will be closed directly.
5. Please limit one report per issue.
**在提交 Issue 之前,请确认以下事项**:
1. 我**确认**已尝试过使用当前最新版本,并能复现问题。由于开发者精力有限,非当前最新版本的问题将被直接关闭,感谢理解。
2. 我**确认**已搜索过[已有的 Issues](https://github.com/certimate-go/certimate/issues)(包括已关闭的),没有类似的问题。
3. 我**确认**已阅读过[文档](https://docs.certimate.me/),没有类似的问题。
4. 请**务必**按照模板规范详细描述问题,否则 Issue 将会被直接关闭。
5. 请保持每个 Issue 只包含一个缺陷报告。如果有多个缺陷,请分别提交 Issue。
- type: input
attributes:
label: Release Version / 软件版本
description: Please provide the specific version of Certimate. / 请提供 Certimate 的具体版本(请不要填写 `latest` 之类的无效版本号)。
placeholder: (e.g. v1.0.0. `latest` is **NOT** a valid version!)
validations:
required: true
- type: textarea
attributes:
label: Description / 缺陷描述
description: Describe the bug you found in detail and clearly, and upload screenshots if possible. / 请详细清晰地描述你发现的缺陷或故障,如果可能请上传截图。
validations:
required: true
- type: textarea
attributes:
label: Steps to reproduce / 复现步骤
description: Please walk us through it step by step. / 请提供可复现的完整步骤。
placeholder: |
1. ...
2. ...
3. ...
...
validations:
required: true
- type: textarea
attributes:
label: Logs / 日志
description: Add logs here if available. / 在此处添加日志信息(如果有的话)。
value: |-
<details>
```console
# Paste logs here / 请在此粘贴日志
```
</details>
validations:
required: false
- type: textarea
attributes:
label: Miscellaneous / 其他
description: Add any other context about the issue here. / 在此处添加关于该 Issue 的任何其他信息。
validations:
required: false
- type: checkboxes
attributes:
label: Contribution / 贡献代码
options:
- label: I am interested in contributing a PR for this! / 我乐意为此提交代码并发起 PR!
required: false
================================================
FILE: .github/ISSUE_TEMPLATE/2-feature_request.yml
================================================
name: "💡 Feature Request"
description: "Suggest an idea for this project. / 提出新功能请求或改进意见。"
title: "[Feature] Describe the feature briefly / 简要描述你希望实现的功能"
type: feature
labels:
- enhancement
body:
- type: markdown
attributes:
value: |
**Before you submit the issue, please make sure of the following checklist**:
1. Yes, I'm using the latest release.
2. Yes, I've searched for [existing issues](https://github.com/certimate-go/certimate/issues) (including closed ones) on GitHub and didn't find any similar.
3. Yes, I've read the [documentation](https://docs.certimate.me/) and didn't find any similar.
4. Please describe the problem in detail according to the template specification, otherwise the issue will be closed directly.
5. Please limit one request per issue.
**在提交 Issue 之前,请确认以下事项**:
1. 我**确认**是基于当前最新大版本而提出的新功能请求或改进意见。
2. 我**确认**已搜索过[已有的 Issues](https://github.com/certimate-go/certimate/issues)(包括已关闭的),没有类似的问题。
3. 我**确认**已阅读过[文档](https://docs.certimate.me/),没有类似的问题。
4. 请**务必**按照模板规范详细描述问题,否则 Issue 将会被直接关闭。
5. 请保持每个 Issue 只包含一个功能请求。如果有多个需求,请分别提交 Issue。
- type: textarea
attributes:
label: Description / 功能描述
description: Describe the feature you'd like to add in detail and clearly, and upload screenshots if possible. / 请详细清晰地描述你希望添加的功能,如果可能请上传截图。
validations:
required: true
- type: textarea
attributes:
label: Motivation / 请求动机
description: Why is this feature helpful to the project? / 为什么这个功能对项目有帮助?
validations:
required: true
- type: textarea
attributes:
label: Miscellaneous / 其他
description: Add any other context about the problem here. / 在此处添加关于该 Issue 的任何其他信息(新增提供商请求请补充 API 文档链接等资料)。
validations:
required: false
- type: checkboxes
attributes:
label: Contribution / 贡献代码
options:
- label: I am interested in contributing a PR for this! / 我乐意为此提交代码并发起 PR!
required: false
================================================
FILE: .github/ISSUE_TEMPLATE/3-questions.yml
================================================
name: "❓ Questions"
description: "Have problem in use and need help? / 遇到了困难需要求助?"
title: "Describe the question briefly / 简要描述你遇到的问题"
type: question
body:
- type: markdown
attributes:
value: |
**Before you submit the issue, please make sure of the following checklist**:
1. Yes, I'm using the latest release.
2. Yes, I've searched for [existing issues](https://github.com/certimate-go/certimate/issues) (including closed ones) on GitHub and didn't find any similar.
3. Yes, I've read the [documentation](https://docs.certimate.me/) and didn't find any similar.
4. Please describe the problem in detail according to the template specification, otherwise the issue will be closed directly.
5. Please limit one question per issue.
**在提交 Issue 之前,请确认以下事项**:
1. 我**确认**正在使用的是当前最新版本。
2. 我**确认**已搜索过[已有的 Issues](https://github.com/certimate-go/certimate/issues)(包括已关闭的),没有类似的问题。
3. 我**确认**已阅读过[文档](https://docs.certimate.me/),没有类似的问题。
4. 请**务必**按照模板规范详细描述问题,否则 Issue 将会被直接关闭。
5. 请保持每个 Issue 只包含一个问题求助。如果有多个问题,请分别提交 Issue。
- type: input
attributes:
label: Release Version / 软件版本
description: Please provide the specific version of Certimate. / 请提供 Certimate 的具体版本(请不要填写 `latest` 之类的无效版本号)。
placeholder: (e.g. v1.0.0)
validations:
required: true
- type: textarea
attributes:
label: Description / 问题描述
description: Describe the problem you encountered in detail and clearly, and upload screenshots if possible. / 请详细清晰地描述你遇到的问题,如果可能请上传截图。
validations:
required: true
- type: textarea
attributes:
label: Miscellaneous / 其他
description: Add any other context about the problem here. / 在此处添加关于该问题的任何其他信息。
validations:
required: false
================================================
FILE: .github/ISSUE_TEMPLATE/config.yml
================================================
blank_issues_enabled: false
contact_links:
- name: "🌐 Community / 社群讨论"
about: "Join in our Telegram channel. / 加入到电报频道寻求更多帮助。"
url: "https://t.me/+ZXphsppxUg41YmVl"
- name: "📖 FAQ / 常见问题"
about: "Please take a look to FAQs. / 请先阅读文档 FAQ,可能会有你需要的答案。"
url: "https://docs.certimate.me/docs/reference/faq"
================================================
FILE: .github/PULL_REQUEST_TEMPLATE.md
================================================
<!--
IMPORTANT! Before opening a Pull Request:
- Please ensure you have read the `CONTRIBUTING.md` in the repository.
- Please ensure you have opened an issue first, and got feedback from the maintainers.
- Please ensure you are **NOT** fork within a GitHub organization, to [allowing edits by maintainers](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/allowing-changes-to-a-pull-request-branch-created-from-a-fork).
- By submitting this pull request, you agree to license your contributions under the terms of the MIT License.
---
重要必读!在提交 PR 之前:
- 请确保已阅读仓库根目录下的 `CONTRIBUTING_zh.md` 贡献指南。
- 请确保已创建了一个关联的 Issue,并等待来自维护者的反馈。
- 请确保使用的是个人 fork、而非组织 fork 来创建 PR,以便维护者可以[编辑拉取请求](https://docs.github.com/zh/pull-requests/collaborating-with-pull-requests/working-with-forks/allowing-changes-to-a-pull-request-branch-created-from-a-fork)。
- 提交本 PR 即表示,您同意可依据 MIT 许可协议的相关条款对您的贡献进行授权。
-->
================================================
FILE: .github/workflows/push_image.yml
================================================
name: Docker Image CI (stable versions)
on:
push:
tags:
- "v[0-9]*"
- "!v*alpha*"
- "!v*beta*"
- "!v*rc*"
workflow_dispatch:
inputs:
tag:
description: "Tag version to be used for Docker image"
required: true
default: "latest"
jobs:
prepare-ui:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Set up Node.js
uses: actions/setup-node@v6
with:
node-version: 24
- name: Build UI
run: |
npm --prefix=./ui ci
npm --prefix=./ui run build
- name: Upload UI build artifacts
uses: actions/upload-artifact@v5
with:
name: ui-build
path: ./ui/dist
retention-days: 1
build-and-push:
needs: prepare-ui
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v6
- name: Free disk space
uses: BRAINSia/free-disk-space@v2
with:
tool-cache: false
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Docker meta
id: meta
uses: docker/metadata-action@v5
with:
images: |
certimate/certimate
registry.cn-shanghai.aliyuncs.com/certimate/certimate
tags: |
type=ref,event=branch
type=ref,event=pr
type=semver,pattern=v{{version}}
type=semver,pattern=v{{major}}.{{minor}}
- name: Log in to DOCKERHUB
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}
- name: Log in to ALIYUNCS
uses: docker/login-action@v3
with:
registry: registry.cn-shanghai.aliyuncs.com
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Download UI build artifacts
uses: actions/download-artifact@v6
with:
name: ui-build
path: ./ui/dist
- name: Build and push Docker image
uses: docker/build-push-action@v6
with:
context: .
# file: ./Dockerfile
file: ./Dockerfile.gh
platforms: linux/amd64,linux/arm64,linux/arm/v7
push: true
tags: ${{ steps.meta.outputs.tags }}
================================================
FILE: .github/workflows/push_image_next.yml
================================================
name: Docker Image CI (preview versions)
on:
push:
tags:
- "v[0-9]*-alpha*"
- "v[0-9]*-beta*"
- "v[0-9]*-rc*"
workflow_dispatch:
inputs:
tag:
description: "Tag version to be used for Docker image"
required: true
default: "next"
jobs:
prepare-ui:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Set up Node.js
uses: actions/setup-node@v6
with:
node-version: 24
- name: Build UI
run: |
npm --prefix=./ui ci
npm --prefix=./ui run build
- name: Upload UI build artifacts
uses: actions/upload-artifact@v5
with:
name: ui-build
path: ./ui/dist
retention-days: 1
build-and-push:
needs: prepare-ui
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v6
- name: Free disk space
uses: BRAINSia/free-disk-space@v2
with:
tool-cache: false
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Docker meta
id: meta
uses: docker/metadata-action@v5
with:
images: |
certimate/certimate
registry.cn-shanghai.aliyuncs.com/certimate/certimate
tags: |
type=ref,event=tag,pattern={{version}}
type=raw,value=next
flavor: |
latest=false
- name: Log in to DOCKERHUB
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}
- name: Log in to ALIYUNCS
uses: docker/login-action@v3
with:
registry: registry.cn-shanghai.aliyuncs.com
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Download UI build artifacts
uses: actions/download-artifact@v6
with:
name: ui-build
path: ./ui/dist
- name: Build and push Docker image
uses: docker/build-push-action@v6
with:
context: .
# file: ./Dockerfile
file: ./Dockerfile.gh
platforms: linux/amd64,linux/arm64,linux/arm/v7
push: true
tags: ${{ steps.meta.outputs.tags }}
================================================
FILE: .github/workflows/release.yml
================================================
name: Release
on:
push:
tags:
- "v[0-9]*"
jobs:
prepare-ui:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Set up Node.js
uses: actions/setup-node@v6
with:
node-version: 24
- name: Build UI
run: |
npm --prefix=./ui ci
npm --prefix=./ui run build
- name: Upload UI build artifacts
uses: actions/upload-artifact@v5
with:
name: ui-build
path: ./ui/dist
retention-days: 1
build-linux:
needs: prepare-ui
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Set up Go
uses: actions/setup-go@v6
with:
go-version-file: "go.mod"
- name: Download UI build artifacts
uses: actions/download-artifact@v6
with:
name: ui-build
path: ./ui/dist
- name: Build Linux binaries
env:
CGO_ENABLED: 0
GOOS: linux
run: |
mkdir -p dist/linux
for ARCH in amd64 arm64 armv7; do
if [ "$ARCH" == "armv7" ]; then
go env -w GOARCH=arm
go env -w GOARM=7
else
go env -w GOARCH=$ARCH
go env -u GOARM
fi
go build -trimpath -ldflags="-s -w" -o dist/linux/certimate_${GITHUB_REF#refs/tags/}_linux_$ARCH
done
- name: Upload Linux binaries
uses: actions/upload-artifact@v5
with:
name: linux-binaries
path: dist/linux/
retention-days: 1
build-macos:
needs: prepare-ui
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Set up Go
uses: actions/setup-go@v6
with:
go-version-file: "go.mod"
- name: Download UI build artifacts
uses: actions/download-artifact@v6
with:
name: ui-build
path: ./ui/dist
- name: Build macOS binaries
env:
CGO_ENABLED: 0
GOOS: darwin
run: |
mkdir -p dist/darwin
for ARCH in amd64 arm64; do
go env -w GOARCH=$ARCH
go build -trimpath -ldflags="-s -w" -o dist/darwin/certimate_${GITHUB_REF#refs/tags/}_darwin_$ARCH
done
- name: Upload macOS binaries
uses: actions/upload-artifact@v5
with:
name: macos-binaries
path: dist/darwin/
retention-days: 1
build-windows:
needs: prepare-ui
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Set up Go
uses: actions/setup-go@v6
with:
go-version-file: "go.mod"
- name: Download UI build artifacts
uses: actions/download-artifact@v6
with:
name: ui-build
path: ./ui/dist
- name: Build Windows binaries
env:
CGO_ENABLED: 0
GOOS: windows
run: |
mkdir -p dist/windows
for ARCH in amd64 arm64 386; do
go env -w GOARCH=$ARCH
go build -trimpath -ldflags="-s -w" -o dist/windows/certimate_${GITHUB_REF#refs/tags/}_windows_$ARCH.exe
done
- name: Upload Windows binaries
uses: actions/upload-artifact@v5
with:
name: windows-binaries
path: dist/windows/
retention-days: 1
create-release:
needs: [build-linux, build-macos, build-windows]
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Download all binaries
uses: actions/download-artifact@v6
with:
path: ./artifacts
- name: Prepare release assets
run: |
mkdir -p dist
cp -r artifacts/linux-binaries/* dist/
cp -r artifacts/macos-binaries/* dist/
cp -r artifacts/windows-binaries/* dist/
find dist -type f -not -name "*.exe" -exec chmod +x {} \;
cd dist
for bin in certimate_*; do
if [[ "$bin" == *".exe" ]]; then
entrypoint="certimate.exe"
else
entrypoint="certimate"
fi
tmpdir=$(mktemp -d)
cp "$bin" "${tmpdir}/${entrypoint}"
cp ../LICENSE "$tmpdir/LICENSE"
cp ../README.md "$tmpdir/README.md"
cp ../CHANGELOG.md "$tmpdir/CHANGELOG.md"
if [[ "$bin" == *".exe" ]]; then
zip -j "${bin%.exe}.zip" "$tmpdir"/*
else
zip -j -X "${bin}.zip" "$tmpdir"/*
fi
rm -rf "$tmpdir"
done
sha256sum *.zip > checksums.txt
- name: Create Release
uses: softprops/action-gh-release@v2
with:
files: |
dist/*.zip
dist/checksums.txt
draft: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
================================================
FILE: .github/workflows/release_sync_gitee.py
================================================
#!/usr/bin/env python3
import logging
import json
import mimetypes
import tempfile
import os
import random
import re
import shutil
import time
from urllib import request
from urllib.error import HTTPError
GITHUB_REPO = "certimate-go/certimate"
GITEE_REPO = "certimate-go/certimate"
GITEE_TOKEN = os.getenv("GITEE_TOKEN", "")
SYNC_MARKER = "SYNCING FROM GITHUB, PLEASE WAIT ..."
TEMP_DIR = tempfile.mkdtemp()
logging.basicConfig(level=logging.INFO)
def do_httpreq(url, method="GET", headers=None, data=None):
req = request.Request(url, data=data, method=method)
headers = headers or {}
for key, value in headers.items():
req.add_header(key, value)
try:
with request.urlopen(req) as resp:
resp_data = resp.read().decode("utf-8")
if resp_data:
try:
return json.loads(resp_data)
except json.JSONDecodeError:
pass
return None
except HTTPError as e:
errmsg = ""
if e.readable():
try:
errmsg = e.read().decode('utf-8')
errmsg = errmsg.replace("\r", "\\r").replace("\n", "\\n")
except:
pass
logging.error(f"Error occurred when sending request: status={e.status}, response={errmsg}")
raise e
except Exception as e:
raise e
def get_github_stable_release():
page = 1
while True:
releases = do_httpreq(
url=f"https://api.github.com/repos/{GITHUB_REPO}/releases?page={page}&per_page=100",
headers={"Accept": "application/vnd.github+json"},
)
if not releases or len(releases) == 0:
break
for release in releases:
release_name = release.get("name", "")
if re.match(r"^v[0-9]", release_name):
if any(
x in release_name
for x in ["alpha", "beta", "rc", "preview", "test", "unstable"]
):
continue
return release
page += 1
return None
def get_gitee_release_list():
page = 1
list = []
while True:
releases = do_httpreq(
url=f"https://gitee.com/api/v5/repos/{GITEE_REPO}/releases?access_token={GITEE_TOKEN}&page={page}&per_page=100",
)
if not releases or len(releases) == 0:
break
list.extend(releases)
page += 1
return list
def get_gitee_release_by_tag(tag_name):
releases = get_gitee_release_list()
for release in releases:
if release.get("tag_name") == tag_name:
return release
return None
def delete_gitee_release(release_info):
if not release_info:
raise ValueError("Release info is invalid")
release_id = release_info.get("id", "")
release_name = release_info.get("tag_name", "")
if not release_id:
raise ValueError("Release ID is missing")
attachpage = 1
attachfiles = []
while True:
releases = do_httpreq(
url=f"https://gitee.com/api/v5/repos/{GITEE_REPO}/releases/{release_id}/attach_files?access_token={GITEE_TOKEN}&page={attachpage}&per_page=100",
)
if not releases or len(releases) == 0:
break
attachfiles.extend(releases)
attachpage += 1
for attachfile in attachfiles:
attachfile_id = attachfile.get("id")
attachfile_name = attachfile.get("name")
logging.info("Trying to delete Gitee attach file: %s/%s", release_name, attachfile_name)
do_httpreq(
url=f"https://gitee.com/api/v5/repos/{GITEE_REPO}/releases/{release_id}/attach_files/{attachfile_id}?access_token={GITEE_TOKEN}",
method="DELETE",
)
logging.info("Trying to delete Gitee release: %s", release_name)
do_httpreq(
url=f"https://gitee.com/api/v5/repos/{GITEE_REPO}/releases/{release_id}?access_token={GITEE_TOKEN}",
method="DELETE",
)
def create_gitee_release(name, tag, body, prerelease, gh_assets):
release_info = do_httpreq(
f"https://gitee.com/api/v5/repos/{GITEE_REPO}/releases?access_token={GITEE_TOKEN}",
method="POST",
headers={"Content-Type": "application/json"},
data=json.dumps({
"tag_name": tag,
"name": name,
"body": SYNC_MARKER,
"prerelease": prerelease,
"target_commitish": "",
}).encode("utf-8"),
)
if not release_info or "id" not in release_info:
return None
logging.info("Gitee release created")
release_id = release_info["id"]
assets_dir = os.path.join(TEMP_DIR, "assets")
os.makedirs(assets_dir, exist_ok=True)
gh_assets = gh_assets or []
for asset in gh_assets:
logging.info("Tring to download asset from GitHub: %s", asset["name"])
opener = request.build_opener()
request.install_opener(opener)
download_ts = time.time()
download_url = asset.get("browser_download_url")
download_path = os.path.join(assets_dir, asset["name"])
def _hook(blocknum, blocksize, totalsize):
nonlocal download_ts
TIMESPAN = 5 # print progress every 5sec
ts = time.time()
pct = min(round(100 * blocknum * blocksize / totalsize, 2), 100)
if (ts - download_ts < TIMESPAN) and (pct < 100):
return
download_ts = ts
logging.info(f"Downloading {download_url} >>> {pct}%")
request.urlretrieve(download_url, download_path, _hook)
for asset in gh_assets:
logging.info("Tring to upload asset to Gitee: %s", asset["name"])
boundary = '----boundary' + ''.join(random.choice('0123456789abcdef') for _ in range(16))
print(f"Using boundary: {boundary}")
with open(os.path.join(assets_dir, asset["name"]), 'rb') as f:
attachfile_mime = mimetypes.guess_type(asset["name"])[0] or 'application/octet-stream'
attachfile_req = []
attachfile_req.append(f"--{boundary}")
attachfile_req.append(f'Content-Disposition: form-data; name="file"; filename="{asset["name"]}"')
attachfile_req.append(f"Content-Type: {attachfile_mime}")
attachfile_req.append("")
attachfile_req.append(f.read().decode('latin-1'))
attachfile_req.append(f"--{boundary}--")
attachfile_req.append("")
attachfile_req = "\r\n".join(attachfile_req).encode('latin-1')
do_httpreq(
f"https://gitee.com/api/v5/repos/{GITEE_REPO}/releases/{release_id}/attach_files?access_token={GITEE_TOKEN}",
method="POST",
headers={'Content-Type': f'multipart/form-data; boundary={boundary}'},
data=attachfile_req,
)
logging.info("Asset uploaded: %s", asset["name"])
release_info = do_httpreq(
f"https://gitee.com/api/v5/repos/{GITEE_REPO}/releases/{release_id}?access_token={GITEE_TOKEN}",
method="PATCH",
headers={"Content-Type": "application/json"},
data=json.dumps({
"tag_name": tag,
"name": name,
"body": f"**此发行版同步自 GitHub,完整变更日志请访问 https://github.com/{GITHUB_REPO}/releases/{tag} 查看。**\n\n**因 Gitee 存储空间容量有限,仅能保留最新一个发行版,如需其余版本请访问 GitHub 获取。**\n\n---\n\n" + body,
"prerelease": prerelease,
}).encode("utf-8"),
)
logging.info("Gitee release updated")
return release_info
def main():
try:
# 获取 GitHub 最新稳定发行版
github_release = get_github_stable_release()
if not github_release:
logging.warning("GitHub stable release not found. Foget to release?")
return
else:
logging.info("GitHub stable release found: %s", github_release.get('name'))
# 提取稳定版的信息
release_name = github_release.get("name")
release_tag = github_release.get("tag_name")
release_body = github_release.get("body")
release_prerelease = github_release.get("prerelease", False)
release_assets = github_release.get("assets", [])
# 检查 Gitee 是否已有同名发行版
gitee_release = get_gitee_release_by_tag(release_tag)
if gitee_release and gitee_release.get("body") == SYNC_MARKER:
logging.warning("Gitee syncing release found, cleaning up...")
delete_gitee_release(gitee_release)
elif gitee_release:
logging.info("Gitee release already exists, exit.")
return
# 同步发行版
gitee_release = create_gitee_release(release_name, release_tag, release_body, release_prerelease, release_assets)
if not gitee_release:
logging.warning("Failed to create Gitee release.")
return
# 清除历史发行版
gitee_release_list = get_gitee_release_list()
for release in gitee_release_list:
if release.get("tag_name") == release_tag:
continue
else:
delete_gitee_release(release)
logging.info("Sync release completed.")
except Exception as e:
logging.fatal(str(e))
exit(1)
finally:
if os.path.exists(TEMP_DIR):
shutil.rmtree(TEMP_DIR)
if __name__ == "__main__":
main()
================================================
FILE: .github/workflows/release_sync_gitee.yml
================================================
name: Release Sync to Gitee
on:
# release:
# types: [published, unpublished, deleted]
workflow_dispatch:
jobs:
sync-to-gitee:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Set up Python3
uses: actions/setup-python@v6
with:
python-version: "3.13"
- name: Run script
env:
GITEE_TOKEN: ${{ secrets.GITEE_TOKEN }}
run: |
cd .github/workflows
python ./release_sync_gitee.py
================================================
FILE: .gitignore
================================================
.vscode/*
!.vscode/extensions.json
!.vscode/settings.json
!.vscode/settings.tailwind.json
.idea
.DS_Store
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?
__debug_bin*
vendor
pb_data
build
main
/dist
/docker/data
/certimate
================================================
FILE: .goreleaser.yml
================================================
project_name: certimate
dist: .builds
before:
hooks:
- go mod tidy
builds:
- id: build_noncgo
main: ./
binary: certimate
env:
- CGO_ENABLED=0
flags:
- -trimpath
ldflags:
- -s -w -X github.com/certimate-go/certimate.Version={{ .Version }}
goos:
- linux
- windows
- darwin
goarch:
- amd64
- arm64
- arm
goarm:
- 7
ignore:
- goos: windows
goarch: arm
- goos: darwin
goarch: arm
# upx:
# - enabled: true
release:
draft: true
archives:
- id: archive_noncgo
builds: [build_noncgo]
format: "zip"
files:
- LICENSE
- README.md
- CHANGELOG.md
checksum:
name_template: "checksums.txt"
snapshot:
name_template: "{{ incpatch .Version }}-next"
changelog:
sort: asc
filters:
exclude:
- "^ui:"
================================================
FILE: .vscode/extensions.json
================================================
{
"recommendations": [
"bradlc.vscode-tailwindcss",
"dbaeumer.vscode-eslint",
"esbenp.prettier-vscode",
]
}
================================================
FILE: .vscode/settings.json
================================================
{
"css.customData": [
".vscode/settings.tailwind.json"
],
"editor.codeActionsOnSave": {
"source.fixAll.eslint": "explicit"
},
"editor.defaultFormatter": "dbaeumer.vscode-eslint",
"editor.formatOnSave": true,
"go.useLanguageServer": true,
"gopls": {
"formatting.gofumpt": true,
},
"typescript.tsdk": "ui/node_modules/typescript/lib",
"[go]": {
"editor.defaultFormatter": "golang.go"
},
"[typescript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
}
}
================================================
FILE: .vscode/settings.tailwind.json
================================================
{
"version": 1.1,
"atDirectives": [
{
"name": "@apply",
"description": "Use the `@apply` directive to inline any existing utility classes into your own custom CSS.",
"references": [
{
"name": "Tailwind Documentation",
"url": "https://tailwindcss.com/docs/functions-and-directives#variant-directive"
}
]
},
{
"name": "@source",
"description": "Use the `@source` directive to explicitly specify source files that aren't picked up by Tailwind's automatic content detection.",
"references": [
{
"name": "Tailwind Documentation",
"url": "https://tailwindcss.com/docs/functions-and-directives#source-directive"
}
]
},
{
"name": "@theme",
"description": "Use the `@theme` directive to define your project's custom design tokens, like fonts, colors, and breakpoints.",
"references": [
{
"name": "Tailwind Documentation",
"url": "https://tailwindcss.com/docs/functions-and-directives#theme-directive"
}
]
},
{
"name": "@utility",
"description": "Use the `@utility` directive to add custom utilities to your project that work with variants like `hover`, `focus` and `lg`.",
"references": [
{
"name": "Tailwind Documentation",
"url": "https://tailwindcss.com/docs/functions-and-directives#utility-directive"
}
]
},
{
"name": "@variant",
"description": "Use the `@variant` directive to apply a Tailwind variant to styles in your CSS",
"references": [
{
"name": "Tailwind Documentation",
"url": "https://tailwindcss.com/docs/functions-and-directives#variant-directive"
}
]
}
]
}
================================================
FILE: CHANGELOG.md
================================================
A full changelog of past releases is available on [GitHub Releases](https://github.com/certimate-go/certimate/releases) page.
================================================
FILE: CONTRIBUTING.md
================================================
# Contribution Guide
<div align="center">
English | [简体中文](CONTRIBUTING_zh.md)
</div>
Thank you for taking the time to improve Certimate! Below is a guide for submitting a PR (Pull Request) to the Certimate repository.
We need to be nimble and ship fast given where we are, but we also want to make sure that contributors like you get as smooth an experience at contributing as possible. We've assembled this contribution guide for that purpose, aiming at getting you familiarized with the codebase & how we work with contributors, so you could quickly jump to the fun part.
Index:
- [Development](#development)
- [Prerequisites](#prerequisites)
- [Backend Code](#backend-code)
- [Frontend Code](#frontend-code)
- [Submitting PR](#submitting-pr)
- [Pull Request Process](#pull-request-process)
- [Getting Help](#getting-help)
---
## Development
### Prerequisites
- Go 1.25+ (for backend code changes)
- Node.js 22.12+ (for frontend code changes)
### Backend Code
The backend code of Certimate is developed using Golang. It is a monolithic application based on [Pocketbase](https://github.com/pocketbase/pocketbase).
Once you have made changes to the backend code in Certimate, follow these steps to run the project:
1. Navigate to the root directory.
2. Install dependencies:
```bash
go mod vendor
```
3. Start the local development server:
```bash
go run main.go serve
```
This will start a web server at `http://localhost:8090` using the prebuilt WebUI located in `/ui/dist`.
> If you encounter an error `ui/embed.go: pattern all:dist: no matching files found`, please refer to _[Frontend Code](#frontend-code)_ and build WebUI first.
**Before submitting a PR to the main repository, you should:**
- Format your source code by using [gofumpt](https://github.com/mvdan/gofumpt). Recommended using VSCode and installing the gofumpt plugin to automatically format when saving.
- Adding unit or integration tests for your changes (with go standard library `testing` package).
### Frontend Code
The frontend code of Certimate is developed using TypeScript. It is a SPA based on [React](https://github.com/facebook/react) and [Vite](https://github.com/vitejs/vite).
Once you have made changes to the backend code in Certimate, follow these steps to run the project:
1. Navigate to the `/ui` directory.
2. Install dependencies:
```bash
npm install
```
3. Start the local development server:
```bash
npm run dev
```
This will start a web server at `http://localhost:5173`. You can now access the WebUI in your browser.
After completing your changes, build the WebUI so it can be embedded into the Go package:
```bash
npm run build
```
**Before submitting a PR to the main repository, you should:**
- Format your source code by using [ESLint](https://github.com/eslint/eslint). Recommended using VSCode and installing the ESLint plugin to automatically format when saving.
## Submitting PR
Before opening a Pull Request, please open an issue to discuss the change and get feedback from the maintainers. This will helps us:
- To understand the context of the change.
- To ensure it fits into Certimate's roadmap.
- To prevent us from duplicating work.
- To prevent you from spending time on a change that we may not be able to accept.
### Pull Request Process
1. Fork the repository, and then checkout `main` branch.
2. Before you draft a PR, please open an issue to discuss the changes you want to make.
3. Create a new branch for your changes.
4. Please add tests for your changes accordingly.
5. Ensure your code passes the existing tests.
6. Please link the issue in the PR description.
7. Get merged!
> [!IMPORTANT]
>
> It is recommended to create a new branch from `main` for each bug fix or feature. If you plan to submit multiple PRs, ensure the changes are in separate branches for easier review and eventual merge.
>
> Keep each PR focused on a single feature or fix.
## Getting Help
If you ever get stuck or get a burning question while contributing, simply shoot your queries our way via the GitHub issues.
================================================
FILE: CONTRIBUTING_zh.md
================================================
# 贡献指南
<div align="center">
[English](CONTRIBUTING.md) | 简体中文
</div>
非常感谢你抽出时间来帮助改进 Certimate!以下是向 Certimate 提交 Pull Request 时的操作指南。
我们需要保持敏捷和快速迭代,同时也希望确保贡献者能获得尽可能流畅的参与体验。这份贡献指南旨在帮助你熟悉代码库和我们的工作方式,让你可以尽快进入有趣的开发环节。
索引:
- [开发](#开发)
- [要求](#要求)
- [后端代码](#后端代码)
- [前端代码](#前端代码)
- [提交 PR](#提交-pr)
- [提交流程](#提交流程)
- [获取帮助](#获取帮助)
---
## 开发
### 要求
- Go 1.25+(用于修改后端代码)
- Node.js 22.12+(用于修改前端代码)
### 后端代码
Certimate 的后端代码是使用 Golang 开发的,是一个基于 [Pocketbase](https://github.com/pocketbase/pocketbase) 构建的单体应用。
假设你已经对 Certimate 的后端代码做出了一些修改,现在你想要运行它,请遵循以下步骤:
1. 进入根目录;
2. 安装依赖:
```bash
go mod vendor
```
3. 启动本地开发服务:
```bash
go run main.go serve
```
这将启动一个 Web 服务器,默认运行在 `http://localhost:8090`,并使用来自 `/ui/dist` 的预构建管理页面。
> 如果你遇到报错 `ui/embed.go: pattern all:dist: no matching files found`,请参考“[前端代码](#前端代码)”这一小节构建 WebUI。
**在向主仓库提交 PR 之前,你应该:**
- 使用 [gofumpt](https://github.com/mvdan/gofumpt) 格式化你的代码。推荐使用 VSCode,并安装 gofumpt 插件,以便在保存时自动格式化。
- 为你的改动添加单元测试或集成测试(使用 Go 标准库中的 `testing` 包)。
### 前端代码
Certimate 的前端代码是使用 TypeScript 开发的,是一个基于 [React](https://github.com/facebook/react) 和 [Vite](https://github.com/vitejs/vite) 构建的单页应用。
假设你已经对 Certimate 的前端代码做出了一些修改,现在你想要运行它,请遵循以下步骤:
1. 进入 `/ui` 目录;
2. 安装依赖:
```bash
npm install
```
3. 启动 Vite 开发服务器:
```bash
npm run dev
```
这将启动一个 Web 服务器,默认运行在 `http://localhost:5173`,你可以通过浏览器访问来查看运行中的 WebUI。
完成修改后,运行以下命令来构建 WebUI,以便它能被嵌入到 Go 包中:
```bash
npm run build
```
**在向主仓库提交 PR 之前,你应该:**
- 使用 [ESLint](https://github.com/eslint/eslint) 格式化你的代码。推荐使用 VSCode,并安装 ESLint 插件,以便在保存时自动格式化。
## 提交 PR
在提交 PR 之前,请先创建一个 Issue 来讨论你的修改方案,并等待来自项目维护者的反馈。这样做有助于:
- 让我们充分理解你的修改内容;
- 评估修改是否符合项目路线图;
- 避免重复工作;
- 防止你投入时间到可能无法被合并的修改中。
### 提交流程
1. Fork 本仓库并签出到 `main` 分支;
2. 在提交 PR 之前,请先发起 Issue 讨论你想要做的修改;
3. 为你的修改创建一个新的分支;
4. 请为你的修改添加相应的测试;
5. 确保你的代码能通过现有的测试;
6. 请在 PR 描述中关联相关 Issue;
7. 等待合并!
> [!IMPORTANT]
>
> 建议为每个新功能或 Bug 修复创建一个从 `main` 分支派生的新分支。如果你计划提交多个 PR,请保持不同的改动在独立分支中,以便更容易进行代码审查并最终合并。
>
> 保持一个 PR 只实现一个功能或修复。
## 获取帮助
如果你在贡献过程中遇到困难或问题,可以通过 GitHub Issues 向我们提问。
================================================
FILE: Dockerfile
================================================
FROM node:24-alpine AS webui-builder
WORKDIR /app
COPY . /app/
RUN \
cd /app/ui && \
npm install && \
npm run build
FROM golang:1.25-alpine AS server-builder
WORKDIR /app
COPY ../. /app/
RUN rm -rf /app/ui/dist
COPY --from=webui-builder /app/ui/dist /app/ui/dist
ENV CGO_ENABLED=0
RUN go build -trimpath -ldflags="-s -w" -o certimate
FROM alpine:latest
WORKDIR /app
COPY --from=server-builder /app/certimate .
ENTRYPOINT ["./certimate", "serve", "--http", "0.0.0.0:8090"]
================================================
FILE: Dockerfile.gh
================================================
# Build docker image on GitHub Actions runner is too slow,
# and it doesn't support armv7 (see https://github.com/parcel-bundler/lightningcss/issues/988).
# So we pre-build webui, and just use simple Dockerfile here.
FROM golang:1.25-alpine AS server-builder
WORKDIR /app
COPY ../. /app/
ENV CGO_ENABLED=0
RUN go build -trimpath -ldflags="-s -w" -o certimate
FROM alpine:latest
WORKDIR /app
COPY --from=server-builder /app/certimate .
ENTRYPOINT ["./certimate", "serve", "--http", "0.0.0.0:8090"]
================================================
FILE: LICENSE
================================================
MIT License
Copyright (c) 2025 certimate-go
Copyright (c) 2024 Yoan.Liu
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
================================================
FILE: Makefile
================================================
# 定义变量
BINARY_NAME=certimate
BUILD_DIR=build
# 支持的操作系统和架构列表
OS_ARCH=\
linux/amd64 \
linux/arm64 \
darwin/amd64 \
darwin/arm64 \
windows/amd64 \
windows/arm64
# 默认目标
all: build
# 构建所有平台的二进制文件
build: $(OS_ARCH)
$(OS_ARCH):
@mkdir -p $(BUILD_DIR)
GOOS=$(word 1,$(subst /, ,$@)) \
GOARCH=$(word 2,$(subst /, ,$@)) \
CGO_ENABLED=0 \
go build -trimpath -ldflags="-s -w" -o $(BUILD_DIR)/$(BINARY_NAME)_$(word 1,$(subst /, ,$@))_$(word 2,$(subst /, ,$@)) .
# 清理构建文件
clean:
rm -rf $(BUILD_DIR)
# 帮助信息
help:
@echo "Usage:"
@echo " make - 编译所有平台的二进制文件"
@echo " make clean - 清理构建文件"
@echo " make help - 显示此帮助信息"
.PHONY: all build clean help
local.run:
go mod vendor&& npm --prefix=./ui install && npm --prefix=./ui run build && go run main.go serve --http 127.0.0.1:8090
================================================
FILE: README.md
================================================
<h1 align="center">🔒 Certimate</h1>
<div align="center">
[](https://github.com/certimate-go/certimate)
[](https://github.com/certimate-go/certimate)
[](https://hub.docker.com/r/certimate/certimate)
[](https://github.com/certimate-go/certimate/releases)
[](https://mit-license.org/)
[](https://deepwiki.com/certimate-go/certimate)
</div>
<div align="center">
English | [简体中文](README_zh.md)
</div>
---
## 🚩 Introduction
An open-source and free self-hosted SSL certificates ACME tool, automates the full-cycle of issuance, deployment, renewal, and monitoring visually.
- **Self-Hosted**: Private deployment. All data is stored locally, giving you full control to ensure data privacy and security.
- **Zero Dependencies**: No need to install databases, runtimes, or any complex frameworks. Truly ready to use out of the box with a single click.
- **Low Resource Usage**: Extremely lightweight, requiring only ~16 MB of memory. It's so efficient that it can even run on devices like home routers.
- **Easy to Use**: The user-friendly GUI lets you automate certificate management for multiple platforms with a visual workflow — all with just a few simple configurations.
## 💡 Features
- Flexible workflow orchestration, fully automation from certificate application to deployment.
- Supports requesting single/multiple/wildcard domain certificates, IP address certificates, with options for RSA or ECC key.
- Supports DNS-01 challenge and HTTP-01 challenge both.
- Supports various certificate formats such as PEM, PFX, JKS.
- Supports more than 60+ domain registrars (e.g., AWS, Cloudflare, GoDaddy, Alibaba Cloud, Tencent Cloud, etc. [Check out full providers](https://docs.certimate.me/en-US/docs/reference/providers#supported-dns-providers)).
- Supports more than 110+ deployment targets (e.g., Kubernetes, CDN, WAF, load balancers, etc. [Check out full providers](https://docs.certimate.me/en-US/docs/reference/providers#supported-hosting-providers)).
- Supports multiple notification channels including email, Discord, Slack, Telegram, DingTalk, Feishu, WeCom, and more.
- Supports multiple ACME CAs including Let's Encrypt, Actalis, Google Trust Services, SSL.com, ZeroSSL, and more.
- More features waiting to be discovered.
## 🚀 Quick Start
**Run Certimate in 1 minute!**
<details>
<summary>👉 Binary Installation: </summary>
Download the archived package of precompiled executable files directly from [GitHub Releases](https://github.com/certimate-go/certimate/releases), extract and then execute:
```bash
./certimate serve
```
</details>
<details>
<summary>👉 Docker Installation: </summary>
```bash
docker run -d \
--name certimate \
--restart unless-stopped \
-p 8090:8090 \
-v /etc/localtime:/etc/localtime:ro \
-v /etc/timezone:/etc/timezone:ro \
-v $(pwd)/data:/app/pb_data \
certimate/certimate:latest
```
</details>
Visit `http://127.0.0.1:8090` in your browser.
Default administrator account:
- Username: `admin@certimate.fun`
- Password: `1234567890`
Work with Certimate right now. Or read other content in the documentation to learn more.
## 📄 Documentation
For full documentation, please visit [docs.certimate.me](https://docs.certimate.me/).
Related articles:
> - [_Migrate to v0.4_](https://docs.certimate.me/en-US/docs/migrations/migrate-to-v0.4)
> - [_使用 CNAME 完成 ACME DNS-01 质询_](https://docs.certimate.me/en-US/blog/cname)
> - [_Why Certimate?_](https://docs.certimate.me/en-US/blog/why-certimate)
## 🖥️ Screenshot
[](https://www.youtube.com/watch?v=am_yzdfyNOE)
## 🤝 Contributing
Certimate is a free and open-source project, and your feedback and contributions are needed and always welcome. Contributions include but are not limited to: submitting code, reporting bugs, sharing ideas, or showcasing your use cases based on Certimate. We also encourage users to share Certimate on personal blogs or social media.
For those who'd like to contribute code, see our [Contribution Guide](./CONTRIBUTING_EN.md).
[Issues](https://github.com/certimate-go/certimate/issues) and [Pull Requests](https://github.com/certimate-go/certimate/pulls) are opened at https://github.com/certimate-go/certimate.
#### Contributors
[](https://github.com/certimate-go/certimate/graphs/contributors)
## ⛔ Disclaimer
This repository is available under the [MIT License](https://opensource.org/licenses/MIT), and distributed “as-is” without any warranty of any kind. The authors and contributors are not responsible for any damages or losses resulting from the use or inability to use this software, including but not limited to data loss, business interruption, or any other potential harm.
**No Warranties**: This software comes without any express or implied warranties, including but not limited to implied warranties of merchantability, fitness for a particular purpose, and non-infringement.
**User Responsibilities**: By using this software, you agree to take full responsibility for any outcomes resulting from its use.
## 🌐 Join the Community
- [Telegram](https://t.me/+ZXphsppxUg41YmVl)
- Wechat Group (contact to the author [@usual2970](https://github.com/usual2970) to getting invitation)
<img src="https://i.imgur.com/8xwsLTA.png" width="200"/>
## ⭐ Star History
Star Certificate on GitHub and be instantly notified of new releases.
[](https://starchart.cc/certimate-go/certimate)
================================================
FILE: README_zh.md
================================================
<h1 align="center">🔒 Certimate</h1>
<div align="center">
[](https://github.com/certimate-go/certimate)
[](https://github.com/certimate-go/certimate)
[](https://hub.docker.com/r/certimate/certimate)
[](https://github.com/certimate-go/certimate/releases)
[](https://mit-license.org/)
[](https://deepwiki.com/certimate-go/certimate)
</div>
<div align="center">
[English](README.md) | 简体中文
</div>
---
## 🚩 项目简介
完全开源免费的自托管 SSL 证书 ACME 工具,申请、部署、续期、监控全流程自动化可视化,支持各大主流云厂商。
- **自托管**:私有化部署,所有数据本地化存储,掌控数据的隐私与安全。
- **零依赖**:无需安装数据库、运行时或复杂框架,一键启动,开箱即用。
- **低占用**:超轻量的资源开销,仅需 ~16 MB 内存,甚至可以运行在家用路由器。
- **易操作**:图形化界面,通过简单配置即可完成证书申请、部署和续期的自动化工作。
## 💡 功能特性
- 灵活的工作流编排方式,证书从申请到部署完全自动化。
- 支持申请单/多/泛域名证书、IP 地址证书,可选 RSA、ECC 私钥算法。
- 支持 DNS-01(即基于域名解析验证)、HTTP-01(即基于文件验证)两种质询方式。
- 支持 PEM、PFX、JKS 等多种格式输出证书。
- 支持 60+ 域名托管商(如阿里云、腾讯云、AWS、Cloudflare、GoDaddy 等,[点此查看完整清单](https://docs.certimate.me/zh-CN/docs/reference/providers#supported-dns-providers))。
- 支持 110+ 部署目标(如 Kubernetes、CDN、WAF、负载均衡等,[点此查看完整清单](https://docs.certimate.me/zh-CN/docs/reference/providers#supported-hosting-providers))。
- 支持邮件、钉钉、飞书、企业微信、Discord、Slack、Telegram 等多种通知渠道。
- 支持 Let's Encrypt、Actalis、Google Trust Services、SSL.com、ZeroSSL 等多种 ACME 证书颁发机构。
- 更多特性等待探索。
## 🚀 快速启动
**1 分钟运行 Certimate!**
<details>
<summary>👉 二进制安装:</summary>
从 [GitHub Releases](https://github.com/certimate-go/certimate/releases) 页面下载预先编译好的可执行文件压缩包,解压缩后在终端中执行:
```bash
./certimate serve
```
</details>
<details>
<summary>👉 Docker 安装:</summary>
```bash
docker run -d \
--name certimate \
--restart unless-stopped \
-p 8090:8090 \
-v /etc/localtime:/etc/localtime:ro \
-v /etc/timezone:/etc/timezone:ro \
-v $(pwd)/data:/app/pb_data \
certimate/certimate:latest
```
</details>
浏览器中访问 `http://127.0.0.1:8090`。
初始的管理员账号及密码:
- 账号:`admin@certimate.fun`
- 密码:`1234567890`
即刻使用 Certimate。或者阅读文档中的其他内容以了解更多。
## 📄 使用手册
请访问文档站 [docs.certimate.me](https://docs.certimate.me/) 以阅读使用手册。
> (由于众所周知的原因,中国大陆用户可能需要 🪄 上网才能访问文档站。)
相关文章:
> - [《升级指南:迁移到 v0.4》](https://docs.certimate.me/zh-CN/docs/migrations/migrate-to-v0.4)
> - [《使用 CNAME 完成 ACME DNS-01 质询》](https://docs.certimate.me/zh-CN/blog/cname)
> - [《Why Certimate?》](https://docs.certimate.me/zh-CN/blog/why-certimate)
## 🖥️ 运行界面
[](https://www.bilibili.com/video/BV1xockeZEm2)
## 🤝 参与贡献
Certimate 是一个免费且开源的项目。我们欢迎任何人为 Certimate 做出贡献,以帮助改善 Certimate。包括但不限于:提交代码、反馈缺陷、交流想法,或分享你基于 Certimate 的使用案例。同时,我们也欢迎用户在个人博客或社交媒体上分享 Certimate。
如果你想要贡献代码,请先阅读我们的[贡献指南](./CONTRIBUTING.md)。
请在 https://github.com/certimate-go/certimate 提交 [Issues](https://github.com/certimate-go/certimate/issues) 和 [Pull Requests](https://github.com/certimate-go/certimate/pulls)。
#### 感谢以下贡献者对 Certimate 做出的贡献:
[](https://github.com/certimate-go/certimate/graphs/contributors)
## ⛔ 免责声明
Certimate 遵循 [MIT License](https://opensource.org/licenses/MIT) 开源协议,完全免费提供,旨在“按现状”供用户使用。作者及贡献者不对使用本软件所产生的任何直接或间接后果承担责任,包括但不限于性能下降、数据丢失、服务中断、或任何其他类型的损害。
**无任何保证**:本软件不提供任何明示或暗示的保证,包括但不限于对特定用途的适用性、无侵权性、商用性及可靠性的保证。
**用户责任**:使用本软件即表示您理解并同意承担由此产生的一切风险及责任。
## 🌐 加入社群
- [Telegram](https://t.me/+ZXphsppxUg41YmVl)
- 微信群聊(因微信自身限制需群主邀请,可先加 [@usual2970](https://github.com/usual2970) 好友)
<img src="https://i.imgur.com/8xwsLTA.png" width="200"/>
## ⭐ 星标趋势
在 GitHub 上为 Certimate 添加 Star 星标关注,即可第一时间获取新版本发布通知。
[](https://starchart.cc/certimate-go/certimate)
================================================
FILE: cmd/intercmd.go
================================================
package cmd
import (
"context"
"errors"
"fmt"
"log"
"os"
"github.com/go-acme/lego/v4/lego"
legolog "github.com/go-acme/lego/v4/log"
"github.com/pocketbase/pocketbase/core"
"github.com/spf13/cobra"
"github.com/certimate-go/certimate/internal/app"
"github.com/certimate-go/certimate/internal/certacme"
"github.com/certimate-go/certimate/internal/tools/mproc"
)
func NewInternalCommand(app core.App) *cobra.Command {
command := &cobra.Command{
Use: "intercmd",
Short: "[INTERNAL] Internal dedicated for Certimate",
}
command.AddCommand(internalCertApplyCommand(app))
return command
}
func internalCertApplyCommand(_ core.App) *cobra.Command {
var flagInput string
var flagOutput string
var flagError string
var flagEncryptionKey string
command := &cobra.Command{
Use: "certapply",
Example: "internal certapply --in ./in.file --out ./out.file --enckey aeskey",
SilenceUsage: true,
Run: func(cmd *cobra.Command, args []string) {
type InData struct {
Account *certacme.ACMEAccount `json:"account,omitempty"`
Request *certacme.ObtainCertificateRequest `json:"request,omitempty"`
}
type OutData struct {
Response *certacme.ObtainCertificateResponse `json:"response"`
}
mreceiver := mproc.NewReceiver(func(ctx context.Context, params *InData) (*OutData, error) {
if params.Account == nil {
return nil, errors.New("illegal params")
}
if params.Request == nil {
return nil, errors.New("illegal params")
}
// redirect to stdout, remove datetime prefix
// so that the logger can split logs correctly
// see: /internal/tools/mproc/sender.go
legolog.Logger = log.New(os.Stdout, "", 0)
client, err := certacme.NewACMEClientWithAccount(params.Account, func(c *lego.Config) error {
c.UserAgent = app.AppUserAgent
c.Certificate.KeyType = params.Request.PrivateKeyType
c.Certificate.DisableCommonName = params.Request.NoCommonName
return nil
})
if err != nil {
return nil, fmt.Errorf("failed to initialize acme client: %w", err)
}
resp, err := client.ObtainCertificate(ctx, params.Request)
if err != nil {
return nil, fmt.Errorf("failed to obtain certificate: %w", err)
}
return &OutData{
Response: resp,
}, nil
})
if err := mreceiver.ReceiveWithContext(cmd.Context(), flagInput, flagOutput, flagEncryptionKey); err != nil {
os.WriteFile(flagError, []byte(err.Error()), 0o644)
}
},
}
command.PersistentFlags().StringVar(&flagInput, "in", "", "")
command.PersistentFlags().StringVar(&flagOutput, "out", "", "")
command.PersistentFlags().StringVar(&flagError, "err", "", "")
command.PersistentFlags().StringVar(&flagEncryptionKey, "enckey", "", "")
return command
}
================================================
FILE: cmd/serve_nonwindows.go
================================================
//go:build !windows
// +build !windows
package cmd
import (
"github.com/pocketbase/pocketbase"
)
func Serve(app *pocketbase.PocketBase) error {
return app.Start()
}
================================================
FILE: cmd/serve_windows.go
================================================
//go:build windows
// +build windows
package cmd
import (
"fmt"
"github.com/pocketbase/pocketbase"
"github.com/pocketbase/pocketbase/core"
"golang.org/x/sys/windows/svc"
"golang.org/x/sys/windows/svc/eventlog"
)
type winscHandler struct {
pb *pocketbase.PocketBase
elog *eventlog.Log
}
func (h *winscHandler) Execute(args []string, r <-chan svc.ChangeRequest, s chan<- svc.Status) (bool, uint32) {
go func() {
if err := h.pb.Start(); err != nil {
h.elog.Error(999, fmt.Sprintf("Start failed: %v", err))
}
}()
s <- svc.Status{State: svc.Running, Accepts: svc.AcceptStop | svc.AcceptShutdown}
for {
select {
case c := <-r:
switch c.Cmd {
case svc.Interrogate:
s <- c.CurrentStatus
case svc.Stop, svc.Shutdown:
event := new(core.TerminateEvent)
event.App = h.pb
h.pb.OnTerminate().Trigger(event, func(e *core.TerminateEvent) error {
return e.App.ResetBootstrapState()
})
s <- svc.Status{State: svc.Stopped}
return false, 0
default:
h.elog.Warning(998, fmt.Sprintf("unexpected control request: %v", c.Cmd))
}
}
}
}
func Serve(app *pocketbase.PocketBase) error {
if isWinsc, _ := svc.IsWindowsService(); isWinsc {
elog, _ := eventlog.Open(winscName)
defer elog.Close()
return svc.Run(winscName, &winscHandler{pb: app, elog: elog})
}
return app.Start()
}
================================================
FILE: cmd/winsc_nonwindows.go
================================================
//go:build !windows
// +build !windows
package cmd
import (
"github.com/pocketbase/pocketbase/core"
"github.com/spf13/cobra"
)
func NewWinscCommand(app core.App) *cobra.Command {
command := &cobra.Command{
Use: "winsc",
Short: "Install/Uninstall Windows service (Not supported on non-Windows OS)",
}
return command
}
================================================
FILE: cmd/winsc_windows.go
================================================
//go:build windows
// +build windows
package cmd
import (
"fmt"
"log/slog"
"os"
"time"
"github.com/pocketbase/pocketbase/core"
"github.com/spf13/cobra"
"golang.org/x/sys/windows/svc"
"golang.org/x/sys/windows/svc/eventlog"
"golang.org/x/sys/windows/svc/mgr"
"github.com/certimate-go/certimate/internal/app"
)
const winscName = "certimate"
func NewWinscCommand(app core.App) *cobra.Command {
command := &cobra.Command{
Use: "winsc",
Short: "Install/Uninstall Windows service",
}
command.AddCommand(winscInstallCommand(app))
command.AddCommand(winscUninstallCommand(app))
command.AddCommand(winscStartCommand(app))
command.AddCommand(winscStopCommand(app))
return command
}
func winscInstallCommand(_ core.App) *cobra.Command {
command := &cobra.Command{
Use: "install [args...]",
Example: "winsc install",
Run: func(cmd *cobra.Command, args []string) {
srvPath, err := os.Executable()
if err != nil {
srvPath = os.Args[0]
}
srvArgs := []string{"serve"}
srvArgs = append(srvArgs, args...)
manager, err := mgr.Connect()
if err != nil {
slog.Error(fmt.Sprintf("failed to connect to service manager: %v", err))
return
}
defer manager.Disconnect()
config := mgr.Config{
DisplayName: app.AppName,
Description: "https://github.com/certimate-go/certimate",
StartType: mgr.StartAutomatic,
}
service, err := manager.CreateService(winscName, srvPath, config, srvArgs...)
if err != nil {
slog.Error(fmt.Sprintf("failed to create service: %v", err))
return
}
defer service.Close()
eventlog.InstallAsEventCreate(winscName, eventlog.Error|eventlog.Warning|eventlog.Info)
slog.Info(fmt.Sprintf("service '%s' installed", winscName))
if err := service.Start(); err != nil {
slog.Warn(fmt.Sprintf("failed to start service: %v", err))
}
slog.Info(fmt.Sprintf("service '%s' started", winscName))
},
DisableFlagParsing: true,
}
return command
}
func winscUninstallCommand(_ core.App) *cobra.Command {
command := &cobra.Command{
Use: "uninstall",
Example: "winsc uninstall",
Run: func(cmd *cobra.Command, args []string) {
manager, err := mgr.Connect()
if err != nil {
slog.Error(fmt.Sprintf("failed to connect to service manager: %v", err))
return
}
defer manager.Disconnect()
service, err := manager.OpenService(winscName)
if err != nil {
slog.Error(fmt.Sprintf("failed to open service: %v", err))
return
}
defer service.Close()
status, err := service.Query()
if err == nil && status.State != svc.Stopped {
_, err = service.Control(svc.Stop)
if err != nil {
slog.Warn(fmt.Sprintf("failed to stop service: %v", err))
}
time.Sleep(3 * time.Second)
slog.Info(fmt.Sprintf("service '%s' stopped", winscName))
}
if err = service.Delete(); err != nil {
slog.Error(fmt.Sprintf("failed to delete service: %v", err))
return
}
eventlog.Remove(winscName)
slog.Info(fmt.Sprintf("service '%s' uninstalled", winscName))
},
}
return command
}
func winscStartCommand(_ core.App) *cobra.Command {
command := &cobra.Command{
Use: "start",
Example: "winsc start",
Run: func(cmd *cobra.Command, args []string) {
manager, err := mgr.Connect()
if err != nil {
slog.Error(fmt.Sprintf("failed to connect to service manager: %v", err))
return
}
defer manager.Disconnect()
service, err := manager.OpenService(winscName)
if err != nil {
slog.Error(fmt.Sprintf("failed to open service: %v", err))
return
}
defer service.Close()
if err := service.Start(); err != nil {
slog.Error(fmt.Sprintf("failed to start service: %v", err))
return
}
slog.Info(fmt.Sprintf("service '%s' started", winscName))
},
}
return command
}
func winscStopCommand(app core.App) *cobra.Command {
command := &cobra.Command{
Use: "stop",
Example: "winsc stop",
Run: func(cmd *cobra.Command, args []string) {
manager, err := mgr.Connect()
if err != nil {
slog.Error(fmt.Sprintf("failed to connect to service manager: %v", err))
return
}
defer manager.Disconnect()
service, err := manager.OpenService(winscName)
if err != nil {
slog.Error(fmt.Sprintf("failed to open service: %v", err))
return
}
defer service.Close()
status, err := service.Query()
if err == nil && status.State != svc.Stopped {
_, err = service.Control(svc.Stop)
if err != nil {
slog.Warn(fmt.Sprintf("failed to stop service: %v", err))
}
time.Sleep(3 * time.Second)
slog.Info(fmt.Sprintf("service '%s' stopped", winscName))
}
},
}
return command
}
================================================
FILE: docker/docker-compose.yml
================================================
version: "3.0"
services:
certimate:
image: certimate/certimate:latest
container_name: certimate
ports:
- 8090:8090
volumes:
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
- ./data:/app/pb_data
restart: unless-stopped
================================================
FILE: go.mod
================================================
module github.com/certimate-go/certimate
go 1.25.0
toolchain go1.25.5
require (
github.com/Azure/azure-sdk-for-go/sdk/azcore v1.21.0
github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.13.1
github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azcertificates v1.4.0
github.com/G-Core/gcorelabscdn-go v1.0.35
github.com/KscSDK/ksc-sdk-go v0.18.0
github.com/akamai/AkamaiOPEN-edgegrid-golang/v11 v11.1.0
github.com/alibabacloud-go/alb-20200616/v2 v2.3.1
github.com/alibabacloud-go/apig-20240327/v6 v6.0.1
github.com/alibabacloud-go/cas-20200407/v4 v4.1.0
github.com/alibabacloud-go/cdn-20180510/v9 v9.0.0
github.com/alibabacloud-go/cloudapi-20160714/v5 v5.7.9
github.com/alibabacloud-go/darabonba-openapi/v2 v2.1.15
github.com/alibabacloud-go/dcdn-20180115/v4 v4.1.0
github.com/alibabacloud-go/ddoscoo-20200101/v5 v5.0.1
github.com/alibabacloud-go/esa-20240910/v2 v2.48.0
github.com/alibabacloud-go/fc-20230330/v4 v4.6.8
github.com/alibabacloud-go/fc-open-20210406/v2 v2.0.12
github.com/alibabacloud-go/ga-20191120/v4 v4.0.0
github.com/alibabacloud-go/live-20161101/v2 v2.6.0
github.com/alibabacloud-go/nlb-20220430/v4 v4.1.2
github.com/alibabacloud-go/openapi-util v0.1.1
github.com/alibabacloud-go/slb-20140515/v4 v4.0.13
github.com/alibabacloud-go/tea v1.4.0
github.com/alibabacloud-go/tea-utils/v2 v2.0.9
github.com/alibabacloud-go/vod-20170321/v4 v4.11.1
github.com/alibabacloud-go/waf-openapi-20211001/v7 v7.5.0
github.com/aliyun/alibabacloud-oss-go-sdk-v2 v1.4.0
github.com/aws/aws-sdk-go-v2 v1.41.2
github.com/aws/aws-sdk-go-v2/config v1.32.10
github.com/aws/aws-sdk-go-v2/credentials v1.19.10
github.com/aws/aws-sdk-go-v2/service/acm v1.37.20
github.com/aws/aws-sdk-go-v2/service/cloudfront v1.60.1
github.com/aws/aws-sdk-go-v2/service/iam v1.53.3
github.com/baidubce/bce-sdk-go v0.9.260
github.com/byteplus-sdk/byteplus-sdk-golang v1.0.62
github.com/go-acme/lego/v4 v4.32.0
github.com/go-cmd/cmd v1.4.3
github.com/go-resty/resty/v2 v2.17.1
github.com/go-viper/mapstructure/v2 v2.5.0
github.com/google/go-querystring v1.2.0
github.com/huaweicloud/huaweicloud-sdk-go-v3 v0.1.187
github.com/jdcloud-api/jdcloud-sdk-go v1.64.0
github.com/kong/go-kong v0.72.1
github.com/luthermonson/go-proxmox v0.3.2
github.com/microcosm-cc/bluemonday v1.0.27
github.com/minio/minio-go/v7 v7.0.98
github.com/mohuatech/mohuacloud-go-sdk v0.0.0-20251115182757-6fba4d0a4c47
github.com/pavlo-v-chernykh/keystore-go/v4 v4.5.0
github.com/pkg/sftp v1.13.10
github.com/pocketbase/dbx v1.12.0
github.com/pocketbase/pocketbase v0.36.5
github.com/povsister/scp v0.0.0-20250701154629-777cf82de5df
github.com/pquerna/otp v1.5.0
github.com/qiniu/go-sdk/v7 v7.25.6
github.com/samber/lo v1.52.0
github.com/spf13/cobra v1.10.2
github.com/spf13/pflag v1.0.10
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdn v1.3.36
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb v1.3.45
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.3.48
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/gaap v1.3.34
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/live v1.3.45
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/scf v1.3.29
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ssl v1.3.42
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/teo v1.3.45
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vod v1.3.46
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/waf v1.3.46
github.com/ucloud/ucloud-sdk-go v0.22.59
github.com/volcengine/ve-tos-golang-sdk/v2 v2.9.1
github.com/volcengine/volc-sdk-golang v1.0.237
github.com/volcengine/volcengine-go-sdk v1.2.15
github.com/wneessen/go-mail v0.7.2
github.com/xhit/go-str2duration/v2 v2.1.0
gitlab.ecloud.com/ecloud/ecloudsdkclouddns v1.0.1
gitlab.ecloud.com/ecloud/ecloudsdkcore v1.0.0
golang.org/x/crypto v0.48.0
golang.org/x/sync v0.19.0
golang.org/x/sys v0.41.0
k8s.io/api v0.35.2
k8s.io/apimachinery v0.35.2
k8s.io/client-go v0.35.2
software.sslmate.com/src/go-pkcs12 v0.7.0
)
require (
github.com/Azure/azure-sdk-for-go/sdk/internal v1.11.2 // indirect
github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/dns/armdns v1.2.0 // indirect
github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/privatedns/armprivatedns v1.3.0 // indirect
github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph v0.9.0 // indirect
github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/internal v1.2.0 // indirect
github.com/AzureAD/microsoft-authentication-library-for-go v1.6.0 // indirect
github.com/alibabacloud-go/alibabacloud-gateway-fc-util v0.0.7 // indirect
github.com/avast/retry-go v3.0.0+incompatible // indirect
github.com/aws/aws-sdk-go v1.40.45 // indirect
github.com/aws/aws-sdk-go-v2/service/route53 v1.62.1 // indirect
github.com/benbjohnson/clock v1.3.5 // indirect
github.com/buger/goterm v1.0.4 // indirect
github.com/cenkalti/backoff/v5 v5.0.3 // indirect
github.com/diskfs/go-diskfs v1.7.0 // indirect
github.com/djherbis/times v1.6.0 // indirect
github.com/emicklei/go-restful/v3 v3.12.2 // indirect
github.com/fxamacker/cbor/v2 v2.9.0 // indirect
github.com/go-acme/alidns-20150109/v4 v4.7.0 // indirect
github.com/go-acme/tencentclouddnspod v1.3.24 // indirect
github.com/go-logr/logr v1.4.3 // indirect
github.com/go-openapi/jsonpointer v0.21.0 // indirect
github.com/go-openapi/jsonreference v0.21.0 // indirect
github.com/go-openapi/swag v0.23.0 // indirect
github.com/go-playground/locales v0.14.1 // indirect
github.com/go-playground/universal-translator v0.18.1 // indirect
github.com/go-playground/validator/v10 v10.23.0 // indirect
github.com/go-sql-driver/mysql v1.8.1 // indirect
github.com/goccy/go-yaml v1.9.8 // indirect
github.com/gofrs/uuid v4.4.0+incompatible // indirect
github.com/golang-jwt/jwt/v5 v5.3.1 // indirect
github.com/google/gnostic-models v0.7.0 // indirect
github.com/gorilla/websocket v1.5.4-0.20250319132907-e064f32e3674 // indirect
github.com/hashicorp/go-cleanhttp v0.5.2 // indirect
github.com/hashicorp/go-retryablehttp v0.7.8 // indirect
github.com/imdario/mergo v0.3.12 // indirect
github.com/jinzhu/copier v0.4.0 // indirect
github.com/josharian/intern v1.0.0 // indirect
github.com/kong/semver/v4 v4.0.1 // indirect
github.com/kylelemons/godebug v1.1.0 // indirect
github.com/leodido/go-urn v1.4.0 // indirect
github.com/linode/linodego v1.65.0 // indirect
github.com/magefile/mage v1.15.0 // indirect
github.com/mailru/easyjson v0.9.0 // indirect
github.com/mitchellh/go-homedir v1.1.0 // indirect
github.com/mitchellh/mapstructure v1.5.0 // indirect
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
github.com/namedotcom/go/v4 v4.0.2 // indirect
github.com/nrdcg/bunny-go v0.1.0 // indirect
github.com/nrdcg/desec v0.11.1 // indirect
github.com/nrdcg/goacmedns v0.2.0 // indirect
github.com/nrdcg/porkbun v0.4.0 // indirect
github.com/ovh/go-ovh v1.9.0 // indirect
github.com/peterhellberg/link v1.2.0 // indirect
github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c // indirect
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
github.com/qiniu/dyn v1.3.0 // indirect
github.com/qiniu/x v1.10.5 // indirect
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec // indirect
github.com/sirupsen/logrus v1.9.4-0.20230606125235-dd1b4c2e81af // indirect
github.com/stretchr/objx v0.5.2 // indirect
github.com/stretchr/testify v1.11.1 // indirect
github.com/tidwall/gjson v1.18.0 // indirect
github.com/tidwall/match v1.1.1 // indirect
github.com/tidwall/pretty v1.2.0 // indirect
github.com/vultr/govultr/v3 v3.27.0 // indirect
github.com/x448/float16 v0.8.4 // indirect
go.mongodb.org/mongo-driver v1.17.2 // indirect
go.uber.org/ratelimit v0.3.1 // indirect
go.yaml.in/yaml/v2 v2.4.3 // indirect
go.yaml.in/yaml/v3 v3.0.4 // indirect
golang.org/x/exp v0.0.0-20260112195511-716be5621a96 // indirect
golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect
gopkg.in/evanphx/json-patch.v4 v4.13.0 // indirect
gopkg.in/inf.v0 v0.9.1 // indirect
gopkg.in/ns1/ns1-go.v2 v2.17.2 // indirect
gopkg.in/yaml.v2 v2.4.0 // indirect
k8s.io/klog/v2 v2.130.1 // indirect
k8s.io/kube-openapi v0.0.0-20250910181357-589584f1c912 // indirect
k8s.io/utils v0.0.0-20251002143259-bc988d571ff4 // indirect
sigs.k8s.io/json v0.0.0-20250730193827-2d320260d730 // indirect
sigs.k8s.io/randfill v1.0.0 // indirect
sigs.k8s.io/structured-merge-diff/v6 v6.3.0 // indirect
sigs.k8s.io/yaml v1.6.0 // indirect
)
require (
github.com/BurntSushi/toml v1.6.0 // indirect
github.com/alibabacloud-go/alibabacloud-gateway-spi v0.0.5 // indirect
github.com/alibabacloud-go/debug v1.0.1 // indirect
github.com/alibabacloud-go/endpoint-util v1.1.1 // indirect
github.com/aliyun/credentials-go v1.4.7 // indirect
github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 // indirect
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.18 // indirect
github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.18 // indirect
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.18 // indirect
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.4 // indirect
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.5 // indirect
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.18 // indirect
github.com/aws/aws-sdk-go-v2/service/signin v1.0.6 // indirect
github.com/aws/aws-sdk-go-v2/service/sso v1.30.11 // indirect
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.15 // indirect
github.com/aws/aws-sdk-go-v2/service/sts v1.41.7 // indirect
github.com/aws/smithy-go v1.24.1 // indirect
github.com/aymerick/douceur v0.2.0 // indirect
github.com/boombuler/barcode v1.0.1-0.20190219062509-6c824513bacc // indirect
github.com/cenkalti/backoff/v4 v4.3.0 // indirect
github.com/clbanning/mxj/v2 v2.7.0 // indirect
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
github.com/disintegration/imaging v1.6.2 // indirect
github.com/domodwyer/mailyak/v3 v3.6.2 // indirect
github.com/dustin/go-humanize v1.0.1 // indirect
github.com/fatih/color v1.18.0 // indirect
github.com/gabriel-vasile/mimetype v1.4.13 // indirect
github.com/ganigeorgiev/fexpr v0.5.0 // indirect
github.com/go-acme/esa-20240910/v2 v2.48.0 // indirect
github.com/go-acme/jdcloud-sdk-go v1.64.0 // indirect
github.com/go-acme/tencentedgdeone v1.3.38 // indirect
github.com/go-ini/ini v1.67.0 // indirect
github.com/go-jose/go-jose/v4 v4.1.3 // indirect
github.com/go-ozzo/ozzo-validation/v4 v4.3.0 // indirect
github.com/google/uuid v1.6.0 // indirect
github.com/gorilla/css v1.0.1 // indirect
github.com/inconshreveable/mousetrap v1.1.0 // indirect
github.com/jmespath/go-jmespath v0.4.0 // indirect
github.com/json-iterator/go v1.1.13-0.20220915233716-71ac16282d12 // indirect
github.com/klauspost/compress v1.18.2 // indirect
github.com/klauspost/cpuid/v2 v2.2.11 // indirect
github.com/klauspost/crc32 v1.3.0 // indirect
github.com/kr/fs v0.1.0 // indirect
github.com/mattn/go-colorable v0.1.14 // indirect
github.com/mattn/go-isatty v0.0.20 // indirect
github.com/miekg/dns v1.1.72 // indirect
github.com/minio/crc64nvme v1.1.1 // indirect
github.com/minio/md5-simd v1.1.2 // indirect
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee // indirect
github.com/ncruces/go-strftime v1.0.0 // indirect
github.com/nrdcg/namesilo v0.5.0 // indirect
github.com/philhofer/fwd v1.2.0 // indirect
github.com/pkg/errors v0.9.1 // indirect
github.com/rs/xid v1.6.0 // indirect
github.com/spf13/cast v1.10.0 // indirect
github.com/tinylib/msgp v1.6.1 // indirect
github.com/tjfoc/gmsm v1.4.1 // indirect
golang.org/x/image v0.36.0 // indirect
golang.org/x/mod v0.32.0 // indirect
golang.org/x/net v0.50.0 // indirect
golang.org/x/oauth2 v0.35.0 // indirect
golang.org/x/term v0.40.0 // indirect
golang.org/x/text v0.34.0 // indirect
golang.org/x/time v0.14.0 // indirect
golang.org/x/tools v0.41.0 // indirect
google.golang.org/protobuf v1.36.11 // indirect
gopkg.in/ini.v1 v1.67.1 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
modernc.org/libc v1.67.6 // indirect
modernc.org/mathutil v1.7.1 // indirect
modernc.org/memory v1.11.0 // indirect
modernc.org/sqlite v1.46.1 // indirect
)
replace gitlab.ecloud.com/ecloud/ecloudsdkcore v1.0.0 => ./pkg/forks/gitlab.ecloud.com/ecloud/ecloudsdkcore@v1.0.0
replace gitlab.ecloud.com/ecloud/ecloudsdkclouddns v1.0.1 => ./pkg/forks/gitlab.ecloud.com/ecloud/ecloudsdkclouddns@v1.0.1
================================================
FILE: go.sum
================================================
cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU=
cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU=
cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY=
cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc=
cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0=
cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To=
cloud.google.com/go v0.52.0/go.mod h1:pXajvRH/6o3+F9jDHZWQ5PbGhn+o8w9qiu/CffaVdO4=
cloud.google.com/go v0.53.0/go.mod h1:fp/UouUEsRkN6ryDKNW/Upv/JBKnv6WDthjR6+vze6M=
cloud.google.com/go v0.54.0/go.mod h1:1rq2OEkV3YMf6n/9ZvGWI3GWw0VoqH/1x2nd8Is/bPc=
cloud.google.com/go v0.56.0/go.mod h1:jr7tqZxxKOVYizybht9+26Z/gUq7tiRzu+ACVAMbKVk=
cloud.google.com/go v0.57.0/go.mod h1:oXiQ6Rzq3RAkkY7N6t3TcE6jE+CIBBbA36lwQ1JyzZs=
cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOYc=
cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY=
cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o=
cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE=
cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc=
cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg=
cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc=
cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ=
cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE=
cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk=
cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I=
cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw=
cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA=
cloud.google.com/go/pubsub v1.3.1/go.mod h1:i+ucay31+CNRpDW4Lu78I4xXG+O1r/MAHgjpRVR+TSU=
cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw=
cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos=
cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk=
cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs=
cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0=
dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU=
filippo.io/edwards25519 v1.1.0 h1:FNf4tywRC1HmFuKW5xopWpigGjJKiJSV0Cqo0cJWDaA=
filippo.io/edwards25519 v1.1.0/go.mod h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4=
github.com/Azure/azure-sdk-for-go v68.0.0+incompatible h1:fcYLmCpyNYRnvJbPerq7U0hS+6+I79yEDJBqVNcqUzU=
github.com/Azure/azure-sdk-for-go/sdk/azcore v1.21.0 h1:fou+2+WFTib47nS+nz/ozhEBnvU96bKHy6LjRsY4E28=
github.com/Azure/azure-sdk-for-go/sdk/azcore v1.21.0/go.mod h1:t76Ruy8AHvUAC8GfMWJMa0ElSbuIcO03NLpynfbgsPA=
github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.13.1 h1:Hk5QBxZQC1jb2Fwj6mpzme37xbCDdNTxU7O9eb5+LB4=
github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.13.1/go.mod h1:IYus9qsFobWIc2YVwe/WPjcnyCkPKtnHAqUYeebc8z0=
github.com/Azure/azure-sdk-for-go/sdk/azidentity/cache v0.3.2 h1:yz1bePFlP5Vws5+8ez6T3HWXPmwOK7Yvq8QxDBD3SKY=
github.com/Azure/azure-sdk-for-go/sdk/azidentity/cache v0.3.2/go.mod h1:Pa9ZNPuoNu/GztvBSKk9J1cDJW6vk/n0zLtV4mgd8N8=
github.com/Azure/azure-sdk-for-go/sdk/internal v1.11.2 h1:9iefClla7iYpfYWdzPCRDozdmndjTm8DXdpCzPajMgA=
github.com/Azure/azure-sdk-for-go/sdk/internal v1.11.2/go.mod h1:XtLgD3ZD34DAaVIIAyG3objl5DynM3CQ/vMcbBNJZGI=
github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/dns/armdns v1.2.0 h1:lpOxwrQ919lCZoNCd69rVt8u1eLZuMORrGXqy8sNf3c=
github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/dns/armdns v1.2.0/go.mod h1:fSvRkb8d26z9dbL40Uf/OO6Vo9iExtZK3D0ulRV+8M0=
github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/internal/v3 v3.1.0 h1:2qsIIvxVT+uE6yrNldntJKlLRgxGbZ85kgtz5SNBhMw=
github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/internal/v3 v3.1.0/go.mod h1:AW8VEadnhw9xox+VaVd9sP7NjzOAnaZBLRH6Tq3cJ38=
github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/privatedns/armprivatedns v1.3.0 h1:yzrctSl9GMIQ5lHu7jc8olOsGjWDCsBpJhWqfGa/YIM=
github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/privatedns/armprivatedns v1.3.0/go.mod h1:GE4m0rnnfwLGX0Y9A9A25Zx5N/90jneT5ABevqzhuFQ=
github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph v0.9.0 h1:zLzoX5+W2l95UJoVwiyNS4dX8vHyQ6x2xRLoBBL9wMk=
github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resourcegraph/armresourcegraph v0.9.0/go.mod h1:wVEOJfGTj0oPAUGA1JuRAvz/lxXQsWW16axmHPP47Bk=
github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resources/armresources v1.2.0 h1:Dd+RhdJn0OTtVGaeDLZpcumkIVCtA/3/Fo42+eoYvVM=
github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resources/armresources v1.2.0/go.mod h1:5kakwfW5CjC9KK+Q4wjXAg+ShuIm2mBMua0ZFj2C8PE=
github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azcertificates v1.4.0 h1:mtvR5ZXH5Ew6PSONd5lO5OXovWP1E3oAlgC8fpxor2Q=
github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azcertificates v1.4.0/go.mod h1:u560+RFVfG0CBPzkXlDW43slESbBAQjgDGi3r6z+wk8=
github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/internal v1.2.0 h1:nCYfgcSyHZXJI8J0IWE5MsCGlb2xp9fJiXyxWgmOFg4=
github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/internal v1.2.0/go.mod h1:ucUjca2JtSZboY8IoUqyQyuuXvwbMBVwFOm0vdQPNhA=
github.com/AzureAD/microsoft-authentication-extensions-for-go/cache v0.1.1 h1:WJTmL004Abzc5wDB5VtZG2PJk5ndYDgVacGqfirKxjM=
github.com/AzureAD/microsoft-authentication-extensions-for-go/cache v0.1.1/go.mod h1:tCcJZ0uHAmvjsVYzEFivsRTN00oz5BEsRgQHu5JZ9WE=
github.com/AzureAD/microsoft-authentication-library-for-go v1.6.0 h1:XRzhVemXdgvJqCH0sFfrBUTnUJSBrBf7++ypk+twtRs=
github.com/AzureAD/microsoft-authentication-library-for-go v1.6.0/go.mod h1:HKpQxkWaGLJ+D/5H8QRpyQXA1eKjxkFlOMwck5+33Jk=
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
github.com/BurntSushi/toml v1.3.2/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ=
github.com/BurntSushi/toml v1.6.0 h1:dRaEfpa2VI55EwlIW72hMRHdWouJeRF7TPYhI+AUQjk=
github.com/BurntSushi/toml v1.6.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho=
github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
github.com/DataDog/datadog-go v3.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ=
github.com/G-Core/gcorelabscdn-go v1.0.35 h1:7UFoL1jSb8e+JN1xxQisGE8gtflqx1vM1gH7wa9fa1E=
github.com/G-Core/gcorelabscdn-go v1.0.35/go.mod h1:iSGXaTvZBzDHQW+rKFS918BgFVpONcyLEijwh8WsXpE=
github.com/HdrHistogram/hdrhistogram-go v1.1.0/go.mod h1:yDgFjdqOqDEKOvasDdhWNXYg9BVp4O+o5f6V/ehm6Oo=
github.com/HdrHistogram/hdrhistogram-go v1.1.2/go.mod h1:yDgFjdqOqDEKOvasDdhWNXYg9BVp4O+o5f6V/ehm6Oo=
github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0=
github.com/KscSDK/ksc-sdk-go v0.18.0 h1:Lix27hvZ9K4WTj4qUwh+2fbXYuMp9jBpVbnnmeiCg5U=
github.com/KscSDK/ksc-sdk-go v0.18.0/go.mod h1:isHlJZi429ff5JLemSc10h7nznNgzJAY4MmNM8u7SBo=
github.com/Masterminds/semver/v3 v3.4.0 h1:Zog+i5UMtVoCU8oKka5P7i9q9HgrJeGzI9SA1Xbatp0=
github.com/Masterminds/semver/v3 v3.4.0/go.mod h1:4V+yj/TJE1HU9XfppCwVMZq3I84lprf4nC11bSS5beM=
github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU=
github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo=
github.com/Shopify/sarama v1.30.1/go.mod h1:hGgx05L/DiW8XYBXeJdKIN6V2QUy2H6JqME5VT1NLRw=
github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI=
github.com/Shopify/toxiproxy/v2 v2.1.6-0.20210914104332-15ea381dcdae/go.mod h1:/cvHQkZ1fst0EmZnA5dFtiQdWCNCFYzb+uE2vqVgvx0=
github.com/VividCortex/gohistogram v1.0.0/go.mod h1:Pf5mBqqDxYaXu3hDrrU+w6nw50o/4+TcAqDqk/vUH7g=
github.com/afex/hystrix-go v0.0.0-20180502004556-fa1af6a1f4f5/go.mod h1:SkGFH1ia65gfNATL8TAiHDNxPzPdmEL5uirI2Uyuz6c=
github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw=
github.com/akamai/AkamaiOPEN-edgegrid-golang/v11 v11.1.0 h1:h/33OxYLqBk0BYmEbSUy7MlvgQR/m1w1/7OJFKoPL1I=
github.com/akamai/AkamaiOPEN-edgegrid-golang/v11 v11.1.0/go.mod h1:rvh3imDA6EaQi+oM/GQHkQAOHbXPKJ7EWJvfjuw141Q=
github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho=
github.com/alex-ant/gomath v0.0.0-20160516115720-89013a210a82/go.mod h1:nLnM0KdK1CmygvjpDUO6m1TjSsiQtL61juhNsvV/JVI=
github.com/alibabacloud-go/alb-20200616/v2 v2.3.1 h1:IYWpYnBpRUY35vA0/Qxedqwkl2oMlwFf7UhibbUXkEE=
github.com/alibabacloud-go/alb-20200616/v2 v2.3.1/go.mod h1:pUTnSOSknoHg5YtAmGrXuO+JcPlb+EYRNutf5VbW/F0=
github.com/alibabacloud-go/alibabacloud-gateway-fc-util v0.0.7 h1:RDatRb9RG39HjkevgzTeiVoDDaamoB+12GHNairp3Ag=
github.com/alibabacloud-go/alibabacloud-gateway-fc-util v0.0.7/go.mod h1:H0RPHXHP/ICfEQrKzQcCqXI15jcV4zaDPCOAmh3U9O8=
github.com/alibabacloud-go/alibabacloud-gateway-pop v0.0.6 h1:eIf+iGJxdU4U9ypaUfbtOWCsZSbTb8AUHvyPrxu6mAA=
github.com/alibabacloud-go/alibabacloud-gateway-pop v0.0.6/go.mod h1:4EUIoxs/do24zMOGGqYVWgw0s9NtiylnJglOeEB5UJo=
github.com/alibabacloud-go/alibabacloud-gateway-spi v0.0.4/go.mod h1:sCavSAvdzOjul4cEqeVtvlSaSScfNsTQ+46HwlTL1hc=
github.com/alibabacloud-go/alibabacloud-gateway-spi v0.0.5 h1:zE8vH9C7JiZLNJJQ5OwjU9mSi4T9ef9u3BURT6LCLC8=
github.com/alibabacloud-go/alibabacloud-gateway-spi v0.0.5/go.mod h1:tWnyE9AjF8J8qqLk645oUmVUnFybApTQWklQmi5tY6g=
github.com/alibabacloud-go/apig-20240327/v6 v6.0.1 h1:LneGoh/nC1Dv39qGOrXH5py2D6kFHSkr1etNuo2dxls=
github.com/alibabacloud-go/apig-20240327/v6 v6.0.1/go.mod h1:VCQaugCTmRp5E1HXWFnCdpJP+UVSFkaJBn787UpR6Qw=
github.com/alibabacloud-go/cas-20200407/v4 v4.1.0 h1:JldJ1EtKHzqZMQJkZaGKz4pI6TtbKCKTXNO/v2bVJ30=
github.com/alibabacloud-go/cas-20200407/v4 v4.1.0/go.mod h1:q7X8C3NE71dRxR3YLwz/NESvE5X56RI2tGTJqODe7Zs=
github.com/alibabacloud-go/cdn-20180510/v9 v9.0.0 h1:HNutnXWhtfPUjlUEOfMvzqVXpQip11eqK4vSMM0o+UA=
github.com/alibabacloud-go/cdn-20180510/v9 v9.0.0/go.mod h1:6UcbZ0B2z0B1mnquRrsB0vCKwNcgBJE70y3PIn3y0Eo=
github.com/alibabacloud-go/cloudapi-20160714/v5 v5.7.9 h1:lFUrf4dvUmbTkAW56fyKdNauSStUpNR4i7cFWWKu/pY=
github.com/alibabacloud-go/cloudapi-20160714/v5 v5.7.9/go.mod h1:kPth3SgnjK42No8O5biqjrAeDgMd/cFGUktq8g9Vs4A=
github.com/alibabacloud-go/darabonba-array v0.1.0 h1:vR8s7b1fWAQIjEjWnuF0JiKsCvclSRTfDzZHTYqfufY=
github.com/alibabacloud-go/darabonba-array v0.1.0/go.mod h1:BLKxr0brnggqOJPqT09DFJ8g3fsDshapUD3C3aOEFaI=
github.com/alibabacloud-go/darabonba-encode-util v0.0.2 h1:1uJGrbsGEVqWcWxrS9MyC2NG0Ax+GpOM5gtupki31XE=
github.com/alibabacloud-go/darabonba-encode-util v0.0.2/go.mod h1:JiW9higWHYXm7F4PKuMgEUETNZasrDM6vqVr/Can7H8=
github.com/alibabacloud-go/darabonba-map v0.0.2 h1:qvPnGB4+dJbJIxOOfawxzF3hzMnIpjmafa0qOTp6udc=
github.com/alibabacloud-go/darabonba-map v0.0.2/go.mod h1:28AJaX8FOE/ym8OUFWga+MtEzBunJwQGceGQlvaPGPc=
github.com/alibabacloud-go/darabonba-openapi/v2 v2.0.5/go.mod h1:kUe8JqFmoVU7lfBauaDD5taFaW7mBI+xVsyHutYtabg=
github.com/alibabacloud-go/darabonba-openapi/v2 v2.1.13/go.mod h1:lxFGfobinVsQ49ntjpgWghXmIF0/Sm4+wvBJ1h5RtaE=
github.com/alibabacloud-go/darabonba-openapi/v2 v2.1.14/go.mod h1:lxFGfobinVsQ49ntjpgWghXmIF0/Sm4+wvBJ1h5RtaE=
github.com/alibabacloud-go/darabonba-openapi/v2 v2.1.15 h1:Mubp9hXZMTPWZK+WxrR+kKOVFp4Q/PDZrIIM7ByXI9Y=
github.com/alibabacloud-go/darabonba-openapi/v2 v2.1.15/go.mod h1:lxFGfobinVsQ49ntjpgWghXmIF0/Sm4+wvBJ1h5RtaE=
github.com/alibabacloud-go/darabonba-signature-util v0.0.7 h1:UzCnKvsjPFzApvODDNEYqBHMFt1w98wC7FOo0InLyxg=
github.com/alibabacloud-go/darabonba-signature-util v0.0.7/go.mod h1:oUzCYV2fcCH797xKdL6BDH8ADIHlzrtKVjeRtunBNTQ=
github.com/alibabacloud-go/darabonba-string v1.0.2 h1:E714wms5ibdzCqGeYJ9JCFywE5nDyvIXIIQbZVFkkqo=
github.com/alibabacloud-go/darabonba-string v1.0.2/go.mod h1:93cTfV3vuPhhEwGGpKKqhVW4jLe7tDpo3LUM0i0g6mA=
github.com/alibabacloud-go/dcdn-20180115/v4 v4.1.0 h1:3Q7qvpL2+k+7Twda0VE0MC0vfoRAxCtOl36S7vDLmjY=
github.com/alibabacloud-go/dcdn-20180115/v4 v4.1.0/go.mod h1:dVyxkadBhESK7HlppUEjdaJmw6e5ZlZNwy8+BTSDcRE=
github.com/alibabacloud-go/ddoscoo-20200101/v5 v5.0.1 h1:vEwgCBuQxrTaThLC4eMOko/XjAPT9WIg0t0gk+ABJiE=
github.com/alibabacloud-go/ddoscoo-20200101/v5 v5.0.1/go.mod h1:oYNvOuLR67SMppvBmB9Hb9jnJFDQtLLEN/Rbukbq0w0=
github.com/alibabacloud-go/debug v0.0.0-20190504072949-9472017b5c68/go.mod h1:6pb/Qy8c+lqua8cFpEy7g39NRRqOWc3rOwAy8m5Y2BY=
github.com/alibabacloud-go/debug v1.0.0/go.mod h1:8gfgZCCAC3+SCzjWtY053FrOcd4/qlH6IHTI4QyICOc=
github.com/alibabacloud-go/debug v1.0.1 h1:MsW9SmUtbb1Fnt3ieC6NNZi6aEwrXfDksD4QA6GSbPg=
github.com/alibabacloud-go/debug v1.0.1/go.mod h1:8gfgZCCAC3+SCzjWtY053FrOcd4/qlH6IHTI4QyICOc=
github.com/alibabacloud-go/endpoint-util v1.1.0/go.mod h1:O5FuCALmCKs2Ff7JFJMudHs0I5EBgecXXxZRyswlEjE=
github.com/alibabacloud-go/endpoint-util v1.1.1 h1:ZkBv2/jnghxtU0p+upSU0GGzW1VL9GQdZO3mcSUTUy8=
github.com/alibabacloud-go/endpoint-util v1.1.1/go.mod h1:O5FuCALmCKs2Ff7JFJMudHs0I5EBgecXXxZRyswlEjE=
github.com/alibabacloud-go/esa-20240910/v2 v2.48.0 h1:SdtLjxay5rzshlp56bvHFSqWuKwi+rkhCfla4cRuDVU=
github.com/alibabacloud-go/esa-20240910/v2 v2.48.0/go.mod h1:uSzaHIUBmr4WoixyRnc8uEuzSqxy/HQ4F8iu4RAzvHQ=
github.com/alibabacloud-go/fc-20230330/v4 v4.6.8 h1:nM/hqf/9ERwN24z00kE66TQfq2NmaCUzFPUnGrwZGdY=
github.com/alibabacloud-go/fc-20230330/v4 v4.6.8/go.mod h1:EQNGiZWcKvBqs6rHHyAtWau1qeTR5A/yiuUI84b7NdA=
github.com/alibabacloud-go/fc-open-20210406/v2 v2.0.12 h1:A3D8Mp6qf8DfR6Dt5MpS8aDVaWfS4N85T5CvGUvgrjM=
github.com/alibabacloud-go/fc-open-20210406/v2 v2.0.12/go.mod h1:F5c0E5UB3k8v6neTtw3FBcJ1YCNFzVoL1JPRHTe33u4=
github.com/alibabacloud-go/ga-20191120/v4 v4.0.0 h1:bigMbQy6TXKMwhsRHqqjo+6dQcv0SZ+nzfxd8N2D7SE=
github.com/alibabacloud-go/ga-20191120/v4 v4.0.0/go.mod h1:07e+SHN7j6s6hL/dSK6TZHIqvWBc0tbWW/iW5BPjM2Q=
github.com/alibabacloud-go/live-20161101/v2 v2.6.0 h1:wi9/Mi5CDYeXquB39B8Ch0/CtuCDoSuQxDw1bY+dl0U=
github.com/alibabacloud-go/live-20161101/v2 v2.6.0/go.mod h1:1BN//Z4vOkdEplf0pWcpF1GuIqaPJOwYuPCShljY+nI=
github.com/alibabacloud-go/nlb-20220430/v4 v4.1.2 h1:dKDAynkCI9qGAlZIaNNGbiLTCLhD5yzqjlQHdbe0lNQ=
github.com/alibabacloud-go/nlb-20220430/v4 v4.1.2/go.mod h1:jYaLW+5IteqlZ8becBP51zPQp42PxjMHLbqMpU5Cyds=
github.com/alibabacloud-go/openapi-util v0.1.0/go.mod h1:sQuElr4ywwFRlCCberQwKRFhRzIyG4QTP/P4y1CJ6Ws=
github.com/alibabacloud-go/openapi-util v0.1.1 h1:ujGErJjG8ncRW6XtBBMphzHTvCxn4DjrVw4m04HsS28=
github.com/alibabacloud-go/openapi-util v0.1.1/go.mod h1:/UehBSE2cf1gYT43GV4E+RxTdLRzURImCYY0aRmlXpw=
github.com/alibabacloud-go/slb-20140515/v4 v4.0.13 h1:MtQUoGTgFqGTebY4lzFTFVsIV7QXeVN13oMzJYqvtYQ=
github.com/alibabacloud-go/slb-20140515/v4 v4.0.13/go.mod h1:gWZrz3AD+izASfHjpxTOIJ8N0KMRjbIRzRZr1koy7tA=
github.com/alibabacloud-go/tea v1.1.0/go.mod h1:IkGyUSX4Ba1V+k4pCtJUc6jDpZLFph9QMy2VUPTwukg=
github.com/alibabacloud-go/tea v1.1.7/go.mod h1:/tmnEaQMyb4Ky1/5D+SE1BAsa5zj/KeGOFfwYm3N/p4=
github.com/alibabacloud-go/tea v1.1.8/go.mod h1:/tmnEaQMyb4Ky1/5D+SE1BAsa5zj/KeGOFfwYm3N/p4=
github.com/alibabacloud-go/tea v1.1.11/go.mod h1:/tmnEaQMyb4Ky1/5D+SE1BAsa5zj/KeGOFfwYm3N/p4=
github.com/alibabacloud-go/tea v1.1.17/go.mod h1:nXxjm6CIFkBhwW4FQkNrolwbfon8Svy6cujmKFUq98A=
github.com/alibabacloud-go/tea v1.1.20/go.mod h1:nXxjm6CIFkBhwW4FQkNrolwbfon8Svy6cujmKFUq98A=
github.com/alibabacloud-go/tea v1.2.1/go.mod h1:qbzof29bM/IFhLMtJPrgTGK3eauV5J2wSyEUo4OEmnA=
github.com/alibabacloud-go/tea v1.2.2/go.mod h1:CF3vOzEMAG+bR4WOql8gc2G9H3EkH3ZLAQdpmpXMgwk=
github.com/alibabacloud-go/tea v1.3.13/go.mod h1:A560v/JTQ1n5zklt2BEpurJzZTI8TUT+Psg2drWlxRg=
github.com/alibabacloud-go/tea v1.4.0 h1:MSKhu/kWLPX7mplWMngki8nNt+CyUZ+kfkzaR5VpMhA=
github.com/alibabacloud-go/tea v1.4.0/go.mod h1:A560v/JTQ1n5zklt2BEpurJzZTI8TUT+Psg2drWlxRg=
github.com/alibabacloud-go/tea-utils v1.3.1/go.mod h1:EI/o33aBfj3hETm4RLiAxF/ThQdSngxrpF8rKUDJjPE=
github.com/alibabacloud-go/tea-utils/v2 v2.0.4/go.mod h1:sj1PbjPodAVTqGTA3olprfeeqqmwD0A5OQz94o9EuXQ=
github.com/alibabacloud-go/tea-utils/v2 v2.0.5/go.mod h1:dL6vbUT35E4F4bFTHL845eUloqaerYBYPsdWR2/jhe4=
github.com/alibabacloud-go/tea-utils/v2 v2.0.6/go.mod h1:qxn986l+q33J5VkialKMqT/TTs3E+U9MJpd001iWQ9I=
github.com/alibabacloud-go/tea-utils/v2 v2.0.7/go.mod h1:qxn986l+q33J5VkialKMqT/TTs3E+U9MJpd001iWQ9I=
github.com/alibabacloud-go/tea-utils/v2 v2.0.9 h1:y6pUIlhjxbZl9ObDAcmA1H3c21eaAxADHTDQmBnAIgA=
github.com/alibabacloud-go/tea-utils/v2 v2.0.9/go.mod h1:qxn986l+q33J5VkialKMqT/TTs3E+U9MJpd001iWQ9I=
github.com/alibabacloud-go/tea-xml v1.1.3/go.mod h1:Rq08vgCcCAjHyRi/M7xlHKUykZCEtyBy9+DPF6GgEu8=
github.com/alibabacloud-go/vod-20170321/v4 v4.11.1 h1:EPenvECObhGH01jaChRb7NRzNrk7eU3iFyZBksQS+zc=
github.com/alibabacloud-go/vod-20170321/v4 v4.11.1/go.mod h1:2NX/9lVaKpd1+1GEV5zUAzQFfK9pF8Wkx81ugAnHYiw=
github.com/alibabacloud-go/waf-openapi-20211001/v7 v7.5.0 h1:QYKzVRu0C/stONFvxnwbYUbpSSauMQrdReekQw4ULqk=
github.com/alibabacloud-go/waf-openapi-20211001/v7 v7.5.0/go.mod h1:g+049bOg+Vh40ckFRzg5kCc7r3kJxYi5aqH/uuRZ+qA=
github.com/aliyun/alibabacloud-oss-go-sdk-v2 v1.4.0 h1:gfxyMc5g9TJ4TO/PQ8PvkGfYpDUHZnVGP0/7iTgI0Ks=
github.com/aliyun/alibabacloud-oss-go-sdk-v2 v1.4.0/go.mod h1:FTzydeQVmR24FI0D6XWUOMKckjXehM/jgMn1xC+DA9M=
github.com/aliyun/credentials-go v1.1.2/go.mod h1:ozcZaMR5kLM7pwtCMEpVmQ242suV6qTJya2bDq4X1Tw=
github.com/aliyun/credentials-go v1.3.1/go.mod h1:8jKYhQuDawt8x2+fusqa1Y6mPxemTsBEN04dgcAcYz0=
github.com/aliyun/credentials-go v1.3.6/go.mod h1:1LxUuX7L5YrZUWzBrRyk0SwSdH4OmPrib8NVePL3fxM=
github.com/aliyun/credentials-go v1.4.5/go.mod h1:Jm6d+xIgwJVLVWT561vy67ZRP4lPTQxMbEYRuT2Ti1U=
github.com/aliyun/credentials-go v1.4.7 h1:T17dLqEtPUFvjDRRb5giVvLh6dFT8IcNFJJb7MeyCxw=
github.com/aliyun/credentials-go v1.4.7/go.mod h1:Jm6d+xIgwJVLVWT561vy67ZRP4lPTQxMbEYRuT2Ti1U=
github.com/anchore/go-lzo v0.1.0 h1:NgAacnzqPeGH49Ky19QKLBZEuFRqtTG9cdaucc3Vncs=
github.com/anchore/go-lzo v0.1.0/go.mod h1:3kLx0bve2oN1iDwgM1U5zGku1Tfbdb0No5qp1eL1fIk=
github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY=
github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o=
github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY=
github.com/armon/go-metrics v0.3.9/go.mod h1:4O98XIr/9W0sxpJ8UaYkvjk10Iff7SnFrb4QAOwNTFc=
github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8=
github.com/armon/go-radix v1.0.0/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8=
github.com/asaskevich/govalidator v0.0.0-20200108200545-475eaeb16496/go.mod h1:oGkLhpf+kjZl6xBf758TQhh5XrAeiJv/7FRz/2spLIg=
github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 h1:DklsrG3dyBCFEj5IhUbnKptjxatkF07cF2ak3yi77so=
github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw=
github.com/avast/retry-go v3.0.0+incompatible h1:4SOWQ7Qs+oroOTQOYnAHqelpCO0biHSxpiH9JdtuBj0=
github.com/avast/retry-go v3.0.0+incompatible/go.mod h1:XtSnn+n/sHqQIpZ10K1qAevBhOOCWBLXXy3hyiqqBrY=
github.com/aws/aws-sdk-go v1.25.3/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo=
github.com/aws/aws-sdk-go v1.40.45 h1:QN1nsY27ssD/JmW4s83qmSb+uL6DG4GmCDzjmJB4xUI=
github.com/aws/aws-sdk-go v1.40.45/go.mod h1:585smgzpB/KqRA+K3y/NL/oYRqQvpNJYvLm+LY1U59Q=
github.com/aws/aws-sdk-go-v2 v1.9.1/go.mod h1:cK/D0BBs0b/oWPIcX/Z/obahJK1TT7IPVjy53i/mX/4=
github.com/aws/aws-sdk-go-v2 v1.41.2 h1:LuT2rzqNQsauaGkPK/7813XxcZ3o3yePY0Iy891T2ls=
github.com/aws/aws-sdk-go-v2 v1.41.2/go.mod h1:IvvlAZQXvTXznUPfRVfryiG1fbzE2NGK6m9u39YQ+S4=
github.com/aws/aws-sdk-go-v2/config v1.32.10 h1:9DMthfO6XWZYLfzZglAgW5Fyou2nRI5CuV44sTedKBI=
github.com/aws/aws-sdk-go-v2/config v1.32.10/go.mod h1:2rUIOnA2JaiqYmSKYmRJlcMWy6qTj1vuRFscppSBMcw=
github.com/aws/aws-sdk-go-v2/credentials v1.19.10 h1:EEhmEUFCE1Yhl7vDhNOI5OCL/iKMdkkYFTRpZXNw7m8=
github.com/aws/aws-sdk-go-v2/credentials v1.19.10/go.mod h1:RnnlFCAlxQCkN2Q379B67USkBMu1PipEEiibzYN5UTE=
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.18 h1:Ii4s+Sq3yDfaMLpjrJsqD6SmG/Wq/P5L/hw2qa78UAY=
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.18/go.mod h1:6x81qnY++ovptLE6nWQeWrpXxbnlIex+4H4eYYGcqfc=
github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.18 h1:F43zk1vemYIqPAwhjTjYIz0irU2EY7sOb/F5eJ3HuyM=
github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.18/go.mod h1:w1jdlZXrGKaJcNoL+Nnrj+k5wlpGXqnNrKoP22HvAug=
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.18 h1:xCeWVjj0ki0l3nruoyP2slHsGArMxeiiaoPN5QZH6YQ=
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.18/go.mod h1:r/eLGuGCBw6l36ZRWiw6PaZwPXb6YOj+i/7MizNl5/k=
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.4 h1:WKuaxf++XKWlHWu9ECbMlha8WOEGm0OUEZqm4K/Gcfk=
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.4/go.mod h1:ZWy7j6v1vWGmPReu0iSGvRiise4YI5SkR3OHKTZ6Wuc=
github.com/aws/aws-sdk-go-v2/service/acm v1.37.20 h1:lK39/l75lJkopS7WIk8bhGnWstTOfFVYtozVW8uoqlM=
github.com/aws/aws-sdk-go-v2/service/acm v1.37.20/go.mod h1:3iaG4YcV+H0ERcefngFFs+ZpFfUaUY8Q0GA8TmkDtE8=
github.com/aws/aws-sdk-go-v2/service/cloudfront v1.60.1 h1:fwkGr0AyYMq/oxzBrNWVLcmSgSWVyGtFAanNs+ECRes=
github.com/aws/aws-sdk-go-v2/service/cloudfront v1.60.1/go.mod h1:PAegJVxp+CkgKZBZVEaTWBN2bHwH24FLl5sIIHYuzOU=
github.com/aws/aws-sdk-go-v2/service/cloudwatch v1.8.1/go.mod h1:CM+19rL1+4dFWnOQKwDc7H1KwXTz+h61oUSHyhV0b3o=
github.com/aws/aws-sdk-go-v2/service/iam v1.53.3 h1:boKZv8dNdHznhAA68hb/dqFz5pxoWmRAOJr9LtscVCI=
github.com/aws/aws-sdk-go-v2/service/iam v1.53.3/go.mod h1:E0QHh3aEwxYb7xshjvxYDELiOda7KBYJ77e/TvGhpcM=
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.5 h1:CeY9LUdur+Dxoeldqoun6y4WtJ3RQtzk0JMP2gfUay0=
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.5/go.mod h1:AZLZf2fMaahW5s/wMRciu1sYbdsikT/UHwbUjOdEVTc=
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.18 h1:LTRCYFlnnKFlKsyIQxKhJuDuA3ZkrDQMRYm6rXiHlLY=
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.18/go.mod h1:XhwkgGG6bHSd00nO/mexWTcTjgd6PjuvWQMqSn2UaEk=
github.com/aws/aws-sdk-go-v2/service/route53 v1.62.1 h1:1jIdwWOulae7bBLIgB36OZ0DINACb1wxM6wdGlx4eHE=
github.com/aws/aws-sdk-go-v2/service/route53 v1.62.1/go.mod h1:tE2zGlMIlxWv+7Otap7ctRp3qeKqtnja7DZguj3Vu/Y=
github.com/aws/aws-sdk-go-v2/service/signin v1.0.6 h1:MzORe+J94I+hYu2a6XmV5yC9huoTv8NRcCrUNedDypQ=
github.com/aws/aws-sdk-go-v2/service/signin v1.0.6/go.mod h1:hXzcHLARD7GeWnifd8j9RWqtfIgxj4/cAtIVIK7hg8g=
github.com/aws/aws-sdk-go-v2/service/sso v1.30.11 h1:7oGD8KPfBOJGXiCoRKrrrQkbvCp8N++u36hrLMPey6o=
github.com/aws/aws-sdk-go-v2/service/sso v1.30.11/go.mod h1:0DO9B5EUJQlIDif+XJRWCljZRKsAFKh3gpFz7UnDtOo=
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.15 h1:edCcNp9eGIUDUCrzoCu1jWAXLGFIizeqkdkKgRlJwWc=
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.15/go.mod h1:lyRQKED9xWfgkYC/wmmYfv7iVIM68Z5OQ88ZdcV1QbU=
github.com/aws/aws-sdk-go-v2/service/sts v1.41.7 h1:NITQpgo9A5NrDZ57uOWj+abvXSb83BbyggcUBVksN7c=
github.com/aws/aws-sdk-go-v2/service/sts v1.41.7/go.mod h1:sks5UWBhEuWYDPdwlnRFn1w7xWdH29Jcpe+/PJQefEs=
github.com/aws/smithy-go v1.8.0/go.mod h1:SObp3lf9smib00L/v3U2eAKG8FyQ7iLrJnQiAmR5n+E=
github.com/aws/smithy-go v1.24.1 h1:VbyeNfmYkWoxMVpGUAbQumkODcYmfMRfZ8yQiH30SK0=
github.com/aws/smithy-go v1.24.1/go.mod h1:LEj2LM3rBRQJxPZTB4KuzZkaZYnZPnvgIhb4pu07mx0=
github.com/aymerick/douceur v0.2.0 h1:Mv+mAeH1Q+n9Fr+oyamOlAkUNPWPlA8PPGR0QAaYuPk=
github.com/aymerick/douceur v0.2.0/go.mod h1:wlT5vV2O3h55X9m7iVYN0TBM0NH/MmbLnd30/FjWUq4=
github.com/baidubce/bce-sdk-go v0.9.260 h1:1v1+2GTP+NGK3L24rJ+bnoiTaDaIy2YoaUM+ot2GTcw=
github.com/baidubce/bce-sdk-go v0.9.260/go.mod h1:zbYJMQwE4IZuyrJiFO8tO8NbtYiKTFTbwh4eIsqjVdg=
github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA=
github.com/benbjohnson/clock v1.3.5 h1:VvXlSJBzZpA/zum6Sj74hxwYI2DIxRWuNIoXAzHZz5o=
github.com/benbjohnson/clock v1.3.5/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA=
github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8=
github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs=
github.com/boombuler/barcode v1.0.1-0.20190219062509-6c824513bacc h1:biVzkmvwrH8WK8raXaxBx6fRVTlJILwEwQGL1I/ByEI=
github.com/boombuler/barcode v1.0.1-0.20190219062509-6c824513bacc/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8=
github.com/buger/goterm v1.0.4 h1:Z9YvGmOih81P0FbVtEYTFF6YsSgxSUKEhf/f9bTMXbY=
github.com/buger/goterm v1.0.4/go.mod h1:HiFWV3xnkolgrBV3mY8m0X0Pumt4zg4QhbdOzQtB8tE=
github.com/byteplus-sdk/byteplus-sdk-golang v1.0.62 h1:36+wcU891+eaanXqlBSacckSyHmyy11iSFoEFVS6x/8=
github.com/byteplus-sdk/byteplus-sdk-golang v1.0.62/go.mod h1:CIL/T2dxgbIA79os+wl0Fq0vCbADTZNIddV6PNYB6DY=
github.com/casbin/casbin/v2 v2.37.0/go.mod h1:vByNa/Fchek0KZUgG5wEsl7iFsiviAYKRtgrQfcJqHg=
github.com/cenkalti/backoff/v4 v4.1.1/go.mod h1:scbssz8iZGpm3xbr14ovlUdkxfGXNInqkPWOWmG2CLw=
github.com/cenkalti/backoff/v4 v4.1.2/go.mod h1:scbssz8iZGpm3xbr14ovlUdkxfGXNInqkPWOWmG2CLw=
github.com/cenkalti/backoff/v4 v4.3.0 h1:MyRJ/UdXutAwSAT+s3wNd7MfTIcy71VQueUuFK343L8=
github.com/cenkalti/backoff/v4 v4.3.0/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE=
github.com/cenkalti/backoff/v5 v5.0.3 h1:ZN+IMa753KfX5hd8vVaMixjnqRZ3y8CuJKRKj1xcsSM=
github.com/cenkalti/backoff/v5 v5.0.3/go.mod h1:rkhZdG3JZukswDf7f0cwqPNk4K0sa+F97BxZthm/crw=
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc=
github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI=
github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI=
github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU=
github.com/circonus-labs/circonus-gometrics v2.3.1+incompatible/go.mod h1:nmEj6Dob7S7YxXgwXpfOuvO54S+tGdZdw9fuRZt25Ag=
github.com/circonus-labs/circonusllhist v0.1.3/go.mod h1:kMXHVDlOchFAehlya5ePtbp5jckzBHf4XRpQvBOLI+I=
github.com/clbanning/mxj v1.8.4/go.mod h1:BVjHeAH+rl9rs6f+QIpeRl0tfu10SXn1pUSa5PVGJng=
github.com/clbanning/mxj/v2 v2.5.5/go.mod h1:hNiWqW14h+kc+MdF9C6/YoRfjEJoR3ou6tn/Qo+ve2s=
github.com/clbanning/mxj/v2 v2.7.0 h1:WA/La7UGCanFe5NpHF0Q3DNtnCsVoxbPKuyBNHWRyME=
github.com/clbanning/mxj/v2 v2.7.0/go.mod h1:hNiWqW14h+kc+MdF9C6/YoRfjEJoR3ou6tn/Qo+ve2s=
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
github.com/cncf/xds/go v0.0.0-20210312221358-fbca930ec8ed/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk=
github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc=
github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU=
github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g=
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
github.com/dave/jennifer v1.6.1/go.mod h1:nXbxhEmQfOZhWml3D1cDK5M1FLnMSozpbFN/m3RmGZc=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM=
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/disintegration/imaging v1.6.2 h1:w1LecBlG2Lnp8B3jk5zSuNqd7b4DXhcjwek1ei82L+c=
github.com/disintegration/imaging v1.6.2/go.mod h1:44/5580QXChDfwIclfc/PCwrr44amcmDAg8hxG0Ewe4=
github.com/diskfs/go-diskfs v1.7.0 h1:vonWmt5CMowXwUc79jWyGrf2DIMeoOjkLlMnQYGVOs8=
github.com/diskfs/go-diskfs v1.7.0/go.mod h1:LhQyXqOugWFRahYUSw47NyZJPezFzB9UELwhpszLP/k=
github.com/djherbis/times v1.6.0 h1:w2ctJ92J8fBvWPxugmXIv7Nz7Q3iDMKNx9v5ocVH20c=
github.com/djherbis/times v1.6.0/go.mod h1:gOHeRAz2h+VJNZ5Gmc/o7iD9k4wW7NMVqieYCY99oc0=
github.com/domodwyer/mailyak/v3 v3.6.2 h1:x3tGMsyFhTCaxp6ycgR0FE/bu5QiNp+hetUuCOBXMn8=
github.com/domodwyer/mailyak/v3 v3.6.2/go.mod h1:lOm/u9CyCVWHeaAmHIdF4RiKVxKUT/H5XX10lIKAL6c=
github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=
github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY=
github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto=
github.com/eapache/go-resiliency v1.1.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs=
github.com/eapache/go-resiliency v1.2.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs=
github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU=
github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I=
github.com/edsrzf/mmap-go v1.0.0/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaBNrHW5M=
github.com/elliotwutingfeng/asciiset v0.0.0-20230602022725-51bbb787efab h1:h1UgjJdAAhj+uPL68n7XASS6bU+07ZX1WJvVS2eyoeY=
github.com/elliotwutingfeng/asciiset v0.0.0-20230602022725-51bbb787efab/go.mod h1:GLo/8fDswSAniFG+BFIaiSPcK610jyzgEhWYPQwuQdw=
github.com/emicklei/go-restful/v3 v3.12.2 h1:DhwDP0vY3k8ZzE0RunuJy8GhNpPL6zqLkDf9B/a0/xU=
github.com/emicklei/go-restful/v3 v3.12.2/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc=
github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk=
github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk=
github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0/go.mod h1:hliV/p42l8fGbc6Y9bQ70uLwIvmJyVE5k4iMKlh8wCQ=
github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4=
github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU=
github.com/fatih/color v1.10.0/go.mod h1:ELkj/draVOlAH/xkhN6mQ50Qd0MPOk5AAr3maGEBuJM=
github.com/fatih/color v1.12.0/go.mod h1:ELkj/draVOlAH/xkhN6mQ50Qd0MPOk5AAr3maGEBuJM=
github.com/fatih/color v1.18.0 h1:S8gINlzdQ840/4pfAwic/ZE0djQEH3wM94VfqLTZcOM=
github.com/fatih/color v1.18.0/go.mod h1:4FelSpRwEGDpQ12mAdzqdOukCy4u8WUtOY6lkT/6HfU=
github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k=
github.com/fortytw2/leaktest v1.3.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHquHwclZch5g=
github.com/franela/goblin v0.0.0-20210519012713-85d372ac71e2/go.mod h1:VzmDKDJVZI3aJmnRI9VjAn9nJ8qPPsN1fqzr9dqInIo=
github.com/franela/goreq v0.0.0-20171204163338-bcd34c9993f8/go.mod h1:ZhphrRTfi2rbfLwlschooIH4+wKKDR4Pdxhh+TRoA20=
github.com/frankban/quicktest v1.11.3/go.mod h1:wRf/ReqHper53s+kmmSZizM8NamnL3IM0I9ntUbOk+k=
github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8=
github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0=
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ=
github.com/fxamacker/cbor/v2 v2.9.0 h1:NpKPmjDBgUfBms6tr6JZkTHtfFGcMKsw3eGcmD/sapM=
github.com/fxamacker/cbor/v2 v2.9.0/go.mod h1:vM4b+DJCtHn+zz7h3FFp/hDAI9WNWCsZj23V5ytsSxQ=
github.com/gabriel-vasile/mimetype v1.4.13 h1:46nXokslUBsAJE/wMsp5gtO500a4F3Nkz9Ufpk2AcUM=
github.com/gabriel-vasile/mimetype v1.4.13/go.mod h1:d+9Oxyo1wTzWdyVUPMmXFvp4F9tea18J8ufA774AB3s=
github.com/gammazero/toposort v0.1.1/go.mod h1:H2cozTnNpMw0hg2VHAYsAxmkHXBYroNangj2NTBQDvw=
github.com/ganigeorgiev/fexpr v0.5.0 h1:XA9JxtTE/Xm+g/JFI6RfZEHSiQlk+1glLvRK1Lpv/Tk=
github.com/ganigeorgiev/fexpr v0.5.0/go.mod h1:RyGiGqmeXhEQ6+mlGdnUleLHgtzzu/VGO2WtJkF5drE=
github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
github.com/go-acme/alidns-20150109/v4 v4.7.0 h1:PqJ/wR0JTpL4v0Owu1uM7bPQ1Yww0eQLAuuSdLjjQaQ=
github.com/go-acme/alidns-20150109/v4 v4.7.0/go.mod h1:btQvB6xZoN6ykKB74cPhiR+uvhrEE2AFVXm6RDmCHm0=
github.com/go-acme/esa-20240910/v2 v2.48.0 h1:muSDyhjDTejxUGe3FTthCPCqRaEdYY9cG3N/AmU52Lc=
github.com/go-acme/esa-20240910/v2 v2.48.0/go.mod h1:shPb6hzc1rJL15IJBY8HQ4GZk4E8RC52+52twutEwIg=
github.com/go-acme/jdcloud-sdk-go v1.64.0 h1:AW9j5khk8tRYbpBJPxKmqdwIqgLs2Fz3HUK3hn2YXjs=
github.com/go-acme/jdcloud-sdk-go v1.64.0/go.mod h1:qc/m8HNX1Zgd7GAv2DSEinup8fwy3Ted3/VVx7LB5bU=
github.com/go-acme/lego/v4 v4.32.0 h1:z7Ss7aa1noabhKj+DBzhNCO2SM96xhE3b0ucVW3x8Tc=
github.com/go-acme/lego/v4 v4.32.0/go.mod h1:lI2fZNdgeM/ymf9xQ9YKbgZm6MeDuf91UrohMQE4DhI=
github.com/go-acme/tencentclouddnspod v1.3.24 h1:uCSiOW1EJttcnOON+MVVyVDJguFL/Q4NIGkq1CrT9p8=
github.com/go-acme/tencentclouddnspod v1.3.24/go.mod h1:RKcB2wSoZncjBA0OEFj59s1ko1XDy+ZsAtk+9uMxUF0=
github.com/go-acme/tencentedgdeone v1.3.38 h1:5YsVl0H4A+cwtiUqR1eZbKFdr4OWfYp2KYJopifzKyQ=
github.com/go-acme/tencentedgdeone v1.3.38/go.mod h1:yyjTKVmGpMtFv5HqGODqehHnZJ4KWAbG6dAiwWDgCDY=
github.com/go-cmd/cmd v1.4.3 h1:6y3G+3UqPerXvPcXvj+5QNPHT02BUw7p6PsqRxLNA7Y=
github.com/go-cmd/cmd v1.4.3/go.mod h1:u3hxg/ry+D5kwh8WvUkHLAMe2zQCaXd00t35WfQaOFk=
github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU=
github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
github.com/go-ini/ini v1.67.0 h1:z6ZrTEZqSWOTyH2FlglNbNgARyHG8oLW9gMELqKr06A=
github.com/go-ini/ini v1.67.0/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8=
github.com/go-jose/go-jose/v4 v4.1.3 h1:CVLmWDhDVRa6Mi/IgCgaopNosCaHz7zrMeF9MlZRkrs=
github.com/go-jose/go-jose/v4 v4.1.3/go.mod h1:x4oUasVrzR7071A4TnHLGSPpNOm2a21K9Kf04k1rs08=
github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
github.com/go-kit/kit v0.12.0/go.mod h1:lHd+EkCZPIwYItmGDDRdhinkzX2A1sj+M9biaEaizzs=
github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY=
github.com/go-kit/log v0.2.0/go.mod h1:NwTd00d/i8cPZ3xOwwiv2PO5MOcx78fFErGNcVmBjv0=
github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE=
github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk=
github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A=
github.com/go-logfmt/logfmt v0.5.1/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs=
github.com/go-logr/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI=
github.com/go-logr/logr v1.4.3/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
github.com/go-openapi/jsonpointer v0.21.0 h1:YgdVicSA9vH5RiHs9TZW5oyafXZFc6+2Vc1rr/O9oNQ=
github.com/go-openapi/jsonpointer v0.21.0/go.mod h1:IUyH9l/+uyhIYQ/PXVA41Rexl+kOkAPDdXEYns6fzUY=
github.com/go-openapi/jsonreference v0.21.0 h1:Rs+Y7hSXT83Jacb7kFyjn4ijOuVGSvOdF2+tg1TRrwQ=
github.com/go-openapi/jsonreference v0.21.0/go.mod h1:LmZmgsrTkVg9LG4EaHeY8cBDslNPMo06cago5JNLkm4=
github.com/go-openapi/swag v0.23.0 h1:vsEVJDUo2hPJ2tu0/Xc+4noaxyEffXNIs3cOULZ+GrE=
github.com/go-openapi/swag v0.23.0/go.mod h1:esZ8ITTYEsH1V2trKHjAN8Ai7xHb8RV+YSZ577vPjgQ=
github.com/go-ozzo/ozzo-validation/v4 v4.3.0 h1:byhDUpfEwjsVQb1vBunvIjh2BHQ9ead57VkAEY4V+Es=
github.com/go-ozzo/ozzo-validation/v4 v4.3.0/go.mod h1:2NKgrcHl3z6cJs+3Oo940FPRiTzuqKbvfrL2RxCj6Ew=
github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4=
github.com/go-playground/assert/v2 v2.2.0 h1:JvknZsQTYeFEAhQwI4qEt9cyV5ONwRHC+lYKSsYSR8s=
github.com/go-playground/assert/v2 v2.2.0/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4=
github.com/go-playground/locales v0.13.0/go.mod h1:taPMhCMXrRLJO55olJkUXHZBHCxTMfnGwq/HNwmWNS8=
github.com/go-playground/locales v0.14.0/go.mod h1:sawfccIbzZTqEDETgFXqTho0QybSa7l++s0DH+LDiLs=
github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/oXslEjJA=
github.com/go-playground/locales v0.14.1/go.mod h1:hxrqLVvrK65+Rwrd5Fc6F2O76J/NuW9t0sjnWqG1slY=
github.com/go-playground/universal-translator v0.17.0/go.mod h1:UkSxE5sNxxRwHyU+Scu5vgOQjsIJAF8j9muTVoKLVtA=
github.com/go-playground/universal-translator v0.18.0/go.mod h1:UvRDBj+xPUEGrFYl+lu/H90nyDXpg0fqeB/AQUGNTVA=
github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJnYK9S473LQFuzCbDbfSFY=
github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY=
github.com/go-playground/validator/v10 v10.4.1/go.mod h1:nlOn6nFhuKACm19sB/8EGNn9GlaMV7XkbRSipzJ0Ii4=
github.com/go-playground/validator/v10 v10.7.0/go.mod h1:xm76BBt941f7yWdGnI2DVPFFg1UK3YY04qifoXU3lOk=
github.com/go-playground/validator/v10 v10.23.0 h1:/PwmTwZhS0dPkav3cdK9kV1FsAmrL8sThn8IHr/sO+o=
github.com/go-playground/validator/v10 v10.23.0/go.mod h1:dbuPbCMFw/DrkbEynArYaCwl3amGuJotoKCe95atGMM=
github.com/go-resty/resty/v2 v2.17.1 h1:x3aMpHK1YM9e4va/TMDRlusDDoZiQ+ViDu/WpA6xTM4=
github.com/go-resty/resty/v2 v2.17.1/go.mod h1:kCKZ3wWmwJaNc7S29BRtUhJwy7iqmn+2mLtQrOyQlVA=
github.com/go-sql-driver/mysql v1.4.1/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w=
github.com/go-sql-driver/mysql v1.8.1 h1:LedoTUt/eveggdHS9qUFC1EFSa8bU2+1pZjSRpvNJ1Y=
github.com/go-sql-driver/mysql v1.8.1/go.mod h1:wEBSXgmK//2ZFJyE+qWnIsVGmvmEKlqwuVSjsCm7DZg=
github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0 h1:p104kn46Q8WdvHunIJ9dAyjPVtrBPhSr3KT2yUst43I=
github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE=
github.com/go-task/slim-sprig/v3 v3.0.0 h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1vB6EwHI=
github.com/go-task/slim-sprig/v3 v3.0.0/go.mod h1:W848ghGpv3Qj3dhTPRyJypKRiqCdHZiAzKg9hl15HA8=
github.com/go-test/deep v1.1.0 h1:WOcxcdHcvdgThNXjw0t76K42FXTU7HpNQWHpA2HHNlg=
github.com/go-test/deep v1.1.0/go.mod h1:5C2ZWiW0ErCdrYzpqxLbTX7MG14M9iiw8DgHncVwcsE=
github.com/go-viper/mapstructure/v2 v2.5.0 h1:vM5IJoUAy3d7zRSVtIwQgBj7BiWtMPfmPEgAXnvj1Ro=
github.com/go-viper/mapstructure/v2 v2.5.0/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM=
github.com/go-zookeeper/zk v1.0.2/go.mod h1:nOB03cncLtlp4t+UAkGSV+9beXP/akpekBwL+UX1Qcw=
github.com/goccy/go-yaml v1.9.8 h1:5gMyLUeU1/6zl+WFfR1hN7D2kf+1/eRGa7DFtToiBvQ=
github.com/goccy/go-yaml v1.9.8/go.mod h1:JubOolP3gh0HpiBc4BLRD4YmjEjHAmIIB2aaXKkTfoE=
github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
github.com/gofrs/flock v0.8.1/go.mod h1:F1TvTiK9OcQqauNUHlbJvyl9Qa1QvF/gOUDKA14jxHU=
github.com/gofrs/uuid v4.4.0+incompatible h1:3qXRTX8/NbyulANqlc0lchS1gqAVxRgsuW1YrTJupqA=
github.com/gofrs/uuid v4.4.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM=
github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
github.com/golang-jwt/jwt/v4 v4.0.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg=
github.com/golang-jwt/jwt/v5 v5.3.1 h1:kYf81DTWFe7t+1VvL7eS+jKFVWaUnK9cB1qbwn63YCY=
github.com/golang-jwt/jwt/v5 v5.3.1/go.mod h1:fxCRLWMO43lRc8nhHWY6LGqRcf+1gQWArsqaEUEa5bE=
github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k=
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y=
github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw=
github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw=
github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw=
github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4=
github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw=
github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw=
github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk=
github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8=
github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA=
github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs=
github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w=
github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0=
github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8=
github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
github.com/google/gnostic-models v0.7.0 h1:qwTtogB15McXDaNqTZdzPJRHvaVJlAl+HVQnLmJEJxo=
github.com/google/gnostic-models v0.7.0/go.mod h1:whL5G0m6dmc5cPxKc5bdKdEN3UjI7OUGxBlw57miDrQ=
github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8=
github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU=
github.com/google/go-querystring v1.1.0/go.mod h1:Kcdr2DB4koayq7X8pmAG4sNG59So17icRSOU623lUBU=
github.com/google/go-querystring v1.2.0 h1:yhqkPbu2/OH+V9BfpCVPZkNmUXhb2gBxJArfhIxNtP0=
github.com/google/go-querystring v1.2.0/go.mod h1:8IFJqpSRITyJ8QhQ13bmbeMBDfmeEJZD5A0egEOmkqU=
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs=
github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0=
github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc=
github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc=
github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
github.com/google/pprof v0.0.0-20260115054156-294ebfa9ad83 h1:z2ogiKUYzX5Is6zr/vP9vJGqPwcdqsWjOt+V8J7+bTc=
github.com/google/pprof v0.0.0-20260115054156-294ebfa9ad83/go.mod h1:MxpfABSjhmINe3F1It9d+8exIHFvUqtLIRCdOGNXqiI=
github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg=
github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk=
github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY=
github.com/gopherjs/gopherjs v0.0.0-20200217142428-fce0ec30dd00/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY=
github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg=
github.com/gorilla/css v1.0.1 h1:ntNaBIghp6JmvWnxbZKANoLyuXTPZ4cAMlo6RyhlbO8=
github.com/gorilla/css v1.0.1/go.mod h1:BvnYkspnSzMmwRK+b8/xgNPLiIuNZr6vbZBTPQ2A3b0=
github.com/gorilla/mux v1.6.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs=
github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So=
github.com/gorilla/mux v1.8.1/go.mod h1:AKf9I4AEqPTmMytcMc0KkNouC66V3BtZ4qD5fmWSiMQ=
github.com/gorilla/securecookie v1.1.1/go.mod h1:ra0sb63/xPlUeL+yeDciTfxMRAA+MP+HVt/4epWDjd4=
github.com/gorilla/sessions v1.2.1/go.mod h1:dk2InVEVJ0sfLlnXv9EAgkf6ecYs/i80K/zI+bUmuGM=
github.com/gorilla/websocket v1.5.4-0.20250319132907-e064f32e3674 h1:JeSE6pjso5THxAzdVpqr6/geYxZytqFMBCOtn/ujyeo=
github.com/gorilla/websocket v1.5.4-0.20250319132907-e064f32e3674/go.mod h1:r4w70xmWCQKmi1ONH4KIaBptdivuRPyosB9RmPlGEwA=
github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk=
github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw=
github.com/h2non/gock v1.2.0 h1:K6ol8rfrRkUOefooBC8elXoaNGYkpp7y2qcxGG6BzUE=
github.com/h2non/gock v1.2.0/go.mod h1:tNhoxHYW2W42cYkYb1WqzdbYIieALC99kpYr7rH/BQk=
github.com/h2non/parth v0.0.0-20190131123155-b4df798d6542 h1:2VTzZjLZBgl62/EtslCrtky5vbi9dd7HrQPQIx6wqiw=
github.com/h2non/parth v0.0.0-20190131123155-b4df798d6542/go.mod h1:Ow0tF8D4Kplbc8s8sSb3V2oUCygFHVp8gC3Dn6U4MNI=
github.com/hashicorp/consul/api v1.10.1/go.mod h1:XjsvQN+RJGWI2TWy1/kqaE16HrR2J/FWgkYjdZQsX9M=
github.com/hashicorp/consul/sdk v0.8.0/go.mod h1:GBvyrGALthsZObzUGsfgHZQDXjg4lOjagTIwIR1vPms=
github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
github.com/hashicorp/go-cleanhttp v0.5.0/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80=
github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80=
github.com/hashicorp/go-cleanhttp v0.5.2 h1:035FKYIWjmULyFRBKPs8TBQoi0x6d9G4xc9neXJWAZQ=
github.com/hashicorp/go-cleanhttp v0.5.2/go.mod h1:kO/YDlP8L1346E6Sodw+PrpBSV4/SoxCXGY6BqNFT48=
github.com/hashicorp/go-hclog v0.12.0/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ=
github.com/hashicorp/go-hclog v0.16.2/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ=
github.com/hashicorp/go-hclog v1.6.3 h1:Qr2kF+eVWjTiYmU7Y31tYlP1h0q/X3Nl3tPGdaB11/k=
github.com/hashicorp/go-hclog v1.6.3/go.mod h1:W4Qnvbt70Wk/zYJryRzDRU/4r0kIg0PVHBcfoyhpF5M=
github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60=
github.com/hashicorp/go-immutable-radix v1.3.1/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60=
github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM=
github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk=
github.com/hashicorp/go-multierror v1.1.0/go.mod h1:spPvp8C1qA32ftKqdAHm4hHTbPw+vmowP0z+KUhOZdA=
github.com/hashicorp/go-retryablehttp v0.5.3/go.mod h1:9B5zBasrRhHXnJnui7y6sL7es7NDiJgTc6Er0maI1Xs=
github.com/hashicorp/go-retryablehttp v0.7.8 h1:ylXZWnqa7Lhqpk0L1P1LzDtGcCR0rPVUrx/c8Unxc48=
github.com/hashicorp/go-retryablehttp v0.7.8/go.mod h1:rjiScheydd+CxvumBsIrFKlx3iS0jrZ7LvzFGFmuKbw=
github.com/hashicorp/go-rootcerts v1.0.2/go.mod h1:pqUvnprVnM5bf7AOirdbb01K4ccR319Vf4pU3K5EGc8=
github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU=
github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4=
github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro=
github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro=
github.com/hashicorp/go-uuid v1.0.2/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro=
github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
github.com/hashicorp/golang-lru v0.5.4 h1:YDjusn29QI/Das2iO9M0BHnIbxPeyuCHsjMW+lJfyTc=
github.com/hashicorp/golang-lru v0.5.4/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4=
github.com/hashicorp/golang-lru/v2 v2.0.7 h1:a+bsQ5rvGLjzHuww6tVxozPZFVghXaHOwFs4luLUK2k=
github.com/hashicorp/golang-lru/v2 v2.0.7/go.mod h1:QeFd9opnmA6QUJc5vARoKUSoFhyfM2/ZepoAG6RGpeM=
github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64=
github.com/hashicorp/mdns v1.0.1/go.mod h1:4gW7WsVCke5TE7EPeYliwHlRUyBtfCwuFwuMg2DmyNY=
github.com/hashicorp/memberlist v0.2.2/go.mod h1:MS2lj3INKhZjWNqd3N0m3J+Jxf3DAOnAH9VT3Sh9MUE=
github.com/hashicorp/serf v0.9.5/go.mod h1:UWDWwZeL5cuWDJdl0C6wrvrUwEqtQ4ZKBKKENpqIUyk=
github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
github.com/huaweicloud/huaweicloud-sdk-go-v3 v0.1.187 h1:J+U6+eUjIsBhefolFdZW5hQNJbkMj+7msxZrv56Cg2g=
github.com/huaweicloud/huaweicloud-sdk-go-v3 v0.1.187/go.mod h1:M+yna96Fx9o5GbIUnF3OvVvQGjgfVSyeJbV9Yb1z/wI=
github.com/hudl/fargo v1.4.0/go.mod h1:9Ai6uvFy5fQNq6VPKtg+Ceq1+eTY4nKUlR2JElEOcDo=
github.com/iancoleman/strcase v0.3.0/go.mod h1:iwCmte+B7n89clKwxIoIXy/HfoL7AsD47ZCWhYzw7ho=
github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
github.com/imdario/mergo v0.3.12 h1:b6R2BslTbIEToALKP7LxUvijTsNI9TAe80pLWN2g/HU=
github.com/imdario/mergo v0.3.12/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA=
github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=
github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=
github.com/influxdata/influxdb1-client v0.0.0-20200827194710-b269163b24ab/go.mod h1:qj24IKcXYK6Iy9ceXlo3Tc+vtHo9lIhSX5JddghvEPo=
github.com/jarcoal/httpmock v1.4.1 h1:0Ju+VCFuARfFlhVXFc2HxlcQkfB+Xq12/EotHko+x2A=
github.com/jarcoal/httpmock v1.4.1/go.mod h1:ftW1xULwo+j0R0JJkJIIi7UKigZUXCLLanykgjwBXL0=
github.com/jcmturner/aescts/v2 v2.0.0/go.mod h1:AiaICIRyfYg35RUkr8yESTqvSy7csK90qZ5xfvvsoNs=
github.com/jcmturner/dnsutils/v2 v2.0.0/go.mod h1:b0TnjGOvI/n42bZa+hmXL+kFJZsFT7G4t3HTlQ184QM=
github.com/jcmturner/gofork v1.0.0/go.mod h1:MK8+TM0La+2rjBD4jE12Kj1pCCxK7d2LK/UM3ncEo0o=
github.com/jcmturner/goidentity/v6 v6.0.1/go.mod h1:X1YW3bgtvwAXju7V3LCIMpY0Gbxyjn/mY9zx4tFonSg=
github.com/jcmturner/gokrb5/v8 v8.4.2/go.mod h1:sb+Xq/fTY5yktf/VxLsE3wlfPqQjp0aWNYyvBVK62bc=
github.com/jcmturner/rpc/v2 v2.0.3/go.mod h1:VUJYCIDm3PVOEHw8sgt091/20OJjskO/YJki3ELg/Hc=
github.com/jdcloud-api/jdcloud-sdk-go v1.64.0 h1:xZc/ZRcrOhDx9Ra9htu6ui2gUUttmLsXIqH61LcvY4U=
github.com/jdcloud-api/jdcloud-sdk-go v1.64.0/go.mod h1:UrKjuULIWLjHFlG6aSPunArE5QX57LftMmStAZJBEX8=
github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI=
github.com/jinzhu/copier v0.4.0 h1:w3ciUoD19shMCRargcpm0cm91ytaBhDvuRpz1ODO/U8=
github.com/jinzhu/copier v0.4.0/go.mod h1:DfbEm0FYsaqBcKcFuvmOZb218JkPGtvSHsKg8S8hyyg=
github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k=
github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg=
github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo=
github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8=
github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U=
github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY=
github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y=
github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4=
github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=
github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
github.com/json-iterator/go v1.1.11/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo=
github.com/json-iterator/go v1.1.13-0.20220915233716-71ac16282d12 h1:9Nu54bhS/H/Kgo2/7xNSUuC5G28VR8ljfrLKU2G4IjU=
github.com/json-iterator/go v1.1.13-0.20220915233716-71ac16282d12/go.mod h1:TBzl5BIHNXfS9+C35ZyJaklL7mLDbgUkcgXzSLa8Tk0=
github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU=
github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk=
github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU=
github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w=
github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM=
github.com/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes=
github.com/keybase/go-keychain v0.0.1 h1:way+bWYa6lDppZoZcgMbYsvC7GxljxrskdNInRtuthU=
github.com/keybase/go-keychain v0.0.1/go.mod h1:PdEILRW3i9D8JcdM+FmY6RwkHGnhHxXwkPPMeUgOK1k=
github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
github.com/klauspost/compress v1.13.4/go.mod h1:8dP1Hq4DHOhN9w426knH3Rhby4rFm6D8eO+e+Dq5Gzg=
github.com/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk=
github.com/klauspost/compress v1.18.2 h1:iiPHWW0YrcFgpBYhsA6D1+fqHssJscY/Tm/y2Uqnapk=
github.com/klauspost/compress v1.18.2/go.mod h1:R0h/fSBs8DE4ENlcrlib3PsXS61voFxhIs2DeRhCvJ4=
github.com/klauspost/cpuid/v2 v2.0.1/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg=
github.com/klauspost/cpuid/v2 v2.2.11 h1:0OwqZRYI2rFrjS4kvkDnqJkKHdHaRnCm68/DY4OxRzU=
github.com/klauspost/cpuid/v2 v2.2.11/go.mod h1:hqwkgyIinND0mEev00jJYCxPNVRVXFQeu1XKlok6oO0=
github.com/klauspost/crc32 v1.3.0 h1:sSmTt3gUt81RP655XGZPElI0PelVTZ6YwCRnPSupoFM=
github.com/klauspost/crc32 v1.3.0/go.mod h1:D7kQaZhnkX/Y0tstFGf8VUzv2UofNGqCjnC3zdHB0Hw=
github.com/kong/go-kong v0.72.1 h1:rQ69f3Wd0Fvc3JANkavo34vePqR4uZG/YQ2y5U7d2Po=
github.com/kong/go-kong v0.72.1/go.mod h1:J0vGB3wsZ2i99zly1zTRe3v7rOKpkhQZRwbcTFP76qM=
github.com/kong/semver/v4 v4.0.1 h1:DIcNR8W3gfx0KabFBADPalxxsp+q/5COwIFkkhrFQ2Y=
github.com/kong/semver/v4 v4.0.1/go.mod h1:LImQ0oT15pJvSns/hs2laLca2zcYoHu5EsSNY0J6/QA=
github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
github.com/kr/fs v0.1.0 h1:Jskdu9ieNAYnjxsi0LbQp1ulIKZV1LAFgK1tWhpZgl8=
github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg=
github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc=
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk=
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc=
github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw=
github.com/leodido/go-urn v1.2.0/go.mod h1:+8+nEpDfqqsY+g338gtMEUOtuK+4dEMhiQEgxpxOKII=
github.com/leodido/go-urn v1.2.1/go.mod h1:zt4jvISO2HfUBqxjfIshjdMTYS56ZS/qv49ictyFfxY=
github.com/leodido/go-urn v1.4.0 h1:WT9HwE9SGECu3lg4d/dIA+jxlljEa1/ffXKmRjqdmIQ=
github.com/leodido/go-urn v1.4.0/go.mod h1:bvxc+MVxLKB4z00jd1z+Dvzr47oO32F/QSNjSBOlFxI=
github.com/linode/linodego v1.65.0 h1:SdsuGD8VSsPWeShXpE7ihl5vec+fD3MgwhnfYC/rj7k=
github.com/linode/linodego v1.65.0/go.mod h1:tOFiTErdjkbVnV+4S0+NmIE9dqqZUEM2HsJaGu8wMh8=
github.com/luthermonson/go-proxmox v0.3.2 h1:/zUg6FCl9cAABx0xU3OIgtDtClY0gVXxOCsrceDNylc=
github.com/luthermonson/go-proxmox v0.3.2/go.mod h1:oyFgg2WwTEIF0rP6ppjiixOHa5ebK1p8OaRiFhvICBQ=
github.com/magefile/mage v1.15.0 h1:BvGheCMAsG3bWUDbZ8AyXXpCNwU9u5CB6sM+HNb9HYg=
github.com/magefile/mage v1.15.0/go.mod h1:z5UZb/iS3GoOSn0JgWuiw7dxlurVYTu+/jHXqQg881A=
github.com/mailru/easyjson v0.9.0 h1:PrnmzHw7262yW8sTBwxi1PdJA3Iw/EKBa8psRf7d9a4=
github.com/mailru/easyjson v0.9.0/go.mod h1:1+xMtQp2MRNVL/V1bOzuP3aP8VNwRW55fQUto+XFtTU=
github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU=
github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE=
github.com/mattn/go-colorable v0.1.6/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc=
github.com/mattn/go-colorable v0.1.8/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc=
github.com/mattn/go-colorable v0.1.14 h1:9A9LHSqF/7dyVVX6g0U9cwm9pG3kP9gSzcuIPHPsaIE=
github.com/mattn/go-colorable v0.1.14/go.mod h1:6LmQG8QLFO4G5z1gPvYEzlUgJ2wF+stgPZH1UqBm1s8=
github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4=
github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=
github.com/mattn/go-isatty v0.0.10/go.mod h1:qgIWMr58cqv1PHHyhnkY9lrL7etaEgOFcMEpPG5Rm84=
github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOAqxQCu2WE=
github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU=
github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94=
github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY=
github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
github.com/maxatome/go-testdeep v1.12.0 h1:Ql7Go8Tg0C1D/uMMX59LAoYK7LffeJQ6X2T04nTH68g=
github.com/maxatome/go-testdeep v1.12.0/go.mod h1:lPZc/HAcJMP92l7yI6TRz1aZN5URwUBUAfUNvrclaNM=
github.com/microcosm-cc/bluemonday v1.0.27 h1:MpEUotklkwCSLeH+Qdx1VJgNqLlpY2KXwXFM08ygZfk=
github.com/microcosm-cc/bluemonday v1.0.27/go.mod h1:jFi9vgW+H7c3V0lb6nR74Ib/DIB5OBs92Dimizgw2cA=
github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg=
github.com/miekg/dns v1.1.26/go.mod h1:bPDLeHnStXmXAq1m/Ch/hvfNHr14JKNPMBo3VZKjuso=
github.com/miekg/dns v1.1.43/go.mod h1:+evo5L0630/F6ca/Z9+GAqzhjGyn8/c+TBaOyfEl0V4=
github.com/miekg/dns v1.1.72 h1:vhmr+TF2A3tuoGNkLDFK9zi36F2LS+hKTRW0Uf8kbzI=
github.com/miekg/dns v1.1.72/go.mod h1:+EuEPhdHOsfk6Wk5TT2CzssZdqkmFhf8r+aVyDEToIs=
github.com/minio/crc64nvme v1.1.1 h1:8dwx/Pz49suywbO+auHCBpCtlW1OfpcLN7wYgVR6wAI=
github.com/minio/crc64nvme v1.1.1/go.mod h1:eVfm2fAzLlxMdUGc0EEBGSMmPwmXD5XiNRpnu9J3bvg=
github.com/minio/highwayhash v1.0.1/go.mod h1:BQskDq+xkJ12lmlUUi7U0M5Swg3EWR+dLTk+kldvVxY=
github.com/minio/highwayhash v1.0.2/go.mod h1:BQskDq+xkJ12lmlUUi7U0M5Swg3EWR+dLTk+kldvVxY=
github.com/minio/md5-simd v1.1.2 h1:Gdi1DZK69+ZVMoNHRXJyNcxrMA4dSxoYHZSQbirFg34=
github.com/minio/md5-simd v1.1.2/go.mod h1:MzdKDxYpY2BT9XQFocsiZf/NKVtR7nkE4RoEpN+20RM=
github.com/minio/minio-go/v7 v7.0.98 h1:MeAVKjLVz+XJ28zFcuYyImNSAh8Mq725uNW4beRisi0=
github.com/minio/minio-go/v7 v7.0.98/go.mod h1:cY0Y+W7yozf0mdIclrttzo1Iiu7mEf9y7nk2uXqMOvM=
github.com/mitchellh/cli v1.1.0/go.mod h1:xcISNoH86gajksDmfB23e/pu+B+GeFRMYmoHXxx3xhI=
github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y=
github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=
github.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI=
github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=
github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=
github.com/mitchellh/mapstructure v1.4.2/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY=
github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg=
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee h1:W5t00kpgFdJifH4BDsTlE89Zl93FEloxaWZfGcifgq8=
github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
github.com/mohuatech/mohuacloud-go-sdk v0.0.0-20251115182757-6fba4d0a4c47 h1:ymaxpfg8BH3Jlecq943X/+QWOBuMp1qmRUCK+SCoN+c=
github.com/mohuatech/mohuacloud-go-sdk v0.0.0-20251115182757-6fba4d0a4c47/go.mod h1:+GS72hJwcVILclv1ghdmowvKX+iT9gS42bhYLw9hcQg=
github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc=
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA=
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
github.com/namedotcom/go/v4 v4.0.2 h1:4gNkPaPRG/2tqFNUUof7jAVsA6vDutFutEOd7ivnDwA=
github.com/namedotcom/go/v4 v4.0.2/go.mod h1:J6sVueHMb0qbarPgdhrzEVhEaYp+R1SCaTGl2s6/J1Q=
github.com/nats-io/jwt v1.2.2/go.mod h1:/xX356yQA6LuXI9xWW7mZNpxgF2mBmGecH+Fj34sP5Q=
github.com/nats-io/jwt/v2 v2.0.3/go.mod h1:VRP+deawSXyhNjXmxPCHskrR6Mq50BqpEI5SEcNiGlY=
github.com/nats-io/nats-server/v2 v2.5.0/go.mod h1:Kj86UtrXAL6LwYRA6H4RqzkHhK0Vcv2ZnKD5WbQ1t3g=
github.com/nats-io/nats.go v1.12.1/go.mod h1:BPko4oXsySz4aSWeFgOHLZs3G4Jq4ZAyE6/zMCxRT6w=
github.com/nats-io/nkeys v0.2.0/go.mod h1:XdZpAbhgyyODYqjTawOnIOI7VlbKSarI9Gfy1tqEu/s=
github.com/nats-io/nkeys v0.3.0/go.mod h1:gvUNGjVcM2IPr5rCsRsC6Wb3Hr2CQAm08dsxtV6A5y4=
github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c=
github.com/ncruces/go-strftime v1.0.0 h1:HMFp8mLCTPp341M/ZnA4qaf7ZlsbTc+miZjCLOFAw7w=
github.com/ncruces/go-strftime v1.0.0/go.mod h1:Fwc5htZGVVkseilnfgOVb9mKy6w1naJmn9CehxcKcls=
github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno=
github.com/nrdcg/bunny-go v0.1.0 h1:GAHTRpHaG/TxfLZlqoJ8OJFzw8rI74+jOTkzxWh0uHA=
github.com/nrdcg/bunny-go v0.1.0/go.mod h1:u+C9dgsspgtWVaAz6QkyV17s9fxD8viwwKoxb9XMz1A=
github.com/nrdcg/desec v0.11.1 h1:ilpKmCr4gGsLcyq3RHfHNmlRzm9fzT2XbWxoVaUCS0s=
github.com/nrdcg/desec v0.11.1/go.mod h1:2LuxHlOcwML/7cntu0eimONmA1U+ZxFDAonoSXr4igQ=
github.com/nrdcg/goacmedns v0.2.0 h1:ADMbThobzEMnr6kg2ohs4KGa3LFqmgiBA22/6jUWJR0=
github.com/nrdcg/goacmedns v0.2.0/go.mod h1:T5o6+xvSLrQpugmwHvrSNkzWht0UGAwj2ACBMhh73Cg=
github.com/nrdcg/namesilo v0.5.0 h1:6QNxT/XxE+f5B+7QlfWorthNzOzcGlBLRQxqi6YeBrE=
github.com/nrdcg/namesilo v0.5.0/go.mod h1:4UkwlwQfDt74kSGmhLaDylnBrD94IfflnpoEaj6T2qw=
github.com/nrdcg/porkbun v0.4.0 h1:rWweKlwo1PToQ3H+tEO9gPRW0wzzgmI/Ob3n2Guticw=
github.com/nrdcg/porkbun v0.4.0/go.mod h1:/QMskrHEIM0IhC/wY7iTCUgINsxdT2WcOphktJ9+Q54=
github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A=
github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU=
github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk=
github.com/onsi/ginkgo v1.16.2 h1:HFB2fbVIlhIfCfOW81bZFbiC/RvnpXSdhbF2/DJr134=
github.com/onsi/ginkgo v1.16.2/go.mod h1:CObGmKUOKaSC0RjmoAK7tKyn4Azo5P2IWuoMnvwxz1E=
github.com/onsi/ginkgo/v2 v2.27.2 h1:LzwLj0b89qtIy6SSASkzlNvX6WktqurSHwkk2ipF/Ns=
github.com/onsi/ginkgo/v2 v2.27.2/go.mod h1:ArE1D/XhNXBXCBkKOLkbsb2c81dQHCRcF5zwn/ykDRo=
github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY=
github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo=
github.com/onsi/gomega v1.13.0/go.mod h1:lRk9szgn8TxENtWd0Tp4c3wjlRfMTMH27I+3Je41yGY=
github.com/onsi/gomega v1.38.2 h1:eZCjf2xjZAqe+LeWvKb5weQ+NcPwX84kqJ0cZNxok2A=
github.com/onsi/gomega v1.38.2/go.mod h1:W2MJcYxRGV63b418Ai34Ud0hEdTVXq9NW9+Sx6uXf3k=
github.com/op/go-logging v0.0.0-20160315200505-970db520ece7/go.mod h1:HzydrMdWErDVzsI23lYNej1Htcns9BCg93Dk0bBINWk=
github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc=
github.com/openzipkin/zipkin-go v0.2.5/go.mod h1:KpXfKdgRDnnhsxw4pNIH9Md5lyFqKUa4YDFlwRYAMyE=
github.com/ovh/go-ovh v1.9.0 h1:6K8VoL3BYjVV3In9tPJUdT7qMx9h0GExN9EXx1r2kKE=
github.com/ovh/go-ovh v1.9.0/go.mod h1:cTVDnl94z4tl8pP1uZ/8jlVxntjSIf09bNcQ5TJSC7c=
github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc=
github.com/pascaldekloe/goe v0.1.0/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc=
github.com/pavlo-v-chernykh/keystore-go/v4 v4.5.0 h1:2nosf3P75OZv2/ZO/9Px5ZgZ5gbKrzA3joN1QMfOGMQ=
github.com/pavlo-v-chernykh/keystore-go/v4 v4.5.0/go.mod h1:lAVhWwbNaveeJmxrxuSTxMgKpF6DjnuVpn6T8WiBwYQ=
github.com/performancecopilot/speed/v4 v4.0.0/go.mod h1:qxrSyuDGrTOWfV+uKRFhfxw6h/4HXRGUiZiufxo49BM=
github.com/peterhellberg/link v1.2.0 h1:UA5pg3Gp/E0F2WdX7GERiNrPQrM1K6CVJUUWfHa4t6c=
github.com/peterhellberg/link v1.2.0/go.mod h1:gYfAh+oJgQu2SrZHg5hROVRQe1ICoK0/HHJTcE0edxc=
github.com/philhofer/fwd v1.2.0 h1:e6DnBTl7vGY+Gz322/ASL4Gyp1FspeMvx1RNDoToZuM=
github.com/philhofer/fwd v1.2.0/go.mod h1:RqIHx9QI14HlwKwm98g9Re5prTQ6LdeRQn+gXJFxsJM=
github.com/pierrec/lz4 v1.0.2-0.20190131084431-473cd7ce01a1/go.mod h1:3/3N9NVKO0jef7pBehbT1qWhCMrIgbYNnFAZCqQ5LRc=
github.com/pierrec/lz4 v2.6.1+incompatible h1:9UY3+iC23yxF0UfGaYrGplQ+79Rg+h/q9FV9ix19jjM=
github.com/pierrec/lz4 v2.6.1+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY=
github.com/pierrec/lz4/v4 v4.1.17 h1:kV4Ip+/hUBC+8T6+2EgburRtkE9ef4nbY3f4dFhGjMc=
github.com/pierrec/lz4/v4 v4.1.17/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4=
github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c h1:+mdjkGKdHQG3305AYmdv1U2eRNDiU2ErMBj1gwrq8eQ=
github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c/go.mod h1:7rwL4CYBLnjLxUqIJNnCWiEdr3bn6IUYi15bNlnbCCU=
github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA=
github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pkg/profile v1.2.1/go.mod h1:hJw3o1OdXxsrSjjVksARp5W95eeEaEfptyVZyv6JUPA=
github.com/pkg/sftp v1.13.10 h1:+5FbKNTe5Z9aspU88DPIKJ9z2KZoaGCu6Sr6kKR/5mU=
github.com/pkg/sftp v1.13.10/go.mod h1:bJ1a7uDhrX/4OII+agvy28lzRvQrmIQuaHrcI1HbeGA=
github.com/pkg/xattr v0.4.9 h1:5883YPCtkSd8LFbs13nXplj9g9tlrwoJRjgpgMu1/fE=
github.com/pkg/xattr v0.4.9/go.mod h1:di8WF84zAKk8jzR1UBTEWh9AUlIZZ7M/JNt8e9B6ktU=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U=
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/pocketbase/dbx v1.12.0 h1:/oLErM+A0b4xI0PWTGPqSDVjzix48PqI/bng2l0PzoA=
github.com/pocketbase/dbx v1.12.0/go.mod h1:xXRCIAKTHMgUCyCKZm55pUOdvFziJjQfXaWKhu2vhMs=
github.com/pocketbase/pocketbase v0.36.5 h1:QQhfBtOvKN4VXTwh8is5TLxMOKhPXaUcM/RKAlZ31n0=
github.com/pocketbase/pocketbase v0.36.5/go.mod h1:m3tkFYh/+m6yiWHv5ED8gJczVefkbTzrlZOtsNa+bA4=
github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI=
github.com/posener/complete v1.2.3/go.mod h1:WZIdtGGp+qx0sLrYKtIRAruyNpv6hFCicSgv7Sy7s/s=
github.com/povsister/scp v0.0.0-20250701154629-777cf82de5df h1:zEgSHrxo8f6hGG1xCaqunfBq8hlfDmFd1JM0QXiQi7o=
github.com/povsister/scp v0.0.0-20250701154629-777cf82de5df/go.mod h1:CiJNEeV6v0tUCNul/+gTjl+FgjfImoiuptJB9AEzqjE=
github.com/pquerna/otp v1.5.0 h1:NMMR+WrmaqXU4EzdGJEE1aUUI0AMRzsp96fFFWNPwxs=
github.com/pquerna/otp v1.5.0/go.mod h1:dkJfzwRKNiegxyNb54X/3fLwhCynbMspSyWKnvi1AEg=
github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw=
github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo=
github.com/prometheus/client_golang v1.4.0/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU=
github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M=
github.com/prometheus/client_golang v1.11.0/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0=
github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=
github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=
github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4=
github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo=
github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc=
github.com/prometheus/common v0.30.0/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls=
github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A=
github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU=
github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA=
github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA=
github.com/qiniu/dyn v1.3.0 h1:s+xPTeV0H8yikgM4ZMBc7Rrefam8UNI3asBlkaOQg5o=
github.com/qiniu/dyn v1.3.0/go.mod h1:E8oERcm8TtwJiZvkQPbcAh0RL8jO1G0VXJMW3FAWdkk=
github.com/qiniu/go-sdk/v7 v7.25.6 h1:89KQX16Bv2x7MxhwpzWGGvQBOPIlGpAcnPQyfS3tRok=
github.com/qiniu/go-sdk/v7 v7.25.6/go.mod h1:dmKtJ2ahhPWFVi9o1D5GemmWoh/ctuB9peqTowyTO8o=
github.com/qiniu/x v1.10.5 h1:7V/CYWEmo9axJULvrJN6sMYh2FdY+esN5h8jwDkA4b0=
github.com/qiniu/x v1.10.5/go.mod h1:03Ni9tj+N2h2aKnAz+6N0Xfl8FwMEDRC2PAlxekASDs=
github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4=
github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4=
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec h1:W09IVJc94icq4NjY3clb7Lk8O1qJ8BdBEF8z0ibU0rE=
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo=
github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ=
github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc=
github.com/rogpeppe/go-internal v1.8.0/go.mod h1:WmiCO8CzOY8rg0OYDC4/i/2WRWAB6poM+XZ2dLUbcbE=
github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ=
github.com/rogpeppe/go-internal v1.14.1/go.mod h1:MaRKkUm5W0goXpeCfT7UZI6fk/L7L7so1lCWt35ZSgc=
github.com/rs/xid v1.6.0 h1:fV591PaemRlL6JfRxGDEPl69wICngIQ3shQtzfy2gxU=
github.com/rs/xid v1.6.0/go.mod h1:7XoLgs4eV+QndskICGsho+ADou8ySMSjJKDIan90Nz0=
github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts=
github.com/samber/lo v1.52.0 h1:Rvi+3BFHES3A8meP33VPAxiBZX/Aws5RxrschYGjomw=
github.com/samber/lo v1.52.0/go.mod h1:4+MXEGsJzbKGaUEQFKBq2xtfuznW9oz/WrgyzMzRoM0=
github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc=
github.com/shopspring/decimal v1.4.0/go.mod h1:gawqmDU56v4yIKSwfBSFip1HdCCXN8/+DMd9qYNcwME=
github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc=
github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=
github.com/sirupsen/logrus v1.3.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=
github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE=
github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88=
github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0=
github.com/sirupsen/logrus v1.9.0/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ=
github.com/sirupsen/logrus v1.9.4-0.20230606125235-dd1b4c2e81af h1:Sp5TG9f7K39yfB+If0vjp97vuT74F72r8hfRpP8jLU0=
github.com/sirupsen/logrus v1.9.4-0.20230606125235-dd1b4c2e81af/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ=
github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc=
github.com/smartystreets/assertions v1.1.0/go.mod h1:tcbTF8ujkAEcZ8TElKY+i30BzYlVhC/LOxJk7iOWnoo=
github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA=
github.com/sony/gobreaker v0.4.1/go.mod h1:ZKptC7FHNvhBz7dN2LGjPVBz2sZJmc0/PkyDJOjmxWY=
github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA=
github.com/spf13/cast v1.10.0 h1:h2x0u2shc1QuLHfxi+cTJvs30+ZAHOGRic8uyGTDWxY=
github.com/spf13/cast v1.10.0/go.mod h1:jNfB8QC9IA6ZuY2ZjDp0KtFO2LZZlg4S/7bzP6qqeHo=
github.com/spf13/cobra v1.10.2 h1:DMTTonx5m65Ic0GOoRY2c16WCbHxOOw6xxezuLaBpcU=
github.com/spf13/cobra v1.10.2/go.mod h1:7C1pvHqHw5A4vrJfjNwvOdzYu0Gml16OCs2GRiTUUS4=
github.com/spf13/pflag v1.0.9/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
github.com/spf13/pflag v1.0.10 h1:4EBh2KAYBwaONj6b2Ye1GiHfwjqyROoF4RwYO+vPwFk=
github.com/spf13/pflag v1.0.10/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
github.com/streadway/amqp v0.0.0-20190404075320-75d898a42a94/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw=
github.com/streadway/amqp v1.0.0/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw=
github.com/streadway/handy v0.0.0-20200128134331-0f66f006fb2e/go.mod h1:qNTQ5P5JnDBl6z3cMAg/SywNDC5ABu5ApDIw6lUbRmI=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE=
github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY=
github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA=
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=
github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U=
github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdn v1.3.36 h1:zYKBmpT6l7k37LBncd4a1Qj1RvxYFAPf+I6NP5DRBOk=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdn v1.3.36/go.mod h1:zTuaHstR5s1J+qxKh4gbQldbKkaZXefxjWUV+bn01T4=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb v1.3.45 h1:pVHnFf2G6Bw2POiX+JrO1yVCFJAPJZ3hL2xqTtnOdRQ=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb v1.3.45/go.mod h1:mW2Ak0kGPxFjzsXArhQaYTZbIIVb1iMw/EaZ3SfPZMg=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.3.24/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.3.29/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.3.34/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.3.36/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.3.38/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.3.42/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.3.45/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.3.46/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.3.48 h1:bCs+z6dxRaHWm/C1D/XkSOcCZ0+W2+/6HmIXjpAj+fY=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.3.48/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/gaap v1.3.34 h1:/QJeztyMC2tYPJceIoObx7LZqqgFcdDM0SQ/Wd0RtEI=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/gaap v1.3.34/go.mod h1:LiTqyLKs+CUdXeiTezJrsMcgi1RhVQ2gFuCcDxQBK9U=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/live v1.3.45 h1:yKIsmuQPgopARN20hGyOwPS059X8wVJEQjnxmpvZc70=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/live v1.3.45/go.mod h1:TCp0N1HLhVkaQfnQ+0HZRChEIsu4hKTzYs/ISVb3cbU=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/scf v1.3.29 h1:MxY5dIlW9e48lqyMc9xtPCmO0RlJJ+RgZMqs6yYte9w=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/scf v1.3.29/go.mod h1:ERH6Ek8rbThvxvqoC91U6ae+qJyUGrXPjv8sw881hho=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ssl v1.3.42 h1:tzs/LQUXA/RcKP/37WQzL0EXFfWayfx3IESNEgOQmZY=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ssl v1.3.42/go.mod h1:+OiMLoEYiI3UnjZbf0XBdhLn8chpAupH7/zevjXBFug=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/teo v1.3.45 h1:7Hw9bVpwApnPuC6GwPb2HO1Mk+lxVqZMjI8n4IK+xRg=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/teo v1.3.45/go.mod h1:m9gQ6S01nvnzPkeIWmLPWbNI2AiXIfBKQIBY+wwUUeg=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vod v1.3.46 h1:tSCbSFCPgWUXsmmZb9j9ZTGkaH8IpRQCRA5bEMh2CqI=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vod v1.3.46/go.mod h1:HAFMznaORzlFmPFo4kK2+pQ+gdZB3r6ZheBC76jYegE=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/waf v1.3.46 h1:eG0Tfqw3XCj0Tfw7/3HsBLApBjHkBKWzrB3XMfquxwM=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/waf v1.3.46/go.mod h1:V2tffbp8V/mW3fsBgoBmKg55oOim6zymhvfizJsWZlE=
github.com/tidwall/gjson v1.18.0 h1:FIDeeyB800efLX89e5a8Y0BNH+LOngJyGrIWxG2FKQY=
github.com/tidwall/gjson v1.18.0/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk=
github.com/tidwall/match v1.1.1 h1:+Ho715JplO36QYgwN9PGYNhgZvoUSc9X2c80KVTi+GA=
github.com/tidwall/match v1.1.1/go.mod h1:eRSPERbgtNPcGhD8UCthc6PmLEQXEWd3PRB5JTxsfmM=
github.com/tidwall/pretty v1.2.0 h1:RWIZEg2iJ8/g6fDDYzMpobmaoGh5OLl4AXtGUGPcqCs=
github.com/tidwall/pretty v1.2.0/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU=
github.com/tinylib/msgp v1.6.1 h1:ESRv8eL3u+DNHUoSAAQRE50Hm162zqAnBoGv9PzScPY=
github.com/tinylib/msgp v1.6.1/go.mod h1:RSp0LW9oSxFut3KzESt5Voq4GVWyS+PSulT77roAqEA=
github.com/tjfoc/gmsm v1.3.2/go.mod h1:HaUcFuY0auTiaHB9MHFGCPx5IaLhTUd2atbCFBQXn9w=
github.com/tjfoc/gmsm v1.4.1 h1:aMe1GlZb+0bLjn+cKTPEvvn9oUEBlJitaZiiBwsbgho=
github.com/tjfoc/gmsm v1.4.1/go.mod h1:j4INPkHWMrhJb38G+J6W4Tw0AbuN8Thu3PbdVYhVcTE=
github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqriFuLhtthL60Sar/7RFoluCcXsuvEwTV5KM=
github.com/ucloud/ucloud-sdk-go v0.22.59 h1:9wPpKn5kAnG87QS8oiLjtbyS+oSRPKCzA3JmjUa687c=
github.com/ucloud/ucloud-sdk-go v0.22.59/go.mod h1:dyLmFHmUfgb4RZKYQP9IArlvQ2pxzFthfhwxRzOEPIw=
github.com/ulikunitz/xz v0.5.11 h1:kpFauv27b6ynzBNT/Xy+1k+fK4WswhN/6PN5WhFAGw8=
github.com/ulikunitz/xz v0.5.11/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14=
github.com/urfave/cli/v2 v2.3.0/go.mod h1:LJmUH05zAU44vOAcrfzZQKsZbVcdbOG8rtL3/XcUArI=
github.com/volcengine/ve-tos-golang-sdk/v2 v2.9.1 h1:32HAAl4KowauWe2Qf8JTQI+WcnMNPQ5tCMkUv5e+FY0=
github.com/volcengine/ve-tos-golang-sdk/v2 v2.9.1/go.mod h1:IrjK84IJJTuOZOTMv/P18Ydjy/x+ow7fF7q11jAxXLM=
github.com/volcengine/volc-sdk-golang v1.0.23/go.mod h1:AfG/PZRUkHJ9inETvbjNifTDgut25Wbkm2QoYBTbvyU=
github.com/volcengine/volc-sdk-golang v1.0.237 h1:hpLKiS2BwDcSBtZWSz034foCbd0h3FrHTKlUMqHIdc4=
github.com/volcengine/volc-sdk-golang v1.0.237/go.mod h1:zHJlaqiMbIB+0mcrsZPTwOb3FB7S/0MCfqlnO8R7hlM=
github.com/volcengine/volcengine-go-sdk v1.2.15 h1:duhofGY6gVqcMUfvfa2JTo4uvfixH9rASDlJs4TwQJk=
github.com/volcengine/volcengine-go-sdk v1.2.15/go.mod h1:oxoVo+A17kvkwPkIeIHPVLjSw7EQAm+l/Vau1YGHN+A=
github.com/vultr/govultr/v3 v3.27.0 h1:J8etMyu/Jh5+idMsu2YZpOWmDXXHeW4VZnkYXmJYHx8=
github.com/vultr/govultr/v3 v3.27.0/go.mod h1:9WwnWGCKnwDlNjHjtt+j+nP+0QWq6hQXzaHgddqrLWY=
github.com/wneessen/go-mail v0.7.2 h1:xxPnhZ6IZLSgxShebmZ6DPKh1b6OJcoHfzy7UjOkzS8=
github.com/wneessen/go-mail v0.7.2/go.mod h1:+TkW6QP3EVkgTEqHtVmnAE/1MRhmzb8Y9/W3pweuS+k=
github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM=
github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg=
github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI=
github.com/xdg-go/scram v1.0.2/go.mod h1:1WAq6h33pAW+iRreB34OORO2Nf7qel3VV3fjBj+hCSs=
github.com/xdg-go/scram v1.1.2/go.mod h1:RT/sEzTbU5y00aCK8UOx6R7YryM0iF1N2MOmC3kKLN4=
github.com/xdg-go/stringprep v1.0.2/go.mod h1:8F9zXuvzgwmyT5DUm4GUfZGDdT3W+LCvS6+da4O5kxM=
github.com/xdg-go/stringprep v1.0.4/go.mod h1:mPGuuIYwz7CmR2bT9j4GbQqutWS1zV24gijq1dTyGkM=
github.com/xhit/go-str2duration/v2 v2.1.0 h1:lxklc02Drh6ynqX+DdPyp5pCKLUQpRT8bp8Ydu2Bstc=
github.com/xhit/go-str2duration/v2 v2.1.0/go.mod h1:ohY8p+0f07DiV6Em5LKB0s2YpLtXVyJfNt1+BlmyAsU=
github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d/go.mod h1:rHwXgn7JulP+udvsHwJoVG1YGAP6VLg4y9I5dyZdqmA=
github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
github.com/yuin/goldmark v1.1.30/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
go.etcd.io/etcd/api/v3 v3.5.0/go.mod h1:cbVKeC6lCfl7j/8jBhAK6aIYO9XOjdptoxU/nLQcPvs=
go.etcd.io/etcd/client/pkg/v3 v3.5.0/go.mod h1:IJHfcCEKxYu1Os13ZdwCwIUTUVGYTSAM3YSwc9/Ac1g=
go.etcd.io/etcd/client/v2 v2.305.0/go.mod h1:h9puh54ZTgAKtEbut2oe9P4L/oqKCVB6xsXlzd7alYQ=
go.etcd.io/etcd/client/v3 v3.5.0/go.mod h1:AIKXXVX/DQXtfTEqBryiLTUXwON+GuvO6Z7lLS/oTh0=
go.mongodb.org/mongo-driver v1.13.1/go.mod h1:wcDf1JBCXy2mOW0bWHwO/IOYqdca1MPCwDtFu/Z9+eo=
go.mongodb.org/mongo-driver v1.17.2 h1:gvZyk8352qSfzyZ2UMWcpDpMSGEr1eqE4T793SqyhzM=
go.mongodb.org/mongo-driver v1.17.2/go.mod h1:Hy04i7O2kC4RS06ZrhPRqj/u4DTYkFDAAccj+rVKqgQ=
go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU=
go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8=
go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E=
go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI=
go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
go.uber.org/atomic v1.9.0 h1:ECmE8Bn/WFTYwEW/bpKD3M8VtR/zQVbavAoalC1PYyE=
go.uber.org/atomic v1.9.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
go.uber.org/goleak v1.1.11-0.20210813005559-691160354723/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ=
go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU=
go.uber.org/multierr v1.7.0/go.mod h1:7EAYxJLBy9rStEaz58O2t4Uvip6FSURkq8/ppBp95ak=
go.uber.org/ratelimit v0.3.1 h1:K4qVE+byfv/B3tC+4nYWP7v/6SimcO7HzHekoMNBma0=
go.uber.org/ratelimit v0.3.1/go.mod h1:6euWsTB6U/Nb3X++xEUXA8ciPJvr19Q/0h1+oDcJhRk=
go.uber.org/zap v1.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo=
go.uber.org/zap v1.19.1/go.mod h1:j3DNczoxDZroyBnOT1L/Q79cfUMGZxlv/9dzN7SM1rI=
go.yaml.in/yaml/v2 v2.4.3 h1:6gvOSjQoTB3vt1l+CU+tSyi/HOjfOjRLJ4YwYZGwRO0=
go.yaml.in/yaml/v2 v2.4.3/go.mod h1:zSxWcmIDjOzPXpjlTTbAsKokqkDNAVtZO0WOMiT90s8=
go.yaml.in/yaml/v3 v3.0.4 h1:tfq32ie2Jv2UxXFdLJdh3jXuOzWiL1fo0bu/FbuKpbc=
go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg=
golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20190923035154-9ee001bba392/go.mod h1:/lpIB1dKB+9EgE3H3cr1v9wB50oz8l4C4h62xy7jSTY=
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20191219195013-becbf705a915/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto v0.0.0-20200323165209-0ec3e9974c59/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto v0.0.0-20200510223506-06a226fb4e37/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto v0.0.0-20201012173705-84dcc777aaee/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto v0.0.0-20201112155050-0c6587e931a9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto v0.0.0-20210314154223-e6e6c4f2bb5b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4=
golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4=
golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
golang.org/x/crypto v0.0.0-20210915214749-c084706c2272/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
golang.org/x/crypto v0.0.0-20210920023735-84f357641f63/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
golang.org/x/crypto v0.10.0/go.mod h1:o4eNf7Ede1fv+hwOwZsTHl9EsPFO6q6ZvYR8vYfY45I=
golang.org/x/crypto v0.11.0/go.mod h1:xgJhtzW8F9jGdVFWZESrid1U1bjeNy4zgy5cRr/CIio=
golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc=
golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4=
golang.org/x/crypto v0.18.0/go.mod h1:R0j02AL6hcrfOiy9T4ZYp/rcWeMxM3L6QYxlOuEG1mg=
golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU=
golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs=
golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8=
golang.org/x/crypto v0.24.0/go.mod h1:Z1PMYSOR5nyMcyAVAIQSKCDwalqy85Aqn1x3Ws4L5DM=
golang.org/x/crypto v0.48.0 h1:/VRzVqiRSggnhY7gNRxPauEQ5Drw9haKdM0jqfcCFts=
golang.org/x/crypto v0.48.0/go.mod h1:r0kV5h3qnFPlQnBSrULhlsRfryS2pmewsg+XfMgkVos=
golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20190125153040-c74c464bbbf2/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek=
golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY=
golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4=
golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4=
golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4=
golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM=
golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU=
golang.org/x/exp v0.0.0-20260112195511-716be5621a96 h1:Z/6YuSHTLOHfNFdb8zVZomZr7cqNgTJvA8+Qz75D8gU=
golang.org/x/exp v0.0.0-20260112195511-716be5621a96/go.mod h1:nzimsREAkjBCIEFtHiYkrJyT+2uy9YZJB7H1k68CXZU=
golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs=
golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
golang.org/x/image v0.0.0-20191009234506-e7c1f5e7dbb8/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
golang.org/x/image v0.36.0 h1:Iknbfm1afbgtwPTmHnS2gTM/6PPZfH+z2EFuOkSbqwc=
golang.org/x/image v0.36.0/go.mod h1:YsWD2TyyGKiIX1kZlu9QfKIsQ4nAAK9bdgdrIsE7xy4=
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs=
golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
golang.org/x/lint v0.0.0-20210508222113-6edffad5e616/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE=
golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o=
golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc=
golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY=
golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg=
golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg=
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
golang.org/x/mod v0.15.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
golang.org/x/mod v0.32.0 h1:9F4d3PHLljb6x//jOyokMv3eX+YDeepZSEo3mFJy93c=
golang.org/x/mod v0.32.0/go.mod h1:SgipZ/3h2Ci89DlEtEXWUk/HteuRin+HHhN+WbNhguU=
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20200222125558-5a598a2470a0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
golang.org/x/net v0.0.0-20200501053045-e0ff5e5a1de5/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
golang.org/x/net v0.0.0-20200506145744-7e3656a0809f/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
golang.org/x/net v0.0.0-20200513185701-a91f0712d120/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
golang.org/x/net v0.0.0-20201010224723-4f7140c49acb/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM=
golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk=
golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/net v0.0.0-20210614182718-04defd469f4e/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/net v0.0.0-20210917221730-978cfadd31cf/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg=
golang.org/x/net v0.11.0/go.mod h1:2L/ixqYpgIVXmeoSA/4Lu7BzTG4KIyPIryS4IsOd1oQ=
golang.org/x/net v0.12.0/go.mod h1:zEVYFnQC7m/vmpQFELhcD1EWkZlX69l4oqgmer6hfKA=
golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk=
golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE=
golang.org/x/net v0.20.0/go.mod h1:z8BVo6PvndSri0LbOE3hAn0apkU+1YvI6E70E9jsnvY=
golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44=
golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg=
golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM=
golang.org/x/net v0.26.0/go.mod h1:5YKkiSynbBIh3p6iOc/vibscux0x38BZDkn8sCUPxHE=
golang.org/x/net v0.50.0 h1:ucWh9eiCGyDR3vtzso0WMQinm2Dnt8cFMuQa9K33J60=
golang.org/x/net v0.50.0/go.mod h1:UgoSli3F/pBgdJBHCTc+tp3gmrU4XswgGRgtnwWTfyM=
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
golang.org/x/oauth2 v0.35.0 h1:Mv2mzuHuZuY2+bkyWXIHMfhNdJAdwW3FuWeCPYN5GVQ=
golang.org/x/oauth2 v0.35.0/go.mod h1:lzm5WQJQwKZ3nwavOZ3IS5Aulzxi68dUSgRHujetwEA=
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y=
golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
golang.org/x/sync v0.19.0 h1:vV+1eWNmZ5geRlYjzm2adRgW2/mcpevXNg50YZtPCE4=
golang.org/x/sync v0.19.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI=
golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190130150945-aca44879d564/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190922100055-0a153f010e69/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190924154521-2837fb4f24fe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20191008105621-543471e840be/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200124204421-9fbb57f87de9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200331124033-c3d80250170d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200509044756-6aff5f38e54f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210303074136-134d130e1a04/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210331175145-43e1dd70ce54/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20210917161153-d61c044b1678/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220406163625-3f8b81556e12/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220615213510-4f61da869c0c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.9.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.10.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/sys v0.41.0 h1:Ivj+2Cp/ylzLiEU89QhWblYnOE9zerudt9Ftecq2C6k=
golang.org/x/sys v0.41.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
golang.org/x/telemetry v0.0.0-20240228155512-f48c80bd79b2/go.mod h1:TeRTkGYfJXctD9OcfyVLyj2J3IxLnKwHJR8f4D8a3YE=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k=
golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo=
golang.org/x/term v0.9.0/go.mod h1:M6DEAAIenWoTxdKrOltXcmDY3rSplQUkrvaDU5FcQyo=
golang.org/x/term v0.10.0/go.mod h1:lpqdcUyK/oCiQxvxVrppt5ggO2KCZ5QblwqPnfZ6d5o=
golang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU=
golang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U=
golang.org/x/term v0.16.0/go.mod h1:yn7UURbUtPyrVJPGPq404EukNFxcm/foM+bV/bfcDsY=
golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk=
golang.org/x/term v0.18.0/go.mod h1:ILwASektA3OnRv7amZ1xhE/KTR+u50pbXfZ03+6Nx58=
golang.org/x/term v0.20.0/go.mod h1:8UkIAJTvZgivsXaD6/pH6U9ecQzZ45awqEOzuCvwpFY=
golang.org/x/term v0.21.0/go.mod h1:ooXLefLobQVslOqselCNF4SxFAaoS6KujMbsGzSDmX0=
golang.org/x/term v0.40.0 h1:36e4zGLqU4yhjlmxEaagx2KuYbJq3EwY8K943ZsHcvg=
golang.org/x/term v0.40.0/go.mod h1:w2P8uVp06p2iyKKuvXIm7N/y0UCRt3UfJTfZ7oOpglM=
golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ=
golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
golang.org/x/text v0.10.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
golang.org/x/text v0.11.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
golang.org/x/text v0.16.0/go.mod h1:GhwF1Be+LQoKShO3cGOHzqOgRrGaYc9AvblQOmPVHnI=
golang.org/x/text v0.34.0 h1:oL/Qq0Kdaqxa1KbNeMKwQq0reLCCaFtqu2eNuSeNHbk=
golang.org/x/text v0.34.0/go.mod h1:homfLqTYRFyVYemLBFl5GgL/DWEiH5wcsQ5gSh1yziA=
golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.0.0-20200416051211-89c76fbcd5d1/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.0.0-20210723032227-1f47c861a9ac/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.14.0 h1:MRx4UaLrDotUKUd
gitextract_ubpd6109/
├── .dockerignore
├── .editorconfig
├── .gitattributes
├── .github/
│ ├── FUNDING.yml
│ ├── ISSUE_TEMPLATE/
│ │ ├── 1-bug_report.yml
│ │ ├── 2-feature_request.yml
│ │ ├── 3-questions.yml
│ │ └── config.yml
│ ├── PULL_REQUEST_TEMPLATE.md
│ └── workflows/
│ ├── push_image.yml
│ ├── push_image_next.yml
│ ├── release.yml
│ ├── release_sync_gitee.py
│ └── release_sync_gitee.yml
├── .gitignore
├── .goreleaser.yml
├── .vscode/
│ ├── extensions.json
│ ├── settings.json
│ └── settings.tailwind.json
├── CHANGELOG.md
├── CONTRIBUTING.md
├── CONTRIBUTING_zh.md
├── Dockerfile
├── Dockerfile.gh
├── LICENSE
├── Makefile
├── README.md
├── README_zh.md
├── cmd/
│ ├── intercmd.go
│ ├── serve_nonwindows.go
│ ├── serve_windows.go
│ ├── winsc_nonwindows.go
│ └── winsc_windows.go
├── docker/
│ └── docker-compose.yml
├── go.mod
├── go.sum
├── internal/
│ ├── app/
│ │ ├── app.go
│ │ ├── scheduler.go
│ │ └── singleton.go
│ ├── certacme/
│ │ ├── account.go
│ │ ├── certifiers/
│ │ │ ├── registry.go
│ │ │ ├── sp_35cn.go
│ │ │ ├── sp_51dnscom.go
│ │ │ ├── sp_acmedns.go
│ │ │ ├── sp_acmehttpreq.go
│ │ │ ├── sp_akamai_edgedns.go
│ │ │ ├── sp_aliyun_dns.go
│ │ │ ├── sp_aliyun_esa.go
│ │ │ ├── sp_arvancloud.go
│ │ │ ├── sp_aws_route53.go
│ │ │ ├── sp_azure_dns.go
│ │ │ ├── sp_baiducloud_dns.go
│ │ │ ├── sp_bookmyname.go
│ │ │ ├── sp_bunny.go
│ │ │ ├── sp_cloudflare.go
│ │ │ ├── sp_cloudns.go
│ │ │ ├── sp_cmcccloud_dns.go
│ │ │ ├── sp_constellix.go
│ │ │ ├── sp_cpanel.go
│ │ │ ├── sp_ctcccloud_smartdns.go
│ │ │ ├── sp_desec.go
│ │ │ ├── sp_digitalocean.go
│ │ │ ├── sp_dnsexit.go
│ │ │ ├── sp_dnsla.go
│ │ │ ├── sp_dnsmadeeasy.go
│ │ │ ├── sp_duckdns.go
│ │ │ ├── sp_dynu.go
│ │ │ ├── sp_dynv6.go
│ │ │ ├── sp_gandinet.go
│ │ │ ├── sp_gcore.go
│ │ │ ├── sp_gname.go
│ │ │ ├── sp_godaddy.go
│ │ │ ├── sp_hetzner.go
│ │ │ ├── sp_hostingde.go
│ │ │ ├── sp_hostinger.go
│ │ │ ├── sp_huaweicloud_dns.go
│ │ │ ├── sp_infomaniak.go
│ │ │ ├── sp_ionos.go
│ │ │ ├── sp_jdcloud_dns.go
│ │ │ ├── sp_linode.go
│ │ │ ├── sp_local.go
│ │ │ ├── sp_namecheap.go
│ │ │ ├── sp_namedotcom.go
│ │ │ ├── sp_namesilo.go
│ │ │ ├── sp_netcup.go
│ │ │ ├── sp_netlify.go
│ │ │ ├── sp_ns1.go
│ │ │ ├── sp_ovhcloud.go
│ │ │ ├── sp_porkbun.go
│ │ │ ├── sp_powerdns.go
│ │ │ ├── sp_qingcloud_dns.go
│ │ │ ├── sp_rainyun.go
│ │ │ ├── sp_rfc2136.go
│ │ │ ├── sp_s3.go
│ │ │ ├── sp_spaceship.go
│ │ │ ├── sp_ssh.go
│ │ │ ├── sp_technitiumdns.go
│ │ │ ├── sp_tencentcloud_dns.go
│ │ │ ├── sp_tencentcloud_eo.go
│ │ │ ├── sp_todaynic.go
│ │ │ ├── sp_ucloud_udnr.go
│ │ │ ├── sp_vercel.go
│ │ │ ├── sp_volcengine_dns.go
│ │ │ ├── sp_vultr.go
│ │ │ ├── sp_westcn.go
│ │ │ └── sp_xinnet.go
│ │ ├── client.go
│ │ ├── client_obtain.go
│ │ ├── client_revoke.go
│ │ ├── config.go
│ │ └── logging.go
│ ├── certificate/
│ │ ├── service.go
│ │ └── service_deps.go
│ ├── certmgmt/
│ │ ├── client.go
│ │ ├── client_deploy.go
│ │ └── deployers/
│ │ ├── registry.go
│ │ ├── sp_1panel.go
│ │ ├── sp_1panel_console.go
│ │ ├── sp_aliyun_alb.go
│ │ ├── sp_aliyun_apigw.go
│ │ ├── sp_aliyun_cas.go
│ │ ├── sp_aliyun_casdeploy.go
│ │ ├── sp_aliyun_cdn.go
│ │ ├── sp_aliyun_clb.go
│ │ ├── sp_aliyun_dcdn.go
│ │ ├── sp_aliyun_ddospro.go
│ │ ├── sp_aliyun_esa.go
│ │ ├── sp_aliyun_esasaas.go
│ │ ├── sp_aliyun_fc.go
│ │ ├── sp_aliyun_ga.go
│ │ ├── sp_aliyun_live.go
│ │ ├── sp_aliyun_nlb.go
│ │ ├── sp_aliyun_oss.go
│ │ ├── sp_aliyun_vod.go
│ │ ├── sp_aliyun_waf.go
│ │ ├── sp_apisix.go
│ │ ├── sp_aws_acm.go
│ │ ├── sp_aws_cloudfront.go
│ │ ├── sp_aws_iam.go
│ │ ├── sp_azure_keyvault.go
│ │ ├── sp_baiducloud_appblb.go
│ │ ├── sp_baiducloud_blb.go
│ │ ├── sp_baiducloud_cdn.go
│ │ ├── sp_baiducloud_cert.go
│ │ ├── sp_baishan_cdn.go
│ │ ├── sp_baotapanel.go
│ │ ├── sp_baotapanel_console.go
│ │ ├── sp_baotapanelgo.go
│ │ ├── sp_baotapanelgo_console.go
│ │ ├── sp_baotawaf.go
│ │ ├── sp_baotawaf_console.go
│ │ ├── sp_bunny_cdn.go
│ │ ├── sp_byteplus_cdn.go
│ │ ├── sp_cachefly.go
│ │ ├── sp_cdnfly.go
│ │ ├── sp_cpanel.go
│ │ ├── sp_ctcccloud_ao.go
│ │ ├── sp_ctcccloud_cdn.go
│ │ ├── sp_ctcccloud_cms.go
│ │ ├── sp_ctcccloud_elb.go
│ │ ├── sp_ctcccloud_faas.go
│ │ ├── sp_ctcccloud_icdn.go
│ │ ├── sp_ctcccloud_lvdn.go
│ │ ├── sp_dogecloud_cdn.go
│ │ ├── sp_dokploy.go
│ │ ├── sp_flexcdn.go
│ │ ├── sp_flyio.go
│ │ ├── sp_gcore_cdn.go
│ │ ├── sp_goedge.go
│ │ ├── sp_huaweicloud_cdn.go
│ │ ├── sp_huaweicloud_elb.go
│ │ ├── sp_huaweicloud_obs.go
│ │ ├── sp_huaweicloud_scm.go
│ │ ├── sp_huaweicloud_waf.go
│ │ ├── sp_jdcloud_alb.go
│ │ ├── sp_jdcloud_cdn.go
│ │ ├── sp_jdcloud_live.go
│ │ ├── sp_jdcloud_vod.go
│ │ ├── sp_kong.go
│ │ ├── sp_ksyun_cdn.go
│ │ ├── sp_kubernetes_secret.go
│ │ ├── sp_lecdn.go
│ │ ├── sp_local.go
│ │ ├── sp_mohua_mvh.go
│ │ ├── sp_netlify.go
│ │ ├── sp_nginxproxymanager.go
│ │ ├── sp_proxmoxve.go
│ │ ├── sp_qiniu_cdn.go
│ │ ├── sp_qiniu_kodo.go
│ │ ├── sp_qiniu_pili.go
│ │ ├── sp_rainyun_rcdn.go
│ │ ├── sp_rainyun_sslcenter.go
│ │ ├── sp_ratpanel.go
│ │ ├── sp_ratpanel_console.go
│ │ ├── sp_s3.go
│ │ ├── sp_safeline.go
│ │ ├── sp_ssh.go
│ │ ├── sp_synologydsm.go
│ │ ├── sp_tencentcloud_cdn.go
│ │ ├── sp_tencentcloud_clb.go
│ │ ├── sp_tencentcloud_cos.go
│ │ ├── sp_tencentcloud_css.go
│ │ ├── sp_tencentcloud_ecdn.go
│ │ ├── sp_tencentcloud_eo.go
│ │ ├── sp_tencentcloud_gaap.go
│ │ ├── sp_tencentcloud_scf.go
│ │ ├── sp_tencentcloud_ssl.go
│ │ ├── sp_tencentcloud_ssldeploy.go
│ │ ├── sp_tencentcloud_sslupdate.go
│ │ ├── sp_tencentcloud_vod.go
│ │ ├── sp_tencentcloud_waf.go
│ │ ├── sp_ucloud_ualb.go
│ │ ├── sp_ucloud_ucdn.go
│ │ ├── sp_ucloud_uclb.go
│ │ ├── sp_ucloud_uewaf.go
│ │ ├── sp_ucloud_upathx.go
│ │ ├── sp_ucloud_us3.go
│ │ ├── sp_unicloud_webhost.go
│ │ ├── sp_upyun_cdn.go
│ │ ├── sp_upyun_file.go
│ │ ├── sp_volcengine_alb.go
│ │ ├── sp_volcengine_cdn.go
│ │ ├── sp_volcengine_certcenter.go
│ │ ├── sp_volcengine_clb.go
│ │ ├── sp_volcengine_dcdn.go
│ │ ├── sp_volcengine_imagex.go
│ │ ├── sp_volcengine_live.go
│ │ ├── sp_volcengine_tos.go
│ │ ├── sp_volcengine_vod.go
│ │ ├── sp_volcengine_waf.go
│ │ ├── sp_wangsu_cdn.go
│ │ ├── sp_wangsu_cdnpro.go
│ │ ├── sp_wangsu_certificate.go
│ │ └── sp_webhook.go
│ ├── domain/
│ │ ├── access.go
│ │ ├── acme_account.go
│ │ ├── certificate.go
│ │ ├── dtos/
│ │ │ ├── certificate.go
│ │ │ ├── notify.go
│ │ │ └── workflow.go
│ │ ├── error.go
│ │ ├── expr/
│ │ │ ├── expr.go
│ │ │ └── expr_test.go
│ │ ├── meta.go
│ │ ├── provider.go
│ │ ├── settings.go
│ │ ├── statistics.go
│ │ ├── workflow.go
│ │ ├── workflow_log.go
│ │ ├── workflow_output.go
│ │ └── workflow_run.go
│ ├── notify/
│ │ ├── client.go
│ │ ├── client_notifier.go
│ │ ├── notifiers/
│ │ │ ├── registry.go
│ │ │ ├── sp_dingtalkbot.go
│ │ │ ├── sp_discordbot.go
│ │ │ ├── sp_email.go
│ │ │ ├── sp_larkbot.go
│ │ │ ├── sp_mattermost.go
│ │ │ ├── sp_slackbot.go
│ │ │ ├── sp_telegrambot.go
│ │ │ ├── sp_webhook.go
│ │ │ └── sp_wecombot.go
│ │ ├── service.go
│ │ └── service_deps.go
│ ├── repository/
│ │ ├── access.go
│ │ ├── acme_account.go
│ │ ├── certificate.go
│ │ ├── settings.go
│ │ ├── statistics.go
│ │ ├── workflow.go
│ │ ├── workflow_log.go
│ │ ├── workflow_output.go
│ │ └── workflow_run.go
│ ├── rest/
│ │ ├── handlers/
│ │ │ ├── certificates.go
│ │ │ ├── notifications.go
│ │ │ ├── statistics.go
│ │ │ └── workflows.go
│ │ ├── resp/
│ │ │ └── resp.go
│ │ └── routes/
│ │ └── routes.go
│ ├── scheduler/
│ │ ├── certificate.go
│ │ ├── scheduler.go
│ │ └── workflow.go
│ ├── statistics/
│ │ ├── service.go
│ │ └── service_deps.go
│ ├── tools/
│ │ ├── mproc/
│ │ │ ├── receiver.go
│ │ │ └── sender.go
│ │ ├── s3/
│ │ │ ├── client.go
│ │ │ └── config.go
│ │ ├── smtp/
│ │ │ ├── client.go
│ │ │ ├── config.go
│ │ │ ├── errhandler.go
│ │ │ └── message.go
│ │ └── ssh/
│ │ ├── auth.go
│ │ ├── client.go
│ │ └── config.go
│ └── workflow/
│ ├── dispatcher/
│ │ ├── deps.go
│ │ ├── dispatcher.go
│ │ ├── singleton.go
│ │ └── task.go
│ ├── engine/
│ │ ├── context.go
│ │ ├── deps.go
│ │ ├── engine.go
│ │ ├── errors.go
│ │ ├── executor.go
│ │ ├── executor_bizapply.go
│ │ ├── executor_bizdeploy.go
│ │ ├── executor_bizmonitor.go
│ │ ├── executor_biznotify.go
│ │ ├── executor_bizupload.go
│ │ ├── executor_condition.go
│ │ ├── executor_delay.go
│ │ ├── executor_end.go
│ │ ├── executor_start.go
│ │ ├── executor_trycatch.go
│ │ ├── logger.go
│ │ ├── models.go
│ │ └── state.go
│ ├── pbhook.go
│ ├── pbjob.go
│ ├── service.go
│ ├── service_deps.go
│ ├── service_inst.go
│ └── workflow.go
├── main.go
├── migrations/
│ ├── 1757476800_upgrade_v0.4.0.go
│ ├── 1757476801_initialize_v0.4.0.go
│ ├── 1760486400_upgrade_v0.4.1.go
│ ├── 1762142400_upgrade_v0.4.3.go
│ ├── 1762516800_upgrade_v0.4.4.go
│ ├── 1763373600_upgrade_v0.4.5.go
│ ├── 1763640000_upgrade_v0.4.6.go
│ ├── 1766592000_upgrade_v0.4.11.go
│ ├── 1766800800_upgrade_v0.4.12.go
│ ├── 1767024000_upgrade_v0.4.13.go
│ ├── 1768363200_upgrade_v0.4.14.go
│ ├── 1769313600_upgrade_v0.4.15.go
│ ├── snaps/
│ │ ├── v0.3/
│ │ │ └── workflow.go
│ │ └── v0.4/
│ │ └── workflow.go
│ └── tracer.go
├── pkg/
│ ├── core/
│ │ ├── certifier/
│ │ │ ├── challenger.go
│ │ │ └── challengers/
│ │ │ ├── dns01/
│ │ │ │ ├── 35cn/
│ │ │ │ │ └── 35cn.go
│ │ │ │ ├── 51dnscom/
│ │ │ │ │ ├── 51dnscom.go
│ │ │ │ │ └── internal/
│ │ │ │ │ └── lego.go
│ │ │ │ ├── acmedns/
│ │ │ │ │ └── acmedns.go
│ │ │ │ ├── acmehttpreq/
│ │ │ │ │ └── acmehttpreq.go
│ │ │ │ ├── akamai-edgedns/
│ │ │ │ │ └── akamai_edgedns.go
│ │ │ │ ├── aliyun/
│ │ │ │ │ └── aliyun.go
│ │ │ │ ├── aliyun-esa/
│ │ │ │ │ └── aliyun_esa.go
│ │ │ │ ├── arvancloud/
│ │ │ │ │ └── arvancloud.go
│ │ │ │ ├── aws-route53/
│ │ │ │ │ └── aws-route53.go
│ │ │ │ ├── azure-dns/
│ │ │ │ │ └── azure-dns.go
│ │ │ │ ├── baiducloud/
│ │ │ │ │ └── baiducloud.go
│ │ │ │ ├── bookmyname/
│ │ │ │ │ └── bookmyname.go
│ │ │ │ ├── bunny/
│ │ │ │ │ └── bunny.go
│ │ │ │ ├── cloudflare/
│ │ │ │ │ └── cloudflare.go
│ │ │ │ ├── cloudns/
│ │ │ │ │ └── cloudns.go
│ │ │ │ ├── cmcccloud/
│ │ │ │ │ ├── cmcccloud.go
│ │ │ │ │ └── internal/
│ │ │ │ │ └── lego.go
│ │ │ │ ├── constellix/
│ │ │ │ │ └── constellix.go
│ │ │ │ ├── cpanel/
│ │ │ │ │ └── cpanel.go
│ │ │ │ ├── ctcccloud/
│ │ │ │ │ ├── ctcccloud.go
│ │ │ │ │ └── internal/
│ │ │ │ │ └── lego.go
│ │ │ │ ├── desec/
│ │ │ │ │ └── desec.go
│ │ │ │ ├── digitalocean/
│ │ │ │ │ └── digitalocean.go
│ │ │ │ ├── dnsexit/
│ │ │ │ │ └── dnsexit.go
│ │ │ │ ├── dnsla/
│ │ │ │ │ ├── dnsla.go
│ │ │ │ │ └── internal/
│ │ │ │ │ └── lego.go
│ │ │ │ ├── dnsmadeeasy/
│ │ │ │ │ └── dnsmadeeasy.go
│ │ │ │ ├── duckdns/
│ │ │ │ │ └── duckdns.go
│ │ │ │ ├── dynu/
│ │ │ │ │ └── dynu.go
│ │ │ │ ├── dynv6/
│ │ │ │ │ ├── dynv6.go
│ │ │ │ │ └── internal/
│ │ │ │ │ └── lego.go
│ │ │ │ ├── gandinet/
│ │ │ │ │ └── gandinet.go
│ │ │ │ ├── gcore/
│ │ │ │ │ └── gcore.go
│ │ │ │ ├── gname/
│ │ │ │ │ ├── gname.go
│ │ │ │ │ └── internal/
│ │ │ │ │ └── lego.go
│ │ │ │ ├── godaddy/
│ │ │ │ │ └── godaddy.go
│ │ │ │ ├── hetzner/
│ │ │ │ │ └── hetzner.go
│ │ │ │ ├── hostingde/
│ │ │ │ │ └── hostingde.go
│ │ │ │ ├── hostinger/
│ │ │ │ │ └── hostinger.go
│ │ │ │ ├── huaweicloud/
│ │ │ │ │ └── huaweicloud.go
│ │ │ │ ├── infomaniak/
│ │ │ │ │ └── infomaniak.go
│ │ │ │ ├── ionos/
│ │ │ │ │ └── ionos.go
│ │ │ │ ├── jdcloud/
│ │ │ │ │ └── jdcloud.go
│ │ │ │ ├── linode/
│ │ │ │ │ └── linode.go
│ │ │ │ ├── namecheap/
│ │ │ │ │ └── namecheap.go
│ │ │ │ ├── namedotcom/
│ │ │ │ │ └── namedotcom.go
│ │ │ │ ├── namesilo/
│ │ │ │ │ └── namesilo.go
│ │ │ │ ├── netcup/
│ │ │ │ │ └── netcup.go
│ │ │ │ ├── netlify/
│ │ │ │ │ └── netlify.go
│ │ │ │ ├── ns1/
│ │ │ │ │ └── ns1.go
│ │ │ │ ├── ovhcloud/
│ │ │ │ │ ├── consts.go
│ │ │ │ │ └── ovhcloud.go
│ │ │ │ ├── porkbun/
│ │ │ │ │ └── porkbun.go
│ │ │ │ ├── powerdns/
│ │ │ │ │ └── powerdns.go
│ │ │ │ ├── qingcloud/
│ │ │ │ │ ├── internal/
│ │ │ │ │ │ └── lego.go
│ │ │ │ │ └── qingcloud.go
│ │ │ │ ├── rainyun/
│ │ │ │ │ └── rainyun.go
│ │ │ │ ├── rfc2136/
│ │ │ │ │ └── rfc2136.go
│ │ │ │ ├── spaceship/
│ │ │ │ │ └── spaceship.go
│ │ │ │ ├── technitiumdns/
│ │ │ │ │ └── technitiumdns.go
│ │ │ │ ├── tencentcloud/
│ │ │ │ │ └── tencentcloud.go
│ │ │ │ ├── tencentcloud-eo/
│ │ │ │ │ └── tencentcloud_eo.go
│ │ │ │ ├── todaynic/
│ │ │ │ │ └── todaynic.go
│ │ │ │ ├── ucloud/
│ │ │ │ │ ├── internal/
│ │ │ │ │ │ └── lego.go
│ │ │ │ │ └── ucloud.go
│ │ │ │ ├── vercel/
│ │ │ │ │ └── vercel.go
│ │ │ │ ├── volcengine/
│ │ │ │ │ └── volcengine.go
│ │ │ │ ├── vultr/
│ │ │ │ │ └── vultr.go
│ │ │ │ ├── westcn/
│ │ │ │ │ └── westcn.go
│ │ │ │ └── xinnet/
│ │ │ │ ├── internal/
│ │ │ │ │ └── lego.go
│ │ │ │ └── xinnet.go
│ │ │ └── http01/
│ │ │ ├── local/
│ │ │ │ └── local.go
│ │ │ ├── s3/
│ │ │ │ └── s3.go
│ │ │ └── ssh/
│ │ │ └── ssh.go
│ │ ├── certmgr/
│ │ │ ├── errors.go
│ │ │ ├── provider.go
│ │ │ └── providers/
│ │ │ ├── 1panel/
│ │ │ │ ├── 1panel.go
│ │ │ │ └── 1panel_test.go
│ │ │ ├── aliyun-cas/
│ │ │ │ ├── aliyun_cas.go
│ │ │ │ ├── aliyun_cas_test.go
│ │ │ │ └── internal/
│ │ │ │ └── client.go
│ │ │ ├── aliyun-slb/
│ │ │ │ ├── aliyun_slb.go
│ │ │ │ ├── aliyun_slb_test.go
│ │ │ │ └── internal/
│ │ │ │ └── client.go
│ │ │ ├── aws-acm/
│ │ │ │ └── aws_acm.go
│ │ │ ├── aws-iam/
│ │ │ │ └── aws_iam.go
│ │ │ ├── azure-keyvault/
│ │ │ │ ├── azure_keyvault.go
│ │ │ │ └── azure_keyvault_test.go
│ │ │ ├── baiducloud-cert/
│ │ │ │ ├── baiducloud_cert.go
│ │ │ │ └── baiducloud_cert_test.go
│ │ │ ├── baishan-cdn/
│ │ │ │ ├── baishan_cdn.go
│ │ │ │ └── baishan_cdn_test.go
│ │ │ ├── byteplus-cdn/
│ │ │ │ └── byteplus_cdn.go
│ │ │ ├── ctcccloud-ao/
│ │ │ │ ├── ctcccloud_ao.go
│ │ │ │ └── ctcccloud_ao_test.go
│ │ │ ├── ctcccloud-cdn/
│ │ │ │ ├── ctcccloud_cdn.go
│ │ │ │ └── ctcccloud_cdn_test.go
│ │ │ ├── ctcccloud-cms/
│ │ │ │ ├── ctcccloud_cms.go
│ │ │ │ └── ctcccloud_cms_test.go
│ │ │ ├── ctcccloud-elb/
│ │ │ │ ├── ctcccloud_elb.go
│ │ │ │ └── ctcccloud_elb_test.go
│ │ │ ├── ctcccloud-icdn/
│ │ │ │ ├── ctcccloud_icdn.go
│ │ │ │ └── ctcccloud_icdn_test.go
│ │ │ ├── ctcccloud-lvdn/
│ │ │ │ ├── ctcccloud_lvdn.go
│ │ │ │ └── ctcccloud_lvdn_test.go
│ │ │ ├── dogecloud/
│ │ │ │ └── dogecloud.go
│ │ │ ├── dokploy/
│ │ │ │ ├── dokploy.go
│ │ │ │ └── dokploy_test.go
│ │ │ ├── gcore-cdn/
│ │ │ │ └── gcore_cdn.go
│ │ │ ├── huaweicloud-elb/
│ │ │ │ ├── huaweicloud_elb.go
│ │ │ │ └── internal/
│ │ │ │ └── client.go
│ │ │ ├── huaweicloud-scm/
│ │ │ │ ├── huaweicloud_scm.go
│ │ │ │ └── internal/
│ │ │ │ └── client.go
│ │ │ ├── huaweicloud-waf/
│ │ │ │ ├── huaweicloud_waf.go
│ │ │ │ └── internal/
│ │ │ │ └── client.go
│ │ │ ├── jdcloud-ssl/
│ │ │ │ ├── jdcloud_ssl.go
│ │ │ │ └── jdcloud_ssl_test.go
│ │ │ ├── nginxproxymanager/
│ │ │ │ ├── consts.go
│ │ │ │ ├── nginxproxymanager.go
│ │ │ │ └── nginxproxymanager_test.go
│ │ │ ├── qiniu-sslcert/
│ │ │ │ ├── qiniu_sslcert.go
│ │ │ │ └── qiniu_sslcert_test.go
│ │ │ ├── rainyun-sslcenter/
│ │ │ │ ├── rainyun_sslcenter.go
│ │ │ │ └── rainyun_sslcenter_test.go
│ │ │ ├── tencentcloud-ssl/
│ │ │ │ ├── internal/
│ │ │ │ │ └── client.go
│ │ │ │ ├── tencentcloud_ssl.go
│ │ │ │ └── tencentcloud_ssl_test.go
│ │ │ ├── ucloud-ulb/
│ │ │ │ ├── ucloud_ulb.go
│ │ │ │ └── ucloud_ulb_test.go
│ │ │ ├── ucloud-upathx/
│ │ │ │ ├── ucloud_upathx.go
│ │ │ │ └── ucloud_upathx_test.go
│ │ │ ├── ucloud-ussl/
│ │ │ │ ├── ucloud_ussl.go
│ │ │ │ └── ucloud_ussl_test.go
│ │ │ ├── upyun-ssl/
│ │ │ │ ├── upyun_ssl.go
│ │ │ │ └── upyun_ssl_test.go
│ │ │ ├── volcengine-cdn/
│ │ │ │ ├── internal/
│ │ │ │ │ └── client.go
│ │ │ │ └── volcengine_cdn.go
│ │ │ ├── volcengine-certcenter/
│ │ │ │ ├── internal/
│ │ │ │ │ └── client.go
│ │ │ │ ├── volcengine_certcenter.go
│ │ │ │ └── volcengine_certcenter_test.go
│ │ │ ├── volcengine-live/
│ │ │ │ └── volcengine_live.go
│ │ │ └── wangsu-certificate/
│ │ │ ├── wangsu_certificate.go
│ │ │ └── wangsu_certificate_test.go
│ │ ├── deployer/
│ │ │ ├── provider.go
│ │ │ └── providers/
│ │ │ ├── 1panel/
│ │ │ │ ├── 1panel.go
│ │ │ │ ├── 1panel_test.go
│ │ │ │ └── consts.go
│ │ │ ├── 1panel-console/
│ │ │ │ ├── 1panel_console.go
│ │ │ │ └── 1panel_console_test.go
│ │ │ ├── aliyun-alb/
│ │ │ │ ├── aliyun_alb.go
│ │ │ │ ├── aliyun_alb_test.go
│ │ │ │ ├── consts.go
│ │ │ │ └── internal/
│ │ │ │ └── client.go
│ │ │ ├── aliyun-apigw/
│ │ │ │ ├── aliyun_apigw.go
│ │ │ │ ├── aliyun_apigw_test.go
│ │ │ │ ├── consts.go
│ │ │ │ └── internal/
│ │ │ │ └── client.go
│ │ │ ├── aliyun-cas/
│ │ │ │ └── aliyun_cas.go
│ │ │ ├── aliyun-cas-deploy/
│ │ │ │ ├── aliyun_cas_deploy.go
│ │ │ │ └── internal/
│ │ │ │ └── client.go
│ │ │ ├── aliyun-cdn/
│ │ │ │ ├── aliyun_cdn.go
│ │ │ │ ├── aliyun_cdn_test.go
│ │ │ │ ├── consts.go
│ │ │ │ └── internal/
│ │ │ │ └── client.go
│ │ │ ├── aliyun-clb/
│ │ │ │ ├── aliyun_clb.go
│ │ │ │ ├── aliyun_clb_test.go
│ │ │ │ ├── consts.go
│ │ │ │ └── internal/
│ │ │ │ └── client.go
│ │ │ ├── aliyun-dcdn/
│ │ │ │ ├── aliyun_dcdn.go
│ │ │ │ ├── aliyun_dcdn_test.go
│ │ │ │ ├── consts.go
│ │ │ │ └── internal/
│ │ │ │ └── client.go
│ │ │ ├── aliyun-ddospro/
│ │ │ │ ├── aliyun_ddospro.go
│ │ │ │ ├── aliyun_ddospro_test.go
│ │ │ │ ├── consts.go
│ │ │ │ └── internal/
│ │ │ │ └── client.go
│ │ │ ├── aliyun-esa/
│ │ │ │ ├── aliyun_esa.go
│ │ │ │ ├── aliyun_esa_test.go
│ │ │ │ └── internal/
│ │ │ │ └── client.go
│ │ │ ├── aliyun-esa-saas/
│ │ │ │ ├── aliyun_esasaas.go
│ │ │ │ ├── aliyun_esasaas_test.go
│ │ │ │ ├── consts.go
│ │ │ │ └── internal/
│ │ │ │ └── client.go
│ │ │ ├── aliyun-fc/
│ │ │ │ ├── aliyun_fc.go
│ │ │ │ ├── aliyun_fc_test.go
│ │ │ │ ├── consts.go
│ │ │ │ └── internal/
│ │ │ │ └── client.go
│ │ │ ├── aliyun-ga/
│ │ │ │ ├── aliyun_ga.go
│ │ │ │ ├── aliyun_ga_test.go
│ │ │ │ ├── consts.go
│ │ │ │ └── internal/
│ │ │ │ └── client.go
│ │ │ ├── aliyun-live/
│ │ │ │ ├── aliyun_live.go
│ │ │ │ ├── aliyun_live_test.go
│ │ │ │ ├── consts.go
│ │ │ │ └── internal/
│ │ │ │ └── client.go
│ │ │ ├── aliyun-nlb/
│ │ │ │ ├── aliyun_nlb.go
│ │ │ │ ├── aliyun_nlb_test.go
│ │ │ │ ├── consts.go
│ │ │ │ └── internal/
│ │ │ │ └── client.go
│ │ │ ├── aliyun-oss/
│ │ │ │ ├── aliyun_oss.go
│ │ │ │ └── aliyun_oss_test.go
│ │ │ ├── aliyun-vod/
│ │ │ │ ├── aliyun_vod.go
│ │ │ │ ├── aliyun_vod_test.go
│ │ │ │ ├── consts.go
│ │ │ │ └── internal/
│ │ │ │ └── client.go
│ │ │ ├── aliyun-waf/
│ │ │ │ ├── aliyun_waf.go
│ │ │ │ ├── aliyun_waf_test.go
│ │ │ │ ├── consts.go
│ │ │ │ └── internal/
│ │ │ │ └── client.go
│ │ │ ├── apisix/
│ │ │ │ ├── apisix.go
│ │ │ │ ├── apisix_test.go
│ │ │ │ └── consts.go
│ │ │ ├── aws-acm/
│ │ │ │ └── aws_acm.go
│ │ │ ├── aws-cloudfront/
│ │ │ │ ├── aws_cloudfront.go
│ │ │ │ ├── aws_cloudfront_test.go
│ │ │ │ └── consts.go
│ │ │ ├── aws-iam/
│ │ │ │ └── aws_iam.go
│ │ │ ├── azure-keyvault/
│ │ │ │ └── azure_keyvault.go
│ │ │ ├── baiducloud-appblb/
│ │ │ │ ├── baiducloud_appblb.go
│ │ │ │ ├── baiducloud_appblb_test.go
│ │ │ │ └── consts.go
│ │ │ ├── baiducloud-blb/
│ │ │ │ ├── baiducloud_blb.go
│ │ │ │ ├── baiducloud_blb_test.go
│ │ │ │ └── consts.go
│ │ │ ├── baiducloud-cdn/
│ │ │ │ ├── baiducloud_cdn.go
│ │ │ │ ├── baiducloud_cdn_test.go
│ │ │ │ └── consts.go
│ │ │ ├── baiducloud-cert/
│ │ │ │ └── baiducloud_cert.go
│ │ │ ├── baishan-cdn/
│ │ │ │ ├── baishan_cdn.go
│ │ │ │ ├── baishan_cdn_test.go
│ │ │ │ └── consts.go
│ │ │ ├── baotapanel/
│ │ │ │ ├── baotapanel.go
│ │ │ │ └── baotapanel_test.go
│ │ │ ├── baotapanel-console/
│ │ │ │ ├── baotapanel_console.go
│ │ │ │ └── baotapanel_console_test.go
│ │ │ ├── baotapanelgo/
│ │ │ │ ├── baotapanelgo.go
│ │ │ │ └── baotapanelgo_test.go
│ │ │ ├── baotapanelgo-console/
│ │ │ │ ├── baotapanelgo_console.go
│ │ │ │ └── baotapanelgo_console_test.go
│ │ │ ├── baotawaf/
│ │ │ │ ├── baotawaf.go
│ │ │ │ └── baotawaf_test.go
│ │ │ ├── baotawaf-console/
│ │ │ │ ├── baotawaf_console.go
│ │ │ │ └── baotawaf_console_test.go
│ │ │ ├── bunny-cdn/
│ │ │ │ ├── bunny_cdn.go
│ │ │ │ └── bunny_cdn_test.go
│ │ │ ├── byteplus-cdn/
│ │ │ │ ├── byteplus_cdn.go
│ │ │ │ ├── byteplus_cdn_test.go
│ │ │ │ └── consts.go
│ │ │ ├── cachefly/
│ │ │ │ ├── cachefly.go
│ │ │ │ └── cachefly_test.go
│ │ │ ├── cdnfly/
│ │ │ │ ├── cdnfly.go
│ │ │ │ ├── cdnfly_test.go
│ │ │ │ └── consts.go
│ │ │ ├── cpanel/
│ │ │ │ ├── consts.go
│ │ │ │ ├── cpanel.go
│ │ │ │ └── cpanel_test.go
│ │ │ ├── ctcccloud-ao/
│ │ │ │ ├── consts.go
│ │ │ │ ├── ctcccloud_ao.go
│ │ │ │ └── ctcccloud_ao_test.go
│ │ │ ├── ctcccloud-cdn/
│ │ │ │ ├── consts.go
│ │ │ │ ├── ctcccloud_cdn.go
│ │ │ │ └── ctcccloud_cdn_test.go
│ │ │ ├── ctcccloud-cms/
│ │ │ │ ├── ctcccloud_cms.go
│ │ │ │ └── ctcccloud_cms_test.go
│ │ │ ├── ctcccloud-elb/
│ │ │ │ ├── consts.go
│ │ │ │ ├── ctcccloud_elb.go
│ │ │ │ └── ctcccloud_elb_test.go
│ │ │ ├── ctcccloud-faas/
│ │ │ │ ├── ctcccloud_faas.go
│ │ │ │ └── ctcccloud_faas_test.go
│ │ │ ├── ctcccloud-icdn/
│ │ │ │ ├── consts.go
│ │ │ │ ├── ctcccloud_icdn.go
│ │ │ │ └── ctcccloud_icdn_test.go
│ │ │ ├── ctcccloud-lvdn/
│ │ │ │ ├── consts.go
│ │ │ │ ├── ctcccloud_lvdn.go
│ │ │ │ └── ctcccloud_lvdn_test.go
│ │ │ ├── dogecloud-cdn/
│ │ │ │ ├── consts.go
│ │ │ │ ├── dogecloud_cdn.go
│ │ │ │ └── dogecloud_cdn_test.go
│ │ │ ├── dokploy/
│ │ │ │ ├── dokploy.go
│ │ │ │ └── dokploy_test.go
│ │ │ ├── flexcdn/
│ │ │ │ ├── consts.go
│ │ │ │ ├── flexcdn.go
│ │ │ │ └── flexcdn_test.go
│ │ │ ├── flyio/
│ │ │ │ ├── flyio.go
│ │ │ │ └── flyio_test.go
│ │ │ ├── gcore-cdn/
│ │ │ │ ├── gcore_cdn.go
│ │ │ │ └── gcore_cdn_test.go
│ │ │ ├── goedge/
│ │ │ │ ├── consts.go
│ │ │ │ ├── goedge.go
│ │ │ │ └── goedge_test.go
│ │ │ ├── huaweicloud-cdn/
│ │ │ │ ├── consts.go
│ │ │ │ ├── huaweicloud_cdn.go
│ │ │ │ ├── huaweicloud_cdn_test.go
│ │ │ │ └── internal/
│ │ │ │ └── client.go
│ │ │ ├── huaweicloud-elb/
│ │ │ │ ├── consts.go
│ │ │ │ ├── huaweicloud_elb.go
│ │ │ │ ├── huaweicloud_elb_test.go
│ │ │ │ └── internal/
│ │ │ │ └── client.go
│ │ │ ├── huaweicloud-obs/
│ │ │ │ ├── huaweicloud_obs.go
│ │ │ │ └── huaweicloud_obs_test.go
│ │ │ ├── huaweicloud-scm/
│ │ │ │ └── huaweicloud_scm.go
│ │ │ ├── huaweicloud-waf/
│ │ │ │ ├── consts.go
│ │ │ │ ├── huaweicloud_waf.go
│ │ │ │ ├── huaweicloud_waf_test.go
│ │ │ │ └── internal/
│ │ │ │ └── client.go
│ │ │ ├── jdcloud-alb/
│ │ │ │ ├── consts.go
│ │ │ │ ├── internal/
│ │ │ │ │ └── client.go
│ │ │ │ ├── jdcloud_alb.go
│ │ │ │ └── jdcloud_alb_test.go
│ │ │ ├── jdcloud-cdn/
│ │ │ │ ├── consts.go
│ │ │ │ ├── internal/
│ │ │ │ │ └── client.go
│ │ │ │ ├── jdcloud_cdn.go
│ │ │ │ └── jdcloud_cdn_test.go
│ │ │ ├── jdcloud-live/
│ │ │ │ ├── consts.go
│ │ │ │ ├── internal/
│ │ │ │ │ └── client.go
│ │ │ │ ├── jdcloud_live.go
│ │ │ │ └── jdcloud_live_test.go
│ │ │ ├── jdcloud-vod/
│ │ │ │ ├── consts.go
│ │ │ │ ├── internal/
│ │ │ │ │ └── client.go
│ │ │ │ ├── jdcloud_vod.go
│ │ │ │ └── jdcloud_vod_test.go
│ │ │ ├── k8s-secret/
│ │ │ │ ├── k8s_secret.go
│ │ │ │ └── k8s_secret_test.go
│ │ │ ├── kong/
│ │ │ │ ├── consts.go
│ │ │ │ ├── kong.go
│ │ │ │ └── kong_test.go
│ │ │ ├── ksyun-cdn/
│ │ │ │ ├── consts.go
│ │ │ │ ├── ksyun_cdn.go
│ │ │ │ └── ksyun_cdn_test.go
│ │ │ ├── lecdn/
│ │ │ │ ├── consts.go
│ │ │ │ ├── lecdn.go
│ │ │ │ └── lecdn_test.go
│ │ │ ├── local/
│ │ │ │ ├── consts.go
│ │ │ │ ├── local.go
│ │ │ │ └── local_test.go
│ │ │ ├── mohua-mvh/
│ │ │ │ ├── mohua_mvh.go
│ │ │ │ └── mohua_mvh_test.go
│ │ │ ├── netlify/
│ │ │ │ ├── consts.go
│ │ │ │ ├── netlify.go
│ │ │ │ └── netlify_test.go
│ │ │ ├── nginxproxymanager/
│ │ │ │ ├── consts.go
│ │ │ │ ├── nginxproxymanager.go
│ │ │ │ └── nginxproxymanager_test.go
│ │ │ ├── proxmoxve/
│ │ │ │ ├── proxmoxve.go
│ │ │ │ └── proxmoxve_test.go
│ │ │ ├── qiniu-cdn/
│ │ │ │ ├── consts.go
│ │ │ │ ├── qiniu_cdn.go
│ │ │ │ └── qiniu_cdn_test.go
│ │ │ ├── qiniu-kodo/
│ │ │ │ ├── qiniu_kodo.go
│ │ │ │ └── qiniu_kodo_test.go
│ │ │ ├── qiniu-pili/
│ │ │ │ ├── consts.go
│ │ │ │ ├── qiniu_pili.go
│ │ │ │ └── qiniu_pili_test.go
│ │ │ ├── rainyun-rcdn/
│ │ │ │ ├── consts.go
│ │ │ │ ├── rainyun_rcdn.go
│ │ │ │ └── rainyun_rcdn_test.go
│ │ │ ├── rainyun-sslcenter/
│ │ │ │ ├── rainyun_sslcenter.go
│ │ │ │ └── rainyun_sslcenter_test.go
│ │ │ ├── ratpanel/
│ │ │ │ ├── consts.go
│ │ │ │ ├── ratpanel.go
│ │ │ │ └── ratpanel_test.go
│ │ │ ├── ratpanel-console/
│ │ │ │ ├── ratpanel_console.go
│ │ │ │ └── ratpanel_console_test.go
│ │ │ ├── s3/
│ │ │ │ ├── consts.go
│ │ │ │ └── s3.go
│ │ │ ├── safeline/
│ │ │ │ ├── consts.go
│ │ │ │ ├── safeline.go
│ │ │ │ └── safeline_test.go
│ │ │ ├── ssh/
│ │ │ │ ├── consts.go
│ │ │ │ ├── ssh.go
│ │ │ │ └── ssh_test.go
│ │ │ ├── synologydsm/
│ │ │ │ ├── synologydsm.go
│ │ │ │ └── synologydsm_test.go
│ │ │ ├── tencentcloud-cdn/
│ │ │ │ ├── consts.go
│ │ │ │ ├── internal/
│ │ │ │ │ └── client.go
│ │ │ │ ├── tencentcloud_cdn.go
│ │ │ │ └── tencentcloud_cdn_test.go
│ │ │ ├── tencentcloud-clb/
│ │ │ │ ├── consts.go
│ │ │ │ ├── internal/
│ │ │ │ │ └── client.go
│ │ │ │ ├── tencentcloud_clb.go
│ │ │ │ └── tencentcloud_clb_test.go
│ │ │ ├── tencentcloud-cos/
│ │ │ │ ├── internal/
│ │ │ │ │ └── client.go
│ │ │ │ ├── tencentcloud_cos.go
│ │ │ │ └── tencentcloud_cos_test.go
│ │ │ ├── tencentcloud-css/
│ │ │ │ ├── consts.go
│ │ │ │ ├── internal/
│ │ │ │ │ └── client.go
│ │ │ │ ├── tencentcloud_css.go
│ │ │ │ └── tencentcloud_css_test.go
│ │ │ ├── tencentcloud-ecdn/
│ │ │ │ ├── consts.go
│ │ │ │ ├── internal/
│ │ │ │ │ └── client.go
│ │ │ │ ├── tencentcloud_ecdn.go
│ │ │ │ └── tencentcloud_ecdn_test.go
│ │ │ ├── tencentcloud-eo/
│ │ │ │ ├── consts.go
│ │ │ │ ├── internal/
│ │ │ │ │ └── client.go
│ │ │ │ ├── tencentcloud_eo.go
│ │ │ │ └── tencentcloud_eo_test.go
│ │ │ ├── tencentcloud-gaap/
│ │ │ │ ├── consts.go
│ │ │ │ ├── internal/
│ │ │ │ │ └── client.go
│ │ │ │ ├── tencentcloud_gaap.go
│ │ │ │ └── tencentcloud_gaap_test.go
│ │ │ ├── tencentcloud-scf/
│ │ │ │ ├── consts.go
│ │ │ │ ├── internal/
│ │ │ │ │ └── client.go
│ │ │ │ ├── tencentcloud_scf.go
│ │ │ │ └── tencentcloud_scf_test.go
│ │ │ ├── tencentcloud-ssl/
│ │ │ │ └── tencentcloud_ssl.go
│ │ │ ├── tencentcloud-ssl-deploy/
│ │ │ │ ├── internal/
│ │ │ │ │ └── client.go
│ │ │ │ └── tencentcloud_ssl_deploy.go
│ │ │ ├── tencentcloud-ssl-update/
│ │ │ │ ├── internal/
│ │ │ │ │ └── client.go
│ │ │ │ └── tencentcloud_ssl_update.go
│ │ │ ├── tencentcloud-vod/
│ │ │ │ ├── consts.go
│ │ │ │ ├── internal/
│ │ │ │ │ └── client.go
│ │ │ │ ├── tencentcloud_vod.go
│ │ │ │ └── tencentcloud_vod_test.go
│ │ │ ├── tencentcloud-waf/
│ │ │ │ ├── internal/
│ │ │ │ │ └── client.go
│ │ │ │ ├── tencentcloud_waf.go
│ │ │ │ └── tencentcloud_waf_test.go
│ │ │ ├── ucloud-ualb/
│ │ │ │ ├── consts.go
│ │ │ │ ├── ucloud_ualb.go
│ │ │ │ └── ucloud_ualb_test.go
│ │ │ ├── ucloud-ucdn/
│ │ │ │ ├── ucloud_ucdn.go
│ │ │ │ └── ucloud_ucdn_test.go
│ │ │ ├── ucloud-uclb/
│ │ │ │ ├── consts.go
│ │ │ │ ├── ucloud_uclb.go
│ │ │ │ └── ucloud_uclb_test.go
│ │ │ ├── ucloud-uewaf/
│ │ │ │ ├── ucloud_uewaf.go
│ │ │ │ └── ucloud_uewaf_test.go
│ │ │ ├── ucloud-upathx/
│ │ │ │ ├── ucloud_upathx.go
│ │ │ │ └── ucloud_upathx_test.go
│ │ │ ├── ucloud-us3/
│ │ │ │ ├── ucloud_us3.go
│ │ │ │ └── ucloud_us3_test.go
│ │ │ ├── unicloud-webhost/
│ │ │ │ ├── unicloud_webhost.go
│ │ │ │ └── unicloud_webhost_test.go
│ │ │ ├── upyun-cdn/
│ │ │ │ ├── consts.go
│ │ │ │ ├── upyun_cdn.go
│ │ │ │ └── upyun_cdn_test.go
│ │ │ ├── upyun-file/
│ │ │ │ ├── upyun_file.go
│ │ │ │ └── upyun_file_test.go
│ │ │ ├── volcengine-alb/
│ │ │ │ ├── consts.go
│ │ │ │ ├── internal/
│ │ │ │ │ └── client.go
│ │ │ │ ├── volcengine_alb.go
│ │ │ │ └── volcengine_alb_test.go
│ │ │ ├── volcengine-cdn/
│ │ │ │ ├── consts.go
│ │ │ │ ├── internal/
│ │ │ │ │ └── client.go
│ │ │ │ ├── volcengine_cdn.go
│ │ │ │ └── volcengine_cdn_test.go
│ │ │ ├── volcengine-certcenter/
│ │ │ │ └── volcengine_certcenter.go
│ │ │ ├── volcengine-clb/
│ │ │ │ ├── consts.go
│ │ │ │ ├── internal/
│ │ │ │ │ └── client.go
│ │ │ │ ├── volcengine_clb.go
│ │ │ │ └── volcengine_clb_test.go
│ │ │ ├── volcengine-dcdn/
│ │ │ │ ├── consts.go
│ │ │ │ ├── internal/
│ │ │ │ │ └── client.go
│ │ │ │ ├── volcengine_dcdn.go
│ │ │ │ └── volcengine_dcdn_test.go
│ │ │ ├── volcengine-imagex/
│ │ │ │ ├── volcengine_imagex.go
│ │ │ │ └── volcengine_imagex_test.go
│ │ │ ├── volcengine-live/
│ │ │ │ ├── consts.go
│ │ │ │ ├── volcengine_live.go
│ │ │ │ └── volcengine_live_test.go
│ │ │ ├── volcengine-tos/
│ │ │ │ ├── volcengine_tos.go
│ │ │ │ └── volcengine_tos_test.go
│ │ │ ├── volcengine-vod/
│ │ │ │ ├── consts.go
│ │ │ │ ├── volcengine_vod.go
│ │ │ │ └── volcengine_vod_test.go
│ │ │ ├── volcengine-waf/
│ │ │ │ ├── consts.go
│ │ │ │ ├── internal/
│ │ │ │ │ └── client.go
│ │ │ │ ├── volcengine_waf.go
│ │ │ │ └── volcengine_waf_test.go
│ │ │ ├── wangsu-cdn/
│ │ │ │ ├── consts.go
│ │ │ │ ├── wangsu_cdn.go
│ │ │ │ └── wangsu_cdn_test.go
│ │ │ ├── wangsu-cdnpro/
│ │ │ │ ├── consts.go
│ │ │ │ ├── wangsu_cdnpro.go
│ │ │ │ └── wangsu_cdnpro_test.go
│ │ │ ├── wangsu-certificate/
│ │ │ │ ├── wangsu_certificate.go
│ │ │ │ └── wangsu_certificate_test.go
│ │ │ └── webhook/
│ │ │ ├── webhook.go
│ │ │ └── webhook_test.go
│ │ ├── notifier/
│ │ │ ├── provider.go
│ │ │ └── providers/
│ │ │ ├── dingtalkbot/
│ │ │ │ ├── dingtalkbot.go
│ │ │ │ └── dingtalkbot_test.go
│ │ │ ├── discordbot/
│ │ │ │ ├── discordbot.go
│ │ │ │ └── discordbot_test.go
│ │ │ ├── email/
│ │ │ │ ├── consts.go
│ │ │ │ ├── email.go
│ │ │ │ └── email_test.go
│ │ │ ├── larkbot/
│ │ │ │ ├── larkbot.go
│ │ │ │ └── larkbot_test.go
│ │ │ ├── mattermost/
│ │ │ │ ├── mattermost.go
│ │ │ │ └── mattermost_test.go
│ │ │ ├── slackbot/
│ │ │ │ ├── slackbot.go
│ │ │ │ └── slackbot_test.go
│ │ │ ├── telegrambot/
│ │ │ │ ├── telegrambot.go
│ │ │ │ └── telegrambot_test.go
│ │ │ ├── webhook/
│ │ │ │ ├── webhook.go
│ │ │ │ └── webhook_test.go
│ │ │ └── wecombot/
│ │ │ ├── wecombot.go
│ │ │ └── wecombot_test.go
│ │ └── shared.go
│ ├── forks/
│ │ └── gitlab.ecloud.com/
│ │ └── ecloud/
│ │ ├── README.md
│ │ ├── ecloudsdkclouddns@v1.0.1/
│ │ │ ├── client.go
│ │ │ ├── go.mod
│ │ │ └── model/
│ │ │ ├── create_record_body.go
│ │ │ ├── create_record_openapi_body.go
│ │ │ ├── create_record_openapi_request.go
│ │ │ ├── create_record_openapi_response.go
│ │ │ ├── create_record_openapi_response_body.go
│ │ │ ├── create_record_openapi_response_tags.go
│ │ │ ├── create_record_request.go
│ │ │ ├── create_record_response.go
│ │ │ ├── create_record_response_body.go
│ │ │ ├── create_record_response_tags.go
│ │ │ ├── delete_record_body.go
│ │ │ ├── delete_record_openapi_body.go
│ │ │ ├── delete_record_openapi_request.go
│ │ │ ├── delete_record_openapi_response.go
│ │ │ ├── delete_record_openapi_response_body.go
│ │ │ ├── delete_record_request.go
│ │ │ ├── delete_record_response.go
│ │ │ ├── delete_record_response_body.go
│ │ │ ├── list_record_body.go
│ │ │ ├── list_record_openapi_body.go
│ │ │ ├── list_record_openapi_query.go
│ │ │ ├── list_record_openapi_request.go
│ │ │ ├── list_record_openapi_response.go
│ │ │ ├── list_record_openapi_response_body.go
│ │ │ ├── list_record_openapi_response_data.go
│ │ │ ├── list_record_openapi_response_tags.go
│ │ │ ├── list_record_query.go
│ │ │ ├── list_record_request.go
│ │ │ ├── list_record_response.go
│ │ │ ├── list_record_response_body.go
│ │ │ ├── list_record_response_results.go
│ │ │ ├── modify_record_body.go
│ │ │ ├── modify_record_openapi_body.go
│ │ │ ├── modify_record_openapi_request.go
│ │ │ ├── modify_record_openapi_response.go
│ │ │ ├── modify_record_openapi_response_body.go
│ │ │ ├── modify_record_openapi_response_tags.go
│ │ │ ├── modify_record_request.go
│ │ │ ├── modify_record_response.go
│ │ │ └── modify_record_response_body.go
│ │ └── ecloudsdkcore@v1.0.0/
│ │ ├── api_client.go
│ │ ├── api_response.go
│ │ ├── config/
│ │ │ └── config.go
│ │ ├── configuration.go
│ │ ├── go.mod
│ │ ├── http_request.go
│ │ ├── open_api_request.go
│ │ └── position/
│ │ └── http_position.go
│ ├── logging/
│ │ ├── handler.go
│ │ └── record.go
│ ├── sdk3rd/
│ │ ├── 1panel/
│ │ │ ├── api_settings_ssl_update.go
│ │ │ ├── api_website_get.go
│ │ │ ├── api_website_https_get.go
│ │ │ ├── api_website_https_post.go
│ │ │ ├── api_website_search.go
│ │ │ ├── api_website_ssl_get.go
│ │ │ ├── api_website_ssl_search.go
│ │ │ ├── api_website_ssl_upload.go
│ │ │ ├── client.go
│ │ │ ├── types.go
│ │ │ └── v2/
│ │ │ ├── api_core_settings_ssl_update.go
│ │ │ ├── api_website_get.go
│ │ │ ├── api_website_https_get.go
│ │ │ ├── api_website_https_post.go
│ │ │ ├── api_website_search.go
│ │ │ ├── api_website_ssl_get.go
│ │ │ ├── api_website_ssl_search.go
│ │ │ ├── api_website_ssl_upload.go
│ │ │ ├── client.go
│ │ │ └── types.go
│ │ ├── 51dnscom/
│ │ │ ├── api_domain_list.go
│ │ │ ├── api_record_create.go
│ │ │ ├── api_record_remove.go
│ │ │ ├── client.go
│ │ │ └── types.go
│ │ ├── apisix/
│ │ │ ├── api_ssl_update.go
│ │ │ ├── client.go
│ │ │ └── types.go
│ │ ├── azure/
│ │ │ └── env/
│ │ │ └── config.go
│ │ ├── baiducloud/
│ │ │ └── cert/
│ │ │ ├── cert.go
│ │ │ ├── client.go
│ │ │ └── model.go
│ │ ├── baishan/
│ │ │ ├── api_get_domain_config.go
│ │ │ ├── api_get_domain_list.go
│ │ │ ├── api_set_domain_config.go
│ │ │ ├── api_upload_domain_certificate.go
│ │ │ ├── client.go
│ │ │ └── types.go
│ │ ├── btpanel/
│ │ │ ├── api_config_save_panel_ssl.go
│ │ │ ├── api_mod_proxy_com_set_ssl.go
│ │ │ ├── api_site_set_ssl.go
│ │ │ ├── api_ssl_cert_save_cert.go
│ │ │ ├── api_ssl_set_batch_cert_to_site.go
│ │ │ ├── api_system_service_admin.go
│ │ │ ├── client.go
│ │ │ └── types.go
│ │ ├── btpanelgo/
│ │ │ ├── api_config_set_panel_ssl.go
│ │ │ ├── api_datalist_get_data_list.go
│ │ │ ├── api_files_upload.go
│ │ │ ├── api_panel_get_config.go
│ │ │ ├── api_site_get_project_list.go
│ │ │ ├── api_site_set_site_pfx_ssl.go
│ │ │ ├── api_site_set_site_ssl.go
│ │ │ ├── client.go
│ │ │ └── types.go
│ │ ├── btwaf/
│ │ │ ├── api_config_set_cert.go
│ │ │ ├── api_get_site_list.go
│ │ │ ├── api_modify_site.go
│ │ │ ├── client.go
│ │ │ └── types.go
│ │ ├── bunny/
│ │ │ ├── api_add_custom_certificate.go
│ │ │ └── client.go
│ │ ├── cachefly/
│ │ │ ├── api_create_certificate.go
│ │ │ ├── client.go
│ │ │ └── types.go
│ │ ├── cdnfly/
│ │ │ ├── api_create_cert.go
│ │ │ ├── api_get_site.go
│ │ │ ├── api_update_cert.go
│ │ │ ├── api_update_site.go
│ │ │ ├── client.go
│ │ │ └── types.go
│ │ ├── cpanel/
│ │ │ ├── api_ssl_install_ssl.go
│ │ │ ├── client.go
│ │ │ └── types.go
│ │ ├── ctyun/
│ │ │ ├── ao/
│ │ │ │ ├── api_create_cert.go
│ │ │ │ ├── api_get_domain_config.go
│ │ │ │ ├── api_list_certs.go
│ │ │ │ ├── api_modify_domain_config.go
│ │ │ │ ├── api_query_cert.go
│ │ │ │ ├── api_query_domains.go
│ │ │ │ ├── client.go
│ │ │ │ └── types.go
│ │ │ ├── cdn/
│ │ │ │ ├── api_create_cert.go
│ │ │ │ ├── api_query_cert_detail.go
│ │ │ │ ├── api_query_cert_list.go
│ │ │ │ ├── api_query_domain_detail.go
│ │ │ │ ├── api_query_domain_list.go
│ │ │ │ ├── api_update_domain.go
│ │ │ │ ├── client.go
│ │ │ │ └── types.go
│ │ │ ├── cms/
│ │ │ │ ├── api_get_certificate_list.go
│ │ │ │ ├── api_upload_certificate.go
│ │ │ │ ├── client.go
│ │ │ │ └── types.go
│ │ │ ├── dns/
│ │ │ │ ├── api_add_record.go
│ │ │ │ ├── api_delete_record.go
│ │ │ │ ├── api_query_record_list.go
│ │ │ │ ├── api_update_record.go
│ │ │ │ ├── client.go
│ │ │ │ └── types.go
│ │ │ ├── elb/
│ │ │ │ ├── api_create_certificate.go
│ │ │ │ ├── api_list_certificates.go
│ │ │ │ ├── api_list_listeners.go
│ │ │ │ ├── api_show_listener.go
│ │ │ │ ├── api_update_listener.go
│ │ │ │ ├── client.go
│ │ │ │ └── types.go
│ │ │ ├── faas/
│ │ │ │ ├── api_get_custom_domain.go
│ │ │ │ ├── api_update_custom_domain.go
│ │ │ │ ├── client.go
│ │ │ │ └── types.go
│ │ │ ├── icdn/
│ │ │ │ ├── api_create_cert.go
│ │ │ │ ├── api_query_cert_detail.go
│ │ │ │ ├── api_query_cert_list.go
│ │ │ │ ├── api_query_domain_detail.go
│ │ │ │ ├── api_query_domain_list.go
│ │ │ │ ├── api_update_domain.go
│ │ │ │ ├── client.go
│ │ │ │ └── types.go
│ │ │ ├── lvdn/
│ │ │ │ ├── api_create_cert.go
│ │ │ │ ├── api_query_cert_detail.go
│ │ │ │ ├── api_query_cert_list.go
│ │ │ │ ├── api_query_domain_detail.go
│ │ │ │ ├── api_query_domain_list.go
│ │ │ │ ├── api_update_domain.go
│ │ │ │ ├── client.go
│ │ │ │ └── types.go
│ │ │ └── openapi/
│ │ │ └── client.go
│ │ ├── dcloud/
│ │ │ └── unicloud/
│ │ │ ├── api_create_domain_with_cert.go
│ │ │ ├── client.go
│ │ │ └── types.go
│ │ ├── dnsla/
│ │ │ ├── api_create_record.go
│ │ │ ├── api_delete_record.go
│ │ │ ├── api_list_domains.go
│ │ │ ├── api_list_records.go
│ │ │ ├── api_update_record.go
│ │ │ ├── client.go
│ │ │ └── types.go
│ │ ├── dogecloud/
│ │ │ ├── api_bind_cdn_cert.go
│ │ │ ├── api_list_cdn_domain.go
│ │ │ ├── api_upload_cdn_cert.go
│ │ │ ├── client.go
│ │ │ └── types.go
│ │ ├── dokploy/
│ │ │ ├── api_certificates_all.go
│ │ │ ├── api_certificates_create.go
│ │ │ ├── api_user_get.go
│ │ │ ├── client.go
│ │ │ └── types.go
│ │ ├── dynv6/
│ │ │ ├── api_add_record.go
│ │ │ ├── api_delete_record.go
│ │ │ ├── api_list_records.go
│ │ │ ├── api_list_zones.go
│ │ │ ├── client.go
│ │ │ └── types.go
│ │ ├── flexcdn/
│ │ │ ├── api_update_ssl_cert.go
│ │ │ ├── client.go
│ │ │ └── types.go
│ │ ├── flyio/
│ │ │ ├── api_import_custom_certificate.go
│ │ │ ├── client.go
│ │ │ └── types.go
│ │ ├── gcore/
│ │ │ ├── endpoint.go
│ │ │ └── signer.go
│ │ ├── gname/
│ │ │ ├── api_add_domain_resolution.go
│ │ │ ├── api_delete_domain_resolution.go
│ │ │ ├── api_list_domain_resolution.go
│ │ │ ├── api_modify_domain_resolution.go
│ │ │ ├── client.go
│ │ │ └── types.go
│ │ ├── goedge/
│ │ │ ├── api_update_ssl_cert.go
│ │ │ ├── client.go
│ │ │ └── types.go
│ │ ├── lecdn/
│ │ │ └── v3/
│ │ │ ├── client/
│ │ │ │ ├── api_update_certificate.go
│ │ │ │ ├── client.go
│ │ │ │ └── types.go
│ │ │ └── master/
│ │ │ ├── api_update_certificate.go
│ │ │ ├── client.go
│ │ │ └── types.go
│ │ ├── netlify/
│ │ │ ├── api_provision_site_tls_certificate.go
│ │ │ ├── client.go
│ │ │ └── types.go
│ │ ├── nginxproxymanager/
│ │ │ ├── api_nginx_create_certificate.go
│ │ │ ├── api_nginx_list_certificates.go
│ │ │ ├── api_nginx_list_dead_hosts.go
│ │ │ ├── api_nginx_list_proxy_hosts.go
│ │ │ ├── api_nginx_list_redirection_hosts.go
│ │ │ ├── api_nginx_list_streams.go
│ │ │ ├── api_nginx_update_dead_host.go
│ │ │ ├── api_nginx_update_proxy_host.go
│ │ │ ├── api_nginx_update_redirection_host.go
│ │ │ ├── api_nginx_update_stream.go
│ │ │ ├── api_nginx_upload_certificate.go
│ │ │ ├── api_settings_get_default_site.go
│ │ │ ├── api_settings_set_default_site.go
│ │ │ ├── client.go
│ │ │ └── types.go
│ │ ├── qingcloud/
│ │ │ └── dns/
│ │ │ ├── api_create_record.go
│ │ │ ├── api_delete_record.go
│ │ │ ├── client.go
│ │ │ └── types.go
│ │ ├── qiniu/
│ │ │ ├── auth.go
│ │ │ ├── cdn.go
│ │ │ ├── kodo.go
│ │ │ ├── sslcert.go
│ │ │ └── util.go
│ │ ├── rainyun/
│ │ │ ├── api_rcdn_instance_ssl_bind.go
│ │ │ ├── api_ssl_center_create.go
│ │ │ ├── api_ssl_center_get.go
│ │ │ ├── api_ssl_center_list.go
│ │ │ ├── api_ssl_center_update.go
│ │ │ ├── client.go
│ │ │ └── types.go
│ │ ├── ratpanel/
│ │ │ ├── api_set_cert_update.go
│ │ │ ├── api_set_setting_cert.go
│ │ │ ├── api_set_website_cert.go
│ │ │ ├── client.go
│ │ │ └── types.go
│ │ ├── safeline/
│ │ │ ├── api_update_certificate.go
│ │ │ ├── client.go
│ │ │ └── types.go
│ │ ├── synologydsm/
│ │ │ ├── api_auth_login.go
│ │ │ ├── api_auth_logout.go
│ │ │ ├── api_core_certificate_crt_list.go
│ │ │ ├── api_core_certificate_import.go
│ │ │ ├── api_core_certificate_service_set.go
│ │ │ ├── api_info_query.go
│ │ │ ├── client.go
│ │ │ ├── types.go
│ │ │ └── utils.go
│ │ ├── ucloud/
│ │ │ ├── ucdn/
│ │ │ │ ├── api_get_ucdn_domain_config.go
│ │ │ │ ├── api_update_ucdn_domain_https_config_v2.go
│ │ │ │ ├── client.go
│ │ │ │ └── types.go
│ │ │ ├── udnr/
│ │ │ │ ├── api_add_domain_dns.go
│ │ │ │ ├── api_delete_domain_dns.go
│ │ │ │ ├── api_query_domain_dns.go
│ │ │ │ ├── client.go
│ │ │ │ └── types.go
│ │ │ ├── uewaf/
│ │ │ │ ├── api_add_waf_domain_certificate_info.go
│ │ │ │ └── client.go
│ │ │ ├── ufile/
│ │ │ │ ├── api_add_ufile_ssl_cert.go
│ │ │ │ └── client.go
│ │ │ ├── ulb/
│ │ │ │ ├── api_add_ssl_binding.go
│ │ │ │ ├── api_bind_ssl.go
│ │ │ │ ├── api_create_ssl.go
│ │ │ │ ├── api_delete_ssl_binding.go
│ │ │ │ ├── api_describe_listeners.go
│ │ │ │ ├── api_describe_ssl.go
│ │ │ │ ├── api_describe_ssl_v2.go
│ │ │ │ ├── api_describe_vserver.go
│ │ │ │ ├── api_unbind_ssl.go
│ │ │ │ ├── api_update_listener_attribute.go
│ │ │ │ └── client.go
│ │ │ ├── upathx/
│ │ │ │ ├── api_bind_pathx_ssl.go
│ │ │ │ ├── api_create_pathx_ssl.go
│ │ │ │ ├── api_describe_pathx_ssl.go
│ │ │ │ ├── api_unbind_pathx_ssl.go
│ │ │ │ └── client.go
│ │ │ └── ussl/
│ │ │ ├── api_download_certificate.go
│ │ │ ├── api_get_certificate_detail_info.go
│ │ │ ├── api_get_certificate_list.go
│ │ │ ├── api_upload_normal_certificate.go
│ │ │ ├── client.go
│ │ │ └── types.go
│ │ ├── upyun/
│ │ │ └── console/
│ │ │ ├── api_get_buckets.go
│ │ │ ├── api_get_https_certificate_manager.go
│ │ │ ├── api_get_https_service_manager.go
│ │ │ ├── api_migrate_https_domain.go
│ │ │ ├── api_update_https_certificate_manager.go
│ │ │ ├── api_upload_https_certificate.go
│ │ │ ├── client.go
│ │ │ └── types.go
│ │ ├── wangsu/
│ │ │ ├── cdn/
│ │ │ │ ├── api_batch_update_certificate_config.go
│ │ │ │ ├── client.go
│ │ │ │ └── types.go
│ │ │ ├── cdnpro/
│ │ │ │ ├── api_create_certificate.go
│ │ │ │ ├── api_create_deployment_task.go
│ │ │ │ ├── api_get_deployment_task_detail.go
│ │ │ │ ├── api_get_hostname_detail.go
│ │ │ │ ├── api_update_certificate.go
│ │ │ │ ├── client.go
│ │ │ │ └── types.go
│ │ │ ├── certificate/
│ │ │ │ ├── api_create_certificate.go
│ │ │ │ ├── api_list_certificates.go
│ │ │ │ ├── api_update_certificate.go
│ │ │ │ ├── client.go
│ │ │ │ └── types.go
│ │ │ └── openapi/
│ │ │ └── client.go
│ │ └── xinnet/
│ │ ├── api_dns_create.go
│ │ ├── api_dns_delete.go
│ │ ├── client.go
│ │ └── types.go
│ └── utils/
│ ├── cert/
│ │ ├── common.go
│ │ ├── comparer.go
│ │ ├── converter.go
│ │ ├── extractor.go
│ │ ├── hostname/
│ │ │ ├── hostname.go
│ │ │ └── hostname_test.go
│ │ ├── key/
│ │ │ └── key.go
│ │ ├── parser.go
│ │ ├── transformer.go
│ │ └── x509/
│ │ └── x509.go
│ ├── crypto/
│ │ └── aes.go
│ ├── env/
│ │ └── get.go
│ ├── file/
│ │ └── io.go
│ ├── filepath/
│ │ └── path.go
│ ├── http/
│ │ ├── parser.go
│ │ └── transport.go
│ ├── maps/
│ │ ├── get.go
│ │ └── marshal.go
│ ├── ssh/
│ │ ├── cmd.go
│ │ └── io.go
│ ├── tls/
│ │ └── config.go
│ └── wait/
│ ├── delay.go
│ └── until.go
└── ui/
├── .gitignore
├── embed.go
├── eslint.config.mjs
├── index.html
├── package.json
├── prettier.config.mjs
├── public/
│ └── robots.txt
├── src/
│ ├── App.tsx
│ ├── api/
│ │ ├── certificates.ts
│ │ ├── notifications.ts
│ │ ├── statistics.ts
│ │ └── workflows.ts
│ ├── components/
│ │ ├── AppDocument.tsx
│ │ ├── AppLocale.tsx
│ │ ├── AppTheme.tsx
│ │ ├── AppVersion.tsx
│ │ ├── CodeTextInput.tsx
│ │ ├── CopyableText.tsx
│ │ ├── DrawerForm.tsx
│ │ ├── Empty.tsx
│ │ ├── FileTextInput.tsx
│ │ ├── ModalForm.tsx
│ │ ├── MultipleInput.tsx
│ │ ├── MultipleSplitValueInput.tsx
│ │ ├── Show.tsx
│ │ ├── Tips.tsx
│ │ ├── access/
│ │ │ ├── AccessEditDrawer.tsx
│ │ │ ├── AccessForm.tsx
│ │ │ ├── AccessSelect.tsx
│ │ │ └── forms/
│ │ │ ├── AccessConfigFieldsProvider.tsx
│ │ │ ├── AccessConfigFieldsProvider1Panel.tsx
│ │ │ ├── AccessConfigFieldsProvider35cn.tsx
│ │ │ ├── AccessConfigFieldsProvider51DNScom.tsx
│ │ │ ├── AccessConfigFieldsProviderACMECA.tsx
│ │ │ ├── AccessConfigFieldsProviderACMEDNS.tsx
│ │ │ ├── AccessConfigFieldsProviderACMEHttpReq.tsx
│ │ │ ├── AccessConfigFieldsProviderAPISIX.tsx
│ │ │ ├── AccessConfigFieldsProviderAWS.tsx
│ │ │ ├── AccessConfigFieldsProviderActalisSSL.tsx
│ │ │ ├── AccessConfigFieldsProviderAkamai.tsx
│ │ │ ├── AccessConfigFieldsProviderAliyun.tsx
│ │ │ ├── AccessConfigFieldsProviderArvanCloud.tsx
│ │ │ ├── AccessConfigFieldsProviderAzure.tsx
│ │ │ ├── AccessConfigFieldsProviderBaiduCloud.tsx
│ │ │ ├── AccessConfigFieldsProviderBaishan.tsx
│ │ │ ├── AccessConfigFieldsProviderBaotaPanel.tsx
│ │ │ ├── AccessConfigFieldsProviderBaotaPanelGo.tsx
│ │ │ ├── AccessConfigFieldsProviderBaotaWAF.tsx
│ │ │ ├── AccessConfigFieldsProviderBookMyName.tsx
│ │ │ ├── AccessConfigFieldsProviderBunny.tsx
│ │ │ ├── AccessConfigFieldsProviderBytePlus.tsx
│ │ │ ├── AccessConfigFieldsProviderCMCCCloud.tsx
│ │ │ ├── AccessConfigFieldsProviderCPanel.tsx
│ │ │ ├── AccessConfigFieldsProviderCTCCCloud.tsx
│ │ │ ├── AccessConfigFieldsProviderCacheFly.tsx
│ │ │ ├── AccessConfigFieldsProviderCdnfly.tsx
│ │ │ ├── AccessConfigFieldsProviderClouDNS.tsx
│ │ │ ├── AccessConfigFieldsProviderCloudflare.tsx
│ │ │ ├── AccessConfigFieldsProviderConstellix.tsx
│ │ │ ├── AccessConfigFieldsProviderDNSExit.tsx
│ │ │ ├── AccessConfigFieldsProviderDNSLA.tsx
│ │ │ ├── AccessConfigFieldsProviderDNSMadeEasy.tsx
│ │ │ ├── AccessConfigFieldsProviderDeSEC.tsx
│ │ │ ├── AccessConfigFieldsProviderDigiCert.tsx
│ │ │ ├── AccessConfigFieldsProviderDigitalOcean.tsx
│ │ │ ├── AccessConfigFieldsProviderDingTalkBot.tsx
│ │ │ ├── AccessConfigFieldsProviderDiscordBot.tsx
│ │ │ ├── AccessConfigFieldsProviderDogeCloud.tsx
│ │ │ ├── AccessConfigFieldsProviderDokploy.tsx
│ │ │ ├── AccessConfigFieldsProviderDuckDNS.tsx
│ │ │ ├── AccessConfigFieldsProviderDynu.tsx
│ │ │ ├── AccessConfigFieldsProviderDynv6.tsx
│ │ │ ├── AccessConfigFieldsProviderEmail.tsx
│ │ │ ├── AccessConfigFieldsProviderFlexCDN.tsx
│ │ │ ├── AccessConfigFieldsProviderFlyIO.tsx
│ │ │ ├── AccessConfigFieldsProviderGandinet.tsx
│ │ │ ├── AccessConfigFieldsProviderGcore.tsx
│ │ │ ├── AccessConfigFieldsProviderGlobalSignAtlas.tsx
│ │ │ ├── AccessConfigFieldsProviderGname.tsx
│ │ │ ├── AccessConfigFieldsProviderGoDaddy.tsx
│ │ │ ├── AccessConfigFieldsProviderGoEdge.tsx
│ │ │ ├── AccessConfigFieldsProviderGoogleTrustServices.tsx
│ │ │ ├── AccessConfigFieldsProviderHetzner.tsx
│ │ │ ├── AccessConfigFieldsProviderHostingde.tsx
│ │ │ ├── AccessConfigFieldsProviderHostinger.tsx
│ │ │ ├── AccessConfigFieldsProviderHuaweiCloud.tsx
│ │ │ ├── AccessConfigFieldsProviderIONOS.tsx
│ │ │ ├── AccessConfigFieldsProviderInfomaniak.tsx
│ │ │ ├── AccessConfigFieldsProviderJDCloud.tsx
│ │ │ ├── AccessConfigFieldsProviderKong.tsx
│ │ │ ├── AccessConfigFieldsProviderKsyun.tsx
│ │ │ ├── AccessConfigFieldsProviderKubernetes.tsx
│ │ │ ├── AccessConfigFieldsProviderLarkBot.tsx
│ │ │ ├── AccessConfigFieldsProviderLeCDN.tsx
│ │ │ ├── AccessConfigFieldsProviderLinode.tsx
│ │ │ ├── AccessConfigFieldsProviderLiteSSL.tsx
│ │ │ ├── AccessConfigFieldsProviderMattermost.tsx
│ │ │ ├── AccessConfigFieldsProviderMohua.tsx
│ │ │ ├── AccessConfigFieldsProviderNS1.tsx
│ │ │ ├── AccessConfigFieldsProviderNameDotCom.tsx
│ │ │ ├── AccessConfigFieldsProviderNameSilo.tsx
│ │ │ ├── AccessConfigFieldsProviderNamecheap.tsx
│ │ │ ├── AccessConfigFieldsProviderNetcup.tsx
│ │ │ ├── AccessConfigFieldsProviderNetlify.tsx
│ │ │ ├── AccessConfigFieldsProviderNginxProxyManager.tsx
│ │ │ ├── AccessConfigFieldsProviderOVHcloud.tsx
│ │ │ ├── AccessConfigFieldsProviderPorkbun.tsx
│ │ │ ├── AccessConfigFieldsProviderPowerDNS.tsx
│ │ │ ├── AccessConfigFieldsProviderProxmoxVE.tsx
│ │ │ ├── AccessConfigFieldsProviderQingCloud.tsx
│ │ │ ├── AccessConfigFieldsProviderQiniu.tsx
│ │ │ ├── AccessConfigFieldsProviderRFC2136.tsx
│ │ │ ├── AccessConfigFieldsProviderRainYun.tsx
│ │ │ ├── AccessConfigFieldsProviderRatPanel.tsx
│ │ │ ├── AccessConfigFieldsProviderS3.tsx
│ │ │ ├── AccessConfigFieldsProviderSSH.tsx
│ │ │ ├── AccessConfigFieldsProviderSSLCom.tsx
│ │ │ ├── AccessConfigFieldsProviderSafeLine.tsx
│ │ │ ├── AccessConfigFieldsProviderSectigo.tsx
│ │ │ ├── AccessConfigFieldsProviderSlackBot.tsx
│ │ │ ├── AccessConfigFieldsProviderSpaceship.tsx
│ │ │ ├── AccessConfigFieldsProviderSynologyDSM.tsx
│ │ │ ├── AccessConfigFieldsProviderTechnitiumDNS.tsx
│ │ │ ├── AccessConfigFieldsProviderTelegramBot.tsx
│ │ │ ├── AccessConfigFieldsProviderTencentCloud.tsx
│ │ │ ├── AccessConfigFieldsProviderTodayNIC.tsx
│ │ │ ├── AccessConfigFieldsProviderUCloud.tsx
│ │ │ ├── AccessConfigFieldsProviderUniCloud.tsx
│ │ │ ├── AccessConfigFieldsProviderUpyun.tsx
│ │ │ ├── AccessConfigFieldsProviderVercel.tsx
│ │ │ ├── AccessConfigFieldsProviderVolcEngine.tsx
│ │ │ ├── AccessConfigFieldsProviderVultr.tsx
│ │ │ ├── AccessConfigFieldsProviderWangsu.tsx
│ │ │ ├── AccessConfigFieldsProviderWeComBot.tsx
│ │ │ ├── AccessConfigFieldsProviderWebhook.tsx
│ │ │ ├── AccessConfigFieldsProviderWestcn.tsx
│ │ │ ├── AccessConfigFieldsProviderXinnet.tsx
│ │ │ ├── AccessConfigFieldsProviderZeroSSL.tsx
│ │ │ ├── _context.ts
│ │ │ └── _hooks.ts
│ │ ├── certificate/
│ │ │ ├── CertificateDetail.tsx
│ │ │ └── CertificateDetailDrawer.tsx
│ │ ├── icons/
│ │ │ ├── IconLanguageEnZh.tsx
│ │ │ ├── IconLanguageZhEn.tsx
│ │ │ ├── createIconComponent.ts
│ │ │ └── index.ts
│ │ ├── preset/
│ │ │ ├── PresetNotifyTemplatesPopselect.tsx
│ │ │ └── PresetScriptTemplatesPopselect.tsx
│ │ ├── provider/
│ │ │ ├── ACMEDns01ProviderSelect.tsx
│ │ │ ├── ACMEHttp01ProviderSelect.tsx
│ │ │ ├── AccessProviderPicker.tsx
│ │ │ ├── AccessProviderSelect.tsx
│ │ │ ├── CAProviderSelect.tsx
│ │ │ ├── DeploymentProviderPicker.tsx
│ │ │ ├── DeploymentProviderSelect.tsx
│ │ │ ├── NotificationProviderPicker.tsx
│ │ │ ├── NotificationProviderSelect.tsx
│ │ │ └── _shared.ts
│ │ └── workflow/
│ │ ├── WorkflowGraphExportBox.tsx
│ │ ├── WorkflowGraphExportModal.tsx
│ │ ├── WorkflowGraphImportInputBox.tsx
│ │ ├── WorkflowGraphImportModal.tsx
│ │ ├── WorkflowRunDetail.tsx
│ │ ├── WorkflowRunDetailDrawer.tsx
│ │ ├── WorkflowStatus.tsx
│ │ └── designer/
│ │ ├── Designer.tsx
│ │ ├── Minimap.tsx
│ │ ├── NodeDrawer.tsx
│ │ ├── NodeRender.tsx
│ │ ├── NodeRenderContext.ts
│ │ ├── Toolbar.tsx
│ │ ├── _context.ts
│ │ ├── _util.ts
│ │ ├── elements/
│ │ │ ├── Adder.tsx
│ │ │ ├── BranchAdder.tsx
│ │ │ ├── Collapse.tsx
│ │ │ ├── DragHighlightAdder.tsx
│ │ │ ├── DragNode.tsx
│ │ │ ├── DraggingAdder.tsx
│ │ │ ├── Null.tsx
│ │ │ ├── TryCatchCollapse.tsx
│ │ │ └── index.ts
│ │ ├── flowgram.css
│ │ ├── forms/
│ │ │ ├── BizApplyNodeConfigDrawer.tsx
│ │ │ ├── BizApplyNodeConfigFieldsProvider.tsx
│ │ │ ├── BizApplyNodeConfigFieldsProviderAWSRoute53.tsx
│ │ │ ├── BizApplyNodeConfigFieldsProviderAliyunESA.tsx
│ │ │ ├── BizApplyNodeConfigFieldsProviderHuaweiCloudDNS.tsx
│ │ │ ├── BizApplyNodeConfigFieldsProviderJDCloudDNS.tsx
│ │ │ ├── BizApplyNodeConfigFieldsProviderLocal.tsx
│ │ │ ├── BizApplyNodeConfigFieldsProviderS3.tsx
│ │ │ ├── BizApplyNodeConfigFieldsProviderSSH.tsx
│ │ │ ├── BizApplyNodeConfigForm.tsx
│ │ │ ├── BizDeployNodeConfigDrawer.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProvider.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProvider1Panel.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProvider1PanelConsole.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderAPISIX.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderAWSACM.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderAWSCloudFront.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderAWSIAM.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderAliyunALB.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderAliyunAPIGW.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderAliyunCAS.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderAliyunCASDeploy.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderAliyunCDN.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderAliyunCLB.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderAliyunDCDN.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderAliyunDDoSPro.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderAliyunESA.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderAliyunESASaaS.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderAliyunFC.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderAliyunGA.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderAliyunLive.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderAliyunNLB.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderAliyunOSS.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderAliyunVOD.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderAliyunWAF.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderAzureKeyVault.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderBaiduCloudAppBLB.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderBaiduCloudBLB.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderBaiduCloudCDN.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderBaishanCDN.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderBaotaPanel.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderBaotaPanelConsole.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderBaotaPanelGo.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderBaotaPanelGoConsole.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderBaotaWAF.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderBaotaWAFConsole.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderBunnyCDN.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderBytePlusCDN.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderCPanel.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderCTCCCloudAO.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderCTCCCloudCDN.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderCTCCCloudELB.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderCTCCCloudFaaS.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderCTCCCloudICDN.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderCTCCCloudLVDN.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderCdnfly.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderDogeCloudCDN.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderFlexCDN.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderFlyIO.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderGcoreCDN.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderGoEdge.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderHuaweiCloudCDN.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderHuaweiCloudELB.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderHuaweiCloudOBS.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderHuaweiCloudWAF.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderJDCloudALB.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderJDCloudCDN.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderJDCloudLive.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderJDCloudVOD.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderKong.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderKsyunCDN.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderKubernetesSecret.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderLeCDN.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderLocal.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderMohuaMVH.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderNetlify.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderNginxProxyManager.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderProxmoxVE.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderQiniuCDN.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderQiniuKodo.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderQiniuPili.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderRainYunRCDN.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderRainYunSSLCenter.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderRatPanel.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderS3.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderSSH.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderSafeLine.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderSynologyDSM.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderTencentCloudCDN.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderTencentCloudCLB.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderTencentCloudCOS.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderTencentCloudCSS.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderTencentCloudECDN.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderTencentCloudEO.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderTencentCloudGAAP.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderTencentCloudSCF.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderTencentCloudSSL.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderTencentCloudSSLDeploy.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderTencentCloudSSLUpdate.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderTencentCloudVOD.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderTencentCloudWAF.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderUCloudUALB.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderUCloudUCDN.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderUCloudUCLB.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderUCloudUEWAF.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderUCloudUPathX.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderUCloudUS3.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderUniCloudWebHost.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderUpyunCDN.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderUpyunFile.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderVolcEngineALB.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderVolcEngineCDN.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderVolcEngineCLB.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderVolcEngineCertCenter.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderVolcEngineDCDN.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderVolcEngineImageX.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderVolcEngineLive.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderVolcEngineTOS.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderVolcEngineVOD.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderVolcEngineWAF.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderWangsuCDN.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderWangsuCDNPro.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderWangsuCertificate.tsx
│ │ │ ├── BizDeployNodeConfigFieldsProviderWebhook.tsx
│ │ │ ├── BizDeployNodeConfigForm.tsx
│ │ │ ├── BizMonitorNodeConfigDrawer.tsx
│ │ │ ├── BizMonitorNodeConfigForm.tsx
│ │ │ ├── BizNotifyNodeConfigDrawer.tsx
│ │ │ ├── BizNotifyNodeConfigFieldsProvider.tsx
│ │ │ ├── BizNotifyNodeConfigFieldsProviderDiscordBot.tsx
│ │ │ ├── BizNotifyNodeConfigFieldsProviderEmail.tsx
│ │ │ ├── BizNotifyNodeConfigFieldsProviderMattermost.tsx
│ │ │ ├── BizNotifyNodeConfigFieldsProviderSlackBot.tsx
│ │ │ ├── BizNotifyNodeConfigFieldsProviderTelegramBot.tsx
│ │ │ ├── BizNotifyNodeConfigFieldsProviderWebhook.tsx
│ │ │ ├── BizNotifyNodeConfigForm.tsx
│ │ │ ├── BizUploadNodeConfigDrawer.tsx
│ │ │ ├── BizUploadNodeConfigForm.tsx
│ │ │ ├── BranchBlockNodeConfigDrawer.tsx
│ │ │ ├── BranchBlockNodeConfigExprInputBox.tsx
│ │ │ ├── BranchBlockNodeConfigForm.tsx
│ │ │ ├── DelayNodeConfigDrawer.tsx
│ │ │ ├── DelayNodeConfigForm.tsx
│ │ │ ├── StartNodeConfigDrawer.tsx
│ │ │ ├── StartNodeConfigForm.tsx
│ │ │ ├── _context.ts
│ │ │ └── _shared.tsx
│ │ ├── index.ts
│ │ └── nodes/
│ │ ├── BizApplyNodeRegistry.tsx
│ │ ├── BizDeployNodeRegistry.tsx
│ │ ├── BizMonitorNodeRegistry.tsx
│ │ ├── BizNotifyNodeRegistry.tsx
│ │ ├── BizUploadNodeRegistry.tsx
│ │ ├── ConditionNode.tsx
│ │ ├── DelayNode.tsx
│ │ ├── EndNode.tsx
│ │ ├── StartNode.tsx
│ │ ├── TryCatchNode.tsx
│ │ ├── _example.ts
│ │ ├── _shared.tsx
│ │ ├── index.ts
│ │ └── typings.ts
│ ├── domain/
│ │ ├── access.ts
│ │ ├── app.ts
│ │ ├── certificate.ts
│ │ ├── provider.ts
│ │ ├── settings.ts
│ │ ├── statistics.ts
│ │ ├── workflow.ts
│ │ ├── workflowLog.ts
│ │ └── workflowRun.ts
│ ├── global.css
│ ├── hooks/
│ │ ├── index.ts
│ │ ├── useAntdForm.ts
│ │ ├── useAntdFormName.ts
│ │ ├── useAppSettings.ts
│ │ ├── useBrowserTheme.ts
│ │ ├── useTriggerElement.ts
│ │ ├── useVersionChecker.ts
│ │ └── useZustandShallowSelector.ts
│ ├── i18n/
│ │ ├── index.ts
│ │ └── locales/
│ │ ├── en/
│ │ │ ├── index.ts
│ │ │ ├── nls.access.json
│ │ │ ├── nls.certificate.json
│ │ │ ├── nls.common.json
│ │ │ ├── nls.dashboard.json
│ │ │ ├── nls.login.json
│ │ │ ├── nls.preset.json
│ │ │ ├── nls.provider.json
│ │ │ ├── nls.settings.json
│ │ │ ├── nls.workflow.json
│ │ │ ├── nls.workflow.nodes.json
│ │ │ ├── nls.workflow.runs.json
│ │ │ └── nls.workflow.vars.json
│ │ ├── index.ts
│ │ └── zh/
│ │ ├── index.ts
│ │ ├── nls.access.json
│ │ ├── nls.certificate.json
│ │ ├── nls.common.json
│ │ ├── nls.dashboard.json
│ │ ├── nls.login.json
│ │ ├── nls.preset.json
│ │ ├── nls.provider.json
│ │ ├── nls.settings.json
│ │ ├── nls.workflow.json
│ │ ├── nls.workflow.nodes.json
│ │ ├── nls.workflow.runs.json
│ │ └── nls.workflow.vars.json
│ ├── index.css
│ ├── main.tsx
│ ├── pages/
│ │ ├── AuthLayout.tsx
│ │ ├── ConsoleLayout.tsx
│ │ ├── ErrorLayout.tsx
│ │ ├── accesses/
│ │ │ ├── AccessList.tsx
│ │ │ └── AccessNew.tsx
│ │ ├── certificates/
│ │ │ └── CertificateList.tsx
│ │ ├── dashboard/
│ │ │ └── Dashboard.tsx
│ │ ├── login/
│ │ │ └── Login.tsx
│ │ ├── presets/
│ │ │ ├── PresetList.tsx
│ │ │ ├── PresetListNotifyTemplates.tsx
│ │ │ └── PresetListScriptTemplates.tsx
│ │ ├── settings/
│ │ │ ├── Settings.tsx
│ │ │ ├── SettingsAbout.tsx
│ │ │ ├── SettingsAccount.tsx
│ │ │ ├── SettingsAppearance.tsx
│ │ │ ├── SettingsDiagnostics.tsx
│ │ │ ├── SettingsPersistence.tsx
│ │ │ └── SettingsSSLProvider.tsx
│ │ └── workflows/
│ │ ├── WorkflowDetail.tsx
│ │ ├── WorkflowDetailDesign.tsx
│ │ ├── WorkflowDetailRuns.tsx
│ │ ├── WorkflowList.tsx
│ │ └── WorkflowNew.tsx
│ ├── repository/
│ │ ├── _pocketbase.ts
│ │ ├── access.ts
│ │ ├── admin.ts
│ │ ├── certificate.ts
│ │ ├── settings.ts
│ │ ├── system.ts
│ │ ├── workflow.ts
│ │ ├── workflowLog.ts
│ │ └── workflowRun.ts
│ ├── routers/
│ │ └── index.tsx
│ ├── stores/
│ │ ├── access/
│ │ │ ├── index.ts
│ │ │ └── types.ts
│ │ ├── settings/
│ │ │ ├── contact/
│ │ │ │ ├── index.ts
│ │ │ │ └── types.ts
│ │ │ ├── index.ts
│ │ │ ├── persistence/
│ │ │ │ ├── index.ts
│ │ │ │ └── types.ts
│ │ │ ├── sslprovider/
│ │ │ │ ├── index.ts
│ │ │ │ └── types.ts
│ │ │ └── template/
│ │ │ ├── index.ts
│ │ │ └── types.ts
│ │ └── workflow/
│ │ ├── index.ts
│ │ └── types.ts
│ └── utils/
│ ├── browser.ts
│ ├── cron.ts
│ ├── css.ts
│ ├── error.ts
│ ├── file.ts
│ ├── search.ts
│ ├── validator.ts
│ └── x509.ts
├── tsconfig.app.json
├── tsconfig.json
├── tsconfig.node.json
├── types/
│ ├── global.d.ts
│ ├── global.utility.d.ts
│ ├── shims-antd.d.ts
│ └── vite-env.d.ts
└── vite.config.ts
Showing preview only (610K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (5811 symbols across 1373 files)
FILE: .github/workflows/release_sync_gitee.py
function do_httpreq (line 24) | def do_httpreq(url, method="GET", headers=None, data=None):
function get_github_stable_release (line 53) | def get_github_stable_release():
function get_gitee_release_list (line 78) | def get_gitee_release_list():
function get_gitee_release_by_tag (line 94) | def get_gitee_release_by_tag(tag_name):
function delete_gitee_release (line 103) | def delete_gitee_release(release_info):
function create_gitee_release (line 140) | def create_gitee_release(name, tag, body, prerelease, gh_assets):
function main (line 224) | def main():
FILE: cmd/intercmd.go
function NewInternalCommand (line 20) | func NewInternalCommand(app core.App) *cobra.Command {
function internalCertApplyCommand (line 31) | func internalCertApplyCommand(_ core.App) *cobra.Command {
FILE: cmd/serve_nonwindows.go
function Serve (line 10) | func Serve(app *pocketbase.PocketBase) error {
FILE: cmd/serve_windows.go
type winscHandler (line 15) | type winscHandler struct
method Execute (line 20) | func (h *winscHandler) Execute(args []string, r <-chan svc.ChangeReque...
function Serve (line 49) | func Serve(app *pocketbase.PocketBase) error {
FILE: cmd/winsc_nonwindows.go
function NewWinscCommand (line 11) | func NewWinscCommand(app core.App) *cobra.Command {
FILE: cmd/winsc_windows.go
constant winscName (line 21) | winscName = "certimate"
function NewWinscCommand (line 23) | func NewWinscCommand(app core.App) *cobra.Command {
function winscInstallCommand (line 37) | func winscInstallCommand(_ core.App) *cobra.Command {
function winscUninstallCommand (line 84) | func winscUninstallCommand(_ core.App) *cobra.Command {
function winscStartCommand (line 127) | func winscStartCommand(_ core.App) *cobra.Command {
function winscStopCommand (line 158) | func winscStopCommand(app core.App) *cobra.Command {
FILE: internal/app/app.go
constant AppName (line 4) | AppName = "Certimate"
constant AppVersion (line 5) | AppVersion = "0.4.19"
constant AppUserAgent (line 6) | AppUserAgent = AppName + "/" + AppVersion
FILE: internal/app/scheduler.go
function GetScheduler (line 15) | func GetScheduler() *cron.Cron {
FILE: internal/app/singleton.go
function GetApp (line 17) | func GetApp() core.App {
function GetDB (line 51) | func GetDB() dbx.Builder {
function GetLogger (line 55) | func GetLogger() *slog.Logger {
FILE: internal/certacme/account.go
function NewACMEAccount (line 25) | func NewACMEAccount(config *ACMEConfig, email string, register bool) (*A...
function NewACMEAccountWithSingleFlight (line 112) | func NewACMEAccountWithSingleFlight(config *ACMEConfig, email string) (*...
FILE: internal/certacme/certifiers/registry.go
type ProviderFactoryFunc (line 10) | type ProviderFactoryFunc
type ProviderFactoryOptions (line 12) | type ProviderFactoryOptions struct
type Registry (line 19) | type Registry interface
type registry (line 27) | type registry struct
method Register (line 31) | func (r *registry[T]) Register(name T, factory ProviderFactoryFunc) error {
method RegisterAlias (line 40) | func (r *registry[T]) RegisterAlias(name T, alias T) error {
method MustRegister (line 54) | func (r *registry[T]) MustRegister(name T, factory ProviderFactoryFunc) {
method MustRegisterAlias (line 60) | func (r *registry[T]) MustRegisterAlias(name T, alias T) {
method Get (line 66) | func (r *registry[T]) Get(name T) (ProviderFactoryFunc, error) {
function newRegistry (line 74) | func newRegistry[T comparable]() Registry[T] {
FILE: internal/certacme/certifiers/sp_35cn.go
function init (line 13) | func init() {
FILE: internal/certacme/certifiers/sp_51dnscom.go
function init (line 13) | func init() {
FILE: internal/certacme/certifiers/sp_acmedns.go
function init (line 13) | func init() {
FILE: internal/certacme/certifiers/sp_acmehttpreq.go
function init (line 13) | func init() {
FILE: internal/certacme/certifiers/sp_akamai_edgedns.go
function init (line 13) | func init() {
FILE: internal/certacme/certifiers/sp_aliyun_dns.go
function init (line 13) | func init() {
FILE: internal/certacme/certifiers/sp_aliyun_esa.go
function init (line 13) | func init() {
FILE: internal/certacme/certifiers/sp_arvancloud.go
function init (line 13) | func init() {
FILE: internal/certacme/certifiers/sp_aws_route53.go
function init (line 13) | func init() {
FILE: internal/certacme/certifiers/sp_azure_dns.go
function init (line 13) | func init() {
FILE: internal/certacme/certifiers/sp_baiducloud_dns.go
function init (line 13) | func init() {
FILE: internal/certacme/certifiers/sp_bookmyname.go
function init (line 13) | func init() {
FILE: internal/certacme/certifiers/sp_bunny.go
function init (line 13) | func init() {
FILE: internal/certacme/certifiers/sp_cloudflare.go
function init (line 13) | func init() {
FILE: internal/certacme/certifiers/sp_cloudns.go
function init (line 13) | func init() {
FILE: internal/certacme/certifiers/sp_cmcccloud_dns.go
function init (line 13) | func init() {
FILE: internal/certacme/certifiers/sp_constellix.go
function init (line 13) | func init() {
FILE: internal/certacme/certifiers/sp_cpanel.go
function init (line 13) | func init() {
FILE: internal/certacme/certifiers/sp_ctcccloud_smartdns.go
function init (line 13) | func init() {
FILE: internal/certacme/certifiers/sp_desec.go
function init (line 13) | func init() {
FILE: internal/certacme/certifiers/sp_digitalocean.go
function init (line 13) | func init() {
FILE: internal/certacme/certifiers/sp_dnsexit.go
function init (line 13) | func init() {
FILE: internal/certacme/certifiers/sp_dnsla.go
function init (line 13) | func init() {
FILE: internal/certacme/certifiers/sp_dnsmadeeasy.go
function init (line 13) | func init() {
FILE: internal/certacme/certifiers/sp_duckdns.go
function init (line 13) | func init() {
FILE: internal/certacme/certifiers/sp_dynu.go
function init (line 13) | func init() {
FILE: internal/certacme/certifiers/sp_dynv6.go
function init (line 13) | func init() {
FILE: internal/certacme/certifiers/sp_gandinet.go
function init (line 13) | func init() {
FILE: internal/certacme/certifiers/sp_gcore.go
function init (line 13) | func init() {
FILE: internal/certacme/certifiers/sp_gname.go
function init (line 13) | func init() {
FILE: internal/certacme/certifiers/sp_godaddy.go
function init (line 13) | func init() {
FILE: internal/certacme/certifiers/sp_hetzner.go
function init (line 13) | func init() {
FILE: internal/certacme/certifiers/sp_hostingde.go
function init (line 13) | func init() {
FILE: internal/certacme/certifiers/sp_hostinger.go
function init (line 13) | func init() {
FILE: internal/certacme/certifiers/sp_huaweicloud_dns.go
function init (line 13) | func init() {
FILE: internal/certacme/certifiers/sp_infomaniak.go
function init (line 13) | func init() {
FILE: internal/certacme/certifiers/sp_ionos.go
function init (line 13) | func init() {
FILE: internal/certacme/certifiers/sp_jdcloud_dns.go
function init (line 13) | func init() {
FILE: internal/certacme/certifiers/sp_linode.go
function init (line 13) | func init() {
FILE: internal/certacme/certifiers/sp_local.go
function init (line 11) | func init() {
FILE: internal/certacme/certifiers/sp_namecheap.go
function init (line 13) | func init() {
FILE: internal/certacme/certifiers/sp_namedotcom.go
function init (line 13) | func init() {
FILE: internal/certacme/certifiers/sp_namesilo.go
function init (line 13) | func init() {
FILE: internal/certacme/certifiers/sp_netcup.go
function init (line 13) | func init() {
FILE: internal/certacme/certifiers/sp_netlify.go
function init (line 13) | func init() {
FILE: internal/certacme/certifiers/sp_ns1.go
function init (line 13) | func init() {
FILE: internal/certacme/certifiers/sp_ovhcloud.go
function init (line 13) | func init() {
FILE: internal/certacme/certifiers/sp_porkbun.go
function init (line 13) | func init() {
FILE: internal/certacme/certifiers/sp_powerdns.go
function init (line 13) | func init() {
FILE: internal/certacme/certifiers/sp_qingcloud_dns.go
function init (line 13) | func init() {
FILE: internal/certacme/certifiers/sp_rainyun.go
function init (line 13) | func init() {
FILE: internal/certacme/certifiers/sp_rfc2136.go
function init (line 13) | func init() {
FILE: internal/certacme/certifiers/sp_s3.go
function init (line 13) | func init() {
FILE: internal/certacme/certifiers/sp_spaceship.go
function init (line 13) | func init() {
FILE: internal/certacme/certifiers/sp_ssh.go
function init (line 13) | func init() {
FILE: internal/certacme/certifiers/sp_technitiumdns.go
function init (line 13) | func init() {
FILE: internal/certacme/certifiers/sp_tencentcloud_dns.go
function init (line 13) | func init() {
FILE: internal/certacme/certifiers/sp_tencentcloud_eo.go
function init (line 13) | func init() {
FILE: internal/certacme/certifiers/sp_todaynic.go
function init (line 13) | func init() {
FILE: internal/certacme/certifiers/sp_ucloud_udnr.go
function init (line 13) | func init() {
FILE: internal/certacme/certifiers/sp_vercel.go
function init (line 13) | func init() {
FILE: internal/certacme/certifiers/sp_volcengine_dns.go
function init (line 13) | func init() {
FILE: internal/certacme/certifiers/sp_vultr.go
function init (line 13) | func init() {
FILE: internal/certacme/certifiers/sp_westcn.go
function init (line 13) | func init() {
FILE: internal/certacme/certifiers/sp_xinnet.go
function init (line 13) | func init() {
FILE: internal/certacme/client.go
type ACMEClient (line 13) | type ACMEClient struct
function NewACMEClient (line 18) | func NewACMEClient(config *ACMEConfig, email string, configures ...func(...
function NewACMEClientWithAccount (line 35) | func NewACMEClientWithAccount(account *ACMEAccount, configures ...func(*...
function newACMEClientWithAccount (line 39) | func newACMEClientWithAccount(account *ACMEAccount, configures ...func(*...
FILE: internal/certacme/client_obtain.go
type ObtainCertificateRequest (line 25) | type ObtainCertificateRequest struct
type ObtainCertificateResponse (line 60) | type ObtainCertificateResponse struct
method ObtainCertificate (line 70) | func (c *ACMEClient) ObtainCertificate(ctx context.Context, request *Obt...
method sendObtainCertificateRequest (line 91) | func (c *ACMEClient) sendObtainCertificateRequest(request *ObtainCertifi...
FILE: internal/certacme/client_revoke.go
type RevokeCertificateRequest (line 8) | type RevokeCertificateRequest struct
type RevokeCertificateResponse (line 12) | type RevokeCertificateResponse struct
method RevokeCertificate (line 14) | func (c *ACMEClient) RevokeCertificate(ctx context.Context, request *Rev...
method sendRevokeCertificateRequest (line 35) | func (c *ACMEClient) sendRevokeCertificateRequest(request *RevokeCertifi...
FILE: internal/certacme/config.go
type ACMEConfigOptions (line 33) | type ACMEConfigOptions struct
type ACMEConfig (line 40) | type ACMEConfig struct
function NewACMEConfig (line 48) | func NewACMEConfig(options *ACMEConfigOptions) (*ACMEConfig, error) {
FILE: internal/certacme/logging.go
type legoLogger (line 13) | type legoLogger struct
method Fatal (line 18) | func (l *legoLogger) Fatal(args ...any) {
method Fatalln (line 23) | func (l *legoLogger) Fatalln(args ...any) {
method Fatalf (line 27) | func (l *legoLogger) Fatalf(format string, args ...any) {
method Print (line 31) | func (l *legoLogger) Print(args ...any) {
method Println (line 46) | func (l *legoLogger) Println(args ...any) {
method Printf (line 50) | func (l *legoLogger) Printf(format string, args ...any) {
function NewLegoLogger (line 54) | func NewLegoLogger(logger *slog.Logger) legolog.StdLogger {
FILE: internal/certificate/service.go
type CertificateService (line 21) | type CertificateService struct
method InitSchedule (line 39) | func (s *CertificateService) InitSchedule(ctx context.Context) error {
method DownloadCertificate (line 47) | func (s *CertificateService) DownloadCertificate(ctx context.Context, ...
method RevokeCertificate (line 202) | func (s *CertificateService) RevokeCertificate(ctx context.Context, re...
method cleanupExpiredCertificates (line 242) | func (s *CertificateService) cleanupExpiredCertificates(ctx context.Co...
function NewCertificateService (line 27) | func NewCertificateService(
FILE: internal/certificate/service_deps.go
type acmeAccountRepository (line 11) | type acmeAccountRepository interface
type certificateRepository (line 15) | type certificateRepository interface
type settingsRepository (line 22) | type settingsRepository interface
FILE: internal/certmgmt/client.go
type Client (line 7) | type Client struct
type ClientConfigure (line 11) | type ClientConfigure
function NewClient (line 13) | func NewClient(configures ...ClientConfigure) *Client {
function WithLogger (line 21) | func WithLogger(logger *slog.Logger) ClientConfigure {
FILE: internal/certmgmt/client_deploy.go
type DeployCertificateRequest (line 12) | type DeployCertificateRequest struct
type DeployCertificateResponse (line 23) | type DeployCertificateResponse struct
method DeployCertificate (line 25) | func (c *Client) DeployCertificate(ctx context.Context, request *DeployC...
FILE: internal/certmgmt/deployers/registry.go
type ProviderFactoryFunc (line 10) | type ProviderFactoryFunc
type ProviderFactoryOptions (line 12) | type ProviderFactoryOptions struct
type Registry (line 17) | type Registry interface
type registry (line 23) | type registry struct
method Register (line 27) | func (r *registry[T]) Register(name T, factory ProviderFactoryFunc) error {
method MustRegister (line 36) | func (r *registry[T]) MustRegister(name T, factory ProviderFactoryFunc) {
method Get (line 42) | func (r *registry[T]) Get(name T) (ProviderFactoryFunc, error) {
function newRegistry (line 50) | func newRegistry[T comparable]() Registry[T] {
FILE: internal/certmgmt/deployers/sp_1panel.go
function init (line 12) | func init() {
FILE: internal/certmgmt/deployers/sp_1panel_console.go
function init (line 12) | func init() {
FILE: internal/certmgmt/deployers/sp_aliyun_alb.go
function init (line 12) | func init() {
FILE: internal/certmgmt/deployers/sp_aliyun_apigw.go
function init (line 12) | func init() {
FILE: internal/certmgmt/deployers/sp_aliyun_cas.go
function init (line 12) | func init() {
FILE: internal/certmgmt/deployers/sp_aliyun_casdeploy.go
function init (line 15) | func init() {
FILE: internal/certmgmt/deployers/sp_aliyun_cdn.go
function init (line 12) | func init() {
FILE: internal/certmgmt/deployers/sp_aliyun_clb.go
function init (line 12) | func init() {
FILE: internal/certmgmt/deployers/sp_aliyun_dcdn.go
function init (line 12) | func init() {
FILE: internal/certmgmt/deployers/sp_aliyun_ddospro.go
function init (line 12) | func init() {
FILE: internal/certmgmt/deployers/sp_aliyun_esa.go
function init (line 12) | func init() {
FILE: internal/certmgmt/deployers/sp_aliyun_esasaas.go
function init (line 12) | func init() {
FILE: internal/certmgmt/deployers/sp_aliyun_fc.go
function init (line 12) | func init() {
FILE: internal/certmgmt/deployers/sp_aliyun_ga.go
function init (line 12) | func init() {
FILE: internal/certmgmt/deployers/sp_aliyun_live.go
function init (line 12) | func init() {
FILE: internal/certmgmt/deployers/sp_aliyun_nlb.go
function init (line 12) | func init() {
FILE: internal/certmgmt/deployers/sp_aliyun_oss.go
function init (line 12) | func init() {
FILE: internal/certmgmt/deployers/sp_aliyun_vod.go
function init (line 12) | func init() {
FILE: internal/certmgmt/deployers/sp_aliyun_waf.go
function init (line 12) | func init() {
FILE: internal/certmgmt/deployers/sp_apisix.go
function init (line 12) | func init() {
FILE: internal/certmgmt/deployers/sp_aws_acm.go
function init (line 12) | func init() {
FILE: internal/certmgmt/deployers/sp_aws_cloudfront.go
function init (line 12) | func init() {
FILE: internal/certmgmt/deployers/sp_aws_iam.go
function init (line 12) | func init() {
FILE: internal/certmgmt/deployers/sp_azure_keyvault.go
function init (line 12) | func init() {
FILE: internal/certmgmt/deployers/sp_baiducloud_appblb.go
function init (line 12) | func init() {
FILE: internal/certmgmt/deployers/sp_baiducloud_blb.go
function init (line 12) | func init() {
FILE: internal/certmgmt/deployers/sp_baiducloud_cdn.go
function init (line 12) | func init() {
FILE: internal/certmgmt/deployers/sp_baiducloud_cert.go
function init (line 12) | func init() {
FILE: internal/certmgmt/deployers/sp_baishan_cdn.go
function init (line 12) | func init() {
FILE: internal/certmgmt/deployers/sp_baotapanel.go
function init (line 15) | func init() {
FILE: internal/certmgmt/deployers/sp_baotapanel_console.go
function init (line 12) | func init() {
FILE: internal/certmgmt/deployers/sp_baotapanelgo.go
function init (line 15) | func init() {
FILE: internal/certmgmt/deployers/sp_baotapanelgo_console.go
function init (line 12) | func init() {
FILE: internal/certmgmt/deployers/sp_baotawaf.go
function init (line 15) | func init() {
FILE: internal/certmgmt/deployers/sp_baotawaf_console.go
function init (line 12) | func init() {
FILE: internal/certmgmt/deployers/sp_bunny_cdn.go
function init (line 12) | func init() {
FILE: internal/certmgmt/deployers/sp_byteplus_cdn.go
function init (line 12) | func init() {
FILE: internal/certmgmt/deployers/sp_cachefly.go
function init (line 12) | func init() {
FILE: internal/certmgmt/deployers/sp_cdnfly.go
function init (line 12) | func init() {
FILE: internal/certmgmt/deployers/sp_cpanel.go
function init (line 12) | func init() {
FILE: internal/certmgmt/deployers/sp_ctcccloud_ao.go
function init (line 12) | func init() {
FILE: internal/certmgmt/deployers/sp_ctcccloud_cdn.go
function init (line 12) | func init() {
FILE: internal/certmgmt/deployers/sp_ctcccloud_cms.go
function init (line 12) | func init() {
FILE: internal/certmgmt/deployers/sp_ctcccloud_elb.go
function init (line 12) | func init() {
FILE: internal/certmgmt/deployers/sp_ctcccloud_faas.go
function init (line 12) | func init() {
FILE: internal/certmgmt/deployers/sp_ctcccloud_icdn.go
function init (line 12) | func init() {
FILE: internal/certmgmt/deployers/sp_ctcccloud_lvdn.go
function init (line 12) | func init() {
FILE: internal/certmgmt/deployers/sp_dogecloud_cdn.go
function init (line 12) | func init() {
FILE: internal/certmgmt/deployers/sp_dokploy.go
function init (line 12) | func init() {
FILE: internal/certmgmt/deployers/sp_flexcdn.go
function init (line 12) | func init() {
FILE: internal/certmgmt/deployers/sp_flyio.go
function init (line 12) | func init() {
FILE: internal/certmgmt/deployers/sp_gcore_cdn.go
function init (line 12) | func init() {
FILE: internal/certmgmt/deployers/sp_goedge.go
function init (line 12) | func init() {
FILE: internal/certmgmt/deployers/sp_huaweicloud_cdn.go
function init (line 12) | func init() {
FILE: internal/certmgmt/deployers/sp_huaweicloud_elb.go
function init (line 12) | func init() {
FILE: internal/certmgmt/deployers/sp_huaweicloud_obs.go
function init (line 12) | func init() {
FILE: internal/certmgmt/deployers/sp_huaweicloud_scm.go
function init (line 12) | func init() {
FILE: internal/certmgmt/deployers/sp_huaweicloud_waf.go
function init (line 12) | func init() {
FILE: internal/certmgmt/deployers/sp_jdcloud_alb.go
function init (line 12) | func init() {
FILE: internal/certmgmt/deployers/sp_jdcloud_cdn.go
function init (line 12) | func init() {
FILE: internal/certmgmt/deployers/sp_jdcloud_live.go
function init (line 12) | func init() {
FILE: internal/certmgmt/deployers/sp_jdcloud_vod.go
function init (line 12) | func init() {
FILE: internal/certmgmt/deployers/sp_kong.go
function init (line 12) | func init() {
FILE: internal/certmgmt/deployers/sp_ksyun_cdn.go
function init (line 12) | func init() {
FILE: internal/certmgmt/deployers/sp_kubernetes_secret.go
function init (line 13) | func init() {
FILE: internal/certmgmt/deployers/sp_lecdn.go
function init (line 12) | func init() {
FILE: internal/certmgmt/deployers/sp_local.go
function init (line 10) | func init() {
FILE: internal/certmgmt/deployers/sp_mohua_mvh.go
function init (line 12) | func init() {
FILE: internal/certmgmt/deployers/sp_netlify.go
function init (line 12) | func init() {
FILE: internal/certmgmt/deployers/sp_nginxproxymanager.go
function init (line 12) | func init() {
FILE: internal/certmgmt/deployers/sp_proxmoxve.go
function init (line 12) | func init() {
FILE: internal/certmgmt/deployers/sp_qiniu_cdn.go
function init (line 12) | func init() {
FILE: internal/certmgmt/deployers/sp_qiniu_kodo.go
function init (line 12) | func init() {
FILE: internal/certmgmt/deployers/sp_qiniu_pili.go
function init (line 12) | func init() {
FILE: internal/certmgmt/deployers/sp_rainyun_rcdn.go
function init (line 12) | func init() {
FILE: internal/certmgmt/deployers/sp_rainyun_sslcenter.go
function init (line 12) | func init() {
FILE: internal/certmgmt/deployers/sp_ratpanel.go
function init (line 15) | func init() {
FILE: internal/certmgmt/deployers/sp_ratpanel_console.go
function init (line 12) | func init() {
FILE: internal/certmgmt/deployers/sp_s3.go
function init (line 12) | func init() {
FILE: internal/certmgmt/deployers/sp_safeline.go
function init (line 12) | func init() {
FILE: internal/certmgmt/deployers/sp_ssh.go
function init (line 12) | func init() {
FILE: internal/certmgmt/deployers/sp_synologydsm.go
function init (line 12) | func init() {
FILE: internal/certmgmt/deployers/sp_tencentcloud_cdn.go
function init (line 12) | func init() {
FILE: internal/certmgmt/deployers/sp_tencentcloud_clb.go
function init (line 12) | func init() {
FILE: internal/certmgmt/deployers/sp_tencentcloud_cos.go
function init (line 12) | func init() {
FILE: internal/certmgmt/deployers/sp_tencentcloud_css.go
function init (line 12) | func init() {
FILE: internal/certmgmt/deployers/sp_tencentcloud_ecdn.go
function init (line 12) | func init() {
FILE: internal/certmgmt/deployers/sp_tencentcloud_eo.go
function init (line 15) | func init() {
FILE: internal/certmgmt/deployers/sp_tencentcloud_gaap.go
function init (line 12) | func init() {
FILE: internal/certmgmt/deployers/sp_tencentcloud_scf.go
function init (line 12) | func init() {
FILE: internal/certmgmt/deployers/sp_tencentcloud_ssl.go
function init (line 12) | func init() {
FILE: internal/certmgmt/deployers/sp_tencentcloud_ssldeploy.go
function init (line 15) | func init() {
FILE: internal/certmgmt/deployers/sp_tencentcloud_sslupdate.go
function init (line 15) | func init() {
FILE: internal/certmgmt/deployers/sp_tencentcloud_vod.go
function init (line 12) | func init() {
FILE: internal/certmgmt/deployers/sp_tencentcloud_waf.go
function init (line 12) | func init() {
FILE: internal/certmgmt/deployers/sp_ucloud_ualb.go
function init (line 12) | func init() {
FILE: internal/certmgmt/deployers/sp_ucloud_ucdn.go
function init (line 12) | func init() {
FILE: internal/certmgmt/deployers/sp_ucloud_uclb.go
function init (line 12) | func init() {
FILE: internal/certmgmt/deployers/sp_ucloud_uewaf.go
function init (line 12) | func init() {
FILE: internal/certmgmt/deployers/sp_ucloud_upathx.go
function init (line 12) | func init() {
FILE: internal/certmgmt/deployers/sp_ucloud_us3.go
function init (line 12) | func init() {
FILE: internal/certmgmt/deployers/sp_unicloud_webhost.go
function init (line 12) | func init() {
FILE: internal/certmgmt/deployers/sp_upyun_cdn.go
function init (line 12) | func init() {
FILE: internal/certmgmt/deployers/sp_upyun_file.go
function init (line 12) | func init() {
FILE: internal/certmgmt/deployers/sp_volcengine_alb.go
function init (line 12) | func init() {
FILE: internal/certmgmt/deployers/sp_volcengine_cdn.go
function init (line 12) | func init() {
FILE: internal/certmgmt/deployers/sp_volcengine_certcenter.go
function init (line 12) | func init() {
FILE: internal/certmgmt/deployers/sp_volcengine_clb.go
function init (line 12) | func init() {
FILE: internal/certmgmt/deployers/sp_volcengine_dcdn.go
function init (line 12) | func init() {
FILE: internal/certmgmt/deployers/sp_volcengine_imagex.go
function init (line 12) | func init() {
FILE: internal/certmgmt/deployers/sp_volcengine_live.go
function init (line 12) | func init() {
FILE: internal/certmgmt/deployers/sp_volcengine_tos.go
function init (line 12) | func init() {
FILE: internal/certmgmt/deployers/sp_volcengine_vod.go
function init (line 12) | func init() {
FILE: internal/certmgmt/deployers/sp_volcengine_waf.go
function init (line 12) | func init() {
FILE: internal/certmgmt/deployers/sp_wangsu_cdn.go
function init (line 15) | func init() {
FILE: internal/certmgmt/deployers/sp_wangsu_cdnpro.go
function init (line 12) | func init() {
FILE: internal/certmgmt/deployers/sp_wangsu_certificate.go
function init (line 12) | func init() {
FILE: internal/certmgmt/deployers/sp_webhook.go
function init (line 14) | func init() {
FILE: internal/domain/access.go
constant CollectionNameAccess (line 5) | CollectionNameAccess = "access"
type Access (line 7) | type Access struct
type AccessConfigFor1Panel (line 16) | type AccessConfigFor1Panel struct
type AccessConfigFor35cn (line 23) | type AccessConfigFor35cn struct
type AccessConfigFor51DNScom (line 28) | type AccessConfigFor51DNScom struct
type AccessConfigForACMEExternalAccountBinding (line 33) | type AccessConfigForACMEExternalAccountBinding struct
type AccessConfigForACMECA (line 38) | type AccessConfigForACMECA struct
type AccessConfigForACMEDNS (line 43) | type AccessConfigForACMEDNS struct
type AccessConfigForACMEHttpReq (line 48) | type AccessConfigForACMEHttpReq struct
type AccessConfigForActalisSSL (line 55) | type AccessConfigForActalisSSL struct
type AccessConfigForAkamai (line 59) | type AccessConfigForAkamai struct
type AccessConfigForAliyun (line 66) | type AccessConfigForAliyun struct
type AccessConfigForAPISIX (line 72) | type AccessConfigForAPISIX struct
type AccessConfigForArvanCloud (line 78) | type AccessConfigForArvanCloud struct
type AccessConfigForAWS (line 82) | type AccessConfigForAWS struct
type AccessConfigForAzure (line 87) | type AccessConfigForAzure struct
type AccessConfigForBaiduCloud (line 96) | type AccessConfigForBaiduCloud struct
type AccessConfigForBaishan (line 101) | type AccessConfigForBaishan struct
type AccessConfigForBaotaPanel (line 105) | type AccessConfigForBaotaPanel struct
type AccessConfigForBaotaPanelGo (line 111) | type AccessConfigForBaotaPanelGo struct
type AccessConfigForBaotaWAF (line 117) | type AccessConfigForBaotaWAF struct
type AccessConfigForBookMyName (line 123) | type AccessConfigForBookMyName struct
type AccessConfigForBunny (line 128) | type AccessConfigForBunny struct
type AccessConfigForBytePlus (line 132) | type AccessConfigForBytePlus struct
type AccessConfigForCacheFly (line 137) | type AccessConfigForCacheFly struct
type AccessConfigForCdnfly (line 141) | type AccessConfigForCdnfly struct
type AccessConfigForCloudflare (line 148) | type AccessConfigForCloudflare struct
type AccessConfigForClouDNS (line 153) | type AccessConfigForClouDNS struct
type AccessConfigForCMCCCloud (line 158) | type AccessConfigForCMCCCloud struct
type AccessConfigForConstellix (line 163) | type AccessConfigForConstellix struct
type AccessConfigForCPanel (line 168) | type AccessConfigForCPanel struct
type AccessConfigForCTCCCloud (line 175) | type AccessConfigForCTCCCloud struct
type AccessConfigForDeSEC (line 180) | type AccessConfigForDeSEC struct
type AccessConfigForDigitalOcean (line 184) | type AccessConfigForDigitalOcean struct
type AccessConfigForDingTalkBot (line 188) | type AccessConfigForDingTalkBot struct
type AccessConfigForDiscordBot (line 194) | type AccessConfigForDiscordBot struct
type AccessConfigForDNSExit (line 199) | type AccessConfigForDNSExit struct
type AccessConfigForDNSLA (line 203) | type AccessConfigForDNSLA struct
type AccessConfigForDNSMadeEasy (line 208) | type AccessConfigForDNSMadeEasy struct
type AccessConfigForDogeCloud (line 213) | type AccessConfigForDogeCloud struct
type AccessConfigForDokploy (line 218) | type AccessConfigForDokploy struct
type AccessConfigForDuckDNS (line 224) | type AccessConfigForDuckDNS struct
type AccessConfigForDynu (line 228) | type AccessConfigForDynu struct
type AccessConfigForDynv6 (line 232) | type AccessConfigForDynv6 struct
type AccessConfigForEmail (line 236) | type AccessConfigForEmail struct
type AccessConfigForFlexCDN (line 248) | type AccessConfigForFlexCDN struct
type AccessConfigForFlyIO (line 256) | type AccessConfigForFlyIO struct
type AccessConfigForGandinet (line 260) | type AccessConfigForGandinet struct
type AccessConfigForGcore (line 264) | type AccessConfigForGcore struct
type AccessConfigForGlobalSectigo (line 268) | type AccessConfigForGlobalSectigo struct
type AccessConfigForGlobalSignAtlas (line 273) | type AccessConfigForGlobalSignAtlas struct
type AccessConfigForGname (line 277) | type AccessConfigForGname struct
type AccessConfigForGoDaddy (line 282) | type AccessConfigForGoDaddy struct
type AccessConfigForGoEdge (line 287) | type AccessConfigForGoEdge struct
type AccessConfigForGoogleTrustServices (line 295) | type AccessConfigForGoogleTrustServices struct
type AccessConfigForHetzner (line 299) | type AccessConfigForHetzner struct
type AccessConfigForHostingde (line 303) | type AccessConfigForHostingde struct
type AccessConfigForHostinger (line 307) | type AccessConfigForHostinger struct
type AccessConfigForHuaweiCloud (line 311) | type AccessConfigForHuaweiCloud struct
type AccessConfigForInfomaniak (line 317) | type AccessConfigForInfomaniak struct
type AccessConfigForIONOS (line 321) | type AccessConfigForIONOS struct
type AccessConfigForJDCloud (line 326) | type AccessConfigForJDCloud struct
type AccessConfigForKong (line 331) | type AccessConfigForKong struct
type AccessConfigForKubernetes (line 337) | type AccessConfigForKubernetes struct
type AccessConfigForKsyun (line 341) | type AccessConfigForKsyun struct
type AccessConfigForLarkBot (line 346) | type AccessConfigForLarkBot struct
type AccessConfigForLeCDN (line 352) | type AccessConfigForLeCDN struct
type AccessConfigForLinode (line 361) | type AccessConfigForLinode struct
type AccessConfigForLiteSSL (line 365) | type AccessConfigForLiteSSL struct
type AccessConfigForMattermost (line 369) | type AccessConfigForMattermost struct
type AccessConfigForMohua (line 376) | type AccessConfigForMohua struct
type AccessConfigForNamecheap (line 381) | type AccessConfigForNamecheap struct
type AccessConfigForNameDotCom (line 386) | type AccessConfigForNameDotCom struct
type AccessConfigForNameSilo (line 391) | type AccessConfigForNameSilo struct
type AccessConfigForNetcup (line 395) | type AccessConfigForNetcup struct
type AccessConfigForNetlify (line 401) | type AccessConfigForNetlify struct
type AccessConfigForNginxProxyManager (line 405) | type AccessConfigForNginxProxyManager struct
type AccessConfigForNS1 (line 414) | type AccessConfigForNS1 struct
type AccessConfigForOVHcloud (line 418) | type AccessConfigForOVHcloud struct
type AccessConfigForPorkbun (line 428) | type AccessConfigForPorkbun struct
type AccessConfigForPowerDNS (line 433) | type AccessConfigForPowerDNS struct
type AccessConfigForProxmoxVE (line 439) | type AccessConfigForProxmoxVE struct
type AccessConfigForQingCloud (line 446) | type AccessConfigForQingCloud struct
type AccessConfigForQiniu (line 451) | type AccessConfigForQiniu struct
type AccessConfigForRainYun (line 456) | type AccessConfigForRainYun struct
type AccessConfigForRatPanel (line 460) | type AccessConfigForRatPanel struct
type AccessConfigForRFC2136 (line 467) | type AccessConfigForRFC2136 struct
type AccessConfigForS3 (line 475) | type AccessConfigForS3 struct
type AccessConfigForSafeLine (line 484) | type AccessConfigForSafeLine struct
type AccessConfigForSlackBot (line 490) | type AccessConfigForSlackBot struct
type AccessConfigForSpaceship (line 495) | type AccessConfigForSpaceship struct
type AccessConfigForSSH (line 500) | type AccessConfigForSSH struct
type AccessConfigForSSLCom (line 519) | type AccessConfigForSSLCom struct
type AccessConfigForSynologyDSM (line 523) | type AccessConfigForSynologyDSM struct
type AccessConfigForTechnitiumDNS (line 531) | type AccessConfigForTechnitiumDNS struct
type AccessConfigForTelegramBot (line 537) | type AccessConfigForTelegramBot struct
type AccessConfigForTodayNIC (line 542) | type AccessConfigForTodayNIC struct
type AccessConfigForTencentCloud (line 547) | type AccessConfigForTencentCloud struct
type AccessConfigForUCloud (line 552) | type AccessConfigForUCloud struct
type AccessConfigForUniCloud (line 558) | type AccessConfigForUniCloud struct
type AccessConfigForUpyun (line 563) | type AccessConfigForUpyun struct
type AccessConfigForVercel (line 568) | type AccessConfigForVercel struct
type AccessConfigForVolcEngine (line 573) | type AccessConfigForVolcEngine struct
type AccessConfigForVultr (line 578) | type AccessConfigForVultr struct
type AccessConfigForWangsu (line 582) | type AccessConfigForWangsu struct
type AccessConfigForWebhook (line 588) | type AccessConfigForWebhook struct
type AccessConfigForWeComBot (line 596) | type AccessConfigForWeComBot struct
type AccessConfigForWestcn (line 601) | type AccessConfigForWestcn struct
type AccessConfigForXinnet (line 606) | type AccessConfigForXinnet struct
type AccessConfigForZeroSSL (line 611) | type AccessConfigForZeroSSL struct
FILE: internal/domain/acme_account.go
constant CollectionNameACMEAccount (line 12) | CollectionNameACMEAccount = "acme_accounts"
type ACMEAccount (line 14) | type ACMEAccount struct
method GetEmail (line 24) | func (a *ACMEAccount) GetEmail() string {
method GetRegistration (line 28) | func (a *ACMEAccount) GetRegistration() *registration.Resource {
method GetPrivateKey (line 39) | func (a *ACMEAccount) GetPrivateKey() crypto.PrivateKey {
FILE: internal/domain/certificate.go
constant CollectionNameCertificate (line 16) | CollectionNameCertificate = "certificate"
type Certificate (line 18) | type Certificate struct
method PopulateFromX509 (line 41) | func (c *Certificate) PopulateFromX509(certX509 *x509.Certificate) *Ce...
method PopulateFromPEM (line 64) | func (c *Certificate) PopulateFromPEM(certPEM, privkeyPEM string) *Cer...
type CertificateSourceType (line 79) | type CertificateSourceType
constant CertificateSourceTypeRequest (line 82) | CertificateSourceTypeRequest = CertificateSourceType("request")
constant CertificateSourceTypeUpload (line 83) | CertificateSourceTypeUpload = CertificateSourceType("upload")
type CertificateKeyAlgorithmType (line 86) | type CertificateKeyAlgorithmType
method KeyType (line 98) | func (t CertificateKeyAlgorithmType) KeyType() (certcrypto.KeyType, er...
constant CertificateKeyAlgorithmTypeRSA2048 (line 89) | CertificateKeyAlgorithmTypeRSA2048 = CertificateKeyAlgorithmType("RSA2048")
constant CertificateKeyAlgorithmTypeRSA3072 (line 90) | CertificateKeyAlgorithmTypeRSA3072 = CertificateKeyAlgorithmType("RSA3072")
constant CertificateKeyAlgorithmTypeRSA4096 (line 91) | CertificateKeyAlgorithmTypeRSA4096 = CertificateKeyAlgorithmType("RSA4096")
constant CertificateKeyAlgorithmTypeRSA8192 (line 92) | CertificateKeyAlgorithmTypeRSA8192 = CertificateKeyAlgorithmType("RSA8192")
constant CertificateKeyAlgorithmTypeEC256 (line 93) | CertificateKeyAlgorithmTypeEC256 = CertificateKeyAlgorithmType("EC256")
constant CertificateKeyAlgorithmTypeEC384 (line 94) | CertificateKeyAlgorithmTypeEC384 = CertificateKeyAlgorithmType("EC384")
constant CertificateKeyAlgorithmTypeEC512 (line 95) | CertificateKeyAlgorithmTypeEC512 = CertificateKeyAlgorithmType("EC512")
type CertificateFormatType (line 115) | type CertificateFormatType
constant CertificateFormatTypePEM (line 118) | CertificateFormatTypePEM CertificateFormatType = "PEM"
constant CertificateFormatTypePFX (line 119) | CertificateFormatTypePFX CertificateFormatType = "PFX"
constant CertificateFormatTypeJKS (line 120) | CertificateFormatTypeJKS CertificateFormatType = "JKS"
FILE: internal/domain/dtos/certificate.go
type CertificateDownloadReq (line 3) | type CertificateDownloadReq struct
type CertificateDownloadResp (line 8) | type CertificateDownloadResp struct
type CertificateRevokeReq (line 13) | type CertificateRevokeReq struct
type CertificateRevokeResp (line 17) | type CertificateRevokeResp struct
FILE: internal/domain/dtos/notify.go
type NotifyTestPushReq (line 3) | type NotifyTestPushReq struct
type NotifyTestPushResp (line 8) | type NotifyTestPushResp struct
FILE: internal/domain/dtos/workflow.go
type WorkflowStartRunReq (line 5) | type WorkflowStartRunReq struct
type WorkflowStartRunResp (line 10) | type WorkflowStartRunResp struct
type WorkflowCancelRunReq (line 14) | type WorkflowCancelRunReq struct
type WorkflowCancelRunResp (line 19) | type WorkflowCancelRunResp struct
type WorkflowStatisticsResp (line 21) | type WorkflowStatisticsResp struct
FILE: internal/domain/error.go
type Error (line 8) | type Error struct
method Error (line 21) | func (e *Error) Error() string {
function NewError (line 13) | func NewError(code int, msg string) *Error {
function IsRecordNotFoundError (line 25) | func IsRecordNotFoundError(err error) bool {
FILE: internal/domain/expr/expr.go
type ExprType (line 10) | type ExprType
type ExprComparisonOperator (line 11) | type ExprComparisonOperator
type ExprLogicalOperator (line 12) | type ExprLogicalOperator
type ExprValueType (line 13) | type ExprValueType
constant GreaterThan (line 17) | GreaterThan ExprComparisonOperator = "gt"
constant GreaterOrEqual (line 18) | GreaterOrEqual ExprComparisonOperator = "gte"
constant LessThan (line 19) | LessThan ExprComparisonOperator = "lt"
constant LessOrEqual (line 20) | LessOrEqual ExprComparisonOperator = "lte"
constant Equal (line 21) | Equal ExprComparisonOperator = "eq"
constant NotEqual (line 22) | NotEqual ExprComparisonOperator = "neq"
constant And (line 24) | And ExprLogicalOperator = "and"
constant Or (line 25) | Or ExprLogicalOperator = "or"
constant Not (line 26) | Not ExprLogicalOperator = "not"
constant Number (line 28) | Number ExprValueType = "number"
constant String (line 29) | String ExprValueType = "string"
constant Boolean (line 30) | Boolean ExprValueType = "boolean"
constant ConstantExprType (line 32) | ConstantExprType ExprType = "const"
constant VariantExprType (line 33) | VariantExprType ExprType = "var"
constant ComparisonExprType (line 34) | ComparisonExprType ExprType = "comparison"
constant LogicalExprType (line 35) | LogicalExprType ExprType = "logical"
constant NotExprType (line 36) | NotExprType ExprType = "not"
type EvalResult (line 39) | type EvalResult struct
method GetFloat64 (line 44) | func (e *EvalResult) GetFloat64() (float64, error) {
method GetBool (line 61) | func (e *EvalResult) GetBool() (bool, error) {
method GreaterThan (line 84) | func (e *EvalResult) GreaterThan(other *EvalResult) (*EvalResult, erro...
method GreaterOrEqual (line 117) | func (e *EvalResult) GreaterOrEqual(other *EvalResult) (*EvalResult, e...
method LessThan (line 150) | func (e *EvalResult) LessThan(other *EvalResult) (*EvalResult, error) {
method LessOrEqual (line 183) | func (e *EvalResult) LessOrEqual(other *EvalResult) (*EvalResult, erro...
method Equal (line 216) | func (e *EvalResult) Equal(other *EvalResult) (*EvalResult, error) {
method NotEqual (line 265) | func (e *EvalResult) NotEqual(other *EvalResult) (*EvalResult, error) {
method And (line 314) | func (e *EvalResult) And(other *EvalResult) (*EvalResult, error) {
method Or (line 341) | func (e *EvalResult) Or(other *EvalResult) (*EvalResult, error) {
method Not (line 367) | func (e *EvalResult) Not() (*EvalResult, error) {
type Expr (line 383) | type Expr interface
type ExprValueSelector (line 388) | type ExprValueSelector struct
type ConstantExpr (line 394) | type ConstantExpr struct
method GetType (line 400) | func (c ConstantExpr) GetType() ExprType { return c.Type }
method Eval (line 402) | func (c ConstantExpr) Eval(variables map[string]map[string]any) (*Eval...
type VariantExpr (line 409) | type VariantExpr struct
method GetType (line 414) | func (v VariantExpr) GetType() ExprType { return v.Type }
method Eval (line 416) | func (v VariantExpr) Eval(variables map[string]map[string]any) (*EvalR...
type ComparisonExpr (line 437) | type ComparisonExpr struct
method GetType (line 444) | func (c ComparisonExpr) GetType() ExprType { return c.Type }
method Eval (line 446) | func (c ComparisonExpr) Eval(variables map[string]map[string]any) (*Ev...
type LogicalExpr (line 474) | type LogicalExpr struct
method GetType (line 481) | func (l LogicalExpr) GetType() ExprType { return l.Type }
method Eval (line 483) | func (l LogicalExpr) Eval(variables map[string]map[string]any) (*EvalR...
type NotExpr (line 503) | type NotExpr struct
method GetType (line 508) | func (n NotExpr) GetType() ExprType { return n.Type }
method Eval (line 510) | func (n NotExpr) Eval(variables map[string]map[string]any) (*EvalResul...
type rawExpr (line 518) | type rawExpr struct
function MarshalExpr (line 522) | func MarshalExpr(e Expr) ([]byte, error) {
function UnmarshalExpr (line 526) | func UnmarshalExpr(data []byte) (Expr, error) {
type ComparisonExprRaw (line 568) | type ComparisonExprRaw struct
method ToComparisonExpr (line 575) | func (r ComparisonExprRaw) ToComparisonExpr() (ComparisonExpr, error) {
type LogicalExprRaw (line 592) | type LogicalExprRaw struct
method ToLogicalExpr (line 599) | func (r LogicalExprRaw) ToLogicalExpr() (LogicalExpr, error) {
type NotExprRaw (line 616) | type NotExprRaw struct
method ToNotExpr (line 621) | func (r NotExprRaw) ToNotExpr() (NotExpr, error) {
FILE: internal/domain/expr/expr_test.go
function TestLogicalEval (line 7) | func TestLogicalEval(t *testing.T) {
function TestUnmarshalExpr (line 53) | func TestUnmarshalExpr(t *testing.T) {
function TestExpr_Eval (line 85) | func TestExpr_Eval(t *testing.T) {
FILE: internal/domain/meta.go
type Meta (line 5) | type Meta struct
FILE: internal/domain/provider.go
type AccessProviderType (line 3) | type AccessProviderType
constant AccessProviderType1Panel (line 12) | AccessProviderType1Panel = AccessProviderType("1panel")
constant AccessProviderType35cn (line 13) | AccessProviderType35cn = AccessProviderType("35cn")
constant AccessProviderType51DNScom (line 14) | AccessProviderType51DNScom = AccessProviderType("51dnscom")
constant AccessProviderTypeACMECA (line 15) | AccessProviderTypeACMECA = AccessProviderType("acmeca")
constant AccessProviderTypeACMEDNS (line 16) | AccessProviderTypeACMEDNS = AccessProviderType("acmedns")
constant AccessProviderTypeACMEHttpReq (line 17) | AccessProviderTypeACMEHttpReq = AccessProviderType("acmehttpreq")
constant AccessProviderTypeActalisSSL (line 18) | AccessProviderTypeActalisSSL = AccessProviderType("actalisssl")
constant AccessProviderTypeAkamai (line 19) | AccessProviderTypeAkamai = AccessProviderType("akamai")
constant AccessProviderTypeAliyun (line 20) | AccessProviderTypeAliyun = AccessProviderType("aliyun")
constant AccessProviderTypeAPISIX (line 21) | AccessProviderTypeAPISIX = AccessProviderType("apisix")
constant AccessProviderTypeArvanCloud (line 22) | AccessProviderTypeArvanCloud = AccessProviderType("arvancloud")
constant AccessProviderTypeAWS (line 23) | AccessProviderTypeAWS = AccessProviderType("aws")
constant AccessProviderTypeAzure (line 24) | AccessProviderTypeAzure = AccessProviderType("azure")
constant AccessProviderTypeBaiduCloud (line 25) | AccessProviderTypeBaiduCloud = AccessProviderType("baiducloud")
constant AccessProviderTypeBaishan (line 26) | AccessProviderTypeBaishan = AccessProviderType("baishan")
constant AccessProviderTypeBaotaPanel (line 27) | AccessProviderTypeBaotaPanel = AccessProviderType("baotapanel")
constant AccessProviderTypeBaotaPanelGo (line 28) | AccessProviderTypeBaotaPanelGo = AccessProviderType("baotapanelgo")
constant AccessProviderTypeBaotaWAF (line 29) | AccessProviderTypeBaotaWAF = AccessProviderType("baotawaf")
constant AccessProviderTypeBookMyName (line 30) | AccessProviderTypeBookMyName = AccessProviderType("bookmyname")
constant AccessProviderTypeBunny (line 31) | AccessProviderTypeBunny = AccessProviderType("bunny")
constant AccessProviderTypeBytePlus (line 32) | AccessProviderTypeBytePlus = AccessProviderType("byteplus")
constant AccessProviderTypeCacheFly (line 33) | AccessProviderTypeCacheFly = AccessProviderType("cachefly")
constant AccessProviderTypeCdnfly (line 34) | AccessProviderTypeCdnfly = AccessProviderType("cdnfly")
constant AccessProviderTypeCloudflare (line 35) | AccessProviderTypeCloudflare = AccessProviderType("cloudflare")
constant AccessProviderTypeClouDNS (line 36) | AccessProviderTypeClouDNS = AccessProviderType("cloudns")
constant AccessProviderTypeCMCCCloud (line 37) | AccessProviderTypeCMCCCloud = AccessProviderType("cmcccloud")
constant AccessProviderTypeConstellix (line 38) | AccessProviderTypeConstellix = AccessProviderType("constellix")
constant AccessProviderTypeCPanel (line 39) | AccessProviderTypeCPanel = AccessProviderType("cpanel")
constant AccessProviderTypeCTCCCloud (line 40) | AccessProviderTypeCTCCCloud = AccessProviderType("ctcccloud")
constant AccessProviderTypeCUCCCloud (line 41) | AccessProviderTypeCUCCCloud = AccessProviderType("cucccloud")
constant AccessProviderTypeDeSEC (line 42) | AccessProviderTypeDeSEC = AccessProviderType("desec")
constant AccessProviderTypeDigiCert (line 43) | AccessProviderTypeDigiCert = AccessProviderType("digicert")
constant AccessProviderTypeDigitalOcean (line 44) | AccessProviderTypeDigitalOcean = AccessProviderType("digitalocean")
constant AccessProviderTypeDingTalkBot (line 45) | AccessProviderTypeDingTalkBot = AccessProviderType("dingtalkbot")
constant AccessProviderTypeDiscordBot (line 46) | AccessProviderTypeDiscordBot = AccessProviderType("discordbot")
constant AccessProviderTypeDNSExit (line 47) | AccessProviderTypeDNSExit = AccessProviderType("dnsexit")
constant AccessProviderTypeDNSLA (line 48) | AccessProviderTypeDNSLA = AccessProviderType("dnsla")
constant AccessProviderTypeDNSMadeEasy (line 49) | AccessProviderTypeDNSMadeEasy = AccessProviderType("dnsmadeeasy")
constant AccessProviderTypeDogeCloud (line 50) | AccessProviderTypeDogeCloud = AccessProviderType("dogecloud")
constant AccessProviderTypeDokploy (line 51) | AccessProviderTypeDokploy = AccessProviderType("dokploy")
constant AccessProviderTypeDuckDNS (line 52) | AccessProviderTypeDuckDNS = AccessProviderType("duckdns")
constant AccessProviderTypeDynu (line 53) | AccessProviderTypeDynu = AccessProviderType("dynu")
constant AccessProviderTypeDynv6 (line 54) | AccessProviderTypeDynv6 = AccessProviderType("dynv6")
constant AccessProviderTypeEmail (line 55) | AccessProviderTypeEmail = AccessProviderType("email")
constant AccessProviderTypeFastly (line 56) | AccessProviderTypeFastly = AccessProviderType("fastly")
constant AccessProviderTypeFlexCDN (line 57) | AccessProviderTypeFlexCDN = AccessProviderType("flexcdn")
constant AccessProviderTypeFlyIO (line 58) | AccessProviderTypeFlyIO = AccessProviderType("flyio")
constant AccessProviderTypeGandinet (line 59) | AccessProviderTypeGandinet = AccessProviderType("gandinet")
constant AccessProviderTypeGcore (line 60) | AccessProviderTypeGcore = AccessProviderType("gcore")
constant AccessProviderTypeGlobalSignAtlas (line 61) | AccessProviderTypeGlobalSignAtlas = AccessProviderType("globalsignat...
constant AccessProviderTypeGname (line 62) | AccessProviderTypeGname = AccessProviderType("gname")
constant AccessProviderTypeGoDaddy (line 63) | AccessProviderTypeGoDaddy = AccessProviderType("godaddy")
constant AccessProviderTypeGoEdge (line 64) | AccessProviderTypeGoEdge = AccessProviderType("goedge")
constant AccessProviderTypeGoogleTrustServices (line 65) | AccessProviderTypeGoogleTrustServices = AccessProviderType("googletrusts...
constant AccessProviderTypeHetzner (line 66) | AccessProviderTypeHetzner = AccessProviderType("hetzner")
constant AccessProviderTypeHostingde (line 67) | AccessProviderTypeHostingde = AccessProviderType("hostingde")
constant AccessProviderTypeHostinger (line 68) | AccessProviderTypeHostinger = AccessProviderType("hostinger")
constant AccessProviderTypeHuaweiCloud (line 69) | AccessProviderTypeHuaweiCloud = AccessProviderType("huaweicloud")
constant AccessProviderTypeInfomaniak (line 70) | AccessProviderTypeInfomaniak = AccessProviderType("infomaniak")
constant AccessProviderTypeIONOS (line 71) | AccessProviderTypeIONOS = AccessProviderType("ionos")
constant AccessProviderTypeJDCloud (line 72) | AccessProviderTypeJDCloud = AccessProviderType("jdcloud")
constant AccessProviderTypeKong (line 73) | AccessProviderTypeKong = AccessProviderType("kong")
constant AccessProviderTypeKsyun (line 74) | AccessProviderTypeKsyun = AccessProviderType("ksyun")
constant AccessProviderTypeKubernetes (line 75) | AccessProviderTypeKubernetes = AccessProviderType("k8s")
constant AccessProviderTypeLarkBot (line 76) | AccessProviderTypeLarkBot = AccessProviderType("larkbot")
constant AccessProviderTypeLeCDN (line 77) | AccessProviderTypeLeCDN = AccessProviderType("lecdn")
constant AccessProviderTypeLetsEncrypt (line 78) | AccessProviderTypeLetsEncrypt = AccessProviderType("letsencrypt")
constant AccessProviderTypeLetsEncryptStaging (line 79) | AccessProviderTypeLetsEncryptStaging = AccessProviderType("letsencrypts...
constant AccessProviderTypeLinode (line 80) | AccessProviderTypeLinode = AccessProviderType("linode")
constant AccessProviderTypeLiteSSL (line 81) | AccessProviderTypeLiteSSL = AccessProviderType("litessl")
constant AccessProviderTypeLocal (line 82) | AccessProviderTypeLocal = AccessProviderType("local")
constant AccessProviderTypeMattermost (line 83) | AccessProviderTypeMattermost = AccessProviderType("mattermost")
constant AccessProviderTypeMohua (line 84) | AccessProviderTypeMohua = AccessProviderType("mohua")
constant AccessProviderTypeNamecheap (line 85) | AccessProviderTypeNamecheap = AccessProviderType("namecheap")
constant AccessProviderTypeNameDotCom (line 86) | AccessProviderTypeNameDotCom = AccessProviderType("namedotcom")
constant AccessProviderTypeNameSilo (line 87) | AccessProviderTypeNameSilo = AccessProviderType("namesilo")
constant AccessProviderTypeNetcup (line 88) | AccessProviderTypeNetcup = AccessProviderType("netcup")
constant AccessProviderTypeNetlify (line 89) | AccessProviderTypeNetlify = AccessProviderType("netlify")
constant AccessProviderTypeNginxProxyManager (line 90) | AccessProviderTypeNginxProxyManager = AccessProviderType("nginxproxyma...
constant AccessProviderTypeNS1 (line 91) | AccessProviderTypeNS1 = AccessProviderType("ns1")
constant AccessProviderTypeOVHcloud (line 92) | AccessProviderTypeOVHcloud = AccessProviderType("ovhcloud")
constant AccessProviderTypePorkbun (line 93) | AccessProviderTypePorkbun = AccessProviderType("porkbun")
constant AccessProviderTypePowerDNS (line 94) | AccessProviderTypePowerDNS = AccessProviderType("powerdns")
constant AccessProviderTypeProxmoxVE (line 95) | AccessProviderTypeProxmoxVE = AccessProviderType("proxmoxve")
constant AccessProviderTypeQiniu (line 96) | AccessProviderTypeQiniu = AccessProviderType("qiniu")
constant AccessProviderTypeQingCloud (line 97) | AccessProviderTypeQingCloud = AccessProviderType("qingcloud")
constant AccessProviderTypeRainYun (line 98) | AccessProviderTypeRainYun = AccessProviderType("rainyun")
constant AccessProviderTypeRatPanel (line 99) | AccessProviderTypeRatPanel = AccessProviderType("ratpanel")
constant AccessProviderTypeRFC2136 (line 100) | AccessProviderTypeRFC2136 = AccessProviderType("rfc2136")
constant AccessProviderTypeS3 (line 101) | AccessProviderTypeS3 = AccessProviderType("s3")
constant AccessProviderTypeSafeLine (line 102) | AccessProviderTypeSafeLine = AccessProviderType("safeline")
constant AccessProviderTypeSectigo (line 103) | AccessProviderTypeSectigo = AccessProviderType("sectigo")
constant AccessProviderTypeSlackBot (line 104) | AccessProviderTypeSlackBot = AccessProviderType("slackbot")
constant AccessProviderTypeSpaceship (line 105) | AccessProviderTypeSpaceship = AccessProviderType("spaceship")
constant AccessProviderTypeSSH (line 106) | AccessProviderTypeSSH = AccessProviderType("ssh")
constant AccessProviderTypeSSLCOM (line 107) | AccessProviderTypeSSLCOM = AccessProviderType("sslcom")
constant AccessProviderTypeSynologyDSM (line 108) | AccessProviderTypeSynologyDSM = AccessProviderType("synologydsm")
constant AccessProviderTypeTechnitiumDNS (line 109) | AccessProviderTypeTechnitiumDNS = AccessProviderType("technitiumdns")
constant AccessProviderTypeTelegramBot (line 110) | AccessProviderTypeTelegramBot = AccessProviderType("telegrambot")
constant AccessProviderTypeTencentCloud (line 111) | AccessProviderTypeTencentCloud = AccessProviderType("tencentcloud")
constant AccessProviderTypeTodayNIC (line 112) | AccessProviderTypeTodayNIC = AccessProviderType("todaynic")
constant AccessProviderTypeUCloud (line 113) | AccessProviderTypeUCloud = AccessProviderType("ucloud")
constant AccessProviderTypeUniCloud (line 114) | AccessProviderTypeUniCloud = AccessProviderType("unicloud")
constant AccessProviderTypeUpyun (line 115) | AccessProviderTypeUpyun = AccessProviderType("upyun")
constant AccessProviderTypeVercel (line 116) | AccessProviderTypeVercel = AccessProviderType("vercel")
constant AccessProviderTypeVolcEngine (line 117) | AccessProviderTypeVolcEngine = AccessProviderType("volcengine")
constant AccessProviderTypeVultr (line 118) | AccessProviderTypeVultr = AccessProviderType("vultr")
constant AccessProviderTypeWangsu (line 119) | AccessProviderTypeWangsu = AccessProviderType("wangsu")
constant AccessProviderTypeWebhook (line 120) | AccessProviderTypeWebhook = AccessProviderType("webhook")
constant AccessProviderTypeWeComBot (line 121) | AccessProviderTypeWeComBot = AccessProviderType("wecombot")
constant AccessProviderTypeWestcn (line 122) | AccessProviderTypeWestcn = AccessProviderType("westcn")
constant AccessProviderTypeXinnet (line 123) | AccessProviderTypeXinnet = AccessProviderType("xinnet")
constant AccessProviderTypeZeroSSL (line 124) | AccessProviderTypeZeroSSL = AccessProviderType("zerossl")
type CAProviderType (line 127) | type CAProviderType
constant CAProviderTypeACMECA (line 137) | CAProviderTypeACMECA = CAProviderType(AccessProviderTypeACM...
constant CAProviderTypeActalisSSL (line 138) | CAProviderTypeActalisSSL = CAProviderType(AccessProviderTypeAct...
constant CAProviderTypeDigiCert (line 139) | CAProviderTypeDigiCert = CAProviderType(AccessProviderTypeDig...
constant CAProviderTypeGlobalSignAtlas (line 140) | CAProviderTypeGlobalSignAtlas = CAProviderType(AccessProviderTypeGlo...
constant CAProviderTypeGoogleTrustServices (line 141) | CAProviderTypeGoogleTrustServices = CAProviderType(AccessProviderTypeGoo...
constant CAProviderTypeLetsEncrypt (line 142) | CAProviderTypeLetsEncrypt = CAProviderType(AccessProviderTypeLet...
constant CAProviderTypeLetsEncryptStaging (line 143) | CAProviderTypeLetsEncryptStaging = CAProviderType(AccessProviderTypeLet...
constant CAProviderTypeLiteSSL (line 144) | CAProviderTypeLiteSSL = CAProviderType(AccessProviderTypeLit...
constant CAProviderTypeSectigo (line 145) | CAProviderTypeSectigo = CAProviderType(AccessProviderTypeSec...
constant CAProviderTypeSSLCom (line 146) | CAProviderTypeSSLCom = CAProviderType(AccessProviderTypeSSL...
constant CAProviderTypeZeroSSL (line 147) | CAProviderTypeZeroSSL = CAProviderType(AccessProviderTypeZer...
type ACMEDns01ProviderType (line 150) | type ACMEDns01ProviderType
constant ACMEDns01ProviderType35cn (line 160) | ACMEDns01ProviderType35cn = ACMEDns01ProviderType(AccessPro...
constant ACMEDns01ProviderType51DNScom (line 161) | ACMEDns01ProviderType51DNScom = ACMEDns01ProviderType(AccessPro...
constant ACMEDns01ProviderTypeACMEDNS (line 162) | ACMEDns01ProviderTypeACMEDNS = ACMEDns01ProviderType(AccessPro...
constant ACMEDns01ProviderTypeACMEHttpReq (line 163) | ACMEDns01ProviderTypeACMEHttpReq = ACMEDns01ProviderType(AccessPro...
constant ACMEDns01ProviderTypeAkamai (line 164) | ACMEDns01ProviderTypeAkamai = ACMEDns01ProviderType(AccessPro...
constant ACMEDns01ProviderTypeAkamaiEdgeDNS (line 165) | ACMEDns01ProviderTypeAkamaiEdgeDNS = ACMEDns01ProviderType(AccessPro...
constant ACMEDns01ProviderTypeAliyun (line 166) | ACMEDns01ProviderTypeAliyun = ACMEDns01ProviderType(AccessPro...
constant ACMEDns01ProviderTypeAliyunDNS (line 167) | ACMEDns01ProviderTypeAliyunDNS = ACMEDns01ProviderType(AccessPro...
constant ACMEDns01ProviderTypeAliyunESA (line 168) | ACMEDns01ProviderTypeAliyunESA = ACMEDns01ProviderType(AccessPro...
constant ACMEDns01ProviderTypeArvanCloud (line 169) | ACMEDns01ProviderTypeArvanCloud = ACMEDns01ProviderType(AccessPro...
constant ACMEDns01ProviderTypeAWS (line 170) | ACMEDns01ProviderTypeAWS = ACMEDns01ProviderType(AccessPro...
constant ACMEDns01ProviderTypeAWSRoute53 (line 171) | ACMEDns01ProviderTypeAWSRoute53 = ACMEDns01ProviderType(AccessPro...
constant ACMEDns01ProviderTypeAzure (line 172) | ACMEDns01ProviderTypeAzure = ACMEDns01ProviderType(AccessPro...
constant ACMEDns01ProviderTypeAzureDNS (line 173) | ACMEDns01ProviderTypeAzureDNS = ACMEDns01ProviderType(AccessPro...
constant ACMEDns01ProviderTypeBaiduCloud (line 174) | ACMEDns01ProviderTypeBaiduCloud = ACMEDns01ProviderType(AccessPro...
constant ACMEDns01ProviderTypeBaiduCloudDNS (line 175) | ACMEDns01ProviderTypeBaiduCloudDNS = ACMEDns01ProviderType(AccessPro...
constant ACMEDns01ProviderTypeBookMyName (line 176) | ACMEDns01ProviderTypeBookMyName = ACMEDns01ProviderType(AccessPro...
constant ACMEDns01ProviderTypeBunny (line 177) | ACMEDns01ProviderTypeBunny = ACMEDns01ProviderType(AccessPro...
constant ACMEDns01ProviderTypeCloudflare (line 178) | ACMEDns01ProviderTypeCloudflare = ACMEDns01ProviderType(AccessPro...
constant ACMEDns01ProviderTypeClouDNS (line 179) | ACMEDns01ProviderTypeClouDNS = ACMEDns01ProviderType(AccessPro...
constant ACMEDns01ProviderTypeCMCCCloud (line 180) | ACMEDns01ProviderTypeCMCCCloud = ACMEDns01ProviderType(AccessPro...
constant ACMEDns01ProviderTypeCMCCCloudDNS (line 181) | ACMEDns01ProviderTypeCMCCCloudDNS = ACMEDns01ProviderType(AccessPro...
constant ACMEDns01ProviderTypeConstellix (line 182) | ACMEDns01ProviderTypeConstellix = ACMEDns01ProviderType(AccessPro...
constant ACMEDns01ProviderTypeCPanel (line 183) | ACMEDns01ProviderTypeCPanel = ACMEDns01ProviderType(AccessPro...
constant ACMEDns01ProviderTypeCTCCCloud (line 184) | ACMEDns01ProviderTypeCTCCCloud = ACMEDns01ProviderType(AccessPro...
constant ACMEDns01ProviderTypeCTCCCloudSmartDNS (line 185) | ACMEDns01ProviderTypeCTCCCloudSmartDNS = ACMEDns01ProviderType(AccessPro...
constant ACMEDns01ProviderTypeDeSEC (line 186) | ACMEDns01ProviderTypeDeSEC = ACMEDns01ProviderType(AccessPro...
constant ACMEDns01ProviderTypeDigitalOcean (line 187) | ACMEDns01ProviderTypeDigitalOcean = ACMEDns01ProviderType(AccessPro...
constant ACMEDns01ProviderTypeDNSExit (line 188) | ACMEDns01ProviderTypeDNSExit = ACMEDns01ProviderType(AccessPro...
constant ACMEDns01ProviderTypeDNSLA (line 189) | ACMEDns01ProviderTypeDNSLA = ACMEDns01ProviderType(AccessPro...
constant ACMEDns01ProviderTypeDNSMadeEasy (line 190) | ACMEDns01ProviderTypeDNSMadeEasy = ACMEDns01ProviderType(AccessPro...
constant ACMEDns01ProviderTypeDuckDNS (line 191) | ACMEDns01ProviderTypeDuckDNS = ACMEDns01ProviderType(AccessPro...
constant ACMEDns01ProviderTypeDynu (line 192) | ACMEDns01ProviderTypeDynu = ACMEDns01ProviderType(AccessPro...
constant ACMEDns01ProviderTypeDynv6 (line 193) | ACMEDns01ProviderTypeDynv6 = ACMEDns01ProviderType(AccessPro...
constant ACMEDns01ProviderTypeGandinet (line 194) | ACMEDns01ProviderTypeGandinet = ACMEDns01ProviderType(AccessPro...
constant ACMEDns01ProviderTypeGcore (line 195) | ACMEDns01ProviderTypeGcore = ACMEDns01ProviderType(AccessPro...
constant ACMEDns01ProviderTypeGname (line 196) | ACMEDns01ProviderTypeGname = ACMEDns01ProviderType(AccessPro...
constant ACMEDns01ProviderTypeGoDaddy (line 197) | ACMEDns01ProviderTypeGoDaddy = ACMEDns01ProviderType(AccessPro...
constant ACMEDns01ProviderTypeHetzner (line 198) | ACMEDns01ProviderTypeHetzner = ACMEDns01ProviderType(AccessPro...
constant ACMEDns01ProviderTypeHostingde (line 199) | ACMEDns01ProviderTypeHostingde = ACMEDns01ProviderType(AccessPro...
constant ACMEDns01ProviderTypeHostinger (line 200) | ACMEDns01ProviderTypeHostinger = ACMEDns01ProviderType(AccessPro...
constant ACMEDns01ProviderTypeHuaweiCloud (line 201) | ACMEDns01ProviderTypeHuaweiCloud = ACMEDns01ProviderType(AccessPro...
constant ACMEDns01ProviderTypeHuaweiCloudDNS (line 202) | ACMEDns01ProviderTypeHuaweiCloudDNS = ACMEDns01ProviderType(AccessPro...
constant ACMEDns01ProviderTypeInfomaniak (line 203) | ACMEDns01ProviderTypeInfomaniak = ACMEDns01ProviderType(AccessPro...
constant ACMEDns01ProviderTypeIONOS (line 204) | ACMEDns01ProviderTypeIONOS = ACMEDns01ProviderType(AccessPro...
constant ACMEDns01ProviderTypeJDCloud (line 205) | ACMEDns01ProviderTypeJDCloud = ACMEDns01ProviderType(AccessPro...
constant ACMEDns01ProviderTypeJDCloudDNS (line 206) | ACMEDns01ProviderTypeJDCloudDNS = ACMEDns01ProviderType(AccessPro...
constant ACMEDns01ProviderTypeLinode (line 207) | ACMEDns01ProviderTypeLinode = ACMEDns01ProviderType(AccessPro...
constant ACMEDns01ProviderTypeNamecheap (line 208) | ACMEDns01ProviderTypeNamecheap = ACMEDns01ProviderType(AccessPro...
constant ACMEDns01ProviderTypeNameDotCom (line 209) | ACMEDns01ProviderTypeNameDotCom = ACMEDns01ProviderType(AccessPro...
constant ACMEDns01ProviderTypeNameSilo (line 210) | ACMEDns01ProviderTypeNameSilo = ACMEDns01ProviderType(AccessPro...
constant ACMEDns01ProviderTypeNetcup (line 211) | ACMEDns01ProviderTypeNetcup = ACMEDns01ProviderType(AccessPro...
constant ACMEDns01ProviderTypeNetlify (line 212) | ACMEDns01ProviderTypeNetlify = ACMEDns01ProviderType(AccessPro...
constant ACMEDns01ProviderTypeNS1 (line 213) | ACMEDns01ProviderTypeNS1 = ACMEDns01ProviderType(AccessPro...
constant ACMEDns01ProviderTypeOVHcloud (line 214) | ACMEDns01ProviderTypeOVHcloud = ACMEDns01ProviderType(AccessPro...
constant ACMEDns01ProviderTypePorkbun (line 215) | ACMEDns01ProviderTypePorkbun = ACMEDns01ProviderType(AccessPro...
constant ACMEDns01ProviderTypePowerDNS (line 216) | ACMEDns01ProviderTypePowerDNS = ACMEDns01ProviderType(AccessPro...
constant ACMEDns01ProviderTypeQingCloud (line 217) | ACMEDns01ProviderTypeQingCloud = ACMEDns01ProviderType(AccessPro...
constant ACMEDns01ProviderTypeQingCloudDNS (line 218) | ACMEDns01ProviderTypeQingCloudDNS = ACMEDns01ProviderType(AccessPro...
constant ACMEDns01ProviderTypeRainYun (line 219) | ACMEDns01ProviderTypeRainYun = ACMEDns01ProviderType(AccessPro...
constant ACMEDns01ProviderTypeRFC2136 (line 220) | ACMEDns01ProviderTypeRFC2136 = ACMEDns01ProviderType(AccessPro...
constant ACMEDns01ProviderTypeSpaceship (line 221) | ACMEDns01ProviderTypeSpaceship = ACMEDns01ProviderType(AccessPro...
constant ACMEDns01ProviderTypeTechnitiumDNS (line 222) | ACMEDns01ProviderTypeTechnitiumDNS = ACMEDns01ProviderType(AccessPro...
constant ACMEDns01ProviderTypeTencentCloud (line 223) | ACMEDns01ProviderTypeTencentCloud = ACMEDns01ProviderType(AccessPro...
constant ACMEDns01ProviderTypeTencentCloudDNS (line 224) | ACMEDns01ProviderTypeTencentCloudDNS = ACMEDns01ProviderType(AccessPro...
constant ACMEDns01ProviderTypeTencentCloudEO (line 225) | ACMEDns01ProviderTypeTencentCloudEO = ACMEDns01ProviderType(AccessPro...
constant ACMEDns01ProviderTypeTodayNIC (line 226) | ACMEDns01ProviderTypeTodayNIC = ACMEDns01ProviderType(AccessPro...
constant ACMEDns01ProviderTypeUCloud (line 227) | ACMEDns01ProviderTypeUCloud = ACMEDns01ProviderType(AccessPro...
constant ACMEDns01ProviderTypeUCloudUDNR (line 228) | ACMEDns01ProviderTypeUCloudUDNR = ACMEDns01ProviderType(AccessPro...
constant ACMEDns01ProviderTypeVercel (line 229) | ACMEDns01ProviderTypeVercel = ACMEDns01ProviderType(AccessPro...
constant ACMEDns01ProviderTypeVolcEngine (line 230) | ACMEDns01ProviderTypeVolcEngine = ACMEDns01ProviderType(AccessPro...
constant ACMEDns01ProviderTypeVolcEngineDNS (line 231) | ACMEDns01ProviderTypeVolcEngineDNS = ACMEDns01ProviderType(AccessPro...
constant ACMEDns01ProviderTypeVultr (line 232) | ACMEDns01ProviderTypeVultr = ACMEDns01ProviderType(AccessPro...
constant ACMEDns01ProviderTypeWestcn (line 233) | ACMEDns01ProviderTypeWestcn = ACMEDns01ProviderType(AccessPro...
constant ACMEDns01ProviderTypeXinnet (line 234) | ACMEDns01ProviderTypeXinnet = ACMEDns01ProviderType(AccessPro...
type ACMEHttp01ProviderType (line 237) | type ACMEHttp01ProviderType
constant ACMEHttp01ProviderTypeLocal (line 247) | ACMEHttp01ProviderTypeLocal = ACMEHttp01ProviderType(AccessProviderTypeL...
constant ACMEHttp01ProviderTypeS3 (line 248) | ACMEHttp01ProviderTypeS3 = ACMEHttp01ProviderType(AccessProviderTypeS3)
constant ACMEHttp01ProviderTypeSSH (line 249) | ACMEHttp01ProviderTypeSSH = ACMEHttp01ProviderType(AccessProviderTypeSSH)
type DeploymentProviderType (line 252) | type DeploymentProviderType
constant DeploymentProviderType1Panel (line 262) | DeploymentProviderType1Panel = DeploymentProviderType(Acc...
constant DeploymentProviderType1PanelConsole (line 263) | DeploymentProviderType1PanelConsole = DeploymentProviderType(Acc...
constant DeploymentProviderTypeAliyunALB (line 264) | DeploymentProviderTypeAliyunALB = DeploymentProviderType(Acc...
constant DeploymentProviderTypeAliyunAPIGW (line 265) | DeploymentProviderTypeAliyunAPIGW = DeploymentProviderType(Acc...
constant DeploymentProviderTypeAliyunCAS (line 266) | DeploymentProviderTypeAliyunCAS = DeploymentProviderType(Acc...
constant DeploymentProviderTypeAliyunCASDeploy (line 267) | DeploymentProviderTypeAliyunCASDeploy = DeploymentProviderType(Acc...
constant DeploymentProviderTypeAliyunCDN (line 268) | DeploymentProviderTypeAliyunCDN = DeploymentProviderType(Acc...
constant DeploymentProviderTypeAliyunCLB (line 269) | DeploymentProviderTypeAliyunCLB = DeploymentProviderType(Acc...
constant DeploymentProviderTypeAliyunDCDN (line 270) | DeploymentProviderTypeAliyunDCDN = DeploymentProviderType(Acc...
constant DeploymentProviderTypeAliyunDDoSPro (line 271) | DeploymentProviderTypeAliyunDDoSPro = DeploymentProviderType(Acc...
constant DeploymentProviderTypeAliyunESA (line 272) | DeploymentProviderTypeAliyunESA = DeploymentProviderType(Acc...
constant DeploymentProviderTypeAliyunESASaaS (line 273) | DeploymentProviderTypeAliyunESASaaS = DeploymentProviderType(Acc...
constant DeploymentProviderTypeAliyunFC (line 274) | DeploymentProviderTypeAliyunFC = DeploymentProviderType(Acc...
constant DeploymentProviderTypeAliyunGA (line 275) | DeploymentProviderTypeAliyunGA = DeploymentProviderType(Acc...
constant DeploymentProviderTypeAliyunLive (line 276) | DeploymentProviderTypeAliyunLive = DeploymentProviderType(Acc...
constant DeploymentProviderTypeAliyunNLB (line 277) | DeploymentProviderTypeAliyunNLB = DeploymentProviderType(Acc...
constant DeploymentProviderTypeAliyunOSS (line 278) | DeploymentProviderTypeAliyunOSS = DeploymentProviderType(Acc...
constant DeploymentProviderTypeAliyunVOD (line 279) | DeploymentProviderTypeAliyunVOD = DeploymentProviderType(Acc...
constant DeploymentProviderTypeAliyunWAF (line 280) | DeploymentProviderTypeAliyunWAF = DeploymentProviderType(Acc...
constant DeploymentProviderTypeAPISIX (line 281) | DeploymentProviderTypeAPISIX = DeploymentProviderType(Acc...
constant DeploymentProviderTypeAWSACM (line 282) | DeploymentProviderTypeAWSACM = DeploymentProviderType(Acc...
constant DeploymentProviderTypeAWSCloudFront (line 283) | DeploymentProviderTypeAWSCloudFront = DeploymentProviderType(Acc...
constant DeploymentProviderTypeAWSIAM (line 284) | DeploymentProviderTypeAWSIAM = DeploymentProviderType(Acc...
constant DeploymentProviderTypeAzureKeyVault (line 285) | DeploymentProviderTypeAzureKeyVault = DeploymentProviderType(Acc...
constant DeploymentProviderTypeBaiduCloudAppBLB (line 286) | DeploymentProviderTypeBaiduCloudAppBLB = DeploymentProviderType(Acc...
constant DeploymentProviderTypeBaiduCloudBLB (line 287) | DeploymentProviderTypeBaiduCloudBLB = DeploymentProviderType(Acc...
constant DeploymentProviderTypeBaiduCloudCDN (line 288) | DeploymentProviderTypeBaiduCloudCDN = DeploymentProviderType(Acc...
constant DeploymentProviderTypeBaiduCloudCert (line 289) | DeploymentProviderTypeBaiduCloudCert = DeploymentProviderType(Acc...
constant DeploymentProviderTypeBaishanCDN (line 290) | DeploymentProviderTypeBaishanCDN = DeploymentProviderType(Acc...
constant DeploymentProviderTypeBaotaPanel (line 291) | DeploymentProviderTypeBaotaPanel = DeploymentProviderType(Acc...
constant DeploymentProviderTypeBaotaPanelConsole (line 292) | DeploymentProviderTypeBaotaPanelConsole = DeploymentProviderType(Acc...
constant DeploymentProviderTypeBaotaPanelGo (line 293) | DeploymentProviderTypeBaotaPanelGo = DeploymentProviderType(Acc...
constant DeploymentProviderTypeBaotaPanelGoConsole (line 294) | DeploymentProviderTypeBaotaPanelGoConsole = DeploymentProviderType(Acc...
constant DeploymentProviderTypeBaotaWAF (line 295) | DeploymentProviderTypeBaotaWAF = DeploymentProviderType(Acc...
constant DeploymentProviderTypeBaotaWAFConsole (line 296) | DeploymentProviderTypeBaotaWAFConsole = DeploymentProviderType(Acc...
constant DeploymentProviderTypeBunnyCDN (line 297) | DeploymentProviderTypeBunnyCDN = DeploymentProviderType(Acc...
constant DeploymentProviderTypeBytePlusCDN (line 298) | DeploymentProviderTypeBytePlusCDN = DeploymentProviderType(Acc...
constant DeploymentProviderTypeCacheFly (line 299) | DeploymentProviderTypeCacheFly = DeploymentProviderType(Acc...
constant DeploymentProviderTypeCdnfly (line 300) | DeploymentProviderTypeCdnfly = DeploymentProviderType(Acc...
constant DeploymentProviderTypeCPanel (line 301) | DeploymentProviderTypeCPanel = DeploymentProviderType(Acc...
constant DeploymentProviderTypeCTCCCloudAO (line 302) | DeploymentProviderTypeCTCCCloudAO = DeploymentProviderType(Acc...
constant DeploymentProviderTypeCTCCCloudCDN (line 303) | DeploymentProviderTypeCTCCCloudCDN = DeploymentProviderType(Acc...
constant DeploymentProviderTypeCTCCCloudCMS (line 304) | DeploymentProviderTypeCTCCCloudCMS = DeploymentProviderType(Acc...
constant DeploymentProviderTypeCTCCCloudELB (line 305) | DeploymentProviderTypeCTCCCloudELB = DeploymentProviderType(Acc...
constant DeploymentProviderTypeCTCCCloudFaaS (line 306) | DeploymentProviderTypeCTCCCloudFaaS = DeploymentProviderType(Acc...
constant DeploymentProviderTypeCTCCCloudICDN (line 307) | DeploymentProviderTypeCTCCCloudICDN = DeploymentProviderType(Acc...
constant DeploymentProviderTypeCTCCCloudLVDN (line 308) | DeploymentProviderTypeCTCCCloudLVDN = DeploymentProviderType(Acc...
constant DeploymentProviderTypeDogeCloudCDN (line 309) | DeploymentProviderTypeDogeCloudCDN = DeploymentProviderType(Acc...
constant DeploymentProviderTypeDokploy (line 310) | DeploymentProviderTypeDokploy = DeploymentProviderType(Acc...
constant DeploymentProviderTypeFlexCDN (line 311) | DeploymentProviderTypeFlexCDN = DeploymentProviderType(Acc...
constant DeploymentProviderTypeFlyIO (line 312) | DeploymentProviderTypeFlyIO = DeploymentProviderType(Acc...
constant DeploymentProviderTypeGcoreCDN (line 313) | DeploymentProviderTypeGcoreCDN = DeploymentProviderType(Acc...
constant DeploymentProviderTypeGoEdge (line 314) | DeploymentProviderTypeGoEdge = DeploymentProviderType(Acc...
constant DeploymentProviderTypeHuaweiCloudCDN (line 315) | DeploymentProviderTypeHuaweiCloudCDN = DeploymentProviderType(Acc...
constant DeploymentProviderTypeHuaweiCloudELB (line 316) | DeploymentProviderTypeHuaweiCloudELB = DeploymentProviderType(Acc...
constant DeploymentProviderTypeHuaweiCloudSCM (line 317) | DeploymentProviderTypeHuaweiCloudSCM = DeploymentProviderType(Acc...
constant DeploymentProviderTypeHuaweiCloudOBS (line 318) | DeploymentProviderTypeHuaweiCloudOBS = DeploymentProviderType(Acc...
constant DeploymentProviderTypeHuaweiCloudWAF (line 319) | DeploymentProviderTypeHuaweiCloudWAF = DeploymentProviderType(Acc...
constant DeploymentProviderTypeJDCloudALB (line 320) | DeploymentProviderTypeJDCloudALB = DeploymentProviderType(Acc...
constant DeploymentProviderTypeJDCloudCDN (line 321) | DeploymentProviderTypeJDCloudCDN = DeploymentProviderType(Acc...
constant DeploymentProviderTypeJDCloudLive (line 322) | DeploymentProviderTypeJDCloudLive = DeploymentProviderType(Acc...
constant DeploymentProviderTypeJDCloudVOD (line 323) | DeploymentProviderTypeJDCloudVOD = DeploymentProviderType(Acc...
constant DeploymentProviderTypeKong (line 324) | DeploymentProviderTypeKong = DeploymentProviderType(Acc...
constant DeploymentProviderTypeKubernetesSecret (line 325) | DeploymentProviderTypeKubernetesSecret = DeploymentProviderType(Acc...
constant DeploymentProviderTypeKsyunCDN (line 326) | DeploymentProviderTypeKsyunCDN = DeploymentProviderType(Acc...
constant DeploymentProviderTypeLeCDN (line 327) | DeploymentProviderTypeLeCDN = DeploymentProviderType(Acc...
constant DeploymentProviderTypeLocal (line 328) | DeploymentProviderTypeLocal = DeploymentProviderType(Acc...
constant DeploymentProviderTypeMohuaMVH (line 329) | DeploymentProviderTypeMohuaMVH = DeploymentProviderType(Acc...
constant DeploymentProviderTypeNetlify (line 330) | DeploymentProviderTypeNetlify = DeploymentProviderType(Acc...
constant DeploymentProviderTypeNginxProxyManager (line 331) | DeploymentProviderTypeNginxProxyManager = DeploymentProviderType(Acc...
constant DeploymentProviderTypeProxmoxVE (line 332) | DeploymentProviderTypeProxmoxVE = DeploymentProviderType(Acc...
constant DeploymentProviderTypeQiniuCDN (line 333) | DeploymentProviderTypeQiniuCDN = DeploymentProviderType(Acc...
constant DeploymentProviderTypeQiniuKodo (line 334) | DeploymentProviderTypeQiniuKodo = DeploymentProviderType(Acc...
constant DeploymentProviderTypeQiniuPili (line 335) | DeploymentProviderTypeQiniuPili = DeploymentProviderType(Acc...
constant DeploymentProviderTypeRainYunRCDN (line 336) | DeploymentProviderTypeRainYunRCDN = DeploymentProviderType(Acc...
constant DeploymentProviderTypeRainYunSSLCenter (line 337) | DeploymentProviderTypeRainYunSSLCenter = DeploymentProviderType(Acc...
constant DeploymentProviderTypeRatPanel (line 338) | DeploymentProviderTypeRatPanel = DeploymentProviderType(Acc...
constant DeploymentProviderTypeRatPanelConsole (line 339) | DeploymentProviderTypeRatPanelConsole = DeploymentProviderType(Acc...
constant DeploymentProviderTypeS3 (line 340) | DeploymentProviderTypeS3 = DeploymentProviderType(Acc...
constant DeploymentProviderTypeSafeLine (line 341) | DeploymentProviderTypeSafeLine = DeploymentProviderType(Acc...
constant DeploymentProviderTypeSSH (line 342) | DeploymentProviderTypeSSH = DeploymentProviderType(Acc...
constant DeploymentProviderTypeSynologyDSM (line 343) | DeploymentProviderTypeSynologyDSM = DeploymentProviderType(Acc...
constant DeploymentProviderTypeTencentCloudCDN (line 344) | DeploymentProviderTypeTencentCloudCDN = DeploymentProviderType(Acc...
constant DeploymentProviderTypeTencentCloudCLB (line 345) | DeploymentProviderTypeTencentCloudCLB = DeploymentProviderType(Acc...
constant DeploymentProviderTypeTencentCloudCOS (line 346) | DeploymentProviderTypeTencentCloudCOS = DeploymentProviderType(Acc...
constant DeploymentProviderTypeTencentCloudCSS (line 347) | DeploymentProviderTypeTencentCloudCSS = DeploymentProviderType(Acc...
constant DeploymentProviderTypeTencentCloudECDN (line 348) | DeploymentProviderTypeTencentCloudECDN = DeploymentProviderType(Acc...
constant DeploymentProviderTypeTencentCloudEO (line 349) | DeploymentProviderTypeTencentCloudEO = DeploymentProviderType(Acc...
constant DeploymentProviderTypeTencentCloudGAAP (line 350) | DeploymentProviderTypeTencentCloudGAAP = DeploymentProviderType(Acc...
constant DeploymentProviderTypeTencentCloudSCF (line 351) | DeploymentProviderTypeTencentCloudSCF = DeploymentProviderType(Acc...
constant DeploymentProviderTypeTencentCloudSSL (line 352) | DeploymentProviderTypeTencentCloudSSL = DeploymentProviderType(Acc...
constant DeploymentProviderTypeTencentCloudSSLDeploy (line 353) | DeploymentProviderTypeTencentCloudSSLDeploy = DeploymentProviderType(Acc...
constant DeploymentProviderTypeTencentCloudSSLUpdate (line 354) | DeploymentProviderTypeTencentCloudSSLUpdate = DeploymentProviderType(Acc...
constant DeploymentProviderTypeTencentCloudVOD (line 355) | DeploymentProviderTypeTencentCloudVOD = DeploymentProviderType(Acc...
constant DeploymentProviderTypeTencentCloudWAF (line 356) | DeploymentProviderTypeTencentCloudWAF = DeploymentProviderType(Acc...
constant DeploymentProviderTypeUCloudUALB (line 357) | DeploymentProviderTypeUCloudUALB = DeploymentProviderType(Acc...
constant DeploymentProviderTypeUCloudUCDN (line 358) | DeploymentProviderTypeUCloudUCDN = DeploymentProviderType(Acc...
constant DeploymentProviderTypeUCloudUCLB (line 359) | DeploymentProviderTypeUCloudUCLB = DeploymentProviderType(Acc...
constant DeploymentProviderTypeUCloudUEWAF (line 360) | DeploymentProviderTypeUCloudUEWAF = DeploymentProviderType(Acc...
constant DeploymentProviderTypeUCloudUPathX (line 361) | DeploymentProviderTypeUCloudUPathX = DeploymentProviderType(Acc...
constant DeploymentProviderTypeUCloudUS3 (line 362) | DeploymentProviderTypeUCloudUS3 = DeploymentProviderType(Acc...
constant DeploymentProviderTypeUniCloudWebHost (line 363) | DeploymentProviderTypeUniCloudWebHost = DeploymentProviderType(Acc...
constant DeploymentProviderTypeUpyunCDN (line 364) | DeploymentProviderTypeUpyunCDN = DeploymentProviderType(Acc...
constant DeploymentProviderTypeUpyunFile (line 365) | DeploymentProviderTypeUpyunFile = DeploymentProviderType(Acc...
constant DeploymentProviderTypeVolcEngineALB (line 366) | DeploymentProviderTypeVolcEngineALB = DeploymentProviderType(Acc...
constant DeploymentProviderTypeVolcEngineCDN (line 367) | DeploymentProviderTypeVolcEngineCDN = DeploymentProviderType(Acc...
constant DeploymentProviderTypeVolcEngineCertCenter (line 368) | DeploymentProviderTypeVolcEngineCertCenter = DeploymentProviderType(Acc...
constant DeploymentProviderTypeVolcEngineCLB (line 369) | DeploymentProviderTypeVolcEngineCLB = DeploymentProviderType(Acc...
constant DeploymentProviderTypeVolcEngineDCDN (line 370) | DeploymentProviderTypeVolcEngineDCDN = DeploymentProviderType(Acc...
constant DeploymentProviderTypeVolcEngineImageX (line 371) | DeploymentProviderTypeVolcEngineImageX = DeploymentProviderType(Acc...
constant DeploymentProviderTypeVolcEngineLive (line 372) | DeploymentProviderTypeVolcEngineLive = DeploymentProviderType(Acc...
constant DeploymentProviderTypeVolcEngineTOS (line 373) | DeploymentProviderTypeVolcEngineTOS = DeploymentProviderType(Acc...
constant DeploymentProviderTypeVolcEngineVOD (line 374) | DeploymentProviderTypeVolcEngineVOD = DeploymentProviderType(Acc...
constant DeploymentProviderTypeVolcEngineWAF (line 375) | DeploymentProviderTypeVolcEngineWAF = DeploymentProviderType(Acc...
constant DeploymentProviderTypeWangsuCDN (line 376) | DeploymentProviderTypeWangsuCDN = DeploymentProviderType(Acc...
constant DeploymentProviderTypeWangsuCDNPro (line 377) | DeploymentProviderTypeWangsuCDNPro = DeploymentProviderType(Acc...
constant DeploymentProviderTypeWangsuCertificate (line 378) | DeploymentProviderTypeWangsuCertificate = DeploymentProviderType(Acc...
constant DeploymentProviderTypeWebhook (line 379) | DeploymentProviderTypeWebhook = DeploymentProviderType(Acc...
type NotificationProviderType (line 382) | type NotificationProviderType
constant NotificationProviderTypeDingTalkBot (line 392) | NotificationProviderTypeDingTalkBot = NotificationProviderType(AccessPro...
constant NotificationProviderTypeDiscordBot (line 393) | NotificationProviderTypeDiscordBot = NotificationProviderType(AccessPro...
constant NotificationProviderTypeEmail (line 394) | NotificationProviderTypeEmail = NotificationProviderType(AccessPro...
constant NotificationProviderTypeLarkBot (line 395) | NotificationProviderTypeLarkBot = NotificationProviderType(AccessPro...
constant NotificationProviderTypeMattermost (line 396) | NotificationProviderTypeMattermost = NotificationProviderType(AccessPro...
constant NotificationProviderTypeSlackBot (line 397) | NotificationProviderTypeSlackBot = NotificationProviderType(AccessPro...
constant NotificationProviderTypeTelegramBot (line 398) | NotificationProviderTypeTelegramBot = NotificationProviderType(AccessPro...
constant NotificationProviderTypeWebhook (line 399) | NotificationProviderTypeWebhook = NotificationProviderType(AccessPro...
constant NotificationProviderTypeWeComBot (line 400) | NotificationProviderTypeWeComBot = NotificationProviderType(AccessPro...
FILE: internal/domain/settings.go
constant CollectionNameSettings (line 7) | CollectionNameSettings = "settings"
type Settings (line 9) | type Settings struct
constant SettingsNameEmails (line 16) | SettingsNameEmails = "emails"
constant SettingsNameNotificationTemplate (line 17) | SettingsNameNotificationTemplate = "notifyTemplate"
constant SettingsNameScriptTemplate (line 18) | SettingsNameScriptTemplate = "scriptTemplate"
constant SettingsNameSSLProvider (line 19) | SettingsNameSSLProvider = "sslProvider"
constant SettingsNamePersistence (line 20) | SettingsNamePersistence = "persistence"
type SettingsContent (line 23) | type SettingsContent
method AsSSLProvider (line 37) | func (c SettingsContent) AsSSLProvider() *SettingsContentForSSLProvider {
method AsPersistence (line 52) | func (c SettingsContent) AsPersistence() *SettingsContentForPersistence {
type SettingsContentForSSLProvider (line 25) | type SettingsContentForSSLProvider struct
type SettingsContentForPersistence (line 31) | type SettingsContentForPersistence struct
FILE: internal/domain/statistics.go
type Statistics (line 3) | type Statistics struct
FILE: internal/domain/workflow.go
constant CollectionNameWorkflow (line 15) | CollectionNameWorkflow = "workflow"
type Workflow (line 17) | type Workflow struct
type WorkflowGraph (line 33) | type WorkflowGraph struct
method GetNodeById (line 37) | func (g *WorkflowGraph) GetNodeById(nodeId string) (*WorkflowNode, boo...
method getNodeInBlocksById (line 41) | func (g *WorkflowGraph) getNodeInBlocksById(blocks []*WorkflowNode, no...
method Verify (line 57) | func (g *WorkflowGraph) Verify() error {
method Clone (line 69) | func (g *WorkflowGraph) Clone() *WorkflowGraph {
type WorkflowTriggerType (line 75) | type WorkflowTriggerType
constant WorkflowTriggerTypeScheduled (line 78) | WorkflowTriggerTypeScheduled = WorkflowTriggerType("scheduled")
constant WorkflowTriggerTypeManual (line 79) | WorkflowTriggerTypeManual = WorkflowTriggerType("manual")
type WorkflowNode (line 82) | type WorkflowNode struct
type WorkflowNodeType (line 89) | type WorkflowNodeType
constant WorkflowNodeTypeStart (line 92) | WorkflowNodeTypeStart = WorkflowNodeType("start")
constant WorkflowNodeTypeEnd (line 93) | WorkflowNodeTypeEnd = WorkflowNodeType("end")
constant WorkflowNodeTypeCondition (line 94) | WorkflowNodeTypeCondition = WorkflowNodeType("condition")
constant WorkflowNodeTypeBranchBlock (line 95) | WorkflowNodeTypeBranchBlock = WorkflowNodeType("branchBlock")
constant WorkflowNodeTypeTryCatch (line 96) | WorkflowNodeTypeTryCatch = WorkflowNodeType("tryCatch")
constant WorkflowNodeTypeTryBlock (line 97) | WorkflowNodeTypeTryBlock = WorkflowNodeType("tryBlock")
constant WorkflowNodeTypeCatchBlock (line 98) | WorkflowNodeTypeCatchBlock = WorkflowNodeType("catchBlock")
constant WorkflowNodeTypeDelay (line 99) | WorkflowNodeTypeDelay = WorkflowNodeType("delay")
constant WorkflowNodeTypeBizApply (line 100) | WorkflowNodeTypeBizApply = WorkflowNodeType("bizApply")
constant WorkflowNodeTypeBizUpload (line 101) | WorkflowNodeTypeBizUpload = WorkflowNodeType("bizUpload")
constant WorkflowNodeTypeBizMonitor (line 102) | WorkflowNodeTypeBizMonitor = WorkflowNodeType("bizMonitor")
constant WorkflowNodeTypeBizDeploy (line 103) | WorkflowNodeTypeBizDeploy = WorkflowNodeType("bizDeploy")
constant WorkflowNodeTypeBizNotify (line 104) | WorkflowNodeTypeBizNotify = WorkflowNodeType("bizNotify")
type WorkflowNodeData (line 107) | type WorkflowNodeData struct
type WorkflowNodeConfig (line 113) | type WorkflowNodeConfig
method AsDelay (line 115) | func (c WorkflowNodeConfig) AsDelay() WorkflowNodeConfigForDelay {
method AsBranchBlock (line 121) | func (c WorkflowNodeConfig) AsBranchBlock() WorkflowNodeConfigForBranc...
method AsBizApply (line 138) | func (c WorkflowNodeConfig) AsBizApply() WorkflowNodeConfigForBizApply {
method AsBizUpload (line 172) | func (c WorkflowNodeConfig) AsBizUpload() WorkflowNodeConfigForBizUplo...
method AsBizMonitor (line 180) | func (c WorkflowNodeConfig) AsBizMonitor() WorkflowNodeConfigForBizMon...
method AsBizDeploy (line 190) | func (c WorkflowNodeConfig) AsBizDeploy() WorkflowNodeConfigForBizDepl...
method AsBizNotify (line 200) | func (c WorkflowNodeConfig) AsBizNotify() WorkflowNodeConfigForBizNoti...
type WorkflowNodeConfigForDelay (line 211) | type WorkflowNodeConfigForDelay struct
type WorkflowNodeConfigForBranchBlock (line 215) | type WorkflowNodeConfigForBranchBlock struct
type WorkflowNodeConfigForBizApply (line 219) | type WorkflowNodeConfigForBizApply struct
type WorkflowNodeConfigForBizUpload (line 247) | type WorkflowNodeConfigForBizUpload struct
type WorkflowNodeConfigForBizMonitor (line 253) | type WorkflowNodeConfigForBizMonitor struct
type WorkflowNodeConfigForBizDeploy (line 260) | type WorkflowNodeConfigForBizDeploy struct
type WorkflowNodeConfigForBizNotify (line 268) | type WorkflowNodeConfigForBizNotify struct
FILE: internal/domain/workflow_log.go
constant CollectionNameWorkflowLog (line 8) | CollectionNameWorkflowLog = "workflow_logs"
type WorkflowLog (line 10) | type WorkflowLog struct
type WorkflowLogs (line 22) | type WorkflowLogs
method ErrorString (line 24) | func (r WorkflowLogs) ErrorString() string {
FILE: internal/domain/workflow_output.go
constant CollectionNameWorkflowOutput (line 3) | CollectionNameWorkflowOutput = "workflow_output"
type WorkflowOutput (line 5) | type WorkflowOutput struct
type WorkflowOutputEntry (line 15) | type WorkflowOutputEntry struct
FILE: internal/domain/workflow_run.go
constant CollectionNameWorkflowRun (line 7) | CollectionNameWorkflowRun = "workflow_run"
type WorkflowRun (line 9) | type WorkflowRun struct
type WorkflowRunStatusType (line 20) | type WorkflowRunStatusType
constant WorkflowRunStatusTypePending (line 23) | WorkflowRunStatusTypePending WorkflowRunStatusType = "pending"
constant WorkflowRunStatusTypeProcessing (line 24) | WorkflowRunStatusTypeProcessing WorkflowRunStatusType = "processing"
constant WorkflowRunStatusTypeSucceeded (line 25) | WorkflowRunStatusTypeSucceeded WorkflowRunStatusType = "succeeded"
constant WorkflowRunStatusTypeFailed (line 26) | WorkflowRunStatusTypeFailed WorkflowRunStatusType = "failed"
constant WorkflowRunStatusTypeCanceled (line 27) | WorkflowRunStatusTypeCanceled WorkflowRunStatusType = "canceled"
FILE: internal/notify/client.go
type Client (line 7) | type Client struct
type ClientConfigure (line 11) | type ClientConfigure
function NewClient (line 13) | func NewClient(configures ...ClientConfigure) *Client {
function WithLogger (line 21) | func WithLogger(logger *slog.Logger) ClientConfigure {
FILE: internal/notify/client_notifier.go
type SendNotificationRequest (line 12) | type SendNotificationRequest struct
type SendNotificationResponse (line 23) | type SendNotificationResponse struct
method SendNotification (line 25) | func (c *Client) SendNotification(ctx context.Context, request *SendNoti...
FILE: internal/notify/notifiers/registry.go
type ProviderFactoryFunc (line 10) | type ProviderFactoryFunc
type ProviderFactoryOptions (line 12) | type ProviderFactoryOptions struct
type Registry (line 17) | type Registry interface
type registry (line 23) | type registry struct
method Register (line 27) | func (r *registry[T]) Register(name T, factory ProviderFactoryFunc) error {
method MustRegister (line 36) | func (r *registry[T]) MustRegister(name T, factory ProviderFactoryFunc) {
method Get (line 42) | func (r *registry[T]) Get(name T) (ProviderFactoryFunc, error) {
function newRegistry (line 50) | func newRegistry[T comparable]() Registry[T] {
FILE: internal/notify/notifiers/sp_dingtalkbot.go
function init (line 12) | func init() {
FILE: internal/notify/notifiers/sp_discordbot.go
function init (line 12) | func init() {
FILE: internal/notify/notifiers/sp_email.go
function init (line 12) | func init() {
FILE: internal/notify/notifiers/sp_larkbot.go
function init (line 12) | func init() {
FILE: internal/notify/notifiers/sp_mattermost.go
function init (line 12) | func init() {
FILE: internal/notify/notifiers/sp_slackbot.go
function init (line 12) | func init() {
FILE: internal/notify/notifiers/sp_telegrambot.go
function init (line 12) | func init() {
FILE: internal/notify/notifiers/sp_webhook.go
function init (line 14) | func init() {
FILE: internal/notify/notifiers/sp_wecombot.go
function init (line 12) | func init() {
FILE: internal/notify/service.go
constant testSubject (line 11) | testSubject = "[Certimate] Notification Testing"
constant testMessage (line 12) | testMessage = "Welcome to use Certimate!"
type NotifyService (line 15) | type NotifyService struct
method TestPush (line 25) | func (n *NotifyService) TestPush(ctx context.Context, req *dtos.Notify...
function NewNotifyService (line 19) | func NewNotifyService(accessRepo accessRepository) *NotifyService {
FILE: internal/notify/service_deps.go
type accessRepository (line 9) | type accessRepository interface
FILE: internal/repository/access.go
type AccessRepository (line 14) | type AccessRepository struct
method GetById (line 20) | func (r *AccessRepository) GetById(ctx context.Context, id string) (*d...
method castRecordToModel (line 36) | func (r *AccessRepository) castRecordToModel(record *core.Record) (*do...
function NewAccessRepository (line 16) | func NewAccessRepository() *AccessRepository {
FILE: internal/repository/acme_account.go
type ACMEAccountRepository (line 16) | type ACMEAccountRepository struct
method GetByCAAndEmail (line 22) | func (r *ACMEAccountRepository) GetByCAAndEmail(ctx context.Context, c...
method GetByAcctUrl (line 38) | func (r *ACMEAccountRepository) GetByAcctUrl(ctx context.Context, acct...
method Save (line 54) | func (r *ACMEAccountRepository) Save(ctx context.Context, acmeAccount ...
method castRecordToModel (line 89) | func (r *ACMEAccountRepository) castRecordToModel(record *core.Record)...
function NewACMEAccountRepository (line 18) | func NewACMEAccountRepository() *ACMEAccountRepository {
FILE: internal/repository/certificate.go
type CertificateRepository (line 14) | type CertificateRepository struct
method ListExpiringSoon (line 20) | func (r *CertificateRepository) ListExpiringSoon(ctx context.Context) ...
method GetById (line 44) | func (r *CertificateRepository) GetById(ctx context.Context, id string...
method GetByWorkflowIdAndNodeId (line 60) | func (r *CertificateRepository) GetByWorkflowIdAndNodeId(ctx context.C...
method GetByWorkflowRunIdAndNodeId (line 80) | func (r *CertificateRepository) GetByWorkflowRunIdAndNodeId(ctx contex...
method Save (line 100) | func (r *CertificateRepository) Save(ctx context.Context, certificate ...
method DeleteWhere (line 147) | func (r *CertificateRepository) DeleteWhere(ctx context.Context, exprs...
method castRecordToModel (line 170) | func (r *CertificateRepository) castRecordToModel(record *core.Record)...
function NewCertificateRepository (line 16) | func NewCertificateRepository() *CertificateRepository {
FILE: internal/repository/settings.go
type SettingsRepository (line 13) | type SettingsRepository struct
method GetByName (line 19) | func (r *SettingsRepository) GetByName(ctx context.Context, name strin...
function NewSettingsRepository (line 15) | func NewSettingsRepository() *SettingsRepository {
FILE: internal/repository/statistics.go
type StatisticsRepository (line 16) | type StatisticsRepository struct
method Get (line 22) | func (r *StatisticsRepository) Get(ctx context.Context) (*domain.Stati...
function NewStatisticsRepository (line 18) | func NewStatisticsRepository() *StatisticsRepository {
FILE: internal/repository/workflow.go
type WorkflowRepository (line 14) | type WorkflowRepository struct
method ListEnabledScheduled (line 20) | func (r *WorkflowRepository) ListEnabledScheduled(ctx context.Context)...
method GetById (line 45) | func (r *WorkflowRepository) GetById(ctx context.Context, id string) (...
method Save (line 57) | func (r *WorkflowRepository) Save(ctx context.Context, workflow *domai...
method castRecordToModel (line 98) | func (r *WorkflowRepository) castRecordToModel(record *core.Record) (*...
function NewWorkflowRepository (line 16) | func NewWorkflowRepository() *WorkflowRepository {
FILE: internal/repository/workflow_log.go
type WorkflowLogRepository (line 14) | type WorkflowLogRepository struct
method ListByWorkflowRunId (line 20) | func (r *WorkflowLogRepository) ListByWorkflowRunId(ctx context.Contex...
method Save (line 45) | func (r *WorkflowLogRepository) Save(ctx context.Context, workflowLog ...
method castRecordToModel (line 85) | func (r *WorkflowLogRepository) castRecordToModel(record *core.Record)...
function NewWorkflowLogRepository (line 16) | func NewWorkflowLogRepository() *WorkflowLogRepository {
FILE: internal/repository/workflow_output.go
type WorkflowOutputRepository (line 14) | type WorkflowOutputRepository struct
method GetByWorkflowIdAndNodeId (line 20) | func (r *WorkflowOutputRepository) GetByWorkflowIdAndNodeId(ctx contex...
method GetByWorkflowRunIdAndNodeId (line 42) | func (r *WorkflowOutputRepository) GetByWorkflowRunIdAndNodeId(ctx con...
method Save (line 64) | func (r *WorkflowOutputRepository) Save(ctx context.Context, workflowO...
method castRecordToModel (line 76) | func (r *WorkflowOutputRepository) castRecordToModel(record *core.Reco...
method saveRecord (line 107) | func (r *WorkflowOutputRepository) saveRecord(workflowOutput *domain.W...
function NewWorkflowOutputRepository (line 16) | func NewWorkflowOutputRepository() *WorkflowOutputRepository {
FILE: internal/repository/workflow_run.go
type WorkflowRunRepository (line 14) | type WorkflowRunRepository struct
method GetById (line 20) | func (r *WorkflowRunRepository) GetById(ctx context.Context, id string...
method Save (line 32) | func (r *WorkflowRunRepository) Save(ctx context.Context, workflowRun ...
method SaveWithCascading (line 69) | func (r *WorkflowRunRepository) SaveWithCascading(ctx context.Context,...
method DeleteWhere (line 136) | func (r *WorkflowRunRepository) DeleteWhere(ctx context.Context, exprs...
method castRecordToModel (line 159) | func (r *WorkflowRunRepository) castRecordToModel(record *core.Record)...
function NewWorkflowRunRepository (line 16) | func NewWorkflowRunRepository() *WorkflowRunRepository {
FILE: internal/rest/handlers/certificates.go
type certificateService (line 13) | type certificateService interface
type CertificatesHandler (line 18) | type CertificatesHandler struct
method downloadCertificate (line 34) | func (handler *CertificatesHandler) downloadCertificate(e *core.Reques...
method revokeCertificate (line 49) | func (handler *CertificatesHandler) revokeCertificate(e *core.RequestE...
function NewCertificatesHandler (line 22) | func NewCertificatesHandler(router *router.RouterGroup[*core.RequestEven...
FILE: internal/rest/handlers/notifications.go
type notifyService (line 13) | type notifyService interface
type NotificationsHandler (line 17) | type NotificationsHandler struct
method test (line 30) | func (handler *NotificationsHandler) test(e *core.RequestEvent) error {
function NewNotificationsHandler (line 21) | func NewNotificationsHandler(router *router.RouterGroup[*core.RequestEve...
FILE: internal/rest/handlers/statistics.go
type statisticsService (line 13) | type statisticsService interface
type StatisticsHandler (line 17) | type StatisticsHandler struct
method get (line 31) | func (handler *StatisticsHandler) get(e *core.RequestEvent) error {
function NewStatisticsHandler (line 21) | func NewStatisticsHandler(router *router.RouterGroup[*core.RequestEvent]...
FILE: internal/rest/handlers/workflows.go
type workflowService (line 15) | type workflowService interface
type WorkflowsHandler (line 22) | type WorkflowsHandler struct
method getStatistics (line 37) | func (handler *WorkflowsHandler) getStatistics(e *core.RequestEvent) e...
method startRun (line 46) | func (handler *WorkflowsHandler) startRun(e *core.RequestEvent) error {
method cancelRun (line 64) | func (handler *WorkflowsHandler) cancelRun(e *core.RequestEvent) error {
function NewWorkflowsHandler (line 26) | func NewWorkflowsHandler(router *router.RouterGroup[*core.RequestEvent],...
FILE: internal/rest/resp/resp.go
type Response (line 11) | type Response struct
function Ok (line 17) | func Ok(e *core.RequestEvent, data interface{}) error {
function Err (line 26) | func Err(e *core.RequestEvent, err error) error {
FILE: internal/rest/routes/routes.go
function BindRouter (line 23) | func BindRouter(router *router.Router[*core.RequestEvent]) {
FILE: internal/scheduler/certificate.go
type certificateService (line 5) | type certificateService interface
function InitCertificateScheduler (line 9) | func InitCertificateScheduler(service certificateService) error {
FILE: internal/scheduler/scheduler.go
function Setup (line 12) | func Setup() {
FILE: internal/scheduler/workflow.go
type workflowService (line 5) | type workflowService interface
function InitWorkflowScheduler (line 9) | func InitWorkflowScheduler(service workflowService) error {
FILE: internal/statistics/service.go
type StatisticsService (line 9) | type StatisticsService struct
method Get (line 19) | func (s *StatisticsService) Get(ctx context.Context) (*domain.Statisti...
function NewStatisticsService (line 13) | func NewStatisticsService(statRepo statisticsRepository) *StatisticsServ...
FILE: internal/statistics/service_deps.go
type statisticsRepository (line 9) | type statisticsRepository interface
FILE: internal/tools/mproc/receiver.go
type Receiver (line 14) | type Receiver interface
type ReceiverHandler (line 19) | type ReceiverHandler
type receiver (line 21) | type receiver struct
method Receive (line 25) | func (r *receiver[TIn, TOut]) Receive(infile, outfile, enckey string) er...
method ReceiveWithContext (line 29) | func (r *receiver[TIn, TOut]) ReceiveWithContext(ctx context.Context, in...
function NewReceiver (line 98) | func NewReceiver[TIn any, TOut any](handler ReceiverHandler[TIn, TOut]) ...
FILE: internal/tools/mproc/sender.go
type Sender (line 19) | type Sender interface
type sender (line 24) | type sender struct
method Send (line 30) | func (s *sender[TIn, TOut]) Send(params *TIn) (*TOut, error) {
method SendWithContext (line 34) | func (s *sender[TIn, TOut]) SendWithContext(ctx context.Context, params ...
method getEntrypoint (line 180) | func (s *sender[TIn, TOut]) getEntrypoint() string {
function NewSender (line 196) | func NewSender[TIn any, TOut any](command string, logger *slog.Logger) S...
FILE: internal/tools/s3/client.go
type Client (line 19) | type Client struct
method PutObject (line 36) | func (c *Client) PutObject(ctx context.Context, bucket, key string, re...
method PutObjectString (line 48) | func (c *Client) PutObjectString(ctx context.Context, bucket, key stri...
method PutObjectBytes (line 53) | func (c *Client) PutObjectBytes(ctx context.Context, bucket, key strin...
method RemoveObject (line 58) | func (c *Client) RemoveObject(ctx context.Context, bucket, key string)...
function NewClient (line 23) | func NewClient(config *Config) (*Client, error) {
function createS3Client (line 68) | func createS3Client(config *Config) (*minio.Client, error) {
function resolveEndpoint (line 101) | func resolveEndpoint(endpoint string) (string, bool) {
FILE: internal/tools/s3/config.go
constant SignatureV2 (line 4) | SignatureV2 = "v2"
constant SignatureV4 (line 5) | SignatureV4 = "v4"
constant defaultSignatureVersion (line 9) | defaultSignatureVersion = SignatureV4
type Config (line 12) | type Config struct
function NewDefaultConfig (line 22) | func NewDefaultConfig() *Config {
FILE: internal/tools/smtp/client.go
type Client (line 14) | type Client struct
method Close (line 31) | func (c *Client) Close() error {
method Send (line 35) | func (c *Client) Send(ctx context.Context, msg *Message) error {
function NewClient (line 18) | func NewClient(config *Config) (*Client, error) {
function createSmtpClient (line 55) | func createSmtpClient(config *Config) (*mail.Client, error) {
FILE: internal/tools/smtp/config.go
constant defaultPort (line 4) | defaultPort int = 25
type Config (line 7) | type Config struct
function NewDefaultConfig (line 16) | func NewDefaultConfig() *Config {
FILE: internal/tools/smtp/errhandler.go
type wQQMailQuitErrorHandler (line 11) | type wQQMailQuitErrorHandler struct
method HandleError (line 13) | func (q *wQQMailQuitErrorHandler) HandleError(_, _ string, conn *textp...
FILE: internal/tools/smtp/message.go
function NewMessage (line 9) | func NewMessage() *Message {
constant MIMETypeTextHTML (line 16) | MIMETypeTextHTML MIMEType = mail.TypeTextHTML
constant MIMETypeTextPlain (line 17) | MIMETypeTextPlain MIMEType = mail.TypeTextPlain
FILE: internal/tools/ssh/auth.go
type AuthMethodType (line 3) | type AuthMethodType
constant AuthMethodTypeNone (line 6) | AuthMethodTypeNone AuthMethodType = "none"
constant AuthMethodTypePassword (line 7) | AuthMethodTypePassword AuthMethodType = "password"
constant AuthMethodTypeKey (line 8) | AuthMethodTypeKey AuthMethodType = "key"
FILE: internal/tools/ssh/client.go
type Client (line 14) | type Client struct
method Close (line 40) | func (c *Client) Close() error {
method GetClient (line 66) | func (c *Client) GetClient() *ssh.Client {
function NewClient (line 19) | func NewClient(config *Config) (*Client, error) {
function createConnsAndSshClients (line 74) | func createConnsAndSshClients(config *Config) (conns []net.Conn, clis []...
function createSshClientWithConn (line 135) | func createSshClientWithConn(config *ServerConfig, conn net.Conn) (*ssh....
function resolveAddr (line 226) | func resolveAddr(host string, port int) string {
FILE: internal/tools/ssh/config.go
constant defaultPort (line 4) | defaultPort int = 22
constant defaultAuthMethod (line 5) | defaultAuthMethod AuthMethodType = AuthMethodTypeNone
constant defaultUsername (line 6) | defaultUsername string = "root"
type ServerConfig (line 9) | type ServerConfig struct
type Config (line 19) | type Config struct
function NewServerConfig (line 24) | func NewServerConfig() *ServerConfig {
function NewDefaultConfig (line 32) | func NewDefaultConfig() *Config {
FILE: internal/workflow/dispatcher/deps.go
type workflowRepository (line 9) | type workflowRepository interface
type workflowRunRepository (line 14) | type workflowRunRepository interface
type workflowLogRepository (line 20) | type workflowLogRepository interface
FILE: internal/workflow/dispatcher/dispatcher.go
function init (line 26) | func init() {
type WorkflowDispatcher (line 33) | type WorkflowDispatcher interface
type Statistics (line 42) | type Statistics struct
type workflowDispatcher (line 48) | type workflowDispatcher struct
method GetStatistics (line 65) | func (wd *workflowDispatcher) GetStatistics() Statistics {
method Bootup (line 84) | func (wd *workflowDispatcher) Bootup(ctx context.Context) error {
method Shutdown (line 104) | func (wd *workflowDispatcher) Shutdown(ctx context.Context) error {
method Start (line 123) | func (wd *workflowDispatcher) Start(ctx context.Context, runId string)...
method Cancel (line 143) | func (wd *workflowDispatcher) Cancel(ctx context.Context, runId string...
method tryExecuteAsync (line 191) | func (wd *workflowDispatcher) tryExecuteAsync(task *taskInfo) {
method tryNextAsync (line 328) | func (wd *workflowDispatcher) tryNextAsync() {
function newWorkflowDispatcher (line 369) | func newWorkflowDispatcher() WorkflowDispatcher {
FILE: internal/workflow/dispatcher/singleton.go
function GetSingletonDispatcher (line 12) | func GetSingletonDispatcher() WorkflowDispatcher {
FILE: internal/workflow/dispatcher/task.go
type taskInfo (line 7) | type taskInfo struct
FILE: internal/workflow/engine/context.go
type WorkflowContext (line 7) | type WorkflowContext struct
method SetExecutingWorkflow (line 19) | func (c *WorkflowContext) SetExecutingWorkflow(workflowId string, runI...
method SetEngine (line 26) | func (c *WorkflowContext) SetEngine(engine WorkflowEngine) *WorkflowCo...
method SetVariablesManager (line 31) | func (c *WorkflowContext) SetVariablesManager(inputs VariableManager) ...
method SetInputsManager (line 36) | func (c *WorkflowContext) SetInputsManager(manager InOutManager) *Work...
method SetContext (line 41) | func (c *WorkflowContext) SetContext(ctx context.Context) *WorkflowCon...
method Context (line 46) | func (c *WorkflowContext) Context() context.Context {
method Clone (line 50) | func (c *WorkflowContext) Clone() *WorkflowContext {
FILE: internal/workflow/engine/deps.go
type accessRepository (line 9) | type accessRepository interface
type certificateRepository (line 13) | type certificateRepository interface
type workflowOutputRepository (line 19) | type workflowOutputRepository interface
type settingsRepository (line 24) | type settingsRepository interface
FILE: internal/workflow/engine/engine.go
type WorkflowExecution (line 19) | type WorkflowExecution struct
type WorkflowEngine (line 27) | type WorkflowEngine interface
type workflowEngine (line 39) | type workflowEngine struct
method Invoke (line 58) | func (we *workflowEngine) Invoke(ctx context.Context, execution Workfl...
method OnStart (line 98) | func (we *workflowEngine) OnStart(callback func(ctx context.Context) e...
method OnEnd (line 104) | func (we *workflowEngine) OnEnd(callback func(ctx context.Context) err...
method OnError (line 110) | func (we *workflowEngine) OnError(callback func(ctx context.Context, e...
method OnNodeStart (line 116) | func (we *workflowEngine) OnNodeStart(callback func(ctx context.Contex...
method OnNodeEnd (line 122) | func (we *workflowEngine) OnNodeEnd(callback func(ctx context.Context,...
method OnNodeError (line 128) | func (we *workflowEngine) OnNodeError(callback func(ctx context.Contex...
method OnNodeLogging (line 134) | func (we *workflowEngine) OnNodeLogging(callback func(ctx context.Cont...
method executeNode (line 140) | func (we *workflowEngine) executeNode(wfCtx *WorkflowContext, node *No...
method executeBlocks (line 230) | func (we *workflowEngine) executeBlocks(wfCtx *WorkflowContext, blocks...
method fireOnStartHooks (line 264) | func (we *workflowEngine) fireOnStartHooks(ctx context.Context) {
method fireOnEndHooks (line 274) | func (we *workflowEngine) fireOnEndHooks(ctx context.Context) {
method fireOnErrorHooks (line 284) | func (we *workflowEngine) fireOnErrorHooks(ctx context.Context, err er...
method fireOnNodeStartHooks (line 294) | func (we *workflowEngine) fireOnNodeStartHooks(ctx context.Context, no...
method fireOnNodeEndHooks (line 304) | func (we *workflowEngine) fireOnNodeEndHooks(ctx context.Context, node...
method fireOnNodeErrorHooks (line 314) | func (we *workflowEngine) fireOnNodeErrorHooks(ctx context.Context, no...
method fireOnNodeLoggingHooks (line 324) | func (we *workflowEngine) fireOnNodeLoggingHooks(ctx context.Context, ...
function NewWorkflowEngine (line 334) | func NewWorkflowEngine() WorkflowEngine {
FILE: internal/workflow/engine/executor.go
type NodeExecutor (line 9) | type NodeExecutor interface
type nodeExecutor (line 15) | type nodeExecutor struct
method SetLogger (line 19) | func (e *nodeExecutor) SetLogger(logger *slog.Logger) {
type NodeExecutionContext (line 23) | type NodeExecutionContext struct
method SetExecutingWorkflow (line 29) | func (c *NodeExecutionContext) SetExecutingWorkflow(workflowId string,...
method SetExecutingNode (line 34) | func (c *NodeExecutionContext) SetExecutingNode(node *Node) *NodeExecu...
method SetEngine (line 39) | func (c *NodeExecutionContext) SetEngine(engine WorkflowEngine) *NodeE...
method SetVariablesManager (line 44) | func (c *NodeExecutionContext) SetVariablesManager(variables VariableM...
method SetInputsManager (line 49) | func (c *NodeExecutionContext) SetInputsManager(inputs InOutManager) *...
method SetContext (line 54) | func (c *NodeExecutionContext) SetContext(ctx context.Context) *NodeEx...
function newNodeExecutionContext (line 59) | func newNodeExecutionContext(wfCtx *WorkflowContext, node *Node) *NodeEx...
type NodeExecutionResult (line 69) | type NodeExecutionResult struct
method AddVariable (line 82) | func (r *NodeExecutionResult) AddVariable(key string, value any, value...
method AddVariableWithScope (line 86) | func (r *NodeExecutionResult) AddVariableWithScope(scope string, key s...
method addVariableState (line 95) | func (r *NodeExecutionResult) addVariableState(state VariableState) {
method AddOutput (line 112) | func (r *NodeExecutionResult) AddOutput(stype string, key string, valu...
method AddOutputWithPersistent (line 123) | func (r *NodeExecutionResult) AddOutputWithPersistent(stype string, ke...
method addOutputState (line 134) | func (r *NodeExecutionResult) addOutputState(state InOutState) {
function newNodeExecutionResult (line 151) | func newNodeExecutionResult(node *Node) *NodeExecutionResult {
FILE: internal/workflow/engine/executor_bizapply.go
function init (line 31) | func init() {
constant BizApplyKeySourceAuto (line 36) | BizApplyKeySourceAuto = "auto"
constant BizApplyKeySourceReuse (line 37) | BizApplyKeySourceReuse = "reuse"
constant BizApplyKeySourceCustom (line 38) | BizApplyKeySourceCustom = "custom"
type bizApplyNodeExecutor (line 55) | type bizApplyNodeExecutor struct
method Execute (line 63) | func (ne *bizApplyNodeExecutor) Execute(execCtx *NodeExecutionContext)...
method getLastOutputArtifacts (line 141) | func (ne *bizApplyNodeExecutor) getLastOutputArtifacts(execCtx *NodeEx...
method checkCanSkip (line 159) | func (ne *bizApplyNodeExecutor) checkCanSkip(execCtx *NodeExecutionCon...
method executeObtain (line 231) | func (ne *bizApplyNodeExecutor) executeObtain(execCtx *NodeExecutionCo...
method setOuputsOfResult (line 438) | func (ne *bizApplyNodeExecutor) setOuputsOfResult(execCtx *NodeExecuti...
method setVariablesOfResult (line 450) | func (ne *bizApplyNodeExecutor) setVariablesOfResult(execCtx *NodeExec...
function newBizApplyNodeExecutor (line 489) | func newBizApplyNodeExecutor() NodeExecutor {
FILE: internal/workflow/engine/executor_bizdeploy.go
type bizDeployNodeExecutor (line 21) | type bizDeployNodeExecutor struct
method Execute (line 29) | func (ne *bizDeployNodeExecutor) Execute(execCtx *NodeExecutionContext...
method getLastOutputArtifacts (line 112) | func (ne *bizDeployNodeExecutor) getLastOutputArtifacts(execCtx *NodeE...
method checkCanSkip (line 121) | func (ne *bizDeployNodeExecutor) checkCanSkip(execCtx *NodeExecutionCo...
function newBizDeployNodeExecutor (line 143) | func newBizDeployNodeExecutor() NodeExecutor {
FILE: internal/workflow/engine/executor_bizmonitor.go
type bizMonitorNodeExecutor (line 31) | type bizMonitorNodeExecutor struct
method Execute (line 37) | func (ne *bizMonitorNodeExecutor) Execute(execCtx *NodeExecutionContex...
method tryRetrievePeerCertificates (line 122) | func (ne *bizMonitorNodeExecutor) tryRetrievePeerCertificates(execCtx ...
method setVariablesOfResult (line 159) | func (ne *bizMonitorNodeExecutor) setVariablesOfResult(execCtx *NodeEx...
function newBizMonitorNodeExecutor (line 198) | func newBizMonitorNodeExecutor() NodeExecutor {
FILE: internal/workflow/engine/executor_biznotify.go
type bizNotifyNodeExecutor (line 14) | type bizNotifyNodeExecutor struct
method Execute (line 21) | func (ne *bizNotifyNodeExecutor) Execute(execCtx *NodeExecutionContext...
method checkCanSkip (line 86) | func (ne *bizNotifyNodeExecutor) checkCanSkip(execCtx *NodeExecutionCo...
function newBizNotifyNodeExecutor (line 108) | func newBizNotifyNodeExecutor() NodeExecutor {
FILE: internal/workflow/engine/executor_bizupload.go
type bizUploadNodeExecutor (line 36) | type bizUploadNodeExecutor struct
method Execute (line 49) | func (ne *bizUploadNodeExecutor) Execute(execCtx *NodeExecutionContext...
method getLastOutputArtifacts (line 199) | func (ne *bizUploadNodeExecutor) getLastOutputArtifacts(execCtx *NodeE...
method checkCanSkip (line 217) | func (ne *bizUploadNodeExecutor) checkCanSkip(execCtx *NodeExecutionCo...
method setOuputsOfResult (line 250) | func (ne *bizUploadNodeExecutor) setOuputsOfResult(execCtx *NodeExecut...
method setVariablesOfResult (line 262) | func (ne *bizUploadNodeExecutor) setVariablesOfResult(execCtx *NodeExe...
constant BizUploadSourceForm (line 44) | BizUploadSourceForm = "form"
constant BizUploadSourceLocal (line 45) | BizUploadSourceLocal = "local"
constant BizUploadSourceURL (line 46) | BizUploadSourceURL = "url"
function newBizUploadNodeExecutor (line 301) | func newBizUploadNodeExecutor() NodeExecutor {
FILE: internal/workflow/engine/executor_condition.go
type conditionNodeExecutor (line 11) | type conditionNodeExecutor struct
method Execute (line 15) | func (ne *conditionNodeExecutor) Execute(execCtx *NodeExecutionContext...
function newConditionNodeExecutor (line 51) | func newConditionNodeExecutor() NodeExecutor {
type branchBlockNodeExecutor (line 57) | type branchBlockNodeExecutor struct
method Execute (line 61) | func (ne *branchBlockNodeExecutor) Execute(execCtx *NodeExecutionConte...
function newBranchBlockNodeExecutor (line 103) | func newBranchBlockNodeExecutor() NodeExecutor {
FILE: internal/workflow/engine/executor_delay.go
type delayNodeExecutor (line 11) | type delayNodeExecutor struct
method Execute (line 15) | func (ne *delayNodeExecutor) Execute(execCtx *NodeExecutionContext) (*...
function newDelayNodeExecutor (line 26) | func newDelayNodeExecutor() NodeExecutor {
FILE: internal/workflow/engine/executor_end.go
type endNodeExecutor (line 7) | type endNodeExecutor struct
method Execute (line 11) | func (ne *endNodeExecutor) Execute(execCtx *NodeExecutionContext) (*No...
function newEndNodeExecutor (line 20) | func newEndNodeExecutor() NodeExecutor {
FILE: internal/workflow/engine/executor_start.go
type startNodeExecutor (line 7) | type startNodeExecutor struct
method Execute (line 11) | func (ne *startNodeExecutor) Execute(execCtx *NodeExecutionContext) (*...
function newStartNodeExecutor (line 19) | func newStartNodeExecutor() NodeExecutor {
FILE: internal/workflow/engine/executor_trycatch.go
type tryCatchNodeExecutor (line 11) | type tryCatchNodeExecutor struct
method Execute (line 15) | func (ne *tryCatchNodeExecutor) Execute(execCtx *NodeExecutionContext)...
function newTryCatchNodeExecutor (line 72) | func newTryCatchNodeExecutor() NodeExecutor {
type tryBlockNodeExecutor (line 78) | type tryBlockNodeExecutor struct
method Execute (line 82) | func (ne *tryBlockNodeExecutor) Execute(execCtx *NodeExecutionContext)...
function newTryBlockNodeExecutor (line 99) | func newTryBlockNodeExecutor() NodeExecutor {
type catchBlockNodeExecutor (line 105) | type catchBlockNodeExecutor struct
method Execute (line 109) | func (ne *catchBlockNodeExecutor) Execute(execCtx *NodeExecutionContex...
function newCatchBlockNodeExecutor (line 126) | func newCatchBlockNodeExecutor() NodeExecutor {
FILE: internal/workflow/engine/logger.go
type withLogger (line 7) | type withLogger interface
FILE: internal/workflow/engine/models.go
constant NodeTypeStart (line 12) | NodeTypeStart = domain.WorkflowNodeTypeStart
constant NodeTypeEnd (line 13) | NodeTypeEnd = domain.WorkflowNodeTypeEnd
constant NodeTypeCondition (line 14) | NodeTypeCondition = domain.WorkflowNodeTypeCondition
constant NodeTypeBranchBlock (line 15) | NodeTypeBranchBlock = domain.WorkflowNodeTypeBranchBlock
constant NodeTypeTryCatch (line 16) | NodeTypeTryCatch = domain.WorkflowNodeTypeTryCatch
constant NodeTypeTryBlock (line 17) | NodeTypeTryBlock = domain.WorkflowNodeTypeTryBlock
constant NodeTypeCatchBlock (line 18) | NodeTypeCatchBlock = domain.WorkflowNodeTypeCatchBlock
constant NodeTypeDelay (line 19) | NodeTypeDelay = domain.WorkflowNodeTypeDelay
constant NodeTypeBizApply (line 20) | NodeTypeBizApply = domain.WorkflowNodeTypeBizApply
constant NodeTypeBizUpload (line 21) | NodeTypeBizUpload = domain.WorkflowNodeTypeBizUpload
constant NodeTypeBizMonitor (line 22) | NodeTypeBizMonitor = domain.WorkflowNodeTypeBizMonitor
constant NodeTypeBizDeploy (line 23) | NodeTypeBizDeploy = domain.WorkflowNodeTypeBizDeploy
constant NodeTypeBizNotify (line 24) | NodeTypeBizNotify = domain.WorkflowNodeTypeBizNotify
FILE: internal/workflow/engine/state.go
type VariableState (line 11) | type VariableState struct
method ValueString (line 18) | func (s VariableState) ValueString() string {
type VariableManager (line 37) | type VariableManager interface
type variableManager (line 52) | type variableManager struct
method All (line 59) | func (m *variableManager) All() []VariableState {
method Erase (line 70) | func (m *variableManager) Erase() {
method Add (line 77) | func (m *variableManager) Add(state VariableState) {
method Set (line 94) | func (m *variableManager) Set(key string, value any, valueType string) {
method SetScoped (line 98) | func (m *variableManager) SetScoped(scope string, key string, value an...
method Get (line 102) | func (m *variableManager) Get(key string) (*VariableState, bool) {
method GetScoped (line 106) | func (m *variableManager) GetScoped(scope string, key string) (*Variab...
method Take (line 122) | func (m *variableManager) Take(key string) (*VariableState, bool) {
method TakeScoped (line 126) | func (m *variableManager) TakeScoped(scope string, key string) (*Varia...
method Remove (line 143) | func (m *variableManager) Remove(key string) bool {
method RemoveScoped (line 147) | func (m *variableManager) RemoveScoped(scope string, key string) bool {
function newVariableManager (line 152) | func newVariableManager() VariableManager {
type InOutState (line 158) | type InOutState struct
method ValueString (line 167) | func (s InOutState) ValueString() string {
type InOutManager (line 180) | type InOutManager interface
type inoutManager (line 191) | type inoutManager struct
method All (line 198) | func (m *inoutManager) All() []InOutState {
method Erase (line 209) | func (m *inoutManager) Erase() {
method Add (line 216) | func (m *inoutManager) Add(state InOutState) {
method Set (line 233) | func (m *inoutManager) Set(nodeId string, stype string, name string, v...
method Get (line 237) | func (m *inoutManager) Get(nodeId string, name string) (*InOutState, b...
method Take (line 253) | func (m *inoutManager) Take(nodeId string, name string) (*InOutState, ...
method Remove (line 270) | func (m *inoutManager) Remove(nodeId string, name string) bool {
function newInOutManager (line 275) | func newInOutManager() InOutManager {
constant stateValTypeBoolean (line 282) | stateValTypeBoolean = "boolean"
constant stateValTypeDateTime (line 283) | stateValTypeDateTime = "datetime"
constant stateValTypeNumber (line 284) | stateValTypeNumber = "number"
constant stateValTypeString (line 285) | stateValTypeString = "string"
constant stateIOTypeRef (line 289) | stateIOTypeRef = "ref"
constant stateVarKeyWorkflowId (line 293) | stateVarKeyWorkflowId = "workflow.id"
constant stateVarKeyWorkflowName (line 294) | stateVarKeyWorkflowName = "workflow.name"
constant stateVarKeyRunId (line 295) | stateVarKeyRunId = "run.id"
constant stateVarKeyRunTrigger (line 296) | stateVarKeyRunTrigger = "run.trigger"
constant stateVarKeyNodeId (line 297) | stateVarKeyNodeId = "node.id"
constant stateVarKeyNodeName (line 298) | stateVarKeyNodeName = "node.name"
constant stateVarKeyNodeSkipped (line 299) | stateVarKeyNodeSkipped = "node.skipped"
constant stateVarKeyErrorNodeId (line 300) | stateVarKeyErrorNodeId = "error.nodeId"
constant stateVarKeyErrorNodeName (line 301) | stateVarKeyErrorNodeName = "error.nodeName"
constant stateVarKeyErrorMessage (line 302) | stateVarKeyErrorMessage = "error.message"
constant stateVarKeyCertificateDomain (line 303) | stateVarKeyCertificateDomain = "certificate.domain"
constant stateVarKeyCertificateDomains (line 304) | stateVarKeyCertificateDomains = "certificate.domains"
constant stateVarKeyCertificateCommonName (line 305) | stateVarKeyCertificateCommonName = "certificate.commonName"
constant stateVarKeyCertificateSubjectAltNames (line 306) | stateVarKeyCertificateSubjectAltNames = "certificate.subjectAltNames"
constant stateVarKeyCertificateNotBefore (line 307) | stateVarKeyCertificateNotBefore = "certificate.notBefore"
constant stateVarKeyCertificateNotAfter (line 308) | stateVarKeyCertificateNotAfter = "certificate.notAfter"
constant stateVarKeyCertificateHoursLeft (line 309) | stateVarKeyCertificateHoursLeft = "certificate.hoursLeft"
constant stateVarKeyCertificateDaysLeft (line 310) | stateVarKeyCertificateDaysLeft = "certificate.daysLeft"
constant stateVarKeyCertificateValidity (line 311) | stateVarKeyCertificateValidity = "certificate.validity"
FILE: internal/workflow/pbhook.go
function registerWorkflowRecordEvents (line 13) | func registerWorkflowRecordEvents() {
function onWorkflowRecordCreateOrUpdate (line 53) | func onWorkflowRecordCreateOrUpdate(_ context.Context, record *core.Reco...
function onWorkflowRecordDelete (line 75) | func onWorkflowRecordDelete(_ context.Context, record *core.Record) error {
FILE: internal/workflow/pbjob.go
function registerWorkflowJob (line 16) | func registerWorkflowJob(workflowSrv *WorkflowService, workflowId string...
FILE: internal/workflow/service.go
type WorkflowService (line 18) | type WorkflowService struct
method InitSchedule (line 37) | func (s *WorkflowService) InitSchedule(ctx context.Context) error {
method GetStatistics (line 69) | func (s *WorkflowService) GetStatistics(ctx context.Context) (*dtos.Wo...
method StartRun (line 78) | func (s *WorkflowService) StartRun(ctx context.Context, req *dtos.Work...
method CancelRun (line 112) | func (s *WorkflowService) CancelRun(ctx context.Context, req *dtos.Wor...
method Shutdown (line 134) | func (s *WorkflowService) Shutdown(ctx context.Context) {
method cleanupHistoryRuns (line 138) | func (s *WorkflowService) cleanupHistoryRuns(ctx context.Context) error {
function NewWorkflowService (line 26) | func NewWorkflowService(workflowRepo workflowRepository, workflowRunRepo...
FILE: internal/workflow/service_deps.go
type workflowRepository (line 11) | type workflowRepository interface
type workflowRunRepository (line 17) | type workflowRunRepository interface
type settingsRepository (line 24) | type settingsRepository interface
FILE: internal/workflow/service_inst.go
function thisSvcInst (line 14) | func thisSvcInst() *WorkflowService {
FILE: internal/workflow/workflow.go
function Setup (line 7) | func Setup() {
function Teardown (line 11) | func Teardown() {
FILE: main.go
function main (line 26) | func main() {
FILE: migrations/1757476800_upgrade_v0.4.0.go
function init (line 20) | func init() {
FILE: migrations/1757476801_initialize_v0.4.0.go
function init (line 12) | func init() {
FILE: migrations/1760486400_upgrade_v0.4.1.go
function init (line 11) | func init() {
FILE: migrations/1762142400_upgrade_v0.4.3.go
function init (line 11) | func init() {
FILE: migrations/1762516800_upgrade_v0.4.4.go
function init (line 9) | func init() {
FILE: migrations/1763373600_upgrade_v0.4.5.go
function init (line 11) | func init() {
FILE: migrations/1763640000_upgrade_v0.4.6.go
function init (line 11) | func init() {
FILE: migrations/1766592000_upgrade_v0.4.11.go
function init (line 12) | func init() {
FILE: migrations/1766800800_upgrade_v0.4.12.go
function init (line 13) | func init() {
FILE: migrations/1767024000_upgrade_v0.4.13.go
function init (line 10) | func init() {
FILE: migrations/1768363200_upgrade_v0.4.14.go
function init (line 8) | func init() {
FILE: migrations/1769313600_upgrade_v0.4.15.go
function init (line 17) | func init() {
FILE: migrations/snaps/v0.3/workflow.go
type WorkflowNode (line 4) | type WorkflowNode struct
FILE: migrations/snaps/v0.4/workflow.go
type WorkflowGraphWalker (line 10) | type WorkflowGraphWalker struct
method Define (line 16) | func (w *WorkflowGraphWalker) Define(visitor WorkflowNodeVisitor) {
method Visit (line 23) | func (w *WorkflowGraphWalker) Visit(nodes []*WorkflowNode) (_changed b...
method Migrate (line 55) | func (w *WorkflowGraphWalker) Migrate(record *core.Record, field strin...
type WorkflowNodeVisitor (line 14) | type WorkflowNodeVisitor
type WorkflowNode (line 89) | type WorkflowNode struct
type WorkflowNodeBlocks (line 98) | type WorkflowNodeBlocks
method GetNodeById (line 112) | func (g WorkflowNodeBlocks) GetNodeById(nodeId string) (*WorkflowNode,...
method getNodeInBlocksById (line 116) | func (g WorkflowNodeBlocks) getNodeInBlocksById(blocks WorkflowNodeBlo...
type WorkflowNodeData (line 102) | type WorkflowNodeData struct
type WorkflowNodeConfig (line 110) | type WorkflowNodeConfig
FILE: migrations/tracer.go
type Tracer (line 8) | type Tracer struct
method Printf (line 20) | func (l *Tracer) Printf(format string, args ...any) {
function NewTracer (line 13) | func NewTracer(flag string) *Tracer {
FILE: pkg/core/certifier/challengers/dns01/35cn/35cn.go
type ChallengerConfig (line 12) | type ChallengerConfig struct
function NewChallenger (line 19) | func NewChallenger(config *ChallengerConfig) (certifier.ACMEChallenger, ...
FILE: pkg/core/certifier/challengers/dns01/51dnscom/51dnscom.go
type ChallengerConfig (line 11) | type ChallengerConfig struct
function NewChallenger (line 18) | func NewChallenger(config *ChallengerConfig) (certifier.ACMEChallenger, ...
FILE: pkg/core/certifier/challengers/dns01/51dnscom/internal/lego.go
constant envNamespace (line 18) | envNamespace = "51DNSCOM_"
constant EnvAPIKey (line 19) | EnvAPIKey = envNamespace + "API_KEY"
constant EnvAPISecret (line 20) | EnvAPISecret = envNamespace + "API_SECRET"
constant EnvTTL (line 22) | EnvTTL = envNamespace + "TTL"
constant EnvPropagationTimeout (line 23) | EnvPropagationTimeout = envNamespace + "PROPAGATION_TIMEOUT"
constant EnvPollingInterval (line 24) | EnvPollingInterval = envNamespace + "POLLING_INTERVAL"
constant EnvHTTPTimeout (line 25) | EnvHTTPTimeout = envNamespace + "HTTP_TIMEOUT"
type Config (line 30) | type Config struct
type DNSProvider (line 40) | type DNSProvider struct
method Present (line 90) | func (d *DNSProvider) Present(domain, token, keyAuth string) error {
method CleanUp (line 128) | func (d *DNSProvider) CleanUp(domain, token, keyAuth string) error {
method Timeout (line 150) | func (d *DNSProvider) Timeout() (timeout, interval time.Duration) {
method findZone (line 159) | func (d *DNSProvider) findZone(zoneName string) (*dnscomsdk.DomainReco...
function NewDefaultConfig (line 48) | func NewDefaultConfig() *Config {
function NewDNSProvider (line 57) | func NewDNSProvider() (*DNSProvider, error) {
function NewDNSProviderConfig (line 70) | func NewDNSProviderConfig(config *Config) (*DNSProvider, error) {
type dnsRecordCacheEntry (line 154) | type dnsRecordCacheEntry struct
FILE: pkg/core/certifier/challengers/dns01/acmedns/acmedns.go
type ChallengerConfig (line 13) | type ChallengerConfig struct
function NewChallenger (line 18) | func NewChallenger(config *ChallengerConfig) (certifier.ACMEChallenger, ...
FILE: pkg/core/certifier/challengers/dns01/acmehttpreq/acmehttpreq.go
type ChallengerConfig (line 13) | type ChallengerConfig struct
function NewChallenger (line 21) | func NewChallenger(config *ChallengerConfig) (certifier.ACMEChallenger, ...
FILE: pkg/core/certifier/challengers/dns01/akamai-edgedns/akamai_edgedns.go
type ChallengerConfig (line 11) | type ChallengerConfig struct
function NewChallenger (line 20) | func NewChallenger(config *ChallengerConfig) (challenge.Provider, error) {
FILE: pkg/core/certifier/challengers/dns01/aliyun-esa/aliyun_esa.go
type ChallengerConfig (line 12) | type ChallengerConfig struct
function NewChallenger (line 20) | func NewChallenger(config *ChallengerConfig) (certifier.ACMEChallenger, ...
FILE: pkg/core/certifier/challengers/dns01/aliyun/aliyun.go
type ChallengerConfig (line 12) | type ChallengerConfig struct
function NewChallenger (line 19) | func NewChallenger(config *ChallengerConfig) (certifier.ACMEChallenger, ...
FILE: pkg/core/certifier/challengers/dns01/arvancloud/arvancloud.go
type ChallengerConfig (line 12) | type ChallengerConfig struct
function NewChallenger (line 18) | func NewChallenger(config *ChallengerConfig) (certifier.ACMEChallenger, ...
FILE: pkg/core/certifier/challengers/dns01/aws-route53/aws-route53.go
type ChallengerConfig (line 12) | type ChallengerConfig struct
function NewChallenger (line 21) | func NewChallenger(config *ChallengerConfig) (certifier.ACMEChallenger, ...
FILE: pkg/core/certifier/challengers/dns01/azure-dns/azure-dns.go
type ChallengerConfig (line 13) | type ChallengerConfig struct
function NewChallenger (line 24) | func NewChallenger(config *ChallengerConfig) (certifier.ACMEChallenger, ...
FILE: pkg/core/certifier/challengers/dns01/baiducloud/baiducloud.go
type ChallengerConfig (line 12) | type ChallengerConfig struct
function NewChallenger (line 19) | func NewChallenger(config *ChallengerConfig) (certifier.ACMEChallenger, ...
FILE: pkg/core/certifier/challengers/dns01/bookmyname/bookmyname.go
type ChallengerConfig (line 12) | type ChallengerConfig struct
function NewChallenger (line 19) | func NewChallenger(config *ChallengerConfig) (certifier.ACMEChallenger, ...
FILE: pkg/core/certifier/challengers/dns01/bunny/bunny.go
type ChallengerConfig (line 12) | type ChallengerConfig struct
function NewChallenger (line 18) | func NewChallenger(config *ChallengerConfig) (certifier.ACMEChallenger, ...
FILE: pkg/core/certifier/challengers/dns01/cloudflare/cloudflare.go
type ChallengerConfig (line 12) | type ChallengerConfig struct
function NewChallenger (line 19) | func NewChallenger(config *ChallengerConfig) (certifier.ACMEChallenger, ...
FILE: pkg/core/certifier/challengers/dns01/cloudns/cloudns.go
type ChallengerConfig (line 12) | type ChallengerConfig struct
function NewChallenger (line 19) | func NewChallenger(config *ChallengerConfig) (certifier.ACMEChallenger, ...
FILE: pkg/core/certifier/challengers/dns01/cmcccloud/cmcccloud.go
type ChallengerConfig (line 11) | type ChallengerConfig struct
function NewChallenger (line 18) | func NewChallenger(config *ChallengerConfig) (certifier.ACMEChallenger, ...
FILE: pkg/core/certifier/challengers/dns01/cmcccloud/internal/lego.go
constant envNamespace (line 19) | envNamespace = "CMCCCLOUD_"
constant EnvAccessKey (line 21) | EnvAccessKey = envNamespace + "ACCESS_KEY"
constant EnvSecretKey (line 22) | EnvSecretKey = envNamespace + "SECRET_KEY"
constant EnvTTL (line 24) | EnvTTL = envNamespace + "TTL"
constant EnvPropagationTimeout (line 25) | EnvPropagationTimeout = envNamespace + "PROPAGATION_TIMEOUT"
constant EnvPollingInterval (line 26) | EnvPollingInterval = envNamespace + "POLLING_INTERVAL"
constant EnvReadTimeout (line 27) | EnvReadTimeout = envNamespace + "READ_TIMEOUT"
constant EnvConnectTimeout (line 28) | EnvConnectTimeout = envNamespace + "CONNECT_TIMEOUT"
type Config (line 33) | type Config struct
type DNSProvider (line 44) | type DNSProvider struct
method Present (line 98) | func (d *DNSProvider) Present(domain, token, keyAuth string) error {
method CleanUp (line 136) | func (d *DNSProvider) CleanUp(domain, token, keyAuth string) error {
method Timeout (line 161) | func (d *DNSProvider) Timeout() (timeout, interval time.Duration) {
function NewDefaultConfig (line 52) | func NewDefaultConfig() *Config {
function NewDNSProvider (line 62) | func NewDNSProvider() (*DNSProvider, error) {
function NewDNSProviderConfig (line 75) | func NewDNSProviderConfig(cfg *Config) (*DNSProvider, error) {
FILE: pkg/core/certifier/challengers/dns01/constellix/constellix.go
type ChallengerConfig (line 12) | type ChallengerConfig struct
function NewChallenger (line 19) | func NewChallenger(config *ChallengerConfig) (certifier.ACMEChallenger, ...
FILE: pkg/core/certifier/challengers/dns01/cpanel/cpanel.go
type ChallengerConfig (line 14) | type ChallengerConfig struct
function NewChallenger (line 23) | func NewChallenger(config *ChallengerConfig) (certifier.ACMEChallenger, ...
FILE: pkg/core/certifier/challengers/dns01/ctcccloud/ctcccloud.go
type ChallengerConfig (line 11) | type ChallengerConfig struct
function NewChallenger (line 18) | func NewChallenger(config *ChallengerConfig) (certifier.ACMEChallenger, ...
FILE: pkg/core/certifier/challengers/dns01/ctcccloud/internal/lego.go
constant envNamespace (line 18) | envNamespace = "CTYUNSMARTDNS_"
constant EnvAccessKeyID (line 20) | EnvAccessKeyID = envNamespace + "ACCESS_KEY_ID"
constant EnvSecretAccessKey (line 21) | EnvSecretAccessKey = envNamespace + "SECRET_ACCESS_KEY"
constant EnvTTL (line 23) | EnvTTL = envNamespace + "TTL"
constant EnvPropagationTimeout (line 24) | EnvPropagationTimeout = envNamespace + "PROPAGATION_TIMEOUT"
constant EnvPollingInterval (line 25) | EnvPollingInterval = envNamespace + "POLLING_INTERVAL"
constant EnvHTTPTimeout (line 26) | EnvHTTPTimeout = envNamespace + "HTTP_TIMEOUT"
type Config (line 31) | type Config struct
type DNSProvider (line 41) | type DNSProvider struct
method Present (line 90) | func (d *DNSProvider) Present(domain, token, keyAuth string) error {
method CleanUp (line 125) | func (d *DNSProvider) CleanUp(domain, token, keyAuth string) error {
method Timeout (line 146) | func (d *DNSProvider) Timeout() (timeout, interval time.Duration) {
function NewDefaultConfig (line 49) | func NewDefaultConfig() *Config {
function NewDNSProvider (line 57) | func NewDNSProvider() (*DNSProvider, error) {
function NewDNSProviderConfig (line 70) | func NewDNSProviderConfig(config *Config) (*DNSProvider, error) {
FILE: pkg/core/certifier/challengers/dns01/desec/desec.go
type ChallengerConfig (line 12) | type ChallengerConfig struct
function NewChallenger (line 18) | func NewChallenger(config *ChallengerConfig) (certifier.ACMEChallenger, ...
FILE: pkg/core/certifier/challengers/dns01/digitalocean/digitalocean.go
type ChallengerConfig (line 12) | type ChallengerConfig struct
function NewChallenger (line 18) | func NewChallenger(config *ChallengerConfig) (certifier.ACMEChallenger, ...
FILE: pkg/core/certifier/challengers/dns01/dnsexit/dnsexit.go
type ChallengerConfig (line 12) | type ChallengerConfig struct
function NewChallenger (line 18) | func NewChallenger(config *ChallengerConfig) (certifier.ACMEChallenger, ...
FILE: pkg/core/certifier/challengers/dns01/dnsla/dnsla.go
type ChallengerConfig (line 11) | type ChallengerConfig struct
function NewChallenger (line 18) | func NewChallenger(config *ChallengerConfig) (certifier.ACMEChallenger, ...
FILE: pkg/core/certifier/challengers/dns01/dnsla/internal/lego.go
constant envNamespace (line 19) | envNamespace = "DNSLA_"
constant EnvAPIId (line 21) | EnvAPIId = envNamespace + "API_ID"
constant EnvAPISecret (line 22) | EnvAPISecret = envNamespace + "API_SECRET"
constant EnvTTL (line 24) | EnvTTL = envNamespace + "TTL"
constant EnvPropagationTimeout (line 25) | EnvPropagationTimeout = envNamespace + "PROPAGATION_TIMEOUT"
constant EnvPollingInterval (line 26) | EnvPollingInterval = envNamespace + "POLLING_INTERVAL"
constant EnvHTTPTimeout (line 27) | EnvHTTPTimeout = envNamespace + "HTTP_TIMEOUT"
type Config (line 32) | type Config struct
type DNSProvider (line 42) | type DNSProvider struct
method Present (line 92) | func (d *DNSProvider) Present(domain, token, keyAuth string) error {
method CleanUp (line 130) | func (d *DNSProvider) CleanUp(domain, token, keyAuth string) error {
method Timeout (line 148) | func (d *DNSProvider) Timeout() (timeout, interval time.Duration) {
method findZone (line 152) | func (d *DNSProvider) findZone(zoneName string) (*dnslasdk.DomainRecor...
function NewDefaultConfig (line 50) | func NewDefaultConfig() *Config {
function NewDNSProvider (line 59) | func NewDNSProvider() (*DNSProvider, error) {
function NewDNSProviderConfig (line 72) | func NewDNSProviderConfig(config *Config) (*DNSProvider, error) {
FILE: pkg/core/certifier/challengers/dns01/dnsmadeeasy/dnsmadeeasy.go
type ChallengerConfig (line 12) | type ChallengerConfig struct
function NewChallenger (line 19) | func NewChallenger(config *ChallengerConfig) (certifier.ACMEChallenger, ...
FILE: pkg/core/certifier/challengers/dns01/duckdns/duckdns.go
type ChallengerConfig (line 12) | type ChallengerConfig struct
function NewChallenger (line 17) | func NewChallenger(config *ChallengerConfig) (certifier.ACMEChallenger, ...
FILE: pkg/core/certifier/challengers/dns01/dynu/dynu.go
type ChallengerConfig (line 12) | type ChallengerConfig struct
function NewChallenger (line 18) | func NewChallenger(config *ChallengerConfig) (certifier.ACMEChallenger, ...
FILE: pkg/core/certifier/challengers/dns01/dynv6/dynv6.go
type ChallengerConfig (line 11) | type ChallengerConfig struct
function NewChallenger (line 17) | func NewChallenger(config *ChallengerConfig) (certifier.ACMEChallenger, ...
FILE: pkg/core/certifier/challengers/dns01/dynv6/internal/lego.go
constant envNamespace (line 18) | envNamespace = "DYNV6_"
constant EnvHTTPToken (line 20) | EnvHTTPToken = envNamespace + "HTTP_TOKEN"
constant EnvTTL (line 22) | EnvTTL = envNamespace + "TTL"
constant EnvPropagationTimeout (line 23) | EnvPropagationTimeout = envNamespace + "PROPAGATION_TIMEOUT"
constant EnvPollingInterval (line 24) | EnvPollingInterval = envNamespace + "POLLING_INTERVAL"
constant EnvHTTPTimeout (line 25) | EnvHTTPTimeout = envNamespace + "HTTP_TIMEOUT"
type Config (line 30) | type Config struct
type DNSProvider (line 39) | type DNSProvider struct
method Present (line 92) | func (d *DNSProvider) Present(domain, token, keyAuth string) error {
method CleanUp (line 131) | func (d *DNSProvider) CleanUp(domain, token, keyAuth string) error {
method Timeout (line 160) | func (d *DNSProvider) Timeout() (timeout, interval time.Duration) {
method findZone (line 164) | func (d *DNSProvider) findZone(zoneName string) (*dynv6sdk.ZoneRecord,...
function NewDefaultConfig (line 49) | func NewDefaultConfig() *Config {
function NewDNSProvider (line 58) | func NewDNSProvider() (*DNSProvider, error) {
function NewDNSProviderConfig (line 70) | func NewDNSProviderConfig(config *Config) (*DNSProvider, error) {
FILE: pkg/core/certifier/challengers/dns01/gandinet/gandinet.go
type ChallengerConfig (line 12) | type ChallengerConfig struct
function NewChallenger (line 18) | func NewChallenger(config *ChallengerConfig) (certifier.ACMEChallenger, ...
FILE: pkg/core/certifier/challengers/dns01/gcore/gcore.go
type ChallengerConfig (line 12) | type ChallengerConfig struct
function NewChallenger (line 18) | func NewChallenger(config *ChallengerConfig) (certifier.ACMEChallenger, ...
FILE: pkg/core/certifier/challengers/dns01/gname/gname.go
type ChallengerConfig (line 11) | type ChallengerConfig struct
function NewChallenger (line 18) | func NewChallenger(config *ChallengerConfig) (certifier.ACMEChallenger, ...
FILE: pkg/core/certifier/challengers/dns01/gname/internal/lego.go
constant envNamespace (line 18) | envNamespace = "GNAME_"
constant EnvAppID (line 20) | EnvAppID = envNamespace + "APP_ID"
constant EnvAppKey (line 21) | EnvAppKey = envNamespace + "APP_KEY"
constant EnvTTL (line 23) | EnvTTL = envNamespace + "TTL"
constant EnvPropagationTimeout (line 24) | EnvPropagationTimeout = envNamespace + "PROPAGATION_TIMEOUT"
constant EnvPollingInterval (line 25) | EnvPollingInterval = envNamespace + "POLLING_INTERVAL"
constant EnvHTTPTimeout (line 26) | EnvHTTPTimeout = envNamespace + "HTTP_TIMEOUT"
type Config (line 31) | type Config struct
type DNSProvider (line 41) | type DNSProvider struct
method Present (line 91) | func (d *DNSProvider) Present(domain, token, keyAuth string) error {
method CleanUp (line 124) | func (d *DNSProvider) CleanUp(domain, token, keyAuth string) error {
method Timeout (line 152) | func (d *DNSProvider) Timeout() (timeout, interval time.Duration) {
function NewDefaultConfig (line 49) | func NewDefaultConfig() *Config {
function NewDNSProvider (line 58) | func NewDNSProvider() (*DNSProvider, error) {
function NewDNSProviderConfig (line 71) | func NewDNSProviderConfig(config *Config) (*DNSProvider, error) {
FILE: pkg/core/certifier/challengers/dns01/godaddy/godaddy.go
type ChallengerConfig (line 12) | type ChallengerConfig struct
function NewChallenger (line 19) | func NewChallenger(config *ChallengerConfig) (certifier.ACMEChallenger, ...
FILE: pkg/core/certifier/challengers/dns01/hetzner/hetzner.go
type ChallengerConfig (line 12) | type ChallengerConfig struct
function NewChallenger (line 18) | func NewChallenger(config *ChallengerConfig) (certifier.ACMEChallenger, ...
FILE: pkg/core/certifier/challengers/dns01/hostingde/hostingde.go
type ChallengerConfig (line 12) | type ChallengerConfig struct
function NewChallenger (line 18) | func NewChallenger(config *ChallengerConfig) (certifier.ACMEChallenger, ...
FILE: pkg/core/certifier/challengers/dns01/hostinger/hostinger.go
type ChallengerConfig (line 12) | type ChallengerConfig struct
function NewChallenger (line 18) | func NewChallenger(config *ChallengerConfig) (certifier.ACMEChallenger, ...
FILE: pkg/core/certifier/challengers/dns01/huaweicloud/huaweicloud.go
type ChallengerConfig (line 11) | type ChallengerConfig struct
function NewChallenger (line 19) | func NewChallenger(config *ChallengerConfig) (certifier.ACMEChallenger, ...
FILE: pkg/core/certifier/challengers/dns01/infomaniak/infomaniak.go
type ChallengerConfig (line 12) | type ChallengerConfig struct
function NewChallenger (line 18) | func NewChallenger(config *ChallengerConfig) (certifier.ACMEChallenger, ...
FILE: pkg/core/certifier/challengers/dns01/ionos/ionos.go
type ChallengerConfig (line 13) | type ChallengerConfig struct
function NewChallenger (line 20) | func NewChallenger(config *ChallengerConfig) (certifier.ACMEChallenger, ...
FILE: pkg/core/certifier/challengers/dns01/jdcloud/jdcloud.go
type ChallengerConfig (line 12) | type ChallengerConfig struct
function NewChallenger (line 20) | func NewChallenger(config *ChallengerConfig) (certifier.ACMEChallenger, ...
FILE: pkg/core/certifier/challengers/dns01/linode/linode.go
type ChallengerConfig (line 12) | type ChallengerConfig struct
function NewChallenger (line 18) | func NewChallenger(config *ChallengerConfig) (certifier.ACMEChallenger, ...
FILE: pkg/core/certifier/challengers/dns01/namecheap/namecheap.go
type ChallengerConfig (line 12) | type ChallengerConfig struct
function NewChallenger (line 19) | func NewChallenger(config *ChallengerConfig) (certifier.ACMEChallenger, ...
FILE: pkg/core/certifier/challengers/dns01/namedotcom/namedotcom.go
type ChallengerConfig (line 12) | type ChallengerConfig struct
function NewChallenger (line 19) | func NewChallenger(config *ChallengerConfig) (certifier.ACMEChallenger, ...
FILE: pkg/core/certifier/challengers/dns01/namesilo/namesilo.go
type ChallengerConfig (line 12) | type ChallengerConfig struct
function NewChallenger (line 18) | func NewChallenger(config *ChallengerConfig) (certifier.ACMEChallenger, ...
FILE: pkg/core/certifier/challengers/dns01/netcup/netcup.go
type ChallengerConfig (line 12) | type ChallengerConfig struct
function NewChallenger (line 20) | func NewChallenger(config *ChallengerConfig) (certifier.ACMEChallenger, ...
FILE: pkg/core/certifier/challengers/dns01/netlify/netlify.go
type ChallengerConfig (line 12) | type ChallengerConfig struct
function NewChallenger (line 18) | func NewChallenger(config *ChallengerConfig) (certifier.ACMEChallenger, ...
FILE: pkg/core/certifier/challengers/dns01/ns1/ns1.go
type ChallengerConfig (line 12) | type ChallengerConfig struct
function NewChallenger (line 18) | func NewChallenger(config *ChallengerConfig) (certifier.ACMEChallenger, ...
FILE: pkg/core/certifier/challengers/dns01/ovhcloud/consts.go
constant AUTH_METHOD_APPLICATION (line 4) | AUTH_METHOD_APPLICATION = "application"
constant AUTH_METHOD_OAUTH2 (line 5) | AUTH_METHOD_OAUTH2 = "oauth2"
FILE: pkg/core/certifier/challengers/dns01/ovhcloud/ovhcloud.go
type ChallengerConfig (line 13) | type ChallengerConfig struct
function NewChallenger (line 25) | func NewChallenger(config *ChallengerConfig) (certifier.ACMEChallenger, ...
FILE: pkg/core/certifier/challengers/dns01/porkbun/porkbun.go
type ChallengerConfig (line 12) | type ChallengerConfig struct
function NewChallenger (line 19) | func NewChallenger(config *ChallengerConfig) (certifier.ACMEChallenger, ...
FILE: pkg/core/certifier/challengers/dns01/powerdns/powerdns.go
type ChallengerConfig (line 15) | type ChallengerConfig struct
function NewChallenger (line 23) | func NewChallenger(config *ChallengerConfig) (certifier.ACMEChallenger, ...
FILE: pkg/core/certifier/challengers/dns01/qingcloud/internal/lego.go
constant envNamespace (line 18) | envNamespace = "QINGCLOUD_"
constant EnvAccessKey (line 20) | EnvAccessKey = envNamespace + "ACCESS_KEY"
constant EnvAccessSecret (line 21) | EnvAccessSecret = envNamespace + "ACCESS_SECRET"
constant EnvTTL (line 23) | EnvTTL = envNamespace + "TTL"
constant EnvPropagationTimeout (line 24) | EnvPropagationTimeout = envNamespace + "PROPAGATION_TIMEOUT"
constant EnvPollingInterval (line 25) | EnvPollingInterval = envNamespace + "POLLING_INTERVAL"
constant EnvHTTPTimeout (line 26) | EnvHTTPTimeout = envNamespace + "HTTP_TIMEOUT"
type Config (line 31) | type Config struct
type DNSProvider (line 41) | type DNSProvider struct
method Present (line 91) | func (d *DNSProvider) Present(domain, token, keyAuth string) error {
method CleanUp (line 132) | func (d *DNSProvider) CleanUp(domain, token, keyAuth string) error {
method Timeout (line 150) | func (d *DNSProvider) Timeout() (timeout, interval time.Duration) {
function NewDefaultConfig (line 49) | func NewDefaultConfig() *Config {
function NewDNSProvider (line 58) | func NewDNSProvider() (*DNSProvider, error) {
function NewDNSProviderConfig (line 71) | func NewDNSProviderConfig(config *Config) (*DNSProvider, error) {
FILE: pkg/core/certifier/challengers/dns01/qingcloud/qingcloud.go
type ChallengerConfig (line 11) | type ChallengerConfig struct
function NewChallenger (line 18) | func NewChallenger(config *ChallengerConfig) (certifier.ACMEChallenger, ...
FILE: pkg/core/certifier/challengers/dns01/rainyun/rainyun.go
type ChallengerConfig (line 12) | type ChallengerConfig struct
function NewChallenger (line 18) | func NewChallenger(config *ChallengerConfig) (certifier.ACMEChallenger, ...
FILE: pkg/core/certifier/challengers/dns01/rfc2136/rfc2136.go
type ChallengerConfig (line 14) | type ChallengerConfig struct
function NewChallenger (line 24) | func NewChallenger(config *ChallengerConfig) (certifier.ACMEChallenger, ...
FILE: pkg/core/certifier/challengers/dns01/spaceship/spaceship.go
type ChallengerConfig (line 12) | type ChallengerConfig struct
function NewChallenger (line 19) | func NewChallenger(config *ChallengerConfig) (certifier.ACMEChallenger, ...
FILE: pkg/core/certifier/challengers/dns01/technitiumdns/technitiumdns.go
type ChallengerConfig (line 14) | type ChallengerConfig struct
function NewChallenger (line 22) | func NewChallenger(config *ChallengerConfig) (certifier.ACMEChallenger, ...
FILE: pkg/core/certifier/challengers/dns01/tencentcloud-eo/tencentcloud_eo.go
type ChallengerConfig (line 12) | type ChallengerConfig struct
function NewChallenger (line 19) | func NewChallenger(config *ChallengerConfig) (certifier.ACMEChallenger, ...
FILE: pkg/core/certifier/challengers/dns01/tencentcloud/tencentcloud.go
type ChallengerConfig (line 12) | type ChallengerConfig struct
function NewChallenger (line 19) | func NewChallenger(config *ChallengerConfig) (certifier.ACMEChallenger, ...
FILE: pkg/core/certifier/challengers/dns01/todaynic/todaynic.go
type ChallengerConfig (line 12) | type ChallengerConfig struct
function NewChallenger (line 19) | func NewChallenger(config *ChallengerConfig) (certifier.ACMEChallenger, ...
FILE: pkg/core/certifier/challengers/dns01/ucloud/internal/lego.go
constant envNamespace (line 18) | envNamespace = "UCLOUDUDNR_"
constant EnvPublicKey (line 20) | EnvPublicKey = envNamespace + "PUBLIC_KEY"
constant EnvPrivateKey (line 21) | EnvPrivateKey = envNamespace + "PRIVATE_KEY"
constant EnvProjectId (line 22) | EnvProjectId = envNamespace + "PROJECT_ID"
constant EnvTTL (line 24) | EnvTTL = envNamespace + "TTL"
constant EnvPropagationTimeout (line 25) | EnvPropagationTimeout = envNamespace + "PROPAGATION_TIMEOUT"
constant EnvPollingInterval (line 26) | EnvPollingInterval = envNamespace + "POLLING_INTERVAL"
constant EnvHTTPTimeout (line 27) | EnvHTTPTimeout = envNamespace + "HTTP_TIMEOUT"
type Config (line 32) | type Config struct
type DNSProvider (line 43) | type DNSProvider struct
method Present (line 90) | func (d *DNSProvider) Present(domain, token, keyAuth string) error {
method CleanUp (line 112) | func (d *DNSProvider) CleanUp(domain, token, keyAuth string) error {
method Timeout (line 147) | func (d *DNSProvider) Timeout() (timeout, interval time.Duration) {
function NewDefaultConfig (line 48) | func NewDefaultConfig() *Config {
function NewDNSProvider (line 57) | func NewDNSProvider() (*DNSProvider, error) {
function NewDNSProviderConfig (line 71) | func NewDNSProviderConfig(config *Config) (*DNSProvider, error) {
FILE: pkg/core/certifier/challengers/dns01/ucloud/ucloud.go
type ChallengerConfig (line 11) | type ChallengerConfig struct
function NewChallenger (line 19) | func NewChallenger(config *ChallengerConfig) (certifier.ACMEChallenger, ...
FILE: pkg/core/certifier/challengers/dns01/vercel/vercel.go
type ChallengerConfig (line 12) | type ChallengerConfig struct
function NewChallenger (line 19) | func NewChallenger(config *ChallengerConfig) (certifier.ACMEChallenger, ...
FILE: pkg/core/certifier/challengers/dns01/volcengine/volcengine.go
type ChallengerConfig (line 12) | type ChallengerConfig struct
function NewChallenger (line 19) | func NewChallenger(config *ChallengerConfig) (certifier.ACMEChallenger, ...
FILE: pkg/core/certifier/challengers/dns01/vultr/vultr.go
type ChallengerConfig (line 12) | type ChallengerConfig struct
function NewChallenger (line 18) | func NewChallenger(config *ChallengerConfig) (certifier.ACMEChallenger, ...
FILE: pkg/core/certifier/challengers/dns01/westcn/westcn.go
type ChallengerConfig (line 12) | type ChallengerConfig struct
function NewChallenger (line 19) | func NewChallenger(config *ChallengerConfig) (certifier.ACMEChallenger, ...
FILE: pkg/core/certifier/challengers/dns01/xinnet/internal/lego.go
constant envNamespace (line 18) | envNamespace = "XINNET_"
constant EnvAgentId (line 20) | EnvAgentId = envNamespace + "AGENT_ID"
constant EnvAppSecret (line 21) | EnvAppSecret = envNamespace + "APP_SECRET"
constant EnvTTL (line 23) | EnvTTL = envNamespace + "TTL"
constant EnvPropagationTimeout (line 24) | EnvPropagationTimeout = envNamespace + "PROPAGATION_TIMEOUT"
constant EnvPollingInterval (line 25) | EnvPollingInterval = envNamespace + "POLLING_INTERVAL"
constant EnvHTTPTimeout (line 26) | EnvHTTPTimeout = envNamespace + "HTTP_TIMEOUT"
type Config (line 31) | type Config struct
type DNSProvider (line 41) | type DNSProvider struct
method Present (line 91) | func (d *DNSProvider) Present(domain, token, keyAuth string) error {
method CleanUp (line 120) | func (d *DNSProvider) CleanUp(domain, token, keyAuth string) error {
method Timeout (line 147) | func (d *DNSProvider) Timeout() (timeout, interval time.Duration) {
function NewDefaultConfig (line 49) | func NewDefaultConfig() *Config {
function NewDNSProvider (line 58) | func NewDNSProvider() (*DNSProvider, error) {
function NewDNSProviderConfig (line 71) | func NewDNSProviderConfig(config *Config) (*DNSProvider, error) {
FILE: pkg/core/certifier/challengers/dns01/xinnet/xinnet.go
type ChallengerConfig (line 11) | type ChallengerConfig struct
function NewChallenger (line 18) | func NewChallenger(config *ChallengerConfig) (certifier.ACMEChallenger, ...
FILE: pkg/core/certifier/challengers/http01/local/local.go
type ChallengerConfig (line 11) | type ChallengerConfig struct
function NewChallenger (line 16) | func NewChallenger(config *ChallengerConfig) (certifier.ACMEChallenger, ...
FILE: pkg/core/certifier/challengers/http01/s3/s3.go
type ChallengerConfig (line 15) | type ChallengerConfig struct
function NewChallenger (line 36) | func NewChallenger(config *ChallengerConfig) (certifier.ACMEChallenger, ...
type provider (line 50) | type provider struct
method Present (line 55) | func (p *provider) Present(domain, token, keyAuth string) error {
method CleanUp (line 64) | func (p *provider) CleanUp(domain, token, keyAuth string) error {
function createS3Client (line 73) | func createS3Client(config ChallengerConfig) (*s3.Client, error) {
FILE: pkg/core/certifier/challengers/http01/ssh/ssh.go
type ServerConfig (line 15) | type ServerConfig struct
type ChallengerConfig (line 37) | type ChallengerConfig struct
function NewChallenger (line 48) | func NewChallenger(config *ChallengerConfig) (certifier.ACMEChallenger, ...
type provider (line 57) | type provider struct
method Present (line 61) | func (p *provider) Present(domain, token, keyAuth string) error {
method CleanUp (line 77) | func (p *provider) CleanUp(domain, token, keyAuth string) error {
function createSshClient (line 92) | func createSshClient(config ChallengerConfig) (*ssh.Client, error) {
FILE: pkg/core/certmgr/provider.go
type Provider (line 10) | type Provider interface
type OperateResult (line 44) | type OperateResult struct
type UploadResult (line 49) | type UploadResult struct
FILE: pkg/core/certmgr/providers/1panel/1panel.go
type CertmgrConfig (line 18) | type CertmgrConfig struct
type Certmgr (line 32) | type Certmgr struct
method SetLogger (line 57) | func (c *Certmgr) SetLogger(logger *slog.Logger) {
method Upload (line 65) | func (c *Certmgr) Upload(ctx context.Context, certPEM, privkeyPEM stri...
method Replace (line 123) | func (c *Certmgr) Replace(ctx context.Context, certIdOrName string, ce...
method tryGetResultIfCertExists (line 185) | func (c *Certmgr) tryGetResultIfCertExists(ctx context.Context, certPE...
function NewCertmgr (line 40) | func NewCertmgr(config *CertmgrConfig) (*Certmgr, error) {
constant sdkVersionV1 (line 291) | sdkVersionV1 = "v1"
constant sdkVersionV2 (line 292) | sdkVersionV2 = "v2"
function createSDKClient (line 295) | func createSDKClient(serverUrl, apiVersion, apiKey string, skipTlsVerify...
FILE: pkg/core/certmgr/providers/1panel/1panel_test.go
function init (line 23) | func init() {
function TestDeploy (line 43) | func TestDeploy(t *testing.T) {
FILE: pkg/core/certmgr/providers/aliyun-cas/aliyun_cas.go
type CertmgrConfig (line 22) | type CertmgrConfig struct
type Certmgr (line 33) | type Certmgr struct
method SetLogger (line 58) | func (c *Certmgr) SetLogger(logger *slog.Logger) {
method Upload (line 66) | func (c *Certmgr) Upload(ctx context.Context, certPEM, privkeyPEM stri...
method Replace (line 187) | func (c *Certmgr) Replace(ctx context.Context, certIdOrName string, ce...
function NewCertmgr (line 41) | func NewCertmgr(config *CertmgrConfig) (*Certmgr, error) {
function createSDKClient (line 191) | func createSDKClient(accessKeyId, accessKeySecret, region string) (*inte...
FILE: pkg/core/certmgr/providers/aliyun-cas/aliyun_cas_test.go
function init (line 23) | func init() {
function TestDeploy (line 43) | func TestDeploy(t *testing.T) {
FILE: pkg/core/certmgr/providers/aliyun-cas/internal/client.go
type CasClient (line 14) | type CasClient struct
method Init (line 25) | func (client *CasClient) Init(config *openapiutil.Config) (_err error) {
method GetUserCertificateDetailWithContext (line 38) | func (client *CasClient) GetUserCertificateDetailWithContext(ctx conte...
method ListUserCertificateOrderWithContext (line 76) | func (client *CasClient) ListUserCertificateOrderWithContext(ctx conte...
method UploadUserCertificateWithContext (line 130) | func (client *CasClient) UploadUserCertificateWithContext(ctx context....
function NewCasClient (line 19) | func NewCasClient(config *openapiutil.Config) (*CasClient, error) {
FILE: pkg/core/certmgr/providers/aliyun-slb/aliyun_slb.go
type CertmgrConfig (line 26) | type CertmgrConfig struct
type Certmgr (line 37) | type Certmgr struct
method SetLogger (line 62) | func (c *Certmgr) SetLogger(logger *slog.Logger) {
method Upload (line 70) | func (c *Certmgr) Upload(ctx context.Context, certPEM, privkeyPEM stri...
method Replace (line 149) | func (c *Certmgr) Replace(ctx context.Context, certIdOrName string, ce...
function NewCertmgr (line 45) | func NewCertmgr(config *CertmgrConfig) (*Certmgr, error) {
function createSDKClient (line 153) | func createSDKClient(accessKeyId, accessKeySecret, region string) (*inte...
FILE: pkg/core/certmgr/providers/aliyun-slb/aliyun_slb_test.go
function init (line 23) | func init() {
function TestDeploy (line 43) | func TestDeploy(t *testing.T) {
FILE: pkg/core/certmgr/providers/aliyun-slb/internal/client.go
type SlbClient (line 14) | type SlbClient struct
method Init (line 25) | func (client *SlbClient) Init(config *openapi.Config) (_err error) {
method DescribeServerCertificatesWithContext (line 38) | func (client *SlbClient) DescribeServerCertificatesWithContext(ctx con...
method UploadServerCertificateWithContext (line 100) | func (client *SlbClient) UploadServerCertificateWithContext(ctx contex...
function NewSlbClient (line 19) | func NewSlbClient(config *openapi.Config) (*SlbClient, error) {
FILE: pkg/core/certmgr/providers/aws-acm/aws_acm.go
type CertmgrConfig (line 19) | type CertmgrConfig struct
type Certmgr (line 28) | type Certmgr struct
method SetLogger (line 53) | func (c *Certmgr) SetLogger(logger *slog.Logger) {
method Upload (line 61) | func (c *Certmgr) Upload(ctx context.Context, certPEM, privkeyPEM stri...
method Replace (line 154) | func (c *Certmgr) Replace(ctx context.Context, certIdOrName string, ce...
function NewCertmgr (line 36) | func NewCertmgr(config *CertmgrConfig) (*Certmgr, error) {
function createSDKClient (line 178) | func createSDKClient(accessKeyId, secretAccessKey, region string) (*awsa...
FILE: pkg/core/certmgr/providers/aws-iam/aws_iam.go
type CertmgrConfig (line 19) | type CertmgrConfig struct
type Certmgr (line 31) | type Certmgr struct
method SetLogger (line 56) | func (c *Certmgr) SetLogger(logger *slog.Logger) {
method Upload (line 64) | func (c *Certmgr) Upload(ctx context.Context, certPEM, privkeyPEM stri...
method Replace (line 167) | func (c *Certmgr) Replace(ctx context.Context, certIdOrName string, ce...
function NewCertmgr (line 39) | func NewCertmgr(config *CertmgrConfig) (*Certmgr, error) {
function createSDKClient (line 171) | func createSDKClient(accessKeyId, secretAccessKey, region string) (*awsi...
FILE: pkg/core/certmgr/providers/azure-keyvault/azure_keyvault.go
type CertmgrConfig (line 21) | type CertmgrConfig struct
type Certmgr (line 34) | type Certmgr struct
method SetLogger (line 59) | func (c *Certmgr) SetLogger(logger *slog.Logger) {
method Upload (line 67) | func (c *Certmgr) Upload(ctx context.Context, certPEM, privkeyPEM stri...
method Replace (line 170) | func (c *Certmgr) Replace(ctx context.Context, certIdOrName string, ce...
function NewCertmgr (line 42) | func NewCertmgr(config *CertmgrConfig) (*Certmgr, error) {
constant kvTagCertCN (line 223) | kvTagCertCN = "certimate/cert-cn"
constant kvTagCertSN (line 224) | kvTagCertSN = "certimate/cert-sn"
function createSDKClient (line 227) | func createSDKClient(cloudName, tenantId, clientId, clientSecret, keyvau...
FILE: pkg/core/certmgr/providers/azure-keyvault/azure_keyvault_test.go
function init (line 25) | func init() {
function TestDeploy (line 49) | func TestDeploy(t *testing.T) {
FILE: pkg/core/certmgr/providers/baiducloud-cert/baiducloud_cert.go
type CertmgrConfig (line 16) | type CertmgrConfig struct
type Certmgr (line 23) | type Certmgr struct
method SetLogger (line 48) | func (c *Certmgr) SetLogger(logger *slog.Logger) {
method Upload (line 56) | func (c *Certmgr) Upload(ctx context.Context, certPEM, privkeyPEM stri...
method Replace (line 126) | func (c *Certmgr) Replace(ctx context.Context, certIdOrName string, ce...
function NewCertmgr (line 31) | func NewCertmgr(config *CertmgrConfig) (*Certmgr, error) {
function createSDKClient (line 130) | func createSDKClient(accessKeyId, secretAccessKey string) (*baiducert.Cl...
FILE: pkg/core/certmgr/providers/baiducloud-cert/baiducloud_cert_test.go
function init (line 22) | func init() {
function TestDeploy (line 40) | func TestDeploy(t *testing.T) {
FILE: pkg/core/certmgr/providers/baishan-cdn/baishan_cdn.go
type CertmgrConfig (line 18) | type CertmgrConfig struct
type Certmgr (line 23) | type Certmgr struct
method SetLogger (line 48) | func (d *Certmgr) SetLogger(logger *slog.Logger) {
method Upload (line 56) | func (d *Certmgr) Upload(ctx context.Context, certPEM, privkeyPEM stri...
method Replace (line 92) | func (d *Certmgr) Replace(ctx context.Context, certIdOrName string, ce...
function NewCertmgr (line 31) | func NewCertmgr(config *CertmgrConfig) (*Certmgr, error) {
function createSDKClient (line 110) | func createSDKClient(apiToken string) (*baishansdk.Client, error) {
FILE: pkg/core/certmgr/providers/baishan-cdn/baishan_cdn_test.go
function init (line 20) | func init() {
function TestDeploy (line 36) | func TestDeploy(t *testing.T) {
FILE: pkg/core/certmgr/providers/byteplus-cdn/byteplus_cdn.go
type CertmgrConfig (line 20) | type CertmgrConfig struct
type Certmgr (line 27) | type Certmgr struct
method SetLogger (line 51) | func (c *Certmgr) SetLogger(logger *slog.Logger) {
method Upload (line 59) | func (c *Certmgr) Upload(ctx context.Context, certPEM, privkeyPEM stri...
method Replace (line 139) | func (c *Certmgr) Replace(ctx context.Context, certIdOrName string, ce...
function NewCertmgr (line 35) | func NewCertmgr(config *CertmgrConfig) (*Certmgr, error) {
FILE: pkg/core/certmgr/providers/ctcccloud-ao/ctcccloud_ao.go
type CertmgrConfig (line 19) | type CertmgrConfig struct
type Certmgr (line 26) | type Certmgr struct
method SetLogger (line 51) | func (c *Certmgr) SetLogger(logger *slog.Logger) {
method Upload (line 59) | func (c *Certmgr) Upload(ctx context.Context, certPEM, privkeyPEM stri...
method Replace (line 162) | func (c *Certmgr) Replace(ctx context.Context, certIdOrName string, ce...
function NewCertmgr (line 34) | func NewCertmgr(config *CertmgrConfig) (*Certmgr, error) {
function createSDKClient (line 166) | func createSDKClient(accessKeyId, secretAccessKey string) (*ctyunao.Clie...
FILE: pkg/core/certmgr/providers/ctcccloud-ao/ctcccloud_ao_test.go
function init (line 22) | func init() {
function TestDeploy (line 40) | func TestDeploy(t *testing.T) {
FILE: pkg/core/certmgr/providers/ctcccloud-cdn/ctcccloud_cdn.go
type CertmgrConfig (line 19) | type CertmgrConfig struct
type Certmgr (line 26) | type Certmgr struct
method SetLogger (line 51) | func (c *Certmgr) SetLogger(logger *slog.Logger) {
method Upload (line 59) | func (c *Certmgr) Upload(ctx context.Context, certPEM, privkeyPEM stri...
method Replace (line 162) | func (c *Certmgr) Replace(ctx context.Context, certIdOrName string, ce...
function NewCertmgr (line 34) | func NewCertmgr(config *CertmgrConfig) (*Certmgr, error) {
function createSDKClient (line 166) | func createSDKClient(accessKeyId, secretAccessKey string) (*ctyuncdn.Cli...
FILE: pkg/core/certmgr/providers/ctcccloud-cdn/ctcccloud_cdn_test.go
function init (line 22) | func init() {
function TestDeploy (line 40) | func TestDeploy(t *testing.T) {
FILE: pkg/core/certmgr/providers/ctcccloud-cms/ctcccloud_cms.go
type CertmgrConfig (line 20) | type CertmgrConfig struct
type Certmgr (line 27) | type Certmgr struct
method SetLogger (line 52) | func (c *Certmgr) SetLogger(logger *slog.Logger) {
method Upload (line 60) | func (c *Certmgr) Upload(ctx context.Context, certPEM, privkeyPEM stri...
method Replace (line 114) | func (c *Certmgr) Replace(ctx context.Context, certIdOrName string, ce...
method tryGetResultIfCertExists (line 118) | func (c *Certmgr) tryGetResultIfCertExists(ctx context.Context, certPE...
function NewCertmgr (line 35) | func NewCertmgr(config *CertmgrConfig) (*Certmgr, error) {
function createSDKClient (line 192) | func createSDKClient(accessKeyId, secretAccessKey string) (*ctyuncms.Cli...
FILE: pkg/core/certmgr/providers/ctcccloud-cms/ctcccloud_cms_test.go
function init (line 22) | func init() {
function TestDeploy (line 40) | func TestDeploy(t *testing.T) {
FILE: pkg/core/certmgr/providers/ctcccloud-elb/ctcccloud_elb.go
type CertmgrConfig (line 18) | type CertmgrConfig struct
type Certmgr (line 27) | type Certmgr struct
method SetLogger (line 52) | func (c *Certmgr) SetLogger(logger *slog.Logger) {
method Upload (line 60) | func (c *Certmgr) Upload(ctx context.Context, certPEM, privkeyPEM stri...
method Replace (line 109) | func (c *Certmgr) Replace(ctx context.Context, certIdOrName string, ce...
function NewCertmgr (line 35) | func NewCertmgr(config *CertmgrConfig) (*Certmgr, error) {
function createSDKClient (line 113) | func createSDKClient(accessKeyId, secretAccessKey string) (*ctyunelb.Cli...
FILE: pkg/core/certmgr/providers/ctcccloud-elb/ctcccloud_elb_test.go
function init (line 23) | func init() {
function TestDeploy (line 43) | func TestDeploy(t *testing.T) {
FILE: pkg/core/certmgr/providers/ctcccloud-icdn/ctcccloud_icdn.go
type CertmgrConfig (line 19) | type CertmgrConfig struct
type Certmgr (line 26) | type Certmgr struct
method SetLogger (line 51) | func (c *Certmgr) SetLogger(logger *slog.Logger) {
method Upload (line 59) | func (c *Certmgr) Upload(ctx context.Context, certPEM, privkeyPEM stri...
method Replace (line 162) | func (c *Certmgr) Replace(ctx context.Context, certIdOrName string, ce...
function NewCertmgr (line 34) | func NewCertmgr(config *CertmgrConfig) (*Certmgr, error) {
function createSDKClient (line 166) | func createSDKClient(accessKeyId, secretAccessKey string) (*ctyunicdn.Cl...
FILE: pkg/core/certmgr/providers/ctcccloud-icdn/ctcccloud_icdn_test.go
function init (line 22) | func init() {
function TestDeploy (line 40) | func TestDeploy(t *testing.T) {
FILE: pkg/core/certmgr/providers/ctcccloud-lvdn/ctcccloud_lvdn.go
type CertmgrConfig (line 19) | type CertmgrConfig struct
type Certmgr (line 26) | type Certmgr struct
method SetLogger (line 51) | func (c *Certmgr) SetLogger(logger *slog.Logger) {
method Upload (line 59) | func (c *Certmgr) Upload(ctx context.Context, certPEM, privkeyPEM stri...
method Replace (line 162) | func (c *Certmgr) Replace(ctx context.Context, certIdOrName string, ce...
function NewCertmgr (line 34) | func NewCertmgr(config *CertmgrConfig) (*Certmgr, error) {
function createSDKClient (line 166) | func createSDKClient(accessKeyId, secretAccessKey string) (*ctyunlvdn.Cl...
FILE: pkg/core/certmgr/providers/ctcccloud-lvdn/ctcccloud_lvdn_test.go
function init (line 22) | func init() {
function TestDeploy (line 40) | func TestDeploy(t *testing.T) {
FILE: pkg/core/certmgr/providers/dogecloud/dogecloud.go
type CertmgrConfig (line 14) | type CertmgrConfig struct
type Certmgr (line 21) | type Certmgr struct
method SetLogger (line 46) | func (c *Certmgr) SetLogger(logger *slog.Logger) {
method Upload (line 54) | func (c *Certmgr) Upload(ctx context.Context, certPEM, privkeyPEM stri...
method Replace (line 77) | func (c *Certmgr) Replace(ctx context.Context, certIdOrName string, ce...
function NewCertmgr (line 29) | func NewCertmgr(config *CertmgrConfig) (*Certmgr, error) {
function createSDKClient (line 81) | func createSDKClient(accessKey, secretKey string) (*dogesdk.Client, erro...
FILE: pkg/core/certmgr/providers/dokploy/dokploy.go
type CertmgrConfig (line 17) | type CertmgrConfig struct
type Certmgr (line 26) | type Certmgr struct
method SetLogger (line 51) | func (c *Certmgr) SetLogger(logger *slog.Logger) {
method Upload (line 59) | func (c *Certmgr) Upload(ctx context.Context, certPEM, privkeyPEM stri...
method Replace (line 109) | func (c *Certmgr) Replace(ctx context.Context, certIdOrName string, ce...
function NewCertmgr (line 34) | func NewCertmgr(config *CertmgrConfig) (*Certmgr, error) {
function createSDKClient (line 113) | func createSDKClient(serverUrl, apiKey string, skipTlsVerify bool) (*dok...
FILE: pkg/core/certmgr/providers/dokploy/dokploy_test.go
function init (line 22) | func init() {
function TestDeploy (line 40) | func TestDeploy(t *testing.T) {
FILE: pkg/core/certmgr/providers/gcore-cdn/gcore_cdn.go
type CertmgrConfig (line 17) | type CertmgrConfig struct
type Certmgr (line 22) | type Certmgr struct
method SetLogger (line 47) | func (c *Certmgr) SetLogger(logger *slog.Logger) {
method Upload (line 55) | func (c *Certmgr) Upload(ctx context.Context, certPEM, privkeyPEM stri...
method Replace (line 77) | func (c *Certmgr) Replace(ctx context.Context, certIdOrName string, ce...
function NewCertmgr (line 30) | func NewCertmgr(config *CertmgrConfig) (*Certmgr, error) {
function createSDKClient (line 81) | func createSDKClient(apiToken string) (*sslcerts.Service, error) {
FILE: pkg/core/certmgr/providers/huaweicloud-elb/huaweicloud_elb.go
type CertmgrConfig (line 25) | type CertmgrConfig struct
type Certmgr (line 36) | type Certmgr struct
method SetLogger (line 61) | func (c *Certmgr) SetLogger(logger *slog.Logger) {
method Upload (line 69) | func (c *Certmgr) Upload(ctx context.Context, certPEM, privkeyPEM stri...
method Replace (line 148) | func (c *Certmgr) Replace(ctx context.Context, certIdOrName string, ce...
function NewCertmgr (line 44) | func NewCertmgr(config *CertmgrConfig) (*Certmgr, error) {
function createSDKClient (line 169) | func createSDKClient(accessKeyId, secretAccessKey, region string) (*inte...
function getSDKProjectId (line 199) | func getSDKProjectId(accessKeyId, secretAccessKey, region string) (strin...
FILE: pkg/core/certmgr/providers/huaweicloud-elb/internal/client.go
type ElbClient (line 11) | type ElbClient struct
method CreateCertificate (line 19) | func (c *ElbClient) CreateCertificate(request *model.CreateCertificate...
method ListCertificates (line 29) | func (c *ElbClient) ListCertificates(request *model.ListCertificatesRe...
method UpdateCertificate (line 39) | func (c *ElbClient) UpdateCertificate(request *model.UpdateCertificate...
function NewElbClient (line 15) | func NewElbClient(hcClient *httpclient.HcHttpClient) *ElbClient {
FILE: pkg/core/certmgr/providers/huaweicloud-scm/huaweicloud_scm.go
type CertmgrConfig (line 22) | type CertmgrConfig struct
type Certmgr (line 33) | type Certmgr struct
method SetLogger (line 58) | func (c *Certmgr) SetLogger(logger *slog.Logger) {
method Upload (line 66) | func (c *Certmgr) Upload(ctx context.Context, certPEM, privkeyPEM stri...
method Replace (line 170) | func (c *Certmgr) Replace(ctx context.Context, certIdOrName string, ce...
function NewCertmgr (line 41) | func NewCertmgr(config *CertmgrConfig) (*Certmgr, error) {
function createSDKClient (line 174) | func createSDKClient(accessKeyId, secretAccessKey, region string) (*inte...
FILE: pkg/core/certmgr/providers/huaweicloud-scm/internal/client.go
type ScmClient (line 11) | type ScmClient struct
method ExportCertificate (line 19) | func (c *ScmClient) ExportCertificate(request *model.ExportCertificate...
method ImportCertificate (line 29) | func (c *ScmClient) ImportCertificate(request *model.ImportCertificate...
method ListCertificates (line 39) | func (c *ScmClient) ListCertificates(request *model.ListCertificatesRe...
function NewScmClient (line 15) | func NewScmClient(hcClient *httpclient.HcHttpClient) *ScmClient {
FILE: pkg/core/certmgr/providers/huaweicloud-waf/huaweicloud_waf.go
type CertmgrConfig (line 25) | type CertmgrConfig struct
type Certmgr (line 36) | type Certmgr struct
method SetLogger (line 61) | func (c *Certmgr) SetLogger(logger *slog.Logger) {
method Upload (line 69) | func (c *Certmgr) Upload(ctx context.Context, certPEM, privkeyPEM stri...
method Replace (line 150) | func (c *Certmgr) Replace(ctx context.Context, certIdOrName string, ce...
function NewCertmgr (line 44) | func NewCertmgr(config *CertmgrConfig) (*Certmgr, error) {
function createSDKClient (line 154) | func createSDKClient(accessKeyId, secretAccessKey, region string) (*inte...
function getSDKProjectId (line 186) | func getSDKProjectId(accessKeyId, secretAccessKey, region string) (strin...
FILE: pkg/core/certmgr/providers/huaweicloud-waf/internal/client.go
type WafClient (line 11) | type WafClient struct
method CreateCertificate (line 19) | func (c *WafClient) CreateCertificate(request *model.CreateCertificate...
method ListCertificates (line 29) | func (c *WafClient) ListCertificates(request *model.ListCertificatesRe...
method ShowCertificate (line 39) | func (c *WafClient) ShowCertificate(request *model.ShowCertificateRequ...
function NewWafClient (line 15) | func NewWafClient(hcClient *httpclient.HcHttpClient) *WafClient {
FILE: pkg/core/certmgr/providers/jdcloud-ssl/jdcloud_ssl.go
type CertmgrConfig (line 21) | type CertmgrConfig struct
type Certmgr (line 28) | type Certmgr struct
method SetLogger (line 53) | func (c *Certmgr) SetLogger(logger *slog.Logger) {
method Upload (line 61) | func (c *Certmgr) Upload(ctx context.Context, certPEM, privkeyPEM stri...
method Replace (line 156) | func (c *Certmgr) Replace(ctx context.Context, certIdOrName string, ce...
function NewCertmgr (line 36) | func NewCertmgr(config *CertmgrConfig) (*Certmgr, error) {
function createSDKClient (line 160) | func createSDKClient(accessKeyId, accessKeySecret string) (*jdsslclient....
FILE: pkg/core/certmgr/providers/jdcloud-ssl/jdcloud_ssl_test.go
function init (line 22) | func init() {
function TestDeploy (line 40) | func TestDeploy(t *testing.T) {
FILE: pkg/core/certmgr/providers/nginxproxymanager/consts.go
constant AUTH_METHOD_PASSWORD (line 4) | AUTH_METHOD_PASSWORD = "password"
constant AUTH_METHOD_TOKEN (line 5) | AUTH_METHOD_TOKEN = "token"
FILE: pkg/core/certmgr/providers/nginxproxymanager/nginxproxymanager.go
type CertmgrConfig (line 17) | type CertmgrConfig struct
type Certmgr (line 34) | type Certmgr struct
method SetLogger (line 59) | func (c *Certmgr) SetLogger(logger *slog.Logger) {
method Upload (line 67) | func (c *Certmgr) Upload(ctx context.Context, certPEM, privkeyPEM stri...
method Replace (line 126) | func (c *Certmgr) Replace(ctx context.Context, certIdOrName string, ce...
function NewCertmgr (line 42) | func NewCertmgr(config *CertmgrConfig) (*Certmgr, error) {
function createSDKClient (line 155) | func createSDKClient(serverUrl, authMethod, username, password, apiToken...
FILE: pkg/core/certmgr/providers/nginxproxymanager/nginxproxymanager_test.go
function init (line 23) | func init() {
function TestDeploy (line 43) | func TestDeploy(t *testing.T) {
FILE: pkg/core/certmgr/providers/qiniu-sslcert/qiniu_sslcert.go
type CertmgrConfig (line 20) | type CertmgrConfig struct
type Certmgr (line 27) | type Certmgr struct
method SetLogger (line 52) | func (c *Certmgr) SetLogger(logger *slog.Logger) {
method Upload (line 60) | func (c *Certmgr) Upload(ctx context.Context, certPEM, privkeyPEM stri...
method Replace (line 149) | func (c *Certmgr) Replace(ctx context.Context, certIdOrName string, ce...
function NewCertmgr (line 35) | func NewCertmgr(config *CertmgrConfig) (*Certmgr, error) {
function createSDKClient (line 153) | func createSDKClient(accessKey, secretKey string) (*qiniusdk.SslCertMana...
FILE: pkg/core/certmgr/providers/qiniu-sslcert/qiniu_sslcert_test.go
function init (line 22) | func init() {
function TestDeploy (line 40) | func TestDeploy(t *testing.T) {
FILE: pkg/core/certmgr/providers/rainyun-sslcenter/rainyun_sslcenter.go
type CertmgrConfig (line 18) | type CertmgrConfig struct
type Certmgr (line 23) | type Certmgr struct
method SetLogger (line 48) | func (c *Certmgr) SetLogger(logger *slog.Logger) {
method Upload (line 56) | func (c *Certmgr) Upload(ctx context.Context, certPEM, privkeyPEM stri...
method Replace (line 87) | func (c *Certmgr) Replace(ctx context.Context, certIdOrName string, ce...
method tryGetResultIfCertExists (line 108) | func (c *Certmgr) tryGetResultIfCertExists(ctx context.Context, certPE...
function NewCertmgr (line 31) | func NewCertmgr(config *CertmgrConfig) (*Certmgr, error) {
function createSDKClient (line 181) | func createSDKClient(apiKey string) (*rainyunsdk.Client, error) {
FILE: pkg/core/certmgr/providers/rainyun-sslcenter/rainyun_sslcenter_test.go
function init (line 21) | func init() {
function TestDeploy (line 37) | func TestDeploy(t *testing.T) {
FILE: pkg/core/certmgr/providers/tencentcloud-ssl/internal/client.go
type SslClient (line 14) | type SslClient struct
method UploadCertificate (line 26) | func (c *SslClient) UploadCertificate(request *tcssl.UploadCertificate...
method UploadCertificateWithContext (line 30) | func (c *SslClient) UploadCertificateWithContext(ctx context.Context, ...
function NewSslClient (line 18) | func NewSslClient(credential common.CredentialIface, region string, clie...
FILE: pkg/core/certmgr/providers/tencentcloud-ssl/tencentcloud_ssl.go
type CertmgrConfig (line 17) | type CertmgrConfig struct
type Certmgr (line 26) | type Certmgr struct
method SetLogger (line 51) | func (c *Certmgr) SetLogger(logger *slog.Logger) {
method Upload (line 59) | func (c *Certmgr) Upload(ctx context.Context, certPEM, privkeyPEM stri...
method Replace (line 77) | func (c *Certmgr) Replace(ctx context.Context, certIdOrName string, ce...
function NewCertmgr (line 34) | func NewCertmgr(config *CertmgrConfig) (*Certmgr, error) {
function createSDKClient (line 81) | func createSDKClient(secretId, secretKey, endpoint string) (*internal.Ss...
FILE: pkg/core/certmgr/providers/tencentcloud-ssl/tencentcloud_ssl_test.go
function init (line 22) | func init() {
function TestDeploy (line 40) | func TestDeploy(t *testing.T) {
FILE: pkg/core/certmgr/providers/ucloud-ulb/ucloud_ulb.go
type CertmgrConfig (line 19) | type CertmgrConfig struct
type Certmgr (line 30) | type Certmgr struct
method SetLogger (line 55) | func (c *Certmgr) SetLogger(logger *slog.Logger) {
method Upload (line 63) | func (c *Certmgr) Upload(ctx context.Context, certPEM, privkeyPEM stri...
method Replace (line 98) | func (c *Certmgr) Replace(ctx context.Context, certIdOrName string, ce...
method tryGetResultIfCertExists (line 102) | func (c *Certmgr) tryGetResultIfCertExists(ctx context.Context, certPE...
function NewCertmgr (line 38) | func NewCertmgr(config *CertmgrConfig) (*Certmgr, error) {
function createSDKClient (line 175) | func createSDKClient(privateKey, publicKey, projectId, region string) (*...
FILE: pkg/core/certmgr/providers/ucloud-ulb/ucloud_ulb_test.go
function init (line 23) | func init() {
function TestDeploy (line 43) | func TestDeploy(t *testing.T) {
FILE: pkg/core/certmgr/providers/ucloud-upathx/ucloud_upathx.go
type CertmgrConfig (line 20) | type CertmgrConfig struct
type Certmgr (line 29) | type Certmgr struct
method SetLogger (line 54) | func (c *Certmgr) SetLogger(logger *slog.Logger) {
method Upload (line 62) | func (c *Certmgr) Upload(ctx context.Context, certPEM, privkeyPEM stri...
method Replace (line 97) | func (c *Certmgr) Replace(ctx context.Context, certIdOrName string, ce...
method tryGetResultIfCertExists (line 101) | func (c *Certmgr) tryGetResultIfCertExists(ctx context.Context, certPE...
function NewCertmgr (line 37) | func NewCertmgr(config *CertmgrConfig) (*Certmgr, error) {
function createSDKClient (line 174) | func createSDKClient(privateKey, publicKey, projectId string) (*ucloudsd...
function getSDKDefaultProjectId (line 203) | func getSDKDefaultProjectId(privateKey, publicKey string) (string, error) {
FILE: pkg/core/certmgr/providers/ucloud-upathx/ucloud_upathx_test.go
function init (line 22) | func init() {
function TestDeploy (line 40) | func TestDeploy(t *testing.T) {
FILE: pkg/core/certmgr/providers/ucloud-ussl/ucloud_ussl.go
type CertmgrConfig (line 23) | type CertmgrConfig struct
type Certmgr (line 32) | type Certmgr struct
method SetLogger (line 57) | func (c *Certmgr) SetLogger(logger *slog.Logger) {
method Upload (line 65) | func (c *Certmgr) Upload(ctx context.Context, certPEM, privkeyPEM stri...
method Replace (line 108) | func (c *Certmgr) Replace(ctx context.Context, certIdOrName string, ce...
method tryGetResultIfCertExists (line 112) | func (c *Certmgr) tryGetResultIfCertExists(ctx context.Context, certPE...
function NewCertmgr (line 40) | func NewCertmgr(config *CertmgrConfig) (*Certmgr, error) {
function createSDKClient (line 227) | func createSDKClient(privateKey, publicKey, projectId string) (*ucloudsd...
FILE: pkg/core/certmgr/providers/ucloud-ussl/ucloud_ussl_test.go
function init (line 22) | func init() {
function TestDeploy (line 40) | func TestDeploy(t *testing.T) {
FILE: pkg/core/certmgr/providers/upyun-ssl/upyun_ssl.go
type CertmgrConfig (line 13) | type CertmgrConfig struct
type Certmgr (line 20) | type Certmgr struct
method SetLogger (line 45) | func (c *Certmgr) SetLogger(logger *slog.Logger) {
method Upload (line 53) | func (c *Certmgr) Upload(ctx context.Context, certPEM, privkeyPEM stri...
method Replace (line 70) | func (c *Certmgr) Replace(ctx context.Context, certIdOrName string, ce...
function NewCertmgr (line 28) | func NewCertmgr(config *CertmgrConfig) (*Certmgr, error) {
function createSDKClient (line 74) | func createSDKClient(username, password string) (*upyunsdk.Client, error) {
FILE: pkg/core/certmgr/providers/upyun-ssl/upyun_ssl_test.go
function init (line 22) | func init() {
function TestDeploy (line 40) | func TestDeploy(t *testing.T) {
FILE: pkg/core/certmgr/providers/volcengine-cdn/internal/client.go
type CdnClient (line 16) | type CdnClient struct
method newRequest (line 52) | func (c *CdnClient) newRequest(op *request.Operation, params, data int...
method AddCertificate (line 58) | func (c *CdnClient) AddCertificate(input *cdn.AddCertificateInput) (*c...
method AddCertificateRequest (line 63) | func (c *CdnClient) AddCertificateRequest(input *cdn.AddCertificateInp...
method ListCertInfo (line 82) | func (c *CdnClient) ListCertInfo(input *cdn.ListCertInfoInput) (*cdn.L...
method ListCertInfoRequest (line 87) | func (c *CdnClient) ListCertInfoRequest(input *cdn.ListCertInfoInput) ...
function NewCdnClient (line 20) | func NewCdnClient(p client.ConfigProvider, cfgs ...*volcengine.Config) *...
function newCdnClient (line 25) | func newCdnClient(cfg volcengine.Config, handlers request.Handlers, endp...
FILE: pkg/core/certmgr/providers/volcengine-cdn/volcengine_cdn.go
type CertmgrConfig (line 23) | type CertmgrConfig struct
type Certmgr (line 30) | type Certmgr struct
method SetLogger (line 55) | func (c *Certmgr) SetLogger(logger *slog.Logger) {
method Upload (line 63) | func (c *Certmgr) Upload(ctx context.Context, certPEM, privkeyPEM stri...
method Replace (line 143) | func (c *Certmgr) Replace(ctx context.Context, certIdOrName string, ce...
function NewCertmgr (line 38) | func NewCertmgr(config *CertmgrConfig) (*Certmgr, error) {
function createSDKClient (line 147) | func createSDKClient(accessKeyId, accessKeySecret string) (*internal.Cdn...
FILE: pkg/core/certmgr/providers/volcengine-certcenter/internal/client.go
type CertificateserviceClient (line 16) | type CertificateserviceClient struct
method newRequest (line 52) | func (c *CertificateserviceClient) newRequest(op *request.Operation, p...
method ImportCertificate (line 58) | func (c *CertificateserviceClient) ImportCertificate(input *certificat...
method ImportCertificateRequest (line 63) | func (c *CertificateserviceClient) ImportCertificateRequest(input *cer...
function NewCertificateserviceClient (line 20) | func NewCertificateserviceClient(p client.ConfigProvider, cfgs ...*volce...
function newCertificateserviceClient (line 25) | func newCertificateserviceClient(cfg volcengine.Config, handlers request...
FILE: pkg/core/certmgr/providers/volcengine-certcenter/volcengine_certcenter.go
type CertmgrConfig (line 17) | type CertmgrConfig struct
type Certmgr (line 26) | type Certmgr struct
method SetLogger (line 51) | func (c *Certmgr) SetLogger(logger *slog.Logger) {
method Upload (line 59) | func (c *Certmgr) Upload(ctx context.Context, certPEM, privkeyPEM stri...
method Replace (line 92) | func (c *Certmgr) Replace(ctx context.Context, certIdOrName string, ce...
function NewCertmgr (line 34) | func NewCertmgr(config *CertmgrConfig) (*Certmgr, error) {
function createSDKClient (line 96) | func createSDKClient(accessKeyId, accessKeySecret, region string) (*inte...
FILE: pkg/core/certmgr/providers/volcengine-certcenter/volcengine_certcenter_test.go
function init (line 22) | func init() {
function TestDeploy (line 40) | func TestDeploy(t *testing.T) {
FILE: pkg/core/certmgr/providers/volcengine-live/volcengine_live.go
type CertmgrConfig (line 18) | type CertmgrConfig struct
type Certmgr (line 25) | type Certmgr struct
method SetLogger (line 49) | func (c *Certmgr) SetLogger(logger *slog.Logger) {
method Upload (line 57) | func (c *Certmgr) Upload(ctx context.Context, certPEM, privkeyPEM stri...
method Replace (line 116) | func (c *Certmgr) Replace(ctx context.Context, certIdOrName string, ce...
function NewCertmgr (line 33) | func NewCertmgr(config *CertmgrConfig) (*Certmgr, error) {
FILE: pkg/core/certmgr/providers/wangsu-certificate/wangsu_certificate.go
type CertmgrConfig (line 19) | type CertmgrConfig struct
type Certmgr (line 26) | type Certmgr struct
method SetLogger (line 51) | func (c *Certmgr) SetLogger(logger *slog.Logger) {
method Upload (line 59) | func (c *Certmgr) Upload(ctx context.Context, certPEM, privkeyPEM stri...
method Replace (line 129) | func (c *Certmgr) Replace(ctx context.Context, certIdOrName string, ce...
function NewCertmgr (line 34) | func NewCertmgr(config *CertmgrConfig) (*Certmgr, error) {
function createSDKClient (line 150) | func createSDKClient(accessKeyId, accessKeySecret string) (*wangsusdk.Cl...
FILE: pkg/core/certmgr/providers/wangsu-certificate/wangsu_certificate_test.go
function init (line 22) | func init() {
function TestDeploy (line 40) | func TestDeploy(t *testing.T) {
FILE: pkg/core/deployer/provider.go
type Provider (line 9) | type Provider interface
type DeployResult (line 30) | type DeployResult struct
FILE: pkg/core/deployer/providers/1panel-console/1panel_console.go
type DeployerConfig (line 16) | type DeployerConfig struct
type Deployer (line 30) | type Deployer struct
method SetLogger (line 55) | func (d *Deployer) SetLogger(logger *slog.Logger) {
method Deploy (line 63) | func (d *Deployer) Deploy(ctx context.Context, certPEM, privkeyPEM str...
function NewDeployer (line 38) | func NewDeployer(config *DeployerConfig) (*Deployer, error) {
constant sdkVersionV1 (line 106) | sdkVersionV1 = "v1"
constant sdkVersionV2 (line 107) | sdkVersionV2 = "v2"
function createSDKClient (line 110) | func createSDKClient(serverUrl, apiVersion, apiKey string, skipTlsVerify...
FILE: pkg/core/deployer/providers/1panel-console/1panel_console_test.go
function init (line 22) | func init() {
function TestDeploy (line 42) | func TestDeploy(t *testing.T) {
FILE: pkg/core/deployer/providers/1panel/1panel.go
type DeployerConfig (line 21) | type DeployerConfig struct
type Deployer (line 47) | type Deployer struct
method SetLogger (line 85) | func (d *Deployer) SetLogger(logger *slog.Logger) {
method Deploy (line 95) | func (d *Deployer) Deploy(ctx context.Context, certPEM, privkeyPEM str...
method deployToWebsite (line 115) | func (d *Deployer) deployToWebsite(ctx context.Context, certPEM, privk...
method deployToCertificate (line 180) | func (d *Deployer) deployToCertificate(ctx context.Context, certPEM, p...
method getMatchedWebsiteIdsByCertificate (line 196) | func (d *Deployer) getMatchedWebsiteIdsByCertificate(ctx context.Conte...
method updateWebsiteCertificate (line 323) | func (d *Deployer) updateWebsiteCertificate(ctx context.Context, websi...
function NewDeployer (line 56) | func NewDeployer(config *DeployerConfig) (*Deployer, error) {
constant sdkVersionV1 (line 402) | sdkVersionV1 = "v1"
constant sdkVersionV2 (line 403) | sdkVersionV2 = "v2"
function createSDKClient (line 406) | func createSDKClient(serverUrl, apiVersion, apiKey string, skipTlsVerify...
FILE: pkg/core/deployer/providers/1panel/1panel_test.go
function init (line 23) | func init() {
function TestDeploy (line 45) | func TestDeploy(t *testing.T) {
FILE: pkg/core/deployer/providers/1panel/consts.go
constant RESOURCE_TYPE_WEBSITE (line 5) | RESOURCE_TYPE_WEBSITE = "website"
constant RESOURCE_TYPE_CERTIFICATE (line 7) | RESOURCE_TYPE_CERTIFICATE = "certificate"
constant WEBSITE_MATCH_PATTERN_SPECIFIED (line 12) | WEBSITE_MATCH_PATTERN_SPECIFIED = "specified"
constant WEBSITE_MATCH_PATTERN_CERTSAN (line 14) | WEBSITE_MATCH_PATTERN_CERTSAN = "certsan"
FILE: pkg/core/deployer/providers/aliyun-alb/aliyun_alb.go
type DeployerConfig (line 27) | type DeployerConfig struct
type Deployer (line 49) | type Deployer struct
method SetLogger (line 93) | func (d *Deployer) SetLogger(logger *slog.Logger) {
method Deploy (line 103) | func (d *Deployer) Deploy(ctx context.Context, certPEM, privkeyPEM str...
method deployToLoadbalancer (line 137) | func (d *Deployer) deployToLoadbalancer(ctx context.Context, cloudCert...
method deployToListener (line 254) | func (d *Deployer) deployToListener(ctx context.Context, cloudCertId s...
method updateListenerCertificate (line 267) | func (d *Deployer) updateListenerCertificate(ctx context.Context, clou...
method waitForListenerReady (line 442) | func (d *Deployer) waitForListenerReady(ctx context.Context, cloudList...
type wSDKClients (line 58) | type wSDKClients struct
function NewDeployer (line 63) | func NewDeployer(config *DeployerConfig) (*Deployer, error) {
function createSDKClients (line 468) | func createSDKClients(accessKeyId, accessKeySecret, region string) (*wSD...
FILE: pkg/core/deployer/providers/aliyun-alb/aliyun_alb_test.go
function init (line 25) | func init() {
function TestDeploy (line 51) | func TestDeploy(t *testing.T) {
FILE: pkg/core/deployer/providers/aliyun-alb/consts.go
constant RESOURCE_TYPE_LOADBALANCER (line 5) | RESOURCE_TYPE_LOADBALANCER = "loadbalancer"
constant RESOURCE_TYPE_LISTENER (line 7) | RESOURCE_TYPE_LISTENER = "listener"
FILE: pkg/core/deployer/providers/aliyun-alb/internal/client.go
type CasClient (line 15) | type CasClient struct
method Init (line 26) | func (client *CasClient) Init(config *openapiutil.Config) (_err error) {
method GetCertificateDetailWithContext (line 39) | func (client *CasClient) GetCertificateDetailWithContext(ctx context.C...
function NewCas
Condensed preview — 1663 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (5,481K chars).
[
{
"path": ".dockerignore",
"chars": 45,
"preview": "vendor\nui/node_modules\npb_data\nbuild\n.vscode\n"
},
{
"path": ".editorconfig",
"chars": 251,
"preview": "# http://editorconfig.org\nroot = true\n\n[*]\ncharset = utf-8\nend_of_line = crlf\nindent_size = 2\nindent_style = space\ntrim_"
},
{
"path": ".gitattributes",
"chars": 39,
"preview": "* text=auto eol=crlf\n*.go text eol=lf\n"
},
{
"path": ".github/FUNDING.yml",
"chars": 888,
"preview": "# These are supported funding model platforms\n\ngithub: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [u"
},
{
"path": ".github/ISSUE_TEMPLATE/1-bug_report.yml",
"chars": 2753,
"preview": "name: \"🐞 Bug Report\"\ndescription: \"Create a report to help us improve. / 报告缺陷来帮助我们完善。\"\ntitle: \"[Bug] Describe the Bug br"
},
{
"path": ".github/ISSUE_TEMPLATE/2-feature_request.yml",
"chars": 2033,
"preview": "name: \"💡 Feature Request\"\ndescription: \"Suggest an idea for this project. / 提出新功能请求或改进意见。\"\ntitle: \"[Feature] Describe th"
},
{
"path": ".github/ISSUE_TEMPLATE/3-questions.yml",
"chars": 1824,
"preview": "name: \"❓ Questions\"\ndescription: \"Have problem in use and need help? / 遇到了困难需要求助?\"\ntitle: \"Describe the question briefly"
},
{
"path": ".github/ISSUE_TEMPLATE/config.yml",
"chars": 323,
"preview": "blank_issues_enabled: false\ncontact_links:\n - name: \"🌐 Community / 社群讨论\"\n about: \"Join in our Telegram channel. / 加入"
},
{
"path": ".github/PULL_REQUEST_TEMPLATE.md",
"chars": 948,
"preview": "<!--\n\nIMPORTANT! Before opening a Pull Request:\n - Please ensure you have read the `CONTRIBUTING.md` in the repository"
},
{
"path": ".github/workflows/push_image.yml",
"chars": 2534,
"preview": "name: Docker Image CI (stable versions)\n\non:\n push:\n tags:\n - \"v[0-9]*\"\n - \"!v*alpha*\"\n - \"!v*beta*\"\n"
},
{
"path": ".github/workflows/push_image_next.yml",
"chars": 2496,
"preview": "name: Docker Image CI (preview versions)\n\non:\n push:\n tags:\n - \"v[0-9]*-alpha*\"\n - \"v[0-9]*-beta*\"\n -"
},
{
"path": ".github/workflows/release.yml",
"chars": 5235,
"preview": "name: Release\n\non:\n push:\n tags:\n - \"v[0-9]*\"\n\njobs:\n prepare-ui:\n runs-on: ubuntu-latest\n steps:\n "
},
{
"path": ".github/workflows/release_sync_gitee.py",
"chars": 9347,
"preview": "#!/usr/bin/env python3\nimport logging\nimport json\nimport mimetypes\nimport tempfile\nimport os\nimport random\nimport re\nim"
},
{
"path": ".github/workflows/release_sync_gitee.yml",
"chars": 563,
"preview": "name: Release Sync to Gitee\n\non:\n # release:\n # types: [published, unpublished, deleted]\n workflow_dispatch:\n\njobs:"
},
{
"path": ".gitignore",
"chars": 212,
"preview": ".vscode/*\n!.vscode/extensions.json\n!.vscode/settings.json\n!.vscode/settings.tailwind.json\n.idea\n.DS_Store\n*.suo\n*.ntvs*\n"
},
{
"path": ".goreleaser.yml",
"chars": 873,
"preview": "project_name: certimate\n\ndist: .builds\n\nbefore:\n hooks:\n - go mod tidy\n\nbuilds:\n - id: build_noncgo\n main: ./\n "
},
{
"path": ".vscode/extensions.json",
"chars": 123,
"preview": "{\n \"recommendations\": [\n \"bradlc.vscode-tailwindcss\",\n \"dbaeumer.vscode-eslint\",\n \"esbenp.prettier-vscode\",\n "
},
{
"path": ".vscode/settings.json",
"chars": 506,
"preview": "{\n \"css.customData\": [\n \".vscode/settings.tailwind.json\"\n ],\n \"editor.codeActionsOnSave\": {\n \"source.fixAll.esl"
},
{
"path": ".vscode/settings.tailwind.json",
"chars": 1812,
"preview": "{\n \"version\": 1.1,\n \"atDirectives\": [\n {\n \"name\": \"@apply\",\n \"description\": \"Use the `@apply` directive t"
},
{
"path": "CHANGELOG.md",
"chars": 126,
"preview": "A full changelog of past releases is available on [GitHub Releases](https://github.com/certimate-go/certimate/releases) "
},
{
"path": "CONTRIBUTING.md",
"chars": 4091,
"preview": "# Contribution Guide\n\n<div align=\"center\">\n\nEnglish | [简体中文](CONTRIBUTING_zh.md)\n\n</div>\n\nThank you for taking the time "
},
{
"path": "CONTRIBUTING_zh.md",
"chars": 2053,
"preview": "# 贡献指南\n\n<div align=\"center\">\n\n[English](CONTRIBUTING.md) | 简体中文\n\n</div>\n\n非常感谢你抽出时间来帮助改进 Certimate!以下是向 Certimate 提交 Pull"
},
{
"path": "Dockerfile",
"chars": 484,
"preview": "FROM node:24-alpine AS webui-builder\nWORKDIR /app\nCOPY . /app/\nRUN \\\n cd /app/ui && \\\n npm install && \\\n npm run buil"
},
{
"path": "Dockerfile.gh",
"chars": 501,
"preview": "# Build docker image on GitHub Actions runner is too slow,\n# and it doesn't support armv7 (see https://github.com/parcel"
},
{
"path": "LICENSE",
"chars": 1097,
"preview": "MIT License\n\nCopyright (c) 2025 certimate-go\nCopyright (c) 2024 Yoan.Liu\n\nPermission is hereby granted, free of charge, "
},
{
"path": "Makefile",
"chars": 814,
"preview": "# 定义变量\nBINARY_NAME=certimate\nBUILD_DIR=build\n\n# 支持的操作系统和架构列表\nOS_ARCH=\\\n linux/amd64 \\\n linux/arm64 \\\n darwin/am"
},
{
"path": "README.md",
"chars": 6041,
"preview": "<h1 align=\"center\">🔒 Certimate</h1>\n\n<div align=\"center\">\n\n[\n\nfunc Serve(app *poc"
},
{
"path": "cmd/serve_windows.go",
"chars": 1345,
"preview": "//go:build windows\n// +build windows\n\npackage cmd\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pocketbase/pocketbase\"\n\t\"github.com/poc"
},
{
"path": "cmd/winsc_nonwindows.go",
"chars": 332,
"preview": "//go:build !windows\n// +build !windows\n\npackage cmd\n\nimport (\n\t\"github.com/pocketbase/pocketbase/core\"\n\t\"github.com/spf1"
},
{
"path": "cmd/winsc_windows.go",
"chars": 4676,
"preview": "//go:build windows\n// +build windows\n\npackage cmd\n\nimport (\n\t\"fmt\"\n\t\"log/slog\"\n\t\"os\"\n\t\"time\"\n\n\t\"github.com/pocketbase/po"
},
{
"path": "docker/docker-compose.yml",
"chars": 284,
"preview": "version: \"3.0\"\nservices:\n certimate:\n image: certimate/certimate:latest\n container_name: certimate\n ports:\n "
},
{
"path": "go.mod",
"chars": 12707,
"preview": "module github.com/certimate-go/certimate\n\ngo 1.25.0\n\ntoolchain go1.25.5\n\nrequire (\n\tgithub.com/Azure/azure-sdk-for-go/sd"
},
{
"path": "go.sum",
"chars": 145425,
"preview": "cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=\ncloud.google.com/go v0.34.0/go.mod h1"
},
{
"path": "internal/app/app.go",
"chars": 120,
"preview": "package app\n\nconst (\n\tAppName = \"Certimate\"\n\tAppVersion = \"0.4.19\"\n\tAppUserAgent = AppName + \"/\" + AppVersion\n)\n"
},
{
"path": "internal/app/scheduler.go",
"chars": 419,
"preview": "package app\n\nimport (\n\t\"sync\"\n\t\"time\"\n\t_ \"time/tzdata\"\n\n\t\"github.com/pocketbase/pocketbase/tools/cron\"\n)\n\nvar scheduler "
},
{
"path": "internal/app/singleton.go",
"chars": 1072,
"preview": "package app\n\nimport (\n\t\"log/slog\"\n\t\"sync\"\n\n\t\"github.com/pocketbase/dbx\"\n\t\"github.com/pocketbase/pocketbase\"\n\t\"github.com"
},
{
"path": "internal/certacme/account.go",
"chars": 3473,
"preview": "package certacme\n\nimport (\n\t\"context\"\n\t\"crypto/ecdsa\"\n\t\"crypto/elliptic\"\n\t\"crypto/rand\"\n\t\"errors\"\n\t\"fmt\"\n\t\"strings\"\n\n\t\"g"
},
{
"path": "internal/certacme/certifiers/registry.go",
"chars": 1889,
"preview": "package certifiers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/certimate-go/certimate/internal/domain\"\n\t\"github.com/certimate-go/cert"
},
{
"path": "internal/certacme/certifiers/sp_35cn.go",
"chars": 948,
"preview": "package certifiers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/go-acme/lego/v4/challenge\"\n\n\t\"github.com/certimate-go/certimate/intern"
},
{
"path": "internal/certacme/certifiers/sp_51dnscom.go",
"chars": 950,
"preview": "package certifiers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/go-acme/lego/v4/challenge\"\n\n\t\"github.com/certimate-go/certimate/intern"
},
{
"path": "internal/certacme/certifiers/sp_acmedns.go",
"chars": 828,
"preview": "package certifiers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/go-acme/lego/v4/challenge\"\n\n\t\"github.com/certimate-go/certimate/intern"
},
{
"path": "internal/certacme/certifiers/sp_acmehttpreq.go",
"chars": 1013,
"preview": "package certifiers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/go-acme/lego/v4/challenge\"\n\n\t\"github.com/certimate-go/certimate/intern"
},
{
"path": "internal/certacme/certifiers/sp_akamai_edgedns.go",
"chars": 1202,
"preview": "package certifiers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/go-acme/lego/v4/challenge\"\n\n\t\"github.com/certimate-go/certimate/intern"
},
{
"path": "internal/certacme/certifiers/sp_aliyun_dns.go",
"chars": 1066,
"preview": "package certifiers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/go-acme/lego/v4/challenge\"\n\n\t\"github.com/certimate-go/certimate/intern"
},
{
"path": "internal/certacme/certifiers/sp_aliyun_esa.go",
"chars": 1056,
"preview": "package certifiers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/go-acme/lego/v4/challenge\"\n\n\t\"github.com/certimate-go/certimate/intern"
},
{
"path": "internal/certacme/certifiers/sp_arvancloud.go",
"chars": 908,
"preview": "package certifiers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/go-acme/lego/v4/challenge\"\n\n\t\"github.com/certimate-go/certimate/intern"
},
{
"path": "internal/certacme/certifiers/sp_aws_route53.go",
"chars": 1262,
"preview": "package certifiers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/go-acme/lego/v4/challenge\"\n\n\t\"github.com/certimate-go/certimate/intern"
},
{
"path": "internal/certacme/certifiers/sp_azure_dns.go",
"chars": 1280,
"preview": "package certifiers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/go-acme/lego/v4/challenge\"\n\n\t\"github.com/certimate-go/certimate/intern"
},
{
"path": "internal/certacme/certifiers/sp_baiducloud_dns.go",
"chars": 1094,
"preview": "package certifiers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/go-acme/lego/v4/challenge\"\n\n\t\"github.com/certimate-go/certimate/intern"
},
{
"path": "internal/certacme/certifiers/sp_bookmyname.go",
"chars": 958,
"preview": "package certifiers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/go-acme/lego/v4/challenge\"\n\n\t\"github.com/certimate-go/certimate/intern"
},
{
"path": "internal/certacme/certifiers/sp_bunny.go",
"chars": 883,
"preview": "package certifiers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/go-acme/lego/v4/challenge\"\n\n\t\"github.com/certimate-go/certimate/intern"
},
{
"path": "internal/certacme/certifiers/sp_cloudflare.go",
"chars": 965,
"preview": "package certifiers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/go-acme/lego/v4/challenge\"\n\n\t\"github.com/certimate-go/certimate/intern"
},
{
"path": "internal/certacme/certifiers/sp_cloudns.go",
"chars": 945,
"preview": "package certifiers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/go-acme/lego/v4/challenge\"\n\n\t\"github.com/certimate-go/certimate/intern"
},
{
"path": "internal/certacme/certifiers/sp_cmcccloud_dns.go",
"chars": 1087,
"preview": "package certifiers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/go-acme/lego/v4/challenge\"\n\n\t\"github.com/certimate-go/certimate/intern"
},
{
"path": "internal/certacme/certifiers/sp_constellix.go",
"chars": 968,
"preview": "package certifiers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/go-acme/lego/v4/challenge\"\n\n\t\"github.com/certimate-go/certimate/intern"
},
{
"path": "internal/certacme/certifiers/sp_cpanel.go",
"chars": 1069,
"preview": "package certifiers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/go-acme/lego/v4/challenge\"\n\n\t\"github.com/certimate-go/certimate/intern"
},
{
"path": "internal/certacme/certifiers/sp_ctcccloud_smartdns.go",
"chars": 1097,
"preview": "package certifiers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/go-acme/lego/v4/challenge\"\n\n\t\"github.com/certimate-go/certimate/intern"
},
{
"path": "internal/certacme/certifiers/sp_desec.go",
"chars": 882,
"preview": "package certifiers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/go-acme/lego/v4/challenge\"\n\n\t\"github.com/certimate-go/certimate/intern"
},
{
"path": "internal/certacme/certifiers/sp_digitalocean.go",
"chars": 936,
"preview": "package certifiers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/go-acme/lego/v4/challenge\"\n\n\t\"github.com/certimate-go/certimate/intern"
},
{
"path": "internal/certacme/certifiers/sp_dnsexit.go",
"chars": 893,
"preview": "package certifiers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/go-acme/lego/v4/challenge\"\n\n\t\"github.com/certimate-go/certimate/intern"
},
{
"path": "internal/certacme/certifiers/sp_dnsla.go",
"chars": 931,
"preview": "package certifiers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/go-acme/lego/v4/challenge\"\n\n\t\"github.com/certimate-go/certimate/intern"
},
{
"path": "internal/certacme/certifiers/sp_dnsmadeeasy.go",
"chars": 962,
"preview": "package certifiers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/go-acme/lego/v4/challenge\"\n\n\t\"github.com/certimate-go/certimate/intern"
},
{
"path": "internal/certacme/certifiers/sp_duckdns.go",
"chars": 858,
"preview": "package certifiers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/go-acme/lego/v4/challenge\"\n\n\t\"github.com/certimate-go/certimate/intern"
},
{
"path": "internal/certacme/certifiers/sp_dynu.go",
"chars": 878,
"preview": "package certifiers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/go-acme/lego/v4/challenge\"\n\n\t\"github.com/certimate-go/certimate/intern"
},
{
"path": "internal/certacme/certifiers/sp_dynv6.go",
"chars": 886,
"preview": "package certifiers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/go-acme/lego/v4/challenge\"\n\n\t\"github.com/certimate-go/certimate/intern"
},
{
"path": "internal/certacme/certifiers/sp_gandinet.go",
"chars": 911,
"preview": "package certifiers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/go-acme/lego/v4/challenge\"\n\n\t\"github.com/certimate-go/certimate/intern"
},
{
"path": "internal/certacme/certifiers/sp_gcore.go",
"chars": 885,
"preview": "package certifiers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/go-acme/lego/v4/challenge\"\n\n\t\"github.com/certimate-go/certimate/intern"
},
{
"path": "internal/certacme/certifiers/sp_gname.go",
"chars": 928,
"preview": "package certifiers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/go-acme/lego/v4/challenge\"\n\n\t\"github.com/certimate-go/certimate/intern"
},
{
"path": "internal/certacme/certifiers/sp_godaddy.go",
"chars": 942,
"preview": "package certifiers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/go-acme/lego/v4/challenge\"\n\n\t\"github.com/certimate-go/certimate/intern"
},
{
"path": "internal/certacme/certifiers/sp_hetzner.go",
"chars": 895,
"preview": "package certifiers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/go-acme/lego/v4/challenge\"\n\n\t\"github.com/certimate-go/certimate/intern"
},
{
"path": "internal/certacme/certifiers/sp_hostingde.go",
"chars": 903,
"preview": "package certifiers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/go-acme/lego/v4/challenge\"\n\n\t\"github.com/certimate-go/certimate/intern"
},
{
"path": "internal/certacme/certifiers/sp_hostinger.go",
"chars": 905,
"preview": "package certifiers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/go-acme/lego/v4/challenge\"\n\n\t\"github.com/certimate-go/certimate/intern"
},
{
"path": "internal/certacme/certifiers/sp_huaweicloud_dns.go",
"chars": 1186,
"preview": "package certifiers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/go-acme/lego/v4/challenge\"\n\n\t\"github.com/certimate-go/certimate/intern"
},
{
"path": "internal/certacme/certifiers/sp_infomaniak.go",
"chars": 913,
"preview": "package certifiers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/go-acme/lego/v4/challenge\"\n\n\t\"github.com/certimate-go/certimate/intern"
},
{
"path": "internal/certacme/certifiers/sp_ionos.go",
"chars": 947,
"preview": "package certifiers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/go-acme/lego/v4/challenge\"\n\n\t\"github.com/certimate-go/certimate/intern"
},
{
"path": "internal/certacme/certifiers/sp_jdcloud_dns.go",
"chars": 1160,
"preview": "package certifiers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/go-acme/lego/v4/challenge\"\n\n\t\"github.com/certimate-go/certimate/intern"
},
{
"path": "internal/certacme/certifiers/sp_linode.go",
"chars": 893,
"preview": "package certifiers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/go-acme/lego/v4/challenge\"\n\n\t\"github.com/certimate-go/certimate/intern"
},
{
"path": "internal/certacme/certifiers/sp_local.go",
"chars": 596,
"preview": "package certifiers\n\nimport (\n\t\"github.com/go-acme/lego/v4/challenge\"\n\n\t\"github.com/certimate-go/certimate/internal/domai"
},
{
"path": "internal/certacme/certifiers/sp_namecheap.go",
"chars": 961,
"preview": "package certifiers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/go-acme/lego/v4/challenge\"\n\n\t\"github.com/certimate-go/certimate/intern"
},
{
"path": "internal/certacme/certifiers/sp_namedotcom.go",
"chars": 958,
"preview": "package certifiers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/go-acme/lego/v4/challenge\"\n\n\t\"github.com/certimate-go/certimate/intern"
},
{
"path": "internal/certacme/certifiers/sp_namesilo.go",
"chars": 898,
"preview": "package certifiers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/go-acme/lego/v4/challenge\"\n\n\t\"github.com/certimate-go/certimate/intern"
},
{
"path": "internal/certacme/certifiers/sp_netcup.go",
"chars": 993,
"preview": "package certifiers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/go-acme/lego/v4/challenge\"\n\n\t\"github.com/certimate-go/certimate/intern"
},
{
"path": "internal/certacme/certifiers/sp_netlify.go",
"chars": 903,
"preview": "package certifiers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/go-acme/lego/v4/challenge\"\n\n\t\"github.com/certimate-go/certimate/intern"
},
{
"path": "internal/certacme/certifiers/sp_ns1.go",
"chars": 873,
"preview": "package certifiers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/go-acme/lego/v4/challenge\"\n\n\t\"github.com/certimate-go/certimate/intern"
},
{
"path": "internal/certacme/certifiers/sp_ovhcloud.go",
"chars": 1212,
"preview": "package certifiers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/go-acme/lego/v4/challenge\"\n\n\t\"github.com/certimate-go/certimate/intern"
},
{
"path": "internal/certacme/certifiers/sp_porkbun.go",
"chars": 945,
"preview": "package certifiers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/go-acme/lego/v4/challenge\"\n\n\t\"github.com/certimate-go/certimate/intern"
},
{
"path": "internal/certacme/certifiers/sp_powerdns.go",
"chars": 1026,
"preview": "package certifiers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/go-acme/lego/v4/challenge\"\n\n\t\"github.com/certimate-go/certimate/intern"
},
{
"path": "internal/certacme/certifiers/sp_qingcloud_dns.go",
"chars": 1087,
"preview": "package certifiers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/go-acme/lego/v4/challenge\"\n\n\t\"github.com/certimate-go/certimate/intern"
},
{
"path": "internal/certacme/certifiers/sp_rainyun.go",
"chars": 893,
"preview": "package certifiers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/go-acme/lego/v4/challenge\"\n\n\t\"github.com/certimate-go/certimate/intern"
},
{
"path": "internal/certacme/certifiers/sp_rfc2136.go",
"chars": 1085,
"preview": "package certifiers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/go-acme/lego/v4/challenge\"\n\n\t\"github.com/certimate-go/certimate/intern"
},
{
"path": "internal/certacme/certifiers/sp_s3.go",
"chars": 1238,
"preview": "package certifiers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/go-acme/lego/v4/challenge\"\n\n\t\"github.com/certimate-go/certimate/intern"
},
{
"path": "internal/certacme/certifiers/sp_spaceship.go",
"chars": 952,
"preview": "package certifiers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/go-acme/lego/v4/challenge\"\n\n\t\"github.com/certimate-go/certimate/intern"
},
{
"path": "internal/certacme/certifiers/sp_ssh.go",
"chars": 1726,
"preview": "package certifiers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/go-acme/lego/v4/challenge\"\n\n\t\"github.com/certimate-go/certimate/intern"
},
{
"path": "internal/certacme/certifiers/sp_technitiumdns.go",
"chars": 1053,
"preview": "package certifiers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/go-acme/lego/v4/challenge\"\n\n\t\"github.com/certimate-go/certimate/intern"
},
{
"path": "internal/certacme/certifiers/sp_tencentcloud_dns.go",
"chars": 1099,
"preview": "package certifiers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/go-acme/lego/v4/challenge\"\n\n\t\"github.com/certimate-go/certimate/intern"
},
{
"path": "internal/certacme/certifiers/sp_tencentcloud_eo.go",
"chars": 960,
"preview": "package certifiers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/go-acme/lego/v4/challenge\"\n\n\t\"github.com/certimate-go/certimate/intern"
},
{
"path": "internal/certacme/certifiers/sp_todaynic.go",
"chars": 944,
"preview": "package certifiers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/go-acme/lego/v4/challenge\"\n\n\t\"github.com/certimate-go/certimate/intern"
},
{
"path": "internal/certacme/certifiers/sp_ucloud_udnr.go",
"chars": 1110,
"preview": "package certifiers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/go-acme/lego/v4/challenge\"\n\n\t\"github.com/certimate-go/certimate/intern"
},
{
"path": "internal/certacme/certifiers/sp_vercel.go",
"chars": 942,
"preview": "package certifiers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/go-acme/lego/v4/challenge\"\n\n\t\"github.com/certimate-go/certimate/intern"
},
{
"path": "internal/certacme/certifiers/sp_volcengine_dns.go",
"chars": 1094,
"preview": "package certifiers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/go-acme/lego/v4/challenge\"\n\n\t\"github.com/certimate-go/certimate/intern"
},
{
"path": "internal/certacme/certifiers/sp_vultr.go",
"chars": 883,
"preview": "package certifiers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/go-acme/lego/v4/challenge\"\n\n\t\"github.com/certimate-go/certimate/intern"
},
{
"path": "internal/certacme/certifiers/sp_westcn.go",
"chars": 941,
"preview": "package certifiers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/go-acme/lego/v4/challenge\"\n\n\t\"github.com/certimate-go/certimate/intern"
},
{
"path": "internal/certacme/certifiers/sp_xinnet.go",
"chars": 947,
"preview": "package certifiers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/go-acme/lego/v4/challenge\"\n\n\t\"github.com/certimate-go/certimate/intern"
},
{
"path": "internal/certacme/client.go",
"chars": 1992,
"preview": "package certacme\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"time\"\n\n\t\"github.com/certimate-go/certimate/internal/domain\"\n\t\"github.c"
},
{
"path": "internal/certacme/client_obtain.go",
"chars": 5548,
"preview": "package certacme\n\nimport (\n\t\"context\"\n\t\"crypto\"\n\t\"errors\"\n\t\"fmt\"\n\t\"os\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n\n\t\"github.com/go-ac"
},
{
"path": "internal/certacme/client_revoke.go",
"chars": 933,
"preview": "package certacme\n\nimport (\n\t\"context\"\n\t\"errors\"\n)\n\ntype RevokeCertificateRequest struct {\n\tCertificate string\n}\n\ntype Re"
},
{
"path": "internal/certacme/config.go",
"chars": 4805,
"preview": "package certacme\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"strings\"\n\n\t\"github.com/go-acme/lego/v4/certcrypto\"\n\n\t\"github.com/certi"
},
{
"path": "internal/certacme/logging.go",
"chars": 1343,
"preview": "package certacme\n\nimport (\n\t\"fmt\"\n\t\"log\"\n\t\"log/slog\"\n\t\"os\"\n\t\"strings\"\n\n\tlegolog \"github.com/go-acme/lego/v4/log\"\n)\n\ntype"
},
{
"path": "internal/certificate/service.go",
"chars": 6971,
"preview": "package certificate\n\nimport (\n\t\"archive/zip\"\n\t\"bytes\"\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"log/slog\"\n\t\"strings\"\n\n\t\"github.com/p"
},
{
"path": "internal/certificate/service_deps.go",
"chars": 702,
"preview": "package certificate\n\nimport (\n\t\"context\"\n\n\t\"github.com/pocketbase/dbx\"\n\n\t\"github.com/certimate-go/certimate/internal/dom"
},
{
"path": "internal/certmgmt/client.go",
"chars": 387,
"preview": "package certmgmt\n\nimport (\n\t\"log/slog\"\n)\n\ntype Client struct {\n\tlogger *slog.Logger\n}\n\ntype ClientConfigure func(*Client"
},
{
"path": "internal/certmgmt/client_deploy.go",
"chars": 1263,
"preview": "package certmgmt\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\n\t\"github.com/certimate-go/certimate/internal/certmgmt/deployers\""
},
{
"path": "internal/certmgmt/deployers/registry.go",
"chars": 1350,
"preview": "package deployers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/certimate-go/certimate/internal/domain\"\n\t\"github.com/certimate-go/certi"
},
{
"path": "internal/certmgmt/deployers/sp_1panel.go",
"chars": 1437,
"preview": "package deployers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/certimate-go/certimate/internal/domain\"\n\t\"github.com/certimate-go/certi"
},
{
"path": "internal/certmgmt/deployers/sp_1panel_console.go",
"chars": 1077,
"preview": "package deployers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/certimate-go/certimate/internal/domain\"\n\t\"github.com/certimate-go/certi"
},
{
"path": "internal/certmgmt/deployers/sp_aliyun_alb.go",
"chars": 1313,
"preview": "package deployers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/certimate-go/certimate/internal/domain\"\n\t\"github.com/certimate-go/certi"
},
{
"path": "internal/certmgmt/deployers/sp_aliyun_apigw.go",
"chars": 1432,
"preview": "package deployers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/certimate-go/certimate/internal/domain\"\n\t\"github.com/certimate-go/certi"
},
{
"path": "internal/certmgmt/deployers/sp_aliyun_cas.go",
"chars": 979,
"preview": "package deployers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/certimate-go/certimate/internal/domain\"\n\t\"github.com/certimate-go/certi"
},
{
"path": "internal/certmgmt/deployers/sp_aliyun_casdeploy.go",
"chars": 1369,
"preview": "package deployers\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n\n\t\"github.com/samber/lo\"\n\n\t\"github.com/certimate-go/certimate/internal/dom"
},
{
"path": "internal/certmgmt/deployers/sp_aliyun_cdn.go",
"chars": 1167,
"preview": "package deployers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/certimate-go/certimate/internal/domain\"\n\t\"github.com/certimate-go/certi"
},
{
"path": "internal/certmgmt/deployers/sp_aliyun_clb.go",
"chars": 1328,
"preview": "package deployers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/certimate-go/certimate/internal/domain\"\n\t\"github.com/certimate-go/certi"
},
{
"path": "internal/certmgmt/deployers/sp_aliyun_dcdn.go",
"chars": 1172,
"preview": "package deployers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/certimate-go/certimate/internal/domain\"\n\t\"github.com/certimate-go/certi"
},
{
"path": "internal/certmgmt/deployers/sp_aliyun_ddospro.go",
"chars": 1187,
"preview": "package deployers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/certimate-go/certimate/internal/domain\"\n\t\"github.com/certimate-go/certi"
},
{
"path": "internal/certmgmt/deployers/sp_aliyun_esa.go",
"chars": 1008,
"preview": "package deployers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/certimate-go/certimate/internal/domain\"\n\t\"github.com/certimate-go/certi"
},
{
"path": "internal/certmgmt/deployers/sp_aliyun_esasaas.go",
"chars": 1217,
"preview": "package deployers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/certimate-go/certimate/internal/domain\"\n\t\"github.com/certimate-go/certi"
},
{
"path": "internal/certmgmt/deployers/sp_aliyun_fc.go",
"chars": 1268,
"preview": "package deployers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/certimate-go/certimate/internal/domain\"\n\t\"github.com/certimate-go/certi"
},
{
"path": "internal/certmgmt/deployers/sp_aliyun_ga.go",
"chars": 1228,
"preview": "package deployers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/certimate-go/certimate/internal/domain\"\n\t\"github.com/certimate-go/certi"
},
{
"path": "internal/certmgmt/deployers/sp_aliyun_live.go",
"chars": 1120,
"preview": "package deployers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/certimate-go/certimate/internal/domain\"\n\t\"github.com/certimate-go/certi"
},
{
"path": "internal/certmgmt/deployers/sp_aliyun_nlb.go",
"chars": 1234,
"preview": "package deployers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/certimate-go/certimate/internal/domain\"\n\t\"github.com/certimate-go/certi"
},
{
"path": "internal/certmgmt/deployers/sp_aliyun_oss.go",
"chars": 1137,
"preview": "package deployers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/certimate-go/certimate/internal/domain\"\n\t\"github.com/certimate-go/certi"
},
{
"path": "internal/certmgmt/deployers/sp_aliyun_vod.go",
"chars": 1167,
"preview": "package deployers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/certimate-go/certimate/internal/domain\"\n\t\"github.com/certimate-go/certi"
},
{
"path": "internal/certmgmt/deployers/sp_aliyun_waf.go",
"chars": 1597,
"preview": "package deployers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/certimate-go/certimate/internal/domain\"\n\t\"github.com/certimate-go/certi"
},
{
"path": "internal/certmgmt/deployers/sp_apisix.go",
"chars": 1091,
"preview": "package deployers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/certimate-go/certimate/internal/domain\"\n\t\"github.com/certimate-go/certi"
},
{
"path": "internal/certmgmt/deployers/sp_aws_acm.go",
"chars": 999,
"preview": "package deployers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/certimate-go/certimate/internal/domain\"\n\t\"github.com/certimate-go/certi"
},
{
"path": "internal/certmgmt/deployers/sp_aws_cloudfront.go",
"chars": 1150,
"preview": "package deployers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/certimate-go/certimate/internal/domain\"\n\t\"github.com/certimate-go/certi"
},
{
"path": "internal/certmgmt/deployers/sp_aws_iam.go",
"chars": 1014,
"preview": "package deployers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/certimate-go/certimate/internal/domain\"\n\t\"github.com/certimate-go/certi"
},
{
"path": "internal/certmgmt/deployers/sp_azure_keyvault.go",
"chars": 1122,
"preview": "package deployers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/certimate-go/certimate/internal/domain\"\n\t\"github.com/certimate-go/certi"
},
{
"path": "internal/certmgmt/deployers/sp_baiducloud_appblb.go",
"chars": 1304,
"preview": "package deployers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/certimate-go/certimate/internal/domain\"\n\t\"github.com/certimate-go/certi"
},
{
"path": "internal/certmgmt/deployers/sp_baiducloud_blb.go",
"chars": 1289,
"preview": "package deployers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/certimate-go/certimate/internal/domain\"\n\t\"github.com/certimate-go/certi"
},
{
"path": "internal/certmgmt/deployers/sp_baiducloud_cdn.go",
"chars": 1057,
"preview": "package deployers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/certimate-go/certimate/internal/domain\"\n\t\"github.com/certimate-go/certi"
},
{
"path": "internal/certmgmt/deployers/sp_baiducloud_cert.go",
"chars": 880,
"preview": "package deployers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/certimate-go/certimate/internal/domain\"\n\t\"github.com/certimate-go/certi"
},
{
"path": "internal/certmgmt/deployers/sp_baishan_cdn.go",
"chars": 1161,
"preview": "package deployers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/certimate-go/certimate/internal/domain\"\n\t\"github.com/certimate-go/certi"
},
{
"path": "internal/certmgmt/deployers/sp_baotapanel.go",
"chars": 1246,
"preview": "package deployers\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n\n\t\"github.com/samber/lo\"\n\n\t\"github.com/certimate-go/certimate/internal/dom"
},
{
"path": "internal/certmgmt/deployers/sp_baotapanel_console.go",
"chars": 1060,
"preview": "package deployers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/certimate-go/certimate/internal/domain\"\n\t\"github.com/certimate-go/certi"
},
{
"path": "internal/certmgmt/deployers/sp_baotapanelgo.go",
"chars": 1240,
"preview": "package deployers\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n\n\t\"github.com/samber/lo\"\n\n\t\"github.com/certimate-go/certimate/internal/dom"
},
{
"path": "internal/certmgmt/deployers/sp_baotapanelgo_console.go",
"chars": 981,
"preview": "package deployers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/certimate-go/certimate/internal/domain\"\n\t\"github.com/certimate-go/certi"
},
{
"path": "internal/certmgmt/deployers/sp_baotawaf.go",
"chars": 1229,
"preview": "package deployers\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n\n\t\"github.com/samber/lo\"\n\n\t\"github.com/certimate-go/certimate/internal/dom"
},
{
"path": "internal/certmgmt/deployers/sp_baotawaf_console.go",
"chars": 957,
"preview": "package deployers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/certimate-go/certimate/internal/domain\"\n\t\"github.com/certimate-go/certi"
},
{
"path": "internal/certmgmt/deployers/sp_bunny_cdn.go",
"chars": 940,
"preview": "package deployers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/certimate-go/certimate/internal/domain\"\n\t\"github.com/certimate-go/certi"
},
{
"path": "internal/certmgmt/deployers/sp_byteplus_cdn.go",
"chars": 1037,
"preview": "package deployers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/certimate-go/certimate/internal/domain\"\n\t\"github.com/certimate-go/certi"
},
{
"path": "internal/certmgmt/deployers/sp_cachefly.go",
"chars": 779,
"preview": "package deployers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/certimate-go/certimate/internal/domain\"\n\t\"github.com/certimate-go/certi"
},
{
"path": "internal/certmgmt/deployers/sp_cdnfly.go",
"chars": 1231,
"preview": "package deployers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/certimate-go/certimate/internal/domain\"\n\t\"github.com/certimate-go/certi"
},
{
"path": "internal/certmgmt/deployers/sp_cpanel.go",
"chars": 1137,
"preview": "package deployers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/certimate-go/certimate/internal/domain\"\n\t\"github.com/certimate-go/certi"
},
{
"path": "internal/certmgmt/deployers/sp_ctcccloud_ao.go",
"chars": 1046,
"preview": "package deployers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/certimate-go/certimate/internal/domain\"\n\t\"github.com/certimate-go/certi"
},
{
"path": "internal/certmgmt/deployers/sp_ctcccloud_cdn.go",
"chars": 1051,
"preview": "package deployers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/certimate-go/certimate/internal/domain\"\n\t\"github.com/certimate-go/certi"
},
{
"path": "internal/certmgmt/deployers/sp_ctcccloud_cms.go",
"chars": 869,
"preview": "package deployers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/certimate-go/certimate/internal/domain\"\n\t\"github.com/certimate-go/certi"
},
{
"path": "internal/certmgmt/deployers/sp_ctcccloud_elb.go",
"chars": 1205,
"preview": "package deployers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/certimate-go/certimate/internal/domain\"\n\t\"github.com/certimate-go/certi"
},
{
"path": "internal/certmgmt/deployers/sp_ctcccloud_faas.go",
"chars": 1034,
"preview": "package deployers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/certimate-go/certimate/internal/domain\"\n\t\"github.com/certimate-go/certi"
},
{
"path": "internal/certmgmt/deployers/sp_ctcccloud_icdn.go",
"chars": 1056,
"preview": "package deployers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/certimate-go/certimate/internal/domain\"\n\t\"github.com/certimate-go/certi"
},
{
"path": "internal/certmgmt/deployers/sp_ctcccloud_lvdn.go",
"chars": 1056,
"preview": "package deployers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/certimate-go/certimate/internal/domain\"\n\t\"github.com/certimate-go/certi"
},
{
"path": "internal/certmgmt/deployers/sp_dogecloud_cdn.go",
"chars": 1031,
"preview": "package deployers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/certimate-go/certimate/internal/domain\"\n\t\"github.com/certimate-go/certi"
},
{
"path": "internal/certmgmt/deployers/sp_dokploy.go",
"chars": 907,
"preview": "package deployers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/certimate-go/certimate/internal/domain\"\n\t\"github.com/certimate-go/certi"
},
{
"path": "internal/certmgmt/deployers/sp_flexcdn.go",
"chars": 1202,
"preview": "package deployers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/certimate-go/certimate/internal/domain\"\n\t\"github.com/certimate-go/certi"
},
{
"path": "internal/certmgmt/deployers/sp_flyio.go",
"chars": 915,
"preview": "package deployers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/certimate-go/certimate/internal/domain\"\n\t\"github.com/certimate-go/certi"
},
{
"path": "internal/certmgmt/deployers/sp_gcore_cdn.go",
"chars": 954,
"preview": "package deployers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/certimate-go/certimate/internal/domain\"\n\t\"github.com/certimate-go/certi"
},
{
"path": "internal/certmgmt/deployers/sp_goedge.go",
"chars": 1197,
"preview": "package deployers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/certimate-go/certimate/internal/domain\"\n\t\"github.com/certimate-go/certi"
},
{
"path": "internal/certmgmt/deployers/sp_huaweicloud_cdn.go",
"chars": 1207,
"preview": "package deployers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/certimate-go/certimate/internal/domain\"\n\t\"github.com/certimate-go/certi"
},
{
"path": "internal/certmgmt/deployers/sp_huaweicloud_elb.go",
"chars": 1386,
"preview": "package deployers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/certimate-go/certimate/internal/domain\"\n\t\"github.com/certimate-go/certi"
},
{
"path": "internal/certmgmt/deployers/sp_huaweicloud_obs.go",
"chars": 1118,
"preview": "package deployers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/certimate-go/certimate/internal/domain\"\n\t\"github.com/certimate-go/certi"
},
{
"path": "internal/certmgmt/deployers/sp_huaweicloud_scm.go",
"chars": 946,
"preview": "package deployers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/certimate-go/certimate/internal/domain\"\n\t\"github.com/certimate-go/certi"
},
{
"path": "internal/certmgmt/deployers/sp_huaweicloud_waf.go",
"chars": 1291,
"preview": "package deployers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/certimate-go/certimate/internal/domain\"\n\t\"github.com/certimate-go/certi"
},
{
"path": "internal/certmgmt/deployers/sp_jdcloud_alb.go",
"chars": 1193,
"preview": "package deployers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/certimate-go/certimate/internal/domain\"\n\t\"github.com/certimate-go/certi"
},
{
"path": "internal/certmgmt/deployers/sp_jdcloud_cdn.go",
"chars": 1039,
"preview": "package deployers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/certimate-go/certimate/internal/domain\"\n\t\"github.com/certimate-go/certi"
},
{
"path": "internal/certmgmt/deployers/sp_jdcloud_live.go",
"chars": 1044,
"preview": "package deployers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/certimate-go/certimate/internal/domain\"\n\t\"github.com/certimate-go/certi"
},
{
"path": "internal/certmgmt/deployers/sp_jdcloud_vod.go",
"chars": 1039,
"preview": "package deployers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/certimate-go/certimate/internal/domain\"\n\t\"github.com/certimate-go/certi"
},
{
"path": "internal/certmgmt/deployers/sp_kong.go",
"chars": 1174,
"preview": "package deployers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/certimate-go/certimate/internal/domain\"\n\t\"github.com/certimate-go/certi"
},
{
"path": "internal/certmgmt/deployers/sp_ksyun_cdn.go",
"chars": 1204,
"preview": "package deployers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/certimate-go/certimate/internal/domain\"\n\t\"github.com/certimate-go/certi"
},
{
"path": "internal/certmgmt/deployers/sp_kubernetes_secret.go",
"chars": 2765,
"preview": "package deployers\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n\n\t\"github.com/certimate-go/certimate/internal/domain\"\n\t\"github.com/certima"
},
{
"path": "internal/certmgmt/deployers/sp_lecdn.go",
"chars": 1330,
"preview": "package deployers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/certimate-go/certimate/internal/domain\"\n\t\"github.com/certimate-go/certi"
},
{
"path": "internal/certmgmt/deployers/sp_local.go",
"chars": 1659,
"preview": "package deployers\n\nimport (\n\t\"github.com/certimate-go/certimate/internal/domain\"\n\t\"github.com/certimate-go/certimate/pkg"
},
{
"path": "internal/certmgmt/deployers/sp_mohua_mvh.go",
"chars": 982,
"preview": "package deployers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/certimate-go/certimate/internal/domain\"\n\t\"github.com/certimate-go/certi"
},
{
"path": "internal/certmgmt/deployers/sp_netlify.go",
"chars": 944,
"preview": "package deployers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/certimate-go/certimate/internal/domain\"\n\t\"github.com/certimate-go/certi"
},
{
"path": "internal/certmgmt/deployers/sp_nginxproxymanager.go",
"chars": 1595,
"preview": "package deployers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/certimate-go/certimate/internal/domain\"\n\t\"github.com/certimate-go/certi"
},
{
"path": "internal/certmgmt/deployers/sp_proxmoxve.go",
"chars": 1157,
"preview": "package deployers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/certimate-go/certimate/internal/domain\"\n\t\"github.com/certimate-go/certi"
},
{
"path": "internal/certmgmt/deployers/sp_qiniu_cdn.go",
"chars": 1019,
"preview": "package deployers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/certimate-go/certimate/internal/domain\"\n\t\"github.com/certimate-go/certi"
},
{
"path": "internal/certmgmt/deployers/sp_qiniu_kodo.go",
"chars": 976,
"preview": "package deployers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/certimate-go/certimate/internal/domain\"\n\t\"github.com/certimate-go/certi"
},
{
"path": "internal/certmgmt/deployers/sp_qiniu_pili.go",
"chars": 1103,
"preview": "package deployers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/certimate-go/certimate/internal/domain\"\n\t\"github.com/certimate-go/certi"
},
{
"path": "internal/certmgmt/deployers/sp_rainyun_rcdn.go",
"chars": 1072,
"preview": "package deployers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/certimate-go/certimate/internal/domain\"\n\t\"github.com/certimate-go/certi"
},
{
"path": "internal/certmgmt/deployers/sp_rainyun_sslcenter.go",
"chars": 914,
"preview": "package deployers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/certimate-go/certimate/internal/domain\"\n\t\"github.com/certimate-go/certi"
},
{
"path": "internal/certmgmt/deployers/sp_ratpanel.go",
"chars": 1375,
"preview": "package deployers\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n\n\t\"github.com/samber/lo\"\n\n\t\"github.com/certimate-go/certimate/internal/dom"
},
{
"path": "internal/certmgmt/deployers/sp_ratpanel_console.go",
"chars": 1018,
"preview": "package deployers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/certimate-go/certimate/internal/domain\"\n\t\"github.com/certimate-go/certi"
},
{
"path": "internal/certmgmt/deployers/sp_s3.go",
"chars": 2208,
"preview": "package deployers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/certimate-go/certimate/internal/domain\"\n\t\"github.com/certimate-go/certi"
},
{
"path": "internal/certmgmt/deployers/sp_safeline.go",
"chars": 1102,
"preview": "package deployers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/certimate-go/certimate/internal/domain\"\n\t\"github.com/certimate-go/certi"
},
{
"path": "internal/certmgmt/deployers/sp_ssh.go",
"chars": 2723,
"preview": "package deployers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/certimate-go/certimate/internal/domain\"\n\t\"github.com/certimate-go/certi"
},
{
"path": "internal/certmgmt/deployers/sp_synologydsm.go",
"chars": 1237,
"preview": "package deployers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/certimate-go/certimate/internal/domain\"\n\t\"github.com/certimate-go/certi"
},
{
"path": "internal/certmgmt/deployers/sp_tencentcloud_cdn.go",
"chars": 1144,
"preview": "package deployers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/certimate-go/certimate/internal/domain\"\n\t\"github.com/certimate-go/certi"
},
{
"path": "internal/certmgmt/deployers/sp_tencentcloud_clb.go",
"chars": 1364,
"preview": "package deployers\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/certimate-go/certimate/internal/domain\"\n\t\"github.com/certimate-go/certi"
}
]
// ... and 1463 more files (download for full content)
About this extraction
This page contains the full source code of the certimate-go/certimate GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 1663 files (4.7 MB), approximately 1.3M tokens, and a symbol index with 5811 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.