33800 Docs

← Retour

Task: Connecteurs Services Internes + Fixes

Date: 25/01/2026 21:00-23:30 Status: TERMINÉ

Objectif

  1. Ajouter connecteurs services internes (Jellyfin, AI Orchestrator, YOLO, Supabase, Proxmox, Nextcloud)
  2. Corriger bugs schéma Elysia
  3. Ajouter logging fetch dans audit
  4. Support auth_type: none

Réalisations

1. Connecteur Jellyfin (18 endpoints)

Endpoints:

Fix requis: auth_config.header = "X-Emby-Token" (pas X-API-Key par défaut)

2. Connecteur AI Orchestrator (17 endpoints)

Endpoints:

3. Connecteur YOLO (4 endpoints)

Endpoints:

4. Connecteur Supabase (15 endpoints)

Endpoints:

5. Connecteur Proxmox (18 endpoints)

Endpoints:

6. Connecteur Nextcloud (12 endpoints)

Endpoints:

7. Corrections

Bug Fix
description: null rejeté par Elysia t.Union([t.String(), t.Null()])
Endpoints enrichis non retournés Ajout champs au schéma response
Front n'affichait pas les détails Refacto en accordéons
Appels /api/fetch non loggés Ajout audit.log() dans endpoint
Services sans auth échouaient Ajout auth_type: none

8. Modifications BDD

-- Ajout constraint none
ALTER TABLE connectors.config DROP CONSTRAINT config_auth_type_check;
ALTER TABLE connectors.config ADD CONSTRAINT config_auth_type_check
  CHECK (auth_type IN ('bearer', 'basic', 'api_key', 'oauth2', 'custom', 'none'));

-- Config Jellyfin
UPDATE connectors.config SET auth_config = '{"header": "X-Emby-Token"}' WHERE name = 'jellyfin';

-- Config AI Orchestrator
UPDATE connectors.config SET auth_type = 'none' WHERE name = 'ai-orchestrator';

-- Types pour tous les connecteurs
UPDATE connectors.config SET type = name WHERE name IN ('github', 'linkedin', 'mailjet', 'o2switch', 'web-search', 'scraper', 'jellyfin', 'ai-orchestrator');

-- Nouveaux connecteurs (YOLO, Supabase, Proxmox, Nextcloud)
INSERT INTO connectors.config (name, display_name, base_url, auth_type, auth_config, type, description) VALUES
  ('yolo', 'YOLO Object Detection', 'http://192.168.1.12:9200', 'none', '{}', 'yolo', 'YOLOv8 object detection'),
  ('supabase', 'Supabase', 'http://192.168.1.12:8200', 'api_key', '{"header": "apikey"}', 'supabase', 'Supabase PostgreSQL + REST API'),
  ('proxmox', 'Proxmox VE', 'https://192.168.1.10:8006', 'custom', '{"header": "Authorization"}', 'proxmox', 'Proxmox VE - VMs, LXC, storage'),
  ('nextcloud', 'Nextcloud', 'http://192.168.1.51:8060', 'basic', '{}', 'nextcloud', 'Nextcloud - Files, calendar, contacts');

Fichiers modifiés

connectors-api:

connectors-front:

Commits GitLab

58f2d19 fix: skip TLS verification for internal network URLs
91d6f37 fix: accept self-signed certificates for internal services
a8f2686 feat: add YOLO, Supabase, Proxmox, Nextcloud connector types
af9d539 feat: add auth_type 'none' for services without auth
6fff6a9 feat: log fetch.execute calls to audit trail
404deed fix: allow null description in connectors list response
238da78 feat: add Jellyfin and AI Orchestrator connectors
09b1fb4 fix: add enriched fields to endpoint response schema

Tests

# Jellyfin
curl -X POST https://connectors.33800.nowhere84.com/api/fetch \
  -d '{"connector":"jellyfin","method":"GET","path":"/System/Info"}'
# -> Version: 10.11.5

# AI Orchestrator
curl -X POST https://connectors.33800.nowhere84.com/api/fetch \
  -d '{"connector":"ai-orchestrator","method":"GET","path":"/api/tools"}'
# -> 10 outils IA (Ollama running)

# GPU
curl -X POST https://connectors.33800.nowhere84.com/api/fetch \
  -d '{"connector":"ai-orchestrator","method":"GET","path":"/api/gpu"}'
# -> VRAM 24Go, active: ollama

# YOLO
curl -X POST https://connectors.33800.nowhere84.com/api/fetch \
  -d '{"connector":"yolo","method":"GET","path":"/health"}'
# -> {"status":"ok","model":"yolov8n","ready":true}

# Supabase
curl -X POST https://connectors.33800.nowhere84.com/api/fetch \
  -H "Authorization: Bearer <JWT>" \
  -d '{"connector":"supabase","method":"GET","path":"/rest/v1/ai_jobs?limit=1"}'
# -> Liste des jobs AI ✅

# Proxmox (certificat auto-signé supporté)
curl -X POST https://connectors.33800.nowhere84.com/api/fetch \
  -H "Authorization: Bearer <JWT>" \
  -d '{"connector":"proxmox","method":"GET","path":"/api2/json/version"}'
# -> {"version":"9.1.4","release":"9.1"}

curl -X POST https://connectors.33800.nowhere84.com/api/fetch \
  -H "Authorization: Bearer <JWT>" \
  -d '{"connector":"proxmox","method":"GET","path":"/api2/json/nodes/pve/qemu"}'
# -> Liste des VMs (nginx, prod-portainer, Windows11-Gaming, etc.)

État final - 12 connecteurs

Nom Type Auth Endpoints
github github bearer OAuth
linkedin linkedin oauth2 OAuth
mailjet mailjet basic API
o2switch o2switch custom API
web-search web-search custom Builtin
scraper scraper custom Builtin
jellyfin jellyfin api_key 18
ai-orchestrator ai-orchestrator none 17
yolo yolo none 4
supabase supabase api_key 15
proxmox proxmox custom 18
nextcloud nextcloud basic 12

Credentials configurés (gouroubleu@gmail.com)

Connecteur Token Status
jellyfin API key (X-Emby-Token) ✅ Configuré
ai-orchestrator - ✅ Pas d'auth (none)
yolo - ✅ Pas d'auth (none)
supabase service_role_key ✅ Testé OK
proxmox PVEAPIToken=gouroubleu@pam!connectors=00c23df2-8652-4ca0-bc57-052a629342c9 ✅ Token créé
nextcloud gouroubleu:MyUlia75$w ⚠️ User non créé dans Nextcloud

Prochaines étapes