Skip to content

Commit 382b3b0

Browse files
committed
Merge branch 'fine_grained_permissioning_changelog' of https://github.com/AdamBouhmad/cloudflare-docs into fine_grained_permissioning_changelog
2 parents ee37b06 + 4fc3afc commit 382b3b0

File tree

147 files changed

+2519
-1942
lines changed

Some content is hidden

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

147 files changed

+2519
-1942
lines changed

.github/ISSUE_TEMPLATE/engineering.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ name: Cloudflare docs website error(s)
22
description: Report an issue with the live documentation website; for example, issues with content display, buggy browser behavior, etc.
33
labels: ["engineering"]
44
assignees:
5-
- KianNH
5+
- kodster28
66
body:
77
- type: textarea
88
id: location-urls

public/__redirects

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -350,14 +350,14 @@
350350
/realtime/sessions-tracks/ /realtime/sfu/sessions-tracks/ 302
351351
/realtime/get-started/ /realtime/sfu/get-started/ 302
352352
/realtime/calls-vs-sfus/ /realtime/sfu/calls-vs-sfus/ 302
353-
/realtime/https-api /realtime/sfu/https-api/ 302
353+
/realtime/https-api/ /realtime/sfu/https-api/ 302
354354
/realtime/datachannels/ /realtime/sfu/datachannels/ 302
355355
/realtime/simulcast/ /realtime/sfu/simulcast/ 302
356356
/realtime/demos/ /realtime/sfu/demos/ 302
357357
/realtime/example-architecture/ /realtime/sfu/example-architecture/ 302
358358
/realtime/pricing/ /realtime/sfu/pricing/ 302
359359
/realtime/changelog/ /realtime/sfu/changelog/ 302
360-
/realtime/realtimekit/get-started /realtime/realtimekit/getting-started/ 302
360+
/realtime/realtimekit/get-started/ /realtime/realtimekit/getting-started/ 302
361361
/realtime/introduction/ /realtime/realtimekit/introduction/ 302
362362
/realtime/concepts/ /realtime/realtimekit/concepts/ 302
363363

@@ -1220,6 +1220,9 @@
12201220
/page-shield/reference/alerts/ /page-shield/alerts/alert-types/ 301
12211221
/page-shield/detection/configure-alerts/ /page-shield/alerts/configure/ 301
12221222

1223+
# pipelines
1224+
/pipelines/concepts/how-pipelines-work/ /pipelines/ 301
1225+
12231226
# queues
12241227
/queues/configuration/ /queues/reference/configuration/ 301
12251228
/queues/javascript-apis/ /queues/reference/javascript-apis/ 301
70.7 KB
Loading
22.7 KB
Loading
2.31 KB
Loading
-20.9 KB
Binary file not shown.
-38.2 KB
Binary file not shown.

src/components/FeedbackPrompt.tsx

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { useState } from "react";
22
import { Turnstile } from "@marsidev/react-turnstile";
33
import { MdOutlineThumbUp, MdOutlineThumbDown } from "react-icons/md";
4+
import { track } from "~/util/zaraz";
45

56
type SetState<T> = React.Dispatch<React.SetStateAction<T>>;
67

@@ -69,6 +70,10 @@ function Form({
6970
const [passedTurnstile, setPassedTurnstile] = useState(false);
7071

7172
function submit(formData: FormData) {
73+
track("submit docs feedback", {
74+
selected_option: option,
75+
selected_reason: formData.get("reason"),
76+
});
7277
formData.set("option", option!);
7378

7479
formData.set("page", document.location.pathname);
@@ -123,7 +128,7 @@ export default function FeedbackPrompt() {
123128
const [submitted, setSubmitted] = useState(false);
124129

125130
return (
126-
<div>
131+
<div id="feedback-form">
127132
<h2>{title}</h2>
128133
{!option && <Buttons setTitle={setTitle} setOption={setOption} />}
129134
{!submitted && (
Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
---
2+
import { z } from "astro:schema";
3+
import { Code } from "@astrojs/starlight/components";
4+
import Details from "~/components/Details.astro";
5+
6+
type Props = z.infer<typeof props>;
7+
8+
const props = z.object({
9+
name: z.string(),
10+
lora: z.boolean(),
11+
});
12+
13+
const { name } = props.parse(Astro.props);
14+
15+
const worker = `
16+
export default {
17+
async fetch(request, env, ctx): Promise<Response> {
18+
const resp = await env.AI.run("${name}", {
19+
encoding: "linear16",
20+
sample_rate: "16000"
21+
}, {
22+
websocket: true
23+
});
24+
return resp;
25+
},
26+
} satisfies ExportedHandler<Env>;
27+
`;
28+
29+
const deployWorker = `
30+
npx wrangler deploy
31+
`;
32+
33+
const clientScript = `
34+
const ws = new WebSocket('wss://<your-worker-url.com>');
35+
36+
ws.onopen = () => {
37+
console.log('Connected to WebSocket');
38+
39+
// Generate and send random audio bytes
40+
// You can replace this part with a function
41+
// that reads from your mic or other audio source
42+
const audioData = generateRandomAudio();
43+
ws.send(audioData);
44+
console.log('Audio data sent');
45+
};
46+
47+
ws.onmessage = (event) => {
48+
// Transcription will be received here
49+
// Add your custom logic to parse the data
50+
console.log('Received:', event.data);
51+
};
52+
53+
ws.onerror = (error) => {
54+
console.error('WebSocket error:', error);
55+
};
56+
57+
ws.onclose = () => {
58+
console.log('WebSocket closed');
59+
};
60+
61+
// Generate random audio data (1 second of noise at 44.1kHz, mono)
62+
function generateRandomAudio() {
63+
const sampleRate = 44100;
64+
const duration = 1;
65+
const numSamples = sampleRate * duration;
66+
const buffer = new ArrayBuffer(numSamples * 2);
67+
const view = new Int16Array(buffer);
68+
69+
for (let i = 0; i < numSamples; i++) {
70+
view[i] = Math.floor(Math.random() * 65536 - 32768);
71+
}
72+
73+
return buffer;
74+
}
75+
`;
76+
77+
---
78+
79+
<>
80+
<Details header="Step 1: Create a Worker that establishes a WebSocket connection">
81+
<Code code={worker} lang="ts" />
82+
</Details>
83+
84+
<Details header="Step 2: Deploy your Worker">
85+
<Code code={deployWorker} lang="sh" />
86+
</Details>
87+
88+
<Details header="Step 3: Write a client script to connect to your Worker and send audio">
89+
<Code code={clientScript} lang="js" />
90+
</Details>
91+
</>
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
---
2+
title: New Confidence Intervals in GraphQL Analytics API
3+
description: Confidence intervals are now supported in the GraphQL Analytics API to show statistical ranges for sampled data results
4+
date: 2025-10-01
5+
---
6+
7+
The GraphQL Analytics API now supports confidence intervals for `sum` and `count` fields on adaptive (sampled) datasets. Confidence intervals provide a statistical range around sampled results, helping verify accuracy and quantify uncertainty.
8+
9+
- **Supported datasets**: Adaptive (sampled) datasets only.
10+
- **Supported fields**: All `sum` and `count` fields.
11+
- **Usage**: The confidence `level` must be provided as a decimal between 0 and 1 (e.g. `0.90`, `0.95`, `0.99`).
12+
- **Default**: If no confidence level is specified, no intervals are returned.
13+
14+
For examples and more details, see the [GraphQL Analytics API documentation](/analytics/graphql-api/features/confidence-intervals/).

0 commit comments

Comments
 (0)