[{"data":1,"prerenderedAt":691},["ShallowReactive",2],{"navigation":3,"\u002Fgetting-started\u002Fquickstart":194,"\u002Fgetting-started\u002Fquickstart-surround":686},[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":14,"body":196,"description":680,"extension":681,"meta":682,"navigation":683,"path":15,"seo":684,"stem":16,"__hash__":685},"docs\u002F1.getting-started\u002F2.quickstart.md",{"type":197,"value":198,"toc":674},"minimark",[199,203,211,216,233,281,290,294,301,316,323,326,335,342,346,353,375,378,592,595,615,618,622,628,653,656,670],[200,201,202],"p",{},"This guide is for engineers using a Pyplines installation that their team already operates. You need the operator CLI, a server account, and access to an Environment. You do not need Docker, the SDK, or the Action authoring CLI on your workstation.",[200,204,205,206,210],{},"If you are setting up the platform, start with ",[207,208,209],"a",{"href":38},"installation",".",[212,213,215],"h2",{"id":214},"install-and-connect","Install and connect",[200,217,218,219,223,224,228,229,232],{},"Install Python 3.12 or newer. In a virtual environment, install the ",[220,221,222],"code",{},"pyplines-cli"," version from the site's supported ",[225,226,227],"strong",{},"tooling"," release, including the ",[220,230,231],{},"rc"," suffix for a release candidate:",[234,235,241],"pre",{"className":236,"code":237,"filename":238,"language":239,"meta":240,"style":240},"language-sh shiki shiki-themes pyplines-light pyplines-light pyplines-dark","python3 -m venv .venv\nsource .venv\u002Fbin\u002Factivate\n# Replace TOOLING_VERSION with the supported tooling version.\npython -m pip install 'pyplines-cli==TOOLING_VERSION'\npyplines version\npyplines login https:\u002F\u002Fpyplines.example.com --username alice\n","Terminal","sh","",[220,242,243,251,257,263,269,275],{"__ignoreMap":240},[244,245,248],"span",{"class":246,"line":247},"line",1,[244,249,250],{},"python3 -m venv .venv\n",[244,252,254],{"class":246,"line":253},2,[244,255,256],{},"source .venv\u002Fbin\u002Factivate\n",[244,258,260],{"class":246,"line":259},3,[244,261,262],{},"# Replace TOOLING_VERSION with the supported tooling version.\n",[244,264,266],{"class":246,"line":265},4,[244,267,268],{},"python -m pip install 'pyplines-cli==TOOLING_VERSION'\n",[244,270,272],{"class":246,"line":271},5,[244,273,274],{},"pyplines version\n",[244,276,278],{"class":246,"line":277},6,[244,279,280],{},"pyplines login https:\u002F\u002Fpyplines.example.com --username alice\n",[200,282,283,284,287,288,210],{},"On Windows, activate the virtual environment with ",[220,285,286],{},".venv\\Scripts\\Activate.ps1"," in PowerShell. Replace the example server URL and username with those supplied by your administrator. Login prompts for your password. For an organization CA, see ",[207,289,167],{"href":168},[212,291,293],{"id":292},"choose-an-existing-pypline","Choose an existing Pypline",[200,295,296,297,300],{},"Your administrator or workflow owner should supply the Environment name and any required inputs. The following examples use ",[220,298,299],{},"development",":",[234,302,304],{"className":236,"code":303,"filename":238,"language":239,"meta":240,"style":240},"pyplines list --environment development\npyplines info development\u002Fexample\n",[220,305,306,311],{"__ignoreMap":240},[244,307,308],{"class":246,"line":247},[244,309,310],{},"pyplines list --environment development\n",[244,312,313],{"class":246,"line":253},[244,314,315],{},"pyplines info development\u002Fexample\n",[200,317,318,319,322],{},"Replace ",[220,320,321],{},"example"," with a name from the list. Inspect its Definition and input requirements before starting it: a Run can make real changes through its Actions. A Member can start permitted Runs; deploying a new Definition requires an Architect, Operator, or Admin assignment.",[200,324,325],{},"For a Pypline with no required inputs:",[234,327,329],{"className":236,"code":328,"filename":238,"language":239,"meta":240,"style":240},"pyplines run start development\u002Fexample --wait\n",[220,330,331],{"__ignoreMap":240},[244,332,333],{"class":246,"line":247},[244,334,328],{},[200,336,337,338,341],{},"For required inputs, create a JSON or YAML input file matching the Definition and pass ",[220,339,340],{},"--inputs .\u002Finputs.json",". Waiting follows the Run until it succeeds, is cancelled, blocks, becomes uncertain, or the CLI's wait timeout expires. Closing the CLI does not cancel the Run.",[212,343,345],{"id":344},"deploy-a-small-example","Deploy a small example",[200,347,348,349,352],{},"If you also have deployment access, the repository's ",[225,350,351],{},"echo"," example demonstrates input binding and output reuse without modifying an external service. It is a development example, not a published official catalog promise.",[200,354,355,356,359,360,363,364,366,367,370,371,374],{},"Before continuing, have your administrator publish the repository's ",[220,357,358],{},"examples\u002Flocal\u002Factions\u002Fecho"," Action as ",[220,361,362],{},"echo@2026.10.3"," into the registry used by ",[220,365,299],{},", and admit a compatible runner. If your team publishes a different version, update both ",[220,368,369],{},"uses"," values below. ",[207,372,373],{"href":109},"Catalog guidance"," explains how to obtain existing Actions; operators do not need to build this example themselves.",[200,376,377],{},"Save these two files:",[379,380,381,558],"code-group",{},[234,382,387],{"className":383,"code":384,"filename":385,"language":386,"meta":240,"style":240},"language-yaml shiki shiki-themes pyplines-light pyplines-light pyplines-dark","apiVersion: pyplines\u002Fv1\nkind: Definition\nname: echo-workflow\ninputs:\n  message:\n    type: string\n    default: Hello from operations\nsteps:\n  - name: first\n    uses: echo@2026.10.3\n    with:\n      message: \"${{ inputs.message }}\"\n  - name: second\n    uses: echo@2026.10.3\n    with:\n      message: \"${{ steps.first.outputs.message }}\"\n","workflow.yaml","yaml",[220,388,389,402,412,422,430,437,447,458,466,480,491,499,516,528,537,544],{"__ignoreMap":240},[244,390,391,395,398],{"class":246,"line":247},[244,392,394],{"class":393},"smnRP","apiVersion",[244,396,300],{"class":397},"sgMYo",[244,399,401],{"class":400},"sfDcV"," pyplines\u002Fv1\n",[244,403,404,407,409],{"class":246,"line":253},[244,405,406],{"class":393},"kind",[244,408,300],{"class":397},[244,410,411],{"class":400}," Definition\n",[244,413,414,417,419],{"class":246,"line":259},[244,415,416],{"class":393},"name",[244,418,300],{"class":397},[244,420,421],{"class":400}," echo-workflow\n",[244,423,424,427],{"class":246,"line":265},[244,425,426],{"class":393},"inputs",[244,428,429],{"class":397},":\n",[244,431,432,435],{"class":246,"line":271},[244,433,434],{"class":393},"  message",[244,436,429],{"class":397},[244,438,439,442,444],{"class":246,"line":277},[244,440,441],{"class":393},"    type",[244,443,300],{"class":397},[244,445,446],{"class":400}," string\n",[244,448,450,453,455],{"class":246,"line":449},7,[244,451,452],{"class":393},"    default",[244,454,300],{"class":397},[244,456,457],{"class":400}," Hello from operations\n",[244,459,461,464],{"class":246,"line":460},8,[244,462,463],{"class":393},"steps",[244,465,429],{"class":397},[244,467,469,472,475,477],{"class":246,"line":468},9,[244,470,471],{"class":397},"  -",[244,473,474],{"class":393}," name",[244,476,300],{"class":397},[244,478,479],{"class":400}," first\n",[244,481,483,486,488],{"class":246,"line":482},10,[244,484,485],{"class":393},"    uses",[244,487,300],{"class":397},[244,489,490],{"class":400}," echo@2026.10.3\n",[244,492,494,497],{"class":246,"line":493},11,[244,495,496],{"class":393},"    with",[244,498,429],{"class":397},[244,500,502,505,507,510,513],{"class":246,"line":501},12,[244,503,504],{"class":393},"      message",[244,506,300],{"class":397},[244,508,509],{"class":397}," \"",[244,511,512],{"class":400},"${{ inputs.message }}",[244,514,515],{"class":397},"\"\n",[244,517,519,521,523,525],{"class":246,"line":518},13,[244,520,471],{"class":397},[244,522,474],{"class":393},[244,524,300],{"class":397},[244,526,527],{"class":400}," second\n",[244,529,531,533,535],{"class":246,"line":530},14,[244,532,485],{"class":393},[244,534,300],{"class":397},[244,536,490],{"class":400},[244,538,540,542],{"class":246,"line":539},15,[244,541,496],{"class":393},[244,543,429],{"class":397},[244,545,547,549,551,553,556],{"class":246,"line":546},16,[244,548,504],{"class":393},[244,550,300],{"class":397},[244,552,509],{"class":397},[244,554,555],{"class":400},"${{ steps.first.outputs.message }}",[244,557,515],{"class":397},[234,559,564],{"className":560,"code":561,"filename":562,"language":563,"meta":240,"style":240},"language-json shiki shiki-themes pyplines-light pyplines-light pyplines-dark","{\"message\": \"Checking the automation path\"}\n","inputs.json","json",[220,565,566],{"__ignoreMap":240},[244,567,568,571,574,578,580,582,584,587,589],{"class":246,"line":247},[244,569,570],{"class":397},"{",[244,572,573],{"class":397},"\"",[244,575,577],{"class":576},"sNIIm","message",[244,579,573],{"class":397},[244,581,300],{"class":397},[244,583,509],{"class":397},[244,585,586],{"class":400},"Checking the automation path",[244,588,573],{"class":397},[244,590,591],{"class":397},"}\n",[200,593,594],{},"Validate, deploy, and start:",[234,596,598],{"className":236,"code":597,"filename":238,"language":239,"meta":240,"style":240},"pyplines validate .\u002Fworkflow.yaml\npyplines deploy .\u002Fworkflow.yaml --environment development --as example\npyplines run start development\u002Fexample --inputs .\u002Finputs.json --wait\n",[220,599,600,605,610],{"__ignoreMap":240},[244,601,602],{"class":246,"line":247},[244,603,604],{},"pyplines validate .\u002Fworkflow.yaml\n",[244,606,607],{"class":246,"line":253},[244,608,609],{},"pyplines deploy .\u002Fworkflow.yaml --environment development --as example\n",[244,611,612],{"class":246,"line":259},[244,613,614],{},"pyplines run start development\u002Fexample --inputs .\u002Finputs.json --wait\n",[200,616,617],{},"Local validation checks structure. Deployment checks Action availability and contracts, then pins image digests. If a policy requires approvals, an eligible approver must approve each prepared step before it proceeds.",[212,619,621],{"id":620},"inspect-the-result","Inspect the result",[200,623,624,625,300],{},"Use the Run ID returned by your command in place of ",[220,626,627],{},"1",[234,629,631],{"className":236,"code":630,"filename":238,"language":239,"meta":240,"style":240},"pyplines run info 1\npyplines run attempts 1\npyplines run history 1\npyplines run logs 1 first\n",[220,632,633,638,643,648],{"__ignoreMap":240},[244,634,635],{"class":246,"line":247},[244,636,637],{},"pyplines run info 1\n",[244,639,640],{"class":246,"line":253},[244,641,642],{},"pyplines run attempts 1\n",[244,644,645],{"class":246,"line":259},[244,646,647],{},"pyplines run history 1\n",[244,649,650],{"class":246,"line":265},[244,651,652],{},"pyplines run logs 1 first\n",[200,654,655],{},"For the echo example, both steps should succeed and return the supplied message in their outputs. Attempts identify the individual executions; history records the Run's events. No sample output on this site represents a Run executed in your installation.",[200,657,658,659,662,663,666,667,210],{},"Continue with ",[207,660,661],{"href":71},"building Definitions",", ",[207,664,665],{"href":88},"monitoring",", or ",[207,668,669],{"href":92},"approvals",[671,672,673],"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);}html pre.shiki code .smnRP, html code.shiki .smnRP{--shiki-light:#243247;--shiki-default:#243247;--shiki-dark:#DCE6F0}html pre.shiki code .sgMYo, html code.shiki .sgMYo{--shiki-light:#54657A;--shiki-default:#54657A;--shiki-dark:#A9B8CA}html pre.shiki code .sfDcV, html code.shiki .sfDcV{--shiki-light:#34694B;--shiki-default:#34694B;--shiki-dark:#9BC9AD}html pre.shiki code .sNIIm, html code.shiki .sNIIm{--shiki-light:#326C9A;--shiki-default:#326C9A;--shiki-dark:#A7CDEB}",{"title":240,"searchDepth":253,"depth":253,"links":675},[676,677,678,679],{"id":214,"depth":253,"text":215},{"id":292,"depth":253,"text":293},{"id":344,"depth":253,"text":345},{"id":620,"depth":253,"text":621},"Connect to an existing installation and run automation without authoring an Action.","md",{},true,{"title":14,"description":680},"G8z-7Os1cdN97ne6-EcJZ0JHu91IsPMp21iRAVTC6U8",[687,689],{"title":10,"path":11,"stem":12,"description":688,"children":-1},"Build and operate governed automation for DevOps, SRE, and CloudOps teams.",{"title":24,"path":25,"stem":26,"description":690,"children":-1},"Follow a workflow from reusable Actions to deployed revisions and execution evidence.",1792213696158]