Closed
Description
Summary
This epic focuses on removing technical blockers which prevent the dashboard (web application) to use the Public API to retrieve data.
This epic does not focus on implementing and migrating API calls that dashboard makes over to public api.
Context
We want to give ourselves a stronger API interface which can be consumed by dashboard, but also external clients. The first step is to dog-food the API using our existing clients - dashboard.
To address the technical limitations, we need to tackle the following:
- Exposing endpoints on the Public API over HTTP1.1 - web clients cannot use HTTP2
- Generating & using clients in the dashboard to communicate with public api
- Laying the groundwork for experimental and stable APIs
Value
Unblocking increase in traffic on Public API
Acceptance Criteria
Dashboard webapp can communicate with Public API
Tasks
- Route HTTP 1.1 traffic from api.gitpod.io to public-api-server
- Refactor existing public-api protos into stable and experimental packages
- Generate clients & interfaces for Connect.build for public API
- Bind generated (unimplemented) Connect.build handler to Public API HTTP mux
- Configure CORS for api.gitpod.io
- Refactor WorkspaceService to implement connect.build handler
- Ensure public-api has sufficient observability to show incoming requests
- Cache proxy connections to server
- Add instructions on how to import public-api Golang client #14114
Metadata
Metadata
Assignees
Type
Projects
Status
Done