Local/edge simulator of the farmer.online IdP + PII data plane — synthetic data only, NOT production.
Issuer: https://vault-dev.farmer.online · Keys: /.well-known/jwks.json · Health: /health
| Method | Path | Purpose |
|---|---|---|
| GET | /health | liveness + jurisdiction |
| POST | /v1/dek | generate a data encryption key |
| POST | /v1/keys/wrap | wrap DEKs under the CMK |
| POST | /v1/keys/unwrap | consent-gated ECDH unwrap (centerpiece) |
| POST | /v1/pii/tokenize | store pre-encrypted PII, return tokens |
| POST | /v1/pii/detokenize | resolve tokens to ciphertext (never plaintext) |
| GET | /v1/vault/:farmer_id/fields | list field metadata |
| GET | /v1/gdpr/status/:farmer_id | subject state + counts |
| POST | /v1/gdpr/export | export a subject's data |
| POST | /v1/gdpr/erasure | erase a subject (RTBF) |
Plaintext PII exists only in the browser. Encrypt with a per-field DEK, wrap via /v1/keys/wrap, tokenize, then read back via detokenize + consent-gated ECDH unwrap. See the README and client/farmer-sdk.ts.