-
Notifications
You must be signed in to change notification settings - Fork 5
Refactor Helix Flow to give Content Repository Precedence for all Request #96
Comments
This is the maximum number of restarts (3) that Fastly supports, so going back to static for 404.html is not an option. |
If I summarise, each request will go through: It would be great to create an exhaustive list of all the cases we want to support (especially with the overrides) and check if they are covered by this new flow. In step 6, isn't possible to do a redirect to |
Yes, we could redirect instead of restarting for 404.html, but I'd like to avoid this because it will mask all 404 errors as 301 or 302 non-errors. |
Yet another stab at #96 and adobe/helix-pipeline#365 (based on, but conflicting with #105). This one uses the new `helix-experimental-dispatch` action instead of restarts, adding some overhead to the first request (about 20ms), but having much better worst-case performance due to parallel execution. fixes #96
# [2.0.0](v1.0.3...v2.0.0) (2019-06-26) ### Bug Fixes * **error:** fix remaining resp ([d89b2f6](d89b2f6)) * **error:** separate error handler from raw handler ([00beb7a](00beb7a)) * **error:** use http.host ([03b4ec3](03b4ec3)) * **error:** use new error subroutin ([29cac81](29cac81)) * **error:** use resp instead of beresp in error delivery ([dab068b](dab068b)) * **package:** add missing error pages ([ebcf05c](ebcf05c)) * **raw:** set correct content type for popular file endings ([1455d3f](1455d3f)) * **raw:** set correct content type for raw HTML responses ([fafd955](fafd955)) * **static:** use the versioned shared static function ([2e18192](2e18192)) * **vcl:** add missing equals sign for request parameters ([c238503](c238503)) * **vcl:** always use HTML for error pages ([dec8b51](dec8b51)) * **vcl:** fix data flow error ([22897d1](22897d1)) * **vcl:** fix req.http.X-Action-Root ([c6c7e7d](c6c7e7d)) * **vcl:** fix syntax error ([e28ec3d](e28ec3d)) * **vcl:** fix syntax error ([6825bae](6825bae)) * **vcl:** fix syntax error ([1fe37f2](1fe37f2)) * **vcl:** fix syntax error ([b0b9829](b0b9829)) * **vcl:** fix syntax error ([ebf0807](ebf0807)) * **vcl:** fix syntax error ([d8afe05](d8afe05)) * **vcl:** move error from fetch to deliver ([061fa10](061fa10)) * **vcl:** relax conditions for 302 and url extensions ([8da5e1e](8da5e1e)) * **vcl:** remove error request type ([9c72d4b](9c72d4b)) * **vcl:** remove unused error subroutine ([a58e8e0](a58e8e0)) * **vcl:** remove unused raw function ([9fb2e05](9fb2e05)) * **vcl:** remove unused subroutines ([1cbdec4](1cbdec4)) * **vcl:** shut up chatty headers ([31fcc7c](31fcc7c)) * **vlc:** don't drop out of error handler function ([35a9f81](35a9f81)) ### Features * **static:** Give content repository precedence in serving resources and error pages ([bf8cbae](bf8cbae)), closes [#96](#96) * **vcl:** introduce new dispatch flow ([53a3dbe](53a3dbe)), closes [#96](#96) [#105](#105) [#96](#96) ### BREAKING CHANGES * **static:** As described in #96, this introduces a new request type `raw` which works like the old `image` request type, but applies to all resources. In case `raw` fails, we will fall back to `pipeline`, which will fall back to `static` which will fall back to `error`. `error` is very similar to `raw` in that it tries to fetch an error page like `404.html` from the content repository
🎉 This issue has been resolved in version 2.0.0 🎉 The release is available on GitHub release Your semantic-release bot 📦🚀 |
I've been discussing this with @davidnuescheler and since we have the new drawings in docs (https://github.com/adobe/helix-publish/tree/master/docs), I can outline the change I'd like to achieve.
Old:
New:
What changes:
raw
request type first (this used to be called `image)raw
request type works like the oldimage
type, it tries to fetch the content directly from the content repository, even when it is ahtml
,js
, orcss
file.index.html
and get it served @filmaj404.html
@tripodsan @ramboz (but more about that later)pipeline
request type, i.e. try to call the runtime action.css
,js
, etc. is very cheap and fast for us, because no action gets calledpipeline
request fails, we fall back tostatic
, which can (as before yield content, or aredirect
, or astatic_url
, each with a restart.error
, which changes the internal URL to404.html
and tries to get it from the content repositoryExamples of requests and resolution:
htdocs
The text was updated successfully, but these errors were encountered: