Repository navigation
IAM: tenant permission sets, per-request access, authorized contact lookup (D-IAM-3) - #44
Merged
Merged
Conversation
…ookup (D-IAM-3) A role name grants nothing: the runtime bind declares the six names with no grants; the preset verb table becomes PresetFixture, a simulation fixture. Access is compiled per request from versioned tenant permission sets (stable ids, assigned to roles or principals) under a seat ceiling: rows by ownership scope, properties by outer mask and inner ordinal, plain verbs, and named actions that need verb + gate + seat. The result is stamped with schema, policy version and generation, seat and role versions; any change refuses it as stale. hubspo-compat gets the first output path: a contact lookup that answers NotFound for any record the request may not see, projects by ordinal before naming, and a search gate that refuses filters and sorts on hidden properties. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PPcakjk7ioQsnasmNDtc5z
AdaWorldAPI
marked this pull request as ready for review
October 21, 2026 02:19
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PPcakjk7ioQsnasmNDtc5z
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Implements the 2026-10-21 operator ruling (
ISS-PRESET-VERBS-PROVISIONAL,ISS-PERMISSION-SETS-NOT-ROLES) and the first D-IAM-3 output path.A role name grants nothing
roles::bind()bindsRBAC_PLUGthroughRoleNames, which defines the six names but has no grants, so every decision the binding makes on its own refuses.PresetFixture, reachable only throughbind_preset_fixture(). It is for simulation and tests only.Tenant data (
hubspo_iam::tenant)TenantPolicyhas a declared version plus a generation that bumps on every change.PermissionSets have stable ids and are assigned to a role or a principal.ActionGrants. Nothing is implied.Seatis the ceiling on concepts and actions.Per-request access (
hubspo_iam::access::RequestAccess)READ,WRITEandCREATE.ACT,DELETE,EXPORT) each need the verb and the gate in the same set, plus the seat.Stampgainsseatandroles). Any difference refuses withStale.First output path (
hubspo_compat::contacts)lookupreturnsNotFoundfor:check_searchrefuses filters and sorts on hidden or unknown properties.Tests
hubspo-iam: 40 lib, 4 directory and 8 scope tests.hubspo-compat: 6.-D warnings) and tests pass.Disable runs: all ten measured red.
RoleNamesreturning preset grants.The board is updated in the same commit: LATEST_STATE, STATUS_BOARD rows D-IAM-1 and D-IAM-3, ISSUES.
Open:
(ordinal, value)pairs (D-API-1);TenantPolicypersistence;Generated by Claude Code