From 65d22900249ef1fbb7271ee3ca7783b165ecf362 Mon Sep 17 00:00:00 2001 From: vy-ton Date: Tue, 14 Oct 2025 15:40:18 -0400 Subject: [PATCH 1/7] DO Data Studio docs & changelog --- .../workers/changelog/do-data-studio.png | Bin 0 -> 43490 bytes ...2025-10-09-durable-objects-data-studio.mdx | 22 +++++++++++ .../observability/data-studio.mdx | 37 ++++++++++++++++++ .../release-notes/durable-objects.yaml | 4 ++ 4 files changed, 63 insertions(+) create mode 100644 src/assets/images/workers/changelog/do-data-studio.png create mode 100644 src/content/changelog/durable-objects/2025-10-09-durable-objects-data-studio.mdx create mode 100644 src/content/docs/durable-objects/observability/data-studio.mdx diff --git a/src/assets/images/workers/changelog/do-data-studio.png b/src/assets/images/workers/changelog/do-data-studio.png new file mode 100644 index 0000000000000000000000000000000000000000..60b64a67f8e07b5aca65d101add033032a7f6f4d GIT binary patch literal 43490 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 PKMw>Y?`Ph7==pyE7>XFj literal 0 HcmV?d00001 diff --git a/src/content/changelog/durable-objects/2025-10-09-durable-objects-data-studio.mdx b/src/content/changelog/durable-objects/2025-10-09-durable-objects-data-studio.mdx new file mode 100644 index 000000000000000..838abd237d84a17 --- /dev/null +++ b/src/content/changelog/durable-objects/2025-10-09-durable-objects-data-studio.mdx @@ -0,0 +1,22 @@ +urabl--- +title: New Durable Objects Data Studio +description: Access Durable Objects stored data via Cloudflare dashboard. +products: + - durable-objects + - workers +date: 2025-10-09 +--- + +import { DashButton } from "~/components"; + +![Screenshot of Durable Objects Data Studio](~/assets/images/workers/changelog/do-data-studio.png) + +You can now view and write to each Durable Object's storage using a UI editor on the Cloudflare dashboard. Only Durable Objects using [SQLite storage](/durable-objects/best-practices/access-durable-objects-storage/#create-sqlite-backed-durable-object-class) can use Data Studio. + + + +Data Studio unlocks easier data accesswith Durable Objects. Before Data Studio, querying your Durable Objects data required deploying a Worker. + +To access Data Studio, you can provide an object's unique name or ID generated by Cloudflare. Data Studio requires you to have at least `Workers Platform Admin` [role](/fundamentals/manage-members/roles/), and all queries are captured with audit logging for your security and compliance needs. + +To learn more, visit the Data Studio [documentation](/durable-objects/observability/data-studio/). If you have feedback or suggestions for the new Data Studio, please share your experience on [Discord](https://discord.com/channels/595317990191398933/773219443911819284) \ No newline at end of file diff --git a/src/content/docs/durable-objects/observability/data-studio.mdx b/src/content/docs/durable-objects/observability/data-studio.mdx new file mode 100644 index 000000000000000..c4480aad39ab88a --- /dev/null +++ b/src/content/docs/durable-objects/observability/data-studio.mdx @@ -0,0 +1,37 @@ +han--- +title: Data Studio +pcx_content_type: concept +sidebar: + order: 7 + badge: Beta +--- + +import { DashButton, Steps } from "~/components"; + +Each Durable Object can access private storage using [Storage API](/durable-objects/api/sqlite-storage-api/) available on `ctx.storage`. To view and write to an object's stored data, you can use Durable Objects Data Studio as a UI editor available on the Cloudflare dashboard. + +:::note[Data Studio only supported for SQLite-backed objects] + +You can only use Data Studio to access data for [SQLite-backed Durable Objects](/durable-objects/best-practices/access-durable-objects-storage/#create-sqlite-backed-durable-object-class). + +At the moment, you can only access data persisted using the [SQL API](/durable-objects/api/sqlite-storage-api/#sql-api). Key-value data persited using the KV API will be read-only in the future. +::: + +## View Data Studio + +You need to have at least the `Workers Platform Admin` [role](/fundamentals/manage-members/roles/) to access Data Studio. + + +1. In the Cloudflare dashboard, go to the **Durable Objects** page. + + +2. Select an existing Durable Object namespace. +3. Select the **Data Studio** button. +4. Provide a Durable Object identifier, either a user-provided [unique name](/durable-objects/api/namespace/#getbyname) or a Cloudflare-generated [Durable Object ID](/durable-objects/api/id/). + + +## Audit logging + +All queries issued by the Data Studio are logged with [audit logging v1](/fundamentals/account/account-security/review-audit-logs/). + +- Each query emits two audit logs, a `query executed` action and a `query completed` action indicating query success or failure. \ No newline at end of file diff --git a/src/content/release-notes/durable-objects.yaml b/src/content/release-notes/durable-objects.yaml index f233f052507f5a3..c6c1583d502db33 100644 --- a/src/content/release-notes/durable-objects.yaml +++ b/src/content/release-notes/durable-objects.yaml @@ -3,6 +3,10 @@ link: "/durable-objects/release-notes/" productName: Durable Objects productLink: "/durable-objects/" entries: + - publish_date: "2025-10-09" + title: Durable Objects can access stored data with UI editor + description: |- + Durable Objects stored data can be viewed and written using [Data Studio](/durable-objects/observability/data-studio/) on the Cloudflare dashboard. Only Durable Objects using [SQLite storage](/durable-objects/best-practices/access-durable-objects-storage/#create-sqlite-backed-durable-object-class) can use Data Studio. - publish_date: "2025-08-21" title: Durable Objects stubs can now be directly constructed by name description: |- From c9827f081fa48bee5f10520d2030e9ee0861da95 Mon Sep 17 00:00:00 2001 From: vy-ton Date: Tue, 14 Oct 2025 15:46:55 -0400 Subject: [PATCH 2/7] fixup --- .../durable-objects/2025-10-09-durable-objects-data-studio.mdx | 2 +- src/content/docs/durable-objects/observability/data-studio.mdx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/content/changelog/durable-objects/2025-10-09-durable-objects-data-studio.mdx b/src/content/changelog/durable-objects/2025-10-09-durable-objects-data-studio.mdx index 838abd237d84a17..2674aa479924f97 100644 --- a/src/content/changelog/durable-objects/2025-10-09-durable-objects-data-studio.mdx +++ b/src/content/changelog/durable-objects/2025-10-09-durable-objects-data-studio.mdx @@ -1,4 +1,4 @@ -urabl--- +--- title: New Durable Objects Data Studio description: Access Durable Objects stored data via Cloudflare dashboard. products: diff --git a/src/content/docs/durable-objects/observability/data-studio.mdx b/src/content/docs/durable-objects/observability/data-studio.mdx index c4480aad39ab88a..edfd6f82c8559e9 100644 --- a/src/content/docs/durable-objects/observability/data-studio.mdx +++ b/src/content/docs/durable-objects/observability/data-studio.mdx @@ -1,4 +1,4 @@ -han--- +--- title: Data Studio pcx_content_type: concept sidebar: From 3abf13ec47017704427e7770b107a3b9a6953da7 Mon Sep 17 00:00:00 2001 From: vy-ton Date: Tue, 14 Oct 2025 15:49:02 -0400 Subject: [PATCH 3/7] fix date --- ...ta-studio.mdx => 2025-10-16-durable-objects-data-studio.mdx} | 2 +- src/content/release-notes/durable-objects.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) rename src/content/changelog/durable-objects/{2025-10-09-durable-objects-data-studio.mdx => 2025-10-16-durable-objects-data-studio.mdx} (98%) diff --git a/src/content/changelog/durable-objects/2025-10-09-durable-objects-data-studio.mdx b/src/content/changelog/durable-objects/2025-10-16-durable-objects-data-studio.mdx similarity index 98% rename from src/content/changelog/durable-objects/2025-10-09-durable-objects-data-studio.mdx rename to src/content/changelog/durable-objects/2025-10-16-durable-objects-data-studio.mdx index 2674aa479924f97..a9452125cd55716 100644 --- a/src/content/changelog/durable-objects/2025-10-09-durable-objects-data-studio.mdx +++ b/src/content/changelog/durable-objects/2025-10-16-durable-objects-data-studio.mdx @@ -4,7 +4,7 @@ description: Access Durable Objects stored data via Cloudflare dashboard. products: - durable-objects - workers -date: 2025-10-09 +date: 2025-10-16 --- import { DashButton } from "~/components"; diff --git a/src/content/release-notes/durable-objects.yaml b/src/content/release-notes/durable-objects.yaml index c6c1583d502db33..44cfa91b5a7f35a 100644 --- a/src/content/release-notes/durable-objects.yaml +++ b/src/content/release-notes/durable-objects.yaml @@ -3,7 +3,7 @@ link: "/durable-objects/release-notes/" productName: Durable Objects productLink: "/durable-objects/" entries: - - publish_date: "2025-10-09" + - publish_date: "2025-10-16" title: Durable Objects can access stored data with UI editor description: |- Durable Objects stored data can be viewed and written using [Data Studio](/durable-objects/observability/data-studio/) on the Cloudflare dashboard. Only Durable Objects using [SQLite storage](/durable-objects/best-practices/access-durable-objects-storage/#create-sqlite-backed-durable-object-class) can use Data Studio. From 97a0e1bde450ea82314fd18f62b11a7a9337fe28 Mon Sep 17 00:00:00 2001 From: vy-ton Date: Tue, 14 Oct 2025 21:01:46 -0400 Subject: [PATCH 4/7] more info --- .../2025-10-16-durable-objects-data-studio.mdx | 6 +++--- .../docs/durable-objects/observability/data-studio.mdx | 9 ++++++--- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/content/changelog/durable-objects/2025-10-16-durable-objects-data-studio.mdx b/src/content/changelog/durable-objects/2025-10-16-durable-objects-data-studio.mdx index a9452125cd55716..14db0f8e8abed1d 100644 --- a/src/content/changelog/durable-objects/2025-10-16-durable-objects-data-studio.mdx +++ b/src/content/changelog/durable-objects/2025-10-16-durable-objects-data-studio.mdx @@ -1,5 +1,5 @@ --- -title: New Durable Objects Data Studio +title: Durable Objects Data Studio in Beta description: Access Durable Objects stored data via Cloudflare dashboard. products: - durable-objects @@ -15,8 +15,8 @@ You can now view and write to each Durable Object's storage using a UI editor on -Data Studio unlocks easier data accesswith Durable Objects. Before Data Studio, querying your Durable Objects data required deploying a Worker. +Data Studio unlocks easier data access with Durable Objects. Before, querying your Durable Objects data required deploying a Worker. -To access Data Studio, you can provide an object's unique name or ID generated by Cloudflare. Data Studio requires you to have at least `Workers Platform Admin` [role](/fundamentals/manage-members/roles/), and all queries are captured with audit logging for your security and compliance needs. +To access a Durable Object, you can provide an object's unique name or ID generated by Cloudflare. Data Studio requires you to have at least the `Workers Platform Admin` role, and all queries are captured with audit logging for your security and compliance needs. Queries executed by Data Studio send requests to your remote, deployed objects and incur normal usage billing. To learn more, visit the Data Studio [documentation](/durable-objects/observability/data-studio/). If you have feedback or suggestions for the new Data Studio, please share your experience on [Discord](https://discord.com/channels/595317990191398933/773219443911819284) \ No newline at end of file diff --git a/src/content/docs/durable-objects/observability/data-studio.mdx b/src/content/docs/durable-objects/observability/data-studio.mdx index edfd6f82c8559e9..1f194dbb61a5126 100644 --- a/src/content/docs/durable-objects/observability/data-studio.mdx +++ b/src/content/docs/durable-objects/observability/data-studio.mdx @@ -14,7 +14,7 @@ Each Durable Object can access private storage using [Storage API](/durable-obje You can only use Data Studio to access data for [SQLite-backed Durable Objects](/durable-objects/best-practices/access-durable-objects-storage/#create-sqlite-backed-durable-object-class). -At the moment, you can only access data persisted using the [SQL API](/durable-objects/api/sqlite-storage-api/#sql-api). Key-value data persited using the KV API will be read-only in the future. +At the moment, you can only read/write data persisted using the [SQL API](/durable-objects/api/sqlite-storage-api/#sql-api). Key-value data persisted using the KV API will be made read-only in the future. ::: ## View Data Studio @@ -30,8 +30,11 @@ You need to have at least the `Workers Platform Admin` [role](/fundamentals/mana 4. Provide a Durable Object identifier, either a user-provided [unique name](/durable-objects/api/namespace/#getbyname) or a Cloudflare-generated [Durable Object ID](/durable-objects/api/id/). +- Queries executed by Data Studio send requests your remote, deployed objects and incur [usage billing](/durable-objects/platform/pricing/) for requests, duration, rows read, and rows written. You should use Data Studio as you would handle your production, running objects. +- In the **Query** tab when running all statements, each SQL statement is sent as a separate Durable Object request. + ## Audit logging -All queries issued by the Data Studio are logged with [audit logging v1](/fundamentals/account/account-security/review-audit-logs/). +All queries issued by the Data Studio are logged with [audit logging v1](/fundamentals/account/account-security/review-audit-logs/) for your security and compliance needs. -- Each query emits two audit logs, a `query executed` action and a `query completed` action indicating query success or failure. \ No newline at end of file +- Each query emits two audit logs, a `query executed` action and a `query completed` action indicating query success or failure. `query_id` in the log event can be used to correlate the two events per query. \ No newline at end of file From b2b953b21e3494b1cab2a5ff1ed54890bff0834a Mon Sep 17 00:00:00 2001 From: Jun Lee Date: Wed, 15 Oct 2025 08:41:07 +0100 Subject: [PATCH 5/7] PCX review --- .../durable-objects/2025-10-16-durable-objects-data-studio.mdx | 2 +- src/content/docs/durable-objects/observability/data-studio.mdx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/content/changelog/durable-objects/2025-10-16-durable-objects-data-studio.mdx b/src/content/changelog/durable-objects/2025-10-16-durable-objects-data-studio.mdx index 14db0f8e8abed1d..899b790bad1fe4c 100644 --- a/src/content/changelog/durable-objects/2025-10-16-durable-objects-data-studio.mdx +++ b/src/content/changelog/durable-objects/2025-10-16-durable-objects-data-studio.mdx @@ -1,5 +1,5 @@ --- -title: Durable Objects Data Studio in Beta +title: View and edit Durable Object data in UI with Durable Objects Data Studio (Beta) description: Access Durable Objects stored data via Cloudflare dashboard. products: - durable-objects diff --git a/src/content/docs/durable-objects/observability/data-studio.mdx b/src/content/docs/durable-objects/observability/data-studio.mdx index 1f194dbb61a5126..72895fe554942d0 100644 --- a/src/content/docs/durable-objects/observability/data-studio.mdx +++ b/src/content/docs/durable-objects/observability/data-studio.mdx @@ -30,7 +30,7 @@ You need to have at least the `Workers Platform Admin` [role](/fundamentals/mana 4. Provide a Durable Object identifier, either a user-provided [unique name](/durable-objects/api/namespace/#getbyname) or a Cloudflare-generated [Durable Object ID](/durable-objects/api/id/). -- Queries executed by Data Studio send requests your remote, deployed objects and incur [usage billing](/durable-objects/platform/pricing/) for requests, duration, rows read, and rows written. You should use Data Studio as you would handle your production, running objects. +- Queries executed by Data Studio send requests to your remote, deployed objects and incur [usage billing](/durable-objects/platform/pricing/) for requests, duration, rows read, and rows written. You should use Data Studio as you would handle your production, running objects. - In the **Query** tab when running all statements, each SQL statement is sent as a separate Durable Object request. ## Audit logging From 5c5e3e0b59b798988dd6b697f3f3ccf0c76a5161 Mon Sep 17 00:00:00 2001 From: Vy Ton Date: Wed, 15 Oct 2025 09:48:08 -0400 Subject: [PATCH 6/7] Update 2025-10-16-durable-objects-data-studio.mdx --- .../2025-10-16-durable-objects-data-studio.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/content/changelog/durable-objects/2025-10-16-durable-objects-data-studio.mdx b/src/content/changelog/durable-objects/2025-10-16-durable-objects-data-studio.mdx index 899b790bad1fe4c..1bc7c05d362afee 100644 --- a/src/content/changelog/durable-objects/2025-10-16-durable-objects-data-studio.mdx +++ b/src/content/changelog/durable-objects/2025-10-16-durable-objects-data-studio.mdx @@ -1,5 +1,5 @@ --- -title: View and edit Durable Object data in UI with Durable Objects Data Studio (Beta) +title: View and edit Durable Object data in UI with Data Studio (Beta) description: Access Durable Objects stored data via Cloudflare dashboard. products: - durable-objects @@ -19,4 +19,4 @@ Data Studio unlocks easier data access with Durable Objects. Before, querying yo To access a Durable Object, you can provide an object's unique name or ID generated by Cloudflare. Data Studio requires you to have at least the `Workers Platform Admin` role, and all queries are captured with audit logging for your security and compliance needs. Queries executed by Data Studio send requests to your remote, deployed objects and incur normal usage billing. -To learn more, visit the Data Studio [documentation](/durable-objects/observability/data-studio/). If you have feedback or suggestions for the new Data Studio, please share your experience on [Discord](https://discord.com/channels/595317990191398933/773219443911819284) \ No newline at end of file +To learn more, visit the Data Studio [documentation](/durable-objects/observability/data-studio/). If you have feedback or suggestions for the new Data Studio, please share your experience on [Discord](https://discord.com/channels/595317990191398933/773219443911819284) From 91d91bff15d2ee6e6cd4320b79a2e1c9e218210a Mon Sep 17 00:00:00 2001 From: Vy Ton Date: Wed, 15 Oct 2025 09:48:48 -0400 Subject: [PATCH 7/7] Update 2025-10-16-durable-objects-data-studio.mdx --- .../durable-objects/2025-10-16-durable-objects-data-studio.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/content/changelog/durable-objects/2025-10-16-durable-objects-data-studio.mdx b/src/content/changelog/durable-objects/2025-10-16-durable-objects-data-studio.mdx index 1bc7c05d362afee..10b3c5b7270cdbe 100644 --- a/src/content/changelog/durable-objects/2025-10-16-durable-objects-data-studio.mdx +++ b/src/content/changelog/durable-objects/2025-10-16-durable-objects-data-studio.mdx @@ -15,7 +15,7 @@ You can now view and write to each Durable Object's storage using a UI editor on -Data Studio unlocks easier data access with Durable Objects. Before, querying your Durable Objects data required deploying a Worker. +Data Studio unlocks easier data access with Durable Objects for prototyping application data models to debugging production storage usage. Before, querying your Durable Objects data required deploying a Worker. To access a Durable Object, you can provide an object's unique name or ID generated by Cloudflare. Data Studio requires you to have at least the `Workers Platform Admin` role, and all queries are captured with audit logging for your security and compliance needs. Queries executed by Data Studio send requests to your remote, deployed objects and incur normal usage billing.