More context in ENG-3322. Basically we started seeing an issue after updating Olm where the old version was still in cache. This is "by design" – keyserver serves all prod assets as immutable to improve performance. For this to work, we need to make sure each prod asset has a unique filename.
Details
Test both dev and prod, open up Chrome Dev Tools network tab (while web is logged out) and confirm olm.wasm was loaded correctly
Diff Detail
- Repository
- rCOMM Comm
- Lint
Lint Not Applicable - Unit
Tests Not Applicable
Event Timeline
keyserver/src/responders/website-responders.js | ||
---|---|---|
100 ↗ | (On Diff #23737) | This empty string thing is a problem. I tried a bunch of things to get it to have a real string, but couldn't get it to work. It appears that:
For now this is sorta okay, but it becomes a problem as soon as we add another WASM file that we need to copy in, which is basically happening right now with sql.js. More concretely, if we add the same AssetsPlugin to the webworkers Webpack config, it ends up "conflicting" with Olm, and only one of them can appear in the asset file. As a result of this issue I'm investigating migrating to webpack-manifest-plugin, but for now I'd like to land this ASAP to address the live-in-prod caching issue. |
web/webpack.config.cjs | ||
51–60 ↗ | (On Diff #23737) | We continue using olm.wasm for dev, which is safe because we don't have the same caching behavior in dev |
web/olm/olm-utils.js | ||
---|---|---|
11 ↗ | (On Diff #23737) | Docs on this in the README here |
Works on dev. On prod I get invalid_parameters on the keyserver but I think that's because it's expecting web.comm.app