[{"data":1,"prerenderedAt":499},["ShallowReactive",2],{"navigation":3,"\u002Fadministration\u002Fenvironments":194,"\u002Fadministration\u002Fenvironments-surround":494},[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":117,"body":196,"description":488,"extension":489,"meta":490,"navigation":491,"path":118,"seo":492,"stem":119,"__hash__":493},"docs\u002F7.administration\u002F2.environments.md",{"type":197,"value":198,"toc":482},"minimark",[199,203,208,259,282,293,297,312,396,416,427,430,434,445,448,452,470,478],[200,201,202],"p",{},"An Environment maps a Definition to one registry connection, an optional repository prefix, public context, secret names, a target platform, and a runner pool. Configuration is administered separately from workflow source.",[204,205,207],"h2",{"id":206},"configure-a-registry","Configure a registry",[209,210,216],"pre",{"className":211,"code":212,"filename":213,"language":214,"meta":215,"style":215},"language-yaml shiki shiki-themes pyplines-light pyplines-light pyplines-dark","name: company\nhost: registry.example.com\nplain_http: false\n","registry.yaml","yaml","",[217,218,219,236,247],"code",{"__ignoreMap":215},[220,221,224,228,232],"span",{"class":222,"line":223},"line",1,[220,225,227],{"class":226},"smnRP","name",[220,229,231],{"class":230},"sgMYo",":",[220,233,235],{"class":234},"sfDcV"," company\n",[220,237,239,242,244],{"class":222,"line":238},2,[220,240,241],{"class":226},"host",[220,243,231],{"class":230},[220,245,246],{"class":234}," registry.example.com\n",[220,248,250,253,255],{"class":222,"line":249},3,[220,251,252],{"class":226},"plain_http",[220,254,231],{"class":230},[220,256,258],{"class":257},"sFGQw"," false\n",[209,260,265],{"className":261,"code":262,"filename":263,"language":264,"meta":215,"style":215},"language-sh shiki shiki-themes pyplines-light pyplines-light pyplines-dark","pyplines registry apply .\u002Fregistry.yaml\npyplines registry login company --username automation-reader\npyplines registry info company\n","Terminal","sh",[217,266,267,272,277],{"__ignoreMap":215},[220,268,269],{"class":222,"line":223},[220,270,271],{},"pyplines registry apply .\u002Fregistry.yaml\n",[220,273,274],{"class":222,"line":238},[220,275,276],{},"pyplines registry login company --username automation-reader\n",[220,278,279],{"class":222,"line":249},[220,280,281],{},"pyplines registry info company\n",[200,283,284,285,288,289,292],{},"Use the registry host, optionally with a port, without a URL scheme or repository path. ",[217,286,287],{},"registry login"," prompts for a password; ",[217,290,291],{},"--password-stdin"," supports credentials supplied by automation. Skip login for an anonymously readable registry. Plain HTTP is intended for isolated local development registries.",[204,294,296],{"id":295},"create-an-environment","Create an Environment",[200,298,299,300,303,304,307,308,311],{},"The ",[217,301,302],{},"local"," pool exists for initial use; enroll a compatible runner in it before running work. This example targets ",[217,305,306],{},"linux\u002Famd64","; choose ",[217,309,310],{},"linux\u002Farm64"," when appropriate:",[209,313,316],{"className":211,"code":314,"filename":315,"language":214,"meta":215,"style":215},"name: development\nregistry:\n  connection: company\n  prefix: actions\npool: local\nplatform: linux\u002Famd64\ncontext:\n  service_api: https:\u002F\u002Fservices.example.com\n","environment.yaml",[217,317,318,327,335,344,355,366,377,385],{"__ignoreMap":215},[220,319,320,322,324],{"class":222,"line":223},[220,321,227],{"class":226},[220,323,231],{"class":230},[220,325,326],{"class":234}," development\n",[220,328,329,332],{"class":222,"line":238},[220,330,331],{"class":226},"registry",[220,333,334],{"class":230},":\n",[220,336,337,340,342],{"class":222,"line":249},[220,338,339],{"class":226},"  connection",[220,341,231],{"class":230},[220,343,235],{"class":234},[220,345,347,350,352],{"class":222,"line":346},4,[220,348,349],{"class":226},"  prefix",[220,351,231],{"class":230},[220,353,354],{"class":234}," actions\n",[220,356,358,361,363],{"class":222,"line":357},5,[220,359,360],{"class":226},"pool",[220,362,231],{"class":230},[220,364,365],{"class":234}," local\n",[220,367,369,372,374],{"class":222,"line":368},6,[220,370,371],{"class":226},"platform",[220,373,231],{"class":230},[220,375,376],{"class":234}," linux\u002Famd64\n",[220,378,380,383],{"class":222,"line":379},7,[220,381,382],{"class":226},"context",[220,384,334],{"class":230},[220,386,388,391,393],{"class":222,"line":387},8,[220,389,390],{"class":226},"  service_api",[220,392,231],{"class":230},[220,394,395],{"class":234}," https:\u002F\u002Fservices.example.com\n",[209,397,399],{"className":261,"code":398,"filename":263,"language":264,"meta":215,"style":215},"pyplines environment apply .\u002Fenvironment.yaml\npyplines environment info development\npyplines secret set development service_api_token\n",[217,400,401,406,411],{"__ignoreMap":215},[220,402,403],{"class":222,"line":223},[220,404,405],{},"pyplines environment apply .\u002Fenvironment.yaml\n",[220,407,408],{"class":222,"line":238},[220,409,410],{},"pyplines environment info development\n",[220,412,413],{"class":222,"line":249},[220,414,415],{},"pyplines secret set development service_api_token\n",[200,417,418,419,422,423,426],{},"With this mapping, ",[217,420,421],{},"inspect-service@2026.10.1"," resolves under ",[217,424,425],{},"registry.example.com\u002Factions\u002Finspect-service",". It must actually exist with a compatible contract and platform; this name is illustrative.",[200,428,429],{},"A repository prefix is optional. Each Environment has one registry mapping, so organize or mirror the Actions needed by a Definition under that mapping.",[204,431,433],{"id":432},"network-and-runner-placement","Network and runner placement",[200,435,436,437,440,441,444],{},"For network-enabled Actions, set the Environment's ",[217,438,439],{},"network"," to the network configured as ",[217,442,443],{},"PYPLINES_ACTION_NETWORK"," on its runners. Provision that Docker network on each relevant host. Use matching platforms within a pool and separate pools for different architectures.",[200,446,447],{},"One Environment executes one Run's attempt at a time. Creating more runner capacity does not remove that Environment-level constraint. Separate Environments can run concurrently.",[204,449,451],{"id":450},"update-configuration","Update configuration",[200,453,454,457,458,461,462,465,466,469],{},[217,455,456],{},"environment apply",", ",[217,459,460],{},"registry apply",", and ",[217,463,464],{},"policy apply"," read the current revision when the file omits it. Include ",[217,467,468],{},"revision"," to require a specific prior revision. Treat revision conflicts as a prompt to review another administrator's changes.",[200,471,472,473,477],{},"Environment changes can invalidate prepared inputs and approvals. Review waiting Runs when changing context or secrets. Keep credentials out of context; ",[474,475,476],"a",{"href":79},"secret bindings"," receive separate protection.",[479,480,481],"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 .sFGQw, html code.shiki .sFGQw{--shiki-light:#765093;--shiki-default:#765093;--shiki-dark:#CFB1E8}",{"title":215,"searchDepth":238,"depth":238,"links":483},[484,485,486,487],{"id":206,"depth":238,"text":207},{"id":295,"depth":238,"text":296},{"id":432,"depth":238,"text":433},{"id":450,"depth":238,"text":451},"Connect portable Definitions to images, configuration, and execution capacity.","md",{},true,{"title":117,"description":488},"pWXuKt8yGDNZMCIcLLqsP3SWGAZXpIgL3-hcKHomtiI",[495,497],{"title":108,"path":109,"stem":110,"description":496,"children":-1},"Select reusable operations available to your installation.",{"title":121,"path":122,"stem":123,"description":498,"children":-1},"Enroll, admit, drain, and inspect Docker execution nodes.",1792213696717]