Do this first (this week) β
Mission: FLASH is the first line of privacy protection while AI is built. Who is responsible.
By default flash-zk is strong. You can weaken it. It stays strong if you keep the key and do not use the knobs below.
On 1.3.x a few switches still exist that weaken the model. Use none of them. They are going away. Do the list below before new features.
1. Seal the master key today β
Do not put secretKey in source, in npm, or in chat logs.
npm install flash-zk
flashsh wrap-key
echo ".flash-wrap" >> .gitignore| File | Commit? |
|---|---|
.flash-take | Yes β sealed master (FLASHTAKE1) |
.flash-wrap | Never β this unwraps the master |
import { FlashClient } from "flash-zk";
const client = new FlashClient({
storagePath: "./flash_data",
});If you still pass secretKey, keep it in a secret manager or env β never hardcoded. Prefer wrap files.
Details: flashsh CLI.
2. Do not disable protection β
These are valid on 1.3.x and wrong for production. Stop using them now so a later engine release does not break you.
| Stop | Use instead |
|---|---|
allowPlaintextFields: true | Encrypted fields only |
fieldPolicy: { β¦: "plaintext" } | "encrypted" Β· "exact" Β· "searchable" Β· "counter" |
engineOptions: { disableMerkle: true } | Leave Merkle on |
performanceProfile: "turbo" with Merkle off | turbo is throughput only β set disableMerkle: false until the default changes |
Binding 0.0.0.0 without allowPublicBind | Bind localhost, or set allowPublicBind: true only if you mean a public daemon + strong authKey |
FLASH will refuse these knobs. Migrating this week is cheaper than migrating on the cut. The full list of planned raises: Security ahead.
3. Strong secrets on every network surface β
Minimum 16 bytes, not changeme / secret / password.
- Remote
FlashClientβauthKey FlashServer/ gRPC / replication βauthKey- Intelligence Console β
token
Weak values already fail closed. Do not look for a bypass.
4. You hold the key β protect the holder β
FLASH cannot decrypt without you. That is the point. It also means:
- Whoever can read
.flash-wrapor the process memory can read data. - The Intelligence Console is a local keyholder, not a blind remote admin.
- Searchable indexes still leak patterns (trapdoors, ranges). Design as if an observer sees structure, not plaintext.
Full limits: Trust Model.
Not this week β
Do not wait for a post-quantum rename, ORAM, or an external audit before doing the four items above.
Do not add a server-side decrypt βfor ops.β That is a backdoor. Query and SQL stay on FlashClient.
Do not invent a second encryption layer on the daemon. The engine is already blind; a second key on the server undoes it.
Next β
- Mission & responsibility β first-line privacy while AI is created; your real job
- Security ahead β what FLASH will tighten next; no surprise
- Getting Started β Private RAG, agent memory, vault in five minutes
- What's New in 1.3.1 β this release is docs only; no extra code
- Trust Model & Audit Roadmap