Skip to main content

28 posts tagged with "dotenvx"

dotenvx

View All Tags

Dotenvx的软连接特性,让命令自动感知配置

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

在日常开发中,开发人员都会将测试用到的配置提前写好,如在.env中设置对应的数据库连接信息等, 如你使用Bun SQL特性,你已经在.env中设置好了数据库连接信息,如下:

DATABASE_URL="mysql://root:this_is_long_password@localhost:3306/test"

但是有时你需要连接其他的数据库进行测试,这个时候你需要输入mysql -u root -p123456 -h localhost -P 3306 test,然后再输入密码, 这样有时比较麻烦,尤其是密码比较复杂时,你也不能将--password=xxx直接写在命令行中,毕竟有些命令行会被记录到~/.bash_history中,会有安全隐患。

Dotenvx你既然已经管理了.env文件中的敏感信息,那么你能否帮我连接到MySQL上?

dotenvx和语言SDK集成,让.env加密特性使用更简单

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

在做Dotenvx JetBrains IDE插件时,遇到一个Python和Dotenvx集成的问题,其实JetBrains IDE是支持该扩展的, 但是该API是内部的,并没有公开,导致插件兼容性的问题,所以审核比较麻烦,该特性一直都没有上线。

但是大家不用担心,还有一个简单的方式,就是通过调整Python SDK的命令行方式来集成Dotenvx。 假设你使用uv管理Python项目,你使用Python 3.13.7最新版本,uv会创建对应的virtualenv环境, 对应的python解析器为.venv/bin/python,该命令行其实是软连接到具体的Python版本目录下的。

AI编程:配置先行

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

代码和配置分离,这是软件开发的一个重要原则,如果你还不早知道道这个原则,那么请移步到12 Factor - Config。 配置文件通常包含应用程序的各种参数和设置,如数据库连接信息、API密钥、Base URL等。

在AI编程时代,我们的一些开发习惯可能要改变,典型的就是文档现行。我看过不少团队的项目,产品都上线有一年多,但是项目的README.md文件还是空的。 也不能说完全没有文档,如架构设计等,这些文档都保存在外部系统中,如语雀等,可以说很好地"实践"了代码和文档的隔离。

但是在AI的场景下,这种Demo先行、文档和代码分离的做法,可能就不太适用啦。 大家在项目创建完毕后,或者直接让AI帮助你创建项目框架。 项目创建后,你马上要做的事情就是编辑CLAUDE.md, AGENTS.md.cursor/rules/xxx.md等文件,当然也可以是README.md文件。 这些文件的内容主要是告诉AI你项目的全部上下文,包括项目的目标、功能、技术栈、依赖、数据库结构、配置等等,这样AI才能更好地帮助你完成代码的编写工作。

对的,我们在项目的上下文中明确了配置,对比项目的目标、功能、技术栈等,配置的重要性也非常重要,因为这些配置直接影响到代码的生成。

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文件有一个显著的缺点:它不安全。