In fnox 1.42.0, fnox export can export only the secrets you name, and the azure-token lease can authenticate with an Azure managed identity. This release also fixes the AWS SSO login prompt for templated profiles, stops fnox sync --local-file from deleting personal secrets, and updates the bundled TLS root certificates after the eMudhra CA compromise.
Added
- Export only named secrets (#1002) by @jdx.
fnox exportnow takes optionalKEYarguments. When you pass keys, fnox resolves and exports only those secrets, so it doesn't need to authenticate to providers for the rest of the profile. It still resolves the secrets they depend on for interpolation, but doesn't export them. A named key is exported whatever itsenvsetting, so you don't need--all. An unknown key fails with the same "did you mean" suggestions asfnox get. Format,--output,--dry-runandas_filework the same as before, and runningfnox exportwithout keys behaves as it did.fnox export API_KEY fnox export --format json DATABASE_URL API_KEY
- Managed identity for the
azure-tokenlease (#1003) by @jdx. The lease now accepts the sameauthandmanaged_identity_client_idsettings asazure-sm,azure-kmsandazure-ac. CI jobs on Azure-hosted runners no longer need to install the Azure CLI and runaz login --identityjust for the lease. You have to turn managed identity on withauth = "managed-identity"; fnox never tries it on its own. Without it, fnox still uses service principal environment variables and thenaz/azd. In managed identity mode, fnox doesn't check forazonPATH. Settingmanaged_identity_client_idwithoutauth = "managed-identity", or using an unknownauthvalue, is a config error.[leases.azure-openai-access-token] type = "azure-token" scope = "https://ai.azure.com/.default" env_var = "AI_ACCESS_TOKEN" auth = "managed-identity" managed_identity_client_id = "00000000-0000-0000-0000-000000000000" # omit for system-assigned
Fixed
- AWS SSO login prompt with templated or secret-based profiles (#998) by @balintant. When
profilewas a template such as"{{ fnox.profile }}", theaws-kms,aws-psandaws-smproviders offered to runaws sso login --profile '{{ fnox.profile }}', and that command failed. The prompt now uses the provider's resolved profile, for exampleaws sso login --profile production. A profile set withprofile = { secret = "..." }also gets its resolved name now; before, fnox ran a bareaws sso login. Anauth_commandyou configure still takes precedence. fnox sync --local-filedeleting personal secrets (#1004) by @jdx. When you ran the sync a second time, fnox mistook secrets defined only infnox.local.tomlfor cached copies of shared secrets and deleted their source references. Synced entries for these secrets now recordlocal_source = truein theirsyncblock. fnox keeps and refreshes those entries on every sync. Cached copies of sharedfnox.tomlsecrets are still removed when the shared secret is deleted. Existing files work without changes. If this bug already removed one of your secrets, add it back tofnox.local.tomlonce and it will be kept from then on.- Revoked eMudhra intermediate certificates (#1005) by @jdx. The private keys of eight eMudhra intermediate CA certificates were compromised. fnox now uses
rustls-webpki0.103.16 andwebpki-root-certs/webpki-roots1.0.10, which stop trusting those certificates for HTTPS connections.
Full Changelog: v1.41.0...v1.42.0
💚 Sponsor fnox
fnox is built and maintained by @jdx, an open source developer at entire.io, the title sponsor of his open source work.
If fnox handles secrets or config for you or your team, please consider becoming an individual or company sponsor. Your support funds ongoing development and helps keep fnox secure, free, and independent.