25 lines
1.1 KiB
Go
25 lines
1.1 KiB
Go
package artifactstore
|
|
|
|
type ArtifactLocation struct {
|
|
// Data is a map of key-value pairs that describe the location of the artifact.
|
|
// For example, a simple key-value pair could be "path" -> "/path/to/artifact.tgz".
|
|
// Alternatively, a more complex example could be "bucket" -> "example", "key" -> "UNIQUE_ARTIFACT_IDENTIFIER".
|
|
data map[string]string
|
|
}
|
|
|
|
type ArtifactStore interface {
|
|
// GetQueryPack returns the query pack as a byte slice for the specified location.
|
|
GetQueryPack(location ArtifactLocation) ([]byte, error)
|
|
|
|
// SaveQueryPack saves the query pack from the provided byte slice and session ID.
|
|
// It returns the location of the saved query pack.
|
|
SaveQueryPack(sessionID int, data []byte) (ArtifactLocation, error)
|
|
|
|
// GetResult returns the result archive as a byte slice for the specified location.
|
|
GetResult(location ArtifactLocation) ([]byte, error)
|
|
|
|
// SaveResult saves the result archive from the provided byte slice and session ID.
|
|
// It returns the location of the saved result archive.
|
|
SaveResult(sessionID int, data []byte) (ArtifactLocation, error)
|
|
}
|