mirror of
https://github.com/usual2970/certimate.git
synced 2025-10-05 22:14:53 +00:00
Add workflow execution process
This commit is contained in:
@@ -1,5 +1,16 @@
|
||||
package domain
|
||||
|
||||
import "time"
|
||||
|
||||
type Access struct {
|
||||
Meta
|
||||
Name string `json:"name"`
|
||||
Config string `json:"config"`
|
||||
ConfigType string `json:"configType"`
|
||||
Deleted time.Time `json:"deleted"`
|
||||
Usage string `json:"usage"`
|
||||
}
|
||||
|
||||
type AliyunAccess struct {
|
||||
AccessKeyId string `json:"accessKeyId"`
|
||||
AccessKeySecret string `json:"accessKeySecret"`
|
||||
|
39
internal/domain/certificate.go
Normal file
39
internal/domain/certificate.go
Normal file
@@ -0,0 +1,39 @@
|
||||
package domain
|
||||
|
||||
import "time"
|
||||
|
||||
type Certificate struct {
|
||||
Meta
|
||||
SAN string `json:"san"`
|
||||
Certificate string `json:"certificate"`
|
||||
PrivateKey string `json:"privateKey"`
|
||||
IssuerCertificate string `json:"issuerCertificate"`
|
||||
CertUrl string `json:"certUrl"`
|
||||
CertStableUrl string `json:"certStableUrl"`
|
||||
Output string `json:"output"`
|
||||
ExpireAt time.Time `json:"ExpireAt"`
|
||||
}
|
||||
|
||||
type MetaData struct {
|
||||
Version string `json:"version"`
|
||||
SerialNumber string `json:"serialNumber"`
|
||||
Validity CertificateValidity `json:"validity"`
|
||||
SignatureAlgorithm string `json:"signatureAlgorithm"`
|
||||
Issuer CertificateIssuer `json:"issuer"`
|
||||
Subject CertificateSubject `json:"subject"`
|
||||
}
|
||||
|
||||
type CertificateIssuer struct {
|
||||
Country string `json:"country"`
|
||||
Organization string `json:"organization"`
|
||||
CommonName string `json:"commonName"`
|
||||
}
|
||||
|
||||
type CertificateSubject struct {
|
||||
CN string `json:"CN"`
|
||||
}
|
||||
|
||||
type CertificateValidity struct {
|
||||
NotBefore string `json:"notBefore"`
|
||||
NotAfter string `json:"notAfter"`
|
||||
}
|
9
internal/domain/common.go
Normal file
9
internal/domain/common.go
Normal file
@@ -0,0 +1,9 @@
|
||||
package domain
|
||||
|
||||
import "time"
|
||||
|
||||
type Meta struct {
|
||||
Id string `json:"id"`
|
||||
Created time.Time `json:"created"`
|
||||
Updated time.Time `json:"updated"`
|
||||
}
|
@@ -1,6 +1,16 @@
|
||||
package domain
|
||||
|
||||
var ErrAuthFailed = NewXError(4999, "auth failed")
|
||||
var (
|
||||
ErrInvalidParams = NewXError(400, "invalid params")
|
||||
ErrRecordNotFound = NewXError(404, "record not found")
|
||||
)
|
||||
|
||||
func IsRecordNotFound(err error) bool {
|
||||
if e, ok := err.(*XError); ok {
|
||||
return e.GetCode() == ErrRecordNotFound.GetCode()
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
type XError struct {
|
||||
Code int `json:"code"`
|
||||
|
@@ -1,9 +1,22 @@
|
||||
package domain
|
||||
|
||||
import "time"
|
||||
import (
|
||||
"fmt"
|
||||
"strconv"
|
||||
)
|
||||
|
||||
const (
|
||||
WorkflowNodeTypeStart = "start"
|
||||
WorkflowNodeTypeEnd = "end"
|
||||
WorkflowNodeTypeApply = "apply"
|
||||
WorkflowNodeTypeDeply = "deploy"
|
||||
WorkflowNodeTypeNotify = "notify"
|
||||
WorkflowNodeTypeBranch = "branch"
|
||||
WorkflowNodeTypeCondition = "condition"
|
||||
)
|
||||
|
||||
type Workflow struct {
|
||||
Id string `json:"id"`
|
||||
Meta
|
||||
Name string `json:"name"`
|
||||
Description string `json:"description"`
|
||||
Type string `json:"type"`
|
||||
@@ -11,8 +24,6 @@ type Workflow struct {
|
||||
Draft *WorkflowNode `json:"draft"`
|
||||
Enabled bool `json:"enabled"`
|
||||
HasDraft bool `json:"hasDraft"`
|
||||
Created time.Time `json:"created"`
|
||||
Updated time.Time `json:"updated"`
|
||||
}
|
||||
|
||||
type WorkflowNode struct {
|
||||
@@ -29,11 +40,48 @@ type WorkflowNode struct {
|
||||
Branches []WorkflowNode `json:"branches"`
|
||||
}
|
||||
|
||||
func (n *WorkflowNode) GetConfigString(key string) string {
|
||||
if v, ok := n.Config[key]; ok {
|
||||
if s, ok := v.(string); ok {
|
||||
return s
|
||||
}
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func (n *WorkflowNode) GetConfigBool(key string) bool {
|
||||
if v, ok := n.Config[key]; ok {
|
||||
if b, ok := v.(bool); ok {
|
||||
return b
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func (n *WorkflowNode) GetConfigInt64(key string) int64 {
|
||||
// 先转成字符串,再转成 int64
|
||||
if v, ok := n.Config[key]; ok {
|
||||
temp := fmt.Sprintf("%v", v)
|
||||
if i, err := strconv.ParseInt(temp, 10, 64); err == nil {
|
||||
return i
|
||||
}
|
||||
}
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
type WorkflowNodeIo struct {
|
||||
Label string `json:"label"`
|
||||
Name string `json:"name"`
|
||||
Type string `json:"type"`
|
||||
Required bool `json:"required"`
|
||||
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 struct {
|
||||
Id string `json:"id"`
|
||||
Name string `json:"name"`
|
||||
}
|
||||
|
||||
type WorkflowRunReq struct {
|
||||
|
12
internal/domain/workflow_output.go
Normal file
12
internal/domain/workflow_output.go
Normal file
@@ -0,0 +1,12 @@
|
||||
package domain
|
||||
|
||||
const WorkflowOutputCertificate = "certificate"
|
||||
|
||||
type WorkflowOutput struct {
|
||||
Meta
|
||||
Workflow string `json:"workflow"`
|
||||
NodeId string `json:"nodeId"`
|
||||
Node *WorkflowNode `json:"node"`
|
||||
Output []WorkflowNodeIo `json:"output"`
|
||||
Succeed bool `json:"succeed"`
|
||||
}
|
Reference in New Issue
Block a user