opsmill
infrahub
Blog
Docs
Changelog
Blog
Docs
Changelog
Overview
Branches
Benchmarks
Runs
Performance History
Latest Results
fix: reject generic deletions referenced by inherit_from and roll back failed schema updates (closes #8988) (#8991) * test: add failing test for #8988 * test: add failing rollback test for #8988 * fix: reject generic deletions still referenced by inherit_from, roll back failed schema updates Two defensive fixes for the #8988 wedged-branch scenario: - validate_node_deletions now also checks node.inherit_from entries against removed_schema_names and raises before any DB write. This closes the two-step delete path where a generic was silently removed while other nodes still inherited from it. - SchemaUpdateCoordinator.execute() wraps _update_schema in try/except and invokes _rollback + _restore_registry_state on failure, so any future exception after the DB write (e.g. schema.process()) reverts Neo4j instead of leaving the branch corrupted. * chore: add changelog fragment for #8988 * review & factorise common behavior * cubid feedback: allow templates and profiles * refactor: restructure execute() tail so ruff RET503 is happy Move the Phase 2 failure branch inside an if-block and put the 'return updated_hash' as the explicit final statement of execute(). Behavior is unchanged — _handle_failure_and_rollback still raises on every failure path — but ruff can now see an explicit return. * fixed BaseNodeSchema check which was over permissive * fix: guard inherit_from check against GenericSchema in validate_node_deletions BaseNodeSchema includes GenericSchema, which has no inherit_from attribute, so iterating it crashed the /api/schema/load endpoint with AttributeError. Narrow the isinstance guard to the three schema types that actually expose inherit_from (NodeSchema, ProfileSchema, TemplateSchema), and extend the existing test with a kept generic so the loop must iterate a generic without touching node-only fields. * additional information in a edge case * reducing verbosity of comments * edge case: generic node and inheriting nodes were deleted in the same schema update * reduce verbosity of test docstring * split test files * update tests so that they reflect the real production code path
stable
10 minutes ago
Try to help query planner
gma-20260407-ifc2110
36 minutes ago
Remove too specific instructions
gma-20260407-ifc2110
45 minutes ago
make WebhookAutomation object owner of active property
pmi-20260402-unify-data-requests
48 minutes ago
make WebhookAutomation object owner of active property
pmi-20260402-unify-data-requests
1 hour ago
update tests so that they reflect the real production code path
ai-bug-pipeline-8988-inherit-from-deletion-validation
1 hour ago
update tests so that they reflect the real production code path
ai-bug-pipeline-8988-inherit-from-deletion-validation
1 hour ago
edge case: generic node and inheriting nodes were deleted in the same schema update
ai-bug-pipeline-8988-inherit-from-deletion-validation
12 hours ago
Latest Branches
CodSpeed Performance Gauge
0%
IFC-2110 Index HFID values and simplify lookup
#8822
45 minutes ago
dd2038a
gma-20260407-ifc2110
CodSpeed Performance Gauge
0%
IFC-2434: Unify Web hooks queries data sources
#8862
1 hour ago
5860212
pmi-20260402-unify-data-requests
CodSpeed Performance Gauge
+3%
fix: reject generic deletions referenced by inherit_from and roll back failed schema updates (closes #8988)
#8991
2 hours ago
3f6b869
ai-bug-pipeline-8988-inherit-from-deletion-validation
© 2026 CodSpeed Technology
Home
Terms
Privacy
Docs