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
//! Integration-side online provisioning workflow.
//!
//! This module is the orchestration layer **above**
//! [`crate::provision_integration`] (wire types) and below the consumer-side
//! UI (TUI, headless CLI, custom). A setup tool that needs to onboard a new
//! integration (mediator, webvh control/daemon/server, future app) against a running VTA
//! drives the workflow through [`run_provision`] (or the lower-level
//! [`provision_via_didcomm`] / [`provision_via_rest`] entry points) and
//! consumes [`VtaEvent`]s on a channel it owns.
//!
//! # Provisioning vs runtime startup
//!
//! Don't confuse this module with [`crate::integration::startup`]. They sit
//! at different points in an integration's lifecycle:
//!
//! - **`provision_client`** (this module) — *one-shot, first-boot*. Mints a
//! setup `did:key`, asks the VTA to provision a new integration via a DID
//! template, opens the sealed response bundle, and returns the integration
//! DID + private keys + admin credential. Runs once per integration.
//!
//! - **`integration::startup`** — *every-boot, runtime*. Loads
//! already-provisioned credentials and opens a steady-state authenticated
//! session with the VTA. Runs on every process start.
//!
//! If you're writing setup tooling, you want this module. If you're writing
//! the integration itself, you want `integration::startup`.
//!
//! # TUI-agnostic
//!
//! Nothing in this module depends on a TUI library and nothing writes to
//! stdout/stderr outside [`driver`] (the bundled headless helper, which
//! takes a `&mut dyn Write`). All operator-visible progress is emitted as
//! [`VtaEvent`] values on a consumer-owned `mpsc::Sender`. Consumers route
//! those events into ratatui state, log lines, structured telemetry, or
//! whatever else they need.
//!
//! # Wire format
//!
//! This module never invents wire shapes. The bootstrap request, sealed
//! response, and producer assertion all sit on top of the formats defined
//! by [`crate::provision_integration`] and [`crate::sealed_transfer`]. See
//! the workspace `docs/03-integrating/provision-integration.md` for the
//! end-to-end flow.
pub
/// Test fixtures available to downstream integration tests.
/// Gated by both `provision-client` (this module) and `test-support`.
pub use ;
pub use ;
pub use ;
pub use ;
pub use ProvisionError;
pub use ;
pub use ;
pub use ;
pub use ;
pub use ;
pub use EphemeralSetupKey;