domain

package
v0.3.0-alpha.13 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 23, 2025 License: MIT Imports: 8 Imported by: 0

Documentation

Index

Constants

View Source
const (
	CertificateSourceTypeWorkflow = CertificateSourceType("workflow")
	CertificateSourceTypeUpload   = CertificateSourceType("upload")
)
View Source
const (
	CertificateKeyAlgorithmTypeRSA2048 = CertificateKeyAlgorithmType("RSA2048")
	CertificateKeyAlgorithmTypeRSA3072 = CertificateKeyAlgorithmType("RSA3072")
	CertificateKeyAlgorithmTypeRSA4096 = CertificateKeyAlgorithmType("RSA4096")
	CertificateKeyAlgorithmTypeRSA8192 = CertificateKeyAlgorithmType("RSA8192")
	CertificateKeyAlgorithmTypeEC256   = CertificateKeyAlgorithmType("EC256")
	CertificateKeyAlgorithmTypeEC384   = CertificateKeyAlgorithmType("EC384")
	CertificateKeyAlgorithmTypeEC512   = CertificateKeyAlgorithmType("EC512")
)
View Source
const (
	NotifyChannelTypeBark       = NotifyChannelType("bark")
	NotifyChannelTypeDingTalk   = NotifyChannelType("dingtalk")
	NotifyChannelTypeEmail      = NotifyChannelType("email")
	NotifyChannelTypeLark       = NotifyChannelType("lark")
	NotifyChannelTypeServerChan = NotifyChannelType("serverchan")
	NotifyChannelTypeTelegram   = NotifyChannelType("telegram")
	NotifyChannelTypeWebhook    = NotifyChannelType("webhook")
	NotifyChannelTypeWeCom      = NotifyChannelType("wecom")
)

消息通知渠道常量值。

注意:如果追加新的常量值,请保持以 ASCII 排序。
NOTICE: If you add new constant, please keep ASCII order.
View Source
const (
	AccessProviderType1Panel       = AccessProviderType("1panel") // 1Panel(预留)
	AccessProviderTypeACMEHttpReq  = AccessProviderType("acmehttpreq")
	AccessProviderTypeAkamai       = AccessProviderType("akamai") // Akamai(预留)
	AccessProviderTypeAliyun       = AccessProviderType("aliyun")
	AccessProviderTypeAWS          = AccessProviderType("aws")
	AccessProviderTypeAzure        = AccessProviderType("azure")
	AccessProviderTypeBaiduCloud   = AccessProviderType("baiducloud")
	AccessProviderTypeBaishan      = AccessProviderType("baishan")
	AccessProviderTypeBaotaPanel   = AccessProviderType("baotapanel")
	AccessProviderTypeBytePlus     = AccessProviderType("byteplus")
	AccessProviderTypeCacheFly     = AccessProviderType("cachefly")
	AccessProviderTypeCdnfly       = AccessProviderType("cdnfly")
	AccessProviderTypeCloudflare   = AccessProviderType("cloudflare")
	AccessProviderTypeClouDNS      = AccessProviderType("cloudns")
	AccessProviderTypeCMCCCloud    = AccessProviderType("cmcccloud")
	AccessProviderTypeCTCCCloud    = AccessProviderType("ctcccloud") // 联通云(预留)
	AccessProviderTypeCUCCCloud    = AccessProviderType("cucccloud") // 天翼云(预留)
	AccessProviderTypeDNSLA        = AccessProviderType("dnsla")
	AccessProviderTypeDogeCloud    = AccessProviderType("dogecloud")
	AccessProviderTypeEdgio        = AccessProviderType("edgio")
	AccessProviderTypeFastly       = AccessProviderType("fastly") // Fastly(预留)
	AccessProviderTypeGname        = AccessProviderType("gname")
	AccessProviderTypeGcore        = AccessProviderType("gcore")
	AccessProviderTypeGoDaddy      = AccessProviderType("godaddy")
	AccessProviderTypeGoEdge       = AccessProviderType("goedge") // GoEdge(预留)
	AccessProviderTypeHuaweiCloud  = AccessProviderType("huaweicloud")
	AccessProviderTypeJDCloud      = AccessProviderType("jdcloud")
	AccessProviderTypeKubernetes   = AccessProviderType("k8s")
	AccessProviderTypeLocal        = AccessProviderType("local")
	AccessProviderTypeNamecheap    = AccessProviderType("namecheap")
	AccessProviderTypeNameDotCom   = AccessProviderType("namedotcom")
	AccessProviderTypeNameSilo     = AccessProviderType("namesilo")
	AccessProviderTypeNS1          = AccessProviderType("ns1")
	AccessProviderTypePowerDNS     = AccessProviderType("powerdns")
	AccessProviderTypeQiniu        = AccessProviderType("qiniu")
	AccessProviderTypeQingCloud    = AccessProviderType("qingcloud") // 青云(预留)
	AccessProviderTypeRainYun      = AccessProviderType("rainyun")
	AccessProviderTypeSafeLine     = AccessProviderType("safeline")
	AccessProviderTypeSSH          = AccessProviderType("ssh")
	AccessProviderTypeTencentCloud = AccessProviderType("tencentcloud")
	AccessProviderTypeUCloud       = AccessProviderType("ucloud")
	AccessProviderTypeVolcEngine   = AccessProviderType("volcengine")
	AccessProviderTypeWebhook      = AccessProviderType("webhook")
	AccessProviderTypeWestcn       = AccessProviderType("westcn")
)

授权提供商类型常量值。

注意:如果追加新的常量值,请保持以 ASCII 排序。
NOTICE: If you add new constant, please keep ASCII order.
View Source
const (
	ApplyDNSProviderTypeACMEHttpReq     = ApplyDNSProviderType("acmehttpreq")
	ApplyDNSProviderTypeAliyun          = ApplyDNSProviderType("aliyun") // 兼容旧值,等同于 [ApplyDNSProviderTypeAliyunDNS]
	ApplyDNSProviderTypeAliyunDNS       = ApplyDNSProviderType("aliyun-dns")
	ApplyDNSProviderTypeAWS             = ApplyDNSProviderType("aws") // 兼容旧值,等同于 [ApplyDNSProviderTypeAWSRoute53]
	ApplyDNSProviderTypeAWSRoute53      = ApplyDNSProviderType("aws-route53")
	ApplyDNSProviderTypeAzure           = ApplyDNSProviderType("azure") // 兼容旧值,等同于 [ApplyDNSProviderTypeAzure]
	ApplyDNSProviderTypeAzureDNS        = ApplyDNSProviderType("azure-dns")
	ApplyDNSProviderTypeBaiduCloud      = ApplyDNSProviderType("baiducloud") // 兼容旧值,等同于 [ApplyDNSProviderTypeBaiduCloudDNS]
	ApplyDNSProviderTypeBaiduCloudDNS   = ApplyDNSProviderType("baiducloud-dns")
	ApplyDNSProviderTypeCloudflare      = ApplyDNSProviderType("cloudflare")
	ApplyDNSProviderTypeClouDNS         = ApplyDNSProviderType("cloudns")
	ApplyDNSProviderTypeCMCCCloud       = ApplyDNSProviderType("cmcccloud")
	ApplyDNSProviderTypeDNSLA           = ApplyDNSProviderType("dnsla")
	ApplyDNSProviderTypeGcore           = ApplyDNSProviderType("gcore")
	ApplyDNSProviderTypeGname           = ApplyDNSProviderType("gname")
	ApplyDNSProviderTypeGoDaddy         = ApplyDNSProviderType("godaddy")
	ApplyDNSProviderTypeHuaweiCloud     = ApplyDNSProviderType("huaweicloud") // 兼容旧值,等同于 [ApplyDNSProviderTypeHuaweiCloudDNS]
	ApplyDNSProviderTypeHuaweiCloudDNS  = ApplyDNSProviderType("huaweicloud-dns")
	ApplyDNSProviderTypeJDCloud         = ApplyDNSProviderType("jdcloud") // 兼容旧值,等同于 [ApplyDNSProviderTypeJDCloudDNS]
	ApplyDNSProviderTypeJDCloudDNS      = ApplyDNSProviderType("jdcloud-dns")
	ApplyDNSProviderTypeNamecheap       = ApplyDNSProviderType("namecheap")
	ApplyDNSProviderTypeNameDotCom      = ApplyDNSProviderType("namedotcom")
	ApplyDNSProviderTypeNameSilo        = ApplyDNSProviderType("namesilo")
	ApplyDNSProviderTypeNS1             = ApplyDNSProviderType("ns1")
	ApplyDNSProviderTypePowerDNS        = ApplyDNSProviderType("powerdns")
	ApplyDNSProviderTypeRainYun         = ApplyDNSProviderType("rainyun")
	ApplyDNSProviderTypeTencentCloud    = ApplyDNSProviderType("tencentcloud") // 兼容旧值,等同于 [ApplyDNSProviderTypeTencentCloudDNS]
	ApplyDNSProviderTypeTencentCloudDNS = ApplyDNSProviderType("tencentcloud-dns")
	ApplyDNSProviderTypeVolcEngine      = ApplyDNSProviderType("volcengine") // 兼容旧值,等同于 [ApplyDNSProviderTypeVolcEngineDNS]
	ApplyDNSProviderTypeVolcEngineDNS   = ApplyDNSProviderType("volcengine-dns")
	ApplyDNSProviderTypeWestcn          = ApplyDNSProviderType("westcn")
)

申请证书 DNS 提供商常量值。 短横线前的部分始终等于授权提供商类型。

注意:如果追加新的常量值,请保持以 ASCII 排序。
NOTICE: If you add new constant, please keep ASCII order.
View Source
const (
	DeployProviderTypeAliyunALB             = DeployProviderType("aliyun-alb")
	DeployProviderTypeAliyunCASDeploy       = DeployProviderType("aliyun-casdeploy")
	DeployProviderTypeAliyunCDN             = DeployProviderType("aliyun-cdn")
	DeployProviderTypeAliyunCLB             = DeployProviderType("aliyun-clb")
	DeployProviderTypeAliyunDCDN            = DeployProviderType("aliyun-dcdn")
	DeployProviderTypeAliyunESA             = DeployProviderType("aliyun-esa")
	DeployProviderTypeAliyunLive            = DeployProviderType("aliyun-live")
	DeployProviderTypeAliyunNLB             = DeployProviderType("aliyun-nlb")
	DeployProviderTypeAliyunOSS             = DeployProviderType("aliyun-oss")
	DeployProviderTypeAliyunVOD             = DeployProviderType("aliyun-vod")
	DeployProviderTypeAliyunWAF             = DeployProviderType("aliyun-waf")
	DeployProviderTypeAWSCloudFront         = DeployProviderType("aws-cloudfront")
	DeployProviderTypeBaiduCloudCDN         = DeployProviderType("baiducloud-cdn")
	DeployProviderTypeBaishanCDN            = DeployProviderType("baishan-cdn")
	DeployProviderTypeBaotaPanelConsole     = DeployProviderType("baotapanel-console")
	DeployProviderTypeBaotaPanelSite        = DeployProviderType("baotapanel-site")
	DeployProviderTypeBytePlusCDN           = DeployProviderType("byteplus-cdn")
	DeployProviderTypeCacheFly              = DeployProviderType("cachefly")
	DeployProviderTypeCdnfly                = DeployProviderType("cdnfly")
	DeployProviderTypeDogeCloudCDN          = DeployProviderType("dogecloud-cdn")
	DeployProviderTypeEdgioApplications     = DeployProviderType("edgio-applications")
	DeployProviderTypeGcoreCDN              = DeployProviderType("gcore-cdn")
	DeployProviderTypeHuaweiCloudCDN        = DeployProviderType("huaweicloud-cdn")
	DeployProviderTypeHuaweiCloudELB        = DeployProviderType("huaweicloud-elb")
	DeployProviderTypeHuaweiCloudWAF        = DeployProviderType("huaweicloud-waf")
	DeployProviderTypeJDCloudALB            = DeployProviderType("jdcloud-alb")
	DeployProviderTypeJDCloudCDN            = DeployProviderType("jdcloud-cdn")
	DeployProviderTypeJDCloudLive           = DeployProviderType("jdcloud-live")
	DeployProviderTypeJDCloudVOD            = DeployProviderType("jdcloud-vod")
	DeployProviderTypeKubernetesSecret      = DeployProviderType("k8s-secret")
	DeployProviderTypeLocal                 = DeployProviderType("local")
	DeployProviderTypeQiniuCDN              = DeployProviderType("qiniu-cdn")
	DeployProviderTypeQiniuPili             = DeployProviderType("qiniu-pili")
	DeployProviderTypeSafeLine              = DeployProviderType("safeline")
	DeployProviderTypeSSH                   = DeployProviderType("ssh")
	DeployProviderTypeTencentCloudCDN       = DeployProviderType("tencentcloud-cdn")
	DeployProviderTypeTencentCloudCLB       = DeployProviderType("tencentcloud-clb")
	DeployProviderTypeTencentCloudCOS       = DeployProviderType("tencentcloud-cos")
	DeployProviderTypeTencentCloudCSS       = DeployProviderType("tencentcloud-css")
	DeployProviderTypeTencentCloudECDN      = DeployProviderType("tencentcloud-ecdn")
	DeployProviderTypeTencentCloudEO        = DeployProviderType("tencentcloud-eo")
	DeployProviderTypeTencentCloudSSLDeploy = DeployProviderType("tencentcloud-ssldeploy")
	DeployProviderTypeTencentCloudVOD       = DeployProviderType("tencentcloud-vod")
	DeployProviderTypeTencentCloudWAF       = DeployProviderType("tencentcloud-waf")
	DeployProviderTypeUCloudUCDN            = DeployProviderType("ucloud-ucdn")
	DeployProviderTypeUCloudUS3             = DeployProviderType("ucloud-us3")
	DeployProviderTypeVolcEngineCDN         = DeployProviderType("volcengine-cdn")
	DeployProviderTypeVolcEngineCLB         = DeployProviderType("volcengine-clb")
	DeployProviderTypeVolcEngineDCDN        = DeployProviderType("volcengine-dcdn")
	DeployProviderTypeVolcEngineImageX      = DeployProviderType("volcengine-imagex")
	DeployProviderTypeVolcEngineLive        = DeployProviderType("volcengine-live")
	DeployProviderTypeVolcEngineTOS         = DeployProviderType("volcengine-tos")
	DeployProviderTypeWebhook               = DeployProviderType("webhook")
)

部署目标提供商常量值。 短横线前的部分始终等于授权提供商类型。

注意:如果追加新的常量值,请保持以 ASCII 排序。
NOTICE: If you add new constant, please keep ASCII order.
View Source
const (
	WorkflowNodeTypeStart               = WorkflowNodeType("start")
	WorkflowNodeTypeEnd                 = WorkflowNodeType("end")
	WorkflowNodeTypeApply               = WorkflowNodeType("apply")
	WorkflowNodeTypeUpload              = WorkflowNodeType("upload")
	WorkflowNodeTypeDeploy              = WorkflowNodeType("deploy")
	WorkflowNodeTypeNotify              = WorkflowNodeType("notify")
	WorkflowNodeTypeBranch              = WorkflowNodeType("branch")
	WorkflowNodeTypeCondition           = WorkflowNodeType("condition")
	WorkflowNodeTypeExecuteResultBranch = WorkflowNodeType("execute_result_branch")
	WorkflowNodeTypeExecuteSuccess      = WorkflowNodeType("execute_success")
	WorkflowNodeTypeExecuteFailure      = WorkflowNodeType("execute_failure")
)
View Source
const (
	WorkflowTriggerTypeAuto   = WorkflowTriggerType("auto")
	WorkflowTriggerTypeManual = WorkflowTriggerType("manual")
)
View Source
const CollectionNameAccess = "access"
View Source
const CollectionNameAcmeAccount = "acme_accounts"
View Source
const CollectionNameCertificate = "certificate"
View Source
const CollectionNameSettings = "settings"
View Source
const CollectionNameWorkflow = "workflow"
View Source
const CollectionNameWorkflowOutput = "workflow_output"
View Source
const CollectionNameWorkflowRun = "workflow_run"
View Source
const WorkflowNodeIONameCertificate string = "certificate"

Variables

View Source
var (
	ErrInvalidParams  = NewError(400, "invalid params")
	ErrRecordNotFound = NewError(404, "record not found")
)

Functions

func IsRecordNotFoundError added in v0.3.0

func IsRecordNotFoundError(err error) bool

Types

type Access added in v0.3.0

type Access struct {
	Meta
	Name      string     `json:"name" db:"name"`
	Provider  string     `json:"provider" db:"provider"`
	Config    string     `json:"config" db:"config"`
	DeletedAt *time.Time `json:"deleted" db:"deleted"`
}

func (*Access) UnmarshalConfigToMap added in v0.3.0

func (a *Access) UnmarshalConfigToMap() (map[string]any, error)

type AccessConfigForACMEHttpReq added in v0.3.0

type AccessConfigForACMEHttpReq struct {
	Endpoint string `json:"endpoint"`
	Mode     string `json:"mode,omitempty"`
	Username string `json:"username,omitempty"`
	Password string `json:"password,omitempty"`
}

type AccessConfigForAWS added in v0.3.0

type AccessConfigForAWS struct {
	AccessKeyId     string `json:"accessKeyId"`
	SecretAccessKey string `json:"secretAccessKey"`
}

type AccessConfigForAliyun added in v0.3.0

type AccessConfigForAliyun struct {
	AccessKeyId     string `json:"accessKeyId"`
	AccessKeySecret string `json:"accessKeySecret"`
}

type AccessConfigForAzure added in v0.3.0

type AccessConfigForAzure struct {
	TenantId     string `json:"tenantId"`
	ClientId     string `json:"clientId"`
	ClientSecret string `json:"clientSecret"`
	CloudName    string `json:"cloudName,omitempty"`
}

type AccessConfigForBaiduCloud added in v0.3.0

type AccessConfigForBaiduCloud struct {
	AccessKeyId     string `json:"accessKeyId"`
	SecretAccessKey string `json:"secretAccessKey"`
}

type AccessConfigForBaishan added in v0.3.0

type AccessConfigForBaishan struct {
	ApiToken string `json:"apiToken"`
}

type AccessConfigForBaotaPanel added in v0.3.0

type AccessConfigForBaotaPanel struct {
	ApiUrl string `json:"apiUrl"`
	ApiKey string `json:"apiKey"`
}

type AccessConfigForBytePlus added in v0.3.0

type AccessConfigForBytePlus struct {
	AccessKey string `json:"accessKey"`
	SecretKey string `json:"secretKey"`
}

type AccessConfigForCMCCCloud added in v0.3.0

type AccessConfigForCMCCCloud struct {
	AccessKeyId     string `json:"accessKeyId"`
	AccessKeySecret string `json:"accessKeySecret"`
}

type AccessConfigForCacheFly added in v0.3.0

type AccessConfigForCacheFly struct {
	ApiToken string `json:"apiToken"`
}

type AccessConfigForCdnfly added in v0.3.0

type AccessConfigForCdnfly struct {
	ApiUrl    string `json:"apiUrl"`
	ApiKey    string `json:"apiKey"`
	ApiSecret string `json:"apiSecret"`
}

type AccessConfigForClouDNS added in v0.3.0

type AccessConfigForClouDNS struct {
	AuthId       string `json:"authId"`
	AuthPassword string `json:"authPassword"`
}

type AccessConfigForCloudflare added in v0.3.0

type AccessConfigForCloudflare struct {
	DnsApiToken string `json:"dnsApiToken"`
}

type AccessConfigForDNSLA added in v0.3.0

type AccessConfigForDNSLA struct {
	ApiId     string `json:"apiId"`
	ApiSecret string `json:"apiSecret"`
}

type AccessConfigForDogeCloud added in v0.3.0

type AccessConfigForDogeCloud struct {
	AccessKey string `json:"accessKey"`
	SecretKey string `json:"secretKey"`
}

type AccessConfigForEdgio added in v0.3.0

type AccessConfigForEdgio struct {
	ClientId     string `json:"clientId"`
	ClientSecret string `json:"clientSecret"`
}

type AccessConfigForGcore added in v0.3.0

type AccessConfigForGcore struct {
	ApiToken string `json:"apiToken"`
}

type AccessConfigForGname added in v0.3.0

type AccessConfigForGname struct {
	AppId  string `json:"appId"`
	AppKey string `json:"appKey"`
}

type AccessConfigForGoDaddy added in v0.3.0

type AccessConfigForGoDaddy struct {
	ApiKey    string `json:"apiKey"`
	ApiSecret string `json:"apiSecret"`
}

type AccessConfigForHuaweiCloud added in v0.3.0

type AccessConfigForHuaweiCloud struct {
	AccessKeyId     string `json:"accessKeyId"`
	SecretAccessKey string `json:"secretAccessKey"`
}

type AccessConfigForJDCloud added in v0.3.0

type AccessConfigForJDCloud struct {
	AccessKeyId     string `json:"accessKeyId"`
	AccessKeySecret string `json:"accessKeySecret"`
}

type AccessConfigForKubernetes added in v0.3.0

type AccessConfigForKubernetes struct {
	KubeConfig string `json:"kubeConfig,omitempty"`
}

type AccessConfigForLocal added in v0.3.0

type AccessConfigForLocal struct{}

type AccessConfigForNS1 added in v0.3.0

type AccessConfigForNS1 struct {
	ApiKey string `json:"apiKey"`
}

type AccessConfigForNameDotCom added in v0.3.0

type AccessConfigForNameDotCom struct {
	Username string `json:"username"`
	ApiToken string `json:"apiToken"`
}

type AccessConfigForNameSilo added in v0.3.0

type AccessConfigForNameSilo struct {
	ApiKey string `json:"apiKey"`
}

type AccessConfigForNamecheap added in v0.3.0

type AccessConfigForNamecheap struct {
	Username string `json:"username"`
	ApiKey   string `json:"apiKey"`
}

type AccessConfigForPowerDNS added in v0.3.0

type AccessConfigForPowerDNS struct {
	ApiUrl string `json:"apiUrl"`
	ApiKey string `json:"apiKey"`
}

type AccessConfigForQiniu added in v0.3.0

type AccessConfigForQiniu struct {
	AccessKey string `json:"accessKey"`
	SecretKey string `json:"secretKey"`
}

type AccessConfigForRainYun added in v0.3.0

type AccessConfigForRainYun struct {
	ApiKey string `json:"apiKey"`
}

type AccessConfigForSSH added in v0.3.0

type AccessConfigForSSH struct {
	Host          string `json:"host"`
	Port          int32  `json:"port"`
	Username      string `json:"username"`
	Password      string `json:"password,omitempty"`
	Key           string `json:"key,omitempty"`
	KeyPassphrase string `json:"keyPassphrase,omitempty"`
}

type AccessConfigForSafeLine added in v0.3.0

type AccessConfigForSafeLine struct {
	ApiUrl   string `json:"apiUrl"`
	ApiToken string `json:"apiToken"`
}

type AccessConfigForTencentCloud added in v0.3.0

type AccessConfigForTencentCloud struct {
	SecretId  string `json:"secretId"`
	SecretKey string `json:"secretKey"`
}

type AccessConfigForUCloud added in v0.3.0

type AccessConfigForUCloud struct {
	PrivateKey string `json:"privateKey"`
	PublicKey  string `json:"publicKey"`
	ProjectId  string `json:"projectId,omitempty"`
}

type AccessConfigForVolcEngine added in v0.3.0

type AccessConfigForVolcEngine struct {
	AccessKeyId     string `json:"accessKeyId"`
	SecretAccessKey string `json:"secretAccessKey"`
}

type AccessConfigForWebhook added in v0.3.0

type AccessConfigForWebhook struct {
	Url string `json:"url"`
}

type AccessConfigForWestcn added in v0.3.0

type AccessConfigForWestcn struct {
	Username    string `json:"username"`
	ApiPassword string `json:"password"`
}

type AccessProviderType added in v0.3.0

type AccessProviderType string

type AcmeAccount added in v0.2.8

type AcmeAccount struct {
	Meta
	CA       string                 `json:"ca" db:"ca"`
	Email    string                 `json:"email" db:"email"`
	Resource *registration.Resource `json:"resource" db:"resource"`
	Key      string                 `json:"key" db:"key"`
}

type ApplyDNSProviderType added in v0.3.0

type ApplyDNSProviderType string

type Certificate added in v0.3.0

type Certificate struct {
	Meta
	Source            CertificateSourceType       `json:"source" db:"source"`
	SubjectAltNames   string                      `json:"subjectAltNames" db:"subjectAltNames"`
	SerialNumber      string                      `json:"serialNumber" db:"serialNumber"`
	Certificate       string                      `json:"certificate" db:"certificate"`
	PrivateKey        string                      `json:"privateKey" db:"privateKey"`
	Issuer            string                      `json:"issuer" db:"issuer"`
	IssuerCertificate string                      `json:"issuerCertificate" db:"issuerCertificate"`
	KeyAlgorithm      CertificateKeyAlgorithmType `json:"keyAlgorithm" db:"keyAlgorithm"`
	EffectAt          time.Time                   `json:"effectAt" db:"effectAt"`
	ExpireAt          time.Time                   `json:"expireAt" db:"expireAt"`
	ACMEAccountUrl    string                      `json:"acmeAccountUrl" db:"acmeAccountUrl"`
	ACMECertUrl       string                      `json:"acmeCertUrl" db:"acmeCertUrl"`
	ACMECertStableUrl string                      `json:"acmeCertStableUrl" db:"acmeCertStableUrl"`
	WorkflowId        string                      `json:"workflowId" db:"workflowId"`
	WorkflowNodeId    string                      `json:"workflowNodeId" db:"workflowNodeId"`
	WorkflowRunId     string                      `json:"workflowRunId" db:"workflowRunId"`
	WorkflowOutputId  string                      `json:"workflowOutputId" db:"workflowOutputId"`
	DeletedAt         *time.Time                  `json:"deleted" db:"deleted"`
}

func (*Certificate) PopulateFromPEM added in v0.3.0

func (c *Certificate) PopulateFromPEM(certPEM, privkeyPEM string) *Certificate

func (*Certificate) PopulateFromX509 added in v0.3.0

func (c *Certificate) PopulateFromX509(certX509 *x509.Certificate) *Certificate

type CertificateKeyAlgorithmType added in v0.3.0

type CertificateKeyAlgorithmType string

type CertificateSourceType added in v0.3.0

type CertificateSourceType string

type DeployProviderType added in v0.3.0

type DeployProviderType string

type Error added in v0.3.0

type Error struct {
	Code int    `json:"code"`
	Msg  string `json:"msg"`
}

func NewError added in v0.3.0

func NewError(code int, msg string) *Error

func (*Error) Error added in v0.3.0

func (e *Error) Error() string

type Meta added in v0.3.0

type Meta struct {
	Id        string    `json:"id" db:"id"`
	CreatedAt time.Time `json:"created" db:"created"`
	UpdatedAt time.Time `json:"updated" db:"updated"`
}

type NotifyChannelType added in v0.3.0

type NotifyChannelType string

type NotifyChannelsSettingsContent added in v0.3.0

type NotifyChannelsSettingsContent map[string]map[string]any

type NotifyTemplate added in v0.3.0

type NotifyTemplate struct {
	Subject string `json:"subject"`
	Message string `json:"message"`
}

type NotifyTemplatesSettingsContent added in v0.3.0

type NotifyTemplatesSettingsContent struct {
	NotifyTemplates []NotifyTemplate `json:"notifyTemplates"`
}

type Settings added in v0.3.0

type Settings struct {
	Meta
	Name    string `json:"name" db:"name"`
	Content string `json:"content" db:"content"`
}

func (*Settings) GetNotifyChannelConfig added in v0.3.0

func (s *Settings) GetNotifyChannelConfig(channel string) (map[string]any, error)

type Statistics added in v0.3.0

type Statistics struct {
	CertificateTotal      int `json:"certificateTotal"`
	CertificateExpireSoon int `json:"certificateExpireSoon"`
	CertificateExpired    int `json:"certificateExpired"`

	WorkflowTotal    int `json:"workflowTotal"`
	WorkflowEnabled  int `json:"workflowEnabled"`
	WorkflowDisabled int `json:"workflowDisabled"`
}

type Workflow added in v0.3.0

type Workflow struct {
	Meta
	Name          string                `json:"name" db:"name"`
	Description   string                `json:"description" db:"description"`
	Trigger       WorkflowTriggerType   `json:"trigger" db:"trigger"`
	TriggerCron   string                `json:"triggerCron" db:"triggerCron"`
	Enabled       bool                  `json:"enabled" db:"enabled"`
	Content       *WorkflowNode         `json:"content" db:"content"`
	Draft         *WorkflowNode         `json:"draft" db:"draft"`
	HasDraft      bool                  `json:"hasDraft" db:"hasDraft"`
	LastRunId     string                `json:"lastRunId" db:"lastRunId"`
	LastRunStatus WorkflowRunStatusType `json:"lastRunStatus" db:"lastRunStatus"`
	LastRunTime   time.Time             `json:"lastRunTime" db:"lastRunTime"`
}

type WorkflowNode added in v0.3.0

type WorkflowNode struct {
	Id   string           `json:"id"`
	Type WorkflowNodeType `json:"type"`
	Name string           `json:"name"`

	Config  map[string]any   `json:"config"`
	Inputs  []WorkflowNodeIO `json:"inputs"`
	Outputs []WorkflowNodeIO `json:"outputs"`

	Next     *WorkflowNode  `json:"next,omitempty"`
	Branches []WorkflowNode `json:"branches,omitempty"`

	Validated bool `json:"validated"`
}

func (*WorkflowNode) GetConfigForApply added in v0.3.0

func (n *WorkflowNode) GetConfigForApply() WorkflowNodeConfigForApply

func (*WorkflowNode) GetConfigForDeploy added in v0.3.0

func (n *WorkflowNode) GetConfigForDeploy() WorkflowNodeConfigForDeploy

func (*WorkflowNode) GetConfigForNotify added in v0.3.0

func (n *WorkflowNode) GetConfigForNotify() WorkflowNodeConfigForNotify

func (*WorkflowNode) GetConfigForUpload added in v0.3.0

func (n *WorkflowNode) GetConfigForUpload() WorkflowNodeConfigForUpload

type WorkflowNodeConfigForApply added in v0.3.0

type WorkflowNodeConfigForApply struct {
	Domains               string         `json:"domains"`               // 域名列表,以半角逗号分隔
	ContactEmail          string         `json:"contactEmail"`          // 联系邮箱
	ChallengeType         string         `json:"challengeType"`         // TODO: 验证方式。目前仅支持 dns-01
	Provider              string         `json:"provider"`              // DNS 提供商
	ProviderAccessId      string         `json:"providerAccessId"`      // DNS 提供商授权记录 ID
	ProviderConfig        map[string]any `json:"providerConfig"`        // DNS 提供商额外配置
	KeyAlgorithm          string         `json:"keyAlgorithm"`          // 密钥算法
	Nameservers           string         `json:"nameservers"`           // DNS 服务器列表,以半角逗号分隔
	DnsPropagationTimeout int32          `json:"dnsPropagationTimeout"` // DNS 传播超时时间(零值取决于提供商的默认值)
	DnsTTL                int32          `json:"dnsTTL"`                // DNS TTL(零值取决于提供商的默认值)
	DisableFollowCNAME    bool           `json:"disableFollowCNAME"`    // 是否关闭 CNAME 跟随
	DisableARI            bool           `json:"disableARI"`            // 是否关闭 ARI
	SkipBeforeExpiryDays  int32          `json:"skipBeforeExpiryDays"`  // 证书到期前多少天前跳过续期(零值将使用默认值 30)
}

type WorkflowNodeConfigForDeploy added in v0.3.0

type WorkflowNodeConfigForDeploy struct {
	Certificate         string         `json:"certificate"`         // 前序节点输出的证书,形如“${NodeId}#certificate”
	Provider            string         `json:"provider"`            // 主机提供商
	ProviderAccessId    string         `json:"providerAccessId"`    // 主机提供商授权记录 ID
	ProviderConfig      map[string]any `json:"providerConfig"`      // 主机提供商额外配置
	SkipOnLastSucceeded bool           `json:"skipOnLastSucceeded"` // 上次部署成功时是否跳过
}

type WorkflowNodeConfigForNotify added in v0.3.0

type WorkflowNodeConfigForNotify struct {
	Channel string `json:"channel"` // 通知渠道
	Subject string `json:"subject"` // 通知主题
	Message string `json:"message"` // 通知内容
}

type WorkflowNodeConfigForUpload added in v0.3.0

type WorkflowNodeConfigForUpload struct {
	Certificate string `json:"certificate"`
	PrivateKey  string `json:"privateKey"`
	Domains     string `json:"domains"`
}

type WorkflowNodeIO added in v0.3.0

type WorkflowNodeIO struct {
	Label         string                      `json:"label"`
	Name          string                      `json:"name"`
	Type          string                      `json:"type"`
	Required      bool                        `json:"required"`
	Value         any                         `json:"value"`
	ValueSelector WorkflowNodeIOValueSelector `json:"valueSelector"`
}

type WorkflowNodeIOValueSelector added in v0.3.0

type WorkflowNodeIOValueSelector struct {
	Id   string `json:"id"`
	Name string `json:"name"`
}

type WorkflowNodeType added in v0.3.0

type WorkflowNodeType string

type WorkflowOutput added in v0.3.0

type WorkflowOutput struct {
	Meta
	WorkflowId string           `json:"workflowId" db:"workflow"`
	RunId      string           `json:"runId" db:"runId"`
	NodeId     string           `json:"nodeId" db:"nodeId"`
	Node       *WorkflowNode    `json:"node" db:"node"`
	Outputs    []WorkflowNodeIO `json:"outputs" db:"outputs"`
	Succeeded  bool             `json:"succeeded" db:"succeeded"`
}

type WorkflowRun added in v0.3.0

type WorkflowRun struct {
	Meta
	WorkflowId string                `json:"workflowId" db:"workflowId"`
	Status     WorkflowRunStatusType `json:"status" db:"status"`
	Trigger    WorkflowTriggerType   `json:"trigger" db:"trigger"`
	StartedAt  time.Time             `json:"startedAt" db:"startedAt"`
	EndedAt    time.Time             `json:"endedAt" db:"endedAt"`
	Logs       []WorkflowRunLog      `json:"logs" db:"logs"`
	Error      string                `json:"error" db:"error"`
}

type WorkflowRunLog added in v0.3.0

type WorkflowRunLog struct {
	NodeId   string                 `json:"nodeId"`
	NodeName string                 `json:"nodeName"`
	Records  []WorkflowRunLogRecord `json:"records"`
	Error    string                 `json:"error"`
}

type WorkflowRunLogLevel added in v0.3.0

type WorkflowRunLogLevel string
const (
	WorkflowRunLogLevelDebug WorkflowRunLogLevel = "DEBUG"
	WorkflowRunLogLevelInfo  WorkflowRunLogLevel = "INFO"
	WorkflowRunLogLevelWarn  WorkflowRunLogLevel = "WARN"
	WorkflowRunLogLevelError WorkflowRunLogLevel = "ERROR"
)

type WorkflowRunLogRecord added in v0.3.0

type WorkflowRunLogRecord struct {
	Time    string              `json:"time"`
	Level   WorkflowRunLogLevel `json:"level"`
	Content string              `json:"content"`
	Error   string              `json:"error"`
}

type WorkflowRunLogs added in v0.3.0

type WorkflowRunLogs []WorkflowRunLog

func (WorkflowRunLogs) ErrorString added in v0.3.0

func (r WorkflowRunLogs) ErrorString() string

type WorkflowRunStatusType added in v0.3.0

type WorkflowRunStatusType string
const (
	WorkflowRunStatusTypePending   WorkflowRunStatusType = "pending"
	WorkflowRunStatusTypeRunning   WorkflowRunStatusType = "running"
	WorkflowRunStatusTypeSucceeded WorkflowRunStatusType = "succeeded"
	WorkflowRunStatusTypeFailed    WorkflowRunStatusType = "failed"
	WorkflowRunStatusTypeCanceled  WorkflowRunStatusType = "canceled"
)

type WorkflowTriggerType added in v0.3.0

type WorkflowTriggerType string

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL