Monorepo Patterns
Hush v3 stores monorepo authority in encrypted repository documents instead of a plaintext routing file.
Current monorepo model
.hush/manifest.encrypted.hush/files/**.encryptedIn a monorepo, the manifest records:
- identities
- bundles
- targets
- imports
- file index metadata
The encrypted files hold the secret entries and readers that back those targets.
Typical repository shape
Directoryapps/
Directoryweb/
- …
Directoryapi/
- …
Directorypackages/
Directoryshared/
- …
Directory.hush/
- manifest.encrypted
Directoryfiles/
Directoryenv/
Directoryproject/
- shared.encrypted
- .sops.yaml
Recommended workflow
1. Bootstrap once
hush bootstrap2. Inspect the current repo state
hush config showhush config show fileshush config active-identity3. Add shared secrets
hush set DATABASE_URLhush set STRIPE_SECRET_KEY4. Run a specific target
hush run -t api -- wrangler devhush run -t runtime -- npm run devHow to think about targets in v3
Targets are now part of the encrypted repository manifest. Use hush config to inspect them and the file documents they depend on.
That means the current guidance for monorepos is:
- bootstrap the
.hush/repo - inspect targets and files with
hush config - keep shared authority in encrypted file documents
- run commands through
hush run
Example review loop
hush config showhush config show fileshush inspecthush run -- npm run devLegacy repositories
If a monorepo still uses legacy include/exclude target rules in hush.yaml, treat that as migration-only state.
hush migrate --from v2hush migrate --from v2 --cleanup