Skip to content

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.

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.

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.

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.

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).

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).

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 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).

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).

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.

TermSourceLines
Non-possessionVISION.md18-21
CredentialAliasalias.rs18-21
Placeholderalias.rs151-166
ContainmentRulepolicy.rs123-206
WorkloadIdentityauth.rs13-21
AuditEvent / AuditPhaseaudit.rs104-110
Effect / Decisionpolicy.rs98-102
SecretStoresecret_store.rs45-51
Execution modetyped_action.rs1-22