UiPath Documentation
functions
latest
false
Guide de l'utilisateur des fonctions
  • Vue d'ensemble (Overview)
    • À propos des fonctions
  • Fonctions JavaScript
    • Démarrage
    • Construire des fonctions JavaScript
    • Déclencheurs et routage HTTP
    • Contexte de la fonction
    • Accéder aux services de la plateforme
    • Test et débogage
  • Fonctions Python
  • Déployer et exécuter
Important :
Ce contenu a été traduit à l'aide d'une traduction automatique. La localisation du contenu nouvellement publié peut prendre 1 à 2 semaines avant d’être disponible.

Accéder aux services de la plateforme

Les ressources, les compartiments, les files d'attente et les processus Orchestrator disponibles pour une fonction JavaScript via le SDK UiPath TypeScript, avec le choix entre l'identité déléguée et de fonction.

Les fonctions JavaScript atteignent les ressources de la plate-forme via le SDK TypeScript d'UiPath. Rien n'est codé en dur dans le package: les coordonnées proviennent de ctx.platform et le jeton de l'une des deux identités fournies par le runtime.

import { UiPath } from "@uipath/uipath-typescript/core";
import { Assets } from "@uipath/uipath-typescript/assets";

const { baseUrl, orgId, tenantId } = ctx.platform;
const sdk = new UiPath({
  baseUrl,
  orgName: orgId,
  tenantName: tenantId,
  secret: ctx.user.accessToken,   // or ctx.robot.accessToken
});
import { UiPath } from "@uipath/uipath-typescript/core";
import { Assets } from "@uipath/uipath-typescript/assets";

const { baseUrl, orgId, tenantId } = ctx.platform;
const sdk = new UiPath({
  baseUrl,
  orgName: orgId,
  tenantName: tenantId,
  secret: ctx.user.accessToken,   // or ctx.robot.accessToken
});

@uipath/uipath-typescript appartient à dependencies, et non devDependencies: la fonction déployée installe uniquement les dépendances de production.

Choix de l’identité​

ModèleJetonQui a besoin d’un accès au dossier
Déléguéctx.user.accessTokenL'utilisateur appelant a besoin de Assets.View dans le dossier
Identité de la fonctionctx.robot.accessTokenCompte de service de la fonction uniquement; l'appelant n'a besoin de rien

Délégué est le choix par défaut: les propres autorisations de l'appelant s'appliquent, de sorte que la fonction ne peut pas être utilisée pour en savoir plus que ce à quoi l'appelant a le droit. L'identité propre de la fonction correspond aux ressources qui doivent rester hors de la portée de l'appelant — des informations d'identification dans un dossier restreint que seule la fonction peut lire.

Dans ce cas, ce que le gestionnaire récupère doit être contrôlé. Un backend à privilèges qui lit un nom de ressource fourni par l'appelant transmettra tout ce que son identité peut voir:

const READABLE = new Set(["PartnerApiCredential"]);

if (!READABLE.has(input.assetName)) {
  throw new FunctionError(`"${input.assetName}" is not readable by this function.`, 403);
}
const READABLE = new Set(["PartnerApiCredential"]);

if (!READABLE.has(input.assetName)) {
  throw new FunctionError(`"${input.assetName}" is not readable by this function.`, 403);
}

Actifs​

const response = await new Assets(sdk).getAll({
  filter: `Name eq 'ApiBaseUrl'`,
  folderId: 42,
});
const value = response.items[0]?.value;
const response = await new Assets(sdk).getAll({
  filter: `Name eq 'ApiBaseUrl'`,
  folderId: 42,
});
const value = response.items[0]?.value;

folderId est requis: sans cela, l'appel renvoie les métadonnées avec des valeurs vides.

folderId est l'identifiant numérique du dossier, et non sa clé. Une clé de dossier est un GUID, et en transmettre une où appartient l'identifiant numérique est rejetée comme une erreur d'autorisations plutôt qu'un identifiant incorrect, ce qui vous renvoie au mauvais endroit. ctx.platform.folderKey vous donne la clé de l'invocation actuelle; résolvez l'identifiant numérique à partir de celui-ci lorsqu'un appel en a besoin.

Remarque :

Le nom d'utilisateur et le mot de passe d'une ressource Credential ne sont pas renvoyés par ces points de terminaison, pour tout jeton. La lecture de l'un d'eux requiert la propre identité de la fonction et la route d'exécution du robot, qui a besoin de ctx.robot.key — il ne fonctionne donc que dans une exécution déployée. Consultez Appel d'Orchestrator.

Pour une ressource Secret , la valeur arrive dans le champ SecretValue . StringValue, le champ qui porte la valeur d'une ressource Texte, est vide pour un Secret - sa lecture ressemble à une fonctionnalité interrompue plutôt que le mauvais champ.

Une ressource a également un paramètre AllowDirectApiAccess qui rend sa valeur lisible avec le propre jeton de l'appelant. L'activer constitue une étape d'extension et non d'activation: le paramètre est Masqué d'identité, de sorte que la valeur devient lisible par chaque tenant Assets.View du dossier, y compris un navigateur détenant le jeton de l'utilisateur connecté. L'identité propre de la fonction est le choix le plus sûr pour activer ce paramètre.

Autres services​

Le même client expose les compartiments, les files d'attente, les tâches, les processus, les entités et les connexions Integration Service. Voir la référence du SDK pour la surface complète.

Informations d’identification et sécurité​

  • Les secrets se trouvent dans les ressources Orchestrator et sont lus au moment de l'exécution - ne les codez jamais en dur et ne les confiez pas au projet.
  • Le contrôle d’accès basé sur les rôles au niveau du dossier régit ce que chaque identité peut lire. Avec le modèle délégué correspondant à l’accès de l’appelant; avec la propre identité de la fonction, il s'agit du compte de service.
  • Retournez un résultat dérivé plutôt qu’un secret partout où vous le pouvez, et enregistrez l’action, jamais la valeur.

Prochaines étapes​

Cette page vous a-t-elle été utile ?

Connecter

Besoin d'aide ? Assistance

Vous souhaitez apprendre ? UiPath Academy

Vous avez des questions ? UiPath Forum

Rester à jour