Skip to main content

Dotenvx如何处理.env文件变量和环境变量的冲突?

· 3 min read
Libing Chen
Java程序员,兼全栈、Rust和AI开发

我们都知道.env文件中的变量通常会加载到环境变量中,但是有一些例外,如Java,dotenv-java不会覆盖环境变量,主要是Java不允许覆盖环境变量。 但是对于大多数语言来说,.env文件中的变量会融合到环境变量中,如果环境变量中已经存在同名变量,那么该如何处理呢?

目前主流的做法采取的是环境变量优先原则,也就是如果环境变量中已经存在同名变量,那么.env文件中的变量将被忽略,除非你在加载.env文件时, 明确指定覆盖环境变量,如Python的python-dotenv库,提供了override参数,设置为True即可覆盖环境变量。

Dotenvx全局秘钥存储格式变更,更好地支持后续特性

· 2 min read
Libing Chen
Java程序员,兼全栈、Rust和AI开发

dotenvx的秘钥之前都是保存在项目目录下的.env.keys文件中,其格式如下:

DOTENV_PRIVATE_KEY=c4e79fecc6bfeb1fe3bf4d783ddf3303xxx
DOTENV_PRIVATE_KEY_TEST=82056174ece6e87e76084c224ayyyy
DOTENV_PRIVATE_KEY_PERF=fc9067f0a82c022fedbc221a169zzzzz

但是考虑到当下的AI编程大潮下,将.env.keys文件放在项目目录下,会被AI Agent或者AI IDE扫描,容易造成秘钥泄露, 所以个人决定接入全局秘钥存储文件,并且将其放在$HOME/.dotenvx/.env.keys.json文件中,这样就不再需要.env.keys文件, 私钥的查询都是走全局的.env.keys.json文件。 此外dotenvx命令行还提供了dotenvx --seal命令,对次文件进行加密保存,保证安全。

Dotenvx JetBrains IDE插件发布

· 2 min read
Libing Chen
Java程序员,兼全栈、Rust和AI开发

Dotenvx Rust命令行工具小巧,性能高,使用也非常简单,但是在一些场景中,还是不够便捷。 如我在IDE已经打开了代码,突然不能确认某一个配置项是否正确,我还需要返回Terminal终端, 然后输入各种命令来查看配置项的值,虽然简单,但是还是有点麻烦。

为了解决这个问题,我们提供了一个JetBrains IDE的插件:dotenvx JetBrains Plugin

Dotenvx vs Vault: 哪个更适合应用配置和秘密管理?

· 4 min read
Libing Chen
Java程序员,兼全栈、Rust和AI开发

Vault作为一款领先的私密信息管理工具,已经被广泛应用于各种规模的企业中。它提供了强大的功能来保护敏感数据,如动态凭证生成、密钥管理和访问控制等。 不少同学都会使用Vault Secret存储应用的配置和秘密信息,比如数据库密码、API密钥等,对于Java开发者来说, Spring Cloud Vault提供了无缝集成,使得在Spring Boot应用中使用Vault变得非常简单。

Dotenvx: 让.env、.properties等配置文件更易用,更安全

· 7 min read
Libing Chen
Java程序员,兼全栈、Rust和AI开发

.env文件是很多开发者熟悉的配置文件格式,它也在The Twelve-Factor App之配置篇受到推荐。 它的优点是简单易用,支持多种语言和框架,广泛应用于各种项目中,尤其是在Node.jsp和Python等应用中, Go语言的GoFr框架,也默认使用.env文件来存储配置。

.env做一个配置文件的好处是它简单易用,支持多种语言和框架,广泛应用于各种项目中。 但是.env文件有一个显著的缺点:它不安全。