Documentation
¶
Index ¶
- Variables
- func AsValidatedCapabilityBusinessError(err error) (capability.BusinessError, bool)
- func AsValidatedWorkerExecutionError(err error) (runtimeclient.WorkerExecutionError, bool)
- func HasUnattestedRPCStructuredError(err error) bool
- func ImportLocalPackageBytes(ctx context.Context, h *Host, pluginInstanceID string, data []byte) (registry.PluginRecord, error)
- type AcknowledgeStreamRequest
- type ActionDeniedError
- type AuditEvent
- type AuditSink
- type AuthorizationAdapter
- type AuthorizationRequest
- type AuthorizationTarget
- type BindRetainedDataRequest
- type CallMethodRequest
- type CallMethodResult
- type CancelOperationRequest
- type CancelSurfaceOperationRequest
- type CapabilityArtifactFetchHop
- type CapabilityContractArtifactResolver
- type CapabilityContractArtifactSet
- type CapabilityContractKeyRequest
- type CapabilityContractKeyResolver
- type CapabilityContractResolveRequest
- type CapabilityModule
- type CleanupExpiredRetainedDataRequest
- type Config
- type ConnectivityModule
- type CoreActionAdapter
- type CoreActionModule
- type CoreAdapters
- type DeleteExportDataRequest
- type DeleteRetainedDataRequest
- type DeleteSecurityPolicyRequest
- type DiagnosticDetails
- type DiagnosticEvent
- type DiagnosticLister
- type DiagnosticsSink
- type DisableRequest
- type DisposeSurfaceRequest
- type DowngradeRequest
- type EnableRequest
- type ExportDataRequest
- type ExportDataResult
- type Feature
- type FeatureNotConfiguredError
- type GetSecurityPolicyRequest
- type GetSettingsRequest
- type GrantPermissionRequest
- type Host
- func (h *Host) AcknowledgeStream(ctx context.Context, req AcknowledgeStreamRequest) (stream.Record, error)
- func (h *Host) BindRetainedData(ctx context.Context, req BindRetainedDataRequest) (result plugindata.Binding, retErr error)
- func (h *Host) BindSecretRef(ctx context.Context, req SecretBindRequest) (retErr error)
- func (h *Host) CallPluginMethod(ctx context.Context, req CallMethodRequest) (result CallMethodResult, resultErr error)
- func (h *Host) CancelOperation(ctx context.Context, req CancelOperationRequest) (result operation.Record, retErr error)
- func (h *Host) CancelSurfaceOperation(ctx context.Context, req CancelSurfaceOperationRequest) (operation.Record, error)
- func (h *Host) Capabilities() *capability.Registry
- func (h *Host) CleanupExpiredRetainedData(ctx context.Context, req CleanupExpiredRetainedDataRequest) (RetainedDataCleanupResult, error)
- func (h *Host) Close() error
- func (h *Host) DeleteExportedPluginData(ctx context.Context, req DeleteExportDataRequest) error
- func (h *Host) DeleteRetainedData(ctx context.Context, req DeleteRetainedDataRequest) (result plugindata.Binding, retErr error)
- func (h *Host) DeleteSecretRef(ctx context.Context, req SecretDeleteRequest) (retErr error)
- func (h *Host) DeleteSecurityPolicy(ctx context.Context, req DeleteSecurityPolicyRequest) (result registry.AuthorizationRevisions, retErr error)
- func (h *Host) DisablePlugin(ctx context.Context, req DisableRequest) (result registry.PluginRecord, retErr error)
- func (h *Host) DisposeSurface(ctx context.Context, req DisposeSurfaceRequest) error
- func (h *Host) DowngradePlugin(ctx context.Context, req DowngradeRequest) (result registry.PluginRecord, retErr error)
- func (h *Host) EnablePlugin(ctx context.Context, req EnableRequest) (result registry.PluginRecord, retErr error)
- func (h *Host) ExportPluginData(ctx context.Context, req ExportDataRequest) (result ExportDataResult, retErr error)
- func (h *Host) Features(ctx context.Context) ([]Feature, error)
- func (h *Host) GetCompatibility(ctx context.Context) (version.CompatibilityManifest, error)
- func (h *Host) GetOperation(ctx context.Context, operationID string) (operation.Record, error)
- func (h *Host) GetPluginSettings(ctx context.Context, req GetSettingsRequest) (SettingsResult, error)
- func (h *Host) GetSecurityPolicy(ctx context.Context, req GetSecurityPolicyRequest) (SecurityPolicyResult, error)
- func (h *Host) GetSettingsSchema(ctx context.Context, req GetSettingsRequest) (SettingsSchemaResult, error)
- func (h *Host) GrantPermission(ctx context.Context, req GrantPermissionRequest) (result PermissionMutationResult, retErr error)
- func (h *Host) ImportLocalPackage(ctx context.Context, req ImportLocalPackageRequest) (registry.PluginRecord, error)
- func (h *Host) ImportPluginData(ctx context.Context, req ImportDataRequest) (result registry.PluginRecord, retErr error)
- func (h *Host) InstallReleaseRef(ctx context.Context, req InstallReleaseRefRequest) (registry.PluginRecord, error)
- func (h *Host) InvokeIntent(ctx context.Context, req InvokeIntentRequest) (response CallMethodResult, resultErr error)
- func (h *Host) ListDiagnosticEvents(ctx context.Context, req ListDiagnosticEventsRequest) ([]DiagnosticEvent, error)
- func (h *Host) ListIntents(ctx context.Context, req ListIntentsRequest) ([]IntentRecord, error)
- func (h *Host) ListOperations(ctx context.Context, req ListOperationsRequest) (ListOperationsResult, error)
- func (h *Host) ListPermissionGrants(ctx context.Context, req ListPermissionGrantsRequest) ([]permissions.Record, error)
- func (h *Host) ListPlugins(ctx context.Context) ([]registry.PluginRecord, error)
- func (h *Host) ListRetainedData(ctx context.Context, req ListRetainedDataRequest) ([]plugindata.Binding, error)
- func (h *Host) ListSecurityPolicies(ctx context.Context) ([]SecurityPolicyResult, error)
- func (h *Host) MintBridgeToken(ctx context.Context, req MintBridgeTokenRequest) (result bridge.GatewayTokenResult, retErr error)
- func (h *Host) MintConnectionGrant(ctx context.Context, req MintConnectionGrantRequest) (result connectivity.ConnectionGrant, retErr error)
- func (h *Host) MintNetworkHandleGrant(ctx context.Context, req MintConnectionGrantRequest) (result NetworkHandleGrantResult, retErr error)
- func (h *Host) MintStorageHandleGrant(ctx context.Context, req MintStorageHandleGrantRequest) (result StorageHandleGrantResult, retErr error)
- func (h *Host) OpenSurface(ctx context.Context, req OpenSurfaceRequest) (result bridge.SurfaceBootstrap, retErr error)
- func (h *Host) PatchPluginSettings(ctx context.Context, req PatchSettingsRequest) (result SettingsResult, retErr error)
- func (h *Host) PrepareMethodConfirmation(ctx context.Context, req PrepareMethodConfirmationRequest) (response PrepareMethodConfirmationResult, resultErr error)
- func (h *Host) PrepareSurface(ctx context.Context, req PrepareSurfaceRequest) (result PrepareSurfaceResult, err error)
- func (h *Host) PutSecurityPolicy(ctx context.Context, req PutSecurityPolicyRequest) (result SecurityPolicyResult, retErr error)
- func (h *Host) ReadStream(ctx context.Context, req ReadStreamRequest) (ReadStreamResult, error)
- func (h *Host) ReadSurfaceAsset(ctx context.Context, req ReadSurfaceAssetRequest) (ReadSurfaceAssetResult, error)
- func (h *Host) RefreshEnabledPlugins(ctx context.Context) ([]RefreshEnabledPluginResult, error)
- func (h *Host) RejectMethodConfirmation(ctx context.Context, req RejectMethodConfirmationRequest) (response RejectMethodConfirmationResult, resultErr error)
- func (h *Host) ReportHTTPAdapterFailure(ctx context.Context, operation string, code security.ErrorCode, err error)
- func (h *Host) RevokePermission(ctx context.Context, req RevokePermissionRequest) (result PermissionMutationResult, retErr error)
- func (h *Host) RevokeSurfaceScope(ctx context.Context, req RevokeSurfaceScopeRequest) (result int, retErr error)
- func (h *Host) RuntimeHealth(ctx context.Context) (runtimeclient.ManagerHealth, error)
- func (h *Host) StartRuntime(ctx context.Context, req StartRuntimeRequest) (result runtimeclient.ManagerHealth, retErr error)
- func (h *Host) StopRuntime(ctx context.Context) (retErr error)
- func (h *Host) TestSecretRef(ctx context.Context, req SecretTestRequest) (retErr error)
- func (h *Host) UninstallPlugin(ctx context.Context, req UninstallRequest) (result registry.PluginRecord, retErr error)
- func (h *Host) UpdateLocalPackage(ctx context.Context, req UpdateLocalPackageRequest) (registry.PluginRecord, error)
- func (h *Host) UpdateReleaseRef(ctx context.Context, req UpdateReleaseRefRequest) (registry.PluginRecord, error)
- type HostCapabilityContractRef
- type HostCapabilityRequirement
- type HostConfigError
- type HostRequirement
- type HostRequirementPolicy
- type HostRequirementSelection
- type HostRequirementSelectionRequest
- type ImportDataRequest
- type ImportLocalPackageRequest
- type InstallReleaseRefRequest
- type IntentRecord
- type InvokeIntentRequest
- type ListDiagnosticEventsRequest
- type ListIntentsRequest
- type ListOperationsRequest
- type ListOperationsResult
- type ListPermissionGrantsRequest
- type ListRetainedDataRequest
- type ManagementAction
- type ManagementRevisionMismatchError
- type MintBridgeTokenRequest
- type MintConnectionGrantRequest
- type MintStorageHandleGrantRequest
- type NetworkHandleGrantResult
- type OpenSurfaceRequest
- type PackageDistribution
- type PackageDistributionRef
- type PackageDowngradePolicy
- type PackageHashSet
- type PackageInstallPolicy
- type PackageReleaseSignature
- type PackageSourceClass
- type PackageSourceType
- type PackageTrustAction
- type PackageTrustVerificationRequest
- type PackageTrustVerificationResult
- type PackageTrustVerifier
- type PackageUnsignedPolicy
- type PatchSettingsRequest
- type PermissionMutationResult
- type PluginData
- type PluginPackageRelease
- type PluginRef
- type PluginReleaseRef
- type PolicyAdapter
- type PolicyDecision
- type PrepareMethodConfirmationRequest
- type PrepareMethodConfirmationResult
- type PrepareSurfaceRequest
- type PrepareSurfaceResult
- type PutSecurityPolicyRequest
- type ReadStreamRequest
- type ReadStreamResult
- type ReadSurfaceAssetRequest
- type ReadSurfaceAssetResult
- type RefreshEnabledPluginPublicError
- type RefreshEnabledPluginResult
- type RefreshEnabledPluginStatus
- type RejectMethodConfirmationRequest
- type RejectMethodConfirmationResult
- type ReleaseArtifactResolveRequest
- type ReleaseArtifactResolver
- type ReleaseCompatibility
- type ReleaseEvidence
- type ReleaseMetadataSignature
- type ReleaseMetadataVerificationRequest
- type ReleaseMetadataVerificationResult
- type ReleaseMetadataVerifier
- type ReleaseModule
- type ReleaseSourcePolicyRequest
- type ReleaseSourcePolicyResolver
- type ResolvedCapabilityContractArtifact
- type ResolvedCapabilityContractFile
- type ResolvedPackageArtifact
- type ResourceRef
- type RetainedDataCleanupResult
- type RevokePermissionRequest
- type RevokeSurfaceScopeRequest
- type RuntimeModule
- type SecretBindRequest
- type SecretDeleteRequest
- type SecretStoreAdapter
- type SecretTestRequest
- type SecretsModule
- type SecurityPolicyResult
- type SettingsResult
- type SettingsSchemaResult
- type SettingsSecretMetadata
- type SourcePolicyRevocationEvidence
- type SourcePolicySnapshot
- type SourcePolicyTrustedKey
- type SourceRevocationEvidenceVerificationRequest
- type SourceRevocationEvidenceVerificationResult
- type SourceRevocationEvidenceVerifier
- type SourceRevocationMetadata
- type StartRuntimeRequest
- type StorageHandleGrantResult
- type SurfaceCatalogSink
- type SurfaceSnapshot
- type UninstallRequest
- type UpdateLocalPackageRequest
- type UpdateReleaseRefRequest
Constants ¶
This section is empty.
Variables ¶
var ( ErrStreamTicketRequired = errors.New("stream ticket is required") ErrPluginDataNotDeclared = errors.New("plugin does not declare exportable data") ErrPluginStorageNotDeclared = errors.New("target plugin does not declare storage") ErrPluginSettingsNotDeclared = errors.New("target plugin does not declare settings") ErrPluginDataContractChanged = errors.New("plugin data contract changed") ErrOperationCancelDispatchFailed = errors.New("operation cancel dispatch failed") ErrMethodRequestContract = errors.New("plugin method request contract validation failed") ErrMethodResponseContract = errors.New("plugin method response contract validation failed") ErrMethodAdapterPanic = errors.New("plugin method adapter panicked") ErrConfirmationInvalid = errors.New("plugin confirmation is invalid") ErrConfirmationRejected = errors.New("plugin confirmation was rejected") ErrManagementRevisionMismatch = errors.New("management revision mismatch") ErrPluginAlreadyInstalled = errors.New("plugin instance is already installed") ErrPluginTrustDenied = errors.New("plugin trust does not allow execution") ErrPluginUIProtocolUnsupported = errors.New("plugin UI protocol is unsupported") ErrPluginRuntimeNotConfigured = errors.New("plugin runtime is not configured") ErrPluginRuntimeIncompatible = errors.New("plugin runtime is incompatible") ErrSecurityEventPersistence = errors.New("plugin security event persistence failed") ErrAdapterFailure = errors.New("plugin host adapter failed") ErrOwnerScopeMismatch = errors.New("plugin owner scope mismatch") ErrSecretScopeMismatch = errors.New("plugin secret scope mismatch") ErrStorageScopeMismatch = errors.New("plugin storage scope mismatch") ErrHostClosed = errors.New("plugin host is closed") ErrHostConfig = errors.New("plugin host configuration is invalid") ErrFeatureNotConfigured = errors.New("plugin feature is not configured") ErrReleaseModuleRequired = errors.New("release module is required") ErrRuntimeModuleRequired = errors.New("runtime module is required") ErrCapabilityModuleRequired = errors.New("capability module is required") ErrConnectivityModuleRequired = errors.New("connectivity module is required") ErrSecretsModuleRequired = errors.New("secrets module is required") ErrCoreActionModuleRequired = errors.New("core action module is required") )
var ( ErrSecretStoreRequired = errors.New("secret store adapter is required") ErrInvalidSecretRef = secrets.ErrInvalidSecretRef ErrPackageTrustVerifierRequired = errors.New("package trust verifier is required for requested trust state") ErrPackageTrustVerificationInvalid = errors.New("package trust verifier returned invalid trust state") ErrReleaseMetadataVerifierRequired = errors.New("release metadata verifier is required") ErrSourceRevocationVerifierRequired = errors.New("source revocation evidence verifier is required") ErrReleaseSourcePolicyRequired = errors.New("release source policy resolver is required") ErrReleaseArtifactResolverRequired = errors.New("release artifact resolver is required") ErrReleaseRefVerificationFailed = errors.New("release ref verification failed") ErrReleaseRefPolicyDenied = errors.New("release ref source policy denied") )
var ErrActionDenied = errors.New("host platform action is denied")
var ErrConfirmationRequired = errors.New("plugin method confirmation required")
Functions ¶
func AsValidatedCapabilityBusinessError ¶ added in v0.5.0
func AsValidatedCapabilityBusinessError(err error) (capability.BusinessError, bool)
AsValidatedCapabilityBusinessError returns a copy of a published business error attested by Host.
func AsValidatedWorkerExecutionError ¶ added in v0.5.0
func AsValidatedWorkerExecutionError(err error) (runtimeclient.WorkerExecutionError, bool)
AsValidatedWorkerExecutionError returns a copy of a worker failure attested by Host.
func HasUnattestedRPCStructuredError ¶ added in v0.5.0
HasUnattestedRPCStructuredError reports whether an unprojected error graph contains a business- or worker-error claim that did not pass its Host-owned attestation boundary.
func ImportLocalPackageBytes ¶
Types ¶
type AcknowledgeStreamRequest ¶ added in v0.5.0
type ActionDeniedError ¶ added in v0.5.0
type ActionDeniedError struct {
Action ManagementAction
Target AuthorizationTarget
}
func (ActionDeniedError) Error ¶ added in v0.5.0
func (e ActionDeniedError) Error() string
func (ActionDeniedError) Unwrap ¶ added in v0.5.0
func (e ActionDeniedError) Unwrap() error
type AuditEvent ¶
type AuditEvent = observability.AuditEvent
type AuditSink ¶
type AuditSink = observability.AuditSink
type AuthorizationAdapter ¶ added in v0.5.0
type AuthorizationAdapter interface {
// Authorize returns ErrActionDenied only for an explicit policy denial.
// Any other error is treated as an operational adapter failure.
Authorize(ctx context.Context, req AuthorizationRequest) error
}
type AuthorizationRequest ¶ added in v0.5.0
type AuthorizationRequest struct {
// Session is derived from the authenticated context by Host and is never
// accepted from a command, HTTP payload, or plugin IPC request.
Session sessionctx.Context `json:"-"`
Action ManagementAction `json:"action"`
Target AuthorizationTarget `json:"target"`
RelatedTargets []AuthorizationTarget `json:"related_targets,omitempty"`
}
type AuthorizationTarget ¶ added in v0.5.0
type AuthorizationTarget struct {
Kind ResourceRef `json:"kind"`
ID string `json:"id,omitempty"`
Collection bool `json:"collection,omitempty"`
Scope *sessionctx.ResourceScope `json:"-"`
}
AuthorizationTarget is one canonical resource presented to an embedding product's authorization policy. ResourceScope is always derived by Host from the authenticated session and is never accepted from wire or plugin input.
type BindRetainedDataRequest ¶
type BindRetainedDataRequest struct {
SourcePluginInstanceID string `json:"source_plugin_instance_id"`
ExpectedSourceBindingRevision uint64 `json:"expected_source_binding_revision"`
TargetPluginInstanceID string `json:"target_plugin_instance_id"`
TargetExpectedManagementRevision uint64 `json:"target_expected_management_revision"`
Now time.Time `json:"-"`
}
type CallMethodRequest ¶
type CallMethodRequest struct {
PluginInstanceID string `json:"plugin_instance_id"`
SurfaceInstanceID string `json:"surface_instance_id"`
BridgeChannelID string `json:"bridge_channel_id"`
GatewayToken string `json:"plugin_gateway_token"`
ConfirmationID string `json:"confirmation_id,omitempty"`
Method string `json:"method"`
Params map[string]any `json:"params,omitempty"`
Now time.Time `json:"-"`
// contains filtered or unexported fields
}
type CallMethodResult ¶
type CallMethodResult struct {
Data any `json:"data"`
OperationID string `json:"operation_id,omitempty"`
StreamID string `json:"stream_id,omitempty"`
StreamTicket string `json:"stream_ticket,omitempty"`
StreamTicketID string `json:"stream_ticket_id,omitempty"`
StreamExpiresAt *time.Time `json:"stream_expires_at,omitempty"`
ConfirmationRequired bool `json:"confirmation_required,omitempty"`
ConfirmationTokenID string `json:"confirmation_token_id,omitempty"`
RequestHash string `json:"request_hash,omitempty"`
PlanHash string `json:"plan_hash,omitempty"`
}
type CancelOperationRequest ¶
type CancelSurfaceOperationRequest ¶ added in v0.3.0
type CapabilityArtifactFetchHop ¶ added in v0.3.0
type CapabilityContractArtifactResolver ¶ added in v0.3.0
type CapabilityContractArtifactResolver interface {
ResolveCapabilityContract(ctx context.Context, req CapabilityContractResolveRequest) (ResolvedCapabilityContractArtifact, error)
}
type CapabilityContractArtifactSet ¶ added in v0.3.0
type CapabilityContractArtifactSet interface {
OpenCapabilityContractArtifact(ctx context.Context, ref string) (ResolvedCapabilityContractFile, error)
}
type CapabilityContractKeyRequest ¶ added in v0.3.0
type CapabilityContractKeyRequest struct {
SourceID string `json:"source_id"`
PublisherID string `json:"publisher_id"`
KeyID string `json:"key_id"`
SourcePolicySnapshot SourcePolicySnapshot `json:"source_policy_snapshot"`
}
type CapabilityContractKeyResolver ¶ added in v0.3.0
type CapabilityContractKeyResolver interface {
ResolveCapabilityContractKey(ctx context.Context, req CapabilityContractKeyRequest) ([]byte, error)
}
type CapabilityContractResolveRequest ¶ added in v0.3.0
type CapabilityContractResolveRequest struct {
SourceID string `json:"source_id"`
PluginPublisherID string `json:"plugin_publisher_id"`
Pin capabilitycontract.Pin `json:"pin"`
SourcePolicySnapshot SourcePolicySnapshot `json:"source_policy_snapshot"`
}
type CapabilityModule ¶ added in v0.5.0
type CapabilityModule struct {
Registry *capability.Registry
}
type Config ¶ added in v0.5.0
type Config struct {
Core CoreAdapters
Release *ReleaseModule
Runtime *RuntimeModule
Capability *CapabilityModule
Connectivity *ConnectivityModule
Secrets *SecretsModule
CoreAction *CoreActionModule
}
type ConnectivityModule ¶ added in v0.5.0
type ConnectivityModule struct {
Broker connectivity.Broker
NetworkExecutor connectivity.NetworkExecutor
}
type CoreActionAdapter ¶
type CoreActionAdapter interface {
ResolveCoreActionTarget(ctx context.Context, req capability.TargetResolutionRequest) (capability.TargetDescriptor, error)
InvokeCoreAction(ctx context.Context, req capability.Invocation) (capability.Result, error)
}
type CoreActionModule ¶ added in v0.5.0
type CoreActionModule struct {
Adapter CoreActionAdapter
}
type CoreAdapters ¶ added in v0.5.0
type CoreAdapters struct {
Policy PolicyAdapter
Authorization AuthorizationAdapter
PackageTrustVerifier PackageTrustVerifier
Registry registry.Store
Audit AuditSink
SecurityAudit observability.SecurityAuditJournal
Diagnostics DiagnosticsSink
SurfaceCatalog SurfaceCatalogSink
SurfaceTokens *bridge.SurfaceTokenService
PluginData PluginData
Assets pluginpkg.AssetStore
InstallStages installstage.Store
Operations operation.Store
ConfirmationIntents security.ConfirmationIntentStore
Streams stream.Store
}
CoreAdapters contains the dependencies required by every Host instance. Optional capabilities are intentionally kept out of this structure so a host can expose only the integrations it actually provides. Package trust is core because every package mutation crosses the same trust boundary.
type DeleteExportDataRequest ¶ added in v0.5.0
type DeleteSecurityPolicyRequest ¶
type DeleteSecurityPolicyRequest struct {
PluginInstanceID string `json:"plugin_instance_id"`
ExpectedPolicyRevision uint64 `json:"expected_policy_revision"`
ExpectedManagementRevision uint64 `json:"expected_management_revision"`
ExpectedRevokeEpoch uint64 `json:"expected_revoke_epoch"`
Now time.Time `json:"-"`
}
type DiagnosticDetails ¶ added in v0.5.0
type DiagnosticDetails struct {
OperationsDeleted int64 `json:"operations_deleted,omitempty"`
StreamsDeleted int64 `json:"streams_deleted,omitempty"`
InvocationID string `json:"invocation_id,omitempty"`
Method string `json:"method,omitempty"`
FailureCode string `json:"failure_code,omitempty"`
RuntimeProcessFailureCode observability.RuntimeProcessFailureCode `json:"runtime_process_failure_code,omitempty"`
OperationID string `json:"operation_id,omitempty"`
StreamID string `json:"stream_id,omitempty"`
RuntimeInstanceID string `json:"runtime_instance_id,omitempty"`
RuntimeGenerationID string `json:"runtime_generation_id,omitempty"`
RuntimeVersion string `json:"runtime_version,omitempty"`
RustIPCVersion string `json:"rust_ipc_version,omitempty"`
WASMABIVersion string `json:"wasm_abi_version,omitempty"`
RuntimeTargetOS string `json:"runtime_target_os,omitempty"`
RuntimeTargetArch string `json:"runtime_target_arch,omitempty"`
RuntimeArtifactSHA256 string `json:"runtime_artifact_sha256,omitempty"`
OS string `json:"os,omitempty"`
Arch string `json:"arch,omitempty"`
Stream string `json:"stream,omitempty"`
PackageHash string `json:"package_hash,omitempty"`
Artifact string `json:"artifact,omitempty"`
PluginInstanceID string `json:"plugin_instance_id,omitempty"`
StoreID string `json:"store_id,omitempty"`
Operation string `json:"operation,omitempty"`
Hostcall string `json:"hostcall,omitempty"`
Code string `json:"code,omitempty"`
ConnectorID string `json:"connector_id,omitempty"`
Transport string `json:"transport,omitempty"`
RevokeEpoch uint64 `json:"revoke_epoch,omitempty"`
StageID string `json:"stage_id,omitempty"`
Reason string `json:"reason,omitempty"`
SurfaceInstanceID string `json:"surface_instance_id,omitempty"`
}
type DiagnosticEvent ¶
type DiagnosticEvent struct {
EventID string `json:"event_id,omitempty"`
Type string `json:"type"`
Severity observability.DiagnosticSeverity `json:"severity"`
Message string `json:"message"`
PluginID string `json:"plugin_id,omitempty"`
PluginInstanceID string `json:"plugin_instance_id,omitempty"`
SurfaceID string `json:"surface_id,omitempty"`
SurfaceInstanceID string `json:"surface_instance_id,omitempty"`
ActiveFingerprint string `json:"active_fingerprint,omitempty"`
RequestID string `json:"request_id,omitempty"`
CorrelationID string `json:"correlation_id,omitempty"`
MutationOutcome mutation.Outcome `json:"mutation_outcome,omitempty"`
OccurredAt time.Time `json:"occurred_at,omitempty"`
Details DiagnosticDetails `json:"details,omitzero"`
}
type DiagnosticLister ¶
type DiagnosticLister = observability.DiagnosticLister
type DiagnosticsSink ¶
type DiagnosticsSink = observability.DiagnosticsSink
type DisableRequest ¶
type DisposeSurfaceRequest ¶
type DowngradeRequest ¶
type EnableRequest ¶
type ExportDataRequest ¶
type ExportDataRequest struct {
PluginInstanceID string `json:"plugin_instance_id"`
}
type ExportDataResult ¶
type Feature ¶ added in v0.5.0
type Feature string
Feature identifies an optional host integration module. The values are part of the host contract and must remain a closed, sorted set.
type FeatureNotConfiguredError ¶ added in v0.5.0
type FeatureNotConfiguredError struct {
Features []Feature
}
FeatureNotConfiguredError identifies an optional module that was not installed in the host configuration.
func (FeatureNotConfiguredError) Error ¶ added in v0.5.0
func (e FeatureNotConfiguredError) Error() string
func (FeatureNotConfiguredError) MissingFeatures ¶ added in v0.5.0
func (e FeatureNotConfiguredError) MissingFeatures() []Feature
func (FeatureNotConfiguredError) Unwrap ¶ added in v0.5.0
func (e FeatureNotConfiguredError) Unwrap() error
type GetSecurityPolicyRequest ¶
type GetSecurityPolicyRequest struct {
PluginInstanceID string `json:"plugin_instance_id"`
}
type GetSettingsRequest ¶
type GetSettingsRequest struct {
PluginInstanceID string `json:"plugin_instance_id"`
Scope sessionctx.ScopeKind `json:"scope"`
}
type GrantPermissionRequest ¶
type GrantPermissionRequest struct {
PluginInstanceID string `json:"plugin_instance_id"`
PermissionID string `json:"permission_id"`
ExpectedPolicyRevision uint64 `json:"expected_policy_revision"`
ExpectedManagementRevision uint64 `json:"expected_management_revision"`
ExpectedRevokeEpoch uint64 `json:"expected_revoke_epoch"`
Now time.Time `json:"-"`
ExpiresAt time.Time `json:"expires_at,omitempty"`
}
type Host ¶
type Host struct {
// contains filtered or unexported fields
}
func (*Host) AcknowledgeStream ¶ added in v0.5.0
func (*Host) BindRetainedData ¶
func (h *Host) BindRetainedData(ctx context.Context, req BindRetainedDataRequest) (result plugindata.Binding, retErr error)
func (*Host) BindSecretRef ¶
func (h *Host) BindSecretRef(ctx context.Context, req SecretBindRequest) (retErr error)
func (*Host) CallPluginMethod ¶
func (h *Host) CallPluginMethod(ctx context.Context, req CallMethodRequest) (result CallMethodResult, resultErr error)
func (*Host) CancelOperation ¶
func (*Host) CancelSurfaceOperation ¶ added in v0.3.0
func (*Host) Capabilities ¶
func (h *Host) Capabilities() *capability.Registry
func (*Host) CleanupExpiredRetainedData ¶
func (h *Host) CleanupExpiredRetainedData(ctx context.Context, req CleanupExpiredRetainedDataRequest) (RetainedDataCleanupResult, error)
func (*Host) DeleteExportedPluginData ¶ added in v0.5.0
func (h *Host) DeleteExportedPluginData(ctx context.Context, req DeleteExportDataRequest) error
func (*Host) DeleteRetainedData ¶
func (h *Host) DeleteRetainedData(ctx context.Context, req DeleteRetainedDataRequest) (result plugindata.Binding, retErr error)
func (*Host) DeleteSecretRef ¶
func (h *Host) DeleteSecretRef(ctx context.Context, req SecretDeleteRequest) (retErr error)
func (*Host) DeleteSecurityPolicy ¶
func (h *Host) DeleteSecurityPolicy(ctx context.Context, req DeleteSecurityPolicyRequest) (result registry.AuthorizationRevisions, retErr error)
func (*Host) DisablePlugin ¶
func (h *Host) DisablePlugin(ctx context.Context, req DisableRequest) (result registry.PluginRecord, retErr error)
func (*Host) DisposeSurface ¶
func (h *Host) DisposeSurface(ctx context.Context, req DisposeSurfaceRequest) error
func (*Host) DowngradePlugin ¶
func (h *Host) DowngradePlugin(ctx context.Context, req DowngradeRequest) (result registry.PluginRecord, retErr error)
func (*Host) EnablePlugin ¶
func (h *Host) EnablePlugin(ctx context.Context, req EnableRequest) (result registry.PluginRecord, retErr error)
func (*Host) ExportPluginData ¶
func (h *Host) ExportPluginData(ctx context.Context, req ExportDataRequest) (result ExportDataResult, retErr error)
func (*Host) Features ¶ added in v0.5.0
Features returns the configured platform modules after host authorization.
func (*Host) GetCompatibility ¶ added in v0.5.0
GetCompatibility returns the current platform contract after host authorization.
func (*Host) GetOperation ¶
func (*Host) GetPluginSettings ¶
func (h *Host) GetPluginSettings(ctx context.Context, req GetSettingsRequest) (SettingsResult, error)
func (*Host) GetSecurityPolicy ¶
func (h *Host) GetSecurityPolicy(ctx context.Context, req GetSecurityPolicyRequest) (SecurityPolicyResult, error)
func (*Host) GetSettingsSchema ¶
func (h *Host) GetSettingsSchema(ctx context.Context, req GetSettingsRequest) (SettingsSchemaResult, error)
func (*Host) GrantPermission ¶
func (h *Host) GrantPermission(ctx context.Context, req GrantPermissionRequest) (result PermissionMutationResult, retErr error)
func (*Host) ImportLocalPackage ¶
func (h *Host) ImportLocalPackage(ctx context.Context, req ImportLocalPackageRequest) (registry.PluginRecord, error)
func (*Host) ImportPluginData ¶
func (h *Host) ImportPluginData(ctx context.Context, req ImportDataRequest) (result registry.PluginRecord, retErr error)
func (*Host) InstallReleaseRef ¶
func (h *Host) InstallReleaseRef(ctx context.Context, req InstallReleaseRefRequest) (registry.PluginRecord, error)
func (*Host) InvokeIntent ¶
func (h *Host) InvokeIntent(ctx context.Context, req InvokeIntentRequest) (response CallMethodResult, resultErr error)
func (*Host) ListDiagnosticEvents ¶
func (h *Host) ListDiagnosticEvents(ctx context.Context, req ListDiagnosticEventsRequest) ([]DiagnosticEvent, error)
func (*Host) ListIntents ¶
func (h *Host) ListIntents(ctx context.Context, req ListIntentsRequest) ([]IntentRecord, error)
func (*Host) ListOperations ¶
func (h *Host) ListOperations(ctx context.Context, req ListOperationsRequest) (ListOperationsResult, error)
func (*Host) ListPermissionGrants ¶
func (h *Host) ListPermissionGrants(ctx context.Context, req ListPermissionGrantsRequest) ([]permissions.Record, error)
func (*Host) ListPlugins ¶
func (*Host) ListRetainedData ¶
func (h *Host) ListRetainedData(ctx context.Context, req ListRetainedDataRequest) ([]plugindata.Binding, error)
func (*Host) ListSecurityPolicies ¶
func (h *Host) ListSecurityPolicies(ctx context.Context) ([]SecurityPolicyResult, error)
func (*Host) MintBridgeToken ¶
func (h *Host) MintBridgeToken(ctx context.Context, req MintBridgeTokenRequest) (result bridge.GatewayTokenResult, retErr error)
func (*Host) MintConnectionGrant ¶
func (h *Host) MintConnectionGrant(ctx context.Context, req MintConnectionGrantRequest) (result connectivity.ConnectionGrant, retErr error)
func (*Host) MintNetworkHandleGrant ¶
func (h *Host) MintNetworkHandleGrant(ctx context.Context, req MintConnectionGrantRequest) (result NetworkHandleGrantResult, retErr error)
func (*Host) MintStorageHandleGrant ¶
func (h *Host) MintStorageHandleGrant(ctx context.Context, req MintStorageHandleGrantRequest) (result StorageHandleGrantResult, retErr error)
func (*Host) OpenSurface ¶
func (h *Host) OpenSurface(ctx context.Context, req OpenSurfaceRequest) (result bridge.SurfaceBootstrap, retErr error)
func (*Host) PatchPluginSettings ¶
func (h *Host) PatchPluginSettings(ctx context.Context, req PatchSettingsRequest) (result SettingsResult, retErr error)
func (*Host) PrepareMethodConfirmation ¶
func (h *Host) PrepareMethodConfirmation(ctx context.Context, req PrepareMethodConfirmationRequest) (response PrepareMethodConfirmationResult, resultErr error)
func (*Host) PrepareSurface ¶
func (h *Host) PrepareSurface(ctx context.Context, req PrepareSurfaceRequest) (result PrepareSurfaceResult, err error)
func (*Host) PutSecurityPolicy ¶
func (h *Host) PutSecurityPolicy(ctx context.Context, req PutSecurityPolicyRequest) (result SecurityPolicyResult, retErr error)
func (*Host) ReadStream ¶
func (h *Host) ReadStream(ctx context.Context, req ReadStreamRequest) (ReadStreamResult, error)
func (*Host) ReadSurfaceAsset ¶
func (h *Host) ReadSurfaceAsset(ctx context.Context, req ReadSurfaceAssetRequest) (ReadSurfaceAssetResult, error)
func (*Host) RefreshEnabledPlugins ¶
func (h *Host) RefreshEnabledPlugins(ctx context.Context) ([]RefreshEnabledPluginResult, error)
func (*Host) RejectMethodConfirmation ¶ added in v0.3.0
func (h *Host) RejectMethodConfirmation(ctx context.Context, req RejectMethodConfirmationRequest) (response RejectMethodConfirmationResult, resultErr error)
func (*Host) ReportHTTPAdapterFailure ¶ added in v0.5.0
func (*Host) RevokePermission ¶
func (h *Host) RevokePermission(ctx context.Context, req RevokePermissionRequest) (result PermissionMutationResult, retErr error)
func (*Host) RevokeSurfaceScope ¶
func (*Host) RuntimeHealth ¶
func (h *Host) RuntimeHealth(ctx context.Context) (runtimeclient.ManagerHealth, error)
func (*Host) StartRuntime ¶
func (h *Host) StartRuntime(ctx context.Context, req StartRuntimeRequest) (result runtimeclient.ManagerHealth, retErr error)
func (*Host) TestSecretRef ¶
func (h *Host) TestSecretRef(ctx context.Context, req SecretTestRequest) (retErr error)
func (*Host) UninstallPlugin ¶
func (h *Host) UninstallPlugin(ctx context.Context, req UninstallRequest) (result registry.PluginRecord, retErr error)
func (*Host) UpdateLocalPackage ¶
func (h *Host) UpdateLocalPackage(ctx context.Context, req UpdateLocalPackageRequest) (registry.PluginRecord, error)
func (*Host) UpdateReleaseRef ¶
func (h *Host) UpdateReleaseRef(ctx context.Context, req UpdateReleaseRefRequest) (registry.PluginRecord, error)
type HostCapabilityContractRef ¶
type HostCapabilityContractRef = capabilitycontract.Pin
type HostCapabilityRequirement ¶
type HostCapabilityRequirement struct {
CapabilityID string `json:"capability_id"`
CapabilityVersion string `json:"capability_version"`
Contract HostCapabilityContractRef `json:"contract"`
}
type HostConfigError ¶ added in v0.5.0
HostConfigError identifies the module and adapter that made a host configuration invalid. Cause preserves legacy module-required sentinels.
func (*HostConfigError) Error ¶ added in v0.5.0
func (e *HostConfigError) Error() string
func (*HostConfigError) Is ¶ added in v0.5.0
func (e *HostConfigError) Is(target error) bool
func (*HostConfigError) Unwrap ¶ added in v0.5.0
func (e *HostConfigError) Unwrap() error
type HostRequirement ¶
type HostRequirement struct {
HostID string `json:"host_id"`
MinHostVersion string `json:"min_host_version,omitempty"`
RequiredCapabilityContracts []HostCapabilityRequirement `json:"required_capability_contracts,omitempty"`
}
type HostRequirementPolicy ¶ added in v0.3.0
type HostRequirementPolicy interface {
SelectHostRequirement(ctx context.Context, req HostRequirementSelectionRequest) (HostRequirementSelection, error)
}
type HostRequirementSelection ¶ added in v0.3.0
type HostRequirementSelection struct {
HostID string `json:"host_id"`
}
type HostRequirementSelectionRequest ¶ added in v0.3.0
type HostRequirementSelectionRequest struct {
SourceID string `json:"source_id"`
PublisherID string `json:"publisher_id"`
PluginID string `json:"plugin_id"`
PluginVersion string `json:"plugin_version"`
Requirements []HostRequirement `json:"requirements"`
}
type ImportDataRequest ¶
type InstallReleaseRefRequest ¶
type InstallReleaseRefRequest struct {
ReleaseRef PluginReleaseRef `json:"release_ref"`
PluginInstanceID string `json:"plugin_instance_id"`
Now time.Time `json:"-"`
}
type IntentRecord ¶
type IntentRecord struct {
PluginID string `json:"plugin_id"`
PluginInstanceID string `json:"plugin_instance_id"`
PublisherID string `json:"publisher_id"`
DisplayName string `json:"display_name"`
Version string `json:"version"`
ActiveFingerprint string `json:"active_fingerprint"`
IntentID string `json:"intent_id"`
Method string `json:"method"`
Effect manifest.MethodEffect `json:"effect"`
Execution manifest.MethodExecutionMode `json:"execution"`
PayloadSchema map[string]any `json:"payload_schema,omitempty"`
}
type InvokeIntentRequest ¶
type ListDiagnosticEventsRequest ¶
type ListDiagnosticEventsRequest struct {
PluginID string `json:"plugin_id,omitempty"`
PluginInstanceID string `json:"plugin_instance_id,omitempty"`
SurfaceInstanceID string `json:"surface_instance_id,omitempty"`
Type string `json:"type,omitempty"`
Severity observability.DiagnosticSeverity `json:"severity,omitempty"`
Limit int `json:"limit,omitempty"`
}
type ListIntentsRequest ¶
type ListOperationsRequest ¶
type ListOperationsResult ¶ added in v0.5.0
type ListRetainedDataRequest ¶
type ListRetainedDataRequest struct {
PluginInstanceID string `json:"plugin_instance_id,omitempty"`
}
type ManagementAction ¶ added in v0.5.0
type ManagementAction string
ManagementAction identifies one direct Host platform operation. The set is closed so embedding products can implement exhaustive authorization policy.
const ( ManagementActionOpenSurface ManagementAction = "surface.open" ManagementActionPrepareSurface ManagementAction = "surface.prepare" ManagementActionMintBridgeToken ManagementAction = "surface.mint_bridge_token" ManagementActionReadSurfaceAsset ManagementAction = "surface.read_asset" ManagementActionReadSurfaceStream ManagementAction = "surface.read_stream" ManagementActionAcknowledgeSurfaceStream ManagementAction = "surface.acknowledge_stream" ManagementActionCancelSurfaceOperation ManagementAction = "surface.cancel_operation" ManagementActionRejectSurfaceConfirmation ManagementAction = "surface.reject_confirmation" ManagementActionDisposeSurface ManagementAction = "surface.dispose" ManagementActionRevokeSurfaceScope ManagementAction = "surface.revoke_scope" ManagementActionCallPluginMethod ManagementAction = "plugin.call_method" ManagementActionPrepareMethodConfirmation ManagementAction = "plugin.prepare_method_confirmation" ManagementActionListIntents ManagementAction = "intent.list" ManagementActionInvokeIntent ManagementAction = "intent.invoke" ManagementActionImportLocalPackage ManagementAction = "plugin.import_local_package" ManagementActionInstallReleaseRef ManagementAction = "plugin.install_release_ref" ManagementActionUpdateLocalPackage ManagementAction = "plugin.update_local_package" ManagementActionUpdateReleaseRef ManagementAction = "plugin.update_release_ref" ManagementActionDowngradePlugin ManagementAction = "plugin.downgrade" ManagementActionListPlugins ManagementAction = "plugin.list" ManagementActionListFeatures ManagementAction = "platform.list_features" ManagementActionGetCompatibility ManagementAction = "platform.get_compatibility" ManagementActionRefreshEnabledPlugins ManagementAction = "runtime.refresh_enabled" ManagementActionGrantPermission ManagementAction = "permission.grant" ManagementActionRevokePermission ManagementAction = "permission.revoke" ManagementActionListPermissionGrants ManagementAction = "permission.list" ManagementActionPutSecurityPolicy ManagementAction = "security_policy.put" ManagementActionGetSecurityPolicy ManagementAction = "security_policy.get" ManagementActionListSecurityPolicies ManagementAction = "security_policy.list" ManagementActionDeleteSecurityPolicy ManagementAction = "security_policy.delete" ManagementActionListDiagnosticEvents ManagementAction = "diagnostic.list" ManagementActionListOperations ManagementAction = "operation.list" ManagementActionGetOperation ManagementAction = "operation.get" ManagementActionCancelOperation ManagementAction = "operation.cancel" ManagementActionStartRuntime ManagementAction = "runtime.start" ManagementActionStopRuntime ManagementAction = "runtime.stop" ManagementActionGetRuntimeHealth ManagementAction = "runtime.get_health" ManagementActionMintConnectionGrant ManagementAction = "connectivity.mint_grant" ManagementActionMintNetworkHandleGrant ManagementAction = "connectivity.mint_handle_grant" ManagementActionMintStorageHandleGrant ManagementAction = "storage.mint_handle_grant" ManagementActionEnablePlugin ManagementAction = "plugin.enable" ManagementActionDisablePlugin ManagementAction = "plugin.disable" ManagementActionUninstallPlugin ManagementAction = "plugin.uninstall" ManagementActionListRetainedData ManagementAction = "retained_data.list" ManagementActionDeleteRetainedData ManagementAction = "retained_data.delete" ManagementActionBindRetainedData ManagementAction = "retained_data.bind" ManagementActionCleanupExpiredRetainedData ManagementAction = "retained_data.cleanup_expired" ManagementActionExportPluginData ManagementAction = "data.export" ManagementActionDeleteExportedPluginData ManagementAction = "data.delete_export" ManagementActionImportPluginData ManagementAction = "data.import" ManagementActionGetSettingsSchema ManagementAction = "settings.get_schema" ManagementActionGetPluginSettings ManagementAction = "settings.get" ManagementActionPatchPluginSettings ManagementAction = "settings.patch" ManagementActionBindSecretRef ManagementAction = "secret.bind" ManagementActionTestSecretRef ManagementAction = "secret.test" ManagementActionDeleteSecretRef ManagementAction = "secret.delete" )
func (ManagementAction) Resource ¶ added in v0.5.0
func (action ManagementAction) Resource() ResourceRef
func (ManagementAction) Valid ¶ added in v0.5.0
func (action ManagementAction) Valid() bool
type ManagementRevisionMismatchError ¶ added in v0.5.0
type ManagementRevisionMismatchError struct {
PluginInstanceID string `json:"plugin_instance_id"`
Expected uint64 `json:"expected_management_revision"`
Actual uint64 `json:"actual_management_revision"`
}
func (*ManagementRevisionMismatchError) Error ¶ added in v0.5.0
func (e *ManagementRevisionMismatchError) Error() string
func (*ManagementRevisionMismatchError) Unwrap ¶ added in v0.5.0
func (e *ManagementRevisionMismatchError) Unwrap() error
type MintBridgeTokenRequest ¶
type MintBridgeTokenRequest struct {
Handshake bridge.Handshake `json:"handshake"`
BridgeChannelID string `json:"bridge_channel_id"`
HandshakeTranscriptSHA256 string `json:"handshake_transcript_sha256"`
PreviousGatewayToken string `json:"previous_plugin_gateway_token,omitempty"`
Now time.Time `json:"-"`
}
type MintConnectionGrantRequest ¶
type MintConnectionGrantRequest struct {
PluginInstanceID string `json:"plugin_instance_id"`
ConnectorID string `json:"connector_id"`
Transport connectivity.Transport `json:"transport"`
Destination string `json:"destination"`
RuntimeInstanceID string `json:"runtime_instance_id,omitempty"`
RuntimeGenerationID string `json:"runtime_generation_id,omitempty"`
RuntimeShardID string `json:"runtime_shard_id,omitempty"`
Now time.Time `json:"-"`
TTL time.Duration `json:"-"`
}
type MintStorageHandleGrantRequest ¶
type MintStorageHandleGrantRequest struct {
PluginInstanceID string `json:"plugin_instance_id"`
StoreID string `json:"store_id"`
RuntimeInstanceID string `json:"runtime_instance_id,omitempty"`
RuntimeGenerationID string `json:"runtime_generation_id"`
RuntimeShardID string `json:"runtime_shard_id,omitempty"`
Now time.Time `json:"-"`
TTL time.Duration `json:"-"`
}
type NetworkHandleGrantResult ¶
type NetworkHandleGrantResult struct {
ConnectionGrant connectivity.ConnectionGrant `json:"connection_grant"`
HandleGrant bridge.HandleGrantResult `json:"handle_grant"`
}
type OpenSurfaceRequest ¶
type PackageDistribution ¶
type PackageDistribution string
const ( PackageDistributionRegistryRef PackageDistribution = "registry_ref" PackageDistributionHostArtifactRef PackageDistribution = "host_artifact_ref" PackageDistributionLocalImport PackageDistribution = "local_import" )
type PackageDistributionRef ¶
type PackageDistributionRef struct {
Distribution PackageDistribution `json:"distribution"`
ArtifactRef string `json:"artifact_ref,omitempty"`
ImportID string `json:"import_id,omitempty"`
}
type PackageDowngradePolicy ¶
type PackageDowngradePolicy string
const ( PackageDowngradeBlock PackageDowngradePolicy = "block" PackageDowngradeReviewRequired PackageDowngradePolicy = "review_required" )
type PackageHashSet ¶
type PackageInstallPolicy ¶
type PackageInstallPolicy string
const ( PackageInstallAllow PackageInstallPolicy = "allow" PackageInstallReviewRequired PackageInstallPolicy = "review_required" PackageInstallBlock PackageInstallPolicy = "block" )
type PackageReleaseSignature ¶
type PackageSourceClass ¶
type PackageSourceClass string
const ( PackageSourceClassOfficial PackageSourceClass = "official" PackageSourceClassCurated PackageSourceClass = "curated" PackageSourceClassCommunity PackageSourceClass = "community" PackageSourceClassPrivate PackageSourceClass = "private" )
type PackageSourceType ¶
type PackageSourceType string
const ( PackageSourceRegistry PackageSourceType = "registry" PackageSourceHostArtifact PackageSourceType = "host_artifact" )
type PackageTrustAction ¶
type PackageTrustAction string
const ( PackageTrustActionInstall PackageTrustAction = "install" PackageTrustActionUpdate PackageTrustAction = "update" )
type PackageTrustVerificationRequest ¶
type PackageTrustVerificationRequest struct {
Action PackageTrustAction `json:"action"`
Package pluginpkg.Package `json:"package"`
LocalImport bool `json:"local_import,omitempty"`
ReleaseRef *PluginReleaseRef `json:"release_ref,omitempty"`
Release *PluginPackageRelease `json:"release,omitempty"`
SourcePolicySnapshot *SourcePolicySnapshot `json:"source_policy_snapshot,omitempty"`
CurrentRecord *registry.PluginRecord `json:"current_record,omitempty"`
PluginInstanceID string `json:"plugin_instance_id,omitempty"`
Now time.Time `json:"-"`
}
type PackageTrustVerificationResult ¶
type PackageTrustVerificationResult = registry.TrustAssessment
type PackageTrustVerifier ¶
type PackageTrustVerifier interface {
VerifyPackageTrust(ctx context.Context, req PackageTrustVerificationRequest) (PackageTrustVerificationResult, error)
}
PackageTrustVerifier is the install/update trust decision boundary. Runnable trust states must come from this verifier or the release/local import provenance handled by Host core.
type PackageUnsignedPolicy ¶
type PackageUnsignedPolicy string
const ( PackageUnsignedDevOnly PackageUnsignedPolicy = "dev_only" PackageUnsignedReviewRequired PackageUnsignedPolicy = "review_required" PackageUnsignedBlock PackageUnsignedPolicy = "block" )
type PatchSettingsRequest ¶
type PermissionMutationResult ¶ added in v0.5.0
type PermissionMutationResult struct {
Permission permissions.Record `json:"permission"`
Revisions registry.AuthorizationRevisions `json:"revisions"`
}
type PluginData ¶ added in v0.5.0
type PluginData interface {
plugindata.Store
storage.FilesBroker
storage.KVBroker
storage.SQLiteBroker
storage.Inspector
Close() error
}
type PluginPackageRelease ¶
type PluginPackageRelease struct {
SourceID string `json:"source_id"`
PublisherID string `json:"publisher_id"`
PluginID string `json:"plugin_id"`
Version string `json:"version"`
DistributionRef PackageDistributionRef `json:"distribution_ref"`
ReleaseMetadataSHA256 string `json:"release_metadata_sha256"`
ReleaseMetadataSignature *ReleaseMetadataSignature `json:"release_metadata_signature,omitempty"`
Hashes PackageHashSet `json:"hashes"`
PackageSignature *PackageReleaseSignature `json:"package_signature,omitempty"`
Compatibility *ReleaseCompatibility `json:"compatibility,omitempty"`
HostRequirements []HostRequirement `json:"host_requirements,omitempty"`
ReleaseEvidence *ReleaseEvidence `json:"release_evidence,omitempty"`
Metadata map[string]string `json:"metadata,omitempty"`
}
type PluginReleaseRef ¶
type PluginReleaseRef struct {
SourceID string `json:"source_id"`
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"`
ExpectedHashes PackageHashSet `json:"expected_hashes"`
}
type PolicyAdapter ¶
type PolicyAdapter interface {
EvaluateLocalPolicy(ctx context.Context, session sessionctx.Context, plugin PluginRef, method manifest.MethodSpec) (PolicyDecision, error)
DeveloperModeEnabled(ctx context.Context, session sessionctx.Context) (bool, error)
LocalGeneratedPluginsEnabled(ctx context.Context, session sessionctx.Context) (bool, error)
}
type PolicyDecision ¶
type PolicyDecision string
const ( PolicyAllow PolicyDecision = "allow" PolicyDeny PolicyDecision = "deny" )
type PrepareMethodConfirmationRequest ¶ added in v0.5.0
type PrepareMethodConfirmationRequest struct {
PluginInstanceID string `json:"plugin_instance_id"`
SurfaceInstanceID string `json:"surface_instance_id"`
BridgeChannelID string `json:"bridge_channel_id"`
GatewayToken string `json:"plugin_gateway_token"`
Method string `json:"method"`
Params map[string]any `json:"params,omitempty"`
Now time.Time `json:"-"`
}
type PrepareMethodConfirmationResult ¶ added in v0.5.0
type PrepareMethodConfirmationResult struct {
ConfirmationID string `json:"confirmation_id"`
ConfirmationTokenID string `json:"confirmation_token_id"`
RequestHash string `json:"request_hash"`
PlanHash string `json:"plan_hash"`
Plan any `json:"plan,omitempty"`
ExpiresAt time.Time `json:"expires_at"`
}
type PrepareSurfaceRequest ¶ added in v0.5.0
type PrepareSurfaceResult ¶
type PrepareSurfaceResult struct {
bridge.AssetSessionResult
Document pluginpkg.OpaqueSurfaceDocument `json:"document"`
}
type PutSecurityPolicyRequest ¶
type PutSecurityPolicyRequest struct {
PluginInstanceID string `json:"plugin_instance_id"`
ExpectedPolicyRevision uint64 `json:"expected_policy_revision"`
ExpectedManagementRevision uint64 `json:"expected_management_revision"`
ExpectedRevokeEpoch uint64 `json:"expected_revoke_epoch"`
AllowedPermissions []string `json:"allowed_permissions,omitempty"`
DeniedMethods []string `json:"denied_methods,omitempty"`
Now time.Time `json:"-"`
}
type ReadStreamRequest ¶
type ReadStreamRequest struct {
StreamID string `json:"stream_id"`
StreamTicket string `json:"stream_ticket,omitempty"`
ReadID string `json:"read_id"`
SurfaceInstanceID string `json:"surface_instance_id,omitempty"`
MaxEvents int `json:"max_events,omitempty"`
MaxBytes int64 `json:"max_bytes,omitempty"`
WaitTimeout time.Duration `json:"-"`
Now time.Time `json:"-"`
}
type ReadStreamResult ¶
type ReadSurfaceAssetRequest ¶
type ReadSurfaceAssetResult ¶
type ReadSurfaceAssetResult struct {
Entry pluginpkg.Entry
Content []byte
Session bridge.SurfaceSession
}
type RefreshEnabledPluginPublicError ¶ added in v0.5.0
type RefreshEnabledPluginResult ¶ added in v0.5.0
type RefreshEnabledPluginResult struct {
PluginInstanceID string `json:"plugin_instance_id"`
Status RefreshEnabledPluginStatus `json:"status"`
Error *RefreshEnabledPluginPublicError `json:"error,omitempty"`
}
func (RefreshEnabledPluginResult) MarshalJSON ¶ added in v0.5.0
func (result RefreshEnabledPluginResult) MarshalJSON() ([]byte, error)
type RefreshEnabledPluginStatus ¶ added in v0.5.0
type RefreshEnabledPluginStatus string
const ( RefreshEnabledPluginStatusRefreshed RefreshEnabledPluginStatus = "refreshed" RefreshEnabledPluginStatusFailed RefreshEnabledPluginStatus = "failed" )
type RejectMethodConfirmationRequest ¶ added in v0.3.0
type RejectMethodConfirmationRequest struct {
PluginInstanceID string `json:"plugin_instance_id"`
SurfaceInstanceID string `json:"surface_instance_id"`
BridgeChannelID string `json:"bridge_channel_id"`
GatewayToken string `json:"plugin_gateway_token"`
ConfirmationID string `json:"confirmation_id"`
Now time.Time `json:"-"`
}
type RejectMethodConfirmationResult ¶ added in v0.3.0
type RejectMethodConfirmationResult struct {
Rejected bool `json:"rejected"`
}
type ReleaseArtifactResolveRequest ¶
type ReleaseArtifactResolveRequest struct {
Action PackageTrustAction `json:"action"`
ReleaseRef PluginReleaseRef `json:"release_ref"`
SourcePolicySnapshot SourcePolicySnapshot `json:"source_policy_snapshot"`
CurrentRecord *registry.PluginRecord `json:"current_record,omitempty"`
PluginInstanceID string `json:"plugin_instance_id,omitempty"`
Now time.Time `json:"-"`
}
type ReleaseArtifactResolver ¶
type ReleaseArtifactResolver interface {
ResolveReleaseArtifact(ctx context.Context, req ReleaseArtifactResolveRequest) (ResolvedPackageArtifact, error)
}
type ReleaseCompatibility ¶
type ReleaseCompatibility struct {
MinReDevPluginVersion string `json:"min_redevplugin_version,omitempty"`
MinRuntimeVersion string `json:"min_runtime_version,omitempty"`
UIProtocolVersion string `json:"ui_protocol_version,omitempty"`
SupportedTargets []runtimetarget.Target `json:"supported_targets,omitempty"`
}
type ReleaseEvidence ¶
type ReleaseMetadataVerificationRequest ¶
type ReleaseMetadataVerificationRequest struct {
Action PackageTrustAction `json:"action"`
ReleaseRef PluginReleaseRef `json:"release_ref"`
Release PluginPackageRelease `json:"release"`
SourcePolicySnapshot SourcePolicySnapshot `json:"source_policy_snapshot"`
ReleaseMetadataBytes []byte `json:"-"`
ReleaseMetadataSignature []byte `json:"-"`
CurrentRecord *registry.PluginRecord `json:"current_record,omitempty"`
PluginInstanceID string `json:"plugin_instance_id,omitempty"`
Now time.Time `json:"-"`
}
type ReleaseMetadataVerifier ¶
type ReleaseMetadataVerifier interface {
VerifyReleaseMetadata(ctx context.Context, req ReleaseMetadataVerificationRequest) (ReleaseMetadataVerificationResult, error)
}
type ReleaseModule ¶ added in v0.5.0
type ReleaseModule struct {
ReleaseMetadataVerifier ReleaseMetadataVerifier
RevocationVerifier SourceRevocationEvidenceVerifier
ReleaseSourcePolicy ReleaseSourcePolicyResolver
ReleaseArtifactResolver ReleaseArtifactResolver
HostRequirements HostRequirementPolicy
CapabilityContractArtifacts CapabilityContractArtifactResolver
CapabilityContractKeys CapabilityContractKeyResolver
}
type ReleaseSourcePolicyRequest ¶
type ReleaseSourcePolicyRequest struct {
Action PackageTrustAction `json:"action"`
ReleaseRef PluginReleaseRef `json:"release_ref"`
CurrentRecord *registry.PluginRecord `json:"current_record,omitempty"`
PluginInstanceID string `json:"plugin_instance_id,omitempty"`
Now time.Time `json:"-"`
}
type ReleaseSourcePolicyResolver ¶
type ReleaseSourcePolicyResolver interface {
ResolveReleaseSourcePolicy(ctx context.Context, req ReleaseSourcePolicyRequest) (SourcePolicySnapshot, error)
}
type ResolvedCapabilityContractArtifact ¶ added in v0.3.0
type ResolvedCapabilityContractArtifact struct {
Artifacts CapabilityContractArtifactSet `json:"-"`
}
type ResolvedCapabilityContractFile ¶ added in v0.3.0
type ResolvedCapabilityContractFile struct {
Reader io.ReadCloser `json:"-"`
Size int64 `json:"size"`
MediaType string `json:"media_type"`
FetchChain []CapabilityArtifactFetchHop `json:"fetch_chain"`
}
type ResolvedPackageArtifact ¶
type ResourceRef ¶ added in v0.5.0
type ResourceRef string
ResourceRef identifies one closed host-neutral resource family.
const ( ResourcePlugin ResourceRef = "plugin" ResourcePlatform ResourceRef = "platform" ResourceSurface ResourceRef = "surface" ResourceSurfaceDefinition ResourceRef = "surface_definition" ResourceSurfaceAsset ResourceRef = "surface_asset" ResourceAssetSession ResourceRef = "asset_session" ResourceBridgeChannel ResourceRef = "bridge_channel" ResourceStream ResourceRef = "stream" ResourceConfirmation ResourceRef = "confirmation" ResourceMethod ResourceRef = "method" ResourceIntent ResourceRef = "intent" ResourcePermission ResourceRef = "permission" ResourceSecurityPolicy ResourceRef = "security_policy" ResourceDiagnostic ResourceRef = "diagnostic" ResourceOperation ResourceRef = "operation" ResourceRuntime ResourceRef = "runtime" ResourceConnector ResourceRef = "connector" ResourceStore ResourceRef = "store" ResourceRetainedData ResourceRef = "retained_data" ResourcePluginData ResourceRef = "plugin_data" ResourceDataExport ResourceRef = "data_export" ResourceSettings ResourceRef = "settings" ResourceSecret ResourceRef = "secret" )
func (ResourceRef) Valid ¶ added in v0.5.0
func (resource ResourceRef) Valid() bool
type RetainedDataCleanupResult ¶
type RetainedDataCleanupResult struct {
Deleted []plugindata.Binding `json:"deleted,omitempty"`
}
type RevokePermissionRequest ¶
type RevokePermissionRequest struct {
PluginInstanceID string `json:"plugin_instance_id"`
PermissionID string `json:"permission_id"`
ExpectedPolicyRevision uint64 `json:"expected_policy_revision"`
ExpectedManagementRevision uint64 `json:"expected_management_revision"`
ExpectedRevokeEpoch uint64 `json:"expected_revoke_epoch"`
Reason string `json:"reason,omitempty"`
Now time.Time `json:"-"`
}
type RuntimeModule ¶ added in v0.5.0
type RuntimeModule struct {
Manager runtimeclient.Manager
}
type SecretBindRequest ¶
type SecretBindRequest = secrets.BindRequest
type SecretDeleteRequest ¶
type SecretDeleteRequest = secrets.DeleteRequest
type SecretStoreAdapter ¶
type SecretTestRequest ¶
type SecretTestRequest = secrets.TestRequest
type SecretsModule ¶ added in v0.5.0
type SecretsModule struct {
Store SecretStoreAdapter
}
type SecurityPolicyResult ¶ added in v0.5.0
type SecurityPolicyResult struct {
Policy security.PolicyRecord `json:"policy"`
Revisions registry.AuthorizationRevisions `json:"revisions"`
}
type SettingsResult ¶
type SettingsResult struct {
PluginInstanceID string `json:"plugin_instance_id"`
Scope sessionctx.ScopeKind `json:"scope"`
SchemaVersion int `json:"schema_version"`
ValuesRevision uint64 `json:"values_revision"`
Values map[string]any `json:"values"`
SecretMetadata []SettingsSecretMetadata `json:"secret_metadata"`
}
type SettingsSchemaResult ¶
type SettingsSchemaResult struct {
PluginInstanceID string `json:"plugin_instance_id"`
Scope sessionctx.ScopeKind `json:"scope"`
SchemaVersion int `json:"schema_version"`
Fields []manifest.SettingFieldSpec `json:"fields"`
ValuesRevision uint64 `json:"values_revision"`
}
type SettingsSecretMetadata ¶ added in v0.5.0
type SettingsSecretMetadata struct {
Key string `json:"key"`
SecretRef string `json:"secret_ref"`
Scope string `json:"scope"`
Bound bool `json:"bound"`
LastTestStatus string `json:"last_test_status,omitempty"`
BoundAt *time.Time `json:"bound_at,omitempty"`
TestedAt *time.Time `json:"tested_at,omitempty"`
UpdatedAt *time.Time `json:"updated_at,omitempty"`
}
type SourcePolicyRevocationEvidence ¶
type SourcePolicyRevocationEvidence struct {
MetadataRef string `json:"metadata_ref"`
MetadataSHA256 string `json:"metadata_sha256"`
SignatureRef string `json:"signature_ref"`
SignatureKeyID string `json:"signature_key_id"`
VerifiedAt string `json:"verified_at"`
ExpiresAt string `json:"expires_at"`
HighestSeenEpoch string `json:"highest_seen_epoch"`
MetadataBytes []byte `json:"-"`
SignatureBytes []byte `json:"-"`
}
type SourcePolicySnapshot ¶
type SourcePolicySnapshot struct {
SchemaVersion string `json:"schema_version"`
SourceID string `json:"source_id"`
SourceType PackageSourceType `json:"source_type"`
SourceClass PackageSourceClass `json:"source_class,omitempty"`
AllowedPublishers []string `json:"allowed_publishers,omitempty"`
AllowedArtifactHosts []string `json:"allowed_artifact_hosts,omitempty"`
TrustedKeyIDs []string `json:"trusted_key_ids,omitempty"`
TrustedKeys []SourcePolicyTrustedKey `json:"trusted_keys,omitempty"`
RevocationEvidence *SourcePolicyRevocationEvidence `json:"revocation_evidence,omitempty"`
RequireSignature bool `json:"require_signature,omitempty"`
InstallPolicy PackageInstallPolicy `json:"install_policy,omitempty"`
UnsignedPolicy PackageUnsignedPolicy `json:"unsigned_policy,omitempty"`
DowngradePolicy PackageDowngradePolicy `json:"downgrade_policy,omitempty"`
PolicyEpoch string `json:"policy_epoch,omitempty"`
KeyRotationEpoch string `json:"key_rotation_epoch,omitempty"`
RevocationEpoch string `json:"revocation_epoch,omitempty"`
AssessedAt string `json:"assessed_at,omitempty"`
Metadata map[string]string `json:"metadata,omitempty"`
}
type SourcePolicyTrustedKey ¶
type SourcePolicyTrustedKey struct {
Algorithm string `json:"algorithm"`
KeyID string `json:"key_id"`
PublicKeySHA256 string `json:"public_key_sha256"`
Usage []string `json:"usage"`
AllowedCapabilityPublishers []string `json:"allowed_capability_publishers,omitempty"`
ValidFrom string `json:"valid_from,omitempty"`
ValidUntil string `json:"valid_until,omitempty"`
RevocationEpoch string `json:"revocation_epoch,omitempty"`
}
type SourceRevocationEvidenceVerificationRequest ¶
type SourceRevocationEvidenceVerificationRequest struct {
ReleaseRef PluginReleaseRef `json:"release_ref"`
SourcePolicySnapshot SourcePolicySnapshot `json:"source_policy_snapshot"`
RevocationEvidence SourcePolicyRevocationEvidence `json:"revocation_evidence"`
RevocationMetadata SourceRevocationMetadata `json:"revocation_metadata"`
RevocationMetadataBytes []byte `json:"-"`
RevocationMetadataSignature []byte `json:"-"`
Now time.Time `json:"-"`
}
type SourceRevocationEvidenceVerifier ¶
type SourceRevocationEvidenceVerifier interface {
VerifySourceRevocationEvidence(ctx context.Context, req SourceRevocationEvidenceVerificationRequest) (SourceRevocationEvidenceVerificationResult, error)
}
type SourceRevocationMetadata ¶
type SourceRevocationMetadata struct {
SchemaVersion string `json:"schema_version"`
SourceID string `json:"source_id"`
HighestSeenEpoch string `json:"highest_seen_epoch"`
GeneratedAt string `json:"generated_at"`
ExpiresAt string `json:"expires_at"`
RevokedKeyIDs []string `json:"revoked_key_ids,omitempty"`
}
type StartRuntimeRequest ¶
type StartRuntimeRequest struct {
Target runtimetarget.Target `json:"-"`
}
type StorageHandleGrantResult ¶
type StorageHandleGrantResult struct {
Namespace storage.Namespace `json:"namespace"`
HandleGrant bridge.HandleGrantResult `json:"handle_grant"`
}
type SurfaceCatalogSink ¶
type SurfaceCatalogSink interface {
PublishSurfaces(ctx context.Context, snapshot SurfaceSnapshot) error
}
type SurfaceSnapshot ¶
type SurfaceSnapshot struct {
PluginInstanceID string `json:"plugin_instance_id"`
ActiveFingerprint string `json:"active_fingerprint"`
Surfaces []manifest.SurfaceSpec `json:"surfaces"`
}
type UninstallRequest ¶
type UpdateReleaseRefRequest ¶
type UpdateReleaseRefRequest struct {
PluginInstanceID string `json:"plugin_instance_id"`
ExpectedManagementRevision uint64 `json:"expected_management_revision"`
ReleaseRef PluginReleaseRef `json:"release_ref"`
Now time.Time `json:"-"`
}