[WebIDE] Support Web IDE on GitLab Self-Managed instances in air-gapped environments
## Problem to solve We've heard feedback about errors loading the Web IDE in tightly-controlled network environments or air-gapped instances (those that allow no external internet traffic). The Web IDE has limited functionality in GitLab Self-Managed instances running on air-gapped / offline environments. The Web IDE uses an external assets host server `.cdn.web-ide.gitlab-static.net` to isolate VSCode and third-party extensions from the GitLab instance and protect user data. The downside of this architecture is that environments that can't connect to the `.cdn.web-ide.gitlab-static.net` can't use the entire feature set provided by the Web IDE. ## Proposed solution Help administrators of GitLab Self-Managed instances on air-gapped / offline environments to set up their own external assets host server. ## Plan * :white_check_mark: - Done * :construction: - In Progress * :issue-blocked: - Blocked * :white_circle: - Not Started | | Description | Sub epic / issues | Weight | Status | Technical Lead | |--|-------------|-------------------|--------|--------|----------------| | Feature | Allow GitLab self-managed admins to provide custom Web IDE extensions host domain. | https://gitlab.com/gitlab-org/gitlab/-/issues/560310+ | 2 | :white_check_mark: | @ealcantara | | Tooling | Remove same_origin_security.patch from @gitlab-org/web-ide npm package | https://gitlab.com/gitlab-org/gitlab-web-ide/-/issues/528+ | 1 | :white_check_mark: | @ealcantara | | Feature | Use GitLab instance to serve Web IDE's extension host assets | https://gitlab.com/gitlab-org/gitlab/-/issues/576648+ | 2 | :white_check_mark: | @ealcantara | | Documentation | Document how to set up the Web IDE on air-gapped environments in the [GitLab Administration docs](https://docs.gitlab.com/administration/get_started/). | https://gitlab.com/gitlab-org/gitlab/-/issues/514748+ | 1 | :white_check_mark: | @ealcantara | | Documentation | Create a Web IDE runtime architecture sequence diagram that describes how the different origins used by the Web IDE communicate with each other. | https://gitlab.com/gitlab-org/gitlab-web-ide/-/issues/530+ | 1 | :white_check_mark: | @ealcantara |
epic