[{"data":1,"prerenderedAt":231},["ShallowReactive",2],{"navigation":3,"\u002Freference\u002Fapi-access":99,"\u002Freference\u002Fapi-access-surround":226},[4,16,28,55,82],{"title":5,"path":6,"stem":7,"children":8,"icon":10},"Get started","\u002Fgetting-started","1.getting-started\u002F1.index",[9,11],{"title":5,"path":6,"stem":7,"icon":10},"i-lucide-rocket",{"title":12,"path":13,"stem":14,"icon":15},"Your first station run","\u002Fgetting-started\u002Ffirst-run","1.getting-started\u002F2.first-run","i-lucide-play",{"title":17,"path":18,"stem":19,"children":20,"icon":22},"Core concepts","\u002Fcore-concepts","2.core-concepts\u002F1.index",[21,23],{"title":17,"path":18,"stem":19,"icon":22},"i-lucide-boxes",{"title":24,"path":25,"stem":26,"icon":27},"Projects and access","\u002Fcore-concepts\u002Fprojects-and-access","2.core-concepts\u002F2.projects-and-access","i-lucide-users",{"title":29,"path":30,"stem":31,"children":32,"icon":34},"Station runtime","\u002Fstation-runtime","3.station-runtime\u002F1.index",[33,35,40,45,50],{"title":29,"path":30,"stem":31,"icon":34},"i-lucide-circuit-board",{"title":36,"path":37,"stem":38,"icon":39},"Configure a station","\u002Fstation-runtime\u002Fconfiguration","3.station-runtime\u002F2.configuration","i-lucide-file-code-2",{"title":41,"path":42,"stem":43,"icon":44},"Custom stages","\u002Fstation-runtime\u002Fcustom-stages","3.station-runtime\u002F3.custom-stages","i-lucide-puzzle",{"title":46,"path":47,"stem":48,"icon":49},"Credentials and secrets","\u002Fstation-runtime\u002Fcredentials-and-secrets","3.station-runtime\u002F4.credentials-and-secrets","i-lucide-key-round",{"title":51,"path":52,"stem":53,"icon":54},"Multiple lanes","\u002Fstation-runtime\u002Fmultiple-lanes","3.station-runtime\u002F5.multiple-lanes","i-lucide-git-branch",{"title":56,"path":57,"stem":58,"children":59,"icon":61},"Production workflows","\u002Fproduction-workflows","4.production-workflows\u002F1.index",[60,62,67,72,77],{"title":56,"path":57,"stem":58,"icon":61},"i-lucide-factory",{"title":63,"path":64,"stem":65,"icon":66},"Applications and firmware","\u002Fproduction-workflows\u002Ffirmware-images","4.production-workflows\u002F2.firmware-images","i-lucide-cpu",{"title":68,"path":69,"stem":70,"icon":71},"DUT records and IDs","\u002Fproduction-workflows\u002Fdut-records-and-ids","4.production-workflows\u002F3.dut-records-and-ids","i-lucide-scan-barcode",{"title":73,"path":74,"stem":75,"icon":76},"Results and logs","\u002Fproduction-workflows\u002Fresults-and-logs","4.production-workflows\u002F4.results-and-logs","i-lucide-chart-no-axes-combined",{"title":78,"path":79,"stem":80,"icon":81},"Operator kiosk","\u002Fproduction-workflows\u002Foperator-kiosk","4.production-workflows\u002F5.operator-kiosk","i-lucide-monitor",{"title":83,"path":84,"stem":85,"children":86,"icon":88},"Reference","\u002Freference","5.reference\u002F1.index",[87,89,94],{"title":83,"path":84,"stem":85,"icon":88},"i-lucide-book-open",{"title":90,"path":91,"stem":92,"icon":93},"API access","\u002Freference\u002Fapi-access","5.reference\u002F2.api-access","i-lucide-braces",{"title":95,"path":96,"stem":97,"icon":98},"Troubleshooting","\u002Freference\u002Ftroubleshooting","5.reference\u002F3.troubleshooting","i-lucide-life-buoy",{"id":100,"title":90,"body":101,"description":219,"extension":220,"links":221,"meta":222,"navigation":223,"path":91,"seo":224,"stem":92,"__hash__":225},"docs\u002F5.reference\u002F2.api-access.md",{"type":102,"value":103,"toc":211},"minimark",[104,113,118,125,129,136,140,204],[105,106,107,108,112],"p",{},"HTF supports personal API keys and service-account keys for customer integrations. The current customer API key surface is ",[109,110,111],"strong",{},"read only",". Use a station's own API key for station operations; it is a different credential with a different access boundary.",[114,115,117],"h2",{"id":116},"personal-keys","Personal keys",[105,119,120,121,124],{},"Open ",[109,122,123],{},"My Account → Personal API Keys"," to create a key. Choose an organisation, the projects it may access, the permissions it needs, and an expiry. A personal key remains limited by its owner's current organisation membership and project grants. Save the value when it is shown; it will not be displayed again.",[114,126,128],{"id":127},"service-accounts","Service accounts",[105,130,131,132,135],{},"Organisation administrators can manage service accounts in ",[109,133,134],{},"Identity → Service Accounts",". Use one for an unattended integration rather than a person's key. Restrict its project scope and permissions, and revoke the token when the integration is retired.",[114,137,139],{"id":138},"available-permissions","Available permissions",[141,142,143,156],"table",{},[144,145,146],"thead",{},[147,148,149,153],"tr",{},[150,151,152],"th",{},"Permission",[150,154,155],{},"Access",[157,158,159,171,181,191],"tbody",{},[147,160,161,168],{},[162,163,164],"td",{},[165,166,167],"code",{},"projects:read",[162,169,170],{},"Discover selected projects.",[147,172,173,178],{},[162,174,175],{},[165,176,177],{},"stations:read",[162,179,180],{},"Read station identity and status.",[147,182,183,188],{},[162,184,185],{},[165,186,187],{},"runs:read",[162,189,190],{},"Search runs and inspect stage results.",[147,192,193,198],{},[162,194,195],{},[165,196,197],{},"logs:read",[162,199,200,201,203],{},"Read paginated run logs; also requires ",[165,202,187],{},".",[105,205,206,207,210],{},"Grant only the permissions the integration needs. A key with one permission does not automatically receive another. The HTF application links to the customer API reference at ",[165,208,209],{},"\u002Fdocs\u002Fapi\u002F"," on your deployment; use that reference for the supported endpoints and request formats.",{"title":212,"searchDepth":213,"depth":214,"links":215},"",1,2,[216,217,218],{"id":116,"depth":214,"text":117},{"id":127,"depth":214,"text":128},{"id":138,"depth":214,"text":139},"Create scoped read-only keys for reporting and integrations.","md",null,{},{"icon":93},{"title":90,"description":219},"FvXUJvCQhfea2qPdXnx1aNswq41mVlSbSPqcFR50ar8",[227,229],{"title":83,"path":84,"stem":85,"description":228,"icon":88,"children":-1},"Find the station contract, common checks, and help resources.",{"title":95,"path":96,"stem":97,"description":230,"icon":98,"children":-1},"First checks for offline stations and unexpected run outcomes.",1790376318215]