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.
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.
- Créez votre app — un dossier avec un
index.html - Utilisez le SDK —
vibehub-sdk.jsest injecté automatiquement - Zippez et uploadez — dans VibeLab > votre app > section Hébergement
- Review — un admin valide votre bundle, et c'est en ligne
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'
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:read | Lire les contacts de l'utilisateur |
| contacts:write | Créer et modifier des contacts |
| contacts:delete | Supprimer des contacts |
| companies:read | Lire les entreprises de l'utilisateur |
| companies:write | Créer et modifier des entreprises |
| companies:delete | Supprimer des entreprises |
Le storage privé ne nécessite aucun scope — chaque app y a accès automatiquement.
Sécurité & Règles
Essayez d'abord avec SDK Explorer — notre app de démonstration.