Concepts
This page owns Mint's stable terms. Every other page links here instead of redefining a word. Each term below names the doctrine (VISION.md) alongside the exact type or function that implements it today.
Non-possession
Section titled “Non-possession”Mint's governing rule: transferable vendor credential bytes never enter an
agent-accessible surface — process memory, argv, files, logs, prompts,
transcripts, tool results, or responses (VISION.md:18-21). The fleet also
calls this "zero raw-secret possession"
(docs/secrets-ideation.md:7-9). See Design rationale
for why this shapes every other design choice.
CredentialAlias
Section titled “CredentialAlias”A non-secret name for one custody entry: a service plus a name
(crates/mint-core/src/alias.rs:18-21). An alias carries no secret value —
only a coordinate the broker resolves at request time.
Placeholder
Section titled “Placeholder”The literal text __mint.<service>.<name>__, written in place of a
credential (crates/mint-core/src/alias.rs:49,60). find_placeholders
locates every occurrence in a request
(crates/mint-core/src/alias.rs:155-156); the broker substitutes the
resolved secret only into that exact span.
ContainmentRule
Section titled “ContainmentRule”VISION.md's name for one entry in a Policy
(VISION.md:114-116), implemented as PolicyRule
(crates/mint-core/src/policy.rs:123-206). A rule binds an actor,
workspace, service, method, path, and the credential aliases it may inject,
evaluated first-match-wins (crates/mint-core/src/policy.rs:245-249). An
empty aliases list means "may call this host, may inject nothing" —
deny-by-default for injection (crates/mint-core/src/policy.rs:144-150).
WorkloadIdentity
Section titled “WorkloadIdentity”VISION.md's name for the caller identity Mint resolves before touching any
secret (VISION.md:117), implemented as AuthenticatedActor: an actor tag
and optional workspace, never a vendor credential
(crates/mint-broker/src/auth.rs:13-21).
AuditEvent
Section titled “AuditEvent”A secret-free record of one attempted credential use
(VISION.md:119, crates/mint-core/src/audit.rs). Every event carries an
AuditPhase: Prepared before any vendor contact, then a terminal
Observed, Denied, or Indeterminate
(crates/mint-core/src/audit.rs:104-110).
Effect and Decision
Section titled “Effect and Decision”Effect is binary — Allow or Deny
(crates/mint-core/src/policy.rs:98-102). A Decision is what
Policy::evaluate/evaluate_tool returns for one call: the effect, which
rule matched, and the aliases/schemes that call may use
(crates/mint-core/src/policy.rs:286-300).
SecretStore
Section titled “SecretStore”The custody trait behind every alias (crates/mint-core/src/secret_store.rs:49-51).
Mint ships three implementations: KeychainStore for the macOS login
keychain (crates/mint-core/src/secret_store.rs:53-72), EnvStore for the
process environment (crates/mint-core/src/secret_store.rs:222-239), and
CredentialDirectoryStore for systemd credentials
(crates/mint-core/src/secret_store.rs:301-314). Mint is not itself a
secret store — this trait is the seam where custody plugs in
(crates/mint-core/src/secret_store.rs:45-48).
Execution mode
Section titled “Execution mode”Two ways a ContainmentRule can be reached. The egress proxy relays a
caller's HTTP request after substitution, forwarding, scrubbing, and audit
(crates/mint-broker/src/lib.rs:1-12). A typed action is a fixed,
Mint-owned sequence of vendor calls with a bounded input and output schema;
exactly one is registered today
(crates/mint-core/src/typed_action.rs:67). See
Design rationale for why both exist.
Source map
Section titled “Source map”| Term | Source | Lines |
|---|---|---|
| Non-possession | VISION.md | 18-21 |
| CredentialAlias | alias.rs | 18-21 |
| Placeholder | alias.rs | 151-166 |
| ContainmentRule | policy.rs | 123-206 |
| WorkloadIdentity | auth.rs | 13-21 |
| AuditEvent / AuditPhase | audit.rs | 104-110 |
| Effect / Decision | policy.rs | 98-102 |
| SecretStore | secret_store.rs | 45-51 |
| Execution mode | typed_action.rs | 1-22 |