Skip to content

Security & redaction

Mark secrets

Use @secret() on fields that contain sensitive values (passwords, tokens).

ts
export class DbSettings extends BaseSettings {
  @setting.string()
  @secret()
  connectionString = 'mongodb://...'
}

Safe JSON dumps

BaseSettings.toJSON() redacts secret fields as '****'. Therefore dumping the settings object is safe for logging:

ts
console.log(JSON.stringify(settings, null, 2))

Caveats

  • Redaction is for JSON dumps; code can still read and print the raw secret. Treat secrets with care in application logs.
  • Consider environment separation and minimal privileges for secret stores.

Released under the MIT License.