[{"data":1,"prerenderedAt":3837},["ShallowReactive",2],{"navigation":3,"\u002Fdocs\u002Freference\u002Frest-api-reference":314,"\u002Fdocs\u002Freference\u002Frest-api-reference-surround":3832},[4,38,86,149,176,219,257,273],{"title":5,"path":6,"stem":7,"children":8,"icon":37},"Getting Started","\u002Fdocs\u002Fgetting-started","1.docs\u002F1.getting-started\u002F1.index",[9,12,17,22,27,32],{"title":10,"path":6,"stem":7,"icon":11},"Getting started","i-lucide-flag",{"title":13,"path":14,"stem":15,"icon":16},"Modules overview","\u002Fdocs\u002Fgetting-started\u002Fmodules-overview","1.docs\u002F1.getting-started\u002F2.modules-overview","i-lucide-boxes",{"title":18,"path":19,"stem":20,"icon":21},"Installation","\u002Fdocs\u002Fgetting-started\u002Finstallation","1.docs\u002F1.getting-started\u002F3.installation","i-lucide-download",{"title":23,"path":24,"stem":25,"icon":26},"License configuration","\u002Fdocs\u002Fgetting-started\u002Flicense-configuration","1.docs\u002F1.getting-started\u002F4.license-configuration","i-lucide-key-round",{"title":28,"path":29,"stem":30,"icon":31},"Your first app","\u002Fdocs\u002Fgetting-started\u002Ffirst-app","1.docs\u002F1.getting-started\u002F5.first-app","i-lucide-square-play",{"title":33,"path":34,"stem":35,"icon":36},"Project setup","\u002Fdocs\u002Fgetting-started\u002Fproject-setup","1.docs\u002F1.getting-started\u002F6.project-setup","i-lucide-package",false,{"title":39,"path":40,"stem":41,"children":42,"icon":45},"Core Concepts","\u002Fdocs\u002Fconcepts","1.docs\u002F2.concepts\u002F1.index",[43,46,51,56,61,66,71,76,81],{"title":44,"path":40,"stem":41,"icon":45},"Core concepts","i-lucide-book-open",{"title":47,"path":48,"stem":49,"icon":50},"Architecture","\u002Fdocs\u002Fconcepts\u002Farchitecture","1.docs\u002F2.concepts\u002F2.architecture","i-lucide-layers",{"title":52,"path":53,"stem":54,"icon":55},"Exactly-once semantics","\u002Fdocs\u002Fconcepts\u002Fexactly-once","1.docs\u002F2.concepts\u002F3.exactly-once","i-lucide-shield-check",{"title":57,"path":58,"stem":59,"icon":60},"Lanes and parallelism","\u002Fdocs\u002Fconcepts\u002Flanes-and-parallelism","1.docs\u002F2.concepts\u002F4.lanes-and-parallelism","i-lucide-split",{"title":62,"path":63,"stem":64,"icon":65},"State and thread-safety","\u002Fdocs\u002Fconcepts\u002Fstate-and-thread-safety","1.docs\u002F2.concepts\u002F5.state-and-thread-safety","i-lucide-lock",{"title":67,"path":68,"stem":69,"icon":70},"Event time and watermarks","\u002Fdocs\u002Fconcepts\u002Fevent-time-and-watermarks","1.docs\u002F2.concepts\u002F6.event-time-and-watermarks","i-lucide-clock",{"title":72,"path":73,"stem":74,"icon":75},"The configuration model","\u002Fdocs\u002Fconcepts\u002Fconfiguration-model","1.docs\u002F2.concepts\u002F7.configuration-model","i-lucide-sliders-horizontal",{"title":77,"path":78,"stem":79,"icon":80},"The error-handling model","\u002Fdocs\u002Fconcepts\u002Ferror-handling-model","1.docs\u002F2.concepts\u002F8.error-handling-model","i-lucide-triangle-alert",{"title":82,"path":83,"stem":84,"icon":85},"How StoatFlow differs from Kafka Streams","\u002Fdocs\u002Fconcepts\u002Fhow-stoatflow-differs-from-ks","1.docs\u002F2.concepts\u002F9.how-stoatflow-differs-from-ks","i-lucide-arrow-left-right",{"title":87,"path":88,"stem":89,"children":90,"icon":93},"Building Topologies","\u002Fdocs\u002Fbuilding","1.docs\u002F3.building\u002F1.index",[91,94,99,104,109,114,119,124,129,134,139,144],{"title":92,"path":88,"stem":89,"icon":93},"Building topologies","i-lucide-blocks",{"title":95,"path":96,"stem":97,"icon":98},"Error handling and DLQ","\u002Fdocs\u002Fbuilding\u002Ferror-handling-dlq","1.docs\u002F3.building\u002F10.error-handling-dlq","i-lucide-circle-x",{"title":100,"path":101,"stem":102,"icon":103},"State stores","\u002Fdocs\u002Fbuilding\u002Fstate-stores","1.docs\u002F3.building\u002F11.state-stores","i-lucide-database",{"title":105,"path":106,"stem":107,"icon":108},"Testing topologies","\u002Fdocs\u002Fbuilding\u002Ftesting","1.docs\u002F3.building\u002F12.testing","i-lucide-flask-conical",{"title":110,"path":111,"stem":112,"icon":113},"Sources and sinks","\u002Fdocs\u002Fbuilding\u002Fstreams-builder","1.docs\u002F3.building\u002F2.streams-builder","i-lucide-import",{"title":115,"path":116,"stem":117,"icon":118},"KStream and KTable operations","\u002Fdocs\u002Fbuilding\u002Fkstream-ktable","1.docs\u002F3.building\u002F3.kstream-ktable","i-lucide-waypoints",{"title":120,"path":121,"stem":122,"icon":123},"Aggregations","\u002Fdocs\u002Fbuilding\u002Faggregations","1.docs\u002F3.building\u002F4.aggregations","i-lucide-sigma",{"title":125,"path":126,"stem":127,"icon":128},"Windowing","\u002Fdocs\u002Fbuilding\u002Fwindowing","1.docs\u002F3.building\u002F5.windowing","i-lucide-calendar-clock",{"title":130,"path":131,"stem":132,"icon":133},"Joins","\u002Fdocs\u002Fbuilding\u002Fjoins","1.docs\u002F3.building\u002F6.joins","i-lucide-git-merge",{"title":135,"path":136,"stem":137,"icon":138},"The Processor API","\u002Fdocs\u002Fbuilding\u002Fprocessor-api","1.docs\u002F3.building\u002F7.processor-api","i-lucide-cpu",{"title":140,"path":141,"stem":142,"icon":143},"Scheduled sources","\u002Fdocs\u002Fbuilding\u002Fscheduled-sources","1.docs\u002F3.building\u002F8.scheduled-sources","i-lucide-timer",{"title":145,"path":146,"stem":147,"icon":148},"Serdes and Avro","\u002Fdocs\u002Fbuilding\u002Fserdes","1.docs\u002F3.building\u002F9.serdes","i-lucide-binary",{"title":150,"path":151,"stem":152,"children":153,"icon":75},"Configuration","\u002Fdocs\u002Fconfiguration","1.docs\u002F4.configuration\u002F1.index",[154,156,161,166,171],{"title":155,"path":151,"stem":152,"icon":75},"How configuration works",{"title":157,"path":158,"stem":159,"icon":160},"Engine configuration (:core)","\u002Fdocs\u002Fconfiguration\u002Fcore-config","1.docs\u002F4.configuration\u002F2.core-config","i-lucide-settings-2",{"title":162,"path":163,"stem":164,"icon":165},"Runtime configuration (:runtime)","\u002Fdocs\u002Fconfiguration\u002Fruntime-config","1.docs\u002F4.configuration\u002F3.runtime-config","i-lucide-server-cog",{"title":167,"path":168,"stem":169,"icon":170},"Defaults, adaptivity, and presets","\u002Fdocs\u002Fconfiguration\u002Fdefaults-and-presets","1.docs\u002F4.configuration\u002F4.defaults-and-presets","i-lucide-gauge",{"title":172,"path":173,"stem":174,"icon":175},"Kafka client configuration","\u002Fdocs\u002Fconfiguration\u002Fkafka-client-config","1.docs\u002F4.configuration\u002F5.kafka-client-config","i-lucide-plug",{"title":177,"path":178,"stem":179,"children":180,"icon":183},"Running in Production","\u002Fdocs\u002Fruntime","1.docs\u002F5.runtime\u002F1.index",[181,184,189,194,199,204,209,214],{"title":182,"path":178,"stem":179,"icon":183},"The runtime","i-lucide-server",{"title":185,"path":186,"stem":187,"icon":188},"The REST API","\u002Fdocs\u002Fruntime\u002Frest-api","1.docs\u002F5.runtime\u002F2.rest-api","i-lucide-globe",{"title":190,"path":191,"stem":192,"icon":193},"Health checks","\u002Fdocs\u002Fruntime\u002Fhealth-checks","1.docs\u002F5.runtime\u002F3.health-checks","i-lucide-heart-pulse",{"title":195,"path":196,"stem":197,"icon":198},"Metrics","\u002Fdocs\u002Fruntime\u002Fmetrics","1.docs\u002F5.runtime\u002F4.metrics","i-lucide-activity",{"title":200,"path":201,"stem":202,"icon":203},"Pause and resume","\u002Fdocs\u002Fruntime\u002Fpause-unpause","1.docs\u002F5.runtime\u002F5.pause-unpause","i-lucide-pause",{"title":205,"path":206,"stem":207,"icon":208},"Plugins and lifecycle hooks","\u002Fdocs\u002Fruntime\u002Fplugins","1.docs\u002F5.runtime\u002F6.plugins","i-lucide-puzzle",{"title":210,"path":211,"stem":212,"icon":213},"Docker images","\u002Fdocs\u002Fruntime\u002Fdocker","1.docs\u002F5.runtime\u002F7.docker","i-lucide-container",{"title":215,"path":216,"stem":217,"icon":218},"GraalVM native image","\u002Fdocs\u002Fruntime\u002Fnative-image","1.docs\u002F5.runtime\u002F8.native-image","i-lucide-zap",{"title":220,"path":221,"stem":222,"children":223,"icon":226},"Deploying & Operating","\u002Fdocs\u002Foperating","1.docs\u002F6.operating\u002F1.index",[224,227,232,237,242,247,252],{"title":225,"path":221,"stem":222,"icon":226},"Deploying and operating","i-lucide-life-buoy",{"title":228,"path":229,"stem":230,"icon":231},"Running on Kubernetes","\u002Fdocs\u002Foperating\u002Fkubernetes","1.docs\u002F6.operating\u002F2.kubernetes","i-lucide-ship",{"title":233,"path":234,"stem":235,"icon":236},"High availability","\u002Fdocs\u002Foperating\u002Fhigh-availability","1.docs\u002F6.operating\u002F3.high-availability","i-lucide-copy",{"title":238,"path":239,"stem":240,"icon":241},"Liveness and readiness probes","\u002Fdocs\u002Foperating\u002Fprobes","1.docs\u002F6.operating\u002F4.probes","i-lucide-stethoscope",{"title":243,"path":244,"stem":245,"icon":246},"Observability","\u002Fdocs\u002Foperating\u002Fobservability","1.docs\u002F6.operating\u002F5.observability","i-lucide-telescope",{"title":248,"path":249,"stem":250,"icon":251},"Tuning under load","\u002Fdocs\u002Foperating\u002Ftuning","1.docs\u002F6.operating\u002F6.tuning","i-lucide-sliders",{"title":253,"path":254,"stem":255,"icon":256},"Production checklist","\u002Fdocs\u002Foperating\u002Fproduction-checklist","1.docs\u002F6.operating\u002F7.production-checklist","i-lucide-clipboard-check",{"title":258,"path":259,"stem":260,"children":261,"icon":85},"Migrating from Kafka Streams","\u002Fdocs\u002Fmigration","1.docs\u002F7.migration\u002F1.index",[262,263,268],{"title":258,"path":259,"stem":260,"icon":85},{"title":264,"path":265,"stem":266,"icon":267},"Migration without carrying state","\u002Fdocs\u002Fmigration\u002Fwithout-data-migration","1.docs\u002F7.migration\u002F2.without-data-migration","i-lucide-sparkles",{"title":269,"path":270,"stem":271,"icon":272},"Migration carrying state","\u002Fdocs\u002Fmigration\u002Fwith-data-migration","1.docs\u002F7.migration\u002F3.with-data-migration","i-lucide-database-backup",{"title":274,"path":275,"stem":276,"children":277,"icon":279},"Reference","\u002Fdocs\u002Freference","1.docs\u002F8.reference\u002F1.index",[278,280,285,290,295,300,305,309],{"title":274,"path":275,"stem":276,"icon":279},"i-lucide-list",{"title":281,"path":282,"stem":283,"icon":284},"Configuration reference","\u002Fdocs\u002Freference\u002Fconfiguration-reference","1.docs\u002F8.reference\u002F2.configuration-reference","i-lucide-table",{"title":286,"path":287,"stem":288,"icon":289},"REST API reference","\u002Fdocs\u002Freference\u002Frest-api-reference","1.docs\u002F8.reference\u002F3.rest-api-reference","i-lucide-network",{"title":291,"path":292,"stem":293,"icon":294},"Gradle plugin reference","\u002Fdocs\u002Freference\u002Fgradle-plugin-reference","1.docs\u002F8.reference\u002F4.gradle-plugin-reference","i-lucide-box",{"title":296,"path":297,"stem":298,"icon":299},"Maven reference","\u002Fdocs\u002Freference\u002Fmaven-reference","1.docs\u002F8.reference\u002F5.maven-reference","i-simple-icons-apachemaven",{"title":301,"path":302,"stem":303,"icon":304},"Kafka Streams compatibility matrix","\u002Fdocs\u002Freference\u002Fks-compatibility-matrix","1.docs\u002F8.reference\u002F6.ks-compatibility-matrix","i-lucide-table-2",{"title":306,"path":307,"stem":308,"icon":170},"Metrics reference","\u002Fdocs\u002Freference\u002Fmetrics-reference","1.docs\u002F8.reference\u002F7.metrics-reference",{"title":310,"path":311,"stem":312,"icon":313},"Glossary","\u002Fdocs\u002Freference\u002Fglossary","1.docs\u002F8.reference\u002F8.glossary","i-lucide-book-a",{"id":315,"title":286,"body":316,"description":3825,"extension":3826,"meta":3827,"navigation":3828,"pageType":3829,"path":287,"seo":3830,"stem":288,"__hash__":3831},"docs\u002F1.docs\u002F8.reference\u002F3.rest-api-reference.md",{"type":317,"value":318,"toc":3783},"minimark",[319,339,344,354,445,451,455,799,803,810,832,981,987,1007,1012,1015,1021,1031,1039,1047,1051,1057,1063,1373,1379,1382,1414,1687,1696,1702,1705,1764,1850,1855,1861,1875,2051,2055,2064,2070,2073,2109,2115,2122,2128,2134,2140,2144,2150,2156,2328,2334,2340,2616,2622,2628,2916,2920,2926,2940,2983,2989,3005,3047,3054,3057,3072,3078,3089,3464,3470,3477,3543,3560,3566,3588,3594,3611,3615,3633,3639,3642,3645,3705,3711,3728,3732,3779],[320,321,322,323,327,328,332,333,335,336,338],"p",{},"The ",[324,325,326],"code",{},":runtime"," module starts a built-in HTTP server that exposes operational, introspection, and admin endpoints. This page enumerates every endpoint: its path, method, purpose, the high-level shape of the response, and any configuration that gates it. For how-to guidance see ",[329,330,331],"a",{"href":186},"Runtime → REST API",", ",[329,334,190],{"href":191},", and ",[329,337,195],{"href":196},".",[340,341,343],"h2",{"id":342},"server-basics","Server basics",[320,345,346,347,350,351,353],{},"The HTTP server is configured under ",[324,348,349],{},"runtime.http.*"," (see the ",[329,352,281],{"href":282},").",[355,356,357,370],"table",{},[358,359,360],"thead",{},[361,362,363,367],"tr",{},[364,365,366],"th",{},"Aspect",[364,368,369],{},"Value",[371,372,373,384,399,409,419,430],"tbody",{},[361,374,375,379],{},[376,377,378],"td",{},"Default bind",[376,380,381],{},[324,382,383],{},"0.0.0.0:8080",[361,385,386,389],{},[376,387,388],{},"Enabled by",[376,390,391,394,395,398],{},[324,392,393],{},"runtime.http.enabled"," (default ",[324,396,397],{},"true","); the entire server — and all endpoints below — is absent when disabled",[361,400,401,404],{},[376,402,403],{},"JSON content type",[376,405,406],{},[324,407,408],{},"application\u002Fjson; charset=utf-8",[361,410,411,414],{},[376,412,413],{},"Text content type",[376,415,416],{},[324,417,418],{},"text\u002Fplain; charset=utf-8",[361,420,421,424],{},[376,422,423],{},"Error body",[376,425,426,429],{},[324,427,428],{},"{\"error\":\"\u003Cmessage>\"}"," (JSON) for non-2xx responses",[361,431,432,435],{},[376,433,434],{},"Wrong method",[376,436,437,440,441,444],{},[324,438,439],{},"405 Method Not Allowed"," with an ",[324,442,443],{},"Allow"," header listing the accepted method(s)",[320,446,447,448,338],{},"Each endpoint accepts exactly one HTTP method. A request with any other method returns ",[324,449,450],{},"405",[340,452,454],{"id":453},"endpoint-summary","Endpoint summary",[355,456,457,473],{},[358,458,459],{},[361,460,461,464,467,470],{},[364,462,463],{},"Path",[364,465,466],{},"Method",[364,468,469],{},"Purpose",[364,471,472],{},"Gating",[371,474,475,491,505,522,536,551,568,582,596,610,624,638,652,666,681,695,712,728,748,766,783],{},[361,476,477,482,485,488],{},[376,478,479],{},[324,480,481],{},"\u002Fhealth\u002Flive",[376,483,484],{},"GET",[376,486,487],{},"Liveness probe",[376,489,490],{},"always",[361,492,493,498,500,503],{},[376,494,495],{},[324,496,497],{},"\u002Fhealth\u002Fready",[376,499,484],{},[376,501,502],{},"Readiness probe",[376,504,490],{},[361,506,507,512,514,517],{},[376,508,509],{},[324,510,511],{},"\u002Fmetrics",[376,513,484],{},[376,515,516],{},"Prometheus scrape",[376,518,519],{},[324,520,521],{},"runtime.metrics.enabled",[361,523,524,529,531,534],{},[376,525,526],{},[324,527,528],{},"\u002Finfo",[376,530,484],{},[376,532,533],{},"Application metadata + available endpoints",[376,535,490],{},[361,537,538,543,545,548],{},[376,539,540],{},[324,541,542],{},"\u002Flicense",[376,544,484],{},[376,546,547],{},"Runtime license state",[376,549,550],{},"always (in-cluster exposure only)",[361,552,553,558,560,563],{},[376,554,555],{},[324,556,557],{},"\u002Fconfig",[376,559,484],{},[376,561,562],{},"Merged config, sensitive values masked",[376,564,565],{},[324,566,567],{},"runtime.endpoints.config.enabled",[361,569,570,575,577,580],{},[376,571,572],{},[324,573,574],{},"\u002Fstate",[376,576,484],{},[376,578,579],{},"Application state + transition history",[376,581,490],{},[361,583,584,589,591,594],{},[376,585,586],{},[324,587,588],{},"\u002Ftopology",[376,590,484],{},[376,592,593],{},"StoatFlow-native topology",[376,595,490],{},[361,597,598,603,605,608],{},[376,599,600],{},[324,601,602],{},"\u002Ftopology\u002Fks",[376,604,484],{},[376,606,607],{},"Kafka Streams-compatible topology",[376,609,490],{},[361,611,612,617,619,622],{},[376,613,614],{},[324,615,616],{},"\u002Ftopology\u002Fcompiled",[376,618,484],{},[376,620,621],{},"Compiled (internal) topology",[376,623,490],{},[361,625,626,631,633,636],{},[376,627,628],{},[324,629,630],{},"\u002Fwatermarks",[376,632,484],{},[376,634,635],{},"Global + per-partition watermarks",[376,637,490],{},[361,639,640,645,647,650],{},[376,641,642],{},[324,643,644],{},"\u002Foffsets",[376,646,484],{},[376,648,649],{},"Source + changelog offsets and lag",[376,651,490],{},[361,653,654,659,661,664],{},[376,655,656],{},[324,657,658],{},"\u002Fconsumer",[376,660,484],{},[376,662,663],{},"Consumer group + partition buffer state",[376,665,490],{},[361,667,668,673,676,679],{},[376,669,670],{},[324,671,672],{},"\u002Fpause",[376,674,675],{},"POST",[376,677,678],{},"Pause processing",[376,680,490],{},[361,682,683,688,690,693],{},[376,684,685],{},[324,686,687],{},"\u002Funpause",[376,689,675],{},[376,691,692],{},"Resume processing",[376,694,490],{},[361,696,697,702,704,707],{},[376,698,699],{},[324,700,701],{},"\u002Fha\u002Fstatus",[376,703,484],{},[376,705,706],{},"Hot-standby cluster view",[376,708,709],{},[324,710,711],{},"ha.mode != off",[361,713,714,719,721,724],{},[376,715,716],{},[324,717,718],{},"\u002Fha\u002Fswitch",[376,720,675],{},[376,722,723],{},"Swap active\u002Fstandby roles",[376,725,726],{},[324,727,711],{},[361,729,730,735,737,744],{},[376,731,732],{},[324,733,734],{},"\u002Fha\u002Fpromote",[376,736,675],{},[376,738,739,740,743],{},"Promote a standby (",[324,741,742],{},"?pod=\u003Cid>",")",[376,745,746],{},[324,747,711],{},[361,749,750,755,757,762],{},[376,751,752],{},[324,753,754],{},"\u002Fha\u002Fdemote",[376,756,675],{},[376,758,759,760,743],{},"Demote an active (",[324,761,742],{},[376,763,764],{},[324,765,711],{},[361,767,768,773,775,778],{},[376,769,770],{},[324,771,772],{},"\u002Fdebug\u002Fthreads",[376,774,484],{},[376,776,777],{},"Engine thread snapshot (freeze diagnostics)",[376,779,780],{},[324,781,782],{},"runtime.http.debug.enabled",[361,784,785,790,792,795],{},[376,786,787],{},[324,788,789],{},"\u002Fdebug\u002Fbarriers",[376,791,484],{},[376,793,794],{},"Commit-pipeline state (freeze diagnostics)",[376,796,797],{},[324,798,782],{},[340,800,802],{"id":801},"health","Health",[804,805,807],"h3",{"id":806},"get-healthlive",[324,808,809],{},"GET \u002Fhealth\u002Flive",[320,811,812,813,816,817,820,821,816,824,827,828,831],{},"Kubernetes liveness probe. Aggregates all liveness indicators. Returns ",[324,814,815],{},"200"," with ",[324,818,819],{},"status: \"UP\""," when all are healthy, otherwise ",[324,822,823],{},"503",[324,825,826],{},"status: \"DOWN\"",". Liveness stays ",[324,829,830],{},"UP"," during transient states (startup, shutdown) so the orchestrator does not restart the process unnecessarily.",[833,834,839],"pre",{"className":835,"code":836,"language":837,"meta":838,"style":838},"language-json shiki shiki-themes vitesse-light","{\n  \"status\": \"UP\",\n  \"components\": [\n    { \"name\": \"stoatflow\", \"status\": \"UP\", \"details\": { \"state\": \"RUNNING\" } }\n  ]\n}\n","json","",[324,840,841,850,879,894,969,975],{"__ignoreMap":838},[842,843,846],"span",{"class":844,"line":845},"line",1,[842,847,849],{"class":848},"sYZai","{\n",[842,851,853,857,861,864,867,871,874,876],{"class":844,"line":852},2,[842,854,856],{"class":855},"s61at","  \"",[842,858,860],{"class":859},"su6XF","status",[842,862,863],{"class":855},"\"",[842,865,866],{"class":848},":",[842,868,870],{"class":869},"sSP4y"," \"",[842,872,830],{"class":873},"spphp",[842,875,863],{"class":869},[842,877,878],{"class":848},",\n",[842,880,882,884,887,889,891],{"class":844,"line":881},3,[842,883,856],{"class":855},[842,885,886],{"class":859},"components",[842,888,863],{"class":855},[842,890,866],{"class":848},[842,892,893],{"class":848}," [\n",[842,895,897,900,902,905,907,909,911,914,916,919,921,923,925,927,929,931,933,935,937,940,942,944,947,949,952,954,956,958,961,963,966],{"class":844,"line":896},4,[842,898,899],{"class":848},"    {",[842,901,870],{"class":855},[842,903,904],{"class":859},"name",[842,906,863],{"class":855},[842,908,866],{"class":848},[842,910,870],{"class":869},[842,912,913],{"class":873},"stoatflow",[842,915,863],{"class":869},[842,917,918],{"class":848},",",[842,920,870],{"class":855},[842,922,860],{"class":859},[842,924,863],{"class":855},[842,926,866],{"class":848},[842,928,870],{"class":869},[842,930,830],{"class":873},[842,932,863],{"class":869},[842,934,918],{"class":848},[842,936,870],{"class":855},[842,938,939],{"class":859},"details",[842,941,863],{"class":855},[842,943,866],{"class":848},[842,945,946],{"class":848}," {",[842,948,870],{"class":855},[842,950,951],{"class":859},"state",[842,953,863],{"class":855},[842,955,866],{"class":848},[842,957,870],{"class":869},[842,959,960],{"class":873},"RUNNING",[842,962,863],{"class":869},[842,964,965],{"class":848}," }",[842,967,968],{"class":848}," }\n",[842,970,972],{"class":844,"line":971},5,[842,973,974],{"class":848},"  ]\n",[842,976,978],{"class":844,"line":977},6,[842,979,980],{"class":848},"}\n",[804,982,984],{"id":983},"get-healthready",[324,985,986],{},"GET \u002Fhealth\u002Fready",[320,988,989,990,992,993,995,996,992,998,1001,1002,1004,1005,338],{},"Kubernetes readiness probe. Aggregates all readiness indicators. Returns ",[324,991,815],{},"\u002F",[324,994,830],{}," when ready to serve, otherwise ",[324,997,823],{},[324,999,1000],{},"DOWN",". Readiness reports ",[324,1003,1000],{}," during startup, state restoration, and shutdown. The response body has the same shape as ",[324,1006,481],{},[320,1008,1009,1010,338],{},"The set of indicators (StoatFlow app state, Kafka broker, license, Schema Registry when configured, plus any custom indicators) is documented under ",[329,1011,190],{"href":191},[340,1013,195],{"id":1014},"metrics",[804,1016,1018],{"id":1017},"get-metrics",[324,1019,1020],{},"GET \u002Fmetrics",[320,1022,1023,1024,1027,1028,1030],{},"Prometheus scrape endpoint. Returns metrics in Prometheus text exposition format with content type ",[324,1025,1026],{},"text\u002Fplain; version=0.0.4; charset=utf-8",". Returns ",[324,1029,823],{}," if metrics are not enabled.",[833,1032,1037],{"className":1033,"code":1035,"language":1036,"meta":838},[1034],"language-text","# HELP jvm_memory_used_bytes The amount of used memory\n# TYPE jvm_memory_used_bytes gauge\njvm_memory_used_bytes{application=\"my-app\",area=\"heap\",id=\"G1 Eden Space\"} 1.048576E7\n","text",[324,1038,1035],{"__ignoreMap":838},[320,1040,1041,1042,1044,1045,338],{},"Gated by ",[324,1043,521],{},"; when disabled the handler is not registered. The exported meters are catalogued under ",[329,1046,195],{"href":196},[340,1048,1050],{"id":1049},"introspection","Introspection",[804,1052,1054],{"id":1053},"get-info",[324,1055,1056],{},"GET \u002Finfo",[320,1058,1059,1060,1062],{},"Application metadata: application id, JVM information, Kafka configuration, uptime, current state, and the list of registered endpoints. Optional sections (watermark, offsets, consumer, topology traits) are included when available and enabled. Always returns ",[324,1061,815],{}," once the server is up.",[833,1064,1066],{"className":835,"code":1065,"language":837,"meta":838,"style":838},"{\n  \"app\": { \"applicationId\": \"my-app\" },\n  \"java\": { \"version\": \"25\", \"vendor\": \"...\", \"runtime\": \"...\" },\n  \"kafka\": { \"bootstrapServers\": \"localhost:9092\", \"applicationId\": \"my-app\" },\n  \"uptime\": { \"startTime\": \"2026-01-19T10:00:00Z\", \"uptime\": \"PT1H30M\" },\n  \"state\": { \"current\": \"RUNNING\", \"since\": \"2026-01-19T10:00:05Z\" },\n  \"endpoints\": [\"\u002Fhealth\u002Flive\", \"\u002Fhealth\u002Fready\", \"\u002Finfo\", \"\u002Fmetrics\", \"\u002Ftopology\"]\n}\n",[324,1067,1068,1072,1104,1170,1217,1265,1312,1368],{"__ignoreMap":838},[842,1069,1070],{"class":844,"line":845},[842,1071,849],{"class":848},[842,1073,1074,1076,1079,1081,1083,1085,1087,1090,1092,1094,1096,1099,1101],{"class":844,"line":852},[842,1075,856],{"class":855},[842,1077,1078],{"class":859},"app",[842,1080,863],{"class":855},[842,1082,866],{"class":848},[842,1084,946],{"class":848},[842,1086,870],{"class":855},[842,1088,1089],{"class":859},"applicationId",[842,1091,863],{"class":855},[842,1093,866],{"class":848},[842,1095,870],{"class":869},[842,1097,1098],{"class":873},"my-app",[842,1100,863],{"class":869},[842,1102,1103],{"class":848}," },\n",[842,1105,1106,1108,1111,1113,1115,1117,1119,1122,1124,1126,1128,1131,1133,1135,1137,1140,1142,1144,1146,1149,1151,1153,1155,1158,1160,1162,1164,1166,1168],{"class":844,"line":881},[842,1107,856],{"class":855},[842,1109,1110],{"class":859},"java",[842,1112,863],{"class":855},[842,1114,866],{"class":848},[842,1116,946],{"class":848},[842,1118,870],{"class":855},[842,1120,1121],{"class":859},"version",[842,1123,863],{"class":855},[842,1125,866],{"class":848},[842,1127,870],{"class":869},[842,1129,1130],{"class":873},"25",[842,1132,863],{"class":869},[842,1134,918],{"class":848},[842,1136,870],{"class":855},[842,1138,1139],{"class":859},"vendor",[842,1141,863],{"class":855},[842,1143,866],{"class":848},[842,1145,870],{"class":869},[842,1147,1148],{"class":873},"...",[842,1150,863],{"class":869},[842,1152,918],{"class":848},[842,1154,870],{"class":855},[842,1156,1157],{"class":859},"runtime",[842,1159,863],{"class":855},[842,1161,866],{"class":848},[842,1163,870],{"class":869},[842,1165,1148],{"class":873},[842,1167,863],{"class":869},[842,1169,1103],{"class":848},[842,1171,1172,1174,1177,1179,1181,1183,1185,1188,1190,1192,1194,1197,1199,1201,1203,1205,1207,1209,1211,1213,1215],{"class":844,"line":896},[842,1173,856],{"class":855},[842,1175,1176],{"class":859},"kafka",[842,1178,863],{"class":855},[842,1180,866],{"class":848},[842,1182,946],{"class":848},[842,1184,870],{"class":855},[842,1186,1187],{"class":859},"bootstrapServers",[842,1189,863],{"class":855},[842,1191,866],{"class":848},[842,1193,870],{"class":869},[842,1195,1196],{"class":873},"localhost:9092",[842,1198,863],{"class":869},[842,1200,918],{"class":848},[842,1202,870],{"class":855},[842,1204,1089],{"class":859},[842,1206,863],{"class":855},[842,1208,866],{"class":848},[842,1210,870],{"class":869},[842,1212,1098],{"class":873},[842,1214,863],{"class":869},[842,1216,1103],{"class":848},[842,1218,1219,1221,1224,1226,1228,1230,1232,1235,1237,1239,1241,1244,1246,1248,1250,1252,1254,1256,1258,1261,1263],{"class":844,"line":971},[842,1220,856],{"class":855},[842,1222,1223],{"class":859},"uptime",[842,1225,863],{"class":855},[842,1227,866],{"class":848},[842,1229,946],{"class":848},[842,1231,870],{"class":855},[842,1233,1234],{"class":859},"startTime",[842,1236,863],{"class":855},[842,1238,866],{"class":848},[842,1240,870],{"class":869},[842,1242,1243],{"class":873},"2026-01-19T10:00:00Z",[842,1245,863],{"class":869},[842,1247,918],{"class":848},[842,1249,870],{"class":855},[842,1251,1223],{"class":859},[842,1253,863],{"class":855},[842,1255,866],{"class":848},[842,1257,870],{"class":869},[842,1259,1260],{"class":873},"PT1H30M",[842,1262,863],{"class":869},[842,1264,1103],{"class":848},[842,1266,1267,1269,1271,1273,1275,1277,1279,1282,1284,1286,1288,1290,1292,1294,1296,1299,1301,1303,1305,1308,1310],{"class":844,"line":977},[842,1268,856],{"class":855},[842,1270,951],{"class":859},[842,1272,863],{"class":855},[842,1274,866],{"class":848},[842,1276,946],{"class":848},[842,1278,870],{"class":855},[842,1280,1281],{"class":859},"current",[842,1283,863],{"class":855},[842,1285,866],{"class":848},[842,1287,870],{"class":869},[842,1289,960],{"class":873},[842,1291,863],{"class":869},[842,1293,918],{"class":848},[842,1295,870],{"class":855},[842,1297,1298],{"class":859},"since",[842,1300,863],{"class":855},[842,1302,866],{"class":848},[842,1304,870],{"class":869},[842,1306,1307],{"class":873},"2026-01-19T10:00:05Z",[842,1309,863],{"class":869},[842,1311,1103],{"class":848},[842,1313,1315,1317,1320,1322,1324,1327,1329,1331,1333,1335,1337,1339,1341,1343,1345,1347,1349,1351,1353,1355,1357,1359,1361,1363,1365],{"class":844,"line":1314},7,[842,1316,856],{"class":855},[842,1318,1319],{"class":859},"endpoints",[842,1321,863],{"class":855},[842,1323,866],{"class":848},[842,1325,1326],{"class":848}," [",[842,1328,863],{"class":869},[842,1330,481],{"class":873},[842,1332,863],{"class":869},[842,1334,918],{"class":848},[842,1336,870],{"class":869},[842,1338,497],{"class":873},[842,1340,863],{"class":869},[842,1342,918],{"class":848},[842,1344,870],{"class":869},[842,1346,528],{"class":873},[842,1348,863],{"class":869},[842,1350,918],{"class":848},[842,1352,870],{"class":869},[842,1354,511],{"class":873},[842,1356,863],{"class":869},[842,1358,918],{"class":848},[842,1360,870],{"class":869},[842,1362,588],{"class":873},[842,1364,863],{"class":869},[842,1366,1367],{"class":848},"]\n",[842,1369,1371],{"class":844,"line":1370},8,[842,1372,980],{"class":848},[804,1374,1376],{"id":1375},"get-license",[324,1377,1378],{},"GET \u002Flicense",[320,1380,1381],{},"Current runtime license-validation state.",[1383,1384,1387],"callout",{"color":1385,"icon":1386},"warning","i-lucide-shield",[320,1388,1389,1393,1394,332,1397,1400,1401,1403,1404,1406,1407,332,1409,335,1411,1413],{},[1390,1391,1392],"strong",{},"In-cluster exposure only."," The response contains customer-identifying fields (",[324,1395,1396],{},"licenseId",[324,1398,1399],{},"customerName",", machine counts). Expose only ",[324,1402,481],{}," and ",[324,1405,497],{}," via internet ingress; keep ",[324,1408,542],{},[324,1410,528],{},[324,1412,588],{}," on the in-cluster Service.",[833,1415,1417],{"className":835,"code":1416,"language":837,"meta":838,"style":838},"{\n  \"status\": \"VALID\",\n  \"licenseId\": \"L-abc12-def34\",\n  \"tier\": \"production\",\n  \"customerName\": \"Acme Corp - Production\",\n  \"expiresAt\": \"2027-05-26T00:00:00Z\",\n  \"daysRemaining\": 365,\n  \"machinesUsed\": 3,\n  \"machinesAllowed\": 10,\n  \"lastValidatedAt\": \"2026-05-27T10:30:00Z\",\n  \"cachedJwtExpiresAt\": \"2026-05-28T10:30:00Z\",\n  \"heartbeatLastSuccessAt\": \"2026-05-27T10:30:00Z\",\n  \"consecutiveFailures\": 0,\n  \"graceRemainingSeconds\": 604800,\n  \"modeOnline\": true\n}\n",[324,1418,1419,1423,1442,1461,1481,1500,1520,1537,1553,1570,1591,1612,1632,1649,1666,1682],{"__ignoreMap":838},[842,1420,1421],{"class":844,"line":845},[842,1422,849],{"class":848},[842,1424,1425,1427,1429,1431,1433,1435,1438,1440],{"class":844,"line":852},[842,1426,856],{"class":855},[842,1428,860],{"class":859},[842,1430,863],{"class":855},[842,1432,866],{"class":848},[842,1434,870],{"class":869},[842,1436,1437],{"class":873},"VALID",[842,1439,863],{"class":869},[842,1441,878],{"class":848},[842,1443,1444,1446,1448,1450,1452,1454,1457,1459],{"class":844,"line":881},[842,1445,856],{"class":855},[842,1447,1396],{"class":859},[842,1449,863],{"class":855},[842,1451,866],{"class":848},[842,1453,870],{"class":869},[842,1455,1456],{"class":873},"L-abc12-def34",[842,1458,863],{"class":869},[842,1460,878],{"class":848},[842,1462,1463,1465,1468,1470,1472,1474,1477,1479],{"class":844,"line":896},[842,1464,856],{"class":855},[842,1466,1467],{"class":859},"tier",[842,1469,863],{"class":855},[842,1471,866],{"class":848},[842,1473,870],{"class":869},[842,1475,1476],{"class":873},"production",[842,1478,863],{"class":869},[842,1480,878],{"class":848},[842,1482,1483,1485,1487,1489,1491,1493,1496,1498],{"class":844,"line":971},[842,1484,856],{"class":855},[842,1486,1399],{"class":859},[842,1488,863],{"class":855},[842,1490,866],{"class":848},[842,1492,870],{"class":869},[842,1494,1495],{"class":873},"Acme Corp - Production",[842,1497,863],{"class":869},[842,1499,878],{"class":848},[842,1501,1502,1504,1507,1509,1511,1513,1516,1518],{"class":844,"line":977},[842,1503,856],{"class":855},[842,1505,1506],{"class":859},"expiresAt",[842,1508,863],{"class":855},[842,1510,866],{"class":848},[842,1512,870],{"class":869},[842,1514,1515],{"class":873},"2027-05-26T00:00:00Z",[842,1517,863],{"class":869},[842,1519,878],{"class":848},[842,1521,1522,1524,1527,1529,1531,1535],{"class":844,"line":1314},[842,1523,856],{"class":855},[842,1525,1526],{"class":859},"daysRemaining",[842,1528,863],{"class":855},[842,1530,866],{"class":848},[842,1532,1534],{"class":1533},"s-TwI"," 365",[842,1536,878],{"class":848},[842,1538,1539,1541,1544,1546,1548,1551],{"class":844,"line":1370},[842,1540,856],{"class":855},[842,1542,1543],{"class":859},"machinesUsed",[842,1545,863],{"class":855},[842,1547,866],{"class":848},[842,1549,1550],{"class":1533}," 3",[842,1552,878],{"class":848},[842,1554,1556,1558,1561,1563,1565,1568],{"class":844,"line":1555},9,[842,1557,856],{"class":855},[842,1559,1560],{"class":859},"machinesAllowed",[842,1562,863],{"class":855},[842,1564,866],{"class":848},[842,1566,1567],{"class":1533}," 10",[842,1569,878],{"class":848},[842,1571,1573,1575,1578,1580,1582,1584,1587,1589],{"class":844,"line":1572},10,[842,1574,856],{"class":855},[842,1576,1577],{"class":859},"lastValidatedAt",[842,1579,863],{"class":855},[842,1581,866],{"class":848},[842,1583,870],{"class":869},[842,1585,1586],{"class":873},"2026-05-27T10:30:00Z",[842,1588,863],{"class":869},[842,1590,878],{"class":848},[842,1592,1594,1596,1599,1601,1603,1605,1608,1610],{"class":844,"line":1593},11,[842,1595,856],{"class":855},[842,1597,1598],{"class":859},"cachedJwtExpiresAt",[842,1600,863],{"class":855},[842,1602,866],{"class":848},[842,1604,870],{"class":869},[842,1606,1607],{"class":873},"2026-05-28T10:30:00Z",[842,1609,863],{"class":869},[842,1611,878],{"class":848},[842,1613,1615,1617,1620,1622,1624,1626,1628,1630],{"class":844,"line":1614},12,[842,1616,856],{"class":855},[842,1618,1619],{"class":859},"heartbeatLastSuccessAt",[842,1621,863],{"class":855},[842,1623,866],{"class":848},[842,1625,870],{"class":869},[842,1627,1586],{"class":873},[842,1629,863],{"class":869},[842,1631,878],{"class":848},[842,1633,1635,1637,1640,1642,1644,1647],{"class":844,"line":1634},13,[842,1636,856],{"class":855},[842,1638,1639],{"class":859},"consecutiveFailures",[842,1641,863],{"class":855},[842,1643,866],{"class":848},[842,1645,1646],{"class":1533}," 0",[842,1648,878],{"class":848},[842,1650,1652,1654,1657,1659,1661,1664],{"class":844,"line":1651},14,[842,1653,856],{"class":855},[842,1655,1656],{"class":859},"graceRemainingSeconds",[842,1658,863],{"class":855},[842,1660,866],{"class":848},[842,1662,1663],{"class":1533}," 604800",[842,1665,878],{"class":848},[842,1667,1669,1671,1674,1676,1678],{"class":844,"line":1668},15,[842,1670,856],{"class":855},[842,1672,1673],{"class":859},"modeOnline",[842,1675,863],{"class":855},[842,1677,866],{"class":848},[842,1679,1681],{"class":1680},"sbBg2"," true\n",[842,1683,1685],{"class":844,"line":1684},16,[842,1686,980],{"class":848},[320,1688,1689,1690,1693,1694,338],{},"When no license key is present, the snapshot reports a ",[324,1691,1692],{},"NO_KEY"," status. See ",[329,1695,23],{"href":24},[804,1697,1699],{"id":1698},"get-config",[324,1700,1701],{},"GET \u002Fconfig",[320,1703,1704],{},"The merged runtime configuration with sensitive values (passwords, secrets, tokens) masked. Supports content negotiation:",[355,1706,1707,1720],{},[358,1708,1709],{},[361,1710,1711,1717],{},[364,1712,1713,1716],{},[324,1714,1715],{},"Accept"," header",[364,1718,1719],{},"Response",[371,1721,1722,1734,1753],{},[361,1723,1724,1729],{},[376,1725,1726],{},[324,1727,1728],{},"application\u002Fjson",[376,1730,1731,1732,743],{},"JSON (",[324,1733,408],{},[361,1735,1736,1747],{},[376,1737,1738,332,1741,332,1744],{},[324,1739,1740],{},"text\u002Fyaml",[324,1742,1743],{},"application\u002Fyaml",[324,1745,1746],{},"application\u002Fx-yaml",[376,1748,1749,1750,743],{},"YAML (",[324,1751,1752],{},"text\u002Fyaml; charset=utf-8",[361,1754,1755,1761],{},[376,1756,1757,1760],{},[324,1758,1759],{},"text\u002Fhtml"," (browsers) or unset",[376,1762,1763],{},"YAML (default — more readable)",[833,1765,1769],{"className":1766,"code":1767,"language":1768,"meta":838,"style":838},"language-yaml shiki shiki-themes vitesse-light","stoatflow:\n  application-id: my-app\n  bootstrap-servers: localhost:9092\n  kafka:\n    consumer:\n      sasl.password: \"******\"\nruntime:\n  http:\n    port: 8080\n","yaml",[324,1770,1771,1778,1788,1798,1805,1812,1827,1833,1840],{"__ignoreMap":838},[842,1772,1773,1775],{"class":844,"line":845},[842,1774,913],{"class":859},[842,1776,1777],{"class":848},":\n",[842,1779,1780,1783,1785],{"class":844,"line":852},[842,1781,1782],{"class":859},"  application-id",[842,1784,866],{"class":848},[842,1786,1787],{"class":873}," my-app\n",[842,1789,1790,1793,1795],{"class":844,"line":881},[842,1791,1792],{"class":859},"  bootstrap-servers",[842,1794,866],{"class":848},[842,1796,1797],{"class":873}," localhost:9092\n",[842,1799,1800,1803],{"class":844,"line":896},[842,1801,1802],{"class":859},"  kafka",[842,1804,1777],{"class":848},[842,1806,1807,1810],{"class":844,"line":971},[842,1808,1809],{"class":859},"    consumer",[842,1811,1777],{"class":848},[842,1813,1814,1817,1819,1821,1824],{"class":844,"line":977},[842,1815,1816],{"class":859},"      sasl.password",[842,1818,866],{"class":848},[842,1820,870],{"class":869},[842,1822,1823],{"class":873},"******",[842,1825,1826],{"class":869},"\"\n",[842,1828,1829,1831],{"class":844,"line":1314},[842,1830,1157],{"class":859},[842,1832,1777],{"class":848},[842,1834,1835,1838],{"class":844,"line":1370},[842,1836,1837],{"class":859},"  http",[842,1839,1777],{"class":848},[842,1841,1842,1845,1847],{"class":844,"line":1555},[842,1843,1844],{"class":859},"    port",[842,1846,866],{"class":848},[842,1848,1849],{"class":1533}," 8080\n",[320,1851,1041,1852,1854],{},[324,1853,567],{},"; when disabled the handler is not registered.",[804,1856,1858],{"id":1857},"get-state",[324,1859,1860],{},"GET \u002Fstate",[320,1862,1863,1864,1867,1868,1871,1872,1874],{},"Current application state, when it was entered, and the full state-transition history (newest first; history size is bounded by ",[324,1865,1866],{},"stoatflow.processing.state-transition-history-size",", default ",[324,1869,1870],{},"20","). Returns ",[324,1873,823],{}," if the engine is not yet initialized.",[833,1876,1878],{"className":835,"code":1877,"language":837,"meta":838,"style":838},"{\n  \"current\": \"RUNNING\",\n  \"since\": \"2026-01-19T10:00:05+01:00\",\n  \"history\": [\n    { \"state\": \"RUNNING\", \"from\": \"STARTING\", \"at\": \"2026-01-19T10:00:05+01:00\" },\n    { \"state\": \"STARTING\", \"from\": \"CREATED\", \"at\": \"2026-01-19T10:00:00+01:00\" }\n  ]\n}\n",[324,1879,1880,1884,1902,1921,1934,1989,2043,2047],{"__ignoreMap":838},[842,1881,1882],{"class":844,"line":845},[842,1883,849],{"class":848},[842,1885,1886,1888,1890,1892,1894,1896,1898,1900],{"class":844,"line":852},[842,1887,856],{"class":855},[842,1889,1281],{"class":859},[842,1891,863],{"class":855},[842,1893,866],{"class":848},[842,1895,870],{"class":869},[842,1897,960],{"class":873},[842,1899,863],{"class":869},[842,1901,878],{"class":848},[842,1903,1904,1906,1908,1910,1912,1914,1917,1919],{"class":844,"line":881},[842,1905,856],{"class":855},[842,1907,1298],{"class":859},[842,1909,863],{"class":855},[842,1911,866],{"class":848},[842,1913,870],{"class":869},[842,1915,1916],{"class":873},"2026-01-19T10:00:05+01:00",[842,1918,863],{"class":869},[842,1920,878],{"class":848},[842,1922,1923,1925,1928,1930,1932],{"class":844,"line":896},[842,1924,856],{"class":855},[842,1926,1927],{"class":859},"history",[842,1929,863],{"class":855},[842,1931,866],{"class":848},[842,1933,893],{"class":848},[842,1935,1936,1938,1940,1942,1944,1946,1948,1950,1952,1954,1956,1959,1961,1963,1965,1968,1970,1972,1974,1977,1979,1981,1983,1985,1987],{"class":844,"line":971},[842,1937,899],{"class":848},[842,1939,870],{"class":855},[842,1941,951],{"class":859},[842,1943,863],{"class":855},[842,1945,866],{"class":848},[842,1947,870],{"class":869},[842,1949,960],{"class":873},[842,1951,863],{"class":869},[842,1953,918],{"class":848},[842,1955,870],{"class":855},[842,1957,1958],{"class":859},"from",[842,1960,863],{"class":855},[842,1962,866],{"class":848},[842,1964,870],{"class":869},[842,1966,1967],{"class":873},"STARTING",[842,1969,863],{"class":869},[842,1971,918],{"class":848},[842,1973,870],{"class":855},[842,1975,1976],{"class":859},"at",[842,1978,863],{"class":855},[842,1980,866],{"class":848},[842,1982,870],{"class":869},[842,1984,1916],{"class":873},[842,1986,863],{"class":869},[842,1988,1103],{"class":848},[842,1990,1991,1993,1995,1997,1999,2001,2003,2005,2007,2009,2011,2013,2015,2017,2019,2022,2024,2026,2028,2030,2032,2034,2036,2039,2041],{"class":844,"line":977},[842,1992,899],{"class":848},[842,1994,870],{"class":855},[842,1996,951],{"class":859},[842,1998,863],{"class":855},[842,2000,866],{"class":848},[842,2002,870],{"class":869},[842,2004,1967],{"class":873},[842,2006,863],{"class":869},[842,2008,918],{"class":848},[842,2010,870],{"class":855},[842,2012,1958],{"class":859},[842,2014,863],{"class":855},[842,2016,866],{"class":848},[842,2018,870],{"class":869},[842,2020,2021],{"class":873},"CREATED",[842,2023,863],{"class":869},[842,2025,918],{"class":848},[842,2027,870],{"class":855},[842,2029,1976],{"class":859},[842,2031,863],{"class":855},[842,2033,866],{"class":848},[842,2035,870],{"class":869},[842,2037,2038],{"class":873},"2026-01-19T10:00:00+01:00",[842,2040,863],{"class":869},[842,2042,968],{"class":848},[842,2044,2045],{"class":844,"line":1314},[842,2046,974],{"class":848},[842,2048,2049],{"class":844,"line":1370},[842,2050,980],{"class":848},[340,2052,2054],{"id":2053},"topology","Topology",[320,2056,2057,2058,2061,2062,1874],{},"All three topology endpoints support content negotiation: ",[324,2059,2060],{},"Accept: application\u002Fjson"," returns JSON; otherwise a human-readable text description. Each returns ",[324,2063,823],{},[804,2065,2067],{"id":2066},"get-topology",[324,2068,2069],{},"GET \u002Ftopology",[320,2071,2072],{},"The StoatFlow-native topology with richer metadata than the Kafka Streams view — scheduled sources with their scheduling configuration, processor state-store names, and the full sub-topology structure.",[833,2074,2076],{"className":835,"code":2075,"language":837,"meta":838,"style":838},"{ \"scheduledSources\": [], \"subtopologies\": [] }\n",[324,2077,2078],{"__ignoreMap":838},[842,2079,2080,2083,2085,2088,2090,2092,2095,2097,2100,2102,2104,2107],{"class":844,"line":845},[842,2081,2082],{"class":848},"{",[842,2084,870],{"class":855},[842,2086,2087],{"class":859},"scheduledSources",[842,2089,863],{"class":855},[842,2091,866],{"class":848},[842,2093,2094],{"class":848}," [],",[842,2096,870],{"class":855},[842,2098,2099],{"class":859},"subtopologies",[842,2101,863],{"class":855},[842,2103,866],{"class":848},[842,2105,2106],{"class":848}," []",[842,2108,968],{"class":848},[804,2110,2112],{"id":2111},"get-topologyks",[324,2113,2114],{},"GET \u002Ftopology\u002Fks",[320,2116,2117,2118,2121],{},"The same topology rendered in a format compatible with Kafka Streams' ",[324,2119,2120],{},"Topology#describe()"," output, for tools that expect the standard Kafka Streams shape.",[833,2123,2126],{"className":2124,"code":2125,"language":1036,"meta":838},[1034],"Topologies:\n   Sub-topology: 0\n    Source: source1 (topics: [input-topic])\n      --> processor1\n    Processor: processor1 (stores: [])\n      --> sink1\n      \u003C-- source1\n",[324,2127,2125],{"__ignoreMap":838},[804,2129,2131],{"id":2130},"get-topologycompiled",[324,2132,2133],{},"GET \u002Ftopology\u002Fcompiled",[320,2135,2136,2137,2139],{},"The compiled topology — the internal representation produced by the topology compiler, including per-source processor DAGs, sub-topology boundaries, timer-aware processors, and scheduled sources. Useful for verifying how the DSL was compiled into execution units. Returns ",[324,2138,823],{}," until the application has started (the compiled form is only available after start). The exact JSON structure is an internal representation and may change between releases; treat it as a diagnostic view, not a stable contract.",[340,2141,2143],{"id":2142},"runtime-state","Runtime state",[804,2145,2147],{"id":2146},"get-watermarks",[324,2148,2149],{},"GET \u002Fwatermarks",[320,2151,2152,2153,2155],{},"Global and per-partition watermark state: each partition reports its watermark (epoch ms + ISO 8601), idle flag, and last event time. Returns ",[324,2154,823],{}," if the engine is not initialized or no partitions are registered yet.",[833,2157,2159],{"className":835,"code":2158,"language":837,"meta":838,"style":838},"{\n  \"globalMs\": 1706889600000,\n  \"globalIso\": \"2026-02-02T12:00:00+01:00\",\n  \"partitions\": {\n    \"input-topic:0\": {\n      \"watermarkMs\": 1706889600000,\n      \"watermarkIso\": \"2026-02-02T12:00:00+01:00\",\n      \"idle\": false,\n      \"lastEventTimeMs\": 1706889650000,\n      \"lastEventTimeIso\": \"2026-02-02T12:00:50+01:00\"\n    }\n  }\n}\n",[324,2160,2161,2165,2181,2201,2215,2229,2245,2264,2280,2296,2314,2319,2324],{"__ignoreMap":838},[842,2162,2163],{"class":844,"line":845},[842,2164,849],{"class":848},[842,2166,2167,2169,2172,2174,2176,2179],{"class":844,"line":852},[842,2168,856],{"class":855},[842,2170,2171],{"class":859},"globalMs",[842,2173,863],{"class":855},[842,2175,866],{"class":848},[842,2177,2178],{"class":1533}," 1706889600000",[842,2180,878],{"class":848},[842,2182,2183,2185,2188,2190,2192,2194,2197,2199],{"class":844,"line":881},[842,2184,856],{"class":855},[842,2186,2187],{"class":859},"globalIso",[842,2189,863],{"class":855},[842,2191,866],{"class":848},[842,2193,870],{"class":869},[842,2195,2196],{"class":873},"2026-02-02T12:00:00+01:00",[842,2198,863],{"class":869},[842,2200,878],{"class":848},[842,2202,2203,2205,2208,2210,2212],{"class":844,"line":896},[842,2204,856],{"class":855},[842,2206,2207],{"class":859},"partitions",[842,2209,863],{"class":855},[842,2211,866],{"class":848},[842,2213,2214],{"class":848}," {\n",[842,2216,2217,2220,2223,2225,2227],{"class":844,"line":971},[842,2218,2219],{"class":855},"    \"",[842,2221,2222],{"class":859},"input-topic:0",[842,2224,863],{"class":855},[842,2226,866],{"class":848},[842,2228,2214],{"class":848},[842,2230,2231,2234,2237,2239,2241,2243],{"class":844,"line":977},[842,2232,2233],{"class":855},"      \"",[842,2235,2236],{"class":859},"watermarkMs",[842,2238,863],{"class":855},[842,2240,866],{"class":848},[842,2242,2178],{"class":1533},[842,2244,878],{"class":848},[842,2246,2247,2249,2252,2254,2256,2258,2260,2262],{"class":844,"line":1314},[842,2248,2233],{"class":855},[842,2250,2251],{"class":859},"watermarkIso",[842,2253,863],{"class":855},[842,2255,866],{"class":848},[842,2257,870],{"class":869},[842,2259,2196],{"class":873},[842,2261,863],{"class":869},[842,2263,878],{"class":848},[842,2265,2266,2268,2271,2273,2275,2278],{"class":844,"line":1370},[842,2267,2233],{"class":855},[842,2269,2270],{"class":859},"idle",[842,2272,863],{"class":855},[842,2274,866],{"class":848},[842,2276,2277],{"class":1680}," false",[842,2279,878],{"class":848},[842,2281,2282,2284,2287,2289,2291,2294],{"class":844,"line":1555},[842,2283,2233],{"class":855},[842,2285,2286],{"class":859},"lastEventTimeMs",[842,2288,863],{"class":855},[842,2290,866],{"class":848},[842,2292,2293],{"class":1533}," 1706889650000",[842,2295,878],{"class":848},[842,2297,2298,2300,2303,2305,2307,2309,2312],{"class":844,"line":1572},[842,2299,2233],{"class":855},[842,2301,2302],{"class":859},"lastEventTimeIso",[842,2304,863],{"class":855},[842,2306,866],{"class":848},[842,2308,870],{"class":869},[842,2310,2311],{"class":873},"2026-02-02T12:00:50+01:00",[842,2313,1826],{"class":869},[842,2315,2316],{"class":844,"line":1593},[842,2317,2318],{"class":848},"    }\n",[842,2320,2321],{"class":844,"line":1614},[842,2322,2323],{"class":848},"  }\n",[842,2325,2326],{"class":844,"line":1634},[842,2327,980],{"class":848},[804,2329,2331],{"id":2330},"get-offsets",[324,2332,2333],{},"GET \u002Foffsets",[320,2335,2336,2337,2339],{},"Per-partition committed offsets and lag for source topics, plus committed offsets for state-store changelog topics. All values are read from locally cached state (no Kafka RPCs). Returns ",[324,2338,823],{}," if the engine is not initialized.",[833,2341,2343],{"className":835,"code":2342,"language":837,"meta":838,"style":838},"{\n  \"totalLag\": 79,\n  \"sources\": [\n    {\n      \"topic\": \"orders\",\n      \"totalLag\": 79,\n      \"partitions\": [\n        { \"partition\": 0, \"committedOffset\": 12345, \"logEndOffset\": 12400, \"lag\": 55 }\n      ]\n    }\n  ],\n  \"changelogs\": [\n    {\n      \"topic\": \"my-app-order-counts-changelog\",\n      \"store\": \"order-counts\",\n      \"partitions\": [ { \"partition\": 0, \"committedOffset\": 5432 } ]\n    }\n  ]\n}\n",[324,2344,2345,2349,2365,2378,2383,2403,2417,2429,2489,2494,2498,2503,2516,2520,2539,2559,2601,2606,2611],{"__ignoreMap":838},[842,2346,2347],{"class":844,"line":845},[842,2348,849],{"class":848},[842,2350,2351,2353,2356,2358,2360,2363],{"class":844,"line":852},[842,2352,856],{"class":855},[842,2354,2355],{"class":859},"totalLag",[842,2357,863],{"class":855},[842,2359,866],{"class":848},[842,2361,2362],{"class":1533}," 79",[842,2364,878],{"class":848},[842,2366,2367,2369,2372,2374,2376],{"class":844,"line":881},[842,2368,856],{"class":855},[842,2370,2371],{"class":859},"sources",[842,2373,863],{"class":855},[842,2375,866],{"class":848},[842,2377,893],{"class":848},[842,2379,2380],{"class":844,"line":896},[842,2381,2382],{"class":848},"    {\n",[842,2384,2385,2387,2390,2392,2394,2396,2399,2401],{"class":844,"line":971},[842,2386,2233],{"class":855},[842,2388,2389],{"class":859},"topic",[842,2391,863],{"class":855},[842,2393,866],{"class":848},[842,2395,870],{"class":869},[842,2397,2398],{"class":873},"orders",[842,2400,863],{"class":869},[842,2402,878],{"class":848},[842,2404,2405,2407,2409,2411,2413,2415],{"class":844,"line":977},[842,2406,2233],{"class":855},[842,2408,2355],{"class":859},[842,2410,863],{"class":855},[842,2412,866],{"class":848},[842,2414,2362],{"class":1533},[842,2416,878],{"class":848},[842,2418,2419,2421,2423,2425,2427],{"class":844,"line":1314},[842,2420,2233],{"class":855},[842,2422,2207],{"class":859},[842,2424,863],{"class":855},[842,2426,866],{"class":848},[842,2428,893],{"class":848},[842,2430,2431,2434,2436,2439,2441,2443,2445,2447,2449,2452,2454,2456,2459,2461,2463,2466,2468,2470,2473,2475,2477,2480,2482,2484,2487],{"class":844,"line":1370},[842,2432,2433],{"class":848},"        {",[842,2435,870],{"class":855},[842,2437,2438],{"class":859},"partition",[842,2440,863],{"class":855},[842,2442,866],{"class":848},[842,2444,1646],{"class":1533},[842,2446,918],{"class":848},[842,2448,870],{"class":855},[842,2450,2451],{"class":859},"committedOffset",[842,2453,863],{"class":855},[842,2455,866],{"class":848},[842,2457,2458],{"class":1533}," 12345",[842,2460,918],{"class":848},[842,2462,870],{"class":855},[842,2464,2465],{"class":859},"logEndOffset",[842,2467,863],{"class":855},[842,2469,866],{"class":848},[842,2471,2472],{"class":1533}," 12400",[842,2474,918],{"class":848},[842,2476,870],{"class":855},[842,2478,2479],{"class":859},"lag",[842,2481,863],{"class":855},[842,2483,866],{"class":848},[842,2485,2486],{"class":1533}," 55",[842,2488,968],{"class":848},[842,2490,2491],{"class":844,"line":1555},[842,2492,2493],{"class":848},"      ]\n",[842,2495,2496],{"class":844,"line":1572},[842,2497,2318],{"class":848},[842,2499,2500],{"class":844,"line":1593},[842,2501,2502],{"class":848},"  ],\n",[842,2504,2505,2507,2510,2512,2514],{"class":844,"line":1614},[842,2506,856],{"class":855},[842,2508,2509],{"class":859},"changelogs",[842,2511,863],{"class":855},[842,2513,866],{"class":848},[842,2515,893],{"class":848},[842,2517,2518],{"class":844,"line":1634},[842,2519,2382],{"class":848},[842,2521,2522,2524,2526,2528,2530,2532,2535,2537],{"class":844,"line":1651},[842,2523,2233],{"class":855},[842,2525,2389],{"class":859},[842,2527,863],{"class":855},[842,2529,866],{"class":848},[842,2531,870],{"class":869},[842,2533,2534],{"class":873},"my-app-order-counts-changelog",[842,2536,863],{"class":869},[842,2538,878],{"class":848},[842,2540,2541,2543,2546,2548,2550,2552,2555,2557],{"class":844,"line":1668},[842,2542,2233],{"class":855},[842,2544,2545],{"class":859},"store",[842,2547,863],{"class":855},[842,2549,866],{"class":848},[842,2551,870],{"class":869},[842,2553,2554],{"class":873},"order-counts",[842,2556,863],{"class":869},[842,2558,878],{"class":848},[842,2560,2561,2563,2565,2567,2569,2571,2573,2575,2577,2579,2581,2583,2585,2587,2589,2591,2593,2596,2598],{"class":844,"line":1684},[842,2562,2233],{"class":855},[842,2564,2207],{"class":859},[842,2566,863],{"class":855},[842,2568,866],{"class":848},[842,2570,1326],{"class":848},[842,2572,946],{"class":848},[842,2574,870],{"class":855},[842,2576,2438],{"class":859},[842,2578,863],{"class":855},[842,2580,866],{"class":848},[842,2582,1646],{"class":1533},[842,2584,918],{"class":848},[842,2586,870],{"class":855},[842,2588,2451],{"class":859},[842,2590,863],{"class":855},[842,2592,866],{"class":848},[842,2594,2595],{"class":1533}," 5432",[842,2597,965],{"class":848},[842,2599,2600],{"class":848}," ]\n",[842,2602,2604],{"class":844,"line":2603},17,[842,2605,2318],{"class":848},[842,2607,2609],{"class":844,"line":2608},18,[842,2610,974],{"class":848},[842,2612,2614],{"class":844,"line":2613},19,[842,2615,980],{"class":848},[804,2617,2619],{"id":2618},"get-consumer",[324,2620,2621],{},"GET \u002Fconsumer",[320,2623,2624,2625,2627],{},"Consumer group metadata, source subscription, last commit time, and per-partition buffer utilization with pause state. Returns ",[324,2626,823],{}," if the engine is not initialized or the consumer has not yet been assigned partitions.",[833,2629,2631],{"className":835,"code":2630,"language":837,"meta":838,"style":838},"{\n  \"group\": {\n    \"groupId\": \"my-app\",\n    \"memberId\": \"consumer-my-app-1-abc123\",\n    \"generationId\": 3,\n    \"groupInstanceId\": null\n  },\n  \"subscription\": [\"orders\", \"payments\"],\n  \"lastCommitMs\": 1706889700000,\n  \"lastCommitIso\": \"2026-02-02T12:01:40+01:00\",\n  \"assignment\": {\n    \"orders:0\": { \"buffered\": 42, \"bufferCapacity\": 10000, \"paused\": false },\n    \"payments:0\": { \"buffered\": 8500, \"bufferCapacity\": 10000, \"paused\": true }\n  }\n}\n",[324,2632,2633,2637,2650,2669,2689,2704,2718,2723,2754,2770,2790,2803,2857,2908,2912],{"__ignoreMap":838},[842,2634,2635],{"class":844,"line":845},[842,2636,849],{"class":848},[842,2638,2639,2641,2644,2646,2648],{"class":844,"line":852},[842,2640,856],{"class":855},[842,2642,2643],{"class":859},"group",[842,2645,863],{"class":855},[842,2647,866],{"class":848},[842,2649,2214],{"class":848},[842,2651,2652,2654,2657,2659,2661,2663,2665,2667],{"class":844,"line":881},[842,2653,2219],{"class":855},[842,2655,2656],{"class":859},"groupId",[842,2658,863],{"class":855},[842,2660,866],{"class":848},[842,2662,870],{"class":869},[842,2664,1098],{"class":873},[842,2666,863],{"class":869},[842,2668,878],{"class":848},[842,2670,2671,2673,2676,2678,2680,2682,2685,2687],{"class":844,"line":896},[842,2672,2219],{"class":855},[842,2674,2675],{"class":859},"memberId",[842,2677,863],{"class":855},[842,2679,866],{"class":848},[842,2681,870],{"class":869},[842,2683,2684],{"class":873},"consumer-my-app-1-abc123",[842,2686,863],{"class":869},[842,2688,878],{"class":848},[842,2690,2691,2693,2696,2698,2700,2702],{"class":844,"line":971},[842,2692,2219],{"class":855},[842,2694,2695],{"class":859},"generationId",[842,2697,863],{"class":855},[842,2699,866],{"class":848},[842,2701,1550],{"class":1533},[842,2703,878],{"class":848},[842,2705,2706,2708,2711,2713,2715],{"class":844,"line":977},[842,2707,2219],{"class":855},[842,2709,2710],{"class":859},"groupInstanceId",[842,2712,863],{"class":855},[842,2714,866],{"class":848},[842,2716,2717],{"class":1680}," null\n",[842,2719,2720],{"class":844,"line":1314},[842,2721,2722],{"class":848},"  },\n",[842,2724,2725,2727,2730,2732,2734,2736,2738,2740,2742,2744,2746,2749,2751],{"class":844,"line":1370},[842,2726,856],{"class":855},[842,2728,2729],{"class":859},"subscription",[842,2731,863],{"class":855},[842,2733,866],{"class":848},[842,2735,1326],{"class":848},[842,2737,863],{"class":869},[842,2739,2398],{"class":873},[842,2741,863],{"class":869},[842,2743,918],{"class":848},[842,2745,870],{"class":869},[842,2747,2748],{"class":873},"payments",[842,2750,863],{"class":869},[842,2752,2753],{"class":848},"],\n",[842,2755,2756,2758,2761,2763,2765,2768],{"class":844,"line":1555},[842,2757,856],{"class":855},[842,2759,2760],{"class":859},"lastCommitMs",[842,2762,863],{"class":855},[842,2764,866],{"class":848},[842,2766,2767],{"class":1533}," 1706889700000",[842,2769,878],{"class":848},[842,2771,2772,2774,2777,2779,2781,2783,2786,2788],{"class":844,"line":1572},[842,2773,856],{"class":855},[842,2775,2776],{"class":859},"lastCommitIso",[842,2778,863],{"class":855},[842,2780,866],{"class":848},[842,2782,870],{"class":869},[842,2784,2785],{"class":873},"2026-02-02T12:01:40+01:00",[842,2787,863],{"class":869},[842,2789,878],{"class":848},[842,2791,2792,2794,2797,2799,2801],{"class":844,"line":1593},[842,2793,856],{"class":855},[842,2795,2796],{"class":859},"assignment",[842,2798,863],{"class":855},[842,2800,866],{"class":848},[842,2802,2214],{"class":848},[842,2804,2805,2807,2810,2812,2814,2816,2818,2821,2823,2825,2828,2830,2832,2835,2837,2839,2842,2844,2846,2849,2851,2853,2855],{"class":844,"line":1614},[842,2806,2219],{"class":855},[842,2808,2809],{"class":859},"orders:0",[842,2811,863],{"class":855},[842,2813,866],{"class":848},[842,2815,946],{"class":848},[842,2817,870],{"class":855},[842,2819,2820],{"class":859},"buffered",[842,2822,863],{"class":855},[842,2824,866],{"class":848},[842,2826,2827],{"class":1533}," 42",[842,2829,918],{"class":848},[842,2831,870],{"class":855},[842,2833,2834],{"class":859},"bufferCapacity",[842,2836,863],{"class":855},[842,2838,866],{"class":848},[842,2840,2841],{"class":1533}," 10000",[842,2843,918],{"class":848},[842,2845,870],{"class":855},[842,2847,2848],{"class":859},"paused",[842,2850,863],{"class":855},[842,2852,866],{"class":848},[842,2854,2277],{"class":1680},[842,2856,1103],{"class":848},[842,2858,2859,2861,2864,2866,2868,2870,2872,2874,2876,2878,2881,2883,2885,2887,2889,2891,2893,2895,2897,2899,2901,2903,2906],{"class":844,"line":1634},[842,2860,2219],{"class":855},[842,2862,2863],{"class":859},"payments:0",[842,2865,863],{"class":855},[842,2867,866],{"class":848},[842,2869,946],{"class":848},[842,2871,870],{"class":855},[842,2873,2820],{"class":859},[842,2875,863],{"class":855},[842,2877,866],{"class":848},[842,2879,2880],{"class":1533}," 8500",[842,2882,918],{"class":848},[842,2884,870],{"class":855},[842,2886,2834],{"class":859},[842,2888,863],{"class":855},[842,2890,866],{"class":848},[842,2892,2841],{"class":1533},[842,2894,918],{"class":848},[842,2896,870],{"class":855},[842,2898,2848],{"class":859},[842,2900,863],{"class":855},[842,2902,866],{"class":848},[842,2904,2905],{"class":1680}," true",[842,2907,968],{"class":848},[842,2909,2910],{"class":844,"line":1651},[842,2911,2323],{"class":848},[842,2913,2914],{"class":844,"line":1668},[842,2915,980],{"class":848},[340,2917,2919],{"id":2918},"admin","Admin",[804,2921,2923],{"id":2922},"post-pause",[324,2924,2925],{},"POST \u002Fpause",[320,2927,2928,2929,2932,2933,2935,2936,2939],{},"Pauses processing: transitions the application toward ",[324,2930,2931],{},"PAUSED",", draining in-flight work first. Returns ",[324,2934,823],{}," if the engine is not initialized, or ",[324,2937,2938],{},"400"," if the current state cannot be paused (the error body explains why).",[833,2941,2943],{"className":835,"code":2942,"language":837,"meta":838,"style":838},"{ \"status\": \"pausing\", \"state\": \"DRAINING\" }\n",[324,2944,2945],{"__ignoreMap":838},[842,2946,2947,2949,2951,2953,2955,2957,2959,2962,2964,2966,2968,2970,2972,2974,2976,2979,2981],{"class":844,"line":845},[842,2948,2082],{"class":848},[842,2950,870],{"class":855},[842,2952,860],{"class":859},[842,2954,863],{"class":855},[842,2956,866],{"class":848},[842,2958,870],{"class":869},[842,2960,2961],{"class":873},"pausing",[842,2963,863],{"class":869},[842,2965,918],{"class":848},[842,2967,870],{"class":855},[842,2969,951],{"class":859},[842,2971,863],{"class":855},[842,2973,866],{"class":848},[842,2975,870],{"class":869},[842,2977,2978],{"class":873},"DRAINING",[842,2980,863],{"class":869},[842,2982,968],{"class":848},[804,2984,2986],{"id":2985},"post-unpause",[324,2987,2988],{},"POST \u002Funpause",[320,2990,2991,2992,2994,2995,2997,2998,1027,3000,2935,3002,3004],{},"Resumes processing: transitions from ",[324,2993,2931],{}," \u002F ",[324,2996,2978],{}," back to ",[324,2999,960],{},[324,3001,823],{},[324,3003,2938],{}," if the current state cannot be unpaused.",[833,3006,3008],{"className":835,"code":3007,"language":837,"meta":838,"style":838},"{ \"status\": \"resumed\", \"state\": \"RUNNING\" }\n",[324,3009,3010],{"__ignoreMap":838},[842,3011,3012,3014,3016,3018,3020,3022,3024,3027,3029,3031,3033,3035,3037,3039,3041,3043,3045],{"class":844,"line":845},[842,3013,2082],{"class":848},[842,3015,870],{"class":855},[842,3017,860],{"class":859},[842,3019,863],{"class":855},[842,3021,866],{"class":848},[842,3023,870],{"class":869},[842,3025,3026],{"class":873},"resumed",[842,3028,863],{"class":869},[842,3030,918],{"class":848},[842,3032,870],{"class":855},[842,3034,951],{"class":859},[842,3036,863],{"class":855},[842,3038,866],{"class":848},[842,3040,870],{"class":869},[842,3042,960],{"class":873},[842,3044,863],{"class":869},[842,3046,968],{"class":848},[320,3048,3049,3050,3053],{},"See ",[329,3051,3052],{"href":201},"Pause \u002F unpause"," for the operational guide.",[340,3055,233],{"id":3056},"high-availability",[320,3058,3059,3060,3062,3063,3066,3067,3069,3070,3053],{},"These endpoints are registered only when ",[324,3061,711],{},". They return ",[324,3064,3065],{},"404"," when HA is disabled and ",[324,3068,823],{}," before the engine is initialized. See ",[329,3071,233],{"href":234},[804,3073,3075],{"id":3074},"get-hastatus",[324,3076,3077],{},"GET \u002Fha\u002Fstatus",[320,3079,3080,3081,3084,3085,3088],{},"This pod's view of the hot-standby cluster: its own role, replication lag, coordinator-tail freshness, ready-standby count vs ",[324,3082,3083],{},"ha.desired-standbys",", promotion-token epoch\u002Fholder, restart-required reason (or ",[324,3086,3087],{},"null","), and the peers it observes.",[833,3090,3092],{"className":835,"code":3091,"language":837,"meta":838,"style":838},"{\n  \"selfPodId\": \"my-stream-app-0\",\n  \"selfRole\": \"ACTIVE\",\n  \"selfState\": \"ACTIVE\",\n  \"replicationLagRecords\": 0,\n  \"replicationLagMs\": 0,\n  \"tailFreshnessMs\": 120,\n  \"tailCaughtUp\": true,\n  \"readyStandbyCount\": 1,\n  \"desiredStandbys\": 1,\n  \"redundancyBelowDesired\": false,\n  \"tokenEpoch\": 7,\n  \"tokenHolder\": \"my-stream-app-0\",\n  \"restartRequired\": null,\n  \"peers\": [\n    { \"podId\": \"my-stream-app-1\", \"role\": \"STANDBY\", \"state\": \"READY_STANDBY\",\n      \"replicationLagRecords\": 1240, \"replicationLagMs\": 85, \"generation\": 7,\n      \"freshnessMs\": 420, \"failoverPriority\": 0 }\n  ]\n}\n",[324,3093,3094,3098,3118,3138,3157,3172,3187,3203,3218,3234,3249,3264,3280,3299,3315,3328,3385,3426,3455,3459],{"__ignoreMap":838},[842,3095,3096],{"class":844,"line":845},[842,3097,849],{"class":848},[842,3099,3100,3102,3105,3107,3109,3111,3114,3116],{"class":844,"line":852},[842,3101,856],{"class":855},[842,3103,3104],{"class":859},"selfPodId",[842,3106,863],{"class":855},[842,3108,866],{"class":848},[842,3110,870],{"class":869},[842,3112,3113],{"class":873},"my-stream-app-0",[842,3115,863],{"class":869},[842,3117,878],{"class":848},[842,3119,3120,3122,3125,3127,3129,3131,3134,3136],{"class":844,"line":881},[842,3121,856],{"class":855},[842,3123,3124],{"class":859},"selfRole",[842,3126,863],{"class":855},[842,3128,866],{"class":848},[842,3130,870],{"class":869},[842,3132,3133],{"class":873},"ACTIVE",[842,3135,863],{"class":869},[842,3137,878],{"class":848},[842,3139,3140,3142,3145,3147,3149,3151,3153,3155],{"class":844,"line":896},[842,3141,856],{"class":855},[842,3143,3144],{"class":859},"selfState",[842,3146,863],{"class":855},[842,3148,866],{"class":848},[842,3150,870],{"class":869},[842,3152,3133],{"class":873},[842,3154,863],{"class":869},[842,3156,878],{"class":848},[842,3158,3159,3161,3164,3166,3168,3170],{"class":844,"line":971},[842,3160,856],{"class":855},[842,3162,3163],{"class":859},"replicationLagRecords",[842,3165,863],{"class":855},[842,3167,866],{"class":848},[842,3169,1646],{"class":1533},[842,3171,878],{"class":848},[842,3173,3174,3176,3179,3181,3183,3185],{"class":844,"line":977},[842,3175,856],{"class":855},[842,3177,3178],{"class":859},"replicationLagMs",[842,3180,863],{"class":855},[842,3182,866],{"class":848},[842,3184,1646],{"class":1533},[842,3186,878],{"class":848},[842,3188,3189,3191,3194,3196,3198,3201],{"class":844,"line":1314},[842,3190,856],{"class":855},[842,3192,3193],{"class":859},"tailFreshnessMs",[842,3195,863],{"class":855},[842,3197,866],{"class":848},[842,3199,3200],{"class":1533}," 120",[842,3202,878],{"class":848},[842,3204,3205,3207,3210,3212,3214,3216],{"class":844,"line":1370},[842,3206,856],{"class":855},[842,3208,3209],{"class":859},"tailCaughtUp",[842,3211,863],{"class":855},[842,3213,866],{"class":848},[842,3215,2905],{"class":1680},[842,3217,878],{"class":848},[842,3219,3220,3222,3225,3227,3229,3232],{"class":844,"line":1555},[842,3221,856],{"class":855},[842,3223,3224],{"class":859},"readyStandbyCount",[842,3226,863],{"class":855},[842,3228,866],{"class":848},[842,3230,3231],{"class":1533}," 1",[842,3233,878],{"class":848},[842,3235,3236,3238,3241,3243,3245,3247],{"class":844,"line":1572},[842,3237,856],{"class":855},[842,3239,3240],{"class":859},"desiredStandbys",[842,3242,863],{"class":855},[842,3244,866],{"class":848},[842,3246,3231],{"class":1533},[842,3248,878],{"class":848},[842,3250,3251,3253,3256,3258,3260,3262],{"class":844,"line":1593},[842,3252,856],{"class":855},[842,3254,3255],{"class":859},"redundancyBelowDesired",[842,3257,863],{"class":855},[842,3259,866],{"class":848},[842,3261,2277],{"class":1680},[842,3263,878],{"class":848},[842,3265,3266,3268,3271,3273,3275,3278],{"class":844,"line":1614},[842,3267,856],{"class":855},[842,3269,3270],{"class":859},"tokenEpoch",[842,3272,863],{"class":855},[842,3274,866],{"class":848},[842,3276,3277],{"class":1533}," 7",[842,3279,878],{"class":848},[842,3281,3282,3284,3287,3289,3291,3293,3295,3297],{"class":844,"line":1634},[842,3283,856],{"class":855},[842,3285,3286],{"class":859},"tokenHolder",[842,3288,863],{"class":855},[842,3290,866],{"class":848},[842,3292,870],{"class":869},[842,3294,3113],{"class":873},[842,3296,863],{"class":869},[842,3298,878],{"class":848},[842,3300,3301,3303,3306,3308,3310,3313],{"class":844,"line":1651},[842,3302,856],{"class":855},[842,3304,3305],{"class":859},"restartRequired",[842,3307,863],{"class":855},[842,3309,866],{"class":848},[842,3311,3312],{"class":1680}," null",[842,3314,878],{"class":848},[842,3316,3317,3319,3322,3324,3326],{"class":844,"line":1668},[842,3318,856],{"class":855},[842,3320,3321],{"class":859},"peers",[842,3323,863],{"class":855},[842,3325,866],{"class":848},[842,3327,893],{"class":848},[842,3329,3330,3332,3334,3337,3339,3341,3343,3346,3348,3350,3352,3355,3357,3359,3361,3364,3366,3368,3370,3372,3374,3376,3378,3381,3383],{"class":844,"line":1684},[842,3331,899],{"class":848},[842,3333,870],{"class":855},[842,3335,3336],{"class":859},"podId",[842,3338,863],{"class":855},[842,3340,866],{"class":848},[842,3342,870],{"class":869},[842,3344,3345],{"class":873},"my-stream-app-1",[842,3347,863],{"class":869},[842,3349,918],{"class":848},[842,3351,870],{"class":855},[842,3353,3354],{"class":859},"role",[842,3356,863],{"class":855},[842,3358,866],{"class":848},[842,3360,870],{"class":869},[842,3362,3363],{"class":873},"STANDBY",[842,3365,863],{"class":869},[842,3367,918],{"class":848},[842,3369,870],{"class":855},[842,3371,951],{"class":859},[842,3373,863],{"class":855},[842,3375,866],{"class":848},[842,3377,870],{"class":869},[842,3379,3380],{"class":873},"READY_STANDBY",[842,3382,863],{"class":869},[842,3384,878],{"class":848},[842,3386,3387,3389,3391,3393,3395,3398,3400,3402,3404,3406,3408,3411,3413,3415,3418,3420,3422,3424],{"class":844,"line":2603},[842,3388,2233],{"class":855},[842,3390,3163],{"class":859},[842,3392,863],{"class":855},[842,3394,866],{"class":848},[842,3396,3397],{"class":1533}," 1240",[842,3399,918],{"class":848},[842,3401,870],{"class":855},[842,3403,3178],{"class":859},[842,3405,863],{"class":855},[842,3407,866],{"class":848},[842,3409,3410],{"class":1533}," 85",[842,3412,918],{"class":848},[842,3414,870],{"class":855},[842,3416,3417],{"class":859},"generation",[842,3419,863],{"class":855},[842,3421,866],{"class":848},[842,3423,3277],{"class":1533},[842,3425,878],{"class":848},[842,3427,3428,3430,3433,3435,3437,3440,3442,3444,3447,3449,3451,3453],{"class":844,"line":2608},[842,3429,2233],{"class":855},[842,3431,3432],{"class":859},"freshnessMs",[842,3434,863],{"class":855},[842,3436,866],{"class":848},[842,3438,3439],{"class":1533}," 420",[842,3441,918],{"class":848},[842,3443,870],{"class":855},[842,3445,3446],{"class":859},"failoverPriority",[842,3448,863],{"class":855},[842,3450,866],{"class":848},[842,3452,1646],{"class":1533},[842,3454,968],{"class":848},[842,3456,3457],{"class":844,"line":2613},[842,3458,974],{"class":848},[842,3460,3462],{"class":844,"line":3461},20,[842,3463,980],{"class":848},[804,3465,3467],{"id":3466},"post-haswitch",[324,3468,3469],{},"POST \u002Fha\u002Fswitch",[320,3471,3472,3473,3476],{},"Swap roles — the active drains and the peer promotes. Publishes a command and returns ",[324,3474,3475],{},"202 Accepted"," with the command's offset as an idempotency token.",[833,3478,3480],{"className":835,"code":3479,"language":837,"meta":838,"style":838},"{ \"command\": \"SWITCH\", \"target\": null, \"force\": false, \"commandOffset\": 42 }\n",[324,3481,3482],{"__ignoreMap":838},[842,3483,3484,3486,3488,3491,3493,3495,3497,3500,3502,3504,3506,3509,3511,3513,3515,3517,3519,3522,3524,3526,3528,3530,3532,3535,3537,3539,3541],{"class":844,"line":845},[842,3485,2082],{"class":848},[842,3487,870],{"class":855},[842,3489,3490],{"class":859},"command",[842,3492,863],{"class":855},[842,3494,866],{"class":848},[842,3496,870],{"class":869},[842,3498,3499],{"class":873},"SWITCH",[842,3501,863],{"class":869},[842,3503,918],{"class":848},[842,3505,870],{"class":855},[842,3507,3508],{"class":859},"target",[842,3510,863],{"class":855},[842,3512,866],{"class":848},[842,3514,3312],{"class":1680},[842,3516,918],{"class":848},[842,3518,870],{"class":855},[842,3520,3521],{"class":859},"force",[842,3523,863],{"class":855},[842,3525,866],{"class":848},[842,3527,2277],{"class":1680},[842,3529,918],{"class":848},[842,3531,870],{"class":855},[842,3533,3534],{"class":859},"commandOffset",[842,3536,863],{"class":855},[842,3538,866],{"class":848},[842,3540,2827],{"class":1533},[842,3542,968],{"class":848},[320,3544,3545,3548,3549,3552,3553,3555,3556,3559],{},[1390,3546,3547],{},"Readiness gate:"," all three command endpoints are rejected with ",[324,3550,3551],{},"409 Conflict"," unless a caught-up target exists (a node in ",[324,3554,3380],{},") — handing off to a not-ready peer is a self-inflicted outage. Override with ",[324,3557,3558],{},"?force=true","; the override travels with the command and is re-checked on the acting pod, but a forced promotion still fully restores state before processing.",[804,3561,3563],{"id":3562},"post-hapromote",[324,3564,3565],{},"POST \u002Fha\u002Fpromote",[320,3567,3568,3569,3571,3572,3574,3575,3578,3579,3581,3582,1871,3584,3587],{},"Ask a specific standby pod to promote. Requires a ",[324,3570,742],{}," target (",[324,3573,2938],{}," if missing); ",[324,3576,3577],{},"409"," unless that pod is ",[324,3580,3380],{}," (override ",[324,3583,3558],{},[324,3585,3586],{},"202"," with the command offset.",[804,3589,3591],{"id":3590},"post-hademote",[324,3592,3593],{},"POST \u002Fha\u002Fdemote",[320,3595,3596,3597,3571,3599,3574,3601,3603,3604,3606,3607,1871,3609,3587],{},"Ask a specific active pod to demote. Requires a ",[324,3598,742],{},[324,3600,2938],{},[324,3602,3577],{}," unless some node is ",[324,3605,3380],{}," to take over (override ",[324,3608,3558],{},[324,3610,3586],{},[340,3612,3614],{"id":3613},"debug","Debug",[320,3616,3617,3618,3621,3622,394,3624,3626,3627,3629,3630,3632],{},"The two ",[324,3619,3620],{},"\u002Fdebug\u002F*"," endpoints are diagnostic aids for investigating a stalled commit pipeline. They are gated by ",[324,3623,782],{},[324,3625,397],{},"); when disabled, neither handler is registered and both paths return ",[324,3628,3065],{},". They are free at rest and invaluable during a freeze; disable only for hardened deployments that minimise attack surface. When enabled, both return ",[324,3631,823],{}," until the engine is initialized.",[804,3634,3636],{"id":3635},"get-debugthreads",[324,3637,3638],{},"GET \u002Fdebug\u002Fthreads",[320,3640,3641],{},"A JSON snapshot of the engine's threads (and the JVM's platform threads), with each thread's state and a truncated stack trace — for answering \"what is the engine stuck on?\" during a freeze.",[320,3643,3644],{},"Optional query parameters:",[355,3646,3647,3660],{},[358,3648,3649],{},[361,3650,3651,3654,3657],{},[364,3652,3653],{},"Param",[364,3655,3656],{},"Default",[364,3658,3659],{},"Meaning",[371,3661,3662,3677],{},[361,3663,3664,3669,3674],{},[376,3665,3666],{},[324,3667,3668],{},"depth",[376,3670,3671],{},[324,3672,3673],{},"40",[376,3675,3676],{},"Maximum stack frames per thread",[361,3678,3679,3684,3689],{},[376,3680,3681],{},[324,3682,3683],{},"filter",[376,3685,3686],{},[324,3687,3688],{},"all",[376,3690,3691,332,3693,3696,3697,3700,3701,3704],{},[324,3692,3688],{},[324,3694,3695],{},"stuck"," (only threads not ",[324,3698,3699],{},"RUNNABLE","), or ",[324,3702,3703],{},"known"," (only engine-owned threads)",[804,3706,3708],{"id":3707},"get-debugbarriers",[324,3709,3710],{},"GET \u002Fdebug\u002Fbarriers",[320,3712,3713,3714,3717,3718,332,3721,3724,3725,353],{},"A JSON snapshot of commit-pipeline state, designed to answer \"which commit is stuck, at which phase, and what is blocking it?\" from a single call. The response includes a derived ",[324,3715,3716],{},"phase"," field summarising the pipeline state at a glance (for example ",[324,3719,3720],{},"IN_TX_COMMIT",[324,3722,3723],{},"AWAITING_LANE_ACKS",", or ",[324,3726,3727],{},"IDLE",[340,3729,3731],{"id":3730},"related","Related",[3733,3734,3735,3741,3749,3756,3770],"ul",{},[3736,3737,3738,3740],"li",{},[329,3739,331],{"href":186}," — narrative guide to the endpoints with curl examples.",[3736,3742,3743,3745,3746,338],{},[329,3744,190],{"href":191}," — the health-indicator system behind ",[324,3747,3748],{},"\u002Fhealth\u002F*",[3736,3750,3751,3753,3754,338],{},[329,3752,195],{"href":196}," — the meters exposed at ",[324,3755,511],{},[3736,3757,3758,3760,3761,332,3763,335,3766,3769],{},[329,3759,281],{"href":282}," — the ",[324,3762,349],{},[324,3764,3765],{},"runtime.metrics.*",[324,3767,3768],{},"runtime.endpoints.*"," keys.",[3736,3771,3772,1403,3775,3778],{},[329,3773,3774],{"href":229},"Kubernetes",[329,3776,3777],{"href":239},"Probes"," — wiring the probes and choosing which endpoints to expose.",[3780,3781,3782],"style",{},"html pre.shiki code .sYZai, html code.shiki .sYZai{--shiki-default:#999999}html pre.shiki code .s61at, html code.shiki .s61at{--shiki-default:#99841877}html pre.shiki code .su6XF, html code.shiki .su6XF{--shiki-default:#998418}html pre.shiki code .sSP4y, html code.shiki .sSP4y{--shiki-default:#B5695977}html pre.shiki code .spphp, html code.shiki .spphp{--shiki-default:#B56959}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 pre.shiki code .s-TwI, html code.shiki .s-TwI{--shiki-default:#2F798A}html pre.shiki code .sbBg2, html code.shiki .sbBg2{--shiki-default:#1E754F}",{"title":838,"searchDepth":852,"depth":852,"links":3784},[3785,3786,3787,3791,3794,3800,3805,3810,3814,3820,3824],{"id":342,"depth":852,"text":343},{"id":453,"depth":852,"text":454},{"id":801,"depth":852,"text":802,"children":3788},[3789,3790],{"id":806,"depth":881,"text":809},{"id":983,"depth":881,"text":986},{"id":1014,"depth":852,"text":195,"children":3792},[3793],{"id":1017,"depth":881,"text":1020},{"id":1049,"depth":852,"text":1050,"children":3795},[3796,3797,3798,3799],{"id":1053,"depth":881,"text":1056},{"id":1375,"depth":881,"text":1378},{"id":1698,"depth":881,"text":1701},{"id":1857,"depth":881,"text":1860},{"id":2053,"depth":852,"text":2054,"children":3801},[3802,3803,3804],{"id":2066,"depth":881,"text":2069},{"id":2111,"depth":881,"text":2114},{"id":2130,"depth":881,"text":2133},{"id":2142,"depth":852,"text":2143,"children":3806},[3807,3808,3809],{"id":2146,"depth":881,"text":2149},{"id":2330,"depth":881,"text":2333},{"id":2618,"depth":881,"text":2621},{"id":2918,"depth":852,"text":2919,"children":3811},[3812,3813],{"id":2922,"depth":881,"text":2925},{"id":2985,"depth":881,"text":2988},{"id":3056,"depth":852,"text":233,"children":3815},[3816,3817,3818,3819],{"id":3074,"depth":881,"text":3077},{"id":3466,"depth":881,"text":3469},{"id":3562,"depth":881,"text":3565},{"id":3590,"depth":881,"text":3593},{"id":3613,"depth":852,"text":3614,"children":3821},[3822,3823],{"id":3635,"depth":881,"text":3638},{"id":3707,"depth":881,"text":3710},{"id":3730,"depth":852,"text":3731},"Every HTTP endpoint the StoatFlow runtime exposes — path, method, purpose, response shape, content negotiation, status codes, and gating.","md",{},{"icon":289},"reference",{"title":286,"description":3825},"FETSJNMQchdWo44WpiDN4QN6Z4x4vTK1lEf86hZ2G1A",[3833,3835],{"title":281,"path":282,"stem":283,"description":3834,"icon":284,"children":-1},"Curated reference of the StoatFlow configuration keys — stoatflow.* (engine) and runtime.* (HTTP, metrics, health) — with type, default, and a one-line description per key.",{"title":291,"path":292,"stem":293,"description":3836,"icon":294,"children":-1},"The io.stoatflow convention plugin — the full stoatflow { } extension DSL, the plugins and JVM flags it applies, the tasks it contributes, and the Docker and native-image defaults.",1783713364459]