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