Catalog admission and infrastructure ownership are separate decisions. A lane
may already exist on a shared OpenBao mount and already reach its workload
through External Secrets Operator or Kubernetes auth. Adding that lane to the
secrets-engine catalog must not imply that secrets-engine may create the mount,
replace workload delivery, or broaden an existing role.
## Admission dimensions
### Mount management
`mount_management` describes only who creates the OpenBao secrets-engine mount.
| Value | Plan and apply behavior |
| --- | --- |
| `engine` | The guarded plan may include a `kv-mount` action; apply ensures the mount exists. This is the compatibility default for existing catalog entries. |
| `existing` | The plan emits a non-mutating `kv-mount-check`; apply never calls mount creation. Provisioning may still update the exact cataloged KV path after approval. |
Shared production mounts such as `platform` must use `existing` unless a
separate infrastructure decision explicitly delegates mount administration.
### Native delivery authentication
`delivery_auth` describes how secrets-engine itself obtains a scoped token for
positive verification and exec-time delivery. It does not describe or replace
workload authentication.
```yaml
delivery_auth:
method: approle
management: engine
# Optional safe overrides when the catalog id contains an admin-like term.
policy_name: se-prod-forgejo-operator-token
role_name: se-prod-forgejo-operator-token
```
| Management | Meaning |
| --- | --- |
| `engine` | A reviewed apply may create/update the exact read policy and AppRole for this lane. |
| `existing` | Policy and AppRole are externally managed. `role_name` is mandatory; plan/apply emit checks only and never mutate either object. |
| `none` | No native verification or exec delivery is available. Use only for catalog-only metadata without native delivery modes. |
The current native implementation supports AppRole. An entry that declares
`exec-env`, `exec-file`, `npm-config`, `read-check`, or `wrapped` must therefore