-
-
Notifications
You must be signed in to change notification settings - Fork 1
Secret Masking
wip masks secret-looking values in two places: wip config output, and --debug command logs.
Neither is encryption — they exist so that pasting output into an issue or a chat doesn't leak
credentials.
Any key matching this pattern, case-insensitively, has its value replaced with [REDACTED]:
token | password | secret | credential | auth
The match is a substring match on the key name, applied recursively through the whole config — nested hashes and arrays included.
$ wip config
---
dependencies:
development.mysql:
env:
MYSQL_ROOT_PASSWORD: "[REDACTED]"
MYSQL_DATABASE: developmentMYSQL_ROOT_PASSWORD matches (password). MYSQL_DATABASE doesn't, and is printed as-is.
The pattern is a heuristic on key names. These are not masked:
env:
API_KEY: sk-live-… # "key" isn't in the pattern
DATABASE_URL: postgres://user:pw@db/app # secret is inside the value
PRIVATE_PEM: "-----BEGIN…"Don't treat unmasked output as "safe to share" — read it before pasting.
Every logged command masks -e KEY=value pairs, regardless of the key name:
$ wip rails c --debug
wip: [debug] running: wslc.exe exec -it -w /app -e RAILS_ENV=*** -e DATABASE_URL=*** app bin/rails cThis is a blanket rule on the flag, not a pattern on the key — so it covers API_KEY and
DATABASE_URL too. Other flags (-v, -p, -u) are printed verbatim, so a credential embedded
in a volume path or a URL passed as a positional argument would still show.
-
wip.ymlon disk is a plain file. Committing secrets there commits them. -
The container's environment. Anything you pass reaches the process;
wslc exec … envshows it. - Shell history, if you pass secrets as CLI arguments to an interaction.
-
The
.envfile, unless it's gitignored.
- Keep real secrets in
.env, notwip.yml. - Make sure
.envis ignored:echo '.env' >> .gitignore git check-ignore .env
- Reference them from
wip.ymlonly by name (they're merged in automatically — see Env Files). - For anything genuinely sensitive, prefer your runtime environment or a secret manager over a file in the repo at all.
- Env Files
- wip config
- Debug Output
- Reporting Issues — what's safe to attach to a bug report
Introduction
Modes
Configuration
- Configuration Reference
- Config File Discovery
- Dependencies
- Networking
- Interactions
- Restart Policies
- Env Files
- Secret Masking
- Dockerignore
- Shadow Build Context
- Source Sync
- Sync Modes
compose.yml support
- Compose File Support
- Compose Build
- Compose Depends On
- Compose Profiles
- Compose Variable Interpolation
Commands
- CLI Command Reference
- wip init
- wip version
- wip doctor
- wip config
- wip build
- wip up
- wip stop
- wip down
- wip exec
- wip run
- wip shell
- wip logs
- wip sync
- wip dispatch
- Global Options
- Debug Output
- TTY Allocation
Guides
- Guides
- Migrating from dip
- Reusing an Existing compose.yml
- Fixing a Slow Boot
- Continuous Sync
- Auto Restarting Containers
- Multi Arch Images
- Using wip in CI
Troubleshooting
- Troubleshooting & FAQ
- FAQ
- Configuration Errors
- WSLC Not Found
- Registry Authentication
- Architecture Mismatch
- Volume Limit Reached
- rsync Not Found
- Reporting Issues
Comparison
Project