Hierarchy Validator
API Contract
REST
/api/v1/hierarchy-validation
7 endpoints
GET
/api/v1/hierarchy-validation/api/v1/hierarchy-validation
List recent validation results for an organization
Public
Response Example
{
"data": [
{
"validation_id": "val-001",
"organization_id": "org-42",
"check_type": "no_circle",
"passed": true,
"checked_at": "2026-03-25T08:00:00Z"
}
],
"pagination": {
"page": 1,
"limit": 20,
"total": 5
}
}
GET
/api/v1/hierarchy-validation/api/v1/hierarchy-validation/{validationId}
Get a specific validation result
Public
Response Example
{
"validation_id": "val-001",
"organization_id": "org-42",
"unit_id": "unit-002",
"check_type": "no_circle",
"passed": true,
"details": null,
"checked_at": "2026-03-25T08:00:00Z"
}
POST
/api/v1/hierarchy-validation/api/v1/hierarchy-validation/circle-check
Validate that setting a new parent does not create a circular reference
Public
Request Example
{
"unit_id": "unit-019",
"new_parent_id": "unit-002"
}
Response Example
{
"valid": true,
"unit_id": "unit-019",
"new_parent_id": "unit-002",
"message": "No circular reference detected"
}
POST
/api/v1/hierarchy-validation/api/v1/hierarchy-validation/depth-check
Validate that adding a unit does not exceed max hierarchy depth
Public
Request Example
{
"unit_id": "unit-019",
"max_depth": 4
}
Response Example
{
"valid": true,
"unit_id": "unit-019",
"current_depth": 2,
"max_depth": 4,
"message": "Depth within allowed limit"
}
POST
/api/v1/hierarchy-validation/api/v1/hierarchy-validation/orphan-check
Validate that deleting a unit leaves no orphaned children
Public
Request Example
{
"deleted_unit_id": "unit-019"
}
Response Example
{
"valid": false,
"deleted_unit_id": "unit-019",
"orphaned_children": [
"unit-030",
"unit-031"
],
"message": "Deletion would orphan 2 child units"
}
PUT
/api/v1/hierarchy-validation/api/v1/hierarchy-validation/{validationId}
Update a validation record (e.g. annotate with resolution)
Public
Request Example
{
"resolution_note": "Orphans reassigned to unit-001 before deletion"
}
Response Example
{
"validation_id": "val-009",
"resolution_note": "Orphans reassigned to unit-001 before deletion",
"updated_at": "2026-03-26T15:00:00Z"
}
DELETE
/api/v1/hierarchy-validation/api/v1/hierarchy-validation/{validationId}
Delete a validation log entry
Public
Response Example
{
"deleted": true,
"validation_id": "val-001"
}