Help us shape the future of Go! Take the 2026 Go Developer Survey

application

package
v0.4.25 Latest Latest
Warning

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

Go to latest
Published: Oct 15, 2026 License: Apache-2.0 Imports: 52 Imported by: 0

Documentation

Index

Constants

View Source
const (
	IdentityBindingName              = "identity"
	IdentityWorkloadClientSecretFile = "/run/baseharbor/service-bindings/identity/client-secret"
)
View Source
const (
	IdentityMFAEnv          = "BASEHARBOR_IDENTITY_MFA"
	IdentityMethodsEnv      = "BASEHARBOR_IDENTITY_METHODS"
	IdentityPasswordlessEnv = "BASEHARBOR_IDENTITY_PASSWORDLESS"
)
View Source
const (
	LogsEnabledEnv        = "BASEHARBOR_LOGS_ENABLED"
	LogsCollectSourcesEnv = "BASEHARBOR_LOGS_COLLECT"
)
View Source
const (
	PostgresUIHostPortEnv = "BASEHARBOR_POSTGRES_UI_HOST_PORT"
	PostgresUIEmailEnv    = "BASEHARBOR_POSTGRES_UI_EMAIL"
	PostgresUIPasswordEnv = "BASEHARBOR_POSTGRES_UI_PASSWORD"
	CacheUIHostPortEnv    = "BASEHARBOR_CACHE_UI_HOST_PORT"
	CacheUIUserEnv        = "BASEHARBOR_CACHE_UI_USER"
	CacheUIPasswordEnv    = "BASEHARBOR_CACHE_UI_PASSWORD"
	MongoDBUIUserEnv      = "BASEHARBOR_MONGODB_UI_USER"
	MongoDBUIPasswordEnv  = "BASEHARBOR_MONGODB_UI_PASSWORD"

	PostgresUIImage = "docker.io/dpage/pgadmin4:9.18"
	CacheUIImage    = "ghcr.io/joeferner/redis-commander:0.9.1"
	MongoDBUIImage  = "docker.io/huggingface/mongoku:2.11.3"
	UIProxyImage    = "docker.io/library/caddy:2.11.4-alpine"
)
View Source
const (
	MetricsEnabledEnv        = "BASEHARBOR_METRICS_ENABLED"
	MetricsCollectSourcesEnv = "BASEHARBOR_METRICS_COLLECT"
)
View Source
const (
	S3TLSHostCAEnv   = "S3_TLS_CA_FILE"
	S3TLSContainerCA = "/run/baseharbor/bindings/object-storage/ca.pem"
)
View Source
const (
	DefaultRuntimeAPIURL                   = "https://baseharbor-runtime:8443"
	RuntimeIdentityContainerTokenPath      = "/run/secrets/baseharbor-runtime-token"
	RuntimeIdentityContainerCAPath         = "/run/secrets/baseharbor-runtime-ca"
	RuntimeIdentityContainerClientCertPath = "/run/secrets/baseharbor-runtime-client-cert"
	RuntimeIdentityContainerClientKeyPath  = "/run/secrets/baseharbor-runtime-client-key"
	RuntimeIdentityContainerTLSCertPath    = "/run/secrets/baseharbor-tls-cert"
	RuntimeIdentityContainerTLSKeyPath     = "/run/secrets/baseharbor-tls-key"
	SecretFileBindingContainerDir          = "/run/baseharbor/bindings/secrets"
)
View Source
const (
	OTLPProviderEnv = "BASEHARBOR_OTLP_PROVIDER"
	OTLPEndpointEnv = "BASEHARBOR_OTLP_ENDPOINT"
)
View Source
const (
	OTLPTLSHostCAEnv         = "OTLP_TLS_CA_FILE"
	OTLPTLSHostClientCertEnv = "OTLP_TLS_CLIENT_CERT_FILE"
	OTLPTLSHostClientKeyEnv  = "OTLP_TLS_CLIENT_KEY_FILE"

	OTLPTLSContainerCA         = "/run/baseharbor/bindings/telemetry/ca.pem"
	OTLPTLSContainerClientCert = "/run/baseharbor/bindings/telemetry/client-cert.pem"
	OTLPTLSContainerClientKey  = "/run/baseharbor/bindings/telemetry/client-key.pem"
)
View Source
const (
	TracesEnabledEnv        = "BASEHARBOR_TRACES_ENABLED"
	TracesCollectSourcesEnv = "BASEHARBOR_TRACES_COLLECT"
)
View Source
const (
	WorkloadSecurityModeEnv  = "BASEHARBOR_WORKLOAD_SECURITY_MODE"
	WorkloadSecurityAllowEnv = "BASEHARBOR_WORKLOAD_SECURITY_ALLOW"
)
View Source
const CurrentVersion = 1
View Source
const FootprintVersion = "baseharbor.footprint/v1"
View Source
const (
	LastBackupMetadataVersion = 2
)
View Source
const (
	LastRecoveryMetadataVersion = 2
)
View Source
const (
	LastUpdateMetadataVersion = 1
)
View Source
const MaxPostgresBackupBytes int64 = 512 << 20
View Source
const MongoDBImage = "docker.io/library/mongo:7.0.43"
View Source
const ProviderImpactScopeVersion = "baseharbor.provider-impact-scope/v1"
View Source
const ProviderImpactVersion = "baseharbor.provider-impact/v1"
View Source
const ProviderPlanVersion = "baseharbor.provider-plan/v1"
View Source
const RepositoryManifestName = "baseharbor.yaml"

Variables

View Source
var ErrExists = errors.New("application already exists")
View Source
var ErrNoBackupMetadata = errors.New("no application backup metadata recorded")
View Source
var ErrNoRecoveryMetadata = errors.New("no application recovery metadata recorded")
View Source
var ErrNoUpdateMetadata = errors.New("no application update metadata recorded")
View Source
var ErrRepositoryManifestNotFound = errors.New("repository manifest not found")
View Source
var ErrRuntimeAPIURL = errors.New("application runtime API URL is invalid")
View Source
var ErrRuntimeDefinitionChanged = errors.New("application runtime definition differs from the BaseHarbor-managed definition")
View Source
var ErrRuntimeNotApplied = errors.New("application runtime has not been applied")
View Source
var ErrUnsupportedService = errors.New("application contains services that are not yet supported by apply")
View Source
var ErrWorkloadComposeAmbiguous = errors.New("multiple application Compose files found")
View Source
var ErrWorkloadComposeNotFound = errors.New("application Compose file not found")

Functions

func AddConnectivityRule added in v0.4.8

func AddConnectivityRule(rule ConnectivityRule) error

func AddConnectivityRuleAt added in v0.4.15

func AddConnectivityRuleAt(dataDir string, rule ConnectivityRule) error

func ApplicationBackendNetworkName

func ApplicationBackendNetworkName(m Manifest) string

ApplicationBackendNetworkName returns the legacy stable network name.

func ApplicationBackendNetworkNameForProject added in v0.4.15

func ApplicationBackendNetworkNameForProject(project string) string

func ApplicationExposureNetworkName added in v0.4.4

func ApplicationExposureNetworkName(m Manifest) string

ApplicationExposureNetworkName returns the legacy exposure network name.

func ApplicationExposureNetworkNameForProject added in v0.4.15

func ApplicationExposureNetworkNameForProject(project string) string

func ApplyDevelopmentManagementUICredentials added in v0.4.17

func ApplyDevelopmentManagementUICredentials(ctx context.Context, issuer serviceaccess.Issuer, files RuntimeFiles, m Manifest, username, password string) error

func AvailabilityIntent added in v0.4.21

func AvailabilityIntent(m Manifest) availability.Intent

func CacheInstanceNames added in v0.4.15

func CacheInstanceNames(m Manifest) []string

func CapabilityBindings added in v0.4.1

func CapabilityBindings(m Manifest) ([]capability.Binding, error)

func CheckAdditionalProviderResources added in v0.4.9

func CheckAdditionalProviderResources(m Manifest, additional []capability.Resource) error

func CheckAdditionalProviderResourcesAt added in v0.4.15

func CheckAdditionalProviderResourcesAt(dataDir string, m Manifest, additional []capability.Resource) error

func CheckApplicationConnectivityReleased added in v0.4.8

func CheckApplicationConnectivityReleased(m Manifest) error

func CheckApplicationConnectivityReleasedAt added in v0.4.15

func CheckApplicationConnectivityReleasedAt(dataDir string, m Manifest) error

func CheckControlPlaneDestroySafe added in v0.4.4

func CheckControlPlaneDestroySafe() error

func CheckControlPlaneDestroySafeAt added in v0.4.15

func CheckControlPlaneDestroySafeAt(dataDir string) error

func CheckExistingNativeBackendInventory added in v0.4.25

func CheckExistingNativeBackendInventory(files RuntimeFiles, candidates ...Manifest) error

CheckExistingNativeBackendInventory accepts only a protected canonical definition from this deployment's retained or desired intent. A retry may already have written the desired definition before retiring old containers.

func CheckManagedRuntimeDefinition

func CheckManagedRuntimeDefinition(files RuntimeFiles, m Manifest) error

CheckManagedRuntimeDefinition prevents destructive operations from trusting a locally modified Compose file. BaseHarbor may only mutate the runtime shape it originally generated and understands for the current manifest.

func CheckReferenceProviderRegistry added in v0.4.4

func CheckReferenceProviderRegistry(m Manifest) error

CheckReferenceProviderRegistry validates the protected provider registry and simulates the desired application reconciliation without writing it. Lifecycle callers use this during preflight so invalid provider metadata fails before any runtime or workload mutation.

func CheckReferenceProviderRegistryAt added in v0.4.15

func CheckReferenceProviderRegistryAt(dataDir string, m Manifest) error

func CheckRuntimePermissions

func CheckRuntimePermissions(files RuntimeFiles) error

func CheckRuntimeTopology added in v0.4.24

func CheckRuntimeTopology(files RuntimeFiles, m Manifest) error

CheckRuntimeTopology prevents reconciliation from turning an existing data service into a different storage topology. Adding a new logical instance is allowed; changes to retained members require an explicit migration.

func CheckSharedPostgresTopologyAt added in v0.4.22

func CheckSharedPostgresTopologyAt(dataDir, namespace string, m Manifest) error

CheckSharedPostgresTopologyAt is read-only and rejects changing a retained provider's storage realization before runtime or credential mutation.

func CheckSupportedRuntimeServices

func CheckSupportedRuntimeServices(m Manifest) error

func ComponentHA added in v0.4.24

func ComponentHA(m Manifest, component string) bool

func ConfiguredRuntimeAPIURL

func ConfiguredRuntimeAPIURL() (string, bool, error)

func ConnectivityNetworkName added in v0.4.8

func ConnectivityNetworkName(rule ConnectivityRule) string

func ConnectivityRuleID added in v0.4.8

func ConnectivityRuleID(rule ConnectivityRule) string

func ConnectivityTargetAlias added in v0.4.8

func ConnectivityTargetAlias(rule ConnectivityRule) string

func ConsumptionBindingID added in v0.4.21

func ConsumptionBindingID(producer LogicalProducerReference) string

func ConvergeExistingSharedBackendRuntime added in v0.4.25

func ConvergeExistingSharedBackendRuntime(ctx context.Context, provider bhruntime.RuntimeProvider, dataDir, namespace string, plan ProviderPlan, registry capability.Registry) (bhruntime.RuntimeRetirement, error)

ConvergeExistingSharedBackendRuntime preserves the existing data owner and credentials. It uses selected-service lifecycle operations on the canonical module rather than removing databases, roles, ACLs or recovery material. The existing mutation authority must acknowledge and revalidate the shared impact plan before calling this adapter.

func DefaultProviderPlacement added in v0.4.8

func DefaultProviderPlacement(provider capability.ProviderKind) (capability.ProviderPlacement, error)

func DestroyAllSharedBackendsAt added in v0.4.17

func DestroyAllSharedBackendsAt(ctx context.Context, compose bhruntime.RuntimeProvider, dataDir, namespace string) error

func DevelopmentWorkloadAlias added in v0.4.17

func DevelopmentWorkloadAlias(m Manifest) string

func DevelopmentWorkloadNetworkNameForProject added in v0.4.17

func DevelopmentWorkloadNetworkNameForProject(project string) string

func DocumentDatabaseInstanceNames added in v0.4.19

func DocumentDatabaseInstanceNames(m Manifest) []string

func EnsureApplicationManagementUIs added in v0.4.17

func EnsureApplicationManagementUIs(ctx context.Context, issuer serviceaccess.Issuer, files RuntimeFiles, m Manifest) error

func EnsureBackendServiceAccess added in v0.4.15

func EnsureBackendServiceAccess(ctx context.Context, issuer serviceaccess.Issuer, files RuntimeFiles, m Manifest) error

func EnsureRuntimeIdentity

func EnsureRuntimeIdentity(m Manifest, files RuntimeFiles) (string, error)

func EnsureRuntimeServiceIdentities added in v0.4.8

func EnsureRuntimeServiceIdentities(m Manifest, files RuntimeFiles) (map[string]string, error)

func ExpectedPersistentRuntimeResources

func ExpectedPersistentRuntimeResources(m Manifest) []bhruntime.ProjectResource

func ExpectedPersistentRuntimeResourcesForProject added in v0.4.15

func ExpectedPersistentRuntimeResourcesForProject(m Manifest, project string) []bhruntime.ProjectResource

func ExpectedPostgresRuntimeResources

func ExpectedPostgresRuntimeResources(m Manifest) []bhruntime.ProjectResource

ExpectedPostgresRuntimeResources is kept for compatibility with the first runtime milestone. New lifecycle code should use ExpectedRuntimeResources.

func ExpectedRuntimeResources

func ExpectedRuntimeResources(m Manifest) []bhruntime.ProjectResource

func ExpectedRuntimeResourcesForIdentity added in v0.4.16

func ExpectedRuntimeResourcesForIdentity(m Manifest, composeProject, resourceProject string) []bhruntime.ProjectResource

func ExpectedRuntimeResourcesForProject added in v0.4.15

func ExpectedRuntimeResourcesForProject(m Manifest, project string) []bhruntime.ProjectResource

func ExternalOTLPEndpoint added in v0.4.7

func ExternalOTLPEndpoint() string

func FindRepositoryManifest

func FindRepositoryManifest(start string) (string, error)

FindRepositoryManifest returns the nearest baseharbor.yaml from start upward. This lets developers run baha from nested directories inside an application repository.

func GenerateSecretValue

func GenerateSecretValue(generation SecretGeneration) ([]byte, error)

func HasApplicationScopedRuntimeServices added in v0.4.17

func HasApplicationScopedRuntimeServices(m Manifest) bool

func HasExplicitProviderPlacement added in v0.4.25

func HasExplicitProviderPlacement(m Manifest, provider capability.ProviderKind) (bool, error)

Explicit operator policy can request replacement. Defaults alone never override a previously applied deployment selection.

func HasExplicitWorkload added in v0.3.0

func HasExplicitWorkload(m Manifest) bool

HasExplicitWorkload reports whether portable application intent declares logical workload components. Source-format metadata is not required here.

func HasIdentity added in v0.4.17

func HasIdentity(m Manifest) bool

func HasLogsCollection added in v0.4.11

func HasLogsCollection(m Manifest) bool

func HasManagedRuntimeServices added in v0.3.0

func HasManagedRuntimeServices(m Manifest) bool

HasManagedRuntimeServices reports whether BaseHarbor owns a materialized PostgreSQL, Valkey, RabbitMQ or MongoDB runtime for the application. Shared object storage uses its own lazy provider runtime and is intentionally not part of this project.

func HasMetricsSources added in v0.4.8

func HasMetricsSources(m Manifest) bool

func HasOTLPTelemetry added in v0.4.7

func HasOTLPTelemetry(m Manifest) bool

func HasObjectStorage added in v0.4.6

func HasObjectStorage(m Manifest) bool

HasObjectStorage reports whether the application explicitly requests at least one logical S3 bucket.

func HasRepositoryApplication added in v0.4.13

func HasRepositoryApplication(start string) (bool, error)

HasRepositoryApplication reports whether start is inside a repository that carries either the compatibility root manifest or one or more complete environment manifests. It intentionally does not select an environment.

func HasRequiredFileSecrets

func HasRequiredFileSecrets(m Manifest) bool

func HasRuntimeCapabilityPermission added in v0.4.8

func HasRuntimeCapabilityPermission(m Manifest, capabilityID string) bool

func HasRuntimeMetricsPermissions added in v0.4.8

func HasRuntimeMetricsPermissions(m Manifest) bool

func HasSharedBackends added in v0.4.17

func HasSharedBackends(m Manifest) bool

func HasTraceSignal added in v0.4.10

func HasTraceSignal(m Manifest) bool

func IdentityProviderForDeployment added in v0.4.17

func IdentityProviderForDeployment() (capability.Provider, error)

func IdentityProviderNetworkName added in v0.4.17

func IdentityProviderNetworkName(m Manifest, namespace string) (string, error)

func IdentityProviderNetworkNameForPlacement added in v0.4.23

func IdentityProviderNetworkNameForPlacement(m Manifest, namespace string, placement capability.ProviderPlacement) (string, error)

func InspectExternalProvider added in v0.4.19

func InspectExternalProvider(id string) (externalprovider.Registration, error)

func InspectOwnedRuntimeResources

func InspectOwnedRuntimeResources(ctx context.Context, compose bhruntime.RuntimeProvider, m Manifest) ([]bhruntime.ProjectResource, error)

func InspectOwnedRuntimeResourcesForFiles added in v0.4.15

func InspectOwnedRuntimeResourcesForFiles(ctx context.Context, compose bhruntime.RuntimeProvider, m Manifest, files RuntimeFiles) ([]bhruntime.ProjectResource, error)

func KeyValueInstanceNames added in v0.4.19

func KeyValueInstanceNames(m Manifest) []string

func ListExternalProviders added in v0.4.19

func ListExternalProviders() ([]externalprovider.Registration, error)

func LogsCollectionEnabled added in v0.4.9

func LogsCollectionEnabled(m Manifest) (bool, error)

func ManagedRuntimeProviderServiceNames added in v0.4.16

func ManagedRuntimeProviderServiceNames(m Manifest) []string

func ManagedSecretsSecureBinding added in v0.4.5

func ManagedSecretsSecureBinding(m Manifest) capability.SecureBinding

ManagedSecretsSecureBinding describes the existing BaseHarbor runtime identity/secret-delivery semantics without exposing OpenBao paths, AppRoles, policies, tokens, private keys, or provider-specific object names.

func ManagedWorkloadEnvironment added in v0.4.16

func ManagedWorkloadEnvironment(m Manifest, files RuntimeFiles) (map[string]string, error)

func MaterializeExternalOTLPBinding added in v0.4.25

func MaterializeExternalOTLPBinding(m Manifest, files RuntimeFiles, endpoint, headers string) error

Authorization belongs to the existing protected deployment projections, never the portable manifest or public provider registration.

func MaterializeIdentityBinding added in v0.4.17

func MaterializeIdentityBinding(m Manifest, files RuntimeFiles, provider string, discovery IdentityDiscovery, clientID, clientSecret, trustBundlePath string) error

func MaterializeIdentityBindingMaterial added in v0.4.19

func MaterializeIdentityBindingMaterial(m Manifest, files RuntimeFiles, provider string, discovery IdentityDiscovery, clientID, clientSecret string, trustBundle []byte) error

func MaterializeIdentityBindingWithWorkloadDiscovery added in v0.4.17

func MaterializeIdentityBindingWithWorkloadDiscovery(m Manifest, files RuntimeFiles, provider string, discovery, workloadDiscovery IdentityDiscovery, clientID, clientSecret, trustBundlePath string) error

func MaterializeIdentityBindingWithWorkloadDiscoveryMaterial added in v0.4.19

func MaterializeIdentityBindingWithWorkloadDiscoveryMaterial(m Manifest, files RuntimeFiles, provider string, discovery, workloadDiscovery IdentityDiscovery, clientID, clientSecret string, trustBundle []byte) error

func MaterializeOTLPBinding added in v0.4.7

func MaterializeOTLPBinding(m Manifest, files RuntimeFiles, provider capability.ProviderKind, hostEndpoint, containerEndpoint string) error

func MaterializeOTLPTLSBinding added in v0.4.15

func MaterializeOTLPTLSBinding(m Manifest, files RuntimeFiles, caFile, clientCertFile, clientKeyFile string) error

func MaterializeOTLPTLSBindingMaterial added in v0.4.19

func MaterializeOTLPTLSBindingMaterial(m Manifest, files RuntimeFiles, caData, clientCertData, clientKeyData []byte) error

func MaterializeObjectStorageBinding added in v0.4.6

func MaterializeObjectStorageBinding(m Manifest, files RuntimeFiles, logicalBucket, physicalBucket, endpoint, containerEndpoint, caFile string) error

MaterializeObjectStorageBinding updates the standard application-facing environment/file binding after the selected provider has materialized its concrete endpoint and bucket identity.

func MaterializeObjectStorageBindingMaterial added in v0.4.19

func MaterializeObjectStorageBindingMaterial(m Manifest, files RuntimeFiles, logicalBucket, physicalBucket, endpoint, containerEndpoint string, caData []byte) error

func MaterializeRuntimeIdentityWorkloadOverride

func MaterializeRuntimeIdentityWorkloadOverride(m Manifest, workload WorkloadFiles, files RuntimeFiles, plan WorkloadBindingPlan) (string, bool, error)

MaterializeRuntimeIdentityWorkloadOverride adds only the protected bindings that selected application services actually consume. Runtime identity is injected through ordinary environment file paths plus Compose secret mounts; applications do not configure certificates, keys or broker topology.

func MessagingPubSubInstanceNames added in v0.4.19

func MessagingPubSubInstanceNames(m Manifest) []string

func MessagingQueueInstanceNames added in v0.4.19

func MessagingQueueInstanceNames(m Manifest) []string

func MessagingStreamInstanceNames added in v0.4.19

func MessagingStreamInstanceNames(m Manifest) []string

func MetricsCollectionEnabled added in v0.4.8

func MetricsCollectionEnabled(m Manifest) (bool, error)

MetricsCollectionEnabled is deployment policy, not portable application intent. Local development enables collection by default; test/staging/production require an explicit operator opt-in unless overridden with BASEHARBOR_METRICS_ENABLED.

func MetricsProviderNetworkName added in v0.4.8

func MetricsProviderNetworkName(m Manifest) string

func MetricsProviderNetworkNameForNamespace added in v0.4.15

func MetricsProviderNetworkNameForNamespace(m Manifest, namespace string) string

func MetricsRuntimeTargetVolumeName added in v0.4.8

func MetricsRuntimeTargetVolumeName(m Manifest) string

func MetricsRuntimeTargetVolumeNameForNamespace added in v0.4.15

func MetricsRuntimeTargetVolumeNameForNamespace(m Manifest, namespace string) string

func MetricsTargetAlias added in v0.4.8

func MetricsTargetAlias(m Manifest, service string) string

func MetricsTargetAliasFor added in v0.4.8

func MetricsTargetAliasFor(applicationName, environment, service string) string

func MongoDBHAPrimary added in v0.4.21

func MongoDBHAPrimary(ctx context.Context, runtime mongoDBHAProbeRuntime, m Manifest, instance string) (string, error)

func MongoDBManagementUIRouteName added in v0.4.19

func MongoDBManagementUIRouteName(instance string) string

func MustNewApplicationID added in v0.4.19

func MustNewApplicationID() string

func NativeBackendInstanceResources added in v0.4.25

func NativeBackendInstanceResources(m Manifest, files RuntimeFiles, instance capability.ProviderInstance) ([]bhruntime.ProjectResource, error)

NativeBackendInstanceResources attributes only renderer-defined services to their actual existing provider instance, including named PostgreSQL/Valkey realizations. A peer instance never inherits another instance's containers.

func NativeBackendResources added in v0.4.25

func NativeBackendResources(m Manifest, files RuntimeFiles) ([]bhruntime.ProjectResource, error)

NativeBackendResources uses the existing renderer, including its HA networks, to project resources. It creates neither a provider offer nor ownership state.

func NewApplicationID added in v0.4.19

func NewApplicationID() (string, error)

func ObjectStorageBucketNames added in v0.4.6

func ObjectStorageBucketNames(m Manifest) []string

func ObjectStorageSecureBinding added in v0.4.6

func ObjectStorageSecureBinding(m Manifest, bucket string) capability.SecureBinding

ObjectStorageSecureBinding describes one application-owned S3 bucket without exposing concrete credentials or provider-specific identity/policy objects.

func OptionalSecretNames added in v0.4.15

func OptionalSecretNames(m Manifest) []string

func PreviewReferenceProviderRegistryAt added in v0.4.25

func PreviewReferenceProviderRegistryAt(dataDir string, m Manifest) (capability.Registry, error)

PreviewReferenceProviderRegistryAt uses the existing provider registration plan without writing Target state. Removed capability instances retain their ownership; releasing a binding does not reclaim a provider.

func ProviderExternalReferenceEnv added in v0.4.8

func ProviderExternalReferenceEnv(provider capability.ProviderKind) string

func ProviderPlacementNameToken added in v0.4.8

func ProviderPlacementNameToken(value string) string

func ProviderScopeEnv added in v0.4.8

func ProviderScopeEnv(provider capability.ProviderKind) string

func ProviderSharingBoundaryEnv added in v0.4.8

func ProviderSharingBoundaryEnv(provider capability.ProviderKind) string

func RabbitMQInstanceNames added in v0.4.19

func RabbitMQInstanceNames(m Manifest) []string

func RabbitMQManagementUIRouteName added in v0.4.19

func RabbitMQManagementUIRouteName(instance string) string

func ReallocateRuntimePorts

func ReallocateRuntimePorts(m Manifest, files RuntimeFiles) error

ReallocateRuntimePorts replaces only the generated host-port assignments for an already materialized application runtime. Credentials, databases, volumes and other persisted runtime values are left unchanged. This is used when the container runtime proves that a probed loopback port was claimed between allocation and the actual container bind.

func ReconcileMongoDBHA added in v0.4.21

func ReconcileMongoDBHA(ctx context.Context, runtime mongoDBHAProbeRuntime, m Manifest, files RuntimeFiles) error

ReconcileMongoDBHA bootstraps a managed MongoDB replica set after all members are running. It is idempotent and leaves an already initialized set intact.

func ReconcileRabbitMQCredentials added in v0.4.21

func ReconcileRabbitMQCredentials(ctx context.Context, runtime rabbitMQCredentialRuntime, m Manifest, files RuntimeFiles) error

func ReconcileReferenceProviderRegistry added in v0.4.2

func ReconcileReferenceProviderRegistry(m Manifest, additional ...capability.Resource) error

func ReconcileReferenceProviderRegistryAt added in v0.4.15

func ReconcileReferenceProviderRegistryAt(dataDir string, m Manifest, additional ...capability.Resource) error

func ReconcileRuntimeComponentObservability added in v0.4.15

func ReconcileRuntimeComponentObservability(m Manifest, component RuntimeComponentObservability) error

func ReconcileSharedBackends added in v0.4.17

func ReconcileSharedBackends(ctx context.Context, compose bhruntime.RuntimeProvider, issuer serviceaccess.Issuer, dataDir, namespace string, m Manifest, files RuntimeFiles, plans ...ProviderPlan) (bool, error)

func RegisterExternalProvider added in v0.4.19

func RegisterExternalProvider(reg externalprovider.Registration) error

func RegisterExternalProviderAt added in v0.4.19

func RegisterExternalProviderAt(dataDir string, reg externalprovider.Registration) error

func RegisteredProviderPlacement added in v0.4.8

func RegisteredProviderPlacement(m Manifest, provider capability.ProviderKind) (capability.ProviderPlacement, bool, error)

func RegisteredProviderPlacementAt added in v0.4.15

func RegisteredProviderPlacementAt(dataDir string, m Manifest, provider capability.ProviderKind) (capability.ProviderPlacement, bool, error)

func ReleaseApplicationProviderReferencesAt added in v0.4.25

func ReleaseApplicationProviderReferencesAt(dataDir string, m Manifest) error

Release runtime consumer references while preserving every existing owner. External resources are never deletion targets of reference release.

func ReleaseApplicationProviderRegistry added in v0.4.2

func ReleaseApplicationProviderRegistry(m Manifest) error

func ReleaseApplicationProviderRegistryAt added in v0.4.15

func ReleaseApplicationProviderRegistryAt(dataDir string, m Manifest) error

func ReleaseSharedBackendApplication added in v0.4.17

func ReleaseSharedBackendApplication(ctx context.Context, compose bhruntime.RuntimeProvider, dataDir, namespace string, m Manifest) error

func RemoveConnectivityRule added in v0.4.8

func RemoveConnectivityRule(rule ConnectivityRule) error

func RemoveConnectivityRuleAt added in v0.4.15

func RemoveConnectivityRuleAt(dataDir string, rule ConnectivityRule) error

func ReplaceObjectStorageCredentials added in v0.4.21

func ReplaceObjectStorageCredentials(m Manifest, files RuntimeFiles, bucket string, credentials ObjectStorageCredentials) error

ReplaceObjectStorageCredentials replaces one logical bucket credential pair in the managed runtime state. Callers must re-project the object-storage binding after this mutation so workloads observe the new credential atomically.

func RepositoryEnvironmentStateRoot added in v0.4.13

func RepositoryEnvironmentStateRoot(selection RepositoryEnvironmentSelection) string

RepositoryEnvironmentStateRoot keeps the v0.4.12 state path for the unchanged single-environment compatibility case and isolates every explicit/multi-env deployment below a stable environment scope.

func RequiredSecretNames

func RequiredSecretNames(m Manifest) []string

func RequiredSecretUsesFileBinding

func RequiredSecretUsesFileBinding(name string) bool

func RequiresRuntimeBroker added in v0.4.8

func RequiresRuntimeBroker(m Manifest) bool

RequiresRuntimeBroker reports whether the application currently needs the per-application Application Runtime Broker. Keep broker lifecycle decisions centralized here so new authorized runtime capabilities can extend the requirement without duplicating lifecycle conditionals throughout the CLI.

func ResolveCapabilityResources added in v0.4.1

func ResolveCapabilityResources(contract PortableContract) ([]capability.Resource, error)

func ResolveConfiguredProviderPlacement added in v0.4.25

func ResolveConfiguredProviderPlacement(m Manifest, provider capability.ProviderKind) (capability.ProviderPlacement, error)

Read current operator policy for a new selection/revalidation. Runtime execution uses ResolveProviderPlacement's captured owner/intent projection.

func ResolveExternalProviderRegistrationAt added in v0.4.25

func ResolveExternalProviderRegistrationAt(dataDir string, m Manifest, provider capability.ProviderKind) (externalprovider.Registration, error)

Resolve through the existing placement and registered offer, then read its actual endpoint/material references. A reference ID is never an issuer URL.

func ResolveProviderPlacement added in v0.4.8

func ResolveProviderPlacement(m Manifest, provider capability.ProviderKind) (capability.ProviderPlacement, error)

ResolveProviderPlacement resolves deployment/operator placement for a provider. Portable application intent never participates in this decision. Defaults are deliberately simple; advanced users can override supported placement fields through the generic provider policy namespace.

func ResolveWorkloadCompose

func ResolveWorkloadCompose(repositoryRoot string) (string, bool, error)

func ResolveWorkloadComposeSource added in v0.4.20

func ResolveWorkloadComposeSource(repositoryRoot, sourcePath string) (string, error)

func ResourceExists

func ResourceExists(resources []bhruntime.ProjectResource, kind string) bool

func ResourceNamedExists

func ResourceNamedExists(resources []bhruntime.ProjectResource, wanted bhruntime.ProjectResource) bool

func RestorePostgresInstances

func RestorePostgresInstances(ctx context.Context, runtime PostgresBackupRuntime, m Manifest, files RuntimeFiles, backups []PostgresBackup) error

func RestorePostgresInstancesAt added in v0.4.17

func RestorePostgresInstancesAt(ctx context.Context, runtime PostgresBackupRuntime, m Manifest, files RuntimeFiles, dataDir, namespace string, backups []PostgresBackup) error

func RetainPendingProviderOwnersAt added in v0.4.25

func RetainPendingProviderOwnersAt(dataDir string, m Manifest, additional ...capability.Resource) error

RetainPendingProviderOwnersAt records intended realization owners in the existing registry before apply can partially materialize them. It does not publish desired bindings or release previous consumers. Native inventory must still verify whether an intended realization actually exists.

func RetainedExternalOTLPAuthorization added in v0.4.25

func RetainedExternalOTLPAuthorization(files RuntimeFiles, endpoint, input string, explicit bool) (string, error)

Reapply can reuse this deployment's authorization at the same authority. A changed authority receives only explicitly selected material, including an explicitly empty input for a destination that needs no authorization.

func RetireUnneededControlPlaneServices added in v0.4.25

func RetireUnneededControlPlaneServices(ctx context.Context, provider bhruntime.RuntimeProvider, root, target string, plan ProviderPlan, registry capability.Registry) (bhruntime.RuntimeRetirement, error)

RetireUnneededControlPlaneServices projects the common consumer plan onto the existing native module. It neither resolves dependencies nor deletes storage, credentials, installation records or recovery material.

func RevokeRuntimeIdentity

func RevokeRuntimeIdentity(m Manifest, files RuntimeFiles) error

func RotateManagedProviderPKI added in v0.4.21

func RotateManagedProviderPKI(ctx context.Context, runtime bhruntime.RuntimeProvider, issuer serviceaccess.Issuer, m Manifest, files RuntimeFiles, kind ManagedProviderPKIKind, instance string) error

func RotateMongoDBCredential added in v0.4.21

func RotateMongoDBCredential(ctx context.Context, runtime bhruntime.RuntimeProvider, m Manifest, files RuntimeFiles, instance string) error

func RotateRabbitMQCredential added in v0.4.21

func RotateRabbitMQCredential(ctx context.Context, runtime bhruntime.RuntimeProvider, m Manifest, files RuntimeFiles, instance string) error

func RotateRuntimeIdentity

func RotateRuntimeIdentity(m Manifest, files RuntimeFiles) error

func RotateValkeyCredential added in v0.4.21

func RotateValkeyCredential(ctx context.Context, runtime bhruntime.RuntimeProvider, issuer serviceaccess.Issuer, m Manifest, files RuntimeFiles, instance string) error

func RuntimeAuthorizedServices added in v0.4.8

func RuntimeAuthorizedServices(m Manifest) []string

func RuntimeBrokerDependency added in v0.4.25

func RuntimeBrokerDependency(namespace string, m Manifest) capability.ProviderInstance

RuntimeBrokerDependency projects the existing per-application native owner. It creates neither a selectable Capability nor a persisted registry entry.

func RuntimeComposeProjectNameForStore added in v0.4.16

func RuntimeComposeProjectNameForStore(store Store, m Manifest) string

func RuntimeComposeYAML

func RuntimeComposeYAML(m Manifest) (string, error)

func RuntimeComposeYAMLForProject added in v0.4.16

func RuntimeComposeYAMLForProject(m Manifest, resourceProject string) (string, error)

func RuntimeDependencyRoots added in v0.4.25

func RuntimeDependencyRoots(m Manifest, registry capability.Registry) ([]string, error)

RuntimeDependencyRoots projects the existing native broker realization into the common resolver. Consumption bindings remain unknown until their actual delivery dependencies are available; no capability or provider is inferred.

func RuntimeEnvironment added in v0.4.15

func RuntimeEnvironment(files RuntimeFiles) (map[string]string, error)

func RuntimeExecutorDependency added in v0.4.25

func RuntimeExecutorDependency(namespace string) capability.ProviderInstance

RuntimeExecutorDependency identifies the single existing physical executor on a Target. All application/management roots reference this same shared owner; it is neither an application alias nor a selectable Capability provider. The caller must separately observe ownership, dependencies and runtime facts.

func RuntimeIdentityRevoked

func RuntimeIdentityRevoked(files RuntimeFiles) bool

func RuntimeIdentityRevokedPath

func RuntimeIdentityRevokedPath(files RuntimeFiles) string

func RuntimeIdentityTokenPath

func RuntimeIdentityTokenPath(files RuntimeFiles) string

func RuntimeMTLSHostDir

func RuntimeMTLSHostDir(files RuntimeFiles) string

func RuntimePermissionFor added in v0.4.8

func RuntimePermissionFor(m Manifest, capabilityID, operation string) bool

func RuntimeProjectName

func RuntimeProjectName(m Manifest) string

func RuntimeProjectNameForStore added in v0.4.15

func RuntimeProjectNameForStore(store Store, m Manifest) string

func RuntimeServiceIdentityDir added in v0.4.8

func RuntimeServiceIdentityDir(files RuntimeFiles) string

func RuntimeServiceIdentityTokenPath added in v0.4.8

func RuntimeServiceIdentityTokenPath(files RuntimeFiles, service string) string

func RuntimeStorageDependency added in v0.4.25

func RuntimeStorageDependency(namespace string) capability.ProviderInstance

RuntimeStorageDependency projects the existing native module owner into the resolver. Backing storage is not another selectable app SQL offer and is never persisted as a registry instance.

func RuntimeStorageDependencyID added in v0.4.25

func RuntimeStorageDependencyID(namespace string) string

RuntimeStorageDependencyID identifies the SQL storage actually used by the native OpenBao renderer, independently of app SQL resource bindings.

func RuntimeTopologyGroups added in v0.4.24

func RuntimeTopologyGroups(m Manifest) map[string]string

RuntimeTopologyGroups keeps independent logical instances separate from replica ordinals in status/doctor, including names ending in a number.

func RuntimeWorkloadDependency added in v0.4.25

func RuntimeWorkloadDependency(namespace string, m Manifest, component string) (capability.ProviderInstance, error)

RuntimeWorkloadDependency projects one declared component's existing owner. This read-only declaration does not provision runtime services or claim native ownership, readiness, retention or downstream function observations.

func SQLInstanceNames added in v0.4.15

func SQLInstanceNames(m Manifest) []string

func SecretFileContainerPath

func SecretFileContainerPath(name string) string

func SecretFileHostDir

func SecretFileHostDir(files RuntimeFiles) string

func SecretFileHostPath

func SecretFileHostPath(files RuntimeFiles, name string) string

func SelectedWorkloadServices added in v0.4.9

func SelectedWorkloadServices(repositoryRoot string, m Manifest) ([]string, string, bool, error)

func SelectedWorkloadServicesFromCompose added in v0.4.20

func SelectedWorkloadServicesFromCompose(repositoryRoot, sourcePath string, m Manifest) ([]string, string, error)

func SharedBackendNetworkName added in v0.4.17

func SharedBackendNetworkName(namespace, environment string) string

func SharedBackendRuntimeDependency added in v0.4.25

func SharedBackendRuntimeDependency(namespace string, kind capability.ProviderKind) capability.ProviderInstance

Logical environment bindings share the existing canonical physical owner. Project that module once into the shared resolver; it is not a registry offer.

func SharedCoreSQLFilesAt added in v0.4.24

func SharedCoreSQLFilesAt(dataDir, namespace string, m Manifest) (bhruntime.Files, bool, error)

func TelemetryProviderForDeployment added in v0.4.7

func TelemetryProviderForDeployment() capability.Provider

func TracesCollectionEnabled added in v0.4.10

func TracesCollectionEnabled(m Manifest) (bool, error)

func UsesSharedPostgreSQL added in v0.4.17

func UsesSharedPostgreSQL(m Manifest) bool

func UsesSharedValkey added in v0.4.17

func UsesSharedValkey(m Manifest) bool

func ValidateApplicationID added in v0.4.19

func ValidateApplicationID(id string) error

func ValidateManagementAuthenticationClass added in v0.4.21

func ValidateManagementAuthenticationClass(class ManagementAuthenticationClass) error

func ValidateManagementRoleMappings added in v0.4.21

func ValidateManagementRoleMappings(mappings []ManagementRoleMapping) error

func ValidateOTLPTLSProjection added in v0.4.25

func ValidateOTLPTLSProjection(files RuntimeFiles) error

Observe the existing destination authority before delivery. This never repairs ownership or permissions, follows links or creates missing files.

func ValidatePostgresBackupSet

func ValidatePostgresBackupSet(m Manifest, backups []PostgresBackup) error

func ValidateProviderChangeConsent added in v0.4.25

func ValidateProviderChangeConsent(current ProviderImpactPlan, consent ProviderChangeConsent) error

ValidateProviderChangeConsent is shared by CLI, JSON and MCP authorities. Complete=false never vetoes an informed developer's choice. Lack of an alternative requires two stages; ordinary consent cannot imply data deletion.

func ValidateProviderChangeReceiptMetadata added in v0.4.25

func ValidateProviderChangeReceiptMetadata(result ProviderChangeResult, materials []ProviderMaterial) error

Validate read projections of persisted receipts without inferring execution.

func ValidateProviderImpactScopeConsent added in v0.4.25

func ValidateProviderImpactScopeConsent(scope ProviderImpactScope, consent ProviderChangeConsent) error

ValidateProviderImpactScopeConsent uses the same staged consent requirements as a single Target. A leaf plan's approval cannot authorize global removal.

func ValkeyHAMaster added in v0.4.21

func ValkeyHAMaster(ctx context.Context, runtime valkeyHAProbeRuntime, m Manifest, files RuntimeFiles, instance string) (string, error)

func ValkeyInstanceNames added in v0.4.19

func ValkeyInstanceNames(m Manifest) []string

func VerifyApplicationManagementUIs added in v0.4.17

func VerifyApplicationManagementUIs(ctx context.Context, m Manifest, files RuntimeFiles) error

func VerifyExternalProvider added in v0.4.19

func VerifyExternalProvider(ctx context.Context, id string) (externalprovider.Verification, error)

func VerifyIdentityBinding added in v0.4.17

func VerifyIdentityBinding(m Manifest, files RuntimeFiles) error

func VerifyIdentityDiscoveryBinding added in v0.4.25

func VerifyIdentityDiscoveryBinding(files RuntimeFiles, provider, clientID string, host, workload IdentityDiscovery) error

Verify the same canonical discovery fields that materialization writes. Host and workload metadata may legitimately have distinct endpoint hosts.

func VerifyManagedProviderInteractions added in v0.4.15

func VerifyManagedProviderInteractions(ctx context.Context, runtime bhruntime.RuntimeProvider, m Manifest, files RuntimeFiles, sources []observability.SignalSource) error

func VerifyMongoDBHACluster added in v0.4.21

func VerifyMongoDBHACluster(ctx context.Context, runtime mongoDBHAProbeRuntime, m Manifest, files RuntimeFiles) error

func VerifyMongoDBRuntime added in v0.4.19

func VerifyMongoDBRuntime(ctx context.Context, m Manifest, files RuntimeFiles) error

func VerifyOTLPHostDelivery added in v0.4.25

func VerifyOTLPHostDelivery(m Manifest, files RuntimeFiles) error

VerifyOTLPHostDelivery compares the protected host projection with the actual runtime owner, without exposing confidential values through errors.

func VerifyPostgresProvider added in v0.4.19

func VerifyPostgresProvider(ctx context.Context, executor BackendProbeExecutor, m Manifest) error

func VerifyPostgresRuntime

func VerifyPostgresRuntime(ctx context.Context, runtime bhruntime.RuntimeProvider, m Manifest, files RuntimeFiles) error

func VerifyRabbitMQHACluster added in v0.4.21

func VerifyRabbitMQHACluster(ctx context.Context, runtime rabbitMQHAProbeRuntime, m Manifest, files RuntimeFiles) error

func VerifyRabbitMQRuntime added in v0.4.19

func VerifyRabbitMQRuntime(ctx context.Context, m Manifest, files RuntimeFiles) error

func VerifySharedBackends added in v0.4.17

func VerifySharedBackends(ctx context.Context, compose bhruntime.RuntimeProvider, dataDir, namespace string, m Manifest) error

func VerifySharedPostgreSQL added in v0.4.17

func VerifySharedPostgreSQL(ctx context.Context, compose bhruntime.RuntimeProvider, dataDir, namespace string, m Manifest) error

func VerifySharedValkey added in v0.4.17

func VerifySharedValkey(ctx context.Context, compose bhruntime.RuntimeProvider, dataDir, namespace string, m Manifest) error

func VerifyValkeyHACluster added in v0.4.21

func VerifyValkeyHACluster(ctx context.Context, runtime valkeyHAProbeRuntime, m Manifest, files RuntimeFiles) error

func VerifyValkeyProvider added in v0.4.19

func VerifyValkeyProvider(ctx context.Context, executor BackendProbeExecutor, m Manifest) error

func VerifyValkeyRuntime

func VerifyValkeyRuntime(ctx context.Context, runtime bhruntime.RuntimeProvider, m Manifest, files RuntimeFiles) error

func VerifyWorkloadServiceBindings added in v0.4.16

func VerifyWorkloadServiceBindings(m Manifest, files RuntimeFiles) error

func WorkloadComponentNames added in v0.4.20

func WorkloadComponentNames(m Manifest) []string

func WorkloadProjectName

func WorkloadProjectName(m Manifest) string

func WorkloadProjectNameForNamespace added in v0.4.15

func WorkloadProjectNameForNamespace(m Manifest, namespace string) string

func WorkloadProjectNameForRuntime added in v0.4.15

func WorkloadProjectNameForRuntime(m Manifest, runtime RuntimeFiles) string

func WorkloadServiceBindingProjectionDir added in v0.4.17

func WorkloadServiceBindingProjectionDir(files RuntimeFiles) string

Types

type Action

type Action struct {
	Kind        string `json:"kind"`
	Resource    string `json:"resource"`
	Description string `json:"description"`
}

type AvailabilityResolution added in v0.4.21

type AvailabilityResolution struct {
	Results []availability.NegotiationResult `json:"results"`
}

AvailabilityResolution is the provider/runtime-neutral requested/resolved availability truth used by CLI, JSON and MCP callers.

func ResolveAvailability added in v0.4.21

func ResolveAvailability(m Manifest, runtimeProvider string, runtimeSupport availability.Support) (AvailabilityResolution, error)

type BackendProbe added in v0.4.19

type BackendProbe struct {
	Kind     BackendProbeKind
	Instance string
	Database string
}

type BackendProbeExecutor added in v0.4.19

type BackendProbeExecutor interface {
	ProbeBackend(context.Context, BackendProbe) (string, error)
}

type BackendProbeKind added in v0.4.19

type BackendProbeKind string
const (
	BackendProbeSQLSelectOne      BackendProbeKind = "sql.select-one"
	BackendProbeCachePing         BackendProbeKind = "cache.ping"
	BackendProbeDurableKeyValueRW BackendProbeKind = "database.key-value.write-read"
)

type BackendTLSLifecycleObservation added in v0.4.15

type BackendTLSLifecycleObservation struct {
	Kind      string                             `json:"kind"`
	Instance  string                             `json:"instance"`
	Lifecycle serviceaccess.LifecycleObservation `json:"lifecycle"`
}

func InspectBackendTLSLifecycle added in v0.4.15

func InspectBackendTLSLifecycle(files RuntimeFiles, m Manifest) ([]BackendTLSLifecycleObservation, error)

func InspectSharedBackendTLSLifecycleAt added in v0.4.17

func InspectSharedBackendTLSLifecycleAt(dataDir, namespace string, m Manifest) ([]BackendTLSLifecycleObservation, error)

type BackupMetadata added in v0.3.0

type BackupMetadata struct {
	Version           int                           `json:"version"`
	ApplicationID     string                        `json:"application_id"`
	DeploymentID      string                        `json:"deployment_id"`
	Application       string                        `json:"application"`
	Environment       string                        `json:"environment"`
	CreatedAt         time.Time                     `json:"created_at"`
	ArchivePath       string                        `json:"archive_path"`
	PostgresResources []string                      `json:"postgres_resources,omitempty"`
	IncludesSecrets   bool                          `json:"includes_secrets"`
	Recovery          []RecoveryContributorMetadata `json:"recovery,omitempty"`
}

func (BackupMetadata) Validate added in v0.3.0

func (m BackupMetadata) Validate() error

type CapabilityKind added in v0.4.0

type CapabilityKind = capability.Kind

CapabilityKind and CapabilityRequirement remain aliases in the application package so existing v0.4 callers keep their source-compatible contract while the reusable capability domain moves into the shared core.

const (
	CapabilitySQL              CapabilityKind = capability.SQL
	CapabilityKeyValue         CapabilityKind = capability.KeyValue
	CapabilityDurableKeyValue  CapabilityKind = capability.DurableKeyValue
	CapabilityDocumentDatabase CapabilityKind = capability.DocumentDatabase
	CapabilityExposureHTTP     CapabilityKind = capability.ExposureHTTP
	CapabilityObjectStorageS3  CapabilityKind = capability.ObjectStorageS3
	CapabilityTelemetryOTLP    CapabilityKind = capability.TelemetryOTLP
	CapabilityMetrics          CapabilityKind = capability.Metrics
	CapabilityLogs             CapabilityKind = capability.Logs
	CapabilityIdentity         CapabilityKind = capability.Identity
	CapabilityMessagingQueue   CapabilityKind = capability.MessagingQueue
	CapabilityMessagingPubSub  CapabilityKind = capability.MessagingPubSub
	CapabilityMessagingStream  CapabilityKind = capability.MessagingStream
)

type CapabilityRequirement added in v0.4.0

type CapabilityRequirement = capability.Requirement

type ConnectivityEndpoint added in v0.4.8

type ConnectivityEndpoint struct {
	Application string `json:"application"`
	Environment string `json:"environment"`
	Service     string `json:"service"`
	Port        int    `json:"port,omitempty"`
}

func (ConnectivityEndpoint) Validate added in v0.4.8

func (e ConnectivityEndpoint) Validate() error

type ConnectivityRule added in v0.4.8

type ConnectivityRule struct {
	Source ConnectivityEndpoint `json:"source"`
	Target ConnectivityEndpoint `json:"target"`
}

func LoadConnectivityRules added in v0.4.8

func LoadConnectivityRules() ([]ConnectivityRule, error)

func LoadConnectivityRulesAt added in v0.4.15

func LoadConnectivityRulesAt(dataDir string) ([]ConnectivityRule, error)

func (ConnectivityRule) Validate added in v0.4.8

func (r ConnectivityRule) Validate() error

type ConsumerIntent added in v0.4.25

type ConsumerIntent struct {
	Key             string               `json:"key"`
	Active          bool                 `json:"active"`
	Manifest        Manifest             `json:"manifest"`
	DependencyRoots []string             `json:"dependency_roots"`
	Preferences     []ProviderPreference `json:"preferences,omitempty"`
	// RetainedIntents are existing canonical pending/applied records of THIS
	// active app/environment owner, never another consumer or authored identity.
	RetainedIntents []Manifest `json:"retained_intents,omitempty"`
}

ConsumerIntent is an ephemeral projection of an existing authoritative owner. Management/Console consumers supply their actual security requirements through the same Manifest capability projection; no mandatory bundle is inferred. Inactive entries release bindings but retain identity for safe removal/retry.

type ConsumerTransition added in v0.4.25

type ConsumerTransition struct {
	Outcome               string                   `json:"outcome"`
	Dependencies          []string                 `json:"dependencies"`
	ID                    string                   `json:"id"`
	Consumer              string                   `json:"consumer"`
	InstanceID            string                   `json:"instance_id"`
	Function              string                   `json:"function"`
	ModeBefore            string                   `json:"mode_before"`
	ModeAfter             string                   `json:"mode_after"`
	OwnerBefore           string                   `json:"owner_before"`
	OwnerAfter            string                   `json:"owner_after"`
	Before                capability.SecureBinding `json:"before"`
	After                 capability.SecureBinding `json:"after"`
	Locations             []ResourceLocation       `json:"locations"`
	SynchronizationBefore string                   `json:"synchronization_before"`
	SynchronizationAfter  string                   `json:"synchronization_after"`
	RotationBefore        string                   `json:"rotation_before"`
	RotationAfter         string                   `json:"rotation_after"`
	ChangeCredentials     bool                     `json:"change_credentials"`
	Supported             bool                     `json:"supported"`
	Verified              bool                     `json:"verified"`
	Evidence              string                   `json:"evidence,omitempty"`
}

ConsumerTransition is an observed operation of an existing consumer adapter, explicitly selected by ID in the request. It is not a generic auth fallback. Before/After contain references only; no password comparison or regeneration occurs in this read-only projection. The adapter verifies retained values.

type ConsumptionRequirement added in v0.4.21

type ConsumptionRequirement struct {
	Name          string `json:"name"`
	ApplicationID string `json:"application_id,omitempty"`
	Component     string `json:"component"`
	Interface     string `json:"interface"`
	Protocol      string `json:"protocol,omitempty"`
}

ConsumptionRequirement is portable application intent for one logical application/component interface consumed by this application.

It deliberately contains no runtime address, namespace, container, Pod, node, replica or provider product identity.

func (ConsumptionRequirement) Producer added in v0.4.21

func (r ConsumptionRequirement) Producer(currentApplicationID string) (LogicalProducerReference, error)

func (ConsumptionRequirement) Validate added in v0.4.21

func (r ConsumptionRequirement) Validate(currentApplicationID string) error

type CoreRequirement added in v0.4.25

type CoreRequirement string

CoreRequirement is derived from selected provider declarations, never from HTTPS, SQL's capability name, a profile, or guessed container counts.

const (
	CoreNotRequired CoreRequirement = "not-required"
	CoreRequired    CoreRequirement = "required"
	CoreUnknown     CoreRequirement = "unknown"
)

type EffectiveIdentityPolicy added in v0.4.17

type EffectiveIdentityPolicy struct {
	MFA          string   `json:"mfa"`
	Methods      []string `json:"methods,omitempty"`
	Passwordless bool     `json:"passwordless"`
	Sources      []string `json:"sources,omitempty"`
}

func ResolveIdentityPolicy added in v0.4.17

func ResolveIdentityPolicy(m Manifest) (EffectiveIdentityPolicy, error)

type ExternalProviderBindingRelease added in v0.4.25

type ExternalProviderBindingRelease struct {
	Reference string                       `json:"reference"`
	Released  []capability.ProviderBinding `json:"released"`
	Verified  bool                         `json:"verified"`
	Evidence  string                       `json:"evidence"`
}

type ExternalProviderRemoval added in v0.4.25

type ExternalProviderRemoval struct {
	Scope ProviderImpactScope `json:"scope"`
	// contains filtered or unexported fields
}

ExternalProviderRemoval observes registration/binding owners only. It never promises that unbinding reconfigures a running workload or revokes credentials.

func PlanExternalProviderRemovalAt added in v0.4.25

func PlanExternalProviderRemovalAt(dataDir, id string) (ExternalProviderRemoval, error)

PlanExternalProviderRemovalAt scans persisted Target owners, including Targets absent from current configuration. The global registration is not a Target.

type ExternalProviderRemovalResult added in v0.4.25

type ExternalProviderRemovalResult struct {
	ID             string                           `json:"id"`
	Removed        bool                             `json:"removed"`
	ForeignMutated bool                             `json:"foreign_mutated"`
	Scope          ProviderImpactScopeResult        `json:"scope"`
	Bindings       []ExternalProviderBindingRelease `json:"bindings"`
}

func ApplyExternalProviderRemovalAt added in v0.4.25

func ApplyExternalProviderRemovalAt(dataDir, id string, consent ProviderChangeConsent) (ExternalProviderRemovalResult, error)

ApplyExternalProviderRemovalAt replans the entire scope, then compares each protected registry inside its update lock. A partial error retains the global owner for a fresh plan/retry; foreign runtime and material are never touched.

type Footprint added in v0.4.25

type Footprint struct {
	Version       string                  `json:"version"`
	Target        string                  `json:"target"`
	ApplicationID string                  `json:"application_id,omitempty"`
	Requirements  []RequirementResolution `json:"requirements"`
	Existing      []ProviderFootprint     `json:"existing"`
	Additional    []ProviderFootprint     `json:"additional"`
	Unused        []string                `json:"unused"`
	Core          CoreRequirement         `json:"core"`
	Complete      bool                    `json:"complete"`
}

func ResolveFootprint added in v0.4.25

func ResolveFootprint(m Manifest, snapshot ResolutionSnapshot, preferences []ProviderPreference) (Footprint, error)

ResolveFootprint performs no filesystem, registry, discovery or runtime writes. Missing automatic selection stays requested/unbound. It is not permission to provision Core; Session 2 must negotiate a supported provider via existing plans and rerun this view with its verified declaration/snapshot.

type FunctionConsequence added in v0.4.25

type FunctionConsequence struct {
	Transition               *ConsumerTransition `json:"transition,omitempty"`
	RemainingValiditySeconds *int64              `json:"remaining_validity_seconds,omitempty"`
	Consumer                 string              `json:"consumer"`
	Function                 string              `json:"function"`
	Via                      []string            `json:"via"`
	Required                 bool                `json:"required"`
	Outcome                  string              `json:"outcome"` // remains, changed, unavailable, unknown
	ValidUntil               string              `json:"valid_until,omitempty"`
	Behavior                 string              `json:"behavior,omitempty"`
	Evidence                 string              `json:"evidence,omitempty"`
}

type HTTPExposureRequirement added in v0.4.4

type HTTPExposureRequirement struct {
	Name       string
	Service    string
	Port       int
	Protocol   string
	Visibility string
}

HTTPExposureRequirement is provider-neutral public HTTP exposure intent. Hostname, host port, TLS source paths and reverse-proxy implementation are deployment/provider state and deliberately absent.

type IdentityAuthenticationRequirements added in v0.4.17

type IdentityAuthenticationRequirements struct {
	MFA          string
	Methods      []string
	Passwordless bool
}

type IdentityDiscovery added in v0.4.17

type IdentityDiscovery struct {
	Issuer                string
	AuthorizationEndpoint string
	TokenEndpoint         string
	UserinfoEndpoint      string
	JWKSURI               string
	EndSessionEndpoint    string
}

type IdentityRequirements added in v0.4.17

type IdentityRequirements struct {
	CallbackPaths  []string
	LogoutPaths    []string
	Scopes         []string
	Claims         []string
	Authentication IdentityAuthenticationRequirements
}

type IdentitySnapshot added in v0.4.25

type IdentitySnapshot struct {
	ApplicationIDs       []string
	PreviouslyRegistered bool
}

IdentitySnapshot contains claims from the existing repository/application and deployment owners for this repository. It is a view, never persisted state.

type LogicalProducerReference added in v0.4.21

type LogicalProducerReference struct {
	ApplicationID string `json:"application_id"`
	Component     string `json:"component"`
	Interface     string `json:"interface"`
}

type LogsDeploymentPolicy added in v0.4.9

type LogsDeploymentPolicy struct {
	Enabled bool
	Collect map[LogsSourceClass]bool
}

func LogsPolicy added in v0.4.9

func LogsPolicy(m Manifest) (LogsDeploymentPolicy, error)

type LogsRequirements added in v0.4.11

type LogsRequirements struct {
	Collect []string
}

type LogsSourceClass added in v0.4.9

type LogsSourceClass string
const (
	LogsSourceApplication         LogsSourceClass = "application"
	LogsSourceApplicationProvider LogsSourceClass = "application-provider"
	LogsSourcePlatformProvider    LogsSourceClass = "platform-provider"
)

type ManagedProviderPKIKind added in v0.4.21

type ManagedProviderPKIKind string
const (
	ManagedProviderPKIValkey   ManagedProviderPKIKind = "valkey"
	ManagedProviderPKIRabbitMQ ManagedProviderPKIKind = "rabbitmq"
	ManagedProviderPKIMongoDB  ManagedProviderPKIKind = "mongodb"
)

type ManagedRuntimeProjection added in v0.4.23

type ManagedRuntimeProjection struct {
	Project string
	Compose string
	Env     string
	Files   []RuntimeProjectionFile
}

ManagedRuntimeProjection contains only the Core-generated backend project and its referenced protected files. Source builds, workload repositories and the installation's manager credentials are outside this projection.

func ProjectManagedRuntime added in v0.4.23

func ProjectManagedRuntime(files RuntimeFiles, m Manifest) (ManagedRuntimeProjection, error)

type ManagementAuthenticationClass added in v0.4.21

type ManagementAuthenticationClass string
const (
	ManagementAuthNativeOIDC       ManagementAuthenticationClass = "native-oidc"
	ManagementAuthStandardsAdapter ManagementAuthenticationClass = "standards-auth-adapter"
	ManagementAuthNativeCredential ManagementAuthenticationClass = "native-credential"
	ManagementAuthUnsupported      ManagementAuthenticationClass = "unsupported"
)

type ManagementRole added in v0.4.21

type ManagementRole string
const (
	ManagementRoleAdmin ManagementRole = "admin"
	ManagementRoleEdit  ManagementRole = "edit"
	ManagementRoleView  ManagementRole = "view"
	ManagementRoleAudit ManagementRole = "audit"
)

type ManagementRoleMapping added in v0.4.21

type ManagementRoleMapping struct {
	Role   ManagementRole             `json:"role"`
	Level  ManagementRoleMappingLevel `json:"level"`
	Native string                     `json:"native,omitempty"`
}

func NativeCredentialRoleMappings added in v0.4.21

func NativeCredentialRoleMappings(adminNative, userNative string) []ManagementRoleMapping

func OIDCManagementRoleMappings added in v0.4.21

func OIDCManagementRoleMappings() []ManagementRoleMapping

type ManagementRoleMappingLevel added in v0.4.21

type ManagementRoleMappingLevel string
const (
	ManagementRoleMappingExact       ManagementRoleMappingLevel = "exact"
	ManagementRoleMappingLimited     ManagementRoleMappingLevel = "limited"
	ManagementRoleMappingUnsupported ManagementRoleMappingLevel = "unsupported"
)

type ManagementUICheckResult added in v0.4.17

type ManagementUICheckResult struct {
	Name string
	Err  error
}

func VerifyApplicationManagementUIChecks added in v0.4.17

func VerifyApplicationManagementUIChecks(ctx context.Context, m Manifest, files RuntimeFiles) []ManagementUICheckResult

func VerifySharedManagementUIChecks added in v0.4.17

func VerifySharedManagementUIChecks(ctx context.Context, dataDir, namespace string, m Manifest) []ManagementUICheckResult

type ManagementUISurface added in v0.4.17

type ManagementUISurface struct {
	Service             string                        `json:"service"`
	Purpose             ProviderInterfacePurpose      `json:"purpose"`
	URL                 string                        `json:"url"`
	Authentication      string                        `json:"authentication"`
	AuthenticationClass ManagementAuthenticationClass `json:"authentication_class"`
	RoleMappings        []ManagementRoleMapping       `json:"role_mappings,omitempty"`
}

func ApplicationManagementUISurfaces added in v0.4.17

func ApplicationManagementUISurfaces(m Manifest, files RuntimeFiles) ([]ManagementUISurface, error)

type Manifest

type Manifest struct {
	Version       int
	ApplicationID string
	Name          string
	Environment   string
	Services      Services
	Secrets       SecretRequirements
	Workload      WorkloadConfig
	Exposures     []HTTPExposureRequirement
	Telemetry     TelemetryRequirements
	Metrics       MetricsRequirements
	Logs          LogsRequirements
	Runtime       RuntimeRequirements
	Identity      IdentityRequirements
	HA            bool
	Availability  map[string]availability.Override
	Consumes      []ConsumptionRequirement
	// contains filtered or unexported fields
}

Manifest is the declarative application backend request understood by BaseHarbor.

func LoadManifestFile

func LoadManifestFile(path string) (Manifest, error)

func New

func New(name, environment string, sql, cache, secrets bool) Manifest

func ParseCanonicalYAML added in v0.4.25

func ParseCanonicalYAML(input string) (Manifest, error)

ParseCanonicalYAML reads BaseHarbor-owned records, not developer input. It uses the same grammar and preserves existing internal IDs without allocation.

func ParseYAML

func ParseYAML(input string) (Manifest, error)

ParseYAML parses the intentionally small v1 manifest grammar without adding a runtime dependency.

func ResolveIdentity added in v0.4.25

func ResolveIdentity(m Manifest, snapshot IdentitySnapshot) (Manifest, error)

ResolveIdentity is read-only. An empty result means explicit initialization is required; it never allocates an identity during parse/inspect/plan.

func WithAvailabilityOverride added in v0.4.21

func WithAvailabilityOverride(m Manifest, component string, ha *bool, instances int) Manifest

func WithBackendPlacementProjection added in v0.4.25

func WithBackendPlacementProjection(m Manifest, placements map[capability.ProviderKind]capability.ProviderPlacement) (Manifest, error)

WithBackendPlacementProjection pins a canonical runtime owner's placement while inspecting retained intent. It does not select or persist a provider, and the projection never enters the portable manifest or its JSON encoding.

func WithCacheInstances added in v0.4.15

func WithCacheInstances(m Manifest, names ...string) Manifest

func WithDocumentDatabaseInstances added in v0.4.19

func WithDocumentDatabaseInstances(m Manifest, names ...string) Manifest

func WithGeneratedSecret

func WithGeneratedSecret(m Manifest, name, generationType string, size int) Manifest

func WithHA added in v0.4.21

func WithHA(m Manifest, enabled bool) Manifest

func WithHTTPExposure added in v0.4.4

func WithHTTPExposure(m Manifest, name, service string, port int, protocol string) Manifest

func WithIdentity added in v0.4.17

func WithIdentity(m Manifest) Manifest

func WithIdentityAuthentication added in v0.4.17

func WithIdentityAuthentication(m Manifest, mfa string, methods []string, passwordless bool) Manifest

func WithIdentityCallbackPath added in v0.4.17

func WithIdentityCallbackPath(m Manifest, path string) Manifest

func WithIdentityLogoutPath added in v0.4.17

func WithIdentityLogoutPath(m Manifest, path string) Manifest

func WithKeyValueInstances added in v0.4.19

func WithKeyValueInstances(m Manifest, names ...string) Manifest

func WithLogsCollection added in v0.4.11

func WithLogsCollection(m Manifest, sources ...string) Manifest

func WithMessagingPubSubInstances added in v0.4.19

func WithMessagingPubSubInstances(m Manifest, names ...string) Manifest

func WithMessagingQueueInstances added in v0.4.19

func WithMessagingQueueInstances(m Manifest, names ...string) Manifest

func WithMessagingStreamInstances added in v0.4.19

func WithMessagingStreamInstances(m Manifest, names ...string) Manifest

func WithMetricsSource added in v0.4.8

func WithMetricsSource(m Manifest, name, service string, port int, path string) Manifest

func WithOTLPTelemetry added in v0.4.7

func WithOTLPTelemetry(m Manifest, signals ...string) Manifest

func WithObjectStorageBuckets added in v0.4.6

func WithObjectStorageBuckets(m Manifest, names ...string) Manifest

func WithOptionalGeneratedSecret added in v0.4.15

func WithOptionalGeneratedSecret(m Manifest, name, generationType string, size int) Manifest

func WithOptionalSecrets added in v0.4.15

func WithOptionalSecrets(m Manifest, names ...string) Manifest

func WithRequiredSecrets

func WithRequiredSecrets(m Manifest, names ...string) Manifest

func WithRuntimePermission added in v0.4.8

func WithRuntimePermission(m Manifest, capabilityID string, services []string, operations ...string) Manifest

func WithSQLInstances added in v0.4.15

func WithSQLInstances(m Manifest, names ...string) Manifest

func WithWorkloadComponents added in v0.4.20

func WithWorkloadComponents(m Manifest, components ...string) Manifest

func (Manifest) AuthoredYAML added in v0.4.25

func (m Manifest) AuthoredYAML() string

AuthoredYAML serializes portable developer intent without system-owned identity.

func (Manifest) Validate

func (m Manifest) Validate() error

func (Manifest) ValidateIntent added in v0.4.25

func (m Manifest) ValidateIntent() error

ValidateIntent accepts portable authoring before source/workload resolution. Validate retains the existing executable-manifest prerequisites.

func (Manifest) YAML

func (m Manifest) YAML() string

YAML serializes a canonical BaseHarbor-owned record including internal identity.

type MaterialConsequence added in v0.4.25

type MaterialConsequence struct {
	RemainingValiditySeconds *int64              `json:"remaining_validity_seconds,omitempty"`
	Before                   ProviderMaterial    `json:"before"`
	After                    MaterialDisposition `json:"after"`
	Meaning                  string              `json:"meaning"`
}

type MaterialDisposition added in v0.4.25

type MaterialDisposition struct {
	MaterialID  string            `json:"material_id"`
	Disposition string            `json:"disposition"`
	Destination *ResourceLocation `json:"destination,omitempty"`
	AccessAfter *ProviderAccess   `json:"access_after,omitempty"`
	Supported   bool              `json:"supported"`
	Verified    bool              `json:"verified"`
	Evidence    string            `json:"evidence,omitempty"`
}

Transfers describe an existing supported adapter operation. Supported and verified refer to actual handoff/access checks, never a proposed fallback.

type MaterialOutcome added in v0.4.25

type MaterialOutcome struct {
	MaterialID  string             `json:"material_id"`
	Disposition string             `json:"disposition"`
	Location    *ResourceLocation  `json:"location,omitempty"`
	Recovery    []ResourceLocation `json:"recovery"`
	Access      *ProviderAccess    `json:"access,omitempty"`
	Verified    bool               `json:"verified"`
	Evidence    string             `json:"evidence,omitempty"`
}

type MaterialRetention added in v0.4.25

type MaterialRetention struct {
	SurvivesStop           bool   `json:"survives_stop"`
	SurvivesRuntimeRemoval bool   `json:"survives_runtime_removal"`
	Verified               bool   `json:"verified"`
	Evidence               string `json:"evidence,omitempty"`
}

Durable material and meaningful transient state are different. An observed volume alone does not prove that sessions, queues or in-flight work survive.

type MetricsDeploymentPolicy added in v0.4.8

type MetricsDeploymentPolicy struct {
	Enabled bool
	Collect map[MetricsSourceClass]bool
}

func MetricsPolicy added in v0.4.8

func MetricsPolicy(m Manifest) (MetricsDeploymentPolicy, error)

MetricsPolicy is deployment/operator state, never portable application intent. Defaults keep the user-facing path simple: when metrics collection is enabled, BaseHarbor also observes managed providers that explicitly advertise safe OpenMetrics endpoints. Policy can narrow the collected source classes.

type MetricsRequirements added in v0.4.8

type MetricsRequirements struct {
	Sources []MetricsSourceRequirement
}

type MetricsSourceClass added in v0.4.8

type MetricsSourceClass string
const (
	MetricsSourceApplication         MetricsSourceClass = "application"
	MetricsSourceApplicationProvider MetricsSourceClass = "application-provider"
	MetricsSourcePlatformProvider    MetricsSourceClass = "platform-provider"
)

type MetricsSourceRequirement added in v0.4.8

type MetricsSourceRequirement struct {
	Name    string
	Service string
	Port    int
	Path    string
}

type OTLPRequirement added in v0.4.7

type OTLPRequirement struct {
	Signals []string
}

type ObjectStorageCredentials added in v0.4.6

type ObjectStorageCredentials struct {
	AccessKeyID     string
	SecretAccessKey string
}

func LoadObjectStorageCredentials added in v0.4.6

func LoadObjectStorageCredentials(files RuntimeFiles, bucket string) (ObjectStorageCredentials, error)

type OperationalConsequence added in v0.4.25

type OperationalConsequence struct {
	Aspect   string `json:"aspect"`
	Before   string `json:"before"`
	After    string `json:"after"`
	Evidence string `json:"evidence,omitempty"`
}

type Plan

type Plan struct {
	ContractVersion string   `json:"contract_version"`
	Application     string   `json:"application"`
	Environment     string   `json:"environment"`
	Actions         []Action `json:"actions"`
}

func BuildPlan

func BuildPlan(m Manifest) (Plan, error)

type PortableContract added in v0.4.0

type PortableContract struct {
	Application  string
	Capabilities []CapabilityRequirement
	Secrets      SecretContract
	Exposures    []HTTPExposureRequirement
	Metrics      []MetricsSourceRequirement
	Logs         []string
	Identity     *IdentityRequirements
}

PortableContract is the provider-neutral application requirement view used as the seam between manifest compatibility and runtime/capability providers.

Deployment context such as environment, Compose paths, host ports, TLS source directories and provider object names must not be added here. Those belong to deployment state or provider-specific configuration.

func PortableContractFromManifest added in v0.4.0

func PortableContractFromManifest(m Manifest) (PortableContract, error)

PortableContractFromManifest translates the current manifest v1 compatibility surface into provider-neutral requirements without changing manifest behavior.

type PostgresBackup

type PostgresBackup struct {
	Instance string
	SQL      []byte
}

func DumpPostgresInstances

func DumpPostgresInstances(ctx context.Context, runtime PostgresBackupRuntime, m Manifest, files RuntimeFiles) ([]PostgresBackup, error)

func DumpPostgresInstancesAt added in v0.4.17

func DumpPostgresInstancesAt(ctx context.Context, runtime PostgresBackupRuntime, m Manifest, files RuntimeFiles, dataDir, namespace string) ([]PostgresBackup, error)

type PostgresBackupRuntime

type PostgresBackupRuntime interface {
	ExecProject(ctx context.Context, project, composeFile, envFile, service string, args ...string) (string, error)
	ExecProjectInput(ctx context.Context, project, composeFile, envFile string, input []byte, service string, args ...string) (string, error)
}

type ProjectServiceExecutor added in v0.4.23

type ProjectServiceExecutor interface {
	ExecService(context.Context, string, string, ...string) (string, error)
}

ProjectServiceExecutor resolves and verifies ownership at the selected node. The Core's existing probes keep their TLS verification and credential refs.

type ProviderAccess added in v0.4.25

type ProviderAccess struct {
	Method   string                   `json:"method"`
	Endpoint string                   `json:"endpoint,omitempty"`
	Security capability.SecureBinding `json:"security"`
}

type ProviderChange added in v0.4.25

type ProviderChange struct {
	InstanceID string                       `json:"instance_id"`
	Action     string                       `json:"action"`
	Reason     string                       `json:"reason"`
	Ownership  capability.ProviderOwnership `json:"ownership"`
	Consumers  []string                     `json:"consumers"`
	// Runtime convergence never authorizes persistent-data deletion.
	PreserveData bool `json:"preserve_data"`
}

type ProviderChangeConsent added in v0.4.25

type ProviderChangeConsent struct {
	PlanID     string `json:"plan_id"`
	First      bool   `json:"first"`
	Second     bool   `json:"second"`
	DeleteData bool   `json:"delete_data"`
}

Each stage is an independently explicit acknowledgement of the SAME plan. Existing interfaces collect these; this adds no flags, prompts or state owner.

type ProviderChangeError added in v0.4.25

type ProviderChangeError struct{ Code string }

func (*ProviderChangeError) Error added in v0.4.25

func (e *ProviderChangeError) Error() string

type ProviderChangeRequest added in v0.4.25

type ProviderChangeRequest struct {
	ConsumerActions []string              `json:"consumer_actions,omitempty"`
	InstanceID      string                `json:"instance_id"`
	Operation       string                `json:"operation"`
	ReplacementID   string                `json:"replacement_id,omitempty"`
	Selection       string                `json:"selection,omitempty"` // automatic or explicit
	Consumers       []string              `json:"consumers"`           // empty means all users
	Materials       []MaterialDisposition `json:"materials"`
}

func PendingProviderChanges added in v0.4.25

func PendingProviderChanges(plan ProviderImpactPlan, result ProviderChangeResult) ([]ProviderChangeRequest, error)

PendingProviderChanges returns only unverified/unfinished operations. It does not schedule or mutate; the existing lifecycle replans and obtains fresh consent if the resulting plan changes. Applied outcomes are not replayed.

type ProviderChangeResult added in v0.4.25

type ProviderChangeResult struct {
	Version  string                     `json:"version"`
	PlanID   string                     `json:"plan_id"`
	Status   string                     `json:"status"` // complete, partial, failed
	Outcomes []ProviderExecutionOutcome `json:"outcomes"`
}

func RecordProviderChangeResult added in v0.4.25

func RecordProviderChangeResult(plan ProviderImpactPlan, outcomes []ProviderExecutionOutcome) (ProviderChangeResult, error)

RecordProviderChangeResult projects verified EXECUTION receipts, never the proposed After fields. Missing/failed steps remain individually pending. Actual unexpected dispositions are retained and reported as partial failure.

type ProviderDependencyEvidence added in v0.4.25

type ProviderDependencyEvidence struct {
	Realization  ProviderRealization `json:"realization"`
	Dependencies []string            `json:"dependencies"`
}

ProviderDependencyEvidence is a projection of the existing Target graph. Plans contain the observed prerequisite identities; execution supplies a fresh observation of those same identities and edges. It is not another owner.

func ObserveProviderContinuationDependencies added in v0.4.25

func ObserveProviderContinuationDependencies(impact ProviderImpact, snapshot ResolutionSnapshot, observation ProviderImpactObservation) ([]ProviderDependencyEvidence, error)

ObserveProviderContinuationDependencies collects fresh result evidence from the same authoritative registry/ancillary owners. New edges or changed owners remain visible and cannot match the approved graph without a fresh replan.

type ProviderExecutionOutcome added in v0.4.25

type ProviderExecutionOutcome struct {
	ContinuationDependencies []ProviderDependencyEvidence `json:"continuation_dependencies,omitempty"`
	Effects                  []OperationalConsequence     `json:"effects,omitempty"`
	Functions                []ProviderFunctionOutcome    `json:"functions,omitempty"`
	Verified                 bool                         `json:"verified"`
	Evidence                 string                       `json:"evidence,omitempty"`
	InstanceID               string                       `json:"instance_id"`
	Operation                string                       `json:"operation"`
	Status                   string                       `json:"status"` // applied, failed, pending
	After                    *ProviderRealization         `json:"after,omitempty"`
	Materials                []MaterialOutcome            `json:"materials"`
	ErrorCode                string                       `json:"error_code,omitempty"`
}

type ProviderFact added in v0.4.25

type ProviderFact struct {
	Ancillary      bool   `json:"ancillary,omitempty"`
	OwnerReference string `json:"owner_reference,omitempty"`
	// Target must match the selected snapshot, including dependencies.
	Target string        `json:"target"`
	State  ProviderState `json:"state"`
	// Core comes from the existing provider/placement declaration.
	Core CoreRequirement `json:"core"`
	// Dependencies are actual selected realization IDs from existing plans.
	// Nil is an unknown dependency inventory; [] means verified no dependencies.
	Dependencies []string `json:"dependencies"`
	MemoryBytes  Quantity `json:"memory_bytes"`
	Containers   Quantity `json:"containers"`
}

type ProviderFootprint added in v0.4.25

type ProviderFootprint struct {
	Ancillary    bool                         `json:"ancillary,omitempty"`
	Dependencies []string                     `json:"dependencies"`
	InstanceID   string                       `json:"instance_id"`
	Scope        capability.ProviderScope     `json:"scope"`
	Ownership    capability.ProviderOwnership `json:"ownership"`
	Shared       bool                         `json:"shared"`
	Consumers    int                          `json:"consumers"`
	State        ProviderState                `json:"state"`
	Core         CoreRequirement              `json:"core"`
	MemoryBytes  Quantity                     `json:"memory_bytes"`
	Containers   Quantity                     `json:"containers"`
}

type ProviderFunctionContinuation added in v0.4.25

type ProviderFunctionContinuation struct {
	Consumer  string `json:"consumer"`
	Function  string `json:"function"`
	From      string `json:"from"`
	To        string `json:"to"`
	Supported bool   `json:"supported"`
	Verified  bool   `json:"verified"`
	Evidence  string `json:"evidence,omitempty"`
}

type ProviderFunctionOutcome added in v0.4.25

type ProviderFunctionOutcome struct {
	Transition *ConsumerTransition `json:"transition,omitempty"`
	Consumer   string              `json:"consumer"`
	InstanceID string              `json:"instance_id"`
	Function   string              `json:"function"`
	Outcome    string              `json:"outcome"`
	ValidUntil string              `json:"valid_until,omitempty"`
	Behavior   string              `json:"behavior,omitempty"`
	Verified   bool                `json:"verified"`
	Evidence   string              `json:"evidence,omitempty"`
}

type ProviderFunctionUse added in v0.4.25

type ProviderFunctionUse struct {
	Consumer   string `json:"consumer"`
	InstanceID string `json:"instance_id"`
	Function   string `json:"function"`
	Required   bool   `json:"required"`
	ValidUntil string `json:"valid_until,omitempty"`
	Behavior   string `json:"behavior,omitempty"`
	Evidence   string `json:"evidence,omitempty"`
}

Function use is actual observed usage. PKI, dynamic leases, cached token validation and sessions are never inferred merely from a provider product.

type ProviderImpact added in v0.4.25

type ProviderImpact struct {
	ContinuationDependencies []ProviderDependencyEvidence `json:"continuation_dependencies,omitempty"`
	Prerequisites            []ProviderPrerequisite       `json:"prerequisites"`
	RequestedConsumers       []string                     `json:"requested_consumers"`
	InstanceID               string                       `json:"instance_id"`
	Operation                string                       `json:"operation"`
	Scenario                 string                       `json:"scenario"`
	Selection                string                       `json:"selection"`
	Before                   ProviderRealization          `json:"before"`
	After                    *ProviderRealization         `json:"after,omitempty"`
	Dependencies             []string                     `json:"dependencies"`
	Dependents               []string                     `json:"dependents"`
	Functions                []FunctionConsequence        `json:"functions"`
	Materials                []MaterialConsequence        `json:"materials"`
	Effects                  []OperationalConsequence     `json:"effects"`
	Notices                  []string                     `json:"notices"`
}

type ProviderImpactFact added in v0.4.25

type ProviderImpactFact struct {
	Prerequisites     []ProviderPrerequisite   `json:"prerequisites"`
	Realization       ProviderRealization      `json:"realization"`
	Materials         []ProviderMaterial       `json:"materials"`
	InventoryComplete bool                     `json:"inventory_complete"`
	Effects           []OperationalConsequence `json:"effects"`
}

type ProviderImpactObservation added in v0.4.25

type ProviderImpactObservation struct {
	ObservedAt        string                         `json:"observed_at,omitempty"`
	ConsumerActions   []ConsumerTransition           `json:"consumer_actions,omitempty"`
	Continuations     []ProviderFunctionContinuation `json:"continuations"`
	Revision          string                         `json:"revision"`
	InventoryComplete bool                           `json:"inventory_complete"`
	Providers         map[string]ProviderImpactFact  `json:"providers"`
	Functions         []ProviderFunctionUse          `json:"functions"`
}

type ProviderImpactPlan added in v0.4.25

type ProviderImpactPlan struct {
	Version               string           `json:"version"`
	Target                string           `json:"target"`
	Revision              string           `json:"revision"`
	PlanID                string           `json:"plan_id"`
	Complete              bool             `json:"complete"` // knowledge completeness, NOT a policy veto
	Attention             string           `json:"attention,omitempty"`
	ConfirmationsRequired int              `json:"confirmations_required"`
	Destructive           bool             `json:"destructive"`
	Impacts               []ProviderImpact `json:"impacts"`
}

func DescribeProviderChanges added in v0.4.25

func DescribeProviderChanges(snapshot ResolutionSnapshot, union ProviderPlan, requests []ProviderChangeRequest, observation ProviderImpactObservation) (ProviderImpactPlan, error)

DescribeProviderChanges enriches the EXISTING resolved union. It does not select providers, persist observations or schedule changes. Explicit requests can intentionally stop needed functionality; consequences require consent, not an automatic continuation-policy veto.

type ProviderImpactScope added in v0.4.25

type ProviderImpactScope struct {
	Version               string               `json:"version"`
	Owner                 ProviderScopeOwner   `json:"owner"`
	PlanID                string               `json:"plan_id"`
	Complete              bool                 `json:"complete"`
	Attention             string               `json:"attention,omitempty"`
	ConfirmationsRequired int                  `json:"confirmations_required"`
	Destructive           bool                 `json:"destructive"`
	Targets               []ProviderImpactPlan `json:"targets"`
}

ProviderImpactScope composes the SAME per-Target impact plans. It performs no resolution, discovery, persistence or execution. InventoryComplete requires the adapter to account for all authoritative target/deployment/management owners, including those absent from current user configuration.

func ComposeProviderImpactScope added in v0.4.25

func ComposeProviderImpactScope(owner ProviderScopeOwner, plans []ProviderImpactPlan, inventoryComplete bool) (ProviderImpactScope, error)

type ProviderImpactScopeResult added in v0.4.25

type ProviderImpactScopeResult struct {
	Version string                       `json:"version"`
	PlanID  string                       `json:"plan_id"`
	Status  string                       `json:"status"`
	Owner   ProviderScopeOwnerOutcome    `json:"owner"`
	Targets []ProviderTargetChangeResult `json:"targets"`
}

func RecordProviderImpactScopeResult added in v0.4.25

func RecordProviderImpactScopeResult(scope ProviderImpactScope, owner ProviderScopeOwnerOutcome, actual []ProviderTargetChangeResult) (ProviderImpactScopeResult, error)

RecordProviderImpactScopeResult verifies each target through the existing receipt authority. Removing the global entry alone cannot become success for all consumers; missing/unknown target or owner evidence remains partial.

type ProviderInterfacePurpose added in v0.4.17

type ProviderInterfacePurpose string
const (
	ProviderInterfaceApplication    ProviderInterfacePurpose = "application"
	ProviderInterfaceUserFacing     ProviderInterfacePurpose = "user-facing"
	ProviderInterfaceAdministration ProviderInterfacePurpose = "administration"
	ProviderInterfaceManagement     ProviderInterfacePurpose = "management"
	ProviderInterfaceObservability  ProviderInterfacePurpose = "observability"
)

type ProviderMaterial added in v0.4.25

type ProviderMaterial struct {
	Retention *MaterialRetention           `json:"retention,omitempty"`
	Ownership capability.ProviderOwnership `json:"ownership"`
	ID        string                       `json:"id"`
	Kind      string                       `json:"kind"`
	Location  *ResourceLocation            `json:"location,omitempty"`
	Recovery  []ResourceLocation           `json:"recovery"`
	Access    *ProviderAccess              `json:"access,omitempty"`
	ValidFrom string                       `json:"valid_from,omitempty"`
	ExpiresAt string                       `json:"expires_at,omitempty"`
	Verified  bool                         `json:"verified"`
	Evidence  string                       `json:"evidence,omitempty"`
}

type ProviderPlan added in v0.4.25

type ProviderPlan struct {
	ConsumerActivity map[string]bool              `json:"consumer_activity,omitempty"`
	Impact           *ProviderImpactPlan          `json:"impact,omitempty"`
	Version          string                       `json:"version"`
	Target           string                       `json:"target"`
	Complete         bool                         `json:"complete"`
	Consumers        map[string]Footprint         `json:"consumers"`
	Required         []string                     `json:"required"`
	Changes          []ProviderChange             `json:"changes"`
	ReleasedBindings []capability.ProviderBinding `json:"released_bindings"`
}

func ResolveProviderPlan added in v0.4.25

func ResolveProviderPlan(snapshot ResolutionSnapshot, consumers []ConsumerIntent, inventoryComplete bool) (ProviderPlan, error)

ResolveProviderPlan unions ResolveFootprint results from ALL authoritative consumers on one Target. inventoryComplete must be proven by the existing state owner. This is read-only, not a second resolver or persistence registry. Unknown/partial inventory never authorizes stop/remove. Session 2 applies changes only through existing plan/preflight/confirm/apply/verify authority.

type ProviderPreference added in v0.4.25

type ProviderPreference struct {
	Requirement capability.Requirement `json:"requirement"`
	// Empty means automatic. Preference is deployment intent, never manifest.
	InstanceID   string                  `json:"instance_id,omitempty"`
	ProviderKind capability.ProviderKind `json:"provider_kind,omitempty"`
}

type ProviderPrerequisite added in v0.4.25

type ProviderPrerequisite struct {
	Kind        string `json:"kind"`
	Subject     string `json:"subject"`
	Supported   bool   `json:"supported"`
	Verified    bool   `json:"verified"`
	Evidence    string `json:"evidence,omitempty"`
	Consequence string `json:"consequence"`
}

type ProviderRealization added in v0.4.25

type ProviderRealization struct {
	Ancillary  bool                         `json:"ancillary,omitempty"`
	InstanceID string                       `json:"instance_id"`
	Kind       capability.ProviderKind      `json:"kind"`
	Target     string                       `json:"target"`
	Scope      capability.ProviderScope     `json:"scope"`
	Ownership  capability.ProviderOwnership `json:"ownership"`
	Owner      string                       `json:"owner"`
	State      ProviderState                `json:"state"`
	Locations  []ResourceLocation           `json:"locations"`
	Access     *ProviderAccess              `json:"access,omitempty"`
	Supported  bool                         `json:"supported"`
	Verified   bool                         `json:"verified"`
	Evidence   string                       `json:"evidence,omitempty"`
}

type ProviderScopeOwner added in v0.4.25

type ProviderScopeOwner struct {
	Owner     string `json:"owner"`
	Reference string `json:"reference"`
	Subject   string `json:"subject"`
	Revision  string `json:"revision"`
	// Destruction of the scope owner itself (for example installation state)
	// needs separate data consent even when no provider leaf exists.
	Destructive bool `json:"destructive,omitempty"`
}

ProviderScopeOwner is an observed existing registration owner. It deliberately has no Target: a global registration is not a fictitious runtime deployment. Revision binds the actual owner content; references contain no secret values.

type ProviderScopeOwnerOutcome added in v0.4.25

type ProviderScopeOwnerOutcome struct {
	Owner       ProviderScopeOwner `json:"owner"`
	Disposition string             `json:"disposition"`
	Verified    bool               `json:"verified"`
	Evidence    string             `json:"evidence,omitempty"`
}

ProviderScopeOwnerOutcome concerns only the observed local registration entry. It never grants authority over the external provider or its material.

type ProviderState added in v0.4.25

type ProviderState string
const (
	ProviderRunning      ProviderState = "running"
	ProviderStoppedOwned ProviderState = "stopped-but-owned"
	ProviderNewRequired  ProviderState = "newly-required"
	ProviderUnverifiable ProviderState = "unverifiable"
	ProviderForeign      ProviderState = "foreign"
)

type ProviderTargetChangeResult added in v0.4.25

type ProviderTargetChangeResult struct {
	Target string               `json:"target"`
	Result ProviderChangeResult `json:"result"`
}

type Quantity added in v0.4.25

type Quantity struct {
	Value          *int64 `json:"value,omitempty"`
	Classification string `json:"classification"`
	Source         string `json:"source,omitempty"`
}

Quantity is evidence for a single provider realization. Unknown has no value; measured/estimated require a source, and estimates are supplied by adapters.

func (Quantity) Validate added in v0.4.25

func (q Quantity) Validate() error

type RecoveryContributorMetadata added in v0.4.16

type RecoveryContributorMetadata struct {
	StateClass         string `json:"state_class"`
	LogicalResource    string `json:"logical_resource,omitempty"`
	Ownership          string `json:"ownership"`
	Support            string `json:"support"`
	Selected           bool   `json:"selected"`
	Durable            bool   `json:"durable,omitempty"`
	ExplicitlyExcluded bool   `json:"explicitly_excluded,omitempty"`
	Verified           bool   `json:"verified,omitempty"`
	Reason             string `json:"reason,omitempty"`
}

type RecoveryMetadata added in v0.3.0

type RecoveryMetadata struct {
	Version         int                           `json:"version"`
	ApplicationID   string                        `json:"application_id"`
	DeploymentID    string                        `json:"deployment_id"`
	Application     string                        `json:"application"`
	Environment     string                        `json:"environment"`
	RestoredAt      time.Time                     `json:"restored_at"`
	BackupCreatedAt time.Time                     `json:"backup_created_at"`
	ArchivePath     string                        `json:"archive_path"`
	Recovery        []RecoveryContributorMetadata `json:"recovery,omitempty"`
}

func (RecoveryMetadata) Validate added in v0.3.0

func (m RecoveryMetadata) Validate() error

type RemoteManagedRuntime added in v0.4.23

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

RemoteManagedRuntime binds Core-generated provider material to one live node. Core authorization and provider placement precede this internal boundary. Source builds and installation credentials never enter its published bundle.

func NewRemoteApplicationRuntime added in v0.4.23

func NewRemoteApplicationRuntime(transport targetsession.ProjectTransport, scope targetenrollment.Scope, files RuntimeFiles, manifest Manifest, workload *WorkloadFiles, environment map[string]string) (*RemoteManagedRuntime, error)

NewRemoteApplicationRuntime binds providers and prebuilt repository workloads into one immutable publication. No source build can run on a selected node.

func NewRemoteManagedRuntime added in v0.4.23

func NewRemoteManagedRuntime(transport targetsession.ProjectTransport, scope targetenrollment.Scope, files RuntimeFiles, manifest Manifest) (*RemoteManagedRuntime, error)

func RestoreRemoteManagedSnapshot added in v0.4.23

func RestoreRemoteManagedSnapshot(transport targetsession.ProjectTransport, scope targetenrollment.Scope, stateDir string, record targetsession.ProjectRecord) (*RemoteManagedRuntime, error)

RestoreRemoteManagedSnapshot does not regenerate material, build sources or stage another bundle. The caller supplies the protected registry receipt and the current authorized Node scope; the snapshot supplies only original bytes.

func (*RemoteManagedRuntime) ApplicationPhases added in v0.4.23

func (r *RemoteManagedRuntime) ApplicationPhases(manifest Manifest) ([]string, []string, error)

ApplicationPhases is validated against the retained publication and intent. Neither current inventory nor a modified checkout can add an executable phase.

func (*RemoteManagedRuntime) Apply added in v0.4.23

func (r *RemoteManagedRuntime) Apply(ctx context.Context, repair bool) error

func (*RemoteManagedRuntime) ApplyApplication added in v0.4.23

func (r *RemoteManagedRuntime) ApplyApplication(ctx context.Context, manifest Manifest, repair bool) error

ApplyApplication verifies provider readiness before starting repository code. A repair of a stopped workload leaves healthy provider containers untouched.

func (*RemoteManagedRuntime) ApplyServices added in v0.4.23

func (r *RemoteManagedRuntime) ApplyServices(ctx context.Context, services []string, repair bool) error

ApplyServices converges an explicit phase of the same protected publication. Provider and workload phases therefore cannot accidentally start each other.

func (*RemoteManagedRuntime) Destroy added in v0.4.23

func (r *RemoteManagedRuntime) Destroy(ctx context.Context) error

Ordinary destroy retains provider data. Explicit reset is a separate Core decision, not an implicit side effect of this lifecycle operation.

func (*RemoteManagedRuntime) DestroyApplication added in v0.4.23

func (r *RemoteManagedRuntime) DestroyApplication(ctx context.Context, manifest Manifest, reset bool) error

func (*RemoteManagedRuntime) DestroyOwned added in v0.4.23

func (r *RemoteManagedRuntime) DestroyOwned(ctx context.Context, reset bool) error

Explicit persistent data reset carries the same immutable source and exact node binding. Ordinary teardown never calls this reset path.

func (*RemoteManagedRuntime) ExecService added in v0.4.23

func (r *RemoteManagedRuntime) ExecService(ctx context.Context, project, service string, argv ...string) (string, error)

func (*RemoteManagedRuntime) Observe added in v0.4.23

func (*RemoteManagedRuntime) Publish added in v0.4.23

Publish happens once on explicit Core request. The Core must durably commit the exact receipt before this handle permits activation. An interrupted or failed commit cannot trigger automatic publication replay.

func (*RemoteManagedRuntime) Record added in v0.4.23

func (*RemoteManagedRuntime) RemoveSnapshot added in v0.4.23

func (r *RemoteManagedRuntime) RemoveSnapshot(stateDir string) error

RemoveSnapshot is only called after authenticated owned teardown. The exact publication must match the retained deployment before removal.

func (*RemoteManagedRuntime) Restore added in v0.4.23

Restore reuses the exact immutable publication without staging new material.

func (*RemoteManagedRuntime) SaveSnapshot added in v0.4.23

func (r *RemoteManagedRuntime) SaveSnapshot(stateDir string, record targetsession.ProjectRecord) error

SaveSnapshot is called by the protected deployment commit callback before activation. A changed original checkout or provider credential file cannot then prevent owned repair/teardown of the previously published project. An existing different publication is never silently replaced.

func (*RemoteManagedRuntime) ServiceNames added in v0.4.23

func (r *RemoteManagedRuntime) ServiceNames() ([]string, error)

ServiceNames reads the retained source, never today's checkout or inventory.

func (*RemoteManagedRuntime) VerifyApplication added in v0.4.23

func (r *RemoteManagedRuntime) VerifyApplication(ctx context.Context, manifest Manifest) error

type RepositoryEnvironmentSelection added in v0.4.13

type RepositoryEnvironmentSelection struct {
	RepositoryRoot      string
	ManifestPath        string
	Manifest            Manifest
	Environment         string
	EnvironmentSpecific bool
	LegacyState         bool
}

RepositoryEnvironmentSelection is the deterministic repository/application source selected for one deployment environment. Environment-specific manifests are complete application contracts; they are never overlays.

func ResolveRepositoryEnvironment added in v0.4.13

func ResolveRepositoryEnvironment(start, requested string) (RepositoryEnvironmentSelection, error)

ResolveRepositoryEnvironment resolves the repository root, complete manifest and deployment environment as one operation.

A root baseharbor.yaml remains the compatibility path for simple repositories. An explicit environment first prefers envs/<environment>/baseharbor.yaml. If that file does not exist, the root manifest is reused as complete intent and only its deployment context is overridden. This preserves the established -e/--environment behavior without mutating the repository contract.

type RequirementResolution added in v0.4.25

type RequirementResolution struct {
	Requirement capability.Requirement `json:"requirement"`
	Binding     string                 `json:"binding"`
	InstanceID  string                 `json:"instance_id,omitempty"`
	State       ProviderState          `json:"state,omitempty"`
}

type ResolutionError added in v0.4.25

type ResolutionError struct {
	Code        string
	InstanceID  string
	Requirement capability.Requirement
}

func (*ResolutionError) Error added in v0.4.25

func (e *ResolutionError) Error() string

type ResolutionSnapshot added in v0.4.25

type ResolutionSnapshot struct {
	Ancillary []capability.ProviderInstance `json:"ancillary,omitempty"`
	// DependencyRoots are verified broker/consumption dependencies from existing
	// plans for this consumer. Nil is unknown; [] verifies no extra resources.
	DependencyRoots []string                `json:"dependency_roots"`
	Target          string                  `json:"target"`
	Registry        capability.Registry     `json:"registry"`
	Facts           map[string]ProviderFact `json:"facts"`
}

ResolutionSnapshot is an ephemeral view of authoritative Target state. Registry is the existing capability.Registry; Facts are observer/plan input.

type ResolvedConsumption added in v0.4.21

type ResolvedConsumption struct {
	Name       string                   `json:"name"`
	Producer   LogicalProducerReference `json:"producer"`
	BindingID  string                   `json:"binding_id"`
	Protocol   string                   `json:"protocol,omitempty"`
	Endpoint   string                   `json:"endpoint,omitempty"`
	Resolved   bool                     `json:"resolved"`
	Diagnostic string                   `json:"diagnostic,omitempty"`
}

func ResolveConsumption added in v0.4.21

func ResolveConsumption(currentApplicationID string, requirement ConsumptionRequirement, endpoint string) (ResolvedConsumption, error)

ResolveConsumption applies runtime/provider realization without changing the logical producer reference. Endpoint is realization state, never portable application intent.

type ResourceLocation added in v0.4.25

type ResourceLocation struct {
	Owner     string `json:"owner"`
	Target    string `json:"target"`
	Kind      string `json:"kind"` // volume, path, external-store, backup, recovery
	Reference string `json:"reference"`
}

These are read-only projections of existing owners, not a new state store. Only authorized references cross this boundary. Never supply secret contents.

type RuntimeBackendProbeExecutor added in v0.4.19

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

func NewRemoteBackendProbeExecutor added in v0.4.23

func NewRemoteBackendProbeExecutor(remote ProjectServiceExecutor, project string) RuntimeBackendProbeExecutor

func NewRuntimeBackendProbeExecutor added in v0.4.19

func NewRuntimeBackendProbeExecutor(runtime RuntimeProjectExecutor, files RuntimeFiles) RuntimeBackendProbeExecutor

The native file/project mechanics remain in the existing local realization adapter; semantic probes also accept independently owned remote services.

func (RuntimeBackendProbeExecutor) ProbeBackend added in v0.4.19

func (e RuntimeBackendProbeExecutor) ProbeBackend(ctx context.Context, probe BackendProbe) (string, error)

type RuntimeComponentObservability added in v0.4.15

type RuntimeComponentObservability struct {
	ID               string
	Provider         capability.ProviderKind
	Class            observability.SourceClass
	Scope            capability.ProviderScope
	OwnerApplication string

	MetricsNetwork  string
	MetricsTarget   string
	MetricsPath     string
	MetricsSecurity observability.Security

	LogsTarget string

	TracesTarget   string
	TracesSecurity observability.Security
}

type RuntimeContract

type RuntimeContract struct {
	Env                 string
	BindingsDir         string
	WorkloadBindingsDir string
	Metadata            string
}

func EnsureRuntimeContract

func EnsureRuntimeContract(m Manifest, files RuntimeFiles) (RuntimeContract, error)

type RuntimeFiles

type RuntimeFiles struct {
	Dir             string
	Compose         string
	Env             string
	ApplicationEnv  string
	Bindings        string
	Project         string
	ResourceProject string
	Namespace       string
}

func EnsurePostgresRuntime

func EnsurePostgresRuntime(ctx context.Context, issuer serviceaccess.Issuer, store Store, m Manifest) (RuntimeFiles, error)

EnsurePostgresRuntime is kept for callers from the first runtime milestone.

func EnsureRuntime

func EnsureRuntime(ctx context.Context, issuer serviceaccess.Issuer, store Store, m Manifest) (RuntimeFiles, error)

func ExistingRuntimeFiles

func ExistingRuntimeFiles(store Store, m Manifest) (RuntimeFiles, error)

func RuntimeFilesFor added in v0.4.4

func RuntimeFilesFor(store Store, m Manifest) RuntimeFiles

type RuntimeOTLPBinding added in v0.4.15

type RuntimeOTLPBinding struct {
	Provider          capability.ProviderKind
	ContainerEndpoint string
	CAFile            string
	ClientCertFile    string
	ClientKeyFile     string
	Headers           string
}

func ExistingRuntimeOTLPBinding added in v0.4.15

func ExistingRuntimeOTLPBinding(m Manifest, files RuntimeFiles) (RuntimeOTLPBinding, bool, error)

type RuntimePermission added in v0.4.8

type RuntimePermission struct {
	Capability string
	Services   []string
	Operations []string
}

type RuntimeProjectExecutor added in v0.4.23

type RuntimeProjectExecutor interface {
	ExecProject(context.Context, string, string, string, string, ...string) (string, error)
}

RuntimeProjectExecutor keeps the local probe adapter independent of the complete runtime provider interface.

type RuntimeProjectionFile added in v0.4.23

type RuntimeProjectionFile struct {
	Path string
	Data []byte
	Mode uint32
}

type RuntimeRequirements added in v0.4.8

type RuntimeRequirements struct {
	Permissions []RuntimePermission
}

type SecretContract added in v0.4.0

type SecretContract struct {
	Managed  bool
	Required []SecretRequirement
}

SecretContract describes secret intent without selecting a concrete secret backend or delivery mechanism. Required values remain names/generation intent only; provider credentials and provider object identifiers never belong here.

type SecretGeneration

type SecretGeneration struct {
	Type   string
	Length int
	Bytes  int
}

type SecretRequirement

type SecretRequirement struct {
	Name     string
	Generate *SecretGeneration
}

func GeneratedSecretRequirements

func GeneratedSecretRequirements(m Manifest) []SecretRequirement

func SecretRequirementByName

func SecretRequirementByName(m Manifest, name string) (SecretRequirement, bool)

type SecretRequirements

type SecretRequirements struct {
	Required []SecretRequirement
	Optional []SecretRequirement
}

SecretRequirements declares application-owned secret requirements. Values never belong in the manifest. Generate only expresses explicit intent for BaseHarbor to create a missing value directly in the managed secret backend.

type ServiceBinding added in v0.3.0

type ServiceBinding struct {
	Kind             string
	Instance         string
	Host             string
	Port             string
	Database         string
	Username         string
	Password         string
	URI              string
	CertificatesPath string
}

ServiceBinding is the provider-neutral information needed by developer access actions. Callers should prefer these fields over runtime/container names so a later provider can satisfy the same action model.

func ResolveServiceBinding added in v0.3.0

func ResolveServiceBinding(files RuntimeFiles, kind, instance string) (ServiceBinding, error)

ResolveServiceBinding loads an already-materialized owner-only service binding. It never creates or rotates credentials.

type ServiceInstance

type ServiceInstance struct{}

ServiceInstance is the stable logical identity of one requested backend service. The empty v1 shape is intentional: topology remains a BaseHarbor implementation detail and future intent such as availability can evolve here.

type Services

type Services struct {
	SQL                          bool
	Cache                        bool
	KeyValue                     bool
	DocumentDatabase             bool
	MessagingQueue               bool
	MessagingPubSub              bool
	MessagingStream              bool
	Secrets                      bool
	ObjectStorage                bool
	Identity                     bool
	SQLManagementUI              bool
	CacheManagementUI            bool
	KeyValueManagementUI         bool
	DocumentDatabaseManagementUI bool
	MessagingManagementUI        bool
	SecretsManagementUI          bool
	ObjectStorageManagementUI    bool
	IdentityManagementUI         bool
	ObservabilityManagementUI    bool
	SQLInstances                 map[string]ServiceInstance
	CacheInstances               map[string]ServiceInstance
	KeyValueInstances            map[string]ServiceInstance
	DocumentDatabaseInstances    map[string]ServiceInstance
	MessagingQueueInstances      map[string]ServiceInstance
	MessagingPubSubInstances     map[string]ServiceInstance
	MessagingStreamInstances     map[string]ServiceInstance
	ObjectStorageBuckets         map[string]ServiceInstance
}

type SharedBackendFiles added in v0.4.17

type SharedBackendFiles struct {
	Dir             string
	Compose         string
	Env             string
	State           string
	Project         string
	ResourceProject string
	Network         string
}

func SharedBackendDestroyPlan added in v0.4.22

func SharedBackendDestroyPlan(dataDir, namespace string) ([]SharedBackendFiles, error)

SharedBackendDestroyPlan validates retained canonical state before selected- target destruction. Missing ownership state is not proof that consumers left.

func SharedBackendFilesAt added in v0.4.17

func SharedBackendFilesAt(dataDir, namespace, environment string) SharedBackendFiles

type SharedBackendInventory added in v0.4.25

type SharedBackendInventory struct {
	Files           SharedBackendFiles
	Services        map[capability.ProviderKind][]string
	Resources       []bhruntime.ProjectResource
	CoreSQL         *bhruntime.Files
	NetworkExternal bool
}

SharedBackendInventory is an ephemeral projection of the existing owner. Retained databases/credentials do not prove an active consumer.

func ExistingSharedBackendInventoryAt added in v0.4.25

func ExistingSharedBackendInventoryAt(dataDir, namespace, environment string) (SharedBackendInventory, error)

type SharedPostgresResourceObservation added in v0.4.17

type SharedPostgresResourceObservation struct {
	Instance        string `json:"instance"`
	Database        string `json:"database"`
	Role            string `json:"role"`
	Owner           string `json:"owner"`
	ProviderScope   string `json:"provider_scope"`
	CredentialScope string `json:"credential_scope"`
	Members         int    `json:"members"`
	HA              bool   `json:"ha"`
}

func SharedPostgresResourcesAt added in v0.4.17

func SharedPostgresResourcesAt(dataDir, namespace string, m Manifest) ([]SharedPostgresResourceObservation, error)

type StatusCheck added in v0.4.11

type StatusCheck struct {
	Name   string `json:"name"`
	OK     bool   `json:"ok"`
	State  string `json:"state,omitempty"`
	Detail string `json:"detail,omitempty"`
}

StatusCheck is a secret-safe readiness observation shared by CLI and future machine-oriented control surfaces.

type StatusResult added in v0.4.11

type StatusResult struct {
	DockerEngine    *bhruntime.DockerEngineObservation `json:"docker_engine,omitempty"`
	ContractVersion string                             `json:"contract_version"`
	Target          string                             `json:"target"`
	Application     string                             `json:"application"`
	Environment     string                             `json:"environment"`
	Manifest        string                             `json:"manifest,omitempty"`
	Project         string                             `json:"project"`
	State           string                             `json:"state"`
	Ready           bool                               `json:"ready"`
	Checks          []StatusCheck                      `json:"checks"`
}

StatusResult is the shared application readiness model. It intentionally contains operational state only and never credential or secret values.

func (*StatusResult) AddCheck added in v0.4.11

func (r *StatusResult) AddCheck(name string, ok bool, detail string)

AddCheck appends one readiness observation and folds failures into Ready.

func (*StatusResult) AddObservation added in v0.4.17

func (r *StatusResult) AddObservation(name, state, detail string)

func (StatusResult) HasFailures added in v0.4.17

func (r StatusResult) HasFailures() bool

func (StatusResult) HasUnverified added in v0.4.17

func (r StatusResult) HasUnverified() bool

type Store

type Store struct {
	Root      string
	Namespace string
}

func DefaultStore

func DefaultStore() Store

func (Store) Create

func (s Store) Create(m Manifest) (string, error)

func (Store) Delete

func (s Store) Delete(name string) error

func (Store) InitializeIdentity added in v0.4.25

func (s Store) InitializeIdentity(m Manifest, snapshot IdentitySnapshot) (Manifest, error)

InitializeIdentity uses the existing canonical application Store as owner for an authored manifest without an ID. Call only from authorized initialization, after resolving real workload/source and reconciling deployment claims. Repository YAML is never written. Concurrent initializers converge on the existing Store.Create winner rather than replacing its identity.

func (Store) LastBackup added in v0.3.0

func (s Store) LastBackup(applicationName string) (BackupMetadata, error)

func (Store) LastRecovery added in v0.3.0

func (s Store) LastRecovery(applicationName string) (RecoveryMetadata, error)

func (Store) LastUpdate added in v0.3.0

func (s Store) LastUpdate(applicationName string) (UpdateMetadata, error)

func (Store) List

func (s Store) List() ([]Manifest, error)

func (Store) Load

func (s Store) Load(name string) (Manifest, string, error)

func (Store) RecordLastBackup added in v0.3.0

func (s Store) RecordLastBackup(metadata BackupMetadata) error

func (Store) RecordLastRecovery added in v0.3.0

func (s Store) RecordLastRecovery(metadata RecoveryMetadata) error

func (Store) RecordLastUpdate added in v0.3.0

func (s Store) RecordLastUpdate(metadata UpdateMetadata) error

func (Store) Sync

func (s Store) Sync(m Manifest) (string, error)

Sync stores a canonical internal copy of a repository manifest while preserving already materialized runtime state. The repository file remains authoritative.

type TelemetryRequirements added in v0.4.7

type TelemetryRequirements struct {
	OTLP *OTLPRequirement
}

type TracesDeploymentPolicy added in v0.4.15

type TracesDeploymentPolicy struct {
	Enabled bool
	Collect map[TracesSourceClass]bool
}

func TracesPolicy added in v0.4.15

func TracesPolicy(m Manifest) (TracesDeploymentPolicy, error)

type TracesSourceClass added in v0.4.15

type TracesSourceClass string
const (
	TracesSourceApplication         TracesSourceClass = "application"
	TracesSourceApplicationProvider TracesSourceClass = "application-provider"
	TracesSourcePlatformProvider    TracesSourceClass = "platform-provider"
)

type UpdateMetadata added in v0.3.0

type UpdateMetadata struct {
	Version         int       `json:"version"`
	Application     string    `json:"application"`
	Environment     string    `json:"environment"`
	UpdatedAt       time.Time `json:"updated_at"`
	Branch          string    `json:"branch"`
	Upstream        string    `json:"upstream"`
	FromRevision    string    `json:"from_revision"`
	ToRevision      string    `json:"to_revision"`
	Result          string    `json:"result"`
	BackupPath      string    `json:"backup_path,omitempty"`
	BackupCreatedAt time.Time `json:"backup_created_at,omitempty"`
}

func (UpdateMetadata) Validate added in v0.3.0

func (m UpdateMetadata) Validate() error

type WorkloadBindingPlan

type WorkloadBindingPlan struct {
	RuntimeIdentityServices []string
	FileSecretsByService    map[string][]string
}

func (WorkloadBindingPlan) Empty

func (p WorkloadBindingPlan) Empty() bool

type WorkloadConfig

type WorkloadConfig struct {
	Components []string
}

WorkloadConfig carries only portable logical workload-component identity. Source-format metadata such as Compose/Kubernetes/Quadlet paths belongs to repository authoring metadata and never to portable application intent.

type WorkloadFiles

type WorkloadFiles struct {
	RepositoryRoot string
	Compose        string
	Override       string
	Services       []string
	Project        string
	Partial        bool
}

func MaterializeWorkload

func MaterializeWorkload(repositoryRoot string, m Manifest, runtime RuntimeFiles) (WorkloadFiles, bool, error)

func MaterializeWorkloadFromCompose added in v0.4.20

func MaterializeWorkloadFromCompose(repositoryRoot, sourcePath string, m Manifest, runtime RuntimeFiles) (WorkloadFiles, bool, error)

type WorkloadSecurityDecision added in v0.4.9

type WorkloadSecurityDecision string
const (
	WorkloadSecurityAllow WorkloadSecurityDecision = "allow"
	WorkloadSecurityWarn  WorkloadSecurityDecision = "warn"
	WorkloadSecurityDeny  WorkloadSecurityDecision = "deny"
)

type WorkloadSecurityFinding added in v0.4.9

type WorkloadSecurityFinding struct {
	Code     string                   `json:"code"`
	Decision WorkloadSecurityDecision `json:"decision"`
	Service  string                   `json:"service"`
	Field    string                   `json:"field"`
	Value    string                   `json:"value,omitempty"`
	Message  string                   `json:"message"`
}

type WorkloadSecurityPolicy added in v0.4.13

type WorkloadSecurityPolicy struct {
	Mode             string   `json:"mode"`
	AllowedOverrides []string `json:"allowed_overrides,omitempty"`
}

func ResolveWorkloadSecurityPolicy added in v0.4.13

func ResolveWorkloadSecurityPolicy(m Manifest) (WorkloadSecurityPolicy, error)

type WorkloadSecurityReport added in v0.4.9

type WorkloadSecurityReport struct {
	Mode     string                    `json:"mode"`
	Findings []WorkloadSecurityFinding `json:"findings"`
}

func AnalyzeComposeSecuritySource added in v0.4.17

func AnalyzeComposeSecuritySource(m Manifest, source []byte) (WorkloadSecurityReport, error)

func AnalyzeRenderedComposeSecurity added in v0.4.9

func AnalyzeRenderedComposeSecurity(m Manifest, rendered []byte) (WorkloadSecurityReport, error)

func (WorkloadSecurityReport) Denied added in v0.4.9

func (r WorkloadSecurityReport) Denied() bool

func (WorkloadSecurityReport) Error added in v0.4.9

func (r WorkloadSecurityReport) Error() error

Source Files

Jump to

Keyboard shortcuts

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