-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Closed
Labels
component: public-apiteam: webappIssue belongs to the WebApp teamIssue belongs to the WebApp teamtype: epic
Description
Summary
In this epic we lay the foundation for a new public Gitpod API that can be consumed by Gitpod components as well as external clients. See this design doc for details.
Context
Extensively summed up in the design doc.
Value
- provide a uniform, reliable, stable and versioned API
- potential to consolidate our tech stack (e.g. replace JSON-RPC and REST interfaces)
- centralise common aspects such as authentication, rate-limiting, circuit-breaking etc.
- more in the design doc
Measurement
This epic has been successfully finished when
- we have hardened and proven our API Guidelines
- we feel confident about our choice of technologies
- we are convinced the API is ready for internal adoption
Steps
- Define gRPC interface files for a workspace API #8681
- define
proto
files covering services to list workspaces, create and start workspace, and listen to status updates (including pre-builds and image builds) - gather experiences with/revise API design guidelines from the design doc
- define and separate re-usable concepts, e.g. for paging, structured errors
- generate implementations in TypeScript, Go and Java
- define
- Deploy a Hello World server as initial Public API #9229
- workspace.get
- workspace.getOwnerToken
- Epic: WorkspaceService public API and validate usage from IDE #9866
Out of scope
- Complete migration of the current JSON-RPC API
- Define separation between public and private API
mikeniklesapolopena, Explosion-Scratch, sagor999 and hbrooksjmls and hbrooks
Metadata
Metadata
Labels
component: public-apiteam: webappIssue belongs to the WebApp teamIssue belongs to the WebApp teamtype: epic
Type
Projects
Status
Done