Open whitlockjc opened 8 years ago
It is not necessary to create another service. The alternative (which I prefer) is the following. The UI is implemented as an SPA in Javascript. The Javascript code is kept in S3, not in a service. Every URL in the API can return HTML as well as JSON based on the accept header. The HTML returned by each API resource contains a script tag that loads the SPA implementation from S3. The SPA implementation will display whatever resource was loaded (preferably by looking at the data, not the URL). If the user transitions from one resource to another in the SPA, the SPA will use the HTML history API to put the correct API URL for the resource in the history stack. The UI does not introduce any new URLs of its own and there are no fragments in URLs. [If the UI needs new API resources we didn't anticipate, we can add those to the API.] In addition to the script tag, the HTML representation of each resource should contain information that is useful to non-browser clients, like search bots.
New service or not, it will not be deployed alongside the API. That's all I meant.
Sorry if I took it to literally.
Nah, you're fine. I do think we should have a real container with a real static server and possible UI-only API. Imagine being able to provide Apigee/Kubernetes API features within the Shipyard UI (where applicable), like being able to manage your API Key secrets within the UI or being able to query/see the Apigee Edge organization's you're in. I realize we can likely have a static-only UI that would do most of what we want but what I'm envisioning is a little larger than that, a real self-service UI for Shipyard and related Apigee/Kubernetes objects. (Exactly what this means right now is unknown, I'm working on the stories.)
With shipyardctl
becoming the main path to Shipyard now, the urgency for a UI is no longer there so I am removing this from GA
.
We need a web UI for Shipyard. The idea here is that this will be another service deployed alongside the Shipyard API that will allow users to manage everything Shipyard related using a web UI.