- Visão geral
- Funções do JavaScript
- Funções do Python
- Implantar e executar
Contexto da função
As identidades, as coordenadas da plataforma e os dados de solicitação que o runtime passa para cada manipulador de funções do JavaScript.
Cada manipulador recebe um objeto de contexto como seu segundo argumento. Carrega quem chama a função, a própria identidade de plataforma da função e para onde enviar chamadas de plataforma de saída — então, nada disso precisa ser passado como entrada.
handler: async (input, ctx) => {
ctx.user?.accessToken // the caller's OAuth token
ctx.user?.sub // the caller's user id
ctx.robot?.accessToken // the function's own platform token
ctx.robot?.key // the serverless robot key
ctx.platform?.baseUrl // e.g. "https://cloud.uipath.com"
ctx.platform?.orgId // organization id
ctx.platform?.tenantId // tenant id
ctx.platform?.folderKey // folder of the invocation, if any
ctx.params // path parameters, as strings
ctx.headers // request headers, lowercase keys
}
handler: async (input, ctx) => {
ctx.user?.accessToken // the caller's OAuth token
ctx.user?.sub // the caller's user id
ctx.robot?.accessToken // the function's own platform token
ctx.robot?.key // the serverless robot key
ctx.platform?.baseUrl // e.g. "https://cloud.uipath.com"
ctx.platform?.orgId // organization id
ctx.platform?.tenantId // tenant id
ctx.platform?.folderKey // folder of the invocation, if any
ctx.params // path parameters, as strings
ctx.headers // request headers, lowercase keys
}
Duas identidades
Uma função recebe duas identidades por invocação, e a escolha entre elas é uma decisão de segurança.
ctx.user | ctx.robot | |
|---|---|---|
| De quem é | O chamador que invocou a função | A identidade de plataforma da própria função |
| Permissões que se aplicam | O próprio do chamador | A conta de serviço da função |
| Use-o para | Atuando em nome do usuário conectado | Recursos de leitura que o chamador não deve acessar diretamente |
ctx.user.accessToken aplica-se quando o chamador deve ver apenas o que suas próprias permissões permitem. ctx.robot.accessToken aplica-se quando a função deve alcançar algo que o chamador não pode — uma credencial em uma pasta restrita, por exemplo. Consulte Acesso a serviços de plataforma.
ctx.robot é a identidade mais privilegiada. Um manipulador que lê qualquer nome de recurso que chega à solicitação está atuando como um substituto para a solicitação do chamador com os próprios privilégios da função. A busca deve ser restrita a um conjunto fixo no código.
Coordenadas de plataforma
ctx.platform fornece baseUrl, orgId e tenantId para chamadas de plataforma de saída. Eles vêm do runtime, nunca do chamador, portanto, uma solicitação não pode redirecionar para onde a função envia seu tráfego e nunca devem ser aceitos como campos de entrada.
É tudo ou nada: ctx.platform é null, a menos que todos os três estejam disponíveis. folderKey pode ser null sozinho, para uma invocação sem pasta.
O que está disponível onde
| Gatilho HTTP | Tarefa | Local serve | |
|---|---|---|---|
ctx.user | A identidade do chamador | Sem identidade de chamador | Presente quando a solicitação carrega um token de portador |
ctx.robot | Sim | Sim | null |
ctx.platform | Sim | Sim | Apenas com UIPATH_BASE_URL, UIPATH_ORG_ID e UIPATH_TENANT_ID definidos |
ctx.params, ctx.headers | Sim | Vazio — não há solicitação HTTP | Sim |
Como ctx.robot é null localmente, o código que precisa de um token de plataforma deve retornar a uma variável de ambiente para desenvolvimento local:
const token = ctx.robot?.accessToken || process.env["UIPATH_ACCESS_TOKEN"] || "";
const token = ctx.robot?.accessToken || process.env["UIPATH_ACCESS_TOKEN"] || "";
Próximas Etapas
- Acessando serviços de plataforma
- Teste e depuração
- Referência de contexto — o tipo completo e cada campo.