Skip to content

Commit 7706bc3

Browse files
authored
Merge branch 'production' into queues-changelog
2 parents dc28052 + b9304f7 commit 7706bc3

File tree

439 files changed

+4021
-2043
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

439 files changed

+4021
-2043
lines changed

.github/CODEOWNERS

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717

1818
# AI
1919

20-
/src/content/docs/agents/ @irvinebroque @rita3ko @elithrar @thomasgauvin @threepointone
20+
/src/content/docs/agents/ @irvinebroque @rita3ko @elithrar @thomasgauvin @threepointone @kodster28 @KianNH
2121
/src/content/docs/ai-gateway/ @kathayl @G4brym @mchenco @daisyfaithauma @cloudflare/pcx-technical-writing
2222
/src/content/docs/workers-ai/ @rita3ko @craigsdennis @markdembo @mchenco @daisyfaithauma @cloudflare/pcx-technical-writing
2323
/src/content/docs/vectorize/ @elithrar @vy-ton @sejoker @mchenco @cloudflare/pcx-technical-writing
@@ -30,7 +30,7 @@
3030

3131
/src/content/docs/analytics/ @46bit @jherre @jimhawkridge @soheiokamoto @victor-perov @angelampcosta @cloudflare/pcx-technical-writing
3232
/src/content/docs/data-localization/ @soheiokamoto @angelampcosta @cloudflare/pcx-technical-writing
33-
/src/content/docs/logs/ @cmackenzie1 @jherre @soheiokamoto @victor-perov @angelampcosta @cloudflare/pcx-technical-writing
33+
/src/content/docs/logs/ @jherre @soheiokamoto @victor-perov @angelampcosta @cloudflare/pcx-technical-writing
3434

3535
# API & Zones
3636

public/_redirects

Lines changed: 22 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -354,6 +354,7 @@
354354
/dns/foundation-dns/graphql-analytics/ /dns/additional-options/analytics/ 301
355355
/dns/manage-dns-records/how-to/dns-load-balancing/ /dns/manage-dns-records/how-to/round-robin-dns/ 301
356356
/dns/manage-dns-records/how-to/create-root-domain/ /dns/manage-dns-records/how-to/create-zone-apex/ 301
357+
/dns/manage-dns-records/reference/proxied-dns-records/ /dns/proxy-status/ 301
357358
/dns/reference/troubleshooting/ /dns/reference/recommended-third-party-tools/ 301
358359
/dns/zone-setups/partial-setup/convert-partial-to-full/ /dns/zone-setups/conversions/convert-partial-to-full/ 301
359360
/dns/zone-setups/partial-setup/convert-partial-to-secondary/ /dns/zone-setups/conversions/convert-partial-to-secondary/ 301
@@ -414,6 +415,7 @@
414415
/email-security/setup/api-deployment/office365-api/ /email-security/setup/post-delivery-deployment/api/office365-api/ 301
415416
/email-security/email-configuration/retract-settings/gmail-retraction/ /email-security/deployment/api/setup/gsuite-bcc-setup/add-retraction/ 301
416417
/cloudflare-one/insights/email-monitoring/email-security-logs/ /cloudflare-one/insights/email-monitoring/enable-logs/ 301
418+
/cloudflare-one/insights/email-monitoring/phishing-report/ /cloudflare-one/insights/email-monitoring/download-disposition-report/ 301
417419

418420

419421
# firewall
@@ -998,6 +1000,7 @@
9981000
/rules/url-forwarding/bulk-redirects/use-cases/ /rules/url-forwarding/examples/ 301
9991001
/rules/url-forwarding/single-redirects/examples/ /rules/url-forwarding/examples/ 301
10001002
/rules/url-forwarding/dynamic-redirects/parameters/ /rules/url-forwarding/single-redirects/settings/ 301
1003+
/rules/transform/manage/ /rules/transform/ 301
10011004

10021005
# ruleset engine
10031006
/ruleset-engine/rules-language/fields/standard-fields/ /ruleset-engine/rules-language/fields/reference/ 301
@@ -1841,20 +1844,13 @@
18411844
/http-applications/* /version-management/:splat 301
18421845
/http3/* https://www.cloudflare.com/learning/performance/what-is-http3/ 301
18431846
/railgun/* / 301
1844-
/rules/bulk-redirects/* /rules/url-forwarding/bulk-redirects/:splat 301
1845-
/rules/url-forwarding/dynamic-redirects/* /rules/url-forwarding/single-redirects/:splat 301
18461847
/ssl/ssl-tls/* /ssl/reference/:splat 301
18471848
/ssl/reference/cipher-suites/* /ssl/edge-certificates/additional-options/cipher-suites/:splat 301
18481849
/ssl/reference/migration-guides/digicert-update/* /ssl/reference/migration-guides/ 301
18491850
/support/account-management-billing/billing-cloudflare-add-on-services/* https://www.cloudflare.com/plans/ 301
18501851
/tenant/tutorial/* /tenant/get-started/ 301
1851-
/waf/managed-rulesets/* /waf/managed-rules/:splat 301
1852-
/firewall/recipes/* /waf/custom-rules/use-cases/:splat 301
18531852
/workers/wrangler-legacy/* /workers/wrangler/migration/v1-to-v2/wrangler-legacy/:splat 301
1854-
/waf/custom-rulesets/* /waf/account/custom-rulesets/:splat 301
1855-
/waf/custom-rules/custom-rulesets/* /waf/account/custom-rulesets/:splat 301
1856-
/waf/exposed-credentials-check/* /waf/managed-rules/check-for-exposed-credentials/:splat 301
1857-
/waf/security-events/* /waf/analytics/security-events/:splat 301
1853+
/firewall/recipes/* /waf/custom-rules/use-cases/:splat 301
18581854
/web3/polygon-gateway/* /web3/ 301
18591855
/vectorize/configuration/* /vectorize/best-practices/:splat 301
18601856

@@ -1903,15 +1899,6 @@
19031899
## Secure your Internet Traffic
19041900
/learning-paths/secure-internet-traffic/connect-devices/* /learning-paths/secure-internet-traffic/connect-devices-networks/:splat 301
19051901

1906-
1907-
# Old WAF changelog entries
1908-
/waf/change-log/2019-* /waf/change-log/historical-2019/ 301
1909-
/waf/change-log/2020-* /waf/change-log/historical-2020/ 301
1910-
/waf/change-log/2021-* /waf/change-log/historical-2021/ 301
1911-
/waf/change-log/2022-* /waf/change-log/historical-2022/ 301
1912-
/waf/change-log/2023-* /waf/change-log/historical-2023/ 301
1913-
/waf/change-log/2024-* /waf/change-log/historical-2024/ 301
1914-
19151902
# Cloudflare for SaaS
19161903
/ssl/ssl-for-saas/common-tasks/* /cloudflare-for-platforms/cloudflare-for-saas/ 301
19171904
/ssl/ssl-for-saas/reference/* /cloudflare-for-platforms/cloudflare-for-saas/reference/ 301
@@ -1927,6 +1914,24 @@
19271914
/magic-wan/connector/* /magic-wan/configuration/connector/:splat 301
19281915
/magic-wan/configuration/connector/dhcp/* /magic-wan/configuration/connector/network-options/dhcp/:splat 301
19291916

1917+
# Rules
1918+
/rules/bulk-redirects/* /rules/url-forwarding/bulk-redirects/:splat 301
1919+
/rules/url-forwarding/dynamic-redirects/* /rules/url-forwarding/single-redirects/:splat 301
1920+
/rules/custom-error-responses/* /rules/custom-errors/:splat 301
1921+
1922+
# WAF
1923+
/waf/managed-rulesets/* /waf/managed-rules/:splat 301
1924+
/waf/custom-rulesets/* /waf/account/custom-rulesets/:splat 301
1925+
/waf/custom-rules/custom-rulesets/* /waf/account/custom-rulesets/:splat 301
1926+
/waf/exposed-credentials-check/* /waf/managed-rules/check-for-exposed-credentials/:splat 301
1927+
/waf/security-events/* /waf/analytics/security-events/:splat 301
1928+
/waf/change-log/2019-* /waf/change-log/historical-2019/ 301
1929+
/waf/change-log/2020-* /waf/change-log/historical-2020/ 301
1930+
/waf/change-log/2021-* /waf/change-log/historical-2021/ 301
1931+
/waf/change-log/2022-* /waf/change-log/historical-2022/ 301
1932+
/waf/change-log/2023-* /waf/change-log/historical-2023/ 301
1933+
/waf/change-log/2024-* /waf/change-log/historical-2024/ 301
1934+
19301935
# Workers
19311936
/workers/reference/apis/* /workers/runtime-apis/:splat 301
19321937
/workers/templates/pages/* /workers/examples/:splat 301
4.89 MB
Loading
929 KB
Loading
534 KB
Loading

src/components/FieldCatalog.tsx

Lines changed: 23 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { useState } from "react";
1+
import { useEffect, useState, type ChangeEvent } from "react";
22
import FieldBadges from "./fields/FieldBadges";
33
import Markdown from "react-markdown";
44
import type { CollectionEntry } from "astro:content";
@@ -25,7 +25,7 @@ const FieldCatalog = ({ fields }: { fields: Fields }) => {
2525
const categories = [
2626
...new Set(
2727
fields
28-
.map((field) => field.categories)
28+
.map((field) => field.categories ?? [])
2929
.flat()
3030
.sort(),
3131
),
@@ -57,6 +57,21 @@ const FieldCatalog = ({ fields }: { fields: Fields }) => {
5757
return true;
5858
});
5959

60+
useEffect(() => {
61+
// On component load, check for deep-links to categories in the query param
62+
const params = new URLSearchParams(window.location.search);
63+
const categories = params.getAll("field-category");
64+
const searchTerm = params.get("search-term") ?? "";
65+
66+
if (!categories && !searchTerm) return;
67+
68+
setFilters({
69+
...filters,
70+
search: searchTerm,
71+
categories: categories,
72+
});
73+
}, []);
74+
6075
return (
6176
<div className="md:flex">
6277
<div className="mr-8 w-full md:w-1/4">
@@ -79,19 +94,18 @@ const FieldCatalog = ({ fields }: { fields: Fields }) => {
7994
type="checkbox"
8095
className="mr-2"
8196
value={category}
82-
onClick={(e) => {
83-
const target = e.target as HTMLInputElement;
84-
85-
if (target.checked) {
97+
checked={filters.categories.includes(category)}
98+
onChange={(e: ChangeEvent<HTMLInputElement>) => {
99+
if (e.target.checked) {
86100
setFilters({
87101
...filters,
88-
categories: [...filters.categories, target.value],
102+
categories: [...filters.categories, e.target.value],
89103
});
90104
} else {
91105
setFilters({
92106
...filters,
93107
categories: filters.categories.filter(
94-
(f) => f !== target.value,
108+
(f) => f !== e.target.value,
95109
),
96110
});
97111
}
@@ -122,7 +136,7 @@ const FieldCatalog = ({ fields }: { fields: Fields }) => {
122136
>
123137
<div className="-mb-1 flex items-center">
124138
<span
125-
className="font-semibold text-lg text-ellipsis overflow-hidden whitespace-nowrap"
139+
className="overflow-hidden text-ellipsis whitespace-nowrap text-lg font-semibold"
126140
title={`${field.name}: ${field.data_type}`}
127141
>
128142
{field.name}

src/components/ResourcesBySelector.astro

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,8 @@ const resources = await getCollection("docs", ({ data }) => {
2727
const description = page.data.description;
2828
return (
2929
<li>
30-
<a href={`/${page.id}/`}>{page.data.title}</a>
31-
{description && `: ${description}`}
30+
<!-- prettier-ignore -->
31+
<a href={`/${page.id}/`}>{page.data.title}</a>{description && `: ${description}`}
3232
</li>
3333
);
3434
})

src/components/WranglerConfig.astro

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ if (language === "toml") {
4545
---
4646

4747
<Tabs syncKey="wranglerConfig">
48-
<TabItem label="wrangler.json" icon="seti:json">
48+
<TabItem label="wrangler.jsonc" icon="seti:json">
4949
<Code lang="jsonc" code={json} />
5050
</TabItem>
5151
<TabItem label="wrangler.toml" icon="setting">
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
---
2+
import { z } from "astro:schema";
3+
import { Code } from "@astrojs/starlight/components";
4+
import Details from "~/components/Details.astro";
5+
import Render from "~/components/Render.astro";
6+
7+
type Props = z.infer<typeof props>;
8+
9+
const props = z.object({
10+
name: z.string(),
11+
});
12+
13+
const { name } = props.parse(Astro.props);
14+
15+
const worker = `import { Buffer } from 'node:buffer';
16+
export interface Env {
17+
AI: Ai;
18+
}
19+
const URL = "https://pub-dbcf9f0bd3af47ca9d40971179ee62de.r2.dev/02f6edc0-1f7b-4272-bd17-f05335104725/audio.mp3";
20+
export default {
21+
async fetch(request, env, ctx): Promise<Response> {
22+
const mp3 = await fetch(URL);
23+
if (!mp3.ok) {
24+
return Response.json({ error: \`Failed to fetch MP3: \${mp3.status}\` });
25+
}
26+
const mp3Buffer = await mp3.arrayBuffer();
27+
const base64 = Buffer.from(mp3Buffer, 'binary').toString("base64");
28+
try {
29+
const res = await env.AI.run("${name}", {
30+
"audio": base64
31+
});
32+
return Response.json(res);
33+
}
34+
catch (e) {
35+
console.error(e);
36+
return Response.json({ error: "An unexpected error occurred" });
37+
}
38+
},
39+
} satisfies ExportedHandler<Env>
40+
`;
41+
---
42+
43+
<Details header="Workers - TypeScript">
44+
<Code code={worker} lang="ts" />
45+
<Render file="nodejs-compat-howto" product="workers" />
46+
</Details>
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
---
2+
title: New Rules Templates for One-Click Rule Creation
3+
description: Quickly set up common rules with pre-built templates.
4+
products:
5+
- rules
6+
date: 2024-09-05T11:00:00Z
7+
---
8+
9+
Now, you can create **common rule configurations** in just **one click** using Rules Templates.
10+
11+
![Rules Templates](~/assets/images/changelog-next/rules/rules-templates.gif)
12+
13+
What you can do:
14+
- **Pick a pre-built rule** – Choose from a library of templates.
15+
- **One-click setup** – Deploy best practices instantly.
16+
- **Customize as needed** – Adjust templates to fit your setup.
17+
18+
Template cards are now also available directly in the rule builder for each product.
19+
20+
Need more ideas? Check out the [Examples gallery](/rules/examples/) in our documentation.

0 commit comments

Comments
 (0)