Hooks
LaravelFrontend exposes automatically a series of hooks
whose access is guarded through middlewares for security. These hooks
endpoints allow the remote execution of commands for systemic operations like deployment, cache management, composer packaging and maybe others. These endpoints should be called upon data changes from the CMS or the thirdy part services on saving or updating actions.
#
Usage and securityFor security purposes these endpoints can only be called from a series of whitelisted domains. By default the already defined and mandatory APP_URL
, CMS_API_URL
 and FILLFORM_API_URL
 found in the .env
 are automatically whitelisted and so it is the IP of the CI runner that operates the deployment. Additional domains, ip addresses and queryparam can be defined in the .env
with:
#
Hooks endpointsHere a summary of all hooks, all prefixed with _/hooks/
.
/visit
#
URL:
{APP_URL}/_/hooks/visit
This hook visit all the URLs of the website by crawling the APP_URL
and following all the found links recursively. It is automatically used by the /deploy/end
one. It can also be manually called from a browser with the above security limitations, add a whatever query parameter to get a nicely formatted html response, e.g. go in your browser to https://myproject.com/_/hooks/visit?a
.
#
Deploy hooks/deploy/end
#
URL:
{APP_URL}/_/hooks/deploy/end
This hook must be called at the end of the CI process, it clears all caches, dumps the composer autoloading mechanism and optimize laravel through artisan
commands. At the end of its process it calls the /visit
hook.
#
Cache control hooksData from the remote api
(the CMS usually) and from external services like FillForm
are cached by default to optimise speed. This cache can be cleared programmatically by doing a simple GET
request without any particular parameter to these automatically exposed endpoints or hooks:
/cache/clear
#
URL:
{APP_URL}/_/hooks/cache/clear
Clear all frontend caches (system and data
cache) except img
cache.
/cache/clear-system
#
URL:
{APP_URL}/_/hooks/cache/clear-system
Manages op cache, laravel's view/config/routes and compiled caches. It first clears and then re-generate and re-cache them.
/cache/clear-data
#
URL:
{APP_URL}/_/hooks/cache/clear-data
Clear all the data
cache.
/cache/clear-structure
#
URL:
{APP_URL}/_/hooks/cache/clear-structure
Clear all the structure
cache.
/cache/clear-custom
#
URL:
{APP_URL}/_/hooks/cache/clear-custom
Clear all the custom
cache.
/cache/clear-models
#
URL:
{APP_URL}/_/hooks/cache/clear-models
Clear all the models
cache.
/cache/clear-models/{modelName}
#
URL:
{APP_URL}/_/hooks/cache/clear-models/{modelName}
Clear a single model
cache.
/cache/clear-routes
#
URL:
{APP_URL}/_/hooks/cache/clear-routes
Clear all the routes
cache.
/cache/clear-routes/{routeId}
#
URL:
{APP_URL}/_/hooks/cache/clear-routes/{routeId}
Clear a single route
cache.
/cache/clear-forms
#
URL:
{APP_URL}/_/hooks/cache/clear-forms
Clear all the forms
cache.
/cache/clear-forms/{formId}
#
URL:
{APP_URL}/_/hooks/cache/clear-forms/{formId}
Clear a single form
cache.
/cache/clear-img
#
URL:
{APP_URL}/_/hooks/cache/clear-img
Clear all the img
cache.
warning
Depending on the amount of images used and theier variants the regeneration of this cache is probably quite heavy on the server.