Skip to content

[DISCUSSION] 终端创建时默认传入IDE Server的process env 是否合理? #932

@life2015

Description

@life2015

讨论内容:

终端创建时默认传入IDE Server的process env 是否合理?

在IDE Server的开发与部署中,遇到了使用CloudIDE开发的项目环境变量不符合用户预期的情况。比如说因为IDE Server是以生产模式部署,因此NODE_ENV变量为production,这就导致了使用CloudIDE 开发前端项目时npm行为不符合预期。

总之,被注入到终端中的环境变量会变得不可控或者不符合预期。

个人的看法是:process.env 注入终端的变量按需获取,采用白名单机制而不是黑名单机制。至于用户终端的环境变量具体是什么,要按照Linux的系统机制来,根据.bashrc / .bash_profile 这些机制来。

目前尽管我们的Terminal Profile Api提供了StrictEnv的能力,但是默认黑名单机制注入process.env 依然有不妥,尤其是在IDE Server部署环境鱼龙混杂的情况下。

因为process.env被污染的用户开发空间截图示例
image

目前的pty逻辑:
image

项目:终端改造:

关联PR #713
关联ISSUE #803

Metadata

Metadata

Assignees

No one assigned

    Labels

    🐞 bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions