[{"data":1,"prerenderedAt":2781},["ShallowReactive",2],{"api_export":3,"nav-docs":2661,"nav-api":2718},{"id":4,"title":5,"body":6,"description":16,"extension":2655,"meta":2656,"navigation":203,"path":2657,"seo":2658,"stem":2659,"__hash__":2660},"api\u002Fapi\u002F15.export.md","Export",{"type":7,"value":8,"toc":2645},"minimark",[9,13,17,20,25,28,36,41,83,87,94,104,115,905,909,915,918,923,929,945,955,981,992,995,1434,1438,1441,1627,1630,1839,1848,2642],[10,11,5],"h1",{"id":12},"export",[14,15,16],"p",{},"Boards as files you can keep.",[14,18,19],{},"Two downloads, both zips. One board, for anybody who can see it; the whole\ninstance, for its administrators. A board's JSON is the same from either, so a\nscript written against one reads the other.",[21,22,24],"h2",{"id":23},"get-apidataboard-export","GET \u002Fapi\u002Fdata\u002Fboard-export",[14,26,27],{},"One board: its JSON, and the files its cards hold. Needs read access to the\nboard.",[14,29,30,31,35],{},"Archived areas and cards are included, each with its ",[32,33,34],"code",{},"archivedAt",". An export is\nwhat somebody keeps, and a card archived last week is still work that happened.",[37,38,40],"h3",{"id":39},"parameters","Parameters",[42,43,44,63],"table",{},[45,46,47],"thead",{},[48,49,50,54,57,60],"tr",{},[51,52,53],"th",{},"Name",[51,55,56],{},"Type",[51,58,59],{},"Required",[51,61,62],{},"Description",[64,65,66],"tbody",{},[48,67,68,74,77,80],{},[69,70,71],"td",{},[32,72,73],{},"boardId",[69,75,76],{},"integer",[69,78,79],{},"yes",[69,81,82],{},"The board to export.",[37,84,86],{"id":85},"what-comes-back","What comes back",[14,88,89,90,93],{},"A zip named ",[32,91,92],{},"\u003Cid>-\u003Cname>-\u003Cdate>.zip",":",[95,96,102],"pre",{"className":97,"code":99,"language":100,"meta":101},[98],"language-text","12-website-relaunch.json\nattachments\u002F\n  41-Quartalszahlen.xlsx\n  images\u002F3f9c0b7d4e2a8c1f6b5d9e0a7c3b2f1e.webp\n","text","",[32,103,99],{"__ignoreMap":101},[14,105,106,107,110,111,114],{},"Attachments keep their own names, prefixed with their id so two files called\n",[32,108,109],{},"Screenshot.png"," stay two files. Pictures pasted into a description or a comment\nare in ",[32,112,113],{},"images\u002F",", under the name they were stored with.",[116,117,118,172,330,603,834],"code-example",{},[119,120,121],"template",{"v-slot:curl":101},[95,122,126],{"className":123,"code":124,"language":125,"meta":101,"style":101},"language-bash shiki shiki-themes github-light github-dark","curl \"https:\u002F\u002Fboards.example.com\u002Fapi\u002Fdata\u002Fboard-export?boardId=12\" \\\n  -H \"X-API-Key: $LOKALBOARDS_KEY\" \\\n  -o website-relaunch.zip\n","bash",[32,127,128,145,163],{"__ignoreMap":101},[129,130,133,137,141],"span",{"class":131,"line":132},"line",1,[129,134,136],{"class":135},"sScJk","curl",[129,138,140],{"class":139},"sZZnC"," \"https:\u002F\u002Fboards.example.com\u002Fapi\u002Fdata\u002Fboard-export?boardId=12\"",[129,142,144],{"class":143},"sj4cs"," \\\n",[129,146,148,151,154,158,161],{"class":131,"line":147},2,[129,149,150],{"class":143},"  -H",[129,152,153],{"class":139}," \"X-API-Key: ",[129,155,157],{"class":156},"sVt8B","$LOKALBOARDS_KEY",[129,159,160],{"class":139},"\"",[129,162,144],{"class":143},[129,164,166,169],{"class":131,"line":165},3,[129,167,168],{"class":143},"  -o",[129,170,171],{"class":139}," website-relaunch.zip\n",[119,173,174],{"v-slot:js":101},[95,175,179],{"className":176,"code":177,"language":178,"meta":101,"style":101},"language-js shiki shiki-themes github-light github-dark","import { writeFile } from \"node:fs\u002Fpromises\";\n\nconst response = await fetch(\n  \"https:\u002F\u002Fboards.example.com\u002Fapi\u002Fdata\u002Fboard-export?boardId=12\",\n  { headers: { \"X-API-Key\": apiKey } },\n);\n\nif (!response.ok) throw new Error(await response.text());\n\nawait writeFile(\"website-relaunch.zip\", Buffer.from(await response.arrayBuffer()));\n","js",[32,180,181,199,205,225,234,246,252,257,295,300],{"__ignoreMap":101},[129,182,183,187,190,193,196],{"class":131,"line":132},[129,184,186],{"class":185},"szBVR","import",[129,188,189],{"class":156}," { writeFile } ",[129,191,192],{"class":185},"from",[129,194,195],{"class":139}," \"node:fs\u002Fpromises\"",[129,197,198],{"class":156},";\n",[129,200,201],{"class":131,"line":147},[129,202,204],{"emptyLinePlaceholder":203},true,"\n",[129,206,207,210,213,216,219,222],{"class":131,"line":165},[129,208,209],{"class":185},"const",[129,211,212],{"class":143}," response",[129,214,215],{"class":185}," =",[129,217,218],{"class":185}," await",[129,220,221],{"class":135}," fetch",[129,223,224],{"class":156},"(\n",[129,226,228,231],{"class":131,"line":227},4,[129,229,230],{"class":139},"  \"https:\u002F\u002Fboards.example.com\u002Fapi\u002Fdata\u002Fboard-export?boardId=12\"",[129,232,233],{"class":156},",\n",[129,235,237,240,243],{"class":131,"line":236},5,[129,238,239],{"class":156},"  { headers: { ",[129,241,242],{"class":139},"\"X-API-Key\"",[129,244,245],{"class":156},": apiKey } },\n",[129,247,249],{"class":131,"line":248},6,[129,250,251],{"class":156},");\n",[129,253,255],{"class":131,"line":254},7,[129,256,204],{"emptyLinePlaceholder":203},[129,258,260,263,266,269,272,275,278,281,284,287,290,292],{"class":131,"line":259},8,[129,261,262],{"class":185},"if",[129,264,265],{"class":156}," (",[129,267,268],{"class":185},"!",[129,270,271],{"class":156},"response.ok) ",[129,273,274],{"class":185},"throw",[129,276,277],{"class":185}," new",[129,279,280],{"class":135}," Error",[129,282,283],{"class":156},"(",[129,285,286],{"class":185},"await",[129,288,289],{"class":156}," response.",[129,291,100],{"class":135},[129,293,294],{"class":156},"());\n",[129,296,298],{"class":131,"line":297},9,[129,299,204],{"emptyLinePlaceholder":203},[129,301,303,305,308,310,313,316,318,320,322,324,327],{"class":131,"line":302},10,[129,304,286],{"class":185},[129,306,307],{"class":135}," writeFile",[129,309,283],{"class":156},[129,311,312],{"class":139},"\"website-relaunch.zip\"",[129,314,315],{"class":156},", Buffer.",[129,317,192],{"class":135},[129,319,283],{"class":156},[129,321,286],{"class":185},[129,323,289],{"class":156},[129,325,326],{"class":135},"arrayBuffer",[129,328,329],{"class":156},"()));\n",[119,331,332],{"v-slot:vue":101},[95,333,337],{"className":334,"code":335,"language":336,"meta":101,"style":101},"language-vue shiki shiki-themes github-light github-dark","\u003Cscript setup>\nconst config = useRuntimeConfig();\n\nasync function download() {\n  const zip = await $fetch(\"https:\u002F\u002Fboards.example.com\u002Fapi\u002Fdata\u002Fboard-export\", {\n    headers: { \"X-API-Key\": config.lokalBoardsKey },\n    query: { boardId: 12 },\n    responseType: \"blob\",\n  });\n\n  const link = document.createElement(\"a\");\n  link.href = URL.createObjectURL(zip);\n  link.download = \"website-relaunch.zip\";\n  link.click();\n  URL.revokeObjectURL(link.href);\n}\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n  \u003Cbutton type=\"button\" @click=\"download\">Export board\u003C\u002Fbutton>\n\u003C\u002Ftemplate>\n","vue",[32,338,339,354,369,373,387,410,420,431,441,446,450,473,494,507,518,532,538,548,553,562,594],{"__ignoreMap":101},[129,340,341,344,348,351],{"class":131,"line":132},[129,342,343],{"class":156},"\u003C",[129,345,347],{"class":346},"s9eBZ","script",[129,349,350],{"class":135}," setup",[129,352,353],{"class":156},">\n",[129,355,356,358,361,363,366],{"class":131,"line":147},[129,357,209],{"class":185},[129,359,360],{"class":143}," config",[129,362,215],{"class":185},[129,364,365],{"class":135}," useRuntimeConfig",[129,367,368],{"class":156},"();\n",[129,370,371],{"class":131,"line":165},[129,372,204],{"emptyLinePlaceholder":203},[129,374,375,378,381,384],{"class":131,"line":227},[129,376,377],{"class":185},"async",[129,379,380],{"class":185}," function",[129,382,383],{"class":135}," download",[129,385,386],{"class":156},"() {\n",[129,388,389,392,395,397,399,402,404,407],{"class":131,"line":236},[129,390,391],{"class":185},"  const",[129,393,394],{"class":143}," zip",[129,396,215],{"class":185},[129,398,218],{"class":185},[129,400,401],{"class":135}," $fetch",[129,403,283],{"class":156},[129,405,406],{"class":139},"\"https:\u002F\u002Fboards.example.com\u002Fapi\u002Fdata\u002Fboard-export\"",[129,408,409],{"class":156},", {\n",[129,411,412,415,417],{"class":131,"line":248},[129,413,414],{"class":156},"    headers: { ",[129,416,242],{"class":139},[129,418,419],{"class":156},": config.lokalBoardsKey },\n",[129,421,422,425,428],{"class":131,"line":254},[129,423,424],{"class":156},"    query: { boardId: ",[129,426,427],{"class":143},"12",[129,429,430],{"class":156}," },\n",[129,432,433,436,439],{"class":131,"line":259},[129,434,435],{"class":156},"    responseType: ",[129,437,438],{"class":139},"\"blob\"",[129,440,233],{"class":156},[129,442,443],{"class":131,"line":297},[129,444,445],{"class":156},"  });\n",[129,447,448],{"class":131,"line":302},[129,449,204],{"emptyLinePlaceholder":203},[129,451,453,455,458,460,463,466,468,471],{"class":131,"line":452},11,[129,454,391],{"class":185},[129,456,457],{"class":143}," link",[129,459,215],{"class":185},[129,461,462],{"class":156}," document.",[129,464,465],{"class":135},"createElement",[129,467,283],{"class":156},[129,469,470],{"class":139},"\"a\"",[129,472,251],{"class":156},[129,474,476,479,482,485,488,491],{"class":131,"line":475},12,[129,477,478],{"class":156},"  link.href ",[129,480,481],{"class":185},"=",[129,483,484],{"class":143}," URL",[129,486,487],{"class":156},".",[129,489,490],{"class":135},"createObjectURL",[129,492,493],{"class":156},"(zip);\n",[129,495,497,500,502,505],{"class":131,"line":496},13,[129,498,499],{"class":156},"  link.download ",[129,501,481],{"class":185},[129,503,504],{"class":139}," \"website-relaunch.zip\"",[129,506,198],{"class":156},[129,508,510,513,516],{"class":131,"line":509},14,[129,511,512],{"class":156},"  link.",[129,514,515],{"class":135},"click",[129,517,368],{"class":156},[129,519,521,524,526,529],{"class":131,"line":520},15,[129,522,523],{"class":143},"  URL",[129,525,487],{"class":156},[129,527,528],{"class":135},"revokeObjectURL",[129,530,531],{"class":156},"(link.href);\n",[129,533,535],{"class":131,"line":534},16,[129,536,537],{"class":156},"}\n",[129,539,541,544,546],{"class":131,"line":540},17,[129,542,543],{"class":156},"\u003C\u002F",[129,545,347],{"class":346},[129,547,353],{"class":156},[129,549,551],{"class":131,"line":550},18,[129,552,204],{"emptyLinePlaceholder":203},[129,554,556,558,560],{"class":131,"line":555},19,[129,557,343],{"class":156},[129,559,119],{"class":346},[129,561,353],{"class":156},[129,563,565,568,571,574,576,579,582,584,587,590,592],{"class":131,"line":564},20,[129,566,567],{"class":156},"  \u003C",[129,569,570],{"class":346},"button",[129,572,573],{"class":135}," type",[129,575,481],{"class":156},[129,577,578],{"class":139},"\"button\"",[129,580,581],{"class":135}," @click",[129,583,481],{"class":156},[129,585,586],{"class":139},"\"download\"",[129,588,589],{"class":156},">Export board\u003C\u002F",[129,591,570],{"class":346},[129,593,353],{"class":156},[129,595,597,599,601],{"class":131,"line":596},21,[129,598,543],{"class":156},[129,600,119],{"class":346},[129,602,353],{"class":156},[119,604,605],{"v-slot:react":101},[95,606,610],{"className":607,"code":608,"language":609,"meta":101,"style":101},"language-jsx shiki shiki-themes github-light github-dark","export function ExportButton({ apiKey, boardId }) {\n  async function download() {\n    const response = await fetch(\n      `https:\u002F\u002Fboards.example.com\u002Fapi\u002Fdata\u002Fboard-export?boardId=${boardId}`,\n      { headers: { \"X-API-Key\": apiKey } },\n    );\n    if (!response.ok) throw new Error(await response.text());\n\n    const link = document.createElement(\"a\");\n    link.href = URL.createObjectURL(await response.blob());\n    link.download = `board-${boardId}.zip`;\n    link.click();\n    URL.revokeObjectURL(link.href);\n  }\n\n  return \u003Cbutton onClick={download}>Export board\u003C\u002Fbutton>;\n}\n","jsx",[32,611,612,636,647,662,674,683,688,715,719,737,761,778,787,798,803,807,830],{"__ignoreMap":101},[129,613,614,616,618,621,624,628,631,633],{"class":131,"line":132},[129,615,12],{"class":185},[129,617,380],{"class":185},[129,619,620],{"class":135}," ExportButton",[129,622,623],{"class":156},"({ ",[129,625,627],{"class":626},"s4XuR","apiKey",[129,629,630],{"class":156},", ",[129,632,73],{"class":626},[129,634,635],{"class":156}," }) {\n",[129,637,638,641,643,645],{"class":131,"line":147},[129,639,640],{"class":185},"  async",[129,642,380],{"class":185},[129,644,383],{"class":135},[129,646,386],{"class":156},[129,648,649,652,654,656,658,660],{"class":131,"line":165},[129,650,651],{"class":185},"    const",[129,653,212],{"class":143},[129,655,215],{"class":185},[129,657,218],{"class":185},[129,659,221],{"class":135},[129,661,224],{"class":156},[129,663,664,667,669,672],{"class":131,"line":227},[129,665,666],{"class":139},"      `https:\u002F\u002Fboards.example.com\u002Fapi\u002Fdata\u002Fboard-export?boardId=${",[129,668,73],{"class":156},[129,670,671],{"class":139},"}`",[129,673,233],{"class":156},[129,675,676,679,681],{"class":131,"line":236},[129,677,678],{"class":156},"      { headers: { ",[129,680,242],{"class":139},[129,682,245],{"class":156},[129,684,685],{"class":131,"line":248},[129,686,687],{"class":156},"    );\n",[129,689,690,693,695,697,699,701,703,705,707,709,711,713],{"class":131,"line":254},[129,691,692],{"class":185},"    if",[129,694,265],{"class":156},[129,696,268],{"class":185},[129,698,271],{"class":156},[129,700,274],{"class":185},[129,702,277],{"class":185},[129,704,280],{"class":135},[129,706,283],{"class":156},[129,708,286],{"class":185},[129,710,289],{"class":156},[129,712,100],{"class":135},[129,714,294],{"class":156},[129,716,717],{"class":131,"line":259},[129,718,204],{"emptyLinePlaceholder":203},[129,720,721,723,725,727,729,731,733,735],{"class":131,"line":297},[129,722,651],{"class":185},[129,724,457],{"class":143},[129,726,215],{"class":185},[129,728,462],{"class":156},[129,730,465],{"class":135},[129,732,283],{"class":156},[129,734,470],{"class":139},[129,736,251],{"class":156},[129,738,739,742,744,746,748,750,752,754,756,759],{"class":131,"line":302},[129,740,741],{"class":156},"    link.href ",[129,743,481],{"class":185},[129,745,484],{"class":143},[129,747,487],{"class":156},[129,749,490],{"class":135},[129,751,283],{"class":156},[129,753,286],{"class":185},[129,755,289],{"class":156},[129,757,758],{"class":135},"blob",[129,760,294],{"class":156},[129,762,763,766,768,771,773,776],{"class":131,"line":452},[129,764,765],{"class":156},"    link.download ",[129,767,481],{"class":185},[129,769,770],{"class":139}," `board-${",[129,772,73],{"class":156},[129,774,775],{"class":139},"}.zip`",[129,777,198],{"class":156},[129,779,780,783,785],{"class":131,"line":475},[129,781,782],{"class":156},"    link.",[129,784,515],{"class":135},[129,786,368],{"class":156},[129,788,789,792,794,796],{"class":131,"line":496},[129,790,791],{"class":143},"    URL",[129,793,487],{"class":156},[129,795,528],{"class":135},[129,797,531],{"class":156},[129,799,800],{"class":131,"line":509},[129,801,802],{"class":156},"  }\n",[129,804,805],{"class":131,"line":520},[129,806,204],{"emptyLinePlaceholder":203},[129,808,809,812,815,817,820,822,825,827],{"class":131,"line":534},[129,810,811],{"class":185},"  return",[129,813,814],{"class":156}," \u003C",[129,816,570],{"class":346},[129,818,819],{"class":135}," onClick",[129,821,481],{"class":185},[129,823,824],{"class":156},"{download}>Export board\u003C\u002F",[129,826,570],{"class":346},[129,828,829],{"class":156},">;\n",[129,831,832],{"class":131,"line":540},[129,833,537],{"class":156},[119,835,836],{"v-slot:php":101},[95,837,841],{"className":838,"code":839,"language":840,"meta":101,"style":101},"language-php shiki shiki-themes github-light github-dark","\u003C?php\n\n$file = fopen('website-relaunch.zip', 'w');\n$ch = curl_init('https:\u002F\u002Fboards.example.com\u002Fapi\u002Fdata\u002Fboard-export?boardId=12');\n\ncurl_setopt($ch, CURLOPT_FILE, $file);\ncurl_setopt($ch, CURLOPT_HTTPHEADER, [\n    'X-API-Key: ' . $apiKey,\n]);\n\ncurl_exec($ch);\ncurl_close($ch);\nfclose($file);\n","php",[32,842,843,848,852,857,862,866,871,876,881,886,890,895,900],{"__ignoreMap":101},[129,844,845],{"class":131,"line":132},[129,846,847],{},"\u003C?php\n",[129,849,850],{"class":131,"line":147},[129,851,204],{"emptyLinePlaceholder":203},[129,853,854],{"class":131,"line":165},[129,855,856],{},"$file = fopen('website-relaunch.zip', 'w');\n",[129,858,859],{"class":131,"line":227},[129,860,861],{},"$ch = curl_init('https:\u002F\u002Fboards.example.com\u002Fapi\u002Fdata\u002Fboard-export?boardId=12');\n",[129,863,864],{"class":131,"line":236},[129,865,204],{"emptyLinePlaceholder":203},[129,867,868],{"class":131,"line":248},[129,869,870],{},"curl_setopt($ch, CURLOPT_FILE, $file);\n",[129,872,873],{"class":131,"line":254},[129,874,875],{},"curl_setopt($ch, CURLOPT_HTTPHEADER, [\n",[129,877,878],{"class":131,"line":259},[129,879,880],{},"    'X-API-Key: ' . $apiKey,\n",[129,882,883],{"class":131,"line":297},[129,884,885],{},"]);\n",[129,887,888],{"class":131,"line":302},[129,889,204],{"emptyLinePlaceholder":203},[129,891,892],{"class":131,"line":452},[129,893,894],{},"curl_exec($ch);\n",[129,896,897],{"class":131,"line":475},[129,898,899],{},"curl_close($ch);\n",[129,901,902],{"class":131,"line":496},[129,903,904],{},"fclose($file);\n",[21,906,908],{"id":907},"get-apidataexport","GET \u002Fapi\u002Fdata\u002Fexport",[14,910,911,912,487],{},"Everything on the instance. Needs an administrator: a session of one, or an API\nkey one of them issued. Anybody else is answered ",[32,913,914],{},"403",[37,916,86],{"id":917},"what-comes-back-1",[14,919,89,920,93],{},[32,921,922],{},"lokalboards-export-\u003Cdate>.zip",[95,924,927],{"className":925,"code":926,"language":100,"meta":101},[98],"boards\u002F\n  12-website-relaunch.json\n  13-personal.json\nattachments\u002F\n  12-website-relaunch\u002F\n    41-Quartalszahlen.xlsx\n    images\u002F3f9c0b7d4e2a8c1f6b5d9e0a7c3b2f1e.webp\ndatabase.sql\n",[32,928,926],{"__ignoreMap":101},[14,930,931,934,935,940,941,944],{},[32,932,933],{},"boards\u002F"," holds every board, archived ones included, each in the\n",[936,937,939],"a",{"href":938},"#the-board-file","board file"," format. ",[32,942,943],{},"attachments\u002F"," holds each board's files in\na folder named like its JSON, and the paths inside that JSON point there.",[14,946,947,950,951,954],{},[32,948,949],{},"database.sql"," is the whole database: each table's ",[32,952,953],{},"CREATE TABLE",", then its rows.\nIt restores into an empty database the way any dump does:",[95,956,958],{"className":123,"code":957,"language":125,"meta":101,"style":101},"mysql -u lokalboards -p lokalboards \u003C database.sql\n",[32,959,960],{"__ignoreMap":101},[129,961,962,965,968,971,974,976,978],{"class":131,"line":132},[129,963,964],{"class":135},"mysql",[129,966,967],{"class":143}," -u",[129,969,970],{"class":139}," lokalboards",[129,972,973],{"class":143}," -p",[129,975,970],{"class":139},[129,977,814],{"class":185},[129,979,980],{"class":139}," database.sql\n",[14,982,983,984,987,988,991],{},"The rows of ",[32,985,986],{},"session"," and ",[32,989,990],{},"verification"," are left out — the tables are created,\nempty — so everybody signs in again after a restore rather than finding logins\nbrought back that had ended. Everything else is in it, password hashes\nincluded: keep the zip the way you keep the database.",[14,993,994],{},"The response begins straight away and the zip is written while it is sent, so a\nlarge instance takes longer to finish, not longer to start. Give the request a\ngenerous timeout rather than a short one.",[116,996,997,1049,1244,1320,1367],{},[119,998,999],{"v-slot:curl":101},[95,1000,1002],{"className":123,"code":1001,"language":125,"meta":101,"style":101},"# Nightly, from cron: one dated zip per day.\ncurl \"https:\u002F\u002Fboards.example.com\u002Fapi\u002Fdata\u002Fexport\" \\\n  -H \"X-API-Key: $LOKALBOARDS_ADMIN_KEY\" \\\n  --fail -o \"lokalboards-$(date +%F).zip\"\n",[32,1003,1004,1010,1019,1032],{"__ignoreMap":101},[129,1005,1006],{"class":131,"line":132},[129,1007,1009],{"class":1008},"sJ8bj","# Nightly, from cron: one dated zip per day.\n",[129,1011,1012,1014,1017],{"class":131,"line":147},[129,1013,136],{"class":135},[129,1015,1016],{"class":139}," \"https:\u002F\u002Fboards.example.com\u002Fapi\u002Fdata\u002Fexport\"",[129,1018,144],{"class":143},[129,1020,1021,1023,1025,1028,1030],{"class":131,"line":165},[129,1022,150],{"class":143},[129,1024,153],{"class":139},[129,1026,1027],{"class":156},"$LOKALBOARDS_ADMIN_KEY",[129,1029,160],{"class":139},[129,1031,144],{"class":143},[129,1033,1034,1037,1040,1043,1046],{"class":131,"line":227},[129,1035,1036],{"class":143},"  --fail",[129,1038,1039],{"class":143}," -o",[129,1041,1042],{"class":139}," \"lokalboards-$(",[129,1044,1045],{"class":135},"date",[129,1047,1048],{"class":139}," +%F).zip\"\n",[119,1050,1051],{"v-slot:js":101},[95,1052,1054],{"className":176,"code":1053,"language":178,"meta":101,"style":101},"import { createWriteStream } from \"node:fs\";\nimport { Readable } from \"node:stream\";\nimport { pipeline } from \"node:stream\u002Fpromises\";\n\nconst response = await fetch(\"https:\u002F\u002Fboards.example.com\u002Fapi\u002Fdata\u002Fexport\", {\n  headers: { \"X-API-Key\": adminKey },\n});\n\nif (!response.ok) throw new Error(await response.text());\n\n\u002F\u002F Streamed to disk rather than held in memory: this can be large.\nawait pipeline(\n  Readable.fromWeb(response.body),\n  createWriteStream(`lokalboards-${new Date().toISOString().slice(0, 10)}.zip`),\n);\n",[32,1055,1056,1070,1084,1098,1102,1121,1131,1136,1140,1166,1170,1175,1184,1195,1240],{"__ignoreMap":101},[129,1057,1058,1060,1063,1065,1068],{"class":131,"line":132},[129,1059,186],{"class":185},[129,1061,1062],{"class":156}," { createWriteStream } ",[129,1064,192],{"class":185},[129,1066,1067],{"class":139}," \"node:fs\"",[129,1069,198],{"class":156},[129,1071,1072,1074,1077,1079,1082],{"class":131,"line":147},[129,1073,186],{"class":185},[129,1075,1076],{"class":156}," { Readable } ",[129,1078,192],{"class":185},[129,1080,1081],{"class":139}," \"node:stream\"",[129,1083,198],{"class":156},[129,1085,1086,1088,1091,1093,1096],{"class":131,"line":165},[129,1087,186],{"class":185},[129,1089,1090],{"class":156}," { pipeline } ",[129,1092,192],{"class":185},[129,1094,1095],{"class":139}," \"node:stream\u002Fpromises\"",[129,1097,198],{"class":156},[129,1099,1100],{"class":131,"line":227},[129,1101,204],{"emptyLinePlaceholder":203},[129,1103,1104,1106,1108,1110,1112,1114,1116,1119],{"class":131,"line":236},[129,1105,209],{"class":185},[129,1107,212],{"class":143},[129,1109,215],{"class":185},[129,1111,218],{"class":185},[129,1113,221],{"class":135},[129,1115,283],{"class":156},[129,1117,1118],{"class":139},"\"https:\u002F\u002Fboards.example.com\u002Fapi\u002Fdata\u002Fexport\"",[129,1120,409],{"class":156},[129,1122,1123,1126,1128],{"class":131,"line":248},[129,1124,1125],{"class":156},"  headers: { ",[129,1127,242],{"class":139},[129,1129,1130],{"class":156},": adminKey },\n",[129,1132,1133],{"class":131,"line":254},[129,1134,1135],{"class":156},"});\n",[129,1137,1138],{"class":131,"line":259},[129,1139,204],{"emptyLinePlaceholder":203},[129,1141,1142,1144,1146,1148,1150,1152,1154,1156,1158,1160,1162,1164],{"class":131,"line":297},[129,1143,262],{"class":185},[129,1145,265],{"class":156},[129,1147,268],{"class":185},[129,1149,271],{"class":156},[129,1151,274],{"class":185},[129,1153,277],{"class":185},[129,1155,280],{"class":135},[129,1157,283],{"class":156},[129,1159,286],{"class":185},[129,1161,289],{"class":156},[129,1163,100],{"class":135},[129,1165,294],{"class":156},[129,1167,1168],{"class":131,"line":302},[129,1169,204],{"emptyLinePlaceholder":203},[129,1171,1172],{"class":131,"line":452},[129,1173,1174],{"class":1008},"\u002F\u002F Streamed to disk rather than held in memory: this can be large.\n",[129,1176,1177,1179,1182],{"class":131,"line":475},[129,1178,286],{"class":185},[129,1180,1181],{"class":135}," pipeline",[129,1183,224],{"class":156},[129,1185,1186,1189,1192],{"class":131,"line":496},[129,1187,1188],{"class":156},"  Readable.",[129,1190,1191],{"class":135},"fromWeb",[129,1193,1194],{"class":156},"(response.body),\n",[129,1196,1197,1200,1202,1205,1208,1211,1214,1217,1219,1222,1224,1227,1229,1232,1235,1237],{"class":131,"line":509},[129,1198,1199],{"class":135},"  createWriteStream",[129,1201,283],{"class":156},[129,1203,1204],{"class":139},"`lokalboards-${",[129,1206,1207],{"class":185},"new",[129,1209,1210],{"class":135}," Date",[129,1212,1213],{"class":139},"().",[129,1215,1216],{"class":135},"toISOString",[129,1218,1213],{"class":139},[129,1220,1221],{"class":135},"slice",[129,1223,283],{"class":139},[129,1225,1226],{"class":143},"0",[129,1228,630],{"class":139},[129,1230,1231],{"class":143},"10",[129,1233,1234],{"class":139},")",[129,1236,775],{"class":139},[129,1238,1239],{"class":156},"),\n",[129,1241,1242],{"class":131,"line":520},[129,1243,251],{"class":156},[119,1245,1246],{"v-slot:vue":101},[95,1247,1249],{"className":334,"code":1248,"language":336,"meta":101,"style":101},"\u003Cscript setup>\n\u002F\u002F In an internal tool running on the same instance, where the administrator is\n\u002F\u002F already signed in: a plain link is enough, and the browser streams it.\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n  \u003Ca href=\"\u002Fapi\u002Fdata\u002Fexport\">Export all data\u003C\u002Fa>\n\u003C\u002Ftemplate>\n",[32,1250,1251,1261,1266,1271,1279,1283,1291,1312],{"__ignoreMap":101},[129,1252,1253,1255,1257,1259],{"class":131,"line":132},[129,1254,343],{"class":156},[129,1256,347],{"class":346},[129,1258,350],{"class":135},[129,1260,353],{"class":156},[129,1262,1263],{"class":131,"line":147},[129,1264,1265],{"class":1008},"\u002F\u002F In an internal tool running on the same instance, where the administrator is\n",[129,1267,1268],{"class":131,"line":165},[129,1269,1270],{"class":1008},"\u002F\u002F already signed in: a plain link is enough, and the browser streams it.\n",[129,1272,1273,1275,1277],{"class":131,"line":227},[129,1274,543],{"class":156},[129,1276,347],{"class":346},[129,1278,353],{"class":156},[129,1280,1281],{"class":131,"line":236},[129,1282,204],{"emptyLinePlaceholder":203},[129,1284,1285,1287,1289],{"class":131,"line":248},[129,1286,343],{"class":156},[129,1288,119],{"class":346},[129,1290,353],{"class":156},[129,1292,1293,1295,1297,1300,1302,1305,1308,1310],{"class":131,"line":254},[129,1294,567],{"class":156},[129,1296,936],{"class":346},[129,1298,1299],{"class":135}," href",[129,1301,481],{"class":156},[129,1303,1304],{"class":139},"\"\u002Fapi\u002Fdata\u002Fexport\"",[129,1306,1307],{"class":156},">Export all data\u003C\u002F",[129,1309,936],{"class":346},[129,1311,353],{"class":156},[129,1313,1314,1316,1318],{"class":131,"line":259},[129,1315,543],{"class":156},[129,1317,119],{"class":346},[129,1319,353],{"class":156},[119,1321,1322],{"v-slot:react":101},[95,1323,1325],{"className":607,"code":1324,"language":609,"meta":101,"style":101},"\u002F\u002F Same instance, administrator signed in: the session cookie does the rest.\nexport function ExportAll() {\n  return \u003Ca href=\"\u002Fapi\u002Fdata\u002Fexport\">Export all data\u003C\u002Fa>;\n}\n",[32,1326,1327,1332,1343,1363],{"__ignoreMap":101},[129,1328,1329],{"class":131,"line":132},[129,1330,1331],{"class":1008},"\u002F\u002F Same instance, administrator signed in: the session cookie does the rest.\n",[129,1333,1334,1336,1338,1341],{"class":131,"line":147},[129,1335,12],{"class":185},[129,1337,380],{"class":185},[129,1339,1340],{"class":135}," ExportAll",[129,1342,386],{"class":156},[129,1344,1345,1347,1349,1351,1353,1355,1357,1359,1361],{"class":131,"line":165},[129,1346,811],{"class":185},[129,1348,814],{"class":156},[129,1350,936],{"class":346},[129,1352,1299],{"class":135},[129,1354,481],{"class":185},[129,1356,1304],{"class":139},[129,1358,1307],{"class":156},[129,1360,936],{"class":346},[129,1362,829],{"class":156},[129,1364,1365],{"class":131,"line":227},[129,1366,537],{"class":156},[119,1368,1369],{"v-slot:php":101},[95,1370,1372],{"className":838,"code":1371,"language":840,"meta":101,"style":101},"\u003C?php\n\n$file = fopen('lokalboards-' . date('Y-m-d') . '.zip', 'w');\n$ch = curl_init('https:\u002F\u002Fboards.example.com\u002Fapi\u002Fdata\u002Fexport');\n\ncurl_setopt($ch, CURLOPT_FILE, $file);\ncurl_setopt($ch, CURLOPT_TIMEOUT, 0);\ncurl_setopt($ch, CURLOPT_HTTPHEADER, [\n    'X-API-Key: ' . $adminKey,\n]);\n\ncurl_exec($ch);\ncurl_close($ch);\nfclose($file);\n",[32,1373,1374,1378,1382,1387,1392,1396,1400,1405,1409,1414,1418,1422,1426,1430],{"__ignoreMap":101},[129,1375,1376],{"class":131,"line":132},[129,1377,847],{},[129,1379,1380],{"class":131,"line":147},[129,1381,204],{"emptyLinePlaceholder":203},[129,1383,1384],{"class":131,"line":165},[129,1385,1386],{},"$file = fopen('lokalboards-' . date('Y-m-d') . '.zip', 'w');\n",[129,1388,1389],{"class":131,"line":227},[129,1390,1391],{},"$ch = curl_init('https:\u002F\u002Fboards.example.com\u002Fapi\u002Fdata\u002Fexport');\n",[129,1393,1394],{"class":131,"line":236},[129,1395,204],{"emptyLinePlaceholder":203},[129,1397,1398],{"class":131,"line":248},[129,1399,870],{},[129,1401,1402],{"class":131,"line":254},[129,1403,1404],{},"curl_setopt($ch, CURLOPT_TIMEOUT, 0);\n",[129,1406,1407],{"class":131,"line":259},[129,1408,875],{},[129,1410,1411],{"class":131,"line":297},[129,1412,1413],{},"    'X-API-Key: ' . $adminKey,\n",[129,1415,1416],{"class":131,"line":302},[129,1417,885],{},[129,1419,1420],{"class":131,"line":452},[129,1421,204],{"emptyLinePlaceholder":203},[129,1423,1424],{"class":131,"line":475},[129,1425,894],{},[129,1427,1428],{"class":131,"line":496},[129,1429,899],{},[129,1431,1432],{"class":131,"line":509},[129,1433,904],{},[21,1435,1437],{"id":1436},"the-board-file","The board file",[14,1439,1440],{},"One JSON object per board.",[42,1442,1443,1454],{},[45,1444,1445],{},[48,1446,1447,1450,1452],{},[51,1448,1449],{},"Field",[51,1451,56],{},[51,1453,62],{},[64,1455,1456,1472,1487,1499,1511,1546,1574,1590,1615],{},[48,1457,1458,1463,1466],{},[69,1459,1460],{},[32,1461,1462],{},"format",[69,1464,1465],{},"string",[69,1467,1468,1469,487],{},"Always ",[32,1470,1471],{},"lokalboards.board",[48,1473,1474,1479,1481],{},[69,1475,1476],{},[32,1477,1478],{},"formatVersion",[69,1480,76],{},[69,1482,1483,1486],{},[32,1484,1485],{},"1",". Raised if a field changes what it means; new fields can appear without it.",[48,1488,1489,1494,1496],{},[69,1490,1491],{},[32,1492,1493],{},"lokalboardsVersion",[69,1495,1465],{},[69,1497,1498],{},"The version that wrote the file.",[48,1500,1501,1506,1508],{},[69,1502,1503],{},[32,1504,1505],{},"exportedAt",[69,1507,1465],{},[69,1509,1510],{},"When it was written.",[48,1512,1513,1518,1521],{},[69,1514,1515],{},[32,1516,1517],{},"board",[69,1519,1520],{},"object",[69,1522,1523,630,1526,630,1529,630,1532,630,1535,630,1538,630,1541,987,1544,487],{},[32,1524,1525],{},"id",[32,1527,1528],{},"name",[32,1530,1531],{},"style",[32,1533,1534],{},"status",[32,1536,1537],{},"color",[32,1539,1540],{},"image",[32,1542,1543],{},"owner",[32,1545,34],{},[48,1547,1548,1553,1556],{},[69,1549,1550],{},[32,1551,1552],{},"members",[69,1554,1555],{},"array",[69,1557,1558,1559,1562,1563,1566,1567,1570,1571,487],{},"Everyone invited to the board, each a person with a ",[32,1560,1561],{},"permission"," of ",[32,1564,1565],{},"read"," or ",[32,1568,1569],{},"edit",". The owner is ",[32,1572,1573],{},"board.owner",[48,1575,1576,1581,1583],{},[69,1577,1578],{},[32,1579,1580],{},"labels",[69,1582,1555],{},[69,1584,1585,1586,987,1588,487],{},"The words in use on the board: ",[32,1587,1525],{},[32,1589,1528],{},[48,1591,1592,1597,1599],{},[69,1593,1594],{},[32,1595,1596],{},"areas",[69,1598,1555],{},[69,1600,1601,1602,630,1604,630,1606,630,1609,1611,1612,487],{},"In the board's order: ",[32,1603,1525],{},[32,1605,1528],{},[32,1607,1608],{},"sort",[32,1610,34],{},", and its ",[32,1613,1614],{},"cards",[48,1616,1617,1622,1624],{},[69,1618,1619],{},[32,1620,1621],{},"images",[69,1623,1520],{},[69,1625,1626],{},"Every uploaded picture named in a description, a comment or the board's cover, from its address to its path in the zip.",[14,1628,1629],{},"Each card:",[42,1631,1632,1642],{},[45,1633,1634],{},[48,1635,1636,1638,1640],{},[51,1637,1449],{},[51,1639,56],{},[51,1641,62],{},[64,1643,1644,1657,1671,1684,1695,1708,1721,1732,1743,1755,1793,1815],{},[48,1645,1646,1652,1654],{},[69,1647,1648,630,1650],{},[32,1649,1525],{},[32,1651,1528],{},[69,1653],{},[69,1655,1656],{},"As on the board.",[48,1658,1659,1664,1666],{},[69,1660,1661],{},[32,1662,1663],{},"content",[69,1665,1465],{},[69,1667,1668,1669,487],{},"The description as it is stored, in HTML. Pictures keep their addresses; look them up in ",[32,1670,1621],{},[48,1672,1673,1678,1681],{},[69,1674,1675],{},[32,1676,1677],{},"done",[69,1679,1680],{},"boolean",[69,1682,1683],{},"Whether it is ticked off.",[48,1685,1686,1690,1692],{},[69,1687,1688],{},[32,1689,1608],{},[69,1691,76],{},[69,1693,1694],{},"Its position in its area.",[48,1696,1697,1702,1705],{},[69,1698,1699],{},[32,1700,1701],{},"dueDate",[69,1703,1704],{},"string | null",[69,1706,1707],{},"When it is due.",[48,1709,1710,1715,1718],{},[69,1711,1712],{},[32,1713,1714],{},"assignee",[69,1716,1717],{},"person | null",[69,1719,1720],{},"Who it is assigned to.",[48,1722,1723,1727,1729],{},[69,1724,1725],{},[32,1726,1580],{},[69,1728,1555],{},[69,1730,1731],{},"The names of the labels it wears.",[48,1733,1734,1738,1740],{},[69,1735,1736],{},[32,1737,34],{},[69,1739,1704],{},[69,1741,1742],{},"When it was archived, if it was.",[48,1744,1745,1750,1752],{},[69,1746,1747],{},[32,1748,1749],{},"reminders",[69,1751,1555],{},[69,1753,1754],{},"Minutes before the due date that a reminder goes out.",[48,1756,1757,1762,1764],{},[69,1758,1759],{},[32,1760,1761],{},"attachments",[69,1763,1555],{},[69,1765,1766,630,1768,630,1771,630,1774,630,1777,1780,1781,1784,1785,1788,1789,1792],{},[32,1767,1525],{},[32,1769,1770],{},"filename",[32,1772,1773],{},"filetype",[32,1775,1776],{},"filesize",[32,1778,1779],{},"createdAt",", and ",[32,1782,1783],{},"file",": its path in the zip, or ",[32,1786,1787],{},"null"," when the file was missing on the server. A linked rather than uploaded attachment has a ",[32,1790,1791],{},"url"," instead.",[48,1794,1795,1800,1802],{},[69,1796,1797],{},[32,1798,1799],{},"comments",[69,1801,1555],{},[69,1803,1804,630,1806,1809,1810,1812,1813,487],{},[32,1805,1525],{},[32,1807,1808],{},"author"," (a person), ",[32,1811,1663],{}," in HTML, ",[32,1814,1779],{},[48,1816,1817,1822,1824],{},[69,1818,1819],{},[32,1820,1821],{},"activity",[69,1823,1555],{},[69,1825,1826,1827,630,1830,1809,1833,1836,1837,487],{},"The card's history: ",[32,1828,1829],{},"type",[32,1831,1832],{},"actor",[32,1834,1835],{},"data"," with the detail of that kind of event, ",[32,1838,1779],{},[14,1840,1841,1842,1845,1846,487],{},"A person is ",[32,1843,1844],{},"{ \"id\": \"…\", \"name\": \"…\" }"," — no email addresses. Dates are ISO\n8601 in UTC, and anything unset is ",[32,1847,1787],{},[95,1849,1853],{"className":1850,"code":1851,"language":1852,"meta":101,"style":101},"language-json shiki shiki-themes github-light github-dark","{\n  \"format\": \"lokalboards.board\",\n  \"formatVersion\": 1,\n  \"lokalboardsVersion\": \"0.38.0\",\n  \"exportedAt\": \"2026-09-13T08:00:00.000Z\",\n  \"board\": {\n    \"id\": 12,\n    \"name\": \"Website Relaunch\",\n    \"style\": \"kanban\",\n    \"status\": \"private\",\n    \"color\": null,\n    \"image\": \"\u002Fimages\u002Fboard_placeholder_03.webp\",\n    \"owner\": { \"id\": \"8b1c…\", \"name\": \"Florian\" },\n    \"archivedAt\": null\n  },\n  \"members\": [{ \"id\": \"2f0a…\", \"name\": \"Anna\", \"permission\": \"edit\" }],\n  \"labels\": [{ \"id\": 7, \"name\": \"Webdesign\" }],\n  \"areas\": [\n    {\n      \"id\": 31,\n      \"name\": \"Todo\",\n      \"sort\": 0,\n      \"archivedAt\": null,\n      \"cards\": [\n        {\n          \"id\": 501,\n          \"name\": \"Contact form\",\n          \"content\": \"\u003Cp>Spam filter first.\u003C\u002Fp>\u003Cimg src=\\\"\u002Fapi\u002Fuploads\u002F3f9c…e1.webp\\\">\",\n          \"done\": false,\n          \"sort\": 0,\n          \"dueDate\": \"2026-09-20T15:00:00.000Z\",\n          \"assignee\": { \"id\": \"2f0a…\", \"name\": \"Anna\" },\n          \"labels\": [\"Webdesign\"],\n          \"archivedAt\": null,\n          \"reminders\": [60],\n          \"attachments\": [\n            {\n              \"id\": 41,\n              \"filename\": \"Quartalszahlen.xlsx\",\n              \"filetype\": \"application\u002Fvnd.openxmlformats-officedocument.spreadsheetml.sheet\",\n              \"filesize\": 18233,\n              \"createdAt\": \"2026-09-01T09:12:00.000Z\",\n              \"file\": \"attachments\u002F41-Quartalszahlen.xlsx\"\n            }\n          ],\n          \"comments\": [\n            {\n              \"id\": 90,\n              \"author\": { \"id\": \"8b1c…\", \"name\": \"Florian\" },\n              \"content\": \"\u003Cp>Looks good.\u003C\u002Fp>\",\n              \"createdAt\": \"2026-09-02T10:00:00.000Z\"\n            }\n          ],\n          \"activity\": [\n            {\n              \"type\": \"assigned\",\n              \"actor\": { \"id\": \"8b1c…\", \"name\": \"Florian\" },\n              \"data\": { \"assigneeName\": \"Anna\" },\n              \"createdAt\": \"2026-09-01T09:00:00.000Z\"\n            }\n          ]\n        }\n      ]\n    }\n  ],\n  \"images\": {\n    \"\u002Fapi\u002Fuploads\u002F3f9c…e1.webp\": \"attachments\u002Fimages\u002F3f9c…e1.webp\"\n  }\n}\n","json",[32,1854,1855,1860,1873,1884,1896,1908,1916,1927,1939,1951,1963,1974,1986,2014,2024,2029,2066,2091,2099,2104,2116,2128,2140,2152,2160,2166,2179,2192,2216,2229,2241,2254,2278,2292,2304,2317,2325,2331,2344,2357,2370,2383,2396,2407,2413,2419,2427,2432,2444,2468,2481,2491,2496,2501,2509,2514,2527,2551,2568,2578,2583,2589,2595,2601,2607,2613,2621,2632,2637],{"__ignoreMap":101},[129,1856,1857],{"class":131,"line":132},[129,1858,1859],{"class":156},"{\n",[129,1861,1862,1865,1868,1871],{"class":131,"line":147},[129,1863,1864],{"class":143},"  \"format\"",[129,1866,1867],{"class":156},": ",[129,1869,1870],{"class":139},"\"lokalboards.board\"",[129,1872,233],{"class":156},[129,1874,1875,1878,1880,1882],{"class":131,"line":165},[129,1876,1877],{"class":143},"  \"formatVersion\"",[129,1879,1867],{"class":156},[129,1881,1485],{"class":143},[129,1883,233],{"class":156},[129,1885,1886,1889,1891,1894],{"class":131,"line":227},[129,1887,1888],{"class":143},"  \"lokalboardsVersion\"",[129,1890,1867],{"class":156},[129,1892,1893],{"class":139},"\"0.38.0\"",[129,1895,233],{"class":156},[129,1897,1898,1901,1903,1906],{"class":131,"line":236},[129,1899,1900],{"class":143},"  \"exportedAt\"",[129,1902,1867],{"class":156},[129,1904,1905],{"class":139},"\"2026-09-13T08:00:00.000Z\"",[129,1907,233],{"class":156},[129,1909,1910,1913],{"class":131,"line":248},[129,1911,1912],{"class":143},"  \"board\"",[129,1914,1915],{"class":156},": {\n",[129,1917,1918,1921,1923,1925],{"class":131,"line":254},[129,1919,1920],{"class":143},"    \"id\"",[129,1922,1867],{"class":156},[129,1924,427],{"class":143},[129,1926,233],{"class":156},[129,1928,1929,1932,1934,1937],{"class":131,"line":259},[129,1930,1931],{"class":143},"    \"name\"",[129,1933,1867],{"class":156},[129,1935,1936],{"class":139},"\"Website Relaunch\"",[129,1938,233],{"class":156},[129,1940,1941,1944,1946,1949],{"class":131,"line":297},[129,1942,1943],{"class":143},"    \"style\"",[129,1945,1867],{"class":156},[129,1947,1948],{"class":139},"\"kanban\"",[129,1950,233],{"class":156},[129,1952,1953,1956,1958,1961],{"class":131,"line":302},[129,1954,1955],{"class":143},"    \"status\"",[129,1957,1867],{"class":156},[129,1959,1960],{"class":139},"\"private\"",[129,1962,233],{"class":156},[129,1964,1965,1968,1970,1972],{"class":131,"line":452},[129,1966,1967],{"class":143},"    \"color\"",[129,1969,1867],{"class":156},[129,1971,1787],{"class":143},[129,1973,233],{"class":156},[129,1975,1976,1979,1981,1984],{"class":131,"line":475},[129,1977,1978],{"class":143},"    \"image\"",[129,1980,1867],{"class":156},[129,1982,1983],{"class":139},"\"\u002Fimages\u002Fboard_placeholder_03.webp\"",[129,1985,233],{"class":156},[129,1987,1988,1991,1994,1997,1999,2002,2004,2007,2009,2012],{"class":131,"line":496},[129,1989,1990],{"class":143},"    \"owner\"",[129,1992,1993],{"class":156},": { ",[129,1995,1996],{"class":143},"\"id\"",[129,1998,1867],{"class":156},[129,2000,2001],{"class":139},"\"8b1c…\"",[129,2003,630],{"class":156},[129,2005,2006],{"class":143},"\"name\"",[129,2008,1867],{"class":156},[129,2010,2011],{"class":139},"\"Florian\"",[129,2013,430],{"class":156},[129,2015,2016,2019,2021],{"class":131,"line":509},[129,2017,2018],{"class":143},"    \"archivedAt\"",[129,2020,1867],{"class":156},[129,2022,2023],{"class":143},"null\n",[129,2025,2026],{"class":131,"line":520},[129,2027,2028],{"class":156},"  },\n",[129,2030,2031,2034,2037,2039,2041,2044,2046,2048,2050,2053,2055,2058,2060,2063],{"class":131,"line":534},[129,2032,2033],{"class":143},"  \"members\"",[129,2035,2036],{"class":156},": [{ ",[129,2038,1996],{"class":143},[129,2040,1867],{"class":156},[129,2042,2043],{"class":139},"\"2f0a…\"",[129,2045,630],{"class":156},[129,2047,2006],{"class":143},[129,2049,1867],{"class":156},[129,2051,2052],{"class":139},"\"Anna\"",[129,2054,630],{"class":156},[129,2056,2057],{"class":143},"\"permission\"",[129,2059,1867],{"class":156},[129,2061,2062],{"class":139},"\"edit\"",[129,2064,2065],{"class":156}," }],\n",[129,2067,2068,2071,2073,2075,2077,2080,2082,2084,2086,2089],{"class":131,"line":540},[129,2069,2070],{"class":143},"  \"labels\"",[129,2072,2036],{"class":156},[129,2074,1996],{"class":143},[129,2076,1867],{"class":156},[129,2078,2079],{"class":143},"7",[129,2081,630],{"class":156},[129,2083,2006],{"class":143},[129,2085,1867],{"class":156},[129,2087,2088],{"class":139},"\"Webdesign\"",[129,2090,2065],{"class":156},[129,2092,2093,2096],{"class":131,"line":550},[129,2094,2095],{"class":143},"  \"areas\"",[129,2097,2098],{"class":156},": [\n",[129,2100,2101],{"class":131,"line":555},[129,2102,2103],{"class":156},"    {\n",[129,2105,2106,2109,2111,2114],{"class":131,"line":564},[129,2107,2108],{"class":143},"      \"id\"",[129,2110,1867],{"class":156},[129,2112,2113],{"class":143},"31",[129,2115,233],{"class":156},[129,2117,2118,2121,2123,2126],{"class":131,"line":596},[129,2119,2120],{"class":143},"      \"name\"",[129,2122,1867],{"class":156},[129,2124,2125],{"class":139},"\"Todo\"",[129,2127,233],{"class":156},[129,2129,2131,2134,2136,2138],{"class":131,"line":2130},22,[129,2132,2133],{"class":143},"      \"sort\"",[129,2135,1867],{"class":156},[129,2137,1226],{"class":143},[129,2139,233],{"class":156},[129,2141,2143,2146,2148,2150],{"class":131,"line":2142},23,[129,2144,2145],{"class":143},"      \"archivedAt\"",[129,2147,1867],{"class":156},[129,2149,1787],{"class":143},[129,2151,233],{"class":156},[129,2153,2155,2158],{"class":131,"line":2154},24,[129,2156,2157],{"class":143},"      \"cards\"",[129,2159,2098],{"class":156},[129,2161,2163],{"class":131,"line":2162},25,[129,2164,2165],{"class":156},"        {\n",[129,2167,2169,2172,2174,2177],{"class":131,"line":2168},26,[129,2170,2171],{"class":143},"          \"id\"",[129,2173,1867],{"class":156},[129,2175,2176],{"class":143},"501",[129,2178,233],{"class":156},[129,2180,2182,2185,2187,2190],{"class":131,"line":2181},27,[129,2183,2184],{"class":143},"          \"name\"",[129,2186,1867],{"class":156},[129,2188,2189],{"class":139},"\"Contact form\"",[129,2191,233],{"class":156},[129,2193,2195,2198,2200,2203,2206,2209,2211,2214],{"class":131,"line":2194},28,[129,2196,2197],{"class":143},"          \"content\"",[129,2199,1867],{"class":156},[129,2201,2202],{"class":139},"\"\u003Cp>Spam filter first.\u003C\u002Fp>\u003Cimg src=",[129,2204,2205],{"class":143},"\\\"",[129,2207,2208],{"class":139},"\u002Fapi\u002Fuploads\u002F3f9c…e1.webp",[129,2210,2205],{"class":143},[129,2212,2213],{"class":139},">\"",[129,2215,233],{"class":156},[129,2217,2219,2222,2224,2227],{"class":131,"line":2218},29,[129,2220,2221],{"class":143},"          \"done\"",[129,2223,1867],{"class":156},[129,2225,2226],{"class":143},"false",[129,2228,233],{"class":156},[129,2230,2232,2235,2237,2239],{"class":131,"line":2231},30,[129,2233,2234],{"class":143},"          \"sort\"",[129,2236,1867],{"class":156},[129,2238,1226],{"class":143},[129,2240,233],{"class":156},[129,2242,2244,2247,2249,2252],{"class":131,"line":2243},31,[129,2245,2246],{"class":143},"          \"dueDate\"",[129,2248,1867],{"class":156},[129,2250,2251],{"class":139},"\"2026-09-20T15:00:00.000Z\"",[129,2253,233],{"class":156},[129,2255,2257,2260,2262,2264,2266,2268,2270,2272,2274,2276],{"class":131,"line":2256},32,[129,2258,2259],{"class":143},"          \"assignee\"",[129,2261,1993],{"class":156},[129,2263,1996],{"class":143},[129,2265,1867],{"class":156},[129,2267,2043],{"class":139},[129,2269,630],{"class":156},[129,2271,2006],{"class":143},[129,2273,1867],{"class":156},[129,2275,2052],{"class":139},[129,2277,430],{"class":156},[129,2279,2281,2284,2287,2289],{"class":131,"line":2280},33,[129,2282,2283],{"class":143},"          \"labels\"",[129,2285,2286],{"class":156},": [",[129,2288,2088],{"class":139},[129,2290,2291],{"class":156},"],\n",[129,2293,2295,2298,2300,2302],{"class":131,"line":2294},34,[129,2296,2297],{"class":143},"          \"archivedAt\"",[129,2299,1867],{"class":156},[129,2301,1787],{"class":143},[129,2303,233],{"class":156},[129,2305,2307,2310,2312,2315],{"class":131,"line":2306},35,[129,2308,2309],{"class":143},"          \"reminders\"",[129,2311,2286],{"class":156},[129,2313,2314],{"class":143},"60",[129,2316,2291],{"class":156},[129,2318,2320,2323],{"class":131,"line":2319},36,[129,2321,2322],{"class":143},"          \"attachments\"",[129,2324,2098],{"class":156},[129,2326,2328],{"class":131,"line":2327},37,[129,2329,2330],{"class":156},"            {\n",[129,2332,2334,2337,2339,2342],{"class":131,"line":2333},38,[129,2335,2336],{"class":143},"              \"id\"",[129,2338,1867],{"class":156},[129,2340,2341],{"class":143},"41",[129,2343,233],{"class":156},[129,2345,2347,2350,2352,2355],{"class":131,"line":2346},39,[129,2348,2349],{"class":143},"              \"filename\"",[129,2351,1867],{"class":156},[129,2353,2354],{"class":139},"\"Quartalszahlen.xlsx\"",[129,2356,233],{"class":156},[129,2358,2360,2363,2365,2368],{"class":131,"line":2359},40,[129,2361,2362],{"class":143},"              \"filetype\"",[129,2364,1867],{"class":156},[129,2366,2367],{"class":139},"\"application\u002Fvnd.openxmlformats-officedocument.spreadsheetml.sheet\"",[129,2369,233],{"class":156},[129,2371,2373,2376,2378,2381],{"class":131,"line":2372},41,[129,2374,2375],{"class":143},"              \"filesize\"",[129,2377,1867],{"class":156},[129,2379,2380],{"class":143},"18233",[129,2382,233],{"class":156},[129,2384,2386,2389,2391,2394],{"class":131,"line":2385},42,[129,2387,2388],{"class":143},"              \"createdAt\"",[129,2390,1867],{"class":156},[129,2392,2393],{"class":139},"\"2026-09-01T09:12:00.000Z\"",[129,2395,233],{"class":156},[129,2397,2399,2402,2404],{"class":131,"line":2398},43,[129,2400,2401],{"class":143},"              \"file\"",[129,2403,1867],{"class":156},[129,2405,2406],{"class":139},"\"attachments\u002F41-Quartalszahlen.xlsx\"\n",[129,2408,2410],{"class":131,"line":2409},44,[129,2411,2412],{"class":156},"            }\n",[129,2414,2416],{"class":131,"line":2415},45,[129,2417,2418],{"class":156},"          ],\n",[129,2420,2422,2425],{"class":131,"line":2421},46,[129,2423,2424],{"class":143},"          \"comments\"",[129,2426,2098],{"class":156},[129,2428,2430],{"class":131,"line":2429},47,[129,2431,2330],{"class":156},[129,2433,2435,2437,2439,2442],{"class":131,"line":2434},48,[129,2436,2336],{"class":143},[129,2438,1867],{"class":156},[129,2440,2441],{"class":143},"90",[129,2443,233],{"class":156},[129,2445,2447,2450,2452,2454,2456,2458,2460,2462,2464,2466],{"class":131,"line":2446},49,[129,2448,2449],{"class":143},"              \"author\"",[129,2451,1993],{"class":156},[129,2453,1996],{"class":143},[129,2455,1867],{"class":156},[129,2457,2001],{"class":139},[129,2459,630],{"class":156},[129,2461,2006],{"class":143},[129,2463,1867],{"class":156},[129,2465,2011],{"class":139},[129,2467,430],{"class":156},[129,2469,2471,2474,2476,2479],{"class":131,"line":2470},50,[129,2472,2473],{"class":143},"              \"content\"",[129,2475,1867],{"class":156},[129,2477,2478],{"class":139},"\"\u003Cp>Looks good.\u003C\u002Fp>\"",[129,2480,233],{"class":156},[129,2482,2484,2486,2488],{"class":131,"line":2483},51,[129,2485,2388],{"class":143},[129,2487,1867],{"class":156},[129,2489,2490],{"class":139},"\"2026-09-02T10:00:00.000Z\"\n",[129,2492,2494],{"class":131,"line":2493},52,[129,2495,2412],{"class":156},[129,2497,2499],{"class":131,"line":2498},53,[129,2500,2418],{"class":156},[129,2502,2504,2507],{"class":131,"line":2503},54,[129,2505,2506],{"class":143},"          \"activity\"",[129,2508,2098],{"class":156},[129,2510,2512],{"class":131,"line":2511},55,[129,2513,2330],{"class":156},[129,2515,2517,2520,2522,2525],{"class":131,"line":2516},56,[129,2518,2519],{"class":143},"              \"type\"",[129,2521,1867],{"class":156},[129,2523,2524],{"class":139},"\"assigned\"",[129,2526,233],{"class":156},[129,2528,2530,2533,2535,2537,2539,2541,2543,2545,2547,2549],{"class":131,"line":2529},57,[129,2531,2532],{"class":143},"              \"actor\"",[129,2534,1993],{"class":156},[129,2536,1996],{"class":143},[129,2538,1867],{"class":156},[129,2540,2001],{"class":139},[129,2542,630],{"class":156},[129,2544,2006],{"class":143},[129,2546,1867],{"class":156},[129,2548,2011],{"class":139},[129,2550,430],{"class":156},[129,2552,2554,2557,2559,2562,2564,2566],{"class":131,"line":2553},58,[129,2555,2556],{"class":143},"              \"data\"",[129,2558,1993],{"class":156},[129,2560,2561],{"class":143},"\"assigneeName\"",[129,2563,1867],{"class":156},[129,2565,2052],{"class":139},[129,2567,430],{"class":156},[129,2569,2571,2573,2575],{"class":131,"line":2570},59,[129,2572,2388],{"class":143},[129,2574,1867],{"class":156},[129,2576,2577],{"class":139},"\"2026-09-01T09:00:00.000Z\"\n",[129,2579,2581],{"class":131,"line":2580},60,[129,2582,2412],{"class":156},[129,2584,2586],{"class":131,"line":2585},61,[129,2587,2588],{"class":156},"          ]\n",[129,2590,2592],{"class":131,"line":2591},62,[129,2593,2594],{"class":156},"        }\n",[129,2596,2598],{"class":131,"line":2597},63,[129,2599,2600],{"class":156},"      ]\n",[129,2602,2604],{"class":131,"line":2603},64,[129,2605,2606],{"class":156},"    }\n",[129,2608,2610],{"class":131,"line":2609},65,[129,2611,2612],{"class":156},"  ],\n",[129,2614,2616,2619],{"class":131,"line":2615},66,[129,2617,2618],{"class":143},"  \"images\"",[129,2620,1915],{"class":156},[129,2622,2624,2627,2629],{"class":131,"line":2623},67,[129,2625,2626],{"class":143},"    \"\u002Fapi\u002Fuploads\u002F3f9c…e1.webp\"",[129,2628,1867],{"class":156},[129,2630,2631],{"class":139},"\"attachments\u002Fimages\u002F3f9c…e1.webp\"\n",[129,2633,2635],{"class":131,"line":2634},68,[129,2636,802],{"class":156},[129,2638,2640],{"class":131,"line":2639},69,[129,2641,537],{"class":156},[1531,2643,2644],{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}",{"title":101,"searchDepth":147,"depth":147,"links":2646},[2647,2651,2654],{"id":23,"depth":147,"text":24,"children":2648},[2649,2650],{"id":39,"depth":165,"text":40},{"id":85,"depth":165,"text":86},{"id":907,"depth":147,"text":908,"children":2652},[2653],{"id":917,"depth":165,"text":86},{"id":1436,"depth":147,"text":1437},"md",{},"\u002Fapi\u002Fexport",{"title":5,"description":16},"api\u002F15.export","TfJ_D8comIe1luyJ7d_yEC6Mr4HPU_IuXkgG8YzP4Gk",[2662],{"title":2663,"path":2664,"stem":2665,"children":2666},"Docs","\u002Fdocs","docs",[2667,2670,2674,2678,2682,2686,2690,2694,2698,2702,2706,2710,2714],{"title":2668,"path":2664,"stem":2669},"Getting started","docs\u002Findex",{"title":2671,"path":2672,"stem":2673},"Boards","\u002Fdocs\u002Fboards","docs\u002F02.boards",{"title":2675,"path":2676,"stem":2677},"Areas","\u002Fdocs\u002Fareas","docs\u002F03.areas",{"title":2679,"path":2680,"stem":2681},"Cards","\u002Fdocs\u002Fcards","docs\u002F04.cards",{"title":2683,"path":2684,"stem":2685},"Comments","\u002Fdocs\u002Fcomments","docs\u002F05.comments",{"title":2687,"path":2688,"stem":2689},"Users","\u002Fdocs\u002Fusers","docs\u002F06.users",{"title":2691,"path":2692,"stem":2693},"Disable Signup","\u002Fdocs\u002Fdisable-signup","docs\u002F07.disable-signup",{"title":2695,"path":2696,"stem":2697},"Single Sign-On","\u002Fdocs\u002Fsingle-sign-on","docs\u002F08.single-sign-on",{"title":2699,"path":2700,"stem":2701},"Adjust Colors","\u002Fdocs\u002Fadjust-colors","docs\u002F09.adjust-colors",{"title":2703,"path":2704,"stem":2705},"MCP Server","\u002Fdocs\u002Fmcp-server","docs\u002F10.mcp-server",{"title":2707,"path":2708,"stem":2709},"Migration","\u002Fdocs\u002Fmigration","docs\u002F11.migration",{"title":2711,"path":2712,"stem":2713},"Health Check","\u002Fdocs\u002Fhealth-check","docs\u002F12.health-check",{"title":2715,"path":2716,"stem":2717},"Contributing","\u002Fdocs\u002Fcontributing","docs\u002F13.contributing",[2719],{"title":2720,"path":2721,"stem":2722,"children":2723},"Api","\u002Fapi","api",[2724,2727,2730,2734,2737,2741,2744,2748,2752,2756,2760,2764,2768,2772,2776,2777],{"title":2725,"path":2721,"stem":2726},"Authentication","api\u002Findex",{"title":2671,"path":2728,"stem":2729},"\u002Fapi\u002Fboards","api\u002F02.boards",{"title":2731,"path":2732,"stem":2733},"Board","\u002Fapi\u002Fboard","api\u002F03.board",{"title":2675,"path":2735,"stem":2736},"\u002Fapi\u002Fareas","api\u002F04.areas",{"title":2738,"path":2739,"stem":2740},"Area","\u002Fapi\u002Farea","api\u002F05.area",{"title":2679,"path":2742,"stem":2743},"\u002Fapi\u002Fcards","api\u002F06.cards",{"title":2745,"path":2746,"stem":2747},"Card","\u002Fapi\u002Fcard","api\u002F07.card",{"title":2749,"path":2750,"stem":2751},"Move a card","\u002Fapi\u002Fcard-move","api\u002F08.card-move",{"title":2753,"path":2754,"stem":2755},"Order a card","\u002Fapi\u002Fcard-order","api\u002F09.card-order",{"title":2757,"path":2758,"stem":2759},"Comment","\u002Fapi\u002Fcomment","api\u002F10.comment",{"title":2761,"path":2762,"stem":2763},"Invite","\u002Fapi\u002Finvite","api\u002F11.invite",{"title":2765,"path":2766,"stem":2767},"Notifications","\u002Fapi\u002Fnotifications","api\u002F12.notifications",{"title":2769,"path":2770,"stem":2771},"Labels","\u002Fapi\u002Flabels","api\u002F13.labels",{"title":2773,"path":2774,"stem":2775},"Archive","\u002Fapi\u002Farchive","api\u002F14.archive",{"title":5,"path":2657,"stem":2659},{"title":2778,"path":2779,"stem":2780},"My work","\u002Fapi\u002Fmy-work","api\u002F16.my-work",1789324492075]