Skip to content

The Owlie platform

Identity governance,
from source to enforcement.

Connect systems, establish identity and access state, make governance decisions, and carry those decisions all the way through fulfillment.

Owlie platform: HRMS and LDAP connect through the Sync engine to the Identity Store. The Provisioning engine connects to Google Workspace and GitHub. Review, Policy, and Request engines connect beside the store.
Illustrative platform architecture

Platform architecture

Five engines. One connected state model.

The engines are not five separate feature areas. Each reads a specific layer of platform state, records its decision or result, and hands the work to the next responsible system.

Interfaces
  • Admin console
  • End-user portal
  • Slack
  • AI assistant
  • API · SDK · MCP
ObserveRead reality
DecideDetermine desired state
EnforceChange connected systems
Sync engine

Sync engine

Systems → observed state

What it works from
Connector observations, source checkpoints, and prior graph state.
What it establishes
Accounts, groups, resources, Grants, relationships, and their observed state.
What it hands off
Drift handling and downstream evaluation when source state changes.

Identity Store

One record of access, carried through four states — every engine reads and writes here.

  1. Observed stateWhat connected systems currently report.
  2. Decisions & justificationsWhy each access should or should not exist.
Identity Store
  1. Desired stateThe access outcome the platform has calculated.
  2. Applied stateWhat fulfillment last completed in the target system.
Change & evidenceIdentity events · Audit history · Review evidence · Operation journals
Connector executionCloud runtime · Outbound gateway · Target secrets stay local
Trust foundationActor authorization · Tenant isolation · Key management · Governed notifications

Transaction trace

See how Owlie handles a change.

A single event can cross several engines. Follow four common changes from first observation or intent through decision, enforcement, and reconciliation.

Illustrative transaction

Alice requests GitHub Admin.

Time-bound access for a production task.

Pan the transaction to follow every step

  1. RequestCaptures intent, reason, and access window
  2. PolicyChecks applicable rules and conflicts
  3. ApprovalRoutes the decision to Alice’s manager
  4. ProvisioningCalculates the required membership change
  5. GitHubAdds Alice to the governed team
  6. ReconciliationConfirms the resulting observed state

Extension points

Extend the platform at every layer.

Every layer has a configuration path and an extension path. Configure the standard case visually; when the business needs something unusual, the same layer accepts expressions, Functions, or a connector you build — without leaving the platform.

LayerConfigureExtend
A matched pair of code brackets inset into an ivory plaque.
Connectors

Install from the catalog, or point a protocol rail — SCIM, LDAP, SQL, CSV — at a system that already speaks one.

  • Builder
  • Function

Define authentication, entities, and relationships in the connector builder, then write one TypeScript Function per sync and provisioning operation. Start from an OpenAPI import or from scratch.

Three aligned data-field bars inset into an ivory plaque.
Identity & sync

Custom attributes, field mappings, identity-reference mappings such as manager, and a drift policy per resource: adopt, flag, or preserve.

  • OXL
  • Derived attributes

Expressions that shape incoming values and match external accounts to the right identity. Derived attributes computed from your own rules — lifecycle states included.

A three-row form symbol inset into an ivory plaque.
Requests & forms

Catalog scope, time-bound access windows, and a request Form per resource that captures the context the workflow needs.

  • Forms
  • Function

Form answers travel into the approval, fulfillment, or action Function that acts on them, so your logic works with what people provide.

A symmetric branching-path symbol inset into an ivory plaque.
Approvals & reviews

Staged approval policies — all, any, or N-of-M — routed to managers, owners, or groups. Review campaigns with reviewer routing on the same terms.

  • Function

Approval Functions that approve, reject, or reassign using form answers and external checks. Reviewer-resolver Functions that choose who decides.

A downward arrow entering a tray, inset into an ivory plaque.
Provisioning

A provisioning profile per resource: attribute mappings, before and after hooks, and timed steps for staged deprovisioning.

  • Hooks
  • Function
  • OXL

Fulfillment Functions for systems without a native connector. Hook Functions around any apply. Expression-computed account values, including references to accounts on other resources.

A lightning-bolt symbol inset into an ivory plaque.
Policy & reactions

Grant and deny policies over any attribute, group, or role, plus separation-of-duties pairs and revocation routing.

  • OXL
  • Function
  • Custom Actions

Reactions run your Functions on identity, group, or resource events, with expression conditions deciding when they fire. Custom Actions expose your own operations on identities and requests, with optional input forms.

One runtime under every extension. Code you add runs in the same sandbox as everything else on the platform.

Versioned releases
Draft, publish, roll back
Scoped secrets
Bound to the release that uses them
Allowlisted egress
Outbound calls only to declared hosts
Execution history
Every run recorded for review