diff --git a/bin/generate-descriptions.ts b/bin/generate-descriptions.ts new file mode 100644 index 000000000000000..f1b1220af15040b --- /dev/null +++ b/bin/generate-descriptions.ts @@ -0,0 +1,319 @@ +#!/usr/bin/env tsx + +/** + * This script generates descriptions for MDX files in the docs directory + * that don't have a description field in their frontmatter. + * + * It uses the rendered markdown from the distmd directory to generate descriptions + * by sending the content to a localhost:8787 application. + * + * To run, you'll need to do the following: + * 1. Get your local build setup: + * 1. Run `npm run build` to build the local docs. + * 2. Run `npx tsx bin/generate-index-md.ts` to generate the index.md files (saves on tokens) + avoids extra HTML. + * 2. Have a local Worker running on `localhost:8787` with the following code (also requires adding a binding in the Wrangler config file): + * + * ``` + * export interface Env { + * AI: Ai; + * } + + * export default { + * async fetch(request, env): Promise { + * const response = await env.AI.run("@cf/facebook/bart-large-cnn", { + * input_text: await request.text(), + * max_length: 120 + * }); + * return Response.json(response.summary); + * }, + * } satisfies ExportedHandler; + * ``` + * 3. Run `npx tsx bin/generate-descriptions.ts --pcx-content-type $TYPE` to generate the descriptions. + * + */ + +import fs from "fs/promises"; +import path from "path"; +import globby from "fast-glob"; +import matter from "gray-matter"; + +const DOCS_DIR = path.join(process.cwd(), "src/content/docs"); +const DISTMD_DIR = path.join(process.cwd(), "distmd"); + +// Localhost application URL +const LOCALHOST_URL = "http://localhost:8787"; + +/** + * Sends text content to localhost application and receives description back + */ +async function generateDescriptionFromAPI( + content: string, +): Promise { + try { + const response = await fetch(LOCALHOST_URL, { + method: "POST", + headers: { + "Content-Type": "text/plain", + }, + body: content, + }); + + if (!response.ok) { + throw new Error(`HTTP error! status: ${response.status}`); + } + + const description = await response.text(); + // Remove surrounding quotes and all square brackets + let trimmed = description.trim(); + + // Remove surrounding quotes + if ( + (trimmed.startsWith('"') && trimmed.endsWith('"')) || + (trimmed.startsWith("'") && trimmed.endsWith("'")) + ) { + trimmed = trimmed.slice(1, -1); + } + + // Remove all square brackets from the text + trimmed = trimmed.replace(/\[|\]/g, ''); + + return trimmed.trim(); + } catch (error) { + console.error("Error calling localhost API:", error); + return undefined; + } +} + +/** + * Gets the rendered markdown path for a docs file + */ +function getRenderedPath(docPath: string): string { + // Convert /src/content/docs/product/path/file.mdx to /distmd/product/path/file/index.md + const relativePath = path.relative(DOCS_DIR, docPath); + const pathWithoutExt = relativePath.replace(/\.mdx$/, ""); + const filename = path.basename(pathWithoutExt); + const dirPath = path.dirname(pathWithoutExt); + return path.join(DISTMD_DIR, dirPath, filename, "index.md"); +} + +/** + * Updates the frontmatter of an MDX file with a description + * Ensures that only the description field is modified and all other fields remain unchanged + * @returns boolean indicating whether the file was updated (true) or skipped (false) + */ +async function updateFrontmatter( + filePath: string, + description: string, +): Promise { + // Read the original file content to preserve exact formatting + const originalContent = await fs.readFile(filePath, "utf-8"); + + // Parse the frontmatter + const { data: frontmatter } = matter(originalContent); + + // Check if the description already exists and is the same + if (frontmatter.description === description) { + console.log( + `⏭️ Skipped ${path.relative(process.cwd(), filePath)} (description unchanged)`, + ); + return false; + } + + // Instead of using matter.stringify which might change date formats, + // we'll manually update just the description field in the original content + + // Extract the frontmatter section (between the first two --- markers) + const frontmatterMatch = originalContent.match(/^---\r?\n([\s\S]*?)\r?\n---/); + if (!frontmatterMatch) { + console.error(`Could not extract frontmatter from ${filePath}`); + return false; + } + + const originalFrontmatter = frontmatterMatch[1]; + + // Check if description already exists in the frontmatter + const descriptionRegex = /^description:.*$(\r?\n(?: .*$)*)/m; + let newFrontmatter: string; + + if (descriptionRegex.test(originalFrontmatter)) { + // Replace existing description + newFrontmatter = originalFrontmatter.replace( + descriptionRegex, + `description: >-\n ${description.replace(/\n/g, "\n ")}`, + ); + } else { + // Add description at the end of frontmatter + newFrontmatter = `${originalFrontmatter.trim()}\ndescription: >-\n ${description.replace(/\n/g, "\n ")}`; + } + + // Replace the frontmatter in the original content + const updatedContent = originalContent.replace( + /^---\r?\n[\s\S]*?\r?\n---/, + `---\n${newFrontmatter}\n---`, + ); + + // Write updated content back to file + await fs.writeFile(filePath, updatedContent, "utf-8"); + + console.log(`✅ Updated ${path.relative(process.cwd(), filePath)}`); + + return true; +} + +/** + * Parse command line arguments + */ +function parseArgs() { + const args = process.argv.slice(2); + let pcxContentType: string | undefined; + let showHelp = false; + + for (let i = 0; i < args.length; i++) { + if (args[i] === "--pcx-content-type" && i + 1 < args.length) { + pcxContentType = args[i + 1]; + i++; // Skip the next argument as it's the value + } else if (args[i] === "--help" || args[i] === "-h") { + showHelp = true; + } + } + + return { pcxContentType, showHelp }; +} + +/** + * Main function + */ +function showUsage() { + console.log(` +Usage: npx tsx bin/generate-descriptions.ts [options] + +Options: + --pcx-content-type Filter MDX files by pcx_content_type (e.g., overview, tutorial, navigation) + --help, -h Show this help message +`); +} + +async function main() { + // Parse command line arguments + const { pcxContentType, showHelp } = parseArgs(); + + if (showHelp) { + showUsage(); + return; + } + + if (pcxContentType) { + console.log(`Filtering by pcx_content_type: ${pcxContentType}`); + } + try { + // Find all MDX files in the docs directory + const mdxFiles = await globby("**/*.mdx", { + cwd: DOCS_DIR, + absolute: true, + }); + console.log(`Found ${mdxFiles.length} MDX files in the docs directory`); + + // Filter files by pcx_content_type if specified + let filteredMdxFiles = mdxFiles; + if (pcxContentType) { + filteredMdxFiles = []; + for (const mdxFile of mdxFiles) { + try { + const content = await fs.readFile(mdxFile, "utf-8"); + const { data: frontmatter } = matter(content); + if (frontmatter.pcx_content_type === pcxContentType) { + filteredMdxFiles.push(mdxFile); + } + } catch (error) { + console.error(`Error reading ${mdxFile}:`, error); + } + } + console.log( + `Filtered to ${filteredMdxFiles.length} MDX files with pcx_content_type: ${pcxContentType}`, + ); + } + + let updatedCount = 0; + let skippedExistingCount = 0; + let skippedUnchangedCount = 0; + let errorCount = 0; + + for (const mdxFile of filteredMdxFiles) { + try { + // Parse frontmatter + const content = await fs.readFile(mdxFile, "utf-8"); + const { data: frontmatter } = matter(content); + + // Skip if description already exists + if (frontmatter.description) { + skippedExistingCount++; + continue; + } + + // Get the rendered markdown path + const renderedPath = getRenderedPath(mdxFile); + + // Check if rendered markdown exists + try { + await fs.access(renderedPath); + } catch (error) { + console.log(error); + console.warn( + `⚠️ Rendered markdown not found for ${path.relative(process.cwd(), mdxFile)}`, + ); + errorCount++; + continue; + } + + // Read rendered markdown content + const markdownContent = await fs.readFile(renderedPath, "utf-8"); + + if (!markdownContent.trim()) { + console.warn( + `⚠️ Empty markdown content found for ${path.relative(process.cwd(), mdxFile)}`, + ); + errorCount++; + continue; + } + + // Generate description using localhost API + const description = await generateDescriptionFromAPI(markdownContent); + + // Skip if no description could be generated + if (!description) { + console.warn( + `⚠️ Could not generate description for ${path.relative(process.cwd(), mdxFile)}`, + ); + errorCount++; + continue; + } + + // Update frontmatter + const wasUpdated = await updateFrontmatter(mdxFile, description); + if (wasUpdated) { + updatedCount++; + } else { + skippedUnchangedCount++; + } + } catch (error) { + console.error( + `❌ Error processing ${path.relative(process.cwd(), mdxFile)}:`, + error, + ); + errorCount++; + } + } + + console.log("\n--- Summary ---"); + console.log(`Total MDX files: ${mdxFiles.length}`); + console.log(`Updated: ${updatedCount}`); + console.log(`Skipped (already had description): ${skippedExistingCount}`); + console.log(`Skipped (description unchanged): ${skippedUnchangedCount}`); + console.log(`Errors: ${errorCount}`); + } catch (error) { + console.error("Error:", error); + process.exit(1); + } +} + +main(); diff --git a/package-lock.json b/package-lock.json index 0c7c072cb6a2912..9b16535346fb9d2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -57,6 +57,7 @@ "fast-xml-parser": "5.2.5", "github-slugger": "2.0.0", "globals": "16.4.0", + "gray-matter": "4.0.3", "hast-util-heading-rank": "3.0.0", "hast-util-select": "6.0.4", "hastscript": "9.0.1", @@ -10140,6 +10141,19 @@ "node": ">=0.4.0" } }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/esquery": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", @@ -10341,6 +10355,18 @@ "dev": true, "license": "MIT" }, + "node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/extract-zip": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", @@ -11042,6 +11068,43 @@ "dev": true, "license": "MIT" }, + "node_modules/gray-matter": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.3.tgz", + "integrity": "sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==", + "dev": true, + "dependencies": { + "js-yaml": "^3.13.1", + "kind-of": "^6.0.2", + "section-matter": "^1.0.0", + "strip-bom-string": "^1.0.0" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/gray-matter/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/gray-matter/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, "node_modules/h3": { "version": "1.15.4", "resolved": "https://registry.npmjs.org/h3/-/h3-1.15.4.tgz", @@ -12135,6 +12198,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", @@ -12682,6 +12754,15 @@ "integrity": "sha512-Ls993zuzfayK269Svk9hzpeGUKob/sIgZzyHYdjQoAdQetRKpOLj+k/QQQ/6Qi0Yz65mlROrfd+Ev+1+7dz9Kw==", "dev": true }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/klaw-sync": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/klaw-sync/-/klaw-sync-6.0.0.tgz", @@ -17644,6 +17725,19 @@ "dev": true, "license": "MIT" }, + "node_modules/section-matter": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz", + "integrity": "sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==", + "dev": true, + "dependencies": { + "extend-shallow": "^2.0.1", + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/semver": { "version": "7.7.2", "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", @@ -17986,6 +18080,12 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, "node_modules/stackback": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", @@ -18261,6 +18361,15 @@ "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, + "node_modules/strip-bom-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz", + "integrity": "sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", diff --git a/package.json b/package.json index c1a65ce271ae6d4..2475903fc3af233 100644 --- a/package.json +++ b/package.json @@ -16,6 +16,7 @@ "format:core:fix": "npm run format:core -- --write", "format:content": "npx prettier --write \"**/*.{md,mdx,astro}\"", "format:data": "npx prettier --write \"**/*.{json,yaml,yml}\"", + "generate-descriptions": "npx tsx bin/generate-descriptions.ts", "postinstall": "npx patch-package && npm run sync", "preview": "npx astro preview", "script:optimize-svgs": "npx tsx scripts/optimize-svgs.ts", @@ -75,6 +76,7 @@ "fast-xml-parser": "5.2.5", "github-slugger": "2.0.0", "globals": "16.4.0", + "gray-matter": "4.0.3", "hast-util-heading-rank": "3.0.0", "hast-util-select": "6.0.4", "hastscript": "9.0.1", diff --git a/src/content/docs/1.1.1.1/additional-options/dns-in-google-sheets.mdx b/src/content/docs/1.1.1.1/additional-options/dns-in-google-sheets.mdx index c18ce4eb8a21f9b..58057bfe3db7be9 100644 --- a/src/content/docs/1.1.1.1/additional-options/dns-in-google-sheets.mdx +++ b/src/content/docs/1.1.1.1/additional-options/dns-in-google-sheets.mdx @@ -2,7 +2,8 @@ pcx_content_type: tutorial title: DNS in Google Sheets slug: 1.1.1.1/additional-options/dns-in-google-sheets - +description: >- + Cloudflare 1.1.1 works directly inside Google Sheets. To get started, create a Google Function with the following code. --- import { Details } from "~/components" diff --git a/src/content/docs/1.1.1.1/additional-options/dns-over-discord.mdx b/src/content/docs/1.1.1.1/additional-options/dns-over-discord.mdx index b1cc09c9170cd69..7dfcee19cc08a1f 100644 --- a/src/content/docs/1.1.1.1/additional-options/dns-over-discord.mdx +++ b/src/content/docs/1.1.1.1/additional-options/dns-over-discord.mdx @@ -2,7 +2,8 @@ pcx_content_type: tutorial title: DNS over Discord slug: 1.1.1.1/additional-options/dns-over-discord - +description: >- + 1.1. 1.1 works from a Discord server. Invite the bot to your Discord server to start using DNS over Discord. Or, add it to your account to use it anywhere in Discord. --- import { Details } from "~/components" diff --git a/src/content/docs/1.1.1.1/additional-options/dns-over-tor.mdx b/src/content/docs/1.1.1.1/additional-options/dns-over-tor.mdx index 66e13e1e70d4cb1..74dae0409f135ff 100644 --- a/src/content/docs/1.1.1.1/additional-options/dns-over-tor.mdx +++ b/src/content/docs/1.1.1.1/additional-options/dns-over-tor.mdx @@ -2,6 +2,8 @@ pcx_content_type: tutorial title: DNS over Tor slug: 1.1.1.1/additional-options/dns-over-tor +description: >- + If you do not want to disclose your IP address to the resolver, you can use our Tor onion service. Resolving DNS queries through the Tor network guarantees a significantly higher level of anonymity. The hidden resolver is set up to listen on TCP ports 53 and 8 for HTTPS. --- :::caution diff --git a/src/content/docs/ai-gateway/integrations/aig-workers-ai-binding.mdx b/src/content/docs/ai-gateway/integrations/aig-workers-ai-binding.mdx index 52c27a68d0dd67c..987177cef75544f 100644 --- a/src/content/docs/ai-gateway/integrations/aig-workers-ai-binding.mdx +++ b/src/content/docs/ai-gateway/integrations/aig-workers-ai-binding.mdx @@ -2,6 +2,8 @@ title: Workers AI pcx_content_type: tutorial reviewed: 2024-10-17 +description: >- + This guide will walk you through setting up and deploying a Workers AI project. You will use Workers, an AI Gateway binding, and a large language model (LLM) to deploy your first AI-powered application on the Cloudflare global network. --- import { Render, PackageManagers, WranglerConfig } from "~/components"; diff --git a/src/content/docs/ai-gateway/integrations/worker-binding-methods.mdx b/src/content/docs/ai-gateway/integrations/worker-binding-methods.mdx index e30273e1a587647..353289b7fd368bd 100644 --- a/src/content/docs/ai-gateway/integrations/worker-binding-methods.mdx +++ b/src/content/docs/ai-gateway/integrations/worker-binding-methods.mdx @@ -4,6 +4,8 @@ pcx_content_type: tutorial tags: - Bindings reviewed: 2025-04-01 +description: >- + This guide provides an overview of how to use the latest Cloudflare Workers AI Gateway binding methods. You will learn how to set up an AI. Gateway binding, access new methods, and integrate them into your Workers. --- import { Render, PackageManagers } from "~/components"; diff --git a/src/content/docs/ai-gateway/tutorials/create-first-aig-workers.mdx b/src/content/docs/ai-gateway/tutorials/create-first-aig-workers.mdx index c2dc405e003874a..5bf36fd634988a1 100644 --- a/src/content/docs/ai-gateway/tutorials/create-first-aig-workers.mdx +++ b/src/content/docs/ai-gateway/tutorials/create-first-aig-workers.mdx @@ -3,6 +3,8 @@ pcx_content_type: tutorial difficulty: Beginner reviewed: 2024-08-01 title: Create your first AI Gateway using Workers AI +description: >- + This tutorial guides you through creating your first AI Gateway using Workers AI on the Cloudflare dashboard. The intended audience is beginners who are new to AI Gateway and Workers AI. An AI Gateway enables the user to efficiently manage and secure AI requests. --- import { Render } from "~/components"; diff --git a/src/content/docs/analytics/analytics-integrations/datadog.mdx b/src/content/docs/analytics/analytics-integrations/datadog.mdx index 20bae3cb6223263..140b48c4063de8a 100644 --- a/src/content/docs/analytics/analytics-integrations/datadog.mdx +++ b/src/content/docs/analytics/analytics-integrations/datadog.mdx @@ -3,6 +3,8 @@ pcx_content_type: tutorial title: Datadog sidebar: order: 98 +description: >- + This tutorial explains how to analyze Cloudflare metrics using the [Cloudflare Integration tile for Datadog] --- This tutorial explains how to analyze Cloudflare metrics using the [Cloudflare Integration tile for Datadog](https://docs.datadoghq.com/integrations/cloudflare/). diff --git a/src/content/docs/analytics/analytics-integrations/graylog.mdx b/src/content/docs/analytics/analytics-integrations/graylog.mdx index 2084eb72da51cf9..3f5c9e89eeab086 100644 --- a/src/content/docs/analytics/analytics-integrations/graylog.mdx +++ b/src/content/docs/analytics/analytics-integrations/graylog.mdx @@ -3,7 +3,8 @@ pcx_content_type: tutorial title: Graylog sidebar: order: 102 - +description: >- + This tutorial explains how to analyze [Cloudflare Logs] using Graylog. The Graylog integration is available on GitHub. --- This tutorial explains how to analyze [Cloudflare Logs](https://www.cloudflare.com/products/cloudflare-logs/) using [Graylog](https://github.com/Graylog2/graylog-s3-lambda/blob/master/content-packs/cloudflare/cloudflare-logpush-content-pack.json). diff --git a/src/content/docs/analytics/analytics-integrations/new-relic.mdx b/src/content/docs/analytics/analytics-integrations/new-relic.mdx index 5f27dc48e6b1d5e..5398bf9e1402e0c 100644 --- a/src/content/docs/analytics/analytics-integrations/new-relic.mdx +++ b/src/content/docs/analytics/analytics-integrations/new-relic.mdx @@ -3,6 +3,8 @@ pcx_content_type: tutorial title: New Relic sidebar: order: 103 +description: >- + This tutorial explains how to analyze Cloudflare metrics using the New Relic One Cloudflar Quickstart. --- This tutorial explains how to analyze Cloudflare metrics using the [New Relic One Cloudflare Quickstart](https://newrelic.com/instant-observability/cloudflare/fc2bb0ac-6622-43c6-8c1f-6a4c26ab5434). diff --git a/src/content/docs/analytics/analytics-integrations/splunk.mdx b/src/content/docs/analytics/analytics-integrations/splunk.mdx index f99566e78665645..58e581f759a2024 100644 --- a/src/content/docs/analytics/analytics-integrations/splunk.mdx +++ b/src/content/docs/analytics/analytics-integrations/splunk.mdx @@ -3,6 +3,8 @@ pcx_content_type: tutorial title: Splunk sidebar: order: 104 +description: >- + This tutorial explains how to analyze Cloudflare Logs using the Cloudflare App for Splunk. --- import { Render } from "~/components"; @@ -30,20 +32,17 @@ To install the [Cloudflare App for Splunk](https://splunkbase.splunk.com/app/450 4. Restart and reopen your Splunk instance. 5. Edit the `cloudflare:json` source type in the Cloudflare App for Splunk. To edit the source type: - 1. Click the **Settings** dropdown and select **Source types**. 2. Uncheck **Show only popular** and search for _cloudflare_. 3. Click **Edit** and change the Regex expression to `([\r\n]+)`. 4. Save your edits. 6. Create an index on Splunk to store the HTTP Event logs. To create an index: - 1. Open the setup screen by clicking the **Settings** dropdown, then click **Indexes**. 2. Select **New Index**. Note that the **Indexes** page also gives you the status of all your existing indexes so that you can see whether you're about to use up your licensed amount of space. 3. Name the index **cloudflare**, which is the default index that the Cloudflare App will use. 7. Set up the HTTP Event Collector (HEC) on Splunk. To create an HEC: - 1. Click the **Settings** dropdown and select **Data inputs**. 2. Click **+Add new** and follow the wizard. When prompted, submit the following responses: - Name: Cloudflare diff --git a/src/content/docs/automatic-platform-optimization/get-started/activate-cf-wp-plugin.mdx b/src/content/docs/automatic-platform-optimization/get-started/activate-cf-wp-plugin.mdx index 0606e32f3fc383e..d38016310889899 100644 --- a/src/content/docs/automatic-platform-optimization/get-started/activate-cf-wp-plugin.mdx +++ b/src/content/docs/automatic-platform-optimization/get-started/activate-cf-wp-plugin.mdx @@ -3,7 +3,8 @@ title: Activate the Cloudflare WordPress plugin pcx_content_type: tutorial sidebar: order: 8 - +description: >- + The easiest way to begin using APO is directly from Cloudflare’s WordPress plugin. Before you can use APO, you must first install and activate the plugin and then activate APO. To create the connection between WordPress and Cloud flare, you will create an API token. --- import { DashButton } from "~/components"; diff --git a/src/content/docs/automatic-platform-optimization/get-started/verify-apo-works.mdx b/src/content/docs/automatic-platform-optimization/get-started/verify-apo-works.mdx index e8a21bfed99b1b8..43127d5a3453dc5 100644 --- a/src/content/docs/automatic-platform-optimization/get-started/verify-apo-works.mdx +++ b/src/content/docs/automatic-platform-optimization/get-started/verify-apo-works.mdx @@ -3,7 +3,8 @@ title: Verify APO works pcx_content_type: tutorial sidebar: order: 9 - +description: >- + When APO is working, three headers are present: CF-Cache-Status, cf-apo-via,cf-edge-cache. APO works correctly when the headers exactly match the headers below. --- You can check whether or not APO is working by verifying APO headers are present. When APO is working, three headers are present: `CF-Cache-Status`, `cf-apo-via`, `cf-edge-cache`. diff --git a/src/content/docs/browser-rendering/workers-bindings/browser-rendering-with-DO.mdx b/src/content/docs/browser-rendering/workers-bindings/browser-rendering-with-DO.mdx index 118e030873a3333..9c5f0aab485cb65 100644 --- a/src/content/docs/browser-rendering/workers-bindings/browser-rendering-with-DO.mdx +++ b/src/content/docs/browser-rendering/workers-bindings/browser-rendering-with-DO.mdx @@ -11,6 +11,8 @@ tags: - JavaScript sidebar: order: 2 +description: >- + Use the Browser Rendering API along with Durable Objects to take screenshots from web pages and store them in R2. Using Durable objects to persist browser sessions improves performance by eliminating the time that it takes to spin up a new browser session. Using Node.js version manager like [Volta] or [nvm] to avoid permission issues and change Node.JS versions. --- import { Render, PackageManagers, WranglerConfig } from "~/components"; diff --git a/src/content/docs/byoip/service-bindings/cdn-and-spectrum.mdx b/src/content/docs/byoip/service-bindings/cdn-and-spectrum.mdx index 4ce5d8a028f3bf7..738395a785a8b85 100644 --- a/src/content/docs/byoip/service-bindings/cdn-and-spectrum.mdx +++ b/src/content/docs/byoip/service-bindings/cdn-and-spectrum.mdx @@ -4,6 +4,8 @@ pcx_content_type: tutorial sidebar: order: 4 label: CDN and Spectrum +description: >- + Cloudflare allows users to use their Cloudflare prefix to route traffic to a different service. Service bindings must be created on the parent account of the prefix. Service binding will take four to six hours to propagate across Cloudflar's network. --- import { diff --git a/src/content/docs/byoip/service-bindings/magic-transit-with-cdn.mdx b/src/content/docs/byoip/service-bindings/magic-transit-with-cdn.mdx index 6ee5dc54278d4ca..8374aeac8a39b0d 100644 --- a/src/content/docs/byoip/service-bindings/magic-transit-with-cdn.mdx +++ b/src/content/docs/byoip/service-bindings/magic-transit-with-cdn.mdx @@ -4,6 +4,8 @@ pcx_content_type: tutorial sidebar: order: 3 label: Magic Transit with CDN +description: >- + Service bindings allow BYOIP customers to selectively route traffic on a per-IP address basis to the CDN pipeline. It is important to note that traffic routed to theCDN pipeline is protected at Layers 3 and 4 by the inherent DDoS protection capabilities. --- import { diff --git a/src/content/docs/cloudflare-for-platforms/cloudflare-for-saas/security/certificate-management/custom-certificates/certificate-signing-requests.mdx b/src/content/docs/cloudflare-for-platforms/cloudflare-for-saas/security/certificate-management/custom-certificates/certificate-signing-requests.mdx index 9e1a3710afa4529..73475e9dd3e2310 100644 --- a/src/content/docs/cloudflare-for-platforms/cloudflare-for-saas/security/certificate-management/custom-certificates/certificate-signing-requests.mdx +++ b/src/content/docs/cloudflare-for-platforms/cloudflare-for-saas/security/certificate-management/custom-certificates/certificate-signing-requests.mdx @@ -6,6 +6,8 @@ sidebar: head: - tag: title content: Certificate signing requests (CSRs) — Cloudflare for SaaS +description: >- + Cloudflare for SaaS allows you to generate a Certificate Signing Request (CSR) A CSR contains information about your domain, common name, and Subject Alternative Names (SANs) The private key associated with the CSR will be generated by Cloudflare and will never leave our network. --- import { Render, APIRequest } from "~/components"; diff --git a/src/content/docs/cloudflare-one/tutorials/access-workers.mdx b/src/content/docs/cloudflare-one/tutorials/access-workers.mdx index 60f2904d583848a..b1a9d4c8be55dd4 100644 --- a/src/content/docs/cloudflare-one/tutorials/access-workers.mdx +++ b/src/content/docs/cloudflare-one/tutorials/access-workers.mdx @@ -9,6 +9,8 @@ products: - Access tags: - JavaScript +description: >- + This tutorial covers how to use a [Cloudflare Worker] to add custom headers to traffic. The headers will be sent to origin services protected by Cloudflare Access. You can configure a Worker to send the [user authorization headers required by Access. --- import { TypeScriptExample, DashButton } from "~/components"; diff --git a/src/content/docs/cloudflare-one/tutorials/ai-wrapper-tenant-control.mdx b/src/content/docs/cloudflare-one/tutorials/ai-wrapper-tenant-control.mdx index 8bff6a4b0b010ce..f3c410a915c0eba 100644 --- a/src/content/docs/cloudflare-one/tutorials/ai-wrapper-tenant-control.mdx +++ b/src/content/docs/cloudflare-one/tutorials/ai-wrapper-tenant-control.mdx @@ -5,6 +5,8 @@ pcx_content_type: tutorial title: Create and secure an AI agent wrapper using AI Gateway and Zero Trust tags: - AI +description: >- + This tutorial explains how to use [Cloudflare AI Gateway] and Zero Trust to create a functional and secure website wrapper for an AI agent. The tutorial uses ChatGPT as an example AI agent to test the concept. --- import { TabItem, Tabs, Details, Render, DashButton } from "~/components"; diff --git a/src/content/docs/cloudflare-one/tutorials/cli.mdx b/src/content/docs/cloudflare-one/tutorials/cli.mdx index eaa5ea6bf57e672..c8afe9565de3ed8 100644 --- a/src/content/docs/cloudflare-one/tutorials/cli.mdx +++ b/src/content/docs/cloudflare-one/tutorials/cli.mdx @@ -3,6 +3,8 @@ reviewed: 2021-03-23 category: 🔐 Zero Trust pcx_content_type: tutorial title: Connect through Cloudflare Access using a CLI +description: >- + Cloudflare's cloudflared command-line tool allows you to interact with endpoints protected by Cloudflare Access. This walkthrough uses the domain `example.com` as a stand-in for a protected API. --- Cloudflare's `cloudflared` command-line tool allows you to interact with endpoints protected by Cloudflare Access. You can use `cloudflared` to interact with a protected application's API. diff --git a/src/content/docs/cloudflare-one/tutorials/clientless-access-private-dns.mdx b/src/content/docs/cloudflare-one/tutorials/clientless-access-private-dns.mdx index 44ebfda849204a0..f865e79858dd30e 100644 --- a/src/content/docs/cloudflare-one/tutorials/clientless-access-private-dns.mdx +++ b/src/content/docs/cloudflare-one/tutorials/clientless-access-private-dns.mdx @@ -3,6 +3,8 @@ reviewed: 2024-03-04 category: 🔐 Zero Trust pcx_content_type: tutorial title: Access a web application via its private hostname without WARP +description: >- + With Cloudflare Browser Isolation and resolver policies, users can connect to private web-based applications via their private hostnames. By the end of this tutorial, users who pass your Gateway DNS and network policies will be able to access your private application at `https://.cloudflareaccess.com' --- import { Render } from "~/components"; diff --git a/src/content/docs/cloudflare-one/tutorials/entra-id-conditional-access.mdx b/src/content/docs/cloudflare-one/tutorials/entra-id-conditional-access.mdx index 0d039b4ad9c82b3..4cd9d482e985b7f 100644 --- a/src/content/docs/cloudflare-one/tutorials/entra-id-conditional-access.mdx +++ b/src/content/docs/cloudflare-one/tutorials/entra-id-conditional-access.mdx @@ -3,6 +3,8 @@ reviewed: 2024-01-12 category: 🔐 Access pcx_content_type: tutorial title: Use Microsoft Entra ID Conditional Access policies in Cloudflare Access +description: >- + With Conditional Access in Microsoft Entra ID, administrators can enforce policies on applications and users directly in EntraID. Conditional access has a set of checks that are specialized to Windows and are often preferred by organizations with Windows power users. --- With [Conditional Access](https://learn.microsoft.com/entra/identity/conditional-access/overview) in Microsoft Entra ID (formerly Azure Active Directory), administrators can enforce policies on applications and users directly in Entra ID. Conditional Access has a set of checks that are specialized to Windows and are often preferred by organizations with Windows power users. diff --git a/src/content/docs/cloudflare-one/tutorials/entra-id-risky-users.mdx b/src/content/docs/cloudflare-one/tutorials/entra-id-risky-users.mdx index 528e34ee5508099..0e49feaef85bf64 100644 --- a/src/content/docs/cloudflare-one/tutorials/entra-id-risky-users.mdx +++ b/src/content/docs/cloudflare-one/tutorials/entra-id-risky-users.mdx @@ -4,6 +4,8 @@ category: 🔐 Zero Trust difficulty: Advanced pcx_content_type: tutorial title: Isolate risky Entra ID users +description: >- + Microsoft Entra ID (formerly Azure Active Directory) calculates a user's risk level based on the probability that their account has been compromised. With Cloudflare Zero Trust, you can synchronize the Entra. ID risky users list with Cloudflar Access and apply more stringent Zero Trust. policies to users at higher risk. --- import { WranglerConfig } from "~/components"; diff --git a/src/content/docs/cloudflare-one/tutorials/extend-sso-with-workers.mdx b/src/content/docs/cloudflare-one/tutorials/extend-sso-with-workers.mdx index f481fa159bebb33..2eb5a3a7db4bb5e 100644 --- a/src/content/docs/cloudflare-one/tutorials/extend-sso-with-workers.mdx +++ b/src/content/docs/cloudflare-one/tutorials/extend-sso-with-workers.mdx @@ -6,6 +6,8 @@ pcx_content_type: tutorial title: Send SSO attributes to Access-protected origins with Workers tags: - SSO +description: >- + This tutorial will walk you through extending the single-sign-on (SSO) capabilities of [Cloudflare Access] with our serverless computing platform, Cloudflare Workers. Using Workers, you can extend your Cloudflar Access configuration without modifying your origin application code. --- import { Render, GlossaryTooltip, PackageManagers, WranglerConfig } from "~/components" diff --git a/src/content/docs/cloudflare-one/tutorials/fastapi.mdx b/src/content/docs/cloudflare-one/tutorials/fastapi.mdx index 12544b8a9371218..d0077632a70dbaf 100644 --- a/src/content/docs/cloudflare-one/tutorials/fastapi.mdx +++ b/src/content/docs/cloudflare-one/tutorials/fastapi.mdx @@ -5,7 +5,8 @@ pcx_content_type: tutorial title: Validate the Access token with FastAPI tags: - Python - +description: >- + This tutorial covers how to validate that the [Access JWT] is on requests made to FastAPI apps. The code is written in Python. --- This tutorial covers how to validate that the [Access JWT](/cloudflare-one/identity/authorization-cookie/validating-json/) is on requests made to FastAPI apps. diff --git a/src/content/docs/cloudflare-one/tutorials/gitlab.mdx b/src/content/docs/cloudflare-one/tutorials/gitlab.mdx index 2fffa753095f569..eb9ae19d7be1191 100644 --- a/src/content/docs/cloudflare-one/tutorials/gitlab.mdx +++ b/src/content/docs/cloudflare-one/tutorials/gitlab.mdx @@ -4,6 +4,8 @@ category: 🔐 Zero Trust difficulty: Advanced pcx_content_type: tutorial title: Zero Trust GitLab SSH & HTTP +description: >- + GitLab can be used to add Zero Trust rules to a self-hosted instance of GitLab. Users can connect through HTTP and SSH and authenticate with your team's identity provider. This tutorial walks you through deploying GitLab in DigitalOcean. --- import { DashButton } from "~/components"; diff --git a/src/content/docs/cloudflare-one/tutorials/grafana.mdx b/src/content/docs/cloudflare-one/tutorials/grafana.mdx index ebb19f3f702bb8b..5141bded8b332d3 100644 --- a/src/content/docs/cloudflare-one/tutorials/grafana.mdx +++ b/src/content/docs/cloudflare-one/tutorials/grafana.mdx @@ -3,6 +3,8 @@ reviewed: 2023-12-06 category: 🌐 Connections pcx_content_type: tutorial title: Monitor Cloudflare Tunnel with Grafana +description: >- + Grafana is a dashboard tool that visualizes data stored in other databases. Grafana uses Prometheus as a data source to present metrics to the administrator. This tutorial covers how to create the metrics endpoint and set up the Prometheus server. --- [Grafana](https://grafana.com/) is a dashboard tool that visualizes data stored in other databases. You can use Grafana to convert your [tunnel metrics](/cloudflare-one/connections/connect-networks/monitor-tunnels/metrics/) into actionable insights. diff --git a/src/content/docs/cloudflare-one/tutorials/integrate-microsoft-mcas-teams.mdx b/src/content/docs/cloudflare-one/tutorials/integrate-microsoft-mcas-teams.mdx index b8d64342ff3574b..1b54542dd607a7c 100644 --- a/src/content/docs/cloudflare-one/tutorials/integrate-microsoft-mcas-teams.mdx +++ b/src/content/docs/cloudflare-one/tutorials/integrate-microsoft-mcas-teams.mdx @@ -3,6 +3,8 @@ reviewed: 2021-08-19 category: 🔐 Zero Trust pcx_content_type: tutorial title: Integrate Microsoft MCAS with Cloudflare Zero Trust +description: >- + Microsoft provides an MCAS API endpoint to allow queries to see which applications have been marked as blocked or allowed. With an MCAs API call, you can manage a URL category that contains the blocked URLs. Use the output to create a Hostname List that can be used by Gateway HTTP policies to block them. --- Many security teams rely on Microsoft MCAS (Microsoft Cloud App Security), Microsoft's CASB solution, to identify and block threats on the Internet, as well as allow or block access to cloud applications. This tutorial covers how to integrate MCAS with Cloudflare Zero Trust, and create Gateway HTTP policies to ensure visibility and control over data. diff --git a/src/content/docs/cloudflare-one/tutorials/kubectl.mdx b/src/content/docs/cloudflare-one/tutorials/kubectl.mdx index 9337d768878b796..84ab84f3930085c 100644 --- a/src/content/docs/cloudflare-one/tutorials/kubectl.mdx +++ b/src/content/docs/cloudflare-one/tutorials/kubectl.mdx @@ -3,6 +3,8 @@ reviewed: 2022-07-19 category: 🔐 Zero Trust pcx_content_type: tutorial title: Connect through Cloudflare Access using kubectl +description: >- + Connecting to Cloudflare's network using kubectl. Create a Zero Trust policy for your machine. Create an outbound-only connection between your machine and Cloudflared's network. --- import { DashButton } from "~/components"; diff --git a/src/content/docs/cloudflare-one/tutorials/m365-dedicated-egress-ips.mdx b/src/content/docs/cloudflare-one/tutorials/m365-dedicated-egress-ips.mdx index e13c4eeadbc41d3..45613ff508d5db9 100644 --- a/src/content/docs/cloudflare-one/tutorials/m365-dedicated-egress-ips.mdx +++ b/src/content/docs/cloudflare-one/tutorials/m365-dedicated-egress-ips.mdx @@ -4,6 +4,8 @@ category: 🔐 Zero Trust difficulty: Intermediate pcx_content_type: tutorial title: Protect access to Microsoft 365 with dedicated egress IPs +description: >- + This tutorial covers how to secure access to your Microsoft 365 applications with Cloudflare Gateway dedicated egress IPs. Only available on Zero Trust Enterprise plans. --- :::note diff --git a/src/content/docs/cloudflare-one/tutorials/migrate-lb-tunnel.mdx b/src/content/docs/cloudflare-one/tutorials/migrate-lb-tunnel.mdx index a217380f75e306a..f2658fd84867720 100644 --- a/src/content/docs/cloudflare-one/tutorials/migrate-lb-tunnel.mdx +++ b/src/content/docs/cloudflare-one/tutorials/migrate-lb-tunnel.mdx @@ -3,6 +3,8 @@ reviewed: 2021-01-12 category: 🌐 Connections pcx_content_type: tutorial title: Migrate to Named Tunnels with Load Balancer +description: >- + Migrate to Named Tunnels with Cloudflare Zero Trust docs. --- import { Example, GlossaryTooltip } from "~/components"; diff --git a/src/content/docs/cloudflare-one/tutorials/mongodb-tunnel.mdx b/src/content/docs/cloudflare-one/tutorials/mongodb-tunnel.mdx index d790094e0d3d882..415200523adace4 100644 --- a/src/content/docs/cloudflare-one/tutorials/mongodb-tunnel.mdx +++ b/src/content/docs/cloudflare-one/tutorials/mongodb-tunnel.mdx @@ -4,6 +4,8 @@ category: 🌐 Connections difficulty: Advanced pcx_content_type: tutorial title: MongoDB SSH +description: >- + You can build Zero Trust rules to secure connections to MongoDB deployments using Cloudflare Access and Cloudflared Tunnel. Cloudflar Tunnel requires a lightweight daemon, cloudflared, running alongisde the deployment and as on the client side. --- import { Details } from "~/components"; diff --git a/src/content/docs/cloudflare-one/tutorials/mysql-network-policy.mdx b/src/content/docs/cloudflare-one/tutorials/mysql-network-policy.mdx index 2996dabd67781c6..5f405d701212e1a 100644 --- a/src/content/docs/cloudflare-one/tutorials/mysql-network-policy.mdx +++ b/src/content/docs/cloudflare-one/tutorials/mysql-network-policy.mdx @@ -3,6 +3,8 @@ reviewed: 2024-03-11 category: 🔐 Zero Trust pcx_content_type: tutorial title: Access and secure a MySQL database using Cloudflare Tunnel and network policies +description: >- + Using Cloudflare Tunnel's private networks, users can connect to arbitrary non-browser based TCP/UDP applications, like databases. You can set up network policies that implement zero trust controls to define who and what can access those applications using the WARP client. --- import { Render } from "~/components"; diff --git a/src/content/docs/cloudflare-one/tutorials/okta-u2f.mdx b/src/content/docs/cloudflare-one/tutorials/okta-u2f.mdx index cd6a9bda35f6bbb..b24b97828002d53 100644 --- a/src/content/docs/cloudflare-one/tutorials/okta-u2f.mdx +++ b/src/content/docs/cloudflare-one/tutorials/okta-u2f.mdx @@ -4,7 +4,8 @@ category: 🔐 Zero Trust difficulty: Medium pcx_content_type: tutorial title: Require U2F with Okta - +description: >- + This tutorial covers how to Integrate Cloudflare Access with Okta. It also covers the steps to set up Cloudflar Access and integrate Okta with Zero Trust. --- Many identity providers, like Okta, support multiple multifactor authentication (MFA) options simultaneously. For example, Okta will allow you to login with your password and a temporary code generated in an app or a U2F hard key like a Yubikey. diff --git a/src/content/docs/cloudflare-one/tutorials/r2-logs.mdx b/src/content/docs/cloudflare-one/tutorials/r2-logs.mdx index 5eb9ab66b62938d..71d673f38e0e1be 100644 --- a/src/content/docs/cloudflare-one/tutorials/r2-logs.mdx +++ b/src/content/docs/cloudflare-one/tutorials/r2-logs.mdx @@ -6,6 +6,8 @@ pcx_content_type: tutorial title: Use Cloudflare R2 as a Zero Trust log destination products: - R2 +description: >- + This tutorial covers how to build a Cloudflare R2 bucket to store Zero Trust logs. It also shows how to connect the bucket to the Zero Trust Logpush service. --- import { DashButton } from "~/components"; diff --git a/src/content/docs/cloudflare-one/tutorials/s3-buckets.mdx b/src/content/docs/cloudflare-one/tutorials/s3-buckets.mdx index 97c7c72026f7bba..0be6e753dfacc35 100644 --- a/src/content/docs/cloudflare-one/tutorials/s3-buckets.mdx +++ b/src/content/docs/cloudflare-one/tutorials/s3-buckets.mdx @@ -6,6 +6,8 @@ pcx_content_type: tutorial title: Protect access to Amazon S3 buckets with Cloudflare Zero Trust tags: - S3 +description: >- + This tutorial demonstrates how to secure access to Amazon S3 buckets with Cloudflare Zero Trust so that data in these buckets is not publicly exposed on the Internet. You can combine Cloudflared Access and AWS VPC endpoints. Enterprise may also use Cloudflares Gateway egress policies with dedicated egress IPs. --- This tutorial demonstrates how to secure access to Amazon S3 buckets with Cloudflare Zero Trust so that data in these buckets is not publicly exposed on the Internet. You can combine Cloudflare Access and AWS VPC endpoints. Enterprise may also use Cloudflare Gateway egress policies with dedicated egress IPs. diff --git a/src/content/docs/cloudflare-one/tutorials/tunnel-kubectl.mdx b/src/content/docs/cloudflare-one/tutorials/tunnel-kubectl.mdx index b41f8c0c1eb1151..287377b92864370 100644 --- a/src/content/docs/cloudflare-one/tutorials/tunnel-kubectl.mdx +++ b/src/content/docs/cloudflare-one/tutorials/tunnel-kubectl.mdx @@ -3,6 +3,8 @@ reviewed: 2024-10-02 category: 🔐 Zero Trust pcx_content_type: tutorial title: Use Cloudflare Tunnels with Kubernetes client-go plugin +description: >- + This tutorial explains how to use Cloudflare Tunnels with Kubernetes client-go credential plugins for authentication. By following these steps, you can securely access your Kuber netes cluster through a Cloud flare Tunnel. --- # Use Cloudflare Tunnels with Kubernetes client-go credential plugins diff --git a/src/content/docs/cloudflare-one/tutorials/user-selectable-egress-ips.mdx b/src/content/docs/cloudflare-one/tutorials/user-selectable-egress-ips.mdx index 2c6a3dc9aff0423..c3cc236d67852a4 100644 --- a/src/content/docs/cloudflare-one/tutorials/user-selectable-egress-ips.mdx +++ b/src/content/docs/cloudflare-one/tutorials/user-selectable-egress-ips.mdx @@ -4,6 +4,8 @@ category: 🔐 Zero Trust difficulty: Intermediate pcx_content_type: tutorial title: Use virtual networks to change user egress IPs +description: >- + This tutorial gives administrators an easy way to allow their users to change their egress IP address between any of your assigned dedicated egressIP addresses. --- import { Details, TabItem, Tabs, APIRequest } from "~/components"; diff --git a/src/content/docs/cloudflare-one/tutorials/vnc-client-in-browser.mdx b/src/content/docs/cloudflare-one/tutorials/vnc-client-in-browser.mdx index 813a1325f14db6f..900b79361790e24 100644 --- a/src/content/docs/cloudflare-one/tutorials/vnc-client-in-browser.mdx +++ b/src/content/docs/cloudflare-one/tutorials/vnc-client-in-browser.mdx @@ -4,6 +4,8 @@ category: 🔐 Zero Trust difficulty: Advanced pcx_content_type: tutorial title: Render a VNC client in browser +description: >- + Cloudflare can render a Virtual Network Computer (VNC) terminal in your browser without any client software or configuration required. Administrators can use Cloudflare Tunnel to connect a VNC host to Cloudflar's network. This tutorial focuses on configuring a Tight VNC server on an Azure hosted Linux virtual machine. --- Cloudflare can render a Virtual Network Computer (VNC) terminal in your browser without any client software or configuration required. diff --git a/src/content/docs/cloudflare-one/tutorials/warp-on-headless-linux.mdx b/src/content/docs/cloudflare-one/tutorials/warp-on-headless-linux.mdx index 1b137390f338e80..eab50ca4fd29269 100644 --- a/src/content/docs/cloudflare-one/tutorials/warp-on-headless-linux.mdx +++ b/src/content/docs/cloudflare-one/tutorials/warp-on-headless-linux.mdx @@ -4,6 +4,8 @@ category: 🔐 Zero Trust difficulty: Beginner pcx_content_type: tutorial title: Deploy WARP on headless Linux machines +description: >- + This tutorial explains how to deploy the Cloudflare WARP client on headless Linux devices using a service token and an installation script. This deployment workflow is designed for headless servers - that is, servers which do not have access to a browser for identity provider logins. --- import { Render, GlossaryTooltip } from "~/components"; diff --git a/src/content/docs/d1/tutorials/build-a-comments-api.mdx b/src/content/docs/d1/tutorials/build-a-comments-api.mdx index b0501ccac4b224e..90347f7a837e31c 100644 --- a/src/content/docs/d1/tutorials/build-a-comments-api.mdx +++ b/src/content/docs/d1/tutorials/build-a-comments-api.mdx @@ -9,6 +9,8 @@ tags: - Hono - JavaScript - SQL +description: >- + In this tutorial, you will learn how to use D1 to add comments to a static blog site. You will construct a new D1 database, and build a JSON API that allows the creation and retrieval of comments. --- import { Render, PackageManagers, WranglerConfig, YouTube } from "~/components"; diff --git a/src/content/docs/d1/tutorials/build-an-api-to-access-d1.mdx b/src/content/docs/d1/tutorials/build-an-api-to-access-d1.mdx index cd2a24db2ea552a..c22790318e3d956 100644 --- a/src/content/docs/d1/tutorials/build-an-api-to-access-d1.mdx +++ b/src/content/docs/d1/tutorials/build-an-api-to-access-d1.mdx @@ -9,6 +9,8 @@ tags: - Hono - TypeScript - SQL +description: >- + This tutorial shows how to create an API that allows you to securely run queries against a D1 database. The API can be used to customize access controls and/or limit what tables can be queried. --- import { Render, PackageManagers, Steps, Details, WranglerConfig } from "~/components"; diff --git a/src/content/docs/d1/tutorials/d1-and-prisma-orm.mdx b/src/content/docs/d1/tutorials/d1-and-prisma-orm.mdx index 4cab14c0897004d..6a46889edcb95e1 100644 --- a/src/content/docs/d1/tutorials/d1-and-prisma-orm.mdx +++ b/src/content/docs/d1/tutorials/d1-and-prisma-orm.mdx @@ -9,6 +9,8 @@ products: tags: - TypeScript - SQL +description: >- + Prisma ORM is a next-generation JavaScript and TypeScript ORM. It unlocks a new level of developer experience when working with databases. This tutorial shows you how to set up and deploy a Cloudflare Worker that is accessing a D1 database from scratch. --- import { WranglerConfig, FileTree, PackageManagers, GitHubCode } from "~/components"; diff --git a/src/content/docs/d1/tutorials/import-to-d1-with-rest-api.mdx b/src/content/docs/d1/tutorials/import-to-d1-with-rest-api.mdx index 77cbcf31574304b..18c1fb74bf4624b 100644 --- a/src/content/docs/d1/tutorials/import-to-d1-with-rest-api.mdx +++ b/src/content/docs/d1/tutorials/import-to-d1-with-rest-api.mdx @@ -8,6 +8,8 @@ tags: - JavaScript - TypeScript - SQL +description: >- + This tutorial uses the [REST API] to import a database into D1. To use REST APIs, you need to generate an API token to authenticate your API requests. You must have an existing D1 table which matches the schema of the data you wish to import. --- import { Render, Steps, PackageManagers, DashButton } from "~/components"; diff --git a/src/content/docs/d1/tutorials/using-read-replication-for-e-com.mdx b/src/content/docs/d1/tutorials/using-read-replication-for-e-com.mdx index d11cd4dfe2d2abf..b770164c7a68984 100644 --- a/src/content/docs/d1/tutorials/using-read-replication-for-e-com.mdx +++ b/src/content/docs/d1/tutorials/using-read-replication-for-e-com.mdx @@ -8,6 +8,8 @@ tags: - JavaScript - TypeScript - SQL +description: >- + D1 Read Replication is a feature that allows you to replicate your D1 database to multiple regions. This is useful for your e-commerce website, as it reduces read latencies and improves read throughput. In this tutorial, you will learn how to use D1 read replication for your website. --- import { diff --git a/src/content/docs/dns/dnssec/dnssec-active-migration.mdx b/src/content/docs/dns/dnssec/dnssec-active-migration.mdx index d1f8adb7d760d52..40552c7a1f52844 100644 --- a/src/content/docs/dns/dnssec/dnssec-active-migration.mdx +++ b/src/content/docs/dns/dnssec/dnssec-active-migration.mdx @@ -7,6 +7,8 @@ sidebar: head: - tag: title content: DNSSEC migration tutorial +description: >- + Follow this tutorial to migrate an existing DNS zone to Cloudflare without having to disable DNSSEC. This procedure involves cross-importing the [zone signing keys (ZSKs) from one provider to the other. --- import { Details, APIRequest } from "~/components"; diff --git a/src/content/docs/dns/zone-setups/conversions/convert-full-to-secondary.mdx b/src/content/docs/dns/zone-setups/conversions/convert-full-to-secondary.mdx index 77f54026eebaf53..d68377cf2fb8dc8 100644 --- a/src/content/docs/dns/zone-setups/conversions/convert-full-to-secondary.mdx +++ b/src/content/docs/dns/zone-setups/conversions/convert-full-to-secondary.mdx @@ -4,6 +4,8 @@ pcx_content_type: tutorial sidebar: order: 2 label: Full to secondary +description: >- + If you initially configured a [full setup] you can later convert your zone to use [incoming zone transfers (Cloudflare as secondary)] Follow the steps below to achieve this conversion. --- import { Tabs, TabItem, Render, GlossaryTooltip } from "~/components"; diff --git a/src/content/docs/dns/zone-setups/conversions/convert-partial-to-full.mdx b/src/content/docs/dns/zone-setups/conversions/convert-partial-to-full.mdx index 2b0eb355a43eebb..ed7234b6df29e9e 100644 --- a/src/content/docs/dns/zone-setups/conversions/convert-partial-to-full.mdx +++ b/src/content/docs/dns/zone-setups/conversions/convert-partial-to-full.mdx @@ -4,6 +4,8 @@ pcx_content_type: tutorial sidebar: order: 4 label: Partial to full +description: >- + If you initially set up a partial domain on Cloudflare, you can later migrate it to a full setup. To minimize downtime, it is recommended having a certificate in place beforehand. You should also delete the previous [zone activation TXT record] before converting your zone. --- import { Render } from "~/components"; diff --git a/src/content/docs/dns/zone-setups/conversions/convert-partial-to-secondary.mdx b/src/content/docs/dns/zone-setups/conversions/convert-partial-to-secondary.mdx index f7d708aa6cee47e..9e09d3d48768135 100644 --- a/src/content/docs/dns/zone-setups/conversions/convert-partial-to-secondary.mdx +++ b/src/content/docs/dns/zone-setups/conversions/convert-partial-to-secondary.mdx @@ -4,6 +4,8 @@ pcx_content_type: tutorial sidebar: order: 5 label: Partial to secondary +description: >- + If you initially set up a partial zone on Cloudflare, you can later convert it to use a secondary setup. This page will guide you through this conversion using [export and import] and API calls. --- import { Details, Render, TabItem, Tabs } from "~/components"; diff --git a/src/content/docs/dns/zone-setups/conversions/convert-secondary-to-full.mdx b/src/content/docs/dns/zone-setups/conversions/convert-secondary-to-full.mdx index 191381998d66016..32574884e4bab79 100644 --- a/src/content/docs/dns/zone-setups/conversions/convert-secondary-to-full.mdx +++ b/src/content/docs/dns/zone-setups/conversions/convert-secondary-to-full.mdx @@ -4,6 +4,8 @@ pcx_content_type: tutorial sidebar: order: 7 label: Secondary to full +description: >- + If you initially set up incoming zone transfers (Cloudflare as secondary), you can later convert your zone to use a full setup. Follow the steps below to achieve this conversion. --- import { Render } from "~/components"; diff --git a/src/content/docs/dns/zone-setups/conversions/convert-secondary-to-partial.mdx b/src/content/docs/dns/zone-setups/conversions/convert-secondary-to-partial.mdx index 2dbee6012d81e95..138cd000fb14c6d 100644 --- a/src/content/docs/dns/zone-setups/conversions/convert-secondary-to-partial.mdx +++ b/src/content/docs/dns/zone-setups/conversions/convert-secondary-to-partial.mdx @@ -4,6 +4,8 @@ pcx_content_type: tutorial sidebar: order: 8 label: Secondary to partial +description: >- + If you initially set up incoming zone transfers (Cloudflare as secondary), you can later convert your zone to use a partial setup. Follow the steps below to achieve this conversion. --- import { GlossaryTooltip, Details, Render } from "~/components"; diff --git a/src/content/docs/dns/zone-setups/full-setup/setup.mdx b/src/content/docs/dns/zone-setups/full-setup/setup.mdx index 4375b8984cfaa8a..ae895de477dc12d 100644 --- a/src/content/docs/dns/zone-setups/full-setup/setup.mdx +++ b/src/content/docs/dns/zone-setups/full-setup/setup.mdx @@ -6,6 +6,8 @@ sidebar: head: - tag: title content: Change your nameservers (Full setup) +description: >- + If you want to use Cloudflare as your primary DNS provider and manage your DNS records, your domain should be using a full setup. This means that you are using Cloud flare for your authoritative DNS nameservers. --- import { Render } from "~/components"; diff --git a/src/content/docs/dns/zone-setups/partial-setup/setup.mdx b/src/content/docs/dns/zone-setups/partial-setup/setup.mdx index dc71c169e4bf500..abd046f65f6a9e5 100644 --- a/src/content/docs/dns/zone-setups/partial-setup/setup.mdx +++ b/src/content/docs/dns/zone-setups/partial-setup/setup.mdx @@ -6,6 +6,8 @@ sidebar: head: - tag: title content: Set up a partial (CNAME) zone +description: >- + A partial (CNAME) setup allows you to use Cloudflare's reverse proxy while maintaining your primary and authoritative DNS provider. A partial setup is only available to customers on a Business or Enterprise plan. --- import { Details, Render, GlossaryTooltip, Steps } from "~/components"; diff --git a/src/content/docs/dns/zone-setups/zone-transfers/cloudflare-as-primary/dnssec-for-primary.mdx b/src/content/docs/dns/zone-setups/zone-transfers/cloudflare-as-primary/dnssec-for-primary.mdx index 8c8f29caeee5062..c8cc750b3e0b61f 100644 --- a/src/content/docs/dns/zone-setups/zone-transfers/cloudflare-as-primary/dnssec-for-primary.mdx +++ b/src/content/docs/dns/zone-setups/zone-transfers/cloudflare-as-primary/dnssec-for-primary.mdx @@ -7,6 +7,8 @@ sidebar: head: - tag: title content: Set up multi-signer DNSSEC with outgoing zone transfers +description: >- + With outgoing zone transfers, you keep Cloudflare as your primary DNS provider and use one or more secondary providers for increased availability and fault tolerance. You should configure [multi-signer DNSSEC](https://developers.cloudflare.com/dns/dNSsec/multi- signer-dnssec/). After setting up [Cloudflar as primary], follow the steps below to enable DNSSec. --- import { Example, APIRequest } from "~/components"; diff --git a/src/content/docs/dns/zone-setups/zone-transfers/cloudflare-as-primary/setup.mdx b/src/content/docs/dns/zone-setups/zone-transfers/cloudflare-as-primary/setup.mdx index bf043e32f70908b..2271e7d9a1287fe 100644 --- a/src/content/docs/dns/zone-setups/zone-transfers/cloudflare-as-primary/setup.mdx +++ b/src/content/docs/dns/zone-setups/zone-transfers/cloudflare-as-primary/setup.mdx @@ -6,6 +6,8 @@ sidebar: head: - tag: title content: Set up outgoing zone transfers (Cloudflare as Primary) +description: >- + With outgoing zone transfers, you can keep Cloudflare as your primary DNS provider and use one or more secondary providers for increased availability. --- import { Render, TabItem, Tabs, APIRequest, DashButton } from "~/components"; diff --git a/src/content/docs/dns/zone-setups/zone-transfers/cloudflare-as-secondary/setup.mdx b/src/content/docs/dns/zone-setups/zone-transfers/cloudflare-as-secondary/setup.mdx index 58cc9d9053c6900..49ef935d4741055 100644 --- a/src/content/docs/dns/zone-setups/zone-transfers/cloudflare-as-secondary/setup.mdx +++ b/src/content/docs/dns/zone-setups/zone-transfers/cloudflare-as-secondary/setup.mdx @@ -6,6 +6,8 @@ sidebar: head: - tag: title content: Set up incoming zone transfers (Cloudflare as Secondary) +description: >- + With incoming zone transfers, you can keep your primary DNS provider and use Cloudflare as a secondary DNS provider. The TSIG names configured at your primary and secondary DNS providers have to be exactly the same. --- import { Render, TabItem, Tabs } from "~/components"; diff --git a/src/content/docs/durable-objects/tutorials/build-a-seat-booking-app.mdx b/src/content/docs/durable-objects/tutorials/build-a-seat-booking-app.mdx index 0aeff01cf28a650..5e1f684437a2df3 100644 --- a/src/content/docs/durable-objects/tutorials/build-a-seat-booking-app.mdx +++ b/src/content/docs/durable-objects/tutorials/build-a-seat-booking-app.mdx @@ -6,6 +6,8 @@ title: Build a seat booking app with SQLite in Durable Objects tags: - TypeScript - SQL +description: >- + This tutorial shows you how to build a seat reservation app using Durable Objects. The app will allow users to book a seat for a flight. It will be written in TypeScript and will use the new SQLite storage backend in Durable Object. --- import { Render, PackageManagers, Details, WranglerConfig } from "~/components"; diff --git a/src/content/docs/fundamentals/account/account-security/secure-a-compromised-account.mdx b/src/content/docs/fundamentals/account/account-security/secure-a-compromised-account.mdx index 8c396c4f6c98ee4..e20e3d080ee5906 100644 --- a/src/content/docs/fundamentals/account/account-security/secure-a-compromised-account.mdx +++ b/src/content/docs/fundamentals/account/account-security/secure-a-compromised-account.mdx @@ -1,6 +1,8 @@ --- title: Secure compromised account pcx_content_type: tutorial +description: >- + If you observe suspicious activity within your Cloudflare account, secure your account with these steps. Change your password and revoke any session associated with your email account. If you notice any settings changes, you should undo those changes. --- import { Render } from "~/components"; diff --git a/src/content/docs/fundamentals/manage-domains/add-multiple-sites-automation.mdx b/src/content/docs/fundamentals/manage-domains/add-multiple-sites-automation.mdx index 88b588bdb384412..7a2f9a567086831 100644 --- a/src/content/docs/fundamentals/manage-domains/add-multiple-sites-automation.mdx +++ b/src/content/docs/fundamentals/manage-domains/add-multiple-sites-automation.mdx @@ -2,6 +2,8 @@ pcx_content_type: tutorial source: https://support.cloudflare.com/hc/articles/360000841472 title: Add multiple sites via automation +description: >- + To add multiple sites to Cloudflare at once and more efficiently, you can do so via the Cloudflar API. Using the API will allow you to add multiple Sites quickly and efficiently. --- import { Render } from "~/components"; diff --git a/src/content/docs/fundamentals/manage-domains/add-site.mdx b/src/content/docs/fundamentals/manage-domains/add-site.mdx index dfe33b7d474476b..a6d6b755cede73a 100644 --- a/src/content/docs/fundamentals/manage-domains/add-site.mdx +++ b/src/content/docs/fundamentals/manage-domains/add-site.mdx @@ -1,7 +1,8 @@ --- title: Onboard a domain pcx_content_type: tutorial - +description: >- + If you purchased your domain from a different provider, you can still connect the domain to Cloudflare. After you connect your domain, Cloudflar will act as the reverse proxy and DNS provider for your site. --- import { DashButton, GlossaryTooltip, Render } from "~/components" diff --git a/src/content/docs/fundamentals/manage-domains/domain-version.mdx b/src/content/docs/fundamentals/manage-domains/domain-version.mdx index 74a6a8326c2a52f..01451a53ffe4026 100644 --- a/src/content/docs/fundamentals/manage-domains/domain-version.mdx +++ b/src/content/docs/fundamentals/manage-domains/domain-version.mdx @@ -1,7 +1,8 @@ --- title: Change your domain version pcx_content_type: tutorial - +description: >- + Version Management allows you to safely test, deploy, and roll back changes to your zone configurations. By default, Version Management is not enabled on a zone. --- import { Render } from "~/components" diff --git a/src/content/docs/fundamentals/performance/minimize-downtime.mdx b/src/content/docs/fundamentals/performance/minimize-downtime.mdx index b8d861a03a477a5..75d2237ebd958db 100644 --- a/src/content/docs/fundamentals/performance/minimize-downtime.mdx +++ b/src/content/docs/fundamentals/performance/minimize-downtime.mdx @@ -1,7 +1,8 @@ --- title: Minimize downtime pcx_content_type: tutorial - +description: >- + Cloudflare Fundamentals docs: Minimize downtime with Cloudflare. --- import { Render } from "~/components" diff --git a/src/content/docs/hyperdrive/tutorials/serverless-timeseries-api-with-timescale.mdx b/src/content/docs/hyperdrive/tutorials/serverless-timeseries-api-with-timescale.mdx index 2684d9d58fdcbff..4e0e9f60d1fe6df 100644 --- a/src/content/docs/hyperdrive/tutorials/serverless-timeseries-api-with-timescale.mdx +++ b/src/content/docs/hyperdrive/tutorials/serverless-timeseries-api-with-timescale.mdx @@ -9,6 +9,8 @@ tags: - PostgreSQL - TypeScript - SQL +description: >- + In this tutorial, you will learn to build an API on Workers which will ingest and query time-series data stored in Timescale. You will create and deploy a Worker function that exposes API routes for ingesting data, and use [Hyperdrive](https://developers.cloudflare.com/hyperdrive/) to proxy your database connection. --- import { Render, PackageManagers, WranglerConfig } from "~/components"; diff --git a/src/content/docs/load-balancing/additional-options/load-shedding.mdx b/src/content/docs/load-balancing/additional-options/load-shedding.mdx index 0913ef29be8f110..4dc5185e07d8e9b 100644 --- a/src/content/docs/load-balancing/additional-options/load-shedding.mdx +++ b/src/content/docs/load-balancing/additional-options/load-shedding.mdx @@ -3,7 +3,8 @@ pcx_content_type: tutorial title: Load shedding sidebar: order: 15 - +description: >- + Use load shedding to prevent an at-risk endpoint from becoming unhealthy and starting the failover process. To enable load shedding for a specific pool via the API, [update the values] for the pool's `load_shedding` object. --- import { Details } from "~/components" diff --git a/src/content/docs/load-balancing/additional-options/planned-maintenance.mdx b/src/content/docs/load-balancing/additional-options/planned-maintenance.mdx index 641bc4a33ad971a..4bf9af2a756806b 100644 --- a/src/content/docs/load-balancing/additional-options/planned-maintenance.mdx +++ b/src/content/docs/load-balancing/additional-options/planned-maintenance.mdx @@ -3,7 +3,8 @@ pcx_content_type: tutorial title: Perform planned maintenance sidebar: order: 6 - +description: >- + When you change application settings or add new assets, you will likely want to make these changes on one endpoint at a time. Going endpoint by endpoint reduces the risk of changes and ensures a more consistent user experience. --- When you change application settings or add new assets, you will likely want to make these changes on one endpoint at a time. Going endpoint by endpoint reduces the risk of changes and ensures a more consistent user experience. diff --git a/src/content/docs/load-balancing/pools/cloudflare-pages-origin.mdx b/src/content/docs/load-balancing/pools/cloudflare-pages-origin.mdx index 4a377290af6a200..14bf2ee4dfb47a6 100644 --- a/src/content/docs/load-balancing/pools/cloudflare-pages-origin.mdx +++ b/src/content/docs/load-balancing/pools/cloudflare-pages-origin.mdx @@ -7,7 +7,8 @@ products: - Pages sidebar: order: 3 - +description: >- + This tutorial is intended as an introductory example of how you can leverage Cloudflare's global traffic management. This setup can be useful if you are migrating your production website or application to Pages. --- diff --git a/src/content/docs/magic-firewall/tutorials/graphql-analytics.mdx b/src/content/docs/magic-firewall/tutorials/graphql-analytics.mdx index f756041cdbd13c4..463adbcf845a327 100644 --- a/src/content/docs/magic-firewall/tutorials/graphql-analytics.mdx +++ b/src/content/docs/magic-firewall/tutorials/graphql-analytics.mdx @@ -10,6 +10,8 @@ head: content: GraphQL Analytics reviewed: 2022-03-02 difficulty: Medium +description: >- + Use the GraphQL Analytics API to review data for Magic Firewall network traffic related to rules matching your traffic. You must have an [API token] to use the Analytics API. You will need a Cloudflare Account ID to construct a query for an object. To construct queries for a particular rule, you need the rule ID for each firewall rule. --- import { DashButton } from "~/components"; diff --git a/src/content/docs/magic-network-monitoring/tutorials/ddos-testing-guide.mdx b/src/content/docs/magic-network-monitoring/tutorials/ddos-testing-guide.mdx index 3fee2b2b6779a7a..dcb9cf2779873ac 100644 --- a/src/content/docs/magic-network-monitoring/tutorials/ddos-testing-guide.mdx +++ b/src/content/docs/magic-network-monitoring/tutorials/ddos-testing-guide.mdx @@ -7,7 +7,8 @@ sidebar: head: - tag: title content: Magic Network Monitoring DDoS testing guide - +description: >- + Cloudflare's Magic Network Monitoring (MNM) can be used to test a simulated DDoS attack. To conduct a DDoS test, you would need to: Select and install a trusted and open source DDoS simulation tool. Conduct a small DDoStest attack in a safe test environment. --- diff --git a/src/content/docs/magic-network-monitoring/tutorials/encrypt-network-flow-data.mdx b/src/content/docs/magic-network-monitoring/tutorials/encrypt-network-flow-data.mdx index 89ad03dc3e04dcf..b4e0139eb647ef3 100644 --- a/src/content/docs/magic-network-monitoring/tutorials/encrypt-network-flow-data.mdx +++ b/src/content/docs/magic-network-monitoring/tutorials/encrypt-network-flow-data.mdx @@ -7,6 +7,8 @@ sidebar: head: - tag: title content: Magic Network Monitoring encrypt network flow data +description: >- + Cloudflare Magic Network Monitoring encrypts network flow data. Customers can encrypt the network flowData sent from their router to Cloudflare by routing their network traffic through a device running the WARP client. Then, encrypted network flow traffic can be forwarded from the device to Cloud Flare. --- import { APIRequest } from "~/components" diff --git a/src/content/docs/magic-network-monitoring/tutorials/graphql-analytics.mdx b/src/content/docs/magic-network-monitoring/tutorials/graphql-analytics.mdx index 0d1395df155ca2f..d8094a6a5e6cffc 100644 --- a/src/content/docs/magic-network-monitoring/tutorials/graphql-analytics.mdx +++ b/src/content/docs/magic-network-monitoring/tutorials/graphql-analytics.mdx @@ -9,6 +9,8 @@ sidebar: head: - tag: title content: GraphQL Analytics +description: >- + Use the GraphQL Analytics API to retrieve Magic Network Monitoring flow data. --- import { GlossaryTooltip, DashButton } from "~/components"; diff --git a/src/content/docs/magic-transit/partners/kentik.mdx b/src/content/docs/magic-transit/partners/kentik.mdx index 3c522574174b87e..3f359e548f5dec9 100644 --- a/src/content/docs/magic-transit/partners/kentik.mdx +++ b/src/content/docs/magic-transit/partners/kentik.mdx @@ -3,7 +3,8 @@ title: Kentik pcx_content_type: tutorial sidebar: order: 1 - +description: >- + Kentik is a network observability company that helps detect attacks on your network and triggers Cloudflare's Magic Transit to begin advertisement. The example scenario includes two mitigations, one which pulls the advertisement from the router and a second mitigation that makes an API call to Cloud flare to begin advertising the prefixes. --- import { DashButton } from "~/components"; diff --git a/src/content/docs/magic-wan/zero-trust/warp.mdx b/src/content/docs/magic-wan/zero-trust/warp.mdx index e9be1921931e5f5..8877f62600a2ecb 100644 --- a/src/content/docs/magic-wan/zero-trust/warp.mdx +++ b/src/content/docs/magic-wan/zero-trust/warp.mdx @@ -4,6 +4,8 @@ pcx_content_type: tutorial head: - tag: title content: Use WARP as an on-ramp +description: >- + Use WARP as an on-ramp to Magic WAN and route traffic from user devices with WARP installed to any network connected with Cloudflare Tunnel or Magic IP-layer tunnels (anycast GRE, IPsec, or CNI) Take advantage of the integration between Magic Wan and Magic Firewall and enforce policies at Cloud flare's global network. --- :::note By default, direct WARP-to-WARP connections are not supported for devices located behind Magic WAN with WARP enabled. This is due to issues caused by double encapsulation and asymmetric routing. diff --git a/src/content/docs/page-shield/best-practices/handle-an-alert.mdx b/src/content/docs/page-shield/best-practices/handle-an-alert.mdx index 0a455f18737b2ba..0dce83d6851af09 100644 --- a/src/content/docs/page-shield/best-practices/handle-an-alert.mdx +++ b/src/content/docs/page-shield/best-practices/handle-an-alert.mdx @@ -5,6 +5,8 @@ reviewed: 2025-06-13 sidebar: order: 2 label: Handle an alert +description: >- + If you receive a client-side resource alert, sometimes you need to perform some manual investigation to confirm the nature of the script. Use the guidance provided in this page as a starting point for your investigation. --- import { Steps } from "~/components"; diff --git a/src/content/docs/pages/how-to/deploy-a-wordpress-site.mdx b/src/content/docs/pages/how-to/deploy-a-wordpress-site.mdx index 054320d71702548..8ec90072bcdface 100644 --- a/src/content/docs/pages/how-to/deploy-a-wordpress-site.mdx +++ b/src/content/docs/pages/how-to/deploy-a-wordpress-site.mdx @@ -5,7 +5,8 @@ pcx_content_type: tutorial title: Deploy a static WordPress site tags: - WordPress - +description: >- + This guide assumes that you are: The Administrator account on your WordPress site. Able to install WordPress plugins on the site. You will need to download a new ZIP file from the WordPress dashboard and redeploy to Cloudflare Pages. --- import { DashButton } from "~/components"; diff --git a/src/content/docs/pages/migrations/migrating-from-firebase.mdx b/src/content/docs/pages/migrations/migrating-from-firebase.mdx index 32b344060f5708a..c100fe3fbbdb183 100644 --- a/src/content/docs/pages/migrations/migrating-from-firebase.mdx +++ b/src/content/docs/pages/migrations/migrating-from-firebase.mdx @@ -5,7 +5,8 @@ pcx_content_type: tutorial title: Migrating from Firebase sidebar: hidden: true - +description: >- + This tutorial explains how to migrate an existing Firebase application to Cloudflare Pages. You should already have an existing project deployed on Firebase that you would like to host on Cloudflar Pages. --- In this tutorial, you will learn how to migrate an existing Firebase application to Cloudflare Pages. You should already have an existing project deployed on Firebase that you would like to host on Cloudflare Pages. diff --git a/src/content/docs/pages/migrations/migrating-from-netlify/index.mdx b/src/content/docs/pages/migrations/migrating-from-netlify.mdx similarity index 96% rename from src/content/docs/pages/migrations/migrating-from-netlify/index.mdx rename to src/content/docs/pages/migrations/migrating-from-netlify.mdx index 7a99667b6547cea..ecc2b139f478084 100644 --- a/src/content/docs/pages/migrations/migrating-from-netlify/index.mdx +++ b/src/content/docs/pages/migrations/migrating-from-netlify.mdx @@ -7,7 +7,8 @@ tags: - JavaScript sidebar: hidden: true - +description: >- + Migrating from Netlify to Cloudflare Pages is a step-by-step guide. You will learn how to migrate your application to the cloud. The guide includes instructions for migrating redirects and headers. --- import { DashButton } from "~/components"; diff --git a/src/content/docs/pages/migrations/migrating-from-vercel/index.mdx b/src/content/docs/pages/migrations/migrating-from-vercel.mdx similarity index 92% rename from src/content/docs/pages/migrations/migrating-from-vercel/index.mdx rename to src/content/docs/pages/migrations/migrating-from-vercel.mdx index f6c6940591cdb3b..e5b5602a08b98e6 100644 --- a/src/content/docs/pages/migrations/migrating-from-vercel/index.mdx +++ b/src/content/docs/pages/migrations/migrating-from-vercel.mdx @@ -5,7 +5,8 @@ pcx_content_type: tutorial title: Migrating from Vercel to Pages sidebar: hidden: true - +description: >- + In this tutorial, you will learn how to deploy your Vercel application to Cloudflare Pages. You should already have an existing project deployed on Vercel that you would like to host on Pages. Features such as Vercel's serverless functions are currently not supported in Pages. --- import { Render } from "~/components"; diff --git a/src/content/docs/pages/migrations/migrating-from-workers/index.mdx b/src/content/docs/pages/migrations/migrating-from-workers.mdx similarity index 97% rename from src/content/docs/pages/migrations/migrating-from-workers/index.mdx rename to src/content/docs/pages/migrations/migrating-from-workers.mdx index f7912107add0110..a1741d059003468 100644 --- a/src/content/docs/pages/migrations/migrating-from-workers/index.mdx +++ b/src/content/docs/pages/migrations/migrating-from-workers.mdx @@ -5,7 +5,8 @@ pcx_content_type: tutorial title: Migrating from Workers Sites to Pages sidebar: hidden: true - +description: >- + Migrating from Workers Sites to Cloudflare Pages is a step-by-step guide. migrate your custom headers and redirects to Pages. --- import { DashButton } from "~/components"; diff --git a/src/content/docs/pages/migrations/migrating-jekyll-from-github-pages.mdx b/src/content/docs/pages/migrations/migrating-jekyll-from-github-pages.mdx index 234a137825f8341..53e51fa1f5ac5b7 100644 --- a/src/content/docs/pages/migrations/migrating-jekyll-from-github-pages.mdx +++ b/src/content/docs/pages/migrations/migrating-jekyll-from-github-pages.mdx @@ -7,7 +7,8 @@ tags: - Ruby sidebar: hidden: true - +description: >- + Migrating a Jekyll-based site from GitHub Pages to Cloudflare Pages will take a few short steps. This tutorial assumes: You have an existing GitHub Pages site using [Jekyll](https://jekyllrb.com/) You have some familiarity with Ruby's command-line tools. You know how to use a few basic Git operations. You have read the [Get Started] guide. --- import { DashButton } from "~/components"; diff --git a/src/content/docs/pages/tutorials/add-a-react-form-with-formspree.mdx b/src/content/docs/pages/tutorials/add-a-react-form-with-formspree.mdx index 8c4355d243440ff..4d1e3a6c23e6098 100644 --- a/src/content/docs/pages/tutorials/add-a-react-form-with-formspree.mdx +++ b/src/content/docs/pages/tutorials/add-a-react-form-with-formspree.mdx @@ -6,6 +6,8 @@ title: Add a React form with Formspree tags: - Forms - JavaScript +description: >- + Formspree is a back-end service that handles form processing and storage. You will use Formspree to collect the submitted data and send out email notifications when new submissions arrive, without requiring any server-side coding. --- import { PackageManagers } from "~/components"; diff --git a/src/content/docs/pages/tutorials/add-an-html-form-with-formspree.mdx b/src/content/docs/pages/tutorials/add-an-html-form-with-formspree.mdx index 150f56a2f8ee1c1..5d8f39f98055085 100644 --- a/src/content/docs/pages/tutorials/add-an-html-form-with-formspree.mdx +++ b/src/content/docs/pages/tutorials/add-an-html-form-with-formspree.mdx @@ -5,6 +5,8 @@ pcx_content_type: tutorial title: Add an HTML form with Formspree tags: - Forms +description: >- + Formspree is a back-end service that handles form processing and storage. You will use Formspree to collect the submitted data and send out email notifications when new submissions arrive. --- Almost every website, whether it is a simple HTML portfolio page or a complex JavaScript application, will need a form to collect user data. [Formspree](https://formspree.io) is a back-end service that handles form processing and storage, allowing developers to include forms on their website without writing server-side code or functions. diff --git a/src/content/docs/pages/tutorials/build-an-api-with-pages-functions.mdx b/src/content/docs/pages/tutorials/build-an-api-with-pages-functions.mdx index 722b5900d508b34..c2f155e56c32b76 100644 --- a/src/content/docs/pages/tutorials/build-an-api-with-pages-functions.mdx +++ b/src/content/docs/pages/tutorials/build-an-api-with-pages-functions.mdx @@ -5,6 +5,8 @@ difficulty: Intermediate title: Build an API for your front end using Pages Functions tags: - JavaScript +description: >- + This tutorial builds a full-stack Pages application using the React framework. The API is built using Cloudflare Pages and the [React framework] The API returns blog posts that can be retrieved and rendered in your front end. --- import { YouTube, PackageManagers, DashButton } from "~/components"; diff --git a/src/content/docs/pages/tutorials/forms.mdx b/src/content/docs/pages/tutorials/forms.mdx index 78d6f8b01cc8f04..d65e7ecdcdbc1e0 100644 --- a/src/content/docs/pages/tutorials/forms.mdx +++ b/src/content/docs/pages/tutorials/forms.mdx @@ -6,6 +6,8 @@ title: Create a HTML form tags: - Forms - JavaScript +description: >- + This tutorial will briefly touch upon the basics of HTML forms. This tutorial will make heavy use of Cloudflare Pages and [its Workers integration. --- import { Render } from "~/components"; diff --git a/src/content/docs/pages/tutorials/localize-a-website.mdx b/src/content/docs/pages/tutorials/localize-a-website.mdx index 69adc24652b169e..e46080efbdc23cb 100644 --- a/src/content/docs/pages/tutorials/localize-a-website.mdx +++ b/src/content/docs/pages/tutorials/localize-a-website.mdx @@ -5,6 +5,8 @@ pcx_content_type: tutorial title: Localize a website with HTMLRewriter tags: - JavaScript +description: >- + This tutorial uses the [` HTMLRewriter` functionality in the Cloudflare Workers platform to overlay an i18n layer, automatically translating the site based on the user’s language. This gives developers the ability to efficiently and transparently customize their Workers applications. --- import { Render, PackageManagers, WranglerConfig } from "~/components"; diff --git a/src/content/docs/pages/tutorials/use-r2-as-static-asset-storage-for-pages.mdx b/src/content/docs/pages/tutorials/use-r2-as-static-asset-storage-for-pages.mdx index 10531b738b4c3c4..940e8dd23a2326c 100644 --- a/src/content/docs/pages/tutorials/use-r2-as-static-asset-storage-for-pages.mdx +++ b/src/content/docs/pages/tutorials/use-r2-as-static-asset-storage-for-pages.mdx @@ -8,6 +8,8 @@ products: tags: - Hono - JavaScript +description: >- + This tutorial will teach you how to use R2 as a static asset storage bucket for your Pages app. This is especially helpful if you're hitting the file limit or the max file size limit on Pages. --- import { WranglerConfig } from "~/components"; diff --git a/src/content/docs/pub-sub/learning/integrate-workers.mdx b/src/content/docs/pub-sub/learning/integrate-workers.mdx index a50de8b4195672b..7939566468b9684 100644 --- a/src/content/docs/pub-sub/learning/integrate-workers.mdx +++ b/src/content/docs/pub-sub/learning/integrate-workers.mdx @@ -3,6 +3,8 @@ title: Integrate with Workers pcx_content_type: tutorial sidebar: order: 2 +description: >- + Cloudflare's Pub/Sub lets you connect Cloudflare Workers. Workers can filter, aggregate and mutate every message published to a broker. Workers also mirror those messages to other sources, including external databases. You can use one, many or all of these integrations as needed. --- import { WranglerConfig, Render } from "~/components"; diff --git a/src/content/docs/pulumi/tutorial/add-site.mdx b/src/content/docs/pulumi/tutorial/add-site.mdx index 9bdd1cb9ed7bda3..0fd601dbdc03466 100644 --- a/src/content/docs/pulumi/tutorial/add-site.mdx +++ b/src/content/docs/pulumi/tutorial/add-site.mdx @@ -16,6 +16,8 @@ sidebar: head: - tag: title content: Add a site +description: >- + This tutorial uses Pulumi infrastructure as code (IaC) to familiarize yourself with the resource management lifecycle. In particular, you will create a Zone and a DNS record to resolve your newly added site. --- import { TabItem, Tabs } from "~/components"; diff --git a/src/content/docs/pulumi/tutorial/dynamic-provider-and-wrangler.mdx b/src/content/docs/pulumi/tutorial/dynamic-provider-and-wrangler.mdx index 23019feaa174ed1..9c26cc8a799d4bc 100644 --- a/src/content/docs/pulumi/tutorial/dynamic-provider-and-wrangler.mdx +++ b/src/content/docs/pulumi/tutorial/dynamic-provider-and-wrangler.mdx @@ -4,6 +4,8 @@ pcx_content_type: tutorial reviewed: 2024-11-08 sidebar: order: 5 +description: >- + Pulumi and Wrangler can be used to create different types of resources. You can use Pulumi for some resources supported by the Cloudflare Pulumi provider. Use Wrangler to create other resources such as Workers and D1 databases. --- import { TabItem, Tabs } from "~/components"; diff --git a/src/content/docs/pulumi/tutorial/hello-world.mdx b/src/content/docs/pulumi/tutorial/hello-world.mdx index 39e68c928b42ac8..ac3c2a2b4c579f6 100644 --- a/src/content/docs/pulumi/tutorial/hello-world.mdx +++ b/src/content/docs/pulumi/tutorial/hello-world.mdx @@ -18,6 +18,8 @@ sidebar: head: - tag: title content: Deploy a Worker +description: >- + In this tutorial, you will follow step-by-step instructions to deploy a Hello World application using Cloudflare Workers and Pulumi infrastructure as code (IaC) You will create a Worker, a Route, and a DNS Record to access the application. --- import { TabItem, Tabs } from "~/components"; diff --git a/src/content/docs/pulumi/tutorial/manage-secrets.mdx b/src/content/docs/pulumi/tutorial/manage-secrets.mdx index ef2a1af79cce485..136e58c17d81b59 100644 --- a/src/content/docs/pulumi/tutorial/manage-secrets.mdx +++ b/src/content/docs/pulumi/tutorial/manage-secrets.mdx @@ -4,6 +4,8 @@ pcx_content_type: tutorial reviewed: 2024-09-03 sidebar: order: 2 +description: >- + Pulumi ESC (Environments, Secrets, and Configuration) is a secure and robust secrets management solution. The tutorial will walk you through how to develop with Wrangler while following security best practices. --- In this tutorial, you will receive step-by-step instructions on using Pulumi ESC (Environments, Secrets, and Configuration), which is a secure and robust secrets management solution. diff --git a/src/content/docs/r2-sql/tutorials/end-to-end-pipeline.mdx b/src/content/docs/r2-sql/tutorials/end-to-end-pipeline.mdx index 6e370cf45d231d0..92362be093210b6 100644 --- a/src/content/docs/r2-sql/tutorials/end-to-end-pipeline.mdx +++ b/src/content/docs/r2-sql/tutorials/end-to-end-pipeline.mdx @@ -7,6 +7,8 @@ products: - R2 Data Catalog - R2 SQL - Pipelines +description: >- + This tutorial demonstrates how to build a complete data pipeline using Cloudflare Pipelines, R2 Data Catalog, and R2 SQL. This also includes a sample Python script that creates and sends financial transaction data to your Pipeline. --- import { diff --git a/src/content/docs/r2/examples/ssec.mdx b/src/content/docs/r2/examples/ssec.mdx index aba49c4ebc74bb4..8ac4437ddf77ba9 100644 --- a/src/content/docs/r2/examples/ssec.mdx +++ b/src/content/docs/r2/examples/ssec.mdx @@ -3,6 +3,8 @@ title: Use SSE-C pcx_content_type: tutorial difficulty: Intermediate reviewed: 2024-09-27 +description: >- + The following tutorial shows some snippets for how to use Server-Side Encryption with Customer-Provided Keys (SSE-C) on Cloudflare R2. --- import { Tabs, TabItem } from "~/components"; diff --git a/src/content/docs/r2/tutorials/cloudflare-access.mdx b/src/content/docs/r2/tutorials/cloudflare-access.mdx index 0c841385da2935a..985934153effd71 100644 --- a/src/content/docs/r2/tutorials/cloudflare-access.mdx +++ b/src/content/docs/r2/tutorials/cloudflare-access.mdx @@ -2,6 +2,8 @@ title: Protect an R2 Bucket with Cloudflare Access pcx_content_type: tutorial reviewed: 2024-04-16 +description: >- + You can secure access to R2 buckets using [Cloudflare Access] Access allows you to only allow specific users, groups or applications within your organization to access objects within a bucket. --- import { Render } from "~/components"; diff --git a/src/content/docs/r2/tutorials/mastodon.mdx b/src/content/docs/r2/tutorials/mastodon.mdx index bd06a1b2d473cbf..b9167631f820a50 100644 --- a/src/content/docs/r2/tutorials/mastodon.mdx +++ b/src/content/docs/r2/tutorials/mastodon.mdx @@ -3,7 +3,8 @@ title: Mastodon pcx_content_type: tutorial difficulty: Beginner reviewed: 2023-01-31 - +description: >- + This guide explains how to configure R2 to be the object storage for a self hosted Mastodon instance. You can set up a self-hosted instance in multiple ways. --- import { DashButton } from "~/components"; diff --git a/src/content/docs/r2/tutorials/summarize-pdf.mdx b/src/content/docs/r2/tutorials/summarize-pdf.mdx index 2005298f0d7ff76..6cb3d113c505c30 100644 --- a/src/content/docs/r2/tutorials/summarize-pdf.mdx +++ b/src/content/docs/r2/tutorials/summarize-pdf.mdx @@ -9,6 +9,8 @@ difficulty: Intermediate reviewed: 2024-10-11 tags: - TypeScript +description: >- + Use event notification to summarize PDF files on upload. Use Workers AI to summarize the PDF and store the summary as a text file. --- import { Render, PackageManagers, Details, WranglerConfig } from "~/components"; diff --git a/src/content/docs/r2/tutorials/upload-logs-event-notifications.mdx b/src/content/docs/r2/tutorials/upload-logs-event-notifications.mdx index 5cc96d9223002c0..804094839d74e35 100644 --- a/src/content/docs/r2/tutorials/upload-logs-event-notifications.mdx +++ b/src/content/docs/r2/tutorials/upload-logs-event-notifications.mdx @@ -8,6 +8,8 @@ difficulty: Beginner reviewed: 2024-04-02 tags: - TypeScript +description: >- + This example provides a step-by-step guide on using event notifications to capture and store R2 upload logs in a separate bucket. Prerequisites: A subscription to [Workers Paid], required for using queues. --- import { Render, PackageManagers, WranglerConfig } from "~/components"; diff --git a/src/content/docs/reference-architecture/architectures/cdn.mdx b/src/content/docs/reference-architecture/architectures/cdn.mdx index 4cfbc24f91739c0..b4751aa09fa693c 100644 --- a/src/content/docs/reference-architecture/architectures/cdn.mdx +++ b/src/content/docs/reference-architecture/architectures/cdn.mdx @@ -8,6 +8,8 @@ sidebar: order: 1 label: Content Delivery Network (CDN) reviewed: 2022-12-02 +description: >- + This document is designed for IT or network professionals with some responsibility over or familiarity with their organization's existing infrastructure. This document discusses the traditional challenges customers face with web applications, how the Cloudflare CDN resolves these challenges, and CDN architecture and design. --- import { Render, PublicStats } from "~/components"; diff --git a/src/content/docs/reference-architecture/architectures/cloudflare-sase-with-microsoft.mdx b/src/content/docs/reference-architecture/architectures/cloudflare-sase-with-microsoft.mdx index 05c2ff8cd0d5fd9..a0e5590473f077a 100644 --- a/src/content/docs/reference-architecture/architectures/cloudflare-sase-with-microsoft.mdx +++ b/src/content/docs/reference-architecture/architectures/cloudflare-sase-with-microsoft.mdx @@ -10,6 +10,8 @@ sidebar: order: 1 label: Cloudflare SASE with Microsoft reviewed: 2024-06-13 +description: >- + This document explains how Microsoft and Cloudflare can be integrated together. Microsoft has emerged as a leading provider of cloud applications and services. By leveraging Cloudflar's secure network access, risky user isolation, and application and data visibility, organizations can consolidate management. --- import { Render } from "~/components"; diff --git a/src/content/docs/reference-architecture/architectures/cloudflare-sase-with-sentinelone.mdx b/src/content/docs/reference-architecture/architectures/cloudflare-sase-with-sentinelone.mdx index 3b3edde0e791b6a..7e0ea2842ac1be3 100644 --- a/src/content/docs/reference-architecture/architectures/cloudflare-sase-with-sentinelone.mdx +++ b/src/content/docs/reference-architecture/architectures/cloudflare-sase-with-sentinelone.mdx @@ -9,6 +9,8 @@ sidebar: order: 1 label: Cloudflare SASE with SentinelOne reviewed: 2025-04-30 +description: >- + The integration between Cloudflare One and SentinelOne provides organizations with a comprehensive security solution. The integration works through a service-to-service posture check that identifies devices based on their serial numbers. This allows organizations to ensure that only managed devices can access sensitive resources. --- import { Render } from "~/components"; diff --git a/src/content/docs/reference-architecture/architectures/load-balancing.mdx b/src/content/docs/reference-architecture/architectures/load-balancing.mdx index 8347365b7d79ad1..6afddb704c8636c 100644 --- a/src/content/docs/reference-architecture/architectures/load-balancing.mdx +++ b/src/content/docs/reference-architecture/architectures/load-balancing.mdx @@ -7,6 +7,8 @@ sidebar: order: 1 label: Load Balancing reviewed: 2024-02-26 +description: >- + This document describes a reference architecture for organizations looking to deploy both global and local traffic management load balancing solutions. It is designed for IT, web hosting, and network professionals with some responsibility over or familiarity with their organization's existing infrastructure. --- import { Render, PublicStats } from "~/components"; diff --git a/src/content/docs/reference-architecture/architectures/magic-transit.mdx b/src/content/docs/reference-architecture/architectures/magic-transit.mdx index 0f47bfb2441bf7c..1cfb95301ae3ec4 100644 --- a/src/content/docs/reference-architecture/architectures/magic-transit.mdx +++ b/src/content/docs/reference-architecture/architectures/magic-transit.mdx @@ -8,6 +8,8 @@ sidebar: order: 1 label: Magic Transit reviewed: 2022-12-02 +description: >- + This document describes the key architecture, functionalities, and network deployment options of Cloudflare Magic Transit. Magic Transit provides DDoS protection and traffic acceleration for on-premise, cloud, and hybrid networks. --- import { Render } from "~/components"; diff --git a/src/content/docs/reference-architecture/architectures/multi-vendor.mdx b/src/content/docs/reference-architecture/architectures/multi-vendor.mdx index 23b0e1364fccedf..972caf1fc79a005 100644 --- a/src/content/docs/reference-architecture/architectures/multi-vendor.mdx +++ b/src/content/docs/reference-architecture/architectures/multi-vendor.mdx @@ -8,6 +8,8 @@ sidebar: order: 1 label: Multi-Vendor Architecture reviewed: 2023-08-04 +description: >- + This document describes how a multi-vendor approach for application security and performance can be accomplished. It is designed for IT, security or network professionals with some responsibility over or familiarity with their organization’s existing network infrastructure. --- import { LinkButton, Render } from "~/components"; diff --git a/src/content/docs/reference-architecture/architectures/sase.mdx b/src/content/docs/reference-architecture/architectures/sase.mdx index afb6c84aff9aa29..a17cb58a5f43629 100644 --- a/src/content/docs/reference-architecture/architectures/sase.mdx +++ b/src/content/docs/reference-architecture/architectures/sase.mdx @@ -16,6 +16,8 @@ sidebar: order: 1 label: Secure Access Service Edge (SASE) reviewed: 2024-09-07 +description: >- + This document describes a reference architecture for organizations working towards a SASE architecture. Cloudflare One is a secure access service edge (SASE) platform that protects enterprise applications, users, devices, and networks. --- import { Render, PublicStats } from "~/components"; diff --git a/src/content/docs/reference-architecture/design-guides/designing-ztna-access-policies.mdx b/src/content/docs/reference-architecture/design-guides/designing-ztna-access-policies.mdx index c1bfde6665d2c2f..fee0c15c4ea4f0e 100644 --- a/src/content/docs/reference-architecture/design-guides/designing-ztna-access-policies.mdx +++ b/src/content/docs/reference-architecture/design-guides/designing-ztna-access-policies.mdx @@ -7,6 +7,8 @@ products: sidebar: label: "Designing ZTNA access policies" reviewed: 2024-11-27 +description: >- + This guide is for customers looking to deploy Cloudflare's ZTNA service. It provides best practices and guidelines for how to effectively build the right policies. This guide covers three main sections: Technical prerequisites, building policies, and use cases. --- ## Introduction diff --git a/src/content/docs/reference-architecture/design-guides/extending-cloudflares-benefits-to-saas-providers-end-customers.mdx b/src/content/docs/reference-architecture/design-guides/extending-cloudflares-benefits-to-saas-providers-end-customers.mdx index 74fcf57c35f8b5c..f5bfa83a1cd1c9c 100644 --- a/src/content/docs/reference-architecture/design-guides/extending-cloudflares-benefits-to-saas-providers-end-customers.mdx +++ b/src/content/docs/reference-architecture/design-guides/extending-cloudflares-benefits-to-saas-providers-end-customers.mdx @@ -11,6 +11,8 @@ sidebar: order: 1 label: Cloudflare's benefits for SaaS providers reviewed: 2024-08-29 +description: >- + Extend Cloudflare's benefits to SaaS providers' end-customers. A key aspect of developing a Software-as-a-service (SaaS) application is ensuring its security against the wide array of potential attacks it faces on the Internet. --- ## Introduction diff --git a/src/content/docs/reference-architecture/design-guides/leveraging-cloudflare-for-your-saas-applications.mdx b/src/content/docs/reference-architecture/design-guides/leveraging-cloudflare-for-your-saas-applications.mdx index 9fec989aca79a9b..a52df99e85e1eef 100644 --- a/src/content/docs/reference-architecture/design-guides/leveraging-cloudflare-for-your-saas-applications.mdx +++ b/src/content/docs/reference-architecture/design-guides/leveraging-cloudflare-for-your-saas-applications.mdx @@ -11,6 +11,8 @@ sidebar: order: 1 label: Leveraging Cloudflare for your SaaS applications reviewed: 2024-12-19 +description: >- + This document provides a reference and guidance for using Cloudflare for Platforms. It is designed for SaaS application owners, engineers, or architects who want to learn how to make their application more scalable and secure. --- ## Introduction diff --git a/src/content/docs/reference-architecture/design-guides/network-vpn-migration.mdx b/src/content/docs/reference-architecture/design-guides/network-vpn-migration.mdx index 9417f7eb1956d29..a61e509c8d1d4c8 100644 --- a/src/content/docs/reference-architecture/design-guides/network-vpn-migration.mdx +++ b/src/content/docs/reference-architecture/design-guides/network-vpn-migration.mdx @@ -9,6 +9,8 @@ products: sidebar: label: "Network-focused VPN migration" reviewed: 2024-09-17 +description: >- + The traditional approach of installing and maintaining hardware for remote access to private company networks is no longer secure or cost effective. IT teams are recognizing the cost and effort to install and maintain their own hardware can be offset with more modern, and more secure cloud hosted services. Cloud platforms are also architected for massive scale which significantly increases available bandwidth for end users, therefore improving their experience. --- ## Introduction diff --git a/src/content/docs/reference-architecture/design-guides/secure-application-delivery.mdx b/src/content/docs/reference-architecture/design-guides/secure-application-delivery.mdx index 7eae12983d62992..d5936d8f1cf74c9 100644 --- a/src/content/docs/reference-architecture/design-guides/secure-application-delivery.mdx +++ b/src/content/docs/reference-architecture/design-guides/secure-application-delivery.mdx @@ -6,6 +6,8 @@ products: sidebar: label: Secure application delivery reviewed: 2023-12-18 +description: >- + Cloudflare provides a complete suite of services around application performance, security, reliability, development, and zero trust. Cloudflare’s global network is approximately 50 ms away from about 95% of the Internet-connected population. --- ## Overview and the Cloudflare advantage diff --git a/src/content/docs/reference-architecture/design-guides/securing-guest-wireless-networks.mdx b/src/content/docs/reference-architecture/design-guides/securing-guest-wireless-networks.mdx index e66cb60c683da28..46cad4e7d396f43 100644 --- a/src/content/docs/reference-architecture/design-guides/securing-guest-wireless-networks.mdx +++ b/src/content/docs/reference-architecture/design-guides/securing-guest-wireless-networks.mdx @@ -9,6 +9,8 @@ tags: sidebar: label: Securing guest wireless networks reviewed: 2024-12-17 +description: >- + This guide is designed for IT or security professionals who are looking at Cloudflare to help secure their guest wireless networks. --- import { PublicStats } from "~/components"; diff --git a/src/content/docs/reference-architecture/design-guides/streamlined-waf-deployment-across-zones-and-applications.mdx b/src/content/docs/reference-architecture/design-guides/streamlined-waf-deployment-across-zones-and-applications.mdx index 410476337a31e5a..c5670c521421d39 100644 --- a/src/content/docs/reference-architecture/design-guides/streamlined-waf-deployment-across-zones-and-applications.mdx +++ b/src/content/docs/reference-architecture/design-guides/streamlined-waf-deployment-across-zones-and-applications.mdx @@ -6,6 +6,8 @@ products: sidebar: label: Streamlined WAF deployment across zones and applications reviewed: 2024-12-11 +description: >- + Security perimeters have become less defined compared to the traditional \"Castle and Moat\" deployments that were popular in the past. Within a fixed perimeter, it was relatively easier to secure multiple applications using a single Web Application Firewall (WAF) deployment. Today this approach does not provide enough flexibility as applications and services expand beyond the traditional datacenter. --- ## Introduction diff --git a/src/content/docs/reference-architecture/design-guides/zero-trust-for-saas.mdx b/src/content/docs/reference-architecture/design-guides/zero-trust-for-saas.mdx index 16d1aacedd00e14..b787a079644900b 100644 --- a/src/content/docs/reference-architecture/design-guides/zero-trust-for-saas.mdx +++ b/src/content/docs/reference-architecture/design-guides/zero-trust-for-saas.mdx @@ -15,6 +15,8 @@ sidebar: order: 1 label: Zero Trust for SaaS applications reviewed: 2024-10-22 +description: >- + SaaS applications have become crucial in today's business landscape, particularly with the rise of hybrid workforces. Their Internet accessibility requires greater focus on the security of users and devices. By centralizing security in a cloud network, the trade-off between security and performance is eliminated. --- ## Introduction diff --git a/src/content/docs/reference-architecture/design-guides/zero-trust-for-startups.mdx b/src/content/docs/reference-architecture/design-guides/zero-trust-for-startups.mdx index 1e1e0869a6e4909..6f47bf7e1916c73 100644 --- a/src/content/docs/reference-architecture/design-guides/zero-trust-for-startups.mdx +++ b/src/content/docs/reference-architecture/design-guides/zero-trust-for-startups.mdx @@ -15,6 +15,8 @@ products: sidebar: label: Zero trust architecture for startups reviewed: 2024-04-25 +description: >- + Cloudflare Zero Trust is a simple, (sometimes free!) way for startups to develop a comprehensive Zero Trust strategy. This guide explains how to use Cloudflare to establish the foundation for a Zero Trust architecture. --- ## Introduction diff --git a/src/content/docs/reference-architecture/diagrams/bots/bot-management.mdx b/src/content/docs/reference-architecture/diagrams/bots/bot-management.mdx index 1457d31f58afc45..4e6188cbf037724 100644 --- a/src/content/docs/reference-architecture/diagrams/bots/bot-management.mdx +++ b/src/content/docs/reference-architecture/diagrams/bots/bot-management.mdx @@ -7,6 +7,8 @@ sidebar: order: 1 label: Bot management reviewed: 2024-10-04 +description: >- + Cloudflare has bot management capabilities to help identify and mitigate automated traffic to protect domains from bad bots. Bot Fight Mode and Super Bot Fight mode are options available on Free and Pro/Business accounts respectively. Bot Score is a score from 1 to 99 that indicates how likely that request came from a bot. --- ## Introduction diff --git a/src/content/docs/reference-architecture/diagrams/network/bring-your-own-ip-space-to-cloudflare.mdx b/src/content/docs/reference-architecture/diagrams/network/bring-your-own-ip-space-to-cloudflare.mdx index 85fd5958f482aad..a0891a9ece36544 100644 --- a/src/content/docs/reference-architecture/diagrams/network/bring-your-own-ip-space-to-cloudflare.mdx +++ b/src/content/docs/reference-architecture/diagrams/network/bring-your-own-ip-space-to-cloudflare.mdx @@ -8,6 +8,8 @@ sidebar: order: 1 label: BYOIP to Cloudflare reviewed: 2024-10-24 +description: >- + Cloudflare allows enterprises to bring their IP space to the Cloudflare network. This allows them to gain the security and performance of the platform while still appearing to the rest of the world via their own public IP space. --- ## Introduction diff --git a/src/content/docs/reference-architecture/diagrams/network/optimizing-roaming-experience-with-geolocated-ips.mdx b/src/content/docs/reference-architecture/diagrams/network/optimizing-roaming-experience-with-geolocated-ips.mdx index 59516bb33408d46..b08a780d3f25f92 100644 --- a/src/content/docs/reference-architecture/diagrams/network/optimizing-roaming-experience-with-geolocated-ips.mdx +++ b/src/content/docs/reference-architecture/diagrams/network/optimizing-roaming-experience-with-geolocated-ips.mdx @@ -8,6 +8,8 @@ sidebar: order: 1 label: Device roaming with geolocated IPs reviewed: 2024-12-13 +description: >- + Cloudflare can use private mobile networks (APNs) to connect devices roaming across multiple countries through regional Internet breakouts. This allows for two benefits: Cloudflare. can analyse the traffic, determine the original country of origin, and then ensure that traffic egresses. onto the Internet from an IP address that is geolocated to the same country of. origin. --- ## Introduction diff --git a/src/content/docs/reference-architecture/diagrams/network/protect-data-center-networks.mdx b/src/content/docs/reference-architecture/diagrams/network/protect-data-center-networks.mdx index ec2dc5bdf4d58e2..dcfc92574267be1 100644 --- a/src/content/docs/reference-architecture/diagrams/network/protect-data-center-networks.mdx +++ b/src/content/docs/reference-architecture/diagrams/network/protect-data-center-networks.mdx @@ -12,6 +12,8 @@ sidebar: order: 1 label: Protect data center networks reviewed: 2024-12-19 +description: >- + This document focuses on the reference architecture of using Cloudflare's Magic WAN, Magic Firewall and Cloudflar Gateway services. The document shows how the Cloud Flare Magic Transit architecture works and how it can be used for various use cases. For example, visualize an example of a corporation with a set of Magic Wan and Cloud Firewall services. --- ## Introduction diff --git a/src/content/docs/reference-architecture/diagrams/network/protect-hybrid-cloud-networks-with-cloudflare-magic-transit.mdx b/src/content/docs/reference-architecture/diagrams/network/protect-hybrid-cloud-networks-with-cloudflare-magic-transit.mdx index 1431dd284b4ac6b..08453caf84520d9 100644 --- a/src/content/docs/reference-architecture/diagrams/network/protect-hybrid-cloud-networks-with-cloudflare-magic-transit.mdx +++ b/src/content/docs/reference-architecture/diagrams/network/protect-hybrid-cloud-networks-with-cloudflare-magic-transit.mdx @@ -11,6 +11,8 @@ sidebar: order: 1 label: Protect hybrid cloud networks reviewed: 2024-09-09 +description: >- + Cloudflare Magic Transit provides cloud-native, in-line DDoS protection and traffic acceleration for all your Internet-facing networks. With data centers spanning hundreds of cities and with hundreds of Tbps in DDoS mitigation capacity, Magic Transit can detect and mitigate attacks close to their source of origin in under 3 seconds globally. --- ## Introduction diff --git a/src/content/docs/reference-architecture/diagrams/network/protect-public-networks-with-cloudflare.mdx b/src/content/docs/reference-architecture/diagrams/network/protect-public-networks-with-cloudflare.mdx index 7f57cc7454036d1..5bf3170716792cb 100644 --- a/src/content/docs/reference-architecture/diagrams/network/protect-public-networks-with-cloudflare.mdx +++ b/src/content/docs/reference-architecture/diagrams/network/protect-public-networks-with-cloudflare.mdx @@ -11,6 +11,8 @@ sidebar: order: 1 label: Protect public networks reviewed: 2024-09-30 +description: >- + This document explains how Cloudflare Magic Transit, Magic Firewall, and Gateway work. The products offer in-line, automatic, scalable network protection for all Internet-facing networks. The architecture is designed to protect public networks across multiple clouds and on-premises. --- ## Introduction diff --git a/src/content/docs/reference-architecture/diagrams/network/protecting-sp-networks-from-ddos.mdx b/src/content/docs/reference-architecture/diagrams/network/protecting-sp-networks-from-ddos.mdx index d02b509b610a7eb..95693ba8ba5ca5f 100644 --- a/src/content/docs/reference-architecture/diagrams/network/protecting-sp-networks-from-ddos.mdx +++ b/src/content/docs/reference-architecture/diagrams/network/protecting-sp-networks-from-ddos.mdx @@ -8,6 +8,8 @@ sidebar: order: 1 label: Protect ISP and telecommunications networks from DDoS attacks reviewed: 2024-07-19 +description: >- + Internet service providers (ISPs) and telecommunications companies (such as T-Mobile or British Telecom) are vulnerable to network DDoS attacks. Historically to protect these customers, service providers have relied on hosting their own on-premises mitigation systems. This approach necessitates significant investment to effectively combat the constantly evolving attacks, with capacity being finite in the face of escalating attack sizes. Cloudflare Magic Transit offers cloud-based DDoS mitigation as a service. --- ## Introduction diff --git a/src/content/docs/reference-architecture/diagrams/sase/deploying-self-hosted-VoIP-services-for-hybrid-users.mdx b/src/content/docs/reference-architecture/diagrams/sase/deploying-self-hosted-VoIP-services-for-hybrid-users.mdx index 47464303fcb156b..d48d9247f2c314b 100644 --- a/src/content/docs/reference-architecture/diagrams/sase/deploying-self-hosted-VoIP-services-for-hybrid-users.mdx +++ b/src/content/docs/reference-architecture/diagrams/sase/deploying-self-hosted-VoIP-services-for-hybrid-users.mdx @@ -8,6 +8,8 @@ sidebar: order: 1 label: Self-hosted VoIP for hybrid users reviewed: 2024-10-24 +description: >- + Traditional VPN solutions create several problems for VoIP deployments. Legacy VPN deployments introduce high latency and jitter, which negatively impact voice call quality. Cloudflare improves over traditional VPN solutions by leveraging its global network. --- import { GlossaryTooltip, PublicStats } from "~/components"; diff --git a/src/content/docs/reference-architecture/diagrams/sase/gateway-dns-for-isp.mdx b/src/content/docs/reference-architecture/diagrams/sase/gateway-dns-for-isp.mdx index 4bbf5871fbeafbd..0d8018981aa8e14 100644 --- a/src/content/docs/reference-architecture/diagrams/sase/gateway-dns-for-isp.mdx +++ b/src/content/docs/reference-architecture/diagrams/sase/gateway-dns-for-isp.mdx @@ -7,6 +7,8 @@ sidebar: order: 1 label: DNS filtering solution for Internet service providers reviewed: 2024-10-25 +description: >- + Cloudflare Gateway is a DNS filtering solution for Internet service providers. Service providers can offer enhanced security as a value-added service for residential and mobile subscribers or B2B clients. It is built on Cloudflare's 1.1 public DNS resolver. --- ## Introduction diff --git a/src/content/docs/reference-architecture/diagrams/sase/gateway-for-protective-dns.mdx b/src/content/docs/reference-architecture/diagrams/sase/gateway-for-protective-dns.mdx index 659b1307bb166f1..b4a6ead24a4e820 100644 --- a/src/content/docs/reference-architecture/diagrams/sase/gateway-for-protective-dns.mdx +++ b/src/content/docs/reference-architecture/diagrams/sase/gateway-for-protective-dns.mdx @@ -7,6 +7,8 @@ sidebar: order: 1 label: Protective DNS for governments reviewed: 2024-12-19 +description: >- + Protective DNS services are security services that analyze DNS queries and block access to malicious websites and other harmful online content. As technology becomes increasingly vital for public sector operations, government departments are looking to adopt these cybersecurity services. --- ## Introduction diff --git a/src/content/docs/reference-architecture/diagrams/sase/magic-wan-connector-deployment.mdx b/src/content/docs/reference-architecture/diagrams/sase/magic-wan-connector-deployment.mdx index 9b829a64d778081..02c509a6df15f44 100644 --- a/src/content/docs/reference-architecture/diagrams/sase/magic-wan-connector-deployment.mdx +++ b/src/content/docs/reference-architecture/diagrams/sase/magic-wan-connector-deployment.mdx @@ -7,6 +7,8 @@ sidebar: order: 1 label: Magic WAN Connector deployment reviewed: 2024-11-14 +description: >- + Magic WAN Connector is a virtual (deployed as a VM on a hypervisor) device. It automatically on-ramps traffic for a local network to Cloudflare, and replaces existing, difficult to manage edge hardware. The first decision for a Magic WAN. Connector deployment is its location in the network, and this relates to. whether the organization wants to keep the existing Customer Premises Equipment (CPE, edge. router or firewall at a site) --- ## Introduction diff --git a/src/content/docs/reference-architecture/diagrams/sase/sase-clientless-access-private-dns.mdx b/src/content/docs/reference-architecture/diagrams/sase/sase-clientless-access-private-dns.mdx index 7ce455207befdfe..3e057fa8c6fcbb8 100644 --- a/src/content/docs/reference-architecture/diagrams/sase/sase-clientless-access-private-dns.mdx +++ b/src/content/docs/reference-architecture/diagrams/sase/sase-clientless-access-private-dns.mdx @@ -9,6 +9,8 @@ sidebar: order: 1 label: Access to private apps without having to deploy client agents reviewed: 2024-04-03 +description: >- + Cloudflare Reference Architecture docs: Access to private apps without having to deploy client agents. Using Cloudflare to access private resources - such as applications, servers, and networks that are not exposed directly to the internet - usually involves deploying an (agent) to devices. This document describes an alternative approach which removes the need to deploy software to the user's device. --- ## Introduction diff --git a/src/content/docs/reference-architecture/diagrams/sase/secure-access-to-saas-applications-with-sase.mdx b/src/content/docs/reference-architecture/diagrams/sase/secure-access-to-saas-applications-with-sase.mdx index ddc4ae3c9183598..af16cdc730ec04b 100644 --- a/src/content/docs/reference-architecture/diagrams/sase/secure-access-to-saas-applications-with-sase.mdx +++ b/src/content/docs/reference-architecture/diagrams/sase/secure-access-to-saas-applications-with-sase.mdx @@ -9,6 +9,8 @@ sidebar: order: 1 label: Secure access to SaaS applications reviewed: 2024-12-17 +description: >- + Cloudflare's SASE platform offers the ability to bring a more Zero Trust orientated approach to securing SaaS applications. Centralized policies, based on device posture, identity attributes and granular network location can be applied across one or many Saas applications. Cloudflare becomes the new corporate network. --- ## Introduction diff --git a/src/content/docs/reference-architecture/diagrams/sase/zero-trust-and-virtual-desktop-infrastructure.mdx b/src/content/docs/reference-architecture/diagrams/sase/zero-trust-and-virtual-desktop-infrastructure.mdx index 8ce3e1e18268957..bdbf7ab2aad6be3 100644 --- a/src/content/docs/reference-architecture/diagrams/sase/zero-trust-and-virtual-desktop-infrastructure.mdx +++ b/src/content/docs/reference-architecture/diagrams/sase/zero-trust-and-virtual-desktop-infrastructure.mdx @@ -8,6 +8,8 @@ sidebar: order: 1 label: Zero Trust and Virtual Desktop Infrastructure reviewed: 2024-12-17 +description: >- + This document provides a reference and guidance for using Cloudflare's Zero Trust services. It is designed for IT or security professionals who are looking to replace or secure their Virtual Desktop Infrastructure. It offers a vast improvement over remote access to web applications with greater security. --- ## Introduction diff --git a/src/content/docs/reference-architecture/diagrams/security/fips-140-3.mdx b/src/content/docs/reference-architecture/diagrams/security/fips-140-3.mdx index 62fe2f615387e8c..b3d378698848ad1 100644 --- a/src/content/docs/reference-architecture/diagrams/security/fips-140-3.mdx +++ b/src/content/docs/reference-architecture/diagrams/security/fips-140-3.mdx @@ -5,6 +5,8 @@ sidebar: order: 1 label: FIPS 140 level 3 compliance with Cloudflare Application Services reviewed: 2025-02-06 +description: >- + This document outlines a reference architecture for achieving Federal Information Processing Standard (FIPS) 140 Level 3 compliance using Cloudflare's Application Services. FIPS 140 is a U.S. government standard that specifies security requirements for cryptographic modules protecting sensitive information in computer and telecommunication systems. Level 3 is the most stringent for non-military applications. --- import { Tabs, Steps, TabItem, DirectoryListing } from "~/components"; diff --git a/src/content/docs/reference-architecture/diagrams/security/securing-data-at-rest.mdx b/src/content/docs/reference-architecture/diagrams/security/securing-data-at-rest.mdx index f84b7aa7bf6ee27..36bf2730faadd9d 100644 --- a/src/content/docs/reference-architecture/diagrams/security/securing-data-at-rest.mdx +++ b/src/content/docs/reference-architecture/diagrams/security/securing-data-at-rest.mdx @@ -5,6 +5,8 @@ sidebar: order: 1 label: Securing data at rest reviewed: 2024-05-01 +description: >- + Cloudflare's API-driven [Cloud Access Security Broker] (CASB) works by integrating with SaaS APIs and discovering both unstructured data at rest (documents, spreadsheets, and so on) and also examining general configuration of the application and user accounts to ensure data access controls are correctly configured. Matches are then compared with access controls and findings are generated. --- ## Introduction diff --git a/src/content/docs/reference-architecture/diagrams/security/securing-data-in-transit.mdx b/src/content/docs/reference-architecture/diagrams/security/securing-data-in-transit.mdx index 3da0493044c0eea..08457218d6923f0 100644 --- a/src/content/docs/reference-architecture/diagrams/security/securing-data-in-transit.mdx +++ b/src/content/docs/reference-architecture/diagrams/security/securing-data-in-transit.mdx @@ -8,6 +8,8 @@ head: - tag: title content: "Reference Architecture Diagram: Securing data in transit" reviewed: 2024-05-01 +description: >- + Data in transit is often considered vulnerable to interception or tampering during transmission. Data Loss Prevention (DLP) technologies can be used to inspect the contents of network traffic and block sensitive data from going to a risky destination. --- ## Introduction diff --git a/src/content/docs/reference-architecture/diagrams/security/securing-data-in-use.mdx b/src/content/docs/reference-architecture/diagrams/security/securing-data-in-use.mdx index 7653c724300a78f..7906d37aef9519e 100644 --- a/src/content/docs/reference-architecture/diagrams/security/securing-data-in-use.mdx +++ b/src/content/docs/reference-architecture/diagrams/security/securing-data-in-use.mdx @@ -5,6 +5,8 @@ sidebar: order: 1 label: Securing data in use reviewed: 2024-05-01 +description: >- + Data in use refers to data that is being actively interacted with, processed, or manipulated by applications, systems, or users. For organizations, protecting data in use can be a challenge as it must remain accessible and usable by applications and users. --- ## Introduction diff --git a/src/content/docs/registrar/get-started/transfer-domain-to-cloudflare.mdx b/src/content/docs/registrar/get-started/transfer-domain-to-cloudflare.mdx index ff5e5211205e827..b28a80054619643 100644 --- a/src/content/docs/registrar/get-started/transfer-domain-to-cloudflare.mdx +++ b/src/content/docs/registrar/get-started/transfer-domain-to-cloudflare.mdx @@ -3,6 +3,8 @@ pcx_content_type: tutorial title: Transfer your domain to Cloudflare sidebar: order: 2 +description: >- + This page contains generic instructions on how to transfer your domain to Cloudflare. Each registrar handles transfers a bit differently, but in general, they follow a pattern based on rules set by ICANN, the organization responsible for regulating domain registration. --- import { DashButton, Render, } from "~/components"; diff --git a/src/content/docs/rules/origin-rules/tutorials/change-uri-path-and-host-header.mdx b/src/content/docs/rules/origin-rules/tutorials/change-uri-path-and-host-header.mdx index 972eaf7f130d685..bc6deb8c841b26f 100644 --- a/src/content/docs/rules/origin-rules/tutorials/change-uri-path-and-host-header.mdx +++ b/src/content/docs/rules/origin-rules/tutorials/change-uri-path-and-host-header.mdx @@ -6,6 +6,8 @@ title: Change URI path and Host header products: - Transform Rules - Origin Rules +description: >- + This tutorial shows you how to modify both the URI path and the Host header of incoming requests using Transform Rules and Origin Rules. --- import { Example, Steps, DashButton } from "~/components"; diff --git a/src/content/docs/rules/origin-rules/tutorials/point-to-pages-with-custom-domain.mdx b/src/content/docs/rules/origin-rules/tutorials/point-to-pages-with-custom-domain.mdx index ee8a9c3b378c42a..98ab3087c84b9c5 100644 --- a/src/content/docs/rules/origin-rules/tutorials/point-to-pages-with-custom-domain.mdx +++ b/src/content/docs/rules/origin-rules/tutorials/point-to-pages-with-custom-domain.mdx @@ -6,6 +6,8 @@ title: Point to Pages with a custom domain products: - Pages - Origin Rules +description: >- + This tutorial will instruct you how to configure an origin rule and a DNS record to point to a Pages deployment with a custom domain. The procedure will use the following example values. --- import { Example, DashButton, Steps } from "~/components"; diff --git a/src/content/docs/rules/origin-rules/tutorials/point-to-r2-bucket-with-custom-domain.mdx b/src/content/docs/rules/origin-rules/tutorials/point-to-r2-bucket-with-custom-domain.mdx index 445d42f04c3a520..ee684b950404448 100644 --- a/src/content/docs/rules/origin-rules/tutorials/point-to-r2-bucket-with-custom-domain.mdx +++ b/src/content/docs/rules/origin-rules/tutorials/point-to-r2-bucket-with-custom-domain.mdx @@ -6,6 +6,8 @@ title: Point to R2 bucket with a custom domain products: - R2 - Origin Rules +description: >- + This tutorial will instruct you how to configure an origin rule and a DNS record to point to an R2 bucket configured with a custom domain. The procedure will use the following example values. --- import { Example, DashButton, Steps } from "~/components"; diff --git a/src/content/docs/rules/snippets/when-to-use.mdx b/src/content/docs/rules/snippets/when-to-use.mdx index 4d62f3e5ac26c15..5196e90c920f7e7 100644 --- a/src/content/docs/rules/snippets/when-to-use.mdx +++ b/src/content/docs/rules/snippets/when-to-use.mdx @@ -3,6 +3,8 @@ title: When to use Snippets vs Workers pcx_content_type: design-guide sidebar: order: 8 +description: >- + This guide helps you determine when to use Snippets or Workers on Cloudflare's global network. It provides best practices, comparisons, and real-world use cases to help you choose the right product. --- This guide helps you determine when to use Snippets or Workers on Cloudflare's global network. It provides best practices, comparisons, and real-world use cases to help you choose the right product for your workload. diff --git a/src/content/docs/secrets-store/integrations/workers.mdx b/src/content/docs/secrets-store/integrations/workers.mdx index f0f72b78e2a3a33..feec3287ca2d7fb 100644 --- a/src/content/docs/secrets-store/integrations/workers.mdx +++ b/src/content/docs/secrets-store/integrations/workers.mdx @@ -4,6 +4,8 @@ pcx_content_type: tutorial sidebar: order: 1 label: Workers +description: >- + Cloudflare Secrets Store is a secure, centralized location in which account-level secrets are stored and managed. The secrets are securely encrypted and stored across all Cloudflare data centers. --- import { WranglerConfig, Tabs, TabItem, APIRequest, DashButton } from "~/components"; diff --git a/src/content/docs/ssl/client-certificates/configure-your-mobile-app-or-iot-device.mdx b/src/content/docs/ssl/client-certificates/configure-your-mobile-app-or-iot-device.mdx index 87c64e2c5792e9f..1a8b39bc8af6ff1 100644 --- a/src/content/docs/ssl/client-certificates/configure-your-mobile-app-or-iot-device.mdx +++ b/src/content/docs/ssl/client-certificates/configure-your-mobile-app-or-iot-device.mdx @@ -3,6 +3,8 @@ pcx_content_type: tutorial title: Configure your mobile app or IoT device sidebar: order: 9 +description: >- + This tutorial demonstrates how to configure your Internet-of-things (IoT) device and mobile application to use client certificates with API Shield. The example uses the example of a device that captures temperature readings and transmits them to a Cloudflare-protected API. A mobile application built in Swift for iOS retrieves those readings and displays them. --- This tutorial demonstrates how to configure your Internet-of-things (IoT) device and mobile application to use client certificates with [API Shield](/api-shield/). diff --git a/src/content/docs/ssl/keyless-ssl/hardware-security-modules/aws-cloud-hsm.mdx b/src/content/docs/ssl/keyless-ssl/hardware-security-modules/aws-cloud-hsm.mdx index 16a39972fb6bb26..c614e89e69948cf 100644 --- a/src/content/docs/ssl/keyless-ssl/hardware-security-modules/aws-cloud-hsm.mdx +++ b/src/content/docs/ssl/keyless-ssl/hardware-security-modules/aws-cloud-hsm.mdx @@ -1,6 +1,8 @@ --- pcx_content_type: tutorial title: AWS cloud HSM +description: >- + The CloudHSM service is available on Amazon's cloud. It uses Cloudflare SSL/TLS to connect to the Internet. The service is powered by the gokeyless service. To use it, you need to import the public and private keys to the HSM. --- :::note[Note] diff --git a/src/content/docs/ssl/keyless-ssl/hardware-security-modules/azure-dedicated-hsm.mdx b/src/content/docs/ssl/keyless-ssl/hardware-security-modules/azure-dedicated-hsm.mdx index 1c5ff1d3acc1f06..3cfd88290798ba7 100644 --- a/src/content/docs/ssl/keyless-ssl/hardware-security-modules/azure-dedicated-hsm.mdx +++ b/src/content/docs/ssl/keyless-ssl/hardware-security-modules/azure-dedicated-hsm.mdx @@ -1,6 +1,8 @@ --- pcx_content_type: tutorial title: Azure Dedicated HSM +description: >- + This tutorial uses [Azure Dedicated HSM] — a FIPS 140-2 Level 3 certified implementation based on the Gemalto SafeNet Luna a790. The first step is creating an HSM partition, which can be thought of as an independent logical HSM within your Azure Dedication HSM device. The second step is assigning the partition to the client. --- This tutorial uses [Azure Dedicated HSM](https://azure.microsoft.com/en-us/services/azure-dedicated-hsm/) — a FIPS 140-2 Level 3 certified implementation based on the Gemalto SafeNet Luna a790. diff --git a/src/content/docs/ssl/keyless-ssl/hardware-security-modules/azure-managed-hsm.mdx b/src/content/docs/ssl/keyless-ssl/hardware-security-modules/azure-managed-hsm.mdx index 1fa52b98d40d22f..9f6f09dd8220d85 100644 --- a/src/content/docs/ssl/keyless-ssl/hardware-security-modules/azure-managed-hsm.mdx +++ b/src/content/docs/ssl/keyless-ssl/hardware-security-modules/azure-managed-hsm.mdx @@ -1,6 +1,8 @@ --- pcx_content_type: tutorial title: Azure Managed HSM +description: >- + This tutorial uses Microsoft Azure’s Managed HSM to deploy a VM with the Keyless SSL daemon. Follow these instructions to deploy your keyless server. --- This tutorial uses [Microsoft Azure’s Managed HSM](https://azure.microsoft.com/en-us/updates/akv-managed-hsm-public-preview/) — a FIPS 140-2 Level 3 certified implementation — to deploy a VM with the Keyless SSL daemon. diff --git a/src/content/docs/ssl/keyless-ssl/hardware-security-modules/entrust-nshield-connect.mdx b/src/content/docs/ssl/keyless-ssl/hardware-security-modules/entrust-nshield-connect.mdx index 71ead2449895ad2..9558fbcbdb470e6 100644 --- a/src/content/docs/ssl/keyless-ssl/hardware-security-modules/entrust-nshield-connect.mdx +++ b/src/content/docs/ssl/keyless-ssl/hardware-security-modules/entrust-nshield-connect.mdx @@ -1,6 +1,8 @@ --- pcx_content_type: tutorial title: Entrust nShield Connect +description: >- + This example assumes you have already configured the nShield Connect device and generated or imported your private keys. The key piece of information is the label of the object, `rsa-privkey`. Open up `/etc/keyless/gokeyless.yaml` and immediately after the private key. --- :::note[Note] diff --git a/src/content/docs/ssl/keyless-ssl/hardware-security-modules/google-cloud-hsm.mdx b/src/content/docs/ssl/keyless-ssl/hardware-security-modules/google-cloud-hsm.mdx index f5281a615904081..20b5c50b1f3edad 100644 --- a/src/content/docs/ssl/keyless-ssl/hardware-security-modules/google-cloud-hsm.mdx +++ b/src/content/docs/ssl/keyless-ssl/hardware-security-modules/google-cloud-hsm.mdx @@ -1,6 +1,8 @@ --- pcx_content_type: tutorial title: Google Cloud HSM +description: >- + This tutorial uses Google Cloud HSM — a FIPS 140-2 Level 3 certified implementation. To set up the Google Cloud. HSM, [create a key ring] and indicate its location. --- This tutorial uses [Google Cloud HSM](https://cloud.google.com/kms/docs/hsm) — a FIPS 140-2 Level 3 certified implementation. diff --git a/src/content/docs/ssl/keyless-ssl/hardware-security-modules/ibm-cloud-hsm.mdx b/src/content/docs/ssl/keyless-ssl/hardware-security-modules/ibm-cloud-hsm.mdx index 8bdf9ef3e89ba62..f675fa38bd79565 100644 --- a/src/content/docs/ssl/keyless-ssl/hardware-security-modules/ibm-cloud-hsm.mdx +++ b/src/content/docs/ssl/keyless-ssl/hardware-security-modules/ibm-cloud-hsm.mdx @@ -1,6 +1,8 @@ --- pcx_content_type: tutorial title: IBM cloud HSM +description: >- + The example below was tested using IBM Cloud HSM 7.0, a FIPS 140-2 Level 3 certified implementation based on the Gemalto SafeNet Luna a750. --- The example below was tested using [IBM Cloud HSM 7.0](https://console.bluemix.net/docs/infrastructure/hardware-security-modules/about.html#about-ibm-cloud-hsm), a FIPS 140-2 Level 3 certified implementation based on the Gemalto SafeNet Luna a750. diff --git a/src/content/docs/ssl/keyless-ssl/hardware-security-modules/softhsmv2.mdx b/src/content/docs/ssl/keyless-ssl/hardware-security-modules/softhsmv2.mdx index 75419daedc2cb2c..38d6d73055de657 100644 --- a/src/content/docs/ssl/keyless-ssl/hardware-security-modules/softhsmv2.mdx +++ b/src/content/docs/ssl/keyless-ssl/hardware-security-modules/softhsmv2.mdx @@ -1,6 +1,8 @@ --- pcx_content_type: tutorial title: SoftHSMv2 +description: >- + SoftHSMv2 should not be considered any more secure than storing private keys directly on disk. No attempt is made below to secure this installation; it is provided simply for demonstration purposes. --- :::caution[Important] diff --git a/src/content/docs/terraform/advanced-topics/import-cloudflare-resources.mdx b/src/content/docs/terraform/advanced-topics/import-cloudflare-resources.mdx index 2a33c1db64c8b5e..38cda92cb5ed00e 100644 --- a/src/content/docs/terraform/advanced-topics/import-cloudflare-resources.mdx +++ b/src/content/docs/terraform/advanced-topics/import-cloudflare-resources.mdx @@ -1,6 +1,8 @@ --- pcx_content_type: tutorial title: Import Cloudflare resources +description: >- + The Cloudflare Terraform tool is available in the [Terraform ME] repository. To use it, you must first install the Terraform app on your Mac or Linux system. You must then import Cloudflar resources individually by providing their IDs and names. --- import { Render } from "~/components"; diff --git a/src/content/docs/terraform/tutorial/add-page-rules.mdx b/src/content/docs/terraform/tutorial/add-page-rules.mdx index f74360648d5bfb3..99c5431d60edc45 100644 --- a/src/content/docs/terraform/tutorial/add-page-rules.mdx +++ b/src/content/docs/terraform/tutorial/add-page-rules.mdx @@ -6,6 +6,8 @@ sidebar: head: - tag: title content: Add exceptions with Page Rules +description: >- + Page Rules let you override zone settings for specific URL patterns. Redirects old URLs with a 301 permanent redirect. Increases security to \"Under Attack\" mode for your database endpoint. --- import { Render } from "~/components"; diff --git a/src/content/docs/terraform/tutorial/configure-https-settings.mdx b/src/content/docs/terraform/tutorial/configure-https-settings.mdx index 24dd4bdc5edb1df..8bb28d6ef5c41e2 100644 --- a/src/content/docs/terraform/tutorial/configure-https-settings.mdx +++ b/src/content/docs/terraform/tutorial/configure-https-settings.mdx @@ -6,6 +6,8 @@ sidebar: head: - tag: title content: Configure HTTPS settings +description: >- + This tutorial shows how to enable TLS 1.3, Automatic HTTPS Rewrites, and Strict SSL mode using the updated v5 provider. The instructions below refer to the v5 SDK only. --- import { Render } from "~/components"; diff --git a/src/content/docs/terraform/tutorial/initialize-terraform.mdx b/src/content/docs/terraform/tutorial/initialize-terraform.mdx index 9c910de4a65a37b..4e4ceb15ac94ba0 100644 --- a/src/content/docs/terraform/tutorial/initialize-terraform.mdx +++ b/src/content/docs/terraform/tutorial/initialize-terraform.mdx @@ -6,6 +6,8 @@ sidebar: head: - tag: title content: Introduction to Terraform init +description: >- + This tutorial shows you how to get started with Terraform. You will create a DNS record pointing www.example.com to a web server at 203.0.113.10. The code snippets below refer to the v5 SDK. --- import { DashButton, Render } from "~/components"; diff --git a/src/content/docs/terraform/tutorial/revert-configuration.mdx b/src/content/docs/terraform/tutorial/revert-configuration.mdx index 0ed8a42564b502d..9929a62dcccda3b 100644 --- a/src/content/docs/terraform/tutorial/revert-configuration.mdx +++ b/src/content/docs/terraform/tutorial/revert-configuration.mdx @@ -6,6 +6,8 @@ sidebar: head: - tag: title content: Revert configuration +description: >- + Sometimes, you may have to roll back configuration changes. To revert your configuration, check out the desired branch and ask Terraform to move your Cloudflare settings back in time. The code snippets below refer to the v5 SDK only. --- import { Render } from "~/components"; diff --git a/src/content/docs/terraform/tutorial/track-history.mdx b/src/content/docs/terraform/tutorial/track-history.mdx index e3d6360d0ed74c9..ba08e3182a2c1dd 100644 --- a/src/content/docs/terraform/tutorial/track-history.mdx +++ b/src/content/docs/terraform/tutorial/track-history.mdx @@ -6,6 +6,8 @@ sidebar: head: - tag: title content: Track your history +description: >- + Use environment variables for authentication. The Cloudflare provider v5 reads authentication from environment variables automatically. Store configuration in GitHub in GitHub repository. --- import { Render } from "~/components"; diff --git a/src/content/docs/terraform/tutorial/use-load-balancing.mdx b/src/content/docs/terraform/tutorial/use-load-balancing.mdx index 44e991fe6162244..a13a65a9df94073 100644 --- a/src/content/docs/terraform/tutorial/use-load-balancing.mdx +++ b/src/content/docs/terraform/tutorial/use-load-balancing.mdx @@ -6,6 +6,8 @@ sidebar: head: - tag: title content: Improve performance and reliability +description: >- + Use the Cloudflare Load Balancing product to fail traffic over as needed. Use \"geo steering\" to serve results from an origin server that is geographically closest to your users. --- import { Render } from "~/components"; diff --git a/src/content/docs/turnstile/tutorials/conditionally-enforcing-turnstile.mdx b/src/content/docs/turnstile/tutorials/conditionally-enforcing-turnstile.mdx index da93ec0f5ad74a4..014fb7a3ef3b00f 100644 --- a/src/content/docs/turnstile/tutorials/conditionally-enforcing-turnstile.mdx +++ b/src/content/docs/turnstile/tutorials/conditionally-enforcing-turnstile.mdx @@ -8,6 +8,8 @@ tags: - TypeScript sidebar: order: 6 +description: >- + This tutorial explains how to conditionally enforce Turnstile based on the incoming request, such as a pre-shared secret in a header or a specific IP address. The tutorial will modify the existing [Turnstile demo]:https://github.com/cloudflare/turnstile-demo-blob/main/src. --- This tutorial explains how to conditionally enforce Turnstile based on the incoming request, such as a pre-shared secret in a header or a specific IP address. diff --git a/src/content/docs/turnstile/tutorials/excluding-turnstile-from-e2e-tests.mdx b/src/content/docs/turnstile/tutorials/excluding-turnstile-from-e2e-tests.mdx index e398ffa0345b6bb..4c07c642bb0ee9a 100644 --- a/src/content/docs/turnstile/tutorials/excluding-turnstile-from-e2e-tests.mdx +++ b/src/content/docs/turnstile/tutorials/excluding-turnstile-from-e2e-tests.mdx @@ -8,6 +8,8 @@ tags: - TypeScript sidebar: order: 6 +description: >- + This tutorial explains how to handle Turnstile in your end-to-end (E2E) tests by using TurnStile's dedicated testing keys. --- This tutorial explains how to handle Turnstile in your end-to-end (E2E) tests by using Turnstile's dedicated testing keys. diff --git a/src/content/docs/turnstile/tutorials/implicit-vs-explicit-rendering.mdx b/src/content/docs/turnstile/tutorials/implicit-vs-explicit-rendering.mdx index d874ddec9c05fba..c91c3603484152d 100644 --- a/src/content/docs/turnstile/tutorials/implicit-vs-explicit-rendering.mdx +++ b/src/content/docs/turnstile/tutorials/implicit-vs-explicit-rendering.mdx @@ -8,7 +8,8 @@ tags: - Node.js sidebar: order: 4 - +description: >- + This tutorial will explore the two primary methods of implementing Turnstile to your website via **implicit or explicit rendering. The tutorial includes a detailed explanation, a step by step implementation guide, and examples. --- import { Render } from "~/components"; diff --git a/src/content/docs/turnstile/tutorials/integrating-turnstile-waf-and-bot-management.mdx b/src/content/docs/turnstile/tutorials/integrating-turnstile-waf-and-bot-management.mdx index b9d734f4cc8f279..be2ca69dacc5114 100644 --- a/src/content/docs/turnstile/tutorials/integrating-turnstile-waf-and-bot-management.mdx +++ b/src/content/docs/turnstile/tutorials/integrating-turnstile-waf-and-bot-management.mdx @@ -10,6 +10,8 @@ tags: - JavaScript sidebar: order: 3 +description: >- + This tutorial will guide you on how to integrate Cloudflare Turnstile, Web Application Firewall (WAF), and Bot Management. This combination creates a robust defense against various threats, including automated attacks and malicious login attempts. --- import { Steps, DashButton } from "~/components"; diff --git a/src/content/docs/turnstile/tutorials/login-pages.mdx b/src/content/docs/turnstile/tutorials/login-pages.mdx index 107d091078056a7..57d04b2f52e7ebd 100644 --- a/src/content/docs/turnstile/tutorials/login-pages.mdx +++ b/src/content/docs/turnstile/tutorials/login-pages.mdx @@ -8,7 +8,8 @@ tags: - Node.js sidebar: order: 2 - +description: >- + This tutorial will guide you through integrating Cloudflare Turnstile to protect your web forms, such as login, signup, or contact forms. Learn how to implement the TurnStile widget on the client side and verify the Turn stile token via the Siteverify API. --- import { Steps, DashButton } from "~/components"; diff --git a/src/content/docs/version-management/get-started.mdx b/src/content/docs/version-management/get-started.mdx index 26fe02fcf9ab02f..9a78ab983778fd1 100644 --- a/src/content/docs/version-management/get-started.mdx +++ b/src/content/docs/version-management/get-started.mdx @@ -3,7 +3,8 @@ title: Get started pcx_content_type: tutorial sidebar: order: 3 - +description: >- + By default, Version Management is not enabled on a zone. To enable Version Management, log in to the Cloudflare dashboard. Create default environments for **Production**, **Staging**, and **Development. --- import { Render } from "~/components" diff --git a/src/content/docs/waiting-room/additional-options/test-waiting-room.mdx b/src/content/docs/waiting-room/additional-options/test-waiting-room.mdx index a073315ecb8efa7..a6fbea743f3f726 100644 --- a/src/content/docs/waiting-room/additional-options/test-waiting-room.mdx +++ b/src/content/docs/waiting-room/additional-options/test-waiting-room.mdx @@ -3,7 +3,8 @@ pcx_content_type: tutorial title: Test a waiting room sidebar: order: 9 - +description: >- + Follow this tutorial to test your waiting room behavior in response to load. To accurately simulate traffic, run your test script or planner for a period of time longer than a minute, ideally more than 2-3 minutes. You can run a load test using a variety of tools including loader.io and jmeter. --- import { Details } from "~/components" diff --git a/src/content/docs/workers-ai/guides/tutorials/image-generation-playground/image-generator-flux-newmodels.mdx b/src/content/docs/workers-ai/guides/tutorials/image-generation-playground/image-generator-flux-newmodels.mdx index 8e59f34f1915e7b..ad90b4fa9bca86f 100644 --- a/src/content/docs/workers-ai/guides/tutorials/image-generation-playground/image-generator-flux-newmodels.mdx +++ b/src/content/docs/workers-ai/guides/tutorials/image-generation-playground/image-generator-flux-newmodels.mdx @@ -13,6 +13,8 @@ tags: prev: true next: true +description: >- + In part 2, Kristian expands upon the existing environment built in part 1, by showing you how to integrate new AI models and introduce new parameters that allow you to customize how images are generated. refer to the AI Image Playground [GitHub repository] to follow along. --- import { Details, DirectoryListing, YouTube } from "~/components"; diff --git a/src/content/docs/workers-ai/guides/tutorials/image-generation-playground/image-generator-flux.mdx b/src/content/docs/workers-ai/guides/tutorials/image-generation-playground/image-generator-flux.mdx index b415b6f4ad2f1d8..0a0855441124dca 100644 --- a/src/content/docs/workers-ai/guides/tutorials/image-generation-playground/image-generator-flux.mdx +++ b/src/content/docs/workers-ai/guides/tutorials/image-generation-playground/image-generator-flux.mdx @@ -13,6 +13,8 @@ tags: - TypeScript next: true +description: >- + The new flux models on Workers AI are our most powerful text-to-image AI models yet. Using Workers AI, you can get access to the best models in the industry without having to worry about inference, ops, or deployment. --- import { Details, DirectoryListing, YouTube } from "~/components"; diff --git a/src/content/docs/workers-ai/guides/tutorials/image-generation-playground/image-generator-store-and-catalog.mdx b/src/content/docs/workers-ai/guides/tutorials/image-generation-playground/image-generator-store-and-catalog.mdx index 9a3dc6f1ccc26e2..a07e3b2a14c3d08 100644 --- a/src/content/docs/workers-ai/guides/tutorials/image-generation-playground/image-generator-store-and-catalog.mdx +++ b/src/content/docs/workers-ai/guides/tutorials/image-generation-playground/image-generator-store-and-catalog.mdx @@ -11,6 +11,8 @@ tags: - AI - TypeScript prev: true +description: >- + In the final part of the AI Image Playground series, Kristian teaches how to utilize Cloudflare's [R2] object storage. --- import { Details, DirectoryListing, YouTube } from "~/components"; diff --git a/src/content/docs/workers/static-assets/migration-guides/netlify-to-workers.mdx b/src/content/docs/workers/static-assets/migration-guides/netlify-to-workers.mdx index 979eb3f1671ecc5..4011f169abaae8f 100644 --- a/src/content/docs/workers/static-assets/migration-guides/netlify-to-workers.mdx +++ b/src/content/docs/workers/static-assets/migration-guides/netlify-to-workers.mdx @@ -3,6 +3,8 @@ reviewed: 2025-05-16 difficulty: Beginner pcx_content_type: tutorial title: Migrate from Netlify to Workers +description: >- + Migrate your Netlify application to Cloudflare Workers. You should already have an existing project deployed on Netlified that you would like to host on Workers. Some frameworks like Next.js, Astro with on demand rendering, and others have specific guides for migrating to Workers. Find your build command and build directory. --- import { WranglerConfig } from "~/components"; diff --git a/src/content/docs/workers/static-assets/migration-guides/vercel-to-workers.mdx b/src/content/docs/workers/static-assets/migration-guides/vercel-to-workers.mdx index 76aa927f9870cca..e80d0f1f51b8023 100644 --- a/src/content/docs/workers/static-assets/migration-guides/vercel-to-workers.mdx +++ b/src/content/docs/workers/static-assets/migration-guides/vercel-to-workers.mdx @@ -3,6 +3,8 @@ reviewed: 2025-04-25 difficulty: Beginner pcx_content_type: tutorial title: Migrate from Vercel to Workers +description: >- + Migrate your Vercel application to Cloudflare Workers. You should already have an existing project deployed on Vercel that you would like to host on Workers. Some frameworks like Next.js, Astro with on demand rendering, and others have specific guides for migrating to Workers. Find your build command and build directory. --- import { WranglerConfig } from "~/components"; diff --git a/src/content/docs/workers/tutorials/build-a-jamstack-app.mdx b/src/content/docs/workers/tutorials/build-a-jamstack-app.mdx index 58e971d52d4d1dd..9e0b0479455712c 100644 --- a/src/content/docs/workers/tutorials/build-a-jamstack-app.mdx +++ b/src/content/docs/workers/tutorials/build-a-jamstack-app.mdx @@ -7,6 +7,8 @@ products: - KV tags: - JavaScript +description: >- + This tutorial explains how to build a todo list application using HTML, CSS, and JavaScript. The application data will be stored in Workers KV. This tutorial will guide you through understanding the request/response pattern. --- import { Render, PackageManagers, WranglerConfig } from "~/components"; diff --git a/src/content/docs/workers/tutorials/build-a-qr-code-generator.mdx b/src/content/docs/workers/tutorials/build-a-qr-code-generator.mdx index f2ca1b8efc8d8fa..ef85ba2f0137208 100644 --- a/src/content/docs/workers/tutorials/build-a-qr-code-generator.mdx +++ b/src/content/docs/workers/tutorials/build-a-qr-code-generator.mdx @@ -5,6 +5,8 @@ pcx_content_type: tutorial title: Build a QR code generator tags: - JavaScript +description: >- + This tutorial shows you how to build and publish a Worker application that generates QR codes. The final version of the codebase is available on GitHub. All tutorials assume you have already completed the [Get started guide] --- import { Render, PackageManagers } from "~/components"; diff --git a/src/content/docs/workers/tutorials/build-a-slackbot.mdx b/src/content/docs/workers/tutorials/build-a-slackbot.mdx index e6ee79e00c55ace..2f82ea83c68ef70 100644 --- a/src/content/docs/workers/tutorials/build-a-slackbot.mdx +++ b/src/content/docs/workers/tutorials/build-a-slackbot.mdx @@ -6,6 +6,8 @@ title: Build a Slackbot tags: - Hono - TypeScript +description: >- + This tutorial assumes that you already have a Slack account and the ability to create and manage Slack applications. You will use TypeScript as the programming language and [Hono](https://hono.dev/) as the web framework. The tutorial is recommended for people who are familiar with writing web applications. --- import { Render, TabItem, Tabs, PackageManagers } from "~/components"; diff --git a/src/content/docs/workers/tutorials/connect-to-turso-using-workers.mdx b/src/content/docs/workers/tutorials/connect-to-turso-using-workers.mdx index ad3b9527fbaaa14..bd57bc2ba6f6754 100644 --- a/src/content/docs/workers/tutorials/connect-to-turso-using-workers.mdx +++ b/src/content/docs/workers/tutorials/connect-to-turso-using-workers.mdx @@ -6,6 +6,8 @@ title: Connect to and query your Turso database using Workers tags: - TypeScript - SQL +description: >- + This tutorial will guide you on how to build globally distributed applications with Cloudflare Workers, and [Turso], an edge-hosted distributed database based on libSQL. By using Workers and Turso, you can create applications that are close to your end users without having to maintain or operate infrastructure in tens or hundreds of regions. --- import { Render, PackageManagers, WranglerConfig } from "~/components"; diff --git a/src/content/docs/workers/tutorials/deploy-a-realtime-chat-app.mdx b/src/content/docs/workers/tutorials/deploy-a-realtime-chat-app.mdx index 82331cc05eb47dd..fba4d9ae7d1056e 100644 --- a/src/content/docs/workers/tutorials/deploy-a-realtime-chat-app.mdx +++ b/src/content/docs/workers/tutorials/deploy-a-realtime-chat-app.mdx @@ -7,6 +7,8 @@ products: - Durable Objects tags: - JavaScript +description: >- + This tutorial shows how to deploy a serverless, real-time chat application. The chat application uses a Durable Object to control each chat room. Messages from one user are broadcast to all the other users. --- import { Render, WranglerConfig, DashButton } from "~/components"; diff --git a/src/content/docs/workers/tutorials/generate-youtube-thumbnails-with-workers-and-images.mdx b/src/content/docs/workers/tutorials/generate-youtube-thumbnails-with-workers-and-images.mdx index f02d8b45483fcb9..8fd38ce4aa58344 100644 --- a/src/content/docs/workers/tutorials/generate-youtube-thumbnails-with-workers-and-images.mdx +++ b/src/content/docs/workers/tutorials/generate-youtube-thumbnails-with-workers-and-images.mdx @@ -8,6 +8,8 @@ products: tags: - JavaScript - Rust +description: >- + This tutorial explains how to programmatically generate a custom YouTube thumbnail using Cloudflare Workers. You may want to customize the thumbnail's design, call-to-actions and images used to encourage more viewers to watch your video. --- import { Render, PackageManagers, WranglerConfig, DashButton } from "~/components"; diff --git a/src/content/docs/workers/tutorials/github-sms-notifications-using-twilio.mdx b/src/content/docs/workers/tutorials/github-sms-notifications-using-twilio.mdx index b2122057d3e3d5d..226e54f5952e9fd 100644 --- a/src/content/docs/workers/tutorials/github-sms-notifications-using-twilio.mdx +++ b/src/content/docs/workers/tutorials/github-sms-notifications-using-twilio.mdx @@ -5,6 +5,8 @@ pcx_content_type: tutorial title: GitHub SMS notifications using Twilio tags: - JavaScript +description: >- + This tutorial shows you how to build an SMS notification system on Workers to receive updates on a GitHub repository. Your Worker will send you a text update using Twilio when there is new activity on your repository. --- import { Render, PackageManagers, WranglerConfig } from "~/components"; diff --git a/src/content/docs/workers/tutorials/handle-form-submissions-with-airtable.mdx b/src/content/docs/workers/tutorials/handle-form-submissions-with-airtable.mdx index 6462bb604c3ec15..0585bfb47b232b6 100644 --- a/src/content/docs/workers/tutorials/handle-form-submissions-with-airtable.mdx +++ b/src/content/docs/workers/tutorials/handle-form-submissions-with-airtable.mdx @@ -6,6 +6,8 @@ title: Handle form submissions with Airtable tags: - Forms - JavaScript +description: >- + Use Cloudflare Workers and Airtable to persist form submissions from a front-end user interface. Workers will handle incoming form submissions and use Airtables REST API to asynchronously persist the data in an AIRTable base. --- import { Render, PackageManagers, WranglerConfig } from "~/components"; diff --git a/src/content/docs/workers/tutorials/mysql.mdx b/src/content/docs/workers/tutorials/mysql.mdx index aa4cbcf554a2b26..3a434d1dc321463 100644 --- a/src/content/docs/workers/tutorials/mysql.mdx +++ b/src/content/docs/workers/tutorials/mysql.mdx @@ -9,6 +9,8 @@ tags: - MySQL - TypeScript - SQL +description: >- + This tutorial explains how to connect to a Cloudflare database using TCP Sockets and Hyperdrive. The Workers application you create in this tutorial will interact with a product database inside of MySQL. --- import { Render, PackageManagers, WranglerConfig } from "~/components"; diff --git a/src/content/docs/workers/tutorials/postgres.mdx b/src/content/docs/workers/tutorials/postgres.mdx index 18c1e53268af1d5..bb209e67d3327a3 100644 --- a/src/content/docs/workers/tutorials/postgres.mdx +++ b/src/content/docs/workers/tutorials/postgres.mdx @@ -9,6 +9,8 @@ tags: - PostgreSQL - TypeScript - SQL +description: >- + This tutorial explains how to connect to a Postgres database with Cloudflare Workers. The Workers application you create in this tutorial will interact with a product database inside of Postgres. --- import { Render, PackageManagers, WranglerConfig } from "~/components"; diff --git a/src/content/docs/workers/tutorials/send-emails-with-postmark.mdx b/src/content/docs/workers/tutorials/send-emails-with-postmark.mdx index d18de06b445fd75..4d36cf92611b3ae 100644 --- a/src/content/docs/workers/tutorials/send-emails-with-postmark.mdx +++ b/src/content/docs/workers/tutorials/send-emails-with-postmark.mdx @@ -5,6 +5,8 @@ pcx_content_type: tutorial title: Send Emails With Postmark tags: - JavaScript +description: >- + This tutorial explains how to send transactional emails from Workers using Postmark. To continue with this tutorial, you’ll need:. A [Cloudflare account], if you don’t already have one, and a [registered] domain. --- In this tutorial, you will learn how to send transactional emails from Workers using [Postmark](https://postmarkapp.com/). At the end of this tutorial, you’ll be able to: diff --git a/src/content/docs/workers/tutorials/send-emails-with-resend.mdx b/src/content/docs/workers/tutorials/send-emails-with-resend.mdx index c7f5c4087ef55fb..fba9c74e92c4d64 100644 --- a/src/content/docs/workers/tutorials/send-emails-with-resend.mdx +++ b/src/content/docs/workers/tutorials/send-emails-with-resend.mdx @@ -5,6 +5,8 @@ pcx_content_type: tutorial title: Send Emails With Resend tags: - JavaScript +description: >- + This tutorial explains how to send emails from Cloudflare Workers using Resend. To continue with this tutorial, you’ll need:. A [Cloudflare account], if you don’t already have one, and a [Resend account] A [registered] domain, if you haven't already done so. --- In this tutorial, you will learn how to send transactional emails from Workers using [Resend](https://resend.com/). At the end of this tutorial, you’ll be able to: diff --git a/src/content/docs/workers/tutorials/upload-assets-with-r2.mdx b/src/content/docs/workers/tutorials/upload-assets-with-r2.mdx index d30cdd3d3cf6b25..91d81806bceeca2 100644 --- a/src/content/docs/workers/tutorials/upload-assets-with-r2.mdx +++ b/src/content/docs/workers/tutorials/upload-assets-with-r2.mdx @@ -7,6 +7,8 @@ products: - R2 tags: - TypeScript +description: >- + This tutorial explains how to create a TypeScript-based Cloudflare Workers project that can securely access files from and upload files to a CloudFlare R2 bucket. Cloudflar R2 allows developers to store large amounts of unstructured data without the costly egress bandwidth fees associated with typical cloud storage services. --- import { Render, PackageManagers, WranglerConfig } from "~/components"; diff --git a/src/content/docs/workers/tutorials/using-prisma-postgres-with-workers.mdx b/src/content/docs/workers/tutorials/using-prisma-postgres-with-workers.mdx index 7ce0042da7b97fd..480d90a45ef7ab8 100644 --- a/src/content/docs/workers/tutorials/using-prisma-postgres-with-workers.mdx +++ b/src/content/docs/workers/tutorials/using-prisma-postgres-with-workers.mdx @@ -8,6 +8,8 @@ tags: - SQL - Prisma ORM - PostgreSQL +description: >- + Prisma Postgres is a managed, serverless Postgres database. It supports features like connection pooling, caching, real-time subscriptions, and query optimization recommendations. This tutorial shows you how to set up a Cloudflare Workers project with Prisma ORM. --- import { PackageManagers, DashButton } from "~/components"; diff --git a/src/content/docs/workers/tutorials/workers-kv-from-rust.mdx b/src/content/docs/workers/tutorials/workers-kv-from-rust.mdx index eda3fbbaa03c059..9a10894ccdf5466 100644 --- a/src/content/docs/workers/tutorials/workers-kv-from-rust.mdx +++ b/src/content/docs/workers/tutorials/workers-kv-from-rust.mdx @@ -7,6 +7,8 @@ products: - KV tags: - Rust +description: >- + This tutorial will teach you how to read and write to KV directly from Rust using [workers-rs] You will use Workers KV from Rust to build an app to store and retrieve cities. --- import { Render, WranglerConfig } from "~/components";