返回首页
最新
如果您安装了 Notion 桌面应用程序,您可能已经开始注意到一个“正在开会吗?开始 AI 会议记录”的通知,恰好在您加入虚拟会议时弹出(例如,在 Firefox 上加入 Google Meet)。<p>起初,我以为它可能是在使用我的 Google Workspace 账户来窥探我的日历。但后来我开始注意到,即使我迟到了,会议已经开始,它仍然会在我加入时准确地发出通知。<p>这是 Notion 支持团队在与 Notion 工程团队合作后给出的回应。<p>> 会议检测架构:<p>> - 系统采用复杂的双重检测方法:麦克风监控结合网络端口分析<p>> - 检测在 macOS 和 Windows 上分别在本地操作系统级别实现<p>我已经卸载了 Notion 桌面应用程序……
WP-Node 是一个 TypeScript 项目,允许您使用 WordPress 数据库中的数据构建应用程序、脚本和自动化工具——完全不需要运行 WordPress PHP 运行时。
它为您提供:
* 对核心 WordPress 表(帖子、用户、分类、元数据等)的完全类型化访问
* 一个命令行界面框架,用于运行自定义命令、查询和迁移
* 用于构建无头 API 或后台作业(如定时任务)的工具
支持单站点和多站点的 WordPress。
您可以用它来:
* 在 Next.js、Express 或无服务器环境中构建应用
* 编写迁移脚本、清理工具或数据同步作业
* 如果您只需要数据库,避免处理 WordPress 的内部结构
它并不替代 WordPress——而是使使用 WordPress 作为后端变得更加容易。
欢迎来自其他在 WordPress 上构建工具或现代化遗留系统的人的反馈!
BEP 46 多年前就已经发布了。从那时起,许多文章讨论了可变种子(mutable torrents)将会是多么伟大的事情;人们也表示 libtorrent 支持它们。然而,当我四处查看时,却在主要的 BitTorrent 客户端文档中找不到任何关于它们的提及;而且,至少五年前的概念验证代码需要一些侦探工作才能满足 `npm install` 的要求。那么,事情的现状就是这样吗?一个 BEP,一些关于它会很酷的思考,还有损坏的代码?有没有可用的工具?如果有的话,在哪里可以找到?
嗨,HN,我在过去几周里构建了这个工具,以解决一个似乎在开发团队中普遍存在的问题:安全地共享环境变量。
你知道的,情况就是这样——有人需要暂存数据库的 URL,于是通过聊天分享。生产环境的 API 密钥最终以明文形式存储在文件中。或者你设置了一个复杂的秘密管理系统,但在关键部署时却成为了单点故障。
在 Zerodha,我们是一家受严格监管要求的股票经纪公司。我们的基础设施需要可审计,数据必须保留在我们手中以便即时恢复。但更深层次的问题是,我们尝试的每个解决方案都使得部署依赖于外部服务。
我们尝试了 GitLab CI 内置的秘密管理功能,但它们以未加密的形式存储,只有代码库维护者可以访问。HashiCorp Vault 管理起来太复杂,ACL 设置令人痛苦,而且现在因为 BSL 许可证的变更而受到限制。AWS Secrets Manager 会造成我们想要避免的供应商锁定。
当我们想通过 Terraform 管理秘密,以实现幂等性和更好的基础设施即代码实践时,问题达到了临界点。但 Terraform 没有内置的方式来加密秘密,而是依赖于外部提供者。我们只能在 Terraform 配置中以明文存储秘密,或者在我们的部署管道中添加另一个外部依赖。
就在这时,我想到一个主意:如果我们可以将加密的环境变量直接注入到 Terraform 中,那么任何拥有正确密钥的人都可以部署,而无需从不同系统中寻找秘密?随着我对这个想法的不断迭代,我意识到这种模式可以适用于任何应用程序——从个人项目到团队部署。
于是我构建了 kiln。它使用 age 加密将环境变量加密成与代码一起存放的文件。没有服务器,没有网络调用,没有外部依赖。每个团队成员都有自己的密钥,你可以按环境控制访问。
它的工作原理如下:
```
# 生成一个新的 age 密钥,或使用现有的 SSH 密钥
kiln init key
# 使用你团队的公钥初始化
kiln init config --recipients "alice=$(curl https://gitlab.company/alice.keys)" --recipients "me=$(cat ~/.ssh/id_ed25519.pub)"
# 设置秘密(安全提示,终端不会显示)
kiln set DATABASE_URL
kiln set API_KEY
# 使用解密的环境运行你的应用
kiln run npm start
# 这些加密文件可以安全地提交
git add .kiln.env kiln.toml
```
为什么不使用 SOPS?SOPS 非常适合一般文件加密,但 kiln 是专门为环境变量工作流而构建的。它有“run”、“export”等命令,以及内置的团队管理。可以把它想象成“针对 .env 文件的 SOPS”,专注于开发者的用户体验。
为什么不直接使用 age 加密?Age 非常适合加密层,但对于日常团队工作流来说却很糟糕。试想一下,如何使用原始的 age 命令管理 20 个团队成员跨越 5 个环境——你会发疯。kiln 处理了这一协调工作。
至于技术细节,kiln:
- 使用 age 加密(现代、经过审计、简单)
- 可以使用现有的 SSH 密钥或生成新的 age 密钥
- 通过 TOML 配置实现基于角色的访问
- 单一的跨平台 Go 二进制文件
- 零网络依赖——一切都可以离线工作
- MIT 许可证
改变游戏规则的是:秘密与代码一起流动。再也不用在聊天中问“有人能把暂存秘密发给我吗?”了。再也不会因为秘密服务宕机而导致部署失败。再也不必担心你的供应商会改变定价或许可。
试试看——我相信它会帮助改善你团队的部署工作流。如果你有任何问题,随时问我!
GitHub: [https://github.com/thunderbottom/kiln](https://github.com/thunderbottom/kiln)
文档: [https://kiln.sh](https://kiln.sh)
或者现在就安装:`go install github.com/thunderbottom/kiln@latest`
我是一名全栈开发者,专长于 .NET 和 React。目前我对低层次的项目产生了浓厚的兴趣,特别是 Linux 开发和嵌入式设计。
我有多个较小的 Pico 项目经验,但我明白这与嵌入式领域并不完全相关。从我的角度来看,这就像是有人构建了一个静态 HTML 网站,却申请全栈开发职位,但我不知道该如何解决这个问题。
网页开发领域和嵌入式领域感觉差异很大,因此我担心在当前的就业市场上,即使我全力以赴确保我的个人作品集展示了大量的嵌入式编程经验,我仍然不会被信任承担专业项目。
我曾参与多个初创企业的工作,每次寻找合适的设计合作伙伴都像是一个黑箱。大多数目录要么是付费的,要么内容冗杂,或者充满了噪音。
因此,我创建了 Find Design Agency——这是一个为重视清晰度、独创性和品味的创始人精心挑选的设计工作室集合。
我非常希望听到你的反馈,包括缺少什么、可以改进的地方,以及这是否解决了你曾经遇到的痛点。
在线访问: [https://finddesignagency.com](https://finddesignagency.com)