Skip to content

feat: add cpex host facade crate#77

Merged
araujof merged 1 commit into
devfrom
feat/cpex_facade_crate
Jun 19, 2026
Merged

feat: add cpex host facade crate#77
araujof merged 1 commit into
devfrom
feat/cpex_facade_crate

Conversation

@araujof

@araujof araujof commented Jun 19, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds a cpex crate so hosts depend on one crate instead of a dozen. It re-exports the host runtime (PluginManager, AplOptions, register_apl) and the bundled plugin factories, each behind a cargo feature.

Features

jwt, oauth, pii, audit, cedar, cel are on by default. valkey (redis client + rustls TLS stack) is opt-in. full enables everything.

cpex = { version = "0.2.0", features = ["jwt", "oauth", "cedar", "cel", "valkey"] }

API

  • install_builtins(&mgr): registers every enabled factory and installs the APL config visitor in one call.
  • register_builtin_plugins, builtin_pdp_factories, builtin_session_store_factories: the pieces, for hosts that assemble AplOptions themselves.
  • Each concrete factory is re-exported under its feature, with collision-free aliased KINDs.

Notes

  • Biscuit and Cedarling are not wired yet (no public factory at this point).
  • Added to workspace members and default-members.
  • Builds under default / full / no-default / single-feature; clippy clean; unit tests plus a doctest cover the helpers and feature gating.

Add a `cpex` crate that re-exports the host runtime (PluginManager,
AplOptions, register_apl) and the bundled plugin factories, each behind
a cargo feature: jwt, oauth, pii, audit, cedar, cel, valkey. Hosts
depend on this one crate and enable the plugins they want instead of
pinning apl-cmf / apl-cpex / apl-pdp-* / apl-session-* individually.

`install_builtins(&mgr)` registers every enabled factory and installs
the APL config visitor in one call; register_builtin_plugins,
builtin_pdp_factories, and builtin_session_store_factories expose the
pieces for hosts that assemble AplOptions themselves.

Add the crate to workspace members and default-members.

Signed-off-by: Frederico Araujo <frederico.araujo@ibm.com>
@araujof araujof requested review from jonpspri and terylt as code owners June 19, 2026 03:57
@araujof araujof changed the base branch from main to dev June 19, 2026 03:58
@araujof araujof added enhancement New feature or request framework Rust labels Jun 19, 2026
@araujof araujof added this to CPEX Jun 19, 2026
@github-project-automation github-project-automation Bot moved this to Backlog in CPEX Jun 19, 2026
@araujof araujof added this to the 0.2.0 milestone Jun 19, 2026
@araujof araujof moved this from Backlog to In review in CPEX Jun 19, 2026

@terylt terylt left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@araujof araujof merged commit 494efd9 into dev Jun 19, 2026
12 checks passed
@github-project-automation github-project-automation Bot moved this from In review to Done in CPEX Jun 19, 2026
@araujof araujof deleted the feat/cpex_facade_crate branch June 19, 2026 04:20
araujof added a commit that referenced this pull request Jun 19, 2026
Signed-off-by: Frederico Araujo <frederico.araujo@ibm.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request framework Rust

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

2 participants