registry

package
v3.0.17 Latest Latest
Warning

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

Go to latest
Published: Aug 27, 2026 License: MIT Imports: 20 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrInvalidAuthorizationRevisions = errors.New("authorization revisions are invalid")
	ErrAuthorizationRevisionConflict = errors.New("authorization revision conflict")
	ErrAuthorizationSchemaIncomplete = errors.New("authorization schema is incomplete")
)
View Source
var (
	ErrNotFound           = errors.New("plugin record not found")
	ErrInvalidEnableState = errors.New("invalid plugin enable state")
)
View Source
var (
	ErrReleaseInstallOperationNotFound = errors.New("release install operation not found")
	ErrReleaseInstallOperationConflict = errors.New("release install operation conflict")
	ErrInvalidReleaseInstallOperation  = errors.New("invalid release install operation")
)
View Source
var ErrInvalidExternalPackageInstall = errors.New("invalid external package install")
View Source
var ErrManagementRevisionConflict = errors.New("management revision conflict")
View Source
var ErrOwnerScopeMismatch = errors.New("plugin registry owner scope mismatch")

Functions

func ReleaseInstallIdentitySHA256 added in v3.0.12

func ReleaseInstallIdentitySHA256(identity ReleaseInstallIdentity) (string, error)

ReleaseInstallIdentitySHA256 returns the canonical digest of the exact publisher release reference consumed by an official install.

func RunnableAuthorizationState

func RunnableAuthorizationState(state AuthorizationState) bool

func RunnablePluginRecord

func RunnablePluginRecord(record PluginRecord) bool

func ValidateEnableState

func ValidateEnableState(state EnableState) error

Types

type AuthorizationDecision

type AuthorizationDecision struct {
	State              AuthorizationState        `json:"state"`
	Allowed            bool                      `json:"allowed"`
	MissingPermissions []string                  `json:"missing_permissions,omitempty"`
	PolicyEvaluation   security.PolicyEvaluation `json:"policy_evaluation"`
}

func EvaluateAuthorizationSnapshot

func EvaluateAuthorizationSnapshot(snapshot AuthorizationSnapshot, req AuthorizeRequest) (AuthorizationDecision, error)

EvaluateAuthorizationSnapshot applies the canonical permission, policy, and revision checks to an authorization snapshot owned by another durable store.

type AuthorizationRevisionConflictError

type AuthorizationRevisionConflictError struct {
	PluginInstanceID string
	Expected         AuthorizationRevisions
	Actual           AuthorizationRevisions
}

func (*AuthorizationRevisionConflictError) Error

func (*AuthorizationRevisionConflictError) Unwrap

type AuthorizationRevisions

type AuthorizationRevisions struct {
	PolicyRevision     uint64 `json:"policy_revision"`
	ManagementRevision uint64 `json:"management_revision"`
	RevokeEpoch        uint64 `json:"revoke_epoch"`
}

func AuthorizationRevisionsFromRecord

func AuthorizationRevisionsFromRecord(record PluginRecord) AuthorizationRevisions

type AuthorizationSnapshot

type AuthorizationSnapshot struct {
	Plugin PluginRecord           `json:"plugin"`
	Grants []permissions.Record   `json:"grants"`
	Policy *security.PolicyRecord `json:"policy,omitempty"`
}

func PrepareDeleteSecurityPolicy

func PrepareDeleteSecurityPolicy(snapshot AuthorizationSnapshot, pluginInstanceID string, now time.Time, expected AuthorizationRevisions) (AuthorizationSnapshot, error)

type AuthorizationState

type AuthorizationState struct {
	PluginInstanceID    string                 `json:"plugin_instance_id"`
	PluginVersion       string                 `json:"plugin_version"`
	ActiveFingerprint   string                 `json:"active_fingerprint"`
	TrustState          TrustState             `json:"trust_state"`
	SignatureAssessment SignatureAssessment    `json:"signature_assessment"`
	PackageSourceKind   PackageSourceKind      `json:"package_source_kind"`
	ExecutionApproval   ExecutionApproval      `json:"execution_approval"`
	EnableState         EnableState            `json:"enable_state"`
	Revisions           AuthorizationRevisions `json:"revisions"`
}

type AuthorizationStore

type AuthorizationStore interface {
	GrantPermission(ctx context.Context, req permissions.GrantRequest, expected AuthorizationRevisions) (AuthorizationSnapshot, error)
	RevokePermission(ctx context.Context, req permissions.RevokeRequest, expected AuthorizationRevisions) (AuthorizationSnapshot, error)
	PutSecurityPolicy(ctx context.Context, req security.PutPolicyRequest, expected AuthorizationRevisions) (AuthorizationSnapshot, error)
	DeleteSecurityPolicy(ctx context.Context, pluginInstanceID string, now time.Time, expected AuthorizationRevisions) (AuthorizationSnapshot, error)
	GetAuthorization(ctx context.Context, pluginInstanceID string) (AuthorizationSnapshot, error)
	ListAuthorization(ctx context.Context) ([]AuthorizationSnapshot, error)
	Authorize(ctx context.Context, req AuthorizeRequest) (AuthorizationDecision, error)
}

type AuthorizeRequest

type AuthorizeRequest struct {
	PluginInstanceID string                 `json:"plugin_instance_id"`
	Method           string                 `json:"method"`
	PermissionIDs    []string               `json:"permission_ids,omitempty"`
	Expected         AuthorizationRevisions `json:"expected"`
	Now              time.Time              `json:"-"`
}

type EnableState

type EnableState string
const (
	EnableEnabled        EnableState = "enabled"
	EnableDisabledByUser EnableState = "disabled_by_user"
)

type ExecutionApproval

type ExecutionApproval struct {
	Status            ExecutionApprovalStatus `json:"state"`
	OwnerEnvHash      string                  `json:"owner_env_hash,omitempty"`
	PackageSHA256     string                  `json:"package_sha256,omitempty"`
	ReasonCodes       []string                `json:"reason_codes,omitempty"`
	EvidenceReference string                  `json:"evidence_reference,omitempty"`
	PolicyEpoch       string                  `json:"policy_epoch,omitempty"`
	AssessedAt        time.Time               `json:"assessed_at,omitempty"`
	ApprovedAt        time.Time               `json:"approved_at,omitempty"`
}

ExecutionApproval is durable package authorization. Its audience is exactly one environment and one immutable package digest; session audiences must not be persisted here.

type ExecutionApprovalStatus

type ExecutionApprovalStatus string
const (
	ExecutionApprovalPending        ExecutionApprovalStatus = "pending"
	ExecutionApprovalUserApproved   ExecutionApprovalStatus = "user_approved"
	ExecutionApprovalPolicyApproved ExecutionApprovalStatus = "policy_approved"
	ExecutionApprovalPolicyBlocked  ExecutionApprovalStatus = "policy_blocked"
)

type ExternalPackageInstallIntent

type ExternalPackageInstallIntent string
const (
	ExternalPackageInstall ExternalPackageInstallIntent = "install"
	ExternalPackageUpdate  ExternalPackageInstallIntent = "update"
)

type InstallExternalPackageRequest

type InstallExternalPackageRequest struct {
	Intent                     ExternalPackageInstallIntent `json:"intent"`
	ExpectedManagementRevision uint64                       `json:"expected_management_revision"`
	Record                     PluginRecord                 `json:"record"`
	Now                        time.Time                    `json:"-"`
}

type LocalImportProvenance

type LocalImportProvenance struct {
	ImportID       string `json:"import_id"`
	Distribution   string `json:"distribution"`
	PolicyEpoch    string `json:"policy_epoch"`
	UnsignedPolicy string `json:"unsigned_policy"`
	AssessedAt     string `json:"assessed_at"`
}

type ManagementRevisionConflictError

type ManagementRevisionConflictError struct {
	PluginInstanceID string
	Expected         uint64
	Actual           uint64
}

func (*ManagementRevisionConflictError) Error

func (*ManagementRevisionConflictError) Unwrap

type MemoryStore

type MemoryStore struct {
	// contains filtered or unexported fields
}

func NewMemoryStore

func NewMemoryStore() *MemoryStore

func (*MemoryStore) AbortInstall

func (s *MemoryStore) AbortInstall(ctx context.Context, pluginInstanceID string) error

func (*MemoryStore) Authorize

func (*MemoryStore) BindRetained

func (s *MemoryStore) BindRetained(ctx context.Context, expected plugindata.Binding, targetPluginInstanceID string, targetExpectedManagementRevision uint64, targetShape plugindata.Shape, now time.Time) (plugindata.Binding, error)

func (*MemoryStore) CleanupExpired

func (s *MemoryStore) CleanupExpired(ctx context.Context, now time.Time, expected []plugindata.Binding) ([]plugindata.Binding, error)

func (*MemoryStore) CreateObject

func (s *MemoryStore) CreateObject(ctx context.Context, scope sessionctx.ScopeKind, object plugindata.Object) error

func (*MemoryStore) DeleteObject

func (s *MemoryStore) DeleteObject(ctx context.Context, scope sessionctx.ScopeKind, pluginInstanceID, objectID string) error

func (*MemoryStore) DeleteRetained

func (s *MemoryStore) DeleteRetained(ctx context.Context, expected plugindata.Binding) error

func (*MemoryStore) DeleteSecurityPolicy

func (s *MemoryStore) DeleteSecurityPolicy(ctx context.Context, pluginInstanceID string, now time.Time, expected AuthorizationRevisions) (AuthorizationSnapshot, error)

func (*MemoryStore) Durable

func (*MemoryStore) Durable() bool

func (*MemoryStore) GetAuthorization

func (s *MemoryStore) GetAuthorization(ctx context.Context, pluginInstanceID string) (AuthorizationSnapshot, error)

func (*MemoryStore) GetBinding

func (s *MemoryStore) GetBinding(ctx context.Context, pluginInstanceID string) (plugindata.Binding, bool, error)

func (*MemoryStore) GetObject

func (s *MemoryStore) GetObject(ctx context.Context, scope sessionctx.ScopeKind, pluginInstanceID, objectID string) (plugindata.Object, bool, error)

func (*MemoryStore) GetPlugin

func (s *MemoryStore) GetPlugin(ctx context.Context, pluginInstanceID string) (PluginRecord, error)

func (*MemoryStore) GrantPermission

func (*MemoryStore) ListAllBindingsForMaintenance

func (s *MemoryStore) ListAllBindingsForMaintenance(_ context.Context, cursor string, limit int) ([]plugindata.MaintenanceBinding, string, error)

func (*MemoryStore) ListAllObjectsForMaintenance

func (s *MemoryStore) ListAllObjectsForMaintenance(_ context.Context, cursor string, limit int) ([]plugindata.MaintenanceObject, string, error)

func (*MemoryStore) ListAuthorization

func (s *MemoryStore) ListAuthorization(ctx context.Context) ([]AuthorizationSnapshot, error)

func (*MemoryStore) ListBindings

func (s *MemoryStore) ListBindings(ctx context.Context, cursor string, limit int) ([]plugindata.Binding, string, error)

func (*MemoryStore) ListObjects

func (s *MemoryStore) ListObjects(ctx context.Context, scope sessionctx.ScopeKind, pluginInstanceID, cursor string, limit int) ([]plugindata.Object, string, error)

func (*MemoryStore) ListPlugins

func (s *MemoryStore) ListPlugins(ctx context.Context) ([]PluginRecord, error)

func (*MemoryStore) PutPlugin

func (s *MemoryStore) PutPlugin(ctx context.Context, record PluginRecord, opts PutOptions) (PluginRecord, error)

func (*MemoryStore) PutSecurityPolicy

func (*MemoryStore) RevokePermission

func (*MemoryStore) SetEnableState

func (s *MemoryStore) SetEnableState(ctx context.Context, pluginInstanceID string, state EnableState, reason string, now time.Time) (PluginRecord, error)

func (*MemoryStore) SwapImport

func (s *MemoryStore) SwapImport(ctx context.Context, expectedManagementRevision uint64, expected *plugindata.Binding, next plugindata.Binding, shape plugindata.Shape, now time.Time) error

type PackageSourceKind

type PackageSourceKind string
const (
	PackageSourceGitHubRepository PackageSourceKind = "github_repository"
	PackageSourcePackageURL       PackageSourceKind = "package_url"
	PackageSourcePackageUpload    PackageSourceKind = "package_upload"
	PackageSourceOfficialCatalog  PackageSourceKind = "official_catalog"
	PackageSourceApprovedCatalog  PackageSourceKind = "approved_catalog"
	PackageSourceLocalGenerated   PackageSourceKind = "local_generated"
)

type PackageSourceProvenance

type PackageSourceProvenance struct {
	Kind               PackageSourceKind          `json:"kind"`
	UploadID           string                     `json:"upload_id,omitempty"`
	SourceOrigin       string                     `json:"source_origin,omitempty"`
	SourceURL          string                     `json:"source_url,omitempty"`
	FinalURL           string                     `json:"final_url,omitempty"`
	RedirectChain      []PackageSourceRedirectHop `json:"redirect_chain,omitempty"`
	RepositoryURL      string                     `json:"repository_url,omitempty"`
	GitHubRepositoryID string                     `json:"repository_id,omitempty"`
	GitHubReleaseID    string                     `json:"release_id,omitempty"`
	GitHubAssetID      string                     `json:"asset_id,omitempty"`
	GitHubOwner        string                     `json:"owner,omitempty"`
	GitHubRepository   string                     `json:"repository,omitempty"`
	ReleaseTag         string                     `json:"release_tag,omitempty"`
	AssetName          string                     `json:"asset_name,omitempty"`
	PackageSHA256      string                     `json:"package_sha256,omitempty"`
	SourceReference    string                     `json:"source_reference,omitempty"`
	SourcePath         string                     `json:"source_path,omitempty"`
	ResolvedRevision   string                     `json:"resolved_commit_sha,omitempty"`
	CatalogEntryID     string                     `json:"catalog_entry_id,omitempty"`
	RetrievedAt        time.Time                  `json:"resolved_at,omitempty"`
}

type PackageSourceRedirectHop

type PackageSourceRedirectHop struct {
	Origin string `json:"origin"`
	Path   string `json:"path"`
}

type PluginRecord

type PluginRecord struct {
	OwnerEnvHash              string                    `json:"-"`
	PluginInstanceID          string                    `json:"plugin_instance_id"`
	PublisherID               string                    `json:"publisher_id"`
	PluginID                  string                    `json:"plugin_id"`
	Version                   string                    `json:"version"`
	ActiveFingerprint         string                    `json:"active_fingerprint"`
	PackageHash               string                    `json:"package_hash"`
	ManifestHash              string                    `json:"manifest_hash"`
	EntriesHash               string                    `json:"entries_hash"`
	TrustState                TrustState                `json:"trust_state"`
	TrustAssessment           TrustAssessment           `json:"trust_assessment"`
	SignatureAssessment       SignatureAssessment       `json:"signature_assessment"`
	PackageSourceProvenance   PackageSourceProvenance   `json:"source_provenance"`
	ExecutionApproval         ExecutionApproval         `json:"execution_approval"`
	UpdateEligibility         UpdateEligibility         `json:"update_eligibility"`
	SecurityCapabilitySummary SecurityCapabilitySummary `json:"security_summary"`
	ReleaseTrustBinding       *ReleaseTrustBinding      `json:"release_trust_binding,omitempty"`
	LocalImportProvenance     *LocalImportProvenance    `json:"local_import_provenance,omitempty"`
	CapabilityContracts       []capabilitycontract.Pin  `json:"capability_contracts,omitempty"`
	EnableState               EnableState               `json:"enable_state"`
	DisabledReason            string                    `json:"disabled_reason,omitempty"`
	PolicyRevision            uint64                    `json:"policy_revision"`
	ManagementRevision        uint64                    `json:"management_revision"`
	RevokeEpoch               uint64                    `json:"revoke_epoch"`
	Manifest                  manifest.Manifest         `json:"manifest"`
	CanonicalManifest         string                    `json:"-"`
	PackageEntries            []pluginpkg.Entry         `json:"package_entries"`
	VersionHistory            []PluginVersion           `json:"version_history,omitempty"`
	InstalledAt               time.Time                 `json:"installed_at"`
	EnabledAt                 *time.Time                `json:"enabled_at,omitempty"`
	UpdatedAt                 time.Time                 `json:"updated_at"`
	DeletedAt                 *time.Time                `json:"deleted_at,omitempty"`
	Metadata                  map[string]string         `json:"metadata,omitempty"`
}

func PrepareEnableState

func PrepareEnableState(record PluginRecord, state EnableState, reason string, now time.Time) (PluginRecord, error)

func PrepareExternalPackageInstall

func PrepareExternalPackageInstall(ownerEnvHash string, req InstallExternalPackageRequest, existing *PluginRecord) (PluginRecord, error)

PrepareExternalPackageInstall applies the canonical external-package validation, owner binding, revision transition, and security normalization without persisting state. Persistent authorities use this function inside their own atomic transaction so Host has one installation state machine.

func PreparePluginPut

func PreparePluginPut(ownerEnvHash string, record PluginRecord, existing *PluginRecord, now time.Time) (PluginRecord, error)

type PluginVersion

type PluginVersion struct {
	Version                   string                    `json:"version"`
	ActiveFingerprint         string                    `json:"active_fingerprint"`
	PackageHash               string                    `json:"package_hash"`
	ManifestHash              string                    `json:"manifest_hash"`
	EntriesHash               string                    `json:"entries_hash"`
	TrustState                TrustState                `json:"trust_state"`
	TrustAssessment           TrustAssessment           `json:"trust_assessment"`
	SignatureAssessment       SignatureAssessment       `json:"signature_assessment"`
	PackageSourceProvenance   PackageSourceProvenance   `json:"source_provenance"`
	ExecutionApproval         ExecutionApproval         `json:"execution_approval"`
	UpdateEligibility         UpdateEligibility         `json:"update_eligibility"`
	SecurityCapabilitySummary SecurityCapabilitySummary `json:"security_summary"`
	ReleaseTrustBinding       *ReleaseTrustBinding      `json:"release_trust_binding,omitempty"`
	LocalImportProvenance     *LocalImportProvenance    `json:"local_import_provenance,omitempty"`
	CapabilityContracts       []capabilitycontract.Pin  `json:"capability_contracts,omitempty"`
	Manifest                  manifest.Manifest         `json:"manifest"`
	CanonicalManifest         string                    `json:"-"`
	PackageEntries            []pluginpkg.Entry         `json:"package_entries"`
	ActivatedAt               time.Time                 `json:"activated_at"`
	Metadata                  map[string]string         `json:"metadata,omitempty"`
}

type PutOptions

type PutOptions struct {
	Now time.Time `json:"-"`
}

type ReleaseInstallFailure

type ReleaseInstallFailure struct {
	Code      string `json:"code"`
	Retryable bool   `json:"retryable"`
}

type ReleaseInstallIdentity

type ReleaseInstallIdentity struct {
	SourceID              string `json:"source_id"`
	Channel               string `json:"channel"`
	ReleaseMetadataRef    string `json:"release_metadata_ref"`
	ReleaseMetadataSHA256 string `json:"release_metadata_sha256"`
	PublisherID           string `json:"publisher_id"`
	PluginID              string `json:"plugin_id"`
	Version               string `json:"version"`
	PackageSHA256         string `json:"package_sha256"`
	ManifestSHA256        string `json:"manifest_sha256"`
	EntriesSHA256         string `json:"entries_sha256"`
}

ReleaseInstallIdentity is the immutable signed-release coordinate required to reconcile an interrupted installation without retaining a source URL.

type ReleaseInstallOperation

type ReleaseInstallOperation struct {
	Execution             execution.Execution             `json:"-"`
	RequestID             string                          `json:"request_id"`
	PluginInstanceID      string                          `json:"plugin_instance_id"`
	ReleaseIdentityDigest string                          `json:"release_identity_digest,omitempty"`
	ManifestSHA256        string                          `json:"manifest_sha256,omitempty"`
	ContractSetSHA256     string                          `json:"contract_set_sha256,omitempty"`
	SummarySHA256         string                          `json:"summary_sha256,omitempty"`
	RequestSHA256         string                          `json:"request_sha256"`
	Phase                 string                          `json:"phase"`
	Progress              ReleaseInstallProgress          `json:"progress"`
	Attempt               int                             `json:"attempt"`
	RetryAfterMS          int64                           `json:"retry_after_ms"`
	MutationOutcome       mutation.Outcome                `json:"mutation_outcome"`
	Failure               *ReleaseInstallFailure          `json:"failure,omitempty"`
	PluginRecord          *PluginRecord                   `json:"plugin_record,omitempty"`
	PhaseDiagnostics      []ReleaseInstallPhaseDiagnostic `json:"phase_diagnostics"`
	Release               ReleaseInstallIdentity          `json:"-"`
}

func ApplyReleaseInstallOperationUpdate

func ApplyReleaseInstallOperationUpdate(current ReleaseInstallOperation, req UpdateReleaseInstallOperationRequest) (ReleaseInstallOperation, error)

ApplyReleaseInstallOperationUpdate is the canonical transition helper used by Host-owned durable execution stores.

func PrepareReleaseInstallOperation

func PrepareReleaseInstallOperation(req StartReleaseInstallOperationRequest) (ReleaseInstallOperation, error)

PrepareReleaseInstallOperation validates one request and constructs the canonical initial payload for a Host-owned Execution.

type ReleaseInstallPhaseDiagnostic

type ReleaseInstallPhaseDiagnostic struct {
	Phase        string                 `json:"phase"`
	ArtifactRole string                 `json:"artifact_role,omitempty"`
	Attempt      int                    `json:"attempt"`
	Progress     ReleaseInstallProgress `json:"progress"`
	CacheHit     bool                   `json:"cache_hit"`
	StartedAt    time.Time              `json:"started_at"`
	CompletedAt  *time.Time             `json:"completed_at,omitempty"`
	DurationMS   int64                  `json:"duration_ms,omitempty"`
}

type ReleaseInstallProgress

type ReleaseInstallProgress struct {
	Kind      ReleaseInstallProgressKind `json:"kind"`
	Completed int64                      `json:"completed,omitempty"`
	Total     int64                      `json:"total,omitempty"`
}

type ReleaseInstallProgressEvent added in v3.0.10

type ReleaseInstallProgressEvent struct {
	TaskID       string                    `json:"task_id"`
	RequestID    string                    `json:"request_id"`
	Stage        ReleaseInstallStage       `json:"stage"`
	Status       ReleaseInstallStageStatus `json:"status"`
	Completed    *int64                    `json:"completed,omitempty"`
	Total        *int64                    `json:"total,omitempty"`
	FailureCode  string                    `json:"failure_code,omitempty"`
	FailureStage ReleaseInstallStage       `json:"failure_stage,omitempty"`
	Retryable    *bool                     `json:"retryable,omitempty"`
}

ReleaseInstallProgressEvent is the stable user-facing projection of a release-install task. PhaseDiagnostics intentionally remain more detailed.

type ReleaseInstallProgressKind

type ReleaseInstallProgressKind string
const (
	ReleaseInstallProgressIndeterminate ReleaseInstallProgressKind = "indeterminate"
	ReleaseInstallProgressItems         ReleaseInstallProgressKind = "items"
	ReleaseInstallProgressBytes         ReleaseInstallProgressKind = "bytes"
)

type ReleaseInstallStage added in v3.0.10

type ReleaseInstallStage string
const (
	ReleaseInstallStageDownload ReleaseInstallStage = "download"
	ReleaseInstallStageVerify   ReleaseInstallStage = "verify"
	ReleaseInstallStageInstall  ReleaseInstallStage = "install"
	ReleaseInstallStageEnable   ReleaseInstallStage = "enable"
)

func ReleaseInstallStageForPhase added in v3.0.10

func ReleaseInstallStageForPhase(phase string) ReleaseInstallStage

ReleaseInstallStageForPhase maps internal diagnostics to the stable four steps rendered by host products.

type ReleaseInstallStageStatus added in v3.0.10

type ReleaseInstallStageStatus string
const (
	ReleaseInstallStagePending   ReleaseInstallStageStatus = "pending"
	ReleaseInstallStageRunning   ReleaseInstallStageStatus = "running"
	ReleaseInstallStageCompleted ReleaseInstallStageStatus = "completed"
	ReleaseInstallStageFailed    ReleaseInstallStageStatus = "failed"
)

type ReleaseTrustBinding

type ReleaseTrustBinding struct {
	SourceID              string `json:"source_id"`
	Channel               string `json:"channel"`
	ReleaseMetadataRef    string `json:"release_metadata_ref"`
	ReleaseMetadataSHA256 string `json:"release_metadata_sha256"`
	PublisherID           string `json:"publisher_id"`
	PluginID              string `json:"plugin_id"`
	Version               string `json:"version"`
	PackageSigningKeyID   string `json:"package_signing_key_id"`
	RootEpoch             string `json:"root_epoch"`
	PolicyEpoch           string `json:"policy_epoch"`
	RevocationEpoch       string `json:"revocation_epoch"`
}

type SecurityCapabilitySummary

type SecurityCapabilitySummary struct {
	SchemaVersion string   `json:"schema_version,omitempty"`
	CapabilityIDs []string `json:"capability_ids,omitempty"`
	Summary       string   `json:"summary,omitempty"`
	CanonicalJSON string   `json:"canonical_json,omitempty"`
	Reference     string   `json:"reference,omitempty"`
	SHA256        string   `json:"sha256,omitempty"`
}

type SignatureAssessment

type SignatureAssessment struct {
	Status               SignatureAssessmentStatus `json:"state"`
	Algorithm            string                    `json:"algorithm,omitempty"`
	KeyID                string                    `json:"key_id,omitempty"`
	AssessedHashes       TrustHashSet              `json:"assessed_hashes"`
	PackageSHA256        string                    `json:"package_sha256,omitempty"`
	ManifestSHA256       string                    `json:"manifest_sha256,omitempty"`
	EntriesSHA256        string                    `json:"entries_sha256,omitempty"`
	KeyringGeneration    string                    `json:"keyring_generation,omitempty"`
	RevocationGeneration string                    `json:"revocation_generation,omitempty"`
	AssessmentEpoch      string                    `json:"assessment_epoch,omitempty"`
	TrustRootEpoch       string                    `json:"trust_root_epoch,omitempty"`
	PolicyEpoch          string                    `json:"policy_epoch,omitempty"`
	RevocationEpoch      string                    `json:"revocation_epoch,omitempty"`
	ReasonCodes          []string                  `json:"reason_codes,omitempty"`
	EvidenceReference    string                    `json:"evidence_reference,omitempty"`
	AssessedAt           time.Time                 `json:"assessed_at,omitempty"`
}

type SignatureAssessmentStatus

type SignatureAssessmentStatus string
const (
	SignatureVerified      SignatureAssessmentStatus = "verified"
	SignatureAbsent        SignatureAssessmentStatus = "absent"
	SignatureUnknownSigner SignatureAssessmentStatus = "unknown_signer"
	SignatureInvalid       SignatureAssessmentStatus = "invalid"
	SignatureRevoked       SignatureAssessmentStatus = "revoked"
	SignatureUnavailable   SignatureAssessmentStatus = "unavailable"
)

type StartReleaseInstallOperationRequest

type StartReleaseInstallOperationRequest struct {
	RequestID             string                 `json:"request_id"`
	ExecutionID           string                 `json:"execution_id"`
	PluginInstanceID      string                 `json:"plugin_instance_id"`
	ReleaseIdentityDigest string                 `json:"release_identity_digest,omitempty"`
	ManifestSHA256        string                 `json:"manifest_sha256,omitempty"`
	ContractSetSHA256     string                 `json:"contract_set_sha256,omitempty"`
	SummarySHA256         string                 `json:"summary_sha256,omitempty"`
	Release               ReleaseInstallIdentity `json:"release"`
	Now                   time.Time              `json:"-"`
}

type Store

type Store interface {
	Durable() bool
	AuthorizationStore
	plugindata.Catalog
	PutPlugin(ctx context.Context, record PluginRecord, opts PutOptions) (PluginRecord, error)
	GetPlugin(ctx context.Context, pluginInstanceID string) (PluginRecord, error)
	ListPlugins(ctx context.Context) ([]PluginRecord, error)
	SetEnableState(ctx context.Context, pluginInstanceID string, state EnableState, reason string, now time.Time) (PluginRecord, error)
	CommitUninstall(ctx context.Context, req plugindata.CommitUninstallRequest) (plugindata.CommitUninstallResult, error)
	AbortInstall(ctx context.Context, pluginInstanceID string) error
}

type TrustAssessment

type TrustAssessment struct {
	TrustState           TrustState         `json:"trust_state"`
	ReasonCodes          []string           `json:"reason_codes,omitempty"`
	VerifiedHashes       TrustHashSet       `json:"verified_hashes"`
	VerifiedSignature    *VerifiedSignature `json:"verified_signature,omitempty"`
	TrustAssessmentEpoch string             `json:"trust_assessment_epoch,omitempty"`
	PolicyEpoch          string             `json:"policy_epoch,omitempty"`
	RevocationEpoch      string             `json:"revocation_epoch,omitempty"`
	Metadata             map[string]string  `json:"metadata,omitempty"`
}

type TrustHashSet

type TrustHashSet struct {
	PackageSHA256  string `json:"package_sha256"`
	ManifestSHA256 string `json:"manifest_sha256"`
	EntriesSHA256  string `json:"entries_sha256"`
}

type TrustState

type TrustState string
const (
	TrustVerified        TrustState = "verified"
	TrustUnsignedLocal   TrustState = "unsigned_local"
	TrustUntrusted       TrustState = "untrusted"
	TrustNeedsReview     TrustState = "needs_review"
	TrustUnavailable     TrustState = "trust_unavailable"
	TrustBlockedSecurity TrustState = "blocked_security"
)

type UpdateEligibility

type UpdateEligibility string
const (
	UpdateManualOnly        UpdateEligibility = "manual_only"
	UpdateAutomaticEligible UpdateEligibility = "automatic_eligible"
)

type UpdateReleaseInstallOperationRequest

type UpdateReleaseInstallOperationRequest struct {
	ExecutionID     string
	ExpectedCursor  uint64
	Status          string
	Phase           string
	Progress        ReleaseInstallProgress
	ArtifactRole    string
	CacheHit        bool
	Attempt         int
	RetryAfterMS    int64
	MutationOutcome mutation.Outcome
	Failure         *ReleaseInstallFailure
	PluginRecord    *PluginRecord
	Now             time.Time
}

type VerifiedSignature

type VerifiedSignature struct {
	Algorithm string `json:"algorithm"`
	KeyID     string `json:"key_id"`
}

Jump to

Keyboard shortcuts

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