Skip to main content

gatekeep_keepsake/
lib.rs

1//! Keepsake-backed fact resolution for gatekeep.
2//!
3//! The adapter maps gatekeep `FactId`s to keepsake relation ids. Full decisions
4//! resolve those facts from the principal's active keepsakes. Query resolution
5//! can either do the same request-scoped lookup or mark selected facts as
6//! `Unknown` so a later `QueryLowering` adapter can turn them into row
7//! predicates.
8
9#![forbid(unsafe_code)]
10
11mod binding;
12mod effective;
13mod error;
14mod resolver;
15mod subject;
16mod target;
17
18pub use binding::{FactBinding, FactBindingError, QueryPresence};
19pub use effective::EffectiveFactError;
20pub use error::{KeepsakeResolveError, KeepsakeTargetError};
21#[cfg(feature = "in-memory")]
22pub use keepsake::{ActiveRelationSeed, InMemoryActiveRelations, InMemoryActiveRelationsError};
23pub use keepsake::{ActiveRelationSource, DynActiveRelationSource};
24pub use resolver::KeepsakeResolver;
25pub use subject::{
26    PrincipalSubjectMapper, SubjectMapper, TenantScopedSubjectMapper, principal_subject,
27    tenant_scoped_subject,
28};
29pub use target::KeepsakeRelationTarget;