// Cookies.jsx — v0.13.0 / roadmap item #11 / SPEC §14.6.
//
// Lists the framework's cookies, by category, with each cookie's
// purpose. Deployments override via `VITE_COOKIES_POLICY_URL` (linked
// below the framework's stub list, same shape as the privacy page).
//
// Keeping the list in source makes the framework self-documenting:
// when a future framework release adds or removes a cookie, this page
// is the change-record. Item #13's analytics SDK will add its own row
// to the analytics-category list in v0.15.0.
import { useNavigate, Link } from 'react-router-dom'
import { useDeployment } from '../context/DeploymentProvider'
const COOKIES = [
{
name: 'rfc_session',
category: 'Essential',
purpose: "Signed session cookie that remembers who you're signed in as. itsdangerous-signed; HttpOnly; SameSite=Lax.",
lifetime: 'Session (cleared on sign-out).',
},
{
name: 'rfc-app.cookie-consent.v1',
category: 'Essential',
purpose: 'localStorage entry (not a cookie strictly, but tracked here for symmetry) that remembers your consent choice on this device. Cleared on browser data reset.',
lifetime: 'Until cleared.',
},
]
export default function Cookies() {
const navigate = useNavigate()
const deploymentUrl = (import.meta.env.VITE_COOKIES_POLICY_URL || '').trim()
// §22.9: deployment name from runtime config (was VITE_APP_NAME).
const { name } = useDeployment()
const appName = name || 'this deployment'
return (
Cookies policy
Cookies policy
What {appName} stores in your browser, by category.
Categories
Essential — required for the app to keep
you signed in, protect submissions, and remember your
consent choice. Cannot be switched off (without these the
app cannot function).
Analytics — optional anonymous usage
telemetry. Off by default; opt-in via the consent banner.
As of v0.13.0 no analytics SDK ships; roadmap item #13
(v0.15.0) adds one behind this gate.
Other — third-party embeds, social
widgets, or anything else the deployment chooses to enable.
Off by default; opt-in via the consent banner. The
framework ships no such cookies by default.
Current cookies set by the framework
Name
Category
Purpose
Lifetime
{COOKIES.map(c => (
{c.name}
{c.category}
{c.purpose}
{c.lifetime}
))}
Manage your choice
Change your consent any time from{' '}
Settings → Privacy & cookies
. The "Change" affordance re-opens the consent banner
with your current selection pre-loaded.
{deploymentUrl ? (
<>
Deployment-specific cookies
This deployment may add additional cookies on top of the
framework's. See the full deployment policy at: