Développeurs
Ouvert par conception
Code public, API documentées, référentiels ouverts et serveur MCP : tout ce qu’il faut pour connecter votre outil à Ekylibre, au Lexicon et à Aiffel.

REST · OpenAPI 3
L’API d’Ekylibre
Ekylibre expose une API REST en JSON (version 2), décrite au format OpenAPI. Chaque exploitation est un espace de données séparé (un tenant), désigné par le sous-domaine ou par l’en-tête X-Tenant. On s’authentifie avec un jeton lié à l’utilisateur, obtenu par POST /tokens.
Ressources (extrait)
- cultivable_zones
- parcelles
- products
- animaux, matériel, végétaux…
- variants
- variantes du catalogue
- interventions
- interventions et leurs enregistrements
- activity_productions
- productions
- input_totals
- totaux d’intrants
- farm_profiles · farm_accountancy
- profil et comptabilité par campagne
- lexicon/registered_phytosanitary_*
- produits phytosanitaires homologués
# 1. Obtenir un jeton
curl -X POST https://VOTRE_INSTANCE/api/v2/tokens \
-H "Content-Type: application/json" \
-d '{"email": "vous@exemple.fr", "password": "…"}'
# 2. Lister les parcelles de l'exploitation
curl https://VOTRE_INSTANCE/api/v2/cultivable_zones \
-H "Authorization: simple-token vous@exemple.fr VOTRE_JETON"Remplacez VOTRE_INSTANCE par l’adresse de votre Ekylibre. Le jeton peut aussi passer en paramètres (access_email et access_token).
JSON · CSV · PostgreSQL
Le Lexicon en JSON, en CSV ou en SQL
Chaque page du Lexicon existe aussi en JSON et en CSV : ajoutez .json ou .csv à son adresse. L’essentiel des données est ouvert, sans clé. Les jeux réservés aux adhérents d’OSFarm demandent une clé d’API, transmise dans l’en-tête Authorization: Bearer ou X-API-Key. Les données sont lisibles depuis d’autres sites (CORS ouvert).
Paquets PostgreSQL : chaque jeu de données est un paquet versionné, à charger dans votre propre base. Versions, licences et dates de source sont listées dans le catalogue.
curl https://lexicon.osfarm.org/phytosanitary/products.json
# Jeux réservés aux adhérents OSFarm : ajouter la clé
curl https://lexicon.osfarm.org/… \
-H "Authorization: Bearer VOTRE_CLE"{
"title": "Produits",
"table": {
"columns": { "name": "Nom", "firm": "Firme", "type": "Type", … },
"rows": [ { "name": { "@type": "Text", "value": "…" }, … }, … ]
},
"credit": { "provider": { "value": "ANSES" }, "license": { … }, "date": { … } },
"page": 1, "items-per-page": 150, "total-pages": …,
"formats": { … }
}Model Context Protocol
Branchez un assistant d’IA sur 623 M de données
Le Lexicon expose un serveur MCP (JSON-RPC sur HTTP). Un assistant d’IA compatible peut y chercher et croiser les jeux de données, avec leurs sources : identifier une parcelle, chercher un produit phytosanitaire, retrouver une commune ou une entreprise.
Ajoutez cette configuration à votre client MCP. Le nom du serveur (ici lexicon) est libre ; l’emplacement du fichier dépend du client.
{
"mcpServers": {
"lexicon": {
"type": "http",
"url": "https://lexicon.osfarm.org/mcp"
}
}
}Ruby on Rails
Un connecteur, c’est un plugin
Les connecteurs d’Ekylibre sont des extensions indépendantes : des moteurs Rails (Rails engines) packagés en gem Ruby, chacun dans son dépôt ekylibre-<nom>.
Un dépôt, une gem
Le plugin déclare un Rails::Engine et s’ajoute au Gemfile d’Ekylibre.
Une intégration
Il décrit la connexion au service tiers (identifiants, vérification) et les synchronisations à lancer, par exemple chaque jour.
Des tâches de fond
Les données sont récupérées par des jobs, puis transformées en objets Ekylibre : interventions, relevés, écritures.
Des points d’extension
Le plugin ajoute ses vues, ses traductions et ses boutons aux écrans existants.
Une version publiée
Dès qu’un tag est publié sur GitHub, le connecteur apparaît sur ce site.
# Gemfile.plugins (chargé par le Gemfile d'Ekylibre)
gem 'ekylibre-samsys',
git: 'https://github.com/ekylibre/ekylibre-samsys.git',
tag: '0.7.0'module EkylibreSamsys
class Engine < ::Rails::Engine
initializer :ekylibre_samsys_i18n do |app|
app.config.i18n.load_path += Dir[root.join('config', 'locales', '**', '*.yml')]
end
initializer :ekylibre_samsys_integration do
Samsys::SamsysIntegration.run every: :day do
SamsysFetchUpdateCreateJob.perform_now(…)
end
end
initializer :add_samsys_partials do
Ekylibre::View::Addon.add(:extensions_content_top,
'backend/ride_sets/sync_samsys_toolbar', to: 'backend/ride_sets#index')
end
end
endExtrait abrégé du plugin ekylibre-samsys.
Les 10 plugins stables
Dépôts actifs ayant au moins une version publiée. Version et licence relevées sur GitHub à la construction du site.
| Dépôt | Rôle | Version | Licence |
|---|---|---|---|
| ekylibre-ednotif | Identification animale | 1.0.0 | non déclarée |
| ekylibre-banking | Relevés bancaires | 0.1.0 | non déclarée |
| ekylibre-hajimari | Assistant de démarrage | 0.11.0 | AGPL-3.0 |
| ekylibre-planning | Planification | 1.0.0 | MIT |
| ekylibre-samsys | Machines connectées | 0.7.0 | non déclarée |
| ekylibre-previmeteo | Objets connectés météo | 0.2.1 | non déclarée |
| ekylibre-weenat | Stations météo et capteurs | 0.1.1 | non déclarée |
| ekylibre-cap2020 | Pièges connectés | 1.0.0 | non déclarée |
| ekylibre-viti | Ekyviti | v3.18.0-63.0 | MIT |
| ekylibre-baqio | Ventes et logistique du vin | 0.5.1 | AGPL-3.0 |
Construire votre connecteur
- 1
Partez d’un plugin existant proche de votre cas : Samsys pour des machines, Weenat pour des capteurs, Baqio pour un logiciel de vente.
- 2
Décrivez l’intégration : authentification auprès de votre service et test de connexion.
- 3
Écrivez la récupération des données dans un job, et leur correspondance avec les modèles d’Ekylibre, en vous appuyant sur les nomenclatures Onoma et Lexicon.
- 4
Ajoutez des tests, la documentation et les traductions (au moins français et anglais).
- 5
Publiez une première version (tag), puis annoncez-la sur le Discord.
Les licences
| Élément | Licence |
|---|---|
| Ekylibre (cœur) | GNU AGPL v3 |
| Plugins et connecteurs | Indiquée dans chaque dépôt (voir le tableau ci-dessus) |
| Lexicon (code) | Code source ouvert sur GitHub |
| Données du Lexicon | Chaque jeu garde la licence de sa source, précisée dans le catalogue (par exemple Licence Ouverte 2.0) |
L’AGPL garantit que le code d’Ekylibre reste libre, y compris quand il est proposé en service en ligne : toute version modifiée mise à disposition des utilisateurs doit publier son code.
Contribuer
Premier commit d’Ekylibre en septembre 2008 : 23 192 commits et 39 contributeurs à ce jour. Signalez un bogue, proposez une amélioration ou une nouvelle donnée : toutes les contributions sont bienvenues.