-
Notifications
You must be signed in to change notification settings - Fork 139
Expand file tree
/
Copy pathdoc.go
More file actions
48 lines (44 loc) · 2.17 KB
/
Copy pathdoc.go
File metadata and controls
48 lines (44 loc) · 2.17 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
/*
Copyright 2025 The Flux authors
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
// Package artifact is an SDK for managing Flux artifacts.
//
// This package provides comprehensive functionality for packaging artifacts, storing,
// serving, and processing in Flux source-controller. It includes:
//
// Configuration Management (config pkg):
// - Flag binding with environment variable support for all artifact options
// - Storage path, server address, and advertised address configuration
// - Artifact retention policies (TTL and record count limits)
// - Configurable digest algorithms for artifact integrity verification
//
// Artifact File Server (server pkg):
// - Designed to serve artifacts over HTTP with proper content handling
// - HTTP file server with graceful shutdown support compatible with controller-runtime
//
// Digest Computation (digest pkg):
// - Multi-algorithm digest support (SHA1, SHA256, SHA512, BLAKE3)
// - MultiDigester for computing multiple checksums simultaneously
// - Algorithm validation and availability checking
//
// Storage Management (storage pkg):
// - Complete artifact lifecycle management (create, verify, archive, cleanup)
// - Atomic file operations with temporary file handling
// - Tarball creation and extraction with filtering support
// - Garbage collection based on TTL and retention policies
// - File locking and symlink management
// - Secure path handling to prevent directory traversal attacks
// - Integration with Flux meta.Artifact types and OCI utilities
//
// The SDK standardizes artifact handling in Flux source-controller and provides
// a foundation for building 3rd party controllers that manage ExternalArtifacts.
package artifact