[{"data":1,"prerenderedAt":657},["ShallowReactive",2],{"navigation_docs":3,"-engineering-github-packages":348,"-engineering-github-packages-surround":653},[4,8,68,98,216,245,259,280,344],{"title":5,"path":6,"stem":7},"Introduction","\u002Fintroduction","0.introduction",{"title":9,"icon":10,"path":11,"stem":12,"children":13,"page":63},"Company","i-lucide-building-2","\u002Fcompany","1.company",[14,18,22,26,30,34,38,42,46,50,64],{"title":15,"path":16,"stem":17},"About","\u002Fcompany\u002Fabout","1.company\u002F0.about",{"title":19,"path":20,"stem":21},"Values","\u002Fcompany\u002Fvalues","1.company\u002F1.values",{"title":23,"path":24,"stem":25},"Communication","\u002Fcompany\u002Fcommunication","1.company\u002Fcommunication",{"title":27,"path":28,"stem":29},"Competition","\u002Fcompany\u002Fcompetition","1.company\u002Fcompetition",{"title":31,"path":32,"stem":33},"Hybrid Working","\u002Fcompany\u002Fhybrid-working","1.company\u002Fhybrid-working",{"title":35,"path":36,"stem":37},"Manchester Office","\u002Fcompany\u002Foffice","1.company\u002Foffice",{"title":39,"path":40,"stem":41},"Operations","\u002Fcompany\u002Foperations","1.company\u002Foperations",{"title":43,"path":44,"stem":45},"Policies","\u002Fcompany\u002Fpolicies","1.company\u002Fpolicies",{"title":47,"path":48,"stem":49},"Product Strategy","\u002Fcompany\u002Fproduct-strategy","1.company\u002Fproduct-strategy",{"title":51,"path":52,"stem":53,"children":54,"page":63},"Products","\u002Fcompany\u002Fproducts","1.company\u002Fproducts",[55,59],{"title":56,"path":57,"stem":58},"Capability Exchange","\u002Fcompany\u002Fproducts\u002Fcapability-exchange","1.company\u002Fproducts\u002Fcapability-exchange",{"title":60,"path":61,"stem":62},"ESProfiler Platform","\u002Fcompany\u002Fproducts\u002Fesprofiler","1.company\u002Fproducts\u002Fesprofiler",false,{"title":65,"path":66,"stem":67},"Security","\u002Fcompany\u002Fsecurity","1.company\u002Fsecurity",{"title":69,"icon":70,"path":71,"stem":72,"children":73,"page":63},"People Ops","i-lucide-users","\u002Fpeople-ops","2.people-ops",[74,78,82,86,90,94],{"title":75,"path":76,"stem":77},"Compensation","\u002Fpeople-ops\u002Fcompensation","2.people-ops\u002Fcompensation",{"title":79,"path":80,"stem":81},"Education","\u002Fpeople-ops\u002Feducation","2.people-ops\u002Feducation",{"title":83,"path":84,"stem":85},"Expenses","\u002Fpeople-ops\u002Fexpenses","2.people-ops\u002Fexpenses",{"title":87,"path":88,"stem":89},"Holiday & Leave","\u002Fpeople-ops\u002Fleave","2.people-ops\u002Fleave",{"title":91,"path":92,"stem":93},"Onboarding","\u002Fpeople-ops\u002Fonboarding","2.people-ops\u002Fonboarding",{"title":95,"path":96,"stem":97},"Recruitment","\u002Fpeople-ops\u002Frecruitment","2.people-ops\u002Frecruitment",{"title":99,"icon":100,"path":101,"stem":102,"children":103,"page":63},"Engineering","i-lucide-rocket","\u002Fengineering","3.engineering",[104,147,151,171,192,196,204,208,212],{"title":105,"path":106,"stem":107,"children":108,"page":63},"Contributing","\u002Fengineering\u002Fcontributing","3.engineering\u002Fcontributing",[109,113,117,121,125,138],{"title":110,"path":111,"stem":112},"Development Setup","\u002Fengineering\u002Fcontributing\u002Fdevelopment-setup","3.engineering\u002Fcontributing\u002F1.development-setup",{"title":114,"path":115,"stem":116},"Engineering Operations","\u002Fengineering\u002Fcontributing\u002Fengineering-operations","3.engineering\u002Fcontributing\u002F2.engineering-operations",{"title":118,"path":119,"stem":120},"Documentation","\u002Fengineering\u002Fcontributing\u002Fdocumentation","3.engineering\u002Fcontributing\u002F3.documentation",{"title":122,"path":123,"stem":124},"Agentic Coding","\u002Fengineering\u002Fcontributing\u002Fagentic-coding","3.engineering\u002Fcontributing\u002Fagentic-coding",{"title":126,"path":127,"stem":128,"children":129,"page":63},"Back End","\u002Fengineering\u002Fcontributing\u002Fback-end","3.engineering\u002Fcontributing\u002Fback-end",[130,134],{"title":131,"path":132,"stem":133},"API Guidelines","\u002Fengineering\u002Fcontributing\u002Fback-end\u002Fapi-guidelines","3.engineering\u002Fcontributing\u002Fback-end\u002Fapi-guidelines",{"title":135,"path":136,"stem":137},"LLM Prompts & Langfuse Integration","\u002Fengineering\u002Fcontributing\u002Fback-end\u002Fllm-prompts","3.engineering\u002Fcontributing\u002Fback-end\u002Fllm-prompts",{"title":139,"path":140,"stem":141,"children":142,"page":63},"Front End","\u002Fengineering\u002Fcontributing\u002Ffront-end","3.engineering\u002Fcontributing\u002Ffront-end",[143],{"title":144,"path":145,"stem":146},"Testing","\u002Fengineering\u002Fcontributing\u002Ffront-end\u002Ftesting","3.engineering\u002Fcontributing\u002Ffront-end\u002Ftesting",{"title":148,"path":149,"stem":150},"Production Database","\u002Fengineering\u002Fdatabase-connection","3.engineering\u002Fdatabase-connection",{"title":152,"path":153,"stem":154,"children":155},"Deployment","\u002Fengineering\u002Fdeployment","3.engineering\u002Fdeployment",[156,159,163,167],{"title":56,"path":157,"stem":158},"\u002Fengineering\u002Fdeployment\u002Fcapability-exchange","3.engineering\u002Fdeployment\u002Fcapability-exchange",{"title":160,"path":161,"stem":162},"Langfuse Deployment","\u002Fengineering\u002Fdeployment\u002Fecs-langfuse-deployment","3.engineering\u002Fdeployment\u002Fecs-langfuse-deployment",{"title":164,"path":165,"stem":166},"ESP Platform Configuration","\u002Fengineering\u002Fdeployment\u002Fesp-platform-configuration","3.engineering\u002Fdeployment\u002Fesp-platform-configuration",{"title":168,"path":169,"stem":170},"Platform","\u002Fengineering\u002Fdeployment\u002Fplatform","3.engineering\u002Fdeployment\u002Fplatform",{"title":172,"path":173,"stem":174,"children":175,"page":63},"Github","\u002Fengineering\u002Fgithub","3.engineering\u002Fgithub",[176,180,184,188],{"title":177,"path":178,"stem":179},"Packages","\u002Fengineering\u002Fgithub\u002Fpackages","3.engineering\u002Fgithub\u002Fpackages",{"title":181,"path":182,"stem":183},"Personal Access Token","\u002Fengineering\u002Fgithub\u002Fpersonal-access-token","3.engineering\u002Fgithub\u002Fpersonal-access-token",{"title":185,"path":186,"stem":187},"Troubleshooting","\u002Fengineering\u002Fgithub\u002Ftroubleshooting","3.engineering\u002Fgithub\u002Ftroubleshooting",{"title":189,"path":190,"stem":191},"Workflows","\u002Fengineering\u002Fgithub\u002Fworkflows","3.engineering\u002Fgithub\u002Fworkflows",{"title":193,"path":194,"stem":195},"Platform Ops","\u002Fengineering\u002Fplatform-ops","3.engineering\u002Fplatform-ops",{"title":168,"path":197,"stem":198,"children":199,"page":63},"\u002Fengineering\u002Fplatform","3.engineering\u002Fplatform",[200],{"title":201,"path":202,"stem":203},"useAPI","\u002Fengineering\u002Fplatform\u002Fuse-api","3.engineering\u002Fplatform\u002Fuse-api",{"title":205,"path":206,"stem":207},"Project Management","\u002Fengineering\u002Fproject-management","3.engineering\u002Fproject-management",{"title":209,"path":210,"stem":211},"Releases","\u002Fengineering\u002Frelease","3.engineering\u002Frelease",{"title":213,"path":214,"stem":215},"Tools","\u002Fengineering\u002Ftools","3.engineering\u002Ftools",{"title":217,"icon":218,"path":219,"stem":220,"children":221,"page":63},"Design","i-lucide-palette","\u002Fdesign","4.design",[222,226,230,234,238,241],{"title":223,"path":224,"stem":225},"Design Thinking","\u002Fdesign\u002Fdesign-thinking","4.design\u002F1.design-thinking",{"title":227,"path":228,"stem":229},"Figma","\u002Fdesign\u002Ffigma-structure","4.design\u002F2.figma-structure",{"title":231,"path":232,"stem":233},"Design & Development","\u002Fdesign\u002Fdesign-and-development","4.design\u002F3.design-and-development",{"title":235,"path":236,"stem":237},"Branding","\u002Fdesign\u002Fbranding","4.design\u002F4.branding",{"title":213,"path":239,"stem":240},"\u002Fdesign\u002Ftools","4.design\u002F5.tools",{"title":242,"path":243,"stem":244},"Customer Success","\u002Fdesign\u002Fworking-with-customers","4.design\u002F6.working-with-customers",{"title":246,"icon":247,"path":248,"stem":249,"children":250,"page":63},"Sales","i-lucide-dollar-sign","\u002Fsales","4.sales",[251,255],{"title":252,"path":253,"stem":254},"Customer Onboarding","\u002Fsales\u002Fonboarding","4.sales\u002Fonboarding",{"title":256,"path":257,"stem":258},"Sales Tools","\u002Fsales\u002Ftools","4.sales\u002Ftools",{"title":260,"icon":261,"path":262,"stem":263,"children":264,"page":63},"Marketing","i-lucide-book-image","\u002Fmarketing","5.marketing",[265,269,273,276],{"title":266,"path":267,"stem":268},"Content","\u002Fmarketing\u002Fcontent","5.marketing\u002Fcontent",{"title":270,"path":271,"stem":272},"Messaging","\u002Fmarketing\u002Fmessaging","5.marketing\u002Fmessaging",{"title":213,"path":274,"stem":275},"\u002Fmarketing\u002Ftools","5.marketing\u002Ftools",{"title":277,"path":278,"stem":279},"Website","\u002Fmarketing\u002Fwebsite","5.marketing\u002Fwebsite",{"title":281,"icon":282,"path":283,"stem":284,"children":285,"page":63},"AI & Data Ops","i-lucide-database","\u002Fdata-ops","6.data-ops",[286,294,298,323,340],{"title":56,"path":287,"stem":288,"children":289,"page":63},"\u002Fdata-ops\u002Fcapability-exchange","6.data-ops\u002FCapability Exchange",[290],{"title":291,"path":292,"stem":293},"Leaderboard Calculation","\u002Fdata-ops\u002Fcapability-exchange\u002Fleaderboard-calculation","6.data-ops\u002FCapability Exchange\u002Fleaderboard-calculation",{"title":295,"path":296,"stem":297},"Account Portal (CAS)","\u002Fdata-ops\u002Faccount-portal","6.data-ops\u002Faccount-portal",{"title":299,"path":300,"stem":301,"children":302,"page":63},"Data Management","\u002Fdata-ops\u002Fdata-management","6.data-ops\u002Fdata-management",[303,307,311,315,319],{"title":304,"path":305,"stem":306},"Adding Products","\u002Fdata-ops\u002Fdata-management\u002Fadding-products","6.data-ops\u002Fdata-management\u002Fadding-products",{"title":308,"path":309,"stem":310},"Adding Vendors","\u002Fdata-ops\u002Fdata-management\u002Fadding-vendors","6.data-ops\u002Fdata-management\u002Fadding-vendors",{"title":312,"path":313,"stem":314},"Framework Mapping","\u002Fdata-ops\u002Fdata-management\u002Fframework-mapping","6.data-ops\u002Fdata-management\u002Fframework-mapping",{"title":316,"path":317,"stem":318},"Refreshing Vendors","\u002Fdata-ops\u002Fdata-management\u002Frefreshing-vendors","6.data-ops\u002Fdata-management\u002Frefreshing-vendors",{"title":320,"path":321,"stem":322},"Reviewing Draft Vendors","\u002Fdata-ops\u002Fdata-management\u002Freviewing-draft-vendors","6.data-ops\u002Fdata-management\u002Freviewing-draft-vendors",{"title":324,"path":325,"stem":326,"children":327,"page":63},"LLM Ops","\u002Fdata-ops\u002Fllm-ops","6.data-ops\u002Fllm-ops",[328,332,336],{"title":329,"path":330,"stem":331},"Agents","\u002Fdata-ops\u002Fllm-ops\u002Fagents","6.data-ops\u002Fllm-ops\u002F1.agents",{"title":333,"path":334,"stem":335},"ESPi Architecture & Query Flow","\u002Fdata-ops\u002Fllm-ops\u002Fespi-architecture","6.data-ops\u002Fllm-ops\u002F2.espi-architecture",{"title":337,"path":338,"stem":339},"Evaluating Agents","\u002Fdata-ops\u002Fllm-ops\u002Fevaluations","6.data-ops\u002Fllm-ops\u002F3.evaluations",{"title":341,"path":342,"stem":343},"Message Queues","\u002Fdata-ops\u002Fmessage-queues","6.data-ops\u002Fmessage-queues",{"title":345,"path":346,"stem":347},"Glossary","\u002Fglossary","glossary",{"id":349,"title":177,"body":350,"description":477,"extension":648,"links":649,"meta":650,"navigation":493,"path":178,"seo":651,"stem":179,"__hash__":652},"docs\u002F3.engineering\u002Fgithub\u002Fpackages.md",{"type":351,"value":352,"toc":641},"minimark",[353,358,374,377,410,413,416,421,431,434,470,561,594,601,604,606,610,621,623,627,637],[354,355,357],"h2",{"id":356},"about-permissions","About Permissions",[359,360,361,365,366,369,370,373],"p",{},[362,363,364],"code",{},"github.token"," or ",[362,367,368],{},"GITHUB_TOKEN"," by default is scoped to the repository an Action runs in. Therefore, it cannot be used by default to consume packages created by other repositories, even in the same organization without either a configured PAT token with ",[362,371,372],{},"read:packages"," scope or where supported, allowing repositories to access a package.",[359,375,376],{},"There are up-to two ways to consume packages generated by other repositories depending on the package type:",[378,379,380,401],"ul",{},[381,382,383,387,388,391,392,394,395,400],"li",{},[384,385,386],"strong",{},"Option A",": ",[389,390,181],"em",{}," with ",[362,393,372],{}," scope see ",[396,397,399],"a",{"href":398},"personal-access-token","Creating a PAT",".",[381,402,403,387,406,409],{},[384,404,405],{},"Option B",[389,407,408],{},"Manage Actions access"," in the package registry.",[359,411,412],{},"TBC: Viability of Option B and how-to.",[414,415],"hr",{},[417,418,420],"h3",{"id":419},"maven-packages","Maven Packages",[422,423,424],"blockquote",{},[359,425,426,427,430],{},"Only ",[384,428,429],{},"option A"," is supported for Maven packages.",[359,432,433],{},"To download private Maven dependencies from GitHub Packages, configure Maven to authenticate with your GitHub username and a Classic Personal Access Token (PAT).",[435,436,437,452,467],"ol",{},[381,438,439,440,443,444,447,448,451],{},"Open ",[362,441,442],{},"C:\\Users\\\u003Cuser>_esprofile\\.m2",", replacing ",[362,445,446],{},"\u003Cuser>"," with your Windows username. Create the ",[362,449,450],{},".m2"," directory if it does not already exist.",[381,453,454,455,458,459,462,463,466],{},"Create a file named ",[362,456,457],{},"settings.xml"," in that directory. If the file already exists, add the ",[362,460,461],{},"github"," server entry to its existing ",[362,464,465],{},"\u003Cservers>"," element instead of replacing the file.",[381,468,469],{},"Add the following configuration:",[471,472,478],"pre",{"className":473,"code":474,"filename":475,"language":476,"meta":477,"style":477},"language-xml shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u003C?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n\u003Csettings xmlns=\"http:\u002F\u002Fmaven.apache.org\u002FSETTINGS\u002F1.1.0\"\n          xmlns:xsi=\"http:\u002F\u002Fwww.w3.org\u002F2001\u002FXMLSchema-instance\"\n          xsi:schemaLocation=\"http:\u002F\u002Fmaven.apache.org\u002FSETTINGS\u002F1.1.0 https:\u002F\u002Fmaven.apache.org\u002Fxsd\u002Fsettings-1.1.0.xsd\">\n  \u003Cservers>\n    \u003Cserver>\n      \u003Cid>github\u003C\u002Fid>\n      \u003Cusername>YOUR_USERNAME\u003C\u002Fusername>\n      \u003Cpassword>GH_PAT_TOKEN\u003C\u002Fpassword>\n    \u003C\u002Fserver>\n  \u003C\u002Fservers>\n\u003C\u002Fsettings>\n","C:\\Users\u003Cuser>_esprofile.m2\\settings.xml","xml","",[362,479,480,488,495,501,507,513,519,525,531,537,543,549,555],{"__ignoreMap":477},[481,482,485],"span",{"class":483,"line":484},"line",1,[481,486,487],{},"\u003C?xml version=\"1.0\" encoding=\"UTF-8\"?>\n",[481,489,491],{"class":483,"line":490},2,[481,492,494],{"emptyLinePlaceholder":493},true,"\n",[481,496,498],{"class":483,"line":497},3,[481,499,500],{},"\u003Csettings xmlns=\"http:\u002F\u002Fmaven.apache.org\u002FSETTINGS\u002F1.1.0\"\n",[481,502,504],{"class":483,"line":503},4,[481,505,506],{},"          xmlns:xsi=\"http:\u002F\u002Fwww.w3.org\u002F2001\u002FXMLSchema-instance\"\n",[481,508,510],{"class":483,"line":509},5,[481,511,512],{},"          xsi:schemaLocation=\"http:\u002F\u002Fmaven.apache.org\u002FSETTINGS\u002F1.1.0 https:\u002F\u002Fmaven.apache.org\u002Fxsd\u002Fsettings-1.1.0.xsd\">\n",[481,514,516],{"class":483,"line":515},6,[481,517,518],{},"  \u003Cservers>\n",[481,520,522],{"class":483,"line":521},7,[481,523,524],{},"    \u003Cserver>\n",[481,526,528],{"class":483,"line":527},8,[481,529,530],{},"      \u003Cid>github\u003C\u002Fid>\n",[481,532,534],{"class":483,"line":533},9,[481,535,536],{},"      \u003Cusername>YOUR_USERNAME\u003C\u002Fusername>\n",[481,538,540],{"class":483,"line":539},10,[481,541,542],{},"      \u003Cpassword>GH_PAT_TOKEN\u003C\u002Fpassword>\n",[481,544,546],{"class":483,"line":545},11,[481,547,548],{},"    \u003C\u002Fserver>\n",[481,550,552],{"class":483,"line":551},12,[481,553,554],{},"  \u003C\u002Fservers>\n",[481,556,558],{"class":483,"line":557},13,[481,559,560],{},"\u003C\u002Fsettings>\n",[435,562,563],{"start":503},[381,564,565,566,569,570,573,574,576,577,580,581,585,586,589,590,593],{},"Replace ",[362,567,568],{},"YOUR_USERNAME"," with your GitHub username and ",[362,571,572],{},"GH_PAT_TOKEN"," with your Classic PAT. The token must include the ",[362,575,372],{}," scope and, for packages in private repositories, the ",[362,578,579],{},"repo"," scope. See ",[396,582,584],{"href":583},"personal-access-token#how-to-create-a-classic-token","Creating a Classic Personal Access Token"," for instructions.",[587,588],"br",{},"If you previously completed the development setup, your PAT may already be stored in the ",[362,591,592],{},"NODE_AUTH_TOKEN"," user environment variable.",[595,596,597,598,600],"warning",{},"Treat your PAT like a password. Never commit ",[362,599,457],{}," or share its contents.",[359,602,603],{},"Maven can now authenticate with GitHub Packages and download the dependencies used by ESP projects.",[414,605],{},[417,607,609],{"id":608},"npm-packages","NPM Packages",[422,611,612],{},[359,613,614,615,365,617,620],{},"Both ",[384,616,429],{},[384,618,619],{},"option B"," are supported for NPM packages.",[414,622],{},[417,624,626],{"id":625},"containers","Containers",[422,628,629],{},[359,630,614,631,633,634,636],{},[384,632,429],{}," and ",[384,635,619],{}," are supported for container images.",[638,639,640],"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":477,"searchDepth":490,"depth":490,"links":642},[643],{"id":356,"depth":490,"text":357,"children":644},[645,646,647],{"id":419,"depth":497,"text":420},{"id":608,"depth":497,"text":609},{"id":625,"depth":497,"text":626},"md",null,{},{"description":477},"tvSkmNJ0yjpIUhj6gEqMWrkQIHX0ZtnBtqsVR4bIur8",[654,656],{"title":168,"path":169,"stem":170,"description":655,"children":-1},"A comprehensive overview of the deployment process for new ESProfiler tenants",{"title":181,"path":182,"stem":183,"description":477,"children":-1},1789726613059]