Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
control_manifest.hpp File Reference
#include <pulp/inspect/capabilities.hpp>
#include <cstdint>
#include <filesystem>
#include <optional>
#include <span>
#include <string>
#include <string_view>
#include <vector>
#include <pulp/inspect/control_registry_digest.inc>

Go to the source code of this file.

Classes

struct  pulp::inspect::ControlManifest
struct  pulp::inspect::ControlManifestDiagnostics
struct  pulp::inspect::ControlManifestValidation
struct  pulp::inspect::ControlArtifactExpectation
struct  pulp::inspect::ControlArtifactValidation
struct  pulp::inspect::ControlArtifactResultBinding
 A frozen Product A operation contract. More...
struct  pulp::inspect::ControlReceiptResultBinding
 Binds a typed success-result field to the broker-minted durable receipt. More...
struct  pulp::inspect::ControlOperationDescriptor
struct  pulp::inspect::ControlPermissionInputs
 Inputs to the canonical permission equation. More...
struct  pulp::inspect::ControlPermissionDecision

Namespaces

namespace  pulp
namespace  pulp::inspect

Macros

#define PULP_CONTROL_REGISTRY_DIGEST_V1    "d98850681408945533dff4b647ddf0309f500cdbafc13f4af983ba4674410e8e"

Enumerations

enum class  pulp::inspect::ControlBuildProfile : std::uint8_t {
  pulp::inspect::ProductionStripped , pulp::inspect::DeveloperLocal , pulp::inspect::TestDeterministic , pulp::inspect::SupportDiagnostics ,
  pulp::inspect::ResearchUnsafe
}
enum class  pulp::inspect::ControlManifestError : std::uint8_t {
  pulp::inspect::None , pulp::inspect::Parse , pulp::inspect::RootType , pulp::inspect::UnknownField ,
  pulp::inspect::MissingOrInvalidField , pulp::inspect::UnsupportedSchema , pulp::inspect::VersionDowngrade , pulp::inspect::VersionTooNew ,
  pulp::inspect::UnknownProfile , pulp::inspect::PermissionTermsMismatch , pulp::inspect::CapabilityLimit , pulp::inspect::UnknownCapability ,
  pulp::inspect::InvalidCapabilitySet , pulp::inspect::MissingCapabilityDependency , pulp::inspect::ProfileViolation , pulp::inspect::InvalidProfile ,
  pulp::inspect::InvalidIdentity , pulp::inspect::RegistryMismatch , pulp::inspect::EndpointMismatch , pulp::inspect::UnsafeAcknowledgementMismatch
}
enum class  pulp::inspect::ControlDenialReason : std::uint8_t {
  pulp::inspect::UnknownCapability , pulp::inspect::NotImplemented , pulp::inspect::NotBuilt , pulp::inspect::HostUnavailable ,
  pulp::inspect::NotActivated , pulp::inspect::PolicyIneligible , pulp::inspect::ClientNotGranted , pulp::inspect::SessionNotLive ,
  pulp::inspect::ProfileForbidden , pulp::inspect::UnsupportedExecutor , pulp::inspect::PublicationMismatch
}

Functions

std::string_view pulp::inspect::control_profile_id (ControlBuildProfile profile)
std::optional< ControlBuildProfile > pulp::inspect::control_profile_from_id (std::string_view id)
std::string_view pulp::inspect::control_manifest_error_id (ControlManifestError error)
std::string_view pulp::inspect::control_denial_reason_id (ControlDenialReason reason)
std::span< const std::string_view > pulp::inspect::control_permission_terms ()
ControlPermissionDecision pulp::inspect::evaluate_control_permission (const ControlPermissionInputs &inputs)
bool pulp::inspect::validate_control_manifest (const ControlManifest &manifest, std::string &error)
ControlManifestValidation pulp::inspect::validate_control_manifest_detailed (const ControlManifest &manifest)
std::optional< ControlManifest > pulp::inspect::parse_control_manifest (std::string_view json, ControlManifestDiagnostics *diagnostics=nullptr)
std::vector< std::filesystem::path > pulp::inspect::control_sidecar_directories (const std::filesystem::path &executable_directory)
 Directories that may hold the control sidecars of an executable living in executable_directory (<name>.inspector-capabilities.json, <name>.
std::filesystem::path pulp::inspect::control_sidecar_executable_directory (const std::filesystem::path &sidecar_directory)
 The directory of the executable a sidecar in sidecar_directory describes: <bundle>/Contents/MacOS for a macOS bundle's Contents/Resources, and the directory itself otherwise.
std::string pulp::inspect::serialize_control_manifest (const ControlManifest &manifest)
 Emits the unique stable byte representation used for artifact digests.
std::string pulp::inspect::control_manifest_digest (const ControlManifest &manifest)
std::string pulp::inspect::control_consent_identity (std::string_view manifest_digest, std::string_view artifact_digest)
ControlArtifactValidation pulp::inspect::validate_control_artifact_bytes (std::string_view bytes, const ControlArtifactExpectation &expectation)
 Validates the immutable markers embedded in one exact executable snapshot.
std::span< const ControlOperationDescriptor > pulp::inspect::control_operation_registry ()
const ControlOperationDescriptor * pulp::inspect::resolve_control_operation (std::string_view id, std::uint32_t version)
std::string pulp::inspect::serialize_control_registry ()
 Canonical projection of capability metadata and adapter operations.

Variables

constexpr std::uint32_t pulp::inspect::kControlManifestSchemaVersion = 1
constexpr std::string_view pulp::inspect::kControlManifestSchemaId = "dev.pulp.control/artifact-manifest@1"
constexpr std::string_view pulp::inspect::kControlRegistryDigest = "d98850681408945533dff4b647ddf0309f500cdbafc13f4af983ba4674410e8e"

Macro Definition Documentation

◆ PULP_CONTROL_REGISTRY_DIGEST_V1

#define PULP_CONTROL_REGISTRY_DIGEST_V1    "d98850681408945533dff4b647ddf0309f500cdbafc13f4af983ba4674410e8e"