17namespace neograph::program {
45 bool allows_new_publication =
false;
46 bool allows_new_run =
false;
47 bool requires_legacy_runtime =
false;
48 std::string diagnostic_code;
56NEOGRAPH_PROGRAM_API std::string_view to_string(
59 std::string_view value);
61NEOGRAPH_PROGRAM_API
StoredArtifactKind stored_artifact_kind_from_string(std::string_view value);
81 MaterializationMismatch = 8,
125 json source = json::object();
126 json target = json::object();
135 json source = json::object();
136 json target = json::object();
145struct MigrationPlanData {
146 std::string source_version_id;
147 std::string target_version_id;
148 std::string owner_scope;
150 std::vector<std::string> blockers;
151 std::vector<MigrationDiagnostic> diagnostics;
152 std::vector<MigrationMapping> mappings;
163 static constexpr std::uint32_t STORAGE_SCHEMA_VERSION = 2;
164 static constexpr std::uint32_t PREVIOUS_STORAGE_SCHEMA_VERSION = 1;
170 static constexpr std::uint32_t LEGACY_STORAGE_SCHEMA_VERSION = 0;
183 const ProgramBundle& source_bundle,
184 const ProgramVersion& target,
185 const ProgramBundle& target_bundle);
188 const std::string& source_version_id() const noexcept;
189 const std::
string& target_version_id() const noexcept;
190 const std::
string& owner_scope() const noexcept;
192 const std::vector<std::
string>& blockers() const noexcept;
195 bool is_compatible() const noexcept;
198 const std::
string&
id() const noexcept;
199 std::
string serialize_canonical() const;
204 std::shared_ptr<const Impl> impl_;
209NEOGRAPH_PROGRAM_API std::string_view to_string(
MigrationDimension dimension) noexcept;
210NEOGRAPH_PROGRAM_API
MigrationDimension migration_dimension_from_string(std::string_view value);
NEOGRAPH_API export/import macro for shared-library builds.
Immutable proof of whether an admitted run may move to another version.
static MigrationPlan between(const ProgramVersion &source, const ProgramBundle &source_bundle, const ProgramVersion &target, const ProgramBundle &target_bundle)
Builds a field-level proof from the admitted bundles.
static MigrationPlan between(const ProgramVersion &source, const ProgramVersion &target)
Builds a conservative version-only proof.
MigrationDimension
Contract dimension covered by a migration proof or rejection.
@ Compiler
Additional dimensions are appended to preserve persisted ordering.
StoredArtifactClassification
Classification of a retained legacy source artifact at the authoring cutover boundary.
StoredArtifactKind
Stored source families to which the cutover rules apply.
@ OperatorReconciliation
A human/operator must reconcile durable state before migration.
@ NewRunsOnly
The version is admitted for new invocations only; pinned runs drain.
@ ForkCompatible
The exact source checkpoint may be projected to the target version.
Stable, machine-readable evidence for one migration dimension.
Narrow, explicit mapping retained for a compatible migration dimension.
Explicit policy result; adapters must not infer a compiler from JSON shape.
Immutable stored binding between a Program bundle and admission receipts.