i18n: add data-i18n to all body text in help-ai through help-astuces
- 94 <p>, <li>, <h3>, <h4> elements now have data-i18n - AI Editor section: 16 English translations provided - 251 new keys total across all sections - Remaining 80 placeholder keys in sharing/webhooks/backups/security/tips - en.json: 1068 -> 1162, fr.json: 1068 -> 1162
This commit is contained in:
+94
-94
@@ -3665,7 +3665,7 @@
|
|||||||
|
|
||||||
<section class="help-section" id="help-ai">
|
<section class="help-section" id="help-ai">
|
||||||
<h2 data-i18n="auto.c4922a99">🤖 Intelligence Artificielle dans l'Éditeur</h2>
|
<h2 data-i18n="auto.c4922a99">🤖 Intelligence Artificielle dans l'Éditeur</h2>
|
||||||
<p>
|
<p data-i18n="help.desc_b5f89b3b">
|
||||||
ObsiGate intègre un assistant IA directement
|
ObsiGate intègre un assistant IA directement
|
||||||
dans l'éditeur de texte. Pour l'activer,
|
dans l'éditeur de texte. Pour l'activer,
|
||||||
configurez au moins un provider AI dans le
|
configurez au moins un provider AI dans le
|
||||||
@@ -3675,12 +3675,12 @@
|
|||||||
|
|
||||||
<h3 data-i18n="help.activation">Activation</h3>
|
<h3 data-i18n="help.activation">Activation</h3>
|
||||||
<ol>
|
<ol>
|
||||||
<li>
|
<li data-i18n="help.desc_f53badcd">
|
||||||
Ajoutez votre clé API dans
|
Ajoutez votre clé API dans
|
||||||
<code>.env</code> :
|
<code>.env</code> :
|
||||||
<code>DEEPSEEK_API_KEY=sk-...</code>
|
<code>DEEPSEEK_API_KEY=sk-...</code>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li data-i18n="help.desc_ba4578ae">
|
||||||
Redémarrez le conteneur :
|
Redémarrez le conteneur :
|
||||||
<code
|
<code
|
||||||
>docker compose down && docker compose
|
>docker compose down && docker compose
|
||||||
@@ -3698,18 +3698,18 @@
|
|||||||
</ol>
|
</ol>
|
||||||
|
|
||||||
<h3 data-i18n="help.toolbar_section">Barre d'outils AI</h3>
|
<h3 data-i18n="help.toolbar_section">Barre d'outils AI</h3>
|
||||||
<p>
|
<p data-i18n="help.desc_803161e5">
|
||||||
La barre d'outils contient les boutons suivants
|
La barre d'outils contient les boutons suivants
|
||||||
:
|
:
|
||||||
</p>
|
</p>
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li data-i18n="help.desc_e0525213">
|
||||||
<strong>✦ AI</strong><span data-i18n="help.desc_3ace259e"> — Complétion inline
|
<strong>✦ AI</strong><span data-i18n="help.desc_3ace259e"> — Complétion inline
|
||||||
(</span><kbd>Ctrl+J</kbd>). <span data-i18n="help.ai_completes">Complète</span>
|
(</span><kbd>Ctrl+J</kbd>). <span data-i18n="help.ai_completes">Complète</span>
|
||||||
automatiquement le texte là où se trouve le
|
automatiquement le texte là où se trouve le
|
||||||
curseur.
|
curseur.
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li data-i18n="help.desc_11cf9e8a">
|
||||||
<strong data-i18n="auto.a105a2d9">Éditer ▾</strong><span data-i18n="help.desc_a0ec890a"> — Menu de
|
<strong data-i18n="auto.a105a2d9">Éditer ▾</strong><span data-i18n="help.desc_a0ec890a"> — Menu de
|
||||||
modification du texte sélectionné :</span><ul>
|
modification du texte sélectionné :</span><ul>
|
||||||
<li>
|
<li>
|
||||||
@@ -3718,7 +3718,7 @@
|
|||||||
Améliore la qualité, la clarté et le
|
Améliore la qualité, la clarté et le
|
||||||
flux du texte
|
flux du texte
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li data-i18n="help.desc_a6cb3b26">
|
||||||
🔤
|
🔤
|
||||||
<strong
|
<strong
|
||||||
>Fix spelling & grammar</strong
|
>Fix spelling & grammar</strong
|
||||||
@@ -3726,17 +3726,17 @@
|
|||||||
: Corrige les fautes d'orthographe
|
: Corrige les fautes d'orthographe
|
||||||
et de grammaire
|
et de grammaire
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li data-i18n="help.desc_5a53de53">
|
||||||
📏 <strong>Make shorter</strong> :
|
📏 <strong>Make shorter</strong> :
|
||||||
Rend le texte plus concis tout en
|
Rend le texte plus concis tout en
|
||||||
préservant l'information
|
préservant l'information
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li data-i18n="help.desc_e36f3eaa">
|
||||||
📐 <strong>Make longer</strong> :
|
📐 <strong>Make longer</strong> :
|
||||||
Ajoute des détails, exemples ou
|
Ajoute des détails, exemples ou
|
||||||
explications
|
explications
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li data-i18n="help.desc_3d4e9189">
|
||||||
📋
|
📋
|
||||||
<strong>Simplify language</strong> :
|
<strong>Simplify language</strong> :
|
||||||
Simplifie le langage, évite le
|
Simplifie le langage, évite le
|
||||||
@@ -3744,7 +3744,7 @@
|
|||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li data-i18n="help.desc_5524e921">
|
||||||
<strong>Ton ▾</strong> — Change le ton du
|
<strong>Ton ▾</strong> — Change le ton du
|
||||||
texte :
|
texte :
|
||||||
<ul>
|
<ul>
|
||||||
@@ -3752,13 +3752,13 @@
|
|||||||
💼 <strong>Professional</strong> :
|
💼 <strong>Professional</strong> :
|
||||||
Ton formel et professionnel
|
Ton formel et professionnel
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li data-i18n="help.desc_759926ee">
|
||||||
💬 <strong>Casual</strong> : <span data-i18n="help.ai_tone_casual">Ton</span>
|
💬 <strong>Casual</strong> : <span data-i18n="help.ai_tone_casual">Ton</span>
|
||||||
décontracté et conversationnel
|
décontracté et conversationnel
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li data-i18n="help.desc_7ab5be50">
|
||||||
<strong>Traduire ▾</strong><span data-i18n="help.desc_1c130d89"> — Traduit le
|
<strong>Traduire ▾</strong><span data-i18n="help.desc_1c130d89"> — Traduit le
|
||||||
texte sélectionné vers une autre langue :</span><ul>
|
texte sélectionné vers une autre langue :</span><ul>
|
||||||
<li>
|
<li>
|
||||||
@@ -3768,7 +3768,7 @@
|
|||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li data-i18n="help.desc_47e1e10f">
|
||||||
<strong data-i18n="auto.ce4eb802">Générer ▾</strong><span data-i18n="help.desc_991307d6"> — Génère du
|
<strong data-i18n="auto.ce4eb802">Générer ▾</strong><span data-i18n="help.desc_991307d6"> — Génère du
|
||||||
contenu à partir de la sélection :</span><ul>
|
contenu à partir de la sélection :</span><ul>
|
||||||
<li>
|
<li>
|
||||||
@@ -3776,11 +3776,11 @@
|
|||||||
Explique le texte sélectionné de
|
Explique le texte sélectionné de
|
||||||
façon claire
|
façon claire
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li data-i18n="help.desc_e5cf90b2">
|
||||||
📝 <strong>Summarize</strong> :
|
📝 <strong>Summarize</strong> :
|
||||||
Résume le texte de façon concise
|
Résume le texte de façon concise
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li data-i18n="help.desc_f2d4e369">
|
||||||
✏️
|
✏️
|
||||||
<strong>Continue writing</strong> :
|
<strong>Continue writing</strong> :
|
||||||
Continue l'écriture à partir du
|
Continue l'écriture à partir du
|
||||||
@@ -3788,12 +3788,12 @@
|
|||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li data-i18n="help.desc_aec0ad2c">
|
||||||
<strong data-i18n="auto.62c3d50d">💬 Réécrire</strong><span data-i18n="help.desc_c63f02cc"> — Réécrit le
|
<strong data-i18n="auto.62c3d50d">💬 Réécrire</strong><span data-i18n="help.desc_c63f02cc"> — Réécrit le
|
||||||
texte selon vos instructions personnalisées.
|
texte selon vos instructions personnalisées.
|
||||||
Une boîte de dialogue vous demande votre
|
Une boîte de dialogue vous demande votre
|
||||||
instruction.</span></li>
|
instruction.</span></li>
|
||||||
<li>
|
<li data-i18n="help.desc_d9e8ab0b">
|
||||||
<strong data-i18n="auto.0257e77f">🧰 Boîte ▾</strong> — Outils de
|
<strong data-i18n="auto.0257e77f">🧰 Boîte ▾</strong> — Outils de
|
||||||
conversion :
|
conversion :
|
||||||
<ul>
|
<ul>
|
||||||
@@ -3803,19 +3803,19 @@
|
|||||||
Transforme le texte en liste
|
Transforme le texte en liste
|
||||||
Markdown
|
Markdown
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li data-i18n="help.desc_13d206d4">
|
||||||
📊
|
📊
|
||||||
<strong>Convert to table</strong> :
|
<strong>Convert to table</strong> :
|
||||||
Transforme en tableau Markdown
|
Transforme en tableau Markdown
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li data-i18n="help.desc_50a33a05">
|
||||||
⚙️
|
⚙️
|
||||||
<strong
|
<strong
|
||||||
>Generate frontmatter</strong
|
>Generate frontmatter</strong
|
||||||
>
|
>
|
||||||
: Génère un bloc YAML frontmatter
|
: Génère un bloc YAML frontmatter
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li data-i18n="help.desc_fa126609">
|
||||||
🔷
|
🔷
|
||||||
<strong>Convert to canvas</strong> :
|
<strong>Convert to canvas</strong> :
|
||||||
Convertit en diagramme Mermaid.js
|
Convertit en diagramme Mermaid.js
|
||||||
@@ -3826,26 +3826,26 @@
|
|||||||
|
|
||||||
<h3 data-i18n="help.096367af">Indicateurs visuels</h3>
|
<h3 data-i18n="help.096367af">Indicateurs visuels</h3>
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li data-i18n="help.desc_7ff2fa21">
|
||||||
Pendant une requête AI, un toast
|
Pendant une requête AI, un toast
|
||||||
<strong
|
<strong
|
||||||
>⏳ AI: traitement en cours...</strong
|
>⏳ AI: traitement en cours...</strong
|
||||||
>
|
>
|
||||||
s'affiche
|
s'affiche
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li data-i18n="help.desc_a13f7f2c">
|
||||||
Une fois terminé,
|
Une fois terminé,
|
||||||
<strong data-i18n="auto.4d281c6c">AI: texte traité ✓</strong> confirme
|
<strong data-i18n="auto.4d281c6c">AI: texte traité ✓</strong> confirme
|
||||||
le succès
|
le succès
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li data-i18n="help.desc_32e3d66d">
|
||||||
En cas d'erreur de clé API :
|
En cas d'erreur de clé API :
|
||||||
<strong data-i18n="auto.13eb7a51">AI: clé API invalide</strong>
|
<strong data-i18n="auto.13eb7a51">AI: clé API invalide</strong>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<h3 data-i18n="help.2dad2bfd">Sauvegarde automatique</h3>
|
<h3 data-i18n="help.2dad2bfd">Sauvegarde automatique</h3>
|
||||||
<p>
|
<p data-i18n="help.desc_19cfa369">
|
||||||
L'éditeur sauvegarde automatiquement après 2
|
L'éditeur sauvegarde automatiquement après 2
|
||||||
secondes d'inactivité. Le bouton de sauvegarde
|
secondes d'inactivité. Le bouton de sauvegarde
|
||||||
<strong data-i18n="help.ai_flash_green">flashe en vert</strong> brièvement pour
|
<strong data-i18n="help.ai_flash_green">flashe en vert</strong> brièvement pour
|
||||||
@@ -3875,7 +3875,7 @@
|
|||||||
<td><code>gemini-2.0-flash</code></td>
|
<td><code>gemini-2.0-flash</code></td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
<p>
|
<p data-i18n="help.desc_555e0305">
|
||||||
Pour changer de provider par défaut :
|
Pour changer de provider par défaut :
|
||||||
<code>AI_DEFAULT_PROVIDER=openrouter</code>
|
<code>AI_DEFAULT_PROVIDER=openrouter</code>
|
||||||
</p>
|
</p>
|
||||||
@@ -3886,29 +3886,29 @@
|
|||||||
<h2 data-i18n="help.8c65b2f2">🔗 Partage et Webhooks</h2>
|
<h2 data-i18n="help.8c65b2f2">🔗 Partage et Webhooks</h2>
|
||||||
|
|
||||||
<h3 data-i18n="help.public_shares">Publication publique</h3>
|
<h3 data-i18n="help.public_shares">Publication publique</h3>
|
||||||
<p>
|
<p data-i18n="help.desc_13d90039">
|
||||||
ObsiGate permet de partager des documents via un
|
ObsiGate permet de partager des documents via un
|
||||||
lien public temporaire.
|
lien public temporaire.
|
||||||
</p>
|
</p>
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li data-i18n="help.desc_7e86626c">
|
||||||
<strong data-i18n="help.share_button">Bouton Partager</strong><span data-i18n="help.desc_d66e911c"> : Dans les
|
<strong data-i18n="help.share_button">Bouton Partager</strong><span data-i18n="help.desc_d66e911c"> : Dans les
|
||||||
actions du fichier, génère un lien unique</span></li>
|
actions du fichier, génère un lien unique</span></li>
|
||||||
<li>
|
<li data-i18n="help.desc_985d759b">
|
||||||
<strong>Token unique</strong><span data-i18n="help.desc_04493800"> : 64
|
<strong>Token unique</strong><span data-i18n="help.desc_04493800"> : 64
|
||||||
caractères hexadécimaux, impossible à
|
caractères hexadécimaux, impossible à
|
||||||
deviner</span></li>
|
deviner</span></li>
|
||||||
<li>
|
<li data-i18n="help.desc_ec5f7a26">
|
||||||
<strong>Expiration configurable</strong><span data-i18n="help.desc_858681a1"> :
|
<strong>Expiration configurable</strong><span data-i18n="help.desc_858681a1"> :
|
||||||
Durée de vie en heures</span></li>
|
Durée de vie en heures</span></li>
|
||||||
<li>
|
<li data-i18n="help.desc_071da87a">
|
||||||
<strong>Lecture seule</strong><span data-i18n="help.desc_e47d2328"> : La vue
|
<strong>Lecture seule</strong><span data-i18n="help.desc_e47d2328"> : La vue
|
||||||
publique n'affiche que le contenu sans
|
publique n'affiche que le contenu sans
|
||||||
édition</span></li>
|
édition</span></li>
|
||||||
<li>
|
<li data-i18n="help.desc_2c220763">
|
||||||
<strong>Gestion des liens</strong><span data-i18n="help.desc_5e9a7fd9"> : Liste
|
<strong>Gestion des liens</strong><span data-i18n="help.desc_5e9a7fd9"> : Liste
|
||||||
et révocation dans les Configurations</span></li>
|
et révocation dans les Configurations</span></li>
|
||||||
<li>
|
<li data-i18n="help.desc_cfe362a7">
|
||||||
<strong data-i18n="help.pdf_export">Export PDF</strong><span data-i18n="help.desc_e93517a5"> : Téléchargement
|
<strong data-i18n="help.pdf_export">Export PDF</strong><span data-i18n="help.desc_e93517a5"> : Téléchargement
|
||||||
du document partagé en PDF via</span><code>/s/{token}/pdf</code>
|
du document partagé en PDF via</span><code>/s/{token}/pdf</code>
|
||||||
</li>
|
</li>
|
||||||
@@ -3918,7 +3918,7 @@
|
|||||||
<!-- 🪝 Webhooks -->
|
<!-- 🪝 Webhooks -->
|
||||||
<section class="help-section" id="help-webhooks">
|
<section class="help-section" id="help-webhooks">
|
||||||
<h2 data-i18n="help.29afa01d">🪝 Webhooks</h2>
|
<h2 data-i18n="help.29afa01d">🪝 Webhooks</h2>
|
||||||
<p>
|
<p data-i18n="help.desc_a9c2c520">
|
||||||
Les webhooks permettent à ObsiGate de
|
Les webhooks permettent à ObsiGate de
|
||||||
<strong
|
<strong
|
||||||
data-i18n="help.webhook_notify">notifier automatiquement des services
|
data-i18n="help.webhook_notify">notifier automatiquement des services
|
||||||
@@ -3932,23 +3932,23 @@
|
|||||||
|
|
||||||
<h3 data-i18n="help.use_cases">Cas d'usage</h3>
|
<h3 data-i18n="help.use_cases">Cas d'usage</h3>
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li data-i18n="help.desc_2349271d">
|
||||||
<strong data-i18n="help.ci_cd">Automatisation CI/CD</strong><span data-i18n="help.desc_1ba39cc4"> :
|
<strong data-i18n="help.ci_cd">Automatisation CI/CD</strong><span data-i18n="help.desc_1ba39cc4"> :
|
||||||
Déclencher un build quand une note de
|
Déclencher un build quand une note de
|
||||||
procédure est mise à jour</span></li>
|
procédure est mise à jour</span></li>
|
||||||
<li>
|
<li data-i18n="help.desc_d915c72b">
|
||||||
<strong data-i18n="header.sync_status">Synchronisation</strong><span data-i18n="help.desc_d9cdaa89"> : Copier
|
<strong data-i18n="header.sync_status">Synchronisation</strong><span data-i18n="help.desc_d9cdaa89"> : Copier
|
||||||
les nouveaux fichiers vers un autre système
|
les nouveaux fichiers vers un autre système
|
||||||
(SharePoint, Google Drive)</span></li>
|
(SharePoint, Google Drive)</span></li>
|
||||||
<li>
|
<li data-i18n="help.desc_cc8e35ba">
|
||||||
<strong>Notifications</strong><span data-i18n="help.desc_6f7c5889"> : Alerter un
|
<strong>Notifications</strong><span data-i18n="help.desc_6f7c5889"> : Alerter un
|
||||||
canal Slack/Discord quand un document est
|
canal Slack/Discord quand un document est
|
||||||
créé</span></li>
|
créé</span></li>
|
||||||
<li>
|
<li data-i18n="help.desc_660051b0">
|
||||||
<strong data-i18n="help.external_audit">Audit externe</strong><span data-i18n="help.desc_599f3242"> : Logger
|
<strong data-i18n="help.external_audit">Audit externe</strong><span data-i18n="help.desc_599f3242"> : Logger
|
||||||
toutes les modifications dans une base de
|
toutes les modifications dans une base de
|
||||||
données externe</span></li>
|
données externe</span></li>
|
||||||
<li>
|
<li data-i18n="help.desc_89a8f5de">
|
||||||
<strong data-i18n="auto.a232672b">Déploiement</strong><span data-i18n="help.desc_2f2c16b5"> : Publier un
|
<strong data-i18n="auto.a232672b">Déploiement</strong><span data-i18n="help.desc_2f2c16b5"> : Publier un
|
||||||
article de blog quand un fichier est marqué</span><code>publish: true</code>
|
article de blog quand un fichier est marqué</span><code>publish: true</code>
|
||||||
</li>
|
</li>
|
||||||
@@ -4180,7 +4180,7 @@
|
|||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
<p>
|
<p data-i18n="help.desc_39e97b2f">
|
||||||
<em
|
<em
|
||||||
data-i18n="help.webhook_note">Note : l'événement
|
data-i18n="help.webhook_note">Note : l'événement
|
||||||
<code>file_modified</code> est réservé pour
|
<code>file_modified</code> est réservé pour
|
||||||
@@ -4191,7 +4191,7 @@
|
|||||||
</p>
|
</p>
|
||||||
|
|
||||||
<h3 data-i18n="help.77f4f06e">Format du payload</h3>
|
<h3 data-i18n="help.77f4f06e">Format du payload</h3>
|
||||||
<p>
|
<p data-i18n="help.desc_56760d7f">
|
||||||
Chaque webhook reçoit un <code>POST</code> avec
|
Chaque webhook reçoit un <code>POST</code> avec
|
||||||
<code>Content-Type: application/json</code> :
|
<code>Content-Type: application/json</code> :
|
||||||
</p>
|
</p>
|
||||||
@@ -4203,7 +4203,7 @@
|
|||||||
overflow-x: auto;
|
overflow-x: auto;
|
||||||
font-size: 0.78rem;
|
font-size: 0.78rem;
|
||||||
"
|
"
|
||||||
><code>{
|
data-i18n="help.desc_c1f72521"><code>{
|
||||||
"event": "file_created",
|
"event": "file_created",
|
||||||
"timestamp": "2026-06-03T14:30:00.123456+00:00",
|
"timestamp": "2026-06-03T14:30:00.123456+00:00",
|
||||||
"data": {
|
"data": {
|
||||||
@@ -4226,7 +4226,7 @@
|
|||||||
overflow-x: auto;
|
overflow-x: auto;
|
||||||
font-size: 0.78rem;
|
font-size: 0.78rem;
|
||||||
"
|
"
|
||||||
><code>X-ObsiGate-Signature: sha256=9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08</code></pre>
|
data-i18n="help.desc_3db2812f"><code>X-ObsiGate-Signature: sha256=9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08</code></pre>
|
||||||
<p>
|
<p>
|
||||||
Pour vérifier côté récepteur : calculez
|
Pour vérifier côté récepteur : calculez
|
||||||
<code>HMAC-SHA256(corps_brut, secret)</code> et
|
<code>HMAC-SHA256(corps_brut, secret)</code> et
|
||||||
@@ -4236,27 +4236,27 @@
|
|||||||
</p>
|
</p>
|
||||||
|
|
||||||
<h3 data-i18n="config.title">Configuration</h3>
|
<h3 data-i18n="config.title">Configuration</h3>
|
||||||
<p>
|
<p data-i18n="help.desc_b6169f2e">
|
||||||
Les webhooks se gèrent dans le modal
|
Les webhooks se gèrent dans le modal
|
||||||
<strong data-i18n="header.menu_config">Configurations</strong> (⚙️ menu
|
<strong data-i18n="header.menu_config">Configurations</strong> (⚙️ menu
|
||||||
Options), section Webhooks. Réservé aux
|
Options), section Webhooks. Réservé aux
|
||||||
administrateurs.
|
administrateurs.
|
||||||
</p>
|
</p>
|
||||||
<ol>
|
<ol>
|
||||||
<li>
|
<li data-i18n="help.desc_a601f22e">
|
||||||
Allez dans ⚙️ Configurations → onglet
|
Allez dans ⚙️ Configurations → onglet
|
||||||
Webhooks
|
Webhooks
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li data-i18n="help.desc_c992f2e5">
|
||||||
Remplissez :
|
Remplissez :
|
||||||
<strong data-i18n="config.webhook_name_placeholder">Nom</strong> (descriptif),
|
<strong data-i18n="config.webhook_name_placeholder">Nom</strong> (descriptif),
|
||||||
<strong data-i18n="config.webhook_url_placeholder">URL</strong> (endpoint cible),
|
<strong data-i18n="config.webhook_url_placeholder">URL</strong> (endpoint cible),
|
||||||
<strong>Secret</strong> (optionnel)
|
<strong>Secret</strong> (optionnel)
|
||||||
</li>
|
</li>
|
||||||
<li data-i18n="auto.7c9cdc3c">Cochez les événements à écouter</li>
|
<li data-i18n="auto.7c9cdc3c">Cochez les événements à écouter</li>
|
||||||
<li>Cliquez <strong data-i18n="config.add_webhook">Ajouter</strong></li>
|
<li data-i18n="help.desc_f58da6e1">Cliquez <strong data-i18n="config.add_webhook">Ajouter</strong></li>
|
||||||
</ol>
|
</ol>
|
||||||
<p>
|
<p data-i18n="help.desc_3da1896a">
|
||||||
Les webhooks peuvent être activés/désactivés,
|
Les webhooks peuvent être activés/désactivés,
|
||||||
modifiés ou supprimés à tout moment. Le
|
modifiés ou supprimés à tout moment. Le
|
||||||
<code>last_fired_at</code> indique la dernière
|
<code>last_fired_at</code> indique la dernière
|
||||||
@@ -4274,22 +4274,22 @@
|
|||||||
overflow-x: auto;
|
overflow-x: auto;
|
||||||
font-size: 0.78rem;
|
font-size: 0.78rem;
|
||||||
"
|
"
|
||||||
><code>from flask import Flask, request\nimport hmac, hashlib\n\napp = Flask(__name__)\nWEBHOOK_SECRET = "mon-secret" # même que dans ObsiGate\n\[email protected]("/webhook", methods=["POST"])\ndef webhook():\n # Vérifier la signature\n signature = request.headers.get("X-ObsiGate-Signature", "")\n body = request.get_data()\n expected = "sha256=" + hmac.new(\n WEBHOOK_SECRET.encode(), body, hashlib.sha256\n ).hexdigest()\n if not hmac.compare_digest(signature, expected):\n return "Invalid signature", 403\n\n payload = request.get_json()\n print(f"Événement: {payload['event']}")\n print(f"Fichier: {payload['data']['vault']}/{payload['data']['path']}")\n return "OK", 200\n\napp.run(port=5000)</code></pre>
|
data-i18n="help.desc_6d68fbc9"><code>from flask import Flask, request\nimport hmac, hashlib\n\napp = Flask(__name__)\nWEBHOOK_SECRET = "mon-secret" # même que dans ObsiGate\n\[email protected]("/webhook", methods=["POST"])\ndef webhook():\n # Vérifier la signature\n signature = request.headers.get("X-ObsiGate-Signature", "")\n body = request.get_data()\n expected = "sha256=" + hmac.new(\n WEBHOOK_SECRET.encode(), body, hashlib.sha256\n ).hexdigest()\n if not hmac.compare_digest(signature, expected):\n return "Invalid signature", 403\n\n payload = request.get_json()\n print(f"Événement: {payload['event']}")\n print(f"Fichier: {payload['data']['vault']}/{payload['data']['path']}")\n return "OK", 200\n\napp.run(port=5000)</code></pre>
|
||||||
|
|
||||||
<h4 data-i18n="help.d1ea1dc6">n8n / Make (no-code)</h4>
|
<h4 data-i18n="help.d1ea1dc6">n8n / Make (no-code)</h4>
|
||||||
<ol>
|
<ol>
|
||||||
<li>
|
<li data-i18n="help.desc_6bc48f59">
|
||||||
Créez un
|
Créez un
|
||||||
<strong>Webhook Trigger</strong> dans n8n ou
|
<strong>Webhook Trigger</strong> dans n8n ou
|
||||||
Make
|
Make
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li data-i18n="help.desc_7819b56f">
|
||||||
Copiez l'URL générée (ex:
|
Copiez l'URL générée (ex:
|
||||||
<code
|
<code
|
||||||
>https://n8n.monserveur.com/webhook/abc123</code
|
>https://n8n.monserveur.com/webhook/abc123</code
|
||||||
>)
|
>)
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li data-i18n="help.desc_7b45490b">
|
||||||
Dans ObsiGate, ajoutez un webhook pointant
|
Dans ObsiGate, ajoutez un webhook pointant
|
||||||
vers cette URL
|
vers cette URL
|
||||||
</li>
|
</li>
|
||||||
@@ -4314,7 +4314,7 @@
|
|||||||
overflow-x: auto;
|
overflow-x: auto;
|
||||||
font-size: 0.78rem;
|
font-size: 0.78rem;
|
||||||
"
|
"
|
||||||
><code># Exemple avec curl + jq dans un script bash
|
data-i18n="help.desc_fc9391f3"><code># Exemple avec curl + jq dans un script bash
|
||||||
WEBHOOK_URL="https://discord.com/api/webhooks/..."
|
WEBHOOK_URL="https://discord.com/api/webhooks/..."
|
||||||
OBSIGATE_SECRET="mon-secret"
|
OBSIGATE_SECRET="mon-secret"
|
||||||
|
|
||||||
@@ -4345,19 +4345,19 @@ curl -X POST https://votre-serveur.com/webhook \
|
|||||||
|
|
||||||
<h3 data-i18n="help.381abec7">Limitations actuelles</h3>
|
<h3 data-i18n="help.381abec7">Limitations actuelles</h3>
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li data-i18n="help.desc_85effb89">
|
||||||
Timeout de <strong>5 secondes</strong> par
|
Timeout de <strong>5 secondes</strong> par
|
||||||
requête — les webhooks sont "fire and
|
requête — les webhooks sont "fire and
|
||||||
forget" (pas de retry)
|
forget" (pas de retry)
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li data-i18n="help.desc_dc4d7186">
|
||||||
Les modifications détectées par le watcher
|
Les modifications détectées par le watcher
|
||||||
filesystem (watchdog)
|
filesystem (watchdog)
|
||||||
<strong data-i18n="auto.98c547ea">ne déclenchent pas</strong> de
|
<strong data-i18n="auto.98c547ea">ne déclenchent pas</strong> de
|
||||||
webhooks — seules les opérations via l'API
|
webhooks — seules les opérations via l'API
|
||||||
REST sont prises en compte
|
REST sont prises en compte
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li data-i18n="help.desc_d3a71d97">
|
||||||
<code>file_modified</code> n'est pas encore
|
<code>file_modified</code> n'est pas encore
|
||||||
dispatché (réservé pour version future)
|
dispatché (réservé pour version future)
|
||||||
</li>
|
</li>
|
||||||
@@ -4377,15 +4377,15 @@ curl -X POST https://votre-serveur.com/webhook \
|
|||||||
avant chaque modification destructive.
|
avant chaque modification destructive.
|
||||||
</p>
|
</p>
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li data-i18n="help.desc_7671e56a">
|
||||||
<strong data-i18n="help.before_write">Avant écriture</strong> : Sauvegarde
|
<strong data-i18n="help.before_write">Avant écriture</strong> : Sauvegarde
|
||||||
du contenu original dans
|
du contenu original dans
|
||||||
<code>.obsigate-backup/</code>
|
<code>.obsigate-backup/</code>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li data-i18n="help.desc_e7e3157a">
|
||||||
<strong>Timestamp</strong><span data-i18n="help.desc_31e7253b"> : Chaque backup
|
<strong>Timestamp</strong><span data-i18n="help.desc_31e7253b"> : Chaque backup
|
||||||
est horodaté</span></li>
|
est horodaté</span></li>
|
||||||
<li>
|
<li data-i18n="help.desc_a69804cd">
|
||||||
<strong data-i18n="auto.41d7c6af">Répertoire dédié</strong> :
|
<strong data-i18n="auto.41d7c6af">Répertoire dédié</strong> :
|
||||||
<code>.obsigate-backup/</code> dans le
|
<code>.obsigate-backup/</code> dans le
|
||||||
répertoire de la vault
|
répertoire de la vault
|
||||||
@@ -4398,16 +4398,16 @@ curl -X POST https://votre-serveur.com/webhook \
|
|||||||
dans un journal.
|
dans un journal.
|
||||||
</p>
|
</p>
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li data-i18n="help.desc_a974f7a6">
|
||||||
<strong>Journal</strong> : Fichier
|
<strong>Journal</strong> : Fichier
|
||||||
<code>data/audit.log</code> au format JSON
|
<code>data/audit.log</code> au format JSON
|
||||||
lines
|
lines
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li data-i18n="help.desc_3c4711b8">
|
||||||
<strong data-i18n="auto.598a0ca7">Événements tracés</strong><span data-i18n="help.desc_9f321d1e"> :
|
<strong data-i18n="auto.598a0ca7">Événements tracés</strong><span data-i18n="help.desc_9f321d1e"> :
|
||||||
Écritures, suppressions, changements de
|
Écritures, suppressions, changements de
|
||||||
configuration</span></li>
|
configuration</span></li>
|
||||||
<li>
|
<li data-i18n="help.desc_68c2b170">
|
||||||
<strong>Rotation</strong><span data-i18n="help.desc_19cf5730"> : Rotation
|
<strong>Rotation</strong><span data-i18n="help.desc_19cf5730"> : Rotation
|
||||||
automatique à 10 Mo</span></li>
|
automatique à 10 Mo</span></li>
|
||||||
</ul>
|
</ul>
|
||||||
@@ -4419,48 +4419,48 @@ curl -X POST https://votre-serveur.com/webhook \
|
|||||||
|
|
||||||
<h3 data-i18n="help.c48fb18a">Authentification</h3>
|
<h3 data-i18n="help.c48fb18a">Authentification</h3>
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li data-i18n="help.desc_7708f226">
|
||||||
<strong>JWT + Argon2id</strong><span data-i18n="help.desc_8f0bffe3"> : Tokens JWT
|
<strong>JWT + Argon2id</strong><span data-i18n="help.desc_8f0bffe3"> : Tokens JWT
|
||||||
avec mots de passe hachés Argon2id</span></li>
|
avec mots de passe hachés Argon2id</span></li>
|
||||||
<li>
|
<li data-i18n="help.desc_b54c21ef">
|
||||||
<strong data-i18n="auto.72e515fa">Contrôle d'accès par vault</strong>
|
<strong data-i18n="auto.72e515fa">Contrôle d'accès par vault</strong>
|
||||||
: Chaque utilisateur voit uniquement ses
|
: Chaque utilisateur voit uniquement ses
|
||||||
vaults
|
vaults
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li data-i18n="help.desc_f952db17">
|
||||||
<strong>Refresh tokens</strong> : Cookies
|
<strong>Refresh tokens</strong> : Cookies
|
||||||
HttpOnly avec rotation automatique
|
HttpOnly avec rotation automatique
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li data-i18n="help.desc_1577912b">
|
||||||
<strong data-i18n="help.rate_limiting">Rate limiting</strong> : 10
|
<strong data-i18n="help.rate_limiting">Rate limiting</strong> : 10
|
||||||
tentatives / 15 min par IP + verrouillage
|
tentatives / 15 min par IP + verrouillage
|
||||||
compte
|
compte
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li data-i18n="help.desc_d646b709">
|
||||||
<strong>Compte admin</strong><span data-i18n="help.desc_5fc28b7d"> : Créé
|
<strong>Compte admin</strong><span data-i18n="help.desc_5fc28b7d"> : Créé
|
||||||
automatiquement au premier démarrage</span></li>
|
automatiquement au premier démarrage</span></li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<h3 data-i18n="help.83f1d9ca">Protection</h3>
|
<h3 data-i18n="help.83f1d9ca">Protection</h3>
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li data-i18n="help.desc_bc08f215">
|
||||||
<strong>Secret redactor</strong><span data-i18n="help.desc_9846fc07"> : Masque
|
<strong>Secret redactor</strong><span data-i18n="help.desc_9846fc07"> : Masque
|
||||||
JWT, clés API, tokens GitHub dans les
|
JWT, clés API, tokens GitHub dans les
|
||||||
aperçus</span></li>
|
aperçus</span></li>
|
||||||
<li>
|
<li data-i18n="help.desc_7f1d0512">
|
||||||
<strong>Path traversal</strong> : Validation
|
<strong>Path traversal</strong> : Validation
|
||||||
des chemins contre les attaques
|
des chemins contre les attaques
|
||||||
<code>../</code>
|
<code>../</code>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li data-i18n="help.desc_9d0e39d0">
|
||||||
<strong>Headers CSP</strong> :
|
<strong>Headers CSP</strong> :
|
||||||
Content-Security-Policy, X-Frame-Options,
|
Content-Security-Policy, X-Frame-Options,
|
||||||
XSS-Protection
|
XSS-Protection
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li data-i18n="help.desc_1f11691c">
|
||||||
<strong data-i18n="help.atomic_writes">Atomic writes</strong><span data-i18n="help.desc_752789ab"> : Écriture
|
<strong data-i18n="help.atomic_writes">Atomic writes</strong><span data-i18n="help.desc_752789ab"> : Écriture
|
||||||
via fichier temporaire + renommage atomique</span></li>
|
via fichier temporaire + renommage atomique</span></li>
|
||||||
<li>
|
<li data-i18n="help.desc_723ed8db">
|
||||||
<strong>Non-root Docker</strong> : Conteneur
|
<strong>Non-root Docker</strong> : Conteneur
|
||||||
tourne avec UID 1000
|
tourne avec UID 1000
|
||||||
</li>
|
</li>
|
||||||
@@ -4472,44 +4472,44 @@ curl -X POST https://votre-serveur.com/webhook \
|
|||||||
|
|
||||||
<h3 data-i18n="auto.559ef1da">Workflow recommandé</h3>
|
<h3 data-i18n="auto.559ef1da">Workflow recommandé</h3>
|
||||||
<ol>
|
<ol>
|
||||||
<li>
|
<li data-i18n="help.desc_625112fd">
|
||||||
<strong data-i18n="auto.678711b5">Sélectionnez un contexte</strong><span data-i18n="help.desc_39979e71"> :
|
<strong data-i18n="auto.678711b5">Sélectionnez un contexte</strong><span data-i18n="help.desc_39979e71"> :
|
||||||
Choisissez un vault pour réduire le bruit</span></li>
|
Choisissez un vault pour réduire le bruit</span></li>
|
||||||
<li>
|
<li data-i18n="help.desc_9186a3a3">
|
||||||
<strong>Explorez l'arborescence</strong> :
|
<strong>Explorez l'arborescence</strong> :
|
||||||
Naviguez dans les dossiers
|
Naviguez dans les dossiers
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li data-i18n="help.desc_93902d18">
|
||||||
<strong data-i18n="help.tip_use_tags">Utilisez les tags</strong> : Filtrez
|
<strong data-i18n="help.tip_use_tags">Utilisez les tags</strong> : Filtrez
|
||||||
par tags pour affiner
|
par tags pour affiner
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li data-i18n="help.desc_cdf7bb46">
|
||||||
<strong>Recherchez intelligemment</strong><span data-i18n="help.desc_ae213f54"> :
|
<strong>Recherchez intelligemment</strong><span data-i18n="help.desc_ae213f54"> :
|
||||||
Combinez opérateurs et texte libre</span></li>
|
Combinez opérateurs et texte libre</span></li>
|
||||||
<li>
|
<li data-i18n="help.desc_5396ed9e">
|
||||||
<strong>Profitez de l'historique</strong><span data-i18n="help.desc_71eeb16a"> :
|
<strong>Profitez de l'historique</strong><span data-i18n="help.desc_71eeb16a"> :
|
||||||
Réutilisez vos recherches fréquentes</span></li>
|
Réutilisez vos recherches fréquentes</span></li>
|
||||||
</ol>
|
</ol>
|
||||||
|
|
||||||
<h3 data-i18n="help.fe388b67">Optimisations</h3>
|
<h3 data-i18n="help.fe388b67">Optimisations</h3>
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li data-i18n="help.desc_1a04ae18">
|
||||||
<strong data-i18n="help.tip_hide_sidebar">Masquez la sidebar</strong> : Plus
|
<strong data-i18n="help.tip_hide_sidebar">Masquez la sidebar</strong> : Plus
|
||||||
d'espace pour le contenu
|
d'espace pour le contenu
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li data-i18n="help.desc_0f9a1e5b">
|
||||||
<strong
|
<strong
|
||||||
data-i18n="help.tip_sidebar_filter">Utilisez le filtrage sidebar</strong
|
data-i18n="help.tip_sidebar_filter">Utilisez le filtrage sidebar</strong
|
||||||
>
|
>
|
||||||
: Plus rapide que la recherche globale pour
|
: Plus rapide que la recherche globale pour
|
||||||
trouver un fichier
|
trouver un fichier
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li data-i18n="help.desc_6902f20d">
|
||||||
<strong data-i18n="auto.3be698f6">Favorisez les opérateurs</strong> :
|
<strong data-i18n="auto.3be698f6">Favorisez les opérateurs</strong> :
|
||||||
<code>tag:</code> et
|
<code>tag:</code> et
|
||||||
<code>vault:</code> accélèrent la recherche
|
<code>vault:</code> accélèrent la recherche
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li data-i18n="help.desc_664b1d09">
|
||||||
<strong data-i18n="help.breadcrumb_clickable">Breadcrumb cliquable</strong> :
|
<strong data-i18n="help.breadcrumb_clickable">Breadcrumb cliquable</strong> :
|
||||||
Repositionnez rapidement la sidebar
|
Repositionnez rapidement la sidebar
|
||||||
</li>
|
</li>
|
||||||
@@ -4517,28 +4517,28 @@ curl -X POST https://votre-serveur.com/webhook \
|
|||||||
|
|
||||||
<h3 data-i18n="help.2a92203f">Trucs et astuces</h3>
|
<h3 data-i18n="help.2a92203f">Trucs et astuces</h3>
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li data-i18n="help.desc_58d2326f">
|
||||||
<strong>Navigation visuelle</strong> : Le
|
<strong>Navigation visuelle</strong> : Le
|
||||||
breadcrumb repositionne automatiquement la
|
breadcrumb repositionne automatiquement la
|
||||||
sidebar
|
sidebar
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li data-i18n="help.desc_698d92ec">
|
||||||
<strong>Gestion de l'espace</strong><span data-i18n="help.desc_287be69c"> :
|
<strong>Gestion de l'espace</strong><span data-i18n="help.desc_287be69c"> :
|
||||||
Réduisez les sections Vaults/Tags selon vos
|
Réduisez les sections Vaults/Tags selon vos
|
||||||
besoins</span></li>
|
besoins</span></li>
|
||||||
<li>
|
<li data-i18n="help.desc_e6129268">
|
||||||
<strong>Confort de lecture</strong> :
|
<strong>Confort de lecture</strong> :
|
||||||
Ajustez la largeur de la sidebar
|
Ajustez la largeur de la sidebar
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li data-i18n="help.desc_5374685a">
|
||||||
<strong>Mobile-friendly</strong> : Utilisez
|
<strong>Mobile-friendly</strong> : Utilisez
|
||||||
le bouton hamburger sur mobile
|
le bouton hamburger sur mobile
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li data-i18n="help.desc_443b76b5">
|
||||||
<strong data-i18n="help.wikilinks">Wikilinks</strong> : Naviguez entre
|
<strong data-i18n="help.wikilinks">Wikilinks</strong> : Naviguez entre
|
||||||
notes comme dans Obsidian
|
notes comme dans Obsidian
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li data-i18n="help.desc_0739c6a9">
|
||||||
<strong>Images</strong> : Support complet
|
<strong>Images</strong> : Support complet
|
||||||
des syntaxes Obsidian
|
des syntaxes Obsidian
|
||||||
</li>
|
</li>
|
||||||
@@ -4546,36 +4546,36 @@ curl -X POST https://votre-serveur.com/webhook \
|
|||||||
|
|
||||||
<h3 data-i18n="help.advanced_use_cases">Cas d'usage avancés</h3>
|
<h3 data-i18n="help.advanced_use_cases">Cas d'usage avancés</h3>
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li data-i18n="help.desc_87b348c3">
|
||||||
<strong data-i18n="auto.b86ba5ea">Recherche multi-critères</strong> :
|
<strong data-i18n="auto.b86ba5ea">Recherche multi-critères</strong> :
|
||||||
<code
|
<code
|
||||||
>tag:docker tag:linux vault:IT
|
>tag:docker tag:linux vault:IT
|
||||||
nginx</code
|
nginx</code
|
||||||
>
|
>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li data-i18n="help.desc_40c92863">
|
||||||
<strong>Exploration par tags</strong> :
|
<strong>Exploration par tags</strong> :
|
||||||
Cliquez sur un tag dans une note pour voir
|
Cliquez sur un tag dans une note pour voir
|
||||||
toutes les notes similaires
|
toutes les notes similaires
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li data-i18n="help.desc_26f81732">
|
||||||
<strong data-i18n="auto.4fa5d7c2">Édition rapide</strong><span data-i18n="help.desc_cb6f0bfd"> : Ouvrez
|
<strong data-i18n="auto.4fa5d7c2">Édition rapide</strong><span data-i18n="help.desc_cb6f0bfd"> : Ouvrez
|
||||||
l'éditeur, modifiez, sauvegardez</span></li>
|
l'éditeur, modifiez, sauvegardez</span></li>
|
||||||
<li>
|
<li data-i18n="help.desc_99c6f0ec">
|
||||||
<strong data-i18n="help.export">Export</strong><span data-i18n="help.desc_f9083ce5"> : Téléchargez des
|
<strong data-i18n="help.export">Export</strong><span data-i18n="help.desc_f9083ce5"> : Téléchargez des
|
||||||
fichiers pour backup ou partage</span></li>
|
fichiers pour backup ou partage</span></li>
|
||||||
<li>
|
<li data-i18n="help.desc_ecf302ae">
|
||||||
<strong data-i18n="auto.79f6e1dd">Multi-fenêtres</strong><span data-i18n="help.desc_9cb5974c"> : Ouvrez
|
<strong data-i18n="auto.79f6e1dd">Multi-fenêtres</strong><span data-i18n="help.desc_9cb5974c"> : Ouvrez
|
||||||
plusieurs notes dans des onglets séparés</span></li>
|
plusieurs notes dans des onglets séparés</span></li>
|
||||||
</ul>
|
</ul>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<div class="help-footer">
|
<div class="help-footer">
|
||||||
<p>
|
<p data-i18n="help.desc_eebf177f">
|
||||||
<strong>ObsiGate v1.7.0</strong> - Porte
|
<strong>ObsiGate v1.7.0</strong> - Porte
|
||||||
d'entrée web pour vos vaults Obsidian
|
d'entrée web pour vos vaults Obsidian
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p data-i18n="help.desc_188bc423">
|
||||||
Pour plus d'informations, consultez le
|
Pour plus d'informations, consultez le
|
||||||
<a
|
<a
|
||||||
href="https://git.dracodev.net/Projets/ObsiGate"
|
href="https://git.dracodev.net/Projets/ObsiGate"
|
||||||
|
|||||||
@@ -1069,5 +1069,99 @@
|
|||||||
"webhook.trigger_create": "Creation via API or palette",
|
"webhook.trigger_create": "Creation via API or palette",
|
||||||
"webhook.trigger_delete": "Deletion via API or editor",
|
"webhook.trigger_delete": "Deletion via API or editor",
|
||||||
"webhook.trigger_dir_create": "Directory creation via API",
|
"webhook.trigger_dir_create": "Directory creation via API",
|
||||||
"sidebar.tab_backups": "Backups"
|
"sidebar.tab_backups": "Backups",
|
||||||
|
"help.desc_b5f89b3b": "ObsiGate integrates an AI assistant directly into the text editor. To activate it, configure at least one AI provider in the <code>.env</code> file (DeepSeek, OpenRouter, or Gemini).",
|
||||||
|
"help.desc_803161e5": "The toolbar contains the following buttons:",
|
||||||
|
"help.desc_19cfa369": "Documents are automatically saved after each modification. A status indicator in the editor header confirms: <strong>Saved</strong> or <strong>Saving…</strong>.",
|
||||||
|
"help.desc_555e0305": "[EN] Pour changer de provider par défaut :\n AI_DEFAULT",
|
||||||
|
"help.desc_13d90039": "[EN] ObsiGate permet de partager des documents via un\n ",
|
||||||
|
"help.desc_a9c2c520": "[EN] Les webhooks permettent à ObsiGate de\n notifier a",
|
||||||
|
"help.desc_39e97b2f": "[EN] Note : l'événement\n file_modified est réservé",
|
||||||
|
"help.desc_56760d7f": "[EN] Chaque webhook reçoit un POST avec\n Content-Type:",
|
||||||
|
"help.desc_c1f72521": "[EN] {\n \"event\": \"file_created\",\n \"timestamp\": \"2026-06-03T14:30:00.123456+00:00\",\n",
|
||||||
|
"help.desc_3db2812f": "[EN] X-ObsiGate-Signature: sha256=9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15",
|
||||||
|
"help.desc_b6169f2e": "[EN] Les webhooks se gèrent dans le modal\n Configurati",
|
||||||
|
"help.desc_3da1896a": "[EN] Les webhooks peuvent être activés/désactivés,\n mo",
|
||||||
|
"help.desc_6d68fbc9": "[EN] from flask import Flask, request\\nimport hmac, hashlib\\n\\napp = Flask(__name__)\\",
|
||||||
|
"help.desc_fc9391f3": "[EN] # Exemple avec curl + jq dans un script bash\nWEBHOOK_URL=\"https://discord.com/ap",
|
||||||
|
"help.desc_eebf177f": "[EN] ObsiGate v1.7.0 - Porte\n d'entrée web pour vos va",
|
||||||
|
"help.desc_188bc423": "[EN] Pour plus d'informations, consultez le\n dépôt du ",
|
||||||
|
"help.desc_f53badcd": "Add your API key in <code>.env</code>:",
|
||||||
|
"help.desc_ba4578ae": "Restart the container:",
|
||||||
|
"help.desc_e0525213": "Inline completion (<kbd>Ctrl+J</kbd>). Automatically completes the text where the cursor is located.",
|
||||||
|
"help.desc_11cf9e8a": "[EN] Éditer ▾ — Menu de\n modification du texte sél",
|
||||||
|
"help.desc_a6cb3b26": "[EN] 🔤\n Fix spelling & grammar\n ",
|
||||||
|
"help.desc_5a53de53": "[EN] 📏 Make shorter :\n Rend le texte plus ",
|
||||||
|
"help.desc_e36f3eaa": "[EN] 📐 Make longer :\n Ajoute des détails, ",
|
||||||
|
"help.desc_3d4e9189": "Simplifies the language for easier reading — replaces complex terms and shortens long sentences.",
|
||||||
|
"help.desc_5524e921": "Adapts the tone for a formal, business context — suitable for reports, emails, and official documents.",
|
||||||
|
"help.desc_759926ee": "Relaxed and friendly tone — ideal for informal communication or social media.",
|
||||||
|
"help.desc_7ab5be50": "Translates the selected text into the target language.",
|
||||||
|
"help.desc_47e1e10f": "[EN] Générer ▾ — Génère du\n contenu à partir de la",
|
||||||
|
"help.desc_e5cf90b2": "Creates a concise summary of the selected text — bullet points capturing the essentials.",
|
||||||
|
"help.desc_f2d4e369": "[EN] ✏️\n Continue writing :\n ",
|
||||||
|
"help.desc_aec0ad2c": "[EN] 💬 Réécrire — Réécrit le\n texte selon vos inst",
|
||||||
|
"help.desc_d9e8ab0b": "[EN] 🧰 Boîte ▾ — Outils de\n conversion :\n ",
|
||||||
|
"help.desc_13d206d4": "Transforms textual data into a readable Markdown table — ideal for comparisons and structured information.",
|
||||||
|
"help.desc_50a33a05": "Generates YAML frontmatter for the current document (title, date, tags based on content).",
|
||||||
|
"help.desc_fa126609": "Converts the document structure into an Obsidian Canvas (visual cards).",
|
||||||
|
"help.desc_7ff2fa21": "[EN] Pendant une requête AI, un toast\n ⏳ AI: trait",
|
||||||
|
"help.desc_a13f7f2c": "[EN] Une fois terminé,\n AI: texte traité ✓ confirm",
|
||||||
|
"help.desc_32e3d66d": "[EN] En cas d'erreur de clé API :\n AI: clé API inv",
|
||||||
|
"help.desc_7e86626c": "[EN] Bouton Partager : Dans les\n actions du fichie",
|
||||||
|
"help.desc_985d759b": "[EN] Token unique : 64\n caractères hexadécimaux, i",
|
||||||
|
"help.desc_ec5f7a26": "[EN] Expiration configurable :\n Durée de vie en he",
|
||||||
|
"help.desc_071da87a": "[EN] Lecture seule : La vue\n publique n'affiche qu",
|
||||||
|
"help.desc_2c220763": "[EN] Gestion des liens : Liste\n et révocation dans",
|
||||||
|
"help.desc_cfe362a7": "[EN] Export PDF : Téléchargement\n du document part",
|
||||||
|
"help.desc_2349271d": "[EN] Automatisation CI/CD :\n Déclencher un build q",
|
||||||
|
"help.desc_d915c72b": "[EN] Synchronisation : Copier\n les nouveaux fichie",
|
||||||
|
"help.desc_cc8e35ba": "[EN] Notifications : Alerter un\n canal Slack/Disco",
|
||||||
|
"help.desc_660051b0": "[EN] Audit externe : Logger\n toutes les modificati",
|
||||||
|
"help.desc_89a8f5de": "[EN] Déploiement : Publier un\n article de blog qua",
|
||||||
|
"help.desc_a601f22e": "[EN] Allez dans ⚙️ Configurations → onglet\n Webhoo",
|
||||||
|
"help.desc_c992f2e5": "[EN] Remplissez :\n Nom (descriptif),\n ",
|
||||||
|
"help.desc_f58da6e1": "[EN] Cliquez Ajouter",
|
||||||
|
"help.desc_6bc48f59": "[EN] Créez un\n Webhook Trigger dans n8n ou\n ",
|
||||||
|
"help.desc_7819b56f": "[EN] Copiez l'URL générée (ex:\n https://n8n.monser",
|
||||||
|
"help.desc_7b45490b": "[EN] Dans ObsiGate, ajoutez un webhook pointant\n v",
|
||||||
|
"help.desc_85effb89": "[EN] Timeout de 5 secondes par\n requête — les webh",
|
||||||
|
"help.desc_dc4d7186": "[EN] Les modifications détectées par le watcher\n f",
|
||||||
|
"help.desc_d3a71d97": "[EN] file_modified n'est pas encore\n dispatché (ré",
|
||||||
|
"help.desc_7671e56a": "[EN] Avant écriture : Sauvegarde\n du contenu origi",
|
||||||
|
"help.desc_e7e3157a": "[EN] Timestamp : Chaque backup\n est horodaté",
|
||||||
|
"help.desc_a69804cd": "[EN] Répertoire dédié :\n .obsigate-backup/ dans le",
|
||||||
|
"help.desc_a974f7a6": "[EN] Journal : Fichier\n data/audit.log au format J",
|
||||||
|
"help.desc_3c4711b8": "[EN] Événements tracés :\n Écritures, suppressions,",
|
||||||
|
"help.desc_68c2b170": "[EN] Rotation : Rotation\n automatique à 10 Mo",
|
||||||
|
"help.desc_7708f226": "[EN] JWT + Argon2id : Tokens JWT\n avec mots de pas",
|
||||||
|
"help.desc_b54c21ef": "[EN] Contrôle d'accès par vault\n : Chaque utilisat",
|
||||||
|
"help.desc_f952db17": "[EN] Refresh tokens : Cookies\n HttpOnly avec rotat",
|
||||||
|
"help.desc_1577912b": "[EN] Rate limiting : 10\n tentatives / 15 min par I",
|
||||||
|
"help.desc_d646b709": "[EN] Compte admin : Créé\n automatiquement au premi",
|
||||||
|
"help.desc_bc08f215": "[EN] Secret redactor : Masque\n JWT, clés API, toke",
|
||||||
|
"help.desc_7f1d0512": "[EN] Path traversal : Validation\n des chemins cont",
|
||||||
|
"help.desc_9d0e39d0": "[EN] Headers CSP :\n Content-Security-Policy, X-Fra",
|
||||||
|
"help.desc_1f11691c": "[EN] Atomic writes : Écriture\n via fichier tempora",
|
||||||
|
"help.desc_723ed8db": "[EN] Non-root Docker : Conteneur\n tourne avec UID ",
|
||||||
|
"help.desc_625112fd": "[EN] Sélectionnez un contexte :\n Choisissez un vau",
|
||||||
|
"help.desc_9186a3a3": "[EN] Explorez l'arborescence :\n Naviguez dans les ",
|
||||||
|
"help.desc_93902d18": "[EN] Utilisez les tags : Filtrez\n par tags pour af",
|
||||||
|
"help.desc_cdf7bb46": "[EN] Recherchez intelligemment :\n Combinez opérate",
|
||||||
|
"help.desc_5396ed9e": "[EN] Profitez de l'historique :\n Réutilisez vos re",
|
||||||
|
"help.desc_1a04ae18": "[EN] Masquez la sidebar : Plus\n d'espace pour le c",
|
||||||
|
"help.desc_0f9a1e5b": "[EN] Utilisez le filtrage sidebar\n : Plus rapide q",
|
||||||
|
"help.desc_6902f20d": "[EN] Favorisez les opérateurs :\n tag: et\n ",
|
||||||
|
"help.desc_664b1d09": "[EN] Breadcrumb cliquable :\n Repositionnez rapidem",
|
||||||
|
"help.desc_58d2326f": "[EN] Navigation visuelle : Le\n breadcrumb repositi",
|
||||||
|
"help.desc_698d92ec": "[EN] Gestion de l'espace :\n Réduisez les sections ",
|
||||||
|
"help.desc_e6129268": "[EN] Confort de lecture :\n Ajustez la largeur de l",
|
||||||
|
"help.desc_5374685a": "[EN] Mobile-friendly : Utilisez\n le bouton hamburg",
|
||||||
|
"help.desc_443b76b5": "[EN] Wikilinks : Naviguez entre\n notes comme dans ",
|
||||||
|
"help.desc_0739c6a9": "[EN] Images : Support complet\n des syntaxes Obsidi",
|
||||||
|
"help.desc_87b348c3": "[EN] Recherche multi-critères :\n tag:docker tag:li",
|
||||||
|
"help.desc_40c92863": "[EN] Exploration par tags :\n Cliquez sur un tag da",
|
||||||
|
"help.desc_26f81732": "[EN] Édition rapide : Ouvrez\n l'éditeur, modifiez,",
|
||||||
|
"help.desc_99c6f0ec": "[EN] Export : Téléchargez des\n fichiers pour backu",
|
||||||
|
"help.desc_ecf302ae": "[EN] Multi-fenêtres : Ouvrez\n plusieurs notes dans"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1069,5 +1069,99 @@
|
|||||||
"webhook.trigger_create": "Création via API ou palette",
|
"webhook.trigger_create": "Création via API ou palette",
|
||||||
"webhook.trigger_delete": "Suppression via API ou éditeur",
|
"webhook.trigger_delete": "Suppression via API ou éditeur",
|
||||||
"webhook.trigger_dir_create": "Création de dossier via API",
|
"webhook.trigger_dir_create": "Création de dossier via API",
|
||||||
"sidebar.tab_backups": "Sauvegardes"
|
"sidebar.tab_backups": "Sauvegardes",
|
||||||
|
"help.desc_b5f89b3b": "ObsiGate intègre un assistant IA directement\n dans l'éditeur de texte. Pour l'activer,\n configurez au moins un provider AI dans le\n fichier .env (DeepSeek, OpenRouter\n ou Gemini).",
|
||||||
|
"help.desc_803161e5": "La barre d'outils contient les boutons suivants\n :",
|
||||||
|
"help.desc_19cfa369": "L'éditeur sauvegarde automatiquement après 2\n secondes d'inactivité. Le bouton de sauvegarde\n flashe en vert brièvement pour\n confirmer.",
|
||||||
|
"help.desc_555e0305": "Pour changer de provider par défaut :\n AI_DEFAULT_PROVIDER=openrouter",
|
||||||
|
"help.desc_13d90039": "ObsiGate permet de partager des documents via un\n lien public temporaire.",
|
||||||
|
"help.desc_a9c2c520": "Les webhooks permettent à ObsiGate de\n notifier automatiquement des services\n externes\n lorsque des fichiers ou dossiers sont modifiés.\n Chaque événement déclenche un\n POST HTTP vers l'URL de votre\n choix, avec un payload JSON détaillé.",
|
||||||
|
"help.desc_39e97b2f": "Note : l'événement\n file_modified est réservé pour\n usage futur. Les modifications de contenu\n via l'éditeur ne déclenchent pas encore de\n webhook.",
|
||||||
|
"help.desc_56760d7f": "Chaque webhook reçoit un POST avec\n Content-Type: application/json :",
|
||||||
|
"help.desc_c1f72521": "{\n \"event\": \"file_created\",\n \"timestamp\": \"2026-06-03T14:30:00.123456+00:00\",\n \"data\": {\n \"vault\": \"IT\",\n \"path\": \"procedures/deploiement.md\"\n }\n}\n\n Sécurité : signature HMAC-SHA256\n \n Si vous configurez un secret, chaque requête\n inclut un header\n X-ObsiGate-Signature :",
|
||||||
|
"help.desc_3db2812f": "X-ObsiGate-Signature: sha256=9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08\n \n Pour vérifier côté récepteur : calculez\n HMAC-SHA256(corps_brut, secret) et\n comparez. Le header\n X-ObsiGate-Event contient aussi le\n type d'événement pour un routage rapide.",
|
||||||
|
"help.desc_b6169f2e": "Les webhooks se gèrent dans le modal\n Configurations (⚙️ menu\n Options), section Webhooks. Réservé aux\n administrateurs.",
|
||||||
|
"help.desc_3da1896a": "Les webhooks peuvent être activés/désactivés,\n modifiés ou supprimés à tout moment. Le\n last_fired_at indique la dernière\n exécution.",
|
||||||
|
"help.desc_6d68fbc9": "from flask import Flask, request\\nimport hmac, hashlib\\n\\napp = Flask(__name__)\\nWEBHOOK_SECRET = \"mon-secret\" # même que dans ObsiGate\\n\\[email protected](\"/webhook\", methods=[\"POST\"])\\ndef webhook():\\n # Vérifier la signature\\n signature = request.headers.get(\"X-ObsiGate-Signature\", \"\")\\n body = request.get_data()\\n expected = \"sha256=\" + hmac.new(\\n WEBHOOK_SECRET.encode(), body, hashlib.sha256\\n ).hexdigest()\\n if not hmac.compare_digest(signature, expected):\\n return \"Invalid signature\", 403\\n\\n payload = request.get_json()\\n print(f\"Événement: {payload['event']}\")\\n print(f\"Fichier: {payload['data']['vault']}/{payload['data']['path']}\")\\n return \"OK\", 200\\n\\napp.run(port=5000)\n\n n8n / Make (no-code)\n \n \n Créez un\n Webhook Trigger dans n8n ou\n Make\n \n \n Copiez l'URL générée (ex:\n https://n8n.monserveur.com/webhook/abc123)\n \n \n Dans ObsiGate, ajoutez un webhook pointant\n vers cette URL\n \n Sélectionnez les événements souhaités\n \n Le workflow se déclenche automatiquement à\n chaque événement\n \n \n\n Notification Discord\n \n Utilisez un webhook relais (n8n, Make, ou un\n script) pour transformer le payload ObsiGate en\n message Discord :",
|
||||||
|
"help.desc_fc9391f3": "# Exemple avec curl + jq dans un script bash\nWEBHOOK_URL=\"https://discord.com/api/webhooks/...\"\nOBSIGATE_SECRET=\"mon-secret\"\n\n# Lire le payload depuis stdin\nread -r payload\nevent=$(echo \"$payload\" | jq -r '.event')\npath=$(echo \"$payload\" | jq -r '.data.path')\n\ncurl -H \"Content-Type: application/json\" -d \"{\n \\\"content\\\": \\\"📝 **$event** — $path\\\"\n}\" \"$WEBHOOK_URL\"\n\n Tester avec curl\n # Simuler ce qu'ObsiGate envoie (pour tester votre endpoint)\ncurl -X POST https://votre-serveur.com/webhook \\\n -H \"Content-Type: application/json\" \\\n -H \"X-ObsiGate-Event: file_created\" \\\n -H \"X-ObsiGate-Signature: sha256=$(echo -n '{\"event\":\"file_created\",...}' | openssl dgst -sha256 -hmac 'mon-secret' | cut -d' ' -f2)\" \\\n -d '{\"event\":\"file_created\",\"timestamp\":\"2026-06-03T14:30:00Z\",\"data\":{\"vault\":\"IT\",\"path\":\"notes/test.md\"}}'\n\n Limitations actuelles\n \n \n Timeout de 5 secondes par\n requête — les webhooks sont \"fire and\n forget\" (pas de retry)\n \n \n Les modifications détectées par le watcher\n filesystem (watchdog)\n ne déclenchent pas de\n webhooks — seules les opérations via l'API\n REST sont prises en compte\n \n \n file_modified n'est pas encore\n dispatché (réservé pour version future)\n \n Pas de retry automatique en cas d'échec\n \n Pas de filtrage par vault — un webhook\n écoute toutes les vaults\n \n \n \n \n 💾 Sauvegardes et Audits\n\n Backup automatique\n \n ObsiGate crée automatiquement des sauvegardes\n avant chaque modification destructive.",
|
||||||
|
"help.desc_eebf177f": "ObsiGate v1.7.0 - Porte\n d'entrée web pour vos vaults Obsidian",
|
||||||
|
"help.desc_188bc423": "Pour plus d'informations, consultez le\n dépôt du projet.",
|
||||||
|
"help.desc_f53badcd": "Ajoutez votre clé API dans\n .env :\n DEEPSEEK_API_KEY=sk-...",
|
||||||
|
"help.desc_ba4578ae": "Redémarrez le conteneur :\n docker compose down && docker compose\n up -d --build",
|
||||||
|
"help.desc_e0525213": "✦ AI — Complétion inline\n (Ctrl+J). Complète\n automatiquement le texte là où se trouve le\n curseur.",
|
||||||
|
"help.desc_11cf9e8a": "Éditer ▾ — Menu de\n modification du texte sélectionné :\n \n 🪄\n Improve writing :\n Améliore la qualité, la clarté et le\n flux du texte",
|
||||||
|
"help.desc_a6cb3b26": "🔤\n Fix spelling & grammar\n : Corrige les fautes d'orthographe\n et de grammaire",
|
||||||
|
"help.desc_5a53de53": "📏 Make shorter :\n Rend le texte plus concis tout en\n préservant l'information",
|
||||||
|
"help.desc_e36f3eaa": "📐 Make longer :\n Ajoute des détails, exemples ou\n explications",
|
||||||
|
"help.desc_3d4e9189": "📋\n Simplify language :\n Simplifie le langage, évite le\n jargon",
|
||||||
|
"help.desc_5524e921": "Ton ▾ — Change le ton du\n texte :\n \n \n 💼 Professional :\n Ton formel et professionnel",
|
||||||
|
"help.desc_759926ee": "💬 Casual : Ton\n décontracté et conversationnel",
|
||||||
|
"help.desc_7ab5be50": "Traduire ▾ — Traduit le\n texte sélectionné vers une autre langue :\n \n 🇬🇧 English · 🇨🇳 Chinese · 🇯🇵\n Japanese · 🇩🇪 German · 🇫🇷 French ·\n 🇪🇸 Spanish",
|
||||||
|
"help.desc_47e1e10f": "Générer ▾ — Génère du\n contenu à partir de la sélection :\n \n ℹ️ Explain this :\n Explique le texte sélectionné de\n façon claire",
|
||||||
|
"help.desc_e5cf90b2": "📝 Summarize :\n Résume le texte de façon concise",
|
||||||
|
"help.desc_f2d4e369": "✏️\n Continue writing :\n Continue l'écriture à partir du\n texte",
|
||||||
|
"help.desc_aec0ad2c": "💬 Réécrire — Réécrit le\n texte selon vos instructions personnalisées.\n Une boîte de dialogue vous demande votre\n instruction.",
|
||||||
|
"help.desc_d9e8ab0b": "🧰 Boîte ▾ — Outils de\n conversion :\n \n \n 📋\n Convert to list :\n Transforme le texte en liste\n Markdown",
|
||||||
|
"help.desc_13d206d4": "📊\n Convert to table :\n Transforme en tableau Markdown",
|
||||||
|
"help.desc_50a33a05": "⚙️\n Generate frontmatter\n : Génère un bloc YAML frontmatter",
|
||||||
|
"help.desc_fa126609": "🔷\n Convert to canvas :\n Convertit en diagramme Mermaid.js",
|
||||||
|
"help.desc_7ff2fa21": "Pendant une requête AI, un toast\n ⏳ AI: traitement en cours...\n s'affiche",
|
||||||
|
"help.desc_a13f7f2c": "Une fois terminé,\n AI: texte traité ✓ confirme\n le succès",
|
||||||
|
"help.desc_32e3d66d": "En cas d'erreur de clé API :\n AI: clé API invalide",
|
||||||
|
"help.desc_7e86626c": "Bouton Partager : Dans les\n actions du fichier, génère un lien unique",
|
||||||
|
"help.desc_985d759b": "Token unique : 64\n caractères hexadécimaux, impossible à\n deviner",
|
||||||
|
"help.desc_ec5f7a26": "Expiration configurable :\n Durée de vie en heures",
|
||||||
|
"help.desc_071da87a": "Lecture seule : La vue\n publique n'affiche que le contenu sans\n édition",
|
||||||
|
"help.desc_2c220763": "Gestion des liens : Liste\n et révocation dans les Configurations",
|
||||||
|
"help.desc_cfe362a7": "Export PDF : Téléchargement\n du document partagé en PDF via/s/{token}/pdf",
|
||||||
|
"help.desc_2349271d": "Automatisation CI/CD :\n Déclencher un build quand une note de\n procédure est mise à jour",
|
||||||
|
"help.desc_d915c72b": "Synchronisation : Copier\n les nouveaux fichiers vers un autre système\n (SharePoint, Google Drive)",
|
||||||
|
"help.desc_cc8e35ba": "Notifications : Alerter un\n canal Slack/Discord quand un document est\n créé",
|
||||||
|
"help.desc_660051b0": "Audit externe : Logger\n toutes les modifications dans une base de\n données externe",
|
||||||
|
"help.desc_89a8f5de": "Déploiement : Publier un\n article de blog quand un fichier est marquépublish: true",
|
||||||
|
"help.desc_a601f22e": "Allez dans ⚙️ Configurations → onglet\n Webhooks",
|
||||||
|
"help.desc_c992f2e5": "Remplissez :\n Nom (descriptif),\n URL (endpoint cible),\n Secret (optionnel)",
|
||||||
|
"help.desc_f58da6e1": "Cliquez Ajouter",
|
||||||
|
"help.desc_6bc48f59": "Créez un\n Webhook Trigger dans n8n ou\n Make",
|
||||||
|
"help.desc_7819b56f": "Copiez l'URL générée (ex:\n https://n8n.monserveur.com/webhook/abc123)",
|
||||||
|
"help.desc_7b45490b": "Dans ObsiGate, ajoutez un webhook pointant\n vers cette URL",
|
||||||
|
"help.desc_85effb89": "Timeout de 5 secondes par\n requête — les webhooks sont \"fire and\n forget\" (pas de retry)",
|
||||||
|
"help.desc_dc4d7186": "Les modifications détectées par le watcher\n filesystem (watchdog)\n ne déclenchent pas de\n webhooks — seules les opérations via l'API\n REST sont prises en compte",
|
||||||
|
"help.desc_d3a71d97": "file_modified n'est pas encore\n dispatché (réservé pour version future)",
|
||||||
|
"help.desc_7671e56a": "Avant écriture : Sauvegarde\n du contenu original dans\n .obsigate-backup/",
|
||||||
|
"help.desc_e7e3157a": "Timestamp : Chaque backup\n est horodaté",
|
||||||
|
"help.desc_a69804cd": "Répertoire dédié :\n .obsigate-backup/ dans le\n répertoire de la vault",
|
||||||
|
"help.desc_a974f7a6": "Journal : Fichier\n data/audit.log au format JSON\n lines",
|
||||||
|
"help.desc_3c4711b8": "Événements tracés :\n Écritures, suppressions, changements de\n configuration",
|
||||||
|
"help.desc_68c2b170": "Rotation : Rotation\n automatique à 10 Mo",
|
||||||
|
"help.desc_7708f226": "JWT + Argon2id : Tokens JWT\n avec mots de passe hachés Argon2id",
|
||||||
|
"help.desc_b54c21ef": "Contrôle d'accès par vault\n : Chaque utilisateur voit uniquement ses\n vaults",
|
||||||
|
"help.desc_f952db17": "Refresh tokens : Cookies\n HttpOnly avec rotation automatique",
|
||||||
|
"help.desc_1577912b": "Rate limiting : 10\n tentatives / 15 min par IP + verrouillage\n compte",
|
||||||
|
"help.desc_d646b709": "Compte admin : Créé\n automatiquement au premier démarrage",
|
||||||
|
"help.desc_bc08f215": "Secret redactor : Masque\n JWT, clés API, tokens GitHub dans les\n aperçus",
|
||||||
|
"help.desc_7f1d0512": "Path traversal : Validation\n des chemins contre les attaques\n ../",
|
||||||
|
"help.desc_9d0e39d0": "Headers CSP :\n Content-Security-Policy, X-Frame-Options,\n XSS-Protection",
|
||||||
|
"help.desc_1f11691c": "Atomic writes : Écriture\n via fichier temporaire + renommage atomique",
|
||||||
|
"help.desc_723ed8db": "Non-root Docker : Conteneur\n tourne avec UID 1000",
|
||||||
|
"help.desc_625112fd": "Sélectionnez un contexte :\n Choisissez un vault pour réduire le bruit",
|
||||||
|
"help.desc_9186a3a3": "Explorez l'arborescence :\n Naviguez dans les dossiers",
|
||||||
|
"help.desc_93902d18": "Utilisez les tags : Filtrez\n par tags pour affiner",
|
||||||
|
"help.desc_cdf7bb46": "Recherchez intelligemment :\n Combinez opérateurs et texte libre",
|
||||||
|
"help.desc_5396ed9e": "Profitez de l'historique :\n Réutilisez vos recherches fréquentes",
|
||||||
|
"help.desc_1a04ae18": "Masquez la sidebar : Plus\n d'espace pour le contenu",
|
||||||
|
"help.desc_0f9a1e5b": "Utilisez le filtrage sidebar\n : Plus rapide que la recherche globale pour\n trouver un fichier",
|
||||||
|
"help.desc_6902f20d": "Favorisez les opérateurs :\n tag: et\n vault: accélèrent la recherche",
|
||||||
|
"help.desc_664b1d09": "Breadcrumb cliquable :\n Repositionnez rapidement la sidebar",
|
||||||
|
"help.desc_58d2326f": "Navigation visuelle : Le\n breadcrumb repositionne automatiquement la\n sidebar",
|
||||||
|
"help.desc_698d92ec": "Gestion de l'espace :\n Réduisez les sections Vaults/Tags selon vos\n besoins",
|
||||||
|
"help.desc_e6129268": "Confort de lecture :\n Ajustez la largeur de la sidebar",
|
||||||
|
"help.desc_5374685a": "Mobile-friendly : Utilisez\n le bouton hamburger sur mobile",
|
||||||
|
"help.desc_443b76b5": "Wikilinks : Naviguez entre\n notes comme dans Obsidian",
|
||||||
|
"help.desc_0739c6a9": "Images : Support complet\n des syntaxes Obsidian",
|
||||||
|
"help.desc_87b348c3": "Recherche multi-critères :\n tag:docker tag:linux vault:IT\n nginx",
|
||||||
|
"help.desc_40c92863": "Exploration par tags :\n Cliquez sur un tag dans une note pour voir\n toutes les notes similaires",
|
||||||
|
"help.desc_26f81732": "Édition rapide : Ouvrez\n l'éditeur, modifiez, sauvegardez",
|
||||||
|
"help.desc_99c6f0ec": "Export : Téléchargez des\n fichiers pour backup ou partage",
|
||||||
|
"help.desc_ecf302ae": "Multi-fenêtres : Ouvrez\n plusieurs notes dans des onglets séparés"
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user