[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-encore-encore-cache":3,"mdc-a8ut2a-key":40,"related-repo-encore-encore-cache":2785,"related-org-encore-encore-cache":2876},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":12,"stars":27,"repoUrl":28,"updatedAt":29,"license":30,"forks":31,"topics":32,"repo":35,"sourceUrl":38,"mdContent":39},"encore-cache","cache data in Redis with Encore.ts","Cache data in Redis from Encore.ts using `CacheCluster` and typed keyspaces from `encore.dev\u002Fstorage\u002Fcache`. Type-safe key\u002Fvalue access with TTLs, atomic increments, and per-keyspace data shapes.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},"encore","Encore","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fencore.png","encoredev",[13,17,20,21,24],{"name":14,"slug":15,"type":16},"Backend","backend","tag",{"name":18,"slug":19,"type":16},"TypeScript","typescript",{"name":9,"slug":8,"type":16},{"name":22,"slug":23,"type":16},"Redis","redis",{"name":25,"slug":26,"type":16},"Caching","caching",26,"https:\u002F\u002Fgithub.com\u002Fencoredev\u002Fskills","2026-05-16T05:59:56.808328",null,5,[33,34],"claude-code","skills",{"repoUrl":28,"stars":27,"forks":31,"topics":36,"description":37},[33,34],"Agent Skills for development with Encore.","https:\u002F\u002Fgithub.com\u002Fencoredev\u002Fskills\u002Ftree\u002FHEAD\u002Fencore\u002Fcache","---\nname: encore-cache\ndescription: Cache data in Redis from Encore.ts using `CacheCluster` and typed keyspaces from `encore.dev\u002Fstorage\u002Fcache`. Type-safe key\u002Fvalue access with TTLs, atomic increments, and per-keyspace data shapes.\nwhen_to_use: >-\n  User wants to cache values, store ephemeral state, rate-limit by counter, build a leaderboard, speed up a hot read, or store short-lived tokens. Covers `CacheCluster`, `StringKeyspace`, `IntKeyspace`, `FloatKeyspace`, `StructKeyspace`, list and set keyspaces, TTL helpers (`expireIn`, `expireDailyAt`, `neverExpire`, `keepTTL`), atomic `increment`\u002F`decrement`, `setIfNotExists`, `replace`, eviction policies, and `CacheMiss`\u002F`CacheKeyExists` errors. Trigger phrases: \"cache this\", \"Redis\", \"key-value store\", \"rate limit\", \"TTL\", \"expire after\", \"in-memory store\", \"session token store\", \"leaderboard counter\".\n---\n\n# Encore Caching (Redis)\n\n## Instructions\n\nEncore's cache is a typed wrapper around Redis. Declare a `CacheCluster` once, then create `Keyspace` objects for each shape of data you need.\n\n### Cluster\n\n```typescript\nimport { CacheCluster } from \"encore.dev\u002Fstorage\u002Fcache\";\n\nconst cluster = new CacheCluster(\"my-cache\", {\n  evictionPolicy: \"allkeys-lru\",\n});\n```\n\nReference a cluster from another service: `const cluster = CacheCluster.named(\"my-cache\");`\n\nEviction policies: `\"allkeys-lru\"` (default), `\"noeviction\"`, `\"allkeys-lfu\"`, `\"allkeys-random\"`, `\"volatile-lru\"`, `\"volatile-lfu\"`, `\"volatile-ttl\"`, `\"volatile-random\"`.\n\n### Keyspace types\n\nEach keyspace has a key shape (used to build the Redis key from `keyPattern`) and a value type.\n\n```typescript\nimport {\n  StringKeyspace,\n  IntKeyspace,\n  FloatKeyspace,\n  StructKeyspace,\n  StringListKeyspace,\n  NumberListKeyspace,\n  StringSetKeyspace,\n  NumberSetKeyspace,\n  expireIn,\n} from \"encore.dev\u002Fstorage\u002Fcache\";\n\n\u002F\u002F Strings\nconst tokens = new StringKeyspace\u003C{ tokenId: string }>(cluster, {\n  keyPattern: \"token\u002F:tokenId\",\n  defaultExpiry: expireIn(3600 * 1000),\n});\nawait tokens.set({ tokenId: \"abc\" }, \"value\");\nconst val = await tokens.get({ tokenId: \"abc\" }); \u002F\u002F undefined on miss\n\n\u002F\u002F Integers (atomic counters)\nconst counters = new IntKeyspace\u003C{ userId: string }>(cluster, {\n  keyPattern: \"requests\u002F:userId\",\n  defaultExpiry: expireIn(10 * 1000),\n});\nconst count = await counters.increment({ userId: \"user123\" }, 1);\n\n\u002F\u002F Structs (JSON)\ninterface UserProfile { name: string; email: string; }\nconst profiles = new StructKeyspace\u003C{ userId: string }, UserProfile>(cluster, {\n  keyPattern: \"profile\u002F:userId\",\n  defaultExpiry: expireIn(3600 * 1000),\n});\nawait profiles.set({ userId: \"123\" }, { name: \"Alice\", email: \"alice@example.com\" });\n\n\u002F\u002F Lists\nconst recent = new StringListKeyspace\u003C{ userId: string }>(cluster, {\n  keyPattern: \"recent\u002F:userId\",\n});\nawait recent.pushRight({ userId: \"user123\" }, \"item1\", \"item2\");\n\n\u002F\u002F Sets\nconst tags = new StringSetKeyspace\u003C{ articleId: string }>(cluster, {\n  keyPattern: \"tags\u002F:articleId\",\n});\nawait tags.add({ articleId: \"post1\" }, \"typescript\", \"encore\");\nconst has = await tags.contains({ articleId: \"post1\" }, \"typescript\");\n```\n\n### Multi-field key patterns\n\n```typescript\ninterface Key { userId: string; resourcePath: string; }\n\nconst requests = new IntKeyspace\u003CKey>(cluster, {\n  keyPattern: \"requests\u002F:userId\u002F:resourcePath\",\n  defaultExpiry: expireIn(10 * 1000),\n});\n```\n\n### Expiry helpers\n\n```typescript\nimport {\n  expireIn,          \u002F\u002F milliseconds\n  expireInSeconds,\n  expireInMinutes,\n  expireInHours,\n  expireDailyAt,     \u002F\u002F a specific UTC time each day\n  neverExpire,\n  keepTTL,           \u002F\u002F keep existing TTL when updating\n} from \"encore.dev\u002Fstorage\u002Fcache\";\n```\n\n### Write options\n\n```typescript\nawait keyspace.set(key, value, { expiry: expireInMinutes(30) });\nawait keyspace.set(key, value, { expiry: keepTTL });\nawait keyspace.setIfNotExists(key, value);  \u002F\u002F throws CacheKeyExists if present\nawait keyspace.replace(key, value);          \u002F\u002F throws CacheMiss if absent\n```\n\n### Errors\n\n```typescript\nimport { CacheMiss, CacheKeyExists } from \"encore.dev\u002Fstorage\u002Fcache\";\n\nconst value = await keyspace.get(key);  \u002F\u002F undefined on miss (does not throw)\n```\n\n## Guidelines\n\n- Declare `CacheCluster` and keyspaces at package level.\n- Pick the most specific keyspace type — `IntKeyspace` for counters gives you atomic `increment`\u002F`decrement` for free.\n- `get()` returns `undefined` on miss; `replace()` and `setIfNotExists()` throw on conflict.\n- Local development uses an in-memory Redis with a ~100-key cap — don't load-test it.\n- For durable storage, use `encore-database` (Postgres) or `encore-bucket` (object storage) instead.\n",{"data":41,"body":43},{"name":4,"description":6,"when_to_use":42},"User wants to cache values, store ephemeral state, rate-limit by counter, build a leaderboard, speed up a hot read, or store short-lived tokens. Covers `CacheCluster`, `StringKeyspace`, `IntKeyspace`, `FloatKeyspace`, `StructKeyspace`, list and set keyspaces, TTL helpers (`expireIn`, `expireDailyAt`, `neverExpire`, `keepTTL`), atomic `increment`\u002F`decrement`, `setIfNotExists`, `replace`, eviction policies, and `CacheMiss`\u002F`CacheKeyExists` errors. Trigger phrases: \"cache this\", \"Redis\", \"key-value store\", \"rate limit\", \"TTL\", \"expire after\", \"in-memory store\", \"session token store\", \"leaderboard counter\".",{"type":44,"children":45},"root",[46,55,62,85,92,275,286,350,356,369,1956,1962,2161,2167,2310,2316,2552,2558,2667,2673,2779],{"type":47,"tag":48,"props":49,"children":51},"element","h1",{"id":50},"encore-caching-redis",[52],{"type":53,"value":54},"text","Encore Caching (Redis)",{"type":47,"tag":56,"props":57,"children":59},"h2",{"id":58},"instructions",[60],{"type":53,"value":61},"Instructions",{"type":47,"tag":63,"props":64,"children":65},"p",{},[66,68,75,77,83],{"type":53,"value":67},"Encore's cache is a typed wrapper around Redis. Declare a ",{"type":47,"tag":69,"props":70,"children":72},"code",{"className":71},[],[73],{"type":53,"value":74},"CacheCluster",{"type":53,"value":76}," once, then create ",{"type":47,"tag":69,"props":78,"children":80},{"className":79},[],[81],{"type":53,"value":82},"Keyspace",{"type":53,"value":84}," objects for each shape of data you need.",{"type":47,"tag":86,"props":87,"children":89},"h3",{"id":88},"cluster",[90],{"type":53,"value":91},"Cluster",{"type":47,"tag":93,"props":94,"children":98},"pre",{"className":95,"code":96,"language":19,"meta":97,"style":97},"language-typescript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { CacheCluster } from \"encore.dev\u002Fstorage\u002Fcache\";\n\nconst cluster = new CacheCluster(\"my-cache\", {\n  evictionPolicy: \"allkeys-lru\",\n});\n","",[99],{"type":47,"tag":69,"props":100,"children":101},{"__ignoreMap":97},[102,157,167,225,258],{"type":47,"tag":103,"props":104,"children":107},"span",{"class":105,"line":106},"line",1,[108,114,120,126,131,136,141,147,152],{"type":47,"tag":103,"props":109,"children":111},{"style":110},"--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic",[112],{"type":53,"value":113},"import",{"type":47,"tag":103,"props":115,"children":117},{"style":116},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[118],{"type":53,"value":119}," {",{"type":47,"tag":103,"props":121,"children":123},{"style":122},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[124],{"type":53,"value":125}," CacheCluster",{"type":47,"tag":103,"props":127,"children":128},{"style":116},[129],{"type":53,"value":130}," }",{"type":47,"tag":103,"props":132,"children":133},{"style":110},[134],{"type":53,"value":135}," from",{"type":47,"tag":103,"props":137,"children":138},{"style":116},[139],{"type":53,"value":140}," \"",{"type":47,"tag":103,"props":142,"children":144},{"style":143},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[145],{"type":53,"value":146},"encore.dev\u002Fstorage\u002Fcache",{"type":47,"tag":103,"props":148,"children":149},{"style":116},[150],{"type":53,"value":151},"\"",{"type":47,"tag":103,"props":153,"children":154},{"style":116},[155],{"type":53,"value":156},";\n",{"type":47,"tag":103,"props":158,"children":160},{"class":105,"line":159},2,[161],{"type":47,"tag":103,"props":162,"children":164},{"emptyLinePlaceholder":163},true,[165],{"type":53,"value":166},"\n",{"type":47,"tag":103,"props":168,"children":170},{"class":105,"line":169},3,[171,177,182,187,192,197,202,206,211,215,220],{"type":47,"tag":103,"props":172,"children":174},{"style":173},"--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA",[175],{"type":53,"value":176},"const",{"type":47,"tag":103,"props":178,"children":179},{"style":122},[180],{"type":53,"value":181}," cluster ",{"type":47,"tag":103,"props":183,"children":184},{"style":116},[185],{"type":53,"value":186},"=",{"type":47,"tag":103,"props":188,"children":189},{"style":116},[190],{"type":53,"value":191}," new",{"type":47,"tag":103,"props":193,"children":195},{"style":194},"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF",[196],{"type":53,"value":125},{"type":47,"tag":103,"props":198,"children":199},{"style":122},[200],{"type":53,"value":201},"(",{"type":47,"tag":103,"props":203,"children":204},{"style":116},[205],{"type":53,"value":151},{"type":47,"tag":103,"props":207,"children":208},{"style":143},[209],{"type":53,"value":210},"my-cache",{"type":47,"tag":103,"props":212,"children":213},{"style":116},[214],{"type":53,"value":151},{"type":47,"tag":103,"props":216,"children":217},{"style":116},[218],{"type":53,"value":219},",",{"type":47,"tag":103,"props":221,"children":222},{"style":116},[223],{"type":53,"value":224}," {\n",{"type":47,"tag":103,"props":226,"children":228},{"class":105,"line":227},4,[229,235,240,244,249,253],{"type":47,"tag":103,"props":230,"children":232},{"style":231},"--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178",[233],{"type":53,"value":234},"  evictionPolicy",{"type":47,"tag":103,"props":236,"children":237},{"style":116},[238],{"type":53,"value":239},":",{"type":47,"tag":103,"props":241,"children":242},{"style":116},[243],{"type":53,"value":140},{"type":47,"tag":103,"props":245,"children":246},{"style":143},[247],{"type":53,"value":248},"allkeys-lru",{"type":47,"tag":103,"props":250,"children":251},{"style":116},[252],{"type":53,"value":151},{"type":47,"tag":103,"props":254,"children":255},{"style":116},[256],{"type":53,"value":257},",\n",{"type":47,"tag":103,"props":259,"children":260},{"class":105,"line":31},[261,266,271],{"type":47,"tag":103,"props":262,"children":263},{"style":116},[264],{"type":53,"value":265},"}",{"type":47,"tag":103,"props":267,"children":268},{"style":122},[269],{"type":53,"value":270},")",{"type":47,"tag":103,"props":272,"children":273},{"style":116},[274],{"type":53,"value":156},{"type":47,"tag":63,"props":276,"children":277},{},[278,280],{"type":53,"value":279},"Reference a cluster from another service: ",{"type":47,"tag":69,"props":281,"children":283},{"className":282},[],[284],{"type":53,"value":285},"const cluster = CacheCluster.named(\"my-cache\");",{"type":47,"tag":63,"props":287,"children":288},{},[289,291,297,299,305,307,313,314,320,321,327,328,334,335,341,342,348],{"type":53,"value":290},"Eviction policies: ",{"type":47,"tag":69,"props":292,"children":294},{"className":293},[],[295],{"type":53,"value":296},"\"allkeys-lru\"",{"type":53,"value":298}," (default), ",{"type":47,"tag":69,"props":300,"children":302},{"className":301},[],[303],{"type":53,"value":304},"\"noeviction\"",{"type":53,"value":306},", ",{"type":47,"tag":69,"props":308,"children":310},{"className":309},[],[311],{"type":53,"value":312},"\"allkeys-lfu\"",{"type":53,"value":306},{"type":47,"tag":69,"props":315,"children":317},{"className":316},[],[318],{"type":53,"value":319},"\"allkeys-random\"",{"type":53,"value":306},{"type":47,"tag":69,"props":322,"children":324},{"className":323},[],[325],{"type":53,"value":326},"\"volatile-lru\"",{"type":53,"value":306},{"type":47,"tag":69,"props":329,"children":331},{"className":330},[],[332],{"type":53,"value":333},"\"volatile-lfu\"",{"type":53,"value":306},{"type":47,"tag":69,"props":336,"children":338},{"className":337},[],[339],{"type":53,"value":340},"\"volatile-ttl\"",{"type":53,"value":306},{"type":47,"tag":69,"props":343,"children":345},{"className":344},[],[346],{"type":53,"value":347},"\"volatile-random\"",{"type":53,"value":349},".",{"type":47,"tag":86,"props":351,"children":353},{"id":352},"keyspace-types",[354],{"type":53,"value":355},"Keyspace types",{"type":47,"tag":63,"props":357,"children":358},{},[359,361,367],{"type":53,"value":360},"Each keyspace has a key shape (used to build the Redis key from ",{"type":47,"tag":69,"props":362,"children":364},{"className":363},[],[365],{"type":53,"value":366},"keyPattern",{"type":53,"value":368},") and a value type.",{"type":47,"tag":93,"props":370,"children":372},{"className":95,"code":371,"language":19,"meta":97,"style":97},"import {\n  StringKeyspace,\n  IntKeyspace,\n  FloatKeyspace,\n  StructKeyspace,\n  StringListKeyspace,\n  NumberListKeyspace,\n  StringSetKeyspace,\n  NumberSetKeyspace,\n  expireIn,\n} from \"encore.dev\u002Fstorage\u002Fcache\";\n\n\u002F\u002F Strings\nconst tokens = new StringKeyspace\u003C{ tokenId: string }>(cluster, {\n  keyPattern: \"token\u002F:tokenId\",\n  defaultExpiry: expireIn(3600 * 1000),\n});\nawait tokens.set({ tokenId: \"abc\" }, \"value\");\nconst val = await tokens.get({ tokenId: \"abc\" }); \u002F\u002F undefined on miss\n\n\u002F\u002F Integers (atomic counters)\nconst counters = new IntKeyspace\u003C{ userId: string }>(cluster, {\n  keyPattern: \"requests\u002F:userId\",\n  defaultExpiry: expireIn(10 * 1000),\n});\nconst count = await counters.increment({ userId: \"user123\" }, 1);\n\n\u002F\u002F Structs (JSON)\ninterface UserProfile { name: string; email: string; }\nconst profiles = new StructKeyspace\u003C{ userId: string }, UserProfile>(cluster, {\n  keyPattern: \"profile\u002F:userId\",\n  defaultExpiry: expireIn(3600 * 1000),\n});\nawait profiles.set({ userId: \"123\" }, { name: \"Alice\", email: \"alice@example.com\" });\n\n\u002F\u002F Lists\nconst recent = new StringListKeyspace\u003C{ userId: string }>(cluster, {\n  keyPattern: \"recent\u002F:userId\",\n});\nawait recent.pushRight({ userId: \"user123\" }, \"item1\", \"item2\");\n\n\u002F\u002F Sets\nconst tags = new StringSetKeyspace\u003C{ articleId: string }>(cluster, {\n  keyPattern: \"tags\u002F:articleId\",\n});\nawait tags.add({ articleId: \"post1\" }, \"typescript\", \"encore\");\nconst has = await tags.contains({ articleId: \"post1\" }, \"typescript\");\n",[373],{"type":47,"tag":69,"props":374,"children":375},{"__ignoreMap":97},[376,387,399,411,423,435,448,461,474,487,500,528,536,546,610,640,686,702,781,862,870,879,938,967,1008,1024,1104,1112,1121,1178,1245,1274,1314,1330,1446,1454,1463,1521,1550,1566,1658,1666,1675,1734,1763,1779,1870],{"type":47,"tag":103,"props":377,"children":378},{"class":105,"line":106},[379,383],{"type":47,"tag":103,"props":380,"children":381},{"style":110},[382],{"type":53,"value":113},{"type":47,"tag":103,"props":384,"children":385},{"style":116},[386],{"type":53,"value":224},{"type":47,"tag":103,"props":388,"children":389},{"class":105,"line":159},[390,395],{"type":47,"tag":103,"props":391,"children":392},{"style":122},[393],{"type":53,"value":394},"  StringKeyspace",{"type":47,"tag":103,"props":396,"children":397},{"style":116},[398],{"type":53,"value":257},{"type":47,"tag":103,"props":400,"children":401},{"class":105,"line":169},[402,407],{"type":47,"tag":103,"props":403,"children":404},{"style":122},[405],{"type":53,"value":406},"  IntKeyspace",{"type":47,"tag":103,"props":408,"children":409},{"style":116},[410],{"type":53,"value":257},{"type":47,"tag":103,"props":412,"children":413},{"class":105,"line":227},[414,419],{"type":47,"tag":103,"props":415,"children":416},{"style":122},[417],{"type":53,"value":418},"  FloatKeyspace",{"type":47,"tag":103,"props":420,"children":421},{"style":116},[422],{"type":53,"value":257},{"type":47,"tag":103,"props":424,"children":425},{"class":105,"line":31},[426,431],{"type":47,"tag":103,"props":427,"children":428},{"style":122},[429],{"type":53,"value":430},"  StructKeyspace",{"type":47,"tag":103,"props":432,"children":433},{"style":116},[434],{"type":53,"value":257},{"type":47,"tag":103,"props":436,"children":438},{"class":105,"line":437},6,[439,444],{"type":47,"tag":103,"props":440,"children":441},{"style":122},[442],{"type":53,"value":443},"  StringListKeyspace",{"type":47,"tag":103,"props":445,"children":446},{"style":116},[447],{"type":53,"value":257},{"type":47,"tag":103,"props":449,"children":451},{"class":105,"line":450},7,[452,457],{"type":47,"tag":103,"props":453,"children":454},{"style":122},[455],{"type":53,"value":456},"  NumberListKeyspace",{"type":47,"tag":103,"props":458,"children":459},{"style":116},[460],{"type":53,"value":257},{"type":47,"tag":103,"props":462,"children":464},{"class":105,"line":463},8,[465,470],{"type":47,"tag":103,"props":466,"children":467},{"style":122},[468],{"type":53,"value":469},"  StringSetKeyspace",{"type":47,"tag":103,"props":471,"children":472},{"style":116},[473],{"type":53,"value":257},{"type":47,"tag":103,"props":475,"children":477},{"class":105,"line":476},9,[478,483],{"type":47,"tag":103,"props":479,"children":480},{"style":122},[481],{"type":53,"value":482},"  NumberSetKeyspace",{"type":47,"tag":103,"props":484,"children":485},{"style":116},[486],{"type":53,"value":257},{"type":47,"tag":103,"props":488,"children":490},{"class":105,"line":489},10,[491,496],{"type":47,"tag":103,"props":492,"children":493},{"style":122},[494],{"type":53,"value":495},"  expireIn",{"type":47,"tag":103,"props":497,"children":498},{"style":116},[499],{"type":53,"value":257},{"type":47,"tag":103,"props":501,"children":503},{"class":105,"line":502},11,[504,508,512,516,520,524],{"type":47,"tag":103,"props":505,"children":506},{"style":116},[507],{"type":53,"value":265},{"type":47,"tag":103,"props":509,"children":510},{"style":110},[511],{"type":53,"value":135},{"type":47,"tag":103,"props":513,"children":514},{"style":116},[515],{"type":53,"value":140},{"type":47,"tag":103,"props":517,"children":518},{"style":143},[519],{"type":53,"value":146},{"type":47,"tag":103,"props":521,"children":522},{"style":116},[523],{"type":53,"value":151},{"type":47,"tag":103,"props":525,"children":526},{"style":116},[527],{"type":53,"value":156},{"type":47,"tag":103,"props":529,"children":531},{"class":105,"line":530},12,[532],{"type":47,"tag":103,"props":533,"children":534},{"emptyLinePlaceholder":163},[535],{"type":53,"value":166},{"type":47,"tag":103,"props":537,"children":539},{"class":105,"line":538},13,[540],{"type":47,"tag":103,"props":541,"children":543},{"style":542},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[544],{"type":53,"value":545},"\u002F\u002F Strings\n",{"type":47,"tag":103,"props":547,"children":549},{"class":105,"line":548},14,[550,554,559,563,567,572,577,582,586,592,597,602,606],{"type":47,"tag":103,"props":551,"children":552},{"style":173},[553],{"type":53,"value":176},{"type":47,"tag":103,"props":555,"children":556},{"style":122},[557],{"type":53,"value":558}," tokens ",{"type":47,"tag":103,"props":560,"children":561},{"style":116},[562],{"type":53,"value":186},{"type":47,"tag":103,"props":564,"children":565},{"style":116},[566],{"type":53,"value":191},{"type":47,"tag":103,"props":568,"children":569},{"style":194},[570],{"type":53,"value":571}," StringKeyspace",{"type":47,"tag":103,"props":573,"children":574},{"style":116},[575],{"type":53,"value":576},"\u003C{",{"type":47,"tag":103,"props":578,"children":579},{"style":231},[580],{"type":53,"value":581}," tokenId",{"type":47,"tag":103,"props":583,"children":584},{"style":116},[585],{"type":53,"value":239},{"type":47,"tag":103,"props":587,"children":589},{"style":588},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[590],{"type":53,"value":591}," string",{"type":47,"tag":103,"props":593,"children":594},{"style":116},[595],{"type":53,"value":596}," }>",{"type":47,"tag":103,"props":598,"children":599},{"style":122},[600],{"type":53,"value":601},"(cluster",{"type":47,"tag":103,"props":603,"children":604},{"style":116},[605],{"type":53,"value":219},{"type":47,"tag":103,"props":607,"children":608},{"style":116},[609],{"type":53,"value":224},{"type":47,"tag":103,"props":611,"children":613},{"class":105,"line":612},15,[614,619,623,627,632,636],{"type":47,"tag":103,"props":615,"children":616},{"style":231},[617],{"type":53,"value":618},"  keyPattern",{"type":47,"tag":103,"props":620,"children":621},{"style":116},[622],{"type":53,"value":239},{"type":47,"tag":103,"props":624,"children":625},{"style":116},[626],{"type":53,"value":140},{"type":47,"tag":103,"props":628,"children":629},{"style":143},[630],{"type":53,"value":631},"token\u002F:tokenId",{"type":47,"tag":103,"props":633,"children":634},{"style":116},[635],{"type":53,"value":151},{"type":47,"tag":103,"props":637,"children":638},{"style":116},[639],{"type":53,"value":257},{"type":47,"tag":103,"props":641,"children":643},{"class":105,"line":642},16,[644,649,653,658,662,668,673,678,682],{"type":47,"tag":103,"props":645,"children":646},{"style":231},[647],{"type":53,"value":648},"  defaultExpiry",{"type":47,"tag":103,"props":650,"children":651},{"style":116},[652],{"type":53,"value":239},{"type":47,"tag":103,"props":654,"children":655},{"style":194},[656],{"type":53,"value":657}," expireIn",{"type":47,"tag":103,"props":659,"children":660},{"style":122},[661],{"type":53,"value":201},{"type":47,"tag":103,"props":663,"children":665},{"style":664},"--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C",[666],{"type":53,"value":667},"3600",{"type":47,"tag":103,"props":669,"children":670},{"style":116},[671],{"type":53,"value":672}," *",{"type":47,"tag":103,"props":674,"children":675},{"style":664},[676],{"type":53,"value":677}," 1000",{"type":47,"tag":103,"props":679,"children":680},{"style":122},[681],{"type":53,"value":270},{"type":47,"tag":103,"props":683,"children":684},{"style":116},[685],{"type":53,"value":257},{"type":47,"tag":103,"props":687,"children":689},{"class":105,"line":688},17,[690,694,698],{"type":47,"tag":103,"props":691,"children":692},{"style":116},[693],{"type":53,"value":265},{"type":47,"tag":103,"props":695,"children":696},{"style":122},[697],{"type":53,"value":270},{"type":47,"tag":103,"props":699,"children":700},{"style":116},[701],{"type":53,"value":156},{"type":47,"tag":103,"props":703,"children":705},{"class":105,"line":704},18,[706,711,716,720,725,729,734,738,742,746,751,755,760,764,769,773,777],{"type":47,"tag":103,"props":707,"children":708},{"style":110},[709],{"type":53,"value":710},"await",{"type":47,"tag":103,"props":712,"children":713},{"style":122},[714],{"type":53,"value":715}," tokens",{"type":47,"tag":103,"props":717,"children":718},{"style":116},[719],{"type":53,"value":349},{"type":47,"tag":103,"props":721,"children":722},{"style":194},[723],{"type":53,"value":724},"set",{"type":47,"tag":103,"props":726,"children":727},{"style":122},[728],{"type":53,"value":201},{"type":47,"tag":103,"props":730,"children":731},{"style":116},[732],{"type":53,"value":733},"{",{"type":47,"tag":103,"props":735,"children":736},{"style":231},[737],{"type":53,"value":581},{"type":47,"tag":103,"props":739,"children":740},{"style":116},[741],{"type":53,"value":239},{"type":47,"tag":103,"props":743,"children":744},{"style":116},[745],{"type":53,"value":140},{"type":47,"tag":103,"props":747,"children":748},{"style":143},[749],{"type":53,"value":750},"abc",{"type":47,"tag":103,"props":752,"children":753},{"style":116},[754],{"type":53,"value":151},{"type":47,"tag":103,"props":756,"children":757},{"style":116},[758],{"type":53,"value":759}," },",{"type":47,"tag":103,"props":761,"children":762},{"style":116},[763],{"type":53,"value":140},{"type":47,"tag":103,"props":765,"children":766},{"style":143},[767],{"type":53,"value":768},"value",{"type":47,"tag":103,"props":770,"children":771},{"style":116},[772],{"type":53,"value":151},{"type":47,"tag":103,"props":774,"children":775},{"style":122},[776],{"type":53,"value":270},{"type":47,"tag":103,"props":778,"children":779},{"style":116},[780],{"type":53,"value":156},{"type":47,"tag":103,"props":782,"children":784},{"class":105,"line":783},19,[785,789,794,798,803,807,811,816,820,824,828,832,836,840,844,848,852,857],{"type":47,"tag":103,"props":786,"children":787},{"style":173},[788],{"type":53,"value":176},{"type":47,"tag":103,"props":790,"children":791},{"style":122},[792],{"type":53,"value":793}," val ",{"type":47,"tag":103,"props":795,"children":796},{"style":116},[797],{"type":53,"value":186},{"type":47,"tag":103,"props":799,"children":800},{"style":110},[801],{"type":53,"value":802}," await",{"type":47,"tag":103,"props":804,"children":805},{"style":122},[806],{"type":53,"value":715},{"type":47,"tag":103,"props":808,"children":809},{"style":116},[810],{"type":53,"value":349},{"type":47,"tag":103,"props":812,"children":813},{"style":194},[814],{"type":53,"value":815},"get",{"type":47,"tag":103,"props":817,"children":818},{"style":122},[819],{"type":53,"value":201},{"type":47,"tag":103,"props":821,"children":822},{"style":116},[823],{"type":53,"value":733},{"type":47,"tag":103,"props":825,"children":826},{"style":231},[827],{"type":53,"value":581},{"type":47,"tag":103,"props":829,"children":830},{"style":116},[831],{"type":53,"value":239},{"type":47,"tag":103,"props":833,"children":834},{"style":116},[835],{"type":53,"value":140},{"type":47,"tag":103,"props":837,"children":838},{"style":143},[839],{"type":53,"value":750},{"type":47,"tag":103,"props":841,"children":842},{"style":116},[843],{"type":53,"value":151},{"type":47,"tag":103,"props":845,"children":846},{"style":116},[847],{"type":53,"value":130},{"type":47,"tag":103,"props":849,"children":850},{"style":122},[851],{"type":53,"value":270},{"type":47,"tag":103,"props":853,"children":854},{"style":116},[855],{"type":53,"value":856},";",{"type":47,"tag":103,"props":858,"children":859},{"style":542},[860],{"type":53,"value":861}," \u002F\u002F undefined on miss\n",{"type":47,"tag":103,"props":863,"children":865},{"class":105,"line":864},20,[866],{"type":47,"tag":103,"props":867,"children":868},{"emptyLinePlaceholder":163},[869],{"type":53,"value":166},{"type":47,"tag":103,"props":871,"children":873},{"class":105,"line":872},21,[874],{"type":47,"tag":103,"props":875,"children":876},{"style":542},[877],{"type":53,"value":878},"\u002F\u002F Integers (atomic counters)\n",{"type":47,"tag":103,"props":880,"children":882},{"class":105,"line":881},22,[883,887,892,896,900,905,909,914,918,922,926,930,934],{"type":47,"tag":103,"props":884,"children":885},{"style":173},[886],{"type":53,"value":176},{"type":47,"tag":103,"props":888,"children":889},{"style":122},[890],{"type":53,"value":891}," counters ",{"type":47,"tag":103,"props":893,"children":894},{"style":116},[895],{"type":53,"value":186},{"type":47,"tag":103,"props":897,"children":898},{"style":116},[899],{"type":53,"value":191},{"type":47,"tag":103,"props":901,"children":902},{"style":194},[903],{"type":53,"value":904}," IntKeyspace",{"type":47,"tag":103,"props":906,"children":907},{"style":116},[908],{"type":53,"value":576},{"type":47,"tag":103,"props":910,"children":911},{"style":231},[912],{"type":53,"value":913}," userId",{"type":47,"tag":103,"props":915,"children":916},{"style":116},[917],{"type":53,"value":239},{"type":47,"tag":103,"props":919,"children":920},{"style":588},[921],{"type":53,"value":591},{"type":47,"tag":103,"props":923,"children":924},{"style":116},[925],{"type":53,"value":596},{"type":47,"tag":103,"props":927,"children":928},{"style":122},[929],{"type":53,"value":601},{"type":47,"tag":103,"props":931,"children":932},{"style":116},[933],{"type":53,"value":219},{"type":47,"tag":103,"props":935,"children":936},{"style":116},[937],{"type":53,"value":224},{"type":47,"tag":103,"props":939,"children":941},{"class":105,"line":940},23,[942,946,950,954,959,963],{"type":47,"tag":103,"props":943,"children":944},{"style":231},[945],{"type":53,"value":618},{"type":47,"tag":103,"props":947,"children":948},{"style":116},[949],{"type":53,"value":239},{"type":47,"tag":103,"props":951,"children":952},{"style":116},[953],{"type":53,"value":140},{"type":47,"tag":103,"props":955,"children":956},{"style":143},[957],{"type":53,"value":958},"requests\u002F:userId",{"type":47,"tag":103,"props":960,"children":961},{"style":116},[962],{"type":53,"value":151},{"type":47,"tag":103,"props":964,"children":965},{"style":116},[966],{"type":53,"value":257},{"type":47,"tag":103,"props":968,"children":970},{"class":105,"line":969},24,[971,975,979,983,987,992,996,1000,1004],{"type":47,"tag":103,"props":972,"children":973},{"style":231},[974],{"type":53,"value":648},{"type":47,"tag":103,"props":976,"children":977},{"style":116},[978],{"type":53,"value":239},{"type":47,"tag":103,"props":980,"children":981},{"style":194},[982],{"type":53,"value":657},{"type":47,"tag":103,"props":984,"children":985},{"style":122},[986],{"type":53,"value":201},{"type":47,"tag":103,"props":988,"children":989},{"style":664},[990],{"type":53,"value":991},"10",{"type":47,"tag":103,"props":993,"children":994},{"style":116},[995],{"type":53,"value":672},{"type":47,"tag":103,"props":997,"children":998},{"style":664},[999],{"type":53,"value":677},{"type":47,"tag":103,"props":1001,"children":1002},{"style":122},[1003],{"type":53,"value":270},{"type":47,"tag":103,"props":1005,"children":1006},{"style":116},[1007],{"type":53,"value":257},{"type":47,"tag":103,"props":1009,"children":1011},{"class":105,"line":1010},25,[1012,1016,1020],{"type":47,"tag":103,"props":1013,"children":1014},{"style":116},[1015],{"type":53,"value":265},{"type":47,"tag":103,"props":1017,"children":1018},{"style":122},[1019],{"type":53,"value":270},{"type":47,"tag":103,"props":1021,"children":1022},{"style":116},[1023],{"type":53,"value":156},{"type":47,"tag":103,"props":1025,"children":1026},{"class":105,"line":27},[1027,1031,1036,1040,1044,1049,1053,1058,1062,1066,1070,1074,1078,1083,1087,1091,1096,1100],{"type":47,"tag":103,"props":1028,"children":1029},{"style":173},[1030],{"type":53,"value":176},{"type":47,"tag":103,"props":1032,"children":1033},{"style":122},[1034],{"type":53,"value":1035}," count ",{"type":47,"tag":103,"props":1037,"children":1038},{"style":116},[1039],{"type":53,"value":186},{"type":47,"tag":103,"props":1041,"children":1042},{"style":110},[1043],{"type":53,"value":802},{"type":47,"tag":103,"props":1045,"children":1046},{"style":122},[1047],{"type":53,"value":1048}," counters",{"type":47,"tag":103,"props":1050,"children":1051},{"style":116},[1052],{"type":53,"value":349},{"type":47,"tag":103,"props":1054,"children":1055},{"style":194},[1056],{"type":53,"value":1057},"increment",{"type":47,"tag":103,"props":1059,"children":1060},{"style":122},[1061],{"type":53,"value":201},{"type":47,"tag":103,"props":1063,"children":1064},{"style":116},[1065],{"type":53,"value":733},{"type":47,"tag":103,"props":1067,"children":1068},{"style":231},[1069],{"type":53,"value":913},{"type":47,"tag":103,"props":1071,"children":1072},{"style":116},[1073],{"type":53,"value":239},{"type":47,"tag":103,"props":1075,"children":1076},{"style":116},[1077],{"type":53,"value":140},{"type":47,"tag":103,"props":1079,"children":1080},{"style":143},[1081],{"type":53,"value":1082},"user123",{"type":47,"tag":103,"props":1084,"children":1085},{"style":116},[1086],{"type":53,"value":151},{"type":47,"tag":103,"props":1088,"children":1089},{"style":116},[1090],{"type":53,"value":759},{"type":47,"tag":103,"props":1092,"children":1093},{"style":664},[1094],{"type":53,"value":1095}," 1",{"type":47,"tag":103,"props":1097,"children":1098},{"style":122},[1099],{"type":53,"value":270},{"type":47,"tag":103,"props":1101,"children":1102},{"style":116},[1103],{"type":53,"value":156},{"type":47,"tag":103,"props":1105,"children":1107},{"class":105,"line":1106},27,[1108],{"type":47,"tag":103,"props":1109,"children":1110},{"emptyLinePlaceholder":163},[1111],{"type":53,"value":166},{"type":47,"tag":103,"props":1113,"children":1115},{"class":105,"line":1114},28,[1116],{"type":47,"tag":103,"props":1117,"children":1118},{"style":542},[1119],{"type":53,"value":1120},"\u002F\u002F Structs (JSON)\n",{"type":47,"tag":103,"props":1122,"children":1124},{"class":105,"line":1123},29,[1125,1130,1135,1139,1144,1148,1152,1156,1161,1165,1169,1173],{"type":47,"tag":103,"props":1126,"children":1127},{"style":173},[1128],{"type":53,"value":1129},"interface",{"type":47,"tag":103,"props":1131,"children":1132},{"style":588},[1133],{"type":53,"value":1134}," UserProfile",{"type":47,"tag":103,"props":1136,"children":1137},{"style":116},[1138],{"type":53,"value":119},{"type":47,"tag":103,"props":1140,"children":1141},{"style":231},[1142],{"type":53,"value":1143}," name",{"type":47,"tag":103,"props":1145,"children":1146},{"style":116},[1147],{"type":53,"value":239},{"type":47,"tag":103,"props":1149,"children":1150},{"style":588},[1151],{"type":53,"value":591},{"type":47,"tag":103,"props":1153,"children":1154},{"style":116},[1155],{"type":53,"value":856},{"type":47,"tag":103,"props":1157,"children":1158},{"style":231},[1159],{"type":53,"value":1160}," email",{"type":47,"tag":103,"props":1162,"children":1163},{"style":116},[1164],{"type":53,"value":239},{"type":47,"tag":103,"props":1166,"children":1167},{"style":588},[1168],{"type":53,"value":591},{"type":47,"tag":103,"props":1170,"children":1171},{"style":116},[1172],{"type":53,"value":856},{"type":47,"tag":103,"props":1174,"children":1175},{"style":116},[1176],{"type":53,"value":1177}," }\n",{"type":47,"tag":103,"props":1179,"children":1181},{"class":105,"line":1180},30,[1182,1186,1191,1195,1199,1204,1208,1212,1216,1220,1224,1228,1233,1237,1241],{"type":47,"tag":103,"props":1183,"children":1184},{"style":173},[1185],{"type":53,"value":176},{"type":47,"tag":103,"props":1187,"children":1188},{"style":122},[1189],{"type":53,"value":1190}," profiles ",{"type":47,"tag":103,"props":1192,"children":1193},{"style":116},[1194],{"type":53,"value":186},{"type":47,"tag":103,"props":1196,"children":1197},{"style":116},[1198],{"type":53,"value":191},{"type":47,"tag":103,"props":1200,"children":1201},{"style":194},[1202],{"type":53,"value":1203}," StructKeyspace",{"type":47,"tag":103,"props":1205,"children":1206},{"style":116},[1207],{"type":53,"value":576},{"type":47,"tag":103,"props":1209,"children":1210},{"style":231},[1211],{"type":53,"value":913},{"type":47,"tag":103,"props":1213,"children":1214},{"style":116},[1215],{"type":53,"value":239},{"type":47,"tag":103,"props":1217,"children":1218},{"style":588},[1219],{"type":53,"value":591},{"type":47,"tag":103,"props":1221,"children":1222},{"style":116},[1223],{"type":53,"value":759},{"type":47,"tag":103,"props":1225,"children":1226},{"style":588},[1227],{"type":53,"value":1134},{"type":47,"tag":103,"props":1229,"children":1230},{"style":116},[1231],{"type":53,"value":1232},">",{"type":47,"tag":103,"props":1234,"children":1235},{"style":122},[1236],{"type":53,"value":601},{"type":47,"tag":103,"props":1238,"children":1239},{"style":116},[1240],{"type":53,"value":219},{"type":47,"tag":103,"props":1242,"children":1243},{"style":116},[1244],{"type":53,"value":224},{"type":47,"tag":103,"props":1246,"children":1248},{"class":105,"line":1247},31,[1249,1253,1257,1261,1266,1270],{"type":47,"tag":103,"props":1250,"children":1251},{"style":231},[1252],{"type":53,"value":618},{"type":47,"tag":103,"props":1254,"children":1255},{"style":116},[1256],{"type":53,"value":239},{"type":47,"tag":103,"props":1258,"children":1259},{"style":116},[1260],{"type":53,"value":140},{"type":47,"tag":103,"props":1262,"children":1263},{"style":143},[1264],{"type":53,"value":1265},"profile\u002F:userId",{"type":47,"tag":103,"props":1267,"children":1268},{"style":116},[1269],{"type":53,"value":151},{"type":47,"tag":103,"props":1271,"children":1272},{"style":116},[1273],{"type":53,"value":257},{"type":47,"tag":103,"props":1275,"children":1277},{"class":105,"line":1276},32,[1278,1282,1286,1290,1294,1298,1302,1306,1310],{"type":47,"tag":103,"props":1279,"children":1280},{"style":231},[1281],{"type":53,"value":648},{"type":47,"tag":103,"props":1283,"children":1284},{"style":116},[1285],{"type":53,"value":239},{"type":47,"tag":103,"props":1287,"children":1288},{"style":194},[1289],{"type":53,"value":657},{"type":47,"tag":103,"props":1291,"children":1292},{"style":122},[1293],{"type":53,"value":201},{"type":47,"tag":103,"props":1295,"children":1296},{"style":664},[1297],{"type":53,"value":667},{"type":47,"tag":103,"props":1299,"children":1300},{"style":116},[1301],{"type":53,"value":672},{"type":47,"tag":103,"props":1303,"children":1304},{"style":664},[1305],{"type":53,"value":677},{"type":47,"tag":103,"props":1307,"children":1308},{"style":122},[1309],{"type":53,"value":270},{"type":47,"tag":103,"props":1311,"children":1312},{"style":116},[1313],{"type":53,"value":257},{"type":47,"tag":103,"props":1315,"children":1317},{"class":105,"line":1316},33,[1318,1322,1326],{"type":47,"tag":103,"props":1319,"children":1320},{"style":116},[1321],{"type":53,"value":265},{"type":47,"tag":103,"props":1323,"children":1324},{"style":122},[1325],{"type":53,"value":270},{"type":47,"tag":103,"props":1327,"children":1328},{"style":116},[1329],{"type":53,"value":156},{"type":47,"tag":103,"props":1331,"children":1333},{"class":105,"line":1332},34,[1334,1338,1343,1347,1351,1355,1359,1363,1367,1371,1376,1380,1384,1388,1392,1396,1400,1405,1409,1413,1417,1421,1425,1430,1434,1438,1442],{"type":47,"tag":103,"props":1335,"children":1336},{"style":110},[1337],{"type":53,"value":710},{"type":47,"tag":103,"props":1339,"children":1340},{"style":122},[1341],{"type":53,"value":1342}," profiles",{"type":47,"tag":103,"props":1344,"children":1345},{"style":116},[1346],{"type":53,"value":349},{"type":47,"tag":103,"props":1348,"children":1349},{"style":194},[1350],{"type":53,"value":724},{"type":47,"tag":103,"props":1352,"children":1353},{"style":122},[1354],{"type":53,"value":201},{"type":47,"tag":103,"props":1356,"children":1357},{"style":116},[1358],{"type":53,"value":733},{"type":47,"tag":103,"props":1360,"children":1361},{"style":231},[1362],{"type":53,"value":913},{"type":47,"tag":103,"props":1364,"children":1365},{"style":116},[1366],{"type":53,"value":239},{"type":47,"tag":103,"props":1368,"children":1369},{"style":116},[1370],{"type":53,"value":140},{"type":47,"tag":103,"props":1372,"children":1373},{"style":143},[1374],{"type":53,"value":1375},"123",{"type":47,"tag":103,"props":1377,"children":1378},{"style":116},[1379],{"type":53,"value":151},{"type":47,"tag":103,"props":1381,"children":1382},{"style":116},[1383],{"type":53,"value":759},{"type":47,"tag":103,"props":1385,"children":1386},{"style":116},[1387],{"type":53,"value":119},{"type":47,"tag":103,"props":1389,"children":1390},{"style":231},[1391],{"type":53,"value":1143},{"type":47,"tag":103,"props":1393,"children":1394},{"style":116},[1395],{"type":53,"value":239},{"type":47,"tag":103,"props":1397,"children":1398},{"style":116},[1399],{"type":53,"value":140},{"type":47,"tag":103,"props":1401,"children":1402},{"style":143},[1403],{"type":53,"value":1404},"Alice",{"type":47,"tag":103,"props":1406,"children":1407},{"style":116},[1408],{"type":53,"value":151},{"type":47,"tag":103,"props":1410,"children":1411},{"style":116},[1412],{"type":53,"value":219},{"type":47,"tag":103,"props":1414,"children":1415},{"style":231},[1416],{"type":53,"value":1160},{"type":47,"tag":103,"props":1418,"children":1419},{"style":116},[1420],{"type":53,"value":239},{"type":47,"tag":103,"props":1422,"children":1423},{"style":116},[1424],{"type":53,"value":140},{"type":47,"tag":103,"props":1426,"children":1427},{"style":143},[1428],{"type":53,"value":1429},"alice@example.com",{"type":47,"tag":103,"props":1431,"children":1432},{"style":116},[1433],{"type":53,"value":151},{"type":47,"tag":103,"props":1435,"children":1436},{"style":116},[1437],{"type":53,"value":130},{"type":47,"tag":103,"props":1439,"children":1440},{"style":122},[1441],{"type":53,"value":270},{"type":47,"tag":103,"props":1443,"children":1444},{"style":116},[1445],{"type":53,"value":156},{"type":47,"tag":103,"props":1447,"children":1449},{"class":105,"line":1448},35,[1450],{"type":47,"tag":103,"props":1451,"children":1452},{"emptyLinePlaceholder":163},[1453],{"type":53,"value":166},{"type":47,"tag":103,"props":1455,"children":1457},{"class":105,"line":1456},36,[1458],{"type":47,"tag":103,"props":1459,"children":1460},{"style":542},[1461],{"type":53,"value":1462},"\u002F\u002F Lists\n",{"type":47,"tag":103,"props":1464,"children":1466},{"class":105,"line":1465},37,[1467,1471,1476,1480,1484,1489,1493,1497,1501,1505,1509,1513,1517],{"type":47,"tag":103,"props":1468,"children":1469},{"style":173},[1470],{"type":53,"value":176},{"type":47,"tag":103,"props":1472,"children":1473},{"style":122},[1474],{"type":53,"value":1475}," recent ",{"type":47,"tag":103,"props":1477,"children":1478},{"style":116},[1479],{"type":53,"value":186},{"type":47,"tag":103,"props":1481,"children":1482},{"style":116},[1483],{"type":53,"value":191},{"type":47,"tag":103,"props":1485,"children":1486},{"style":194},[1487],{"type":53,"value":1488}," StringListKeyspace",{"type":47,"tag":103,"props":1490,"children":1491},{"style":116},[1492],{"type":53,"value":576},{"type":47,"tag":103,"props":1494,"children":1495},{"style":231},[1496],{"type":53,"value":913},{"type":47,"tag":103,"props":1498,"children":1499},{"style":116},[1500],{"type":53,"value":239},{"type":47,"tag":103,"props":1502,"children":1503},{"style":588},[1504],{"type":53,"value":591},{"type":47,"tag":103,"props":1506,"children":1507},{"style":116},[1508],{"type":53,"value":596},{"type":47,"tag":103,"props":1510,"children":1511},{"style":122},[1512],{"type":53,"value":601},{"type":47,"tag":103,"props":1514,"children":1515},{"style":116},[1516],{"type":53,"value":219},{"type":47,"tag":103,"props":1518,"children":1519},{"style":116},[1520],{"type":53,"value":224},{"type":47,"tag":103,"props":1522,"children":1524},{"class":105,"line":1523},38,[1525,1529,1533,1537,1542,1546],{"type":47,"tag":103,"props":1526,"children":1527},{"style":231},[1528],{"type":53,"value":618},{"type":47,"tag":103,"props":1530,"children":1531},{"style":116},[1532],{"type":53,"value":239},{"type":47,"tag":103,"props":1534,"children":1535},{"style":116},[1536],{"type":53,"value":140},{"type":47,"tag":103,"props":1538,"children":1539},{"style":143},[1540],{"type":53,"value":1541},"recent\u002F:userId",{"type":47,"tag":103,"props":1543,"children":1544},{"style":116},[1545],{"type":53,"value":151},{"type":47,"tag":103,"props":1547,"children":1548},{"style":116},[1549],{"type":53,"value":257},{"type":47,"tag":103,"props":1551,"children":1553},{"class":105,"line":1552},39,[1554,1558,1562],{"type":47,"tag":103,"props":1555,"children":1556},{"style":116},[1557],{"type":53,"value":265},{"type":47,"tag":103,"props":1559,"children":1560},{"style":122},[1561],{"type":53,"value":270},{"type":47,"tag":103,"props":1563,"children":1564},{"style":116},[1565],{"type":53,"value":156},{"type":47,"tag":103,"props":1567,"children":1569},{"class":105,"line":1568},40,[1570,1574,1579,1583,1588,1592,1596,1600,1604,1608,1612,1616,1620,1624,1629,1633,1637,1641,1646,1650,1654],{"type":47,"tag":103,"props":1571,"children":1572},{"style":110},[1573],{"type":53,"value":710},{"type":47,"tag":103,"props":1575,"children":1576},{"style":122},[1577],{"type":53,"value":1578}," recent",{"type":47,"tag":103,"props":1580,"children":1581},{"style":116},[1582],{"type":53,"value":349},{"type":47,"tag":103,"props":1584,"children":1585},{"style":194},[1586],{"type":53,"value":1587},"pushRight",{"type":47,"tag":103,"props":1589,"children":1590},{"style":122},[1591],{"type":53,"value":201},{"type":47,"tag":103,"props":1593,"children":1594},{"style":116},[1595],{"type":53,"value":733},{"type":47,"tag":103,"props":1597,"children":1598},{"style":231},[1599],{"type":53,"value":913},{"type":47,"tag":103,"props":1601,"children":1602},{"style":116},[1603],{"type":53,"value":239},{"type":47,"tag":103,"props":1605,"children":1606},{"style":116},[1607],{"type":53,"value":140},{"type":47,"tag":103,"props":1609,"children":1610},{"style":143},[1611],{"type":53,"value":1082},{"type":47,"tag":103,"props":1613,"children":1614},{"style":116},[1615],{"type":53,"value":151},{"type":47,"tag":103,"props":1617,"children":1618},{"style":116},[1619],{"type":53,"value":759},{"type":47,"tag":103,"props":1621,"children":1622},{"style":116},[1623],{"type":53,"value":140},{"type":47,"tag":103,"props":1625,"children":1626},{"style":143},[1627],{"type":53,"value":1628},"item1",{"type":47,"tag":103,"props":1630,"children":1631},{"style":116},[1632],{"type":53,"value":151},{"type":47,"tag":103,"props":1634,"children":1635},{"style":116},[1636],{"type":53,"value":219},{"type":47,"tag":103,"props":1638,"children":1639},{"style":116},[1640],{"type":53,"value":140},{"type":47,"tag":103,"props":1642,"children":1643},{"style":143},[1644],{"type":53,"value":1645},"item2",{"type":47,"tag":103,"props":1647,"children":1648},{"style":116},[1649],{"type":53,"value":151},{"type":47,"tag":103,"props":1651,"children":1652},{"style":122},[1653],{"type":53,"value":270},{"type":47,"tag":103,"props":1655,"children":1656},{"style":116},[1657],{"type":53,"value":156},{"type":47,"tag":103,"props":1659,"children":1661},{"class":105,"line":1660},41,[1662],{"type":47,"tag":103,"props":1663,"children":1664},{"emptyLinePlaceholder":163},[1665],{"type":53,"value":166},{"type":47,"tag":103,"props":1667,"children":1669},{"class":105,"line":1668},42,[1670],{"type":47,"tag":103,"props":1671,"children":1672},{"style":542},[1673],{"type":53,"value":1674},"\u002F\u002F Sets\n",{"type":47,"tag":103,"props":1676,"children":1678},{"class":105,"line":1677},43,[1679,1683,1688,1692,1696,1701,1705,1710,1714,1718,1722,1726,1730],{"type":47,"tag":103,"props":1680,"children":1681},{"style":173},[1682],{"type":53,"value":176},{"type":47,"tag":103,"props":1684,"children":1685},{"style":122},[1686],{"type":53,"value":1687}," tags ",{"type":47,"tag":103,"props":1689,"children":1690},{"style":116},[1691],{"type":53,"value":186},{"type":47,"tag":103,"props":1693,"children":1694},{"style":116},[1695],{"type":53,"value":191},{"type":47,"tag":103,"props":1697,"children":1698},{"style":194},[1699],{"type":53,"value":1700}," StringSetKeyspace",{"type":47,"tag":103,"props":1702,"children":1703},{"style":116},[1704],{"type":53,"value":576},{"type":47,"tag":103,"props":1706,"children":1707},{"style":231},[1708],{"type":53,"value":1709}," articleId",{"type":47,"tag":103,"props":1711,"children":1712},{"style":116},[1713],{"type":53,"value":239},{"type":47,"tag":103,"props":1715,"children":1716},{"style":588},[1717],{"type":53,"value":591},{"type":47,"tag":103,"props":1719,"children":1720},{"style":116},[1721],{"type":53,"value":596},{"type":47,"tag":103,"props":1723,"children":1724},{"style":122},[1725],{"type":53,"value":601},{"type":47,"tag":103,"props":1727,"children":1728},{"style":116},[1729],{"type":53,"value":219},{"type":47,"tag":103,"props":1731,"children":1732},{"style":116},[1733],{"type":53,"value":224},{"type":47,"tag":103,"props":1735,"children":1737},{"class":105,"line":1736},44,[1738,1742,1746,1750,1755,1759],{"type":47,"tag":103,"props":1739,"children":1740},{"style":231},[1741],{"type":53,"value":618},{"type":47,"tag":103,"props":1743,"children":1744},{"style":116},[1745],{"type":53,"value":239},{"type":47,"tag":103,"props":1747,"children":1748},{"style":116},[1749],{"type":53,"value":140},{"type":47,"tag":103,"props":1751,"children":1752},{"style":143},[1753],{"type":53,"value":1754},"tags\u002F:articleId",{"type":47,"tag":103,"props":1756,"children":1757},{"style":116},[1758],{"type":53,"value":151},{"type":47,"tag":103,"props":1760,"children":1761},{"style":116},[1762],{"type":53,"value":257},{"type":47,"tag":103,"props":1764,"children":1766},{"class":105,"line":1765},45,[1767,1771,1775],{"type":47,"tag":103,"props":1768,"children":1769},{"style":116},[1770],{"type":53,"value":265},{"type":47,"tag":103,"props":1772,"children":1773},{"style":122},[1774],{"type":53,"value":270},{"type":47,"tag":103,"props":1776,"children":1777},{"style":116},[1778],{"type":53,"value":156},{"type":47,"tag":103,"props":1780,"children":1782},{"class":105,"line":1781},46,[1783,1787,1792,1796,1801,1805,1809,1813,1817,1821,1826,1830,1834,1838,1842,1846,1850,1854,1858,1862,1866],{"type":47,"tag":103,"props":1784,"children":1785},{"style":110},[1786],{"type":53,"value":710},{"type":47,"tag":103,"props":1788,"children":1789},{"style":122},[1790],{"type":53,"value":1791}," tags",{"type":47,"tag":103,"props":1793,"children":1794},{"style":116},[1795],{"type":53,"value":349},{"type":47,"tag":103,"props":1797,"children":1798},{"style":194},[1799],{"type":53,"value":1800},"add",{"type":47,"tag":103,"props":1802,"children":1803},{"style":122},[1804],{"type":53,"value":201},{"type":47,"tag":103,"props":1806,"children":1807},{"style":116},[1808],{"type":53,"value":733},{"type":47,"tag":103,"props":1810,"children":1811},{"style":231},[1812],{"type":53,"value":1709},{"type":47,"tag":103,"props":1814,"children":1815},{"style":116},[1816],{"type":53,"value":239},{"type":47,"tag":103,"props":1818,"children":1819},{"style":116},[1820],{"type":53,"value":140},{"type":47,"tag":103,"props":1822,"children":1823},{"style":143},[1824],{"type":53,"value":1825},"post1",{"type":47,"tag":103,"props":1827,"children":1828},{"style":116},[1829],{"type":53,"value":151},{"type":47,"tag":103,"props":1831,"children":1832},{"style":116},[1833],{"type":53,"value":759},{"type":47,"tag":103,"props":1835,"children":1836},{"style":116},[1837],{"type":53,"value":140},{"type":47,"tag":103,"props":1839,"children":1840},{"style":143},[1841],{"type":53,"value":19},{"type":47,"tag":103,"props":1843,"children":1844},{"style":116},[1845],{"type":53,"value":151},{"type":47,"tag":103,"props":1847,"children":1848},{"style":116},[1849],{"type":53,"value":219},{"type":47,"tag":103,"props":1851,"children":1852},{"style":116},[1853],{"type":53,"value":140},{"type":47,"tag":103,"props":1855,"children":1856},{"style":143},[1857],{"type":53,"value":8},{"type":47,"tag":103,"props":1859,"children":1860},{"style":116},[1861],{"type":53,"value":151},{"type":47,"tag":103,"props":1863,"children":1864},{"style":122},[1865],{"type":53,"value":270},{"type":47,"tag":103,"props":1867,"children":1868},{"style":116},[1869],{"type":53,"value":156},{"type":47,"tag":103,"props":1871,"children":1873},{"class":105,"line":1872},47,[1874,1878,1883,1887,1891,1895,1899,1904,1908,1912,1916,1920,1924,1928,1932,1936,1940,1944,1948,1952],{"type":47,"tag":103,"props":1875,"children":1876},{"style":173},[1877],{"type":53,"value":176},{"type":47,"tag":103,"props":1879,"children":1880},{"style":122},[1881],{"type":53,"value":1882}," has ",{"type":47,"tag":103,"props":1884,"children":1885},{"style":116},[1886],{"type":53,"value":186},{"type":47,"tag":103,"props":1888,"children":1889},{"style":110},[1890],{"type":53,"value":802},{"type":47,"tag":103,"props":1892,"children":1893},{"style":122},[1894],{"type":53,"value":1791},{"type":47,"tag":103,"props":1896,"children":1897},{"style":116},[1898],{"type":53,"value":349},{"type":47,"tag":103,"props":1900,"children":1901},{"style":194},[1902],{"type":53,"value":1903},"contains",{"type":47,"tag":103,"props":1905,"children":1906},{"style":122},[1907],{"type":53,"value":201},{"type":47,"tag":103,"props":1909,"children":1910},{"style":116},[1911],{"type":53,"value":733},{"type":47,"tag":103,"props":1913,"children":1914},{"style":231},[1915],{"type":53,"value":1709},{"type":47,"tag":103,"props":1917,"children":1918},{"style":116},[1919],{"type":53,"value":239},{"type":47,"tag":103,"props":1921,"children":1922},{"style":116},[1923],{"type":53,"value":140},{"type":47,"tag":103,"props":1925,"children":1926},{"style":143},[1927],{"type":53,"value":1825},{"type":47,"tag":103,"props":1929,"children":1930},{"style":116},[1931],{"type":53,"value":151},{"type":47,"tag":103,"props":1933,"children":1934},{"style":116},[1935],{"type":53,"value":759},{"type":47,"tag":103,"props":1937,"children":1938},{"style":116},[1939],{"type":53,"value":140},{"type":47,"tag":103,"props":1941,"children":1942},{"style":143},[1943],{"type":53,"value":19},{"type":47,"tag":103,"props":1945,"children":1946},{"style":116},[1947],{"type":53,"value":151},{"type":47,"tag":103,"props":1949,"children":1950},{"style":122},[1951],{"type":53,"value":270},{"type":47,"tag":103,"props":1953,"children":1954},{"style":116},[1955],{"type":53,"value":156},{"type":47,"tag":86,"props":1957,"children":1959},{"id":1958},"multi-field-key-patterns",[1960],{"type":53,"value":1961},"Multi-field key patterns",{"type":47,"tag":93,"props":1963,"children":1965},{"className":95,"code":1964,"language":19,"meta":97,"style":97},"interface Key { userId: string; resourcePath: string; }\n\nconst requests = new IntKeyspace\u003CKey>(cluster, {\n  keyPattern: \"requests\u002F:userId\u002F:resourcePath\",\n  defaultExpiry: expireIn(10 * 1000),\n});\n",[1966],{"type":47,"tag":69,"props":1967,"children":1968},{"__ignoreMap":97},[1969,2022,2029,2079,2107,2146],{"type":47,"tag":103,"props":1970,"children":1971},{"class":105,"line":106},[1972,1976,1981,1985,1989,1993,1997,2001,2006,2010,2014,2018],{"type":47,"tag":103,"props":1973,"children":1974},{"style":173},[1975],{"type":53,"value":1129},{"type":47,"tag":103,"props":1977,"children":1978},{"style":588},[1979],{"type":53,"value":1980}," Key",{"type":47,"tag":103,"props":1982,"children":1983},{"style":116},[1984],{"type":53,"value":119},{"type":47,"tag":103,"props":1986,"children":1987},{"style":231},[1988],{"type":53,"value":913},{"type":47,"tag":103,"props":1990,"children":1991},{"style":116},[1992],{"type":53,"value":239},{"type":47,"tag":103,"props":1994,"children":1995},{"style":588},[1996],{"type":53,"value":591},{"type":47,"tag":103,"props":1998,"children":1999},{"style":116},[2000],{"type":53,"value":856},{"type":47,"tag":103,"props":2002,"children":2003},{"style":231},[2004],{"type":53,"value":2005}," resourcePath",{"type":47,"tag":103,"props":2007,"children":2008},{"style":116},[2009],{"type":53,"value":239},{"type":47,"tag":103,"props":2011,"children":2012},{"style":588},[2013],{"type":53,"value":591},{"type":47,"tag":103,"props":2015,"children":2016},{"style":116},[2017],{"type":53,"value":856},{"type":47,"tag":103,"props":2019,"children":2020},{"style":116},[2021],{"type":53,"value":1177},{"type":47,"tag":103,"props":2023,"children":2024},{"class":105,"line":159},[2025],{"type":47,"tag":103,"props":2026,"children":2027},{"emptyLinePlaceholder":163},[2028],{"type":53,"value":166},{"type":47,"tag":103,"props":2030,"children":2031},{"class":105,"line":169},[2032,2036,2041,2045,2049,2053,2058,2063,2067,2071,2075],{"type":47,"tag":103,"props":2033,"children":2034},{"style":173},[2035],{"type":53,"value":176},{"type":47,"tag":103,"props":2037,"children":2038},{"style":122},[2039],{"type":53,"value":2040}," requests ",{"type":47,"tag":103,"props":2042,"children":2043},{"style":116},[2044],{"type":53,"value":186},{"type":47,"tag":103,"props":2046,"children":2047},{"style":116},[2048],{"type":53,"value":191},{"type":47,"tag":103,"props":2050,"children":2051},{"style":194},[2052],{"type":53,"value":904},{"type":47,"tag":103,"props":2054,"children":2055},{"style":116},[2056],{"type":53,"value":2057},"\u003C",{"type":47,"tag":103,"props":2059,"children":2060},{"style":588},[2061],{"type":53,"value":2062},"Key",{"type":47,"tag":103,"props":2064,"children":2065},{"style":116},[2066],{"type":53,"value":1232},{"type":47,"tag":103,"props":2068,"children":2069},{"style":122},[2070],{"type":53,"value":601},{"type":47,"tag":103,"props":2072,"children":2073},{"style":116},[2074],{"type":53,"value":219},{"type":47,"tag":103,"props":2076,"children":2077},{"style":116},[2078],{"type":53,"value":224},{"type":47,"tag":103,"props":2080,"children":2081},{"class":105,"line":227},[2082,2086,2090,2094,2099,2103],{"type":47,"tag":103,"props":2083,"children":2084},{"style":231},[2085],{"type":53,"value":618},{"type":47,"tag":103,"props":2087,"children":2088},{"style":116},[2089],{"type":53,"value":239},{"type":47,"tag":103,"props":2091,"children":2092},{"style":116},[2093],{"type":53,"value":140},{"type":47,"tag":103,"props":2095,"children":2096},{"style":143},[2097],{"type":53,"value":2098},"requests\u002F:userId\u002F:resourcePath",{"type":47,"tag":103,"props":2100,"children":2101},{"style":116},[2102],{"type":53,"value":151},{"type":47,"tag":103,"props":2104,"children":2105},{"style":116},[2106],{"type":53,"value":257},{"type":47,"tag":103,"props":2108,"children":2109},{"class":105,"line":31},[2110,2114,2118,2122,2126,2130,2134,2138,2142],{"type":47,"tag":103,"props":2111,"children":2112},{"style":231},[2113],{"type":53,"value":648},{"type":47,"tag":103,"props":2115,"children":2116},{"style":116},[2117],{"type":53,"value":239},{"type":47,"tag":103,"props":2119,"children":2120},{"style":194},[2121],{"type":53,"value":657},{"type":47,"tag":103,"props":2123,"children":2124},{"style":122},[2125],{"type":53,"value":201},{"type":47,"tag":103,"props":2127,"children":2128},{"style":664},[2129],{"type":53,"value":991},{"type":47,"tag":103,"props":2131,"children":2132},{"style":116},[2133],{"type":53,"value":672},{"type":47,"tag":103,"props":2135,"children":2136},{"style":664},[2137],{"type":53,"value":677},{"type":47,"tag":103,"props":2139,"children":2140},{"style":122},[2141],{"type":53,"value":270},{"type":47,"tag":103,"props":2143,"children":2144},{"style":116},[2145],{"type":53,"value":257},{"type":47,"tag":103,"props":2147,"children":2148},{"class":105,"line":437},[2149,2153,2157],{"type":47,"tag":103,"props":2150,"children":2151},{"style":116},[2152],{"type":53,"value":265},{"type":47,"tag":103,"props":2154,"children":2155},{"style":122},[2156],{"type":53,"value":270},{"type":47,"tag":103,"props":2158,"children":2159},{"style":116},[2160],{"type":53,"value":156},{"type":47,"tag":86,"props":2162,"children":2164},{"id":2163},"expiry-helpers",[2165],{"type":53,"value":2166},"Expiry helpers",{"type":47,"tag":93,"props":2168,"children":2170},{"className":95,"code":2169,"language":19,"meta":97,"style":97},"import {\n  expireIn,          \u002F\u002F milliseconds\n  expireInSeconds,\n  expireInMinutes,\n  expireInHours,\n  expireDailyAt,     \u002F\u002F a specific UTC time each day\n  neverExpire,\n  keepTTL,           \u002F\u002F keep existing TTL when updating\n} from \"encore.dev\u002Fstorage\u002Fcache\";\n",[2171],{"type":47,"tag":69,"props":2172,"children":2173},{"__ignoreMap":97},[2174,2185,2201,2213,2225,2237,2254,2266,2283],{"type":47,"tag":103,"props":2175,"children":2176},{"class":105,"line":106},[2177,2181],{"type":47,"tag":103,"props":2178,"children":2179},{"style":110},[2180],{"type":53,"value":113},{"type":47,"tag":103,"props":2182,"children":2183},{"style":116},[2184],{"type":53,"value":224},{"type":47,"tag":103,"props":2186,"children":2187},{"class":105,"line":159},[2188,2192,2196],{"type":47,"tag":103,"props":2189,"children":2190},{"style":122},[2191],{"type":53,"value":495},{"type":47,"tag":103,"props":2193,"children":2194},{"style":116},[2195],{"type":53,"value":219},{"type":47,"tag":103,"props":2197,"children":2198},{"style":542},[2199],{"type":53,"value":2200},"          \u002F\u002F milliseconds\n",{"type":47,"tag":103,"props":2202,"children":2203},{"class":105,"line":169},[2204,2209],{"type":47,"tag":103,"props":2205,"children":2206},{"style":122},[2207],{"type":53,"value":2208},"  expireInSeconds",{"type":47,"tag":103,"props":2210,"children":2211},{"style":116},[2212],{"type":53,"value":257},{"type":47,"tag":103,"props":2214,"children":2215},{"class":105,"line":227},[2216,2221],{"type":47,"tag":103,"props":2217,"children":2218},{"style":122},[2219],{"type":53,"value":2220},"  expireInMinutes",{"type":47,"tag":103,"props":2222,"children":2223},{"style":116},[2224],{"type":53,"value":257},{"type":47,"tag":103,"props":2226,"children":2227},{"class":105,"line":31},[2228,2233],{"type":47,"tag":103,"props":2229,"children":2230},{"style":122},[2231],{"type":53,"value":2232},"  expireInHours",{"type":47,"tag":103,"props":2234,"children":2235},{"style":116},[2236],{"type":53,"value":257},{"type":47,"tag":103,"props":2238,"children":2239},{"class":105,"line":437},[2240,2245,2249],{"type":47,"tag":103,"props":2241,"children":2242},{"style":122},[2243],{"type":53,"value":2244},"  expireDailyAt",{"type":47,"tag":103,"props":2246,"children":2247},{"style":116},[2248],{"type":53,"value":219},{"type":47,"tag":103,"props":2250,"children":2251},{"style":542},[2252],{"type":53,"value":2253},"     \u002F\u002F a specific UTC time each day\n",{"type":47,"tag":103,"props":2255,"children":2256},{"class":105,"line":450},[2257,2262],{"type":47,"tag":103,"props":2258,"children":2259},{"style":122},[2260],{"type":53,"value":2261},"  neverExpire",{"type":47,"tag":103,"props":2263,"children":2264},{"style":116},[2265],{"type":53,"value":257},{"type":47,"tag":103,"props":2267,"children":2268},{"class":105,"line":463},[2269,2274,2278],{"type":47,"tag":103,"props":2270,"children":2271},{"style":122},[2272],{"type":53,"value":2273},"  keepTTL",{"type":47,"tag":103,"props":2275,"children":2276},{"style":116},[2277],{"type":53,"value":219},{"type":47,"tag":103,"props":2279,"children":2280},{"style":542},[2281],{"type":53,"value":2282},"           \u002F\u002F keep existing TTL when updating\n",{"type":47,"tag":103,"props":2284,"children":2285},{"class":105,"line":476},[2286,2290,2294,2298,2302,2306],{"type":47,"tag":103,"props":2287,"children":2288},{"style":116},[2289],{"type":53,"value":265},{"type":47,"tag":103,"props":2291,"children":2292},{"style":110},[2293],{"type":53,"value":135},{"type":47,"tag":103,"props":2295,"children":2296},{"style":116},[2297],{"type":53,"value":140},{"type":47,"tag":103,"props":2299,"children":2300},{"style":143},[2301],{"type":53,"value":146},{"type":47,"tag":103,"props":2303,"children":2304},{"style":116},[2305],{"type":53,"value":151},{"type":47,"tag":103,"props":2307,"children":2308},{"style":116},[2309],{"type":53,"value":156},{"type":47,"tag":86,"props":2311,"children":2313},{"id":2312},"write-options",[2314],{"type":53,"value":2315},"Write options",{"type":47,"tag":93,"props":2317,"children":2319},{"className":95,"code":2318,"language":19,"meta":97,"style":97},"await keyspace.set(key, value, { expiry: expireInMinutes(30) });\nawait keyspace.set(key, value, { expiry: keepTTL });\nawait keyspace.setIfNotExists(key, value);  \u002F\u002F throws CacheKeyExists if present\nawait keyspace.replace(key, value);          \u002F\u002F throws CacheMiss if absent\n",[2320],{"type":47,"tag":69,"props":2321,"children":2322},{"__ignoreMap":97},[2323,2405,2469,2511],{"type":47,"tag":103,"props":2324,"children":2325},{"class":105,"line":106},[2326,2330,2335,2339,2343,2348,2352,2357,2361,2365,2370,2374,2379,2383,2388,2393,2397,2401],{"type":47,"tag":103,"props":2327,"children":2328},{"style":110},[2329],{"type":53,"value":710},{"type":47,"tag":103,"props":2331,"children":2332},{"style":122},[2333],{"type":53,"value":2334}," keyspace",{"type":47,"tag":103,"props":2336,"children":2337},{"style":116},[2338],{"type":53,"value":349},{"type":47,"tag":103,"props":2340,"children":2341},{"style":194},[2342],{"type":53,"value":724},{"type":47,"tag":103,"props":2344,"children":2345},{"style":122},[2346],{"type":53,"value":2347},"(key",{"type":47,"tag":103,"props":2349,"children":2350},{"style":116},[2351],{"type":53,"value":219},{"type":47,"tag":103,"props":2353,"children":2354},{"style":122},[2355],{"type":53,"value":2356}," value",{"type":47,"tag":103,"props":2358,"children":2359},{"style":116},[2360],{"type":53,"value":219},{"type":47,"tag":103,"props":2362,"children":2363},{"style":116},[2364],{"type":53,"value":119},{"type":47,"tag":103,"props":2366,"children":2367},{"style":231},[2368],{"type":53,"value":2369}," expiry",{"type":47,"tag":103,"props":2371,"children":2372},{"style":116},[2373],{"type":53,"value":239},{"type":47,"tag":103,"props":2375,"children":2376},{"style":194},[2377],{"type":53,"value":2378}," expireInMinutes",{"type":47,"tag":103,"props":2380,"children":2381},{"style":122},[2382],{"type":53,"value":201},{"type":47,"tag":103,"props":2384,"children":2385},{"style":664},[2386],{"type":53,"value":2387},"30",{"type":47,"tag":103,"props":2389,"children":2390},{"style":122},[2391],{"type":53,"value":2392},") ",{"type":47,"tag":103,"props":2394,"children":2395},{"style":116},[2396],{"type":53,"value":265},{"type":47,"tag":103,"props":2398,"children":2399},{"style":122},[2400],{"type":53,"value":270},{"type":47,"tag":103,"props":2402,"children":2403},{"style":116},[2404],{"type":53,"value":156},{"type":47,"tag":103,"props":2406,"children":2407},{"class":105,"line":159},[2408,2412,2416,2420,2424,2428,2432,2436,2440,2444,2448,2452,2457,2461,2465],{"type":47,"tag":103,"props":2409,"children":2410},{"style":110},[2411],{"type":53,"value":710},{"type":47,"tag":103,"props":2413,"children":2414},{"style":122},[2415],{"type":53,"value":2334},{"type":47,"tag":103,"props":2417,"children":2418},{"style":116},[2419],{"type":53,"value":349},{"type":47,"tag":103,"props":2421,"children":2422},{"style":194},[2423],{"type":53,"value":724},{"type":47,"tag":103,"props":2425,"children":2426},{"style":122},[2427],{"type":53,"value":2347},{"type":47,"tag":103,"props":2429,"children":2430},{"style":116},[2431],{"type":53,"value":219},{"type":47,"tag":103,"props":2433,"children":2434},{"style":122},[2435],{"type":53,"value":2356},{"type":47,"tag":103,"props":2437,"children":2438},{"style":116},[2439],{"type":53,"value":219},{"type":47,"tag":103,"props":2441,"children":2442},{"style":116},[2443],{"type":53,"value":119},{"type":47,"tag":103,"props":2445,"children":2446},{"style":231},[2447],{"type":53,"value":2369},{"type":47,"tag":103,"props":2449,"children":2450},{"style":116},[2451],{"type":53,"value":239},{"type":47,"tag":103,"props":2453,"children":2454},{"style":122},[2455],{"type":53,"value":2456}," keepTTL ",{"type":47,"tag":103,"props":2458,"children":2459},{"style":116},[2460],{"type":53,"value":265},{"type":47,"tag":103,"props":2462,"children":2463},{"style":122},[2464],{"type":53,"value":270},{"type":47,"tag":103,"props":2466,"children":2467},{"style":116},[2468],{"type":53,"value":156},{"type":47,"tag":103,"props":2470,"children":2471},{"class":105,"line":169},[2472,2476,2480,2484,2489,2493,2497,2502,2506],{"type":47,"tag":103,"props":2473,"children":2474},{"style":110},[2475],{"type":53,"value":710},{"type":47,"tag":103,"props":2477,"children":2478},{"style":122},[2479],{"type":53,"value":2334},{"type":47,"tag":103,"props":2481,"children":2482},{"style":116},[2483],{"type":53,"value":349},{"type":47,"tag":103,"props":2485,"children":2486},{"style":194},[2487],{"type":53,"value":2488},"setIfNotExists",{"type":47,"tag":103,"props":2490,"children":2491},{"style":122},[2492],{"type":53,"value":2347},{"type":47,"tag":103,"props":2494,"children":2495},{"style":116},[2496],{"type":53,"value":219},{"type":47,"tag":103,"props":2498,"children":2499},{"style":122},[2500],{"type":53,"value":2501}," value)",{"type":47,"tag":103,"props":2503,"children":2504},{"style":116},[2505],{"type":53,"value":856},{"type":47,"tag":103,"props":2507,"children":2508},{"style":542},[2509],{"type":53,"value":2510},"  \u002F\u002F throws CacheKeyExists if present\n",{"type":47,"tag":103,"props":2512,"children":2513},{"class":105,"line":227},[2514,2518,2522,2526,2531,2535,2539,2543,2547],{"type":47,"tag":103,"props":2515,"children":2516},{"style":110},[2517],{"type":53,"value":710},{"type":47,"tag":103,"props":2519,"children":2520},{"style":122},[2521],{"type":53,"value":2334},{"type":47,"tag":103,"props":2523,"children":2524},{"style":116},[2525],{"type":53,"value":349},{"type":47,"tag":103,"props":2527,"children":2528},{"style":194},[2529],{"type":53,"value":2530},"replace",{"type":47,"tag":103,"props":2532,"children":2533},{"style":122},[2534],{"type":53,"value":2347},{"type":47,"tag":103,"props":2536,"children":2537},{"style":116},[2538],{"type":53,"value":219},{"type":47,"tag":103,"props":2540,"children":2541},{"style":122},[2542],{"type":53,"value":2501},{"type":47,"tag":103,"props":2544,"children":2545},{"style":116},[2546],{"type":53,"value":856},{"type":47,"tag":103,"props":2548,"children":2549},{"style":542},[2550],{"type":53,"value":2551},"          \u002F\u002F throws CacheMiss if absent\n",{"type":47,"tag":86,"props":2553,"children":2555},{"id":2554},"errors",[2556],{"type":53,"value":2557},"Errors",{"type":47,"tag":93,"props":2559,"children":2561},{"className":95,"code":2560,"language":19,"meta":97,"style":97},"import { CacheMiss, CacheKeyExists } from \"encore.dev\u002Fstorage\u002Fcache\";\n\nconst value = await keyspace.get(key);  \u002F\u002F undefined on miss (does not throw)\n",[2562],{"type":47,"tag":69,"props":2563,"children":2564},{"__ignoreMap":97},[2565,2614,2621],{"type":47,"tag":103,"props":2566,"children":2567},{"class":105,"line":106},[2568,2572,2576,2581,2585,2590,2594,2598,2602,2606,2610],{"type":47,"tag":103,"props":2569,"children":2570},{"style":110},[2571],{"type":53,"value":113},{"type":47,"tag":103,"props":2573,"children":2574},{"style":116},[2575],{"type":53,"value":119},{"type":47,"tag":103,"props":2577,"children":2578},{"style":122},[2579],{"type":53,"value":2580}," CacheMiss",{"type":47,"tag":103,"props":2582,"children":2583},{"style":116},[2584],{"type":53,"value":219},{"type":47,"tag":103,"props":2586,"children":2587},{"style":122},[2588],{"type":53,"value":2589}," CacheKeyExists",{"type":47,"tag":103,"props":2591,"children":2592},{"style":116},[2593],{"type":53,"value":130},{"type":47,"tag":103,"props":2595,"children":2596},{"style":110},[2597],{"type":53,"value":135},{"type":47,"tag":103,"props":2599,"children":2600},{"style":116},[2601],{"type":53,"value":140},{"type":47,"tag":103,"props":2603,"children":2604},{"style":143},[2605],{"type":53,"value":146},{"type":47,"tag":103,"props":2607,"children":2608},{"style":116},[2609],{"type":53,"value":151},{"type":47,"tag":103,"props":2611,"children":2612},{"style":116},[2613],{"type":53,"value":156},{"type":47,"tag":103,"props":2615,"children":2616},{"class":105,"line":159},[2617],{"type":47,"tag":103,"props":2618,"children":2619},{"emptyLinePlaceholder":163},[2620],{"type":53,"value":166},{"type":47,"tag":103,"props":2622,"children":2623},{"class":105,"line":169},[2624,2628,2633,2637,2641,2645,2649,2653,2658,2662],{"type":47,"tag":103,"props":2625,"children":2626},{"style":173},[2627],{"type":53,"value":176},{"type":47,"tag":103,"props":2629,"children":2630},{"style":122},[2631],{"type":53,"value":2632}," value ",{"type":47,"tag":103,"props":2634,"children":2635},{"style":116},[2636],{"type":53,"value":186},{"type":47,"tag":103,"props":2638,"children":2639},{"style":110},[2640],{"type":53,"value":802},{"type":47,"tag":103,"props":2642,"children":2643},{"style":122},[2644],{"type":53,"value":2334},{"type":47,"tag":103,"props":2646,"children":2647},{"style":116},[2648],{"type":53,"value":349},{"type":47,"tag":103,"props":2650,"children":2651},{"style":194},[2652],{"type":53,"value":815},{"type":47,"tag":103,"props":2654,"children":2655},{"style":122},[2656],{"type":53,"value":2657},"(key)",{"type":47,"tag":103,"props":2659,"children":2660},{"style":116},[2661],{"type":53,"value":856},{"type":47,"tag":103,"props":2663,"children":2664},{"style":542},[2665],{"type":53,"value":2666},"  \u002F\u002F undefined on miss (does not throw)\n",{"type":47,"tag":56,"props":2668,"children":2670},{"id":2669},"guidelines",[2671],{"type":53,"value":2672},"Guidelines",{"type":47,"tag":2674,"props":2675,"children":2676},"ul",{},[2677,2690,2718,2753,2758],{"type":47,"tag":2678,"props":2679,"children":2680},"li",{},[2681,2683,2688],{"type":53,"value":2682},"Declare ",{"type":47,"tag":69,"props":2684,"children":2686},{"className":2685},[],[2687],{"type":53,"value":74},{"type":53,"value":2689}," and keyspaces at package level.",{"type":47,"tag":2678,"props":2691,"children":2692},{},[2693,2695,2701,2703,2708,2710,2716],{"type":53,"value":2694},"Pick the most specific keyspace type — ",{"type":47,"tag":69,"props":2696,"children":2698},{"className":2697},[],[2699],{"type":53,"value":2700},"IntKeyspace",{"type":53,"value":2702}," for counters gives you atomic ",{"type":47,"tag":69,"props":2704,"children":2706},{"className":2705},[],[2707],{"type":53,"value":1057},{"type":53,"value":2709},"\u002F",{"type":47,"tag":69,"props":2711,"children":2713},{"className":2712},[],[2714],{"type":53,"value":2715},"decrement",{"type":53,"value":2717}," for free.",{"type":47,"tag":2678,"props":2719,"children":2720},{},[2721,2727,2729,2735,2737,2743,2745,2751],{"type":47,"tag":69,"props":2722,"children":2724},{"className":2723},[],[2725],{"type":53,"value":2726},"get()",{"type":53,"value":2728}," returns ",{"type":47,"tag":69,"props":2730,"children":2732},{"className":2731},[],[2733],{"type":53,"value":2734},"undefined",{"type":53,"value":2736}," on miss; ",{"type":47,"tag":69,"props":2738,"children":2740},{"className":2739},[],[2741],{"type":53,"value":2742},"replace()",{"type":53,"value":2744}," and ",{"type":47,"tag":69,"props":2746,"children":2748},{"className":2747},[],[2749],{"type":53,"value":2750},"setIfNotExists()",{"type":53,"value":2752}," throw on conflict.",{"type":47,"tag":2678,"props":2754,"children":2755},{},[2756],{"type":53,"value":2757},"Local development uses an in-memory Redis with a ~100-key cap — don't load-test it.",{"type":47,"tag":2678,"props":2759,"children":2760},{},[2761,2763,2769,2771,2777],{"type":53,"value":2762},"For durable storage, use ",{"type":47,"tag":69,"props":2764,"children":2766},{"className":2765},[],[2767],{"type":53,"value":2768},"encore-database",{"type":53,"value":2770}," (Postgres) or ",{"type":47,"tag":69,"props":2772,"children":2774},{"className":2773},[],[2775],{"type":53,"value":2776},"encore-bucket",{"type":53,"value":2778}," (object storage) instead.",{"type":47,"tag":2780,"props":2781,"children":2782},"style",{},[2783],{"type":53,"value":2784},"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);}",{"items":2786,"total":1114},[2787,2799,2811,2826,2834,2846,2862],{"slug":2788,"name":2788,"fn":2789,"description":2790,"org":2791,"tags":2792,"stars":27,"repoUrl":28,"updatedAt":2798},"encore-api","build type-safe APIs with Encore","Define typed API endpoints in Encore.ts using `api(...)` from `encore.dev\u002Fapi`. Covers typed request\u002Fresponse interfaces, path\u002Fquery\u002Fheader\u002Fcookie params, request validation, and `APIError`. For raw endpoints (`api.raw()`) and inbound webhooks, use `encore-webhook` instead.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2793,2796,2797],{"name":2794,"slug":2795,"type":16},"API Development","api-development",{"name":9,"slug":8,"type":16},{"name":18,"slug":19,"type":16},"2026-04-06T18:09:46.044101",{"slug":2800,"name":2800,"fn":2801,"description":2802,"org":2803,"tags":2804,"stars":27,"repoUrl":28,"updatedAt":2810},"encore-auth","implement Encore.ts authentication","Protect Encore.ts endpoints with authentication and authorize callers. Covers `authHandler`, `Gateway`, `getAuthData`, and `auth: true`.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2805,2808,2809],{"name":2806,"slug":2807,"type":16},"Auth","auth",{"name":9,"slug":8,"type":16},{"name":18,"slug":19,"type":16},"2026-04-06T18:09:47.336322",{"slug":2776,"name":2776,"fn":2812,"description":2813,"org":2814,"tags":2815,"stars":27,"repoUrl":28,"updatedAt":2825},"store files in Encore.ts buckets","Store unstructured files in Encore.ts using `Bucket` from `encore.dev\u002Fstorage\u002Fobjects` — uploads, images, documents, blobs.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2816,2817,2818,2821,2824],{"name":14,"slug":15,"type":16},{"name":9,"slug":8,"type":16},{"name":2819,"slug":2820,"type":16},"File Storage","file-storage",{"name":2822,"slug":2823,"type":16},"File Uploads","file-uploads",{"name":18,"slug":19,"type":16},"2026-05-16T05:59:52.813772",{"slug":4,"name":4,"fn":5,"description":6,"org":2827,"tags":2828,"stars":27,"repoUrl":28,"updatedAt":29},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2829,2830,2831,2832,2833],{"name":14,"slug":15,"type":16},{"name":25,"slug":26,"type":16},{"name":9,"slug":8,"type":16},{"name":22,"slug":23,"type":16},{"name":18,"slug":19,"type":16},{"slug":2835,"name":2835,"fn":2836,"description":2837,"org":2838,"tags":2839,"stars":27,"repoUrl":28,"updatedAt":2845},"encore-code-review","review Encore.ts code","Review existing Encore.ts code for best practices and common anti-patterns.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2840,2843,2844],{"name":2841,"slug":2842,"type":16},"Code Review","code-review",{"name":9,"slug":8,"type":16},{"name":18,"slug":19,"type":16},"2026-04-06T18:10:01.123999",{"slug":2847,"name":2847,"fn":2848,"description":2849,"org":2850,"tags":2851,"stars":27,"repoUrl":28,"updatedAt":2861},"encore-cron","schedule recurring jobs in Encore.ts","Schedule periodic \u002F recurring work in Encore.ts using `CronJob` from `encore.dev\u002Fcron`. Covers `every: \"1h\"` interval syntax and `schedule: \"0 9 * * 1\"` cron expressions.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2852,2855,2856,2857,2860],{"name":2853,"slug":2854,"type":16},"Automation","automation",{"name":14,"slug":15,"type":16},{"name":9,"slug":8,"type":16},{"name":2858,"slug":2859,"type":16},"Scheduling","scheduling",{"name":18,"slug":19,"type":16},"2026-05-16T05:59:54.146651",{"slug":2768,"name":2768,"fn":2863,"description":2864,"org":2865,"tags":2866,"stars":27,"repoUrl":28,"updatedAt":2875},"build Encore databases","Work with PostgreSQL in Encore.ts using `SQLDatabase` from `encore.dev\u002Fstorage\u002Fsqldb` — schema migrations and SQL queries.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2867,2870,2871,2874],{"name":2868,"slug":2869,"type":16},"Database","database",{"name":9,"slug":8,"type":16},{"name":2872,"slug":2873,"type":16},"ORM","orm",{"name":18,"slug":19,"type":16},"2026-04-06T18:09:54.823017",{"items":2877,"total":1114},[2878,2884,2890,2898,2906,2912,2920,2927,2944,2961,2973,2984],{"slug":2788,"name":2788,"fn":2789,"description":2790,"org":2879,"tags":2880,"stars":27,"repoUrl":28,"updatedAt":2798},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2881,2882,2883],{"name":2794,"slug":2795,"type":16},{"name":9,"slug":8,"type":16},{"name":18,"slug":19,"type":16},{"slug":2800,"name":2800,"fn":2801,"description":2802,"org":2885,"tags":2886,"stars":27,"repoUrl":28,"updatedAt":2810},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2887,2888,2889],{"name":2806,"slug":2807,"type":16},{"name":9,"slug":8,"type":16},{"name":18,"slug":19,"type":16},{"slug":2776,"name":2776,"fn":2812,"description":2813,"org":2891,"tags":2892,"stars":27,"repoUrl":28,"updatedAt":2825},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2893,2894,2895,2896,2897],{"name":14,"slug":15,"type":16},{"name":9,"slug":8,"type":16},{"name":2819,"slug":2820,"type":16},{"name":2822,"slug":2823,"type":16},{"name":18,"slug":19,"type":16},{"slug":4,"name":4,"fn":5,"description":6,"org":2899,"tags":2900,"stars":27,"repoUrl":28,"updatedAt":29},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2901,2902,2903,2904,2905],{"name":14,"slug":15,"type":16},{"name":25,"slug":26,"type":16},{"name":9,"slug":8,"type":16},{"name":22,"slug":23,"type":16},{"name":18,"slug":19,"type":16},{"slug":2835,"name":2835,"fn":2836,"description":2837,"org":2907,"tags":2908,"stars":27,"repoUrl":28,"updatedAt":2845},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2909,2910,2911],{"name":2841,"slug":2842,"type":16},{"name":9,"slug":8,"type":16},{"name":18,"slug":19,"type":16},{"slug":2847,"name":2847,"fn":2848,"description":2849,"org":2913,"tags":2914,"stars":27,"repoUrl":28,"updatedAt":2861},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2915,2916,2917,2918,2919],{"name":2853,"slug":2854,"type":16},{"name":14,"slug":15,"type":16},{"name":9,"slug":8,"type":16},{"name":2858,"slug":2859,"type":16},{"name":18,"slug":19,"type":16},{"slug":2768,"name":2768,"fn":2863,"description":2864,"org":2921,"tags":2922,"stars":27,"repoUrl":28,"updatedAt":2875},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2923,2924,2925,2926],{"name":2868,"slug":2869,"type":16},{"name":9,"slug":8,"type":16},{"name":2872,"slug":2873,"type":16},{"name":18,"slug":19,"type":16},{"slug":2928,"name":2928,"fn":2929,"description":2930,"org":2931,"tags":2932,"stars":27,"repoUrl":28,"updatedAt":2943},"encore-frontend","connect frontend to Encore backend","Connect a frontend application (React, Next.js, Vue, Svelte, etc.) to an Encore.ts backend.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2933,2934,2937,2940],{"name":9,"slug":8,"type":16},{"name":2935,"slug":2936,"type":16},"Frontend","frontend",{"name":2938,"slug":2939,"type":16},"Next.js","next-js",{"name":2941,"slug":2942,"type":16},"React","react","2026-04-06T18:09:56.091006",{"slug":2945,"name":2945,"fn":2946,"description":2947,"org":2948,"tags":2949,"stars":27,"repoUrl":28,"updatedAt":2960},"encore-getting-started","build and run applications with Encore.ts","Bootstrap a brand-new Encore.ts project from zero. Only for first-time CLI install and `encore app create` — not for architecture or feature questions.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2950,2951,2952,2953,2956,2957],{"name":2794,"slug":2795,"type":16},{"name":14,"slug":15,"type":16},{"name":9,"slug":8,"type":16},{"name":2954,"slug":2955,"type":16},"Local Development","local-development",{"name":18,"slug":19,"type":16},{"name":2958,"slug":2959,"type":16},"Web Development","web-development","2026-04-06T18:10:04.885446",{"slug":2962,"name":2962,"fn":2963,"description":2964,"org":2965,"tags":2966,"stars":27,"repoUrl":28,"updatedAt":2972},"encore-go-api","build APIs with Encore Go","Define typed API endpoints in Encore Go using `\u002F\u002Fencore:api` annotations. Covers typed request\u002Fresponse structs, path\u002Fquery\u002Fheader\u002Fcookie params, and error returns. For raw endpoints (`\u002F\u002Fencore:api raw`) and inbound webhooks, use `encore-go-webhook` instead.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2967,2968,2969],{"name":2794,"slug":2795,"type":16},{"name":9,"slug":8,"type":16},{"name":2970,"slug":2971,"type":16},"Go","go","2026-04-06T18:09:48.578781",{"slug":2974,"name":2974,"fn":2975,"description":2976,"org":2977,"tags":2978,"stars":27,"repoUrl":28,"updatedAt":2983},"encore-go-auth","implement authentication with Encore Go","Protect Encore Go endpoints with authentication and authorize callers. Covers `auth.AuthHandler`, `auth.UserID`, the `Authorization` header, and `\u002F\u002Fencore:api auth`.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2979,2980,2981,2982],{"name":2806,"slug":2807,"type":16},{"name":14,"slug":15,"type":16},{"name":9,"slug":8,"type":16},{"name":2970,"slug":2971,"type":16},"2026-04-06T18:09:51.065102",{"slug":2985,"name":2985,"fn":2986,"description":2987,"org":2988,"tags":2989,"stars":27,"repoUrl":28,"updatedAt":2997},"encore-go-bucket","store files in Encore Go buckets","Store unstructured files in Encore Go using `objects.NewBucket` from `encore.dev\u002Fstorage\u002Fobjects` — uploads, images, documents, blobs.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2990,2991,2992,2993,2994],{"name":14,"slug":15,"type":16},{"name":9,"slug":8,"type":16},{"name":2819,"slug":2820,"type":16},{"name":2970,"slug":2971,"type":16},{"name":2995,"slug":2996,"type":16},"Storage","storage","2026-05-16T06:00:03.633918"]