# parc v0.1.0 - Table of Contents

> Framework-agnostic PARC (Principal, Action, Resource, Context) authorization: a request, a pipeline of preparers, and one decider.

## Pages

- [Parc](readme.md)
- [Changelog](changelog.md)

## Modules

- [Parc](Parc.md): Generic PARC (Principal, Action, Resource, Context) authorization contract,
independent of any policy framework.
- [Parc.Pipeline](Parc.Pipeline.md): The PARC evaluation engine: run an ordered list of `Parc.RequestPreparer` steps
over a `Parc.Request`, then hand the prepared request to the `Parc.PolicyDecider`
and return its verdict. Framework-agnostic: a host adapter builds the request
from its own representation and calls `run/3`; the same declared pipeline serves
every entry point.
- [Parc.PolicyDecider](Parc.PolicyDecider.md): The decision point (PDP) of a PARC authorization. A decider receives a fully
enriched `Parc.Request` and returns one of
- [Parc.Request](Parc.Request.md): The PARC (Principal, Action, Resource, Context) authorization request: the data a
`Parc.PolicyDecider` decides on. An adapter builds it, the declared preparers
transform it, and the decider evaluates it.
- [Parc.RequestPreparer](Parc.RequestPreparer.md): A preprocessing step in a `Parc.Pipeline`. A preparer reads a `Parc.Request`
and either continues with a (possibly transformed) request or aborts the whole
evaluation with an error. It runs before the decider and _cannot_ decide; only
`Parc.PolicyDecider` returns a verdict.

