Aller au contenu principal
/
Recherche…
Catégories
Documentation développeurs

Créez des apps pour VibeHub

Construisez des apps qui s'intègrent directement dans la plateforme. Accédez aux contacts, entreprises et données partagées via un SDK simple.

1

Getting Started

Une app VibeHub est un simple site web (HTML + JS + CSS) packagé dans un ZIP. VibeHub l'héberge et l'affiche dans une iframe à l'intérieur de la plateforme.

  1. Créez votre app — un dossier avec un index.html
  2. Utilisez le SDKvibehub-sdk.js est injecté automatiquement
  3. Zippez et uploadez — dans VibeLab > votre app > section Hébergement
  4. Review — un admin valide votre bundle, et c'est en ligne
Télécharger le Starter Kit ZIP — 3 KB — contient un template fonctionnel
2

SDK Reference

Le SDK est automatiquement injecté dans votre app. Il est disponible via window.VibeHub.

Contacts contacts:read contacts:write

const vh = new VibeHub();

// Lister les contacts
const data = await vh.contacts.list({ q: 'Marie', page: 1 });
// → { contacts: [...], total: 42, page: 1, pages: 3 }

// Créer un contact
const c = await vh.contacts.create({
    first_name: 'Marie',
    last_name: 'Dupont',
    email: 'marie@example.com',
    company_id: '...',  // optionnel
});

// Modifier
await vh.contacts.update(c.contact.id, { job_title: 'CEO' });

// Supprimer
await vh.contacts.delete(c.contact.id);

Entreprises companies:read companies:write

const companies = await vh.companies.list({ q: 'Acme' });
await vh.companies.create({ name: 'Acme Corp', industry: 'Tech' });
await vh.companies.update(id, { size: '50-200' });
await vh.companies.delete(id);

Storage (privé par app) aucun scope requis

// Enregistrer n'importe quelle donnée
await vh.storage.set('user-prefs', { theme: 'dark', lang: 'fr' });
await vh.storage.set('task_001', { title: 'Ma tâche', done: false });

// Lire
const prefs = await vh.storage.get('user-prefs');
// → { key: 'user-prefs', value: { theme: 'dark', lang: 'fr' } }

// Lister par préfixe
const tasks = await vh.storage.list('task_');
// → { items: [...], total: 12 }

// Supprimer
await vh.storage.delete('task_001');

Teams

const teams = await vh.teams.list();
const team = await vh.teams.create('Mon équipe');
await vh.teams.invite(team.team.id, 'alice@example.com', 'member');

// Storage partagé par équipe
await vh.storage.set('config', { key: 'value' }, teamId);

Navigation & UI

// Naviguer vers une autre page VibeHub
vh.navigate('/vibecrm');

// Afficher un toast
vh.toast('Contact sauvegardé !', 'success');

// Changer le titre dans le shell
vh.setTitle('Mon dashboard');

// Infos utilisateur
console.log(vh.user);  // { id, name, email, avatar_url, role }

// Thème actuel
console.log(vh.theme); // 'light' ou 'dark'
3

Scopes & Permissions

Votre app doit déclarer les scopes dont elle a besoin lors de l'upload. L'utilisateur les accepte à l'installation.

Scope Description
contacts:readLire les contacts de l'utilisateur
contacts:writeCréer et modifier des contacts
contacts:deleteSupprimer des contacts
companies:readLire les entreprises de l'utilisateur
companies:writeCréer et modifier des entreprises
companies:deleteSupprimer des entreprises

Le storage privé ne nécessite aucun scope — chaque app y a accès automatiquement.

4

Sécurité & Règles

Votre app tourne dans une iframe sandboxée — pas d'accès direct au DOM parent
Vous n'avez jamais accès à la base de données — uniquement via le SDK
Chaque accès aux données est loggé dans un audit trail
L'utilisateur peut révoquer vos permissions à tout moment
Votre bundle est reviewé par un admin avant d'être mis en ligne
Interdit : tracking, cookies tiers, appels à des services externes sans consentement
Créer un compte

Essayez d'abord avec SDK Explorer — notre app de démonstration.

Ce site utilise uniquement des cookies essentiels : session de connexion, jeton CSRF et préférences d'affichage (mode sombre). Aucun cookie publicitaire ou de suivi.

En savoir plus