For the complete documentation index, see llms.txt. This page is also available as Markdown.

Exemples JavaScript

Exemples Node.js exécutables pour l’API gRPC de KiloCenter — installez @grpc/grpc-js avec chargement dynamique des proto, appelez les méthodes.

Cette page fournit des exemples Node.js exécutables pour l’API gRPC KiloCenter à l’aide du chargement dynamique des fichiers proto. Pour la référence complète de l’API, voir la Référence de l’API.

Pour la documentation générale de gRPC pour Node.js, voir grpc.io/docs/languages/node.

Prérequis

Toutes les commandes de ce guide supposent que votre répertoire de travail est kilocenter-modules/.

Installez les packages gRPC et proto-loader :

npm install @grpc/grpc-js @grpc/proto-loader

Aucune génération de stub n’est nécessaire — @grpc/proto-loader charge .proto fichiers à l’exécution. Assurez-vous que les fichiers proto sont accessibles aux chemins indiqués ci-dessous (par rapport à la racine du dépôt KiloCenter) :

  • KC-Core/api/proto/kilocenter.proto

  • KC-Core/api/proto/core.proto

  • KC-Core/api/proto/identity.proto

Obtenir l’état du système

Récupère l’état actuel du système, y compris la version, la durée de fonctionnement et l’état de santé des services.

const grpc = require("@grpc/grpc-js");
const protoLoader = require("@grpc/proto-loader");

// Point de terminaison gRPC KC-Gateway de KiloCenter
const server = "localhost:9090";

const packageDef = protoLoader.loadSync("KC-Core/api/proto/kilocenter.proto", {
  keepCase: false,
  longs: String,
  enums: String,
  defaults: true,
  oneofs: true,
  includeDirs: ["KC-Core/api/proto"],
});

const proto = grpc.loadPackageDefinition(packageDef);
const client = new proto.kilocenter.api.v1.KiloCenterService(
  server,
  grpc.credentials.createInsecure()
);

client.GetSystemStatus({}, (err, resp) => {
  if (err) {
    console.error("Échec de GetSystemStatus :", err.message);
    process.exit(1);
  }

  console.log("Version :           ", resp.version);
  console.log("État :             ", resp.status);
  console.log("Durée de fonctionnement :", resp.uptime);
  console.log("Points de terminaison actifs :", resp.activeEndpoints);
  console.log("Stations de base actives :", resp.activeBasestations);
  console.log("Messages traités : ", resp.messagesProcessed);

  for (const svc of resp.services) {
    console.log(`  Service : ${svc.name}  healthy=${svc.healthy}  latency=${svc.latencyMs}ms`);
  }
});

Lister les points de terminaison

Répertorie les points de terminaison enregistrés avec prise en charge de la pagination. Profil à fort volume : taille de page par défaut 100, maximum 1000.

Authentification

Édition communautaire

L’Édition communautaire fonctionne en mode mono-locataire avec l’authentification et l’application des organisations désactivées (auth.enabled: false, org_enforcement_enabled: false). Les exemples ci-dessus fonctionnent sans aucun en-tête.

Entreprise : principal utilisateur JWT

Nécessite trois en-têtes : authorization, x-organization-id, et x-user-id. La x-user-id la valeur doit correspondre à l’utilisateur authentifié dans le JWT. L’absence de x-user-id renvoie ErrTokenUserIDHeaderRequired; une discordance renvoie ErrTokenIdentityMismatch.

Entreprise : clé API de compte de service

Nécessite deux en-têtes : authorization et x-organization-id. Ne pas envoyez x-user-id — son inclusion renvoie ErrTokenIdentityMismatch pour empêcher l’injection d’utilisateur.

Mis à jour