1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
// Location: ./crates/cpex/src/lib.rs
// Copyright 2025
// SPDX-License-Identifier: Apache-2.0
// Authors: Fred Araujo
//! CPEX host facade.
//!
//! A single dependency that re-exports the CPEX host runtime, so hosts
//! depend on this crate instead of pinning `apl-cmf`, `apl-cpex`, and
//! `cpex-core` one by one.
//!
//! By default this is the **engine only** — no builtin plugins are compiled
//! in. The bundled extension set lives in [`cpex-builtins`](cpex_builtins)
//! and is pulled in only when a builtins feature is enabled.
//!
//! # Usage
//!
//! Engine only (register your own factories):
//!
//! ```no_run
//! use std::sync::Arc;
//! use cpex::PluginManager;
//!
//! let mgr = Arc::new(PluginManager::default());
//! // ... register host factories, then `apl_cpex::register_apl(&mgr, opts)`.
//! ```
//!
//! With the bundled builtins (enable the `builtins` or `full` feature):
//!
//! ```ignore
//! use std::sync::Arc;
//! use cpex::PluginManager;
//!
//! let mgr = Arc::new(PluginManager::default());
//! // Register every enabled builtin factory and install the APL config
//! // visitor (in-process defaults) in one call:
//! cpex::install_builtins(&mgr);
//! // ... then load a config that references the enabled `kind`s.
//! ```
//!
//! # Features
//!
//! No plugins are on by default (`cpex = "0.2"` is the engine alone).
//! `builtins` enables the common in-process set; `full` adds the Valkey
//! session store; or pick a granular subset (`jwt`, `oauth`, `pii`,
//! `audit`, `cedar`, `cel`, `valkey`). When any builtins feature is on, the
//! registration helpers and the concrete factory types are re-exported here
//! from [`cpex-builtins`](cpex_builtins).
// -----------------------------------------------------------------------------
// Host runtime re-exports (always available)
// -----------------------------------------------------------------------------
// Whole-crate re-exports for advanced use (types not surfaced below).
pub use ;
pub use PdpFactory;
pub use ;
pub use PluginManager;
// -----------------------------------------------------------------------------
// Bundled extensions (only when a builtins feature pulls in cpex-builtins)
// -----------------------------------------------------------------------------
// The whole aggregator, for advanced use.
pub use cpex_builtins;
// Registration helpers — delegated to cpex-builtins, keeping the facade's
// historical names (`register_builtin_plugins`, `builtin_pdp_factories`).
pub use ;
// Concrete factory types + KIND consts, each behind its facade feature
// (which forwards to the matching cpex-builtins feature).
pub use CedarDirectPdpFactory;
pub use CelPdpFactory;
pub use ;
pub use ;
pub use ;
pub use ;
pub use ;
// -----------------------------------------------------------------------------
// Tests
// -----------------------------------------------------------------------------