Mount path
The prefix where an auth method or secrets engine is enabled.
Chapter 3 of 16 · Human user · Priya
Translate one operation across CLI and HTTP API, and distinguish a mount path from the engine-specific API path.
Chapter 2 complete, the shared lab running, and learner.env sourced.
Priya can translate a CLI operation into its exact HTTP mount and KV v2 API route.
| Owner | Consumer-facing responsibility |
|---|---|
| You own | Defines consumption, validation, reload, and stop-using behavior. |
| Platform team owns | Provides trusted runtime identity, protected delivery, network, and telemetry. |
| Vault owns | Operates auth mounts, policies, engines, audit, and recovery. |
The prefix where an auth method or secrets engine is enabled.
The complete route, including engine-specific data or metadata segments.
A human interface that translates commands into HTTP requests.
A human and operator surface, not an application integration.
source learn-vault/.runtime/learner.env
vault secrets list -format=json | jq 'keys'
vault kv metadata get -format=json lockbox-kv/orders-api | jq '{version:.data.current_version}'
curl --silent --show-error --header "X-Vault-Token: $VAULT_TOKEN" "$VAULT_ADDR/v1/lockbox-kv/metadata/orders-api" | jq '{version:.data.current_version}'| Symptom | CLI metadata works but the raw API returns 404. |
|---|---|
| Likely causes | The route omitted /v1, used a friendly KV path, or targeted the wrong mount. |
| Inspect safely | Compare vault secrets list with the API route and request metadata only. |
| Do not print | Expanded curl command, token header, or data response. |
Break it: Remove the KV v2 metadata segment from the HTTP route.
Fix it: Compare the friendly CLI path with the mounted engine's documented API path.
Escalate with time, endpoint, auth path, role, mount, namespace when relevant, status code, request ID, and sanitized error class. Never attach a credential or response body.
labs/bootstrap owns the disposable server, auth mounts, policies, roles, and engines; learner actions begin after setup.
$0; local containers only
Run labs/bootstrap/setup.sh and source .runtime/learner.env unless the chapter lab says AppRole alone is sufficient.
Compare CLI metadata with its HTTP equivalent, then deliberately omit the KV v2 metadata segment and inspect only the status.
source learn-vault/.runtime/learner.env
vault kv metadata get -format=json lockbox-kv/orders-api | jq -e '.data.current_version>=1'
status=$(curl --silent --output /dev/null --write-out '%{http_code}' --header "X-Vault-Token: $VAULT_TOKEN" "$VAULT_ADDR/v1/lockbox-kv/orders-api")
test "$status" = 404 && echo "expected wrong-path response"
Complete every item in the Verify section using metadata-only evidence; no secret value appears in terminal output or tracked files.
Use the Failure drill and Break it / fix it evidence fields. Stop before broadening policy, weakening identity or TLS checks, or copying secret-bearing diagnostics.
Unset VAULT_TOKEN when leaving the shell; retain the shared lab for the next chapter.
The contract records lockbox-kv as the mount and /v1/lockbox-kv/data/orders-api as the data route.
No. KV v2 HTTP reads include an engine-specific data segment.
No. Use the HTTP API or a supported client.
Consumers embed them in paths, policies, and configuration.
Metadata or selected non-secret fields, not the complete response.
CLI convenience hides API details; applications need the exact mounted-engine contract.