Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Demos

The contrib/demo/ directory contains self-contained scenarios that each exercise one or more ahdapa features. Every demo ships with a configuration file, a static users or clients file, and a run.sh script. Most scripts exit 0 on pass and 1 on failure and are run as CI integration tests after every successful build.

Quick-start — basic single-node run

For an unstructured single-node session with no particular feature focus, use the top-level script:

bash contrib/demo/run.sh

The script builds the WebUI if webui/dist/ is absent, then locates the ahdapa binary (system-installed PATH → target/release/ahdapatarget/debug/ahdapacargo build) and prints the resolved path before starting. It starts ahdapa at http://127.0.0.1:8080 using contrib/demo/ahdapa.sample.toml. Credentials: alice / alice123, bob / bob123, carol / carol123. Press Ctrl-C to stop.

Demo overview

DemoFeatures exercisedInteractive
clusterCRDT gossip, three-node full-mesh, TLS, cross-node token issuance and introspectionyes (--interactive)
federationIdP-to-IdP delegation, OIDC dynamic registration, federated account linkingyes (Ctrl-C)
githubGitHub as upstream OAuth2 provider, numeric-ID subject claimyes (Ctrl-C)
ipaAnsible-based FreeIPA + ahdapa production deploymentno (infrastructure)
oboRFC 8693 OBO token exchange, HBAC delegation targets, act claim chains, actor gateyes (--interactive)
passkeyWebAuthn credential registration and authentication without FreeIPAyes (Ctrl-C)
static-clientsTOML-seeded OAuth2 clients, write-protection, identity directory API for SSSDyes (--interactive)

Each demo page describes:

  • what it shows,
  • prerequisites,
  • how to run it (with example output),
  • how to explore it interactively where applicable.

Common options

Binary selection

All demo scripts use the same binary selection order:

  1. System-installed ahdapa found in $PATH (resolved to its full absolute path).
  2. target/release/ahdapa — a release build in the repository workspace.
  3. target/debug/ahdapa — a debug build in the repository workspace.
  4. Falls back to cargo build (produces a debug binary) if none of the above exist.

The selected path is printed before the server starts:

Using binary: /usr/bin/ahdapa

Log verbosity

All scripts default to RUST_LOG=ahdapa=debug,info (ahdapa debug messages plus info level for all other crates). Set RUST_LOG in the environment before running a script to override:

# Quieter — ahdapa info only
RUST_LOG=info contrib/demo/run.sh

# More verbose — trace everything
RUST_LOG=trace contrib/demo/run.sh