Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

9083-automate-vitest-ci #9161

Closed
wants to merge 29 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
6469a01
Revert "Workflow Logs GA: Release note and doc updates (#9060)" (#9127)
rachelwhitton Jul 24, 2024
89cdfe2
Fix links to WAF/IO features (#9129)
rachelwhitton Jul 25, 2024
3c832d7
Update stale copy for CSM entitlement (#9132)
rachelwhitton Jul 25, 2024
ad981fe
Copy edits (#9131)
rachelwhitton Jul 25, 2024
4f8c9d2
Revert "Revert "Workflow Logs GA: Release note and doc updates"" (#9128)
rachelwhitton Jul 26, 2024
8c4d338
[SITE-1140] add release note for new release of wpcm (#9135)
jazzsequence Jul 29, 2024
d45ada8
[SITE-1224] add release note for mu-plugin v1.5.0 (#9137)
jazzsequence Jul 29, 2024
a06ab49
Audit Site Downtime Playbook (#9134)
rachelwhitton Jul 30, 2024
eadc300
Hotfix review date for pr #9134
rachelwhitton Jul 30, 2024
83c8413
Secure Integration: document loopback IP usage (#9090)
titomarifrancis-pantheon Jul 31, 2024
edba570
disambiguating environment logs (#9115)
stevector Jul 31, 2024
629aca2
Removing feeds call out (#9136)
stevector Jul 31, 2024
2c0879c
fix link (#9141)
rachelwhitton Jul 31, 2024
87a5557
add the available redis versions to the overview (#9143)
jazzsequence Aug 2, 2024
2db1e0b
Remove "known issue" about subdirectory multisite and WordPress (Comp…
jazzsequence Aug 2, 2024
35134b0
Fix 404 (#9152)
rachelwhitton Aug 6, 2024
8a9c752
[SITE-1585] add release note for wpcm 1.32.0 (#9147)
jazzsequence Aug 6, 2024
8379914
Update 04-incident-remediation.md (#9140)
joshualieb Aug 7, 2024
750835a
Update ssh-keys.md (#9151)
sekedus Aug 7, 2024
9adb90b
Release note and doc changes for new site plan experience (#9153)
rachelwhitton Aug 7, 2024
8749566
Update cloudflare.md (#9155)
conorbauer23 Aug 7, 2024
f14aece
New doc: Monthly Platform Maintenance (#9158)
rachelwhitton Aug 8, 2024
4ec1c9e
Feature/wecs 157 implement pagination for release notes 2 (#9044)
gfbollingerHakuna Aug 8, 2024
6e3c2fa
add release note for papc 2.1.0 (#9157)
jazzsequence Aug 8, 2024
1f5b31b
Update/clarify the WordPress Object Cache Pro documentation (#8822)
jkudish Aug 8, 2024
f4f09d3
remove extraneous composer repository config from example (#9159)
jazzsequence Aug 8, 2024
213eb4a
add new test workflow
jazzsequence Aug 8, 2024
dd31251
allow the test to be triggered manually
jazzsequence Aug 8, 2024
940bfd0
Merge branch 'main' into 9083-automate-vitest-ci
jazzsequence Aug 8, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 23 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
name: Test
on:
pull_request:
paths:
- 'src/**'
- '.github/workflows/test.yml'
types:
- opened
- synchronize
- reopened
- ready_for_review
workflow_dispatch:

jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 'latest'
- run: npm install
- run: npx vitest src/components
18 changes: 18 additions & 0 deletions gatsby-node.js
Original file line number Diff line number Diff line change
Expand Up @@ -413,6 +413,24 @@ exports.createPages = ({ graphql, actions }) => {
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)

Array.from({ length: releaseNotesNumPages }).forEach((_, i) => {
const path2 = `/release-notes/${i+1}/`;
createPage({
path: path2,
component: path.resolve("./src/templates/releaseNotesListing/index.js"),
context: {
limit: releaseNotesPostsPerPage,
skip: i * releaseNotesPostsPerPage,
numPages: releaseNotesNumPages,
i,
},
})
})

// terminusCommands.forEach(command => {
// const slugRegExp = /:/g
// const slug = command.name.replace(slugRegExp, "-")
Expand Down
6 changes: 3 additions & 3 deletions source/content/addons/object-cache/concepts/overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ title: Object Cache Overview
description: Learn about the benefits and requirements of Pantheon's Object Cache performance addon.
permalink: docs/object-cache
tags: [cache, plugins, modules, database]
reviewed: "2023-08-17"
reviewed: "2024-08-01"
contenttype: [doc]
innav: [true]
categories: [cache]
Expand All @@ -12,7 +12,7 @@ audience: [development]
product: [--]
integration: [--]
showtoc: true
contributors: [cityofoaksdesign, carolynshannon, jms-pantheon, whitneymeredith]
contributors: [cityofoaksdesign, carolynshannon, jms-pantheon, whitneymeredith, jazzsequence]
---
Pantheon's Object Cache performance addon service is an open-source, networked, in-memory, key-value data store based on Redis that can be used as a drop-in caching backend for your Drupal or WordPress website.

Expand All @@ -28,7 +28,7 @@ Object Cache provides an alternative caching backend that resides in memory rath

## Object Cache Requirements

All plans, except for the Basic plan, can use Object Cache. Sandbox site plans can enable and use Object Cache for development purposes, but if the site plan is upgraded to Basic the feature will be disabled. Object Cache Pro, the premium WordPress plugin, is not available for Sandbox sites, however you may enable Redis for Sandbox sites and use Pantheon's [wp-redis](https://github.com/pantheon-systems/wp-redis) plugin, or any other reputable Redis plugin for WordPress.
Pantheon supports two versions of Redis Object Cache, 2.8 and 6.2 (see [Which versions of Redis are available?](/object-cache/faq#which-versions-of-redis-are-available) and [Specify a Redis Version](/pantheon-yml#specify-a-redis-version) for more information). All plans, except for the Basic plan, can use Object Cache. Sandbox site plans can enable and use Object Cache for development purposes, but if the site plan is upgraded to Basic the feature will be disabled. Object Cache Pro, the premium WordPress plugin, is not available for Sandbox sites, however you may enable Redis for Sandbox sites and use Pantheon's [wp-redis](https://github.com/pantheon-systems/wp-redis) plugin, or any other reputable Redis plugin for WordPress.

| Plans | Object Cache Support <Popover content="Available across all environments, including Multidevs."/> |
| ------------- | -------------------------------------- |
Expand Down
21 changes: 5 additions & 16 deletions source/content/addons/object-cache/howto/wordpress.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,15 @@ title: Enable Object Cache Pro for WordPress
description: How to install and configure Object Cache Pro for WordPress.
permalink: docs/object-cache/wordpress
tags: [cache, plugins, modules, database]
reviewed: "2023-08-17"
reviewed: "2024-08-08"
contenttype: [doc]
innav: [true]
categories: [cache]
cms: [wordpress]
audience: [development]
product: [--]
integration: [--]
contributors: [jazzsequence]
contributors: [jazzsequence, jkudish]
showtoc: true
---

Expand Down Expand Up @@ -75,7 +75,7 @@ terminus redis:enable <site>

</Alert>

1. Once complete, activate the Object Cache Pro plugin from the WordPress Admin or via WP-CLI through Terminus.
1. Once complete, activate the Object Cache Pro plugin from the WordPress Admin or via WP-CLI through Terminus on your development or multidev environment. NOTE: This workflow cannot be run on test or live environments.

**WordPress Admin:**

Expand Down Expand Up @@ -152,25 +152,13 @@ Refer to the [official Object Cache Pro documentation](https://objectcache.pro/d
git add auth.json && git commit -m "Add Object Cache Pro auth token."
```

1. Add the Object Cache Pro repository to your `composer.json` file's `repositories` section. Your final `repositories` section should look something like this:
1. Add the Object Cache Pro repository to your `composer.json` file's `repositories` section.

```json
repositories: [
{
"type": "composer",
"url": "https://objectcache.pro/repo/"
},
{
"type": "composer",
"url": "https://wpackagist.org",
"only": [
"wpackagist-plugin/*",
"wpackagist-theme/*"
]
},
{
"type": "path",
"url": "upstream-configuration"
}
],
```
Expand Down Expand Up @@ -315,6 +303,7 @@ Refer to the [official Object Cache Pro documentation](https://objectcache.pro/d
1. Merge code
1. Activate OCP
1. Flush Redis cache
- The `object-cache.php` drop-in file must be created in your development or multidev environment and committed or pushed to live to work.
- When installed as a `mu-plugin` on a WordPress Multisite, Object Cache Pro handles each subsite separately. The dashboard widget applies to the current site and none of the other sites on the network.
- Flushing the network cache from the network admin will flush all caches across the network.
- Subsites do not get their own configuration or graphs.
Expand Down
34 changes: 12 additions & 22 deletions source/content/certification/exam.md
Original file line number Diff line number Diff line change
Expand Up @@ -293,21 +293,13 @@ The following directions and instructions were captured by a user on a MacOS dev
## Exam FAQs
Here are some frequently asked questions about Pantheon's WebOps Certification Program.

<Accordion title="Where Can I Find Materials to Study for the Pantheon WebOps Certification Exam?" id="study-guide" icon="wrench">

### Where Can I Find Materials to Study for the Pantheon WebOps Certification Exam?
In addition to [this guide within our documentation](/certification/study-guide) you can download a [PDF version that contains hands-on activities and review questions.](https://certification.pantheon.io/sites/default/files/2023-11/webopscert_final_v1_1.pdf).

</Accordion>

<Accordion title="What are the directions for launching my exam?" id="directions" icon="wrench">

You can find the directions for launching the exam here: [Exam Instructions](/certification/exam-instructions)

</Accordion>

<Accordion title="How do I use the ProctorFree virtual proctoring service for my exam?" id="ProctorFree" icon="wrench">

### What are the directions for launching my exam?
You can find the directions for launching the exam here: [Exam Instructions](/certification/exam#exam-instructions)

### How do I use the ProctorFree virtual proctoring service for my exam?
Pantheon’s Certification Program utilizes [ProctorFree](https://www.proctorfree.com/), a software-only identity verification and exam recording solution. The following document describes the requirements for successfully enabling ProctorFree when taking a Pantheon Certification exam.

Before you get started, please note the following:
Expand Down Expand Up @@ -340,13 +332,11 @@ If you are using a Linux machine, you will need to indicate this on the form whe

Remote exam sessions must be completed on a laptop or desktop computer that meets the minimum technical requirements.

</Accordion>

<Accordion title="Do I need a camera?" id="camera" icon="wrench">
### Do I need a camera?
In order to take the exam with our automated proctoring service, you will need a working web camera to record your test taking session. Please reach out to us if you have any questions about this.
</Accordion>

<Accordion title="What are the technical requirements for taking a Pantheon Certification?" id="technical-requirements" icon="wrench">

### What are the technical requirements for taking a Pantheon Certification?

In order to maintain compatibility with our online proctoring service, we require that exam takers use machines that adhere to the following minimum technical specifications:

Expand All @@ -362,20 +352,20 @@ In order to maintain compatibility with our online proctoring service, we requir

**Web Camera & Microphone:** An external or internal web camera and microphone are required. Camera and microphone drivers must have been updated or released within the last 5 years. 3D Webcams are not supported at this time.

</Accordion>

<Accordion title="How do I register for an exam?" id="register" icon="wrench">

### How do I register for an exam?

You can register for the [Pantheon WebOps Certification Exam with the form on this page](https://pantheon.io/certification). The form will ask for your name, email address, organization (if applicable), and some technical information about the computer you will be using to take the exam. This is to help us ensure that your computer is technically compatible with our exam engine and proctoring service. You will then choose a date to take the exam.

</Accordion>


<Accordion title="How do I get certificate and a badge?" id="badge" icon="wrench">

### How do I get certificate and a badge?

When you have finished taking the exam, you will see a message on the screen indicating whether you have passed or not. Once you have passed the exam, we will go through the process of validating the results. This validation can take up to 48 hours, at which point you will receive an email with a link to your badge and certification. We will also display your name, certification date, and a link to your badge and digital certificate on our [Certification Registry site](https://certification.pantheon.io/).

</Accordion>



## More Resources
Expand Down
2 changes: 1 addition & 1 deletion source/content/certification/study-guide-cms/00-intro.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: WebOps Certification
subtitle: Introduction
subtitle: Study Guide Introduction
certificationpage: true
type: certificationpage
layout: certificationpage
Expand Down
24 changes: 14 additions & 10 deletions source/content/dns-providers/cloudflare.md
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,20 @@ You can configure Cloudflare's CDN as an additional layer on Pantheon's Global C

![Example DNS only](../../images/cloudflare-full.png)

#### Restrict Content Based on Geographic Location

If you're using Cloudflare's IP Geolocation feature, you will need to read the `CF-IPCountry` header and set `Vary: CF-IPCountry` on all responses.

#### Access to the /.well-known Path Is Needed

If you're using Cloudflare's services to control or block traffic, an exception must be made for the `/.well-known` path in Cloudflare's config. If the `/.well-known` path is not accessible, Lets Encrypt may not be able to issue a certificate.

#### Cache Invalidation Best Practices

Cloudflare allows you to turn on caching. However, no cache invalidation hook is fired when you make content changes if you have Cloudflare caching turned on. This means that Cloudflare will be unaware of your changes and persist with stale cache.

We recommend that you turn off Cloudflare caching until the `pantheon_advanced_page_cache` module/plugin is extended to send API calls to Cloudflare.

## CAA Records (Optional)

A **CAA Record** specifies which certificate authority (**CA**) can issue HTTPS certificates for a domain.
Expand Down Expand Up @@ -140,16 +154,6 @@ A **CAA Record** specifies which certificate authority (**CA**) can issue HTTPS

1. Repeat this process for the `www` subdomain.

## Restrict Content Based on Geographic Location

If you're using Cloudflare's IP Geolocation feature, you will need to read the `CF-IPCountry` header and set `Vary: CF-IPCountry` on all responses.

## Cache Invalidation Best Practices

Cloudflare allows you to turn on caching. However, no cache invalidation hook is fired when you make content changes if you have Cloudflare caching turned on. This means that Cloudflare will be unaware of your changes and persist with stale cache.

We recommend that you turn off Cloudflare caching until the `pantheon_advanced_page_cache` module/plugin is extended to send API calls to Cloudflare.

## Next Steps

- [Launch Essentials: Domains & HTTPS](/guides/launch/domains)
Expand Down
27 changes: 17 additions & 10 deletions source/content/guides/account-mgmt/plans/07-site-plans.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ contributors: [wordsmither]
showtoc: true
permalink: docs/guides/account-mgmt/plans/site-plans
editpath: docs/guides/account-mgmt/plans/07-site-plans.md
reviewed: "2022-09-19"
reviewed: "2024-08-07"
contenttype: [guide]
innav: [false]
categories: [plans]
Expand Down Expand Up @@ -93,23 +93,30 @@ Pantheon offers savings for sites purchased with annual billing. Refer to [Panth

</Alert>

1. [Go to the Site Dashboard](/guides/account-mgmt/workspace-sites-teams/sites#site-dashboard).
Please note that only Site owners can update plans. There are several places within the Pantheon Dashboard you can upgrade your site plan:

1. For Sandbox sites, click **Upgrade** next to the site's name. Otherwise, click the current plan tag next to the site's name.
1. [Go to the Site Dashboard](/guides/account-mgmt/workspace-sites-teams/sites#site-dashboard), and click **Upgrade** next to the site's name.
2. Within your personal workspace, navigate to Settings>Subscriptions. Click the 'Actions' dropdown and choose, **Change Site Plan**
3. If you are in a workspace, you can navigate to **Settings** > **Billing**. Scroll to see **Supported Sites** table. Within that table, if you are the site owner, you'll be able to click the **Site Plan** column to upgrade or downgrade your site.


From the site upgrade and downgrade page, complete the following steps:

1. Click the **Select** button under the [plan you choose](https://pantheon.io/plans/pricing/). Select the billing frequency: [**Pay Annually**](/guides/account-mgmt/plans/pricing) or **Pay Monthly** at the top of the page.

1. Click **Select** for the plan you wish to purchase.
- If you've chosen a **Performance Plan**, choose the size and click **Choose Performance**.

1. Enter your billing information. Site ownership is designated to the user account entering billing information.
- If you've chosen a **Basic Plan**, click **Continue**.

1. Make sure the **Plan** details are correct.
- If you've chosen **Custom**, please fill out the contact field to be contacted by a customer support agent.

1. Verify the card shown in **Billing** details.
2. Click **+ Add New Card** and enter the credit card information, then click **Add Card** to save the card information. If you already have a card saved, it should be available in this section.

1. Click the **Submit** button.
3. Click **Continue** and review your information carefully, then click **Place Your Order** to confirm your purchase.

The Site Owner will receive an email confirmation of this change, a new invoice will be issued, and a prorated amount for the current billing cycle will be credited or charged to the associated card automatically.
- [Contact Support](/guides/support/contact-support) if you need any help.

Invoices and transaction history related to this change can be found in **<Icon icon="gear" /> Account** > **Billing**.
As the site owner, you’ll receive an email confirming the change to the site. You’ll receive an updated invoice after the site billing is processed.

## Enable Add-ons

Expand Down
8 changes: 4 additions & 4 deletions source/content/guides/agcdn/01-introduction.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ AGCDN provides many features:

| Feature | AGCDN |
| ------------- | -------------------------------------- |
| [OSI Layer 3 and 4 DDoS Protection & Mitigation](/guides/agcdn/agcdn-features#osi-layer-3-and-4-ddos-protection-&-mitigation) | <span style="color:green">✔</span> |
| [OSI Layer 3 and 4 DDoS Protection & Mitigation](/guides/agcdn/agcdn-features#osi-layer-3-and-4-ddos-protection--mitigation) | <span style="color:green">✔</span> |
| [SOC 2 Type 2 Compliance](/guides/agcdn/agcdn-features#soc-2-type-2-compliance) | <span style="color:green">✔</span> |
| [IP Allowlisting and Blocklisting](/guides/agcdn/agcdn-features#ip-allowlisting-and-blocklisting) | <span style="color:green">✔</span> |
| [Token Authentication with JSON Web Token](/guides/agcdn/agcdn-features#token-authentication-with-json-web-token) | <span style="color:green">✔</span> |
Expand All @@ -66,10 +66,10 @@ AGCDN with WAF/IO includes everything in the table above with the following addi

| Feature | AGCDN with WAF and IO |
| ------------- | ------------------------- |
| [Layer 7 and Enterprise WAF rules](/guides/agcdn/agcdn-features#layer-7-and-enterprise-waf-rules)| <span style="color:green">✔</span> |
| [Efficient Image Optimization at the Edge](/guides/agcdn/agcdn-features#efficient-image-optimization-at-the-edge) | <span style="color:green">✔</span> |
| [Layer 7 and Enterprise WAF rules](/guides/agcdn/agcdn-wafio#owasp-layer-7-and-enterprise-waf-rules)| <span style="color:green">✔</span> |
| [Efficient Image Optimization at the Edge](/guides/agcdn/agcdn-wafio#efficient-image-optimization-at-the-edge) | <span style="color:green">✔</span> |
| [Rate Limiting](/guides/agcdn/agcdn-wafio#rate-limiting) | <span style="color:green">✔</span> |
| [Advanced Bot Detection and Mitigation](/guides/agcdn/agcdn-features#advanced-bot-detection-and-mitigation-available-as-an-add-on) <Popover content="Not all plugins are supported." /> | <span style="color:green">✔</span> |
| [Advanced Bot Detection and Mitigation](/guides/agcdn/agcdn-wafio#advanced-bot-detection-and-mitigation) <Popover content="Not all plugins are supported." /> | <span style="color:green">✔</span> |

## Is AGCDN Right For Me?

Expand Down
4 changes: 2 additions & 2 deletions source/content/guides/disaster-recovery/01-introduction.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ subtitle: Introduction
description: Address emergency downtime situations on the Pantheon platform
tags: [webops]
contributors: [joshlieb, joan-ing]
reviewed: "2021-07-26"
reviewed: "2024-07-30"
type: guide
permalink: docs/guides/disaster-recovery
editpath: disaster-recovery/01-introduction.md
Expand All @@ -17,6 +17,6 @@ product: [--]
integration: [--]
---

This guide is focused on the immediate actions a Pantheon customer should take in the event of a catastrophic site failure. In all cases, the first step should be to file an emergency downtime on-call ticket. Filing a ticket will immediately escalate the incident and ensure the fastest and most effective service.
This guide is focused on the immediate actions a Pantheon customer should take in the event of a catastrophic site failure. In all cases, the first step should be to file an emergency downtime on-call ticket, regular ticket, or open a support chat depending on support tier. Filing an emergency Pantheon On-Call ticket will immediately escalate the incident and ensure the fastest and most effective service.

This guide does not cover all potential post-disaster recovery processes. Such processes will depend on the nature of the incident and the impact that it has on your site. You must engage with Pantheon support during the incident, and the support team will help determine what remediation steps are required.
Loading
Loading