# Cookie policy

> Page: https://docs.plotwork.dev/cookie-policy. Index of every page: https://docs.plotwork.dev/llms.txt

This policy lists every cookie and stored item that Plotwork sets, what each one is for, and how long it lasts. It also says what happens when you accept, reject, or ignore the cookie banner, and how to change your mind. It supplements the [privacy policy](https://docs.plotwork.dev/privacy-policy.md).

Last updated: 2026-10-20

## TL;DR

| Question | Answer |
|---|---|
| Who sets these cookies? | Buun Group Pty Ltd, ABN 75 687 193 675, registered in Spring Mountain, QLD 4300, Australia. Questions go to legal@buungroup.com. |
| What is set without asking? | Only what Plotwork needs: the sign-in cookie and its marker (only if you sign in), the cookie that records your choice, your theme (only if you switch it), and in the portal how a presentation is framed and how the diagram editor is laid out (only if you change them) and your email address on the sign-in page (only if you tick Remember my email on this device). The operator's own admin console sets one more cookie, which no visitor or customer receives. |
| What needs your yes? | The Google Analytics cookies `_ga` and `_ga_NM5FPG0SRE`, on plotwork.dev and docs.plotwork.dev only. |
| What if I do nothing? | Analytics stays off and nothing is requested from Google. The banner stays until you choose, and the site works in full. |
| What about the portal? | app.plotwork.dev sets only the sign-in cookie, your theme, how a presentation is framed, how the diagram editor is laid out, and, if you ask it to, your email address for the next sign-in. It runs no analytics and shows no banner, because it can display an API key. |
| How do I change my mind? | Press Cookie settings in the footer of the site or the documentation. |
| How long does a choice stand? | 12 months. Plotwork asks again after that, and whenever this policy changes in a way that matters. |

## What cookies and stored items are

A cookie is a small piece of text that a website asks your browser to keep and send back. Local storage is a similar place in your browser where a page keeps a setting. This policy calls both cookies and stored items. A strictly necessary item is one Plotwork needs to give you something you asked for, such as staying signed in. It does not need your consent. An analytics item needs your consent, and Plotwork asks first.

## Every cookie and stored item

| Name | Set by | Purpose | Category | Lifetime | First or third party |
|---|---|---|---|---|---|
| `plotwork_session` | The Plotwork API (api.plotwork.dev), when you sign in | Keeps you signed in. It holds a random token, and Plotwork stores only a hash of it. | Strictly necessary | 30 days after you last use Plotwork, renewed as you use it. Deleted when you sign out. | First party |
| `plotwork_signed_in` | The Plotwork API (api.plotwork.dev), when you sign in | Tells the site and the documentation that you may be signed in, so they ask the API who you are only when that is possible. It holds the number 1 and nothing else. | Strictly necessary | The same as `plotwork_session`: 30 days after you last use Plotwork, renewed as you use it. Deleted when you sign out. | First party |
| `plotwork_admin` | The Plotwork API (api.plotwork.dev), only when the Plotwork operator signs in to the admin console. No visitor or customer receives it. | Keeps the operator signed in to the console. It holds a random token, and Plotwork stores only a hash of it. It is sent only to the `/admin` path of the API. | Strictly necessary | 8 hours from sign-in, never extended. Deleted when the operator signs out. | First party |
| `plotwork_sso_flow` | The Plotwork API (api.plotwork.dev), only when you start signing in through your organisation's identity provider | Ties the sign-in to the browser that started it, so a link someone else started cannot sign you in. It holds a random value, and Plotwork stores only a hash of it. It is sent only to the `/auth/sso` path of the API. | Strictly necessary | 10 minutes. Deleted when you come back from your provider. | First party |
| `plotwork_saml_flow` | The Plotwork API (api.plotwork.dev), only when you start signing in through your organisation's identity provider and it uses SAML | The same as `plotwork_sso_flow`, for SAML. A SAML provider sends you back with a form your browser posts from the provider's site, so this cookie is `SameSite=None` and `Secure`: without that the browser would not send it back. It holds a random value, and Plotwork stores only a hash of it. It is sent only to the `/auth/sso/saml` path of the API. | Strictly necessary | 10 minutes. Deleted when you come back from your provider. | First party |
| `plotwork_consent` | The site and the documentation, when you press Accept analytics or Reject analytics | Records your choice, the time you made it, and the version of this policy you made it under. It holds no identifier. | Strictly necessary | 365 days | First party |
| `_ga` | Google's script, in your browser, only after you accept | A random visitor id, so that visits from one browser can be counted together | Analytics | 13 months (395 days) | First party cookie, set on plotwork.dev. The data it supports goes to Google, a third party. |
| `_ga_NM5FPG0SRE` | Google's script, in your browser, only after you accept | Holds the state of your current visit for Plotwork's Google Analytics property | Analytics | 13 months (395 days) | First party cookie, set on plotwork.dev. The data it supports goes to Google, a third party. |
| `site:theme` (local storage) | The website at plotwork.dev, when you switch between light and dark | Remembers the theme you picked: `light` or `dark` | Strictly necessary (a setting you chose) | Until you clear site data. It never leaves your device. | First party |
| `docs:theme` (local storage) | The documentation at docs.plotwork.dev, when you switch the theme | Remembers the theme you picked: `light` or `dark` | Strictly necessary (a setting you chose) | Until you clear site data. It never leaves your device. | First party |
| `app:theme` (local storage) | The portal at app.plotwork.dev, when you switch the theme | Remembers the theme you picked: `light` or `dark` | Strictly necessary (a setting you chose) | Until you clear site data. It never leaves your device. | First party |
| `admin:theme` (local storage) | The operator's admin console at admin.plotwork.dev, when the operator switches the theme | Remembers the theme the operator picked: `light` or `dark` | Strictly necessary (a setting you chose) | Until site data is cleared. It never leaves the device. | First party |
| `plotwork.present.camera` (local storage) | The portal at app.plotwork.dev, when you change the framing while presenting a diagram | Remembers how each step is framed: `follow` (what is shown so far) or `whole` (the whole diagram) | Strictly necessary (a setting you chose) | Until you clear site data. It never leaves your device. | First party |
| `plotwork.editor.split` (local storage) | The portal at app.plotwork.dev, when you move the divider in the diagram editor | Remembers how wide the source is beside the picture, as a number such as `0.420`. Nothing about the diagram. | Strictly necessary (a setting you chose) | Until you clear site data. It never leaves your device. | First party |
| `plotwork.editor.preview` (local storage) | The portal at app.plotwork.dev, when you choose the preview's colours in the diagram editor | Remembers `light`, `dark` or `auto` | Strictly necessary (a setting you chose) | Until you clear site data. It never leaves your device. | First party |
| `plotwork.rememberedEmail` (local storage) | The portal at app.plotwork.dev, only when you tick Remember my email on this device on the sign-in page and a code is sent or single sign-on is found | Remembers your email address, so the sign-in page fills it in next time. The address alone: never a code, a session or a token. | Strictly necessary (a setting you chose) | Until you untick the box, press Change or Use a different email on the sign-in page, or clear site data. Signing out keeps it. It stays on your device and is not sent to Plotwork by being stored. | First party |
| `plotwork.editor.panes` (local storage) | The portal at app.plotwork.dev, when you fold or open the source or the inspector in the diagram editor | Remembers whether each is open, as `{"source":true,"inspector":false}`. Nothing about the diagram. | Strictly necessary (a setting you chose) | Until you clear site data. It never leaves your device. | First party |

Nothing else is set. Plotwork uses no advertising cookies, no cookie that follows you to other websites, and no analytics other than Google Analytics.

### The sign-in cookie

`plotwork_session` is marked HttpOnly, so scripts on a page cannot read it. It is also Secure, so a browser sends it only over HTTPS, and SameSite=Lax, so a browser does not send it with most requests that start on another website. Its domain is `.plotwork.dev`, which means your browser sends it to every Plotwork address and the sign-in is shared by the site, the documentation, and the portal. Only the API reads it.

`plotwork_signed_in` is the opposite on purpose: it is not marked HttpOnly, so the site and the documentation can read it. It holds the number 1 and nothing that identifies you. It is Secure and SameSite=Lax, and it has the same domain and lifetime as `plotwork_session`. A page cannot read the sign-in cookie, so without the marker it would have to ask the API about every visitor to learn that most are not signed in. With it, a visitor who is not signed in is never asked about. The marker proves nothing: when a page sees it, the API still checks your session before the header shows your account.

### The consent cookie

`plotwork_consent` holds three things: whether you accepted analytics (yes or no), the time you decided, and the version of this policy. It holds nothing that identifies you. Plotwork's pages read it, so it is not marked HttpOnly. Its domain is `.plotwork.dev`, so the site and the documentation share one choice and you are asked once. Your browser sends it to the portal too, but the portal does not use it.

### The Google cookies

Google's script may set `_ga` and `_ga_NM5FPG0SRE` on the shared plotwork.dev domain, so your browser may also send them to the portal. The portal has no Google code and does not read them.

## Which sites ask

| Site | Address | Shows the banner | Can send analytics | Sets |
|---|---|---|---|---|
| Website | plotwork.dev | Yes | Yes, after you accept | `plotwork_consent`, `site:theme`, and the Google cookies if you accept |
| Documentation | docs.plotwork.dev | Yes | Yes, after you accept | `plotwork_consent`, `docs:theme`, and the Google cookies if you accept |
| Portal | app.plotwork.dev | No | Never | `app:theme`, `plotwork.present.camera`, `plotwork.editor.split`, `plotwork.editor.preview`, `plotwork.editor.panes`, and `plotwork.rememberedEmail` if you tick Remember my email on this device. `plotwork_session` and `plotwork_signed_in` are set when you sign in there. |
| API and hosted MCP server | api.plotwork.dev and mcp.plotwork.dev | No | Never | `plotwork_session` and `plotwork_signed_in` are set by the API when you sign in |
| Operator's admin console | admin.plotwork.dev | No | Never | `admin:theme`. `plotwork_admin` is set by the API when the operator signs in there. The console is for the Plotwork operator alone, and it runs no analytics. |

Test copies of the sites on other addresses never send analytics. Only plotwork.dev and docs.plotwork.dev can.

## What happens when you choose

| Your choice | What Plotwork does |
|---|---|
| Accept analytics | Stores `plotwork_consent` with analytics set to yes. Loads Google's script from googletagmanager.com. Tells Google that every consent signal is denied, then grants analytics storage only. Advertising storage, advertising data, and ad personalisation are never granted. Google signals and ad personalisation signals are off. Google then sets its two cookies, and a page view is sent each time you open a page. |
| Reject analytics | Stores `plotwork_consent` with analytics set to no. Loads nothing from Google. Deletes any Google cookie already on your device. |
| Do nothing | Stores nothing and requests nothing from Google. The banner stays on the page, does not block it, and shows again on your next visit until you choose. |

The two buttons are the same size and sit in the same row, so rejecting is as easy as accepting.

## What Google receives when you accept

| Google receives | Google does not receive |
|---|---|
| The address of each page you view, as the site name and the path only. A query string or a fragment is never sent. | A user id, your email address, your account id, or your API key |
| The title of that page | The content of any diagram |
| The random visitor id in `_ga` and the visit state in `_ga_NM5FPG0SRE` | Query strings or fragments of a page address |
| The technical details every website visit exposes, such as your browser and device type, screen size, language, the address of the page you came from (site name and path only), and the time | Any advertising signal. Plotwork shows no advertising and Google's advertising features are off. |
| Your IP address, because the request comes from your browser. Google may use it to work out a rough location. | Anything from the portal, which runs no analytics |

How Google treats these details is described in [Google's own explanation](https://policies.google.com/technologies/partner-sites). Google keeps the analytics data for the period set in Plotwork's Google Analytics property, which is between 2 and 14 months. The cookies last 13 months.

## Change your mind

You can change your choice at any time.

| Way | What it does |
|---|---|
| Press Cookie settings in the footer of the site or the documentation | Opens the choice again, shows your current choice, and lets you accept or reject. Close without changing leaves it as it was. |
| Withdraw consent there | Plotwork stops sending analytics and deletes the Google cookies on your device. |
| Delete `plotwork_consent` in your browser | The banner asks again, and analytics stays off until you answer. Google cookies already on your device stay until you reject analytics or delete them yourself. |
| Use your browser settings | You can block or delete any cookie. If you block `plotwork_session`, you cannot stay signed in. If you block `plotwork_signed_in`, the site and the documentation show Sign in even when you are signed in. |

## When Plotwork asks again

Plotwork asks again 12 months after you chose, because a choice given once is not assumed to hold forever. It also asks again when the version of this policy changes, which happens whenever the policy changes in a way that matters. The choice you made under an older version is not used.

## Changes to this policy

We change the date at the top whenever this policy changes. When the change matters, the version stored in `plotwork_consent` no longer matches and the banner asks you again. Questions about this policy go to Buun Group Pty Ltd at legal@buungroup.com.

## See also

| Page | Why |
|---|---|
| [Privacy policy](https://docs.plotwork.dev/privacy-policy.md) | What Plotwork collects about an account, why, and how to use your rights |
| [Connecting an agent](https://docs.plotwork.dev/mcp/connect.md) | How the API key and browser sign-in routes work |
| [MCP server](https://docs.plotwork.dev/mcp/overview.md) | What the tools do and what is logged |
| [Trademarks and icons](https://docs.plotwork.dev/trademarks-and-icons.md) | Who owns the icons Plotwork draws |
