Documentation
¶
Index ¶
- Constants
- func NormalizeCommandLines(commands []string) []string
- func ParseTaskFileMode(raw string) (uint32, string)
- func RunModeForTask(task *TaskPayload) models.RunMode
- func ValidateEnvironment(environment []EnvironmentVariable) string
- func ValidateFiles(files []TaskFile) string
- type EnvironmentVariable
- type LogUploadPolicy
- type TaskFile
- type TaskPayload
Constants ¶
View Source
const ( // MaxTaskFiles is the maximum number of files accepted on create-task. MaxTaskFiles = 64 // MaxTaskFileBytes is the maximum size of a single file's content. MaxTaskFileBytes = 1 << 20 // 1 MiB // MaxTaskFilesTotalBytes is the maximum combined content size. MaxTaskFilesTotalBytes = 4 << 20 // 4 MiB // DefaultTaskFileMode is used when TaskFile.Mode is empty. DefaultTaskFileMode = 0o644 )
View Source
const ( DefaultExecutionTimeoutSeconds = 3600 DefaultLogChunkBytes int64 = 64 * 1024 DefaultLogFlushMinimumMS int64 = 2500 DefaultLogFlushMaximumMS int64 = 5000 LogUploadMaxChunkMultiplier int64 = 2 LogUploadActionContinue = "continue" LogUploadActionStop = "stop" HeaderLogUploadAction = "X-SuperPlane-Log-Action" HeaderLogTargetChunkBytes = "X-SuperPlane-Log-Target-Chunk-Bytes" HeaderLogFlushMinimumMS = "X-SuperPlane-Log-Flush-Minimum-Ms" HeaderLogFlushMaximumMS = "X-SuperPlane-Log-Flush-Maximum-Ms" )
Variables ¶
This section is empty.
Functions ¶
func NormalizeCommandLines ¶
func ParseTaskFileMode ¶
ParseTaskFileMode parses an optional octal unix file mode. Empty input yields DefaultTaskFileMode.
func RunModeForTask ¶
func RunModeForTask(task *TaskPayload) models.RunMode
func ValidateEnvironment ¶
func ValidateEnvironment(environment []EnvironmentVariable) string
func ValidateFiles ¶
ValidateFiles returns a non-empty error message when task files are invalid.
Types ¶
type EnvironmentVariable ¶
type EnvironmentVariable = models.EnvironmentVariable
type LogUploadPolicy ¶
type LogUploadPolicy struct {
TargetChunkBytes int64 `json:"target_chunk_bytes"`
PartialFlushMinimumMS int64 `json:"partial_flush_interval_min_ms"`
PartialFlushMaximumMS int64 `json:"partial_flush_interval_max_ms"`
}
func DefaultLogUploadPolicy ¶
func DefaultLogUploadPolicy() LogUploadPolicy
func NormalizeLogUploadPolicy ¶
func NormalizeLogUploadPolicy(policy *LogUploadPolicy) LogUploadPolicy
func (LogUploadPolicy) MaxUploadBytes ¶
func (p LogUploadPolicy) MaxUploadBytes() int64
type TaskFile ¶
TaskFile is one file attached to a create-task / claim payload.
func CloneFiles ¶
CloneFiles returns a detached copy of task files.
func NormalizeFiles ¶
NormalizeFiles returns a copy with cleaned relative paths; drops empty path entries.
type TaskPayload ¶
type TaskPayload struct {
ID string `json:"id"`
RunMode string `json:"run_mode,omitempty"`
Script string `json:"script,omitempty"`
MessageChain json.RawMessage `json:"message_chain,omitempty"`
Command []string `json:"command,omitempty"`
Commands models.CommandList `json:"commands,omitempty"`
SetupCommands []string `json:"setup_commands,omitempty"`
Environment []EnvironmentVariable `json:"environment,omitempty"`
Files []TaskFile `json:"files,omitempty"`
ExecutionMode string `json:"execution_mode"`
DockerImage string `json:"docker_image,omitempty"`
ExecutionTimeoutSeconds *int `json:"execution_timeout_seconds,omitempty"`
WebhookPayloadSizeLimit int `json:"webhook_payload_size_limit,omitempty"`
LogUploadPolicy *LogUploadPolicy `json:"log_upload_policy,omitempty"`
}
TaskPayload is the encrypted task specification delivered through the v1 runner WebSocket.
Click to show internal directories.
Click to hide internal directories.