cosmos-explorer/preview
Jordi Bunster 88f5e7485a
Pull request preview URLs (#625)
* Dynamic link to HEAD of a given PR

* Display pr name and link in notification console

* Pass along query string to Explorer

This means you can write a URL like:

https://cosmos-explorer-preview.azurewebsites.net/pull/123?feature.enableFoo=true

and when Explorer loads it'll have enableFoo set to true in the features
object.
2021-04-12 15:10:31 -05:00
..
.azure Automated Preview URLs (#601) 2021-04-02 12:24:01 -05:00
README.md Automated Preview URLs (#601) 2021-04-02 12:24:01 -05:00
config.json Automated Preview URLs (#601) 2021-04-02 12:24:01 -05:00
index.js Pull request preview URLs (#625) 2021-04-12 15:10:31 -05:00
package-lock.json Pull request preview URLs (#625) 2021-04-12 15:10:31 -05:00
package.json Pull request preview URLs (#625) 2021-04-12 15:10:31 -05:00

README.md

Cosmos Explorer Preview

Cosmos Explorer Preview makes it possible to try a working version of any commit on master or in a PR. No need to run the app locally or deploy to staging.

Initial support is for Hosted (Connection string only) or the Azure Portal. Examples:

Connection string URLs: https://cosmos-explorer-preview.azurewebsites.net/commit/COMMIT_SHA/hostedExplorer.html Portal URLs: https://ms.portal.azure.com/?dataExplorerSource=https://cosmos-explorer-preview.azurewebsites.net/commit/COMMIT_SHA/explorer.html#home

In both cases replace COMMIT_SHA with the commit you want to view. It must have already completed its build on GitHub Actions.

Architechture

  • This folder contains a NodeJS app deployed to Azure App Service that powers preview URLs:
    • Paths starting with /commit/ are proxied to an Azure Storage account containing build artifacts
    • Paths starting with /proxy/ are proxied dynamically to Cosmos account endpoints. Required otherwise CORS would need to be configured for every account accessed.
    • Paths starting with /api/ are proxied to Portal APIs that do not support CORS.
  • On GitHub Actions build completion:
    • All files in dist are uploaded to an Azure Storage account namespaced by the SHA of the commit
    • /preview/config.json is uploaded to the same folder with preview specific configuration