[{"data":1,"prerenderedAt":307},["ShallowReactive",2],{"navigation":3,"\u002Fcore-concepts\u002Froles-and-permissions":134,"\u002Fcore-concepts\u002Froles-and-permissions-surround":302},[4,16,38,80,112,129],{"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,28,33],{"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,"icon":32},"Roles and permissions","\u002Fcore-concepts\u002Froles-and-permissions","2.core-concepts\u002F3.roles-and-permissions","i-lucide-shield-check",{"title":34,"path":35,"stem":36,"icon":37},"Custom roles","\u002Fcore-concepts\u002Fcustom-roles","2.core-concepts\u002F4.custom-roles","i-lucide-user-cog",{"title":39,"path":40,"stem":41,"children":42,"icon":44},"Station runtime","\u002Fstation-runtime","3.station-runtime\u002F1.index",[43,45,50,55,60,65,70,75],{"title":39,"path":40,"stem":41,"icon":44},"i-lucide-circuit-board",{"title":46,"path":47,"stem":48,"icon":49},"Configure a station","\u002Fstation-runtime\u002Fconfiguration","3.station-runtime\u002F2.configuration","i-lucide-file-code-2",{"title":51,"path":52,"stem":53,"icon":54},"Custom stages","\u002Fstation-runtime\u002Fcustom-stages","3.station-runtime\u002F3.custom-stages","i-lucide-puzzle",{"title":56,"path":57,"stem":58,"icon":59},"Credentials and secrets","\u002Fstation-runtime\u002Fcredentials-and-secrets","3.station-runtime\u002F4.credentials-and-secrets","i-lucide-key-round",{"title":61,"path":62,"stem":63,"icon":64},"Multiple lanes","\u002Fstation-runtime\u002Fmultiple-lanes","3.station-runtime\u002F5.multiple-lanes","i-lucide-git-branch",{"title":66,"path":67,"stem":68,"icon":69},"Capture DUT values","\u002Fstation-runtime\u002Fcaptured-values","3.station-runtime\u002F6.captured-values","i-lucide-list-checks",{"title":71,"path":72,"stem":73,"icon":74},"Validate configuration","\u002Fstation-runtime\u002Fvalidation","3.station-runtime\u002F7.validation","i-lucide-file-check-2",{"title":76,"path":77,"stem":78,"icon":79},"Upgrade a station","\u002Fstation-runtime\u002Fupgrading","3.station-runtime\u002F8.upgrading","i-lucide-package-check",{"title":81,"path":82,"stem":83,"children":84,"icon":86},"Production workflows","\u002Fproduction-workflows","4.production-workflows\u002F1.index",[85,87,92,97,102,107],{"title":81,"path":82,"stem":83,"icon":86},"i-lucide-factory",{"title":88,"path":89,"stem":90,"icon":91},"Applications and firmware","\u002Fproduction-workflows\u002Ffirmware-images","4.production-workflows\u002F2.firmware-images","i-lucide-cpu",{"title":93,"path":94,"stem":95,"icon":96},"DUT records and IDs","\u002Fproduction-workflows\u002Fdut-records-and-ids","4.production-workflows\u002F3.dut-records-and-ids","i-lucide-scan-barcode",{"title":98,"path":99,"stem":100,"icon":101},"Results and logs","\u002Fproduction-workflows\u002Fresults-and-logs","4.production-workflows\u002F4.results-and-logs","i-lucide-chart-no-axes-combined",{"title":103,"path":104,"stem":105,"icon":106},"Operator kiosk","\u002Fproduction-workflows\u002Foperator-kiosk","4.production-workflows\u002F5.operator-kiosk","i-lucide-monitor",{"title":108,"path":109,"stem":110,"icon":111},"DUT capture history","\u002Fproduction-workflows\u002Fdut-capture-history","4.production-workflows\u002F6.dut-capture-history","i-lucide-history",{"title":113,"path":114,"stem":115,"children":116,"icon":118},"Reference","\u002Freference","5.reference\u002F1.index",[117,119,124],{"title":113,"path":114,"stem":115,"icon":118},"i-lucide-book-open",{"title":120,"path":121,"stem":122,"icon":123},"API access","\u002Freference\u002Fapi-access","5.reference\u002F2.api-access","i-lucide-braces",{"title":125,"path":126,"stem":127,"icon":128},"Troubleshooting","\u002Freference\u002Ftroubleshooting","5.reference\u002F3.troubleshooting","i-lucide-life-buoy",{"title":130,"path":131,"stem":132,"icon":133},"Changelog","\u002Fchangelog","6.changelog","i-lucide-scroll-text",{"id":135,"title":29,"body":136,"description":295,"extension":296,"links":297,"meta":298,"navigation":299,"path":30,"seo":300,"stem":31,"__hash__":301},"docs\u002F2.core-concepts\u002F3.roles-and-permissions.md",{"type":137,"value":138,"toc":287},"minimark",[139,156,163,168,228,231,235,246,249,255,263,267,270,273,276],[140,141,142,143,147,148,151,152,155],"p",{},"HTF v0.1.4 adds built-in project and station roles. Organisation ",[144,145,146],"strong",{},"Owner"," and ",[144,149,150],{},"Admin"," retain access to all projects. An organisation ",[144,153,154],{},"Member"," receives access through grants to specific projects or stations.",[140,157,158],{},[159,160],"img",{"alt":161,"src":162},"Roles page showing built-in project Admin, Operator, and Viewer roles and the station Operator role","\u002Fimages\u002Fproduct\u002F18-roles.png",[164,165,167],"h2",{"id":166},"choose-a-built-in-role","Choose a built-in role",[169,170,171,184],"table",{},[172,173,174],"thead",{},[175,176,177,181],"tr",{},[178,179,180],"th",{},"Role",[178,182,183],{},"What it allows",[185,186,187,198,208,218],"tbody",{},[175,188,189,195],{},[190,191,192,193],"td",{},"Project ",[144,194,150],{},[190,196,197],{},"Manage the project, its stations, firmware, ID pools, and project\u002Fstation grants. It does not allow organisation role changes, creating projects, invitations, or service-account management.",[175,199,200,205],{},[190,201,192,202],{},[144,203,204],{},"Operator",[190,206,207],{},"Read project resources and configuration, start and abort runs, download firmware, and read ID-pool values and assignment history.",[175,209,210,215],{},[190,211,192,212],{},[144,213,214],{},"Viewer",[190,216,217],{},"Read projects, groups, stations, runs, logs, and DUT captures. It does not allow run control or reading allocated\u002Freserved ID-pool values.",[175,219,220,225],{},[190,221,222,223],{},"Station ",[144,224,204],{},[190,226,227],{},"Read and operate the directly granted station, without project-wide access or management.",[140,229,230],{},"Permissions from applicable grants combine. For example, a project Viewer with a station Operator grant can inspect the project's results and start tests on that one station. Removing the station grant leaves the project Viewer access in place.",[164,232,234],{"id":233},"assign-access","Assign access",[140,236,237,238,241,242,245],{},"Organisation owners and admins can manage access from ",[144,239,240],{},"Team",". A project administrator can open the project's ",[144,243,244],{},"Settings → Project access"," panel to manage existing organisation members by email. Choose a project role, or select a station and assign a station role for narrower access.",[140,247,248],{},"Project administrators can only manage grants within their own authority. They cannot add a person outside the organisation or grant access to another project. Project access does not expose the organisation-wide member directory.",[140,250,251],{},[159,252],{"alt":253,"src":254},"Project access panel with a member email field, project role selection, and station access controls","\u002Fimages\u002Fproduct\u002F20-project-access.png",[140,256,257,258,262],{},"When an organisation administrator sends an invitation, they can select project and station roles, including ",[259,260,261],"a",{"href":35},"custom roles",". If a selected resource has no explicit role, its invitation defaults to Operator.",[164,264,266],{"id":265},"understand-what-a-reader-can-see","Understand what a reader can see",[140,268,269],{},"Captured DUT data and ID-pool assignments have separate permissions. A Viewer can inspect test captures, but the reserved and committed values in the same DUT record are hidden. A custom role can also restrict logs or captured data independently; those fields are omitted when the corresponding read permission is absent.",[140,271,272],{},"Access changes apply to subsequent requests and live station events without requiring a reconnect. Removing organisation membership stops live event delivery to existing connections.",[140,274,275],{},"Existing project Member grants are displayed as Operator after the update. Existing project Admin grants now include full project management, so organisation administrators should review who holds them.",[140,277,278,279,282,283,286],{},"Station runtime credentials and ",[259,280,281],{"href":104},"kiosk accounts"," have their own access boundaries. Human roles do not turn an integration key into a station credential; ",[259,284,285],{"href":121},"customer API keys"," remain read only.",{"title":288,"searchDepth":289,"depth":290,"links":291},"",1,2,[292,293,294],{"id":166,"depth":290,"text":167},{"id":233,"depth":290,"text":234},{"id":265,"depth":290,"text":266},"Choose project and station access for administrators, operators, and viewers.","md",null,{},{"icon":32},{"title":29,"description":295},"7dDTulf0VklTcinYwZPXXu6h4m_IV42l48dPomrE_DI",[303,305],{"title":24,"path":25,"stem":26,"description":304,"icon":27,"children":-1},"Organise product lines, stations, and team permissions.",{"title":34,"path":35,"stem":36,"description":306,"icon":37,"children":-1},"Define a reusable permission set for a project or an individual station.",1791170922914]