32 virtual std::string_view
profile_id() const noexcept = 0;
86 std::unique_ptr<Impl> impl_;
void register_profile(std::shared_ptr< ProfileValidator > validator)
ProfileRegistry(ProfileRegistry &&) noexcept
std::vector< std::string > registered_profiles() const
const ProfileValidator * find(std::string_view profile_id) const noexcept
Null when the profile is not registered here.
Semantic validation of an extracted staging tree.
Definition profile_registry.hpp:26
virtual std::vector< std::string > required_roles() const =0
Roles this profile requires.
virtual runtime::Result< void, CapsuleError > validate_staged(const Manifest &manifest, const std::filesystem::path &staging_root) const =0
Validate the extracted staging tree without executing it.
virtual std::uint32_t max_profile_version() const noexcept=0
Highest profile version understood.
virtual bool supports_capability(std::string_view name) const noexcept=0
Capabilities this profile can satisfy locally.
virtual ~ProfileValidator()=default
virtual std::string_view profile_id() const noexcept=0
The profile this validator answers for, e.g.
virtual runtime::Result< void, CapsuleError > check_compatibility(const Manifest &manifest) const =0
Is the local runtime new enough for this capsule?
The capsule envelope: the only authority for what a capsule is.
Definition archive.hpp:24
Definition generated_event_source.hpp:33
The result of inspecting a capsule without running any of it.
Result<T, E> — success / failure union for fallible operations.
Admission failure vocabulary for authoring capsules.
A rejection with the exact subject that caused it.
Definition status.hpp:69
Definition manifest.hpp:47