Governance model
A model your auditors and your engineers both recognize.
Identities, Resources, Grants, and Assignments model how access works in your organization, using terms your auditors and engineers recognize.
Governance model diagram
Identity → Assignment → Resource, with Grants recording held access within the Resource. Text-first; the diagram sits supporting, not primary.
The shape
Four objects. One shared graph.
Four first-class objects record who has access, why, when it began, who granted it, and which policy applies.
Identity
A person or machine principal in Owlie. Carries attributes — email, title, manager, department — with per-attribute source-of-truth rules and multi-system priority fallback. Lifecycle states map to HR signals.
Resource
Anything your business grants access to — a SaaS app, a repo, a database role, a laptop order, a data room. Each carries its own request form, approval flow, and fulfillment path. A Resource can also bundle other Resources — a standard kit, asked for once.
Depth on Extensibility.
Grant
Access an account holds within a Resource — a role inside an app, a permission set on a cloud account, membership in a group on a directory. A Grant target is the role, permission set, or group that can be granted. Connectors declare the Grant kinds; Owlie stores the targets and held Grants in its graph.
Assignment
“This identity has this Resource (and possibly this Grant).” Assignments carry desired and applied version counters, provisioning state, observed state, and a journal of every change.
Composition
A Resource can be made of other Resources.
If a Resource is anything your business grants access to, then the standard engineering kit is a Resource too — the repo, the CI seat, the staging role, the laptop. Compose it once as a bundle and a new engineer asks for one thing instead of five. On approval it expands into a child request per component, and no component asks for its own approval; the decision was made at the bundle. Policy still runs per component before anything expands, and a component your policy blocks stops the expansion rather than delivering a partial kit. The contents belong to the administrator who composed them, not to whoever is asking — and if the composition changes while a request is in flight, delivery fails rather than quietly granting a different kit.
Each component then provisions on its own path and keeps its own status; the parent carries the aggregate outcome. The person who asked sees one bundle in their access list, collapsible, with every component’s real lifecycle underneath, including any failed components. Where a bundle was granted first and ratified after, a rejection revokes each delivered component individually and fences off the ones that never started.
Verification
Sync verifies reality instead of overwriting it.
Sync is Owlie’s observation layer. It compares what the connected systems currently show against what Owlie intended. When they match, nothing happens. When they diverge, Owlie applies a configurable policy — adopt the remote change, flag it, preserve intent and reconcile, or quietly ignore — per source and per object type. Stale-not-delete protects provisioned records from being wiped during a sync gap. The graph it maintains is inspectable: search any account, group, or Grant, see whether it’s synced, provisioned, manually managed, or derived, and trace its neighborhood and assignment links.
Drift detected — observed vs desired with policy decision
Real admin UI: a drift-detection card showing observed vs. desired, a policy decision chip — e.g. FLAG — and operator action buttons.
Source of truth
Every attribute has a rule, and the rule wins.
Identity attributes carry per-attribute source-of-truth rules. Email might prefer Workday and fall back to Google Workspace; a value asserted by any other system is recorded as a claim but never wins resolution. Title might come from a single authoritative HR source. Custom attributes your tenant defines under its own namespace run through the same precedence machinery as the built-in ones. Owlie resolves the winning value per attribute against the rule you configured, so the value you see matches it.
Downstream truth
The winning value reaches the target in the target’s own language.
A manager isn’t a name. To Active Directory it’s a distinguished name; to Microsoft Entra ID it’s an object id. Owlie maps manager and other identity-reference attributes to the relationship, then writes each target’s native identifier when it provisions the account. Onboard a batch where a report provisions before their manager’s account exists, and the reference defers and backfills on its own once that account lands — so accounts provision in any order, across systems, and the links converge without dependency ordering. Active Directory’s manager mapping ships as a default; the same mechanism is open to any connector attribute that declares itself a reference.
Mark a mapping to keep in sync and a later change to title, department, or manager is re-evaluated and pushed to the already-provisioned account as a scoped attribute update — no full re-provision, no per-connector drift code. It stays opt-in per attribute, so create-only values and generated usernames don’t drift. This lets changes in HR reach the target app for the attributes you select.
Keep going.
Platform overview
The runtime and its core primitives, end to end.
Provisioning
Intent-based, versioned, same pipeline for automated and manual paths.
Grants
Catalog ownership, lifecycle hygiene, and stale-access detection.
Extensibility
Resources and Forms in depth, with Functions and Hooks.
Audit readiness
The solution view: evidence as the workflow runs.
A governance shape both halves of the org can read.
Sign up free and model access in your organization.