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 error;
13mod resolver;
14mod subject;
15mod target;
16
17pub use binding::{FactBinding, FactBindingError, QueryPresence};
18pub use error::{KeepsakeResolveError, KeepsakeTargetError};
19#[cfg(feature = "in-memory")]
20pub use keepsake::{ActiveRelationSeed, InMemoryActiveRelations, InMemoryActiveRelationsError};
21pub use keepsake::{ActiveRelationSource, DynActiveRelationSource};
22pub use resolver::KeepsakeResolver;
23pub use subject::{
24    PrincipalSubjectMapper, SubjectMapper, TenantScopedSubjectMapper, principal_subject,
25    tenant_scoped_subject,
26};
27pub use target::KeepsakeRelationTarget;