Skip to main content

System Architecture

Bedrock is a modular authorization engine with three main layers:

Core Components

BedrockEngine

The central authorization engine that:
  • Evaluates permission checks (evaluate()) and lists effective permissions
  • Composes grants across the scope chain per permissionMode
  • Applies overrides, resource policies, ownership, and the resource-hierarchy fallback
It is read/evaluate-only—entity writes go through the REST API (api-management), not the engine.

BedrockStore

The storage interface (BedrockStore) the engine reads through:

REST API

Optional HTTP layer for language-agnostic access:

Data Model

Evaluation Flow

When engine.evaluate() is called:
See Evaluation for the exact flow (delegation and the hierarchy fallback are conditional legs).

ID Format

All Bedrock entities use prefixed UUIDv7 IDs:

Deployment Options

Embedded Library

Use Bedrock directly in your application:
A self-hosted embed runs the engine as a library (no api-management, no console); setup is script/API-driven.

Managed Service (api-management)

Run api-management—the full multi-tenant control plane (REST API, tenants/workspaces/projects, Kinde-backed identity, plus Redis and the Angular console). Consumers call it over HTTP:
These are the two real deployment shapes: the embedded library (self-hosted engine) and the managed service (hosted platform with the console).

Next Steps

Quickstart

Set up Bedrock in your application

Core Concepts

Deep dive into authorization concepts