[{"data":1,"prerenderedAt":413},["ShallowReactive",2],{"navigation":3,"\u002Factions\u002Flocal-development":194,"\u002Factions\u002Flocal-development-surround":408},[4,18,31,64,81,102,111,132,149],{"title":5,"path":6,"stem":7,"children":8,"page":17},"Getting started","\u002Fgetting-started","1.getting-started",[9,13],{"title":10,"path":11,"stem":12},"Introduction","\u002Fgetting-started\u002Fintroduction","1.getting-started\u002F1.introduction",{"title":14,"path":15,"stem":16},"Run your first workflow","\u002Fgetting-started\u002Fquickstart","1.getting-started\u002F2.quickstart",false,{"title":19,"path":20,"stem":21,"children":22,"page":17},"Core concepts","\u002Fconcepts","2.concepts",[23,27],{"title":24,"path":25,"stem":26},"The platform model","\u002Fconcepts\u002Fplatform","2.concepts\u002F1.platform",{"title":28,"path":29,"stem":30},"Architecture and boundaries","\u002Fconcepts\u002Farchitecture","2.concepts\u002F2.architecture",{"title":32,"path":33,"stem":34,"children":35,"page":17},"Installation","\u002Finstallation","3.installation",[36,40,44,48,52,56,60],{"title":37,"path":38,"stem":39},"Overview and requirements","\u002Finstallation\u002Foverview","3.installation\u002F1.overview",{"title":41,"path":42,"stem":43},"Local evaluation","\u002Finstallation\u002Flocal-evaluation","3.installation\u002F2.local-evaluation",{"title":45,"path":46,"stem":47},"Install the server","\u002Finstallation\u002Fserver","3.installation\u002F3.server",{"title":49,"path":50,"stem":51},"Install a runner","\u002Finstallation\u002Frunner","3.installation\u002F4.runner",{"title":53,"path":54,"stem":55},"Verify the installation","\u002Finstallation\u002Fverification","3.installation\u002F5.verification",{"title":57,"path":58,"stem":59},"Upgrade the platform","\u002Finstallation\u002Fupgrades","3.installation\u002F6.upgrades",{"title":61,"path":62,"stem":63},"Guided installer","\u002Finstallation\u002Finstaller","3.installation\u002F7.installer",{"title":65,"path":66,"stem":67,"children":68,"page":17},"Build workflows","\u002Fworkflows","4.workflows",[69,73,77],{"title":70,"path":71,"stem":72},"Build a Definition","\u002Fworkflows\u002Fdefinitions","4.workflows\u002F0.definitions",{"title":74,"path":75,"stem":76},"Deploy and run workflows","\u002Fworkflows\u002Fruns","4.workflows\u002F1.runs",{"title":78,"path":79,"stem":80},"Inputs, context, and secrets","\u002Fworkflows\u002Finputs-and-secrets","4.workflows\u002F2.inputs-and-secrets",{"title":82,"path":83,"stem":84,"children":85,"page":17},"Run and recover","\u002Foperations","5.operations",[86,90,94,98],{"title":87,"path":88,"stem":89},"Monitor Runs","\u002Foperations\u002Fmonitoring","5.operations\u002F1.monitoring",{"title":91,"path":92,"stem":93},"Approve prepared steps","\u002Foperations\u002Fapprovals","5.operations\u002F2.approvals",{"title":95,"path":96,"stem":97},"Recover or cancel execution","\u002Foperations\u002Frecovery","5.operations\u002F3.recovery",{"title":99,"path":100,"stem":101},"Troubleshooting","\u002Foperations\u002Ftroubleshooting","5.operations\u002F4.troubleshooting",{"title":103,"path":104,"stem":105,"children":106,"page":17},"Action catalog","\u002Fcatalog","6.catalog",[107],{"title":108,"path":109,"stem":110},"Find and use Actions","\u002Fcatalog\u002Foverview","6.catalog\u002F1.overview",{"title":112,"path":113,"stem":114,"children":115,"page":17},"Administration","\u002Fadministration","7.administration",[116,120,124,128],{"title":117,"path":118,"stem":119},"Registries and Environments","\u002Fadministration\u002Fenvironments","7.administration\u002F2.environments",{"title":121,"path":122,"stem":123},"Manage runners","\u002Fadministration\u002Frunners","7.administration\u002F3.runners",{"title":125,"path":126,"stem":127},"Access and approval policies","\u002Fadministration\u002Faccess","7.administration\u002F4.access",{"title":129,"path":130,"stem":131},"Backups and upgrades","\u002Fadministration\u002Fmaintenance","7.administration\u002F5.maintenance",{"title":133,"path":134,"stem":135,"children":136,"page":17},"Develop Actions","\u002Factions","8.actions",[137,141,145],{"title":138,"path":139,"stem":140},"Build your first Action","\u002Factions\u002Fquickstart","8.actions\u002F1.quickstart",{"title":142,"path":143,"stem":144},"Local development","\u002Factions\u002Flocal-development","8.actions\u002F2.local-development",{"title":146,"path":147,"stem":148},"Publish an Action","\u002Factions\u002Fpublishing","8.actions\u002F3.publishing",{"title":150,"path":151,"stem":152,"children":153,"page":17},"Reference","\u002Freference","9.reference",[154,158,162,166,170,174,178,182,186,190],{"title":155,"path":156,"stem":157},"Operator CLI","\u002Freference\u002Foperator-cli","9.reference\u002F1.operator-cli",{"title":159,"path":160,"stem":161},"Installer CLI","\u002Freference\u002Finstaller-cli","9.reference\u002F10.installer-cli",{"title":163,"path":164,"stem":165},"Definition syntax","\u002Freference\u002Fdefinition","9.reference\u002F2.definition",{"title":167,"path":168,"stem":169},"CLI configuration","\u002Freference\u002Fconfiguration","9.reference\u002F3.configuration",{"title":171,"path":172,"stem":173},"API integration","\u002Freference\u002Fapi","9.reference\u002F4.api",{"title":175,"path":176,"stem":177},"Action CLI","\u002Freference\u002Faction-cli","9.reference\u002F5.action-cli",{"title":179,"path":180,"stem":181},"Action SDK","\u002Freference\u002Fsdk","9.reference\u002F6.sdk",{"title":183,"path":184,"stem":185},"Contracts and compatibility","\u002Freference\u002Fcontracts","9.reference\u002F7.contracts",{"title":187,"path":188,"stem":189},"Server configuration","\u002Freference\u002Fserver-configuration","9.reference\u002F8.server-configuration",{"title":191,"path":192,"stem":193},"Runner configuration","\u002Freference\u002Frunner-configuration","9.reference\u002F9.runner-configuration",{"id":195,"title":142,"body":196,"description":402,"extension":403,"meta":404,"navigation":405,"path":143,"seo":406,"stem":144,"__hash__":407},"docs\u002F8.actions\u002F2.local-development.md",{"type":197,"value":198,"toc":396},"minimark",[199,204,217,232,256,260,267,294,304,326,330,341,350,361,365,392],[200,201,203],"h2",{"id":202},"fast-and-packaged-execution","Fast and packaged execution",[205,206,207,208,212,213,216],"p",{},"For conventional setuptools ",[209,210,211],"code",{},"src\u002F"," projects, ",[209,214,215],{},"run"," caches dependencies and mounts a read-only source snapshot into a fresh container. Source or input edits do not rebuild the dependency image.",[205,218,219,220,223,224,227,228,231],{},"Use ",[209,221,222],{},"--packaged"," when your Action needs installed package metadata, installation hooks, or a packaging layout that cannot use the fast path. ",[209,225,226],{},"validate"," and ",[209,229,230],{},"push"," always use packaged builds.",[233,234,240],"pre",{"className":235,"code":236,"filename":237,"language":238,"meta":239,"style":239},"language-sh shiki shiki-themes pyplines-light pyplines-light pyplines-dark","pyplines-action run .\u002Fhello-world --input .\u002Fhello-world\u002Finput.json --verbose\npyplines-action run .\u002Fhello-world --input .\u002Fhello-world\u002Finput.json --packaged\n","Terminal","sh","",[209,241,242,250],{"__ignoreMap":239},[243,244,247],"span",{"class":245,"line":246},"line",1,[243,248,249],{},"pyplines-action run .\u002Fhello-world --input .\u002Fhello-world\u002Finput.json --verbose\n",[243,251,253],{"class":245,"line":252},2,[243,254,255],{},"pyplines-action run .\u002Fhello-world --input .\u002Fhello-world\u002Finput.json --packaged\n",[200,257,259],{"id":258},"dependencies","Dependencies",[205,261,262,263,266],{},"Commit ",[209,264,265],{},"uv.lock",". Missing or stale locks fail preparation; a run does not update them. Update dependencies intentionally with uv, then run and validate again. An exact SDK pin must also be edited when upgrading beyond that version.",[233,268,270],{"className":235,"code":269,"filename":237,"language":238,"meta":239,"style":239},"cd hello-world\nuv lock --upgrade-package pyplines\npyplines-action run . --input input.json\npyplines-action validate .\n",[209,271,272,277,282,288],{"__ignoreMap":239},[243,273,274],{"class":245,"line":246},[243,275,276],{},"cd hello-world\n",[243,278,279],{"class":245,"line":252},[243,280,281],{},"uv lock --upgrade-package pyplines\n",[243,283,285],{"class":245,"line":284},3,[243,286,287],{},"pyplines-action run . --input input.json\n",[243,289,291],{"class":245,"line":290},4,[243,292,293],{},"pyplines-action validate .\n",[205,295,296,299,300,303],{},[209,297,298],{},"--refresh"," refreshes base resolution and rebuilds dependencies. ",[209,301,302],{},"--local-bases"," is for SDK development from a source checkout, using the SDK embedded in the locally built CLI.",[205,305,306,307,310,311,314,315,318,319,322,323,325],{},"For SDK development, build the CLI with ",[209,308,309],{},"task build"," at the repository root;\n",[209,312,313],{},"task version"," shows its Git-derived tooling version. Build the SDK wheel with\n",[209,316,317],{},"uv build pyplines-sdk",", pin the Action to that exact version, and lock against the\nwheel using ",[209,320,321],{},"uv lock --find-links \u003Cwheel-directory> --python 3.14",". Development\nSDK versions require ",[209,324,302],{}," and must match the SDK embedded in the CLI.\nRebuild both after changing the SDK. Installed release CLIs continue to resolve\ntheir published SDK bases normally.",[200,327,329],{"id":328},"diagnostics","Diagnostics",[205,331,332,333,336,337,340],{},"Detailed local diagnostics show bounded tracebacks and field-level validation errors. ",[209,334,335],{},"--diagnostics concise"," suppresses these details. ",[209,338,339],{},"--verbose"," independently enables build and cache diagnostics.",[233,342,344],{"className":235,"code":343,"filename":237,"language":238,"meta":239,"style":239},"pyplines-action run .\u002Fhello-world --input .\u002Fhello-world\u002Finput.json --json\n",[209,345,346],{"__ignoreMap":239},[243,347,348],{"class":245,"line":246},[243,349,343],{},[205,351,352,353,356,357,360],{},"JSON mode emits JSON Lines, including ",[209,354,355],{},"action.log"," and one terminal ",[209,358,359],{},"action.result",". Exception messages and source lines can contain sensitive information; avoid detailed diagnostics for sensitive inputs.",[200,362,364],{"id":363},"runtime-limits","Runtime limits",[366,367,368,372,379,386,389],"ul",{},[369,370,371],"li",{},"The complete serialized input envelope, including metadata and escaping, must fit within 256 KiB.",[369,373,374,375,378],{},"Preparation has a separate 20-minute deadline. Execution uses the Action's ",[209,376,377],{},"timeout_seconds"," budget.",[369,380,381,382,385],{},"Network access is opt-in. An Action declaring it requires an explicit ",[209,383,384],{},"--network"," for local execution.",[369,387,388],{},"Source and inputs are read-only mounts readable by runtime UID 65532, including with a restrictive host umask.",[369,390,391],{},"A local Docker daemon or shared client\u002Fdaemon paths are required. Remote file staging is not supported.",[393,394,395],"style",{},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":239,"searchDepth":252,"depth":252,"links":397},[398,399,400,401],{"id":202,"depth":252,"text":203},{"id":258,"depth":252,"text":259},{"id":328,"depth":252,"text":329},{"id":363,"depth":252,"text":364},"Iterate on source, inspect failures, and test the packaged runtime.","md",{},true,{"title":142,"description":402},"le-J2w9oPmzZ8Fh9SXzuAXXMx2edBSCNpOEcux6SnpI",[409,411],{"title":138,"path":139,"stem":140,"description":410,"children":-1},"Scaffold a typed Python Action and execute it locally.",{"title":146,"path":147,"stem":148,"description":412,"children":-1},"Authenticate to an OCI registry and publish a validated Action image.",1792213697633]