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
opts[`optsConstellationoptsIpaTravailleur`](#types-initialisation)
mandataire`"proc""travailleur"

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.obtIdSFIP()

Obtenir l'identifiant du nœud de Système de fichiers interplanétaire (SFIP) connecté au compte Constellation.

Retour

TypeDescription
Promise<ipfs.IDResult>L'identifiant SFIP du compte.

Exemple

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

const idSFIP = await client.obtIdSFIP();

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
idCompte`stringundefined`

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
idDispositif`stringundefined`
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.
idCompte`stringundefined`

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
idCompte`stringundefined`
idDispositif`stringundefined`
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
codeSecret`stringundefined`

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"

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"

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