Migration Guide
This guide covers migrating from legacy patterns to the current credential architecture.1. Choose Your Authentication Method
ID Wispera supports multiple authentication methods. Choose the one that best fits your environment:| Environment | Recommended Method | Setup |
|---|---|---|
| Local development (macOS/Linux desktop) | OS Keychain | idw auth login |
| CI / Headless | Session tokens | idw auth token create |
| Containers, WSL, minimal Linux | IDW_PASSPHRASE via .env file | Create .env with chmod 600 |
| Interactive CLI | Prompt | Automatic fallback |
Local Development — Use Keychain
Store the passphrase in your OS keychain for seamless access:idw command.
CI / Headless — Use Session Tokens
For CI pipelines, use a session token:Containers / WSL — Use IDW_PASSPHRASE
For environments without an OS keychain, useIDW_PASSPHRASE via environment variable or .env file:
2. Migrate Provider Admin Keys to Vault Passports
Provider admin credentials (AWS keys, OpenAI admin keys, etc.) should no longer live in plaintext environment variables. Store them as encryptedprivilege passports in the vault.
Option A: Interactive Bootstrap
The fastest path — the wizard prompts for each provider’s admin credentials:- Visa type:
privilege - Tags:
admin,admin:<provider>,provisioning
Option B: Manual Import
Import admin keys individually:The
--stdin flag replaces the removed --value flag. Credentials are read from stdin in non-interactive mode.Update Provisioning Code
Once admin passports are in the vault,provisionAndCreatePassport() resolves auth automatically:
3. Update Python Integration Code
WisperaToolCredentials
WisperaToolCredentials no longer injects credentials into os.environ. It now provides a get(key) method and clears credentials on context manager exit.
LangChain and CrewAI Secret Managers
Thepassphrase parameter is deprecated in WisperaLangChainSecretManager and WisperaCrewAISecretManager. The vault passphrase is now resolved through the standard auth chain (keychain / session token / IDW_PASSPHRASE).
4. Update idw create Commands
The --value <val> flag has been removed. Use --stdin instead:
5. Use idw exec for Credential Injection
Instead of exporting credentials as environment variables, use idw exec to inject them into subprocesses securely:
6. Handle Post-Import Warnings
Allidw import paths now warn users to securely delete source files that still contain plaintext credentials. After importing:
Migration Checklist
| Step | Action | Verify |
|---|---|---|
| 1 | Choose auth method (keychain, session token, or IDW_PASSPHRASE) | idw auth status shows correct source |
| 2 | Run idw auth login (if using keychain) | Passphrase stored in keychain |
| 3 | Create session tokens for CI (if applicable) | idw auth token list shows tokens |
| 4 | Run idw auth bootstrap | Admin passports created with privilege visa |
| 5 | Remove admin keys from env vars | env | grep -i admin returns nothing |
| 6 | Update provisioning code | Remove explicit auth parameter |
| 7 | Update Python WisperaToolCredentials | Use creds.get() instead of os.environ |
| 8 | Replace --value with --stdin | All idw create commands updated |
| 9 | Adopt idw exec for credential injection | No credentials exported in shell profiles |
Next Steps
Authentication
Full reference for passphrase resolution, session tokens, and admin passports.
Credential injection
Securely inject vault credentials into subprocesses with
idw exec.Security architecture
Updated threat model including session token design.