Back to Nocobase

变量和密钥

docs/docs/cn/ops-management/variables-and-secrets/index.md

2.0.486.0 KB
Original Source

变量和密钥

<PluginInfo name="environment-variables"></PluginInfo>

介绍

集中配置和管理环境变量和密钥,用于敏感数据存储、配置数据重用、环境配置隔离等。

.env 的区别

特性.env 文件动态配置的环境变量和密钥
存储位置存储在项目根目录的 .env 文件中存储在数据库 environmentVariables 表里
加载方式通过 dotenv 等工具在应用启动时加载到 process.env动态读取,在应用启动时加载到 app.environment
修改方式需要直接编辑文件,修改后需要重启应用才能生效支持在运行时修改,修改后直接重载应用配置即可
环境隔离每个环境(开发、测试、生产)需要单独维护 .env 文件每个环境(开发、测试、生产)需要单独维护 environmentVariables 表的数据
适用场景适合固定的静态配置,如应用主数据库信息适合需要频繁调整或与业务逻辑绑定的动态配置,如外部数据库、文件存储等信息

安装

内置插件,无需单独安装。

用途

配置数据重用

例如工作流多个地方需要邮件节点,都需要配置 SMTP,就可以将通用的 SMTP 配置存到环境变量里。

敏感数据存储

各种外部数据库的数据库配置信息、云文件存储密钥等数据的存储等。

环境配置隔离

在软件开发、测试和生产等不同环境中,使用独立的配置管理策略来确保每个环境的配置和数据互不干扰。每个环境有各自独立的设置、变量和资源,这样可以避免开发、测试和生产环境之间的冲突,同时确保系统在每个环境中都能按预期运行。

例如,文件存储服务,开发环境和生产环境的配置可能不同,如下:

开发环境

bash
FILE_STORAGE_OSS_BASE_URL=dev-storage.nocobase.com
FILE_STORAGE_OSS_BUCKET=dev-storage

生产环境

bash
FILE_STORAGE_OSS_BASE_URL=prod-storage.nocobase.com
FILE_STORAGE_OSS_BUCKET=prod-storage

环境变量管理

添加环境变量

  • 支持单个和批量添加
  • 支持明文和加密

单个添加

批量添加

注意事项

重启应用

修改或删除环境变量之后,顶部会出现重启应用的提示,重启之后变更的环境变量才会生效。

加密存储

环境变量的加密数据使用 AES 对称加密,加解密的 PRIVATE KEY 存储在 storage 里,请妥善保管,丢失或重写,加密的数据将无法解密。

bash
./storage/environment-variables/<app-name>/aes_key.dat

目前支持环境变量的插件

Action: Custom request

Auth: CAS

Auth: DingTalk

Auth: LDAP

Auth: OIDC

Auth: SAML

Auth: WeCom

Data source: External MariaDB

Data source: External MySQL

Data source: External Oracle

Data source: External PostgreSQL

Data source: External SQL Server

Data source: KingbaseES

Data source: REST API

File storage: Local

File storage: Aliyun OSS

File storage: Amazon S3

File storage: Tencent COS

File storage: S3 Pro

未适配

Map: AMap

Map: Google

Email settings

未适配

Notification: Email

Public forms

System settings

Verification: Aliyun SMS

Verification: Tencent SMS

Workflow