by redsmite-com
Automatically synchronizes your Redsmite reports to your vault.
Redsmite Sync — Plugin Obsidian
Synchronise automatiquement vos comptes-rendus (CRs) Redsmite dans votre vault Obsidian.
Fonctionnalités
- Sync automatique — poll périodique (configurable, 1-60 min) des CRs en attente
- Smart placement — le plugin propose un dossier basé sur le nom du client, et apprend vos préférences (après 2 confirmations identiques, le placement devient automatique)
- Idempotence — un CR déjà présent dans le vault n'est pas re-téléchargé
- Desktop only — fonctionne sur Windows, macOS, Linux (pas mobile)
Installation
Le plugin est disponible sur le Community Plugin Store d'Obsidian :
- Ouvrir Obsidian → Paramètres → Plugins tiers
- Désactiver le "Mode restreint" si ce n'est pas déjà fait
- Cliquer Parcourir → rechercher "Redsmite"
- Cliquer Installer → Activer
Les mises à jour sont automatiques via Obsidian.
Configuration
Après activation, aller dans Paramètres → Redsmite Sync :
| Paramètre | Description | Défaut |
|---|---|---|
| Token API | Token d'authentification Redsmite (fourni par votre administrateur) | — |
| Dossier cible | Dossier par défaut pour les CRs sans correspondance client | Redsmite |
| Intervalle de sync | Fréquence de vérification des nouveaux CRs (minutes) | 5 min |
Le bouton Tester la connexion vérifie que le token est valide.
Les correspondances client-dossier sont apprises automatiquement : après 2 placements confirmés dans le même dossier pour un client, les CRs suivants y sont classés sans intervention.
Architecture
Plugin (desktop, TypeScript)
↓ poll toutes les N minutes
Supabase Edge Function /obsidian-pending
↓ retourne les CRs non synchronisés
Plugin : smart placement (propose dossier → confirmation utilisateur)
↓
Plugin : télécharge le markdown via /obsidian-cr-md/:id
↓ écrit le fichier .md dans le vault
Supabase Edge Function /obsidian-ack/:id
↓ marque le CR comme synchronisé (obsidian_synced = true)
Développement
Prérequis
- Node.js 18+
- npm
Commandes
npm install # installer les dépendances
npm run build # compiler main.ts → main.js (production)
npm run dev # compiler en mode watch (développement)
Structure
main.ts # Plugin principal (polling, sync, smart placement)
settings.ts # Types et valeurs par défaut des settings
settings-tab.ts # UI de configuration dans Obsidian
smart-placement-modal.ts # Modale de validation du dossier cible
folder-suggest-modal.ts # Sélecteur de dossier fuzzy
manifest.json # Métadonnées du plugin (id, version, compatibilité)
esbuild.config.mjs # Config de build esbuild
Publier une mise à jour
- Modifier le code
- Bumper la version dans
manifest.jsonETpackage.json - Build :
npm run build - Commit + push
- Créer une GitHub Release avec le tag = version (ex:
1.1.0) - Attacher
main.jsetmanifest.jsoncomme assets de la release - Les utilisateurs BRAT reçoivent la mise à jour automatiquement
Backend requis
Ce plugin nécessite les Edge Functions Supabase suivantes déployées en production :
obsidian-pending— GET, retourne les CRs en attente de syncobsidian-ack— POST, marque un CR comme synchroniséobsidian-cr-md— GET, retourne le contenu markdown d'un CR
Et la migration api_tokens_obsidian appliquée (table api_tokens + colonne obsidian_synced sur meeting_notes).
Licence
Propriétaire — Redsmite SAS
For plugin developers
Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.