Skip to content

Instantly share code, notes, and snippets.

@simonw
Created February 13, 2025 20:38
{
"log": {
"version": "1.2",
"creator": {
"name": "Playwright",
"version": "1.39.0"
},
"browser": {
"name": "chromium",
"version": "119.0.6045.9"
},
"pages": [
{
"startedDateTime": "2025-02-13T20:37:41.710Z",
"id": "page@cf0c6fc3a8eb44b78c414b3ef80d4760",
"title": "Datasette: An open source multi-tool for exploring and publishing data",
"pageTimings": {
"onContentLoad": 848,
"onLoad": 1033
}
}
],
"entries": [
{
"startedDateTime": "2025-02-13T20:37:41.715Z",
"time": 513.499,
"request": {
"method": "GET",
"url": "https://datasette.io/",
"httpVersion": "HTTP/2.0",
"cookies": [],
"headers": [
{ "name": ":authority", "value": "datasette.io" },
{ "name": ":method", "value": "GET" },
{ "name": ":path", "value": "/" },
{ "name": ":scheme", "value": "https" },
{ "name": "accept", "value": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" },
{ "name": "accept-encoding", "value": "gzip, deflate, br" },
{ "name": "sec-ch-ua", "value": "\"HeadlessChrome\";v=\"119\", \"Chromium\";v=\"119\", \"Not?A_Brand\";v=\"24\"" },
{ "name": "sec-ch-ua-mobile", "value": "?0" },
{ "name": "sec-ch-ua-platform", "value": "\"macOS\"" },
{ "name": "sec-fetch-dest", "value": "document" },
{ "name": "sec-fetch-mode", "value": "navigate" },
{ "name": "sec-fetch-site", "value": "none" },
{ "name": "sec-fetch-user", "value": "?1" },
{ "name": "upgrade-insecure-requests", "value": "1" },
{ "name": "user-agent", "value": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/119.0.6045.9 Safari/537.36" }
],
"queryString": [],
"headersSize": 659,
"bodySize": 0
},
"response": {
"status": 200,
"statusText": "",
"httpVersion": "HTTP/2.0",
"cookies": [],
"headers": [
{ "name": "access-control-allow-headers", "value": "Authorization, Content-Type" },
{ "name": "access-control-allow-methods", "value": "GET, POST, HEAD, OPTIONS" },
{ "name": "access-control-allow-origin", "value": "*" },
{ "name": "access-control-expose-headers", "value": "Link" },
{ "name": "content-encoding", "value": "gzip" },
{ "name": "content-length", "value": "9537" },
{ "name": "content-type", "value": "text/html; charset=utf-8" },
{ "name": "date", "value": "Thu, 13 Feb 2025 20:37:42 GMT" },
{ "name": "link", "value": "https://datasette.io/.json; rel=\"alternate\"; type=\"application/json+datasette\"" },
{ "name": "server", "value": "Google Frontend" },
{ "name": "vary", "value": "Accept-Encoding" },
{ "name": "x-cloud-trace-context", "value": "2dce32f2df653bc1c436ea11b79701ca" }
],
"content": {
"size": 39067,
"mimeType": "text/html; charset=utf-8",
"compression": 29184,
"text": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, maximum-scale=1.0\">\n <title>Datasette: An open source multi-tool for exploring and publishing data</title>\n <link rel=\"stylesheet\" type=\"text/css\" href=\"/static/site.css\">\n<script defer data-domain=\"datasette.io\" src=\"https://plausible.io/js/plausible.js\"></script>\n <link rel=\"stylesheet\" href=\"/static/lite-yt-embed.css\" />\n <script src=\"/static/lite-yt-embed.js\"></script>\n <meta name=\"twitter:card\" content=\"summary_large_image\">\n <meta name=\"twitter:site\" content=\"@datasetteproj\">\n <meta name=\"twitter:title\" content=\"Datasette\">\n <meta name=\"twitter:description\" content=\"Datasette is a tool for exploring and publishing data. It helps people take data of any shape, analyze and explore it, and publish it as an interactive website and accompanying API.\">\n <meta name=\"twitter:image\" content=\"https://datasette.io/static/datasette-card.png\">\n <meta property=\"og:url\" content=\"https://datasette.io/\">\n <meta property=\"og:type\" content=\"website\">\n <meta property=\"og:title\" content=\"Datasette\">\n <meta property=\"og:description\" content=\"Datasette is a tool for exploring and publishing data. It helps people take data of any shape, analyze and explore it, and publish it as an interactive website and accompanying API.\">\n <meta property=\"og:image\" content=\"https://datasette.io/static/datasette-card.png\">\n</head>\n<body class=\"homepage\">\n <header>\n <nav>\n <ul>\n <li><a href=\"/for\">Uses</a></li>\n <li><a href=\"https://docs.datasette.io/en/stable/\"><span class=\"hide-on-narrow\">Documentation</span> <span class=\"show-on-narrow\">Docs</span></a></li>\n <li><a href=\"/tutorials\"><span class=\"hide-on-narrow\">Tutorials</span></a></li>\n <li><a href=\"/examples\">Examples</a></li>\n <li><a href=\"/plugins\">Plugins</a></li>\n <li><a href=\"/tools\">Tools</a></li>\n <li><a href=\"/news\">News</a></li>\n</ul>\n </nav>\n <h1>\n <img class=\"datasette-logo\" src=\"/static/datasette-logo.svg\" alt=\"Datasette\">\n </h1>\n <p class=\"tagline\">Find stories in data</p>\n <p>\n <a href=\"https://pypi.org/project/datasette/\"><img alt=\"PyPI\" src=\"https://img.shields.io/pypi/v/datasette.svg\"></a>\n <a href=\"https://docs.datasette.io/en/stable/changelog.html\"><img alt=\"Changelog\" src=\"https://img.shields.io/github/v/release/simonw/datasette?label=changelog\"></a>\n <a href=\"https://pypi.org/project/datasette/\"><img alt=\"Python 3.x\" src=\"https://img.shields.io/pypi/pyversions/datasette.svg?logo=python&amp;logoColor=white\"></a>\n <a href=\"https://github.com/simonw/datasette/blob/main/LICENSE\"><img alt=\"License\" src=\"https://img.shields.io/badge/license-Apache%202.0-blue.svg\"></a>\n <a href=\"https://datasette.io/discord\"><img src=\"https://img.shields.io/discord/823971286308356157?label=discord\" alt=\"discord\"></a>\n <a rel=\"me\" href=\"https://fosstodon.org/@datasette\"><img src=\"https://img.shields.io/badge/mastodon-@datasette-blueviolet\" alt=\"mastodon: @datasette\"></a>\n </p>\n <form action=\"/-/beta\" method=\"get\" class=\"beta-search\"><div>\n <input type=\"text\" name=\"q\" placeholder=\"Search documentation, plugins, site news and releases\" style=\"min-width: 50%\">\n <input type=\"submit\" value=\"Search\">\n </div></form>\n </header>\n <main>\n <div class=\"datasette-video\">\n <lite-youtube videoid=\"7kDFBnXaw-c\" playlabel=\"Play: Introduction to Datasette and sqlite-utils\"></lite-youtube>\n <p><a href=\"https://simonwillison.net/2021/Feb/7/video/\">Annotated version</a> of this introductory video</p>\n </div>\n <div class=\"about\">\n <p>Datasette is a tool for exploring and publishing data. It helps people take data of any shape, analyze and explore it, and publish it as an interactive website and accompanying API.</p>\n <p>Datasette is aimed at data journalists, museum curators, archivists, local governments, scientists, researchers and anyone else who has data that they wish to share with the world. It is part of a wider ecosystem of <a href=\"/tools\"><strong>46 tools</strong></a> and <a href=\"/plugins\"><strong>156 plugins</strong></a> dedicated to making working with structured data as productive as possible.</p>\n <p><strong><a href=\"https://global-power-plants.datasettes.com/global-power-plants/global-power-plants\">Try a demo</a></strong> and explore 33,000 power plants around the world, then <a href=\"/tutorials/explore\">follow the tutorial</a> or take a look at <a href=\"/examples\">some other examples</a> of Datasette in action.</p>\n <p>Then read how to <a href=\"https://docs.datasette.io/en/stable/getting_started.html\"><strong>get started with Datasette</strong></a>, subscribe to <a href=\"https://datasette.substack.com/\"><strong>the monthly-ish newsletter</strong></a> and consider <a href=\"https://calendly.com/swillison/datasette-office-hours\"><strong>signing up for office hours</strong></a> for an in-person conversation about the project.</p>\n <p><strong>New: <a href=\"/desktop\">Datasette Desktop</a></strong> - a macOS desktop application for easily running Datasette on your own computer!</p>\n </div>\n <div class=\"use-cases\">\n <div class=\"card\">\n <svg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" class=\"w-10 h-10\" viewBox=\"0 0 24 24\">\n <line x1=\"18\" y1=\"20\" x2=\"18\" y2=\"10\"></line>\n <line x1=\"12\" y1=\"20\" x2=\"12\" y2=\"4\"></line>\n <line x1=\"6\" y1=\"20\" x2=\"6\" y2=\"14\"></line>\n </svg>\n <h2><a href=\"/for/exploratory-analysis\">Exploratory data analysis</a></h2>\n <p>Import data from CSVs, JSON, database connections and more. Datasette will automatically show you patterns in your data and help you share your findings with your colleagues.</p>\n </div>\n <div class=\"card\">\n <svg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" class=\"w-10 h-10\" viewBox=\"0 0 24 24\">\n <polyline points=\"16 16 12 12 8 16\"></polyline>\n <line x1=\"12\" y1=\"12\" x2=\"12\" y2=\"21\"></line>\n <path d=\"M20.39 18.39A5 5 0 0 0 18 9h-1.26A8 8 0 1 0 3 16.3\"></path>\n <polyline points=\"16 16 12 12 8 16\"></polyline>\n </svg>\n <h2><a href=\"/for/publishing-data\">Instant data publishing</a></h2>\n <p><code>datasette publish</code> lets you instantly publish your data to hosting providers like Google Cloud Run, Heroku or Vercel.</p>\n </div>\n <div class=\"card\">\n <svg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" class=\"w-10 h-10\" viewBox=\"0 0 24 24\">\n <polyline points=\"16 18 22 12 16 6\"></polyline>\n <polyline points=\"8 6 2 12 8 18\"></polyline>\n </svg>\n <h2><a href=\"/for/rapid-prototyping\">Rapid prototyping</a></h2>\n <p>Spin up a JSON API for any data in minutes. Use it to prototype and prove your ideas without building a custom backend.</p>\n </div>\n </div>\n <div style=\"clear: both; padding-top: 2em;\" class=\"two-col-wrapper\">\n <div class=\"two-col-column\">\n <h2>Latest news <a style=\"text-decoration: none; padding: 0 0.3em\" href=\"/content/feed.atom\" title=\"Atom feed\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16px\" height=\"16px\" viewBox=\"0 0 256 256\">\n <defs>\n <linearGradient id=\"a\" x1=\".1\" x2=\".9\" y1=\".1\" y2=\".9\">\n <stop offset=\"0\" stop-color=\"#E3702D\" />\n <stop offset=\".1\" stop-color=\"#EA7D31\" />\n <stop offset=\".4\" stop-color=\"#F69537\" />\n <stop offset=\".5\" stop-color=\"#FB9E3A\" />\n <stop offset=\".7\" stop-color=\"#EA7C31\" />\n <stop offset=\".9\" stop-color=\"#DE642B\" />\n <stop offset=\"1\" stop-color=\"#D95B29\" />\n </linearGradient>\n </defs>\n <rect width=\"256\" height=\"256\" fill=\"#CC5D15\" rx=\"55\" ry=\"55\" />\n <rect width=\"246\" height=\"246\" x=\"5\" y=\"5\" fill=\"#F49C52\" rx=\"50\" ry=\"50\" />\n <rect width=\"236\" height=\"236\" x=\"10\" y=\"10\" fill=\"url(#a)\" rx=\"47\" ry=\"47\" />\n <circle cx=\"68\" cy=\"189\" r=\"24\" fill=\"#FFF\" />\n <path fill=\"#FFF\" d=\"M160 213h-34a82 82 0 0 0-82-82V97a116 116 0 0 1 116 116z\" />\n <path fill=\"#FFF\" d=\"M184 213A140 140 0 0 0 44 73V38a175 175 0 0 1 175 175z\" />\n </svg></a></h2>\n \n \n \n <h3>6th February 2025 <a href=\"/news/2025-02-06\" style=\"font-size: 0.8em; opacity: 0.4\">#</a></h3>\n \n \n <div style=\"white-space: normal\"><p><a href=\"https://docs.datasette.io/en/latest/changelog.html#a17-2025-02-06\" rel=\"nofollow\">Datasette 1.0a17</a> is the latest Datasette 1.0 alpha release, with bug fixes and small feature improvements from the last few months.</p></div>\n \n \n <h3>7th October 2024 <a href=\"/news/2024-10-07\" style=\"font-size: 0.8em; opacity: 0.4\">#</a></h3>\n \n \n <div style=\"white-space: normal\"><p><a href=\"https://docs.python.org/3.13/whatsnew/3.13.html\" rel=\"nofollow\">Python 3.13</a> was released today. <a href=\"https://docs.datasette.io/en/latest/changelog.html#a16-2024-09-05\" rel=\"nofollow\">Datasette 1.0a16</a> is compatible with Python 3.13, but Datasette 0.64.8 was not. The new <a href=\"https://docs.datasette.io/en/stable/changelog.html#v0-65\" rel=\"nofollow\">Datasette 0.65</a> release fixes compatibility with the new version of Python.</p></div>\n \n \n <h3>5th August 2024 <a href=\"/news/2024-08-05\" style=\"font-size: 0.8em; opacity: 0.4\">#</a></h3>\n \n \n <div style=\"white-space: normal\"><p><a href=\"https://docs.datasette.io/en/latest/changelog.html#a14-2024-08-05\" rel=\"nofollow\">Datasette 1.0a14</a> includes some breaking changes to how metadata works for plugins, described in detail in the new <a href=\"https://docs.datasette.io/en/latest/upgrade_guide.html\" rel=\"nofollow\">upgrade guide</a>. See also the <a href=\"https://simonwillison.net/2024/Aug/5/datasette-1a14/\" rel=\"nofollow\">annotated release notes</a> that accompany this release.</p></div>\n \n \n <h3>18th February 2024 <a href=\"/news/2024-02-18\" style=\"font-size: 0.8em; opacity: 0.4\">#</a></h3>\n \n \n <div style=\"white-space: normal\"><p><a href=\"https://docs.datasette.io/en/latest/changelog.html#a10-2024-02-17\" rel=\"nofollow\">Datasette 1.0a10</a> is a focused alpha that changes some internal details about how Datasette handles transactions. The <code>datasette.execute_write_fn()</code> internal method now wraps the function in a database transaction unless you pass <code>transaction=False</code>.</p></div>\n \n \n <h3>16th February 2024 <a href=\"/news/2024-02-16\" style=\"font-size: 0.8em; opacity: 0.4\">#</a></h3>\n \n \n <div style=\"white-space: normal\"><p><a href=\"https://docs.datasette.io/en/latest/changelog.html#a9-2024-02-16\" rel=\"nofollow\">Datasette 1.0a9</a> adds basic alter table support to the JSON API, tweaks how permissions works and introduces some new plugin debugging utilities.</p></div>\n \n \n <h3>7th February 2024 <a href=\"/news/2024-02-07\" style=\"font-size: 0.8em; opacity: 0.4\">#</a></h3>\n \n \n <div style=\"white-space: normal\"><p><a href=\"https://docs.datasette.io/en/1.0a8/changelog.html#a8-2024-02-07\" rel=\"nofollow\">Datasette 1.0a8</a> introduces several new plugin hooks, a JavaScript plugin system and moves plugin configuration from <code>metadata.yaml</code> to <code>datasette.yaml</code>. Read more about the release in <a href=\"https://simonwillison.net/2024/Feb/7/datasette-1a8/\" rel=\"nofollow\">the annotated release notes for 1.0a8</a>.</p></div>\n \n \n <h3>1st December 2023 <a href=\"/news/2023-12-01\" style=\"font-size: 0.8em; opacity: 0.4\">#</a></h3>\n \n \n <div style=\"white-space: normal\"><p><a href=\"https://enrichments.datasette.io/\" rel=\"nofollow\">Datasette Enrichments</a> is a new feature for Datasette that supports enriching data by running custom code against every selected row in a table. Read <a href=\"https://simonwillison.net/2023/Dec/1/datasette-enrichments/\" rel=\"nofollow\">Datasette Enrichments: a new plugin framework for augmenting your data</a> for more details, plus a video demo of enrichments for geocoding addresses and processing text and images using GPT-4.</p></div>\n \n \n <h3>30th November 2023 <a href=\"/news/2023-11-30\" style=\"font-size: 0.8em; opacity: 0.4\">#</a></h3>\n \n \n <div style=\"white-space: normal\"><p><a href=\"https://datasette.io/plugins/datasette-comments\" rel=\"nofollow\">datasette-comments</a> is a new plugin by Alex Garcia which adds collaborative commenting to Datasette. Alex built the plugin for Datasette Cloud, but it's also available as an open source package for people who are hosting their own Datasette instances. See <a href=\"https://www.datasette.cloud/blog/2023/datasette-comments/\" rel=\"nofollow\">Annotate and explore your data with datasette-comments</a> on the Datasette Cloud blog for more details.</p></div>\n \n \n <h3>22nd August 2023 <a href=\"/news/2023-08-22\" style=\"font-size: 0.8em; opacity: 0.4\">#</a></h3>\n \n \n <div style=\"white-space: normal\"><p><a href=\"https://docs.datasette.io/en/1.0a4/changelog.html#a4-2023-08-21\" rel=\"nofollow\">Datasette 1.0a4</a> has a fix for a security vulnerability in the Datasette 1.0 alpha series: the API explorer interface exposed the names of private databases and tables in public instances that were protected by a plugin such as <a href=\"https://datasette.io/plugins/datasette-auth-passwords\" rel=\"nofollow\">datasette-auth-passwords</a>, though not the actual content of those tables. See the <a href=\"https://github.com/simonw/datasette/security/advisories/GHSA-7ch3-7pp7-7cpq\" rel=\"nofollow\">security advisory</a> for more details and workarounds for if you can't upgrade immediately. The <a href=\"https://datasette.substack.com/p/datasette-cloud-and-the-datasette\" rel=\"nofollow\">latest edition of the Datasette Newsletter</a> also talks about this issue.</p></div>\n \n \n <h3>15th August 2023 <a href=\"/news/2023-08-15\" style=\"font-size: 0.8em; opacity: 0.4\">#</a></h3>\n \n \n <div style=\"white-space: normal\"><p><a href=\"https://www.datasette.cloud/blog/2023/datasette-write-ui/\" rel=\"nofollow\">datasette-write-ui: a Datasette plugin for editing, inserting, and deleting rows</a> introduces a new plugin adding add/edit/delete functionality to Datasette, developed by Alex Garcia. Alex built this for <a href=\"https://www.datasette.cloud/\" rel=\"nofollow\">Datasette Cloud</a>, and this post is the first announcement made on the new Datasette Cloud blog - see also <a href=\"https://www.datasette.cloud/blog/2023/welcome/\" rel=\"nofollow\">Welcome to Datasette Cloud</a>.</p></div>\n \n \n <h3>9th August 2023 <a href=\"/news/2023-08-09\" style=\"font-size: 0.8em; opacity: 0.4\">#</a></h3>\n \n \n <div style=\"white-space: normal\"><p><a href=\"https://docs.datasette.io/en/latest/changelog.html#a3-2023-08-09\" rel=\"nofollow\">Datasette 1.0a3</a> is an alpha release of Datasette that previews the new default JSON API design that’s coming in version 1.0 - the single most significant change planned for that 1.0 release.</p></div>\n \n \n <h3>1st July 2023 <a href=\"/news/2023-07-01\" style=\"font-size: 0.8em; opacity: 0.4\">#</a></h3>\n \n \n <div style=\"white-space: normal\"><p>New tutorial: <a href=\"https://datasette.io/tutorials/data-analysis\" rel=\"nofollow\">Data analysis with SQLite and Python</a>. This tutorial, originally presented at PyCon 2023, includes a 2h45m video and an extensive handout that should be useful with or without the video. Topics covered include Python's <code>sqlite3</code> module, <code>sqlite-utils</code>, Datasette, Datasette Lite, advanced SQL patterns and more.</p></div>\n \n \n <h3>24th March 2023 <a href=\"/news/2023-03-24\" style=\"font-size: 0.8em; opacity: 0.4\">#</a></h3>\n \n \n <div style=\"white-space: normal\"><p><a href=\"https://simonwillison.net/2023/Mar/24/datasette-chatgpt-plugin/\" rel=\"nofollow\">I built a ChatGPT plugin to answer questions about data hosted in Datasette</a> describes a new experimental Datasette plugin to enable people to query data hosted in a Datasette interface via ChatGPT, asking human language questions that are automatically converted to SQL and used to generate a readable response.</p></div>\n \n \n <h3>23rd February 2023 <a href=\"/news/2023-02-23\" style=\"font-size: 0.8em; opacity: 0.4\">#</a></h3>\n \n \n <div style=\"white-space: normal\"><p><a href=\"https://datasette.io/tutorials/codespaces\" rel=\"nofollow\">Using Datasette in GitHub Codespaces</a> is a new tutorial showing how Datasette can be run in GitHub's free Codespaces browser-based development environments, using the new <a href=\"https://datasette.io/plugins/datasette-codespaces\" rel=\"nofollow\">datasette-codespaces plugin</a>.</p></div>\n \n \n <h3>28th January 2023 <a href=\"/news/2023-01-28\" style=\"font-size: 0.8em; opacity: 0.4\">#</a></h3>\n \n \n <div style=\"white-space: normal\"><p><a href=\"https://datasette.io/examples\" rel=\"nofollow\">Examples of sites built using Datasette</a> now includes screenshots of Datasette deployments that illustrate a variety of problems that can be addressed using Datasette and its plugins.</p></div>\n \n <p><a href=\"/news\">All news</a></p>\n </div>\n <div class=\"two-col-column\">\n <h2>Latest releases</h2>\n \n \n \n <h3>6th February 2025</h3>\n \n \n <h4><a href=\"https://github.com/datasette/datasette-public/releases/tag/0.3a0\">datasette-public 0.3a0</a>\n \n <span style=\"font-weight: normal; color: #666; font-size: 0.9em;\"> - Make specific Datasette tables visible to the public</span>\n \n </h4>\n \n <div style=\"white-space: normal\"><ul>\n<li>Added the ability to make full databases public, including setting if users can execute SQL or not. <a href=\"https://github.com/datasette/datasette-public/issues/9\" rel=\"nofollow\">#9</a></li>\n<li>Now depends on Datasette 1.0a and uses the new <code>internal</code> database. <a href=\"https://github.com/datasette/datasette-public/issues/6\" rel=\"nofollow\">#6</a></li>\n</ul></div>\n \n \n \n <h4><a href=\"https://github.com/simonw/datasette/releases/tag/1.0a17\">datasette 1.0a17</a>\n \n <span style=\"font-weight: normal; color: #666; font-size: 0.9em;\"> - An open source multi-tool for exploring and publishing data</span>\n \n </h4>\n \n <div style=\"white-space: normal\"><ul>\n<li><code>DATASETTE_SSL_KEYFILE</code> and <code>DATASETTE_SSL_CERTFILE</code> environment variables as alternatives to <code>--ssl-keyfile</code> and <code>--ssl-certfile</code>. Thanks, Alex Garcia. (<a href=\"https://github.com/simonw/datasette/issues/2422\" rel=\"nofollow\">#2422</a>)</li>\n<li><code>SQLITE_EXTENSIONS</code> environment variable has been renamed to <code>DATASETTE_LOAD_EXTENSION</code>. (<a href=\"https://github.com/simonw/datasette/issues/2424\" rel=\"nofollow\">#2424</a>)</li>\n<li><code>datasette serve</code> environment variables are now <a href=\"https://docs.datasette.io/en/latest/cli-reference.html#cli-datasette-serve-env\" rel=\"nofollow\">documented here</a>.</li>\n<li>The <a href=\"https://docs.datasette.io/en/latest/plugin_hooks.html#plugin-hook-register-magic-parameters\" rel=\"nofollow\">register_magic_parameters(datasette)</a> plugin hook can now register async functions. (<a href=\"https://github.com/simonw/datasette/issues/2441\" rel=\"nofollow\">#2441</a>)</li>\n<li>Datasette is now tested against Python 3.13.</li>\n<li>Breadcrumbs on database and table pages now include a consistent self-link for resetting query string parameters. (<a href=\"https://github.com/simonw/datasette/issues/2454\" rel=\"nofollow\">#2454</a>)</li>\n<li>Fixed issue where Datasette could crash on <code>metadata.json</code> with nested values. (<a href=\"https://github.com/simonw/datasette/issues/2455\" rel=\"nofollow\">#2455</a>)</li>\n<li>New internal methods <code>datasette.set_actor_cookie()</code> and <code>datasette.delete_actor_cookie()</code>, <a href=\"https://docs.datasette.io/en/latest/authentication.html#authentication-ds-actor\" rel=\"nofollow\">described here</a>. (<a href=\"https://github.com/simonw/datasette/issues/1690\" rel=\"nofollow\">#1690</a>)</li>\n<li><code>/-/permissions</code> page now shows a list of all permissions registered by plugins. (<a href=\"https://github.com/simonw/datasette/issues/1943\" rel=\"nofollow\">#1943</a>)</li>\n<li>If a table has a single unique text column Datasette now detects that as the foreign key label for that table. (<a href=\"https://github.com/simonw/datasette/issues/2458\" rel=\"nofollow\">#2458</a>)</li>\n<li>The <code>/-/permissions</code> page now includes options for filtering or exclude permission checks recorded against the current user. (<a href=\"https://github.com/simonw/datasette/issues/2460\" rel=\"nofollow\">#2460</a>)</li>\n<li>Fixed a bug where replacing a database with a new one with the same name did not pick up the new database correctly. (<a href=\"https://github.com/simonw/datasette/issues/2465\" rel=\"nofollow\">#2465</a>)</li>\n</ul></div>\n \n \n \n <h3>31st January 2025</h3>\n \n \n <h4><a href=\"https://github.com/simonw/llm/releases/tag/0.21\">llm 0.21</a>\n \n <span style=\"font-weight: normal; color: #666; font-size: 0.9em;\"> - A CLI utility and Python library for interacting with Large Language Models, including OpenAI, PaLM and local models installed on your own machine.</span>\n \n </h4>\n \n <div style=\"white-space: normal\"><ul>\n<li>New model: <code>o3-mini</code>. <a href=\"https://github.com/simonw/llm/issues/728\" rel=\"nofollow\">#728</a></li>\n<li>The <code>o3-mini</code> and <code>o1</code> models now support a <code>reasoning_effort</code> option which can be set to <code>low</code>, <code>medium</code> or <code>high</code>.</li>\n<li><code>llm prompt</code> and <code>llm logs</code> now have a <code>--xl/--extract-last</code> option for extracting the last fenced code block in the response - a complement to the existing <code>--x/--extract</code> option. <a href=\"https://github.com/simonw/llm/issues/717\" rel=\"nofollow\">#717</a></li>\n</ul></div>\n \n \n \n <h3>23rd January 2025</h3>\n \n \n <h4><a href=\"https://github.com/simonw/llm/releases/tag/0.20\">llm 0.20</a>\n </h4>\n \n <div style=\"white-space: normal\"><ul>\n<li>New model, <code>o1</code>. This model does not yet support streaming. <a href=\"https://github.com/simonw/llm/issues/676\" rel=\"nofollow\">#676</a></li>\n<li><code>o1-preview</code> and <code>o1-mini</code> models now support streaming.</li>\n<li>New models, <code>gpt-4o-audio-preview</code> and <code>gpt-4o-mini-audio-preview</code>. <a href=\"https://github.com/simonw/llm/issues/677\" rel=\"nofollow\">#677</a></li>\n<li><code>llm prompt -x/--extract</code> option, which returns just the content of the first fenced code block in the response. Try <code>llm prompt -x 'Python function to reverse a string'</code>. <a href=\"https://github.com/simonw/llm/issues/681\" rel=\"nofollow\">#681</a></li>\n<li>Creating a template using <code>llm ... --save x</code> now supports the <code>-x/--extract</code> option, which is saved to the template. YAML templates can set this option using <code>extract: true</code>.</li>\n<li>New <code>llm logs -x/--extract</code> option extracts the first fenced code block from matching logged responses.</li>\n<li>New <code>llm models -q 'search'</code> option returning models that case-insensitively match the search query. <a href=\"https://github.com/simonw/llm/issues/700\" rel=\"nofollow\">#700</a></li>\n<li>Installation documentation now also includes <code>uv</code>. Thanks, <a href=\"https://github.com/ajmarcus\" rel=\"nofollow\">Ariel Marcus</a>. <a href=\"https://github.com/simonw/llm/pull/690\" rel=\"nofollow\">#690</a> and <a href=\"https://github.com/simonw/llm/issues/702\" rel=\"nofollow\">#702</a></li>\n<li><code>llm models</code> command now shows the current default model at the bottom of the listing. Thanks, <a href=\"https://github.com/amjith\" rel=\"nofollow\">Amjith Ramanujam</a>. <a href=\"https://github.com/simonw/llm/pull/688\" rel=\"nofollow\">#688</a></li>\n<li><a href=\"https://llm.datasette.io/en/stable/plugins/directory.html\" rel=\"nofollow\">Plugin directory</a> now includes <code>llm-venice</code>, <code>llm-bedrock</code>, <code>llm-deepseek</code> and <code>llm-cmd-comp</code>.</li>\n<li>Fixed bug where some dependency version combinations could cause a <code>Client.__init__() got an unexpected keyword argument 'proxies'</code> error. <a href=\"https://github.com/simonw/llm/issues/709\" rel=\"nofollow\">#709</a></li>\n<li>OpenAI embedding models are now available using their full names of <code>text-embedding-ada-002</code>, <code>text-embedding-3-small</code> and <code>text-embedding-3-large</code> - the previous names are still supported as aliases. Thanks, <a href=\"https://github.com/web-sst\" rel=\"nofollow\">web-sst</a>. <a href=\"https://github.com/simonw/llm/pull/654\" rel=\"nofollow\">#654</a></li>\n</ul></div>\n \n \n \n <h3>15th January 2025</h3>\n \n \n <h4><a href=\"https://github.com/datasette/datasette-enrichments/releases/tag/0.5\">datasette-enrichments 0.5</a>\n \n <span style=\"font-weight: normal; color: #666; font-size: 0.9em;\"> - Tools for running enrichments against data stored in Datasette</span>\n \n </h4>\n \n <div style=\"white-space: normal\"><ul>\n<li>UI for viewing status of enrichment jobs. <a href=\"https://github.com/datasette/datasette-enrichments/issues/51\" rel=\"nofollow\">#51</a></li>\n<li>Pause, resume and cancel buttons. <a href=\"https://github.com/datasette/datasette-enrichments/issues/17\" rel=\"nofollow\">#17</a></li>\n<li>Visible progress bar on table with running enrichments. <a href=\"https://github.com/datasette/datasette-enrichments/issues/52\" rel=\"nofollow\">#52</a></li>\n<li>Table and database action menu items for viewing enrichment runs. <a href=\"https://github.com/datasette/datasette-enrichments/issues/53\" rel=\"nofollow\">#53</a></li>\n<li>Enrichments continue running after a server restart. <a href=\"https://github.com/datasette/datasette-enrichments/issues/54\" rel=\"nofollow\">#54</a></li>\n<li>An <code>enrichment</code> permission is now correctly registered with Datasette 1.0a+. <a href=\"https://github.com/datasette/datasette-enrichments/issues/55\" rel=\"nofollow\">#55</a></li>\n<li>Enrichments can pause or cancel themselves by raising the new <code>self.Pause(reason)</code> and <code>self.Cancel(reason)</code> exceptions. <a href=\"https://github.com/datasette/datasette-enrichments/issues/56\" rel=\"nofollow\">#56</a></li>\n</ul></div>\n \n \n \n <h4><a href=\"https://github.com/datasette/datasette-enrichments/releases/tag/0.5a1\">datasette-enrichments 0.5a1</a>\n </h4>\n \n <div style=\"white-space: normal\"><ul>\n<li>Pause, resume, cancel buttons for jobs. <a href=\"https://github.com/datasette/datasette-enrichments/issues/17\" rel=\"nofollow\">#17</a></li>\n<li>Enrichments can raise <code>self.Pause(\"message\")</code> or <code>self.Cancel(\"message\")</code> exceptions inside their <code>enrich_batch()</code> methods. <a href=\"https://github.com/datasette/datasette-enrichments/issues/56\" rel=\"nofollow\">#56</a></li>\n</ul></div>\n \n \n \n <h3>14th January 2025</h3>\n \n \n <h4><a href=\"https://github.com/datasette/datasette-enrichments/releases/tag/0.5a0\">datasette-enrichments 0.5a0</a>\n </h4>\n \n <div style=\"white-space: normal\"><ul>\n<li>New <code>/-/enrich/databasename/-/jobs</code> listing page <code>/-/enrich/databasename/-/jobs/123</code> detail page. <a href=\"https://github.com/datasette/datasette-enrichments/issues/51\" rel=\"nofollow\">#51</a></li>\n<li>Visible progress bar on tables that have enrichments running. <a href=\"https://github.com/datasette/datasette-enrichments/issues/52\" rel=\"nofollow\">#52</a></li>\n<li>Table and database action menu items to view previous runs. <a href=\"https://github.com/datasette/datasette-enrichments/issues/53\" rel=\"nofollow\">#53</a></li>\n<li>Continue any enrichment runs after a server restart. <a href=\"https://github.com/datasette/datasette-enrichments/issues/54\" rel=\"nofollow\">#54</a></li>\n</ul></div>\n \n \n \n <h4><a href=\"https://github.com/datasette/datasette-write-ui/releases/tag/0.0.1a12\">datasette-write-ui 0.0.1a12</a>\n </h4>\n \n \n \n <h3>5th December 2024</h3>\n \n \n <h4><a href=\"https://github.com/simonw/llm/releases/tag/0.19.1\">llm 0.19.1</a>\n \n <span style=\"font-weight: normal; color: #666; font-size: 0.9em;\"> - A CLI utility and Python library for interacting with Large Language Models, including OpenAI, PaLM and local models installed on your own machine.</span>\n \n </h4>\n \n <div style=\"white-space: normal\"><ul>\n<li>FIxed bug where <code>llm.get_models()</code> and <code>llm.get_async_models()</code> returned the same model multiple times. <a href=\"https://github.com/simonw/llm/issues/667\" rel=\"nofollow\">#667</a></li>\n</ul></div>\n \n \n \n <h3>1st December 2024</h3>\n \n \n <h4><a href=\"https://github.com/simonw/llm/releases/tag/0.19\">llm 0.19</a>\n </h4>\n \n <div style=\"white-space: normal\"><ul>\n<li>Tokens used by a response are now logged to new <code>input_tokens</code> and <code>output_tokens</code> integer columns and a <code>token_details</code> JSON string column, for the default OpenAI models and models from other plugins that <a href=\"https://llm.datasette.io/en/stable/plugins/advanced-model-plugins.html#advanced-model-plugins-usage\" rel=\"nofollow\">implement this feature</a>. <a href=\"https://github.com/simonw/llm/issues/610\" rel=\"nofollow\">#610</a></li>\n<li><code>llm prompt</code> now takes a <code>-u/--usage</code> flag to display token usage at the end of the response.</li>\n<li><code>llm logs -u/--usage</code> shows token usage information for logged responses.</li>\n<li><code>llm prompt ... --async</code> responses are now logged to the database. <a href=\"https://github.com/simonw/llm/issues/641\" rel=\"nofollow\">#641</a></li>\n<li><code>llm.get_models()</code> and <code>llm.get_async_models()</code> functions, <a href=\"https://llm.datasette.io/en/stable/python-api.html#python-api-listing-models\" rel=\"nofollow\">documented here</a>. <a href=\"https://github.com/simonw/llm/issues/640\" rel=\"nofollow\">#640</a></li>\n<li><code>response.usage()</code> and async response <code>await response.usage()</code> methods, returning a <code>Usage(input=2, output=1, details=None)</code> dataclass. <a href=\"https://github.com/simonw/llm/issues/644\" rel=\"nofollow\">#644</a></li>\n<li><code>response.on_done(callback)</code> and <code>await response.on_done(callback)</code> methods for specifying a callback to be executed when a response has completed, <a href=\"https://llm.datasette.io/en/stable/python-api.html#python-api-response-on-done\" rel=\"nofollow\">documented here</a>. <a href=\"https://github.com/simonw/llm/issues/653\" rel=\"nofollow\">#653</a></li>\n<li>Fix for bug running <code>llm chat</code> on Windows 11. Thanks, <a href=\"https://github.com/sukhbinder\" rel=\"nofollow\">Sukhbinder Singh</a>. <a href=\"https://github.com/simonw/llm/issues/495\" rel=\"nofollow\">#495</a></li>\n</ul></div>\n \n \n \n <h3>29th November 2024</h3>\n \n \n <h4><a href=\"https://github.com/simonw/datasette/releases/tag/0.65.1\">datasette 0.65.1</a>\n \n <span style=\"font-weight: normal; color: #666; font-size: 0.9em;\"> - An open source multi-tool for exploring and publishing data</span>\n \n </h4>\n \n <div style=\"white-space: normal\"><ul>\n<li>Fixed bug with upgraded HTTPX 0.28.0 dependency. <a href=\"https://github.com/simonw/datasette/issues/2443\" rel=\"nofollow\">#2443</a></li>\n</ul></div>\n \n \n \n <h3>23rd November 2024</h3>\n \n \n <h4><a href=\"https://github.com/simonw/sqlite-utils/releases/tag/3.38\">sqlite-utils 3.38</a>\n \n <span style=\"font-weight: normal; color: #666; font-size: 0.9em;\"> - CLI tool and Python library for manipulating SQLite databases</span>\n \n </h4>\n \n <div style=\"white-space: normal\"><ul>\n<li>Plugins can now reuse the implementation of the <code>sqlite-utils memory</code> CLI command with the new <code>return_db=True</code> parameter. (<a href=\"https://github.com/simonw/sqlite-utils/issues/643\" rel=\"nofollow\">#643</a>)</li>\n<li><code>table.transform()</code> now recreates indexes after transforming a table. A new <code>sqlite_utils.db.TransformError</code> exception is raised if these indexes cannot be recreated due to conflicting changes to the table such as a column rename. Thanks, <a href=\"https://github.com/matdmiller\" rel=\"nofollow\">Mat Miller</a>. (<a href=\"https://github.com/simonw/sqlite-utils/issues/633\" rel=\"nofollow\">#633</a>)</li>\n<li><code>table.search()</code> now accepts a <code>include_rank=True</code> parameter, causing the resulting rows to have a <code>rank</code> column showing the calculated relevance score. Thanks, <a href=\"https://github.com/liunux4odoo\" rel=\"nofollow\">liunux4odoo</a>. (<a href=\"https://github.com/simonw/sqlite-utils/pull/628\" rel=\"nofollow\">#628</a>)</li>\n<li>Fixed an error that occurred when creating a strict table with at least one floating point column. These <code>FLOAT</code> columns are now correctly created as <code>REAL</code> as well, but only for strict tables. (<a href=\"https://github.com/simonw/sqlite-utils/issues/644\" rel=\"nofollow\">#644</a>)</li>\n</ul></div>\n \n \n \n <h3>21st November 2024</h3>\n \n \n <h4><a href=\"https://github.com/simonw/llm/releases/tag/0.19a2\">llm 0.19a2</a>\n \n <span style=\"font-weight: normal; color: #666; font-size: 0.9em;\"> - A CLI utility and Python library for interacting with Large Language Models, including OpenAI, PaLM and local models installed on your own machine.</span>\n \n </h4>\n \n <div style=\"white-space: normal\"><ul>\n<li><code>llm.get_models()</code> and <code>llm.get_async_models()</code> functions, <a href=\"https://llm.datasette.io/en/latest/python-api.html#python-api-listing-models\" rel=\"nofollow\">documented here</a>. <a href=\"https://github.com/simonw/llm/issues/640\" rel=\"nofollow\">#640</a></li>\n</ul></div>\n \n \n \n <h3>20th November 2024</h3>\n \n \n <h4><a href=\"https://github.com/simonw/llm/releases/tag/0.19a1\">llm 0.19a1</a>\n </h4>\n \n <div style=\"white-space: normal\"><ul>\n<li><code>response.usage()</code> and async response <code>await response.usage()</code> methods, returning a <code>Usage(input=2, output=1, details=None)</code> dataclass. <a href=\"https://github.com/simonw/llm/issues/644\" rel=\"nofollow\">#644</a></li>\n</ul></div>\n \n \n \n <h4><a href=\"https://github.com/simonw/llm/releases/tag/0.19a0\">llm 0.19a0</a>\n </h4>\n \n <div style=\"white-space: normal\"><ul>\n<li>Tokens used by a response are now logged to new <code>input_tokens</code> and <code>output_tokens</code> integer columns and a <code>token_details</code> JSON string column, for the default OpenAI models and models from other plugins that <a href=\"https://llm.datasette.io/en/latest/plugins/advanced-model-plugins.html#advanced-model-plugins-usage\" rel=\"nofollow\">implement this feature</a>. <a href=\"https://github.com/simonw/llm/issues/610\" rel=\"nofollow\">#610</a></li>\n<li><code>llm prompt</code> now takes a <code>-u/--usage</code> flag to display token usage at the end of the response.</li>\n<li><code>llm logs -u/--usage</code> shows token usage information for logged responses.</li>\n<li><code>llm prompt ... --async</code> responses are now logged to the database. <a href=\"https://github.com/simonw/llm/issues/641\" rel=\"nofollow\">#641</a></li>\n</ul></div>\n \n \n <p><a href=\"/content/recent_releases\">All releases</a></p>\n </div>\n </div>\n </main>\n <footer>Powered by <a href=\"https://datasette.io/\" title=\"Datasette v1.0a2\">Datasette</a>\n &middot; <a href=\"https://github.com/simonw/datasette.io\">How this site works</a>\n &middot; <a href=\"https://github.com/simonw/datasette/blob/main/CODE_OF_CONDUCT.md\">Code of conduct</a>\n</footer>\n <a href=\"https://github.com/simonw/datasette\" class=\"github-corner\" aria-label=\"datasette on GitHub\">\n <svg width=\"80\" height=\"80\"\n viewBox=\"0 0 250 250\"\n style=\"fill:#151513; color:#fff; position: absolute; top: 0; border: 0; right: 0;\" aria-hidden=\"true\"\n ><path d=\"M0,0 L115,115 L130,115 L142,142 L250,250 L250,0 Z\"></path>\n <path d=\"M128.3,109.0 C113.8,99.7 119.0,89.6 119.0,89.6 C122.0,82.7 120.5,78.6 120.5,78.6 C119.2,72.0 123.4,76.3 123.4,76.3 C127.3,80.9 125.5,87.3 125.5,87.3 C122.9,97.6 130.6,101.9 134.4,103.2\" fill=\"currentColor\" style=\"transform-origin: 130px 106px;\" class=\"octo-arm\"></path>\n <path d=\"M115.0,115.0 C114.9,115.1 118.7,116.5 119.8,115.4 L133.7,101.6 C136.9,99.2 139.9,98.4 142.2,98.6 C133.8,88.0 127.5,74.4 143.8,58.0 C148.5,53.4 154.0,51.2 159.7,51.0 C160.3,49.4 163.2,43.6 171.4,40.1 C171.4,40.1 176.1,42.5 178.8,56.2 C183.1,58.6 187.2,61.8 190.9,65.4 C194.5,69.0 197.7,73.2 200.1,77.6 C213.8,80.2 216.3,84.9 216.3,84.9 C212.7,93.1 206.9,96.0 205.4,96.6 C205.1,102.4 203.0,107.8 198.3,112.5 C181.9,128.9 168.3,122.5 157.7,114.1 C157.9,116.9 156.7,120.9 152.7,124.9 L141.0,136.5 C139.8,137.7 141.6,141.9 141.8,141.8 Z\" fill=\"currentColor\" class=\"octo-body\"></path>\n </svg></a>\n</body>\n</html>"
},
"headersSize": 0,
"bodySize": 9883,
"redirectURL": "",
"_transferSize": 9883
},
"cache": {},
"timings": { "dns": 0.007, "connect": 96.235, "ssl": 77.572, "send": 0, "wait": 317.489, "receive": 22.196 },
"pageref": "page@cf0c6fc3a8eb44b78c414b3ef80d4760",
"serverIPAddress": "216.239.36.21",
"_serverPort": 443,
"_securityDetails": {
"protocol": "TLS 1.3",
"subjectName": "datasette.io",
"issuer": "R10",
"validFrom": 1736462682,
"validTo": 1744238681
}
},
{
"startedDateTime": "2025-02-13T20:37:42.239Z",
"time": 102.03999999999999,
"request": {
"method": "GET",
"url": "https://datasette.io/static/site.css",
"httpVersion": "HTTP/2.0",
"cookies": [],
"headers": [
{ "name": ":authority", "value": "datasette.io" },
{ "name": ":method", "value": "GET" },
{ "name": ":path", "value": "/static/site.css" },
{ "name": ":scheme", "value": "https" },
{ "name": "accept", "value": "text/css,*/*;q=0.1" },
{ "name": "accept-encoding", "value": "gzip, deflate, br" },
{ "name": "referer", "value": "https://datasette.io/" },
{ "name": "sec-ch-ua", "value": "\"HeadlessChrome\";v=\"119\", \"Chromium\";v=\"119\", \"Not?A_Brand\";v=\"24\"" },
{ "name": "sec-ch-ua-mobile", "value": "?0" },
{ "name": "sec-ch-ua-platform", "value": "\"macOS\"" },
{ "name": "sec-fetch-dest", "value": "style" },
{ "name": "sec-fetch-mode", "value": "no-cors" },
{ "name": "sec-fetch-site", "value": "same-origin" },
{ "name": "user-agent", "value": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/119.0.6045.9 Safari/537.36" }
],
"queryString": [],
"headersSize": 557,
"bodySize": 0
},
"response": {
"status": 200,
"statusText": "",
"httpVersion": "HTTP/2.0",
"cookies": [],
"headers": [
{ "name": "content-encoding", "value": "gzip" },
{ "name": "content-length", "value": "1294" },
{ "name": "content-type", "value": "text/css" },
{ "name": "date", "value": "Thu, 13 Feb 2025 20:37:42 GMT" },
{ "name": "server", "value": "Google Frontend" },
{ "name": "vary", "value": "Accept-Encoding" },
{ "name": "x-cloud-trace-context", "value": "a117f7fcdddd5405126759299e8ebc33" }
],
"content": {
"size": 4052,
"mimeType": "text/css",
"compression": 2670,
"text": "body {\n font-family: Helvetica, sans-serif;\n line-height: 1.4;\n padding-bottom: 2em;\n}\nheader, main, footer {\n max-width: 1024px;\n margin: 0 auto;\n}\nheader {\n border-bottom: 4px solid #0e0c82;\n margin-bottom: 2em;\n}\nfooter {\n border-top: 2px solid #0e0c82;\n padding-top: 0.5em;\n}\n.homepage h1 {\n margin-bottom: 0;\n}\n.homepage pre {\n white-space: pre-wrap;\n}\n.tagline {\n font-size: 1.4em;\n color: #0e0c82;\n text-shadow: 1px 1px 3px rgba(14, 12, 130, 0.3);\n margin: 0;\n}\n.datasette-logo {\n width: 100%;\n max-width: 400px;\n}\na:link,\na:visited,\na:hover,\na:focus,\na:active {\n color: blue;\n text-decoration: none;\n}\n\npre {\n word-break: break-word;\n}\n\nheader nav ul {\n margin: 1em 0 0 0;\n padding: 0;\n}\nheader nav li {\n float: left;\n font-size: 0.9em;\n list-style-type: none;\n margin: 0;\n padding: 0 2em 0 0;\n}\nheader nav li:last-child {\n padding-right: 0;\n}\nnav {\n overflow: hidden;\n margin-bottom: 2em;\n}\nnav .show-on-narrow {\n display: none;\n}\nbody.page main .content {\n max-width: 800px;\n}\n.datasette-logo-small {\n height: 1.5em;\n display: inline-block;\n padding-right: 2em;\n vertical-align: middle;\n}\nbody.page nav ul,\nbody.page nav li {\n float: none;\n display: inline;\n position: relative;\n top: 1px;\n}\nbody.page nav {\n margin-bottom: 1em;\n}\nbody.page header {\n padding-top: 0.5em;\n}\n\n@media (max-width: 480px) {\n nav .hide-on-narrow {\n display: none;\n }\n nav .show-on-narrow {\n display: inline;\n }\n header nav li {\n padding-right: 1em;\n }\n body.page nav ul {\n display: block;\n }\n}\n\n.about {\n width: 50%;\n}\n.datasette-video {\n float: right;\n width: 45%;\n margin-left: 5%;\n box-shadow: 1px 1px 5px 0px rgba(0,0,0,0.35);\n padding-bottom: 0.3em;\n}\n.datasette-video p {\n margin: 0.3em 0.3em 0.3em 0;\n text-align: center;\n}\n\n@media (max-width: 480px) {\n .datasette-video {\n float: none;\n width: 95%;\n display: block;\n margin: 1em auto;\n }\n .about {\n width: 100%;\n }\n body .two-col-wrapper {\n display: block;\n }\n}\n\n.use-cases {\n clear: both;\n}\n.card svg {\n max-width: 50px;\n color: #0e0c82;\n}\n.card {\n width: 33.3%;\n box-sizing: border-box;\n padding-right: 1em;\n margin-top: 2em;\n float: left;\n text-align: center;\n}\n.card h2 {\n font-size: 1.1em;\n}\n.card p {\n text-align: left;\n font-size: 0.8em;\n}\n\nspan.by {\n color: #999;\n font-size: 0.85em;\n}\n\n.substack iframe {\n float: right;\n border: 1px solid #EEE;\n background:white;\n margin-right: -224px;\n}\n@media (max-width: 1024px) {\n .substack {\n text-align: center;\n }\n .substack iframe {\n float: none;\n max-width: 100%;\n margin-right: 0;\n }\n}\n\n@media (max-width: 640px) {\n .card {\n float: none;\n width: 100%;\n }\n}\n\n\n.two-col-wrapper {\n display: flex;\n}\n.two-col-column {\n flex: 1;\n}\n.two-col-column:first-of-type {\n padding-right: 1em;\n}\n\n.github-corner:hover .octo-arm{\n animation:octocat-wave 560ms ease-in-out\n}\n@keyframes octocat-wave {\n 0%,100% {\n transform:rotate(0)\n }\n 20%,60% {\n transform:rotate(-25deg)\n }\n 40%,80% {\n transform:rotate(10deg)\n }\n}\n@media (max-width:500px) {\n .github-corner:hover .octo-arm {\n animation: none\n }\n .github-corner .octo-arm{\n animation: octocat-wave 560ms ease-in-out\n }\n}\n\n.beta-search {\n margin-bottom: 1em;\n}\n.beta-search input {\n border: 1px solid #ccc;\n border-radius: 3px;\n padding: 9px 4px;\n margin-right: 1em;\n}\n.beta-search input[type=\"submit\"] {\n color: #fff;\n background-color: #8484f4;\n border-color: #0e0c82;\n -webkit-appearance: button;\n font-weight: 400;\n cursor: pointer;\n text-align: center;\n vertical-align: middle;\n border-width: 1px;\n border-style: solid;\n padding: .4em 0.8em;\n font-size: 0.9rem;\n line-height: 1;\n border-radius: .25rem;\n}\n"
},
"headersSize": 0,
"bodySize": 1382,
"redirectURL": "",
"_transferSize": 1382
},
"cache": {},
"timings": { "dns": -1, "connect": -1, "ssl": -1, "send": 0, "wait": 101.446, "receive": 0.594 },
"pageref": "page@cf0c6fc3a8eb44b78c414b3ef80d4760",
"serverIPAddress": "216.239.36.21",
"_serverPort": 443,
"_securityDetails": {
"protocol": "TLS 1.3",
"subjectName": "datasette.io",
"issuer": "R10",
"validFrom": 1736462682,
"validTo": 1744238681
}
},
{
"startedDateTime": "2025-02-13T20:37:42.240Z",
"time": 188.54100000000003,
"request": {
"method": "GET",
"url": "https://plausible.io/js/plausible.js",
"httpVersion": "HTTP/2.0",
"cookies": [],
"headers": [
{ "name": ":authority", "value": "plausible.io" },
{ "name": ":method", "value": "GET" },
{ "name": ":path", "value": "/js/plausible.js" },
{ "name": ":scheme", "value": "https" },
{ "name": "accept", "value": "*/*" },
{ "name": "accept-encoding", "value": "gzip, deflate, br" },
{ "name": "referer", "value": "https://datasette.io/" },
{ "name": "sec-ch-ua", "value": "\"HeadlessChrome\";v=\"119\", \"Chromium\";v=\"119\", \"Not?A_Brand\";v=\"24\"" },
{ "name": "sec-ch-ua-mobile", "value": "?0" },
{ "name": "sec-ch-ua-platform", "value": "\"macOS\"" },
{ "name": "sec-fetch-dest", "value": "script" },
{ "name": "sec-fetch-mode", "value": "no-cors" },
{ "name": "sec-fetch-site", "value": "cross-site" },
{ "name": "user-agent", "value": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/119.0.6045.9 Safari/537.36" }
],
"queryString": [],
"headersSize": 542,
"bodySize": 0
},
"response": {
"status": 200,
"statusText": "",
"httpVersion": "HTTP/2.0",
"cookies": [],
"headers": [
{ "name": "access-control-allow-origin", "value": "*" },
{ "name": "application", "value": "127.0.0.1" },
{ "name": "cache-control", "value": "public, max-age=3600" },
{ "name": "cdn-cache", "value": "HIT" },
{ "name": "cdn-cachedat", "value": "02/13/2025 20:32:31" },
{ "name": "cdn-edgestorageid", "value": "1120" },
{ "name": "cdn-proxyver", "value": "1.19" },
{ "name": "cdn-pullzone", "value": "682664" },
{ "name": "cdn-requestcountrycode", "value": "US" },
{ "name": "cdn-requestid", "value": "7e5f1ea109e19d531ff61e05a0fa1a68" },
{ "name": "cdn-requestpullcode", "value": "200" },
{ "name": "cdn-requestpullsuccess", "value": "True" },
{ "name": "cdn-requesttime", "value": "0" },
{ "name": "cdn-status", "value": "200" },
{ "name": "cdn-uid", "value": "153cb5b1-399a-48ef-b5bf-098c03770254" },
{ "name": "content-encoding", "value": "br" },
{ "name": "content-type", "value": "application/javascript" },
{ "name": "cross-origin-resource-policy", "value": "cross-origin" },
{ "name": "date", "value": "Thu, 13 Feb 2025 20:37:42 GMT" },
{ "name": "permissions-policy", "value": "interest-cohort=()" },
{ "name": "server", "value": "BunnyCDN-WA1-1120" },
{ "name": "vary", "value": "Accept-Encoding" },
{ "name": "x-content-type-options", "value": "nosniff" }
],
"content": {
"size": 1393,
"mimeType": "application/javascript",
"compression": 131,
"text": "!function(){\"use strict\";var a=window.location,o=window.document,t=o.currentScript,r=t.getAttribute(\"data-api\")||new URL(t.src).origin+\"/api/event\",l=t.getAttribute(\"data-domain\");function s(t,i,e){i&&console.warn(\"Ignoring Event: \"+i),e&&e.callback&&e.callback()}function i(t,i){if(/^localhost$|^127(\\.[0-9]+){0,2}\\.[0-9]+$|^\\[::1?\\]$/.test(a.hostname)||\"file:\"===a.protocol)return s(0,\"localhost\",i);if((window._phantom||window.__nightmare||window.navigator.webdriver||window.Cypress)&&!window.__plausible)return s(0,null,i);try{if(\"true\"===window.localStorage.plausible_ignore)return s(0,\"localStorage flag\",i)}catch(t){}var e,n={};n.n=t,n.u=a.href,n.d=l,n.r=o.referrer||null,i&&i.meta&&(n.m=JSON.stringify(i.meta)),i&&i.props&&(n.p=i.props),t=r,n=n,e=i,window.fetch&&fetch(t,{method:\"POST\",headers:{\"Content-Type\":\"text/plain\"},keepalive:!0,body:JSON.stringify(n)}).then(function(t){e&&e.callback&&e.callback({status:t.status})})}var e=window.plausible&&window.plausible.q||[];window.plausible=i;for(var n,c=0;c<e.length;c++)i.apply(this,e[c]);function p(){n!==a.pathname&&(n=a.pathname,i(\"pageview\"))}function w(){p()}var u,t=window.history;t.pushState&&(u=t.pushState,t.pushState=function(){u.apply(this,arguments),w()},window.addEventListener(\"popstate\",w)),\"prerender\"===o.visibilityState?o.addEventListener(\"visibilitychange\",function(){n||\"visible\"!==o.visibilityState||p()}):p()}();"
},
"headersSize": 0,
"bodySize": 1262,
"redirectURL": "",
"_transferSize": 1262
},
"cache": {},
"timings": { "dns": 0.021, "connect": 95.059, "ssl": 50.492, "send": 0, "wait": 42.002, "receive": 0.967 },
"pageref": "page@cf0c6fc3a8eb44b78c414b3ef80d4760",
"serverIPAddress": "212.102.46.118",
"_serverPort": 443,
"_securityDetails": {
"protocol": "TLS 1.3",
"subjectName": "plausible.io",
"issuer": "R11",
"validFrom": 1736687464,
"validTo": 1744463463
}
},
{
"startedDateTime": "2025-02-13T20:37:42.240Z",
"time": 101.186,
"request": {
"method": "GET",
"url": "https://datasette.io/static/lite-yt-embed.css",
"httpVersion": "HTTP/2.0",
"cookies": [],
"headers": [
{ "name": ":authority", "value": "datasette.io" },
{ "name": ":method", "value": "GET" },
{ "name": ":path", "value": "/static/lite-yt-embed.css" },
{ "name": ":scheme", "value": "https" },
{ "name": "accept", "value": "text/css,*/*;q=0.1" },
{ "name": "accept-encoding", "value": "gzip, deflate, br" },
{ "name": "referer", "value": "https://datasette.io/" },
{ "name": "sec-ch-ua", "value": "\"HeadlessChrome\";v=\"119\", \"Chromium\";v=\"119\", \"Not?A_Brand\";v=\"24\"" },
{ "name": "sec-ch-ua-mobile", "value": "?0" },
{ "name": "sec-ch-ua-platform", "value": "\"macOS\"" },
{ "name": "sec-fetch-dest", "value": "style" },
{ "name": "sec-fetch-mode", "value": "no-cors" },
{ "name": "sec-fetch-site", "value": "same-origin" },
{ "name": "user-agent", "value": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/119.0.6045.9 Safari/537.36" }
],
"queryString": [],
"headersSize": 575,
"bodySize": 0
},
"response": {
"status": 200,
"statusText": "",
"httpVersion": "HTTP/2.0",
"cookies": [],
"headers": [
{ "name": "content-encoding", "value": "gzip" },
{ "name": "content-length", "value": "1203" },
{ "name": "content-type", "value": "text/css" },
{ "name": "date", "value": "Thu, 13 Feb 2025 20:37:42 GMT" },
{ "name": "server", "value": "Google Frontend" },
{ "name": "vary", "value": "Accept-Encoding" },
{ "name": "x-cloud-trace-context", "value": "d85885f7d3dcc34895e43a18d9e9926d" }
],
"content": {
"size": 2501,
"mimeType": "text/css",
"compression": 1202,
"text": "lite-youtube {\n background-color: #000;\n position: relative;\n display: block;\n contain: content;\n background-position: center center;\n background-size: cover;\n cursor: pointer;\n max-width: 720px;\n}\n\n/* gradient */\nlite-youtube::before {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAADGCAYAAAAT+OqFAAAAdklEQVQoz42QQQ7AIAgEF/T/D+kbq/RWAlnQyyazA4aoAB4FsBSA/bFjuF1EOL7VbrIrBuusmrt4ZZORfb6ehbWdnRHEIiITaEUKa5EJqUakRSaEYBJSCY2dEstQY7AuxahwXFrvZmWl2rh4JZ07z9dLtesfNj5q0FU3A5ObbwAAAABJRU5ErkJggg==);\n background-position: top;\n background-repeat: repeat-x;\n height: 60px;\n padding-bottom: 50px;\n width: 100%;\n transition: all 0.2s cubic-bezier(0, 0, 0.2, 1);\n}\n\n/* responsive iframe with a 16:9 aspect ratio\n thanks https://css-tricks.com/responsive-iframes/\n*/\nlite-youtube::after {\n content: \"\";\n display: block;\n padding-bottom: calc(100% / (16 / 9));\n}\nlite-youtube > iframe {\n width: 100%;\n height: 100%;\n position: absolute;\n top: 0;\n left: 0;\n border: 0;\n}\n\n/* play button */\nlite-youtube > .lty-playbtn {\n display: block;\n width: 68px;\n height: 48px;\n position: absolute;\n cursor: pointer;\n transform: translate3d(-50%, -50%, 0);\n top: 50%;\n left: 50%;\n z-index: 1;\n background-color: transparent;\n /* YT's actual play button svg */\n background-image: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 68 48\"><path d=\"M66.52 7.74c-.78-2.93-2.49-5.41-5.42-6.19C55.79.13 34 0 34 0S12.21.13 6.9 1.55c-2.93.78-4.63 3.26-5.42 6.19C.06 13.05 0 24 0 24s.06 10.95 1.48 16.26c.78 2.93 2.49 5.41 5.42 6.19C12.21 47.87 34 48 34 48s21.79-.13 27.1-1.55c2.93-.78 4.64-3.26 5.42-6.19C67.94 34.95 68 24 68 24s-.06-10.95-1.48-16.26z\" fill=\"red\"/><path d=\"M45 24 27 14v20\" fill=\"white\"/></svg>');\n filter: grayscale(100%);\n transition: filter .1s cubic-bezier(0, 0, 0.2, 1);\n border: none;\n}\n\nlite-youtube:hover > .lty-playbtn,\nlite-youtube .lty-playbtn:focus {\n filter: none;\n}\n\n/* Post-click styles */\nlite-youtube.lyt-activated {\n cursor: unset;\n}\nlite-youtube.lyt-activated::before,\nlite-youtube.lyt-activated > .lty-playbtn {\n opacity: 0;\n pointer-events: none;\n}\n\n.lyt-visually-hidden {\n clip: rect(0 0 0 0);\n clip-path: inset(50%);\n height: 1px;\n overflow: hidden;\n position: absolute;\n white-space: nowrap;\n width: 1px;\n }\n"
},
"headersSize": 0,
"bodySize": 1299,
"redirectURL": "",
"_transferSize": 1299
},
"cache": {},
"timings": { "dns": -1, "connect": -1, "ssl": -1, "send": 0, "wait": 99.933, "receive": 1.253 },
"pageref": "page@cf0c6fc3a8eb44b78c414b3ef80d4760",
"serverIPAddress": "216.239.36.21",
"_serverPort": 443,
"_securityDetails": {
"protocol": "TLS 1.3",
"subjectName": "datasette.io",
"issuer": "R10",
"validFrom": 1736462682,
"validTo": 1744238681
}
},
{
"startedDateTime": "2025-02-13T20:37:42.240Z",
"time": 289.17,
"request": {
"method": "GET",
"url": "https://datasette.io/static/lite-yt-embed.js",
"httpVersion": "HTTP/2.0",
"cookies": [],
"headers": [
{ "name": ":authority", "value": "datasette.io" },
{ "name": ":method", "value": "GET" },
{ "name": ":path", "value": "/static/lite-yt-embed.js" },
{ "name": ":scheme", "value": "https" },
{ "name": "accept", "value": "*/*" },
{ "name": "accept-encoding", "value": "gzip, deflate, br" },
{ "name": "referer", "value": "https://datasette.io/" },
{ "name": "sec-ch-ua", "value": "\"HeadlessChrome\";v=\"119\", \"Chromium\";v=\"119\", \"Not?A_Brand\";v=\"24\"" },
{ "name": "sec-ch-ua-mobile", "value": "?0" },
{ "name": "sec-ch-ua-platform", "value": "\"macOS\"" },
{ "name": "sec-fetch-dest", "value": "script" },
{ "name": "sec-fetch-mode", "value": "no-cors" },
{ "name": "sec-fetch-site", "value": "same-origin" },
{ "name": "user-agent", "value": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/119.0.6045.9 Safari/537.36" }
],
"queryString": [],
"headersSize": 559,
"bodySize": 0
},
"response": {
"status": 200,
"statusText": "",
"httpVersion": "HTTP/2.0",
"cookies": [],
"headers": [
{ "name": "content-encoding", "value": "gzip" },
{ "name": "content-type", "value": "application/javascript" },
{ "name": "date", "value": "Thu, 13 Feb 2025 20:37:42 GMT" },
{ "name": "server", "value": "Google Frontend" },
{ "name": "vary", "value": "Accept-Encoding" }
],
"content": {
"size": 5557,
"mimeType": "application/javascript",
"compression": 3192,
"text": "/**\n * A lightweight youtube embed. Still should feel the same to the user, just MUCH faster to initialize and paint.\n *\n * Thx to these as the inspiration\n * https://storage.googleapis.com/amp-vs-non-amp/youtube-lazy.html\n * https://autoplay-youtube-player.glitch.me/\n *\n * Once built it, I also found these:\n * https://github.com/ampproject/amphtml/blob/master/extensions/amp-youtube (👍👍)\n * https://github.com/Daugilas/lazyYT\n * https://github.com/vb/lazyframe\n */\nclass LiteYTEmbed extends HTMLElement {\n connectedCallback() {\n this.videoId = this.getAttribute('videoid');\n\n let playBtnEl = this.querySelector('.lty-playbtn');\n // A label for the button takes priority over a [playlabel] attribute on the custom-element\n this.playLabel = (playBtnEl && playBtnEl.textContent.trim()) || this.getAttribute('playlabel') || 'Play';\n\n /**\n * Lo, the youtube placeholder image! (aka the thumbnail, poster image, etc)\n *\n * See https://github.com/paulirish/lite-youtube-embed/blob/master/youtube-thumbnail-urls.md\n *\n * TODO: Do the sddefault->hqdefault fallback\n * - When doing this, apply referrerpolicy (https://github.com/ampproject/amphtml/pull/3940)\n * TODO: Consider using webp if supported, falling back to jpg\n */\n if (!this.style.backgroundImage) {\n this.style.backgroundImage = `url(\"https://i.ytimg.com/vi/${this.videoId}/hqdefault.jpg\")`;\n }\n\n // Set up play button, and its visually hidden label\n if (!playBtnEl) {\n playBtnEl = document.createElement('button');\n playBtnEl.type = 'button';\n playBtnEl.classList.add('lty-playbtn');\n this.append(playBtnEl);\n }\n if (!playBtnEl.textContent) {\n const playBtnLabelEl = document.createElement('span');\n playBtnLabelEl.className = 'lyt-visually-hidden';\n playBtnLabelEl.textContent = this.playLabel;\n playBtnEl.append(playBtnLabelEl);\n }\n\n // On hover (or tap), warm up the TCP connections we're (likely) about to use.\n this.addEventListener('pointerover', LiteYTEmbed.warmConnections, {once: true});\n\n // Once the user clicks, add the real iframe and drop our play button\n // TODO: In the future we could be like amp-youtube and silently swap in the iframe during idle time\n // We'd want to only do this for in-viewport or near-viewport ones: https://github.com/ampproject/amphtml/pull/5003\n this.addEventListener('click', this.addIframe);\n }\n\n // // TODO: Support the the user changing the [videoid] attribute\n // attributeChangedCallback() {\n // }\n\n /**\n * Add a <link rel={preload | preconnect} ...> to the head\n */\n static addPrefetch(kind, url, as) {\n const linkEl = document.createElement('link');\n linkEl.rel = kind;\n linkEl.href = url;\n if (as) {\n linkEl.as = as;\n }\n document.head.append(linkEl);\n }\n\n /**\n * Begin pre-connecting to warm up the iframe load\n * Since the embed's network requests load within its iframe,\n * preload/prefetch'ing them outside the iframe will only cause double-downloads.\n * So, the best we can do is warm up a few connections to origins that are in the critical path.\n *\n * Maybe `<link rel=preload as=document>` would work, but it's unsupported: http://crbug.com/593267\n * But TBH, I don't think it'll happen soon with Site Isolation and split caches adding serious complexity.\n */\n static warmConnections() {\n if (LiteYTEmbed.preconnected) return;\n\n // The iframe document and most of its subresources come right off youtube.com\n LiteYTEmbed.addPrefetch('preconnect', 'https://www.youtube-nocookie.com');\n // The botguard script is fetched off from google.com\n LiteYTEmbed.addPrefetch('preconnect', 'https://www.google.com');\n\n // Not certain if these ad related domains are in the critical path. Could verify with domain-specific throttling.\n LiteYTEmbed.addPrefetch('preconnect', 'https://googleads.g.doubleclick.net');\n LiteYTEmbed.addPrefetch('preconnect', 'https://static.doubleclick.net');\n\n LiteYTEmbed.preconnected = true;\n }\n\n addIframe(e) {\n if (this.classList.contains('lyt-activated')) return;\n e.preventDefault();\n this.classList.add('lyt-activated');\n\n const params = new URLSearchParams(this.getAttribute('params') || []);\n params.append('autoplay', '1');\n\n const iframeEl = document.createElement('iframe');\n iframeEl.width = 560;\n iframeEl.height = 315;\n // No encoding necessary as [title] is safe. https://cheatsheetseries.owasp.org/cheatsheets/Cross_Site_Scripting_Prevention_Cheat_Sheet.html#:~:text=Safe%20HTML%20Attributes%20include\n iframeEl.title = this.playLabel;\n iframeEl.allow = 'accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture';\n iframeEl.allowFullscreen = true;\n // AFAIK, the encoding here isn't necessary for XSS, but we'll do it only because this is a URL\n // https://stackoverflow.com/q/64959723/89484\n iframeEl.src = `https://www.youtube-nocookie.com/embed/${encodeURIComponent(this.videoId)}?${params.toString()}`;\n this.append(iframeEl);\n\n // Set focus for a11y\n iframeEl.focus();\n }\n}\n// Register custom element\ncustomElements.define('lite-youtube', LiteYTEmbed);\n"
},
"headersSize": 0,
"bodySize": 2365,
"redirectURL": "",
"_transferSize": 2365
},
"cache": {},
"timings": { "dns": -1, "connect": -1, "ssl": -1, "send": 0, "wait": 287.887, "receive": 1.283 },
"pageref": "page@cf0c6fc3a8eb44b78c414b3ef80d4760",
"serverIPAddress": "216.239.36.21",
"_serverPort": 443,
"_securityDetails": {
"protocol": "TLS 1.3",
"subjectName": "datasette.io",
"issuer": "R10",
"validFrom": 1736462682,
"validTo": 1744238681
}
},
{
"startedDateTime": "2025-02-13T20:37:42.240Z",
"time": 309.79,
"request": {
"method": "GET",
"url": "https://datasette.io/static/datasette-logo.svg",
"httpVersion": "HTTP/2.0",
"cookies": [],
"headers": [
{ "name": ":authority", "value": "datasette.io" },
{ "name": ":method", "value": "GET" },
{ "name": ":path", "value": "/static/datasette-logo.svg" },
{ "name": ":scheme", "value": "https" },
{ "name": "accept", "value": "image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8" },
{ "name": "accept-encoding", "value": "gzip, deflate, br" },
{ "name": "referer", "value": "https://datasette.io/" },
{ "name": "sec-ch-ua", "value": "\"HeadlessChrome\";v=\"119\", \"Chromium\";v=\"119\", \"Not?A_Brand\";v=\"24\"" },
{ "name": "sec-ch-ua-mobile", "value": "?0" },
{ "name": "sec-ch-ua-platform", "value": "\"macOS\"" },
{ "name": "sec-fetch-dest", "value": "image" },
{ "name": "sec-fetch-mode", "value": "no-cors" },
{ "name": "sec-fetch-site", "value": "same-origin" },
{ "name": "user-agent", "value": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/119.0.6045.9 Safari/537.36" }
],
"queryString": [],
"headersSize": 623,
"bodySize": 0
},
"response": {
"status": 200,
"statusText": "",
"httpVersion": "HTTP/2.0",
"cookies": [],
"headers": [
{ "name": "content-encoding", "value": "gzip" },
{ "name": "content-type", "value": "image/svg+xml" },
{ "name": "date", "value": "Thu, 13 Feb 2025 20:37:42 GMT" },
{ "name": "server", "value": "Google Frontend" },
{ "name": "vary", "value": "Accept-Encoding" }
],
"content": {
"size": 10916,
"mimeType": "image/svg+xml",
"compression": 7455,
"text": "<svg width=\"747\" height=\"108\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><mask id=\"a\" maskUnits=\"userSpaceOnUse\" x=\"122\" y=\"0\" width=\"625\" height=\"108\" fill=\"#000\"><path fill=\"#fff\" d=\"M122 0h625v108H122z\"/><path d=\"M166 6a42 42 0 0130 13c9 9 14 21 14 35s-5 26-14 35a42 42 0 01-30 13h-40V6h40zm0 85c9 0 18-3 24-11 6-7 9-16 9-26s-3-19-9-26c-6-8-15-11-24-11h-29v74h29zM281 90c-6 8-15 13-26 13-10 0-19-4-25-11-7-7-10-16-10-26 0-11 3-20 10-27 6-7 15-10 26-10 10 0 19 4 25 12V30h10v72h-10V90zm-25 3c8 0 14-3 19-8 4-5 6-12 6-19 0-8-2-15-6-20-5-5-11-8-19-8-7 0-14 3-18 8-5 5-7 12-7 20 0 7 2 14 7 19 4 5 11 8 18 8zM318 102V39h-15v-9h15V4h10v26h17v9h-17v63h-10zM411 90c-6 8-14 13-26 13-10 0-18-4-25-11-6-7-9-16-9-26 0-11 3-20 9-27 7-7 15-10 26-10s19 4 25 12V30h11v72h-11V90zm-24 3c8 0 14-3 18-8 5-5 7-12 7-19 0-8-2-15-7-20-4-5-10-8-18-8s-14 3-19 8c-4 5-6 12-6 20 0 7 2 14 6 19 5 5 11 8 19 8zM483 49c-1-7-7-11-18-11s-17 3-17 10c0 3 1 5 3 7l9 3 12 3 11 3c4 2 7 4 9 7 3 2 4 6 4 10 0 7-3 13-8 16-5 4-12 6-21 6-10 0-18-3-23-7-5-5-8-10-9-17h12c0 7 4 11 11 13l7 2 7-1 6-1c5-2 7-5 7-10 0-3-1-5-4-7-2-1-5-3-8-3l-12-3-11-4c-4-1-7-3-9-6-3-2-4-5-4-10 0-6 3-11 7-15 5-4 12-5 21-5s16 2 21 6c4 3 7 8 7 14h-10zM542 93c9 0 16-4 20-12h12c-2 6-6 12-12 16-5 4-12 6-21 6-10 0-19-4-26-11s-10-16-10-26c0-11 3-20 10-27 6-7 15-10 26-10 10 0 19 3 26 10 6 7 9 16 9 27v4h-60c1 7 4 12 8 16 5 5 10 7 18 7zm-1-55a24 24 0 00-25 22h49c-1-6-3-12-8-15-4-5-10-7-16-7zM708 93c10 0 17-4 21-12h12c-3 6-7 12-12 16s-12 6-21 6c-11 0-19-4-26-11s-10-16-10-26c0-11 3-20 9-27 7-7 16-10 26-10 11 0 20 3 27 10 6 7 9 16 9 27v4h-60c1 7 3 12 8 16 4 5 10 7 17 7zm-1-55a24 24 0 00-24 22h49c-1-6-4-12-8-15-4-5-10-7-17-7zM601 104V42h-15V32h15V6h10v26h11v10h-11v62h-10zM636 104V42h-14V32h14V6h11v26h16v10h-16v62h-11z\"/></mask><path d=\"M166 6a42 42 0 0130 13c9 9 14 21 14 35s-5 26-14 35a42 42 0 01-30 13h-40V6h40zm0 85c9 0 18-3 24-11 6-7 9-16 9-26s-3-19-9-26c-6-8-15-11-24-11h-29v74h29zM281 90c-6 8-15 13-26 13-10 0-19-4-25-11-7-7-10-16-10-26 0-11 3-20 10-27 6-7 15-10 26-10 10 0 19 4 25 12V30h10v72h-10V90zm-25 3c8 0 14-3 19-8 4-5 6-12 6-19 0-8-2-15-6-20-5-5-11-8-19-8-7 0-14 3-18 8-5 5-7 12-7 20 0 7 2 14 7 19 4 5 11 8 18 8zM318 102V39h-15v-9h15V4h10v26h17v9h-17v63h-10zM411 90c-6 8-14 13-26 13-10 0-18-4-25-11-6-7-9-16-9-26 0-11 3-20 9-27 7-7 15-10 26-10s19 4 25 12V30h11v72h-11V90zm-24 3c8 0 14-3 18-8 5-5 7-12 7-19 0-8-2-15-7-20-4-5-10-8-18-8s-14 3-19 8c-4 5-6 12-6 20 0 7 2 14 6 19 5 5 11 8 19 8zM483 49c-1-7-7-11-18-11s-17 3-17 10c0 3 1 5 3 7l9 3 12 3 11 3c4 2 7 4 9 7 3 2 4 6 4 10 0 7-3 13-8 16-5 4-12 6-21 6-10 0-18-3-23-7-5-5-8-10-9-17h12c0 7 4 11 11 13l7 2 7-1 6-1c5-2 7-5 7-10 0-3-1-5-4-7-2-1-5-3-8-3l-12-3-11-4c-4-1-7-3-9-6-3-2-4-5-4-10 0-6 3-11 7-15 5-4 12-5 21-5s16 2 21 6c4 3 7 8 7 14h-10zM542 93c9 0 16-4 20-12h12c-2 6-6 12-12 16-5 4-12 6-21 6-10 0-19-4-26-11s-10-16-10-26c0-11 3-20 10-27 6-7 15-10 26-10 10 0 19 3 26 10 6 7 9 16 9 27v4h-60c1 7 4 12 8 16 5 5 10 7 18 7zm-1-55a24 24 0 00-25 22h49c-1-6-3-12-8-15-4-5-10-7-16-7zM708 93c10 0 17-4 21-12h12c-3 6-7 12-12 16s-12 6-21 6c-11 0-19-4-26-11s-10-16-10-26c0-11 3-20 9-27 7-7 16-10 26-10 11 0 20 3 27 10 6 7 9 16 9 27v4h-60c1 7 3 12 8 16 4 5 10 7 17 7zm-1-55a24 24 0 00-24 22h49c-1-6-4-12-8-15-4-5-10-7-17-7zM601 104V42h-15V32h15V6h10v26h11v10h-11v62h-10zM636 104V42h-14V32h14V6h11v26h16v10h-16v62h-11z\" fill=\"#0E0C82\" fill-opacity=\".3\"/><path d=\"M624 32a2 2 0 00-4 0h4zm-4 10a2 2 0 104 0h-4zm0-10v5h4v-5h-4zm0 5v5h4v-5h-4zM182 10l-1 3 1-3zm14 9l-3 3 3-3zm0 70l-3-3 3 3zm-14 9l2 4-2-4zm-56 4h-4v4h4v-4zm0-96V2h-4v4h4zm64 74l-3-2 3 2zm0-52l-3 2 3-2zm-53-11v-4h-4v4h4zm0 74h-4v4h4v-4zm144-1h4V77l-8 11 4 2zm-51 2l-3 3 3-3zm0-53l-3-2 3 2zm51 2l-4 3 8 10V41h-4zm0-11v-4h-4v4h4zm10 0h4v-4h-4v4zm0 72v4h4v-4h-4zm-10 0h-4v4h4v-4zm-6-17l-3-3 3 3zm0-39l-3 3 3-3zm-37 0l-3-2 3 2zm0 39l-3 3 3-3zm80 17h-4v4h4v-4zm0-63h4v-4h-4v4zm-15 0h-4v4h4v-4zm0-9v-4h-4v4h4zm15 0v4h4v-4h-4zm0-26V0h-4v4h4zm10 0h4V0h-4v4zm0 26h-4v4h4v-4zm17 0h4v-4h-4v4zm0 9v4h4v-4h-4zm-17 0v-4h-4v4h4zm0 63v4h4v-4h-4zm83-12h4V77l-7 11 3 2zm-51 2l-3 3 3-3zm0-53l-3-2 3 2zm51 2l-3 3 7 10V41h-4zm0-11v-4h-4v4h4zm11 0h4v-4h-4v4zm0 72v4h4v-4h-4zm-11 0h-4v4h4v-4zm-6-17l-3-3 3 3zm0-39l-3 3 3-3zm-37 0l-3-2 3 2zm0 39l-3 3 3-3zm115-36h-4v4h4v-4zm-32 6l-2 3 2-3zm9 3l1-4-1 4zm12 3l-1 4 1-4zm11 3l-1 4 1-4zm9 7l-3 2 3-2zm-4 26l2 4-2-4zm-44-1l2-4-2 4zm-9-17v-4h-4v4h4zm12 0h4l-1-4h-3v4zm11 13l-1 4 1-4zm14 1l1 4-1-4zm6-1l2 3-2-3zm3-17l-2 4 2-4zm-8-3l-1 3 1-3zm-12-3l-1 4 1-4zm-11-4l-2 4 2-4zm-9-6l-3 3 3-3zm3-25l3 3-3-3zm42 1l3-3-3 3zm7 14v4h5l-1-4h-4zm69 32v-4h-2l-1 2 3 2zm12 0l4 1 2-5h-6v4zm-12 16l-2-4 2 4zm-47-5l-3 3 3-3zm0-53l-3-2 3 2zm52 0l3-2-3 2zm9 31v4h4v-4h-4zm-60 0v-4h-4v4h4zm8 16l3-3-3 3zm0-41l-3-3 3 3zm-8 15l-4-1v5h4v-4zm49 0v4h5l-1-5-4 1zm-8-15l3-3-3 3zm172 36v-4h-2l-1 2 3 2zm12 0l4 1 2-5h-6v4zm-12 16l-2-4 2 4zm-47-5l-3 3 3-3zm-1-53l-3-2 3 2zm53 0l2-2-2 2zm9 31v4h4v-4h-4zm-60 0v-4h-5l1 4h4zm8 16l3-3-3 3zm0-41l-3-3 3 3zm-8 15l-4-1-1 5h5v-4zm49 0v4h4v-5l-4 1zm-8-15l3-3-3 3zm-123 59h-4v4h4v-4zm0-62h4v-4h-4v4zm-15 0h-4v4h4v-4zm0-10v-4h-4v4h4zm15 0v4h4v-4h-4zm0-26V2h-4v4h4zm10 0h4V2h-4v4zm0 26h-4v4h4v-4zm0 10v-4h-4v4h4zm0 62v4h4v-4h-4zm25 0h-4v4h4v-4zm0-62h4v-4h-4v4zm0-10v4h4v-4h-4zm0-26V2h-4v4h4zm11 0h4V2h-4v4zm0 26h-4v4h4v-4zm16 0h4v-4h-4v4zm0 10v4h4v-4h-4zm-16 0v-4h-4v4h4zm0 62v4h4v-4h-4zM166 10l15 3 3-7c-6-2-12-4-18-4v8zm15 3c5 2 9 5 12 9l6-6c-4-4-9-8-15-10l-3 7zm12 9c8 8 13 19 13 32h8c0-15-5-28-15-38l-6 6zm13 32c0 13-5 24-13 32l6 6c10-10 15-23 15-38h-8zm-13 32c-3 4-7 7-12 9l3 7c6-2 11-6 15-10l-6-6zm-12 9l-15 3v8c6 0 12-2 18-4l-3-7zm-15 3h-40v8h40v-8zm-36 4V6h-8v96h8zm-4-92h40V2h-40v8zm40 85c11 0 20-4 27-12l-6-5c-6 6-13 9-21 9v8zm27-12c7-8 10-18 10-29h-8c0 10-3 17-8 24l6 5zm10-29c0-11-3-21-10-29l-6 5c5 7 8 14 8 24h8zm-10-29c-7-8-16-12-27-12v8c8 0 15 3 21 9l6-5zm-27-12h-29v8h29v-8zm-33 4v74h8V17h-8zm4 78h29v-8h-29v8zm140-7c-5 7-12 11-22 11v8c12 0 22-5 29-15l-7-4zm-22 11c-9 0-17-3-22-10l-6 6c7 8 17 12 28 12v-8zm-22-10c-6-6-9-14-9-23h-8c0 11 4 21 11 29l6-6zm-9-23c0-10 3-18 9-24l-6-5c-7 8-11 17-11 29h8zm9-24c5-6 13-9 23-9v-8c-12 0-22 4-29 12l6 5zm23-9c9 0 16 3 21 11l7-5c-7-10-16-14-28-14v8zm29 8V30h-8v11h8zm-4-7h10v-8h-10v8zm6-4v72h8V30h-8zm4 68h-10v8h10v-8zm-6 4V90h-8v12h8zm-29-5c9 0 16-3 22-10l-6-5c-4 5-9 7-16 7v8zm22-10c5-5 7-13 7-21h-8c0 7-2 12-5 16l6 5zm7-21c0-9-2-16-7-22l-6 5c3 4 5 10 5 17h8zm-7-22c-6-7-13-10-22-10v8c7 0 12 3 16 7l6-5zm-22-10c-8 0-16 3-21 10l6 5c4-4 9-7 15-7v-8zm-21 10c-6 6-8 13-8 22h8c0-7 2-13 6-17l-6-5zm-8 22c0 8 2 16 8 22l6-6c-4-4-6-9-6-16h-8zm8 22c5 6 13 9 21 9v-8c-6 0-11-2-15-7l-6 6zm87 14V39h-8v63h8zm-4-67h-15v8h15v-8zm-11 4v-9h-8v9h8zm-4-5h15v-8h-15v8zm19-4V4h-8v26h8zm-4-22h10V0h-10v8zm6-4v26h8V4h-8zm4 30h17v-8h-17v8zm13-4v9h8v-9h-8zm4 5h-17v8h17v-8zm-21 4v63h8V39h-8zm4 59h-10v8h10v-8zm80-10c-5 7-12 11-23 11v8c13 0 23-5 29-15l-6-4zm-23 11c-9 0-16-3-22-10l-6 6c8 8 17 12 28 12v-8zm-22-10c-5-6-8-14-8-23h-8c0 11 3 21 10 29l6-6zm-8-23c0-10 3-18 8-24l-6-5c-7 8-10 17-10 29h8zm8-24c6-6 13-9 23-9v-8c-12 0-21 4-29 12l6 5zm23-9c10 0 17 3 22 11l6-5c-6-10-16-14-28-14v8zm29 8V30h-8v11h8zm-4-7h11v-8h-11v8zm7-4v72h8V30h-8zm4 68h-11v8h11v-8zm-7 4V90h-8v12h8zm-28-5c9 0 16-3 21-10l-6-5c-3 5-8 7-15 7v8zm21-10c5-5 8-13 8-21h-8c0 7-2 12-6 16l6 5zm8-21c0-9-3-16-8-22l-6 5c4 4 6 10 6 17h8zm-8-22c-5-7-12-10-21-10v8c7 0 12 3 15 7l6-5zm-21-10c-9 0-16 3-22 10l6 5c4-4 9-7 16-7v-8zm-22 10c-5 6-7 13-7 22h8c0-7 2-13 5-17l-6-5zm-7 22c0 8 2 16 7 22l6-6c-3-4-5-9-5-16h-8zm7 22c6 6 13 9 22 9v-8c-7 0-12-2-16-7l-6 6zm122-40c-1-4-3-8-8-11-3-2-9-3-14-3v8l10 2 4 5 8-1zm-22-14c-6 0-11 1-15 3s-6 6-6 11h8l2-4c2-1 5-2 11-2v-8zm-21 14c0 4 2 8 5 10l5-7c-1 0-2-1-2-3h-8zm5 10l10 4 2-8c-3 0-5-2-7-3l-5 7zm10 4l12 3 2-8-12-3-2 8zm12 3l11 3 3-7-12-4-2 8zm11 3l7 5 6-5c-3-3-6-6-10-7l-3 7zm7 5c2 2 3 4 3 8h8c0-5-2-10-5-13l-6 5zm3 8c0 6-2 10-6 13l4 7c7-5 10-12 10-20h-8zm-6 13c-5 3-11 5-19 5v8c9 0 17-2 23-6l-4-7zm-19 5c-9 0-16-3-21-7l-5 7c7 5 15 8 26 8v-8zm-21-7c-4-3-6-8-7-13h-8c1 8 4 15 10 20l5-7zm-11-9h12v-8h-12v8zm8-4c0 4 1 8 4 11 2 3 6 5 10 6l2-7-6-4-2-6h-8zm14 17l8 2v-8l-6-1-2 7zm8 2l8-1-2-8-6 1v8zm8-1l7-2-3-7-6 1 2 8zm7-2l7-5 2-8h-8l-1 3-3 3 3 7zm9-13c0-4-2-8-5-10l-5 7c1 1 2 1 2 3h8zm-5-10l-10-4-2 7 7 4 5-7zm-10-4l-12-3-2 8 12 2 2-7zm-12-3l-11-3-3 7 12 4 2-8zm-11-3l-7-5-6 5 10 7 3-7zm-7-5c-2-2-3-4-3-8h-8c0 5 2 10 5 13l6-5zm-3-8c0-5 2-9 6-12l-5-6c-6 4-9 11-9 18h8zm6-12c4-3 10-4 18-4v-8c-9 0-17 1-23 6l5 6zm18-4c9 0 14 2 19 5l5-6c-6-5-14-7-24-7v8zm19 5c3 3 5 7 6 11h7c0-7-3-13-8-17l-5 6zm9 7h-10v8h10v-8zm49 52c5 0 10-1 14-4 4-2 7-6 10-10l-7-4c-2 3-4 6-7 7-3 2-6 3-10 3v8zm20-12h12v-8h-12v8zm8-6c-2 6-5 11-10 14l5 7c6-5 10-11 13-18l-8-3zm-10 14c-5 4-11 6-19 6v8c10 0 17-2 24-7l-5-7zm-19 6c-9 0-17-4-23-10l-6 6c8 8 18 12 29 12v-8zm-23-10c-6-6-9-14-9-23h-8c0 11 4 21 11 29l6-6zm-9-23c0-10 3-18 9-24l-6-5c-7 7-11 17-11 29h8zm9-24c5-6 13-9 23-9v-8c-12 0-22 4-29 12l6 5zm23-9c9 0 17 3 23 9l6-5c-8-8-18-12-29-12v8zm23 9c5 6 8 14 8 24h8c0-12-3-22-10-29l-6 5zm8 24v4h8v-4h-8zm4 0h-60v8h60v-8zm-64 4c1 8 4 14 9 19l6-6c-4-3-6-8-7-14l-8 1zm9 19c6 5 13 8 21 8v-8c-7 0-11-2-15-6l-6 6zm20-55c-8 0-14 3-20 8l6 5c3-3 8-5 14-5v-8zm-20 8c-5 4-8 10-9 17l8 1c1-5 3-9 7-13l-6-5zm-5 22h49v-8h-49v8zm53-5c-1-7-4-13-9-17l-5 5c3 4 5 8 6 13l8-1zm-9-17c-5-5-12-8-19-8v8c5 0 10 2 14 5l5-5zm148 55c6 0 11-1 15-4 4-2 7-6 10-10l-7-4-7 7c-3 2-6 3-11 3v8zm21-12h12v-8h-12v8zm8-6c-2 6-6 11-10 14l4 7c6-5 11-11 14-18l-8-3zm-10 14c-5 4-11 6-19 6v8c9 0 17-2 23-7l-4-7zm-19 6c-10 0-17-4-23-10l-6 6c8 8 17 12 29 12v-8zm-23-10c-6-6-9-14-9-23h-8c0 11 4 21 11 29l6-6zm-9-23c0-10 3-18 8-24l-6-5c-7 7-10 17-10 29h8zm8-24c6-6 14-9 23-9v-8c-11 0-21 4-29 12l6 5zm23-9c10 0 18 3 24 9l5-5c-7-8-17-12-29-12v8zm24 9c5 6 8 14 8 24h8c0-12-3-22-11-29l-5 5zm8 24v4h8v-4h-8zm4 0h-60v8h60v-8zm-64 4c1 8 4 14 9 19l6-6c-4-3-6-8-7-14l-8 1zm9 19c5 5 12 8 20 8v-8c-6 0-11-2-14-6l-6 6zm19-55c-7 0-14 3-19 8l6 5c3-3 8-5 13-5v-8zm-19 8c-5 4-8 10-9 17l8 1c1-5 3-9 7-13l-6-5zm-5 22h49v-8h-49v8zm53-5c-1-7-4-13-9-17l-6 5c4 4 6 8 7 13l8-1zm-9-17c-6-5-12-8-20-8v8c6 0 11 2 14 5l6-5zm-122 62V42h-8v62h8zm-4-66h-15v8h15v-8zm-11 4V32h-8v10h8zm-4-6h15v-8h-15v8zm19-4V6h-8v26h8zm-4-22h10V2h-10v8zm6-4v26h8V6h-8zm4 30h11v-8h-11v8zm11 2h-11v8h11v-8zm-15 4v62h8V42h-8zm4 58h-10v8h10v-8zm29 4V42h-8v62h8zm-4-66h-14v8h14v-8zm-14-2h14v-8h-14v8zm18-4V6h-8v26h8zm-4-22h11V2h-11v8zm7-4v26h8V6h-8zm4 30h16v-8h-16v8zm12-4v10h8V32h-8zm4 6h-16v8h16v-8zm-20 4v62h8V42h-8zm4 58h-11v8h11v-8z\" fill=\"#0E0C82\" mask=\"url(#a)\"/><path d=\"M2 19h100\" stroke=\"#0E0C82\" stroke-width=\"4\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M19 104V21M35 102V19M52 102V19M69 104V21M85 104V21\" stroke=\"#0E0C82\" stroke-opacity=\".3\" stroke-width=\"4\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M100 54H2M100 88H2M100 71H2M102 37H4M102 19H4M91 4H13C7 4 2 9 2 15v78c0 6 5 11 11 11h78c6 0 11-5 11-11V15c0-6-5-11-11-11z\" stroke=\"#0E0C82\" stroke-width=\"4\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M102 19H2C3 8 5 4 16 4h71c12 0 15 4 15 15z\" fill=\"#0E0C82\" fill-opacity=\".3\"/></svg>\n"
},
"headersSize": 0,
"bodySize": 3461,
"redirectURL": "",
"_transferSize": 3461
},
"cache": {},
"timings": { "dns": -1, "connect": -1, "ssl": -1, "send": 0, "wait": 308.565, "receive": 1.225 },
"pageref": "page@cf0c6fc3a8eb44b78c414b3ef80d4760",
"serverIPAddress": "216.239.36.21",
"_serverPort": 443,
"_securityDetails": {
"protocol": "TLS 1.3",
"subjectName": "datasette.io",
"issuer": "R10",
"validFrom": 1736462682,
"validTo": 1744238681
}
},
{
"startedDateTime": "2025-02-13T20:37:42.240Z",
"time": 261.508,
"request": {
"method": "GET",
"url": "https://img.shields.io/pypi/v/datasette.svg",
"httpVersion": "HTTP/2.0",
"cookies": [],
"headers": [
{ "name": ":authority", "value": "img.shields.io" },
{ "name": ":method", "value": "GET" },
{ "name": ":path", "value": "/pypi/v/datasette.svg" },
{ "name": ":scheme", "value": "https" },
{ "name": "accept", "value": "image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8" },
{ "name": "accept-encoding", "value": "gzip, deflate, br" },
{ "name": "referer", "value": "https://datasette.io/" },
{ "name": "sec-ch-ua", "value": "\"HeadlessChrome\";v=\"119\", \"Chromium\";v=\"119\", \"Not?A_Brand\";v=\"24\"" },
{ "name": "sec-ch-ua-mobile", "value": "?0" },
{ "name": "sec-ch-ua-platform", "value": "\"macOS\"" },
{ "name": "sec-fetch-dest", "value": "image" },
{ "name": "sec-fetch-mode", "value": "no-cors" },
{ "name": "sec-fetch-site", "value": "cross-site" },
{ "name": "user-agent", "value": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/119.0.6045.9 Safari/537.36" }
],
"queryString": [],
"headersSize": 614,
"bodySize": 0
},
"response": {
"status": 200,
"statusText": "",
"httpVersion": "HTTP/2.0",
"cookies": [],
"headers": [
{ "name": "access-control-allow-origin", "value": "*" },
{ "name": "alt-svc", "value": "h3=\":443\"; ma=86400" },
{ "name": "cache-control", "value": "max-age=300, s-maxage=300" },
{ "name": "cf-cache-status", "value": "EXPIRED" },
{ "name": "cf-ray", "value": "91179e2c4cffcfcc-SJC" },
{ "name": "content-encoding", "value": "br" },
{ "name": "content-security-policy", "value": "script-src 'none';" },
{ "name": "content-type", "value": "image/svg+xml;charset=utf-8" },
{ "name": "cross-origin-resource-policy", "value": "cross-origin" },
{ "name": "date", "value": "Thu, 13 Feb 2025 20:37:42 GMT" },
{ "name": "expires", "value": "Thu, 13 Feb 2025 20:42:42 GMT" },
{ "name": "fly-request-id", "value": "01JM0GG5YA7FXY2B2PZ0CJJEJ8-sjc" },
{ "name": "last-modified", "value": "Thu, 13 Feb 2025 20:37:42 GMT" },
{ "name": "nel", "value": "{\"success_fraction\":0,\"report_to\":\"cf-nel\",\"max_age\":604800}" },
{ "name": "report-to", "value": "{\"endpoints\":[{\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v4?s=NzPQ4fvapgcVQudY20I0cmHtebHBh2auxZQOcsQjqn7nYFWLPl9NdDrqeIsxAgJqXJkSX7du%2FGTA4w3e9pDImCkRu792c0AXbznyQSccOMz85%2BUPLxX0uHLbcK91xVc9HQ%3D%3D\"}],\"group\":\"cf-nel\",\"max_age\":604800}" },
{ "name": "server", "value": "cloudflare" },
{ "name": "server-timing", "value": "cfL4;desc=\"?proto=TCP&rtt=31945&min_rtt=29879&rtt_var=8060&sent=6&recv=10&lost=0&retrans=0&sent_bytes=2913&recv_bytes=1114&delivery_rate=96901&cwnd=167&unsent_bytes=0&cid=64dc284b749c92c3&ts=151&x=0\"" },
{ "name": "vary", "value": "Accept-Encoding" },
{ "name": "via", "value": "1.1 fly.io" }
],
"content": {
"size": 1134,
"mimeType": "image/svg+xml;charset=utf-8",
"compression": 0,
"text": "<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"86\" height=\"20\" role=\"img\" aria-label=\"pypi: v0.65.1\"><title>pypi: v0.65.1</title><linearGradient id=\"s\" x2=\"0\" y2=\"100%\"><stop offset=\"0\" stop-color=\"#bbb\" stop-opacity=\".1\"/><stop offset=\"1\" stop-opacity=\".1\"/></linearGradient><clipPath id=\"r\"><rect width=\"86\" height=\"20\" rx=\"3\" fill=\"#fff\"/></clipPath><g clip-path=\"url(#r)\"><rect width=\"33\" height=\"20\" fill=\"#555\"/><rect x=\"33\" width=\"53\" height=\"20\" fill=\"#fe7d37\"/><rect width=\"86\" height=\"20\" fill=\"url(#s)\"/></g><g fill=\"#fff\" text-anchor=\"middle\" font-family=\"Verdana,Geneva,DejaVu Sans,sans-serif\" text-rendering=\"geometricPrecision\" font-size=\"110\"><text aria-hidden=\"true\" x=\"175\" y=\"150\" fill=\"#010101\" fill-opacity=\".3\" transform=\"scale(.1)\" textLength=\"230\">pypi</text><text x=\"175\" y=\"140\" transform=\"scale(.1)\" fill=\"#fff\" textLength=\"230\">pypi</text><text aria-hidden=\"true\" x=\"585\" y=\"150\" fill=\"#010101\" fill-opacity=\".3\" transform=\"scale(.1)\" textLength=\"430\">v0.65.1</text><text x=\"585\" y=\"140\" transform=\"scale(.1)\" fill=\"#fff\" textLength=\"430\">v0.65.1</text></g></svg>"
},
"headersSize": 0,
"bodySize": 1260,
"redirectURL": "",
"_transferSize": 1260
},
"cache": {},
"timings": { "dns": 0.01, "connect": 73.767, "ssl": 43.206, "send": 0, "wait": 142.757, "receive": 1.768 },
"pageref": "page@cf0c6fc3a8eb44b78c414b3ef80d4760",
"serverIPAddress": "172.67.173.89",
"_serverPort": 443,
"_securityDetails": {
"protocol": "TLS 1.3",
"subjectName": "shields.io",
"issuer": "WE1",
"validFrom": 1734572486,
"validTo": 1742352008
}
},
{
"startedDateTime": "2025-02-13T20:37:42.241Z",
"time": 501.48799999999994,
"request": {
"method": "GET",
"url": "https://img.shields.io/github/v/release/simonw/datasette?label=changelog",
"httpVersion": "HTTP/2.0",
"cookies": [],
"headers": [
{ "name": ":authority", "value": "img.shields.io" },
{ "name": ":method", "value": "GET" },
{ "name": ":path", "value": "/github/v/release/simonw/datasette?label=changelog" },
{ "name": ":scheme", "value": "https" },
{ "name": "accept", "value": "image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8" },
{ "name": "accept-encoding", "value": "gzip, deflate, br" },
{ "name": "referer", "value": "https://datasette.io/" },
{ "name": "sec-ch-ua", "value": "\"HeadlessChrome\";v=\"119\", \"Chromium\";v=\"119\", \"Not?A_Brand\";v=\"24\"" },
{ "name": "sec-ch-ua-mobile", "value": "?0" },
{ "name": "sec-ch-ua-platform", "value": "\"macOS\"" },
{ "name": "sec-fetch-dest", "value": "image" },
{ "name": "sec-fetch-mode", "value": "no-cors" },
{ "name": "sec-fetch-site", "value": "cross-site" },
{ "name": "user-agent", "value": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/119.0.6045.9 Safari/537.36" }
],
"queryString": [
{
"name": "label",
"value": "changelog"
}
],
"headersSize": 656,
"bodySize": 0
},
"response": {
"status": 200,
"statusText": "",
"httpVersion": "HTTP/2.0",
"cookies": [],
"headers": [
{ "name": "access-control-allow-origin", "value": "*" },
{ "name": "alt-svc", "value": "h3=\":443\"; ma=86400" },
{ "name": "cache-control", "value": "max-age=300, s-maxage=300" },
{ "name": "cf-cache-status", "value": "EXPIRED" },
{ "name": "cf-ray", "value": "91179e2d3e0dcfcc-SJC" },
{ "name": "content-encoding", "value": "br" },
{ "name": "content-security-policy", "value": "script-src 'none';" },
{ "name": "content-type", "value": "image/svg+xml;charset=utf-8" },
{ "name": "cross-origin-resource-policy", "value": "cross-origin" },
{ "name": "date", "value": "Thu, 13 Feb 2025 20:37:42 GMT" },
{ "name": "expires", "value": "Thu, 13 Feb 2025 20:42:42 GMT" },
{ "name": "fly-request-id", "value": "01JM0GG62NKC1H8V2PRM9NWRQX-sjc" },
{ "name": "last-modified", "value": "Thu, 13 Feb 2025 20:37:42 GMT" },
{ "name": "nel", "value": "{\"success_fraction\":0,\"report_to\":\"cf-nel\",\"max_age\":604800}" },
{ "name": "report-to", "value": "{\"endpoints\":[{\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v4?s=vO6J8soO1Jgh67tMCBREoTVQk3LUnBrsoQcT7wsYvIBsgtHpWkCeZknkB5MRHJBvVNoLrAJj4ZyUS%2BDtnmLjoh6rfiTo6S7Z0oCFIw0yDxJgdTSPp5NGZk5bZ2On%2FLYGCA%3D%3D\"}],\"group\":\"cf-nel\",\"max_age\":604800}" },
{ "name": "server", "value": "cloudflare" },
{ "name": "server-timing", "value": "cfL4;desc=\"?proto=TCP&rtt=32388&min_rtt=29187&rtt_var=4197&sent=28&recv=23&lost=0&retrans=0&sent_bytes=9843&recv_bytes=1674&delivery_rate=292151&cwnd=170&unsent_bytes=0&cid=64dc284b749c92c3&ts=372&x=0\"" },
{ "name": "vary", "value": "Accept-Encoding" },
{ "name": "via", "value": "1.1 fly.io" }
],
"content": {
"size": 1157,
"mimeType": "image/svg+xml;charset=utf-8",
"compression": 224,
"text": "<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"120\" height=\"20\" role=\"img\" aria-label=\"changelog: v0.65.1\"><title>changelog: v0.65.1</title><linearGradient id=\"s\" x2=\"0\" y2=\"100%\"><stop offset=\"0\" stop-color=\"#bbb\" stop-opacity=\".1\"/><stop offset=\"1\" stop-opacity=\".1\"/></linearGradient><clipPath id=\"r\"><rect width=\"120\" height=\"20\" rx=\"3\" fill=\"#fff\"/></clipPath><g clip-path=\"url(#r)\"><rect width=\"67\" height=\"20\" fill=\"#555\"/><rect x=\"67\" width=\"53\" height=\"20\" fill=\"#fe7d37\"/><rect width=\"120\" height=\"20\" fill=\"url(#s)\"/></g><g fill=\"#fff\" text-anchor=\"middle\" font-family=\"Verdana,Geneva,DejaVu Sans,sans-serif\" text-rendering=\"geometricPrecision\" font-size=\"110\"><text aria-hidden=\"true\" x=\"345\" y=\"150\" fill=\"#010101\" fill-opacity=\".3\" transform=\"scale(.1)\" textLength=\"570\">changelog</text><text x=\"345\" y=\"140\" transform=\"scale(.1)\" fill=\"#fff\" textLength=\"570\">changelog</text><text aria-hidden=\"true\" x=\"925\" y=\"150\" fill=\"#010101\" fill-opacity=\".3\" transform=\"scale(.1)\" textLength=\"430\">v0.65.1</text><text x=\"925\" y=\"140\" transform=\"scale(.1)\" fill=\"#fff\" textLength=\"430\">v0.65.1</text></g></svg>"
},
"headersSize": 0,
"bodySize": 933,
"redirectURL": "",
"_transferSize": 933
},
"cache": {},
"timings": { "dns": -1, "connect": -1, "ssl": -1, "send": 0, "wait": 213.884, "receive": 287.604 },
"pageref": "page@cf0c6fc3a8eb44b78c414b3ef80d4760",
"serverIPAddress": "172.67.173.89",
"_serverPort": 443,
"_securityDetails": {
"protocol": "TLS 1.3",
"subjectName": "shields.io",
"issuer": "WE1",
"validFrom": 1734572486,
"validTo": 1742352008
}
},
{
"startedDateTime": "2025-02-13T20:37:42.241Z",
"time": 431.601,
"request": {
"method": "GET",
"url": "https://img.shields.io/pypi/pyversions/datasette.svg?logo=python&logoColor=white",
"httpVersion": "HTTP/2.0",
"cookies": [],
"headers": [
{ "name": ":authority", "value": "img.shields.io" },
{ "name": ":method", "value": "GET" },
{ "name": ":path", "value": "/pypi/pyversions/datasette.svg?logo=python&logoColor=white" },
{ "name": ":scheme", "value": "https" },
{ "name": "accept", "value": "image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8" },
{ "name": "accept-encoding", "value": "gzip, deflate, br" },
{ "name": "referer", "value": "https://datasette.io/" },
{ "name": "sec-ch-ua", "value": "\"HeadlessChrome\";v=\"119\", \"Chromium\";v=\"119\", \"Not?A_Brand\";v=\"24\"" },
{ "name": "sec-ch-ua-mobile", "value": "?0" },
{ "name": "sec-ch-ua-platform", "value": "\"macOS\"" },
{ "name": "sec-fetch-dest", "value": "image" },
{ "name": "sec-fetch-mode", "value": "no-cors" },
{ "name": "sec-fetch-site", "value": "cross-site" },
{ "name": "user-agent", "value": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/119.0.6045.9 Safari/537.36" }
],
"queryString": [
{
"name": "logo",
"value": "python"
},
{
"name": "logoColor",
"value": "white"
}
],
"headersSize": 660,
"bodySize": 0
},
"response": {
"status": 200,
"statusText": "",
"httpVersion": "HTTP/2.0",
"cookies": [],
"headers": [
{ "name": "access-control-allow-origin", "value": "*" },
{ "name": "alt-svc", "value": "h3=\":443\"; ma=86400" },
{ "name": "cache-control", "value": "max-age=120, s-maxage=120" },
{ "name": "cf-cache-status", "value": "EXPIRED" },
{ "name": "cf-ray", "value": "91179e2d4e18cfcc-SJC" },
{ "name": "content-encoding", "value": "br" },
{ "name": "content-security-policy", "value": "script-src 'none';" },
{ "name": "content-type", "value": "image/svg+xml;charset=utf-8" },
{ "name": "cross-origin-resource-policy", "value": "cross-origin" },
{ "name": "date", "value": "Thu, 13 Feb 2025 20:37:42 GMT" },
{ "name": "expires", "value": "Thu, 13 Feb 2025 20:39:42 GMT" },
{ "name": "fly-request-id", "value": "01JM0GG62YDNYHF4JNCR7YSEBB-sjc" },
{ "name": "last-modified", "value": "Thu, 13 Feb 2025 20:37:42 GMT" },
{ "name": "nel", "value": "{\"success_fraction\":0,\"report_to\":\"cf-nel\",\"max_age\":604800}" },
{ "name": "report-to", "value": "{\"endpoints\":[{\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v4?s=PDnsTte6fPvr5e093OMhGVwLdacFQ%2BpbAyP%2FgihPnV%2BuGBiiqZ%2F85FDa3XNMVmS0GelR4WNkHF22pJe06L%2BTCm0H5Z6Mmrg%2B%2BDG41XtrWxbP1f%2B9dqTJSO1fg5MH5LUv2g%3D%3D\"}],\"group\":\"cf-nel\",\"max_age\":604800}" },
{ "name": "server", "value": "cloudflare" },
{ "name": "server-timing", "value": "cfL4;desc=\"?proto=TCP&rtt=31679&min_rtt=29187&rtt_var=5105&sent=21&recv=21&lost=0&retrans=0&sent_bytes=6329&recv_bytes=1674&delivery_rate=292151&cwnd=170&unsent_bytes=0&cid=64dc284b749c92c3&ts=298&x=0\"" },
{ "name": "vary", "value": "Accept-Encoding" },
{ "name": "via", "value": "1.1 fly.io" }
],
"content": {
"size": 3373,
"mimeType": "image/svg+xml;charset=utf-8",
"compression": 1233,
"text": "<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"245\" height=\"20\" role=\"img\" aria-label=\"python: 3.9 | 3.10 | 3.11 | 3.12 | 3.13\"><title>python: 3.9 | 3.10 | 3.11 | 3.12 | 3.13</title><linearGradient id=\"s\" x2=\"0\" y2=\"100%\"><stop offset=\"0\" stop-color=\"#bbb\" stop-opacity=\".1\"/><stop offset=\"1\" stop-opacity=\".1\"/></linearGradient><clipPath id=\"r\"><rect width=\"245\" height=\"20\" rx=\"3\" fill=\"#fff\"/></clipPath><g clip-path=\"url(#r)\"><rect width=\"66\" height=\"20\" fill=\"#555\"/><rect x=\"66\" width=\"179\" height=\"20\" fill=\"#007ec6\"/><rect width=\"245\" height=\"20\" fill=\"url(#s)\"/></g><g fill=\"#fff\" text-anchor=\"middle\" font-family=\"Verdana,Geneva,DejaVu Sans,sans-serif\" text-rendering=\"geometricPrecision\" font-size=\"110\"><image x=\"5\" y=\"3\" width=\"14\" height=\"14\" xlink:href=\"data:image/svg+xml;base64,PHN2ZyBmaWxsPSJ3aGl0ZSIgcm9sZT0iaW1nIiB2aWV3Qm94PSIwIDAgMjQgMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHRpdGxlPlB5dGhvbjwvdGl0bGU+PHBhdGggZD0iTTE0LjI1LjE4bC45LjIuNzMuMjYuNTkuMy40NS4zMi4zNC4zNC4yNS4zNC4xNi4zMy4xLjMuMDQuMjYuMDIuMi0uMDEuMTNWOC41bC0uMDUuNjMtLjEzLjU1LS4yMS40Ni0uMjYuMzgtLjMuMzEtLjMzLjI1LS4zNS4xOS0uMzUuMTQtLjMzLjEtLjMuMDctLjI2LjA0LS4yMS4wMkg4Ljc3bC0uNjkuMDUtLjU5LjE0LS41LjIyLS40MS4yNy0uMzMuMzItLjI3LjM1LS4yLjM2LS4xNS4zNy0uMS4zNS0uMDcuMzItLjA0LjI3LS4wMi4yMXYzLjA2SDMuMTdsLS4yMS0uMDMtLjI4LS4wNy0uMzItLjEyLS4zNS0uMTgtLjM2LS4yNi0uMzYtLjM2LS4zNS0uNDYtLjMyLS41OS0uMjgtLjczLS4yMS0uODgtLjE0LTEuMDUtLjA1LTEuMjMuMDYtMS4yMi4xNi0xLjA0LjI0LS44Ny4zMi0uNzEuMzYtLjU3LjQtLjQ0LjQyLS4zMy40Mi0uMjQuNC0uMTYuMzYtLjEuMzItLjA1LjI0LS4wMWguMTZsLjA2LjAxaDguMTZ2LS44M0g2LjE4bC0uMDEtMi43NS0uMDItLjM3LjA1LS4zNC4xMS0uMzEuMTctLjI4LjI1LS4yNi4zMS0uMjMuMzgtLjIuNDQtLjE4LjUxLS4xNS41OC0uMTIuNjQtLjEuNzEtLjA2Ljc3LS4wNC44NC0uMDIgMS4yNy4wNXptLTYuMyAxLjk4bC0uMjMuMzMtLjA4LjQxLjA4LjQxLjIzLjM0LjMzLjIyLjQxLjA5LjQxLS4wOS4zMy0uMjIuMjMtLjM0LjA4LS40MS0uMDgtLjQxLS4yMy0uMzMtLjMzLS4yMi0uNDEtLjA5LS40MS4wOXptMTMuMDkgMy45NWwuMjguMDYuMzIuMTIuMzUuMTguMzYuMjcuMzYuMzUuMzUuNDcuMzIuNTkuMjguNzMuMjEuODguMTQgMS4wNC4wNSAxLjIzLS4wNiAxLjIzLS4xNiAxLjA0LS4yNC44Ni0uMzIuNzEtLjM2LjU3LS40LjQ1LS40Mi4zMy0uNDIuMjQtLjQuMTYtLjM2LjA5LS4zMi4wNS0uMjQuMDItLjE2LS4wMWgtOC4yMnYuODJoNS44NGwuMDEgMi43Ni4wMi4zNi0uMDUuMzQtLjExLjMxLS4xNy4yOS0uMjUuMjUtLjMxLjI0LS4zOC4yLS40NC4xNy0uNTEuMTUtLjU4LjEzLS42NC4wOS0uNzEuMDctLjc3LjA0LS44NC4wMS0xLjI3LS4wNC0xLjA3LS4xNC0uOS0uMi0uNzMtLjI1LS41OS0uMy0uNDUtLjMzLS4zNC0uMzQtLjI1LS4zNC0uMTYtLjMzLS4xLS4zLS4wNC0uMjUtLjAyLS4yLjAxLS4xM3YtNS4zNGwuMDUtLjY0LjEzLS41NC4yMS0uNDYuMjYtLjM4LjMtLjMyLjMzLS4yNC4zNS0uMi4zNS0uMTQuMzMtLjEuMy0uMDYuMjYtLjA0LjIxLS4wMi4xMy0uMDFoNS44NGwuNjktLjA1LjU5LS4xNC41LS4yMS40MS0uMjguMzMtLjMyLjI3LS4zNS4yLS4zNi4xNS0uMzYuMS0uMzUuMDctLjMyLjA0LS4yOC4wMi0uMjFWNi4wN2gyLjA5bC4xNC4wMXptLTYuNDcgMTQuMjVsLS4yMy4zMy0uMDguNDEuMDguNDEuMjMuMzMuMzMuMjMuNDEuMDguNDEtLjA4LjMzLS4yMy4yMy0uMzMuMDgtLjQxLS4wOC0uNDEtLjIzLS4zMy0uMzMtLjIzLS40MS0uMDgtLjQxLjA4eiIvPjwvc3ZnPg==\"/><text aria-hidden=\"true\" x=\"425\" y=\"150\" fill=\"#010101\" fill-opacity=\".3\" transform=\"scale(.1)\" textLength=\"390\">python</text><text x=\"425\" y=\"140\" transform=\"scale(.1)\" fill=\"#fff\" textLength=\"390\">python</text><text aria-hidden=\"true\" x=\"1545\" y=\"150\" fill=\"#010101\" fill-opacity=\".3\" transform=\"scale(.1)\" textLength=\"1690\">3.9 | 3.10 | 3.11 | 3.12 | 3.13</text><text x=\"1545\" y=\"140\" transform=\"scale(.1)\" fill=\"#fff\" textLength=\"1690\">3.9 | 3.10 | 3.11 | 3.12 | 3.13</text></g></svg>"
},
"headersSize": 0,
"bodySize": 2140,
"redirectURL": "",
"_transferSize": 2140
},
"cache": {},
"timings": { "dns": -1, "connect": -1, "ssl": -1, "send": 0, "wait": 132.742, "receive": 298.859 },
"pageref": "page@cf0c6fc3a8eb44b78c414b3ef80d4760",
"serverIPAddress": "172.67.173.89",
"_serverPort": 443,
"_securityDetails": {
"protocol": "TLS 1.3",
"subjectName": "shields.io",
"issuer": "WE1",
"validFrom": 1734572486,
"validTo": 1742352008
}
},
{
"startedDateTime": "2025-02-13T20:37:42.241Z",
"time": 346.974,
"request": {
"method": "GET",
"url": "https://img.shields.io/badge/license-Apache%202.0-blue.svg",
"httpVersion": "HTTP/2.0",
"cookies": [],
"headers": [
{ "name": ":authority", "value": "img.shields.io" },
{ "name": ":method", "value": "GET" },
{ "name": ":path", "value": "/badge/license-Apache%202.0-blue.svg" },
{ "name": ":scheme", "value": "https" },
{ "name": "accept", "value": "image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8" },
{ "name": "accept-encoding", "value": "gzip, deflate, br" },
{ "name": "referer", "value": "https://datasette.io/" },
{ "name": "sec-ch-ua", "value": "\"HeadlessChrome\";v=\"119\", \"Chromium\";v=\"119\", \"Not?A_Brand\";v=\"24\"" },
{ "name": "sec-ch-ua-mobile", "value": "?0" },
{ "name": "sec-ch-ua-platform", "value": "\"macOS\"" },
{ "name": "sec-fetch-dest", "value": "image" },
{ "name": "sec-fetch-mode", "value": "no-cors" },
{ "name": "sec-fetch-site", "value": "cross-site" },
{ "name": "user-agent", "value": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/119.0.6045.9 Safari/537.36" }
],
"queryString": [],
"headersSize": 644,
"bodySize": 0
},
"response": {
"status": 200,
"statusText": "",
"httpVersion": "HTTP/2.0",
"cookies": [],
"headers": [
{ "name": "access-control-allow-origin", "value": "*" },
{ "name": "age", "value": "74407" },
{ "name": "alt-svc", "value": "h3=\":443\"; ma=86400" },
{ "name": "cache-control", "value": "max-age=432000, s-maxage=432000" },
{ "name": "cf-cache-status", "value": "HIT" },
{ "name": "cf-ray", "value": "91179e2d4e1bcfcc-SJC" },
{ "name": "content-encoding", "value": "br" },
{ "name": "content-security-policy", "value": "script-src 'none';" },
{ "name": "content-type", "value": "image/svg+xml;charset=utf-8" },
{ "name": "cross-origin-resource-policy", "value": "cross-origin" },
{ "name": "date", "value": "Thu, 13 Feb 2025 20:37:42 GMT" },
{ "name": "fly-request-id", "value": "01JKY9HEFASNK8PRNB4W1AWC7Y-sjc" },
{ "name": "last-modified", "value": "Sun, 09 Feb 2025 20:48:20 GMT" },
{ "name": "nel", "value": "{\"success_fraction\":0,\"report_to\":\"cf-nel\",\"max_age\":604800}" },
{ "name": "report-to", "value": "{\"endpoints\":[{\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v4?s=ownTIr3gk%2B2a%2FH5dNIygSe6nEdcP2iX2LnkEZ74BOBd7Wc9uiJljHVnEQJd8Xs7Pb7%2BqHXeSmxcyqdZE%2BlMwpfbg8%2F9P5RVlvMGXDLYC7GQfVbwnRasyxF%2BZ11YM4yM0Tw%3D%3D\"}],\"group\":\"cf-nel\",\"max_age\":604800}" },
{ "name": "server", "value": "cloudflare" },
{ "name": "server-timing", "value": "cfL4;desc=\"?proto=TCP&rtt=31956&min_rtt=29879&rtt_var=6067&sent=17&recv=16&lost=0&retrans=0&sent_bytes=5300&recv_bytes=1530&delivery_rate=135614&cwnd=170&unsent_bytes=0&cid=64dc284b749c92c3&ts=214&x=0\"" },
{ "name": "vary", "value": "Accept-Encoding" },
{ "name": "via", "value": "1.1 fly.io" }
],
"content": {
"size": 1161,
"mimeType": "image/svg+xml;charset=utf-8",
"compression": 198,
"text": "<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"120\" height=\"20\" role=\"img\" aria-label=\"license: Apache 2.0\"><title>license: Apache 2.0</title><linearGradient id=\"s\" x2=\"0\" y2=\"100%\"><stop offset=\"0\" stop-color=\"#bbb\" stop-opacity=\".1\"/><stop offset=\"1\" stop-opacity=\".1\"/></linearGradient><clipPath id=\"r\"><rect width=\"120\" height=\"20\" rx=\"3\" fill=\"#fff\"/></clipPath><g clip-path=\"url(#r)\"><rect width=\"47\" height=\"20\" fill=\"#555\"/><rect x=\"47\" width=\"73\" height=\"20\" fill=\"#007ec6\"/><rect width=\"120\" height=\"20\" fill=\"url(#s)\"/></g><g fill=\"#fff\" text-anchor=\"middle\" font-family=\"Verdana,Geneva,DejaVu Sans,sans-serif\" text-rendering=\"geometricPrecision\" font-size=\"110\"><text aria-hidden=\"true\" x=\"245\" y=\"150\" fill=\"#010101\" fill-opacity=\".3\" transform=\"scale(.1)\" textLength=\"370\">license</text><text x=\"245\" y=\"140\" transform=\"scale(.1)\" fill=\"#fff\" textLength=\"370\">license</text><text aria-hidden=\"true\" x=\"825\" y=\"150\" fill=\"#010101\" fill-opacity=\".3\" transform=\"scale(.1)\" textLength=\"630\">Apache 2.0</text><text x=\"825\" y=\"140\" transform=\"scale(.1)\" fill=\"#fff\" textLength=\"630\">Apache 2.0</text></g></svg>"
},
"headersSize": 0,
"bodySize": 963,
"redirectURL": "",
"_transferSize": 963
},
"cache": {},
"timings": { "dns": -1, "connect": -1, "ssl": -1, "send": 0, "wait": 48.074, "receive": 298.9 },
"pageref": "page@cf0c6fc3a8eb44b78c414b3ef80d4760",
"serverIPAddress": "172.67.173.89",
"_serverPort": 443,
"_securityDetails": {
"protocol": "TLS 1.3",
"subjectName": "shields.io",
"issuer": "WE1",
"validFrom": 1734572486,
"validTo": 1742352008
}
},
{
"startedDateTime": "2025-02-13T20:37:42.241Z",
"time": 443.78700000000003,
"request": {
"method": "GET",
"url": "https://img.shields.io/discord/823971286308356157?label=discord",
"httpVersion": "HTTP/2.0",
"cookies": [],
"headers": [
{ "name": ":authority", "value": "img.shields.io" },
{ "name": ":method", "value": "GET" },
{ "name": ":path", "value": "/discord/823971286308356157?label=discord" },
{ "name": ":scheme", "value": "https" },
{ "name": "accept", "value": "image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8" },
{ "name": "accept-encoding", "value": "gzip, deflate, br" },
{ "name": "referer", "value": "https://datasette.io/" },
{ "name": "sec-ch-ua", "value": "\"HeadlessChrome\";v=\"119\", \"Chromium\";v=\"119\", \"Not?A_Brand\";v=\"24\"" },
{ "name": "sec-ch-ua-mobile", "value": "?0" },
{ "name": "sec-ch-ua-platform", "value": "\"macOS\"" },
{ "name": "sec-fetch-dest", "value": "image" },
{ "name": "sec-fetch-mode", "value": "no-cors" },
{ "name": "sec-fetch-site", "value": "cross-site" },
{ "name": "user-agent", "value": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/119.0.6045.9 Safari/537.36" }
],
"queryString": [
{
"name": "label",
"value": "discord"
}
],
"headersSize": 640,
"bodySize": 0
},
"response": {
"status": 200,
"statusText": "",
"httpVersion": "HTTP/2.0",
"cookies": [],
"headers": [
{ "name": "access-control-allow-origin", "value": "*" },
{ "name": "alt-svc", "value": "h3=\":443\"; ma=86400" },
{ "name": "cache-control", "value": "max-age=300, s-maxage=300" },
{ "name": "cf-cache-status", "value": "EXPIRED" },
{ "name": "cf-ray", "value": "91179e2d4e1dcfcc-SJC" },
{ "name": "content-encoding", "value": "br" },
{ "name": "content-security-policy", "value": "script-src 'none';" },
{ "name": "content-type", "value": "image/svg+xml;charset=utf-8" },
{ "name": "cross-origin-resource-policy", "value": "cross-origin" },
{ "name": "date", "value": "Thu, 13 Feb 2025 20:37:42 GMT" },
{ "name": "expires", "value": "Thu, 13 Feb 2025 20:42:42 GMT" },
{ "name": "fly-request-id", "value": "01JM0GG62Z02PZW3M9SWZTREMB-sjc" },
{ "name": "last-modified", "value": "Thu, 13 Feb 2025 20:37:42 GMT" },
{ "name": "nel", "value": "{\"success_fraction\":0,\"report_to\":\"cf-nel\",\"max_age\":604800}" },
{ "name": "report-to", "value": "{\"endpoints\":[{\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v4?s=w2awWmiYxTiZHUjnHGmO2gunX09zsltQRvvgFuoKTsi6mtZQfqMM4jzBsW2fx1xX79hbrzX%2FwIxw1%2BEJfbS9i%2BRFrQu%2BDBH6NmWi9gQpRa1UlYNzspjZ52vDDWeBA1JJYA%3D%3D\"}],\"group\":\"cf-nel\",\"max_age\":604800}" },
{ "name": "server", "value": "cloudflare" },
{ "name": "server-timing", "value": "cfL4;desc=\"?proto=TCP&rtt=31679&min_rtt=29187&rtt_var=5105&sent=25&recv=21&lost=0&retrans=0&sent_bytes=8557&recv_bytes=1674&delivery_rate=292151&cwnd=170&unsent_bytes=0&cid=64dc284b749c92c3&ts=312&x=0\"" },
{ "name": "vary", "value": "Accept-Encoding" },
{ "name": "via", "value": "1.1 fly.io" }
],
"content": {
"size": 1158,
"mimeType": "image/svg+xml;charset=utf-8",
"compression": 0,
"text": "<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"118\" height=\"20\" role=\"img\" aria-label=\"discord: 176 online\"><title>discord: 176 online</title><linearGradient id=\"s\" x2=\"0\" y2=\"100%\"><stop offset=\"0\" stop-color=\"#bbb\" stop-opacity=\".1\"/><stop offset=\"1\" stop-opacity=\".1\"/></linearGradient><clipPath id=\"r\"><rect width=\"118\" height=\"20\" rx=\"3\" fill=\"#fff\"/></clipPath><g clip-path=\"url(#r)\"><rect width=\"49\" height=\"20\" fill=\"#555\"/><rect x=\"49\" width=\"69\" height=\"20\" fill=\"#4c1\"/><rect width=\"118\" height=\"20\" fill=\"url(#s)\"/></g><g fill=\"#fff\" text-anchor=\"middle\" font-family=\"Verdana,Geneva,DejaVu Sans,sans-serif\" text-rendering=\"geometricPrecision\" font-size=\"110\"><text aria-hidden=\"true\" x=\"255\" y=\"150\" fill=\"#010101\" fill-opacity=\".3\" transform=\"scale(.1)\" textLength=\"390\">discord</text><text x=\"255\" y=\"140\" transform=\"scale(.1)\" fill=\"#fff\" textLength=\"390\">discord</text><text aria-hidden=\"true\" x=\"825\" y=\"150\" fill=\"#010101\" fill-opacity=\".3\" transform=\"scale(.1)\" textLength=\"590\">176 online</text><text x=\"825\" y=\"140\" transform=\"scale(.1)\" fill=\"#fff\" textLength=\"590\">176 online</text></g></svg>"
},
"headersSize": 0,
"bodySize": 1220,
"redirectURL": "",
"_transferSize": 1220
},
"cache": {},
"timings": { "dns": -1, "connect": -1, "ssl": -1, "send": 0, "wait": 144.682, "receive": 299.105 },
"pageref": "page@cf0c6fc3a8eb44b78c414b3ef80d4760",
"serverIPAddress": "172.67.173.89",
"_serverPort": 443,
"_securityDetails": {
"protocol": "TLS 1.3",
"subjectName": "shields.io",
"issuer": "WE1",
"validFrom": 1734572486,
"validTo": 1742352008
}
},
{
"startedDateTime": "2025-02-13T20:37:42.241Z",
"time": 346.702,
"request": {
"method": "GET",
"url": "https://img.shields.io/badge/mastodon-@datasette-blueviolet",
"httpVersion": "HTTP/2.0",
"cookies": [],
"headers": [
{ "name": ":authority", "value": "img.shields.io" },
{ "name": ":method", "value": "GET" },
{ "name": ":path", "value": "/badge/mastodon-@datasette-blueviolet" },
{ "name": ":scheme", "value": "https" },
{ "name": "accept", "value": "image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8" },
{ "name": "accept-encoding", "value": "gzip, deflate, br" },
{ "name": "referer", "value": "https://datasette.io/" },
{ "name": "sec-ch-ua", "value": "\"HeadlessChrome\";v=\"119\", \"Chromium\";v=\"119\", \"Not?A_Brand\";v=\"24\"" },
{ "name": "sec-ch-ua-mobile", "value": "?0" },
{ "name": "sec-ch-ua-platform", "value": "\"macOS\"" },
{ "name": "sec-fetch-dest", "value": "image" },
{ "name": "sec-fetch-mode", "value": "no-cors" },
{ "name": "sec-fetch-site", "value": "cross-site" },
{ "name": "user-agent", "value": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/119.0.6045.9 Safari/537.36" }
],
"queryString": [],
"headersSize": 646,
"bodySize": 0
},
"response": {
"status": 200,
"statusText": "",
"httpVersion": "HTTP/2.0",
"cookies": [],
"headers": [
{ "name": "access-control-allow-origin", "value": "*" },
{ "name": "age", "value": "430496" },
{ "name": "alt-svc", "value": "h3=\":443\"; ma=86400" },
{ "name": "cache-control", "value": "max-age=432000, s-maxage=432000" },
{ "name": "cf-cache-status", "value": "HIT" },
{ "name": "cf-ray", "value": "91179e2d4e1ecfcc-SJC" },
{ "name": "content-encoding", "value": "br" },
{ "name": "content-security-policy", "value": "script-src 'none';" },
{ "name": "content-type", "value": "image/svg+xml;charset=utf-8" },
{ "name": "cross-origin-resource-policy", "value": "cross-origin" },
{ "name": "date", "value": "Thu, 13 Feb 2025 20:37:42 GMT" },
{ "name": "fly-request-id", "value": "01JKKNYG04MT6VVGZ60HE4CF54-sjc" },
{ "name": "last-modified", "value": "Fri, 07 Feb 2025 19:49:47 GMT" },
{ "name": "nel", "value": "{\"success_fraction\":0,\"report_to\":\"cf-nel\",\"max_age\":604800}" },
{ "name": "report-to", "value": "{\"endpoints\":[{\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v4?s=kIpUE4v3ZlnHnqoIjwnaw8Q%2Btrzs7qozuThACmLX2mbBeVXUWo2%2FIwuZJGsrynbGPTcfCGeTsF39kPaGOxhLhrk%2BYGMJEJjyxpwjWKT7zDfsoN7tHBjG77p0X05abfPoAw%3D%3D\"}],\"group\":\"cf-nel\",\"max_age\":604800}" },
{ "name": "server", "value": "cloudflare" },
{ "name": "server-timing", "value": "cfL4;desc=\"?proto=TCP&rtt=31956&min_rtt=29879&rtt_var=6067&sent=14&recv=16&lost=0&retrans=0&sent_bytes=4239&recv_bytes=1530&delivery_rate=135614&cwnd=170&unsent_bytes=0&cid=64dc284b749c92c3&ts=213&x=0\"" },
{ "name": "vary", "value": "Accept-Encoding" },
{ "name": "via", "value": "1.1 fly.io" }
],
"content": {
"size": 1170,
"mimeType": "image/svg+xml;charset=utf-8",
"compression": 175,
"text": "<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"138\" height=\"20\" role=\"img\" aria-label=\"mastodon: @datasette\"><title>mastodon: @datasette</title><linearGradient id=\"s\" x2=\"0\" y2=\"100%\"><stop offset=\"0\" stop-color=\"#bbb\" stop-opacity=\".1\"/><stop offset=\"1\" stop-opacity=\".1\"/></linearGradient><clipPath id=\"r\"><rect width=\"138\" height=\"20\" rx=\"3\" fill=\"#fff\"/></clipPath><g clip-path=\"url(#r)\"><rect width=\"65\" height=\"20\" fill=\"#555\"/><rect x=\"65\" width=\"73\" height=\"20\" fill=\"blueviolet\"/><rect width=\"138\" height=\"20\" fill=\"url(#s)\"/></g><g fill=\"#fff\" text-anchor=\"middle\" font-family=\"Verdana,Geneva,DejaVu Sans,sans-serif\" text-rendering=\"geometricPrecision\" font-size=\"110\"><text aria-hidden=\"true\" x=\"335\" y=\"150\" fill=\"#010101\" fill-opacity=\".3\" transform=\"scale(.1)\" textLength=\"550\">mastodon</text><text x=\"335\" y=\"140\" transform=\"scale(.1)\" fill=\"#fff\" textLength=\"550\">mastodon</text><text aria-hidden=\"true\" x=\"1005\" y=\"150\" fill=\"#010101\" fill-opacity=\".3\" transform=\"scale(.1)\" textLength=\"630\">@datasette</text><text x=\"1005\" y=\"140\" transform=\"scale(.1)\" fill=\"#fff\" textLength=\"630\">@datasette</text></g></svg>"
},
"headersSize": 0,
"bodySize": 995,
"redirectURL": "",
"_transferSize": 995
},
"cache": {},
"timings": { "dns": -1, "connect": -1, "ssl": -1, "send": 0, "wait": 47.54, "receive": 299.162 },
"pageref": "page@cf0c6fc3a8eb44b78c414b3ef80d4760",
"serverIPAddress": "172.67.173.89",
"_serverPort": 443,
"_securityDetails": {
"protocol": "TLS 1.3",
"subjectName": "shields.io",
"issuer": "WE1",
"validFrom": 1734572486,
"validTo": 1742352008
}
},
{
"startedDateTime": "2025-02-13T20:37:42.556Z",
"time": 137.951,
"request": {
"method": "GET",
"url": "https://i.ytimg.com/vi/7kDFBnXaw-c/hqdefault.jpg",
"httpVersion": "HTTP/2.0",
"cookies": [],
"headers": [
{ "name": ":authority", "value": "i.ytimg.com" },
{ "name": ":method", "value": "GET" },
{ "name": ":path", "value": "/vi/7kDFBnXaw-c/hqdefault.jpg" },
{ "name": ":scheme", "value": "https" },
{ "name": "accept", "value": "image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8" },
{ "name": "accept-encoding", "value": "gzip, deflate, br" },
{ "name": "referer", "value": "https://datasette.io/" },
{ "name": "sec-ch-ua", "value": "\"HeadlessChrome\";v=\"119\", \"Chromium\";v=\"119\", \"Not?A_Brand\";v=\"24\"" },
{ "name": "sec-ch-ua-mobile", "value": "?0" },
{ "name": "sec-ch-ua-platform", "value": "\"macOS\"" },
{ "name": "sec-fetch-dest", "value": "image" },
{ "name": "sec-fetch-mode", "value": "no-cors" },
{ "name": "sec-fetch-site", "value": "cross-site" },
{ "name": "user-agent", "value": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/119.0.6045.9 Safari/537.36" }
],
"queryString": [],
"headersSize": 627,
"bodySize": 0
},
"response": {
"status": 200,
"statusText": "",
"httpVersion": "HTTP/2.0",
"cookies": [],
"headers": [
{ "name": "accept-ranges", "value": "bytes" },
{ "name": "age", "value": "769" },
{ "name": "alt-svc", "value": "h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000" },
{ "name": "cache-control", "value": "public, max-age=7200" },
{ "name": "content-length", "value": "31670" },
{ "name": "content-type", "value": "image/jpeg" },
{ "name": "cross-origin-opener-policy-report-only", "value": "same-origin; report-to=\"youtube\"" },
{ "name": "cross-origin-resource-policy", "value": "cross-origin" },
{ "name": "date", "value": "Thu, 13 Feb 2025 20:24:53 GMT" },
{ "name": "etag", "value": "\"1612724786\"" },
{ "name": "expires", "value": "Thu, 13 Feb 2025 22:24:53 GMT" },
{ "name": "report-to", "value": "{\"group\":\"youtube\",\"max_age\":2592000,\"endpoints\":[{\"url\":\"https://csp.withgoogle.com/csp/report-to/youtube\"}]}" },
{ "name": "server", "value": "sffe" },
{ "name": "timing-allow-origin", "value": "*" },
{ "name": "vary", "value": "Origin" },
{ "name": "x-content-type-options", "value": "nosniff" },
{ "name": "x-xss-protection", "value": "0" }
],
"content": {
"size": 31670,
"mimeType": "image/jpeg",
"compression": 0,
"text": "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/wC36P39fKKlLKfV786/Bv1vw/8Ab9H7+n51+Dfrfh/7fo/f18oaUsp9X/zr8G/W/D/2/R+/p+dfg3634f8At+j9/XygpSyn1dHwr8G/W/D/ANv0fv6r+dfg3634f+36P39fKGlLKfV7863Bv1vw/wDb9H7+n51uDfrfh/7fo/f18oaUsp9Xvzr8G/W/D/2/R+/p+dfg3634f+36P39fKGlLKfV786/Bv1vw/wDb9H7+n51+Dfrfh/7fo/f18oaUsp9Xvzr8G/W/D/2/R+/p+dfg3634f+36P39fKGlLKfV786/Bv1vw/wDb9H7+n51+Dfrfh/7fo/f18oaUsp9Xj8K3Bv1tw/8Ab9H7+vG7vwfdijH9v0YhSgCcW0yAKWJO1u8N5J73UedfgWlFp+/dP2B7FqwYcQ0uQDAZcZtNswIOz6ogmCYJ3G3kK2dP2S7HJp7mmTiGiTT3SGuBeK6YMzKVIJcX8tsRAmBv5mfnzSrjlOM3DM4xMVL96J8HXYwCPylp4/8A7zZ8o/8AmfEbVl1fYHsa6qrcS0xCiB/2xYBjfaRqJI38a/A1K3zs+8py8ez97P8AB52MLFzxLTZEyf8AtmzE/V8Yit09j+x8Y/lLS4if/wCL6f5wg/8Af+Ir5+UpGtnHzJy8ez9zcT+DfsnH9m4rorTjebvFbNwFs7RG3xiQMBeGx9JkMEAg6NzsFwFoLcY4bnsGI4raOwLeiC30cRv4zv5/ielI1s+5y8ez9z8P+D3suy4ari+iu20JNkWuK2LeJck3C8XwST8mokkRbkY5lRuJ8HHYsCBxLTdZ/wD1mz1iP/mK/BlKnNy7rwQ+gFrsZ2PACjiWlCgAD/tfT9AP+vWFewXY0Bh+UtNDGT/2xY6z4f2jb6hX4FpV52feU5ePZ9B7PZbsisRxPS7f/wA30/v6xarsd2QfrxPS/ZxjTg/YRqJBHgR0r5+0qTrZzFTMkaeMbxD6dX+0nZ9ra224toiixH/aWky7q4iW58kx1863tH8IHA9PpjZtcV0PLVLgUHiGkZu9mxH6eT3mMD6hXy3pXKMYjpDZSlKoUpSgUpSgUpSgUpSgUpSgUpSgUpSgUpSgUpSgUpSgUpSgUpSgUpSgUpSgUpSgUpSgUpSgUpSgUpSgUpSgUpSgUpSgUpSgUpSgUpSgUpSgUpSgUpSgUpSgUpSgUpSgUpSgUpSgUpSgUpSgUpSgUpSgUpSgUpSgUpSgUpSgUpSgUpSgUpSgUpSgUpSgUpSgUpSgUpSgUpSgUpSgUpSgUpSgUpSgUpSgUpSgUpSgUpSgUpSgUpSgUpSgUpSgUpSgUpSgUpSgUpSgUpSgUpSgUpSgUpSgUpSgUpSgUpSgUpSgUpSgUpSgUpSgUpSgUpSgUpSgUpSgUpSgUpSgUpSgUpSgUpSgUpSgUpSgUpSg/9k=",
"encoding": "base64"
},
"headersSize": 0,
"bodySize": 32108,
"redirectURL": "",
"_transferSize": 32108
},
"cache": {},
"timings": { "dns": 0.007, "connect": 52.701, "ssl": 34.432, "send": 0, "wait": 25.724, "receive": 25.087 },
"pageref": "page@cf0c6fc3a8eb44b78c414b3ef80d4760",
"serverIPAddress": "142.250.191.86",
"_serverPort": 443,
"_securityDetails": {
"protocol": "TLS 1.3",
"subjectName": "edgestatic.com",
"issuer": "WR2",
"validFrom": 1737362163,
"validTo": 1744619762
}
}
]
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment