# PAS graph

Intranets often have the use case that users are organized in a complex tree.

PAS performs badly in this situation because to answer some questions
(i.e. what are my roles) it retrieves a lot of unnecessary information.

The pas graph was created to address this issue by using a graph.

To generate the graph we need:

1. nodes (entities that have a minimal description of the principal)
1. edges (entities describing the parent-child relation between principals)

## PAS node

PAS nodes are strings containing a UID for the principal.

## PAS edge

PAS edges are tuples containing (parent UID, child UID)

## Additional information

Although this is the minimum information to provide the dependency we also need
other information, first of all the group name.
For this reason names are easily accessible through a separate storage.
Also, a path that can be used to resolve an object and retrieve information is
provided.

## Principal UID

Principal UIDs are column separated values. The first part identifies the UID type.
