{"id":2463,"date":"2024-11-18T11:12:19","date_gmt":"2024-11-18T16:12:19","guid":{"rendered":"https:\/\/csimmons.dev\/blog\/?p=2463"},"modified":"2025-02-07T12:42:51","modified_gmt":"2025-02-07T17:42:51","slug":"coldfusion-scheduled-tasks-failing-with-403-forbidden-error-cloudflare-issue","status":"publish","type":"post","link":"https:\/\/csimmons.dev\/blog\/2024\/11\/coldfusion-scheduled-tasks-failing-with-403-forbidden-error-cloudflare-issue\/","title":{"rendered":"ColdFusion Scheduled Tasks Failing with 403 Forbidden Error (Cloudflare Issue)"},"content":{"rendered":"<p>My company recently experienced an issue where all of the scheduled tasks in CFADMIN were failing. The first step I took to troubleshoot the issue was to check the <code>scheduler.log<\/code> log file. Each task had 2 lines in the log file. The first line indicated that the task had been triggered. The second line indicated an error of <code>403 Forbidden<\/code>.<\/p>\n<pre><code>\"Information\",\"DefaultQuartzScheduler_Worker-3\",\"11\/08\/24\",\"07:00:00\",\"\",\"Task DEFAULT.NIGHTLY CLEANUP JOB triggered.\"\n\"Error\",\"DefaultQuartzScheduler_Worker-3\",\"11\/08\/24\",\"07:00:00\",\"\",\"403 Forbidden\"\n<\/code><\/pre>\n<p>Since no permissions had been changed on the server this was a perplexing error. The next step that I took was to execute one of the task URLs from a web browser on the sever. The task completed successfully. This led me to try to obtain more information about CFADMIN running the task so I enabled <code>Save output to file<\/code> under the <code>Publish<\/code> section of the Scheduled Task and specified a file to output the result.<\/p>\n<figure id=\"attachment_2464\" aria-describedby=\"caption-attachment-2464\" style=\"width: 1014px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/csimmons.dev\/blog\/2024\/11\/coldfusion-scheduled-tasks-failing-with-403-forbidden-error-cloudflare-issue\/cfadmin-log-to-file\/#main\"><img width=\"1024\" height=\"679\" data-public-id=\"cfadmin-log-to-file\/cfadmin-log-to-file.png\" loading=\"lazy\" decoding=\"async\" class=\"wp-post-2463 wp-image-2464 size-large\" src=\"https:\/\/res.cloudinary.com\/ccsimmons\/images\/w_1024,h_679,c_scale\/f_auto,q_auto\/v1731945571\/cfadmin-log-to-file\/cfadmin-log-to-file.png?_i=AA\" alt=\"CFADMIN Scheduled Task Log to File\" data-format=\"png\" data-transformations=\"f_auto,q_auto\" data-version=\"1731945571\" data-seo=\"1\" srcset=\"https:\/\/res.cloudinary.com\/ccsimmons\/images\/w_1024,h_679,c_scale\/f_auto,q_auto\/v1731945571\/cfadmin-log-to-file\/cfadmin-log-to-file.png?_i=AA 1024w, https:\/\/res.cloudinary.com\/ccsimmons\/images\/w_300,h_199,c_scale\/f_auto,q_auto\/v1731945571\/cfadmin-log-to-file\/cfadmin-log-to-file.png?_i=AA 300w, https:\/\/res.cloudinary.com\/ccsimmons\/images\/w_768,h_509,c_scale\/f_auto,q_auto\/v1731945571\/cfadmin-log-to-file\/cfadmin-log-to-file.png?_i=AA 768w, https:\/\/res.cloudinary.com\/ccsimmons\/images\/f_auto,q_auto\/v1731945571\/cfadmin-log-to-file\/cfadmin-log-to-file.png?_i=AA 1252w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption id=\"caption-attachment-2464\" class=\"wp-caption-text\">CFADMIN Scheduled Task Log to File<\/figcaption><\/figure>\n<p>Once this setting was in place I executed the task again from <code>CFADMIN &gt; Server Settings &gt; Scheduled Tasks<\/code> and checked the log file. The log file contained the text <code>error code: 1010<\/code>.<\/p>\n<figure id=\"attachment_2465\" aria-describedby=\"caption-attachment-2465\" style=\"width: 1014px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/csimmons.dev\/blog\/2024\/11\/coldfusion-scheduled-tasks-failing-with-403-forbidden-error-cloudflare-issue\/cfadmin-log-to-file-result\/#main\"><img width=\"1024\" height=\"584\" data-public-id=\"cfadmin-log-to-file-result\/cfadmin-log-to-file-result.png\" loading=\"lazy\" decoding=\"async\" class=\"wp-post-2463 wp-image-2465 size-large\" src=\"https:\/\/res.cloudinary.com\/ccsimmons\/images\/w_1024,h_584,c_scale\/f_auto,q_auto\/v1731945578\/cfadmin-log-to-file-result\/cfadmin-log-to-file-result.png?_i=AA\" alt=\"CFADMIN Scheduled Task Log to File result\" data-format=\"png\" data-transformations=\"f_auto,q_auto\" data-version=\"1731945578\" data-seo=\"1\" srcset=\"https:\/\/res.cloudinary.com\/ccsimmons\/images\/w_1024,h_584,c_scale\/f_auto,q_auto\/v1731945578\/cfadmin-log-to-file-result\/cfadmin-log-to-file-result.png?_i=AA 1024w, https:\/\/res.cloudinary.com\/ccsimmons\/images\/w_300,h_171,c_scale\/f_auto,q_auto\/v1731945578\/cfadmin-log-to-file-result\/cfadmin-log-to-file-result.png?_i=AA 300w, https:\/\/res.cloudinary.com\/ccsimmons\/images\/w_768,h_438,c_scale\/f_auto,q_auto\/v1731945578\/cfadmin-log-to-file-result\/cfadmin-log-to-file-result.png?_i=AA 768w, https:\/\/res.cloudinary.com\/ccsimmons\/images\/f_auto,q_auto\/v1731945578\/cfadmin-log-to-file-result\/cfadmin-log-to-file-result.png?_i=AA 1090w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption id=\"caption-attachment-2465\" class=\"wp-caption-text\">CFADMIN Scheduled Task Log to File result<\/figcaption><\/figure>\n<p>Researching <code>error code: 1010<\/code> led me to several articles regarding <a href=\"https:\/\/community.cloudflare.com\/t\/getting-banned-from-my-own-site-error-1010\/149617\">Cloudfare blocking access to a site<\/a> based on the <code>browser signature<\/code>.<\/p>\n<p>This narrowed the issue to either an issue with Cloudfare or the task not running correctly when executed by ColdFusion. I decided to try execute the URL from a ColdFusion <code>cfhttp<\/code> call using the following basic script.<\/p>\n<p><script src=\"https:\/\/gist.github.com\/ccsimmons\/7151803676bf3d1d2108483b1240b40b.js\"><\/script><\/p>\n<p>The task completed successfully when called from <code>cfhttp<\/code>. Below is a dump of the result:<\/p>\n<figure id=\"attachment_2466\" aria-describedby=\"caption-attachment-2466\" style=\"width: 1014px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/csimmons.dev\/blog\/2024\/11\/coldfusion-scheduled-tasks-failing-with-403-forbidden-error-cloudflare-issue\/cfhttp-dump\/#main\"><img width=\"1024\" height=\"312\" data-public-id=\"cfhttp-dump_2466494b3\/cfhttp-dump_2466494b3.png\" loading=\"lazy\" decoding=\"async\" class=\"wp-post-2463 wp-image-2466 size-large\" src=\"https:\/\/res.cloudinary.com\/ccsimmons\/images\/w_1024,h_312,c_scale\/f_auto,q_auto\/v1731945665\/cfhttp-dump_2466494b3\/cfhttp-dump_2466494b3.png?_i=AA\" alt=\"Dump of cfhttp\" data-format=\"png\" data-transformations=\"f_auto,q_auto\" data-version=\"1731945665\" data-seo=\"1\" srcset=\"https:\/\/res.cloudinary.com\/ccsimmons\/images\/w_1024,h_312,c_scale\/f_auto,q_auto\/v1731945665\/cfhttp-dump_2466494b3\/cfhttp-dump_2466494b3.png?_i=AA 1024w, https:\/\/res.cloudinary.com\/ccsimmons\/images\/w_300,h_91,c_scale\/f_auto,q_auto\/v1731945665\/cfhttp-dump_2466494b3\/cfhttp-dump_2466494b3.png?_i=AA 300w, https:\/\/res.cloudinary.com\/ccsimmons\/images\/w_768,h_234,c_scale\/f_auto,q_auto\/v1731945665\/cfhttp-dump_2466494b3\/cfhttp-dump_2466494b3.png?_i=AA 768w, https:\/\/res.cloudinary.com\/ccsimmons\/images\/w_1536,h_468,c_scale\/f_auto,q_auto\/v1731945665\/cfhttp-dump_2466494b3\/cfhttp-dump_2466494b3.png?_i=AA 1536w, https:\/\/res.cloudinary.com\/ccsimmons\/images\/w_2048,h_625,c_scale\/f_auto,q_auto\/v1731945665\/cfhttp-dump_2466494b3\/cfhttp-dump_2466494b3.png?_i=AA 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption id=\"caption-attachment-2466\" class=\"wp-caption-text\">Dump of cfhttp<\/figcaption><\/figure>\n<p>The issue therefore seemed to be narrowed to the fact that Cloudfare was rejecting calls to URLs from the CFADMIN (apparently based on an issue with the <code>browser signature<\/code>). The <code>browser signature<\/code> is examined at Cloudfare by a <a href=\"https:\/\/developers.cloudflare.com\/waf\/tools\/browser-integrity-check\/\">Browser Integrity Check (BIC)<\/a> as a component of a WAF.<\/p>\n<blockquote><p>A WAF or web application firewall helps protect web applications by filtering and monitoring HTTP traffic between a web application and the Internet. It typically protects web applications from attacks such as cross-site forgery, cross-site-scripting (XSS), file inclusion, and SQL injection, among others.<\/p><\/blockquote>\n<p><a href=\"https:\/\/www.cloudflare.com\/learning\/ddos\/glossary\/web-application-firewall-waf\/\">Read more about Cloudfare&#8217;s WAF<\/a>.<\/p>\n<p>You can create a custom WAF rule to turn off the Browser Integrity Check (BIC). First, use the <code>Go to<\/code> navigation to search for <code>WAF<\/code> and choose <code>Security | WAF | Custom Rules<\/code>:<\/p>\n<figure id=\"attachment_2470\" aria-describedby=\"caption-attachment-2470\" style=\"width: 1014px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/csimmons.dev\/blog\/2024\/11\/coldfusion-scheduled-tasks-failing-with-403-forbidden-error-cloudflare-issue\/waf-go-to\/#main\"><img width=\"1024\" height=\"673\" loading=\"lazy\" decoding=\"async\" class=\"wp-post-2463 wp-image-2470 size-large\" src=\"data:image\/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDI0IiBoZWlnaHQ9IjY3MyI+PHJlY3Qgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSI+PGFuaW1hdGUgYXR0cmlidXRlTmFtZT0iZmlsbCIgdmFsdWVzPSJyZ2JhKDE1MywxNTMsMTUzLDAuNSk7cmdiYSgxNTMsMTUzLDE1MywwLjEpO3JnYmEoMTUzLDE1MywxNTMsMC41KSIgZHVyPSIycyIgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiIC8+PC9yZWN0Pjwvc3ZnPg==\" alt=\"WAF Go to\" data-public-id=\"WAF-go-to\/WAF-go-to.png\" data-format=\"png\" data-transformations=\"f_auto,q_auto\" data-version=\"1731945602\" data-seo=\"1\" data-size=\"1024 673\" data-srcset=\"https:\/\/res.cloudinary.com\/ccsimmons\/images\/w_1024,h_673,c_scale\/f_auto,q_auto\/v1731945602\/WAF-go-to\/WAF-go-to.png?_i=AA 1024w, https:\/\/res.cloudinary.com\/ccsimmons\/images\/w_300,h_197,c_scale\/f_auto,q_auto\/v1731945602\/WAF-go-to\/WAF-go-to.png?_i=AA 300w, https:\/\/res.cloudinary.com\/ccsimmons\/images\/w_768,h_505,c_scale\/f_auto,q_auto\/v1731945602\/WAF-go-to\/WAF-go-to.png?_i=AA 768w, https:\/\/res.cloudinary.com\/ccsimmons\/images\/f_auto,q_auto\/v1731945602\/WAF-go-to\/WAF-go-to.png?_i=AA 1267w\" data-sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" data-delivery=\"upload\" onload=\";window.CLDBind?CLDBind(this):null;\" data-cloudinary=\"lazy\" \/><\/a><figcaption id=\"caption-attachment-2470\" class=\"wp-caption-text\">WAF Go to<\/figcaption><\/figure>\n<p>Next, click the <code>Create rule<\/code> button to begin. Our solution will use the following settings to disable the BIC on requests only from our server IP to scripts residing in a certain directory:<\/p>\n<ul>\n<li>For the `Field` select `IP Source Address`, for `Operator` select `equals` and enter the IP address of your server as the `Value` (this will allow the rule to only apply to requests from your server).<\/li>\n<li>Click the `And` button to add another row.<\/li>\n<li>For the `Field` select `URI Path`, for `Operator` select `wildcard` and and enter the directory of your scheduled tasks as the `Value` (this will allow a single rule to apply to multiple task scripts in the directory). Notice the directory uses a wildcard at the end `\/jobs\/*`.<\/li>\n<li>For the `Choose action` select `skip`.<\/li>\n<li>Select `On` for `Log matching requests`.<\/li>\n<li>Under `WAF components to skip` check `Browser Integrity Check` (you may need to click the `More components to skip` link to locate it).<\/li>\n<li>Click the `Deploy` button to enable the rule immediately.<\/li>\n<\/ul>\n<figure id=\"attachment_2469\" aria-describedby=\"caption-attachment-2469\" style=\"width: 1014px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/csimmons.dev\/blog\/2024\/11\/coldfusion-scheduled-tasks-failing-with-403-forbidden-error-cloudflare-issue\/waf-create-rule\/#main\"><img width=\"1024\" height=\"955\" loading=\"lazy\" decoding=\"async\" class=\"wp-post-2463 wp-image-2469 size-large\" src=\"data:image\/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDI0IiBoZWlnaHQ9Ijk1NSI+PHJlY3Qgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSI+PGFuaW1hdGUgYXR0cmlidXRlTmFtZT0iZmlsbCIgdmFsdWVzPSJyZ2JhKDE1MywxNTMsMTUzLDAuNSk7cmdiYSgxNTMsMTUzLDE1MywwLjEpO3JnYmEoMTUzLDE1MywxNTMsMC41KSIgZHVyPSIycyIgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiIC8+PC9yZWN0Pjwvc3ZnPg==\" alt=\"WAF Create rule\" data-public-id=\"WAF-create-rule\/WAF-create-rule.png\" data-format=\"png\" data-transformations=\"f_auto,q_auto\" data-version=\"1731945610\" data-seo=\"1\" data-size=\"1024 955\" data-srcset=\"https:\/\/res.cloudinary.com\/ccsimmons\/images\/w_1024,h_955,c_scale\/f_auto,q_auto\/v1731945610\/WAF-create-rule\/WAF-create-rule.png?_i=AA 1024w, https:\/\/res.cloudinary.com\/ccsimmons\/images\/w_300,h_280,c_scale\/f_auto,q_auto\/v1731945610\/WAF-create-rule\/WAF-create-rule.png?_i=AA 300w, https:\/\/res.cloudinary.com\/ccsimmons\/images\/w_768,h_716,c_scale\/f_auto,q_auto\/v1731945610\/WAF-create-rule\/WAF-create-rule.png?_i=AA 768w, https:\/\/res.cloudinary.com\/ccsimmons\/images\/w_1536,h_1433,c_scale\/f_auto,q_auto\/v1731945610\/WAF-create-rule\/WAF-create-rule.png?_i=AA 1536w, https:\/\/res.cloudinary.com\/ccsimmons\/images\/f_auto,q_auto\/v1731945610\/WAF-create-rule\/WAF-create-rule.png?_i=AA 1574w\" data-sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" data-delivery=\"upload\" onload=\";window.CLDBind?CLDBind(this):null;\" data-cloudinary=\"lazy\" \/><\/a><figcaption id=\"caption-attachment-2469\" class=\"wp-caption-text\">WAF Create rule<\/figcaption><\/figure>\n<p>You can view the logging of the Firewall events. First, use the <code>Go to<\/code> navigation to search for <code>Events<\/code> and choose <code>Security | Events<\/code>:<\/p>\n<figure id=\"attachment_2467\" aria-describedby=\"caption-attachment-2467\" style=\"width: 1014px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/csimmons.dev\/blog\/2024\/11\/coldfusion-scheduled-tasks-failing-with-403-forbidden-error-cloudflare-issue\/events-go-to\/#main\"><img width=\"1024\" height=\"279\" loading=\"lazy\" decoding=\"async\" class=\"wp-post-2463 wp-image-2467 size-large\" src=\"data:image\/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDI0IiBoZWlnaHQ9IjI3OSI+PHJlY3Qgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSI+PGFuaW1hdGUgYXR0cmlidXRlTmFtZT0iZmlsbCIgdmFsdWVzPSJyZ2JhKDE1MywxNTMsMTUzLDAuNSk7cmdiYSgxNTMsMTUzLDE1MywwLjEpO3JnYmEoMTUzLDE1MywxNTMsMC41KSIgZHVyPSIycyIgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiIC8+PC9yZWN0Pjwvc3ZnPg==\" alt=\"Events Go to\" data-public-id=\"events-go-to\/events-go-to.png\" data-format=\"png\" data-transformations=\"f_auto,q_auto\" data-version=\"1731945584\" data-seo=\"1\" data-size=\"1024 279\" data-srcset=\"https:\/\/res.cloudinary.com\/ccsimmons\/images\/w_1024,h_279,c_scale\/f_auto,q_auto\/v1731945584\/events-go-to\/events-go-to.png?_i=AA 1024w, https:\/\/res.cloudinary.com\/ccsimmons\/images\/w_300,h_82,c_scale\/f_auto,q_auto\/v1731945584\/events-go-to\/events-go-to.png?_i=AA 300w, https:\/\/res.cloudinary.com\/ccsimmons\/images\/w_768,h_209,c_scale\/f_auto,q_auto\/v1731945584\/events-go-to\/events-go-to.png?_i=AA 768w, https:\/\/res.cloudinary.com\/ccsimmons\/images\/f_auto,q_auto\/v1731945584\/events-go-to\/events-go-to.png?_i=AA 1262w\" data-sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" data-delivery=\"upload\" onload=\";window.CLDBind?CLDBind(this):null;\" data-cloudinary=\"lazy\" \/><\/a><figcaption id=\"caption-attachment-2467\" class=\"wp-caption-text\">Events Go to<\/figcaption><\/figure>\n<p>As you can see the previously blocked requests via CFADMIN are now allowed at Cloudfare via a <code>Skip<\/code> action using <code>Custom rules<\/code>.<\/p>\n<figure id=\"attachment_2468\" aria-describedby=\"caption-attachment-2468\" style=\"width: 1014px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/csimmons.dev\/blog\/2024\/11\/coldfusion-scheduled-tasks-failing-with-403-forbidden-error-cloudflare-issue\/firewall-events-after\/#main\"><img width=\"1024\" height=\"469\" loading=\"lazy\" decoding=\"async\" class=\"wp-post-2463 wp-image-2468 size-large\" src=\"data:image\/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDI0IiBoZWlnaHQ9IjQ2OSI+PHJlY3Qgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSI+PGFuaW1hdGUgYXR0cmlidXRlTmFtZT0iZmlsbCIgdmFsdWVzPSJyZ2JhKDE1MywxNTMsMTUzLDAuNSk7cmdiYSgxNTMsMTUzLDE1MywwLjEpO3JnYmEoMTUzLDE1MywxNTMsMC41KSIgZHVyPSIycyIgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiIC8+PC9yZWN0Pjwvc3ZnPg==\" alt=\"Firewall events\" data-public-id=\"firewall-events-after_2468cc389\/firewall-events-after_2468cc389.png\" data-format=\"png\" data-transformations=\"f_auto,q_auto\" data-version=\"1731945634\" data-seo=\"1\" data-size=\"1024 469\" data-srcset=\"https:\/\/res.cloudinary.com\/ccsimmons\/images\/w_1024,h_469,c_scale\/f_auto,q_auto\/v1731945634\/firewall-events-after_2468cc389\/firewall-events-after_2468cc389.png?_i=AA 1024w, https:\/\/res.cloudinary.com\/ccsimmons\/images\/w_300,h_137,c_scale\/f_auto,q_auto\/v1731945634\/firewall-events-after_2468cc389\/firewall-events-after_2468cc389.png?_i=AA 300w, https:\/\/res.cloudinary.com\/ccsimmons\/images\/w_768,h_352,c_scale\/f_auto,q_auto\/v1731945634\/firewall-events-after_2468cc389\/firewall-events-after_2468cc389.png?_i=AA 768w, https:\/\/res.cloudinary.com\/ccsimmons\/images\/w_1536,h_703,c_scale\/f_auto,q_auto\/v1731945634\/firewall-events-after_2468cc389\/firewall-events-after_2468cc389.png?_i=AA 1536w, https:\/\/res.cloudinary.com\/ccsimmons\/images\/w_2048,h_938,c_scale\/f_auto,q_auto\/v1731945634\/firewall-events-after_2468cc389\/firewall-events-after_2468cc389.png?_i=AA 2048w\" data-sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" data-delivery=\"upload\" onload=\";window.CLDBind?CLDBind(this):null;\" data-cloudinary=\"lazy\" \/><\/a><figcaption id=\"caption-attachment-2468\" class=\"wp-caption-text\">Firewall events<\/figcaption><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>My company recently experienced an issue where all of the scheduled tasks in CFADMIN were failing. The first step I took to troubleshoot the issue was to check the scheduler.log log file. Each task had 2 lines in the log file. The first line indicated that the task had been triggered. The second line indicated &#8230; <a title=\"ColdFusion Scheduled Tasks Failing with 403 Forbidden Error (Cloudflare Issue)\" class=\"read-more\" href=\"https:\/\/csimmons.dev\/blog\/2024\/11\/coldfusion-scheduled-tasks-failing-with-403-forbidden-error-cloudflare-issue\/\" aria-label=\"Read more about ColdFusion Scheduled Tasks Failing with 403 Forbidden Error (Cloudflare Issue)\">Read more<\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"_cloudinary_featured_overwrite":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[68],"tags":[69,48,12],"class_list":["post-2463","post","type-post","status-publish","format-standard","hentry","category-developer","tag-cloudflare","tag-coldfusion","tag-developer"],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/pbVg43-DJ","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/csimmons.dev\/blog\/wp-json\/wp\/v2\/posts\/2463","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/csimmons.dev\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/csimmons.dev\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/csimmons.dev\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/csimmons.dev\/blog\/wp-json\/wp\/v2\/comments?post=2463"}],"version-history":[{"count":0,"href":"https:\/\/csimmons.dev\/blog\/wp-json\/wp\/v2\/posts\/2463\/revisions"}],"wp:attachment":[{"href":"https:\/\/csimmons.dev\/blog\/wp-json\/wp\/v2\/media?parent=2463"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/csimmons.dev\/blog\/wp-json\/wp\/v2\/categories?post=2463"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/csimmons.dev\/blog\/wp-json\/wp\/v2\/tags?post=2463"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}