Skip to content

docs: add runnable CPEX tutorial and reorganize docs outline#122

Merged
araujof merged 5 commits into
devfrom
docs/tutorial
Jul 17, 2026
Merged

docs: add runnable CPEX tutorial and reorganize docs outline#122
araujof merged 5 commits into
devfrom
docs/tutorial

Conversation

@araujof

@araujof araujof commented Jul 16, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds a self-paced, runnable CPEX tutorial and reorganizes the docs outline.

  • Tutorial (examples/tutorial/): 11 modules plus a capstone, each a runnable binary with a --check mode and an editable APL policy. A shared harness wraps the enforcement loop (mediate()), fake backends, a Keycloak helper, and a curl-driven approval channel. Modules 2+ run against a real Keycloak (idp/ compose + realm export); modules 0-1 need only Rust.
  • Docs (docs/content/docs/tutorial/): a page per module plus landing and capstone, cross-linked from the docs index and Quick Start.
  • Docs reorg: Overview now precedes Threat Model; Use Cases follows. Patterns refreshed to the flat policy form with tutorial cross-links; Use Cases/Overview redaction dedup.
  • CI: make tutorial-check (boots the IdP, runs every module, tears down) via .github/workflows/tutorial.yaml; no-IdP checks and policy unit tests run in the existing gate.

All modules and the capstone pass --check against live Keycloak; cargo test green; clippy and rustfmt clean.

araujof added 2 commits July 15, 2026 09:08
…otent

The v0.2.2 release failed at `cpex-builtins` because the new
`cpex-plugin-elicitation-ciba` crate (added with the elicitation feature,
#115) was never added to the ordered publish list, so its dependent
`cpex-builtins` could not resolve it on crates.io.

- Add `cpex-plugin-elicitation-ciba` to the publish order, before
  `cpex-builtins`.
- Make the publish loop idempotent: skip a crate whose version is already
  on the index (crates.io rejects duplicate versions), so a re-run of a
  partially-published tag finishes the remaining crates instead of
  aborting on the first already-published one. Genuine errors still fail.

Signed-off-by: Frederico Araujo <frederico.araujo@ibm.com>
Signed-off-by: Frederico Araujo <frederico.araujo@ibm.com>
@araujof araujof added the documentation Improvements or additions to documentation label Jul 16, 2026
@araujof araujof added this to CPEX Jul 16, 2026
@github-project-automation github-project-automation Bot moved this to Backlog in CPEX Jul 16, 2026
@araujof araujof moved this from Backlog to In progress in CPEX Jul 16, 2026
@araujof araujof added this to the 0.2.3 milestone Jul 16, 2026
@araujof
araujof marked this pull request as ready for review July 16, 2026 21:40
@araujof
araujof requested review from jonpspri and terylt as code owners July 16, 2026 21:40
araujof added 2 commits July 16, 2026 23:10
…ides, link check

Signed-off-by: Frederico Araujo <frederico.araujo@ibm.com>
Signed-off-by: Frederico Araujo <frederico.araujo@ibm.com>

@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

Signed-off-by: Frederico Araujo <frederico.araujo@ibm.com>
@araujof
araujof merged commit 7cdaa5f into dev Jul 17, 2026
10 checks passed
@github-project-automation github-project-automation Bot moved this from In progress to Done in CPEX Jul 17, 2026
@araujof
araujof deleted the docs/tutorial branch July 17, 2026 03:51
araujof added a commit that referenced this pull request Jul 17, 2026
* ci(release): publish cpex-plugin-elicitation-ciba; make publish idempotent

The v0.2.2 release failed at `cpex-builtins` because the new
`cpex-plugin-elicitation-ciba` crate (added with the elicitation feature,
#115) was never added to the ordered publish list, so its dependent
`cpex-builtins` could not resolve it on crates.io.

- Add `cpex-plugin-elicitation-ciba` to the publish order, before
  `cpex-builtins`.
- Make the publish loop idempotent: skip a crate whose version is already
  on the index (crates.io rejects duplicate versions), so a re-run of a
  partially-published tag finishes the remaining crates instead of
  aborting on the first already-published one. Genuine errors still fail.

Signed-off-by: Frederico Araujo <frederico.araujo@ibm.com>

* docs: add runnable CPEX tutorial and reorganize docs outline

Signed-off-by: Frederico Araujo <frederico.araujo@ibm.com>

* docs: canonicalize route form, runnable quickstart, config/testing guides, link check

Signed-off-by: Frederico Araujo <frederico.araujo@ibm.com>

* ci: fix docs link-check and exclude tutorial crate from package dry-run

Signed-off-by: Frederico Araujo <frederico.araujo@ibm.com>

* ci: gate tutorial IdP readiness with a probe; prune unused tutorial deps

Signed-off-by: Frederico Araujo <frederico.araujo@ibm.com>

---------

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

documentation Improvements or additions to documentation

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

2 participants