bastion agent 0.1.17
ci / personal-data (push) Successful in 3s
ci / test (push) Successful in 45s
ci / reproducible (push) Successful in 3s

This commit is contained in:
Privatae
2026-10-29 21:42:06 +00:00
parent e3074f50b0
commit 3ae3a2841c
22 changed files with 226 additions and 81 deletions
+13 -6
View File
@@ -12,8 +12,11 @@ reads the extract index and store and writes:
- **`sanitize/<aa>/<sha256>.txt`**: the sanitized text store. Personal data is
replaced by stable `[PII_TYPE_n]` tokens. **From this stage on, later
stages read only this store.** The extract store keeps the plaintext and
never leaves the machine.
stages read only this store.** The extract store keeps the plaintext. The
agent never serves it, and while it is in `.agent/` (the default) a
bastion from 0.58.1 on does not either. An older bastion lets a folder
grant with `read` reach it there unless the grant excludes `.agent`
([runtime.md](runtime.md#where-an-agent-lives-rootagent)).
- **`vault.db`**: the token-to-value map (in-process mode only), created 0600
under umask 077. It is the only way back from a token to a value, and it
stays on the machine. It is `<out>/sanitize/vault.db`, or
@@ -50,10 +53,14 @@ stages, there is no extract index, or the stage **stopped**; `2` completed with
employers, medical facts) is found by the recall pass.
- **`flag`**: the rules pass **only**: deterministic, no model, milliseconds.
It replaces the anchors a pattern can find: e-mail addresses, phone
numbers, SSNs, cards, IBANs, routing numbers, crypto addresses, IP and MAC
addresses, API keys, private-key blocks, JWTs. It can also replace an
ordinary number that looks like a phone or ID number. **It does not find names,
street addresses, dates of birth**, or anything else that takes reading for
numbers, SSNs, cards, IBANs, US routing numbers after a cue word, legacy and
P2SH Bitcoin addresses, IP and MAC addresses, API keys, private-key blocks,
JWTs ([the list](pii-sterilization.md#the-rules-pass-piidetectpy)). Other
bank account numbers, other crypto addresses (`bc1…`, Ethereum) and ID
numbers such as passport numbers are not found. It can also replace an
ordinary number that looks like a phone, card or social security number.
**It does not find names, street addresses, dates of birth**, or anything
else that takes reading for
meaning (an employer, a school, a medical fact). It is the mode the bastion
writes into every manifest it deploys. A flag-mode catalog is not free of
personal data, and the manifest doc says so too.