[{"data":1,"prerenderedAt":1977},["ShallowReactive",2],{"navigation":3,"hamburger-docs-nav":125,"doc-configuration,global-configuration,log-exports":163,"/docs/configuration/global-configuration/log-exports-surround":1934,"docs-nav":1939},[4],{"title":5,"path":6,"stem":7,"children":8,"page":44},"Docs","/docs","docs",[9,45],{"title":10,"path":11,"stem":12,"children":13},"Introduction","/docs/getting-started","docs/00.getting-started/index",[14,15,19],{"title":10,"path":11,"stem":12},{"title":16,"path":17,"stem":18},"Quickstart","/docs/getting-started/quickstart","docs/00.getting-started/00.quickstart",{"title":20,"path":21,"stem":22,"children":23,"page":44},"Core Concepts","/docs/getting-started/core-concepts","docs/00.getting-started/core-concepts",[24,28,32,36,40],{"title":25,"path":26,"stem":27},"What is an Organisation?","/docs/getting-started/core-concepts/what-is-an-org","docs/00.getting-started/core-concepts/01.what-is-an-org",{"title":29,"path":30,"stem":31},"What is a Service?","/docs/getting-started/core-concepts/what-is-a-service","docs/00.getting-started/core-concepts/02.what-is-a-service",{"title":33,"path":34,"stem":35},"Routing Traffic","/docs/getting-started/core-concepts/routing-traffic","docs/00.getting-started/core-concepts/03.routing-traffic",{"title":37,"path":38,"stem":39},"Securing your content","/docs/getting-started/core-concepts/securing-content","docs/00.getting-started/core-concepts/04.securing-content",{"title":41,"path":42,"stem":43},"Invalidating Cache","/docs/getting-started/core-concepts/invalidating-cache","docs/00.getting-started/core-concepts/05.invalidating-cache",false,{"title":10,"path":46,"stem":47,"children":48},"/docs/configuration","docs/01.configuration/index",[49,50,99,116],{"title":10,"path":46,"stem":47},{"title":51,"path":52,"stem":53,"children":54,"page":44},"Configuration","/docs/configuration/configuration","docs/01.configuration/configuration",[55,59,63,67,71,75,79,83,87,91,95],{"title":56,"path":57,"stem":58},"Domains","/docs/configuration/configuration/domains","docs/01.configuration/configuration/00.domains",{"title":60,"path":61,"stem":62},"Origins","/docs/configuration/configuration/origins","docs/01.configuration/configuration/01.origins",{"title":64,"path":65,"stem":66},"General","/docs/configuration/configuration/general","docs/01.configuration/configuration/02.general",{"title":68,"path":69,"stem":70},"High Availability","/docs/configuration/configuration/high-availability","docs/01.configuration/configuration/03.high-availability",{"title":72,"path":73,"stem":74},"Query Parameters","/docs/configuration/configuration/query-parameters","docs/01.configuration/configuration/04.query-parameters",{"title":76,"path":77,"stem":78},"Headers","/docs/configuration/configuration/headers","docs/01.configuration/configuration/05.headers",{"title":80,"path":81,"stem":82},"Cookies","/docs/configuration/configuration/cookies","docs/01.configuration/configuration/06.cookies",{"title":84,"path":85,"stem":86},"Security","/docs/configuration/configuration/security","docs/01.configuration/configuration/07.security",{"title":88,"path":89,"stem":90},"Image Handling","/docs/configuration/configuration/image-handling","docs/01.configuration/configuration/08.image-handling",{"title":92,"path":93,"stem":94},"Overrides","/docs/configuration/configuration/overrides","docs/01.configuration/configuration/09.overrides",{"title":96,"path":97,"stem":98},"API Configuration Reference","/docs/configuration/configuration/api-configuration","docs/01.configuration/configuration/10.api-configuration",{"title":100,"path":101,"stem":102,"children":103,"page":44},"Global Configuration","/docs/configuration/global-configuration","docs/01.configuration/global-configuration",[104,108,112],{"title":105,"path":106,"stem":107},"Managing TLS Certificates","/docs/configuration/global-configuration/tls","docs/01.configuration/global-configuration/TLS",{"title":109,"path":110,"stem":111},"Log Exports","/docs/configuration/global-configuration/log-exports","docs/01.configuration/global-configuration/log-exports",{"title":113,"path":114,"stem":115},"Purge Tokens","/docs/configuration/global-configuration/purge-tokens","docs/01.configuration/global-configuration/purge-tokens",{"title":117,"path":118,"stem":119,"children":120,"page":44},"Infrastructure As Code","/docs/configuration/infrastructure-as-code","docs/01.configuration/infrastructure-as-code",[121],{"title":122,"path":123,"stem":124},"Terraform and OpenTofu","/docs/configuration/infrastructure-as-code/terraform","docs/01.configuration/infrastructure-as-code/terraform",[126],{"title":5,"path":6,"stem":7,"children":127,"page":44},[128,139],{"title":10,"path":11,"stem":12,"children":129},[130,131,132],{"title":10,"path":11,"stem":12},{"title":16,"path":17,"stem":18},{"title":20,"path":21,"stem":22,"children":133,"page":44},[134,135,136,137,138],{"title":25,"path":26,"stem":27},{"title":29,"path":30,"stem":31},{"title":33,"path":34,"stem":35},{"title":37,"path":38,"stem":39},{"title":41,"path":42,"stem":43},{"title":10,"path":46,"stem":47,"children":140},[141,142,155,160],{"title":10,"path":46,"stem":47},{"title":51,"path":52,"stem":53,"children":143,"page":44},[144,145,146,147,148,149,150,151,152,153,154],{"title":56,"path":57,"stem":58},{"title":60,"path":61,"stem":62},{"title":64,"path":65,"stem":66},{"title":68,"path":69,"stem":70},{"title":72,"path":73,"stem":74},{"title":76,"path":77,"stem":78},{"title":80,"path":81,"stem":82},{"title":84,"path":85,"stem":86},{"title":88,"path":89,"stem":90},{"title":92,"path":93,"stem":94},{"title":96,"path":97,"stem":98},{"title":100,"path":101,"stem":102,"children":156,"page":44},[157,158,159],{"title":105,"path":106,"stem":107},{"title":109,"path":110,"stem":111},{"title":113,"path":114,"stem":115},{"title":117,"path":118,"stem":119,"children":161,"page":44},[162],{"title":122,"path":123,"stem":124},{"id":164,"title":109,"body":165,"description":1928,"extension":1929,"meta":1930,"navigation":1931,"path":110,"seo":1932,"stem":111,"__hash__":1933},"docs/docs/01.configuration/global-configuration/log-exports.md",{"type":166,"value":167,"toc":1915},"minimark",[168,172,175,197,200,205,208,211,232,236,239,253,256,263,427,431,512,522,528,531,534,538,552,555,559,562,570,573,579,608,612,618,623,626,966,969,1384,1388,1396,1416,1419,1596,1602,1706,1710,1718,1778,1781,1804,1808,1811,1817,1902,1905,1911],[169,170,171],"p",{},"Log exports deliver the access logs and WAF logs of your services to an S3 bucket that you own. Any S3-compatible object storage works, not only AWS S3.",[169,173,174],{},"Setting up log exports takes two steps:",[176,177,178,191],"ol",{},[179,180,181,185,186,190],"li",{},[182,183,184],"strong",{},"Connect a bucket"," to your ",[187,188,189],"a",{"href":26},"Organisation",". A connected bucket can be used by every service in the Organisation, but nothing is stored in it until a service opts in.",[179,192,193,196],{},[182,194,195],{},"Choose a bucket per service",", separately for access logs and WAF logs. Each service can send each log type to one bucket, and one bucket can receive logs from many services.",[169,198,199],{},"Users with the Admin or Developer role can change log export settings. Finance and Viewer users can only view them.",[201,202,204],"h2",{"id":203},"how-it-works","How it works",[169,206,207],{},"Every edge node writes a log event for each request it serves. The events are collected centrally and then uploaded to your bucket in batches.",[169,209,210],{},"Logs are buffered on disk at every step, so short outages of your bucket do not lose data. Keep the following in mind:",[212,213,214,226,229],"ul",{},[179,215,216,217,221,222,225],{},"Exactly-once delivery is not guaranteed. In rare cases, such as retries after a failed upload, the same event can appear more than once. A duplicate is an exact copy of the original line, so remove identical lines if this matters to you. Do not deduplicate on ",[218,219,220],"code",{},"vxid"," or ",[218,223,224],{},"request_id"," alone: each edge node numbers its requests separately, so different requests can share the same ID.",[179,227,228],{},"If your bucket stays unreachable or the credentials stop working for a long time, the buffers eventually fill up and new events are dropped.",[179,230,231],{},"When you enable log exports for a service, the first minutes of logs may be missing while the configuration is rolled out to the whole CDN.",[201,233,235],{"id":234},"prepare-your-bucket","Prepare your bucket",[169,237,238],{},"Create the bucket and an access key with your storage provider before connecting it. The access key needs:",[212,240,241,247],{},[179,242,243,246],{},[218,244,245],{},"s3:PutObject"," on the bucket (or on the key prefix you plan to use). This is required.",[179,248,249,252],{},[218,250,251],{},"s3:DeleteObject",". This is optional and only used to remove the test file written when you connect the bucket (see below).",[169,254,255],{},"The CDN does not set any ACL, storage class or server-side encryption on uploaded files, so the defaults configured on your bucket apply.",[169,257,258,259,262],{},"An example AWS IAM policy that allows writes under the ",[218,260,261],{},"cdn-logs/"," prefix:",[264,265,271],"pre",{"className":266,"code":267,"filename":268,"language":269,"meta":270,"style":270},"language-json shiki shiki-themes material-theme-lighter github-light github-dark monokai","{\n  \"Version\": \"2012-10-17\",\n  \"Statement\": [\n    {\n      \"Effect\": \"Allow\",\n      \"Action\": [\"s3:PutObject\", \"s3:DeleteObject\"],\n      \"Resource\": \"arn:aws:s3:::my-log-bucket/cdn-logs/*\"\n    }\n  ]\n}\n","policy.json","json","",[218,272,273,282,312,327,333,356,389,409,415,421],{"__ignoreMap":270},[274,275,278],"span",{"class":276,"line":277},"line",1,[274,279,281],{"class":280},"swvn1","{\n",[274,283,285,289,293,296,299,303,307,309],{"class":276,"line":284},2,[274,286,288],{"class":287},"saDeg","  \"",[274,290,292],{"class":291},"sEff5","Version",[274,294,295],{"class":287},"\"",[274,297,298],{"class":280},":",[274,300,302],{"class":301},"sh1VR"," \"",[274,304,306],{"class":305},"sINAO","2012-10-17",[274,308,295],{"class":301},[274,310,311],{"class":280},",\n",[274,313,315,317,320,322,324],{"class":276,"line":314},3,[274,316,288],{"class":287},[274,318,319],{"class":291},"Statement",[274,321,295],{"class":287},[274,323,298],{"class":280},[274,325,326],{"class":280}," [\n",[274,328,330],{"class":276,"line":329},4,[274,331,332],{"class":280},"    {\n",[274,334,336,339,343,345,347,349,352,354],{"class":276,"line":335},5,[274,337,338],{"class":287},"      \"",[274,340,342],{"class":341},"s_MOj","Effect",[274,344,295],{"class":287},[274,346,298],{"class":280},[274,348,302],{"class":301},[274,350,351],{"class":305},"Allow",[274,353,295],{"class":301},[274,355,311],{"class":280},[274,357,359,361,364,366,368,371,373,375,377,380,382,384,386],{"class":276,"line":358},6,[274,360,338],{"class":287},[274,362,363],{"class":341},"Action",[274,365,295],{"class":287},[274,367,298],{"class":280},[274,369,370],{"class":280}," [",[274,372,295],{"class":301},[274,374,245],{"class":305},[274,376,295],{"class":301},[274,378,379],{"class":280},",",[274,381,302],{"class":301},[274,383,251],{"class":305},[274,385,295],{"class":301},[274,387,388],{"class":280},"],\n",[274,390,392,394,397,399,401,403,406],{"class":276,"line":391},7,[274,393,338],{"class":287},[274,395,396],{"class":341},"Resource",[274,398,295],{"class":287},[274,400,298],{"class":280},[274,402,302],{"class":301},[274,404,405],{"class":305},"arn:aws:s3:::my-log-bucket/cdn-logs/*",[274,407,408],{"class":301},"\"\n",[274,410,412],{"class":276,"line":411},8,[274,413,414],{"class":280},"    }\n",[274,416,418],{"class":276,"line":417},9,[274,419,420],{"class":280},"  ]\n",[274,422,424],{"class":276,"line":423},10,[274,425,426],{"class":280},"}\n",[201,428,430],{"id":429},"connecting-a-bucket","Connecting a bucket",[176,432,433,436,439,442,445,507,510],{},[179,434,435],{},"Log in to the dashboard.",[179,437,438],{},"Open the Organisation dropdown in the top-right corner and select \"Settings\".",[179,440,441],{},"Go to the \"Log Storage\" section.",[179,443,444],{},"Click \"Connect bucket\".",[179,446,447,448],{},"Fill in the form:\n",[212,449,450,460,466,479,488,497],{},[179,451,452,455,456,459],{},[182,453,454],{},"Name",": a name for the connection, e.g. ",[218,457,458],{},"log-archive",". Use lowercase letters, digits and dashes, at most 63 characters. The name cannot be changed later.",[179,461,462,465],{},[182,463,464],{},"Bucket name",": the name of your bucket.",[179,467,468,471,472,221,475,478],{},[182,469,470],{},"Region",": the bucket's region, e.g. ",[218,473,474],{},"eu-north-1",[218,476,477],{},"fra1",".",[179,480,481,484,485,478],{},[182,482,483],{},"Endpoint",": leave blank for AWS S3. For other S3-compatible storage, enter the provider's endpoint URL, e.g. ",[218,486,487],{},"https://s3.example.com",[179,489,490,493,494,496],{},[182,491,492],{},"Key prefix"," (optional): a folder path inside the bucket, e.g. ",[218,495,261],{},", with no leading slash.",[179,498,499,502,503,506],{},[182,500,501],{},"Access key ID"," and ",[182,504,505],{},"Secret access key",": the credentials of your access key. Use the key's ID, not the name you gave the key.",[179,508,509],{},"Optionally click \"Test connection\" to check the settings.",[179,511,444],{},[169,513,514,515,518,519,521],{},"When you save, the CDN uploads a small test file named ",[218,516,517],{},"00-cdn-logexport-writetest-\u003Crandom>.txt"," and then tries to delete it. If the upload fails, the bucket is not connected and the error is shown. If the access key does not allow ",[218,520,251],{},", the test file stays in the bucket. It is safe to delete.",[523,524,525],"note",{},[169,526,527],{},"\"Test connection\" writes its test file to the root of the bucket and ignores the key prefix. If your access key is limited to a prefix, the test may fail even though saving the connection works.",[169,529,530],{},"Stored credentials are never shown again. When editing a connection, leave the access key fields blank to keep the current values.",[169,532,533],{},"Removing a bucket connection stops log exports for every service that uses it.",[201,535,537],{"id":536},"enabling-log-exports-for-a-service","Enabling log exports for a service",[176,539,540,543,546,549],{},[179,541,542],{},"Navigate to the service in the dashboard.",[179,544,545],{},"Go to \"Security\" → \"Log storage\".",[179,547,548],{},"In the \"Access Logs storage\" and/or \"WAF storage\" card, select a bucket.",[179,550,551],{},"Click \"Update Storage Location\".",[169,553,554],{},"To stop exporting, click \"Stop storing\" in the same card. Files already in your bucket are not touched.",[201,556,558],{"id":557},"file-structure-in-the-bucket","File structure in the bucket",[169,560,561],{},"Files are grouped by service and by day:",[264,563,568],{"className":564,"code":566,"language":567,"meta":270},[565],"language-text","\u003Ckey prefix>/\u003Cservice name>/\u003CYYYY>/\u003CMM>/\u003CDD>/\u003Clog type>-\u003Ctimestamp>-\u003Cuuid>.log.gz\n","text",[218,569,566],{"__ignoreMap":270},[169,571,572],{},"For example:",[264,574,577],{"className":575,"code":576,"language":567,"meta":270},[565],"cdn-logs/my-service/2026/11/06/access-2026-11-06T12:05:00.123+00:00-0b7c1e4a-6f2d-4e0b-9a51-3c8d2f7e1a90.log.gz\ncdn-logs/my-service/2026/11/06/waf-2026-11-06T12:05:00.456+00:00-5d1f9b2c-8a3e-4c7d-b6e0-9f4a2c1d7e35.log.gz\n",[218,578,576],{"__ignoreMap":270},[212,580,581,587,593,605],{},[179,582,583,586],{},[218,584,585],{},"\u003Ckey prefix>"," is the optional prefix of the bucket connection. Without a prefix, the path starts with the service name.",[179,588,589,592],{},[218,590,591],{},"\u003Cservice name>"," is the name of your service.",[179,594,595,598,599,221,602,478],{},[218,596,597],{},"\u003Clog type>"," is ",[218,600,601],{},"access",[218,603,604],{},"waf",[179,606,607],{},"Each file is gzip-compressed and holds many log events.",[201,609,611],{"id":610},"log-format","Log format",[169,613,614,615,478],{},"Each file contains newline-delimited JSON (NDJSON): one JSON object per line, one line per log event. Fields without a value are ",[218,616,617],{},"null",[619,620,622],"h3",{"id":621},"access-logs","Access logs",[169,624,625],{},"Each request served by the CDN produces one access log event.",[627,628,629,645],"table",{},[630,631,632],"thead",{},[633,634,635,639,642],"tr",{},[636,637,638],"th",{},"Field",[636,640,641],{},"Type",[636,643,644],{},"Description",[646,647,648,664,676,688,704,719,731,743,758,785,797,809,821,834,856,868,883,895,910,924,938,952],"tbody",{},[633,649,650,656,659],{},[651,652,653],"td",{},[218,654,655],{},"log_type",[651,657,658],{},"string",[651,660,661,662,478],{},"Always ",[218,663,601],{},[633,665,666,671,673],{},[651,667,668],{},[218,669,670],{},"service_name",[651,672,658],{},[651,674,675],{},"Name of the service.",[633,677,678,683,685],{},[651,679,680],{},[218,681,682],{},"timestamp",[651,684,658],{},[651,686,687],{},"Time of the request (RFC 3339, millisecond precision).",[633,689,690,694,697],{},[651,691,692],{},[218,693,220],{},[651,695,696],{},"integer",[651,698,699,700,703],{},"Varnish transaction ID of the request. Same value as the ",[218,701,702],{},"X-Varnish"," response header.",[633,705,706,711,713],{},[651,707,708],{},[218,709,710],{},"host",[651,712,658],{},[651,714,715,718],{},[218,716,717],{},"Host"," header of the request.",[633,720,721,726,728],{},[651,722,723],{},[218,724,725],{},"method",[651,727,658],{},[651,729,730],{},"HTTP method.",[633,732,733,738,740],{},[651,734,735],{},[218,736,737],{},"url",[651,739,658],{},[651,741,742],{},"Request path, without the query string.",[633,744,745,750,752],{},[651,746,747],{},[218,748,749],{},"protocol",[651,751,658],{},[651,753,754,755,478],{},"HTTP protocol version, e.g. ",[218,756,757],{},"HTTP/2.0",[633,759,760,765,767],{},[651,761,762],{},[218,763,764],{},"status",[651,766,696],{},[651,768,769,770,773,774,777,778,781,782,478],{},"For ",[218,771,772],{},"waf_block",", the status code the request was blocked with, e.g. ",[218,775,776],{},"403",". Always ",[218,779,780],{},"200"," for ",[218,783,784],{},"waf_detect",[633,786,787,792,794],{},[651,788,789],{},[218,790,791],{},"bytes_body",[651,793,696],{},[651,795,796],{},"Size of the response body in bytes.",[633,798,799,804,806],{},[651,800,801],{},[218,802,803],{},"bytes_in",[651,805,696],{},[651,807,808],{},"Total bytes received from the client.",[633,810,811,816,818],{},[651,812,813],{},[218,814,815],{},"bytes_out",[651,817,696],{},[651,819,820],{},"Total bytes sent to the client.",[633,822,823,828,831],{},[651,824,825],{},[218,826,827],{},"ttfb_s",[651,829,830],{},"float",[651,832,833],{},"Time to first byte, in seconds.",[633,835,836,841,843],{},[651,837,838],{},[218,839,840],{},"handling",[651,842,658],{},[651,844,845,846,849,850,221,853,478],{},"How the request was handled, e.g. ",[218,847,848],{},"hit",", ",[218,851,852],{},"miss",[218,854,855],{},"pass",[633,857,858,863,865],{},[651,859,860],{},[218,861,862],{},"remote_ip",[651,864,658],{},[651,866,867],{},"IP address of the connecting peer.",[633,869,870,875,877],{},[651,871,872],{},[218,873,874],{},"x_forwarded_for",[651,876,658],{},[651,878,879,882],{},[218,880,881],{},"X-Forwarded-For"," request header as seen by the CDN: the value sent by the client, if any, followed by the client's IP address.",[633,884,885,890,892],{},[651,886,887],{},[218,888,889],{},"client_ip",[651,891,658],{},[651,893,894],{},"IP address of the end user.",[633,896,897,902,904],{},[651,898,899],{},[218,900,901],{},"user_agent",[651,903,658],{},[651,905,906,909],{},[218,907,908],{},"User-Agent"," request header.",[633,911,912,917,919],{},[651,913,914],{},[218,915,916],{},"referer",[651,918,658],{},[651,920,921,909],{},[218,922,923],{},"Referer",[633,925,926,931,933],{},[651,927,928],{},[218,929,930],{},"content_type",[651,932,658],{},[651,934,935,703],{},[218,936,937],{},"Content-Type",[633,939,940,945,947],{},[651,941,942],{},[218,943,944],{},"cache_control",[651,946,658],{},[651,948,949,703],{},[218,950,951],{},"Cache-Control",[633,953,954,959,961],{},[651,955,956],{},[218,957,958],{},"age",[651,960,658],{},[651,962,963,703],{},[218,964,965],{},"Age",[169,967,968],{},"Example (formatted over several lines for readability, in the file it is a single line):",[264,970,972],{"className":266,"code":971,"language":269,"meta":270,"style":270},"{\n  \"log_type\": \"access\",\n  \"service_name\": \"my-service\",\n  \"timestamp\": \"2026-11-06T12:03:41.512Z\",\n  \"vxid\": 32770,\n  \"host\": \"www.example.com\",\n  \"method\": \"GET\",\n  \"url\": \"/images/logo.png\",\n  \"protocol\": \"HTTP/2.0\",\n  \"status\": 200,\n  \"bytes_body\": 15320,\n  \"bytes_in\": 412,\n  \"bytes_out\": 15780,\n  \"ttfb_s\": 0.000213,\n  \"handling\": \"hit\",\n  \"remote_ip\": \"203.0.113.24\",\n  \"x_forwarded_for\": \"203.0.113.24\",\n  \"client_ip\": \"203.0.113.24\",\n  \"user_agent\": \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0 Safari/537.36\",\n  \"referer\": \"https://www.example.com/\",\n  \"content_type\": \"image/png\",\n  \"cache_control\": \"public, max-age=86400\",\n  \"age\": \"1520\"\n}\n",[218,973,974,978,996,1015,1034,1050,1069,1088,1107,1125,1140,1156,1172,1188,1204,1223,1243,1262,1281,1301,1321,1341,1361,1379],{"__ignoreMap":270},[274,975,976],{"class":276,"line":277},[274,977,281],{"class":280},[274,979,980,982,984,986,988,990,992,994],{"class":276,"line":284},[274,981,288],{"class":287},[274,983,655],{"class":291},[274,985,295],{"class":287},[274,987,298],{"class":280},[274,989,302],{"class":301},[274,991,601],{"class":305},[274,993,295],{"class":301},[274,995,311],{"class":280},[274,997,998,1000,1002,1004,1006,1008,1011,1013],{"class":276,"line":314},[274,999,288],{"class":287},[274,1001,670],{"class":291},[274,1003,295],{"class":287},[274,1005,298],{"class":280},[274,1007,302],{"class":301},[274,1009,1010],{"class":305},"my-service",[274,1012,295],{"class":301},[274,1014,311],{"class":280},[274,1016,1017,1019,1021,1023,1025,1027,1030,1032],{"class":276,"line":329},[274,1018,288],{"class":287},[274,1020,682],{"class":291},[274,1022,295],{"class":287},[274,1024,298],{"class":280},[274,1026,302],{"class":301},[274,1028,1029],{"class":305},"2026-11-06T12:03:41.512Z",[274,1031,295],{"class":301},[274,1033,311],{"class":280},[274,1035,1036,1038,1040,1042,1044,1048],{"class":276,"line":335},[274,1037,288],{"class":287},[274,1039,220],{"class":291},[274,1041,295],{"class":287},[274,1043,298],{"class":280},[274,1045,1047],{"class":1046},"sYThS"," 32770",[274,1049,311],{"class":280},[274,1051,1052,1054,1056,1058,1060,1062,1065,1067],{"class":276,"line":358},[274,1053,288],{"class":287},[274,1055,710],{"class":291},[274,1057,295],{"class":287},[274,1059,298],{"class":280},[274,1061,302],{"class":301},[274,1063,1064],{"class":305},"www.example.com",[274,1066,295],{"class":301},[274,1068,311],{"class":280},[274,1070,1071,1073,1075,1077,1079,1081,1084,1086],{"class":276,"line":391},[274,1072,288],{"class":287},[274,1074,725],{"class":291},[274,1076,295],{"class":287},[274,1078,298],{"class":280},[274,1080,302],{"class":301},[274,1082,1083],{"class":305},"GET",[274,1085,295],{"class":301},[274,1087,311],{"class":280},[274,1089,1090,1092,1094,1096,1098,1100,1103,1105],{"class":276,"line":411},[274,1091,288],{"class":287},[274,1093,737],{"class":291},[274,1095,295],{"class":287},[274,1097,298],{"class":280},[274,1099,302],{"class":301},[274,1101,1102],{"class":305},"/images/logo.png",[274,1104,295],{"class":301},[274,1106,311],{"class":280},[274,1108,1109,1111,1113,1115,1117,1119,1121,1123],{"class":276,"line":417},[274,1110,288],{"class":287},[274,1112,749],{"class":291},[274,1114,295],{"class":287},[274,1116,298],{"class":280},[274,1118,302],{"class":301},[274,1120,757],{"class":305},[274,1122,295],{"class":301},[274,1124,311],{"class":280},[274,1126,1127,1129,1131,1133,1135,1138],{"class":276,"line":423},[274,1128,288],{"class":287},[274,1130,764],{"class":291},[274,1132,295],{"class":287},[274,1134,298],{"class":280},[274,1136,1137],{"class":1046}," 200",[274,1139,311],{"class":280},[274,1141,1143,1145,1147,1149,1151,1154],{"class":276,"line":1142},11,[274,1144,288],{"class":287},[274,1146,791],{"class":291},[274,1148,295],{"class":287},[274,1150,298],{"class":280},[274,1152,1153],{"class":1046}," 15320",[274,1155,311],{"class":280},[274,1157,1159,1161,1163,1165,1167,1170],{"class":276,"line":1158},12,[274,1160,288],{"class":287},[274,1162,803],{"class":291},[274,1164,295],{"class":287},[274,1166,298],{"class":280},[274,1168,1169],{"class":1046}," 412",[274,1171,311],{"class":280},[274,1173,1175,1177,1179,1181,1183,1186],{"class":276,"line":1174},13,[274,1176,288],{"class":287},[274,1178,815],{"class":291},[274,1180,295],{"class":287},[274,1182,298],{"class":280},[274,1184,1185],{"class":1046}," 15780",[274,1187,311],{"class":280},[274,1189,1191,1193,1195,1197,1199,1202],{"class":276,"line":1190},14,[274,1192,288],{"class":287},[274,1194,827],{"class":291},[274,1196,295],{"class":287},[274,1198,298],{"class":280},[274,1200,1201],{"class":1046}," 0.000213",[274,1203,311],{"class":280},[274,1205,1207,1209,1211,1213,1215,1217,1219,1221],{"class":276,"line":1206},15,[274,1208,288],{"class":287},[274,1210,840],{"class":291},[274,1212,295],{"class":287},[274,1214,298],{"class":280},[274,1216,302],{"class":301},[274,1218,848],{"class":305},[274,1220,295],{"class":301},[274,1222,311],{"class":280},[274,1224,1226,1228,1230,1232,1234,1236,1239,1241],{"class":276,"line":1225},16,[274,1227,288],{"class":287},[274,1229,862],{"class":291},[274,1231,295],{"class":287},[274,1233,298],{"class":280},[274,1235,302],{"class":301},[274,1237,1238],{"class":305},"203.0.113.24",[274,1240,295],{"class":301},[274,1242,311],{"class":280},[274,1244,1246,1248,1250,1252,1254,1256,1258,1260],{"class":276,"line":1245},17,[274,1247,288],{"class":287},[274,1249,874],{"class":291},[274,1251,295],{"class":287},[274,1253,298],{"class":280},[274,1255,302],{"class":301},[274,1257,1238],{"class":305},[274,1259,295],{"class":301},[274,1261,311],{"class":280},[274,1263,1265,1267,1269,1271,1273,1275,1277,1279],{"class":276,"line":1264},18,[274,1266,288],{"class":287},[274,1268,889],{"class":291},[274,1270,295],{"class":287},[274,1272,298],{"class":280},[274,1274,302],{"class":301},[274,1276,1238],{"class":305},[274,1278,295],{"class":301},[274,1280,311],{"class":280},[274,1282,1284,1286,1288,1290,1292,1294,1297,1299],{"class":276,"line":1283},19,[274,1285,288],{"class":287},[274,1287,901],{"class":291},[274,1289,295],{"class":287},[274,1291,298],{"class":280},[274,1293,302],{"class":301},[274,1295,1296],{"class":305},"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0 Safari/537.36",[274,1298,295],{"class":301},[274,1300,311],{"class":280},[274,1302,1304,1306,1308,1310,1312,1314,1317,1319],{"class":276,"line":1303},20,[274,1305,288],{"class":287},[274,1307,916],{"class":291},[274,1309,295],{"class":287},[274,1311,298],{"class":280},[274,1313,302],{"class":301},[274,1315,1316],{"class":305},"https://www.example.com/",[274,1318,295],{"class":301},[274,1320,311],{"class":280},[274,1322,1324,1326,1328,1330,1332,1334,1337,1339],{"class":276,"line":1323},21,[274,1325,288],{"class":287},[274,1327,930],{"class":291},[274,1329,295],{"class":287},[274,1331,298],{"class":280},[274,1333,302],{"class":301},[274,1335,1336],{"class":305},"image/png",[274,1338,295],{"class":301},[274,1340,311],{"class":280},[274,1342,1344,1346,1348,1350,1352,1354,1357,1359],{"class":276,"line":1343},22,[274,1345,288],{"class":287},[274,1347,944],{"class":291},[274,1349,295],{"class":287},[274,1351,298],{"class":280},[274,1353,302],{"class":301},[274,1355,1356],{"class":305},"public, max-age=86400",[274,1358,295],{"class":301},[274,1360,311],{"class":280},[274,1362,1364,1366,1368,1370,1372,1374,1377],{"class":276,"line":1363},23,[274,1365,288],{"class":287},[274,1367,958],{"class":291},[274,1369,295],{"class":287},[274,1371,298],{"class":280},[274,1373,302],{"class":301},[274,1375,1376],{"class":305},"1520",[274,1378,408],{"class":301},[274,1380,1382],{"class":276,"line":1381},24,[274,1383,426],{"class":280},[619,1385,1387],{"id":1386},"waf-logs","WAF logs",[169,1389,1390,1391,1395],{},"WAF logs are written for requests that match a WAF rule. The events depend on the ",[187,1392,1394],{"href":1393},"/docs/configuration/configuration/security#detect-mode","WAF mode"," of the service:",[212,1397,1398,1407],{},[179,1399,1400,1403,1404,1406],{},[182,1401,1402],{},"Blocking mode",": a blocked request produces a single ",[218,1405,772],{}," event.",[179,1408,1409,1412,1413,1415],{},[182,1410,1411],{},"Detect mode",": nothing is blocked, and a request produces one ",[218,1414,784],{}," event for each rule that matched.",[169,1417,1418],{},"Requests that match no rule produce no WAF events.",[627,1420,1421,1431],{},[630,1422,1423],{},[633,1424,1425,1427,1429],{},[636,1426,638],{},[636,1428,641],{},[636,1430,644],{},[646,1432,1433,1445,1455,1470,1481,1492,1507,1519,1529,1541,1556,1566,1584],{},[633,1434,1435,1439,1441],{},[651,1436,1437],{},[218,1438,655],{},[651,1440,658],{},[651,1442,661,1443,478],{},[218,1444,604],{},[633,1446,1447,1451,1453],{},[651,1448,1449],{},[218,1450,670],{},[651,1452,658],{},[651,1454,675],{},[633,1456,1457,1462,1464],{},[651,1458,1459],{},[218,1460,1461],{},"event_type",[651,1463,658],{},[651,1465,1466,221,1468,478],{},[218,1467,784],{},[218,1469,772],{},[633,1471,1472,1476,1478],{},[651,1473,1474],{},[218,1475,682],{},[651,1477,658],{},[651,1479,1480],{},"Time of the event.",[633,1482,1483,1487,1489],{},[651,1484,1485],{},[218,1486,224],{},[651,1488,696],{},[651,1490,1491],{},"Varnish transaction ID of the WAF check.",[633,1493,1494,1499,1501],{},[651,1495,1496],{},[218,1497,1498],{},"parent_request_id",[651,1500,696],{},[651,1502,1503,1504,1506],{},"Varnish transaction ID of the client request. Matches ",[218,1505,220],{}," in the access log.",[633,1508,1509,1514,1516],{},[651,1510,1511],{},[218,1512,1513],{},"hostname",[651,1515,658],{},[651,1517,1518],{},"Host of the request.",[633,1520,1521,1525,1527],{},[651,1522,1523],{},[218,1524,725],{},[651,1526,658],{},[651,1528,730],{},[633,1530,1531,1536,1538],{},[651,1532,1533],{},[218,1534,1535],{},"path",[651,1537,658],{},[651,1539,1540],{},"Request path, including the query string.",[633,1542,1543,1548,1550],{},[651,1544,1545],{},[218,1546,1547],{},"http_version",[651,1549,658],{},[651,1551,1552,1553,1555],{},"HTTP protocol version of the WAF check. This can differ from the protocol the client used, so use ",[218,1554,749],{}," in the access log for that.",[633,1557,1558,1562,1564],{},[651,1559,1560],{},[218,1561,889],{},[651,1563,658],{},[651,1565,894],{},[633,1567,1568,1572,1574],{},[651,1569,1570],{},[218,1571,764],{},[651,1573,696],{},[651,1575,769,1576,773,1578,777,1580,781,1582,478],{},[218,1577,772],{},[218,1579,776],{},[218,1581,780],{},[218,1583,784],{},[633,1585,1586,1590,1593],{},[651,1587,1588],{},[218,1589,604],{},[651,1591,1592],{},"object",[651,1594,1595],{},"Details of the matched rule, see below.",[169,1597,1598,1599,1601],{},"The ",[218,1600,604],{}," object contains:",[627,1603,1604,1612],{},[630,1605,1606],{},[633,1607,1608,1610],{},[636,1609,638],{},[636,1611,644],{},[646,1613,1614,1624,1634,1646,1656,1666,1676,1686,1696],{},[633,1615,1616,1621],{},[651,1617,1618],{},[218,1619,1620],{},"rule_id",[651,1622,1623],{},"ID of the matched rule.",[633,1625,1626,1631],{},[651,1627,1628],{},[218,1629,1630],{},"message",[651,1632,1633],{},"Description of the rule.",[633,1635,1636,1643],{},[651,1637,1638,849,1641],{},[218,1639,1640],{},"file",[218,1642,276],{},[651,1644,1645],{},"Rule file and line the rule is defined in.",[633,1647,1648,1653],{},[651,1649,1650],{},[218,1651,1652],{},"severity",[651,1654,1655],{},"Severity of the rule.",[633,1657,1658,1663],{},[651,1659,1660],{},[218,1661,1662],{},"uri",[651,1664,1665],{},"Request path the rule was evaluated against, without the query string.",[633,1667,1668,1673],{},[651,1669,1670],{},[218,1671,1672],{},"unique_id",[651,1674,1675],{},"Unique ID of the transaction.",[633,1677,1678,1683],{},[651,1679,1680],{},[218,1681,1682],{},"ref",[651,1684,1685],{},"Reference to the matched data.",[633,1687,1688,1693],{},[651,1689,1690],{},[218,1691,1692],{},"accuracy",[651,1694,1695],{},"Accuracy rating of the rule.",[633,1697,1698,1703],{},[651,1699,1700],{},[218,1701,1702],{},"tags",[651,1704,1705],{},"Tags of the rule, e.g. attack categories.",[201,1707,1709],{"id":1708},"log-volume","Log volume",[169,1711,1712,1713,221,1715,1717],{},"Use these approximate figures to estimate storage needs. Actual sizes depend on your traffic: long URLs, long ",[218,1714,908],{},[218,1716,923],{}," headers and bot traffic increase them.",[627,1719,1720,1733],{},[630,1721,1722],{},[633,1723,1724,1727,1730],{},[636,1725,1726],{},"Log type",[636,1728,1729],{},"Uncompressed per event",[636,1731,1732],{},"Compressed per event",[646,1734,1735,1746,1757,1767],{},[633,1736,1737,1740,1743],{},[651,1738,1739],{},"Access log, typical",[651,1741,1742],{},"~700 bytes",[651,1744,1745],{},"~100–150 bytes",[633,1747,1748,1751,1754],{},[651,1749,1750],{},"Access log, long headers",[651,1752,1753],{},"~1.2 KB",[651,1755,1756],{},"~250 bytes",[633,1758,1759,1762,1764],{},[651,1760,1761],{},"WAF log, typical",[651,1763,1742],{},[651,1765,1766],{},"~70–100 bytes",[633,1768,1769,1772,1775],{},[651,1770,1771],{},"WAF log, long attack payload",[651,1773,1774],{},"~1.6 KB",[651,1776,1777],{},"~150–250 bytes",[169,1779,1780],{},"As a rule of thumb:",[212,1782,1783,1791],{},[179,1784,1785,1787,1788,478],{},[182,1786,622],{},": roughly 1 KB per request uncompressed and 100–250 bytes compressed, or about ",[182,1789,1790],{},"0.1–0.25 GB stored per million requests",[179,1792,1793,1795,1796,1799,1800,1803],{},[182,1794,1387],{},": in blocking mode, each blocked request produces one event, about ",[182,1797,1798],{},"0.1–0.25 GB stored per million blocked requests",". In detect mode, a flagged request usually produces 3–5 events, about ",[182,1801,1802],{},"0.2–0.5 GB stored per million flagged requests",". WAF log volume follows the amount of attack traffic, not your total traffic.",[201,1805,1807],{"id":1806},"retention","Retention",[169,1809,1810],{},"The CDN only writes to your bucket. It never deletes or expires log files, so the files are kept until you remove them. To keep storage costs under control, set up a lifecycle rule on the bucket that deletes or archives old logs.",[169,1812,1813,1814,1816],{},"For example, with the AWS CLI, to delete logs under ",[218,1815,261],{}," after 90 days:",[264,1818,1823],{"className":1819,"code":1820,"filename":1821,"language":1822,"meta":270,"style":270},"language-bash shiki shiki-themes material-theme-lighter github-light github-dark monokai","aws s3api put-bucket-lifecycle-configuration \\\n  --bucket my-log-bucket \\\n  --lifecycle-configuration '{\n    \"Rules\": [{\n      \"ID\": \"expire-cdn-logs\",\n      \"Status\": \"Enabled\",\n      \"Filter\": { \"Prefix\": \"cdn-logs/\" },\n      \"Expiration\": { \"Days\": 90 }\n    }]\n  }'\n","terminal","bash",[218,1824,1825,1842,1853,1864,1869,1874,1879,1884,1889,1894],{"__ignoreMap":270},[274,1826,1827,1831,1835,1838],{"class":276,"line":277},[274,1828,1830],{"class":1829},"sR7ES","aws",[274,1832,1834],{"class":1833},"sLACW"," s3api",[274,1836,1837],{"class":1833}," put-bucket-lifecycle-configuration",[274,1839,1841],{"class":1840},"sQeA1"," \\\n",[274,1843,1844,1848,1851],{"class":276,"line":284},[274,1845,1847],{"class":1846},"sFhLe","  --bucket",[274,1849,1850],{"class":1833}," my-log-bucket",[274,1852,1841],{"class":1840},[274,1854,1855,1858,1862],{"class":276,"line":314},[274,1856,1857],{"class":1846},"  --lifecycle-configuration",[274,1859,1861],{"class":1860},"siCPE"," '",[274,1863,281],{"class":1833},[274,1865,1866],{"class":276,"line":329},[274,1867,1868],{"class":1833},"    \"Rules\": [{\n",[274,1870,1871],{"class":276,"line":335},[274,1872,1873],{"class":1833},"      \"ID\": \"expire-cdn-logs\",\n",[274,1875,1876],{"class":276,"line":358},[274,1877,1878],{"class":1833},"      \"Status\": \"Enabled\",\n",[274,1880,1881],{"class":276,"line":391},[274,1882,1883],{"class":1833},"      \"Filter\": { \"Prefix\": \"cdn-logs/\" },\n",[274,1885,1886],{"class":276,"line":411},[274,1887,1888],{"class":1833},"      \"Expiration\": { \"Days\": 90 }\n",[274,1890,1891],{"class":276,"line":417},[274,1892,1893],{"class":1833},"    }]\n",[274,1895,1896,1899],{"class":276,"line":423},[274,1897,1898],{"class":1833},"  }",[274,1900,1901],{"class":1860},"'\n",[169,1903,1904],{},"Most S3-compatible providers support the same lifecycle API, or offer the setting in their console.",[1906,1907,1908],"tip",{},[169,1909,1910],{},"Check your own retention requirements before choosing a period. Logs contain IP addresses, which are personal data in many jurisdictions.",[1912,1913,1914],"style",{},"html pre.shiki code .swvn1, html code.shiki .swvn1{--shiki-light:#39ADB5;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-sepia:#F8F8F2}html pre.shiki code .saDeg, html code.shiki .saDeg{--shiki-light:#39ADB5;--shiki-light-font-style:inherit;--shiki-default:#005CC5;--shiki-default-font-style:inherit;--shiki-dark:#79B8FF;--shiki-dark-font-style:inherit;--shiki-sepia:#66D9EF;--shiki-sepia-font-style:italic}html pre.shiki code .sEff5, html code.shiki .sEff5{--shiki-light:#9C3EDA;--shiki-light-font-style:inherit;--shiki-default:#005CC5;--shiki-default-font-style:inherit;--shiki-dark:#79B8FF;--shiki-dark-font-style:inherit;--shiki-sepia:#66D9EF;--shiki-sepia-font-style:italic}html pre.shiki code .sh1VR, html code.shiki .sh1VR{--shiki-light:#39ADB5;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-sepia:#CFCFC2}html pre.shiki code .sINAO, html code.shiki .sINAO{--shiki-light:#91B859;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-sepia:#CFCFC2}html pre.shiki code .s_MOj, html code.shiki .s_MOj{--shiki-light:#E2931D;--shiki-light-font-style:inherit;--shiki-default:#005CC5;--shiki-default-font-style:inherit;--shiki-dark:#79B8FF;--shiki-dark-font-style:inherit;--shiki-sepia:#66D9EF;--shiki-sepia-font-style:italic}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}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 .sepia .shiki span {color: var(--shiki-sepia);background: var(--shiki-sepia-bg);font-style: var(--shiki-sepia-font-style);font-weight: var(--shiki-sepia-font-weight);text-decoration: var(--shiki-sepia-text-decoration);}html.sepia .shiki span {color: var(--shiki-sepia);background: var(--shiki-sepia-bg);font-style: var(--shiki-sepia-font-style);font-weight: var(--shiki-sepia-font-weight);text-decoration: var(--shiki-sepia-text-decoration);}html pre.shiki code .sYThS, html code.shiki .sYThS{--shiki-light:#F76D47;--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-sepia:#AE81FF}html pre.shiki code .sR7ES, html code.shiki .sR7ES{--shiki-light:#E2931D;--shiki-default:#6F42C1;--shiki-dark:#B392F0;--shiki-sepia:#A6E22E}html pre.shiki code .sLACW, html code.shiki .sLACW{--shiki-light:#91B859;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-sepia:#E6DB74}html pre.shiki code .sQeA1, html code.shiki .sQeA1{--shiki-light:#90A4AE;--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-sepia:#AE81FF}html pre.shiki code .sFhLe, html code.shiki .sFhLe{--shiki-light:#91B859;--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-sepia:#AE81FF}html pre.shiki code .siCPE, html code.shiki .siCPE{--shiki-light:#39ADB5;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-sepia:#E6DB74}",{"title":270,"searchDepth":284,"depth":284,"links":1916},[1917,1918,1919,1920,1921,1922,1926,1927],{"id":203,"depth":284,"text":204},{"id":234,"depth":284,"text":235},{"id":429,"depth":284,"text":430},{"id":536,"depth":284,"text":537},{"id":557,"depth":284,"text":558},{"id":610,"depth":284,"text":611,"children":1923},[1924,1925],{"id":621,"depth":314,"text":622},{"id":1386,"depth":314,"text":1387},{"id":1708,"depth":284,"text":1709},{"id":1806,"depth":284,"text":1807},"Archive your access and WAF logs to your own S3 or S3-compatible bucket. Learn how log exports work, the log format, the file layout in the bucket, and how to set up retention.","md",{},true,{"title":109,"description":1928},"gG7EnXP2naKid3aIabPvYXbFDYlR8G9f_XKq_jY2Rz0",[1935,1937],{"title":105,"path":106,"stem":107,"description":1936,"children":-1},"Secure your traffic with Managed TLS via Let’s Encrypt or by uploading your own custom certificates. Ensure encrypted communication for your users with automated issuance and renewal.",{"title":113,"path":114,"stem":115,"description":1938,"children":-1},"Authenticate your purge requests using workspace-wide JWT or Basic Auth tokens. Securely authorize external systems to invalidate cached content across all your services.",[1940],{"title":5,"path":6,"stem":7,"children":1941,"page":44},[1942,1953],{"title":10,"path":11,"stem":12,"children":1943},[1944,1945,1946],{"title":10,"path":11,"stem":12},{"title":16,"path":17,"stem":18},{"title":20,"path":21,"stem":22,"children":1947,"page":44},[1948,1949,1950,1951,1952],{"title":25,"path":26,"stem":27},{"title":29,"path":30,"stem":31},{"title":33,"path":34,"stem":35},{"title":37,"path":38,"stem":39},{"title":41,"path":42,"stem":43},{"title":10,"path":46,"stem":47,"children":1954},[1955,1956,1969,1974],{"title":10,"path":46,"stem":47},{"title":51,"path":52,"stem":53,"children":1957,"page":44},[1958,1959,1960,1961,1962,1963,1964,1965,1966,1967,1968],{"title":56,"path":57,"stem":58},{"title":60,"path":61,"stem":62},{"title":64,"path":65,"stem":66},{"title":68,"path":69,"stem":70},{"title":72,"path":73,"stem":74},{"title":76,"path":77,"stem":78},{"title":80,"path":81,"stem":82},{"title":84,"path":85,"stem":86},{"title":88,"path":89,"stem":90},{"title":92,"path":93,"stem":94},{"title":96,"path":97,"stem":98},{"title":100,"path":101,"stem":102,"children":1970,"page":44},[1971,1972,1973],{"title":105,"path":106,"stem":107},{"title":109,"path":110,"stem":111},{"title":113,"path":114,"stem":115},{"title":117,"path":118,"stem":119,"children":1975,"page":44},[1976],{"title":122,"path":123,"stem":124},1794392836932]