[{"data":1,"prerenderedAt":3466},["ShallowReactive",2],{"navigation":3,"\u002Fdocs\u002Freference\u002Fapi\u002Fworkflows":143,"\u002Fdocs\u002Freference\u002Fapi\u002Fworkflows-surround":3461},[4],{"title":5,"path":6,"stem":7,"children":8,"page":32},"Docs","\u002Fdocs","docs",[9,33,58,79,112,117],{"title":10,"path":11,"stem":12,"children":13,"page":32},"Getting Started","\u002Fdocs\u002Fgetting-started","docs\u002Fgetting-started",[14,18,23,28],{"title":10,"path":15,"stem":16,"order":17},"\u002Fdocs\u002Fgetting-started\u002F_dir","docs\u002Fgetting-started\u002F_dir",1,{"title":19,"path":20,"stem":21,"order":22},"Configuration Reference","\u002Fdocs\u002Fgetting-started\u002Fconfiguration","docs\u002Fgetting-started\u002Fconfiguration",2,{"title":24,"path":25,"stem":26,"order":27},"Deployment Guide","\u002Fdocs\u002Fgetting-started\u002Fdeployment","docs\u002Fgetting-started\u002Fdeployment",3,{"title":29,"path":30,"stem":31,"order":17},"Quick Start","\u002Fdocs\u002Fgetting-started\u002Fquick-start","docs\u002Fgetting-started\u002Fquick-start",false,{"title":34,"path":35,"stem":36,"children":37,"page":32},"Guides","\u002Fdocs\u002Fguides","docs\u002Fguides",[38,41,45,49,54],{"title":34,"path":39,"stem":40,"order":22},"\u002Fdocs\u002Fguides\u002F_dir","docs\u002Fguides\u002F_dir",{"title":42,"path":43,"stem":44,"order":22},"Notifications","\u002Fdocs\u002Fguides\u002Fnotifications","docs\u002Fguides\u002Fnotifications",{"title":46,"path":47,"stem":48,"order":17},"Scoring Algorithm","\u002Fdocs\u002Fguides\u002Fscoring","docs\u002Fguides\u002Fscoring",{"title":50,"path":51,"stem":52,"order":53},"Sunset Mode","\u002Fdocs\u002Fguides\u002Fsunset-mode","docs\u002Fguides\u002Fsunset-mode",4,{"title":55,"path":56,"stem":57,"order":27},"Troubleshooting","\u002Fdocs\u002Fguides\u002Ftroubleshooting","docs\u002Fguides\u002Ftroubleshooting",{"title":59,"path":60,"stem":61,"children":62,"page":32},"Project","\u002Fdocs\u002Fproject","docs\u002Fproject",[63,67,71,75],{"title":59,"path":64,"stem":65,"order":66},"\u002Fdocs\u002Fproject\u002F_dir","docs\u002Fproject\u002F_dir",6,{"title":68,"path":69,"stem":70,"order":27},"Changelog","\u002Fdocs\u002Fproject\u002Fchangelog","docs\u002Fproject\u002Fchangelog",{"title":72,"path":73,"stem":74,"order":17},"Contributing","\u002Fdocs\u002Fproject\u002Fcontributing","docs\u002Fproject\u002Fcontributing",{"title":76,"path":77,"stem":78,"order":22},"Contributors","\u002Fdocs\u002Fproject\u002Fcontributors","docs\u002Fproject\u002Fcontributors",{"title":80,"path":81,"stem":82,"children":83,"page":32},"Reference","\u002Fdocs\u002Freference","docs\u002Freference",[84,87,108],{"title":80,"path":85,"stem":86,"order":27},"\u002Fdocs\u002Freference\u002F_dir","docs\u002Freference\u002F_dir",{"title":88,"path":89,"stem":90,"children":91,"page":32},"Api","\u002Fdocs\u002Freference\u002Fapi","docs\u002Freference\u002Fapi",[92,96,100,104],{"title":93,"path":94,"stem":95,"order":22},"API Reference","\u002Fdocs\u002Freference\u002Fapi\u002F_dir","docs\u002Freference\u002Fapi\u002F_dir",{"title":97,"path":98,"stem":99,"order":22},"API Examples","\u002Fdocs\u002Freference\u002Fapi\u002Fexamples","docs\u002Freference\u002Fapi\u002Fexamples",{"title":101,"path":102,"stem":103,"order":53},"API Versioning & Stability Guarantees","\u002Fdocs\u002Freference\u002Fapi\u002Fversioning","docs\u002Freference\u002Fapi\u002Fversioning",{"title":105,"path":106,"stem":107,"order":27},"Common Workflows","\u002Fdocs\u002Freference\u002Fapi\u002Fworkflows","docs\u002Freference\u002Fapi\u002Fworkflows",{"title":109,"path":110,"stem":111,"order":17},"Architecture","\u002Fdocs\u002Freference\u002Farchitecture","docs\u002Freference\u002Farchitecture",{"title":113,"path":114,"stem":115,"order":116},"Release Workflow","\u002Fdocs\u002Freleasing","docs\u002Freleasing",5,{"title":118,"path":119,"stem":120,"children":121,"order":17},"Security Policy","\u002Fdocs\u002Fsecurity","docs\u002Fsecurity\u002Findex",[122,123,127,131,134,137,140],{"title":118,"path":119,"stem":120,"order":17},{"title":124,"path":125,"stem":126,"order":53},"Security","\u002Fdocs\u002Fsecurity\u002F_dir","docs\u002Fsecurity\u002F_dir",{"title":128,"path":129,"stem":130,"order":22},"OWASP ZAP API Scan — Baseline Report","\u002Fdocs\u002Fsecurity\u002Fzap-baseline-20260310","docs\u002Fsecurity\u002Fzap-baseline-20260310",{"title":128,"path":132,"stem":133,"order":27},"\u002Fdocs\u002Fsecurity\u002Fzap-baseline-20260316","docs\u002Fsecurity\u002Fzap-baseline-20260316",{"title":128,"path":135,"stem":136,"order":53},"\u002Fdocs\u002Fsecurity\u002Fzap-baseline-20260323","docs\u002Fsecurity\u002Fzap-baseline-20260323",{"title":128,"path":138,"stem":139,"order":116},"\u002Fdocs\u002Fsecurity\u002Fzap-baseline-20260324","docs\u002Fsecurity\u002Fzap-baseline-20260324",{"title":128,"path":141,"stem":142},"\u002Fdocs\u002Fsecurity\u002Fzap-baseline-20260406","docs\u002Fsecurity\u002Fzap-baseline-20260406",{"id":144,"title":105,"body":145,"description":151,"extension":3455,"links":3456,"meta":3457,"navigation":3458,"path":106,"seo":3459,"stem":107,"__hash__":3460},"docs\u002Fdocs\u002Freference\u002Fapi\u002Fworkflows.md",{"type":146,"value":147,"toc":3396},"minimark",[148,152,157,160,212,215,219,222,227,249,256,260,362,365,369,457,460,464,570,577,581,664,667,671,713,716,754,756,760,763,767,805,819,823,826,894,911,915,918,1008,1012,1019,1099,1103,1106,1208,1211,1249,1253,1291,1298,1300,1304,1307,1311,1347,1350,1354,1392,1395,1421,1425,1510,1513,1517,1520,1558,1562,1600,1603,1607,1610,1737,1741,1744,1829,1831,1835,1838,1842,1877,1880,1888,1892,1895,1935,1948,1952,1955,2001,2004,2008,2016,2018,2022,2028,2032,2098,2101,2105,2150,2156,2160,2163,2201,2205,2208,2274,2276,2280,2283,2287,2323,2327,2374,2377,2398,2402,2449,2452,2456,2498,2505,2509,2512,2554,2556,2560,2563,2567,2660,2669,2673,2755,2758,2762,2802,2805,2809,2853,2856,2858,2862,2865,2869,2889,2892,2896,2919,2926,2930,3229,3233,3392],[149,150,151],"p",{},"Multi-step guides for typical Capacitarr API tasks. Each workflow combines several API calls in sequence.",[153,154,156],"h2",{"id":155},"setup","Setup",[149,158,159],{},"All workflows assume these environment variables are set:",[161,162,167],"pre",{"className":163,"code":164,"language":165,"meta":166,"style":166},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","export CAPACITARR_URL=\"http:\u002F\u002Flocalhost:2187\u002Fapi\u002Fv1\"\nexport CAPACITARR_API_KEY=\"your-api-key-here\"\n","bash","",[168,169,170,196],"code",{"__ignoreMap":166},[171,172,174,178,182,186,189,193],"span",{"class":173,"line":17},"line",[171,175,177],{"class":176},"spNyl","export",[171,179,181],{"class":180},"sTEyZ"," CAPACITARR_URL",[171,183,185],{"class":184},"sMK4o","=",[171,187,188],{"class":184},"\"",[171,190,192],{"class":191},"sfazB","http:\u002F\u002Flocalhost:2187\u002Fapi\u002Fv1",[171,194,195],{"class":184},"\"\n",[171,197,198,200,203,205,207,210],{"class":173,"line":22},[171,199,177],{"class":176},[171,201,202],{"class":180}," CAPACITARR_API_KEY",[171,204,185],{"class":184},[171,206,188],{"class":184},[171,208,209],{"class":191},"your-api-key-here",[171,211,195],{"class":184},[213,214],"hr",{},[153,216,218],{"id":217},"workflow-1-initial-setup","Workflow 1: Initial Setup",[149,220,221],{},"Go from a fresh install to a working configuration with your first integration synced.",[223,224,226],"h3",{"id":225},"step-1-verify-the-server-is-running","Step 1: Verify the server is running",[161,228,230],{"className":163,"code":229,"language":165,"meta":166,"style":166},"curl \"$CAPACITARR_URL\u002Fhealth\"\n",[168,231,232],{"__ignoreMap":166},[171,233,234,238,241,244,247],{"class":173,"line":17},[171,235,237],{"class":236},"sBMFI","curl",[171,239,240],{"class":184}," \"",[171,242,243],{"class":180},"$CAPACITARR_URL",[171,245,246],{"class":191},"\u002Fhealth",[171,248,195],{"class":184},[149,250,251,252,255],{},"Expect the text ",[168,253,254],{},"OK",". If the server is not reachable, check that the container is running and port 2187 is exposed.",[223,257,259],{"id":258},"step-2-login-to-get-a-jwt","Step 2: Login to get a JWT",[161,261,263],{"className":163,"code":262,"language":165,"meta":166,"style":166},"TOKEN=$(curl -s -X POST \"$CAPACITARR_URL\u002Fauth\u002Flogin\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"password\":\"your-password\"}' | jq -r '.token')\n\necho \"$TOKEN\"\n",[168,264,265,296,310,343,349],{"__ignoreMap":166},[171,266,267,270,273,275,278,281,284,286,288,291,293],{"class":173,"line":17},[171,268,269],{"class":180},"TOKEN",[171,271,272],{"class":184},"=$(",[171,274,237],{"class":236},[171,276,277],{"class":191}," -s",[171,279,280],{"class":191}," -X",[171,282,283],{"class":191}," POST",[171,285,240],{"class":184},[171,287,243],{"class":180},[171,289,290],{"class":191},"\u002Fauth\u002Flogin",[171,292,188],{"class":184},[171,294,295],{"class":180}," \\\n",[171,297,298,301,303,306,308],{"class":173,"line":22},[171,299,300],{"class":191},"  -H",[171,302,240],{"class":184},[171,304,305],{"class":191},"Content-Type: application\u002Fjson",[171,307,188],{"class":184},[171,309,295],{"class":180},[171,311,312,315,318,321,324,327,330,333,335,338,340],{"class":173,"line":27},[171,313,314],{"class":191},"  -d",[171,316,317],{"class":184}," '",[171,319,320],{"class":191},"{\"password\":\"your-password\"}",[171,322,323],{"class":184},"'",[171,325,326],{"class":184}," |",[171,328,329],{"class":236}," jq",[171,331,332],{"class":191}," -r",[171,334,317],{"class":184},[171,336,337],{"class":191},".token",[171,339,323],{"class":184},[171,341,342],{"class":184},")\n",[171,344,345],{"class":173,"line":53},[171,346,348],{"emptyLinePlaceholder":347},true,"\n",[171,350,351,355,357,360],{"class":173,"line":116},[171,352,354],{"class":353},"s2Zo4","echo",[171,356,240],{"class":184},[171,358,359],{"class":180},"$TOKEN",[171,361,195],{"class":184},[149,363,364],{},"The default password is set during first-run setup. Save the token — you need it for the next step.",[223,366,368],{"id":367},"step-3-generate-an-api-key","Step 3: Generate an API key",[161,370,372],{"className":163,"code":371,"language":165,"meta":166,"style":166},"API_KEY=$(curl -s -X POST \"$CAPACITARR_URL\u002Fauth\u002Fapikey\" \\\n  -H \"Authorization: Bearer $TOKEN\" | jq -r '.api_key')\n\necho \"$API_KEY\"\nexport CAPACITARR_API_KEY=\"$API_KEY\"\n",[168,373,374,400,428,432,443],{"__ignoreMap":166},[171,375,376,379,381,383,385,387,389,391,393,396,398],{"class":173,"line":17},[171,377,378],{"class":180},"API_KEY",[171,380,272],{"class":184},[171,382,237],{"class":236},[171,384,277],{"class":191},[171,386,280],{"class":191},[171,388,283],{"class":191},[171,390,240],{"class":184},[171,392,243],{"class":180},[171,394,395],{"class":191},"\u002Fauth\u002Fapikey",[171,397,188],{"class":184},[171,399,295],{"class":180},[171,401,402,404,406,409,411,413,415,417,419,421,424,426],{"class":173,"line":22},[171,403,300],{"class":191},[171,405,240],{"class":184},[171,407,408],{"class":191},"Authorization: Bearer ",[171,410,359],{"class":180},[171,412,188],{"class":184},[171,414,326],{"class":184},[171,416,329],{"class":236},[171,418,332],{"class":191},[171,420,317],{"class":184},[171,422,423],{"class":191},".api_key",[171,425,323],{"class":184},[171,427,342],{"class":184},[171,429,430],{"class":173,"line":27},[171,431,348],{"emptyLinePlaceholder":347},[171,433,434,436,438,441],{"class":173,"line":53},[171,435,354],{"class":353},[171,437,240],{"class":184},[171,439,440],{"class":180},"$API_KEY",[171,442,195],{"class":184},[171,444,445,447,449,451,453,455],{"class":173,"line":116},[171,446,177],{"class":176},[171,448,202],{"class":180},[171,450,185],{"class":184},[171,452,188],{"class":184},[171,454,440],{"class":180},[171,456,195],{"class":184},[149,458,459],{},"Store this key securely. All remaining steps use the API key for authentication.",[223,461,463],{"id":462},"step-4-add-your-first-integration","Step 4: Add your first integration",[161,465,467],{"className":163,"code":466,"language":165,"meta":166,"style":166},"curl -s -X POST -H \"X-Api-Key: $CAPACITARR_API_KEY\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  \"$CAPACITARR_URL\u002Fintegrations\" \\\n  -d '{\n    \"type\": \"sonarr\",\n    \"name\": \"Sonarr Main\",\n    \"url\": \"http:\u002F\u002Fsonarr:8989\",\n    \"apiKey\": \"your-sonarr-api-key\",\n    \"enabled\": true\n  }' | jq\n",[168,468,469,494,506,520,529,534,539,545,551,557],{"__ignoreMap":166},[171,470,471,473,475,477,479,482,484,487,490,492],{"class":173,"line":17},[171,472,237],{"class":236},[171,474,277],{"class":191},[171,476,280],{"class":191},[171,478,283],{"class":191},[171,480,481],{"class":191}," -H",[171,483,240],{"class":184},[171,485,486],{"class":191},"X-Api-Key: ",[171,488,489],{"class":180},"$CAPACITARR_API_KEY",[171,491,188],{"class":184},[171,493,295],{"class":180},[171,495,496,498,500,502,504],{"class":173,"line":22},[171,497,300],{"class":191},[171,499,240],{"class":184},[171,501,305],{"class":191},[171,503,188],{"class":184},[171,505,295],{"class":180},[171,507,508,511,513,516,518],{"class":173,"line":27},[171,509,510],{"class":184},"  \"",[171,512,243],{"class":180},[171,514,515],{"class":191},"\u002Fintegrations",[171,517,188],{"class":184},[171,519,295],{"class":180},[171,521,522,524,526],{"class":173,"line":53},[171,523,314],{"class":191},[171,525,317],{"class":184},[171,527,528],{"class":191},"{\n",[171,530,531],{"class":173,"line":116},[171,532,533],{"class":191},"    \"type\": \"sonarr\",\n",[171,535,536],{"class":173,"line":66},[171,537,538],{"class":191},"    \"name\": \"Sonarr Main\",\n",[171,540,542],{"class":173,"line":541},7,[171,543,544],{"class":191},"    \"url\": \"http:\u002F\u002Fsonarr:8989\",\n",[171,546,548],{"class":173,"line":547},8,[171,549,550],{"class":191},"    \"apiKey\": \"your-sonarr-api-key\",\n",[171,552,554],{"class":173,"line":553},9,[171,555,556],{"class":191},"    \"enabled\": true\n",[171,558,560,563,565,567],{"class":173,"line":559},10,[171,561,562],{"class":191},"  }",[171,564,323],{"class":184},[171,566,326],{"class":184},[171,568,569],{"class":236}," jq\n",[149,571,572,573,576],{},"Note the ",[168,574,575],{},"id"," in the response — you need it for the next steps.",[223,578,580],{"id":579},"step-5-test-the-connection","Step 5: Test the connection",[161,582,584],{"className":163,"code":583,"language":165,"meta":166,"style":166},"curl -s -X POST -H \"X-Api-Key: $CAPACITARR_API_KEY\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  \"$CAPACITARR_URL\u002Fintegrations\u002Ftest\" \\\n  -d '{\n    \"type\": \"sonarr\",\n    \"url\": \"http:\u002F\u002Fsonarr:8989\",\n    \"apiKey\": \"your-sonarr-api-key\"\n  }' | jq\n",[168,585,586,608,620,633,641,645,649,654],{"__ignoreMap":166},[171,587,588,590,592,594,596,598,600,602,604,606],{"class":173,"line":17},[171,589,237],{"class":236},[171,591,277],{"class":191},[171,593,280],{"class":191},[171,595,283],{"class":191},[171,597,481],{"class":191},[171,599,240],{"class":184},[171,601,486],{"class":191},[171,603,489],{"class":180},[171,605,188],{"class":184},[171,607,295],{"class":180},[171,609,610,612,614,616,618],{"class":173,"line":22},[171,611,300],{"class":191},[171,613,240],{"class":184},[171,615,305],{"class":191},[171,617,188],{"class":184},[171,619,295],{"class":180},[171,621,622,624,626,629,631],{"class":173,"line":27},[171,623,510],{"class":184},[171,625,243],{"class":180},[171,627,628],{"class":191},"\u002Fintegrations\u002Ftest",[171,630,188],{"class":184},[171,632,295],{"class":180},[171,634,635,637,639],{"class":173,"line":53},[171,636,314],{"class":191},[171,638,317],{"class":184},[171,640,528],{"class":191},[171,642,643],{"class":173,"line":116},[171,644,533],{"class":191},[171,646,647],{"class":173,"line":66},[171,648,544],{"class":191},[171,650,651],{"class":173,"line":541},[171,652,653],{"class":191},"    \"apiKey\": \"your-sonarr-api-key\"\n",[171,655,656,658,660,662],{"class":173,"line":547},[171,657,562],{"class":191},[171,659,323],{"class":184},[171,661,326],{"class":184},[171,663,569],{"class":236},[149,665,666],{},"A successful response confirms Capacitarr can reach your Sonarr instance. If it fails, verify the URL and API key.",[223,668,670],{"id":669},"step-6-trigger-the-first-engine-run","Step 6: Trigger the first engine run",[161,672,674],{"className":163,"code":673,"language":165,"meta":166,"style":166},"curl -s -X POST -H \"X-Api-Key: $CAPACITARR_API_KEY\" \\\n  \"$CAPACITARR_URL\u002Fengine\u002Frun\" | jq\n",[168,675,676,698],{"__ignoreMap":166},[171,677,678,680,682,684,686,688,690,692,694,696],{"class":173,"line":17},[171,679,237],{"class":236},[171,681,277],{"class":191},[171,683,280],{"class":191},[171,685,283],{"class":191},[171,687,481],{"class":191},[171,689,240],{"class":184},[171,691,486],{"class":191},[171,693,489],{"class":180},[171,695,188],{"class":184},[171,697,295],{"class":180},[171,699,700,702,704,707,709,711],{"class":173,"line":22},[171,701,510],{"class":184},[171,703,243],{"class":180},[171,705,706],{"class":191},"\u002Fengine\u002Frun",[171,708,188],{"class":184},[171,710,326],{"class":184},[171,712,569],{"class":236},[149,714,715],{},"The engine will sync media data from your integrations, evaluate items against the scoring algorithm, and populate the dashboard. Check the worker status to monitor progress:",[161,717,719],{"className":163,"code":718,"language":165,"meta":166,"style":166},"curl -s -H \"X-Api-Key: $CAPACITARR_API_KEY\" \\\n  \"$CAPACITARR_URL\u002Fworker\u002Fstats\" | jq\n",[168,720,721,739],{"__ignoreMap":166},[171,722,723,725,727,729,731,733,735,737],{"class":173,"line":17},[171,724,237],{"class":236},[171,726,277],{"class":191},[171,728,481],{"class":191},[171,730,240],{"class":184},[171,732,486],{"class":191},[171,734,489],{"class":180},[171,736,188],{"class":184},[171,738,295],{"class":180},[171,740,741,743,745,748,750,752],{"class":173,"line":22},[171,742,510],{"class":184},[171,744,243],{"class":180},[171,746,747],{"class":191},"\u002Fworker\u002Fstats",[171,749,188],{"class":184},[171,751,326],{"class":184},[171,753,569],{"class":236},[213,755],{},[153,757,759],{"id":758},"workflow-2-configure-capacity-management","Workflow 2: Configure Capacity Management",[149,761,762],{},"Set up thresholds, scoring weights, custom rules, and verify the configuration with a preview.",[223,764,766],{"id":765},"step-1-view-disk-groups","Step 1: View disk groups",[161,768,770],{"className":163,"code":769,"language":165,"meta":166,"style":166},"curl -s -H \"X-Api-Key: $CAPACITARR_API_KEY\" \\\n  \"$CAPACITARR_URL\u002Fdisk-groups\" | jq\n",[168,771,772,790],{"__ignoreMap":166},[171,773,774,776,778,780,782,784,786,788],{"class":173,"line":17},[171,775,237],{"class":236},[171,777,277],{"class":191},[171,779,481],{"class":191},[171,781,240],{"class":184},[171,783,486],{"class":191},[171,785,489],{"class":180},[171,787,188],{"class":184},[171,789,295],{"class":180},[171,791,792,794,796,799,801,803],{"class":173,"line":22},[171,793,510],{"class":184},[171,795,243],{"class":180},[171,797,798],{"class":191},"\u002Fdisk-groups",[171,800,188],{"class":184},[171,802,326],{"class":184},[171,804,569],{"class":236},[149,806,807,808,810,811,814,815,818],{},"Identify the disk group you want to manage. Note its ",[168,809,575],{},", ",[168,812,813],{},"totalBytes",", and ",[168,816,817],{},"usedBytes"," to understand current usage.",[223,820,822],{"id":821},"step-2-set-thresholds","Step 2: Set thresholds",[149,824,825],{},"Configure when the engine should activate (threshold) and how much space to free (target):",[161,827,829],{"className":163,"code":828,"language":165,"meta":166,"style":166},"curl -s -X PUT -H \"X-Api-Key: $CAPACITARR_API_KEY\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  \"$CAPACITARR_URL\u002Fdisk-groups\u002F1\" \\\n  -d '{\"thresholdPct\":90,\"targetPct\":80}' | jq\n",[168,830,831,854,866,879],{"__ignoreMap":166},[171,832,833,835,837,839,842,844,846,848,850,852],{"class":173,"line":17},[171,834,237],{"class":236},[171,836,277],{"class":191},[171,838,280],{"class":191},[171,840,841],{"class":191}," PUT",[171,843,481],{"class":191},[171,845,240],{"class":184},[171,847,486],{"class":191},[171,849,489],{"class":180},[171,851,188],{"class":184},[171,853,295],{"class":180},[171,855,856,858,860,862,864],{"class":173,"line":22},[171,857,300],{"class":191},[171,859,240],{"class":184},[171,861,305],{"class":191},[171,863,188],{"class":184},[171,865,295],{"class":180},[171,867,868,870,872,875,877],{"class":173,"line":27},[171,869,510],{"class":184},[171,871,243],{"class":180},[171,873,874],{"class":191},"\u002Fdisk-groups\u002F1",[171,876,188],{"class":184},[171,878,295],{"class":180},[171,880,881,883,885,888,890,892],{"class":173,"line":53},[171,882,314],{"class":191},[171,884,317],{"class":184},[171,886,887],{"class":191},"{\"thresholdPct\":90,\"targetPct\":80}",[171,889,323],{"class":184},[171,891,326],{"class":184},[171,893,569],{"class":236},[895,896,897,905],"ul",{},[898,899,900,904],"li",{},[901,902,903],"strong",{},"thresholdPct (90):"," Engine activates when disk usage exceeds 90%",[898,906,907,910],{},[901,908,909],{},"targetPct (80):"," Engine removes media until usage drops to 80%",[223,912,914],{"id":913},"step-3-configure-scoring-factor-weights","Step 3: Configure scoring factor weights",[149,916,917],{},"Adjust how media is ranked for deletion. Higher weights give that factor more influence on the final score:",[161,919,921],{"className":163,"code":920,"language":165,"meta":166,"style":166},"curl -s -X PUT -H \"X-Api-Key: $CAPACITARR_API_KEY\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  \"$CAPACITARR_URL\u002Fscoring-factor-weights\" \\\n  -d '{\n    \"watch_history\": 10,\n    \"file_size\": 6,\n    \"rating\": 5,\n    \"time_in_library\": 4\n  }' | jq\n",[168,922,923,945,957,970,978,983,988,993,998],{"__ignoreMap":166},[171,924,925,927,929,931,933,935,937,939,941,943],{"class":173,"line":17},[171,926,237],{"class":236},[171,928,277],{"class":191},[171,930,280],{"class":191},[171,932,841],{"class":191},[171,934,481],{"class":191},[171,936,240],{"class":184},[171,938,486],{"class":191},[171,940,489],{"class":180},[171,942,188],{"class":184},[171,944,295],{"class":180},[171,946,947,949,951,953,955],{"class":173,"line":22},[171,948,300],{"class":191},[171,950,240],{"class":184},[171,952,305],{"class":191},[171,954,188],{"class":184},[171,956,295],{"class":180},[171,958,959,961,963,966,968],{"class":173,"line":27},[171,960,510],{"class":184},[171,962,243],{"class":180},[171,964,965],{"class":191},"\u002Fscoring-factor-weights",[171,967,188],{"class":184},[171,969,295],{"class":180},[171,971,972,974,976],{"class":173,"line":53},[171,973,314],{"class":191},[171,975,317],{"class":184},[171,977,528],{"class":191},[171,979,980],{"class":173,"line":116},[171,981,982],{"class":191},"    \"watch_history\": 10,\n",[171,984,985],{"class":173,"line":66},[171,986,987],{"class":191},"    \"file_size\": 6,\n",[171,989,990],{"class":173,"line":541},[171,991,992],{"class":191},"    \"rating\": 5,\n",[171,994,995],{"class":173,"line":547},[171,996,997],{"class":191},"    \"time_in_library\": 4\n",[171,999,1000,1002,1004,1006],{"class":173,"line":553},[171,1001,562],{"class":191},[171,1003,323],{"class":184},[171,1005,326],{"class":184},[171,1007,569],{"class":236},[223,1009,1011],{"id":1010},"step-4-set-execution-mode","Step 4: Set execution mode",[149,1013,1014,1015,1018],{},"Configure the engine execution mode and other preferences. Start with ",[168,1016,1017],{},"dry-run"," so nothing is deleted while you tune the configuration:",[161,1020,1022],{"className":163,"code":1021,"language":165,"meta":166,"style":166},"curl -s -X PUT -H \"X-Api-Key: $CAPACITARR_API_KEY\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  \"$CAPACITARR_URL\u002Fpreferences\" \\\n  -d '{\n    \"defaultDiskGroupMode\": \"dry-run\",\n    \"tiebreakerMethod\": \"size_desc\"\n  }' | jq\n",[168,1023,1024,1046,1058,1071,1079,1084,1089],{"__ignoreMap":166},[171,1025,1026,1028,1030,1032,1034,1036,1038,1040,1042,1044],{"class":173,"line":17},[171,1027,237],{"class":236},[171,1029,277],{"class":191},[171,1031,280],{"class":191},[171,1033,841],{"class":191},[171,1035,481],{"class":191},[171,1037,240],{"class":184},[171,1039,486],{"class":191},[171,1041,489],{"class":180},[171,1043,188],{"class":184},[171,1045,295],{"class":180},[171,1047,1048,1050,1052,1054,1056],{"class":173,"line":22},[171,1049,300],{"class":191},[171,1051,240],{"class":184},[171,1053,305],{"class":191},[171,1055,188],{"class":184},[171,1057,295],{"class":180},[171,1059,1060,1062,1064,1067,1069],{"class":173,"line":27},[171,1061,510],{"class":184},[171,1063,243],{"class":180},[171,1065,1066],{"class":191},"\u002Fpreferences",[171,1068,188],{"class":184},[171,1070,295],{"class":180},[171,1072,1073,1075,1077],{"class":173,"line":53},[171,1074,314],{"class":191},[171,1076,317],{"class":184},[171,1078,528],{"class":191},[171,1080,1081],{"class":173,"line":116},[171,1082,1083],{"class":191},"    \"defaultDiskGroupMode\": \"dry-run\",\n",[171,1085,1086],{"class":173,"line":66},[171,1087,1088],{"class":191},"    \"tiebreakerMethod\": \"size_desc\"\n",[171,1090,1091,1093,1095,1097],{"class":173,"line":541},[171,1092,562],{"class":191},[171,1094,323],{"class":184},[171,1096,326],{"class":184},[171,1098,569],{"class":236},[223,1100,1102],{"id":1101},"step-5-add-custom-rules","Step 5: Add custom rules",[149,1104,1105],{},"Protect media that should never be deleted:",[161,1107,1109],{"className":163,"code":1108,"language":165,"meta":166,"style":166},"# Protect anything with \"Firefly\" in the title\ncurl -s -X POST -H \"X-Api-Key: $CAPACITARR_API_KEY\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  \"$CAPACITARR_URL\u002Fcustom-rules\" \\\n  -d '{\n    \"field\": \"title\",\n    \"operator\": \"contains\",\n    \"value\": \"Firefly\",\n    \"effect\": \"always_keep\",\n    \"integrationId\": 1\n  }' | jq\n",[168,1110,1111,1117,1139,1151,1164,1172,1177,1182,1187,1192,1197],{"__ignoreMap":166},[171,1112,1113],{"class":173,"line":17},[171,1114,1116],{"class":1115},"sHwdD","# Protect anything with \"Firefly\" in the title\n",[171,1118,1119,1121,1123,1125,1127,1129,1131,1133,1135,1137],{"class":173,"line":22},[171,1120,237],{"class":236},[171,1122,277],{"class":191},[171,1124,280],{"class":191},[171,1126,283],{"class":191},[171,1128,481],{"class":191},[171,1130,240],{"class":184},[171,1132,486],{"class":191},[171,1134,489],{"class":180},[171,1136,188],{"class":184},[171,1138,295],{"class":180},[171,1140,1141,1143,1145,1147,1149],{"class":173,"line":27},[171,1142,300],{"class":191},[171,1144,240],{"class":184},[171,1146,305],{"class":191},[171,1148,188],{"class":184},[171,1150,295],{"class":180},[171,1152,1153,1155,1157,1160,1162],{"class":173,"line":53},[171,1154,510],{"class":184},[171,1156,243],{"class":180},[171,1158,1159],{"class":191},"\u002Fcustom-rules",[171,1161,188],{"class":184},[171,1163,295],{"class":180},[171,1165,1166,1168,1170],{"class":173,"line":116},[171,1167,314],{"class":191},[171,1169,317],{"class":184},[171,1171,528],{"class":191},[171,1173,1174],{"class":173,"line":66},[171,1175,1176],{"class":191},"    \"field\": \"title\",\n",[171,1178,1179],{"class":173,"line":541},[171,1180,1181],{"class":191},"    \"operator\": \"contains\",\n",[171,1183,1184],{"class":173,"line":547},[171,1185,1186],{"class":191},"    \"value\": \"Firefly\",\n",[171,1188,1189],{"class":173,"line":553},[171,1190,1191],{"class":191},"    \"effect\": \"always_keep\",\n",[171,1193,1194],{"class":173,"line":559},[171,1195,1196],{"class":191},"    \"integrationId\": 1\n",[171,1198,1200,1202,1204,1206],{"class":173,"line":1199},11,[171,1201,562],{"class":191},[171,1203,323],{"class":184},[171,1205,326],{"class":184},[171,1207,569],{"class":236},[149,1209,1210],{},"To see what fields and operators are available:",[161,1212,1214],{"className":163,"code":1213,"language":165,"meta":166,"style":166},"curl -s -H \"X-Api-Key: $CAPACITARR_API_KEY\" \\\n  \"$CAPACITARR_URL\u002Frule-fields\" | jq\n",[168,1215,1216,1234],{"__ignoreMap":166},[171,1217,1218,1220,1222,1224,1226,1228,1230,1232],{"class":173,"line":17},[171,1219,237],{"class":236},[171,1221,277],{"class":191},[171,1223,481],{"class":191},[171,1225,240],{"class":184},[171,1227,486],{"class":191},[171,1229,489],{"class":180},[171,1231,188],{"class":184},[171,1233,295],{"class":180},[171,1235,1236,1238,1240,1243,1245,1247],{"class":173,"line":22},[171,1237,510],{"class":184},[171,1239,243],{"class":180},[171,1241,1242],{"class":191},"\u002Frule-fields",[171,1244,188],{"class":184},[171,1246,326],{"class":184},[171,1248,569],{"class":236},[223,1250,1252],{"id":1251},"step-6-preview-the-results","Step 6: Preview the results",[161,1254,1256],{"className":163,"code":1255,"language":165,"meta":166,"style":166},"curl -s -H \"X-Api-Key: $CAPACITARR_API_KEY\" \\\n  \"$CAPACITARR_URL\u002Fpreview\" | jq\n",[168,1257,1258,1276],{"__ignoreMap":166},[171,1259,1260,1262,1264,1266,1268,1270,1272,1274],{"class":173,"line":17},[171,1261,237],{"class":236},[171,1263,277],{"class":191},[171,1265,481],{"class":191},[171,1267,240],{"class":184},[171,1269,486],{"class":191},[171,1271,489],{"class":180},[171,1273,188],{"class":184},[171,1275,295],{"class":180},[171,1277,1278,1280,1282,1285,1287,1289],{"class":173,"line":22},[171,1279,510],{"class":184},[171,1281,243],{"class":180},[171,1283,1284],{"class":191},"\u002Fpreview",[171,1286,188],{"class":184},[171,1288,326],{"class":184},[171,1290,569],{"class":236},[149,1292,1293,1294,1297],{},"Review the scored list. Protected items will have ",[168,1295,1296],{},"\"protected\": true",". Items at the top have the highest deletion scores. Adjust weights and rules as needed, then re-check the preview.",[213,1299],{},[153,1301,1303],{"id":1302},"workflow-3-monitor-and-review","Workflow 3: Monitor and Review",[149,1305,1306],{},"Check system health, view statistics, and review what the engine has done.",[223,1308,1310],{"id":1309},"step-1-check-worker-status","Step 1: Check worker status",[161,1312,1313],{"className":163,"code":718,"language":165,"meta":166,"style":166},[168,1314,1315,1333],{"__ignoreMap":166},[171,1316,1317,1319,1321,1323,1325,1327,1329,1331],{"class":173,"line":17},[171,1318,237],{"class":236},[171,1320,277],{"class":191},[171,1322,481],{"class":191},[171,1324,240],{"class":184},[171,1326,486],{"class":191},[171,1328,489],{"class":180},[171,1330,188],{"class":184},[171,1332,295],{"class":180},[171,1334,1335,1337,1339,1341,1343,1345],{"class":173,"line":22},[171,1336,510],{"class":184},[171,1338,243],{"class":180},[171,1340,747],{"class":191},[171,1342,188],{"class":184},[171,1344,326],{"class":184},[171,1346,569],{"class":236},[149,1348,1349],{},"Look for the current worker state, last run time, and any errors.",[223,1351,1353],{"id":1352},"step-2-view-dashboard-stats","Step 2: View dashboard stats",[161,1355,1357],{"className":163,"code":1356,"language":165,"meta":166,"style":166},"curl -s -H \"X-Api-Key: $CAPACITARR_API_KEY\" \\\n  \"$CAPACITARR_URL\u002Fdashboard-stats\" | jq\n",[168,1358,1359,1377],{"__ignoreMap":166},[171,1360,1361,1363,1365,1367,1369,1371,1373,1375],{"class":173,"line":17},[171,1362,237],{"class":236},[171,1364,277],{"class":191},[171,1366,481],{"class":191},[171,1368,240],{"class":184},[171,1370,486],{"class":191},[171,1372,489],{"class":180},[171,1374,188],{"class":184},[171,1376,295],{"class":180},[171,1378,1379,1381,1383,1386,1388,1390],{"class":173,"line":22},[171,1380,510],{"class":184},[171,1382,243],{"class":180},[171,1384,1385],{"class":191},"\u002Fdashboard-stats",[171,1387,188],{"class":184},[171,1389,326],{"class":184},[171,1391,569],{"class":236},[149,1393,1394],{},"Key fields to check:",[895,1396,1397,1403,1409,1415],{},[898,1398,1399,1402],{},[168,1400,1401],{},"totalBytesReclaimed"," — total disk space freed by the engine",[898,1404,1405,1408],{},[168,1406,1407],{},"totalItemsRemoved"," — number of media items deleted",[898,1410,1411,1414],{},[168,1412,1413],{},"totalEngineRuns"," — how many times the engine has executed",[898,1416,1417,1420],{},[168,1418,1419],{},"growthBytesPerWeek"," — estimated weekly disk growth rate",[223,1422,1424],{"id":1423},"step-3-review-the-audit-log","Step 3: Review the audit log",[161,1426,1428],{"className":163,"code":1427,"language":165,"meta":166,"style":166},"# Most recent 20 entries (history of deletions and dry-runs)\ncurl -s -H \"X-Api-Key: $CAPACITARR_API_KEY\" \\\n  \"$CAPACITARR_URL\u002Faudit-log?limit=20&offset=0\" | jq\n\n# Grouped audit log entries\ncurl -s -H \"X-Api-Key: $CAPACITARR_API_KEY\" \\\n  \"$CAPACITARR_URL\u002Faudit-log\u002Fgrouped\" | jq\n",[168,1429,1430,1435,1453,1468,1472,1477,1495],{"__ignoreMap":166},[171,1431,1432],{"class":173,"line":17},[171,1433,1434],{"class":1115},"# Most recent 20 entries (history of deletions and dry-runs)\n",[171,1436,1437,1439,1441,1443,1445,1447,1449,1451],{"class":173,"line":22},[171,1438,237],{"class":236},[171,1440,277],{"class":191},[171,1442,481],{"class":191},[171,1444,240],{"class":184},[171,1446,486],{"class":191},[171,1448,489],{"class":180},[171,1450,188],{"class":184},[171,1452,295],{"class":180},[171,1454,1455,1457,1459,1462,1464,1466],{"class":173,"line":27},[171,1456,510],{"class":184},[171,1458,243],{"class":180},[171,1460,1461],{"class":191},"\u002Faudit-log?limit=20&offset=0",[171,1463,188],{"class":184},[171,1465,326],{"class":184},[171,1467,569],{"class":236},[171,1469,1470],{"class":173,"line":53},[171,1471,348],{"emptyLinePlaceholder":347},[171,1473,1474],{"class":173,"line":116},[171,1475,1476],{"class":1115},"# Grouped audit log entries\n",[171,1478,1479,1481,1483,1485,1487,1489,1491,1493],{"class":173,"line":66},[171,1480,237],{"class":236},[171,1482,277],{"class":191},[171,1484,481],{"class":191},[171,1486,240],{"class":184},[171,1488,486],{"class":191},[171,1490,489],{"class":180},[171,1492,188],{"class":184},[171,1494,295],{"class":180},[171,1496,1497,1499,1501,1504,1506,1508],{"class":173,"line":541},[171,1498,510],{"class":184},[171,1500,243],{"class":180},[171,1502,1503],{"class":191},"\u002Faudit-log\u002Fgrouped",[171,1505,188],{"class":184},[171,1507,326],{"class":184},[171,1509,569],{"class":236},[149,1511,1512],{},"The audit log records every deletion, dry-run, and dry-delete action taken by the engine.",[223,1514,1516],{"id":1515},"step-4-review-the-approval-queue","Step 4: Review the approval queue",[149,1518,1519],{},"If the engine runs in approval mode, check for items awaiting your review:",[161,1521,1523],{"className":163,"code":1522,"language":165,"meta":166,"style":166},"curl -s -H \"X-Api-Key: $CAPACITARR_API_KEY\" \\\n  \"$CAPACITARR_URL\u002Fapproval-queue?status=pending\" | jq\n",[168,1524,1525,1543],{"__ignoreMap":166},[171,1526,1527,1529,1531,1533,1535,1537,1539,1541],{"class":173,"line":17},[171,1528,237],{"class":236},[171,1530,277],{"class":191},[171,1532,481],{"class":191},[171,1534,240],{"class":184},[171,1536,486],{"class":191},[171,1538,489],{"class":180},[171,1540,188],{"class":184},[171,1542,295],{"class":180},[171,1544,1545,1547,1549,1552,1554,1556],{"class":173,"line":22},[171,1546,510],{"class":184},[171,1548,243],{"class":180},[171,1550,1551],{"class":191},"\u002Fapproval-queue?status=pending",[171,1553,188],{"class":184},[171,1555,326],{"class":184},[171,1557,569],{"class":236},[223,1559,1561],{"id":1560},"step-5-check-recent-activity","Step 5: Check recent activity",[161,1563,1565],{"className":163,"code":1564,"language":165,"meta":166,"style":166},"curl -s -H \"X-Api-Key: $CAPACITARR_API_KEY\" \\\n  \"$CAPACITARR_URL\u002Factivity\u002Frecent?limit=50\" | jq\n",[168,1566,1567,1585],{"__ignoreMap":166},[171,1568,1569,1571,1573,1575,1577,1579,1581,1583],{"class":173,"line":17},[171,1570,237],{"class":236},[171,1572,277],{"class":191},[171,1574,481],{"class":191},[171,1576,240],{"class":184},[171,1578,486],{"class":191},[171,1580,489],{"class":180},[171,1582,188],{"class":184},[171,1584,295],{"class":180},[171,1586,1587,1589,1591,1594,1596,1598],{"class":173,"line":22},[171,1588,510],{"class":184},[171,1590,243],{"class":180},[171,1592,1593],{"class":191},"\u002Factivity\u002Frecent?limit=50",[171,1595,188],{"class":184},[171,1597,326],{"class":184},[171,1599,569],{"class":236},[149,1601,1602],{},"Activity events capture all operational events (engine runs, config changes, logins) and are retained for 7 days.",[223,1604,1606],{"id":1605},"step-6-review-analytics","Step 6: Review analytics",[149,1608,1609],{},"Check for dead content (never watched) and stale content (not watched recently):",[161,1611,1613],{"className":163,"code":1612,"language":165,"meta":166,"style":166},"# Dead content — items never watched after 90+ days in library\ncurl -s -H \"X-Api-Key: $CAPACITARR_API_KEY\" \\\n  \"$CAPACITARR_URL\u002Fanalytics\u002Fdead-content\" | jq\n\n# Stale content — items not watched in 180+ days\ncurl -s -H \"X-Api-Key: $CAPACITARR_API_KEY\" \\\n  \"$CAPACITARR_URL\u002Fanalytics\u002Fstale-content\" | jq\n\n# Capacity forecast — when will disk space run out?\ncurl -s -H \"X-Api-Key: $CAPACITARR_API_KEY\" \\\n  \"$CAPACITARR_URL\u002Fanalytics\u002Fforecast\" | jq\n",[168,1614,1615,1620,1638,1653,1657,1662,1680,1695,1699,1704,1722],{"__ignoreMap":166},[171,1616,1617],{"class":173,"line":17},[171,1618,1619],{"class":1115},"# Dead content — items never watched after 90+ days in library\n",[171,1621,1622,1624,1626,1628,1630,1632,1634,1636],{"class":173,"line":22},[171,1623,237],{"class":236},[171,1625,277],{"class":191},[171,1627,481],{"class":191},[171,1629,240],{"class":184},[171,1631,486],{"class":191},[171,1633,489],{"class":180},[171,1635,188],{"class":184},[171,1637,295],{"class":180},[171,1639,1640,1642,1644,1647,1649,1651],{"class":173,"line":27},[171,1641,510],{"class":184},[171,1643,243],{"class":180},[171,1645,1646],{"class":191},"\u002Fanalytics\u002Fdead-content",[171,1648,188],{"class":184},[171,1650,326],{"class":184},[171,1652,569],{"class":236},[171,1654,1655],{"class":173,"line":53},[171,1656,348],{"emptyLinePlaceholder":347},[171,1658,1659],{"class":173,"line":116},[171,1660,1661],{"class":1115},"# Stale content — items not watched in 180+ days\n",[171,1663,1664,1666,1668,1670,1672,1674,1676,1678],{"class":173,"line":66},[171,1665,237],{"class":236},[171,1667,277],{"class":191},[171,1669,481],{"class":191},[171,1671,240],{"class":184},[171,1673,486],{"class":191},[171,1675,489],{"class":180},[171,1677,188],{"class":184},[171,1679,295],{"class":180},[171,1681,1682,1684,1686,1689,1691,1693],{"class":173,"line":541},[171,1683,510],{"class":184},[171,1685,243],{"class":180},[171,1687,1688],{"class":191},"\u002Fanalytics\u002Fstale-content",[171,1690,188],{"class":184},[171,1692,326],{"class":184},[171,1694,569],{"class":236},[171,1696,1697],{"class":173,"line":547},[171,1698,348],{"emptyLinePlaceholder":347},[171,1700,1701],{"class":173,"line":553},[171,1702,1703],{"class":1115},"# Capacity forecast — when will disk space run out?\n",[171,1705,1706,1708,1710,1712,1714,1716,1718,1720],{"class":173,"line":559},[171,1707,237],{"class":236},[171,1709,277],{"class":191},[171,1711,481],{"class":191},[171,1713,240],{"class":184},[171,1715,486],{"class":191},[171,1717,489],{"class":180},[171,1719,188],{"class":184},[171,1721,295],{"class":180},[171,1723,1724,1726,1728,1731,1733,1735],{"class":173,"line":1199},[171,1725,510],{"class":184},[171,1727,243],{"class":180},[171,1729,1730],{"class":191},"\u002Fanalytics\u002Fforecast",[171,1732,188],{"class":184},[171,1734,326],{"class":184},[171,1736,569],{"class":236},[223,1738,1740],{"id":1739},"step-7-export-metrics-history","Step 7: Export metrics history",[149,1742,1743],{},"Pull historical disk usage data for analysis or external dashboards:",[161,1745,1747],{"className":163,"code":1746,"language":165,"meta":166,"style":166},"# Last 24 hours at hourly resolution\ncurl -s -H \"X-Api-Key: $CAPACITARR_API_KEY\" \\\n  \"$CAPACITARR_URL\u002Fmetrics\u002Fhistory?resolution=hourly&since=24h\" | jq\n\n# Last 30 days at daily resolution for a specific disk group\ncurl -s -H \"X-Api-Key: $CAPACITARR_API_KEY\" \\\n  \"$CAPACITARR_URL\u002Fmetrics\u002Fhistory?resolution=daily&since=30d&disk_group_id=1\" | jq\n",[168,1748,1749,1754,1772,1787,1791,1796,1814],{"__ignoreMap":166},[171,1750,1751],{"class":173,"line":17},[171,1752,1753],{"class":1115},"# Last 24 hours at hourly resolution\n",[171,1755,1756,1758,1760,1762,1764,1766,1768,1770],{"class":173,"line":22},[171,1757,237],{"class":236},[171,1759,277],{"class":191},[171,1761,481],{"class":191},[171,1763,240],{"class":184},[171,1765,486],{"class":191},[171,1767,489],{"class":180},[171,1769,188],{"class":184},[171,1771,295],{"class":180},[171,1773,1774,1776,1778,1781,1783,1785],{"class":173,"line":27},[171,1775,510],{"class":184},[171,1777,243],{"class":180},[171,1779,1780],{"class":191},"\u002Fmetrics\u002Fhistory?resolution=hourly&since=24h",[171,1782,188],{"class":184},[171,1784,326],{"class":184},[171,1786,569],{"class":236},[171,1788,1789],{"class":173,"line":53},[171,1790,348],{"emptyLinePlaceholder":347},[171,1792,1793],{"class":173,"line":116},[171,1794,1795],{"class":1115},"# Last 30 days at daily resolution for a specific disk group\n",[171,1797,1798,1800,1802,1804,1806,1808,1810,1812],{"class":173,"line":66},[171,1799,237],{"class":236},[171,1801,277],{"class":191},[171,1803,481],{"class":191},[171,1805,240],{"class":184},[171,1807,486],{"class":191},[171,1809,489],{"class":180},[171,1811,188],{"class":184},[171,1813,295],{"class":180},[171,1815,1816,1818,1820,1823,1825,1827],{"class":173,"line":541},[171,1817,510],{"class":184},[171,1819,243],{"class":180},[171,1821,1822],{"class":191},"\u002Fmetrics\u002Fhistory?resolution=daily&since=30d&disk_group_id=1",[171,1824,188],{"class":184},[171,1826,326],{"class":184},[171,1828,569],{"class":236},[213,1830],{},[153,1832,1834],{"id":1833},"workflow-4-real-time-monitoring-with-sse","Workflow 4: Real-Time Monitoring with SSE",[149,1836,1837],{},"Subscribe to the Server-Sent Events stream to receive notifications as they happen, without polling.",[223,1839,1841],{"id":1840},"step-1-connect-to-the-event-stream","Step 1: Connect to the event stream",[161,1843,1845],{"className":163,"code":1844,"language":165,"meta":166,"style":166},"curl -N -H \"X-Api-Key: $CAPACITARR_API_KEY\" \\\n  \"$CAPACITARR_URL\u002Fevents\"\n",[168,1846,1847,1866],{"__ignoreMap":166},[171,1848,1849,1851,1854,1856,1858,1860,1862,1864],{"class":173,"line":17},[171,1850,237],{"class":236},[171,1852,1853],{"class":191}," -N",[171,1855,481],{"class":191},[171,1857,240],{"class":184},[171,1859,486],{"class":191},[171,1861,489],{"class":180},[171,1863,188],{"class":184},[171,1865,295],{"class":180},[171,1867,1868,1870,1872,1875],{"class":173,"line":22},[171,1869,510],{"class":184},[171,1871,243],{"class":180},[171,1873,1874],{"class":191},"\u002Fevents",[171,1876,195],{"class":184},[149,1878,1879],{},"The connection stays open and events arrive as they occur:",[161,1881,1886],{"className":1882,"code":1884,"language":1885},[1883],"language-text","id: 1741199820-001\nevent: engine_start\ndata: {\"message\":\"Engine run started in approval mode\",\"executionMode\":\"approval\"}\n\nid: 1741199825-002\nevent: engine_complete\ndata: {\"message\":\"Engine run completed: evaluated 97, flagged 12\",\"evaluated\":97,\"flagged\":12}\n","text",[168,1887,1884],{"__ignoreMap":166},[223,1889,1891],{"id":1890},"step-2-trigger-actions-while-connected","Step 2: Trigger actions while connected",[149,1893,1894],{},"In a separate terminal, trigger an engine run:",[161,1896,1897],{"className":163,"code":673,"language":165,"meta":166,"style":166},[168,1898,1899,1921],{"__ignoreMap":166},[171,1900,1901,1903,1905,1907,1909,1911,1913,1915,1917,1919],{"class":173,"line":17},[171,1902,237],{"class":236},[171,1904,277],{"class":191},[171,1906,280],{"class":191},[171,1908,283],{"class":191},[171,1910,481],{"class":191},[171,1912,240],{"class":184},[171,1914,486],{"class":191},[171,1916,489],{"class":180},[171,1918,188],{"class":184},[171,1920,295],{"class":180},[171,1922,1923,1925,1927,1929,1931,1933],{"class":173,"line":22},[171,1924,510],{"class":184},[171,1926,243],{"class":180},[171,1928,706],{"class":191},[171,1930,188],{"class":184},[171,1932,326],{"class":184},[171,1934,569],{"class":236},[149,1936,1937,1938,810,1941,814,1944,1947],{},"You will see ",[168,1939,1940],{},"manual_run_triggered",[168,1942,1943],{},"engine_start",[168,1945,1946],{},"engine_complete"," events arrive on the SSE connection in real-time.",[223,1949,1951],{"id":1950},"step-3-handle-reconnection","Step 3: Handle reconnection",[149,1953,1954],{},"If the connection drops, resume from the last received event ID:",[161,1956,1958],{"className":163,"code":1957,"language":165,"meta":166,"style":166},"curl -N -H \"X-Api-Key: $CAPACITARR_API_KEY\" \\\n  -H \"Last-Event-ID: 1741199825-002\" \\\n  \"$CAPACITARR_URL\u002Fevents\"\n",[168,1959,1960,1978,1991],{"__ignoreMap":166},[171,1961,1962,1964,1966,1968,1970,1972,1974,1976],{"class":173,"line":17},[171,1963,237],{"class":236},[171,1965,1853],{"class":191},[171,1967,481],{"class":191},[171,1969,240],{"class":184},[171,1971,486],{"class":191},[171,1973,489],{"class":180},[171,1975,188],{"class":184},[171,1977,295],{"class":180},[171,1979,1980,1982,1984,1987,1989],{"class":173,"line":22},[171,1981,300],{"class":191},[171,1983,240],{"class":184},[171,1985,1986],{"class":191},"Last-Event-ID: 1741199825-002",[171,1988,188],{"class":184},[171,1990,295],{"class":180},[171,1992,1993,1995,1997,1999],{"class":173,"line":27},[171,1994,510],{"class":184},[171,1996,243],{"class":180},[171,1998,1874],{"class":191},[171,2000,195],{"class":184},[149,2002,2003],{},"The server replays any events that occurred between the last received ID and now (up to 100 events from the ring buffer).",[223,2005,2007],{"id":2006},"supported-event-types","Supported event types",[149,2009,2010,2011,2015],{},"All 70 event types are documented in the ",[2012,2013,109],"a",{"href":2014},"\u002Fdocs\u002Freference\u002Farchitecture#event-types-70-total"," page.",[213,2017],{},[153,2019,2021],{"id":2020},"workflow-5-emergency-stop-deletions","Workflow 5: Emergency — Stop Deletions",[149,2023,2024,2025,2027],{},"If the engine is actively deleting media and you need it to stop immediately, switch the execution mode to ",[168,2026,1017],{},".",[223,2029,2031],{"id":2030},"step-1-set-default-disk-group-mode-to-dry-run","Step 1: Set default disk group mode to dry-run",[161,2033,2035],{"className":163,"code":2034,"language":165,"meta":166,"style":166},"curl -s -X PUT -H \"X-Api-Key: $CAPACITARR_API_KEY\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  \"$CAPACITARR_URL\u002Fpreferences\" \\\n  -d '{\"defaultDiskGroupMode\":\"dry-run\"}' | jq\n",[168,2036,2037,2059,2071,2083],{"__ignoreMap":166},[171,2038,2039,2041,2043,2045,2047,2049,2051,2053,2055,2057],{"class":173,"line":17},[171,2040,237],{"class":236},[171,2042,277],{"class":191},[171,2044,280],{"class":191},[171,2046,841],{"class":191},[171,2048,481],{"class":191},[171,2050,240],{"class":184},[171,2052,486],{"class":191},[171,2054,489],{"class":180},[171,2056,188],{"class":184},[171,2058,295],{"class":180},[171,2060,2061,2063,2065,2067,2069],{"class":173,"line":22},[171,2062,300],{"class":191},[171,2064,240],{"class":184},[171,2066,305],{"class":191},[171,2068,188],{"class":184},[171,2070,295],{"class":180},[171,2072,2073,2075,2077,2079,2081],{"class":173,"line":27},[171,2074,510],{"class":184},[171,2076,243],{"class":180},[171,2078,1066],{"class":191},[171,2080,188],{"class":184},[171,2082,295],{"class":180},[171,2084,2085,2087,2089,2092,2094,2096],{"class":173,"line":53},[171,2086,314],{"class":191},[171,2088,317],{"class":184},[171,2090,2091],{"class":191},"{\"defaultDiskGroupMode\":\"dry-run\"}",[171,2093,323],{"class":184},[171,2095,326],{"class":184},[171,2097,569],{"class":236},[149,2099,2100],{},"This sets the default mode for newly discovered disk groups. Existing disk groups retain their per-group mode setting.",[223,2102,2104],{"id":2103},"step-2-verify-the-change","Step 2: Verify the change",[161,2106,2108],{"className":163,"code":2107,"language":165,"meta":166,"style":166},"curl -s -H \"X-Api-Key: $CAPACITARR_API_KEY\" \\\n  \"$CAPACITARR_URL\u002Fpreferences\" | jq '.defaultDiskGroupMode'\n",[168,2109,2110,2128],{"__ignoreMap":166},[171,2111,2112,2114,2116,2118,2120,2122,2124,2126],{"class":173,"line":17},[171,2113,237],{"class":236},[171,2115,277],{"class":191},[171,2117,481],{"class":191},[171,2119,240],{"class":184},[171,2121,486],{"class":191},[171,2123,489],{"class":180},[171,2125,188],{"class":184},[171,2127,295],{"class":180},[171,2129,2130,2132,2134,2136,2138,2140,2142,2144,2147],{"class":173,"line":22},[171,2131,510],{"class":184},[171,2133,243],{"class":180},[171,2135,1066],{"class":191},[171,2137,188],{"class":184},[171,2139,326],{"class":184},[171,2141,329],{"class":236},[171,2143,317],{"class":184},[171,2145,2146],{"class":191},".defaultDiskGroupMode",[171,2148,2149],{"class":184},"'\n",[149,2151,2152,2153],{},"Expect: ",[168,2154,2155],{},"\"dry-run\"",[223,2157,2159],{"id":2158},"step-3-review-what-happened","Step 3: Review what happened",[149,2161,2162],{},"Check the audit log to see what was deleted before you intervened:",[161,2164,2166],{"className":163,"code":2165,"language":165,"meta":166,"style":166},"curl -s -H \"X-Api-Key: $CAPACITARR_API_KEY\" \\\n  \"$CAPACITARR_URL\u002Faudit-log?limit=50&offset=0\" | jq\n",[168,2167,2168,2186],{"__ignoreMap":166},[171,2169,2170,2172,2174,2176,2178,2180,2182,2184],{"class":173,"line":17},[171,2171,237],{"class":236},[171,2173,277],{"class":191},[171,2175,481],{"class":191},[171,2177,240],{"class":184},[171,2179,486],{"class":191},[171,2181,489],{"class":180},[171,2183,188],{"class":184},[171,2185,295],{"class":180},[171,2187,2188,2190,2192,2195,2197,2199],{"class":173,"line":22},[171,2189,510],{"class":184},[171,2191,243],{"class":180},[171,2193,2194],{"class":191},"\u002Faudit-log?limit=50&offset=0",[171,2196,188],{"class":184},[171,2198,326],{"class":184},[171,2200,569],{"class":236},[223,2202,2204],{"id":2203},"step-4-re-enable-when-ready","Step 4: Re-enable when ready",[149,2206,2207],{},"Once you have reviewed and adjusted your configuration, switch back to auto mode:",[161,2209,2211],{"className":163,"code":2210,"language":165,"meta":166,"style":166},"curl -s -X PUT -H \"X-Api-Key: $CAPACITARR_API_KEY\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  \"$CAPACITARR_URL\u002Fpreferences\" \\\n  -d '{\"defaultDiskGroupMode\":\"auto\"}' | jq\n",[168,2212,2213,2235,2247,2259],{"__ignoreMap":166},[171,2214,2215,2217,2219,2221,2223,2225,2227,2229,2231,2233],{"class":173,"line":17},[171,2216,237],{"class":236},[171,2218,277],{"class":191},[171,2220,280],{"class":191},[171,2222,841],{"class":191},[171,2224,481],{"class":191},[171,2226,240],{"class":184},[171,2228,486],{"class":191},[171,2230,489],{"class":180},[171,2232,188],{"class":184},[171,2234,295],{"class":180},[171,2236,2237,2239,2241,2243,2245],{"class":173,"line":22},[171,2238,300],{"class":191},[171,2240,240],{"class":184},[171,2242,305],{"class":191},[171,2244,188],{"class":184},[171,2246,295],{"class":180},[171,2248,2249,2251,2253,2255,2257],{"class":173,"line":27},[171,2250,510],{"class":184},[171,2252,243],{"class":180},[171,2254,1066],{"class":191},[171,2256,188],{"class":184},[171,2258,295],{"class":180},[171,2260,2261,2263,2265,2268,2270,2272],{"class":173,"line":53},[171,2262,314],{"class":191},[171,2264,317],{"class":184},[171,2266,2267],{"class":191},"{\"defaultDiskGroupMode\":\"auto\"}",[171,2269,323],{"class":184},[171,2271,326],{"class":184},[171,2273,569],{"class":236},[213,2275],{},[153,2277,2279],{"id":2278},"workflow-6-approval-queue-management","Workflow 6: Approval Queue Management",[149,2281,2282],{},"Work through items flagged by the engine in approval mode.",[223,2284,2286],{"id":2285},"step-1-view-pending-items","Step 1: View pending items",[161,2288,2289],{"className":163,"code":1522,"language":165,"meta":166,"style":166},[168,2290,2291,2309],{"__ignoreMap":166},[171,2292,2293,2295,2297,2299,2301,2303,2305,2307],{"class":173,"line":17},[171,2294,237],{"class":236},[171,2296,277],{"class":191},[171,2298,481],{"class":191},[171,2300,240],{"class":184},[171,2302,486],{"class":191},[171,2304,489],{"class":180},[171,2306,188],{"class":184},[171,2308,295],{"class":180},[171,2310,2311,2313,2315,2317,2319,2321],{"class":173,"line":22},[171,2312,510],{"class":184},[171,2314,243],{"class":180},[171,2316,1551],{"class":191},[171,2318,188],{"class":184},[171,2320,326],{"class":184},[171,2322,569],{"class":236},[223,2324,2326],{"id":2325},"step-2-approve-items-for-deletion","Step 2: Approve items for deletion",[161,2328,2330],{"className":163,"code":2329,"language":165,"meta":166,"style":166},"# Approve a specific item\ncurl -s -X POST -H \"X-Api-Key: $CAPACITARR_API_KEY\" \\\n  \"$CAPACITARR_URL\u002Fapproval-queue\u002F1\u002Fapprove\" | jq\n",[168,2331,2332,2337,2359],{"__ignoreMap":166},[171,2333,2334],{"class":173,"line":17},[171,2335,2336],{"class":1115},"# Approve a specific item\n",[171,2338,2339,2341,2343,2345,2347,2349,2351,2353,2355,2357],{"class":173,"line":22},[171,2340,237],{"class":236},[171,2342,277],{"class":191},[171,2344,280],{"class":191},[171,2346,283],{"class":191},[171,2348,481],{"class":191},[171,2350,240],{"class":184},[171,2352,486],{"class":191},[171,2354,489],{"class":180},[171,2356,188],{"class":184},[171,2358,295],{"class":180},[171,2360,2361,2363,2365,2368,2370,2372],{"class":173,"line":27},[171,2362,510],{"class":184},[171,2364,243],{"class":180},[171,2366,2367],{"class":191},"\u002Fapproval-queue\u002F1\u002Fapprove",[171,2369,188],{"class":184},[171,2371,326],{"class":184},[171,2373,569],{"class":236},[149,2375,2376],{},"The item will be queued for deletion by the deletion worker.",[2378,2379,2380],"blockquote",{},[149,2381,2382,2385,2386,2389,2390,2393,2394,2397],{},[901,2383,2384],{},"Note:"," Approvals are blocked when ",[168,2387,2388],{},"deletionsEnabled"," is ",[168,2391,2392],{},"false"," in preferences. The server returns ",[168,2395,2396],{},"409 Conflict"," in this case.",[223,2399,2401],{"id":2400},"step-3-reject-snooze-items","Step 3: Reject (snooze) items",[161,2403,2405],{"className":163,"code":2404,"language":165,"meta":166,"style":166},"# Reject a specific item (items are snoozed for a configurable duration)\ncurl -s -X POST -H \"X-Api-Key: $CAPACITARR_API_KEY\" \\\n  \"$CAPACITARR_URL\u002Fapproval-queue\u002F1\u002Freject\" | jq\n",[168,2406,2407,2412,2434],{"__ignoreMap":166},[171,2408,2409],{"class":173,"line":17},[171,2410,2411],{"class":1115},"# Reject a specific item (items are snoozed for a configurable duration)\n",[171,2413,2414,2416,2418,2420,2422,2424,2426,2428,2430,2432],{"class":173,"line":22},[171,2415,237],{"class":236},[171,2417,277],{"class":191},[171,2419,280],{"class":191},[171,2421,283],{"class":191},[171,2423,481],{"class":191},[171,2425,240],{"class":184},[171,2427,486],{"class":191},[171,2429,489],{"class":180},[171,2431,188],{"class":184},[171,2433,295],{"class":180},[171,2435,2436,2438,2440,2443,2445,2447],{"class":173,"line":27},[171,2437,510],{"class":184},[171,2439,243],{"class":180},[171,2441,2442],{"class":191},"\u002Fapproval-queue\u002F1\u002Freject",[171,2444,188],{"class":184},[171,2446,326],{"class":184},[171,2448,569],{"class":236},[149,2450,2451],{},"Rejected items are snoozed and will not appear again until the snooze period expires or they are manually unsnoozed.",[223,2453,2455],{"id":2454},"step-4-unsnooze-a-rejected-item","Step 4: Unsnooze a rejected item",[161,2457,2459],{"className":163,"code":2458,"language":165,"meta":166,"style":166},"curl -s -X POST -H \"X-Api-Key: $CAPACITARR_API_KEY\" \\\n  \"$CAPACITARR_URL\u002Fapproval-queue\u002F1\u002Funsnooze\" | jq\n",[168,2460,2461,2483],{"__ignoreMap":166},[171,2462,2463,2465,2467,2469,2471,2473,2475,2477,2479,2481],{"class":173,"line":17},[171,2464,237],{"class":236},[171,2466,277],{"class":191},[171,2468,280],{"class":191},[171,2470,283],{"class":191},[171,2472,481],{"class":191},[171,2474,240],{"class":184},[171,2476,486],{"class":191},[171,2478,489],{"class":180},[171,2480,188],{"class":184},[171,2482,295],{"class":180},[171,2484,2485,2487,2489,2492,2494,2496],{"class":173,"line":22},[171,2486,510],{"class":184},[171,2488,243],{"class":180},[171,2490,2491],{"class":191},"\u002Fapproval-queue\u002F1\u002Funsnooze",[171,2493,188],{"class":184},[171,2495,326],{"class":184},[171,2497,569],{"class":236},[149,2499,2500,2501,2504],{},"The item returns to ",[168,2502,2503],{},"pending"," status in the queue.",[223,2506,2508],{"id":2507},"step-5-clear-the-queue","Step 5: Clear the queue",[149,2510,2511],{},"Remove all items from the approval queue:",[161,2513,2515],{"className":163,"code":2514,"language":165,"meta":166,"style":166},"curl -s -X POST -H \"X-Api-Key: $CAPACITARR_API_KEY\" \\\n  \"$CAPACITARR_URL\u002Fapproval-queue\u002Fclear\" | jq\n",[168,2516,2517,2539],{"__ignoreMap":166},[171,2518,2519,2521,2523,2525,2527,2529,2531,2533,2535,2537],{"class":173,"line":17},[171,2520,237],{"class":236},[171,2522,277],{"class":191},[171,2524,280],{"class":191},[171,2526,283],{"class":191},[171,2528,481],{"class":191},[171,2530,240],{"class":184},[171,2532,486],{"class":191},[171,2534,489],{"class":180},[171,2536,188],{"class":184},[171,2538,295],{"class":180},[171,2540,2541,2543,2545,2548,2550,2552],{"class":173,"line":22},[171,2542,510],{"class":184},[171,2544,243],{"class":180},[171,2546,2547],{"class":191},"\u002Fapproval-queue\u002Fclear",[171,2549,188],{"class":184},[171,2551,326],{"class":184},[171,2553,569],{"class":236},[213,2555],{},[153,2557,2559],{"id":2558},"workflow-7-add-a-new-integration","Workflow 7: Add a New Integration",[149,2561,2562],{},"Add a second media server (e.g., Radarr) to an existing Capacitarr instance.",[223,2564,2566],{"id":2565},"step-1-create-the-integration","Step 1: Create the integration",[161,2568,2570],{"className":163,"code":2569,"language":165,"meta":166,"style":166},"curl -s -X POST -H \"X-Api-Key: $CAPACITARR_API_KEY\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  \"$CAPACITARR_URL\u002Fintegrations\" \\\n  -d '{\n    \"type\": \"radarr\",\n    \"name\": \"Radarr Movies\",\n    \"url\": \"http:\u002F\u002Fradarr:7878\",\n    \"apiKey\": \"your-radarr-api-key\",\n    \"enabled\": true\n  }' | jq\n",[168,2571,2572,2594,2606,2618,2626,2631,2636,2641,2646,2650],{"__ignoreMap":166},[171,2573,2574,2576,2578,2580,2582,2584,2586,2588,2590,2592],{"class":173,"line":17},[171,2575,237],{"class":236},[171,2577,277],{"class":191},[171,2579,280],{"class":191},[171,2581,283],{"class":191},[171,2583,481],{"class":191},[171,2585,240],{"class":184},[171,2587,486],{"class":191},[171,2589,489],{"class":180},[171,2591,188],{"class":184},[171,2593,295],{"class":180},[171,2595,2596,2598,2600,2602,2604],{"class":173,"line":22},[171,2597,300],{"class":191},[171,2599,240],{"class":184},[171,2601,305],{"class":191},[171,2603,188],{"class":184},[171,2605,295],{"class":180},[171,2607,2608,2610,2612,2614,2616],{"class":173,"line":27},[171,2609,510],{"class":184},[171,2611,243],{"class":180},[171,2613,515],{"class":191},[171,2615,188],{"class":184},[171,2617,295],{"class":180},[171,2619,2620,2622,2624],{"class":173,"line":53},[171,2621,314],{"class":191},[171,2623,317],{"class":184},[171,2625,528],{"class":191},[171,2627,2628],{"class":173,"line":116},[171,2629,2630],{"class":191},"    \"type\": \"radarr\",\n",[171,2632,2633],{"class":173,"line":66},[171,2634,2635],{"class":191},"    \"name\": \"Radarr Movies\",\n",[171,2637,2638],{"class":173,"line":541},[171,2639,2640],{"class":191},"    \"url\": \"http:\u002F\u002Fradarr:7878\",\n",[171,2642,2643],{"class":173,"line":547},[171,2644,2645],{"class":191},"    \"apiKey\": \"your-radarr-api-key\",\n",[171,2647,2648],{"class":173,"line":553},[171,2649,556],{"class":191},[171,2651,2652,2654,2656,2658],{"class":173,"line":559},[171,2653,562],{"class":191},[171,2655,323],{"class":184},[171,2657,326],{"class":184},[171,2659,569],{"class":236},[149,2661,572,2662,2664,2665,2668],{},[168,2663,575],{}," in the response (e.g., ",[168,2666,2667],{},"2",").",[223,2670,2672],{"id":2671},"step-2-test-the-connection","Step 2: Test the connection",[161,2674,2676],{"className":163,"code":2675,"language":165,"meta":166,"style":166},"curl -s -X POST -H \"X-Api-Key: $CAPACITARR_API_KEY\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  \"$CAPACITARR_URL\u002Fintegrations\u002Ftest\" \\\n  -d '{\n    \"type\": \"radarr\",\n    \"url\": \"http:\u002F\u002Fradarr:7878\",\n    \"apiKey\": \"your-radarr-api-key\"\n  }' | jq\n",[168,2677,2678,2700,2712,2724,2732,2736,2740,2745],{"__ignoreMap":166},[171,2679,2680,2682,2684,2686,2688,2690,2692,2694,2696,2698],{"class":173,"line":17},[171,2681,237],{"class":236},[171,2683,277],{"class":191},[171,2685,280],{"class":191},[171,2687,283],{"class":191},[171,2689,481],{"class":191},[171,2691,240],{"class":184},[171,2693,486],{"class":191},[171,2695,489],{"class":180},[171,2697,188],{"class":184},[171,2699,295],{"class":180},[171,2701,2702,2704,2706,2708,2710],{"class":173,"line":22},[171,2703,300],{"class":191},[171,2705,240],{"class":184},[171,2707,305],{"class":191},[171,2709,188],{"class":184},[171,2711,295],{"class":180},[171,2713,2714,2716,2718,2720,2722],{"class":173,"line":27},[171,2715,510],{"class":184},[171,2717,243],{"class":180},[171,2719,628],{"class":191},[171,2721,188],{"class":184},[171,2723,295],{"class":180},[171,2725,2726,2728,2730],{"class":173,"line":53},[171,2727,314],{"class":191},[171,2729,317],{"class":184},[171,2731,528],{"class":191},[171,2733,2734],{"class":173,"line":116},[171,2735,2630],{"class":191},[171,2737,2738],{"class":173,"line":66},[171,2739,2640],{"class":191},[171,2741,2742],{"class":173,"line":541},[171,2743,2744],{"class":191},"    \"apiKey\": \"your-radarr-api-key\"\n",[171,2746,2747,2749,2751,2753],{"class":173,"line":547},[171,2748,562],{"class":191},[171,2750,323],{"class":184},[171,2752,326],{"class":184},[171,2754,569],{"class":236},[149,2756,2757],{},"A successful response confirms connectivity. If it fails, double-check the URL and API key, and ensure the Radarr instance is reachable from the Capacitarr container.",[223,2759,2761],{"id":2760},"step-3-trigger-an-engine-run","Step 3: Trigger an engine run",[161,2763,2764],{"className":163,"code":673,"language":165,"meta":166,"style":166},[168,2765,2766,2788],{"__ignoreMap":166},[171,2767,2768,2770,2772,2774,2776,2778,2780,2782,2784,2786],{"class":173,"line":17},[171,2769,237],{"class":236},[171,2771,277],{"class":191},[171,2773,280],{"class":191},[171,2775,283],{"class":191},[171,2777,481],{"class":191},[171,2779,240],{"class":184},[171,2781,486],{"class":191},[171,2783,489],{"class":180},[171,2785,188],{"class":184},[171,2787,295],{"class":180},[171,2789,2790,2792,2794,2796,2798,2800],{"class":173,"line":22},[171,2791,510],{"class":184},[171,2793,243],{"class":180},[171,2795,706],{"class":191},[171,2797,188],{"class":184},[171,2799,326],{"class":184},[171,2801,569],{"class":236},[149,2803,2804],{},"The engine will sync media from the new integration and include it in scoring.",[223,2806,2808],{"id":2807},"step-4-verify-media-appears-in-preview","Step 4: Verify media appears in preview",[161,2810,2812],{"className":163,"code":2811,"language":165,"meta":166,"style":166},"curl -s -H \"X-Api-Key: $CAPACITARR_API_KEY\" \\\n  \"$CAPACITARR_URL\u002Fpreview\" | jq '.[0:5]'\n",[168,2813,2814,2832],{"__ignoreMap":166},[171,2815,2816,2818,2820,2822,2824,2826,2828,2830],{"class":173,"line":17},[171,2817,237],{"class":236},[171,2819,277],{"class":191},[171,2821,481],{"class":191},[171,2823,240],{"class":184},[171,2825,486],{"class":191},[171,2827,489],{"class":180},[171,2829,188],{"class":184},[171,2831,295],{"class":180},[171,2833,2834,2836,2838,2840,2842,2844,2846,2848,2851],{"class":173,"line":22},[171,2835,510],{"class":184},[171,2837,243],{"class":180},[171,2839,1284],{"class":191},[171,2841,188],{"class":184},[171,2843,326],{"class":184},[171,2845,329],{"class":236},[171,2847,317],{"class":184},[171,2849,2850],{"class":191},".[0:5]",[171,2852,2149],{"class":184},[149,2854,2855],{},"You should see media from both Sonarr and Radarr in the scored list. If the new integration's media is missing, check that the integration is enabled and the engine run completed successfully.",[213,2857],{},[153,2859,2861],{"id":2860},"workflow-8-settings-exportimport","Workflow 8: Settings Export\u002FImport",[149,2863,2864],{},"Back up, migrate, or share your Capacitarr configuration between instances with section-level granularity.",[223,2866,2868],{"id":2867},"export-workflow","Export Workflow",[2870,2871,2872,2886],"ol",{},[898,2873,2874,2877,2878,2881,2882,2885],{},[901,2875,2876],{},"Export settings"," — ",[168,2879,2880],{},"GET \u002Fsettings\u002Fexport"," (optionally with ",[168,2883,2884],{},"?sections=rules,preferences",")",[898,2887,2888],{},"Save the JSON response to a file",[149,2890,2891],{},"The export strips sensitive credentials (API keys, webhook URLs) and replaces internal IDs with portable references.",[223,2893,2895],{"id":2894},"import-workflow","Import Workflow",[2870,2897,2898,2904,2913],{},[898,2899,2900,2903],{},[901,2901,2902],{},"Read export file"," — parse the JSON",[898,2905,2906,2877,2909,2912],{},[901,2907,2908],{},"Import settings",[168,2910,2911],{},"POST \u002Fsettings\u002Fimport"," with the envelope and desired sections",[898,2914,2915,2918],{},[901,2916,2917],{},"Re-enter credentials"," — after import, manually re-enter API keys on integrations and webhook URLs on notification channels",[149,2920,2921,2922,2925],{},"Rules are imported ",[901,2923,2924],{},"additively"," — existing rules are never modified or deleted. Preferences, integrations, disk groups, and notification channels are upserted.",[223,2927,2929],{"id":2928},"example-full-migration","Example: Full Migration",[161,2931,2933],{"className":163,"code":2932,"language":165,"meta":166,"style":166},"# 1. Export all settings from source instance\ncurl -s -H \"X-Api-Key: $SOURCE_API_KEY\" \\\n  \"http:\u002F\u002Fsource:2187\u002Fapi\u002Fv1\u002Fsettings\u002Fexport\" \\\n  -o capacitarr-settings.json\n\n# 2. Import all sections into target instance\ncurl -s -X POST -H \"X-Api-Key: $TARGET_API_KEY\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  \"http:\u002F\u002Ftarget:2187\u002Fapi\u002Fv1\u002Fsettings\u002Fimport\" \\\n  -d \"{\n    \\\"envelope\\\": $(cat capacitarr-settings.json),\n    \\\"sections\\\": {\n      \\\"preferences\\\": true,\n      \\\"rules\\\": true,\n      \\\"integrations\\\": true,\n      \\\"diskGroups\\\": true,\n      \\\"notifications\\\": true\n    }\n  }\"\n\n# 3. Re-enter API keys on imported integrations\ncurl -s -X PUT -H \"X-Api-Key: $TARGET_API_KEY\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  \"http:\u002F\u002Ftarget:2187\u002Fapi\u002Fv1\u002Fintegrations\u002F1\" \\\n  -d '{\"apiKey\": \"your-api-key\"}'\n",[168,2934,2935,2940,2959,2970,2978,2982,2987,3010,3022,3033,3041,3069,3082,3096,3108,3120,3132,3145,3151,3158,3163,3169,3192,3205,3217],{"__ignoreMap":166},[171,2936,2937],{"class":173,"line":17},[171,2938,2939],{"class":1115},"# 1. Export all settings from source instance\n",[171,2941,2942,2944,2946,2948,2950,2952,2955,2957],{"class":173,"line":22},[171,2943,237],{"class":236},[171,2945,277],{"class":191},[171,2947,481],{"class":191},[171,2949,240],{"class":184},[171,2951,486],{"class":191},[171,2953,2954],{"class":180},"$SOURCE_API_KEY",[171,2956,188],{"class":184},[171,2958,295],{"class":180},[171,2960,2961,2963,2966,2968],{"class":173,"line":27},[171,2962,510],{"class":184},[171,2964,2965],{"class":191},"http:\u002F\u002Fsource:2187\u002Fapi\u002Fv1\u002Fsettings\u002Fexport",[171,2967,188],{"class":184},[171,2969,295],{"class":180},[171,2971,2972,2975],{"class":173,"line":53},[171,2973,2974],{"class":191},"  -o",[171,2976,2977],{"class":191}," capacitarr-settings.json\n",[171,2979,2980],{"class":173,"line":116},[171,2981,348],{"emptyLinePlaceholder":347},[171,2983,2984],{"class":173,"line":66},[171,2985,2986],{"class":1115},"# 2. Import all sections into target instance\n",[171,2988,2989,2991,2993,2995,2997,2999,3001,3003,3006,3008],{"class":173,"line":541},[171,2990,237],{"class":236},[171,2992,277],{"class":191},[171,2994,280],{"class":191},[171,2996,283],{"class":191},[171,2998,481],{"class":191},[171,3000,240],{"class":184},[171,3002,486],{"class":191},[171,3004,3005],{"class":180},"$TARGET_API_KEY",[171,3007,188],{"class":184},[171,3009,295],{"class":180},[171,3011,3012,3014,3016,3018,3020],{"class":173,"line":547},[171,3013,300],{"class":191},[171,3015,240],{"class":184},[171,3017,305],{"class":191},[171,3019,188],{"class":184},[171,3021,295],{"class":180},[171,3023,3024,3026,3029,3031],{"class":173,"line":553},[171,3025,510],{"class":184},[171,3027,3028],{"class":191},"http:\u002F\u002Ftarget:2187\u002Fapi\u002Fv1\u002Fsettings\u002Fimport",[171,3030,188],{"class":184},[171,3032,295],{"class":180},[171,3034,3035,3037,3039],{"class":173,"line":559},[171,3036,314],{"class":191},[171,3038,240],{"class":184},[171,3040,528],{"class":191},[171,3042,3043,3046,3049,3052,3055,3058,3061,3064,3066],{"class":173,"line":1199},[171,3044,3045],{"class":180},"    \\\"",[171,3047,3048],{"class":191},"envelope",[171,3050,3051],{"class":180},"\\\"",[171,3053,3054],{"class":191},": ",[171,3056,3057],{"class":184},"$(",[171,3059,3060],{"class":236},"cat",[171,3062,3063],{"class":191}," capacitarr-settings.json",[171,3065,2885],{"class":184},[171,3067,3068],{"class":191},",\n",[171,3070,3072,3074,3077,3079],{"class":173,"line":3071},12,[171,3073,3045],{"class":180},[171,3075,3076],{"class":191},"sections",[171,3078,3051],{"class":180},[171,3080,3081],{"class":191},": {\n",[171,3083,3085,3088,3091,3093],{"class":173,"line":3084},13,[171,3086,3087],{"class":180},"      \\\"",[171,3089,3090],{"class":191},"preferences",[171,3092,3051],{"class":180},[171,3094,3095],{"class":191},": true,\n",[171,3097,3099,3101,3104,3106],{"class":173,"line":3098},14,[171,3100,3087],{"class":180},[171,3102,3103],{"class":191},"rules",[171,3105,3051],{"class":180},[171,3107,3095],{"class":191},[171,3109,3111,3113,3116,3118],{"class":173,"line":3110},15,[171,3112,3087],{"class":180},[171,3114,3115],{"class":191},"integrations",[171,3117,3051],{"class":180},[171,3119,3095],{"class":191},[171,3121,3123,3125,3128,3130],{"class":173,"line":3122},16,[171,3124,3087],{"class":180},[171,3126,3127],{"class":191},"diskGroups",[171,3129,3051],{"class":180},[171,3131,3095],{"class":191},[171,3133,3135,3137,3140,3142],{"class":173,"line":3134},17,[171,3136,3087],{"class":180},[171,3138,3139],{"class":191},"notifications",[171,3141,3051],{"class":180},[171,3143,3144],{"class":191},": true\n",[171,3146,3148],{"class":173,"line":3147},18,[171,3149,3150],{"class":191},"    }\n",[171,3152,3154,3156],{"class":173,"line":3153},19,[171,3155,562],{"class":191},[171,3157,195],{"class":184},[171,3159,3161],{"class":173,"line":3160},20,[171,3162,348],{"emptyLinePlaceholder":347},[171,3164,3166],{"class":173,"line":3165},21,[171,3167,3168],{"class":1115},"# 3. Re-enter API keys on imported integrations\n",[171,3170,3172,3174,3176,3178,3180,3182,3184,3186,3188,3190],{"class":173,"line":3171},22,[171,3173,237],{"class":236},[171,3175,277],{"class":191},[171,3177,280],{"class":191},[171,3179,841],{"class":191},[171,3181,481],{"class":191},[171,3183,240],{"class":184},[171,3185,486],{"class":191},[171,3187,3005],{"class":180},[171,3189,188],{"class":184},[171,3191,295],{"class":180},[171,3193,3195,3197,3199,3201,3203],{"class":173,"line":3194},23,[171,3196,300],{"class":191},[171,3198,240],{"class":184},[171,3200,305],{"class":191},[171,3202,188],{"class":184},[171,3204,295],{"class":180},[171,3206,3208,3210,3213,3215],{"class":173,"line":3207},24,[171,3209,510],{"class":184},[171,3211,3212],{"class":191},"http:\u002F\u002Ftarget:2187\u002Fapi\u002Fv1\u002Fintegrations\u002F1",[171,3214,188],{"class":184},[171,3216,295],{"class":180},[171,3218,3220,3222,3224,3227],{"class":173,"line":3219},25,[171,3221,314],{"class":191},[171,3223,317],{"class":184},[171,3225,3226],{"class":191},"{\"apiKey\": \"your-api-key\"}",[171,3228,2149],{"class":184},[223,3230,3232],{"id":3231},"example-rules-only-backup","Example: Rules-Only Backup",[161,3234,3236],{"className":163,"code":3235,"language":165,"meta":166,"style":166},"# Export only rules\ncurl -s -H \"X-Api-Key: $CAPACITARR_API_KEY\" \\\n  \"$CAPACITARR_URL\u002Fsettings\u002Fexport?sections=rules\" \\\n  -o capacitarr-rules.json\n\n# Import only rules\ncurl -s -X POST -H \"X-Api-Key: $CAPACITARR_API_KEY\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  \"$CAPACITARR_URL\u002Fsettings\u002Fimport\" \\\n  -d \"{\n    \\\"envelope\\\": $(cat capacitarr-rules.json),\n    \\\"sections\\\": {\\\"rules\\\": true}\n  }\"\n",[168,3237,3238,3243,3261,3274,3281,3285,3290,3312,3324,3337,3345,3366,3386],{"__ignoreMap":166},[171,3239,3240],{"class":173,"line":17},[171,3241,3242],{"class":1115},"# Export only rules\n",[171,3244,3245,3247,3249,3251,3253,3255,3257,3259],{"class":173,"line":22},[171,3246,237],{"class":236},[171,3248,277],{"class":191},[171,3250,481],{"class":191},[171,3252,240],{"class":184},[171,3254,486],{"class":191},[171,3256,489],{"class":180},[171,3258,188],{"class":184},[171,3260,295],{"class":180},[171,3262,3263,3265,3267,3270,3272],{"class":173,"line":27},[171,3264,510],{"class":184},[171,3266,243],{"class":180},[171,3268,3269],{"class":191},"\u002Fsettings\u002Fexport?sections=rules",[171,3271,188],{"class":184},[171,3273,295],{"class":180},[171,3275,3276,3278],{"class":173,"line":53},[171,3277,2974],{"class":191},[171,3279,3280],{"class":191}," capacitarr-rules.json\n",[171,3282,3283],{"class":173,"line":116},[171,3284,348],{"emptyLinePlaceholder":347},[171,3286,3287],{"class":173,"line":66},[171,3288,3289],{"class":1115},"# Import only rules\n",[171,3291,3292,3294,3296,3298,3300,3302,3304,3306,3308,3310],{"class":173,"line":541},[171,3293,237],{"class":236},[171,3295,277],{"class":191},[171,3297,280],{"class":191},[171,3299,283],{"class":191},[171,3301,481],{"class":191},[171,3303,240],{"class":184},[171,3305,486],{"class":191},[171,3307,489],{"class":180},[171,3309,188],{"class":184},[171,3311,295],{"class":180},[171,3313,3314,3316,3318,3320,3322],{"class":173,"line":547},[171,3315,300],{"class":191},[171,3317,240],{"class":184},[171,3319,305],{"class":191},[171,3321,188],{"class":184},[171,3323,295],{"class":180},[171,3325,3326,3328,3330,3333,3335],{"class":173,"line":553},[171,3327,510],{"class":184},[171,3329,243],{"class":180},[171,3331,3332],{"class":191},"\u002Fsettings\u002Fimport",[171,3334,188],{"class":184},[171,3336,295],{"class":180},[171,3338,3339,3341,3343],{"class":173,"line":559},[171,3340,314],{"class":191},[171,3342,240],{"class":184},[171,3344,528],{"class":191},[171,3346,3347,3349,3351,3353,3355,3357,3359,3362,3364],{"class":173,"line":1199},[171,3348,3045],{"class":180},[171,3350,3048],{"class":191},[171,3352,3051],{"class":180},[171,3354,3054],{"class":191},[171,3356,3057],{"class":184},[171,3358,3060],{"class":236},[171,3360,3361],{"class":191}," capacitarr-rules.json",[171,3363,2885],{"class":184},[171,3365,3068],{"class":191},[171,3367,3368,3370,3372,3374,3377,3379,3381,3383],{"class":173,"line":3071},[171,3369,3045],{"class":180},[171,3371,3076],{"class":191},[171,3373,3051],{"class":180},[171,3375,3376],{"class":191},": {",[171,3378,3051],{"class":180},[171,3380,3103],{"class":191},[171,3382,3051],{"class":180},[171,3384,3385],{"class":191},": true}\n",[171,3387,3388,3390],{"class":173,"line":3084},[171,3389,562],{"class":191},[171,3391,195],{"class":184},[3393,3394,3395],"style",{},"html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}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 .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}",{"title":166,"searchDepth":17,"depth":22,"links":3397},[3398,3399,3407,3415,3424,3430,3436,3443,3449],{"id":155,"depth":22,"text":156},{"id":217,"depth":22,"text":218,"children":3400},[3401,3402,3403,3404,3405,3406],{"id":225,"depth":27,"text":226},{"id":258,"depth":27,"text":259},{"id":367,"depth":27,"text":368},{"id":462,"depth":27,"text":463},{"id":579,"depth":27,"text":580},{"id":669,"depth":27,"text":670},{"id":758,"depth":22,"text":759,"children":3408},[3409,3410,3411,3412,3413,3414],{"id":765,"depth":27,"text":766},{"id":821,"depth":27,"text":822},{"id":913,"depth":27,"text":914},{"id":1010,"depth":27,"text":1011},{"id":1101,"depth":27,"text":1102},{"id":1251,"depth":27,"text":1252},{"id":1302,"depth":22,"text":1303,"children":3416},[3417,3418,3419,3420,3421,3422,3423],{"id":1309,"depth":27,"text":1310},{"id":1352,"depth":27,"text":1353},{"id":1423,"depth":27,"text":1424},{"id":1515,"depth":27,"text":1516},{"id":1560,"depth":27,"text":1561},{"id":1605,"depth":27,"text":1606},{"id":1739,"depth":27,"text":1740},{"id":1833,"depth":22,"text":1834,"children":3425},[3426,3427,3428,3429],{"id":1840,"depth":27,"text":1841},{"id":1890,"depth":27,"text":1891},{"id":1950,"depth":27,"text":1951},{"id":2006,"depth":27,"text":2007},{"id":2020,"depth":22,"text":2021,"children":3431},[3432,3433,3434,3435],{"id":2030,"depth":27,"text":2031},{"id":2103,"depth":27,"text":2104},{"id":2158,"depth":27,"text":2159},{"id":2203,"depth":27,"text":2204},{"id":2278,"depth":22,"text":2279,"children":3437},[3438,3439,3440,3441,3442],{"id":2285,"depth":27,"text":2286},{"id":2325,"depth":27,"text":2326},{"id":2400,"depth":27,"text":2401},{"id":2454,"depth":27,"text":2455},{"id":2507,"depth":27,"text":2508},{"id":2558,"depth":22,"text":2559,"children":3444},[3445,3446,3447,3448],{"id":2565,"depth":27,"text":2566},{"id":2671,"depth":27,"text":2672},{"id":2760,"depth":27,"text":2761},{"id":2807,"depth":27,"text":2808},{"id":2860,"depth":22,"text":2861,"children":3450},[3451,3452,3453,3454],{"id":2867,"depth":27,"text":2868},{"id":2894,"depth":27,"text":2895},{"id":2928,"depth":27,"text":2929},{"id":3231,"depth":27,"text":3232},"md",null,{},{"order":27},{"title":105,"description":151},"4k2ussgdnqz2G_aEahsw89k51o5fYioMTAjKcRI2mKs",[3462,3464],{"title":101,"path":102,"stem":103,"description":3463,"order":53,"children":-1},"This document describes Capacitarr's API versioning policy, what constitutes a breaking change, and what API consumers can rely on remaining stable.",{"title":109,"path":110,"stem":111,"description":3465,"order":17,"children":-1},"Capacitarr is a single-container application that bundles a Go backend, a Nuxt 4 (Vue 3) frontend, and a SQLite database. The frontend is statically generated at build time and embedded into the Go binary via go:embed, producing a single self-contained executable.",1776649616744]