From 8adf8ded838d0238e5dea9c2cd5a8f0b25e8131c Mon Sep 17 00:00:00 2001 From: Claude Date: Wed, 4 Nov 2026 23:30:53 +0000 Subject: [PATCH] contract(ogar_codebook): mirror directory_user, directory_group, group_membership, license_assignment (0x0B06-0x0B09) Paired with the OGAR ogar-vocab mint of the same four IAM-domain rows. lance-graph-ogar's assert_codebook_parity checks the full bijection against OGAR main, so its CI step goes green once the OGAR mint merges. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01XAqKMM44PgMCtYoqx6XYnh --- crates/lance-graph-contract/src/ogar_codebook.rs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/crates/lance-graph-contract/src/ogar_codebook.rs b/crates/lance-graph-contract/src/ogar_codebook.rs index 23e3d0030..647f7f1b6 100644 --- a/crates/lance-graph-contract/src/ogar_codebook.rs +++ b/crates/lance-graph-contract/src/ogar_codebook.rs @@ -756,6 +756,12 @@ pub const CODEBOOK: &[(&str, u16)] = &[ // `email` (OGIT `ogit:Email`) in the IAM domain above the AuthStore // profiles; spear plugs it. ("email", 0x0B05), + // Directory objects (OGAR ogar-vocab 0x0B06-0x0B09): a directory user + // and group as observed, one membership edge, one observed license SKU. + ("directory_user", 0x0B06), + ("directory_group", 0x0B07), + ("group_membership", 0x0B08), + ("license_assignment", 0x0B09), // ── 0x0DXX — HR domain (employment / org / contracts; OGAR PR #127) ── // Closes the final 4-of-11 cross-axis identity gap surfaced by odoo-rs // PR #14: hr.employee / hr.department / hr.job / hr.contract. @@ -1045,6 +1051,8 @@ mod tests { Some(0x0503_000B) ); assert_eq!(canonical_concept_id("email"), Some(0x0B05)); + assert_eq!(canonical_concept_id("directory_user"), Some(0x0B06)); + assert_eq!(canonical_concept_id("license_assignment"), Some(0x0B09)); assert_eq!(canonical_concept_id("unicharset"), Some(0x0801)); assert_eq!(canonical_concept_id("charset"), Some(0x0803)); assert_eq!(canonical_concept_id("patient"), Some(0x0901));