diff --git a/all-written-paths.txt b/all-written-paths.txt
new file mode 100644
index 0000000000..ac86ecbb96
--- /dev/null
+++ b/all-written-paths.txt
@@ -0,0 +1,1599 @@
+[
+ "/",
+ "/1-and-1",
+ "/404.html",
+ "/404/",
+ "/add-site",
+ "/add-site-clone",
+ "/add-site-custom-upstream",
+ "/add-site-dashboard",
+ "/addons",
+ "/agency-tips",
+ "/apcu",
+ "/application-containers",
+ "/automate",
+ "/autopilot",
+ "/basic-troubleshooting",
+ "/behat",
+ "/billing",
+ "/bots-and-indexing",
+ "/cache",
+ "/cache-control",
+ "/caching-advanced-topics",
+ "/certificate-bundles",
+ "/certification",
+ "/certification/about",
+ "/certification/exam",
+ "/certification/study-guide",
+ "/certification/study-guide/automate",
+ "/certification/study-guide/cdn",
+ "/certification/study-guide/cms",
+ "/certification/study-guide/create",
+ "/certification/study-guide/custom-upstreams",
+ "/certification/study-guide/deploy",
+ "/certification/study-guide/extend",
+ "/certification/study-guide/people",
+ "/certification/study-guide/platform",
+ "/certification/study-guide/webops",
+ "/clamav",
+ "/clear-caches",
+ "/client-ip",
+ "/cloud-optimization",
+ "/cloudflare",
+ "/code-of-conduct",
+ "/composer-convert",
+ "/composer-convert-from-empty",
+ "/connection-modes",
+ "/content-staging",
+ "/continuous-integration",
+ "/contribute",
+ "/contributors/",
+ "/contributors/BFTrick",
+ "/contributors/CdrMarks",
+ "/contributors/LukasRos",
+ "/contributors/afragen",
+ "/contributors/albertcausing",
+ "/contributors/aleksandrkorolyov",
+ "/contributors/alexfornuto",
+ "/contributors/andrewmallis",
+ "/contributors/ari",
+ "/contributors/ataylorme",
+ "/contributors/backlineint",
+ "/contributors/bmackinney",
+ "/contributors/bwood",
+ "/contributors/caitybishop",
+ "/contributors/calevans",
+ "/contributors/carl-alberto",
+ "/contributors/carolynshannon",
+ "/contributors/ccjjmartin",
+ "/contributors/cityofoaksdesign",
+ "/contributors/clintonPantheon",
+ "/contributors/cobypear",
+ "/contributors/cteitzel",
+ "/contributors/curmudgeon",
+ "/contributors/danielbachhuber",
+ "/contributors/davidneedham",
+ "/contributors/dgorton",
+ "/contributors/digisavvy",
+ "/contributors/dts",
+ "/contributors/dustinleblanc",
+ "/contributors/dwayne",
+ "/contributors/eabquina",
+ "/contributors/edwardangert",
+ "/contributors/eeeschwartz",
+ "/contributors/erikmathy",
+ "/contributors/fatimask",
+ "/contributors/greg-1-anderson",
+ "/contributors/hckia",
+ "/contributors/iameap",
+ "/contributors/jazzsequence",
+ "/contributors/jessifischer",
+ "/contributors/jms-pantheon",
+ "/contributors/joan-ing",
+ "/contributors/joshkoenig",
+ "/contributors/jrastaban",
+ "/contributors/jspellman814",
+ "/contributors/kate",
+ "/contributors/katiemac",
+ "/contributors/kyletaylored",
+ "/contributors/masonjames",
+ "/contributors/michellecolon-pantheon",
+ "/contributors/mmenavas",
+ "/contributors/mrfelton",
+ "/contributors/nathantyler",
+ "/contributors/peter-pantheon",
+ "/contributors/petersuhm",
+ "/contributors/populist",
+ "/contributors/rachelwhitton",
+ "/contributors/rvtraveller",
+ "/contributors/ryanwagner",
+ "/contributors/sarahg",
+ "/contributors/scottmassey",
+ "/contributors/sdubois",
+ "/contributors/sparklingrobots",
+ "/contributors/stevector",
+ "/contributors/stovak",
+ "/contributors/suzannealdrich",
+ "/contributors/szipfel",
+ "/contributors/tessak22",
+ "/contributors/wbconnor",
+ "/contributors/whitneymeredith",
+ "/contributors/wordsmither",
+ "/cookies",
+ "/core-updates",
+ "/crisis-response-upstream",
+ "/custom-certificates",
+ "/custom-upstreams",
+ "/customer-scheduled-cron-jobs",
+ "/cygwin-windows",
+ "/dashboard",
+ "/date-and-time",
+ "/debug-cache",
+ "/debug-connections",
+ "/debug-slow-performance",
+ "/deploybot",
+ "/develop",
+ "/develop-drupal",
+ "/develop-wordpress",
+ "/dns-made-easy",
+ "/dns-providers",
+ "/doc-template",
+ "/dreamhost",
+ "/drupal-10",
+ "/drupal-advanced-page-cache",
+ "/drupal-broken-links",
+ "/drupal-cache",
+ "/drupal-caching-views",
+ "/drupal-cloudfront",
+ "/drupal-commerce",
+ "/drupal-composer-managed",
+ "/drupal-configuration-management",
+ "/drupal-cron",
+ "/drupal-from-dist",
+ "/drupal-launch-check",
+ "/drupal-migration",
+ "/drupal-phpstorm",
+ "/drupal-s3",
+ "/drupal-security-patches",
+ "/drupal-to-build-tools",
+ "/drupal-updates",
+ "/dyn",
+ "/email",
+ "/enom",
+ "/enterprise-billing-center",
+ "/external-libraries",
+ "/faq",
+ "/gandi",
+ "/get-started",
+ "/glossary/",
+ "/go-live",
+ "/godaddy",
+ "/google",
+ "/guides",
+ "/guides/accessibility",
+ "/guides/accessibility/best-practices",
+ "/guides/accessibility/get-started",
+ "/guides/accessibility/resources",
+ "/guides/accessibility/tools",
+ "/guides/account-mgmt",
+ "/guides/account-mgmt/account",
+ "/guides/account-mgmt/account/delete",
+ "/guides/account-mgmt/account/recover",
+ "/guides/account-mgmt/account/types",
+ "/guides/account-mgmt/billing",
+ "/guides/account-mgmt/billing/invoices",
+ "/guides/account-mgmt/billing/methods",
+ "/guides/account-mgmt/billing/periods",
+ "/guides/account-mgmt/billing/transfer",
+ "/guides/account-mgmt/billing/troubleshooting",
+ "/guides/account-mgmt/plans",
+ "/guides/account-mgmt/plans/faq",
+ "/guides/account-mgmt/plans/pricing",
+ "/guides/account-mgmt/plans/resources",
+ "/guides/account-mgmt/plans/site-plans",
+ "/guides/account-mgmt/plans/workspace-plans",
+ "/guides/account-mgmt/traffic",
+ "/guides/account-mgmt/traffic/overages",
+ "/guides/account-mgmt/traffic/remedy",
+ "/guides/account-mgmt/workspace-sites-teams",
+ "/guides/account-mgmt/workspace-sites-teams/sites",
+ "/guides/account-mgmt/workspace-sites-teams/teams",
+ "/guides/account-mgmt/workspace-sites-teams/tools",
+ "/guides/account-mgmt/workspace-sites-teams/workspaces",
+ "/guides/acquia",
+ "/guides/acquia/faq",
+ "/guides/acquia/migrate",
+ "/guides/acquia/prepare",
+ "/guides/acquia/troubleshooting",
+ "/guides/agcdn",
+ "/guides/agcdn/agcdn-faq",
+ "/guides/agcdn/agcdn-features",
+ "/guides/agcdn/agcdn-wafio",
+ "/guides/agcdn/submit-request",
+ "/guides/autopilot",
+ "/guides/autopilot-custom-upstream",
+ "/guides/autopilot-custom-upstream/autopilot-custom-upstream-config",
+ "/guides/autopilot-custom-upstream/wp-autopilot-custom-upstream",
+ "/guides/autopilot/apply-updates/",
+ "/guides/autopilot/autopilot-deactivate",
+ "/guides/autopilot/autopilot-faq/",
+ "/guides/autopilot/autopilot-preconfiguration/",
+ "/guides/autopilot/enable-autopilot/",
+ "/guides/autopilot/tests-results/",
+ "/guides/autopilot/troubleshoot-autopilot/",
+ "/guides/backups",
+ "/guides/backups/access-backups",
+ "/guides/backups/code-archives-backups-log",
+ "/guides/backups/create-backups",
+ "/guides/backups/faqs-backups",
+ "/guides/backups/restore-from-backup",
+ "/guides/build-tools/",
+ "/guides/build-tools/configure/",
+ "/guides/build-tools/create-project/",
+ "/guides/build-tools/custom-theme/",
+ "/guides/build-tools/extend/",
+ "/guides/build-tools/merge/",
+ "/guides/build-tools/pr-workflow/",
+ "/guides/build-tools/tests/",
+ "/guides/build-tools/update/",
+ "/guides/create-wp-site",
+ "/guides/custom-upstream",
+ "/guides/custom-upstream/create-custom-upstream",
+ "/guides/custom-upstream/delete-custom-upstream",
+ "/guides/custom-upstream/edit-custom-upstream",
+ "/guides/custom-upstream/maintain-custom-upstream",
+ "/guides/custom-upstream/manage-dependencies-custom-upstream",
+ "/guides/custom-upstream/switch-custom-upstream",
+ "/guides/custom-upstream/test-custom-upstream",
+ "/guides/custom-upstream/troubleshooting",
+ "/guides/decoupled",
+ "/guides/decoupled/drupal-backend-starters",
+ "/guides/decoupled/drupal-backend-starters/build-hooks",
+ "/guides/decoupled/drupal-backend-starters/caching",
+ "/guides/decoupled/drupal-backend-starters/create",
+ "/guides/decoupled/drupal-backend-starters/manage-settings",
+ "/guides/decoupled/drupal-nextjs-frontend-starters",
+ "/guides/decoupled/drupal-nextjs-frontend-starters/build-details",
+ "/guides/decoupled/drupal-nextjs-frontend-starters/caching",
+ "/guides/decoupled/drupal-nextjs-frontend-starters/content-preview",
+ "/guides/decoupled/drupal-nextjs-frontend-starters/create",
+ "/guides/decoupled/drupal-nextjs-frontend-starters/manage-settings",
+ "/guides/decoupled/drupal-nextjs-frontend-starters/robots-indexing",
+ "/guides/decoupled/no-starter-kit",
+ "/guides/decoupled/no-starter-kit/any-framework",
+ "/guides/decoupled/no-starter-kit/build-details",
+ "/guides/decoupled/no-starter-kit/create",
+ "/guides/decoupled/no-starter-kit/import-repo",
+ "/guides/decoupled/no-starter-kit/manage-settings",
+ "/guides/decoupled/overview",
+ "/guides/decoupled/overview/considerations",
+ "/guides/decoupled/overview/faq",
+ "/guides/decoupled/overview/fes-multidev",
+ "/guides/decoupled/overview/manage-settings",
+ "/guides/decoupled/overview/site",
+ "/guides/decoupled/overview/site-options",
+ "/guides/decoupled/overview/support",
+ "/guides/decoupled/overview/troubleshooting",
+ "/guides/decoupled/overview/v1-pipeline",
+ "/guides/decoupled/wp-backend-starters",
+ "/guides/decoupled/wp-backend-starters/build-hooks",
+ "/guides/decoupled/wp-backend-starters/caching",
+ "/guides/decoupled/wp-backend-starters/create",
+ "/guides/decoupled/wp-backend-starters/manage-settings",
+ "/guides/decoupled/wp-gatsby-frontend-starters",
+ "/guides/decoupled/wp-gatsby-frontend-starters/build-details",
+ "/guides/decoupled/wp-gatsby-frontend-starters/create",
+ "/guides/decoupled/wp-gatsby-frontend-starters/manage-settings",
+ "/guides/decoupled/wp-gatsby-frontend-starters/robots-indexing",
+ "/guides/decoupled/wp-nextjs-frontend-starters",
+ "/guides/decoupled/wp-nextjs-frontend-starters/build-details",
+ "/guides/decoupled/wp-nextjs-frontend-starters/caching",
+ "/guides/decoupled/wp-nextjs-frontend-starters/content-preview",
+ "/guides/decoupled/wp-nextjs-frontend-starters/create",
+ "/guides/decoupled/wp-nextjs-frontend-starters/manage-settings",
+ "/guides/decoupled/wp-nextjs-frontend-starters/robots-indexing",
+ "/guides/disaster-recovery",
+ "/guides/disaster-recovery/incident-remediation",
+ "/guides/disaster-recovery/planning-ahead",
+ "/guides/disaster-recovery/site-goes-down",
+ "/guides/domains",
+ "/guides/domains/custom-domains",
+ "/guides/domains/dns",
+ "/guides/domains/domain-hijacking",
+ "/guides/domains/domains-faq",
+ "/guides/domains/hosts-file",
+ "/guides/domains/platform-domains",
+ "/guides/domains/primary-domain",
+ "/guides/domains/troubleshooting",
+ "/guides/domains/vanity-domains",
+ "/guides/drupal-hosted",
+ "/guides/drupal-hosted-btworkflow",
+ "/guides/drupal-hosted-btworkflow/backup-token",
+ "/guides/drupal-hosted-btworkflow/contrib-custom",
+ "/guides/drupal-hosted-btworkflow/copy-config",
+ "/guides/drupal-hosted-btworkflow/database",
+ "/guides/drupal-hosted-btworkflow/deploy",
+ "/guides/drupal-hosted-btworkflow/prepare",
+ "/guides/drupal-hosted-btworkflow/restore-token",
+ "/guides/drupal-hosted-btworkflow/troubleshooting",
+ "/guides/drupal-hosted-btworkflow/upload-files",
+ "/guides/drupal-hosted-createbt",
+ "/guides/drupal-hosted-createbt/core",
+ "/guides/drupal-hosted-createbt/deploy",
+ "/guides/drupal-hosted-createbt/mariadb",
+ "/guides/drupal-hosted-createbt/prepare",
+ "/guides/drupal-hosted-createbt/troubleshooting",
+ "/guides/drupal-hosted-createbt/upgrade",
+ "/guides/drupal-hosted-createcustom",
+ "/guides/drupal-hosted-createcustom/contrib-custom",
+ "/guides/drupal-hosted-createcustom/dependencies",
+ "/guides/drupal-hosted-createcustom/deploy-dev",
+ "/guides/drupal-hosted-createcustom/deploy-live",
+ "/guides/drupal-hosted-createcustom/new-branch",
+ "/guides/drupal-hosted-createcustom/site-customizations",
+ "/guides/drupal-hosted-createcustom/troubleshooting",
+ "/guides/drupal-hosted-createdashboard-set8",
+ "/guides/drupal-hosted-createdashboard-set8/core-updates",
+ "/guides/drupal-hosted-createdashboard-set8/deploy",
+ "/guides/drupal-hosted-createdashboard-set8/drupal-core-version",
+ "/guides/drupal-hosted-createdashboard-set8/prepare",
+ "/guides/drupal-hosted-createdashboard-set8/troubleshooting",
+ "/guides/drupal-hosted-createempty-md",
+ "/guides/drupal-hosted-createempty-md/change-upstream",
+ "/guides/drupal-hosted-createempty-md/composer-upstream",
+ "/guides/drupal-hosted-createempty-md/contrib-custom",
+ "/guides/drupal-hosted-createempty-md/dependency-versions",
+ "/guides/drupal-hosted-createempty-md/deploy-dev",
+ "/guides/drupal-hosted-createempty-md/deploy-live",
+ "/guides/drupal-hosted-createempty-md/prepare",
+ "/guides/drupal-hosted-createempty-md/troubleshooting",
+ "/guides/drupal-hosted-md",
+ "/guides/drupal-hosted-md/core-updates",
+ "/guides/drupal-hosted-md/deploy",
+ "/guides/drupal-hosted-md/drupal-core-version",
+ "/guides/drupal-hosted-md/prepare",
+ "/guides/drupal-hosted-md/troubleshooting",
+ "/guides/drupal-hosted/code",
+ "/guides/drupal-hosted/create-site",
+ "/guides/drupal-hosted/deploy",
+ "/guides/drupal-hosted/prepare",
+ "/guides/drupal-hosted/troubleshooting",
+ "/guides/drupal-unhosted",
+ "/guides/drupal-unhosted-composer",
+ "/guides/drupal-unhosted-composer/contrib-custom",
+ "/guides/drupal-unhosted-composer/database",
+ "/guides/drupal-unhosted-composer/deploy-dev",
+ "/guides/drupal-unhosted-composer/deploy-live",
+ "/guides/drupal-unhosted-composer/files",
+ "/guides/drupal-unhosted-composer/prepare",
+ "/guides/drupal-unhosted-composer/troubleshooting",
+ "/guides/drupal-unhosted/add-database",
+ "/guides/drupal-unhosted/contrib-custom",
+ "/guides/drupal-unhosted/copy-config",
+ "/guides/drupal-unhosted/deploy",
+ "/guides/drupal-unhosted/deploy-dev",
+ "/guides/drupal-unhosted/prepare",
+ "/guides/drupal-unhosted/troubleshooting",
+ "/guides/drupal-unhosted/upload-files",
+ "/guides/drush",
+ "/guides/drush/drupal-commandline",
+ "/guides/drush/drush-aliases",
+ "/guides/drush/drush-commands",
+ "/guides/drush/drush-import",
+ "/guides/drush/drush-known-limitations",
+ "/guides/drush/drush-sql-queries",
+ "/guides/drush/drush-versions",
+ "/guides/drush/troubleshoot-drush",
+ "/guides/edge-integrations/",
+ "/guides/edge-integrations/analytics/",
+ "/guides/edge-integrations/configuration-overview/",
+ "/guides/edge-integrations/drupal-sdk/",
+ "/guides/edge-integrations/wordpress-sdk/",
+ "/guides/enterprise-billing-center",
+ "/guides/enterprise-billing-center/faq",
+ "/guides/enterprise-billing-center/interacting",
+ "/guides/enterprise-billing-center/invoices",
+ "/guides/enterprise-billing-center/site-portfolio-report",
+ "/guides/environment-configuration",
+ "/guides/environment-configuration/environment-indicator",
+ "/guides/environment-configuration/environment-specific-config",
+ "/guides/environment-configuration/environment-specific-config-drupal",
+ "/guides/environment-configuration/read-environment-config",
+ "/guides/environment-configuration/restore-environment-backup",
+ "/guides/errors-and-server-responses",
+ "/guides/errors-and-server-responses/4xx-errors",
+ "/guides/errors-and-server-responses/5xx-errors",
+ "/guides/errors-and-server-responses/external-web-service-calls",
+ "/guides/errors-and-server-responses/overloaded-workers",
+ "/guides/errors-and-server-responses/retries-server-containers",
+ "/guides/errors-and-server-responses/slow-and-high-queries",
+ "/guides/fastly-pantheon",
+ "/guides/fastly-pantheon/connect-fastly",
+ "/guides/fastly-pantheon/fastly-amazon-s3",
+ "/guides/fastly-pantheon/fastly-datadog",
+ "/guides/fastly-pantheon/fastly-faq",
+ "/guides/fastly-pantheon/fastly-new-relic",
+ "/guides/fastly-pantheon/fastly-sftp",
+ "/guides/fastly-pantheon/fastly-splunk",
+ "/guides/fastly-pantheon/fastly-syslog",
+ "/guides/filesystem/",
+ "/guides/filesystem/batch-files",
+ "/guides/filesystem/files-directories",
+ "/guides/filesystem/large-files",
+ "/guides/filesystem/tmp",
+ "/guides/filesystem/troubleshooting",
+ "/guides/frontend-performance",
+ "/guides/frontend-performance/additional-resources",
+ "/guides/frontend-performance/caching",
+ "/guides/frontend-performance/code-css",
+ "/guides/frontend-performance/diagnostics",
+ "/guides/frontend-performance/media",
+ "/guides/frontend-performance/metrics",
+ "/guides/frontend-performance/queries",
+ "/guides/frontend-performance/redirects",
+ "/guides/frontend-performance/static",
+ "/guides/getstarted",
+ "/guides/getstarted/addsite",
+ "/guides/getstarted/launch",
+ "/guides/getstarted/nextsteps",
+ "/guides/getstarted/purchase",
+ "/guides/getstarted/signup",
+ "/guides/getstarted/team",
+ "/guides/git",
+ "/guides/git/collaborative-development",
+ "/guides/git/faq-git",
+ "/guides/git/git-config",
+ "/guides/git/resolve-merge-conflicts",
+ "/guides/git/troubleshooting",
+ "/guides/git/undo-commits",
+ "/guides/git/useful-commands",
+ "/guides/global-cdn",
+ "/guides/global-cdn/experience-protection",
+ "/guides/global-cdn/global-cdn-caching",
+ "/guides/global-cdn/global-cdn-faq",
+ "/guides/global-cdn/https",
+ "/guides/global-cdn/test-global-cdn-caching",
+ "/guides/guided",
+ "/guides/guided/faq",
+ "/guides/guided/migrate",
+ "/guides/guided/prepare",
+ "/guides/guided/troubleshooting",
+ "/guides/integrated-composer",
+ "/guides/integrated-composer/create",
+ "/guides/integrated-composer/dependencies",
+ "/guides/integrated-composer/ic-support",
+ "/guides/integrated-composer/ic-troubleshooting",
+ "/guides/integrated-composer/ic-upstreams",
+ "/guides/kinsta",
+ "/guides/kinsta/faq",
+ "/guides/kinsta/migrate",
+ "/guides/kinsta/prepare",
+ "/guides/kinsta/troubleshooting",
+ "/guides/launch/",
+ "/guides/launch/advanced-curls/",
+ "/guides/launch/configure-dns/",
+ "/guides/launch/create-site-launch",
+ "/guides/launch/domains/",
+ "/guides/launch/launch-check/",
+ "/guides/launch/next-steps/",
+ "/guides/launch/plans/",
+ "/guides/launch/redirects",
+ "/guides/local-development",
+ "/guides/local-development/configuration",
+ "/guides/local-development/continuous-integration",
+ "/guides/local-development/cygwin-windows",
+ "/guides/local-development/ddev",
+ "/guides/local-development/drupal-phpstorm",
+ "/guides/local-development/graphql-requests",
+ "/guides/local-development/jenkins",
+ "/guides/local-development/lando-wordpress",
+ "/guides/local-development/visual-studio-code",
+ "/guides/local-development/wordpress-phpstorm",
+ "/guides/logs-pantheon",
+ "/guides/logs-pantheon/access-logs",
+ "/guides/logs-pantheon/automate-log-downloads",
+ "/guides/logs-pantheon/faq-logs",
+ "/guides/logs-pantheon/nginx-access-logs",
+ "/guides/manual-d8-composer-to-d8",
+ "/guides/manual-d8-composer-to-d8/contrib-custom",
+ "/guides/manual-d8-composer-to-d8/database",
+ "/guides/manual-d8-composer-to-d8/deploy-dev",
+ "/guides/manual-d8-composer-to-d8/deploy-live",
+ "/guides/manual-d8-composer-to-d8/files",
+ "/guides/manual-d8-composer-to-d8/prepare",
+ "/guides/manual-d8-composer-to-d8/troubleshooting",
+ "/guides/mariadb-mysql",
+ "/guides/mariadb-mysql/database-connection-errors",
+ "/guides/mariadb-mysql/database-workflow-tool",
+ "/guides/mariadb-mysql/kill-mysql-queries",
+ "/guides/mariadb-mysql/mariadb-mysql-faq",
+ "/guides/mariadb-mysql/myisam-to-innodb",
+ "/guides/mariadb-mysql/mysql-access",
+ "/guides/mariadb-mysql/mysql-slow-log",
+ "/guides/mariadb-mysql/mysql-workbench",
+ "/guides/multidev",
+ "/guides/multidev/access-branch",
+ "/guides/multidev/clone-content",
+ "/guides/multidev/compare-environments",
+ "/guides/multidev/create-multidev",
+ "/guides/multidev/delete-multidev",
+ "/guides/multidev/edit-multidev",
+ "/guides/multidev/multidev-faq",
+ "/guides/multisite/",
+ "/guides/multisite/config/",
+ "/guides/multisite/considerations/",
+ "/guides/multisite/debug/",
+ "/guides/multisite/multisite-governance/",
+ "/guides/multisite/search-replace/",
+ "/guides/multisite/workflows/",
+ "/guides/new-relic",
+ "/guides/new-relic/activate-new-relic",
+ "/guides/new-relic/debug-mysql-new-relic",
+ "/guides/new-relic/monitor-new-relic",
+ "/guides/new-relic/new-relic-faq",
+ "/guides/new-relic/new-relic-quicksilver",
+ "/guides/new-relic/troubleshoot-new-relic",
+ "/guides/pagely",
+ "/guides/pagely/faq",
+ "/guides/pagely/migrate",
+ "/guides/pagely/prepare",
+ "/guides/pagely/troubleshooting",
+ "/guides/pagerduty/",
+ "/guides/pagerduty/monitor/",
+ "/guides/pagerduty/next-steps/",
+ "/guides/pagerduty/notify/",
+ "/guides/pagerduty/schedule/",
+ "/guides/pagerduty/slack/",
+ "/guides/php",
+ "/guides/php/deprecated-constructor-notices",
+ "/guides/php/php-errors",
+ "/guides/php/php-slow-log",
+ "/guides/php/php-versions",
+ "/guides/php/settings-php",
+ "/guides/php/wordpress-sessions",
+ "/guides/php/wp-config-php",
+ "/guides/platform-considerations",
+ "/guides/platform-considerations/media-email-support",
+ "/guides/platform-considerations/php-platform",
+ "/guides/platform-considerations/platform-security",
+ "/guides/platform-considerations/platform-site-info",
+ "/guides/platform-considerations/terminus-platform",
+ "/guides/platformsh",
+ "/guides/platformsh/faq",
+ "/guides/platformsh/migrate",
+ "/guides/platformsh/prepare",
+ "/guides/platformsh/troubleshooting",
+ "/guides/professional-services",
+ "/guides/professional-services/advanced-global-cdn",
+ "/guides/professional-services/application-performance",
+ "/guides/professional-services/managed-updates",
+ "/guides/professional-services/onboarding",
+ "/guides/professional-services/website-migration-service",
+ "/guides/quicksilver",
+ "/guides/quicksilver/asana",
+ "/guides/quicksilver/hooks",
+ "/guides/quicksilver/install-script",
+ "/guides/quicksilver/jira",
+ "/guides/quicksilver/trello",
+ "/guides/quicksilver/troubleshoot-quicksilver",
+ "/guides/quicksilver/variables",
+ "/guides/redirect",
+ "/guides/redirect/advanced",
+ "/guides/redirect/https/",
+ "/guides/redirect/mobile",
+ "/guides/redirect/php",
+ "/guides/redirect/primary-domain",
+ "/guides/secrets",
+ "/guides/secrets/composer",
+ "/guides/secrets/drupal",
+ "/guides/secrets/local",
+ "/guides/secrets/overview",
+ "/guides/secrets/php",
+ "/guides/secrets/troubleshooting",
+ "/guides/secure-development",
+ "/guides/secure-development/phpinfo",
+ "/guides/secure-development/private-paths",
+ "/guides/secure-development/secure-integration",
+ "/guides/secure-development/secure-runtime-access",
+ "/guides/secure-development/security-tool",
+ "/guides/secure-development/ssh-tunnels",
+ "/guides/secure-development/two-factor-authentication",
+ "/guides/security",
+ "/guides/sftp",
+ "/guides/sftp/port-2222",
+ "/guides/sftp/rsync-and-sftp",
+ "/guides/sftp/sftp-connection-info",
+ "/guides/sftp/sftp-development",
+ "/guides/sftp/troubleshooting-sftp",
+ "/guides/sftp/vscode-sftp",
+ "/guides/sftp/winscp",
+ "/guides/solr-drupal",
+ "/guides/solr-drupal/solr-drupal",
+ "/guides/solr-drupal/solr-drupal-7",
+ "/guides/sso",
+ "/guides/sso/shibboleth-sso",
+ "/guides/sso/sso",
+ "/guides/sso/sso-organizations",
+ "/guides/support/",
+ "/guides/support/contact-support/",
+ "/guides/support/curl",
+ "/guides/support/early-access/",
+ "/guides/support/faq/",
+ "/guides/support/har/",
+ "/guides/support/support-ticket/",
+ "/guides/woocommerce/",
+ "/guides/woocommerce/commit/",
+ "/guides/woocommerce/configure/",
+ "/guides/woocommerce/develop/",
+ "/guides/woocommerce/initialize-prod/",
+ "/guides/woocommerce/launch/",
+ "/guides/woocommerce/store-setup/",
+ "/guides/wordpress-composer/pre-ga",
+ "/guides/wordpress-configurations",
+ "/guides/wordpress-configurations/installing-updating-from-third-party-sources",
+ "/guides/wordpress-configurations/mu-plugin",
+ "/guides/wordpress-configurations/plugins",
+ "/guides/wordpress-configurations/sendgrid-wordpress-wp-mail-smtp",
+ "/guides/wordpress-configurations/wordpress-cache-plugin",
+ "/guides/wordpress-configurations/wordpress-custom-code",
+ "/guides/wordpress-configurations/wordpress-font-library",
+ "/guides/wordpress-configurations/wp-cfm",
+ "/guides/wordpress-developer",
+ "/guides/wordpress-developer/performant-translations",
+ "/guides/wordpress-developer/wordpress-best-practices",
+ "/guides/wordpress-developer/wordpress-broken-links",
+ "/guides/wordpress-developer/wordpress-cron",
+ "/guides/wordpress-developer/wordpress-development-versions",
+ "/guides/wordpress-developer/wordpress-gcs",
+ "/guides/wordpress-developer/wordpress-login-attacks",
+ "/guides/wordpress-developer/wordpress-s3",
+ "/guides/wordpress-developer/wordpress-secrets-management",
+ "/guides/wordpress-developer/wordpress-solr",
+ "/guides/wordpress-developer/xml-rpc-attacks",
+ "/guides/wordpress-git/",
+ "/guides/wordpress-git/media/",
+ "/guides/wordpress-git/next-steps/",
+ "/guides/wordpress-git/plugins/",
+ "/guides/wordpress-git/remove-editor/",
+ "/guides/wordpress-git/themes/",
+ "/guides/wordpress-google-sso/",
+ "/guides/wordpress-google-sso/access-and-mappings",
+ "/guides/wordpress-google-sso/advanced-configuration",
+ "/guides/wordpress-google-sso/going-live",
+ "/guides/wordpress-google-sso/install/",
+ "/guides/wordpress-google-sso/saml-app/",
+ "/guides/wordpress-pantheon/",
+ "/guides/wordpress-pantheon/create-wp-site",
+ "/guides/wordpress-pantheon/migrate-existing-wp-site",
+ "/guides/wordpress-pantheon/plugins",
+ "/guides/wordpress-pantheon/plugins-recommended",
+ "/guides/wordpress-pantheon/troubleshooting",
+ "/guides/wordpress-pantheon/wordpress-developers",
+ "/guides/wordpress-pantheon/wordpress-launch-check",
+ "/guides/wordpress-pantheon/wp-content-management",
+ "/guides/wordpress-pantheon/wp-optimization",
+ "/guides/wordpress-pantheon/wp-security",
+ "/guides/wordpressvip",
+ "/guides/wordpressvip/faq",
+ "/guides/wordpressvip/migrate",
+ "/guides/wordpressvip/prepare",
+ "/guides/wordpressvip/troubleshooting",
+ "/guides/wp-cli",
+ "/guides/wp-cli/install-wp-plugins-themes",
+ "/guides/wp-cli/wp-cli-global-parameters",
+ "/guides/wp-cli/wp-cli-pantheon-commands",
+ "/guides/wp-cli/wp-cli-sql-php-subcommands",
+ "/guides/wp-cli/wp-cli-troubleshoot",
+ "/guides/wpengine",
+ "/guides/wpengine/faq",
+ "/guides/wpengine/migrate",
+ "/guides/wpengine/prepare",
+ "/guides/wpengine/troubleshooting",
+ "/headless",
+ "/horizontal-scalability",
+ "/hotfixes",
+ "/http-to-https",
+ "/iframeembeds/certification/pressure-on-developers",
+ "/iframeembeds/certification/pressure-on-it",
+ "/iframeembeds/certification/what-is-webops",
+ "/iframeembeds/certification/what-problems-does-webops-solve",
+ "/inclusive-language",
+ "/integrations",
+ "/jenkins",
+ "/ldap-and-ldaps",
+ "/load-and-performance-testing",
+ "/load-testing-with-blazemeter",
+ "/local-dns-cache",
+ "/lockr",
+ "/machine-tokens",
+ "/manage",
+ "/migrate-cpanel",
+ "/migrate-manual",
+ "/migrate-wordpress",
+ "/migrate-wordpress-multisite",
+ "/mime-types",
+ "/modules",
+ "/modules-known-issues",
+ "/modules-plugins-known-issues",
+ "/monthly-maintenance",
+ "/multizone-failover",
+ "/namecheap",
+ "/nested-docroot",
+ "/network-solutions",
+ "/newrelic",
+ "/object-cache",
+ "/object-cache/cli",
+ "/object-cache/drupal",
+ "/object-cache/errors",
+ "/object-cache/faq",
+ "/object-cache/remove",
+ "/object-cache/wordpress",
+ "/object-cache/wordpress-deprecated",
+ "/opensolr",
+ "/optimize-wp-options-table-autoloaded-data",
+ "/oss-support-levels",
+ "/outgoing-ips",
+ "/overview",
+ "/pantheon-community",
+ "/pantheon-workflow",
+ "/pantheon-yml",
+ "/pantheon-yml-overview",
+ "/pantheon_stripped",
+ "/partial-composer",
+ "/performance",
+ "/personal-settings",
+ "/pingdom-uptime-check",
+ "/pivotal-tracker",
+ "/platform",
+ "/platform-notifications",
+ "/platform-upgrade",
+ "/plugins-known-issues",
+ "/products",
+ "/regions",
+ "/relaunch",
+ "/release-notes/",
+ "/release-notes/1/",
+ "/release-notes/10/",
+ "/release-notes/11/",
+ "/release-notes/12/",
+ "/release-notes/13/",
+ "/release-notes/14/",
+ "/release-notes/15/",
+ "/release-notes/16/",
+ "/release-notes/17/",
+ "/release-notes/18/",
+ "/release-notes/19/",
+ "/release-notes/2/",
+ "/release-notes/20/",
+ "/release-notes/2015/01/concerned-about-cve-2015-0235-aka-ghost",
+ "/release-notes/2015/01/php-upgrade",
+ "/release-notes/2015/01/supporting-orgs-multi-org",
+ "/release-notes/2015/02/documentation",
+ "/release-notes/2015/02/new-wordpress-upstream",
+ "/release-notes/2015/02/terminus-0-5-released",
+ "/release-notes/2015/02/try-drupal-8-beta",
+ "/release-notes/2015/02/varnish-testing-harness",
+ "/release-notes/2015/03/dashboard-optimization",
+ "/release-notes/2015/03/documentation",
+ "/release-notes/2015/03/drupal-7-35-update",
+ "/release-notes/2015/03/terminus-improvement",
+ "/release-notes/2015/04/documentation",
+ "/release-notes/2015/04/edge-cache-configuration-update",
+ "/release-notes/2015/04/fedora-update",
+ "/release-notes/2015/04/saml-users",
+ "/release-notes/2015/04/styx-to-appserver-encryption",
+ "/release-notes/2015/04/wordpress-core-updates-to-4-2-1",
+ "/release-notes/2015/04/wordpress-launch-check",
+ "/release-notes/2015/05/barrel-roll-reboots",
+ "/release-notes/2015/05/dashboard-load-times",
+ "/release-notes/2015/05/free-backups",
+ "/release-notes/2015/05/webinars",
+ "/release-notes/2015/06/documentation",
+ "/release-notes/2015/06/improved-workflows-notifications",
+ "/release-notes/2015/06/single-sign-on-sso-release",
+ "/release-notes/2015/06/walkme-tours",
+ "/release-notes/2015/07/documentation",
+ "/release-notes/2015/07/kalabox-2-pantheon",
+ "/release-notes/2015/07/multidev-ui-updated",
+ "/release-notes/2015/07/scripts-to-quickly-make-a-drupal-7-project-using-composer",
+ "/release-notes/2015/07/wordpress-4-2-3-is-live",
+ "/release-notes/2015/08/documentation",
+ "/release-notes/2015/08/nginx-conf-update-for-photon",
+ "/release-notes/2015/08/php-5-5-opcache-revalidate-freq-value-is-now-set-to-zero",
+ "/release-notes/2015/08/php-default-arg-separator",
+ "/release-notes/2015/08/saint-mode-saves-your-images",
+ "/release-notes/2015/08/terminus-cli-version-0-7-1",
+ "/release-notes/2015/09/documentation",
+ "/release-notes/2015/09/login-destination",
+ "/release-notes/2015/09/pantheon-enterprise-is-now-available",
+ "/release-notes/2015/09/terminus-0-8-0",
+ "/release-notes/2015/10/documentation",
+ "/release-notes/2015/10/drupal-7-defaults-to-php-5-5",
+ "/release-notes/2015/10/drupal-8-rc2-released-and-available",
+ "/release-notes/2015/10/edge-cache-upgraded-to-varnish-4",
+ "/release-notes/2015/10/organization-renaming",
+ "/release-notes/2015/10/terminus-0-9-2-released",
+ "/release-notes/2015/10/terminus-commands-updated",
+ "/release-notes/2015/10/wp-cli-search-replace",
+ "/release-notes/2015/12/documentation",
+ "/release-notes/2016/01/documentation",
+ "/release-notes/2016/01/machine-token-authentication",
+ "/release-notes/2016/01/pantheon-hud-plugin",
+ "/release-notes/2016/01/quicksilver-platform-hooks-are-now-available",
+ "/release-notes/2016/01/terminus-0-10-2-released",
+ "/release-notes/2016/02/cloud-integration-tools",
+ "/release-notes/2016/02/code-archives",
+ "/release-notes/2016/02/documentation",
+ "/release-notes/2016/02/end-of-life-for-drupal-6",
+ "/release-notes/2016/02/platform-domains",
+ "/release-notes/2016/02/terminus-0-10-2-released",
+ "/release-notes/2016/02/wordpress-at-scale",
+ "/release-notes/2016/02/wordpress-core-updates",
+ "/release-notes/2016/03/documentation",
+ "/release-notes/2016/03/freezing-inactive-sites",
+ "/release-notes/2016/03/terminus-0-11-0-released",
+ "/release-notes/2016/04/documentation",
+ "/release-notes/2016/04/new-terminus-plugins-for-quicksilver-integrations",
+ "/release-notes/2016/04/terminus-0-11-1-released",
+ "/release-notes/2016/04/workflow-tab-renamed-to-databases-files",
+ "/release-notes/2016/05/pantheon-enterprise-support-now-available",
+ "/release-notes/2016/05/terminus-0-11-1",
+ "/release-notes/2016/06/drupal-8-site-imports-now-supported",
+ "/release-notes/2016/06/new-migration-button-on-the-dashboard",
+ "/release-notes/2016/06/new-reliable-screenshots-microservice-&-user-dashboard-design-update",
+ "/release-notes/2016/06/new-relic-pro",
+ "/release-notes/2016/07/documentation",
+ "/release-notes/2016/07/drupal-contrib-module-security-updates",
+ "/release-notes/2016/07/migrating-wordpress-sites-to-pantheon-just-got-easier",
+ "/release-notes/2016/07/terminus-0-11-2",
+ "/release-notes/2016/07/tls-1-0-deprecated",
+ "/release-notes/2016/08/advanced-site-configurations-available",
+ "/release-notes/2016/08/documentation",
+ "/release-notes/2016/08/new-hooks-for-quicksilver-platform-integration",
+ "/release-notes/2016/08/php-5-6-7-0-released",
+ "/release-notes/2016/08/solr-power-for-wordpress-0-5-update",
+ "/release-notes/2016/08/terminus-0-12-0",
+ "/release-notes/2016/09/bug-fixes",
+ "/release-notes/2016/09/dashboard-design-updates",
+ "/release-notes/2016/09/documentation",
+ "/release-notes/2016/09/drush_version-is-now-managed-in-pantheon-yml",
+ "/release-notes/2016/09/kalabox-2-0-is-available",
+ "/release-notes/2016/09/terminus-0-13-2",
+ "/release-notes/2016/10/custom-domains-in-multidev-environments",
+ "/release-notes/2016/10/documentation",
+ "/release-notes/2016/10/solr-power-for-wordpress-0-6-update",
+ "/release-notes/2016/10/terminus-1-0-alpha-release",
+ "/release-notes/2016/11/chat-support",
+ "/release-notes/2016/11/drupal-6-long-term-support-(lts)-partners",
+ "/release-notes/2016/11/drupal-core-updates",
+ "/release-notes/2016/11/early-release-pantheon-advanced-page-cache-plugin",
+ "/release-notes/2016/11/new-relic-agent-upgrade",
+ "/release-notes/2016/11/php-upgrade",
+ "/release-notes/2016/11/platform-security-update",
+ "/release-notes/2016/11/terminus-0-13-4-and-terminus-1-0-alpha",
+ "/release-notes/2016/12/documentation",
+ "/release-notes/2016/12/drupal-core-updates",
+ "/release-notes/2016/12/privacy-shield-framework-compliance",
+ "/release-notes/2016/12/supported-mime-types",
+ "/release-notes/2016/12/terminus-manual-and-terminus-1-0-beta-releases",
+ "/release-notes/2016/12/upgraded-wp-cli",
+ "/release-notes/2016/12/wordpress-4-7-core-update",
+ "/release-notes/2016/12/wordpress-4-7-security-patches",
+ "/release-notes/2017/01/drupal-8-2-5-upgrade",
+ "/release-notes/2017/01/terminus-1-0",
+ "/release-notes/2017/01/terminus-plugins",
+ "/release-notes/2017/01/wordpress-4-7-2-upgrade",
+ "/release-notes/2017/02/documentation",
+ "/release-notes/2017/02/drupal-core-upgrade",
+ "/release-notes/2017/02/patched-for-linux-kernel-vulnerability",
+ "/release-notes/2017/02/php-upgrade",
+ "/release-notes/2017/03/documentation",
+ "/release-notes/2017/03/drupal-core-upgrades",
+ "/release-notes/2017/03/wp-cli-upgrade",
+ "/release-notes/2017/04/bug-fixes",
+ "/release-notes/2017/04/documentation",
+ "/release-notes/2017/04/drupal-core-upgrades",
+ "/release-notes/2017/04/terminus-1-3-0",
+ "/release-notes/2017/04/wordpress-upgrades",
+ "/release-notes/2017/05/documentation",
+ "/release-notes/2017/05/drupal-core-upgrades",
+ "/release-notes/2017/05/php-upgrade",
+ "/release-notes/2017/05/platform-security",
+ "/release-notes/2017/06/core-upgrades",
+ "/release-notes/2017/06/default-php-versions",
+ "/release-notes/2017/06/documentation",
+ "/release-notes/2017/06/new-relic",
+ "/release-notes/2017/06/pantheon-upstream-configuration",
+ "/release-notes/2017/06/terminus-1-4-0",
+ "/release-notes/2017/06/wp-cli",
+ "/release-notes/2017/07/custom-upstreams-self-serve-github-and-bitbucket",
+ "/release-notes/2017/07/documentation",
+ "/release-notes/2017/07/drupal-8-with-redirect-and-simple-xml-sitemap-modules-now-supported",
+ "/release-notes/2017/07/drupal-core-upgrades",
+ "/release-notes/2017/07/nginx-web-server-integer-overflow-vulnerability-mitigated",
+ "/release-notes/2017/07/terminus-1-4-1",
+ "/release-notes/2017/08/documentation",
+ "/release-notes/2017/08/drupal-core-upgrades",
+ "/release-notes/2017/08/global-cdn-surrogate-key-cache-clearing-api-improvement",
+ "/release-notes/2017/08/php-upgrades",
+ "/release-notes/2017/08/terminus-1-5",
+ "/release-notes/2017/08/wordpress-core-upgrades",
+ "/release-notes/2017/09/documentation",
+ "/release-notes/2017/09/new-relic",
+ "/release-notes/2017/09/wp-cli",
+ "/release-notes/2017/09/wp-native-php-sessions",
+ "/release-notes/2017/10/custom-upstreams",
+ "/release-notes/2017/10/documentation",
+ "/release-notes/2017/10/php-7-1-&-ioncube-decoder",
+ "/release-notes/2017/10/terminus-1-6",
+ "/release-notes/2017/10/webp-image-support",
+ "/release-notes/2017/10/wordpress-core-upgrades",
+ "/release-notes/2017/11/documentation",
+ "/release-notes/2017/11/drupal-core-upgrades",
+ "/release-notes/2017/11/site-dashboard-update",
+ "/release-notes/2017/11/sites-requiring-upgrade-to-global-cdn-now-shown-on-user-&-org-dashboards",
+ "/release-notes/2017/11/wordpress-core-upgrades",
+ "/release-notes/2017/12/bug-fixes-and-improvements",
+ "/release-notes/2017/12/documentation",
+ "/release-notes/2017/12/drupal-core-upgrades",
+ "/release-notes/2017/12/php-upgrades",
+ "/release-notes/2018/01/documentation",
+ "/release-notes/2018/01/drupal-core-upgrades",
+ "/release-notes/2018/01/launch-check-now-supports-drupal-8",
+ "/release-notes/2018/01/new-relic-php-7-2-support",
+ "/release-notes/2018/01/pantheon-moves-to-google-cloud-platform",
+ "/release-notes/2018/01/php-upgrades",
+ "/release-notes/2018/01/registry-rebuild-upgrade",
+ "/release-notes/2018/01/wordpress-core-upgrade",
+ "/release-notes/2018/01/wp-cli-upgrades",
+ "/release-notes/2018/02/custom-upstream-quicksilver-enhancement",
+ "/release-notes/2018/02/drupal-core-upgrades",
+ "/release-notes/2018/02/legacy-ssl-add-on-price-increase",
+ "/release-notes/2018/02/php-updates",
+ "/release-notes/2018/02/wordpress-core-upgrade",
+ "/release-notes/2018/03/drupal-core-upgrades",
+ "/release-notes/2018/03/global-cdn-surrogate-key-raw-disabled-by-default",
+ "/release-notes/2018/03/php-security-upgrades",
+ "/release-notes/2018/03/terminus-1-8",
+ "/release-notes/2018/03/wordpress-core-upgrade",
+ "/release-notes/2018/04/documentation",
+ "/release-notes/2018/04/drupal-core-upgrades",
+ "/release-notes/2018/04/ocsp-stapling-enabled-on-global-cdn",
+ "/release-notes/2018/04/testing-seo-now-supported-on-platform-domains",
+ "/release-notes/2018/04/wordpress-core-upgrade",
+ "/release-notes/2018/05/documentation",
+ "/release-notes/2018/05/duplicate-pantheon-sites-with-terminus-site-clone",
+ "/release-notes/2018/05/filemount-configuration",
+ "/release-notes/2018/05/php-7-2-ms-sql-support",
+ "/release-notes/2018/05/php-updates",
+ "/release-notes/2018/05/upgrade-to-php-7-1-or-7-2-before-december",
+ "/release-notes/2018/05/wordpress-core-upgrade",
+ "/release-notes/2018/07/crawler-access-to-platform-domains",
+ "/release-notes/2018/07/documentation",
+ "/release-notes/2018/07/drupal-8-5-5",
+ "/release-notes/2018/07/terminus-1-8-1",
+ "/release-notes/2018/07/wordpress-4-9-7",
+ "/release-notes/2018/08/apache-tika-update",
+ "/release-notes/2018/08/documentation",
+ "/release-notes/2018/08/https-provisioning-accelerated",
+ "/release-notes/2018/08/php-upgrades",
+ "/release-notes/2018/09/drupal-7-59",
+ "/release-notes/2018/09/drupal-8-5-6",
+ "/release-notes/2018/09/new-php-default-versions-for-pantheon-maintained-upstreams",
+ "/release-notes/2018/09/php-upgrades",
+ "/release-notes/2018/09/wordpress-4-9-8",
+ "/release-notes/2018/10/documentation",
+ "/release-notes/2018/10/drupal-8-6-1",
+ "/release-notes/2018/10/drupal-maintenance-mode-imagecache-fix",
+ "/release-notes/2018/10/improve-email-deliverability-with-spf-records",
+ "/release-notes/2018/10/php-version-updates",
+ "/release-notes/2018/11/drupal-7-60",
+ "/release-notes/2018/11/drupal-8-6-2",
+ "/release-notes/2018/11/php-7-2-11-and-7-1-23",
+ "/release-notes/2018/12/documentation",
+ "/release-notes/2018/12/drupal-8-6-3-and-7-61-now-available-as-1-click-updates",
+ "/release-notes/2018/12/multidev-access",
+ "/release-notes/2018/12/partner-program",
+ "/release-notes/2018/12/php-updates",
+ "/release-notes/2019/01/disaster-recovery",
+ "/release-notes/2019/01/documentation",
+ "/release-notes/2019/01/drupal-8-6-5-and-wordpress-5-0-1-now-available-as-1-click-updates",
+ "/release-notes/2019/02/drupal-8-6-7,-7-63,-and-wordpress-5-0-3-now-available-as-1-click-updates",
+ "/release-notes/2019/02/new-relic-php-agent-upgraded",
+ "/release-notes/2019/02/php-7-2-and-7-1-updated",
+ "/release-notes/2019/02/php-intl-extension-now-available",
+ "/release-notes/2019/03/documentation",
+ "/release-notes/2019/03/drupal-8-6-10,-7-64,-and-wordpress-5-1-now-available-as-1-click-updates",
+ "/release-notes/2019/03/eu-region-early-access",
+ "/release-notes/2019/03/php-7-2-updated",
+ "/release-notes/2019/03/terminus-2-0-released!",
+ "/release-notes/2019/03/wordpress-launch-check-shows-vulnerability-info",
+ "/release-notes/2019/04/community-updates",
+ "/release-notes/2019/04/documentation",
+ "/release-notes/2019/04/drupal-core-upgrades",
+ "/release-notes/2019/04/pantheon-heroes",
+ "/release-notes/2019/04/wordpress-5-1-1",
+ "/release-notes/2019/05/disaster-recovery-now-supports-redis-cache",
+ "/release-notes/2019/05/drupal-core-updates-available",
+ "/release-notes/2019/05/european-union-region-in-limited-availability",
+ "/release-notes/2019/05/new-relic-agent-upgraded",
+ "/release-notes/2019/05/pantheon-heroes",
+ "/release-notes/2019/05/php-7-3-default-for-drupal-8-and-wordpress-sites",
+ "/release-notes/2019/05/site-files-and-backups-moved-to-google-cloud",
+ "/release-notes/2019/05/terminus-2-0-1-release",
+ "/release-notes/2019/06/australia-and-canada-regions-in-limited-availability",
+ "/release-notes/2019/06/drupal-core-updates-available",
+ "/release-notes/2019/06/php-7-1,-7-2,-and-7-3-updated",
+ "/release-notes/2019/06/wordpress-5-2-1",
+ "/release-notes/2019/07/dns-recommendations-update",
+ "/release-notes/2019/07/drupal-core-updates-available",
+ "/release-notes/2019/07/general-availability-for-new-regions",
+ "/release-notes/2019/07/more-consistent-cron-runs",
+ "/release-notes/2019/07/wordpress-5-2-2-update-available",
+ "/release-notes/2019/08/drupal-core-updates-available",
+ "/release-notes/2019/08/new-relic-php-agent-upgrade",
+ "/release-notes/2019/09/drupal-core-updates-available",
+ "/release-notes/2019/09/php-7-1,-7-2-and-7-3-updated",
+ "/release-notes/2019/10/documentation",
+ "/release-notes/2019/10/drupal-core-updates-available",
+ "/release-notes/2019/10/pantheon-now-enforces-https-by-default",
+ "/release-notes/2019/10/platform-robots-txt-now-allows-swiftbot",
+ "/release-notes/2019/10/wordpress-5-2-3",
+ "/release-notes/2019/11/documentation",
+ "/release-notes/2019/11/drupal-8-7-8",
+ "/release-notes/2019/11/pantheon-localdev-0-5-6",
+ "/release-notes/2019/11/php-7-1,-7-2,-and-7-3-updated",
+ "/release-notes/2019/11/wordpress-5-2-4",
+ "/release-notes/2019/12/documentation",
+ "/release-notes/2019/12/drupal-8-7-10",
+ "/release-notes/2019/12/php-7-2,-and-7-3-updated",
+ "/release-notes/2019/12/wordpress-5-3",
+ "/release-notes/2020/01/drupal-8-8-1-and-7-69",
+ "/release-notes/2020/01/localdev-0-6-0-beta-9-released",
+ "/release-notes/2020/01/php-7-2-and-7-3-updated",
+ "/release-notes/2020/01/security-enhancement-outgoing-udp-traffic-blocked",
+ "/release-notes/2020/01/terminus-now-runs-site-local-drush-&-wp-cli",
+ "/release-notes/2020/01/wordpress-5-3-2",
+ "/release-notes/2020/02/drush-8-3-2-released",
+ "/release-notes/2020/02/localdev-0-7-0-released",
+ "/release-notes/2020/02/php-7-3-14-and-7-2-27-updated",
+ "/release-notes/2020/02/terminus-2-3-0-released",
+ "/release-notes/2020/03/advanced-global-cdn",
+ "/release-notes/2020/03/documentation",
+ "/release-notes/2020/03/drupal-8-8-2-released",
+ "/release-notes/2020/03/drush-10",
+ "/release-notes/2020/03/global-cdn-network-expansion",
+ "/release-notes/2020/04/documentation",
+ "/release-notes/2020/04/drupal-8-8-4",
+ "/release-notes/2020/04/localdev-0-9-3",
+ "/release-notes/2020/04/new-relic-agent-9-7-0-258",
+ "/release-notes/2020/04/wp-cli-2-4-0",
+ "/release-notes/2020/05/documentation",
+ "/release-notes/2020/05/drupal-8-8-5",
+ "/release-notes/2020/05/early-access-to-drupal-9-with-integrated-composer",
+ "/release-notes/2020/05/localdev-0-10-0",
+ "/release-notes/2020/05/multidev-cloud-environments-offer",
+ "/release-notes/2020/05/wordpress-5-4-1",
+ "/release-notes/2020/06/documentation",
+ "/release-notes/2020/06/drupal-7-70",
+ "/release-notes/2020/06/drupal-8-8-6",
+ "/release-notes/2020/06/drupal-9-0",
+ "/release-notes/2020/06/global-cdn",
+ "/release-notes/2020/06/go-live-enhancements",
+ "/release-notes/2020/06/localdev-0-10-0",
+ "/release-notes/2020/06/resources-to-navigate-covid-19",
+ "/release-notes/2020/07/documentation",
+ "/release-notes/2020/07/drupal-8-9-1,-8-8-8,-and-7-72",
+ "/release-notes/2020/07/drupal-9-0",
+ "/release-notes/2020/07/localdev-0-10-1",
+ "/release-notes/2020/07/multidev-and-covid-response-site-offers",
+ "/release-notes/2020/07/terminus-2-4-0",
+ "/release-notes/2020/07/traffic-metrics",
+ "/release-notes/2020/07/wordpress-5-4-2",
+ "/release-notes/2020/08/dedicated-certificates-&-updated-go-live",
+ "/release-notes/2020/08/drupal-8-9-2",
+ "/release-notes/2020/08/drupal-9-0",
+ "/release-notes/2020/08/multidev-and-covid-response-site-offers",
+ "/release-notes/2020/09/drupal-8-9-3",
+ "/release-notes/2020/09/drupal-9-0",
+ "/release-notes/2020/09/wordpress-5-5",
+ "/release-notes/2020/10/documentation",
+ "/release-notes/2020/10/drupal-7-73",
+ "/release-notes/2020/10/drupal-8-8-10",
+ "/release-notes/2020/10/drupal-8-9-6",
+ "/release-notes/2020/10/drupal-9-preview-multidev-script",
+ "/release-notes/2020/10/php-7-3-22-and-7-4-10-updated",
+ "/release-notes/2020/10/wordpress-5-5-1",
+ "/release-notes/2020/11/documentation",
+ "/release-notes/2020/11/drupal-8-9-7",
+ "/release-notes/2020/11/drupal-9",
+ "/release-notes/2020/12/documentation",
+ "/release-notes/2020/12/drupal-7-74",
+ "/release-notes/2020/12/drupal-8-9-9",
+ "/release-notes/2020/12/drupal-9-with-one-click-composer-updates",
+ "/release-notes/2020/12/wordpress-5-5-3",
+ "/release-notes/2021/01/documentation",
+ "/release-notes/2021/01/drupal-8-9-11",
+ "/release-notes/2021/01/drupal-9-with-one-click-composer-updates",
+ "/release-notes/2021/01/wordpress-5-6",
+ "/release-notes/2021/02/documentation",
+ "/release-notes/2021/02/drupal-7-78",
+ "/release-notes/2021/02/drupal-8-9-13",
+ "/release-notes/2021/02/drupal-9-with-one-click-composer-updates",
+ "/release-notes/2021/02/localdev-1-0-1",
+ "/release-notes/2021/03/documentation",
+ "/release-notes/2021/03/drupal-9-with-one-click-composer-updates",
+ "/release-notes/2021/03/wordpress-5-6-1",
+ "/release-notes/2021/04/convert-your-drupal-8-pantheon-site-to-drupal-9-with-integrated-composer",
+ "/release-notes/2021/04/documentation",
+ "/release-notes/2021/04/wordpress-5-7",
+ "/release-notes/2021/05/documentation",
+ "/release-notes/2021/05/drupal-7-80",
+ "/release-notes/2021/05/drupal-8-9-14",
+ "/release-notes/2021/05/drupal-9-1-7",
+ "/release-notes/2021/05/wordpress-5-7-1",
+ "/release-notes/2021/06/documentation",
+ "/release-notes/2021/06/drupal-8-9-15",
+ "/release-notes/2021/06/drupal-9-1-8",
+ "/release-notes/2021/06/wordpress-5-7-2",
+ "/release-notes/2021/06/wp-cli-2-5-0",
+ "/release-notes/2021/07/documentation",
+ "/release-notes/2021/07/drupal-7-81",
+ "/release-notes/2021/07/drupal-8-9-16",
+ "/release-notes/2021/07/drupal-9-2-0",
+ "/release-notes/2021/07/wordpress-5-7-2",
+ "/release-notes/2021/08/documentation",
+ "/release-notes/2021/08/drupal-7-82",
+ "/release-notes/2021/08/drupal-8-9-17",
+ "/release-notes/2021/08/drupal-9-2-0",
+ "/release-notes/2021/08/wordpress-5-8",
+ "/release-notes/2021/09/documentation",
+ "/release-notes/2021/09/drupal-7-82",
+ "/release-notes/2021/09/drupal-8-9-18",
+ "/release-notes/2021/09/drupal-9-2-3",
+ "/release-notes/2021/10/documentation",
+ "/release-notes/2021/10/drupal-8-9-19",
+ "/release-notes/2021/10/drupal-9-2-6",
+ "/release-notes/2021/10/wordpress-5-8-1",
+ "/release-notes/2021/11/documentation",
+ "/release-notes/2021/11/drupal-9-2-7",
+ "/release-notes/2021/12/documentation",
+ "/release-notes/2021/12/drupal-8-9-20",
+ "/release-notes/2021/12/drupal-9-2-8",
+ "/release-notes/2021/12/wordpress-5-8-2",
+ "/release-notes/2022/01/documentation",
+ "/release-notes/2022/01/drupal-9",
+ "/release-notes/2022/01/legacy-edge-shutdown-update",
+ "/release-notes/2022/01/new-and-improved-workspace-switcher",
+ "/release-notes/2022/01/one-click-database-and-php-upgrades",
+ "/release-notes/2022/01/terminus",
+ "/release-notes/2022/02/documentation",
+ "/release-notes/2022/02/drupal-9-2-11",
+ "/release-notes/2022/02/drupal-9-3-3",
+ "/release-notes/2022/02/email-preferences-in-the-new-dashboard",
+ "/release-notes/2022/02/wordpress-5-9",
+ "/release-notes/2022/03/documentation",
+ "/release-notes/2022/03/drupal-9-2-13",
+ "/release-notes/2022/03/drupal-9-3-6",
+ "/release-notes/2022/03/wordpress-5-9-1",
+ "/release-notes/2022/04/documentation",
+ "/release-notes/2022/04/drupal-9-2-16",
+ "/release-notes/2022/04/drupal-9-3-9",
+ "/release-notes/2022/05/documentation",
+ "/release-notes/2022/05/drupal-9-2-18",
+ "/release-notes/2022/05/drupal-9-3-12",
+ "/release-notes/2022/06/documentation",
+ "/release-notes/2022/06/drupal-9-2-20",
+ "/release-notes/2022/06/drupal-9-3-14",
+ "/release-notes/2022/06/wordpress-6-0",
+ "/release-notes/2022/07/documentation",
+ "/release-notes/2022/07/drupal-9-2-20",
+ "/release-notes/2022/07/drupal-9-3-17",
+ "/release-notes/2022/07/drupal-9-4-1",
+ "/release-notes/2022/07/wordpress-6-0-1",
+ "/release-notes/2022/08/documentation",
+ "/release-notes/2022/08/drupal-9-3-21",
+ "/release-notes/2022/08/drupal-9-4-5",
+ "/release-notes/2022/08/wordpress-6-0-1",
+ "/release-notes/2022/09/documentation",
+ "/release-notes/2022/09/drupal-9-4-5",
+ "/release-notes/2022/09/php-8-1",
+ "/release-notes/2022/09/wordpress-6-0-2",
+ "/release-notes/2022/09/wordpress-composer-managed-upstream-in-early-access",
+ "/release-notes/2022/10/documentation",
+ "/release-notes/2022/10/drupal-9-3-22",
+ "/release-notes/2022/10/drupal-9-4-5",
+ "/release-notes/2022/10/new-dashboard",
+ "/release-notes/2022/11/autopilot",
+ "/release-notes/2022/11/documentation",
+ "/release-notes/2022/11/drupal-9-3-22",
+ "/release-notes/2022/11/drupal-9-4-8",
+ "/release-notes/2022/11/new-dashboard",
+ "/release-notes/2022/11/wordpress-6-1",
+ "/release-notes/2022/12/drupal-10",
+ "/release-notes/2022/12/drupal-9-4-8",
+ "/release-notes/2022/12/drupal-9-5-0",
+ "/release-notes/2022/12/wordpress-6-1-1",
+ "/release-notes/2023/01/drupal-10-0-2",
+ "/release-notes/2023/01/drupal-9-4-9",
+ "/release-notes/2023/01/drupal-9-5-2",
+ "/release-notes/2023/02/documentation",
+ "/release-notes/2023/02/drupal-10-0-3",
+ "/release-notes/2023/02/drupal-9-4-11",
+ "/release-notes/2023/02/drupal-9-5-3",
+ "/release-notes/2023/02/enterprise-billing-center",
+ "/release-notes/2023/02/front-end-sites",
+ "/release-notes/2023/02/localdev",
+ "/release-notes/2023/02/pantheon-learning",
+ "/release-notes/2023/02/pantheon-object-cache",
+ "/release-notes/2023/02/roles-and-permissions",
+ "/release-notes/2023/02/wordpress-6-1-1",
+ "/release-notes/2023/02/wordpress-multisite",
+ "/release-notes/2023/05/cache-hit-ratio-metrics",
+ "/release-notes/2023/05/wordpress-6-2",
+ "/release-notes/2023/06/launch-check-updates",
+ "/release-notes/2023/06/wordpress-6-2-1",
+ "/release-notes/2023/06/wp-cli-2-8-0",
+ "/release-notes/2023/07/deprecation-of-obsolete-tls-1-2-cipher-suites",
+ "/release-notes/2023/07/drupal-7-98",
+ "/release-notes/2023/07/integrated-composer",
+ "/release-notes/2023/07/wp-cli-2-8-1",
+ "/release-notes/2023/09/drupal-sa-core-2023-006",
+ "/release-notes/2023/09/early-access-customer-scheduled-jobs",
+ "/release-notes/2023/09/early-access-streamlined-user-offboarding",
+ "/release-notes/2023/09/front-end-sites-enhancements",
+ "/release-notes/2023/09/new-php-defaults",
+ "/release-notes/2023/09/object-cache-pro",
+ "/release-notes/2023/09/pantheon-advanced-page-cache-wordpress-plugin-updates",
+ "/release-notes/2023/09/php-security-updates",
+ "/release-notes/2023/09/solr-search-for-wordpress-2-5-0-update",
+ "/release-notes/2023/09/wordpress-multisite-search-and-replace",
+ "/release-notes/2023/10/design-system-integration-docs",
+ "/release-notes/2023/10/drupal-security-update",
+ "/release-notes/2023/10/front-end-sites-settings",
+ "/release-notes/2023/10/php-8-1-and-8-2-updated-to-their-latest-patch-releases",
+ "/release-notes/2023/10/php-memory-limits-updates",
+ "/release-notes/2023/10/wpml-improved-edge-caching-compatibility-cache-hit-ratio-increased-24-percent",
+ "/release-notes/2023/11/composer-logs-visibility",
+ "/release-notes/2023/11/faster-backups",
+ "/release-notes/2023/11/front-end-sites-build-caching-and-node-js-versions",
+ "/release-notes/2023/11/streamlined-user-offboarding",
+ "/release-notes/2023/11/vpat-issued-for-product-accessibility",
+ "/release-notes/2023/11/wordpress-native-php-sessions-1-4-update",
+ "/release-notes/2023/12/delete-front-end-sites-multidevs-directly-from-dashboard-for-streamlined-management",
+ "/release-notes/2023/12/elevated-experience-with-front-end-sites-drupal-starter-kit",
+ "/release-notes/2023/12/optimized-monitoring-for-high-volume-directories",
+ "/release-notes/2023/12/upgraded-security-measures-for-uninterrupted-webops-experience",
+ "/release-notes/2024/01/drupal-7-99-release-bug fixes-and-feature-enhancements",
+ "/release-notes/2024/01/pantheon-release-notes-a-new-year-a-new-chapter",
+ "/release-notes/2024/01/wordpress-6-4-2-security-update",
+ "/release-notes/2024/01/wordpress-6-4-3",
+ "/release-notes/2024/01/wp-cli-v2-9-0-release-now-available-on-pantheon",
+ "/release-notes/2024/02/php-8.3.3-8.2.16-8.1.27",
+ "/release-notes/2024/02/wp-cli-2-10",
+ "/release-notes/2024/02/wp-cli-changes",
+ "/release-notes/2024/03/PHP-7-1-EOS",
+ "/release-notes/2024/03/drupal-7-100",
+ "/release-notes/2024/03/overages-policy-change",
+ "/release-notes/2024/03/pantheon-advanced-page-cache-1.5.0",
+ "/release-notes/2024/03/pantheon-mu-plugin-1-3-2",
+ "/release-notes/2024/03/pantheon-mu-plugin-1-3-3",
+ "/release-notes/2024/03/papc-drupal-file-cache",
+ "/release-notes/2024/03/php-8-2-8-3",
+ "/release-notes/2024/03/terminus-github-action-sessions-cache",
+ "/release-notes/2024/04/community-slack",
+ "/release-notes/2024/04/ea-workflow-logs",
+ "/release-notes/2024/04/enhanced-support-ticket-search-functionality",
+ "/release-notes/2024/04/new-relic-agent",
+ "/release-notes/2024/04/pantheon-mu-plugin-1-4-0-update",
+ "/release-notes/2024/04/php-8-3-recommended",
+ "/release-notes/2024/04/php-81-82-82",
+ "/release-notes/2024/04/sftp-authentication-changes",
+ "/release-notes/2024/04/solr-power-2-5-3",
+ "/release-notes/2024/04/wordpress-6-5",
+ "/release-notes/2024/04/wordpress-6-5-2",
+ "/release-notes/2024/04/wordpress-composer-managed-update",
+ "/release-notes/2024/04/wordpress-pantheon-mu-plugin-1-4-1-update",
+ "/release-notes/2024/05/5xx-error-messages",
+ "/release-notes/2024/05/Synthetics-Check-Limits",
+ "/release-notes/2024/05/load-balancing",
+ "/release-notes/2024/05/new-relic-agent-update-released",
+ "/release-notes/2024/05/pantheon-advanced-page-cache-2-0",
+ "/release-notes/2024/05/pantheon-mu-plugin-1-4-2-update",
+ "/release-notes/2024/05/pantheon-mu-plugin-1-4-3-update",
+ "/release-notes/2024/05/php-82-83",
+ "/release-notes/2024/05/sendgrid-transactional-emails",
+ "/release-notes/2024/05/wordpress-6-5-3-update",
+ "/release-notes/2024/06/drupal-7-101",
+ "/release-notes/2024/06/login-update",
+ "/release-notes/2024/06/pantheon-mu-plugin-1-4-4-wordpress-composer-managed-update",
+ "/release-notes/2024/06/php-81-82-83-updates",
+ "/release-notes/2024/06/quicksilver-examples-new-relic",
+ "/release-notes/2024/06/release-note-multi-select-filter",
+ "/release-notes/2024/06/wordpress-6-5-4",
+ "/release-notes/2024/06/wordpress-6-5-5",
+ "/release-notes/2024/07/domain-validation",
+ "/release-notes/2024/07/new-relic-agent-update-released",
+ "/release-notes/2024/07/new-relic-v2-api-migration",
+ "/release-notes/2024/07/pantheon-mu-plugin-1-4-5",
+ "/release-notes/2024/07/pantheon-mu-plugin-1-5-0",
+ "/release-notes/2024/07/php-82-83",
+ "/release-notes/2024/07/php-defaults",
+ "/release-notes/2024/07/platform-robots-txt-now-supports-pope-tech",
+ "/release-notes/2024/07/rss-feed",
+ "/release-notes/2024/07/wordpress-6-6",
+ "/release-notes/2024/07/wordpress-6-6-1",
+ "/release-notes/2024/07/wordpress-composer-managed-1-31-0-update",
+ "/release-notes/2024/07/wordpress-composer-managed-1-31-1-update",
+ "/release-notes/2024/07/workflow-logs",
+ "/release-notes/2024/08/launchcheck-0-8-0",
+ "/release-notes/2024/08/overage-charges-updates",
+ "/release-notes/2024/08/pantheon-advanced-page-cache-2-1-0",
+ "/release-notes/2024/08/pantheon-secrets-limited-availability",
+ "/release-notes/2024/08/prevent-filesystem-overload",
+ "/release-notes/2024/08/site-plan-checkout-experience",
+ "/release-notes/2024/08/wordpress-composer-managed-1-32-0",
+ "/release-notes/2024/08/wordpress-composer-managed-1-32-1",
+ "/release-notes/2024/09/domain-verification",
+ "/release-notes/2024/09/emergency-ticket-workspace-phase1",
+ "/release-notes/2024/09/pantheon-mu-plugin-1-5-1",
+ "/release-notes/2024/09/php-82-83",
+ "/release-notes/2024/09/rss-bug-fix",
+ "/release-notes/2024/09/terminus-360",
+ "/release-notes/2024/09/wordpress-662",
+ "/release-notes/2024/09/wordpress-composer-managed-1-32-2",
+ "/release-notes/2024/09/wordpress-composer-managed-1-32-3",
+ "/release-notes/2024/09/wp-cli-2-11",
+ "/release-notes/2024/10/drupal-11-site-creation",
+ "/release-notes/2024/10/drupal-7-lts",
+ "/release-notes/2024/10/gravityforms-bug-fix",
+ "/release-notes/2024/10/new-relic-agent",
+ "/release-notes/2024/10/php-81-82-83",
+ "/release-notes/21/",
+ "/release-notes/22/",
+ "/release-notes/23/",
+ "/release-notes/24/",
+ "/release-notes/25/",
+ "/release-notes/26/",
+ "/release-notes/27/",
+ "/release-notes/28/",
+ "/release-notes/29/",
+ "/release-notes/3/",
+ "/release-notes/30/",
+ "/release-notes/31/",
+ "/release-notes/32/",
+ "/release-notes/33/",
+ "/release-notes/34/",
+ "/release-notes/35/",
+ "/release-notes/36/",
+ "/release-notes/37/",
+ "/release-notes/38/",
+ "/release-notes/39/",
+ "/release-notes/4/",
+ "/release-notes/40/",
+ "/release-notes/41/",
+ "/release-notes/42/",
+ "/release-notes/43/",
+ "/release-notes/44/",
+ "/release-notes/45/",
+ "/release-notes/46/",
+ "/release-notes/47/",
+ "/release-notes/48/",
+ "/release-notes/49/",
+ "/release-notes/5/",
+ "/release-notes/50/",
+ "/release-notes/51/",
+ "/release-notes/52/",
+ "/release-notes/53/",
+ "/release-notes/54/",
+ "/release-notes/55/",
+ "/release-notes/56/",
+ "/release-notes/57/",
+ "/release-notes/58/",
+ "/release-notes/59/",
+ "/release-notes/6/",
+ "/release-notes/60/",
+ "/release-notes/61/",
+ "/release-notes/62/",
+ "/release-notes/63/",
+ "/release-notes/64/",
+ "/release-notes/65/",
+ "/release-notes/66/",
+ "/release-notes/67/",
+ "/release-notes/68/",
+ "/release-notes/69/",
+ "/release-notes/7/",
+ "/release-notes/70/",
+ "/release-notes/71/",
+ "/release-notes/72/",
+ "/release-notes/73/",
+ "/release-notes/8/",
+ "/release-notes/9/",
+ "/required-reading",
+ "/rerouting-outbound-email",
+ "/resetting-passwords",
+ "/route53",
+ "/search/",
+ "/sendgrid",
+ "/server_name-and-server_port",
+ "/services-yml",
+ "/sign-up",
+ "/single-application-sites",
+ "/site-dashboard",
+ "/solr",
+ "/ssh-keys",
+ "/start-state",
+ "/static-site-empty-upstream",
+ "/style-guide",
+ "/support",
+ "/supported-drupal",
+ "/supported-wp",
+ "/switch-drupal-recommended-upstream",
+ "/symlinks-assumed-write-access",
+ "/tax-exempt-status",
+ "/terminus",
+ "/terminus-demo",
+ "/terminus-drupal-site-management",
+ "/terminus-overview",
+ "/terminus/ci/bitbucket",
+ "/terminus/ci/circleci",
+ "/terminus/ci/github-actions",
+ "/terminus/ci/gitlab",
+ "/terminus/commands",
+ "/terminus/commands/aliases",
+ "/terminus/commands/art",
+ "/terminus/commands/art-list",
+ "/terminus/commands/auth-login",
+ "/terminus/commands/auth-logout",
+ "/terminus/commands/auth-whoami",
+ "/terminus/commands/backup-automatic-disable",
+ "/terminus/commands/backup-automatic-enable",
+ "/terminus/commands/backup-automatic-info",
+ "/terminus/commands/backup-create",
+ "/terminus/commands/backup-get",
+ "/terminus/commands/backup-info",
+ "/terminus/commands/backup-list",
+ "/terminus/commands/backup-restore",
+ "/terminus/commands/branch-list",
+ "/terminus/commands/completion",
+ "/terminus/commands/connection-info",
+ "/terminus/commands/connection-set",
+ "/terminus/commands/dashboard-view",
+ "/terminus/commands/domain-add",
+ "/terminus/commands/domain-dns",
+ "/terminus/commands/domain-list",
+ "/terminus/commands/domain-lookup",
+ "/terminus/commands/domain-primary-add",
+ "/terminus/commands/domain-primary-remove",
+ "/terminus/commands/domain-remove",
+ "/terminus/commands/env-clear-cache",
+ "/terminus/commands/env-clone-content",
+ "/terminus/commands/env-code-log",
+ "/terminus/commands/env-code-rebuild",
+ "/terminus/commands/env-commit",
+ "/terminus/commands/env-deploy",
+ "/terminus/commands/env-diffstat",
+ "/terminus/commands/env-info",
+ "/terminus/commands/env-list",
+ "/terminus/commands/env-metrics",
+ "/terminus/commands/env-rotate-random-seed",
+ "/terminus/commands/env-view",
+ "/terminus/commands/env-wake",
+ "/terminus/commands/env-wipe",
+ "/terminus/commands/help",
+ "/terminus/commands/https-info",
+ "/terminus/commands/https-remove",
+ "/terminus/commands/https-set",
+ "/terminus/commands/import-complete",
+ "/terminus/commands/import-database",
+ "/terminus/commands/import-files",
+ "/terminus/commands/import-site",
+ "/terminus/commands/list",
+ "/terminus/commands/local-clone",
+ "/terminus/commands/local-commitAndPush",
+ "/terminus/commands/local-dockerize",
+ "/terminus/commands/local-getLiveDB",
+ "/terminus/commands/local-getLiveFiles",
+ "/terminus/commands/lock-disable",
+ "/terminus/commands/lock-enable",
+ "/terminus/commands/lock-info",
+ "/terminus/commands/machine-token-delete",
+ "/terminus/commands/machine-token-delete-all",
+ "/terminus/commands/machine-token-list",
+ "/terminus/commands/multidev-create",
+ "/terminus/commands/multidev-delete",
+ "/terminus/commands/multidev-list",
+ "/terminus/commands/multidev-merge-from-dev",
+ "/terminus/commands/multidev-merge-to-dev",
+ "/terminus/commands/new-relic-disable",
+ "/terminus/commands/new-relic-enable",
+ "/terminus/commands/new-relic-info",
+ "/terminus/commands/org-info",
+ "/terminus/commands/org-list",
+ "/terminus/commands/org-people-add",
+ "/terminus/commands/org-people-list",
+ "/terminus/commands/org-people-remove",
+ "/terminus/commands/org-people-role",
+ "/terminus/commands/org-site-list",
+ "/terminus/commands/org-site-remove",
+ "/terminus/commands/org-upstream-list",
+ "/terminus/commands/owner-set",
+ "/terminus/commands/payment-method-add",
+ "/terminus/commands/payment-method-list",
+ "/terminus/commands/payment-method-remove",
+ "/terminus/commands/plan-info",
+ "/terminus/commands/plan-list",
+ "/terminus/commands/plan-set",
+ "/terminus/commands/redis-disable",
+ "/terminus/commands/redis-enable",
+ "/terminus/commands/remote-drush",
+ "/terminus/commands/remote-wp",
+ "/terminus/commands/self-clear-cache",
+ "/terminus/commands/self-config-dump",
+ "/terminus/commands/self-console",
+ "/terminus/commands/self-info",
+ "/terminus/commands/self-plugin-create",
+ "/terminus/commands/self-plugin-install",
+ "/terminus/commands/self-plugin-list",
+ "/terminus/commands/self-plugin-migrate",
+ "/terminus/commands/self-plugin-reload",
+ "/terminus/commands/self-plugin-search",
+ "/terminus/commands/self-plugin-uninstall",
+ "/terminus/commands/self-plugin-update",
+ "/terminus/commands/self-update",
+ "/terminus/commands/service-level-set",
+ "/terminus/commands/site-create",
+ "/terminus/commands/site-delete",
+ "/terminus/commands/site-info",
+ "/terminus/commands/site-label-set",
+ "/terminus/commands/site-list",
+ "/terminus/commands/site-lookup",
+ "/terminus/commands/site-org-add",
+ "/terminus/commands/site-org-list",
+ "/terminus/commands/site-org-remove",
+ "/terminus/commands/site-team-add",
+ "/terminus/commands/site-team-list",
+ "/terminus/commands/site-team-remove",
+ "/terminus/commands/site-team-role",
+ "/terminus/commands/site-upstream-clear-cache",
+ "/terminus/commands/site-upstream-set",
+ "/terminus/commands/solr-disable",
+ "/terminus/commands/solr-enable",
+ "/terminus/commands/ssh-key-add",
+ "/terminus/commands/ssh-key-list",
+ "/terminus/commands/ssh-key-remove",
+ "/terminus/commands/tag-add",
+ "/terminus/commands/tag-list",
+ "/terminus/commands/tag-remove",
+ "/terminus/commands/upstream-info",
+ "/terminus/commands/upstream-list",
+ "/terminus/commands/upstream-updates-apply",
+ "/terminus/commands/upstream-updates-list",
+ "/terminus/commands/upstream-updates-status",
+ "/terminus/commands/workflow-info-logs",
+ "/terminus/commands/workflow-info-operations",
+ "/terminus/commands/workflow-info-status",
+ "/terminus/commands/workflow-list",
+ "/terminus/commands/workflow-wait",
+ "/terminus/commands/workflow-watch",
+ "/terminus/configuration",
+ "/terminus/create",
+ "/terminus/directory",
+ "/terminus/examples",
+ "/terminus/install",
+ "/terminus/plugins",
+ "/terminus/scripting",
+ "/terminus/supported-terminus",
+ "/terminus/terminus-3-0",
+ "/terminus/updates",
+ "/timeouts",
+ "/trainers",
+ "/troubleshoot",
+ "/unwind-drupal-multisite",
+ "/upgrade-drupal-with-ic-to-latest",
+ "/visual-studio-code",
+ "/wordpress",
+ "/wordpress-known-issues",
+ "/workflow-logs",
+ "/workshops"
+]
\ No newline at end of file
diff --git a/gatsby-node.js b/gatsby-node.js
index 369bcc6896..2804d56e9a 100644
--- a/gatsby-node.js
+++ b/gatsby-node.js
@@ -1,7 +1,7 @@
-const path = require(`path`)
-const crypto = require("crypto")
-const matter = require("gray-matter")
-var fs = require("fs-extra")
+const path = require(`path`);
+const crypto = require('crypto');
+const matter = require('gray-matter');
+var fs = require('fs-extra');
/*
For additional reference material, see
@@ -13,37 +13,37 @@ into web pages. It is prime for refactoring.
/** This helper function determines what slug a piece of content will use */
const calculateSlug = (node, getNode) => {
- const fileName = getNode(node.parent).name // Sets the filename from GraphQL
+ const fileName = getNode(node.parent).name; // Sets the filename from GraphQL
if (node.frontmatter.permalink) {
//If the "permalink" frontmatter value is present...
return node.frontmatter.permalink // return it.
- .replace(":basename", fileName) // If permalink includes ":basename", prepend the filename to the slug
- .replace("docs", "") // If it includes "docs", remove it. Docs is added by the pathPrefix in gatsby-config.js
+ .replace(':basename', fileName) // If permalink includes ":basename", prepend the filename to the slug
+ .replace('docs', ''); // If it includes "docs", remove it. Docs is added by the pathPrefix in gatsby-config.js
}
// I'm honestly not sure about this. If Alex isn't around and you need to know, ask Octahedroid.
if (fileName === undefined) {
- return `${fileName}`
+ return `${fileName}`;
}
// This section creates the changelog slug based on the YYYY-MM-DD-MONTH.md template
- if (getNode(node.parent).absolutePath.includes("changelogs")) {
+ if (getNode(node.parent).absolutePath.includes('changelogs')) {
// If the file is in the changelogs directory...
- const split = fileName.split("-") // split the file name where hyphenated...
- return `changelog/${split[0]}/${split[1]}` // and return a slug of changelog/YYYY/MM
+ const split = fileName.split('-'); // split the file name where hyphenated...
+ return `changelog/${split[0]}/${split[1]}`; // and return a slug of changelog/YYYY/MM
}
// This section creates the releasenotes slug based on the YYYY-MM-DD-slug.md template
- if (getNode(node.parent).absolutePath.includes("releasenotes")) {
+ if (getNode(node.parent).absolutePath.includes('releasenotes')) {
// If the file is in the releasenotes directory...
// split the file name where hyphenated.
- const split = fileName.split("-")
+ const split = fileName.split('-');
// set a const to remaining slug based on the keys from split that are not the date.
- const remainingSlug = split.slice(3).join("-")
- return `release-notes/${split[0]}/${split[1]}/${remainingSlug}` // and return a slug of releasenotes/YYYY/MM/slug
+ const remainingSlug = split.slice(3).join('-');
+ return `release-notes/${split[0]}/${split[1]}/${remainingSlug}`; // and return a slug of releasenotes/YYYY/MM/slug
}
- return `${fileName}` // Otherwise, as long as there is a filename in GraphQL, use it as the slug.
-}
+ return `${fileName}`; // Otherwise, as long as there is a filename in GraphQL, use it as the slug.
+};
/* This helper function helps determine which template should be applied to a piece of content */
const calculateTemplate = (node, defaultTemplate) => {
@@ -54,11 +54,11 @@ const calculateTemplate = (node, defaultTemplate) => {
node.frontmatter.layout !== null
) {
// If the node has the layout value in frontmatter...
- return node.frontmatter.layout // use that value.
+ return node.frontmatter.layout; // use that value.
}
- return defaultTemplate // Otherwise, use the default template argument value.
-}
+ return defaultTemplate; // Otherwise, use the default template argument value.
+};
/* These helper functions are used to provide multi-page guide pages with the previous
and next pages in the guide, to be used in the construction of the table of contents.
@@ -67,43 +67,43 @@ const calculatePrevious = (guide) => {
// The function accepts as an argument the node of the guide page in question
if (!guide.previous) {
// If the page doesn't have a value for the "previous" field in GraphQL
- return null // return nothing.
+ return null; // return nothing.
}
// Also return nothing if the guide_directory value doesn't exist.
if (
guide.node.fields.guide_directory !== guide.previous.fields.guide_directory
) {
- return null
+ return null;
}
// Otherwise, return the slug of the page identified as previous by GraphQL. How it determines which one is previous, unclear to me at this time.
- return guide.previous.fields.slug
-}
+ return guide.previous.fields.slug;
+};
// Same as above.
const calculateNext = (guide) => {
if (!guide.next) {
- return null
+ return null;
}
if (guide.node.fields.guide_directory !== guide.next.fields.guide_directory) {
- return null
+ return null;
}
- return guide.next.fields.slug
-}
+ return guide.next.fields.slug;
+};
const digest = (str) =>
str != null
- ? crypto.createHash("md5").update(str).digest("hex")
- : crypto.createHash("md5").update(" ").digest("hex")
+ ? crypto.createHash('md5').update(str).digest('hex')
+ : crypto.createHash('md5').update(' ').digest('hex');
exports.onCreateWebpackConfig = ({ actions }) => {
actions.setWebpackConfig({
resolve: {
- modules: [path.resolve(__dirname, "src"), "node_modules"],
+ modules: [path.resolve(__dirname, 'src'), 'node_modules'],
},
- })
-}
+ });
+};
exports.createSchemaCustomization = ({ actions, schema }) => {
actions.createFieldExtension({
@@ -112,13 +112,13 @@ exports.createSchemaCustomization = ({ actions, schema }) => {
return {
resolve(source, args, context, info) {
if (source[info.fieldName] == null) {
- return false
+ return false;
}
- return source[info.fieldName]
+ return source[info.fieldName];
},
- }
+ };
},
- })
+ });
actions.createTypes(`
type Mdx implements Node {
@@ -128,11 +128,11 @@ exports.createSchemaCustomization = ({ actions, schema }) => {
type Frontmatter {
draft: Boolean @defaultFalse
}
- `)
-}
+ `);
+};
exports.createPages = ({ graphql, actions }) => {
- const { createPage } = actions
+ const { createPage } = actions;
return graphql(`
{
@@ -195,15 +195,17 @@ exports.createPages = ({ graphql, actions }) => {
}
}
-
- allIframeEmbeds: allMdx(limit: 10, filter: {fileAbsolutePath: {regex: "/iframeembeds/"}}) {
- edges {
- node {
- slug
- body
- }
+ allIframeEmbeds: allMdx(
+ limit: 10
+ filter: { fileAbsolutePath: { regex: "/iframeembeds/" } }
+ ) {
+ edges {
+ node {
+ slug
+ body
}
}
+ }
allReleaseNotes: allMdx(
filter: { fileAbsolutePath: { regex: "/releasenotes/" } }
@@ -300,29 +302,29 @@ exports.createPages = ({ graphql, actions }) => {
}
`).then((result) => {
if (result.errors) {
- throw result.errors
+ throw result.errors;
}
// Create doc pages.
- const docs = result.data.allDocs.edges
+ const docs = result.data.allDocs.edges;
docs.forEach((doc) => {
- const template = calculateTemplate(doc.node, "doc")
+ const template = calculateTemplate(doc.node, 'doc');
createPage({
path: doc.node.fields.slug,
component: path.resolve(`./src/templates/${template}.js`),
context: {
slug: doc.node.fields.slug,
},
- })
- })
+ });
+ });
// Create guide pages.
- const guides = result.data.allGuides.edges
+ const guides = result.data.allGuides.edges;
guides.forEach((guide) => {
if (guide.node.fields.guide_directory !== null) {
- const previous = calculatePrevious(guide)
- const next = calculateNext(guide)
- const template = calculateTemplate(guide.node, "guide")
+ const previous = calculatePrevious(guide);
+ const next = calculateNext(guide);
+ const template = calculateTemplate(guide.node, 'guide');
createPage({
path: guide.node.fields.slug,
component: path.resolve(`./src/templates/${template}.js`),
@@ -332,27 +334,27 @@ exports.createPages = ({ graphql, actions }) => {
previous,
next,
},
- })
+ });
} else {
- const template = calculateTemplate(guide.node, "doc")
+ const template = calculateTemplate(guide.node, 'doc');
createPage({
path: guide.node.fields.slug,
component: path.resolve(`./src/templates/${template}.js`),
context: {
slug: guide.node.fields.slug,
},
- })
+ });
}
- })
+ });
// Create changelog pages.
- const changelogs = result.data.allChangelogs.edges
+ const changelogs = result.data.allChangelogs.edges;
changelogs.forEach((changelog) => {
const previous = changelog.previous
? changelog.previous.fields.slug || null
- : null
- const next = changelog.next ? changelog.next.fields.slug || null : null
- const template = calculateTemplate(changelog.node, "changelog")
+ : null;
+ const next = changelog.next ? changelog.next.fields.slug || null : null;
+ const template = calculateTemplate(changelog.node, 'changelog');
createPage({
path: changelog.node.fields.slug,
component: path.resolve(`./src/templates/${template}.js`),
@@ -361,25 +363,25 @@ exports.createPages = ({ graphql, actions }) => {
next: previous,
previous: next,
},
- })
- })
+ });
+ });
// Create changelog pagination.
- const postsPerPage = 6
- const numPages = Math.ceil(changelogs.length / postsPerPage)
+ const postsPerPage = 6;
+ const numPages = Math.ceil(changelogs.length / postsPerPage);
Array.from({ length: numPages }).forEach((_, i) => {
- const currentPage = i + 1
+ const currentPage = i + 1;
const next =
currentPage === 1
? null
: currentPage === 2
- ? `/changelog/`
- : `/changelog/page/${currentPage - 1}`
+ ? `/changelog/`
+ : `/changelog/page/${currentPage - 1}`;
const previous =
- currentPage < numPages ? `/changelog/page/${currentPage + 1}` : null
+ currentPage < numPages ? `/changelog/page/${currentPage + 1}` : null;
createPage({
path: i === 0 ? `/changelog/` : `/changelog/page/${i + 1}`,
- component: path.resolve("./src/templates/changelogs.js"),
+ component: path.resolve('./src/templates/changelogs.js'),
context: {
limit: postsPerPage,
skip: i * postsPerPage,
@@ -388,14 +390,14 @@ exports.createPages = ({ graphql, actions }) => {
previous,
next,
},
- })
- })
+ });
+ });
// Create Terminus Command pages
- const terminusCommands = result.data.dataJson.commands
+ const terminusCommands = result.data.dataJson.commands;
terminusCommands.forEach((command) => {
- const slugRegExp = /:/g
- const slug = command.name.replace(slugRegExp, "-")
+ const slugRegExp = /:/g;
+ const slug = command.name.replace(slugRegExp, '-');
createPage({
path: `terminus/commands/${slug}`,
component: path.resolve(`./src/templates/terminusCommand.js`),
@@ -403,33 +405,35 @@ exports.createPages = ({ graphql, actions }) => {
slug: slug,
name: command.name,
},
- })
- })
+ });
+ });
// Create release notes without pagination. At a later date, we may want to add pagination.
// And can reused the code above.
createPage({
path: `/release-notes/`,
- component: path.resolve("./src/templates/releaseNotesListing/index.js"),
- })
+ component: path.resolve('./src/templates/releaseNotesListing/index.js'),
+ });
// Create release notes pages for pagination.
- const releaseNotesPostsPerPage = 8
- const releaseNotesNumPages = Math.ceil(result.data.allReleaseNotes.edges.length / releaseNotesPostsPerPage)
+ const releaseNotesPostsPerPage = 8;
+ const releaseNotesNumPages = Math.ceil(
+ result.data.allReleaseNotes.edges.length / releaseNotesPostsPerPage,
+ );
Array.from({ length: releaseNotesNumPages }).forEach((_, i) => {
- const path2 = `/release-notes/${i+1}/`;
+ const path2 = `/release-notes/${i + 1}/`;
createPage({
path: path2,
- component: path.resolve("./src/templates/releaseNotesListing/index.js"),
+ component: path.resolve('./src/templates/releaseNotesListing/index.js'),
context: {
limit: releaseNotesPostsPerPage,
skip: i * releaseNotesPostsPerPage,
numPages: releaseNotesNumPages,
i,
},
- })
- })
+ });
+ });
// terminusCommands.forEach(command => {
// const slugRegExp = /:/g
@@ -445,27 +449,26 @@ exports.createPages = ({ graphql, actions }) => {
// })
// Create each release note page.
- const releaseNotes = result.data.allReleaseNotes.edges
+ const releaseNotes = result.data.allReleaseNotes.edges;
releaseNotes.forEach((releaseNote) => {
- const template = calculateTemplate(releaseNote.node, "releaseNotePage")
+ const template = calculateTemplate(releaseNote.node, 'releaseNotePage');
createPage({
path: releaseNote.node.fields.slug,
component: path.resolve(`./src/templates/${template}.js`),
context: {
slug: releaseNote.node.fields.slug,
},
- })
- })
+ });
+ });
// Create iframeembed page
const iframeEmbeds = result.data.allIframeEmbeds.edges;
iframeEmbeds.forEach((iframeEmbed) => {
-
// There's an odd bug where the slug value is inconsistent, even for the same file
// across different gatsby builds. This is a workaround.
// if the slug does not contain "iframeembeds" the add it
- if (!iframeEmbed.node.slug.includes("iframeembeds")) {
- iframeEmbed.node.slug = `iframeembeds/${iframeEmbed.node.slug}`
+ if (!iframeEmbed.node.slug.includes('iframeembeds')) {
+ iframeEmbed.node.slug = `iframeembeds/${iframeEmbed.node.slug}`;
}
createPage({
@@ -475,11 +478,11 @@ exports.createPages = ({ graphql, actions }) => {
slug: iframeEmbed.node.slug,
body: iframeEmbed.node.body,
},
- })
- })
+ });
+ });
// Create contributor pages.
- const contributors = result.data.allContributorYaml.edges
+ const contributors = result.data.allContributorYaml.edges;
contributors.forEach((contributor) => {
createPage({
path: `contributors/${contributor.node.yamlId}`,
@@ -487,11 +490,11 @@ exports.createPages = ({ graphql, actions }) => {
context: {
id: contributor.node.yamlId,
},
- })
- })
+ });
+ });
// Create topics pages.
- const topics = result.data.allLandingsYaml.edges
+ const topics = result.data.allLandingsYaml.edges;
topics.forEach((topic) => {
createPage({
path: topic.node.path,
@@ -499,153 +502,193 @@ exports.createPages = ({ graphql, actions }) => {
context: {
id: topic.node.id,
},
- })
- })
+ });
+ });
- return null
- })
-}
+ return null;
+ });
+};
exports.onCreateNode = ({ node, getNode, actions }) => {
- const { createNode, createNodeField } = actions
+ const { createNode, createNodeField } = actions;
- if (node.internal.owner === "gatsby-transformer-yaml") {
+ if (node.internal.owner === 'gatsby-transformer-yaml') {
Object.keys(node).forEach((item) => {
- if (!item.endsWith("Markdown")) {
- return
+ if (!item.endsWith('Markdown')) {
+ return;
}
const textNode = {
id: `${node.id}-${item}`,
parent: node.id,
- dir: path.resolve("./"),
+ dir: path.resolve('./'),
internal: {
type: `${node.internal.type}${item}`,
- mediaType: "text/markdown",
+ mediaType: 'text/markdown',
content: node[item],
contentDigest: digest(node[item]),
},
- }
- createNode(textNode)
+ };
+ createNode(textNode);
createNodeField({
node,
name: `${item}___NODE`,
value: textNode.id,
- })
- })
+ });
+ });
}
// MDX content
if (node.internal.type === `Mdx`) {
- const sourceInstanceName = getNode(node.parent).sourceInstanceName
- if (sourceInstanceName === "content") {
- const editPath = `source/content/${getNode(node.parent).relativePath}`
+ const sourceInstanceName = getNode(node.parent).sourceInstanceName;
+ if (sourceInstanceName === 'content') {
+ const editPath = `source/content/${getNode(node.parent).relativePath}`;
// Add editPath field
createNodeField({
name: `editPath`,
node,
value: editPath,
- })
+ });
}
// Add slug field
- const slug = calculateSlug(node, getNode)
+ const slug = calculateSlug(node, getNode);
createNodeField({
name: `slug`,
node,
value: slug,
- })
+ });
- if (slug.includes("guides/")) {
- if (getNode(node.parent).relativeDirectory !== "guides") {
+ if (slug.includes('guides/')) {
+ if (getNode(node.parent).relativeDirectory !== 'guides') {
// Add guide_directory field
createNodeField({
name: `guide_directory`,
node,
value: `${getNode(node.parent).relativeDirectory}`,
- })
+ });
}
}
if (
- sourceInstanceName === "changelogs" ||
- sourceInstanceName === "releasenotes"
+ sourceInstanceName === 'changelogs' ||
+ sourceInstanceName === 'releasenotes'
) {
const content = matter(node.internal.content, {
excerpt: true,
- excerpt_separator: "",
- })
- const excerpt = content.excerpt || ""
+ excerpt_separator: '',
+ });
+ const excerpt = content.excerpt || '';
createNodeField({
name: `excerpt`,
node,
value: excerpt,
- })
+ });
const textNode = {
id: `${node.id}-MarkdownBody`,
parent: node.id,
- dir: path.resolve("./"),
+ dir: path.resolve('./'),
internal: {
type: `${node.internal.type}MarkdownBody`,
- mediaType: "text/markdown",
+ mediaType: 'text/markdown',
content: excerpt,
contentDigest: digest(excerpt),
},
- }
- createNode(textNode)
+ };
+ createNode(textNode);
// Create markdownBody___NODE field
createNodeField({
node,
- name: "markdownBody___NODE",
+ name: 'markdownBody___NODE',
value: textNode.id,
- })
+ });
}
}
// Releases and Changelog Content
- var nodeString = node.internal.type.toString()
- var isReleaseJson = nodeString.includes("ReleasesJson")
- if (isReleaseJson && !nodeString.includes("MarkdownBody")) {
+ var nodeString = node.internal.type.toString();
+ var isReleaseJson = nodeString.includes('ReleasesJson');
+ if (isReleaseJson && !nodeString.includes('MarkdownBody')) {
//console.log("Creating markdownBody for ", node.internal.type.toString()) // For debugging
// Add original_id as int to filter using GraphQL
createNodeField({
name: `original_id`,
node,
value: parseInt(node.id),
- })
+ });
// Add text/markdown node children to Release and Changelog nodes
const textNode = {
id: `${node.id}-MarkdownBody`,
parent: node.id,
- dir: path.resolve("./"),
+ dir: path.resolve('./'),
internal: {
type: `${node.internal.type}MarkdownBody`,
- mediaType: "text/markdown",
- content: node.body || "",
+ mediaType: 'text/markdown',
+ content: node.body || '',
contentDigest: digest(node.body),
},
- }
- createNode(textNode)
+ };
+ createNode(textNode);
// Create markdownBody___NODE field
createNodeField({
node,
- name: "markdownBody___NODE",
+ name: 'markdownBody___NODE',
value: textNode.id,
- })
+ });
}
-}
+};
// This block moves script files from source to the public (build artifact) directory.
exports.onPreBootstrap = () => {
- const scriptsCopyFrom = `${__dirname}//source/scripts`
- const scriptsCopyTo = `${__dirname}/public/scripts`
+ const scriptsCopyFrom = `${__dirname}//source/scripts`;
+ const scriptsCopyTo = `${__dirname}/public/scripts`;
+
+ fs.copySync(scriptsCopyFrom, scriptsCopyTo);
+};
+
+exports.onPostBuild = async ({ graphql, getNodes }) => {
+ // Fetch all pages created by Gatsby
+ const pages = getNodes().filter((node) => node.internal.type === 'SitePage');
+
+ //console.log('pages', pages);
+ //loop over pages and log the path
+ const pagePaths = pages.map((page) => page.path);
+ console.log('pagePaths', pagePaths);
+ pages.forEach((page) => {
+ console.log('path', page.path);
+ });
+
+ // const exceptions = ['https://certification.pantheon.io/', '/404.html'];
+ // const OmniItems = getOmniItems();
+ // const menuReport = calculateNumberOfPathsInMenu(pagePaths, OmniItems, exceptions);
+ // console.log('menuReport', menuReport);
+
+ fs.writeFile(
+ 'all-written-paths.txt',
+ JSON.stringify(pagePaths, null, 2),
+ (err) => {
+ if (err) throw err;
+ console.log('The file has been saved!');
+ },
+ );
+
+ // // Read the menu links from your menu file (assuming it's a JSON file)
+ // const menuFilePath = path.resolve(__dirname, 'src/data/menu.json');
+ // const menuData = JSON.parse(fs.readFileSync(menuFilePath, 'utf-8'));
+
+ // // Extract the paths from the menu links
+ // const menuLinks = menuData.map(item => item.path);
+
+ // // Check how many pages are in the menu
+ // const pagesInMenu = pages.filter(page => menuLinks.includes(page.path));
- fs.copySync(scriptsCopyFrom, scriptsCopyTo)
-}
+ // console.log(`Total Pages Created by Gatsby: ${pages.length}`);
+ // console.log(`Total Pages in Menu: ${pagesInMenu.length}`);
+};
/* todo should there be an error thrown if a release note category is set that is not allowed */
/* todo, infer published date from file name. And throw an error if there are files that don't follow the pattern. */
diff --git a/gatsby-ssr.js b/gatsby-ssr.js
index c256b36a8b..8fd91c4c06 100644
--- a/gatsby-ssr.js
+++ b/gatsby-ssr.js
@@ -1,26 +1,42 @@
-import React from 'react'
+import React from 'react';
// Import PDS Global wrapper for applying global context providers.
-import { GlobalWrapper } from "@pantheon-systems/pds-toolkit-react"
-import { MOBILE_MENU_BREAKPOINT } from './src/vars/responsive'
+import { GlobalWrapper } from '@pantheon-systems/pds-toolkit-react';
+import { MOBILE_MENU_BREAKPOINT } from './src/vars/responsive';
/*
* Add global scripts to ensure Bootstrap and jQuery JS is included
*/
export const onRenderBody = ({ setPostBodyComponents }) => {
setPostBodyComponents([
- ,
- ,
+ ,
+ ,
,
+
// OneTrust Banner
- ,
- function OptanonWrapper() {
- window.dataLayer.push({'event':'OneTrustGroupsUpdated'})
- }
- ])
-}
+ ,
+ function OptanonWrapper() {
+ window.dataLayer.push({ event: 'OneTrustGroupsUpdated' });
+ },
+ ]);
+};
// Global context providers
export const wrapRootElement = ({ element }) => {
- return {element}
-}
+ return (
+
+ {element}
+
+ );
+};
diff --git a/source/content/guides/backups/01-introduction.md b/source/content/guides/backups/01-introduction.md
index 372522029e..5cfd0626f5 100644
--- a/source/content/guides/backups/01-introduction.md
+++ b/source/content/guides/backups/01-introduction.md
@@ -1,5 +1,5 @@
---
-title: Backups Tool
+title: Backups
subtitle: Introduction
description: Learn access and manage your Pantheon site backups.
tags: [backups, security]
diff --git a/source/content/guides/backups/02-access-backups.md b/source/content/guides/backups/02-access-backups.md
index 449f82e2e9..2f63569ff0 100644
--- a/source/content/guides/backups/02-access-backups.md
+++ b/source/content/guides/backups/02-access-backups.md
@@ -1,5 +1,5 @@
---
-title: Backups Tool
+title: Backups
subtitle: Access Backups
description: Learn how to access your backups.
tags: [backups, security]
diff --git a/source/content/guides/backups/03-create-backups.md b/source/content/guides/backups/03-create-backups.md
index 89fd4fcdcb..256c76bdbc 100644
--- a/source/content/guides/backups/03-create-backups.md
+++ b/source/content/guides/backups/03-create-backups.md
@@ -1,5 +1,5 @@
---
-title: Backups Tool
+title: Backups
subtitle: Create Backups
description: Learn how to create new backups.
tags: [backups, security]
diff --git a/source/content/guides/backups/04-restore-from-backup.md b/source/content/guides/backups/04-restore-from-backup.md
index 07ddfbbf86..f54d681794 100644
--- a/source/content/guides/backups/04-restore-from-backup.md
+++ b/source/content/guides/backups/04-restore-from-backup.md
@@ -1,5 +1,5 @@
---
-title: Backups Tool
+title: Backups
subtitle: Restore a Backup
description: Learn how restore from an existing backup.
tags: [backups, security]
diff --git a/source/content/guides/backups/05-code-archives-backups-log.md b/source/content/guides/backups/05-code-archives-backups-log.md
index 01f440d9cf..8c366b762d 100644
--- a/source/content/guides/backups/05-code-archives-backups-log.md
+++ b/source/content/guides/backups/05-code-archives-backups-log.md
@@ -1,5 +1,5 @@
---
-title: Backups Tool
+title: Backups
subtitle: Code Archives and Backup Log
description: Learn about your code archives and Backup Log.
tags: [backups, security]
diff --git a/source/content/guides/backups/06-faqs-backups.md b/source/content/guides/backups/06-faqs-backups.md
index faa3543abb..bc84eca883 100644
--- a/source/content/guides/backups/06-faqs-backups.md
+++ b/source/content/guides/backups/06-faqs-backups.md
@@ -1,5 +1,5 @@
---
-title: Backups Tool
+title: Backups
subtitle: FAQs
description: Get answers to your Backups Tool questions.
tags: [backups, security]
diff --git a/source/content/guides/domains/configure-dns.md b/source/content/guides/domains/configure-dns.md
deleted file mode 100644
index 72f3354ff5..0000000000
--- a/source/content/guides/domains/configure-dns.md
+++ /dev/null
@@ -1,21 +0,0 @@
----
-contenttype: [partial]
-categories: [domains]
-cms: [--]
-product: [--]
-integration: [--]
-tags: [--]
-reviewed: ""
----
-
-The " /> icon within the Domains / HTTPS page indicates that the domain has not been correctly routed to Pantheon. Complete the steps below before you provision your HTTPS.
-
-1. Access the ** Live** environment in your Pantheon Site Dashboard.
-1. Navigate to the ** Domains / HTTPS** page.
-1. Select **Details** next to the `www` domain.
-1. Log in to the DNS host for the domain in a separate window.
-1. Copy the value provided in the Pantheon Site Dashboard for the required **A** record, then use it to create an **A** record wherever you manage DNS. Repeat this step for both of the AAAA records.
-1. Return to the ** Domains / HTTPS** page in the Pantheon Site Dashboard.
-1. Click **Details** next to the bare domain.
-1. Copy the value provided in the Pantheon Site Dashboard for the required **A** record, then use it to create an A record wherever you manage DNS. Repeat this step for both of the AAAA records.
- - Note that if the Platform detects a CNAME record, the **Status** will show `Remove this detected record` on the line with the CNAME. Remove the CNAME from the DNS management service to avoid potential issues or interruptions.
diff --git a/source/content/guides/drush/04-drupal-commandline.md b/source/content/guides/drush/04-drupal-commandline.md
index b6ed80e3cd..90fe72c4eb 100644
--- a/source/content/guides/drush/04-drupal-commandline.md
+++ b/source/content/guides/drush/04-drupal-commandline.md
@@ -16,6 +16,8 @@ product: [--]
integration: [drush]
---
+
+
[Drush](https://github.com/drush-ops/drush) is a tool for working with Drupal from the command line. [Terminus](/terminus) allows you to use the command line to do everything you can do in Pantheon's browser-based dashboard. You can also run Drush commands directly from Terminus, making it a single solution for command line development on Pantheon.
This section walks you through using Drush and Terminus in the command line to create a new Drupal site and move configurations between Pantheon environments.
@@ -67,7 +69,7 @@ The next few sections use the example variables `my-site` and `"My D9 Site"` as
```
- You can add the `--org` option to the command above and pass the Workspace name, label, or ID if you want to associate this site with an Workspace.
-
+
- Use the `site:org:add` command to associate an existing site with an Workspace.
1. Open your new Site Dashboard in a browser:
@@ -312,4 +314,4 @@ Terminus provides the power to manage most aspects of your Pantheon sites, while
- [Use the Pantheon Workflow](/pantheon-workflow)
- [Configuration Workflow for Drupal Sites](/drupal-configuration-management)
-- [Terminus Guide](/terminus)
\ No newline at end of file
+- [Terminus Guide](/terminus)
diff --git a/source/content/guides/local-development/10-continuous-integration.md b/source/content/guides/local-development/10-continuous-integration.md
index d7c54ea0de..385ec29560 100644
--- a/source/content/guides/local-development/10-continuous-integration.md
+++ b/source/content/guides/local-development/10-continuous-integration.md
@@ -15,7 +15,7 @@ integration: []
showtoc: true
permalink: docs/guides/local-development/continuous-integration
---
-
+
This section provides information on how to use Terminus and Drupal SimpleTest to run automated integration tests.
[Continuous Integration](https://pantheon.io/integrations/continuous-integration) (CI) is a method of running automated unit and integration tests to apply quality control. Pantheon doesn't provide or host tools for continuous integration, but many tools and techniques are compatible with Pantheon. [Contact support](/guides/support/contact-support/) if you have a particular use case or technique that you'd like to highlight.
diff --git a/source/content/guides/mariadb-mysql/09-database-connection-errors.md b/source/content/guides/mariadb-mysql/09-database-connection-errors.md
index 58974cf5a3..91a2a43b4f 100644
--- a/source/content/guides/mariadb-mysql/09-database-connection-errors.md
+++ b/source/content/guides/mariadb-mysql/09-database-connection-errors.md
@@ -14,6 +14,8 @@ showtoc: true
permalink: docs/guides/mariadb-mysql/database-connection-errors
---
+
+
This section provides information on database connection errors.
There is an issue connecting to the Pantheon database if your site suddenly reverts to `install.php`, or you get database connection errors like the one below:
@@ -24,7 +26,7 @@ There is an issue connecting to the Pantheon database if your site suddenly reve
Can’t connect to local MySQL server through socket '/var/lib/mysql/mysql.sock'...).
```
-There are two common causes for this issue:
+There are two common causes for this issue:
- Overwriting core
- Using non-standard bootstraps
@@ -80,4 +82,4 @@ Uncaught exception 'PDOException' with message 'SQLSTATE[42S02]: Base table or v
## More Resources
-- [Troubleshooting MySQL Connections](/guides/mariadb-mysql/mysql-access/#troubleshooting-mysql-connections)
\ No newline at end of file
+- [Troubleshooting MySQL Connections](/guides/mariadb-mysql/mysql-access/#troubleshooting-mysql-connections)
diff --git a/source/content/guides/sso/04-shibboleth-sso.md b/source/content/guides/sso/04-shibboleth-sso.md
index fae41513a9..6693360599 100644
--- a/source/content/guides/sso/04-shibboleth-sso.md
+++ b/source/content/guides/sso/04-shibboleth-sso.md
@@ -14,7 +14,7 @@ product: [--]
integration: [SimpleSAMLphp]
permalink: docs/guides/sso/shibboleth-sso
---
-
+
This section provides information on how to install and configure [SimpleSAMLphp](https://simplesamlphp.org/) for Pantheon sites. Refer to the [Other SSO Options](#other-sso-options) section if you are searching for an SSO service provider solution with minimal configuration requirements.
## Before You Begin
diff --git a/source/content/guides/wordpress-developer/07-wordpress-s3.md b/source/content/guides/wordpress-developer/07-wordpress-s3.md
index cb24c5ce3d..a6fda18790 100644
--- a/source/content/guides/wordpress-developer/07-wordpress-s3.md
+++ b/source/content/guides/wordpress-developer/07-wordpress-s3.md
@@ -15,6 +15,7 @@ reviewed: "2024-10-23"
showtoc: true
permalink: docs/guides/wordpress-developer/wordpress-s3
---
+
This section provides information on how to integrate Amazon Web Services (AWS) S3 storage with your WordPress Pantheon site.
diff --git a/source/content/optimize-wp-options-table-autoloaded-data.md b/source/content/optimize-wp-options-table-autoloaded-data.md
index 8ab7eb4ea0..dfee097061 100644
--- a/source/content/optimize-wp-options-table-autoloaded-data.md
+++ b/source/content/optimize-wp-options-table-autoloaded-data.md
@@ -1,5 +1,5 @@
---
-title: Optimize Your wp-options Table and Autoloaded Data
+title: Optimize Your wp_options Table and Autoloaded Data
description: Learn how to check and configure the autoloaded data in your wp_options table.
tags: [cache]
contributors: [carl-alberto, whitneymeredith]
diff --git a/src/components/omniSidebarNav/all-written-paths.js b/src/components/omniSidebarNav/all-written-paths.js
new file mode 100644
index 0000000000..096352fc01
--- /dev/null
+++ b/src/components/omniSidebarNav/all-written-paths.js
@@ -0,0 +1,1494 @@
+const allWrittenPaths = [
+ '/',
+ '/1-and-1',
+ '/404.html',
+ '/404/',
+ '/add-site',
+ '/add-site-clone',
+ '/add-site-custom-upstream',
+ '/add-site-dashboard',
+ '/addons',
+ '/agency-tips',
+ '/apcu',
+ '/application-containers',
+ '/automate',
+ '/autopilot',
+ '/basic-troubleshooting',
+ '/behat',
+ '/billing',
+ '/bots-and-indexing',
+ '/cache',
+ '/cache-control',
+ '/caching-advanced-topics',
+ '/certificate-bundles',
+ '/certification',
+ '/certification/about',
+ '/certification/exam',
+ '/certification/study-guide',
+ '/certification/study-guide/automate',
+ '/certification/study-guide/cdn',
+ '/certification/study-guide/cms',
+ '/certification/study-guide/create',
+ '/certification/study-guide/custom-upstreams',
+ '/certification/study-guide/deploy',
+ '/certification/study-guide/extend',
+ '/certification/study-guide/people',
+ '/certification/study-guide/platform',
+ '/certification/study-guide/webops',
+ '/clamav',
+ '/clear-caches',
+ '/client-ip',
+ '/cloud-optimization',
+ '/cloudflare',
+ '/code-of-conduct',
+ '/composer',
+ '/composer-convert',
+ '/composer-convert-from-empty',
+ '/configure-dns',
+ '/connection-modes',
+ '/content-staging',
+ '/continuous-integration',
+ '/contribute',
+ '/contributors/',
+ '/contributors/BFTrick',
+ '/contributors/CdrMarks',
+ '/contributors/LukasRos',
+ '/contributors/afragen',
+ '/contributors/albertcausing',
+ '/contributors/aleksandrkorolyov',
+ '/contributors/alexfornuto',
+ '/contributors/andrewmallis',
+ '/contributors/ari',
+ '/contributors/ataylorme',
+ '/contributors/backlineint',
+ '/contributors/bmackinney',
+ '/contributors/bwood',
+ '/contributors/caitybishop',
+ '/contributors/calevans',
+ '/contributors/carl-alberto',
+ '/contributors/carolynshannon',
+ '/contributors/ccjjmartin',
+ '/contributors/cityofoaksdesign',
+ '/contributors/clintonPantheon',
+ '/contributors/cobypear',
+ '/contributors/cteitzel',
+ '/contributors/curmudgeon',
+ '/contributors/danielbachhuber',
+ '/contributors/davidneedham',
+ '/contributors/dgorton',
+ '/contributors/digisavvy',
+ '/contributors/dts',
+ '/contributors/dustinleblanc',
+ '/contributors/dwayne',
+ '/contributors/eabquina',
+ '/contributors/edwardangert',
+ '/contributors/eeeschwartz',
+ '/contributors/erikmathy',
+ '/contributors/fatimask',
+ '/contributors/greg-1-anderson',
+ '/contributors/hckia',
+ '/contributors/iameap',
+ '/contributors/jazzsequence',
+ '/contributors/jessifischer',
+ '/contributors/jms-pantheon',
+ '/contributors/joan-ing',
+ '/contributors/joshkoenig',
+ '/contributors/jrastaban',
+ '/contributors/jspellman814',
+ '/contributors/kate',
+ '/contributors/katiemac',
+ '/contributors/kyletaylored',
+ '/contributors/masonjames',
+ '/contributors/michellecolon-pantheon',
+ '/contributors/mmenavas',
+ '/contributors/mrfelton',
+ '/contributors/nathantyler',
+ '/contributors/peter-pantheon',
+ '/contributors/petersuhm',
+ '/contributors/populist',
+ '/contributors/rachelwhitton',
+ '/contributors/rvtraveller',
+ '/contributors/ryanwagner',
+ '/contributors/sarahg',
+ '/contributors/scottmassey',
+ '/contributors/sdubois',
+ '/contributors/sparklingrobots',
+ '/contributors/stevector',
+ '/contributors/stovak',
+ '/contributors/suzannealdrich',
+ '/contributors/szipfel',
+ '/contributors/tessak22',
+ '/contributors/wbconnor',
+ '/contributors/whitneymeredith',
+ '/contributors/wordsmither',
+ '/cookies',
+ '/core-updates',
+ '/crisis-response-upstream',
+ '/custom-certificates',
+ '/custom-upstreams',
+ '/customer-scheduled-cron-jobs',
+ '/cygwin-windows',
+ '/dashboard',
+ '/date-and-time',
+ '/debug-cache',
+ '/debug-connections',
+ '/debug-slow-performance',
+ '/deploybot',
+ '/develop',
+ '/develop-drupal',
+ '/develop-wordpress',
+ '/dns-made-easy',
+ '/dns-providers',
+ '/doc-template',
+ '/dreamhost',
+ '/drupal',
+ '/drupal-10',
+ '/drupal-advanced-page-cache',
+ '/drupal-broken-links',
+ '/drupal-cache',
+ '/drupal-caching-views',
+ '/drupal-cloudfront',
+ '/drupal-commerce',
+ '/drupal-composer-managed',
+ '/drupal-configuration-management',
+ '/drupal-cron',
+ '/drupal-from-dist',
+ '/drupal-launch-check',
+ '/drupal-migration',
+ '/drupal-phpstorm',
+ '/drupal-s3',
+ '/drupal-security-patches',
+ '/drupal-to-build-tools',
+ '/drupal-updates',
+ '/drush',
+ '/dyn',
+ '/email',
+ '/enom',
+ '/enterprise-billing-center',
+ '/external-libraries',
+ '/faq',
+ '/gandi',
+ '/get-started',
+ '/glossary/',
+ '/go-live',
+ '/godaddy',
+ '/google',
+ '/guides',
+ '/guides/accessibility',
+ '/guides/accessibility/best-practices',
+ '/guides/accessibility/get-started',
+ '/guides/accessibility/resources',
+ '/guides/accessibility/tools',
+ '/guides/account-mgmt',
+ '/guides/account-mgmt/account',
+ '/guides/account-mgmt/account/delete',
+ '/guides/account-mgmt/account/recover',
+ '/guides/account-mgmt/account/types',
+ '/guides/account-mgmt/billing',
+ '/guides/account-mgmt/billing/invoices',
+ '/guides/account-mgmt/billing/methods',
+ '/guides/account-mgmt/billing/periods',
+ '/guides/account-mgmt/billing/transfer',
+ '/guides/account-mgmt/billing/troubleshooting',
+ '/guides/account-mgmt/plans',
+ '/guides/account-mgmt/plans/faq',
+ '/guides/account-mgmt/plans/pricing',
+ '/guides/account-mgmt/plans/resources',
+ '/guides/account-mgmt/plans/site-plans',
+ '/guides/account-mgmt/plans/workspace-plans',
+ '/guides/account-mgmt/traffic',
+ '/guides/account-mgmt/traffic/overages',
+ '/guides/account-mgmt/traffic/remedy',
+ '/guides/account-mgmt/workspace-sites-teams',
+ '/guides/account-mgmt/workspace-sites-teams/sites',
+ '/guides/account-mgmt/workspace-sites-teams/teams',
+ '/guides/account-mgmt/workspace-sites-teams/tools',
+ '/guides/account-mgmt/workspace-sites-teams/workspaces',
+ '/guides/acquia',
+ '/guides/acquia/faq',
+ '/guides/acquia/migrate',
+ '/guides/acquia/prepare',
+ '/guides/acquia/troubleshooting',
+ '/guides/agcdn',
+ '/guides/agcdn/agcdn-faq',
+ '/guides/agcdn/agcdn-features',
+ '/guides/agcdn/agcdn-wafio',
+ '/guides/agcdn/submit-request',
+ '/guides/autopilot',
+ '/guides/autopilot-custom-upstream',
+ '/guides/autopilot-custom-upstream/autopilot-custom-upstream-config',
+ '/guides/autopilot-custom-upstream/wp-autopilot-custom-upstream',
+ '/guides/autopilot/apply-updates/',
+ '/guides/autopilot/autopilot-deactivate',
+ '/guides/autopilot/autopilot-faq/',
+ '/guides/autopilot/autopilot-preconfiguration/',
+ '/guides/autopilot/enable-autopilot/',
+ '/guides/autopilot/tests-results/',
+ '/guides/autopilot/troubleshoot-autopilot/',
+ '/guides/backups',
+ '/guides/backups/access-backups',
+ '/guides/backups/code-archives-backups-log',
+ '/guides/backups/create-backups',
+ '/guides/backups/faqs-backups',
+ '/guides/backups/restore-from-backup',
+ '/guides/build-tools/',
+ '/guides/build-tools/configure/',
+ '/guides/build-tools/create-project/',
+ '/guides/build-tools/custom-theme/',
+ '/guides/build-tools/extend/',
+ '/guides/build-tools/merge/',
+ '/guides/build-tools/pr-workflow/',
+ '/guides/build-tools/tests/',
+ '/guides/build-tools/update/',
+ '/guides/create-wp-site',
+ '/guides/custom-upstream',
+ '/guides/custom-upstream/create-custom-upstream',
+ '/guides/custom-upstream/delete-custom-upstream',
+ '/guides/custom-upstream/edit-custom-upstream',
+ '/guides/custom-upstream/maintain-custom-upstream',
+ '/guides/custom-upstream/manage-dependencies-custom-upstream',
+ '/guides/custom-upstream/switch-custom-upstream',
+ '/guides/custom-upstream/test-custom-upstream',
+ '/guides/custom-upstream/troubleshooting',
+ '/guides/decoupled',
+ '/guides/decoupled/drupal-backend-starters',
+ '/guides/decoupled/drupal-backend-starters/build-hooks',
+ '/guides/decoupled/drupal-backend-starters/caching',
+ '/guides/decoupled/drupal-backend-starters/create',
+ '/guides/decoupled/drupal-backend-starters/manage-settings',
+ '/guides/decoupled/drupal-nextjs-frontend-starters',
+ '/guides/decoupled/drupal-nextjs-frontend-starters/build-details',
+ '/guides/decoupled/drupal-nextjs-frontend-starters/caching',
+ '/guides/decoupled/drupal-nextjs-frontend-starters/content-preview',
+ '/guides/decoupled/drupal-nextjs-frontend-starters/create',
+ '/guides/decoupled/drupal-nextjs-frontend-starters/manage-settings',
+ '/guides/decoupled/drupal-nextjs-frontend-starters/robots-indexing',
+ '/guides/decoupled/no-starter-kit',
+ '/guides/decoupled/no-starter-kit/any-framework',
+ '/guides/decoupled/no-starter-kit/build-details',
+ '/guides/decoupled/no-starter-kit/create',
+ '/guides/decoupled/no-starter-kit/import-repo',
+ '/guides/decoupled/no-starter-kit/manage-settings',
+ '/guides/decoupled/overview',
+ '/guides/decoupled/overview/considerations',
+ '/guides/decoupled/overview/faq',
+ '/guides/decoupled/overview/fes-multidev',
+ '/guides/decoupled/overview/manage-settings',
+ '/guides/decoupled/overview/site',
+ '/guides/decoupled/overview/site-options',
+ '/guides/decoupled/overview/support',
+ '/guides/decoupled/overview/troubleshooting',
+ '/guides/decoupled/overview/v1-pipeline',
+ '/guides/decoupled/wp-backend-starters',
+ '/guides/decoupled/wp-backend-starters/build-hooks',
+ '/guides/decoupled/wp-backend-starters/caching',
+ '/guides/decoupled/wp-backend-starters/create',
+ '/guides/decoupled/wp-backend-starters/manage-settings',
+ '/guides/decoupled/wp-gatsby-frontend-starters',
+ '/guides/decoupled/wp-gatsby-frontend-starters/build-details',
+ '/guides/decoupled/wp-gatsby-frontend-starters/create',
+ '/guides/decoupled/wp-gatsby-frontend-starters/manage-settings',
+ '/guides/decoupled/wp-gatsby-frontend-starters/robots-indexing',
+ '/guides/decoupled/wp-nextjs-frontend-starters',
+ '/guides/decoupled/wp-nextjs-frontend-starters/build-details',
+ '/guides/decoupled/wp-nextjs-frontend-starters/caching',
+ '/guides/decoupled/wp-nextjs-frontend-starters/content-preview',
+ '/guides/decoupled/wp-nextjs-frontend-starters/create',
+ '/guides/decoupled/wp-nextjs-frontend-starters/manage-settings',
+ '/guides/decoupled/wp-nextjs-frontend-starters/robots-indexing',
+ '/guides/disaster-recovery',
+ '/guides/disaster-recovery/incident-remediation',
+ '/guides/disaster-recovery/planning-ahead',
+ '/guides/disaster-recovery/site-goes-down',
+ '/guides/domains',
+ '/guides/domains/custom-domains',
+ '/guides/domains/dns',
+ '/guides/domains/domain-hijacking',
+ '/guides/domains/domains-faq',
+ '/guides/domains/hosts-file',
+ '/guides/domains/platform-domains',
+ '/guides/domains/primary-domain',
+ '/guides/domains/troubleshooting',
+ '/guides/domains/vanity-domains',
+ '/guides/drupal-hosted',
+ '/guides/drupal-hosted-btworkflow',
+ '/guides/drupal-hosted-btworkflow/backup-token',
+ '/guides/drupal-hosted-btworkflow/contrib-custom',
+ '/guides/drupal-hosted-btworkflow/copy-config',
+ '/guides/drupal-hosted-btworkflow/database',
+ '/guides/drupal-hosted-btworkflow/deploy',
+ '/guides/drupal-hosted-btworkflow/prepare',
+ '/guides/drupal-hosted-btworkflow/restore-token',
+ '/guides/drupal-hosted-btworkflow/troubleshooting',
+ '/guides/drupal-hosted-btworkflow/upload-files',
+ '/guides/drupal-hosted-createbt',
+ '/guides/drupal-hosted-createbt/core',
+ '/guides/drupal-hosted-createbt/deploy',
+ '/guides/drupal-hosted-createbt/mariadb',
+ '/guides/drupal-hosted-createbt/prepare',
+ '/guides/drupal-hosted-createbt/troubleshooting',
+ '/guides/drupal-hosted-createbt/upgrade',
+ '/guides/drupal-hosted-createcustom',
+ '/guides/drupal-hosted-createcustom/contrib-custom',
+ '/guides/drupal-hosted-createcustom/dependencies',
+ '/guides/drupal-hosted-createcustom/deploy-dev',
+ '/guides/drupal-hosted-createcustom/deploy-live',
+ '/guides/drupal-hosted-createcustom/new-branch',
+ '/guides/drupal-hosted-createcustom/site-customizations',
+ '/guides/drupal-hosted-createcustom/troubleshooting',
+ '/guides/drupal-hosted-createdashboard-set8',
+ '/guides/drupal-hosted-createdashboard-set8/core-updates',
+ '/guides/drupal-hosted-createdashboard-set8/deploy',
+ '/guides/drupal-hosted-createdashboard-set8/drupal-core-version',
+ '/guides/drupal-hosted-createdashboard-set8/prepare',
+ '/guides/drupal-hosted-createdashboard-set8/troubleshooting',
+ '/guides/drupal-hosted-createempty-md',
+ '/guides/drupal-hosted-createempty-md/change-upstream',
+ '/guides/drupal-hosted-createempty-md/composer-upstream',
+ '/guides/drupal-hosted-createempty-md/contrib-custom',
+ '/guides/drupal-hosted-createempty-md/dependency-versions',
+ '/guides/drupal-hosted-createempty-md/deploy-dev',
+ '/guides/drupal-hosted-createempty-md/deploy-live',
+ '/guides/drupal-hosted-createempty-md/prepare',
+ '/guides/drupal-hosted-createempty-md/troubleshooting',
+ '/guides/drupal-hosted-md',
+ '/guides/drupal-hosted-md/core-updates',
+ '/guides/drupal-hosted-md/deploy',
+ '/guides/drupal-hosted-md/drupal-core-version',
+ '/guides/drupal-hosted-md/prepare',
+ '/guides/drupal-hosted-md/troubleshooting',
+ '/guides/drupal-hosted/code',
+ '/guides/drupal-hosted/create-site',
+ '/guides/drupal-hosted/deploy',
+ '/guides/drupal-hosted/prepare',
+ '/guides/drupal-hosted/troubleshooting',
+ '/guides/drupal-unhosted',
+ '/guides/drupal-unhosted-composer',
+ '/guides/drupal-unhosted-composer/contrib-custom',
+ '/guides/drupal-unhosted-composer/database',
+ '/guides/drupal-unhosted-composer/deploy-dev',
+ '/guides/drupal-unhosted-composer/deploy-live',
+ '/guides/drupal-unhosted-composer/files',
+ '/guides/drupal-unhosted-composer/prepare',
+ '/guides/drupal-unhosted-composer/troubleshooting',
+ '/guides/drupal-unhosted/add-database',
+ '/guides/drupal-unhosted/contrib-custom',
+ '/guides/drupal-unhosted/copy-config',
+ '/guides/drupal-unhosted/deploy',
+ '/guides/drupal-unhosted/deploy-dev',
+ '/guides/drupal-unhosted/prepare',
+ '/guides/drupal-unhosted/troubleshooting',
+ '/guides/drupal-unhosted/upload-files',
+ '/guides/drush',
+ '/guides/drush/drupal-commandline',
+ '/guides/drush/drush-aliases',
+ '/guides/drush/drush-commands',
+ '/guides/drush/drush-import',
+ '/guides/drush/drush-known-limitations',
+ '/guides/drush/drush-sql-queries',
+ '/guides/drush/drush-versions',
+ '/guides/drush/troubleshoot-drush',
+ '/guides/edge-integrations/',
+ '/guides/edge-integrations/analytics/',
+ '/guides/edge-integrations/configuration-overview/',
+ '/guides/edge-integrations/drupal-sdk/',
+ '/guides/edge-integrations/wordpress-sdk/',
+ '/guides/enterprise-billing-center',
+ '/guides/enterprise-billing-center/faq',
+ '/guides/enterprise-billing-center/interacting',
+ '/guides/enterprise-billing-center/invoices',
+ '/guides/enterprise-billing-center/site-portfolio-report',
+ '/guides/environment-configuration',
+ '/guides/environment-configuration/environment-indicator',
+ '/guides/environment-configuration/environment-specific-config',
+ '/guides/environment-configuration/environment-specific-config-drupal',
+ '/guides/environment-configuration/read-environment-config',
+ '/guides/environment-configuration/restore-environment-backup',
+ '/guides/errors-and-server-responses',
+ '/guides/errors-and-server-responses/4xx-errors',
+ '/guides/errors-and-server-responses/5xx-errors',
+ '/guides/errors-and-server-responses/external-web-service-calls',
+ '/guides/errors-and-server-responses/overloaded-workers',
+ '/guides/errors-and-server-responses/retries-server-containers',
+ '/guides/errors-and-server-responses/slow-and-high-queries',
+ '/guides/fastly-pantheon',
+ '/guides/fastly-pantheon/connect-fastly',
+ '/guides/fastly-pantheon/fastly-amazon-s3',
+ '/guides/fastly-pantheon/fastly-datadog',
+ '/guides/fastly-pantheon/fastly-faq',
+ '/guides/fastly-pantheon/fastly-new-relic',
+ '/guides/fastly-pantheon/fastly-sftp',
+ '/guides/fastly-pantheon/fastly-splunk',
+ '/guides/fastly-pantheon/fastly-syslog',
+ '/guides/filesystem/',
+ '/guides/filesystem/batch-files',
+ '/guides/filesystem/files-directories',
+ '/guides/filesystem/large-files',
+ '/guides/filesystem/tmp',
+ '/guides/filesystem/troubleshooting',
+ '/guides/frontend-performance',
+ '/guides/frontend-performance/additional-resources',
+ '/guides/frontend-performance/caching',
+ '/guides/frontend-performance/code-css',
+ '/guides/frontend-performance/diagnostics',
+ '/guides/frontend-performance/media',
+ '/guides/frontend-performance/metrics',
+ '/guides/frontend-performance/queries',
+ '/guides/frontend-performance/redirects',
+ '/guides/frontend-performance/static',
+ '/guides/getstarted',
+ '/guides/getstarted/addsite',
+ '/guides/getstarted/launch',
+ '/guides/getstarted/nextsteps',
+ '/guides/getstarted/purchase',
+ '/guides/getstarted/signup',
+ '/guides/getstarted/team',
+ '/guides/git',
+ '/guides/git/collaborative-development',
+ '/guides/git/faq-git',
+ '/guides/git/git-config',
+ '/guides/git/resolve-merge-conflicts',
+ '/guides/git/troubleshooting',
+ '/guides/git/undo-commits',
+ '/guides/git/useful-commands',
+ '/guides/global-cdn',
+ '/guides/global-cdn/experience-protection',
+ '/guides/global-cdn/global-cdn-caching',
+ '/guides/global-cdn/global-cdn-faq',
+ '/guides/global-cdn/https',
+ '/guides/global-cdn/test-global-cdn-caching',
+ '/guides/guided',
+ '/guides/guided/faq',
+ '/guides/guided/migrate',
+ '/guides/guided/prepare',
+ '/guides/guided/troubleshooting',
+ '/guides/integrated-composer',
+ '/guides/integrated-composer/dependencies',
+ '/guides/integrated-composer/ic-faq',
+ '/guides/integrated-composer/ic-support',
+ '/guides/integrated-composer/ic-troubleshooting',
+ '/guides/integrated-composer/ic-upstreams',
+ '/guides/integrated-composer/one-click-updates',
+ '/guides/integrated-composer/private-repo-package',
+ '/guides/kinsta',
+ '/guides/kinsta/faq',
+ '/guides/kinsta/migrate',
+ '/guides/kinsta/prepare',
+ '/guides/kinsta/troubleshooting',
+ '/guides/launch/',
+ '/guides/launch/advanced-curls/',
+ '/guides/launch/configure-dns/',
+ '/guides/launch/create-site-launch',
+ '/guides/launch/domains/',
+ '/guides/launch/launch-check/',
+ '/guides/launch/next-steps/',
+ '/guides/launch/plans/',
+ '/guides/launch/redirects',
+ '/guides/local-development',
+ '/guides/local-development/configuration',
+ '/guides/local-development/continuous-integration',
+ '/guides/local-development/cygwin-windows',
+ '/guides/local-development/ddev',
+ '/guides/local-development/drupal-phpstorm',
+ '/guides/local-development/graphql-requests',
+ '/guides/local-development/jenkins',
+ '/guides/local-development/lando-wordpress',
+ '/guides/local-development/visual-studio-code',
+ '/guides/local-development/wordpress-phpstorm',
+ '/guides/logs-pantheon',
+ '/guides/logs-pantheon/access-logs',
+ '/guides/logs-pantheon/automate-log-downloads',
+ '/guides/logs-pantheon/faq-logs',
+ '/guides/logs-pantheon/nginx-access-logs',
+ '/guides/manual-d8-composer-to-d8',
+ '/guides/manual-d8-composer-to-d8/contrib-custom',
+ '/guides/manual-d8-composer-to-d8/database',
+ '/guides/manual-d8-composer-to-d8/deploy-dev',
+ '/guides/manual-d8-composer-to-d8/deploy-live',
+ '/guides/manual-d8-composer-to-d8/files',
+ '/guides/manual-d8-composer-to-d8/prepare',
+ '/guides/manual-d8-composer-to-d8/troubleshooting',
+ '/guides/mariadb-mysql',
+ '/guides/mariadb-mysql/database-connection-errors',
+ '/guides/mariadb-mysql/database-workflow-tool',
+ '/guides/mariadb-mysql/kill-mysql-queries',
+ '/guides/mariadb-mysql/mariadb-mysql-faq',
+ '/guides/mariadb-mysql/myisam-to-innodb',
+ '/guides/mariadb-mysql/mysql-access',
+ '/guides/mariadb-mysql/mysql-slow-log',
+ '/guides/mariadb-mysql/mysql-workbench',
+ '/guides/multidev',
+ '/guides/multidev/access-branch',
+ '/guides/multidev/clone-content',
+ '/guides/multidev/compare-environments',
+ '/guides/multidev/create-multidev',
+ '/guides/multidev/delete-multidev',
+ '/guides/multidev/edit-multidev',
+ '/guides/multidev/multidev-faq',
+ '/guides/multisite/',
+ '/guides/multisite/config/',
+ '/guides/multisite/considerations/',
+ '/guides/multisite/debug/',
+ '/guides/multisite/multisite-governance/',
+ '/guides/multisite/search-replace/',
+ '/guides/multisite/workflows/',
+ '/guides/new-relic',
+ '/guides/new-relic/activate-new-relic',
+ '/guides/new-relic/debug-mysql-new-relic',
+ '/guides/new-relic/monitor-new-relic',
+ '/guides/new-relic/new-relic-faq',
+ '/guides/new-relic/new-relic-quicksilver',
+ '/guides/new-relic/troubleshoot-new-relic',
+ '/guides/pagely',
+ '/guides/pagely/faq',
+ '/guides/pagely/migrate',
+ '/guides/pagely/prepare',
+ '/guides/pagely/troubleshooting',
+ '/guides/pagerduty/',
+ '/guides/pagerduty/monitor/',
+ '/guides/pagerduty/next-steps/',
+ '/guides/pagerduty/notify/',
+ '/guides/pagerduty/schedule/',
+ '/guides/pagerduty/slack/',
+ '/guides/php',
+ '/guides/php/deprecated-constructor-notices',
+ '/guides/php/php-errors',
+ '/guides/php/php-slow-log',
+ '/guides/php/php-versions',
+ '/guides/php/settings-php',
+ '/guides/php/wordpress-sessions',
+ '/guides/php/wp-config-php',
+ '/guides/platform-considerations',
+ '/guides/platform-considerations/media-email-support',
+ '/guides/platform-considerations/php-platform',
+ '/guides/platform-considerations/platform-security',
+ '/guides/platform-considerations/platform-site-info',
+ '/guides/platform-considerations/terminus-platform',
+ '/guides/platformsh',
+ '/guides/platformsh/faq',
+ '/guides/platformsh/migrate',
+ '/guides/platformsh/prepare',
+ '/guides/platformsh/troubleshooting',
+ '/guides/professional-services',
+ '/guides/professional-services/advanced-global-cdn',
+ '/guides/professional-services/application-performance',
+ '/guides/professional-services/managed-updates',
+ '/guides/professional-services/onboarding',
+ '/guides/professional-services/website-migration-service',
+ '/guides/quicksilver',
+ '/guides/quicksilver/asana',
+ '/guides/quicksilver/hooks',
+ '/guides/quicksilver/install-script',
+ '/guides/quicksilver/jira',
+ '/guides/quicksilver/trello',
+ '/guides/quicksilver/troubleshoot-quicksilver',
+ '/guides/quicksilver/variables',
+ '/guides/redirect',
+ '/guides/redirect/advanced',
+ '/guides/redirect/https/',
+ '/guides/redirect/mobile',
+ '/guides/redirect/php',
+ '/guides/redirect/primary-domain',
+ '/guides/secure-development',
+ '/guides/secure-development/phpinfo',
+ '/guides/secure-development/private-paths',
+ '/guides/secure-development/secure-integration',
+ '/guides/secure-development/secure-runtime-access',
+ '/guides/secure-development/security-tool',
+ '/guides/secure-development/ssh-tunnels',
+ '/guides/secure-development/two-factor-authentication',
+ '/guides/security',
+ '/guides/sftp',
+ '/guides/sftp/port-2222',
+ '/guides/sftp/rsync-and-sftp',
+ '/guides/sftp/sftp-connection-info',
+ '/guides/sftp/sftp-development',
+ '/guides/sftp/troubleshooting-sftp',
+ '/guides/sftp/vscode-sftp',
+ '/guides/sftp/winscp',
+ '/guides/solr-drupal',
+ '/guides/solr-drupal/solr-drupal',
+ '/guides/solr-drupal/solr-drupal-7',
+ '/guides/sso',
+ '/guides/sso/shibboleth-sso',
+ '/guides/sso/sso',
+ '/guides/sso/sso-organizations',
+ '/guides/support/',
+ '/guides/support/contact-support/',
+ '/guides/support/curl',
+ '/guides/support/early-access/',
+ '/guides/support/faq/',
+ '/guides/support/har/',
+ '/guides/support/support-ticket/',
+ '/guides/woocommerce/',
+ '/guides/woocommerce/commit/',
+ '/guides/woocommerce/configure/',
+ '/guides/woocommerce/develop/',
+ '/guides/woocommerce/initialize-prod/',
+ '/guides/woocommerce/launch/',
+ '/guides/woocommerce/store-setup/',
+ '/guides/wordpress-composer',
+ '/guides/wordpress-composer/create-wp-site-composer-ci-auto-test',
+ '/guides/wordpress-composer/pre-ga',
+ '/guides/wordpress-composer/wordpress-composer-managed',
+ '/guides/wordpress-composer/wordpress-ic',
+ '/guides/wordpress-configurations',
+ '/guides/wordpress-configurations/mu-plugin',
+ '/guides/wordpress-configurations/plugins',
+ '/guides/wordpress-configurations/sendgrid-wordpress-wp-mail-smtp',
+ '/guides/wordpress-configurations/wordpress-cache-plugin',
+ '/guides/wordpress-configurations/wordpress-custom-code',
+ '/guides/wordpress-configurations/wordpress-font-library',
+ '/guides/wordpress-configurations/wp-cfm',
+ '/guides/wordpress-developer',
+ '/guides/wordpress-developer/performant-translations',
+ '/guides/wordpress-developer/wordpress-best-practices',
+ '/guides/wordpress-developer/wordpress-broken-links',
+ '/guides/wordpress-developer/wordpress-cron',
+ '/guides/wordpress-developer/wordpress-development-versions',
+ '/guides/wordpress-developer/wordpress-gcs',
+ '/guides/wordpress-developer/wordpress-login-attacks',
+ '/guides/wordpress-developer/wordpress-s3',
+ '/guides/wordpress-developer/wordpress-secrets-management',
+ '/guides/wordpress-developer/wordpress-solr',
+ '/guides/wordpress-developer/xml-rpc-attacks',
+ '/guides/wordpress-git/',
+ '/guides/wordpress-git/media/',
+ '/guides/wordpress-git/next-steps/',
+ '/guides/wordpress-git/plugins/',
+ '/guides/wordpress-git/remove-editor/',
+ '/guides/wordpress-git/themes/',
+ '/guides/wordpress-google-sso/',
+ '/guides/wordpress-google-sso/access-and-mappings',
+ '/guides/wordpress-google-sso/advanced-configuration',
+ '/guides/wordpress-google-sso/going-live',
+ '/guides/wordpress-google-sso/install/',
+ '/guides/wordpress-google-sso/saml-app/',
+ '/guides/wordpress-pantheon/',
+ '/guides/wordpress-pantheon/create-wp-site',
+ '/guides/wordpress-pantheon/migrate-existing-wp-site',
+ '/guides/wordpress-pantheon/plugins',
+ '/guides/wordpress-pantheon/plugins-recommended',
+ '/guides/wordpress-pantheon/troubleshooting',
+ '/guides/wordpress-pantheon/wordpress-developers',
+ '/guides/wordpress-pantheon/wordpress-launch-check',
+ '/guides/wordpress-pantheon/wp-content-management',
+ '/guides/wordpress-pantheon/wp-optimization',
+ '/guides/wordpress-pantheon/wp-security',
+ '/guides/wordpressvip',
+ '/guides/wordpressvip/faq',
+ '/guides/wordpressvip/migrate',
+ '/guides/wordpressvip/prepare',
+ '/guides/wordpressvip/troubleshooting',
+ '/guides/wp-cli',
+ '/guides/wp-cli/install-wp-plugins-themes',
+ '/guides/wp-cli/wp-cli-global-parameters',
+ '/guides/wp-cli/wp-cli-pantheon-commands',
+ '/guides/wp-cli/wp-cli-sql-php-subcommands',
+ '/guides/wp-cli/wp-cli-troubleshoot',
+ '/guides/wpengine',
+ '/guides/wpengine/faq',
+ '/guides/wpengine/migrate',
+ '/guides/wpengine/prepare',
+ '/guides/wpengine/troubleshooting',
+ '/headless',
+ '/horizontal-scalability',
+ '/hotfixes',
+ '/http-to-https',
+ '/iframeembeds/certification/pressure-on-developers',
+ '/iframeembeds/certification/pressure-on-it',
+ '/iframeembeds/certification/what-is-webops',
+ '/iframeembeds/certification/what-problems-does-webops-solve',
+ '/inclusive-language',
+ '/integrations',
+ '/jenkins',
+ '/ldap-and-ldaps',
+ '/load-and-performance-testing',
+ '/load-testing-with-blazemeter',
+ '/lockr',
+ '/machine-tokens',
+ '/manage',
+ '/migrate-cpanel',
+ '/migrate-manual',
+ '/migrate-wordpress',
+ '/migrate-wordpress-multisite',
+ '/mime-types',
+ '/modules',
+ '/modules-known-issues',
+ '/modules-plugins-known-issues',
+ '/multizone-failover',
+ '/namecheap',
+ '/nested-docroot',
+ '/network-solutions',
+ '/newrelic',
+ '/object-cache',
+ '/object-cache/cli',
+ '/object-cache/drupal',
+ '/object-cache/errors',
+ '/object-cache/faq',
+ '/object-cache/remove',
+ '/object-cache/wordpress',
+ '/object-cache/wordpress-deprecated',
+ '/opensolr',
+ '/optimize-wp-options-table-autoloaded-data',
+ '/oss-support-levels',
+ '/outgoing-ips',
+ '/overview',
+ '/pantheon-community',
+ '/pantheon-workflow',
+ '/pantheon-yml',
+ '/pantheon-yml-overview',
+ '/pantheon_stripped',
+ '/partial-composer',
+ '/performance',
+ '/personal-settings',
+ '/pingdom-uptime-check',
+ '/pivotal-tracker',
+ '/platform',
+ '/platform-notifications',
+ '/platform-upgrade',
+ '/plugins-known-issues',
+ '/products',
+ '/regions',
+ '/relaunch',
+ '/release-notes/',
+ '/release-notes/2015/01/concerned-about-cve-2015-0235-aka-ghost',
+ '/release-notes/2015/01/php-upgrade',
+ '/release-notes/2015/01/supporting-orgs-multi-org',
+ '/release-notes/2015/02/documentation',
+ '/release-notes/2015/02/new-wordpress-upstream',
+ '/release-notes/2015/02/terminus-0-5-released',
+ '/release-notes/2015/02/try-drupal-8-beta',
+ '/release-notes/2015/02/varnish-testing-harness',
+ '/release-notes/2015/03/dashboard-optimization',
+ '/release-notes/2015/03/documentation',
+ '/release-notes/2015/03/drupal-7-35-update',
+ '/release-notes/2015/03/terminus-improvement',
+ '/release-notes/2015/04/documentation',
+ '/release-notes/2015/04/edge-cache-configuration-update',
+ '/release-notes/2015/04/fedora-update',
+ '/release-notes/2015/04/saml-users',
+ '/release-notes/2015/04/styx-to-appserver-encryption',
+ '/release-notes/2015/04/wordpress-core-updates-to-4-2-1',
+ '/release-notes/2015/04/wordpress-launch-check',
+ '/release-notes/2015/05/barrel-roll-reboots',
+ '/release-notes/2015/05/dashboard-load-times',
+ '/release-notes/2015/05/free-backups',
+ '/release-notes/2015/05/webinars',
+ '/release-notes/2015/06/documentation',
+ '/release-notes/2015/06/improved-workflows-notifications',
+ '/release-notes/2015/06/single-sign-on-sso-release',
+ '/release-notes/2015/06/walkme-tours',
+ '/release-notes/2015/07/documentation',
+ '/release-notes/2015/07/kalabox-2-pantheon',
+ '/release-notes/2015/07/multidev-ui-updated',
+ '/release-notes/2015/07/scripts-to-quickly-make-a-drupal-7-project-using-composer',
+ '/release-notes/2015/07/wordpress-4-2-3-is-live',
+ '/release-notes/2015/08/documentation',
+ '/release-notes/2015/08/nginx-conf-update-for-photon',
+ '/release-notes/2015/08/php-5-5-opcache-revalidate-freq-value-is-now-set-to-zero',
+ '/release-notes/2015/08/php-default-arg-separator',
+ '/release-notes/2015/08/saint-mode-saves-your-images',
+ '/release-notes/2015/08/terminus-cli-version-0-7-1',
+ '/release-notes/2015/09/documentation',
+ '/release-notes/2015/09/login-destination',
+ '/release-notes/2015/09/pantheon-enterprise-is-now-available',
+ '/release-notes/2015/09/terminus-0-8-0',
+ '/release-notes/2015/10/documentation',
+ '/release-notes/2015/10/drupal-7-defaults-to-php-5-5',
+ '/release-notes/2015/10/drupal-8-rc2-released-and-available',
+ '/release-notes/2015/10/edge-cache-upgraded-to-varnish-4',
+ '/release-notes/2015/10/organization-renaming',
+ '/release-notes/2015/10/terminus-0-9-2-released',
+ '/release-notes/2015/10/terminus-commands-updated',
+ '/release-notes/2015/10/wp-cli-search-replace',
+ '/release-notes/2015/12/documentation',
+ '/release-notes/2016/01/documentation',
+ '/release-notes/2016/01/machine-token-authentication',
+ '/release-notes/2016/01/pantheon-hud-plugin',
+ '/release-notes/2016/01/quicksilver-platform-hooks-are-now-available',
+ '/release-notes/2016/01/terminus-0-10-2-released',
+ '/release-notes/2016/02/cloud-integration-tools',
+ '/release-notes/2016/02/code-archives',
+ '/release-notes/2016/02/documentation',
+ '/release-notes/2016/02/end-of-life-for-drupal-6',
+ '/release-notes/2016/02/platform-domains',
+ '/release-notes/2016/02/terminus-0-10-2-released',
+ '/release-notes/2016/02/wordpress-at-scale',
+ '/release-notes/2016/02/wordpress-core-updates',
+ '/release-notes/2016/03/documentation',
+ '/release-notes/2016/03/freezing-inactive-sites',
+ '/release-notes/2016/03/terminus-0-11-0-released',
+ '/release-notes/2016/04/documentation',
+ '/release-notes/2016/04/new-terminus-plugins-for-quicksilver-integrations',
+ '/release-notes/2016/04/terminus-0-11-1-released',
+ '/release-notes/2016/04/workflow-tab-renamed-to-databases-files',
+ '/release-notes/2016/05/pantheon-enterprise-support-now-available',
+ '/release-notes/2016/05/terminus-0-11-1',
+ '/release-notes/2016/06/drupal-8-site-imports-now-supported',
+ '/release-notes/2016/06/new-migration-button-on-the-dashboard',
+ '/release-notes/2016/06/new-reliable-screenshots-microservice-&-user-dashboard-design-update',
+ '/release-notes/2016/06/new-relic-pro',
+ '/release-notes/2016/07/documentation',
+ '/release-notes/2016/07/drupal-contrib-module-security-updates',
+ '/release-notes/2016/07/migrating-wordpress-sites-to-pantheon-just-got-easier',
+ '/release-notes/2016/07/terminus-0-11-2',
+ '/release-notes/2016/07/tls-1-0-deprecated',
+ '/release-notes/2016/08/advanced-site-configurations-available',
+ '/release-notes/2016/08/documentation',
+ '/release-notes/2016/08/new-hooks-for-quicksilver-platform-integration',
+ '/release-notes/2016/08/php-5-6-7-0-released',
+ '/release-notes/2016/08/solr-power-for-wordpress-0-5-update',
+ '/release-notes/2016/08/terminus-0-12-0',
+ '/release-notes/2016/09/bug-fixes',
+ '/release-notes/2016/09/dashboard-design-updates',
+ '/release-notes/2016/09/documentation',
+ '/release-notes/2016/09/drush_version-is-now-managed-in-pantheon-yml',
+ '/release-notes/2016/09/kalabox-2-0-is-available',
+ '/release-notes/2016/09/terminus-0-13-2',
+ '/release-notes/2016/10/custom-domains-in-multidev-environments',
+ '/release-notes/2016/10/documentation',
+ '/release-notes/2016/10/solr-power-for-wordpress-0-6-update',
+ '/release-notes/2016/10/terminus-1-0-alpha-release',
+ '/release-notes/2016/11/chat-support',
+ '/release-notes/2016/11/drupal-6-long-term-support-(lts)-partners',
+ '/release-notes/2016/11/drupal-core-updates',
+ '/release-notes/2016/11/early-release-pantheon-advanced-page-cache-plugin',
+ '/release-notes/2016/11/new-relic-agent-upgrade',
+ '/release-notes/2016/11/php-upgrade',
+ '/release-notes/2016/11/platform-security-update',
+ '/release-notes/2016/11/terminus-0-13-4-and-terminus-1-0-alpha',
+ '/release-notes/2016/12/documentation',
+ '/release-notes/2016/12/drupal-core-updates',
+ '/release-notes/2016/12/privacy-shield-framework-compliance',
+ '/release-notes/2016/12/supported-mime-types',
+ '/release-notes/2016/12/terminus-manual-and-terminus-1-0-beta-releases',
+ '/release-notes/2016/12/upgraded-wp-cli',
+ '/release-notes/2016/12/wordpress-4-7-core-update',
+ '/release-notes/2016/12/wordpress-4-7-security-patches',
+ '/release-notes/2017/01/drupal-8-2-5-upgrade',
+ '/release-notes/2017/01/terminus-1-0',
+ '/release-notes/2017/01/terminus-plugins',
+ '/release-notes/2017/01/wordpress-4-7-2-upgrade',
+ '/release-notes/2017/02/documentation',
+ '/release-notes/2017/02/drupal-core-upgrade',
+ '/release-notes/2017/02/patched-for-linux-kernel-vulnerability',
+ '/release-notes/2017/02/php-upgrade',
+ '/release-notes/2017/03/documentation',
+ '/release-notes/2017/03/drupal-core-upgrades',
+ '/release-notes/2017/03/wp-cli-upgrade',
+ '/release-notes/2017/04/bug-fixes',
+ '/release-notes/2017/04/documentation',
+ '/release-notes/2017/04/drupal-core-upgrades',
+ '/release-notes/2017/04/terminus-1-3-0',
+ '/release-notes/2017/04/wordpress-upgrades',
+ '/release-notes/2017/05/documentation',
+ '/release-notes/2017/05/drupal-core-upgrades',
+ '/release-notes/2017/05/php-upgrade',
+ '/release-notes/2017/05/platform-security',
+ '/release-notes/2017/06/core-upgrades',
+ '/release-notes/2017/06/default-php-versions',
+ '/release-notes/2017/06/documentation',
+ '/release-notes/2017/06/new-relic',
+ '/release-notes/2017/06/pantheon-upstream-configuration',
+ '/release-notes/2017/06/terminus-1-4-0',
+ '/release-notes/2017/06/wp-cli',
+ '/release-notes/2017/07/custom-upstreams-self-serve-github-and-bitbucket',
+ '/release-notes/2017/07/documentation',
+ '/release-notes/2017/07/drupal-8-with-redirect-and-simple-xml-sitemap-modules-now-supported',
+ '/release-notes/2017/07/drupal-core-upgrades',
+ '/release-notes/2017/07/nginx-web-server-integer-overflow-vulnerability-mitigated',
+ '/release-notes/2017/07/terminus-1-4-1',
+ '/release-notes/2017/08/documentation',
+ '/release-notes/2017/08/drupal-core-upgrades',
+ '/release-notes/2017/08/global-cdn-surrogate-key-cache-clearing-api-improvement',
+ '/release-notes/2017/08/php-upgrades',
+ '/release-notes/2017/08/terminus-1-5',
+ '/release-notes/2017/08/wordpress-core-upgrades',
+ '/release-notes/2017/09/documentation',
+ '/release-notes/2017/09/new-relic',
+ '/release-notes/2017/09/wp-cli',
+ '/release-notes/2017/09/wp-native-php-sessions',
+ '/release-notes/2017/10/custom-upstreams',
+ '/release-notes/2017/10/documentation',
+ '/release-notes/2017/10/php-7-1-&-ioncube-decoder',
+ '/release-notes/2017/10/terminus-1-6',
+ '/release-notes/2017/10/webp-image-support',
+ '/release-notes/2017/10/wordpress-core-upgrades',
+ '/release-notes/2017/11/documentation',
+ '/release-notes/2017/11/drupal-core-upgrades',
+ '/release-notes/2017/11/site-dashboard-update',
+ '/release-notes/2017/11/sites-requiring-upgrade-to-global-cdn-now-shown-on-user-&-org-dashboards',
+ '/release-notes/2017/11/wordpress-core-upgrades',
+ '/release-notes/2017/12/bug-fixes-and-improvements',
+ '/release-notes/2017/12/documentation',
+ '/release-notes/2017/12/drupal-core-upgrades',
+ '/release-notes/2017/12/php-upgrades',
+ '/release-notes/2018/01/documentation',
+ '/release-notes/2018/01/drupal-core-upgrades',
+ '/release-notes/2018/01/launch-check-now-supports-drupal-8',
+ '/release-notes/2018/01/new-relic-php-7-2-support',
+ '/release-notes/2018/01/pantheon-moves-to-google-cloud-platform',
+ '/release-notes/2018/01/php-upgrades',
+ '/release-notes/2018/01/registry-rebuild-upgrade',
+ '/release-notes/2018/01/wordpress-core-upgrade',
+ '/release-notes/2018/01/wp-cli-upgrades',
+ '/release-notes/2018/02/custom-upstream-quicksilver-enhancement',
+ '/release-notes/2018/02/drupal-core-upgrades',
+ '/release-notes/2018/02/legacy-ssl-add-on-price-increase',
+ '/release-notes/2018/02/php-updates',
+ '/release-notes/2018/02/wordpress-core-upgrade',
+ '/release-notes/2018/03/drupal-core-upgrades',
+ '/release-notes/2018/03/global-cdn-surrogate-key-raw-disabled-by-default',
+ '/release-notes/2018/03/php-security-upgrades',
+ '/release-notes/2018/03/terminus-1-8',
+ '/release-notes/2018/03/wordpress-core-upgrade',
+ '/release-notes/2018/04/documentation',
+ '/release-notes/2018/04/drupal-core-upgrades',
+ '/release-notes/2018/04/ocsp-stapling-enabled-on-global-cdn',
+ '/release-notes/2018/04/testing-seo-now-supported-on-platform-domains',
+ '/release-notes/2018/04/wordpress-core-upgrade',
+ '/release-notes/2018/05/documentation',
+ '/release-notes/2018/05/duplicate-pantheon-sites-with-terminus-site-clone',
+ '/release-notes/2018/05/filemount-configuration',
+ '/release-notes/2018/05/php-7-2-ms-sql-support',
+ '/release-notes/2018/05/php-updates',
+ '/release-notes/2018/05/upgrade-to-php-7-1-or-7-2-before-december',
+ '/release-notes/2018/05/wordpress-core-upgrade',
+ '/release-notes/2018/07/crawler-access-to-platform-domains',
+ '/release-notes/2018/07/documentation',
+ '/release-notes/2018/07/drupal-8-5-5',
+ '/release-notes/2018/07/terminus-1-8-1',
+ '/release-notes/2018/07/wordpress-4-9-7',
+ '/release-notes/2018/08/apache-tika-update',
+ '/release-notes/2018/08/documentation',
+ '/release-notes/2018/08/https-provisioning-accelerated',
+ '/release-notes/2018/08/php-upgrades',
+ '/release-notes/2018/09/drupal-7-59',
+ '/release-notes/2018/09/drupal-8-5-6',
+ '/release-notes/2018/09/new-php-default-versions-for-pantheon-maintained-upstreams',
+ '/release-notes/2018/09/php-upgrades',
+ '/release-notes/2018/09/wordpress-4-9-8',
+ '/release-notes/2018/10/documentation',
+ '/release-notes/2018/10/drupal-8-6-1',
+ '/release-notes/2018/10/drupal-maintenance-mode-imagecache-fix',
+ '/release-notes/2018/10/improve-email-deliverability-with-spf-records',
+ '/release-notes/2018/10/php-version-updates',
+ '/release-notes/2018/11/drupal-7-60',
+ '/release-notes/2018/11/drupal-8-6-2',
+ '/release-notes/2018/11/php-7-2-11-and-7-1-23',
+ '/release-notes/2018/12/documentation',
+ '/release-notes/2018/12/drupal-8-6-3-and-7-61-now-available-as-1-click-updates',
+ '/release-notes/2018/12/multidev-access',
+ '/release-notes/2018/12/partner-program',
+ '/release-notes/2018/12/php-updates',
+ '/release-notes/2019/01/disaster-recovery',
+ '/release-notes/2019/01/documentation',
+ '/release-notes/2019/01/drupal-8-6-5-and-wordpress-5-0-1-now-available-as-1-click-updates',
+ '/release-notes/2019/02/drupal-8-6-7,-7-63,-and-wordpress-5-0-3-now-available-as-1-click-updates',
+ '/release-notes/2019/02/new-relic-php-agent-upgraded',
+ '/release-notes/2019/02/php-7-2-and-7-1-updated',
+ '/release-notes/2019/02/php-intl-extension-now-available',
+ '/release-notes/2019/03/documentation',
+ '/release-notes/2019/03/drupal-8-6-10,-7-64,-and-wordpress-5-1-now-available-as-1-click-updates',
+ '/release-notes/2019/03/eu-region-early-access',
+ '/release-notes/2019/03/php-7-2-updated',
+ '/release-notes/2019/03/terminus-2-0-released!',
+ '/release-notes/2019/03/wordpress-launch-check-shows-vulnerability-info',
+ '/release-notes/2019/04/community-updates',
+ '/release-notes/2019/04/documentation',
+ '/release-notes/2019/04/drupal-core-upgrades',
+ '/release-notes/2019/04/pantheon-heroes',
+ '/release-notes/2019/04/wordpress-5-1-1',
+ '/release-notes/2019/05/disaster-recovery-now-supports-redis-cache',
+ '/release-notes/2019/05/drupal-core-updates-available',
+ '/release-notes/2019/05/european-union-region-in-limited-availability',
+ '/release-notes/2019/05/new-relic-agent-upgraded',
+ '/release-notes/2019/05/pantheon-heroes',
+ '/release-notes/2019/05/php-7-3-default-for-drupal-8-and-wordpress-sites',
+ '/release-notes/2019/05/site-files-and-backups-moved-to-google-cloud',
+ '/release-notes/2019/05/terminus-2-0-1-release',
+ '/release-notes/2019/06/australia-and-canada-regions-in-limited-availability',
+ '/release-notes/2019/06/drupal-core-updates-available',
+ '/release-notes/2019/06/php-7-1,-7-2,-and-7-3-updated',
+ '/release-notes/2019/06/wordpress-5-2-1',
+ '/release-notes/2019/07/dns-recommendations-update',
+ '/release-notes/2019/07/drupal-core-updates-available',
+ '/release-notes/2019/07/general-availability-for-new-regions',
+ '/release-notes/2019/07/more-consistent-cron-runs',
+ '/release-notes/2019/07/wordpress-5-2-2-update-available',
+ '/release-notes/2019/08/drupal-core-updates-available',
+ '/release-notes/2019/08/new-relic-php-agent-upgrade',
+ '/release-notes/2019/09/drupal-core-updates-available',
+ '/release-notes/2019/09/php-7-1,-7-2-and-7-3-updated',
+ '/release-notes/2019/10/documentation',
+ '/release-notes/2019/10/drupal-core-updates-available',
+ '/release-notes/2019/10/pantheon-now-enforces-https-by-default',
+ '/release-notes/2019/10/platform-robots-txt-now-allows-swiftbot',
+ '/release-notes/2019/10/wordpress-5-2-3',
+ '/release-notes/2019/11/documentation',
+ '/release-notes/2019/11/drupal-8-7-8',
+ '/release-notes/2019/11/pantheon-localdev-0-5-6',
+ '/release-notes/2019/11/php-7-1,-7-2,-and-7-3-updated',
+ '/release-notes/2019/11/wordpress-5-2-4',
+ '/release-notes/2019/12/documentation',
+ '/release-notes/2019/12/drupal-8-7-10',
+ '/release-notes/2019/12/php-7-2,-and-7-3-updated',
+ '/release-notes/2019/12/wordpress-5-3',
+ '/release-notes/2020/01/drupal-8-8-1-and-7-69',
+ '/release-notes/2020/01/localdev-0-6-0-beta-9-released',
+ '/release-notes/2020/01/php-7-2-and-7-3-updated',
+ '/release-notes/2020/01/security-enhancement-outgoing-udp-traffic-blocked',
+ '/release-notes/2020/01/terminus-now-runs-site-local-drush-&-wp-cli',
+ '/release-notes/2020/01/wordpress-5-3-2',
+ '/release-notes/2020/02/drush-8-3-2-released',
+ '/release-notes/2020/02/localdev-0-7-0-released',
+ '/release-notes/2020/02/php-7-3-14-and-7-2-27-updated',
+ '/release-notes/2020/02/terminus-2-3-0-released',
+ '/release-notes/2020/03/advanced-global-cdn',
+ '/release-notes/2020/03/documentation',
+ '/release-notes/2020/03/drupal-8-8-2-released',
+ '/release-notes/2020/03/drush-10',
+ '/release-notes/2020/03/global-cdn-network-expansion',
+ '/release-notes/2020/04/documentation',
+ '/release-notes/2020/04/drupal-8-8-4',
+ '/release-notes/2020/04/localdev-0-9-3',
+ '/release-notes/2020/04/new-relic-agent-9-7-0-258',
+ '/release-notes/2020/04/wp-cli-2-4-0',
+ '/release-notes/2020/05/documentation',
+ '/release-notes/2020/05/drupal-8-8-5',
+ '/release-notes/2020/05/early-access-to-drupal-9-with-integrated-composer',
+ '/release-notes/2020/05/localdev-0-10-0',
+ '/release-notes/2020/05/multidev-cloud-environments-offer',
+ '/release-notes/2020/05/wordpress-5-4-1',
+ '/release-notes/2020/06/documentation',
+ '/release-notes/2020/06/drupal-7-70',
+ '/release-notes/2020/06/drupal-8-8-6',
+ '/release-notes/2020/06/drupal-9-0',
+ '/release-notes/2020/06/global-cdn',
+ '/release-notes/2020/06/go-live-enhancements',
+ '/release-notes/2020/06/localdev-0-10-0',
+ '/release-notes/2020/06/resources-to-navigate-covid-19',
+ '/release-notes/2020/07/documentation',
+ '/release-notes/2020/07/drupal-8-9-1,-8-8-8,-and-7-72',
+ '/release-notes/2020/07/drupal-9-0',
+ '/release-notes/2020/07/localdev-0-10-1',
+ '/release-notes/2020/07/multidev-and-covid-response-site-offers',
+ '/release-notes/2020/07/terminus-2-4-0',
+ '/release-notes/2020/07/traffic-metrics',
+ '/release-notes/2020/07/wordpress-5-4-2',
+ '/release-notes/2020/08/dedicated-certificates-&-updated-go-live',
+ '/release-notes/2020/08/drupal-8-9-2',
+ '/release-notes/2020/08/drupal-9-0',
+ '/release-notes/2020/08/multidev-and-covid-response-site-offers',
+ '/release-notes/2020/09/drupal-8-9-3',
+ '/release-notes/2020/09/drupal-9-0',
+ '/release-notes/2020/09/wordpress-5-5',
+ '/release-notes/2020/10/documentation',
+ '/release-notes/2020/10/drupal-7-73',
+ '/release-notes/2020/10/drupal-8-8-10',
+ '/release-notes/2020/10/drupal-8-9-6',
+ '/release-notes/2020/10/drupal-9-preview-multidev-script',
+ '/release-notes/2020/10/php-7-3-22-and-7-4-10-updated',
+ '/release-notes/2020/10/wordpress-5-5-1',
+ '/release-notes/2020/11/documentation',
+ '/release-notes/2020/11/drupal-8-9-7',
+ '/release-notes/2020/11/drupal-9',
+ '/release-notes/2020/12/documentation',
+ '/release-notes/2020/12/drupal-7-74',
+ '/release-notes/2020/12/drupal-8-9-9',
+ '/release-notes/2020/12/drupal-9-with-one-click-composer-updates',
+ '/release-notes/2020/12/wordpress-5-5-3',
+ '/release-notes/2021/01/documentation',
+ '/release-notes/2021/01/drupal-8-9-11',
+ '/release-notes/2021/01/drupal-9-with-one-click-composer-updates',
+ '/release-notes/2021/01/wordpress-5-6',
+ '/release-notes/2021/02/documentation',
+ '/release-notes/2021/02/drupal-7-78',
+ '/release-notes/2021/02/drupal-8-9-13',
+ '/release-notes/2021/02/drupal-9-with-one-click-composer-updates',
+ '/release-notes/2021/02/localdev-1-0-1',
+ '/release-notes/2021/03/documentation',
+ '/release-notes/2021/03/drupal-9-with-one-click-composer-updates',
+ '/release-notes/2021/03/wordpress-5-6-1',
+ '/release-notes/2021/04/convert-your-drupal-8-pantheon-site-to-drupal-9-with-integrated-composer',
+ '/release-notes/2021/04/documentation',
+ '/release-notes/2021/04/wordpress-5-7',
+ '/release-notes/2021/05/documentation',
+ '/release-notes/2021/05/drupal-7-80',
+ '/release-notes/2021/05/drupal-8-9-14',
+ '/release-notes/2021/05/drupal-9-1-7',
+ '/release-notes/2021/05/wordpress-5-7-1',
+ '/release-notes/2021/06/documentation',
+ '/release-notes/2021/06/drupal-8-9-15',
+ '/release-notes/2021/06/drupal-9-1-8',
+ '/release-notes/2021/06/wordpress-5-7-2',
+ '/release-notes/2021/06/wp-cli-2-5-0',
+ '/release-notes/2021/07/documentation',
+ '/release-notes/2021/07/drupal-7-81',
+ '/release-notes/2021/07/drupal-8-9-16',
+ '/release-notes/2021/07/drupal-9-2-0',
+ '/release-notes/2021/07/wordpress-5-7-2',
+ '/release-notes/2021/08/documentation',
+ '/release-notes/2021/08/drupal-7-82',
+ '/release-notes/2021/08/drupal-8-9-17',
+ '/release-notes/2021/08/drupal-9-2-0',
+ '/release-notes/2021/08/wordpress-5-8',
+ '/release-notes/2021/09/documentation',
+ '/release-notes/2021/09/drupal-7-82',
+ '/release-notes/2021/09/drupal-8-9-18',
+ '/release-notes/2021/09/drupal-9-2-3',
+ '/release-notes/2021/10/documentation',
+ '/release-notes/2021/10/drupal-8-9-19',
+ '/release-notes/2021/10/drupal-9-2-6',
+ '/release-notes/2021/10/wordpress-5-8-1',
+ '/release-notes/2021/11/documentation',
+ '/release-notes/2021/11/drupal-9-2-7',
+ '/release-notes/2021/12/documentation',
+ '/release-notes/2021/12/drupal-8-9-20',
+ '/release-notes/2021/12/drupal-9-2-8',
+ '/release-notes/2021/12/wordpress-5-8-2',
+ '/release-notes/2022/01/documentation',
+ '/release-notes/2022/01/drupal-9',
+ '/release-notes/2022/01/legacy-edge-shutdown-update',
+ '/release-notes/2022/01/new-and-improved-workspace-switcher',
+ '/release-notes/2022/01/one-click-database-and-php-upgrades',
+ '/release-notes/2022/01/terminus',
+ '/release-notes/2022/02/documentation',
+ '/release-notes/2022/02/drupal-9-2-11',
+ '/release-notes/2022/02/drupal-9-3-3',
+ '/release-notes/2022/02/email-preferences-in-the-new-dashboard',
+ '/release-notes/2022/02/wordpress-5-9',
+ '/release-notes/2022/03/documentation',
+ '/release-notes/2022/03/drupal-9-2-13',
+ '/release-notes/2022/03/drupal-9-3-6',
+ '/release-notes/2022/03/wordpress-5-9-1',
+ '/release-notes/2022/04/documentation',
+ '/release-notes/2022/04/drupal-9-2-16',
+ '/release-notes/2022/04/drupal-9-3-9',
+ '/release-notes/2022/05/documentation',
+ '/release-notes/2022/05/drupal-9-2-18',
+ '/release-notes/2022/05/drupal-9-3-12',
+ '/release-notes/2022/06/documentation',
+ '/release-notes/2022/06/drupal-9-2-20',
+ '/release-notes/2022/06/drupal-9-3-14',
+ '/release-notes/2022/06/wordpress-6-0',
+ '/release-notes/2022/07/documentation',
+ '/release-notes/2022/07/drupal-9-2-20',
+ '/release-notes/2022/07/drupal-9-3-17',
+ '/release-notes/2022/07/drupal-9-4-1',
+ '/release-notes/2022/07/wordpress-6-0-1',
+ '/release-notes/2022/08/documentation',
+ '/release-notes/2022/08/drupal-9-3-21',
+ '/release-notes/2022/08/drupal-9-4-5',
+ '/release-notes/2022/08/wordpress-6-0-1',
+ '/release-notes/2022/09/documentation',
+ '/release-notes/2022/09/drupal-9-4-5',
+ '/release-notes/2022/09/php-8-1',
+ '/release-notes/2022/09/wordpress-6-0-2',
+ '/release-notes/2022/09/wordpress-composer-managed-upstream-in-early-access',
+ '/release-notes/2022/10/documentation',
+ '/release-notes/2022/10/drupal-9-3-22',
+ '/release-notes/2022/10/drupal-9-4-5',
+ '/release-notes/2022/10/new-dashboard',
+ '/release-notes/2022/11/autopilot',
+ '/release-notes/2022/11/documentation',
+ '/release-notes/2022/11/drupal-9-3-22',
+ '/release-notes/2022/11/drupal-9-4-8',
+ '/release-notes/2022/11/new-dashboard',
+ '/release-notes/2022/11/wordpress-6-1',
+ '/release-notes/2022/12/drupal-10',
+ '/release-notes/2022/12/drupal-9-4-8',
+ '/release-notes/2022/12/drupal-9-5-0',
+ '/release-notes/2022/12/wordpress-6-1-1',
+ '/release-notes/2023/01/drupal-10-0-2',
+ '/release-notes/2023/01/drupal-9-4-9',
+ '/release-notes/2023/01/drupal-9-5-2',
+ '/release-notes/2023/02/documentation',
+ '/release-notes/2023/02/drupal-10-0-3',
+ '/release-notes/2023/02/drupal-9-4-11',
+ '/release-notes/2023/02/drupal-9-5-3',
+ '/release-notes/2023/02/enterprise-billing-center',
+ '/release-notes/2023/02/front-end-sites',
+ '/release-notes/2023/02/localdev',
+ '/release-notes/2023/02/pantheon-learning',
+ '/release-notes/2023/02/pantheon-object-cache',
+ '/release-notes/2023/02/roles-and-permissions',
+ '/release-notes/2023/02/wordpress-6-1-1',
+ '/release-notes/2023/02/wordpress-multisite',
+ '/release-notes/2023/05/cache-hit-ratio-metrics',
+ '/release-notes/2023/05/wordpress-6-2',
+ '/release-notes/2023/06/launch-check-updates',
+ '/release-notes/2023/06/wordpress-6-2-1',
+ '/release-notes/2023/06/wp-cli-2-8-0',
+ '/release-notes/2023/07/deprecation-of-obsolete-tls-1-2-cipher-suites',
+ '/release-notes/2023/07/drupal-7-98',
+ '/release-notes/2023/07/integrated-composer',
+ '/release-notes/2023/07/wp-cli-2-8-1',
+ '/release-notes/2023/09/drupal-sa-core-2023-006',
+ '/release-notes/2023/09/early-access-customer-scheduled-jobs',
+ '/release-notes/2023/09/early-access-streamlined-user-offboarding',
+ '/release-notes/2023/09/front-end-sites-enhancements',
+ '/release-notes/2023/09/new-php-defaults',
+ '/release-notes/2023/09/object-cache-pro',
+ '/release-notes/2023/09/pantheon-advanced-page-cache-wordpress-plugin-updates',
+ '/release-notes/2023/09/php-security-updates',
+ '/release-notes/2023/09/solr-search-for-wordpress-2-5-0-update',
+ '/release-notes/2023/09/wordpress-multisite-search-and-replace',
+ '/release-notes/2023/10/design-system-integration-docs',
+ '/release-notes/2023/10/drupal-security-update',
+ '/release-notes/2023/10/front-end-sites-settings',
+ '/release-notes/2023/10/php-8-1-and-8-2-updated-to-their-latest-patch-releases',
+ '/release-notes/2023/10/php-memory-limits-updates',
+ '/release-notes/2023/10/wpml-improved-edge-caching-compatibility-cache-hit-ratio-increased-24-percent',
+ '/release-notes/2023/11/composer-logs-visibility',
+ '/release-notes/2023/11/faster-backups',
+ '/release-notes/2023/11/front-end-sites-build-caching-and-node-js-versions',
+ '/release-notes/2023/11/streamlined-user-offboarding',
+ '/release-notes/2023/11/vpat-issued-for-product-accessibility',
+ '/release-notes/2023/11/wordpress-native-php-sessions-1-4-update',
+ '/release-notes/2023/12/delete-front-end-sites-multidevs-directly-from-dashboard-for-streamlined-management',
+ '/release-notes/2023/12/elevated-experience-with-front-end-sites-drupal-starter-kit',
+ '/release-notes/2023/12/optimized-monitoring-for-high-volume-directories',
+ '/release-notes/2023/12/upgraded-security-measures-for-uninterrupted-webops-experience',
+ '/release-notes/2024/01/drupal-7-99-release-bug fixes-and-feature-enhancements',
+ '/release-notes/2024/01/pantheon-release-notes-a-new-year-a-new-chapter',
+ '/release-notes/2024/01/wordpress-6-4-2-security-update',
+ '/release-notes/2024/01/wordpress-6-4-3',
+ '/release-notes/2024/01/wp-cli-v2-9-0-release-now-available-on-pantheon',
+ '/release-notes/2024/02/php-8.3.3-8.2.16-8.1.27',
+ '/release-notes/2024/02/wp-cli-2-10',
+ '/release-notes/2024/02/wp-cli-changes',
+ '/release-notes/2024/03/PHP-7-1-EOS',
+ '/release-notes/2024/03/drupal-7-100',
+ '/release-notes/2024/03/overages-policy-change',
+ '/release-notes/2024/03/pantheon-advanced-page-cache-1.5.0',
+ '/release-notes/2024/03/pantheon-mu-plugin-1-3-2',
+ '/release-notes/2024/03/pantheon-mu-plugin-1-3-3',
+ '/release-notes/2024/03/papc-drupal-file-cache',
+ '/release-notes/2024/03/php-8-2-8-3',
+ '/release-notes/2024/03/terminus-github-action-sessions-cache',
+ '/release-notes/2024/04/community-slack',
+ '/release-notes/2024/04/ea-workflow-logs',
+ '/release-notes/2024/04/enhanced-support-ticket-search-functionality',
+ '/release-notes/2024/04/new-relic-agent',
+ '/release-notes/2024/04/pantheon-mu-plugin-1-4-0-update',
+ '/release-notes/2024/04/php-8-3-recommended',
+ '/release-notes/2024/04/php-81-82-82',
+ '/release-notes/2024/04/sftp-authentication-changes',
+ '/release-notes/2024/04/solr-power-2-5-3',
+ '/release-notes/2024/04/wordpress-6-5',
+ '/release-notes/2024/04/wordpress-6-5-2',
+ '/release-notes/2024/04/wordpress-composer-managed-update',
+ '/release-notes/2024/04/wordpress-pantheon-mu-plugin-1-4-1-update',
+ '/release-notes/2024/05/5xx-error-messages',
+ '/release-notes/2024/05/Synthetics-Check-Limits',
+ '/release-notes/2024/05/load-balancing',
+ '/release-notes/2024/05/new-relic-agent-update-released',
+ '/release-notes/2024/05/pantheon-advanced-page-cache-2-0',
+ '/release-notes/2024/05/pantheon-mu-plugin-1-4-2-update',
+ '/release-notes/2024/05/pantheon-mu-plugin-1-4-3-update',
+ '/release-notes/2024/05/php-82-83',
+ '/release-notes/2024/05/sendgrid-transactional-emails',
+ '/release-notes/2024/05/wordpress-6-5-3-update',
+ '/release-notes/2024/06/drupal-7-101',
+ '/release-notes/2024/06/login-update',
+ '/release-notes/2024/06/pantheon-mu-plugin-1-4-4-wordpress-composer-managed-update',
+ '/release-notes/2024/06/php-81-82-83-updates',
+ '/release-notes/2024/06/quicksilver-examples-new-relic',
+ '/release-notes/2024/06/release-note-multi-select-filter',
+ '/release-notes/2024/06/wordpress-6-5-4',
+ '/release-notes/2024/06/wordpress-6-5-5',
+ '/release-notes/2024/07/domain-validation',
+ '/release-notes/2024/07/platform-robots-txt-now-supports-pope-tech',
+ '/required-reading',
+ '/rerouting-outbound-email',
+ '/resetting-passwords',
+ '/route53',
+ '/search/',
+ '/sendgrid',
+ '/server_name-and-server_port',
+ '/services-yml',
+ '/sftp',
+ '/sign-up',
+ '/single-application-sites',
+ '/site-dashboard',
+ '/solr',
+ '/ssh-keys',
+ '/start-state',
+ '/static-site-empty-upstream',
+ '/static-site-empty-upstream-demo',
+ '/style-guide',
+ '/support',
+ '/supported-drupal',
+ '/supported-wp',
+ '/switch-drupal-recommended-upstream',
+ '/symlinks-assumed-write-access',
+ '/tax-exempt-status',
+ '/terminus',
+ '/terminus-demo',
+ '/terminus-drupal-site-management',
+ '/terminus-overview',
+ '/terminus/ci/bitbucket',
+ '/terminus/ci/circleci',
+ '/terminus/ci/github-actions',
+ '/terminus/ci/gitlab',
+ '/terminus/commands',
+ '/terminus/commands/aliases',
+ '/terminus/commands/art',
+ '/terminus/commands/art-list',
+ '/terminus/commands/auth-login',
+ '/terminus/commands/auth-logout',
+ '/terminus/commands/auth-whoami',
+ '/terminus/commands/backup-automatic-disable',
+ '/terminus/commands/backup-automatic-enable',
+ '/terminus/commands/backup-automatic-info',
+ '/terminus/commands/backup-create',
+ '/terminus/commands/backup-get',
+ '/terminus/commands/backup-info',
+ '/terminus/commands/backup-list',
+ '/terminus/commands/backup-restore',
+ '/terminus/commands/branch-list',
+ '/terminus/commands/completion',
+ '/terminus/commands/connection-info',
+ '/terminus/commands/connection-set',
+ '/terminus/commands/dashboard-view',
+ '/terminus/commands/domain-add',
+ '/terminus/commands/domain-dns',
+ '/terminus/commands/domain-list',
+ '/terminus/commands/domain-lookup',
+ '/terminus/commands/domain-primary-add',
+ '/terminus/commands/domain-primary-remove',
+ '/terminus/commands/domain-remove',
+ '/terminus/commands/env-clear-cache',
+ '/terminus/commands/env-clone-content',
+ '/terminus/commands/env-code-log',
+ '/terminus/commands/env-code-rebuild',
+ '/terminus/commands/env-commit',
+ '/terminus/commands/env-deploy',
+ '/terminus/commands/env-diffstat',
+ '/terminus/commands/env-info',
+ '/terminus/commands/env-list',
+ '/terminus/commands/env-metrics',
+ '/terminus/commands/env-rotate-random-seed',
+ '/terminus/commands/env-view',
+ '/terminus/commands/env-wake',
+ '/terminus/commands/env-wipe',
+ '/terminus/commands/help',
+ '/terminus/commands/https-info',
+ '/terminus/commands/https-remove',
+ '/terminus/commands/https-set',
+ '/terminus/commands/import-complete',
+ '/terminus/commands/import-database',
+ '/terminus/commands/import-files',
+ '/terminus/commands/import-site',
+ '/terminus/commands/list',
+ '/terminus/commands/local-clone',
+ '/terminus/commands/local-commitAndPush',
+ '/terminus/commands/local-dockerize',
+ '/terminus/commands/local-getLiveDB',
+ '/terminus/commands/local-getLiveFiles',
+ '/terminus/commands/lock-disable',
+ '/terminus/commands/lock-enable',
+ '/terminus/commands/lock-info',
+ '/terminus/commands/machine-token-delete',
+ '/terminus/commands/machine-token-delete-all',
+ '/terminus/commands/machine-token-list',
+ '/terminus/commands/multidev-create',
+ '/terminus/commands/multidev-delete',
+ '/terminus/commands/multidev-list',
+ '/terminus/commands/multidev-merge-from-dev',
+ '/terminus/commands/multidev-merge-to-dev',
+ '/terminus/commands/new-relic-disable',
+ '/terminus/commands/new-relic-enable',
+ '/terminus/commands/new-relic-info',
+ '/terminus/commands/org-info',
+ '/terminus/commands/org-list',
+ '/terminus/commands/org-people-add',
+ '/terminus/commands/org-people-list',
+ '/terminus/commands/org-people-remove',
+ '/terminus/commands/org-people-role',
+ '/terminus/commands/org-site-list',
+ '/terminus/commands/org-site-remove',
+ '/terminus/commands/org-upstream-list',
+ '/terminus/commands/owner-set',
+ '/terminus/commands/payment-method-add',
+ '/terminus/commands/payment-method-list',
+ '/terminus/commands/payment-method-remove',
+ '/terminus/commands/plan-info',
+ '/terminus/commands/plan-list',
+ '/terminus/commands/plan-set',
+ '/terminus/commands/redis-disable',
+ '/terminus/commands/redis-enable',
+ '/terminus/commands/remote-drush',
+ '/terminus/commands/remote-wp',
+ '/terminus/commands/self-clear-cache',
+ '/terminus/commands/self-config-dump',
+ '/terminus/commands/self-console',
+ '/terminus/commands/self-info',
+ '/terminus/commands/self-plugin-create',
+ '/terminus/commands/self-plugin-install',
+ '/terminus/commands/self-plugin-list',
+ '/terminus/commands/self-plugin-migrate',
+ '/terminus/commands/self-plugin-reload',
+ '/terminus/commands/self-plugin-search',
+ '/terminus/commands/self-plugin-uninstall',
+ '/terminus/commands/self-plugin-update',
+ '/terminus/commands/self-update',
+ '/terminus/commands/service-level-set',
+ '/terminus/commands/site-create',
+ '/terminus/commands/site-delete',
+ '/terminus/commands/site-info',
+ '/terminus/commands/site-list',
+ '/terminus/commands/site-lookup',
+ '/terminus/commands/site-org-add',
+ '/terminus/commands/site-org-list',
+ '/terminus/commands/site-org-remove',
+ '/terminus/commands/site-team-add',
+ '/terminus/commands/site-team-list',
+ '/terminus/commands/site-team-remove',
+ '/terminus/commands/site-team-role',
+ '/terminus/commands/site-upstream-clear-cache',
+ '/terminus/commands/site-upstream-set',
+ '/terminus/commands/solr-disable',
+ '/terminus/commands/solr-enable',
+ '/terminus/commands/ssh-key-add',
+ '/terminus/commands/ssh-key-list',
+ '/terminus/commands/ssh-key-remove',
+ '/terminus/commands/tag-add',
+ '/terminus/commands/tag-list',
+ '/terminus/commands/tag-remove',
+ '/terminus/commands/upstream-info',
+ '/terminus/commands/upstream-list',
+ '/terminus/commands/upstream-updates-apply',
+ '/terminus/commands/upstream-updates-list',
+ '/terminus/commands/upstream-updates-status',
+ '/terminus/commands/workflow-info-logs',
+ '/terminus/commands/workflow-info-operations',
+ '/terminus/commands/workflow-info-status',
+ '/terminus/commands/workflow-list',
+ '/terminus/commands/workflow-wait',
+ '/terminus/commands/workflow-watch',
+ '/terminus/configuration',
+ '/terminus/create',
+ '/terminus/directory',
+ '/terminus/examples',
+ '/terminus/install',
+ '/terminus/plugins',
+ '/terminus/scripting',
+ '/terminus/supported-terminus',
+ '/terminus/terminus-3-0',
+ '/terminus/updates',
+ '/timeouts',
+ '/trainers',
+ '/troubleshoot',
+ '/unwind-drupal-multisite',
+ '/upgrade-drupal-with-ic-to-latest',
+ '/visual-studio-code',
+ '/wordpress',
+ '/wordpress-known-issues',
+ '/workflow-logs',
+ '/workshops',
+];
+
+export default allWrittenPaths;
diff --git a/src/components/omniSidebarNav/checkStatusCodes.js b/src/components/omniSidebarNav/checkStatusCodes.js
new file mode 100644
index 0000000000..693909cce7
--- /dev/null
+++ b/src/components/omniSidebarNav/checkStatusCodes.js
@@ -0,0 +1,1517 @@
+const fetch = require('node-fetch');
+
+const allWrittenPaths = [
+ '/',
+ '/1-and-1',
+ '/404.html',
+ '/404/',
+ '/add-site',
+ '/add-site-clone',
+ '/add-site-custom-upstream',
+ '/add-site-dashboard',
+ '/addons',
+ '/agency-tips',
+ '/apcu',
+ '/application-containers',
+ '/automate',
+ '/autopilot',
+ '/basic-troubleshooting',
+ '/behat',
+ '/billing',
+ '/bots-and-indexing',
+ '/cache',
+ '/cache-control',
+ '/caching-advanced-topics',
+ '/certificate-bundles',
+ '/certification',
+ '/certification/about',
+ '/certification/exam',
+ '/certification/study-guide',
+ '/certification/study-guide/automate',
+ '/certification/study-guide/cdn',
+ '/certification/study-guide/cms',
+ '/certification/study-guide/create',
+ '/certification/study-guide/custom-upstreams',
+ '/certification/study-guide/deploy',
+ '/certification/study-guide/extend',
+ '/certification/study-guide/people',
+ '/certification/study-guide/platform',
+ '/certification/study-guide/webops',
+ '/clamav',
+ '/clear-caches',
+ '/client-ip',
+ '/cloud-optimization',
+ '/cloudflare',
+ '/code-of-conduct',
+ '/composer',
+ '/composer-convert',
+ '/composer-convert-from-empty',
+ '/configure-dns',
+ '/connection-modes',
+ '/content-staging',
+ '/continuous-integration',
+ '/contribute',
+ '/contributors/',
+ '/contributors/BFTrick',
+ '/contributors/CdrMarks',
+ '/contributors/LukasRos',
+ '/contributors/afragen',
+ '/contributors/albertcausing',
+ '/contributors/aleksandrkorolyov',
+ '/contributors/alexfornuto',
+ '/contributors/andrewmallis',
+ '/contributors/ari',
+ '/contributors/ataylorme',
+ '/contributors/backlineint',
+ '/contributors/bmackinney',
+ '/contributors/bwood',
+ '/contributors/caitybishop',
+ '/contributors/calevans',
+ '/contributors/carl-alberto',
+ '/contributors/carolynshannon',
+ '/contributors/ccjjmartin',
+ '/contributors/cityofoaksdesign',
+ '/contributors/clintonPantheon',
+ '/contributors/cobypear',
+ '/contributors/cteitzel',
+ '/contributors/curmudgeon',
+ '/contributors/danielbachhuber',
+ '/contributors/davidneedham',
+ '/contributors/dgorton',
+ '/contributors/digisavvy',
+ '/contributors/dts',
+ '/contributors/dustinleblanc',
+ '/contributors/dwayne',
+ '/contributors/eabquina',
+ '/contributors/edwardangert',
+ '/contributors/eeeschwartz',
+ '/contributors/erikmathy',
+ '/contributors/fatimask',
+ '/contributors/greg-1-anderson',
+ '/contributors/hckia',
+ '/contributors/iameap',
+ '/contributors/jazzsequence',
+ '/contributors/jessifischer',
+ '/contributors/jms-pantheon',
+ '/contributors/joan-ing',
+ '/contributors/joshkoenig',
+ '/contributors/jrastaban',
+ '/contributors/jspellman814',
+ '/contributors/kate',
+ '/contributors/katiemac',
+ '/contributors/kyletaylored',
+ '/contributors/masonjames',
+ '/contributors/michellecolon-pantheon',
+ '/contributors/mmenavas',
+ '/contributors/mrfelton',
+ '/contributors/nathantyler',
+ '/contributors/peter-pantheon',
+ '/contributors/petersuhm',
+ '/contributors/populist',
+ '/contributors/rachelwhitton',
+ '/contributors/rvtraveller',
+ '/contributors/ryanwagner',
+ '/contributors/sarahg',
+ '/contributors/scottmassey',
+ '/contributors/sdubois',
+ '/contributors/sparklingrobots',
+ '/contributors/stevector',
+ '/contributors/stovak',
+ '/contributors/suzannealdrich',
+ '/contributors/szipfel',
+ '/contributors/tessak22',
+ '/contributors/wbconnor',
+ '/contributors/whitneymeredith',
+ '/contributors/wordsmither',
+ '/cookies',
+ '/core-updates',
+ '/crisis-response-upstream',
+ '/custom-certificates',
+ '/custom-upstreams',
+ '/customer-scheduled-cron-jobs',
+ '/cygwin-windows',
+ '/dashboard',
+ '/date-and-time',
+ '/debug-cache',
+ '/debug-connections',
+ '/debug-slow-performance',
+ '/deploybot',
+ '/develop',
+ '/develop-drupal',
+ '/develop-wordpress',
+ '/dns-made-easy',
+ '/dns-providers',
+ '/doc-template',
+ '/dreamhost',
+ '/drupal',
+ '/drupal-10',
+ '/drupal-advanced-page-cache',
+ '/drupal-broken-links',
+ '/drupal-cache',
+ '/drupal-caching-views',
+ '/drupal-cloudfront',
+ '/drupal-commerce',
+ '/drupal-composer-managed',
+ '/drupal-configuration-management',
+ '/drupal-cron',
+ '/drupal-from-dist',
+ '/drupal-launch-check',
+ '/drupal-migration',
+ '/drupal-phpstorm',
+ '/drupal-s3',
+ '/drupal-security-patches',
+ '/drupal-to-build-tools',
+ '/drupal-updates',
+ '/drush',
+ '/dyn',
+ '/email',
+ '/enom',
+ '/enterprise-billing-center',
+ '/external-libraries',
+ '/faq',
+ '/gandi',
+ '/get-started',
+ '/glossary/',
+ '/go-live',
+ '/godaddy',
+ '/google',
+ '/guides',
+ '/guides/accessibility',
+ '/guides/accessibility/best-practices',
+ '/guides/accessibility/get-started',
+ '/guides/accessibility/resources',
+ '/guides/accessibility/tools',
+ '/guides/account-mgmt',
+ '/guides/account-mgmt/account',
+ '/guides/account-mgmt/account/delete',
+ '/guides/account-mgmt/account/recover',
+ '/guides/account-mgmt/account/types',
+ '/guides/account-mgmt/billing',
+ '/guides/account-mgmt/billing/invoices',
+ '/guides/account-mgmt/billing/methods',
+ '/guides/account-mgmt/billing/periods',
+ '/guides/account-mgmt/billing/transfer',
+ '/guides/account-mgmt/billing/troubleshooting',
+ '/guides/account-mgmt/plans',
+ '/guides/account-mgmt/plans/faq',
+ '/guides/account-mgmt/plans/pricing',
+ '/guides/account-mgmt/plans/resources',
+ '/guides/account-mgmt/plans/site-plans',
+ '/guides/account-mgmt/plans/workspace-plans',
+ '/guides/account-mgmt/traffic',
+ '/guides/account-mgmt/traffic/overages',
+ '/guides/account-mgmt/traffic/remedy',
+ '/guides/account-mgmt/workspace-sites-teams',
+ '/guides/account-mgmt/workspace-sites-teams/sites',
+ '/guides/account-mgmt/workspace-sites-teams/teams',
+ '/guides/account-mgmt/workspace-sites-teams/tools',
+ '/guides/account-mgmt/workspace-sites-teams/workspaces',
+ '/guides/acquia',
+ '/guides/acquia/faq',
+ '/guides/acquia/migrate',
+ '/guides/acquia/prepare',
+ '/guides/acquia/troubleshooting',
+ '/guides/agcdn',
+ '/guides/agcdn/agcdn-faq',
+ '/guides/agcdn/agcdn-features',
+ '/guides/agcdn/agcdn-wafio',
+ '/guides/agcdn/submit-request',
+ '/guides/autopilot',
+ '/guides/autopilot-custom-upstream',
+ '/guides/autopilot-custom-upstream/autopilot-custom-upstream-config',
+ '/guides/autopilot-custom-upstream/wp-autopilot-custom-upstream',
+ '/guides/autopilot/apply-updates/',
+ '/guides/autopilot/autopilot-deactivate',
+ '/guides/autopilot/autopilot-faq/',
+ '/guides/autopilot/autopilot-preconfiguration/',
+ '/guides/autopilot/enable-autopilot/',
+ '/guides/autopilot/tests-results/',
+ '/guides/autopilot/troubleshoot-autopilot/',
+ '/guides/backups',
+ '/guides/backups/access-backups',
+ '/guides/backups/code-archives-backups-log',
+ '/guides/backups/create-backups',
+ '/guides/backups/faqs-backups',
+ '/guides/backups/restore-from-backup',
+ '/guides/build-tools/',
+ '/guides/build-tools/configure/',
+ '/guides/build-tools/create-project/',
+ '/guides/build-tools/custom-theme/',
+ '/guides/build-tools/extend/',
+ '/guides/build-tools/merge/',
+ '/guides/build-tools/pr-workflow/',
+ '/guides/build-tools/tests/',
+ '/guides/build-tools/update/',
+ '/guides/create-wp-site',
+ '/guides/custom-upstream',
+ '/guides/custom-upstream/create-custom-upstream',
+ '/guides/custom-upstream/delete-custom-upstream',
+ '/guides/custom-upstream/edit-custom-upstream',
+ '/guides/custom-upstream/maintain-custom-upstream',
+ '/guides/custom-upstream/manage-dependencies-custom-upstream',
+ '/guides/custom-upstream/switch-custom-upstream',
+ '/guides/custom-upstream/test-custom-upstream',
+ '/guides/custom-upstream/troubleshooting',
+ '/guides/decoupled',
+ '/guides/decoupled/drupal-backend-starters',
+ '/guides/decoupled/drupal-backend-starters/build-hooks',
+ '/guides/decoupled/drupal-backend-starters/caching',
+ '/guides/decoupled/drupal-backend-starters/create',
+ '/guides/decoupled/drupal-backend-starters/manage-settings',
+ '/guides/decoupled/drupal-nextjs-frontend-starters',
+ '/guides/decoupled/drupal-nextjs-frontend-starters/build-details',
+ '/guides/decoupled/drupal-nextjs-frontend-starters/caching',
+ '/guides/decoupled/drupal-nextjs-frontend-starters/content-preview',
+ '/guides/decoupled/drupal-nextjs-frontend-starters/create',
+ '/guides/decoupled/drupal-nextjs-frontend-starters/manage-settings',
+ '/guides/decoupled/drupal-nextjs-frontend-starters/robots-indexing',
+ '/guides/decoupled/no-starter-kit',
+ '/guides/decoupled/no-starter-kit/any-framework',
+ '/guides/decoupled/no-starter-kit/build-details',
+ '/guides/decoupled/no-starter-kit/create',
+ '/guides/decoupled/no-starter-kit/import-repo',
+ '/guides/decoupled/no-starter-kit/manage-settings',
+ '/guides/decoupled/overview',
+ '/guides/decoupled/overview/considerations',
+ '/guides/decoupled/overview/faq',
+ '/guides/decoupled/overview/fes-multidev',
+ '/guides/decoupled/overview/manage-settings',
+ '/guides/decoupled/overview/site',
+ '/guides/decoupled/overview/site-options',
+ '/guides/decoupled/overview/support',
+ '/guides/decoupled/overview/troubleshooting',
+ '/guides/decoupled/overview/v1-pipeline',
+ '/guides/decoupled/wp-backend-starters',
+ '/guides/decoupled/wp-backend-starters/build-hooks',
+ '/guides/decoupled/wp-backend-starters/caching',
+ '/guides/decoupled/wp-backend-starters/create',
+ '/guides/decoupled/wp-backend-starters/manage-settings',
+ '/guides/decoupled/wp-gatsby-frontend-starters',
+ '/guides/decoupled/wp-gatsby-frontend-starters/build-details',
+ '/guides/decoupled/wp-gatsby-frontend-starters/create',
+ '/guides/decoupled/wp-gatsby-frontend-starters/manage-settings',
+ '/guides/decoupled/wp-gatsby-frontend-starters/robots-indexing',
+ '/guides/decoupled/wp-nextjs-frontend-starters',
+ '/guides/decoupled/wp-nextjs-frontend-starters/build-details',
+ '/guides/decoupled/wp-nextjs-frontend-starters/caching',
+ '/guides/decoupled/wp-nextjs-frontend-starters/content-preview',
+ '/guides/decoupled/wp-nextjs-frontend-starters/create',
+ '/guides/decoupled/wp-nextjs-frontend-starters/manage-settings',
+ '/guides/decoupled/wp-nextjs-frontend-starters/robots-indexing',
+ '/guides/disaster-recovery',
+ '/guides/disaster-recovery/incident-remediation',
+ '/guides/disaster-recovery/planning-ahead',
+ '/guides/disaster-recovery/site-goes-down',
+ '/guides/domains',
+ '/guides/domains/custom-domains',
+ '/guides/domains/dns',
+ '/guides/domains/domain-hijacking',
+ '/guides/domains/domains-faq',
+ '/guides/domains/hosts-file',
+ '/guides/domains/platform-domains',
+ '/guides/domains/primary-domain',
+ '/guides/domains/troubleshooting',
+ '/guides/domains/vanity-domains',
+ '/guides/drupal-hosted',
+ '/guides/drupal-hosted-btworkflow',
+ '/guides/drupal-hosted-btworkflow/backup-token',
+ '/guides/drupal-hosted-btworkflow/contrib-custom',
+ '/guides/drupal-hosted-btworkflow/copy-config',
+ '/guides/drupal-hosted-btworkflow/database',
+ '/guides/drupal-hosted-btworkflow/deploy',
+ '/guides/drupal-hosted-btworkflow/prepare',
+ '/guides/drupal-hosted-btworkflow/restore-token',
+ '/guides/drupal-hosted-btworkflow/troubleshooting',
+ '/guides/drupal-hosted-btworkflow/upload-files',
+ '/guides/drupal-hosted-createbt',
+ '/guides/drupal-hosted-createbt/core',
+ '/guides/drupal-hosted-createbt/deploy',
+ '/guides/drupal-hosted-createbt/mariadb',
+ '/guides/drupal-hosted-createbt/prepare',
+ '/guides/drupal-hosted-createbt/troubleshooting',
+ '/guides/drupal-hosted-createbt/upgrade',
+ '/guides/drupal-hosted-createcustom',
+ '/guides/drupal-hosted-createcustom/contrib-custom',
+ '/guides/drupal-hosted-createcustom/dependencies',
+ '/guides/drupal-hosted-createcustom/deploy-dev',
+ '/guides/drupal-hosted-createcustom/deploy-live',
+ '/guides/drupal-hosted-createcustom/new-branch',
+ '/guides/drupal-hosted-createcustom/site-customizations',
+ '/guides/drupal-hosted-createcustom/troubleshooting',
+ '/guides/drupal-hosted-createdashboard-set8',
+ '/guides/drupal-hosted-createdashboard-set8/core-updates',
+ '/guides/drupal-hosted-createdashboard-set8/deploy',
+ '/guides/drupal-hosted-createdashboard-set8/drupal-core-version',
+ '/guides/drupal-hosted-createdashboard-set8/prepare',
+ '/guides/drupal-hosted-createdashboard-set8/troubleshooting',
+ '/guides/drupal-hosted-createempty-md',
+ '/guides/drupal-hosted-createempty-md/change-upstream',
+ '/guides/drupal-hosted-createempty-md/composer-upstream',
+ '/guides/drupal-hosted-createempty-md/contrib-custom',
+ '/guides/drupal-hosted-createempty-md/dependency-versions',
+ '/guides/drupal-hosted-createempty-md/deploy-dev',
+ '/guides/drupal-hosted-createempty-md/deploy-live',
+ '/guides/drupal-hosted-createempty-md/prepare',
+ '/guides/drupal-hosted-createempty-md/troubleshooting',
+ '/guides/drupal-hosted-md',
+ '/guides/drupal-hosted-md/core-updates',
+ '/guides/drupal-hosted-md/deploy',
+ '/guides/drupal-hosted-md/drupal-core-version',
+ '/guides/drupal-hosted-md/prepare',
+ '/guides/drupal-hosted-md/troubleshooting',
+ '/guides/drupal-hosted/code',
+ '/guides/drupal-hosted/create-site',
+ '/guides/drupal-hosted/deploy',
+ '/guides/drupal-hosted/prepare',
+ '/guides/drupal-hosted/troubleshooting',
+ '/guides/drupal-unhosted',
+ '/guides/drupal-unhosted-composer',
+ '/guides/drupal-unhosted-composer/contrib-custom',
+ '/guides/drupal-unhosted-composer/database',
+ '/guides/drupal-unhosted-composer/deploy-dev',
+ '/guides/drupal-unhosted-composer/deploy-live',
+ '/guides/drupal-unhosted-composer/files',
+ '/guides/drupal-unhosted-composer/prepare',
+ '/guides/drupal-unhosted-composer/troubleshooting',
+ '/guides/drupal-unhosted/add-database',
+ '/guides/drupal-unhosted/contrib-custom',
+ '/guides/drupal-unhosted/copy-config',
+ '/guides/drupal-unhosted/deploy',
+ '/guides/drupal-unhosted/deploy-dev',
+ '/guides/drupal-unhosted/prepare',
+ '/guides/drupal-unhosted/troubleshooting',
+ '/guides/drupal-unhosted/upload-files',
+ '/guides/drush',
+ '/guides/drush/drupal-commandline',
+ '/guides/drush/drush-aliases',
+ '/guides/drush/drush-commands',
+ '/guides/drush/drush-import',
+ '/guides/drush/drush-known-limitations',
+ '/guides/drush/drush-sql-queries',
+ '/guides/drush/drush-versions',
+ '/guides/drush/troubleshoot-drush',
+ '/guides/edge-integrations/',
+ '/guides/edge-integrations/analytics/',
+ '/guides/edge-integrations/configuration-overview/',
+ '/guides/edge-integrations/drupal-sdk/',
+ '/guides/edge-integrations/wordpress-sdk/',
+ '/guides/enterprise-billing-center',
+ '/guides/enterprise-billing-center/faq',
+ '/guides/enterprise-billing-center/interacting',
+ '/guides/enterprise-billing-center/invoices',
+ '/guides/enterprise-billing-center/site-portfolio-report',
+ '/guides/environment-configuration',
+ '/guides/environment-configuration/environment-indicator',
+ '/guides/environment-configuration/environment-specific-config',
+ '/guides/environment-configuration/environment-specific-config-drupal',
+ '/guides/environment-configuration/read-environment-config',
+ '/guides/environment-configuration/restore-environment-backup',
+ '/guides/errors-and-server-responses',
+ '/guides/errors-and-server-responses/4xx-errors',
+ '/guides/errors-and-server-responses/5xx-errors',
+ '/guides/errors-and-server-responses/external-web-service-calls',
+ '/guides/errors-and-server-responses/overloaded-workers',
+ '/guides/errors-and-server-responses/retries-server-containers',
+ '/guides/errors-and-server-responses/slow-and-high-queries',
+ '/guides/fastly-pantheon',
+ '/guides/fastly-pantheon/connect-fastly',
+ '/guides/fastly-pantheon/fastly-amazon-s3',
+ '/guides/fastly-pantheon/fastly-datadog',
+ '/guides/fastly-pantheon/fastly-faq',
+ '/guides/fastly-pantheon/fastly-new-relic',
+ '/guides/fastly-pantheon/fastly-sftp',
+ '/guides/fastly-pantheon/fastly-splunk',
+ '/guides/fastly-pantheon/fastly-syslog',
+ '/guides/filesystem/',
+ '/guides/filesystem/batch-files',
+ '/guides/filesystem/files-directories',
+ '/guides/filesystem/large-files',
+ '/guides/filesystem/tmp',
+ '/guides/filesystem/troubleshooting',
+ '/guides/frontend-performance',
+ '/guides/frontend-performance/additional-resources',
+ '/guides/frontend-performance/caching',
+ '/guides/frontend-performance/code-css',
+ '/guides/frontend-performance/diagnostics',
+ '/guides/frontend-performance/media',
+ '/guides/frontend-performance/metrics',
+ '/guides/frontend-performance/queries',
+ '/guides/frontend-performance/redirects',
+ '/guides/frontend-performance/static',
+ '/guides/getstarted',
+ '/guides/getstarted/addsite',
+ '/guides/getstarted/launch',
+ '/guides/getstarted/nextsteps',
+ '/guides/getstarted/purchase',
+ '/guides/getstarted/signup',
+ '/guides/getstarted/team',
+ '/guides/git',
+ '/guides/git/collaborative-development',
+ '/guides/git/faq-git',
+ '/guides/git/git-config',
+ '/guides/git/resolve-merge-conflicts',
+ '/guides/git/troubleshooting',
+ '/guides/git/undo-commits',
+ '/guides/git/useful-commands',
+ '/guides/global-cdn',
+ '/guides/global-cdn/experience-protection',
+ '/guides/global-cdn/global-cdn-caching',
+ '/guides/global-cdn/global-cdn-faq',
+ '/guides/global-cdn/https',
+ '/guides/global-cdn/test-global-cdn-caching',
+ '/guides/guided',
+ '/guides/guided/faq',
+ '/guides/guided/migrate',
+ '/guides/guided/prepare',
+ '/guides/guided/troubleshooting',
+ '/guides/integrated-composer',
+ '/guides/integrated-composer/dependencies',
+ '/guides/integrated-composer/ic-faq',
+ '/guides/integrated-composer/ic-support',
+ '/guides/integrated-composer/ic-troubleshooting',
+ '/guides/integrated-composer/ic-upstreams',
+ '/guides/integrated-composer/one-click-updates',
+ '/guides/integrated-composer/private-repo-package',
+ '/guides/kinsta',
+ '/guides/kinsta/faq',
+ '/guides/kinsta/migrate',
+ '/guides/kinsta/prepare',
+ '/guides/kinsta/troubleshooting',
+ '/guides/launch/',
+ '/guides/launch/advanced-curls/',
+ '/guides/launch/configure-dns/',
+ '/guides/launch/create-site-launch',
+ '/guides/launch/domains/',
+ '/guides/launch/launch-check/',
+ '/guides/launch/next-steps/',
+ '/guides/launch/plans/',
+ '/guides/launch/redirects',
+ '/guides/local-development',
+ '/guides/local-development/configuration',
+ '/guides/local-development/continuous-integration',
+ '/guides/local-development/cygwin-windows',
+ '/guides/local-development/ddev',
+ '/guides/local-development/drupal-phpstorm',
+ '/guides/local-development/graphql-requests',
+ '/guides/local-development/jenkins',
+ '/guides/local-development/lando-wordpress',
+ '/guides/local-development/visual-studio-code',
+ '/guides/local-development/wordpress-phpstorm',
+ '/guides/logs-pantheon',
+ '/guides/logs-pantheon/access-logs',
+ '/guides/logs-pantheon/automate-log-downloads',
+ '/guides/logs-pantheon/faq-logs',
+ '/guides/logs-pantheon/nginx-access-logs',
+ '/guides/manual-d8-composer-to-d8',
+ '/guides/manual-d8-composer-to-d8/contrib-custom',
+ '/guides/manual-d8-composer-to-d8/database',
+ '/guides/manual-d8-composer-to-d8/deploy-dev',
+ '/guides/manual-d8-composer-to-d8/deploy-live',
+ '/guides/manual-d8-composer-to-d8/files',
+ '/guides/manual-d8-composer-to-d8/prepare',
+ '/guides/manual-d8-composer-to-d8/troubleshooting',
+ '/guides/mariadb-mysql',
+ '/guides/mariadb-mysql/database-connection-errors',
+ '/guides/mariadb-mysql/database-workflow-tool',
+ '/guides/mariadb-mysql/kill-mysql-queries',
+ '/guides/mariadb-mysql/mariadb-mysql-faq',
+ '/guides/mariadb-mysql/myisam-to-innodb',
+ '/guides/mariadb-mysql/mysql-access',
+ '/guides/mariadb-mysql/mysql-slow-log',
+ '/guides/mariadb-mysql/mysql-workbench',
+ '/guides/multidev',
+ '/guides/multidev/access-branch',
+ '/guides/multidev/clone-content',
+ '/guides/multidev/compare-environments',
+ '/guides/multidev/create-multidev',
+ '/guides/multidev/delete-multidev',
+ '/guides/multidev/edit-multidev',
+ '/guides/multidev/multidev-faq',
+ '/guides/multisite/',
+ '/guides/multisite/config/',
+ '/guides/multisite/considerations/',
+ '/guides/multisite/debug/',
+ '/guides/multisite/multisite-governance/',
+ '/guides/multisite/search-replace/',
+ '/guides/multisite/workflows/',
+ '/guides/new-relic',
+ '/guides/new-relic/activate-new-relic',
+ '/guides/new-relic/debug-mysql-new-relic',
+ '/guides/new-relic/monitor-new-relic',
+ '/guides/new-relic/new-relic-faq',
+ '/guides/new-relic/new-relic-quicksilver',
+ '/guides/new-relic/troubleshoot-new-relic',
+ '/guides/pagely',
+ '/guides/pagely/faq',
+ '/guides/pagely/migrate',
+ '/guides/pagely/prepare',
+ '/guides/pagely/troubleshooting',
+ '/guides/pagerduty/',
+ '/guides/pagerduty/monitor/',
+ '/guides/pagerduty/next-steps/',
+ '/guides/pagerduty/notify/',
+ '/guides/pagerduty/schedule/',
+ '/guides/pagerduty/slack/',
+ '/guides/php',
+ '/guides/php/deprecated-constructor-notices',
+ '/guides/php/php-errors',
+ '/guides/php/php-slow-log',
+ '/guides/php/php-versions',
+ '/guides/php/settings-php',
+ '/guides/php/wordpress-sessions',
+ '/guides/php/wp-config-php',
+ '/guides/platform-considerations',
+ '/guides/platform-considerations/media-email-support',
+ '/guides/platform-considerations/php-platform',
+ '/guides/platform-considerations/platform-security',
+ '/guides/platform-considerations/platform-site-info',
+ '/guides/platform-considerations/terminus-platform',
+ '/guides/platformsh',
+ '/guides/platformsh/faq',
+ '/guides/platformsh/migrate',
+ '/guides/platformsh/prepare',
+ '/guides/platformsh/troubleshooting',
+ '/guides/professional-services',
+ '/guides/professional-services/advanced-global-cdn',
+ '/guides/professional-services/application-performance',
+ '/guides/professional-services/managed-updates',
+ '/guides/professional-services/onboarding',
+ '/guides/professional-services/website-migration-service',
+ '/guides/quicksilver',
+ '/guides/quicksilver/asana',
+ '/guides/quicksilver/hooks',
+ '/guides/quicksilver/install-script',
+ '/guides/quicksilver/jira',
+ '/guides/quicksilver/trello',
+ '/guides/quicksilver/troubleshoot-quicksilver',
+ '/guides/quicksilver/variables',
+ '/guides/redirect',
+ '/guides/redirect/advanced',
+ '/guides/redirect/https/',
+ '/guides/redirect/mobile',
+ '/guides/redirect/php',
+ '/guides/redirect/primary-domain',
+ '/guides/secure-development',
+ '/guides/secure-development/phpinfo',
+ '/guides/secure-development/private-paths',
+ '/guides/secure-development/secure-integration',
+ '/guides/secure-development/secure-runtime-access',
+ '/guides/secure-development/security-tool',
+ '/guides/secure-development/ssh-tunnels',
+ '/guides/secure-development/two-factor-authentication',
+ '/guides/security',
+ '/guides/sftp',
+ '/guides/sftp/port-2222',
+ '/guides/sftp/rsync-and-sftp',
+ '/guides/sftp/sftp-connection-info',
+ '/guides/sftp/sftp-development',
+ '/guides/sftp/troubleshooting-sftp',
+ '/guides/sftp/vscode-sftp',
+ '/guides/sftp/winscp',
+ '/guides/solr-drupal',
+ '/guides/solr-drupal/solr-drupal',
+ '/guides/solr-drupal/solr-drupal-7',
+ '/guides/sso',
+ '/guides/sso/shibboleth-sso',
+ '/guides/sso/sso',
+ '/guides/sso/sso-organizations',
+ '/guides/support/',
+ '/guides/support/contact-support/',
+ '/guides/support/curl',
+ '/guides/support/early-access/',
+ '/guides/support/faq/',
+ '/guides/support/har/',
+ '/guides/support/support-ticket/',
+ '/guides/woocommerce/',
+ '/guides/woocommerce/commit/',
+ '/guides/woocommerce/configure/',
+ '/guides/woocommerce/develop/',
+ '/guides/woocommerce/initialize-prod/',
+ '/guides/woocommerce/launch/',
+ '/guides/woocommerce/store-setup/',
+ '/guides/wordpress-composer',
+ '/guides/wordpress-composer/create-wp-site-composer-ci-auto-test',
+ '/guides/wordpress-composer/pre-ga',
+ '/guides/wordpress-composer/wordpress-composer-managed',
+ '/guides/wordpress-composer/wordpress-ic',
+ '/guides/wordpress-configurations',
+ '/guides/wordpress-configurations/mu-plugin',
+ '/guides/wordpress-configurations/plugins',
+ '/guides/wordpress-configurations/sendgrid-wordpress-wp-mail-smtp',
+ '/guides/wordpress-configurations/wordpress-cache-plugin',
+ '/guides/wordpress-configurations/wordpress-custom-code',
+ '/guides/wordpress-configurations/wordpress-font-library',
+ '/guides/wordpress-configurations/wp-cfm',
+ '/guides/wordpress-developer',
+ '/guides/wordpress-developer/performant-translations',
+ '/guides/wordpress-developer/wordpress-best-practices',
+ '/guides/wordpress-developer/wordpress-broken-links',
+ '/guides/wordpress-developer/wordpress-cron',
+ '/guides/wordpress-developer/wordpress-development-versions',
+ '/guides/wordpress-developer/wordpress-gcs',
+ '/guides/wordpress-developer/wordpress-login-attacks',
+ '/guides/wordpress-developer/wordpress-s3',
+ '/guides/wordpress-developer/wordpress-secrets-management',
+ '/guides/wordpress-developer/wordpress-solr',
+ '/guides/wordpress-developer/xml-rpc-attacks',
+ '/guides/wordpress-git/',
+ '/guides/wordpress-git/media/',
+ '/guides/wordpress-git/next-steps/',
+ '/guides/wordpress-git/plugins/',
+ '/guides/wordpress-git/remove-editor/',
+ '/guides/wordpress-git/themes/',
+ '/guides/wordpress-google-sso/',
+ '/guides/wordpress-google-sso/access-and-mappings',
+ '/guides/wordpress-google-sso/advanced-configuration',
+ '/guides/wordpress-google-sso/going-live',
+ '/guides/wordpress-google-sso/install/',
+ '/guides/wordpress-google-sso/saml-app/',
+ '/guides/wordpress-pantheon/',
+ '/guides/wordpress-pantheon/create-wp-site',
+ '/guides/wordpress-pantheon/migrate-existing-wp-site',
+ '/guides/wordpress-pantheon/plugins',
+ '/guides/wordpress-pantheon/plugins-recommended',
+ '/guides/wordpress-pantheon/troubleshooting',
+ '/guides/wordpress-pantheon/wordpress-developers',
+ '/guides/wordpress-pantheon/wordpress-launch-check',
+ '/guides/wordpress-pantheon/wp-content-management',
+ '/guides/wordpress-pantheon/wp-optimization',
+ '/guides/wordpress-pantheon/wp-security',
+ '/guides/wordpressvip',
+ '/guides/wordpressvip/faq',
+ '/guides/wordpressvip/migrate',
+ '/guides/wordpressvip/prepare',
+ '/guides/wordpressvip/troubleshooting',
+ '/guides/wp-cli',
+ '/guides/wp-cli/install-wp-plugins-themes',
+ '/guides/wp-cli/wp-cli-global-parameters',
+ '/guides/wp-cli/wp-cli-pantheon-commands',
+ '/guides/wp-cli/wp-cli-sql-php-subcommands',
+ '/guides/wp-cli/wp-cli-troubleshoot',
+ '/guides/wpengine',
+ '/guides/wpengine/faq',
+ '/guides/wpengine/migrate',
+ '/guides/wpengine/prepare',
+ '/guides/wpengine/troubleshooting',
+ '/headless',
+ '/horizontal-scalability',
+ '/hotfixes',
+ '/http-to-https',
+ '/iframeembeds/certification/pressure-on-developers',
+ '/iframeembeds/certification/pressure-on-it',
+ '/iframeembeds/certification/what-is-webops',
+ '/iframeembeds/certification/what-problems-does-webops-solve',
+ '/inclusive-language',
+ '/integrations',
+ '/jenkins',
+ '/ldap-and-ldaps',
+ '/load-and-performance-testing',
+ '/load-testing-with-blazemeter',
+ '/lockr',
+ '/machine-tokens',
+ '/manage',
+ '/migrate-cpanel',
+ '/migrate-manual',
+ '/migrate-wordpress',
+ '/migrate-wordpress-multisite',
+ '/mime-types',
+ '/modules',
+ '/modules-known-issues',
+ '/modules-plugins-known-issues',
+ '/multizone-failover',
+ '/namecheap',
+ '/nested-docroot',
+ '/network-solutions',
+ '/newrelic',
+ '/object-cache',
+ '/object-cache/cli',
+ '/object-cache/drupal',
+ '/object-cache/errors',
+ '/object-cache/faq',
+ '/object-cache/remove',
+ '/object-cache/wordpress',
+ '/object-cache/wordpress-deprecated',
+ '/opensolr',
+ '/optimize-wp-options-table-autoloaded-data',
+ '/oss-support-levels',
+ '/outgoing-ips',
+ '/overview',
+ '/pantheon-community',
+ '/pantheon-workflow',
+ '/pantheon-yml',
+ '/pantheon-yml-overview',
+ '/pantheon_stripped',
+ '/partial-composer',
+ '/performance',
+ '/personal-settings',
+ '/pingdom-uptime-check',
+ '/pivotal-tracker',
+ '/platform',
+ '/platform-notifications',
+ '/platform-upgrade',
+ '/plugins-known-issues',
+ '/products',
+ '/regions',
+ '/relaunch',
+ '/release-notes/',
+ '/release-notes/2015/01/concerned-about-cve-2015-0235-aka-ghost',
+ '/release-notes/2015/01/php-upgrade',
+ '/release-notes/2015/01/supporting-orgs-multi-org',
+ '/release-notes/2015/02/documentation',
+ '/release-notes/2015/02/new-wordpress-upstream',
+ '/release-notes/2015/02/terminus-0-5-released',
+ '/release-notes/2015/02/try-drupal-8-beta',
+ '/release-notes/2015/02/varnish-testing-harness',
+ '/release-notes/2015/03/dashboard-optimization',
+ '/release-notes/2015/03/documentation',
+ '/release-notes/2015/03/drupal-7-35-update',
+ '/release-notes/2015/03/terminus-improvement',
+ '/release-notes/2015/04/documentation',
+ '/release-notes/2015/04/edge-cache-configuration-update',
+ '/release-notes/2015/04/fedora-update',
+ '/release-notes/2015/04/saml-users',
+ '/release-notes/2015/04/styx-to-appserver-encryption',
+ '/release-notes/2015/04/wordpress-core-updates-to-4-2-1',
+ '/release-notes/2015/04/wordpress-launch-check',
+ '/release-notes/2015/05/barrel-roll-reboots',
+ '/release-notes/2015/05/dashboard-load-times',
+ '/release-notes/2015/05/free-backups',
+ '/release-notes/2015/05/webinars',
+ '/release-notes/2015/06/documentation',
+ '/release-notes/2015/06/improved-workflows-notifications',
+ '/release-notes/2015/06/single-sign-on-sso-release',
+ '/release-notes/2015/06/walkme-tours',
+ '/release-notes/2015/07/documentation',
+ '/release-notes/2015/07/kalabox-2-pantheon',
+ '/release-notes/2015/07/multidev-ui-updated',
+ '/release-notes/2015/07/scripts-to-quickly-make-a-drupal-7-project-using-composer',
+ '/release-notes/2015/07/wordpress-4-2-3-is-live',
+ '/release-notes/2015/08/documentation',
+ '/release-notes/2015/08/nginx-conf-update-for-photon',
+ '/release-notes/2015/08/php-5-5-opcache-revalidate-freq-value-is-now-set-to-zero',
+ '/release-notes/2015/08/php-default-arg-separator',
+ '/release-notes/2015/08/saint-mode-saves-your-images',
+ '/release-notes/2015/08/terminus-cli-version-0-7-1',
+ '/release-notes/2015/09/documentation',
+ '/release-notes/2015/09/login-destination',
+ '/release-notes/2015/09/pantheon-enterprise-is-now-available',
+ '/release-notes/2015/09/terminus-0-8-0',
+ '/release-notes/2015/10/documentation',
+ '/release-notes/2015/10/drupal-7-defaults-to-php-5-5',
+ '/release-notes/2015/10/drupal-8-rc2-released-and-available',
+ '/release-notes/2015/10/edge-cache-upgraded-to-varnish-4',
+ '/release-notes/2015/10/organization-renaming',
+ '/release-notes/2015/10/terminus-0-9-2-released',
+ '/release-notes/2015/10/terminus-commands-updated',
+ '/release-notes/2015/10/wp-cli-search-replace',
+ '/release-notes/2015/12/documentation',
+ '/release-notes/2016/01/documentation',
+ '/release-notes/2016/01/machine-token-authentication',
+ '/release-notes/2016/01/pantheon-hud-plugin',
+ '/release-notes/2016/01/quicksilver-platform-hooks-are-now-available',
+ '/release-notes/2016/01/terminus-0-10-2-released',
+ '/release-notes/2016/02/cloud-integration-tools',
+ '/release-notes/2016/02/code-archives',
+ '/release-notes/2016/02/documentation',
+ '/release-notes/2016/02/end-of-life-for-drupal-6',
+ '/release-notes/2016/02/platform-domains',
+ '/release-notes/2016/02/terminus-0-10-2-released',
+ '/release-notes/2016/02/wordpress-at-scale',
+ '/release-notes/2016/02/wordpress-core-updates',
+ '/release-notes/2016/03/documentation',
+ '/release-notes/2016/03/freezing-inactive-sites',
+ '/release-notes/2016/03/terminus-0-11-0-released',
+ '/release-notes/2016/04/documentation',
+ '/release-notes/2016/04/new-terminus-plugins-for-quicksilver-integrations',
+ '/release-notes/2016/04/terminus-0-11-1-released',
+ '/release-notes/2016/04/workflow-tab-renamed-to-databases-files',
+ '/release-notes/2016/05/pantheon-enterprise-support-now-available',
+ '/release-notes/2016/05/terminus-0-11-1',
+ '/release-notes/2016/06/drupal-8-site-imports-now-supported',
+ '/release-notes/2016/06/new-migration-button-on-the-dashboard',
+ '/release-notes/2016/06/new-reliable-screenshots-microservice-&-user-dashboard-design-update',
+ '/release-notes/2016/06/new-relic-pro',
+ '/release-notes/2016/07/documentation',
+ '/release-notes/2016/07/drupal-contrib-module-security-updates',
+ '/release-notes/2016/07/migrating-wordpress-sites-to-pantheon-just-got-easier',
+ '/release-notes/2016/07/terminus-0-11-2',
+ '/release-notes/2016/07/tls-1-0-deprecated',
+ '/release-notes/2016/08/advanced-site-configurations-available',
+ '/release-notes/2016/08/documentation',
+ '/release-notes/2016/08/new-hooks-for-quicksilver-platform-integration',
+ '/release-notes/2016/08/php-5-6-7-0-released',
+ '/release-notes/2016/08/solr-power-for-wordpress-0-5-update',
+ '/release-notes/2016/08/terminus-0-12-0',
+ '/release-notes/2016/09/bug-fixes',
+ '/release-notes/2016/09/dashboard-design-updates',
+ '/release-notes/2016/09/documentation',
+ '/release-notes/2016/09/drush_version-is-now-managed-in-pantheon-yml',
+ '/release-notes/2016/09/kalabox-2-0-is-available',
+ '/release-notes/2016/09/terminus-0-13-2',
+ '/release-notes/2016/10/custom-domains-in-multidev-environments',
+ '/release-notes/2016/10/documentation',
+ '/release-notes/2016/10/solr-power-for-wordpress-0-6-update',
+ '/release-notes/2016/10/terminus-1-0-alpha-release',
+ '/release-notes/2016/11/chat-support',
+ '/release-notes/2016/11/drupal-6-long-term-support-(lts)-partners',
+ '/release-notes/2016/11/drupal-core-updates',
+ '/release-notes/2016/11/early-release-pantheon-advanced-page-cache-plugin',
+ '/release-notes/2016/11/new-relic-agent-upgrade',
+ '/release-notes/2016/11/php-upgrade',
+ '/release-notes/2016/11/platform-security-update',
+ '/release-notes/2016/11/terminus-0-13-4-and-terminus-1-0-alpha',
+ '/release-notes/2016/12/documentation',
+ '/release-notes/2016/12/drupal-core-updates',
+ '/release-notes/2016/12/privacy-shield-framework-compliance',
+ '/release-notes/2016/12/supported-mime-types',
+ '/release-notes/2016/12/terminus-manual-and-terminus-1-0-beta-releases',
+ '/release-notes/2016/12/upgraded-wp-cli',
+ '/release-notes/2016/12/wordpress-4-7-core-update',
+ '/release-notes/2016/12/wordpress-4-7-security-patches',
+ '/release-notes/2017/01/drupal-8-2-5-upgrade',
+ '/release-notes/2017/01/terminus-1-0',
+ '/release-notes/2017/01/terminus-plugins',
+ '/release-notes/2017/01/wordpress-4-7-2-upgrade',
+ '/release-notes/2017/02/documentation',
+ '/release-notes/2017/02/drupal-core-upgrade',
+ '/release-notes/2017/02/patched-for-linux-kernel-vulnerability',
+ '/release-notes/2017/02/php-upgrade',
+ '/release-notes/2017/03/documentation',
+ '/release-notes/2017/03/drupal-core-upgrades',
+ '/release-notes/2017/03/wp-cli-upgrade',
+ '/release-notes/2017/04/bug-fixes',
+ '/release-notes/2017/04/documentation',
+ '/release-notes/2017/04/drupal-core-upgrades',
+ '/release-notes/2017/04/terminus-1-3-0',
+ '/release-notes/2017/04/wordpress-upgrades',
+ '/release-notes/2017/05/documentation',
+ '/release-notes/2017/05/drupal-core-upgrades',
+ '/release-notes/2017/05/php-upgrade',
+ '/release-notes/2017/05/platform-security',
+ '/release-notes/2017/06/core-upgrades',
+ '/release-notes/2017/06/default-php-versions',
+ '/release-notes/2017/06/documentation',
+ '/release-notes/2017/06/new-relic',
+ '/release-notes/2017/06/pantheon-upstream-configuration',
+ '/release-notes/2017/06/terminus-1-4-0',
+ '/release-notes/2017/06/wp-cli',
+ '/release-notes/2017/07/custom-upstreams-self-serve-github-and-bitbucket',
+ '/release-notes/2017/07/documentation',
+ '/release-notes/2017/07/drupal-8-with-redirect-and-simple-xml-sitemap-modules-now-supported',
+ '/release-notes/2017/07/drupal-core-upgrades',
+ '/release-notes/2017/07/nginx-web-server-integer-overflow-vulnerability-mitigated',
+ '/release-notes/2017/07/terminus-1-4-1',
+ '/release-notes/2017/08/documentation',
+ '/release-notes/2017/08/drupal-core-upgrades',
+ '/release-notes/2017/08/global-cdn-surrogate-key-cache-clearing-api-improvement',
+ '/release-notes/2017/08/php-upgrades',
+ '/release-notes/2017/08/terminus-1-5',
+ '/release-notes/2017/08/wordpress-core-upgrades',
+ '/release-notes/2017/09/documentation',
+ '/release-notes/2017/09/new-relic',
+ '/release-notes/2017/09/wp-cli',
+ '/release-notes/2017/09/wp-native-php-sessions',
+ '/release-notes/2017/10/custom-upstreams',
+ '/release-notes/2017/10/documentation',
+ '/release-notes/2017/10/php-7-1-&-ioncube-decoder',
+ '/release-notes/2017/10/terminus-1-6',
+ '/release-notes/2017/10/webp-image-support',
+ '/release-notes/2017/10/wordpress-core-upgrades',
+ '/release-notes/2017/11/documentation',
+ '/release-notes/2017/11/drupal-core-upgrades',
+ '/release-notes/2017/11/site-dashboard-update',
+ '/release-notes/2017/11/sites-requiring-upgrade-to-global-cdn-now-shown-on-user-&-org-dashboards',
+ '/release-notes/2017/11/wordpress-core-upgrades',
+ '/release-notes/2017/12/bug-fixes-and-improvements',
+ '/release-notes/2017/12/documentation',
+ '/release-notes/2017/12/drupal-core-upgrades',
+ '/release-notes/2017/12/php-upgrades',
+ '/release-notes/2018/01/documentation',
+ '/release-notes/2018/01/drupal-core-upgrades',
+ '/release-notes/2018/01/launch-check-now-supports-drupal-8',
+ '/release-notes/2018/01/new-relic-php-7-2-support',
+ '/release-notes/2018/01/pantheon-moves-to-google-cloud-platform',
+ '/release-notes/2018/01/php-upgrades',
+ '/release-notes/2018/01/registry-rebuild-upgrade',
+ '/release-notes/2018/01/wordpress-core-upgrade',
+ '/release-notes/2018/01/wp-cli-upgrades',
+ '/release-notes/2018/02/custom-upstream-quicksilver-enhancement',
+ '/release-notes/2018/02/drupal-core-upgrades',
+ '/release-notes/2018/02/legacy-ssl-add-on-price-increase',
+ '/release-notes/2018/02/php-updates',
+ '/release-notes/2018/02/wordpress-core-upgrade',
+ '/release-notes/2018/03/drupal-core-upgrades',
+ '/release-notes/2018/03/global-cdn-surrogate-key-raw-disabled-by-default',
+ '/release-notes/2018/03/php-security-upgrades',
+ '/release-notes/2018/03/terminus-1-8',
+ '/release-notes/2018/03/wordpress-core-upgrade',
+ '/release-notes/2018/04/documentation',
+ '/release-notes/2018/04/drupal-core-upgrades',
+ '/release-notes/2018/04/ocsp-stapling-enabled-on-global-cdn',
+ '/release-notes/2018/04/testing-seo-now-supported-on-platform-domains',
+ '/release-notes/2018/04/wordpress-core-upgrade',
+ '/release-notes/2018/05/documentation',
+ '/release-notes/2018/05/duplicate-pantheon-sites-with-terminus-site-clone',
+ '/release-notes/2018/05/filemount-configuration',
+ '/release-notes/2018/05/php-7-2-ms-sql-support',
+ '/release-notes/2018/05/php-updates',
+ '/release-notes/2018/05/upgrade-to-php-7-1-or-7-2-before-december',
+ '/release-notes/2018/05/wordpress-core-upgrade',
+ '/release-notes/2018/07/crawler-access-to-platform-domains',
+ '/release-notes/2018/07/documentation',
+ '/release-notes/2018/07/drupal-8-5-5',
+ '/release-notes/2018/07/terminus-1-8-1',
+ '/release-notes/2018/07/wordpress-4-9-7',
+ '/release-notes/2018/08/apache-tika-update',
+ '/release-notes/2018/08/documentation',
+ '/release-notes/2018/08/https-provisioning-accelerated',
+ '/release-notes/2018/08/php-upgrades',
+ '/release-notes/2018/09/drupal-7-59',
+ '/release-notes/2018/09/drupal-8-5-6',
+ '/release-notes/2018/09/new-php-default-versions-for-pantheon-maintained-upstreams',
+ '/release-notes/2018/09/php-upgrades',
+ '/release-notes/2018/09/wordpress-4-9-8',
+ '/release-notes/2018/10/documentation',
+ '/release-notes/2018/10/drupal-8-6-1',
+ '/release-notes/2018/10/drupal-maintenance-mode-imagecache-fix',
+ '/release-notes/2018/10/improve-email-deliverability-with-spf-records',
+ '/release-notes/2018/10/php-version-updates',
+ '/release-notes/2018/11/drupal-7-60',
+ '/release-notes/2018/11/drupal-8-6-2',
+ '/release-notes/2018/11/php-7-2-11-and-7-1-23',
+ '/release-notes/2018/12/documentation',
+ '/release-notes/2018/12/drupal-8-6-3-and-7-61-now-available-as-1-click-updates',
+ '/release-notes/2018/12/multidev-access',
+ '/release-notes/2018/12/partner-program',
+ '/release-notes/2018/12/php-updates',
+ '/release-notes/2019/01/disaster-recovery',
+ '/release-notes/2019/01/documentation',
+ '/release-notes/2019/01/drupal-8-6-5-and-wordpress-5-0-1-now-available-as-1-click-updates',
+ '/release-notes/2019/02/drupal-8-6-7,-7-63,-and-wordpress-5-0-3-now-available-as-1-click-updates',
+ '/release-notes/2019/02/new-relic-php-agent-upgraded',
+ '/release-notes/2019/02/php-7-2-and-7-1-updated',
+ '/release-notes/2019/02/php-intl-extension-now-available',
+ '/release-notes/2019/03/documentation',
+ '/release-notes/2019/03/drupal-8-6-10,-7-64,-and-wordpress-5-1-now-available-as-1-click-updates',
+ '/release-notes/2019/03/eu-region-early-access',
+ '/release-notes/2019/03/php-7-2-updated',
+ '/release-notes/2019/03/terminus-2-0-released!',
+ '/release-notes/2019/03/wordpress-launch-check-shows-vulnerability-info',
+ '/release-notes/2019/04/community-updates',
+ '/release-notes/2019/04/documentation',
+ '/release-notes/2019/04/drupal-core-upgrades',
+ '/release-notes/2019/04/pantheon-heroes',
+ '/release-notes/2019/04/wordpress-5-1-1',
+ '/release-notes/2019/05/disaster-recovery-now-supports-redis-cache',
+ '/release-notes/2019/05/drupal-core-updates-available',
+ '/release-notes/2019/05/european-union-region-in-limited-availability',
+ '/release-notes/2019/05/new-relic-agent-upgraded',
+ '/release-notes/2019/05/pantheon-heroes',
+ '/release-notes/2019/05/php-7-3-default-for-drupal-8-and-wordpress-sites',
+ '/release-notes/2019/05/site-files-and-backups-moved-to-google-cloud',
+ '/release-notes/2019/05/terminus-2-0-1-release',
+ '/release-notes/2019/06/australia-and-canada-regions-in-limited-availability',
+ '/release-notes/2019/06/drupal-core-updates-available',
+ '/release-notes/2019/06/php-7-1,-7-2,-and-7-3-updated',
+ '/release-notes/2019/06/wordpress-5-2-1',
+ '/release-notes/2019/07/dns-recommendations-update',
+ '/release-notes/2019/07/drupal-core-updates-available',
+ '/release-notes/2019/07/general-availability-for-new-regions',
+ '/release-notes/2019/07/more-consistent-cron-runs',
+ '/release-notes/2019/07/wordpress-5-2-2-update-available',
+ '/release-notes/2019/08/drupal-core-updates-available',
+ '/release-notes/2019/08/new-relic-php-agent-upgrade',
+ '/release-notes/2019/09/drupal-core-updates-available',
+ '/release-notes/2019/09/php-7-1,-7-2-and-7-3-updated',
+ '/release-notes/2019/10/documentation',
+ '/release-notes/2019/10/drupal-core-updates-available',
+ '/release-notes/2019/10/pantheon-now-enforces-https-by-default',
+ '/release-notes/2019/10/platform-robots-txt-now-allows-swiftbot',
+ '/release-notes/2019/10/wordpress-5-2-3',
+ '/release-notes/2019/11/documentation',
+ '/release-notes/2019/11/drupal-8-7-8',
+ '/release-notes/2019/11/pantheon-localdev-0-5-6',
+ '/release-notes/2019/11/php-7-1,-7-2,-and-7-3-updated',
+ '/release-notes/2019/11/wordpress-5-2-4',
+ '/release-notes/2019/12/documentation',
+ '/release-notes/2019/12/drupal-8-7-10',
+ '/release-notes/2019/12/php-7-2,-and-7-3-updated',
+ '/release-notes/2019/12/wordpress-5-3',
+ '/release-notes/2020/01/drupal-8-8-1-and-7-69',
+ '/release-notes/2020/01/localdev-0-6-0-beta-9-released',
+ '/release-notes/2020/01/php-7-2-and-7-3-updated',
+ '/release-notes/2020/01/security-enhancement-outgoing-udp-traffic-blocked',
+ '/release-notes/2020/01/terminus-now-runs-site-local-drush-&-wp-cli',
+ '/release-notes/2020/01/wordpress-5-3-2',
+ '/release-notes/2020/02/drush-8-3-2-released',
+ '/release-notes/2020/02/localdev-0-7-0-released',
+ '/release-notes/2020/02/php-7-3-14-and-7-2-27-updated',
+ '/release-notes/2020/02/terminus-2-3-0-released',
+ '/release-notes/2020/03/advanced-global-cdn',
+ '/release-notes/2020/03/documentation',
+ '/release-notes/2020/03/drupal-8-8-2-released',
+ '/release-notes/2020/03/drush-10',
+ '/release-notes/2020/03/global-cdn-network-expansion',
+ '/release-notes/2020/04/documentation',
+ '/release-notes/2020/04/drupal-8-8-4',
+ '/release-notes/2020/04/localdev-0-9-3',
+ '/release-notes/2020/04/new-relic-agent-9-7-0-258',
+ '/release-notes/2020/04/wp-cli-2-4-0',
+ '/release-notes/2020/05/documentation',
+ '/release-notes/2020/05/drupal-8-8-5',
+ '/release-notes/2020/05/early-access-to-drupal-9-with-integrated-composer',
+ '/release-notes/2020/05/localdev-0-10-0',
+ '/release-notes/2020/05/multidev-cloud-environments-offer',
+ '/release-notes/2020/05/wordpress-5-4-1',
+ '/release-notes/2020/06/documentation',
+ '/release-notes/2020/06/drupal-7-70',
+ '/release-notes/2020/06/drupal-8-8-6',
+ '/release-notes/2020/06/drupal-9-0',
+ '/release-notes/2020/06/global-cdn',
+ '/release-notes/2020/06/go-live-enhancements',
+ '/release-notes/2020/06/localdev-0-10-0',
+ '/release-notes/2020/06/resources-to-navigate-covid-19',
+ '/release-notes/2020/07/documentation',
+ '/release-notes/2020/07/drupal-8-9-1,-8-8-8,-and-7-72',
+ '/release-notes/2020/07/drupal-9-0',
+ '/release-notes/2020/07/localdev-0-10-1',
+ '/release-notes/2020/07/multidev-and-covid-response-site-offers',
+ '/release-notes/2020/07/terminus-2-4-0',
+ '/release-notes/2020/07/traffic-metrics',
+ '/release-notes/2020/07/wordpress-5-4-2',
+ '/release-notes/2020/08/dedicated-certificates-&-updated-go-live',
+ '/release-notes/2020/08/drupal-8-9-2',
+ '/release-notes/2020/08/drupal-9-0',
+ '/release-notes/2020/08/multidev-and-covid-response-site-offers',
+ '/release-notes/2020/09/drupal-8-9-3',
+ '/release-notes/2020/09/drupal-9-0',
+ '/release-notes/2020/09/wordpress-5-5',
+ '/release-notes/2020/10/documentation',
+ '/release-notes/2020/10/drupal-7-73',
+ '/release-notes/2020/10/drupal-8-8-10',
+ '/release-notes/2020/10/drupal-8-9-6',
+ '/release-notes/2020/10/drupal-9-preview-multidev-script',
+ '/release-notes/2020/10/php-7-3-22-and-7-4-10-updated',
+ '/release-notes/2020/10/wordpress-5-5-1',
+ '/release-notes/2020/11/documentation',
+ '/release-notes/2020/11/drupal-8-9-7',
+ '/release-notes/2020/11/drupal-9',
+ '/release-notes/2020/12/documentation',
+ '/release-notes/2020/12/drupal-7-74',
+ '/release-notes/2020/12/drupal-8-9-9',
+ '/release-notes/2020/12/drupal-9-with-one-click-composer-updates',
+ '/release-notes/2020/12/wordpress-5-5-3',
+ '/release-notes/2021/01/documentation',
+ '/release-notes/2021/01/drupal-8-9-11',
+ '/release-notes/2021/01/drupal-9-with-one-click-composer-updates',
+ '/release-notes/2021/01/wordpress-5-6',
+ '/release-notes/2021/02/documentation',
+ '/release-notes/2021/02/drupal-7-78',
+ '/release-notes/2021/02/drupal-8-9-13',
+ '/release-notes/2021/02/drupal-9-with-one-click-composer-updates',
+ '/release-notes/2021/02/localdev-1-0-1',
+ '/release-notes/2021/03/documentation',
+ '/release-notes/2021/03/drupal-9-with-one-click-composer-updates',
+ '/release-notes/2021/03/wordpress-5-6-1',
+ '/release-notes/2021/04/convert-your-drupal-8-pantheon-site-to-drupal-9-with-integrated-composer',
+ '/release-notes/2021/04/documentation',
+ '/release-notes/2021/04/wordpress-5-7',
+ '/release-notes/2021/05/documentation',
+ '/release-notes/2021/05/drupal-7-80',
+ '/release-notes/2021/05/drupal-8-9-14',
+ '/release-notes/2021/05/drupal-9-1-7',
+ '/release-notes/2021/05/wordpress-5-7-1',
+ '/release-notes/2021/06/documentation',
+ '/release-notes/2021/06/drupal-8-9-15',
+ '/release-notes/2021/06/drupal-9-1-8',
+ '/release-notes/2021/06/wordpress-5-7-2',
+ '/release-notes/2021/06/wp-cli-2-5-0',
+ '/release-notes/2021/07/documentation',
+ '/release-notes/2021/07/drupal-7-81',
+ '/release-notes/2021/07/drupal-8-9-16',
+ '/release-notes/2021/07/drupal-9-2-0',
+ '/release-notes/2021/07/wordpress-5-7-2',
+ '/release-notes/2021/08/documentation',
+ '/release-notes/2021/08/drupal-7-82',
+ '/release-notes/2021/08/drupal-8-9-17',
+ '/release-notes/2021/08/drupal-9-2-0',
+ '/release-notes/2021/08/wordpress-5-8',
+ '/release-notes/2021/09/documentation',
+ '/release-notes/2021/09/drupal-7-82',
+ '/release-notes/2021/09/drupal-8-9-18',
+ '/release-notes/2021/09/drupal-9-2-3',
+ '/release-notes/2021/10/documentation',
+ '/release-notes/2021/10/drupal-8-9-19',
+ '/release-notes/2021/10/drupal-9-2-6',
+ '/release-notes/2021/10/wordpress-5-8-1',
+ '/release-notes/2021/11/documentation',
+ '/release-notes/2021/11/drupal-9-2-7',
+ '/release-notes/2021/12/documentation',
+ '/release-notes/2021/12/drupal-8-9-20',
+ '/release-notes/2021/12/drupal-9-2-8',
+ '/release-notes/2021/12/wordpress-5-8-2',
+ '/release-notes/2022/01/documentation',
+ '/release-notes/2022/01/drupal-9',
+ '/release-notes/2022/01/legacy-edge-shutdown-update',
+ '/release-notes/2022/01/new-and-improved-workspace-switcher',
+ '/release-notes/2022/01/one-click-database-and-php-upgrades',
+ '/release-notes/2022/01/terminus',
+ '/release-notes/2022/02/documentation',
+ '/release-notes/2022/02/drupal-9-2-11',
+ '/release-notes/2022/02/drupal-9-3-3',
+ '/release-notes/2022/02/email-preferences-in-the-new-dashboard',
+ '/release-notes/2022/02/wordpress-5-9',
+ '/release-notes/2022/03/documentation',
+ '/release-notes/2022/03/drupal-9-2-13',
+ '/release-notes/2022/03/drupal-9-3-6',
+ '/release-notes/2022/03/wordpress-5-9-1',
+ '/release-notes/2022/04/documentation',
+ '/release-notes/2022/04/drupal-9-2-16',
+ '/release-notes/2022/04/drupal-9-3-9',
+ '/release-notes/2022/05/documentation',
+ '/release-notes/2022/05/drupal-9-2-18',
+ '/release-notes/2022/05/drupal-9-3-12',
+ '/release-notes/2022/06/documentation',
+ '/release-notes/2022/06/drupal-9-2-20',
+ '/release-notes/2022/06/drupal-9-3-14',
+ '/release-notes/2022/06/wordpress-6-0',
+ '/release-notes/2022/07/documentation',
+ '/release-notes/2022/07/drupal-9-2-20',
+ '/release-notes/2022/07/drupal-9-3-17',
+ '/release-notes/2022/07/drupal-9-4-1',
+ '/release-notes/2022/07/wordpress-6-0-1',
+ '/release-notes/2022/08/documentation',
+ '/release-notes/2022/08/drupal-9-3-21',
+ '/release-notes/2022/08/drupal-9-4-5',
+ '/release-notes/2022/08/wordpress-6-0-1',
+ '/release-notes/2022/09/documentation',
+ '/release-notes/2022/09/drupal-9-4-5',
+ '/release-notes/2022/09/php-8-1',
+ '/release-notes/2022/09/wordpress-6-0-2',
+ '/release-notes/2022/09/wordpress-composer-managed-upstream-in-early-access',
+ '/release-notes/2022/10/documentation',
+ '/release-notes/2022/10/drupal-9-3-22',
+ '/release-notes/2022/10/drupal-9-4-5',
+ '/release-notes/2022/10/new-dashboard',
+ '/release-notes/2022/11/autopilot',
+ '/release-notes/2022/11/documentation',
+ '/release-notes/2022/11/drupal-9-3-22',
+ '/release-notes/2022/11/drupal-9-4-8',
+ '/release-notes/2022/11/new-dashboard',
+ '/release-notes/2022/11/wordpress-6-1',
+ '/release-notes/2022/12/drupal-10',
+ '/release-notes/2022/12/drupal-9-4-8',
+ '/release-notes/2022/12/drupal-9-5-0',
+ '/release-notes/2022/12/wordpress-6-1-1',
+ '/release-notes/2023/01/drupal-10-0-2',
+ '/release-notes/2023/01/drupal-9-4-9',
+ '/release-notes/2023/01/drupal-9-5-2',
+ '/release-notes/2023/02/documentation',
+ '/release-notes/2023/02/drupal-10-0-3',
+ '/release-notes/2023/02/drupal-9-4-11',
+ '/release-notes/2023/02/drupal-9-5-3',
+ '/release-notes/2023/02/enterprise-billing-center',
+ '/release-notes/2023/02/front-end-sites',
+ '/release-notes/2023/02/localdev',
+ '/release-notes/2023/02/pantheon-learning',
+ '/release-notes/2023/02/pantheon-object-cache',
+ '/release-notes/2023/02/roles-and-permissions',
+ '/release-notes/2023/02/wordpress-6-1-1',
+ '/release-notes/2023/02/wordpress-multisite',
+ '/release-notes/2023/05/cache-hit-ratio-metrics',
+ '/release-notes/2023/05/wordpress-6-2',
+ '/release-notes/2023/06/launch-check-updates',
+ '/release-notes/2023/06/wordpress-6-2-1',
+ '/release-notes/2023/06/wp-cli-2-8-0',
+ '/release-notes/2023/07/deprecation-of-obsolete-tls-1-2-cipher-suites',
+ '/release-notes/2023/07/drupal-7-98',
+ '/release-notes/2023/07/integrated-composer',
+ '/release-notes/2023/07/wp-cli-2-8-1',
+ '/release-notes/2023/09/drupal-sa-core-2023-006',
+ '/release-notes/2023/09/early-access-customer-scheduled-jobs',
+ '/release-notes/2023/09/early-access-streamlined-user-offboarding',
+ '/release-notes/2023/09/front-end-sites-enhancements',
+ '/release-notes/2023/09/new-php-defaults',
+ '/release-notes/2023/09/object-cache-pro',
+ '/release-notes/2023/09/pantheon-advanced-page-cache-wordpress-plugin-updates',
+ '/release-notes/2023/09/php-security-updates',
+ '/release-notes/2023/09/solr-search-for-wordpress-2-5-0-update',
+ '/release-notes/2023/09/wordpress-multisite-search-and-replace',
+ '/release-notes/2023/10/design-system-integration-docs',
+ '/release-notes/2023/10/drupal-security-update',
+ '/release-notes/2023/10/front-end-sites-settings',
+ '/release-notes/2023/10/php-8-1-and-8-2-updated-to-their-latest-patch-releases',
+ '/release-notes/2023/10/php-memory-limits-updates',
+ '/release-notes/2023/10/wpml-improved-edge-caching-compatibility-cache-hit-ratio-increased-24-percent',
+ '/release-notes/2023/11/composer-logs-visibility',
+ '/release-notes/2023/11/faster-backups',
+ '/release-notes/2023/11/front-end-sites-build-caching-and-node-js-versions',
+ '/release-notes/2023/11/streamlined-user-offboarding',
+ '/release-notes/2023/11/vpat-issued-for-product-accessibility',
+ '/release-notes/2023/11/wordpress-native-php-sessions-1-4-update',
+ '/release-notes/2023/12/delete-front-end-sites-multidevs-directly-from-dashboard-for-streamlined-management',
+ '/release-notes/2023/12/elevated-experience-with-front-end-sites-drupal-starter-kit',
+ '/release-notes/2023/12/optimized-monitoring-for-high-volume-directories',
+ '/release-notes/2023/12/upgraded-security-measures-for-uninterrupted-webops-experience',
+ '/release-notes/2024/01/drupal-7-99-release-bug fixes-and-feature-enhancements',
+ '/release-notes/2024/01/pantheon-release-notes-a-new-year-a-new-chapter',
+ '/release-notes/2024/01/wordpress-6-4-2-security-update',
+ '/release-notes/2024/01/wordpress-6-4-3',
+ '/release-notes/2024/01/wp-cli-v2-9-0-release-now-available-on-pantheon',
+ '/release-notes/2024/02/php-8.3.3-8.2.16-8.1.27',
+ '/release-notes/2024/02/wp-cli-2-10',
+ '/release-notes/2024/02/wp-cli-changes',
+ '/release-notes/2024/03/PHP-7-1-EOS',
+ '/release-notes/2024/03/drupal-7-100',
+ '/release-notes/2024/03/overages-policy-change',
+ '/release-notes/2024/03/pantheon-advanced-page-cache-1.5.0',
+ '/release-notes/2024/03/pantheon-mu-plugin-1-3-2',
+ '/release-notes/2024/03/pantheon-mu-plugin-1-3-3',
+ '/release-notes/2024/03/papc-drupal-file-cache',
+ '/release-notes/2024/03/php-8-2-8-3',
+ '/release-notes/2024/03/terminus-github-action-sessions-cache',
+ '/release-notes/2024/04/community-slack',
+ '/release-notes/2024/04/ea-workflow-logs',
+ '/release-notes/2024/04/enhanced-support-ticket-search-functionality',
+ '/release-notes/2024/04/new-relic-agent',
+ '/release-notes/2024/04/pantheon-mu-plugin-1-4-0-update',
+ '/release-notes/2024/04/php-8-3-recommended',
+ '/release-notes/2024/04/php-81-82-82',
+ '/release-notes/2024/04/sftp-authentication-changes',
+ '/release-notes/2024/04/solr-power-2-5-3',
+ '/release-notes/2024/04/wordpress-6-5',
+ '/release-notes/2024/04/wordpress-6-5-2',
+ '/release-notes/2024/04/wordpress-composer-managed-update',
+ '/release-notes/2024/04/wordpress-pantheon-mu-plugin-1-4-1-update',
+ '/release-notes/2024/05/5xx-error-messages',
+ '/release-notes/2024/05/Synthetics-Check-Limits',
+ '/release-notes/2024/05/load-balancing',
+ '/release-notes/2024/05/new-relic-agent-update-released',
+ '/release-notes/2024/05/pantheon-advanced-page-cache-2-0',
+ '/release-notes/2024/05/pantheon-mu-plugin-1-4-2-update',
+ '/release-notes/2024/05/pantheon-mu-plugin-1-4-3-update',
+ '/release-notes/2024/05/php-82-83',
+ '/release-notes/2024/05/sendgrid-transactional-emails',
+ '/release-notes/2024/05/wordpress-6-5-3-update',
+ '/release-notes/2024/06/drupal-7-101',
+ '/release-notes/2024/06/login-update',
+ '/release-notes/2024/06/pantheon-mu-plugin-1-4-4-wordpress-composer-managed-update',
+ '/release-notes/2024/06/php-81-82-83-updates',
+ '/release-notes/2024/06/quicksilver-examples-new-relic',
+ '/release-notes/2024/06/release-note-multi-select-filter',
+ '/release-notes/2024/06/wordpress-6-5-4',
+ '/release-notes/2024/06/wordpress-6-5-5',
+ '/release-notes/2024/07/domain-validation',
+ '/release-notes/2024/07/platform-robots-txt-now-supports-pope-tech',
+ '/required-reading',
+ '/rerouting-outbound-email',
+ '/resetting-passwords',
+ '/route53',
+ '/search/',
+ '/sendgrid',
+ '/server_name-and-server_port',
+ '/services-yml',
+ '/sftp',
+ '/sign-up',
+ '/single-application-sites',
+ '/site-dashboard',
+ '/solr',
+ '/ssh-keys',
+ '/start-state',
+ '/static-site-empty-upstream',
+ '/static-site-empty-upstream-demo',
+ '/style-guide',
+ '/support',
+ '/supported-drupal',
+ '/supported-wp',
+ '/switch-drupal-recommended-upstream',
+ '/symlinks-assumed-write-access',
+ '/tax-exempt-status',
+ '/terminus',
+ '/terminus-demo',
+ '/terminus-drupal-site-management',
+ '/terminus-overview',
+ '/terminus/ci/bitbucket',
+ '/terminus/ci/circleci',
+ '/terminus/ci/github-actions',
+ '/terminus/ci/gitlab',
+ '/terminus/commands',
+ '/terminus/commands/aliases',
+ '/terminus/commands/art',
+ '/terminus/commands/art-list',
+ '/terminus/commands/auth-login',
+ '/terminus/commands/auth-logout',
+ '/terminus/commands/auth-whoami',
+ '/terminus/commands/backup-automatic-disable',
+ '/terminus/commands/backup-automatic-enable',
+ '/terminus/commands/backup-automatic-info',
+ '/terminus/commands/backup-create',
+ '/terminus/commands/backup-get',
+ '/terminus/commands/backup-info',
+ '/terminus/commands/backup-list',
+ '/terminus/commands/backup-restore',
+ '/terminus/commands/branch-list',
+ '/terminus/commands/completion',
+ '/terminus/commands/connection-info',
+ '/terminus/commands/connection-set',
+ '/terminus/commands/dashboard-view',
+ '/terminus/commands/domain-add',
+ '/terminus/commands/domain-dns',
+ '/terminus/commands/domain-list',
+ '/terminus/commands/domain-lookup',
+ '/terminus/commands/domain-primary-add',
+ '/terminus/commands/domain-primary-remove',
+ '/terminus/commands/domain-remove',
+ '/terminus/commands/env-clear-cache',
+ '/terminus/commands/env-clone-content',
+ '/terminus/commands/env-code-log',
+ '/terminus/commands/env-code-rebuild',
+ '/terminus/commands/env-commit',
+ '/terminus/commands/env-deploy',
+ '/terminus/commands/env-diffstat',
+ '/terminus/commands/env-info',
+ '/terminus/commands/env-list',
+ '/terminus/commands/env-metrics',
+ '/terminus/commands/env-rotate-random-seed',
+ '/terminus/commands/env-view',
+ '/terminus/commands/env-wake',
+ '/terminus/commands/env-wipe',
+ '/terminus/commands/help',
+ '/terminus/commands/https-info',
+ '/terminus/commands/https-remove',
+ '/terminus/commands/https-set',
+ '/terminus/commands/import-complete',
+ '/terminus/commands/import-database',
+ '/terminus/commands/import-files',
+ '/terminus/commands/import-site',
+ '/terminus/commands/list',
+ '/terminus/commands/local-clone',
+ '/terminus/commands/local-commitAndPush',
+ '/terminus/commands/local-dockerize',
+ '/terminus/commands/local-getLiveDB',
+ '/terminus/commands/local-getLiveFiles',
+ '/terminus/commands/lock-disable',
+ '/terminus/commands/lock-enable',
+ '/terminus/commands/lock-info',
+ '/terminus/commands/machine-token-delete',
+ '/terminus/commands/machine-token-delete-all',
+ '/terminus/commands/machine-token-list',
+ '/terminus/commands/multidev-create',
+ '/terminus/commands/multidev-delete',
+ '/terminus/commands/multidev-list',
+ '/terminus/commands/multidev-merge-from-dev',
+ '/terminus/commands/multidev-merge-to-dev',
+ '/terminus/commands/new-relic-disable',
+ '/terminus/commands/new-relic-enable',
+ '/terminus/commands/new-relic-info',
+ '/terminus/commands/org-info',
+ '/terminus/commands/org-list',
+ '/terminus/commands/org-people-add',
+ '/terminus/commands/org-people-list',
+ '/terminus/commands/org-people-remove',
+ '/terminus/commands/org-people-role',
+ '/terminus/commands/org-site-list',
+ '/terminus/commands/org-site-remove',
+ '/terminus/commands/org-upstream-list',
+ '/terminus/commands/owner-set',
+ '/terminus/commands/payment-method-add',
+ '/terminus/commands/payment-method-list',
+ '/terminus/commands/payment-method-remove',
+ '/terminus/commands/plan-info',
+ '/terminus/commands/plan-list',
+ '/terminus/commands/plan-set',
+ '/terminus/commands/redis-disable',
+ '/terminus/commands/redis-enable',
+ '/terminus/commands/remote-drush',
+ '/terminus/commands/remote-wp',
+ '/terminus/commands/self-clear-cache',
+ '/terminus/commands/self-config-dump',
+ '/terminus/commands/self-console',
+ '/terminus/commands/self-info',
+ '/terminus/commands/self-plugin-create',
+ '/terminus/commands/self-plugin-install',
+ '/terminus/commands/self-plugin-list',
+ '/terminus/commands/self-plugin-migrate',
+ '/terminus/commands/self-plugin-reload',
+ '/terminus/commands/self-plugin-search',
+ '/terminus/commands/self-plugin-uninstall',
+ '/terminus/commands/self-plugin-update',
+ '/terminus/commands/self-update',
+ '/terminus/commands/service-level-set',
+ '/terminus/commands/site-create',
+ '/terminus/commands/site-delete',
+ '/terminus/commands/site-info',
+ '/terminus/commands/site-list',
+ '/terminus/commands/site-lookup',
+ '/terminus/commands/site-org-add',
+ '/terminus/commands/site-org-list',
+ '/terminus/commands/site-org-remove',
+ '/terminus/commands/site-team-add',
+ '/terminus/commands/site-team-list',
+ '/terminus/commands/site-team-remove',
+ '/terminus/commands/site-team-role',
+ '/terminus/commands/site-upstream-clear-cache',
+ '/terminus/commands/site-upstream-set',
+ '/terminus/commands/solr-disable',
+ '/terminus/commands/solr-enable',
+ '/terminus/commands/ssh-key-add',
+ '/terminus/commands/ssh-key-list',
+ '/terminus/commands/ssh-key-remove',
+ '/terminus/commands/tag-add',
+ '/terminus/commands/tag-list',
+ '/terminus/commands/tag-remove',
+ '/terminus/commands/upstream-info',
+ '/terminus/commands/upstream-list',
+ '/terminus/commands/upstream-updates-apply',
+ '/terminus/commands/upstream-updates-list',
+ '/terminus/commands/upstream-updates-status',
+ '/terminus/commands/workflow-info-logs',
+ '/terminus/commands/workflow-info-operations',
+ '/terminus/commands/workflow-info-status',
+ '/terminus/commands/workflow-list',
+ '/terminus/commands/workflow-wait',
+ '/terminus/commands/workflow-watch',
+ '/terminus/configuration',
+ '/terminus/create',
+ '/terminus/directory',
+ '/terminus/examples',
+ '/terminus/install',
+ '/terminus/plugins',
+ '/terminus/scripting',
+ '/terminus/supported-terminus',
+ '/terminus/terminus-3-0',
+ '/terminus/updates',
+ '/timeouts',
+ '/trainers',
+ '/troubleshoot',
+ '/unwind-drupal-multisite',
+ '/upgrade-drupal-with-ic-to-latest',
+ '/visual-studio-code',
+ '/wordpress',
+ '/wordpress-known-issues',
+ '/workflow-logs',
+ '/workshops',
+];
+
+const fqdn = process.env.FQDN;
+
+if (!fqdn) {
+ console.error('Please set the FQDN environment variable.');
+ process.exit(1);
+}
+
+const checkStatusCodes = async () => {
+ for (const path of allWrittenPaths) {
+ const url = `${fqdn}${path}`;
+ try {
+ const response = await fetch(url, { redirect: 'manual' });
+ // console.log(response);
+
+ console.log(`${url} -> ${response.status}`);
+ } catch (error) {
+ console.error(`Error fetching ${url}:`, error);
+ }
+ }
+};
+
+checkStatusCodes();
diff --git a/src/components/omniSidebarNav/getOmniItems.js b/src/components/omniSidebarNav/getOmniItems.js
index f86d7983a1..e0029cd556 100644
--- a/src/components/omniSidebarNav/getOmniItems.js
+++ b/src/components/omniSidebarNav/getOmniItems.js
@@ -1,5 +1,33 @@
import CertificationItems from './submenus/certification';
-import { getGuideDirectory } from './helpers';
+
+import getStarted from './submenus/getStarted';
+import goLive from './submenus/goLive';
+import pagesToDelete from './submenus/pagesToDelete';
+import unassignedPages from './submenus/unassignedPages';
+import webInfrastructure from './submenus/webInfrastructure';
+import accountManagement from './submenus/accountManagement';
+
+import terminus from './submenus/terminus';
+import about from './submenus/about';
+import workflows from './submenus/workflows';
+import support from './submenus/support';
+import security from './submenus/security';
+import { simpleLink } from './helpers';
+
+// Before we can merge we need to:
+// Todo: review reporting in console log
+// Todo: Finish security submenu
+
+/////// Review things Steve did alone. ///////
+// Todo: Finish tutorials submenu in certification
+// Todo: Update dropdown in main site nav
+// Todo: Confirm move of Front-End Sites under web infrastructure
+// Todo: Decide if search should be in the sidebar. In the "about" section maybe?
+// Todo: audit troubleshooting submenu in support
+// Todo: reconcile this branch with https://github.com/pantheon-systems/documentation/pull/9296
+// Todo: Fix doc template (missing search bar)
+// Todo: Fix video template (missing search bar)
+// Todo: add sidebar to landing pages (end goal is to delete them entirely)
/**
* Retrieves the all the menu items for the sidebar navigation.
@@ -7,25 +35,27 @@ import { getGuideDirectory } from './helpers';
*/
const getOmniItems = () => {
const OmniItems = [
- {
- link: '/guides/decoupled',
- title: 'Front-End Sites and Starter Kits',
- children: [
- getGuideDirectory('guides/decoupled/overview'),
- getGuideDirectory('guides/decoupled/wp-nextjs-frontend-starters'),
- getGuideDirectory('guides/decoupled/wp-backend-starters'),
- getGuideDirectory('guides/decoupled/wp-gatsby-frontend-starters'),
- getGuideDirectory('guides/decoupled/drupal-backend-starters'),
- getGuideDirectory('guides/decoupled/drupal-nextjs-frontend-starters'),
- getGuideDirectory('guides/decoupled/no-starter-kit'),
- ],
- },
- {
- link: '/certification',
- title: 'WebOps Certification',
- children: CertificationItems,
- },
+ simpleLink('/', 'Docs Home'),
+ getStarted(), // assigned to Chris ✅
+ workflows(), // ✅
+ goLive(), // ✅
+ webInfrastructure(), // ✅
+ accountManagement(), // ✅
+ terminus(), // ✅
+ support(), // ✅
+ security(), // ✅
+ // @todo, should we have a separate tutorials section?
+
+ CertificationItems(), // ✅
+ about(), // assigned to Rachel ✅
+ // Release notes
+ simpleLink('/release-notes', 'Release Notes'),
+ pagesToDelete(),
+ unassignedPages(),
];
+
+ console.log('OmniItems: ', OmniItems);
+
return OmniItems;
};
diff --git a/src/components/omniSidebarNav/helpers.js b/src/components/omniSidebarNav/helpers.js
index e937d48125..ee4df6cdea 100644
--- a/src/components/omniSidebarNav/helpers.js
+++ b/src/components/omniSidebarNav/helpers.js
@@ -25,7 +25,7 @@ const turnItemsIntoLinks = (item, activePage) => {
}
return {
- isActive: item.link === activePage,
+ isActive: item.link === activePage || item.link === '/' + activePage,
links: item.children
? item.children.map((child) => turnItemsIntoLinks(child, activePage))
: false,
@@ -41,7 +41,7 @@ const turnItemsIntoLinks = (item, activePage) => {
* @returns {boolean} - True if the item or any of its children have a link that matches the active page, false otherwise.
*/
function containsActiveLink(item, activePage) {
- if (item.link === activePage) {
+ if (item.link === '/' + activePage || item.link === activePage) {
return true;
} else if (item.children && item.children.length > 0) {
for (let child of item.children) {
@@ -94,7 +94,11 @@ const findSubMenuItemsToUse = function (topLevelParentPath, NestedItems) {
* @param {Object} [AllGuides=allGuides()] - The object containing all the guides.
* @returns {Object} - The guide directory object with its title, link, and children.
*/
-const getGuideDirectory = (guideDirectory, AllGuides = allGuides()) => {
+const getGuideDirectory = (
+ guideDirectory,
+ overrideGuideTitle = '',
+ AllGuides = allGuides(),
+) => {
const ChildItems = [];
var guideTitle = '';
for (let item of AllGuides.allGuides.edges) {
@@ -110,15 +114,30 @@ const getGuideDirectory = (guideDirectory, AllGuides = allGuides()) => {
}
return {
- link: '/' + guideDirectory,
- title: guideTitle,
+ link: ChildItems.length > 0 ? ChildItems[0].link : '/' + guideDirectory,
+ // link: '/' + guideDirectory,
+ // If there is an overrideGuideTitle, use that instead of the guideTitle
+ title: overrideGuideTitle || guideTitle,
children: ChildItems,
};
};
+const simpleLink = (link, title = '', children = []) => {
+ const returning = {
+ link: link,
+ title: title || link,
+ };
+
+ if (children.length > 0) {
+ returning.children = children;
+ }
+ return returning;
+};
+
export {
findSubMenuItemsToUse,
getGuideDirectory,
getOmniSidebarActiveSection,
turnItemsIntoLinks,
+ simpleLink,
};
diff --git a/src/components/omniSidebarNav/helpers.test.js b/src/components/omniSidebarNav/helpers.test.js
index 4f787de4fa..59534e9229 100644
--- a/src/components/omniSidebarNav/helpers.test.js
+++ b/src/components/omniSidebarNav/helpers.test.js
@@ -27,7 +27,7 @@ test('finds sub menu to use', () => {
test('Check that the items for a specific guide directory path are correct', () => {
const guideDirectory = 'guides/decoupled/wp-backend-starters';
- expect(getGuideDirectory(guideDirectory, AllGuides)).toEqual(
+ expect(getGuideDirectory(guideDirectory, '', AllGuides)).toEqual(
guideDirectoryItems,
);
});
diff --git a/src/components/omniSidebarNav/index.js b/src/components/omniSidebarNav/index.js
index 6b7811091c..1ddf51b805 100644
--- a/src/components/omniSidebarNav/index.js
+++ b/src/components/omniSidebarNav/index.js
@@ -7,8 +7,19 @@ import {
getOmniSidebarActiveSection,
turnItemsIntoLinks,
} from './helpers.js';
+
+// @todo, remove the reporting before merging this PR.
+import allWrittenPaths from './all-written-paths.js';
+import {
+ flattenOmniItems,
+ CalculateFilteredPathsInMenu,
+ eliminateExceptions,
+} from './reporting';
+
import './style.css';
+// @todo, run prettier one more time on this directory before removing it from the PR.
+
const OmniSidebarNav = ({
activePage,
fallbackItems = null,
@@ -16,6 +27,35 @@ const OmniSidebarNav = ({
submenuPathToUse = '',
}) => {
const OmniItems = getOmniItems();
+
+ const exceptions = [
+ 'https://certification.pantheon.io/',
+ '/404.html',
+ '/404/',
+ ];
+ const RegExExceptions = [
+ // a regular expression that matches all paths that contain the '/contributors/' with the preceding and following slashes as well as more characters after the slash
+ /.*\/contributors\/.*/,
+ /.*\/release-notes\/.*/,
+ /.*\/iframeembeds\/.*/,
+ /.*\/terminus\/commands\/.*/,
+ ];
+
+ const filteredWrittenPaths = eliminateExceptions(
+ allWrittenPaths,
+ exceptions,
+ RegExExceptions,
+ );
+ const flattenedOmniItems = flattenOmniItems(OmniItems);
+ const results = CalculateFilteredPathsInMenu(
+ filteredWrittenPaths,
+ flattenedOmniItems,
+ );
+
+ // const results = calculateNumberOfPathsInMenu(allWrittenPaths, OmniItems, exceptions);
+
+ console.log(results);
+
const menuItems = getOmniSidebarActiveSection(activePage, OmniItems);
// If the caller is asking for a specific submenu, use that directly.
diff --git a/src/components/omniSidebarNav/reporting-run.js b/src/components/omniSidebarNav/reporting-run.js
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/src/components/omniSidebarNav/reporting.js b/src/components/omniSidebarNav/reporting.js
new file mode 100644
index 0000000000..6f55700c51
--- /dev/null
+++ b/src/components/omniSidebarNav/reporting.js
@@ -0,0 +1,105 @@
+const flattenOmniItems = (menuItems) => {
+ // loop over the omniItems and make a flattened array of all the links
+ // this function should be recursive.
+ // return the array
+ let flattened = [];
+ for (let item of menuItems) {
+ flattened.push(item.link);
+ if (item.children) {
+ flattened = flattened.concat(flattenOmniItems(item.children));
+ }
+ }
+ // return flattened with duplicates removed
+ return [...new Set(flattened)];
+};
+
+const InWrittenPathOrExceptions = (
+ linkPath,
+ flattened = [],
+ allowedExceptions = [],
+) => {
+ // check any of the exceptions are present in the linkPath
+ // if they are, return true
+ for (let exception of allowedExceptions) {
+ if (linkPath.includes(exception)) {
+ return true;
+ }
+ }
+
+ if (flattened.includes(linkPath)) {
+ return true;
+ } else {
+ return false;
+ }
+};
+
+const InMenuOrExceptions = (
+ linkPath,
+ flattened = [],
+ allowedExceptions = [],
+) => {
+ // check any of the exceptions are present in the linkPath
+ // if they are, return true
+ for (let exception of allowedExceptions) {
+ if (linkPath.includes(exception)) {
+ return true;
+ }
+ }
+
+ if (flattened.includes(linkPath)) {
+ return true;
+ } else {
+ return false;
+ }
+};
+
+const eliminateExceptions = (allPaths, exceptions, RegExExceptions = []) => {
+ return allPaths.filter((path) => {
+ for (let exception of exceptions) {
+ if (path.includes(exception)) {
+ return false;
+ }
+ }
+ for (let RegExException of RegExExceptions) {
+ //console.log(RegExException);
+ if (path.match(RegExException)) {
+ return false;
+ }
+ }
+ return true;
+ });
+};
+
+const CalculateFilteredPathsInMenu = (
+ filteredWrittenPaths,
+ flattenedOmniItems,
+) => {
+ // loop over all the filtered paths and check if they are in the menu
+ const pathsNotInMenu = [];
+ const pathsInMenu = [];
+ for (let linkPath of filteredWrittenPaths) {
+ if (!flattenedOmniItems.includes(linkPath)) {
+ pathsNotInMenu.push(linkPath);
+ } else {
+ pathsInMenu.push(linkPath);
+ }
+ }
+
+ const percentageInMenu =
+ (pathsInMenu.length / filteredWrittenPaths.length) * 100;
+
+ return {
+ pathsInMenu: pathsInMenu,
+ pathsNotInMenu: pathsNotInMenu,
+ percentageInMenu: percentageInMenu,
+ // Round up to the nearest whole number
+ percentageInMenuRoundedUp: Math.ceil(percentageInMenu),
+ };
+};
+
+export {
+ flattenOmniItems,
+ InMenuOrExceptions,
+ eliminateExceptions,
+ CalculateFilteredPathsInMenu,
+};
diff --git a/src/components/omniSidebarNav/reporting.test.js b/src/components/omniSidebarNav/reporting.test.js
new file mode 100644
index 0000000000..a2f90768d9
--- /dev/null
+++ b/src/components/omniSidebarNav/reporting.test.js
@@ -0,0 +1,80 @@
+import { expect, test } from 'vitest';
+import omniItems from './testfixtures/omniItems.textfixture';
+import {
+ flattenOmniItems,
+ InMenuOrExceptions,
+ eliminateExceptions,
+ CalculateFilteredPathsInMenu,
+} from './reporting';
+import allPaths from './testfixtures/allPaths.testfixture';
+
+const exceptions = ['https://certification.pantheon.io/', '/404.html'];
+const RegExExceptions = [
+ // a regular expression that matches all paths that contain the '/contributors/' with the preceding and following slashes as well as more characters after the slash
+ /.*\/contributors\/.*/,
+];
+
+test('Check that the deep array/object of onmiItems can be flattened and contains no duplicates', () => {
+ const flattened = flattenOmniItems(omniItems);
+ // It just so happens that the testfixtures/omniItems.textfixture.js has 28 unique links.
+ expect(flattened.length).toEqual(28);
+});
+
+// Check that exceptions can be removed from the list of all paths
+test('Check that exceptions can be removed from the list of all paths', () => {
+ const filteredWrittenPaths = eliminateExceptions(
+ allPaths,
+ exceptions,
+ RegExExceptions,
+ );
+ expect(filteredWrittenPaths).not.toContain('/404.html');
+ expect(filteredWrittenPaths).not.toContain('/contributors/alexfornuto');
+ expect(filteredWrittenPaths).not.toContain('/contributors/');
+ expect(filteredWrittenPaths.length).toEqual(83);
+});
+
+// check that the percentage of unexceptioned paths not in the menu can be calculated
+test('Check that the percentage of unexceptioned paths not in the menu can be calculated', () => {
+ const filteredWrittenPaths = eliminateExceptions(
+ allPaths,
+ exceptions,
+ RegExExceptions,
+ );
+ const flattenedOmniItems = flattenOmniItems(omniItems);
+ const results = CalculateFilteredPathsInMenu(
+ filteredWrittenPaths,
+ flattenedOmniItems,
+ );
+
+ // 83 filtered paths - 28 paths in the menu + 1 path that is in the menu but exteral to the site
+ // 83 - 28 +1 = 56
+ expect(results.pathsNotInMenu.length).toEqual(56);
+ expect(results.pathsInMenu.length).toEqual(27);
+
+ expect(results.percentageInMenuRoundedUp).toEqual(33);
+});
+
+test('check that the exceptions to menu checking are processed correctly', () => {
+ const flattened = flattenOmniItems(omniItems);
+ // It just so happens that the testfixtures/omniItems.textfixture.js has 28 unique links.
+
+ // A random path that is not present. Especially when the the other args are empty.
+ expect(InMenuOrExceptions('/asdfasdfasdf')).toEqual(false);
+ expect(InMenuOrExceptions('/certification', flattened, exceptions)).toEqual(
+ true,
+ );
+ expect(InMenuOrExceptions('/certification', flattened, exceptions)).toEqual(
+ true,
+ );
+});
+
+test('Check that all items in the flattened menu list are present in the list of all written paths', () => {
+ const flattened = flattenOmniItems(omniItems);
+
+ // merge allWrittenPaths and exceptions
+ const allWrittenPathsAndExceptions = allPaths.concat(exceptions);
+ // Loop over flattened and check that each item is in allWrittenPaths
+ for (let item of flattened) {
+ expect(allWrittenPathsAndExceptions).toContain(item);
+ }
+});
diff --git a/src/components/omniSidebarNav/style.css b/src/components/omniSidebarNav/style.css
index 849c87ea97..f1cec7bd43 100644
--- a/src/components/omniSidebarNav/style.css
+++ b/src/components/omniSidebarNav/style.css
@@ -1,8 +1,7 @@
-
/* Default menu */
@media (min-width: 641px) {
- .sidenav-compact {
- padding-block-start: var(--pds-spacing-xl);
- padding-inline-end: var(--pds-spacing-xl);
- }
+ .sidenav-compact {
+ padding-block-start: var(--pds-spacing-xl);
+ padding-inline-end: var(--pds-spacing-xl);
+ }
}
diff --git a/src/components/omniSidebarNav/submenus/about.js b/src/components/omniSidebarNav/submenus/about.js
new file mode 100644
index 0000000000..ee30954591
--- /dev/null
+++ b/src/components/omniSidebarNav/submenus/about.js
@@ -0,0 +1,24 @@
+import { simpleLink } from './../helpers';
+
+const about = () => {
+ return {
+ link: '/contribute',
+ title: 'About our Docs',
+ children: [
+ simpleLink('/contribute', 'Contribute to the Docs'),
+
+ simpleLink('/pantheon-community', 'Pantheon Community', [
+ simpleLink('/code-of-conduct', 'Code of Conduct'),
+ simpleLink('/trainers', 'Trainers'),
+ ]),
+ simpleLink('/style-guide', 'Style Guide', [
+ // The glossary page doesn't show the sidebar nav. @todo Fix this.
+ simpleLink('/glossary/', 'Glossary'),
+ simpleLink('/inclusive-language', 'Inclusive Language'),
+ simpleLink('/doc-template', 'Template Docs Page'),
+ ]),
+ ],
+ };
+};
+
+export default about;
diff --git a/src/components/omniSidebarNav/submenus/accountManagement.js b/src/components/omniSidebarNav/submenus/accountManagement.js
new file mode 100644
index 0000000000..a1b7926fb6
--- /dev/null
+++ b/src/components/omniSidebarNav/submenus/accountManagement.js
@@ -0,0 +1,39 @@
+import { getGuideDirectory, simpleLink } from './../helpers';
+
+const accountManagement = () => {
+ return {
+ link: '/guides/account-mgmt',
+ title: 'Manage Accounts and Workspaces',
+ children: [
+
+ simpleLink('/guides/account-mgmt', 'Overview', [
+ getGuideDirectory('guides/account-mgmt/account'),
+ getGuideDirectory('guides/account-mgmt/billing'),
+ getGuideDirectory('guides/enterprise-billing-center'),
+ getGuideDirectory('guides/account-mgmt/plans'),
+ getGuideDirectory('guides/account-mgmt/traffic'),
+ // Consider relocating this next one as a Q in the Plans FAQ page:
+ simpleLink('/tax-exempt-status', 'Tax Exempt Status'),
+ // @todo, make a new page listing all
+ ]),
+ simpleLink('/guides/sso', 'Single Sign-On', [
+ getGuideDirectory('guides/sso'),
+ simpleLink('/ldap-and-ldaps', 'LDAP and LDAPS'),
+ getGuideDirectory('guides/wordpress-google-sso', 'WP SAML Auth'),
+ ]),
+ simpleLink(
+ '/guides/account-mgmt/workspace-sites-teams',
+ 'Portfolio Governance',
+ [
+ getGuideDirectory('guides/account-mgmt/workspace-sites-teams'),
+ getGuideDirectory('guides/custom-upstream'),
+ getGuideDirectory('guides/autopilot', 'Autopilot Guide'),
+ // Consider consolidating this next one with the one above
+ getGuideDirectory('guides/autopilot-custom-upstream'),
+ ],
+ ),
+ ],
+ };
+};
+
+export default accountManagement;
diff --git a/src/components/omniSidebarNav/submenus/certification.js b/src/components/omniSidebarNav/submenus/certification.js
index fa67e8a0f8..357f245094 100644
--- a/src/components/omniSidebarNav/submenus/certification.js
+++ b/src/components/omniSidebarNav/submenus/certification.js
@@ -1,70 +1,102 @@
+import { simpleLink, getGuideDirectory } from './../helpers';
+
/**
* Array of of links specific to the Certification section of the sidebar.
* @type {Array