DEV Community

Discussion on: Does your UI use "build once" for promoting to environments?

Collapse
 
chrsjxn profile image
Chris Jackson

We build web assets once, and then promote through our deployed environments. Environment specific configuration is passed into the apps via the html templates or a bootstrap api.

Overall, it seems analogous to publishing a docker image once, promoting to different environments, and configuring via environment variables or k8s configs.

Collapse
 
dgreene1 profile image
Dan Greene

Thanks for sharing. Have you thought of a way to motivate any security risk associated with having environment variables passed in via bootstrap events?

Collapse
 
chrsjxn profile image
Chris Jackson

I don't think we've got a great solution, but all of the configuration we pass into the client app is publishable (eg, stripe publishable keys) or not secret (gateway service URLs for different environments).

Keys and other configuration that needs to be kept out of the browser have to be handled by the services instead

Thread Thread
 
dgreene1 profile image
Dan Greene

Great, yea I think that’s just one of the responsibilities of UI config variables— you gotta keep secrets out of them since they’re available in the source code.

Collapse
 
mellis481 profile image
Mike E

If you build UI assets once, how do you deal with concerns like source maps which you want in dev, but not in prod?

Collapse
 
dgreene1 profile image
Dan Greene

Found a great explanation of this problem and the article dates back to 2016. It's interesting that this still hasn't been solved definitively:
jvandemo.com/how-to-configure-your...