[{"data":1,"prerenderedAt":518},["ShallowReactive",2],{"navigation":3,"\u002Fgetting-started\u002Fcli":115,"\u002Fgetting-started\u002Fcli-surround":513},[4,36,57,88,104],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":35},"Getting Started","i-lucide-rocket","\u002Fgetting-started","1.getting-started",[10,15,20,25,30],{"title":11,"path":12,"stem":13,"icon":14},"Introduction","\u002Fgetting-started\u002Fintroduction","1.getting-started\u002F1.introduction","i-lucide-info",{"title":16,"path":17,"stem":18,"icon":19},"Install","\u002Fgetting-started\u002Finstall","1.getting-started\u002F2.install","i-lucide-download",{"title":21,"path":22,"stem":23,"icon":24},"Quickstart","\u002Fgetting-started\u002Fquickstart","1.getting-started\u002F3.quickstart","i-lucide-zap",{"title":26,"path":27,"stem":28,"icon":29},"Testing","\u002Fgetting-started\u002Ftesting","1.getting-started\u002F4.testing","i-lucide-flask-conical",{"title":31,"path":32,"stem":33,"icon":34},"CLI","\u002Fgetting-started\u002Fcli","1.getting-started\u002F5.cli","i-lucide-terminal",false,{"title":37,"icon":38,"path":39,"stem":40,"children":41,"page":35},"Concepts","i-lucide-boxes","\u002Fconcepts","2.concepts",[42,47,52],{"title":43,"path":44,"stem":45,"icon":46},"SQL-first contract","\u002Fconcepts\u002Fsql-first-contract","2.concepts\u002F1.sql-first-contract","i-lucide-database",{"title":48,"path":49,"stem":50,"icon":51},"Jobs and status","\u002Fconcepts\u002Fjobs-and-status","2.concepts\u002F2.jobs-and-status","i-lucide-list-checks",{"title":53,"path":54,"stem":55,"icon":56},"Fencing and settles","\u002Fconcepts\u002Ffencing-and-settles","2.concepts\u002F3.fencing-and-settles","i-lucide-shield",{"title":58,"icon":59,"path":60,"stem":61,"children":62,"page":35},"API","i-lucide-code-2","\u002Fapi","3.api",[63,68,73,78,83],{"title":64,"path":65,"stem":66,"icon":67},"Enqueue","\u002Fapi\u002Fenqueue","3.api\u002F1.enqueue","i-lucide-plus-circle",{"title":69,"path":70,"stem":71,"icon":72},"Claim and heartbeat","\u002Fapi\u002Fclaim-and-heartbeat","3.api\u002F2.claim-and-heartbeat","i-lucide-hand",{"title":74,"path":75,"stem":76,"icon":77},"Worker and handlers","\u002Fapi\u002Fworker-and-handlers","3.api\u002F3.worker-and-handlers","i-lucide-cpu",{"title":79,"path":80,"stem":81,"icon":82},"HTTP facade","\u002Fapi\u002Fhttp-facade","3.api\u002F4.http-facade","i-lucide-globe",{"title":84,"path":85,"stem":86,"icon":87},"Authorization","\u002Fapi\u002Fauthorization","3.api\u002F5.authorization","i-lucide-key-round",{"title":89,"icon":90,"path":91,"stem":92,"children":93,"page":35},"Operations","i-lucide-activity","\u002Foperations","4.operations",[94,99],{"title":95,"path":96,"stem":97,"icon":98},"Housekeeping","\u002Foperations\u002Fhousekeeping","4.operations\u002F1.housekeeping","i-lucide-timer",{"title":100,"path":101,"stem":102,"icon":103},"Redrive and dead letters","\u002Foperations\u002Fredrive-and-dlq","4.operations\u002F2.redrive-and-dlq","i-lucide-rotate-ccw",{"title":105,"icon":106,"path":107,"stem":108,"children":109,"page":35},"Reference","i-lucide-book-marked","\u002Freference","5.reference",[110],{"title":111,"path":112,"stem":113,"icon":114},"Configuration","\u002Freference\u002Fconfiguration","5.reference\u002F1.configuration","i-lucide-settings",{"id":116,"title":31,"body":117,"description":506,"extension":507,"links":508,"meta":509,"navigation":510,"path":32,"seo":511,"stem":33,"__hash__":512},"docs\u002F1.getting-started\u002F5.cli.md",{"type":118,"value":119,"toc":502},"minimark",[120,129,203,208,223,331,334,401,415,436,440,491,498],[121,122,123,124,128],"p",{},"Entry points from ",[125,126,127],"code",{},"outlabs-taskq",":",[130,131,132,145],"table",{},[133,134,135],"thead",{},[136,137,138,142],"tr",{},[139,140,141],"th",{},"Command",[139,143,144],{},"Purpose",[146,147,148,159,169,179,193],"tbody",{},[136,149,150,156],{},[151,152,153],"td",{},[125,154,155],{},"taskq migrate \u003Cdsn>",[151,157,158],{},"Apply packaged migrations under an advisory lock",[136,160,161,166],{},[151,162,163],{},[125,164,165],{},"taskq verify \u003Cdsn>",[151,167,168],{},"Read-only manifest drift check",[136,170,171,176],{},[151,172,173],{},[125,174,175],{},"taskq worker …",[151,177,178],{},"Run a DB-direct or HTTP worker",[136,180,181,186],{},[151,182,183],{},[125,184,185],{},"taskq auth sync-permissions …",[151,187,188,189,192],{},"Report\u002Fapply OutLabs IAM rows (",[125,190,191],{},"[outlabs]"," required)",[136,194,195,200],{},[151,196,197],{},[125,198,199],{},"taskq-bench run \u003Cscenario> --dsn …",[151,201,202],{},"Report-only benchmarks",[204,205,207],"h2",{"id":206},"worker","Worker",[121,209,210,211,214,215,214,219,222],{},"Configure exactly one transport: ",[125,212,213],{},"--dsn"," ",[216,217,218],"strong",{},"or",[125,220,221],{},"--http-base-url",".",[224,225,230],"pre",{"className":226,"code":227,"language":228,"meta":229,"style":229},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","taskq worker \\\n  --dsn \"$DATABASE_URL\" \\\n  --registry myapp.tasks:registry \\\n  --queue mail \\\n  --queue courts \\\n  --environment development \\\n  --concurrency 4 \\\n  --batch 2\n","bash","",[125,231,232,249,267,278,289,299,310,322],{"__ignoreMap":229},[233,234,237,241,245],"span",{"class":235,"line":236},"line",1,[233,238,240],{"class":239},"sBMFI","taskq",[233,242,244],{"class":243},"sfazB"," worker",[233,246,248],{"class":247},"sTEyZ"," \\\n",[233,250,252,255,259,262,265],{"class":235,"line":251},2,[233,253,254],{"class":243},"  --dsn",[233,256,258],{"class":257},"sMK4o"," \"",[233,260,261],{"class":247},"$DATABASE_URL",[233,263,264],{"class":257},"\"",[233,266,248],{"class":247},[233,268,270,273,276],{"class":235,"line":269},3,[233,271,272],{"class":243},"  --registry",[233,274,275],{"class":243}," myapp.tasks:registry",[233,277,248],{"class":247},[233,279,281,284,287],{"class":235,"line":280},4,[233,282,283],{"class":243},"  --queue",[233,285,286],{"class":243}," mail",[233,288,248],{"class":247},[233,290,292,294,297],{"class":235,"line":291},5,[233,293,283],{"class":243},[233,295,296],{"class":243}," courts",[233,298,248],{"class":247},[233,300,302,305,308],{"class":235,"line":301},6,[233,303,304],{"class":243},"  --environment",[233,306,307],{"class":243}," development",[233,309,248],{"class":247},[233,311,313,316,320],{"class":235,"line":312},7,[233,314,315],{"class":243},"  --concurrency",[233,317,319],{"class":318},"sbssI"," 4",[233,321,248],{"class":247},[233,323,325,328],{"class":235,"line":324},8,[233,326,327],{"class":243},"  --batch",[233,329,330],{"class":318}," 2\n",[121,332,333],{},"HTTP workers (no DB credentials):",[224,335,337],{"className":226,"code":336,"language":228,"meta":229,"style":229},"taskq worker \\\n  --http-base-url https:\u002F\u002Fapi.example.com\u002Ftaskq \\\n  --registry myapp.tasks:registry \\\n  --queue mail \\\n  --environment staging \\\n  --http-bearer-token \"$TOKEN\" \\\n  --no-listen\n",[125,338,339,347,357,365,373,382,396],{"__ignoreMap":229},[233,340,341,343,345],{"class":235,"line":236},[233,342,240],{"class":239},[233,344,244],{"class":243},[233,346,248],{"class":247},[233,348,349,352,355],{"class":235,"line":251},[233,350,351],{"class":243},"  --http-base-url",[233,353,354],{"class":243}," https:\u002F\u002Fapi.example.com\u002Ftaskq",[233,356,248],{"class":247},[233,358,359,361,363],{"class":235,"line":269},[233,360,272],{"class":243},[233,362,275],{"class":243},[233,364,248],{"class":247},[233,366,367,369,371],{"class":235,"line":280},[233,368,283],{"class":243},[233,370,286],{"class":243},[233,372,248],{"class":247},[233,374,375,377,380],{"class":235,"line":291},[233,376,304],{"class":243},[233,378,379],{"class":243}," staging",[233,381,248],{"class":247},[233,383,384,387,389,392,394],{"class":235,"line":301},[233,385,386],{"class":243},"  --http-bearer-token",[233,388,258],{"class":257},[233,390,391],{"class":247},"$TOKEN",[233,393,264],{"class":257},[233,395,248],{"class":247},[233,397,398],{"class":235,"line":312},[233,399,400],{"class":243},"  --no-listen\n",[121,402,403,404,407,408,411,412,222],{},"Most knobs also load from ",[125,405,406],{},"TASKQ_*"," environment variables via ",[125,409,410],{},"WorkerSettings",". See ",[413,414,111],"a",{"href":112},[416,417,418],"note",{},[121,419,420,421,424,425,428,429,432,433,222],{},"HTTP workers cannot use PostgreSQL ",[125,422,423],{},"LISTEN",". Production requires ",[125,426,427],{},"--allow-production"," (or ",[125,430,431],{},"TASKQ_ALLOW_PRODUCTION=true",") when ",[125,434,435],{},"--environment production",[204,437,439],{"id":438},"auth-provisioning","Auth provisioning",[224,441,443],{"className":226,"code":442,"language":228,"meta":229,"style":229},"taskq auth sync-permissions \\\n  --dsn \"$AUTH_DATABASE_URL\" \\\n  --queue mail \\\n  --queue courts \\\n  --apply\n",[125,444,445,457,470,478,486],{"__ignoreMap":229},[233,446,447,449,452,455],{"class":235,"line":236},[233,448,240],{"class":239},[233,450,451],{"class":243}," auth",[233,453,454],{"class":243}," sync-permissions",[233,456,248],{"class":247},[233,458,459,461,463,466,468],{"class":235,"line":251},[233,460,254],{"class":243},[233,462,258],{"class":257},[233,464,465],{"class":247},"$AUTH_DATABASE_URL",[233,467,264],{"class":257},[233,469,248],{"class":247},[233,471,472,474,476],{"class":235,"line":269},[233,473,283],{"class":243},[233,475,286],{"class":243},[233,477,248],{"class":247},[233,479,480,482,484],{"class":235,"line":280},[233,481,283],{"class":243},[233,483,296],{"class":243},[233,485,248],{"class":247},[233,487,488],{"class":235,"line":291},[233,489,490],{"class":243},"  --apply\n",[121,492,493,494,497],{},"Omit ",[125,495,496],{},"--apply"," for a dry-run report.",[499,500,501],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}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);}",{"title":229,"searchDepth":236,"depth":251,"links":503},[504,505],{"id":206,"depth":251,"text":207},{"id":438,"depth":251,"text":439},"migrate, verify, worker, auth, and taskq-bench.","md",null,{},{"icon":34},{"title":31,"description":506},"S883cL18zEmyJdIuWcyDy94v21En9RHB0WUmyLVVh-E",[514,516],{"title":26,"path":27,"stem":28,"description":515,"icon":29,"children":-1},"Fake clients, inline execution, and bounded drain helpers.",{"title":43,"path":44,"stem":45,"description":517,"icon":46,"children":-1},"Why PL\u002FpgSQL functions are the source of truth.",1784549300044]