Skip to content

Client ​

Le client Constellation représente un compte sur le réseau.

Initialisation ​

créerConstellation({ opts, mandataire }) ​

Initialise un client Constellation.

Paramètres ​

NomTypeDescription
optsoptsConstellation | optsIpaTravailleurLes options d'initialisation de Constellation. Pour les pros, vous pouvez spécifier le dossier du compte, les protocoles tiers ou bien un nœu SFIP ou une instance de bd orbite à utiliser.
mandataire"proc" | "travailleur" | undefinedPar défaut, Constellation est lancé dans le même processus. Vous pouvez aussi le lancer dans un processus travailleur sur le navigateur. Lorsque "travailleur", opts doit être de type optsIpaTravailleur.

Retour ​

TypeDescription
Promise<Constellation>Le client Constellation, prêt à utiliser.

Exemple ​

ts

import { créerConstellation } from "@constl/ipa";
const client = créerConstellation();

client.fermer() ​

Ferme le client.

Exemple ​

ts
// ...continuant de ci-dessus...

await client.fermer();

Identité ​

Ces fonctions permettent d'interagir avec les identifiants du compte.

client.obtIdCompte() ​

Obtenir l'identifiant du compte Constellation. Cet identifiant est partagé parmi tous les dispositifs connectés au compte.

Retour ​

TypeDescription
Promise<string>L'identifiant du compte.

Exemple ​

ts
import { créerConstellation } from "@constl/ipa";
const client = créerConstellation();

const idCompte = await client.obtIdCompte();

client.suivreIdCompte() ​

Suivre l'identifiant du compte Constellation. Celui-ci ne changera que si le dispositif se rejoint à un compte existant.

Paramètres ​

NomTypeDescription
f(id: string) => voidUne fonction qui sera appelée avec l'identifiant du compte chaque fois que celui-ci change.

Retour ​

TypeDescription
Promise<() => Promise<void>>Fonction à appeler pour arrêter le suivi.

Exemple ​

ts
import { ref } from "vue";
import { créerConstellation } from "@constl/ipa";

const client = créerConstellation();

const idCompte = ref<string>();
const fOublier = await client.suivreIdCompte({ 
    f: x => idCompte.value = x
});

client.obtIdDispositif() ​

Obtenir l'identifiant du dispositif actuel.

INFO

Celui-ci est identique à l'identifiant bd-orbite du dispositif.

Retour ​

TypeDescription
Promise<string>L'identifiant du dispositif.

Exemple ​

ts
import { créerConstellation } from "@constl/ipa";
const client = créerConstellation();

const idDispositif = await client.obtIdDispositif();

client.obtIdLibp2p() ​

Obtenir l'identifiant libp2p du dispositif présent.

Retour ​

TypeDescription
Promise<string>L'identifiant libp2p du dispositif.

Exemple ​

ts
import { créerConstellation } from "@constl/ipa";
const client = créerConstellation();

const idLibp2p = await client.obtIdLibp2p();

Dispositifs ​

Différents dispositifs (téléphones, ordinateurs) peuvent être connectés au même compte Constellation.

client.suivreDispositifs({ f, idCompte }) ​

Suivre les dispositifs associés à ce compte.

Paramètres ​

NomTypeDescription
f(dispositifs: string[]) => voidUne fonction qui sera appelée avec les identifiants des dispositiffs du compte chaque fois qu'ils changent
idComptestring | undefinedL'identifiant du compte dont on veut suivre les dispositifs. Si non spécifié, Constellation utilisera le compte actuel.

Retour ​

TypeDescription
Promise<() => Promise<void>>Fonction à appeler pour arrêter le suivi.

Exemple ​

ts
import { ref } from "vue";
import { créerConstellation } from "@constl/ipa";

const client = créerConstellation();

const dispositifs = ref<string[]>();

const fOublier = await client.suivreDispositifs({ 
    idBd,
    f: x => dispositifs.value = x,
});

client.nommerDispositif({ idDispositif, nom, type}) ​

Spécifier un nom pour votre dispositif afin de mieux le reconnaître.

Paramètres ​

NomTypeDescription
idDispositifstring | undefinedL'identifiant du dispositif. Si non spécifié, Constellation utilisera le dispositif actuel.
nomstringLe nom à donner au dispositif.
typestringLe type de dispositif. Peut être n'importe quelle valeure, mais nous recommendons l'un de téléphone, navigateur, tablette, ordinateur ou serveur.

Exemple ​

ts
import { ref } from "vue";
import { créerConstellation } from "@constl/ipa";

const client = créerConstellation();

const fOublier = await client.nommerDispositif({ 
    nom: "Mon téléphone",
    type: "téléphone"
});

client.suivreNomsDispositifs({ f, idCompte }) ​

Suivre les noms des dispositifs associés à un compte.

Paramètres ​

NomTypeDescription
f(noms: structureNomsDispositifs ) => voidUne fonction qui sera appelée avec les noms des dispositifs chaque fois qu'ils changent.
idComptestring | undefinedL'identifiant du compte dont on veut suivre les noms des dispositifs. Si non spécifié, Constellation utilisera le compte actuel.

Retour ​

TypeDescription
Promise<() => Promise<void>>Fonction à appeler pour arrêter le suivi.

Exemple ​

ts
import { ref } from "vue";
import { créerConstellation, type client } from "@constl/ipa";

const client = créerConstellation();

const dispositifs = ref<client.structureNomsDispositifs>();

const fOublier = await client.suivreNomsDispositifs({ 
    idBd,
    f: x => dispositifs.value = x,
});

client.suivreNomDispositif({ idCompte, idDispositif, f }) ​

Suivre le nom d'un dispositif spécifique.

Paramètres ​

NomTypeDescription
idComptestring | undefinedL'identifiant du compte dont on veut suivre le nom du dispositif.
idDispositifstring | undefinedL'identifiant du dispositif dont on veut suivre le nom.
f(nom: { type?: string; nom?: string } ) => voidUne fonction qui sera appelée avec le nom du dispositif chaque fois qu'il change.

Retour ​

TypeDescription
Promise<() => Promise<void>>Fonction à appeler pour arrêter le suivi.

Exemple ​

ts
import { ref } from "vue";
import { créerConstellation, type client } from "@constl/ipa";

const client = créerConstellation();

const nom = ref<{ type?: string; nom?: string }>();

const fOublier = await client.suivreNomDispositif({ 
    idCompte: await client.obtIdCompte(),
    idDispositif: await client.obtIdDispositif(),
    f: x => nom.value = x,
});

client.générerInvitationRejoindreCompte() ​

Générer une invitation qu'un autre dispositif peut utiliser pour se joindre à ce compte.

DANGER

Ne partagez pas l'invitation générée de façon publique ! N'importe qui connaît le secret pourra se connecter à votre compte et agir en tant que vous.

Retour ​

TypeDescription
Promise<idCompte: string; codeSecret: string }>L'invitation secrète.

Exemple ​

ts
import { créerConstellation } from "@constl/ipa";

const client = créerConstellation();

const invitationSecrète = await client.générerInvitationRejoindreCompte();

client.révoquerInvitationRejoindreCompte({ codeSecret }) ​

Révoquer une invitation. Uniquement possible si l'invitation n'a pas encore été utilisée.

Paramètres ​

NomTypeDescription
codeSecretstring | undefinedLe code secret de l'invitation à révoquer. Si non spécifié, toutes les invitations actives seront révoquées.

Exemple ​

ts
// ...continuant de ci-dessus...
const invitationSecrète = await client.révoquerInvitationRejoindreCompte({
    codeSecret: invitationSecrète.codeSecret
});

client.demanderEtPuisRejoindreCompte({ idCompte, codeSecret }) ​

Utiliser une invitation pour rejoindre un compte existant.

Paramètres ​

NomTypeDescription
idComptestringL'identifiant du compte que l'on veut rejoindre.
codeSecretstringLe code secret de l'invitation.

Exemple ​

ts
import { créerConstellation } from "@constl/ipa";

const client = créerConstellation();

await client.demanderEtPuisRejoindreCompte({
    idCompte: "idDuCompteQueJeVeuxRejoindre",
    codeSecret: "leCodeSecretQueJ'aiReçu",
});

client.exporterDispositif({ nomFichier }) ​

Exporter les données de ce dispositif pour pouvoir le réinitialiser en cas de perte.

Paramètres ​

NomTypeDescription
nomFichierstringLe nom du fichier où nous allons sauvegarder une copie du compte.

Exemple ​

ts
import { créerConstellation } from "@constl/ipa";

const client = créerConstellation();

await client.exporterDispositif({ nomFichier: "ma sauvegarde"});

client.effacerDispositif() ​

Effacer ce dispositif.

DANGER

Cette action est irréversible et effacera toutes les données liées à votre dispositif. Pour effacer votre compte Constellation, effacer tous les dispositifs connectés au compte.

Exemple ​

ts
import { créerConstellation } from "@constl/ipa";

const client = créerConstellation();

await client.effacerDispositif();

Autre ​

client.suivreTypeObjet({ idObjet, f }) ​

Détecte le type d'un objet (variable, base de données, projet ou autre).

Paramètres ​

NomTypeDescription
idComptestringL'identifiant de l'objet.
f(type: "motClef" | "variable" | "bd" | "projet" | "nuée" | undefined ) => voidUne fonction qui sera appelée avec le type de l'objet chaque fois qu'il change.

Retour ​

TypeDescription
Promise<() => Promise<void>>Fonction à appeler pour arrêter le suivi.

Exemple ​

ts
import { ref } from "vue";
import { créerConstellation } from "@constl/ipa";

const client = créerConstellation();

const idVariable = await client.créerVariable({ catégorie: "numérique" });

const type = ref<string>();
const fOublier = await client.suivreTypeObjet({ 
    idObjet: idVariable,
    f: x => type.value = x,
});

client.suivrePermission({ idObjet, f }) ​

Suit l'autorisation d'un compte envers des données.

Paramètres ​

NomTypeDescription
idObjetstringL'identifiant de l'objet d'intérpet.
f(permission: "MODÉRATEUR" | "MEMBRE" | undefined ) => voidUne fonction qui sera appelée avec le niveau d'autorisation chaque fois qu'il change. Les membres peuvent modifier les données, et les modératrices peuvent aussi inviter d'autres membres ou modératrices. Si aucune permission n'est détectée, renverra undefined.

Retour ​

TypeDescription
Promise<() => Promise<void>>Fonction à appeler pour arrêter le suivi.

Exemple ​

ts
import { ref } from "vue";
import { créerConstellation } from "@constl/ipa";

const client = créerConstellation();

const idVariable = await client.créerVariable({ catégorie: "numérique" });

const permission = ref<string>();
const fOublier = await client.suivrePermission({ 
    idObjet: idVariable,
    f: x => permission.value = x,
});

client.suivrePermissionÉcrire({ idObjet, f }) ​

Fonction d'utilité qui suit le niveau d'autorisation d'un compte envers des données.

Paramètres ​

NomTypeDescription
idObjetstringL'identifiant de l'objet d'intérpet.
f(permission: boolean ) => voidUne fonction qui sera appelée avec le niveau d'autorisation chaque fois qu'il change. Renvoie vrai si la modification des données est autorisée.

Retour ​

TypeDescription
Promise<() => Promise<void>>Fonction à appeler pour arrêter le suivi.

Exemple ​

ts
import { ref } from "vue";
import { créerConstellation } from "@constl/ipa";

const client = créerConstellation();

const idVariable = await client.créerVariable({ catégorie: "numérique" });

const permission = ref<boolean>();
const fOublier = await client.suivrePermissionÉcrire({ 
    idObjet: idVariable,
    f: x => permission.value = x,
});

Types ​

Plusieurs types sont associés au client Constellation.

Types initialisation ​

ts
interface optsConstellation {
  compte?: string;
  sujetRéseau?: string;
  orbite?: optsOrbite;
  protocoles?: string[];
}
type optsOrbite = OrbitDB | optsInitOrbite;

type optsInitOrbite = {
  dossier?: string;
  sfip?: optsInitSFIP;
};

type optsInitSFIP = {
  sfip?: IPFS;
  dossier?: string;
};

interface optsIpaTravailleur extends optsConstellation {
  compte?: string;
  sujetRéseau?: string;
  orbite?: {
    dossier?: string;
    sfip?: {
      dossier?: string;
    };
  };
}

Types dispositifs ​

ts
type structureNomsDispositifs = {
  [idDispositif: string]: { nom?: string; type?: string };
};

Disponible sous licence AGPL-3.0