feat: #61 Plugin system — backend API, sandboxed Web Worker, hooks wired to real app flow, user guide, 47+21 tests
CI / lint (push) Failing after 30s
CI / test (push) Skipped
CI / build (push) Skipped
CI / e2e (push) Skipped
CI / security (push) Successful in 35s
Desktop Build / build-windows (push) Canceled after 0s
Desktop Build / build-linux (push) Canceled after 0s
CI / lint (push) Failing after 30s
CI / test (push) Skipped
CI / build (push) Skipped
CI / e2e (push) Skipped
CI / security (push) Successful in 35s
Desktop Build / build-windows (push) Canceled after 0s
Desktop Build / build-linux (push) Canceled after 0s
This commit is contained in:
@@ -460,6 +460,7 @@
|
||||
"config.section_watcher": "Auto sync",
|
||||
"config.section_webhooks": "🔗 Webhooks",
|
||||
"config.section_push": "🔔 Push notifications",
|
||||
"config.section_plugins": "🧩 Plugins",
|
||||
"config.section_workflow-recommande": "Recommended workflow",
|
||||
"config.section_zone-de-contenu": "Zone de contenu",
|
||||
"config.server_config": "Server config",
|
||||
@@ -486,6 +487,8 @@
|
||||
"config.webhook_url_placeholder": "URL",
|
||||
"config.webhooks": "Webhooks",
|
||||
"config.webhooks_desc": "HTTP notifications to external services on file changes.",
|
||||
"config.plugins": "Plugins",
|
||||
"config.plugins_desc": "Manage installed plugins for this vault.",
|
||||
"config.workers_label": "Search workers",
|
||||
"confirm.delete_dir": "Delete this folder and all its contents?",
|
||||
"confirm.delete_dir_named": "Delete \"{path}\" and ALL its contents?",
|
||||
@@ -1072,6 +1075,7 @@
|
||||
"help.nav_tags": "🏷️ Tags",
|
||||
"help.nav_tips": "💡 Tips",
|
||||
"help.nav_webhooks": "🪝 Webhooks",
|
||||
"help.nav_plugins": "🧩 Plugins",
|
||||
"help.new_file": "New file",
|
||||
"help.new_folder": "New folder",
|
||||
"help.nights": "sleepless nights 😅",
|
||||
@@ -1338,6 +1342,7 @@
|
||||
"settings.search_placeholder": "Search...",
|
||||
"settings.sync": "🔄 Sync",
|
||||
"settings.themes": "🎨 Themes",
|
||||
"settings.plugins": "🧩 Plugins",
|
||||
"share.copied": "Link copied!",
|
||||
"share.copy_link": "Copy link",
|
||||
"share.create": "Create share link",
|
||||
@@ -1614,5 +1619,30 @@
|
||||
"mfa.webauthn_prompt": "Present your security key or confirm with Windows Hello.",
|
||||
"mfa.webauthn_btn": "Verify with my key",
|
||||
"mfa.webauthn_cancelled": "WebAuthn ceremony cancelled.",
|
||||
"mfa.webauthn_no_key": "No security key registered for this account."
|
||||
}
|
||||
"mfa.webauthn_no_key": "No security key registered for this account.",
|
||||
"plugins.title": "🧩 Plugins",
|
||||
"plugins.description": "Extend ObsiGate with custom renderers, search filters, and editor actions.",
|
||||
"plugins.install": "Install Plugin",
|
||||
"plugins.template": "View Template",
|
||||
"plugins.none": "No plugins installed.",
|
||||
"plugins.manifest_json": "Manifest (plugin.json)",
|
||||
"plugins.code": "Plugin Code (main file)",
|
||||
"plugins.view_code": "View Code",
|
||||
"plugins.uninstall": "Uninstall",
|
||||
"plugins.enable": "Enable",
|
||||
"plugins.disable": "Disable",
|
||||
"plugins.enabled": "Plugin '{name}' enabled.",
|
||||
"plugins.disabled": "Plugin '{name}' disabled.",
|
||||
"plugins.installed": "Plugin '{name}' installed successfully.",
|
||||
"plugins.uninstalled": "Plugin '{name}' uninstalled.",
|
||||
"plugins.confirm_uninstall": "Uninstall plugin '{name}'? This cannot be undone.",
|
||||
"help.plugins_title": "🧩 Plugins",
|
||||
"help.plugins_intro": "ObsiGate supports a plugin system to extend its functionality. Plugins can add custom renderers, search filters, editor actions, and UI elements.",
|
||||
"help.plugins_install": "Installation",
|
||||
"help.plugins_manage": "Management",
|
||||
"help.plugins_develop": "Development",
|
||||
"help.plugins_dev_intro": "A plugin is a folder or ZIP containing:",
|
||||
"help.plugins_hooks_desc": "Available hooks: <code>onFileRender</code>, <code>onSearchFilter</code>, <code>onEditorAction</code>, <code>onSidebarItem</code>, <code>onFileCreate</code>, <code>onFileDelete</code>, <code>onVaultMount</code>.",
|
||||
"help.plugins_security": "<strong>Security:</strong> each plugin runs in an isolated Web Worker sandbox, with no DOM, localStorage, or network access unless explicitly granted via permissions.",
|
||||
"help.plugins_template": "Use the <strong>Template</strong> button in Settings > Plugins to generate a valid starter plugin."
|
||||
}
|
||||
@@ -460,6 +460,7 @@
|
||||
"config.section_watcher": "Synchronisation automatique",
|
||||
"config.section_webhooks": "🪝 Webhooks",
|
||||
"config.section_push": "🔔 Notifications push",
|
||||
"config.section_plugins": "🧩 Plugins",
|
||||
"config.section_workflow-recommande": "Workflow recommandé",
|
||||
"config.section_zone-de-contenu": "Zone de contenu",
|
||||
"config.server_config": "Configuration serveur",
|
||||
@@ -486,6 +487,8 @@
|
||||
"config.webhook_url_placeholder": "URL",
|
||||
"config.webhooks": "Webhooks",
|
||||
"config.webhooks_desc": "Notifications HTTP vers des services externes lors des changements de fichiers.",
|
||||
"config.plugins": "Plugins",
|
||||
"config.plugins_desc": "Gérer les plugins installés pour ce vault.",
|
||||
"config.workers_label": "Workers de recherche",
|
||||
"confirm.delete_dir": "Supprimer ce dossier et tout son contenu ?",
|
||||
"confirm.delete_dir_named": "Supprimer \"{path}\" et TOUT son contenu ?",
|
||||
@@ -1072,6 +1075,7 @@
|
||||
"help.nav_tags": "🏷️ Tags",
|
||||
"help.nav_tips": "💡 Astuces",
|
||||
"help.nav_webhooks": "🪝 Webhooks",
|
||||
"help.nav_plugins": "🧩 Plugins",
|
||||
"help.new_file": "Nouveau fichier",
|
||||
"help.new_folder": "Nouveau dossier",
|
||||
"help.nights": "nuits blanches 😅",
|
||||
@@ -1338,6 +1342,7 @@
|
||||
"settings.search_placeholder": "Rechercher...",
|
||||
"settings.sync": "🔄 Synchronisation",
|
||||
"settings.themes": "🎨 Thèmes",
|
||||
"settings.plugins": "🧩 Plugins",
|
||||
"share.copied": "Lien copié !",
|
||||
"share.copy_link": "Copier le lien",
|
||||
"share.create": "Créer un lien de partage",
|
||||
@@ -1614,5 +1619,30 @@
|
||||
"mfa.webauthn_prompt": "Présentez votre clé de sécurité ou confirmez avec Windows Hello.",
|
||||
"mfa.webauthn_btn": "Valider avec ma clé",
|
||||
"mfa.webauthn_cancelled": "Cérémonie WebAuthn annulée.",
|
||||
"mfa.webauthn_no_key": "Aucune clé de sécurité enregistrée pour ce compte."
|
||||
}
|
||||
"mfa.webauthn_no_key": "Aucune clé de sécurité enregistrée pour ce compte.",
|
||||
"plugins.title": "🧩 Plugins",
|
||||
"plugins.description": "Étendez ObsiGate avec des renderers personnalisés, filtres de recherche et actions d'éditeur.",
|
||||
"plugins.install": "Installer le plugin",
|
||||
"plugins.template": "Voir le modèle",
|
||||
"plugins.none": "Aucun plugin installé.",
|
||||
"plugins.manifest_json": "Manifeste (plugin.json)",
|
||||
"plugins.code": "Code du plugin (fichier principal)",
|
||||
"plugins.view_code": "Voir le code",
|
||||
"plugins.uninstall": "Désinstaller",
|
||||
"plugins.enable": "Activer",
|
||||
"plugins.disable": "Désactiver",
|
||||
"plugins.enabled": "Plugin '{name}' activé.",
|
||||
"plugins.disabled": "Plugin '{name}' désactivé.",
|
||||
"plugins.installed": "Plugin '{name}' installé avec succès.",
|
||||
"plugins.uninstalled": "Plugin '{name}' désinstallé.",
|
||||
"plugins.confirm_uninstall": "Désinstaller le plugin '{name}' ? Cette action est irréversible.",
|
||||
"help.plugins_title": "🧩 Plugins",
|
||||
"help.plugins_intro": "ObsiGate supporte un système de plugins pour étendre ses fonctionnalités. Les plugins peuvent ajouter des renderers personnalisés, des filtres de recherche, des actions d'éditeur, et des éléments d'interface.",
|
||||
"help.plugins_install": "Installation",
|
||||
"help.plugins_manage": "Gestion",
|
||||
"help.plugins_develop": "Développement",
|
||||
"help.plugins_dev_intro": "Un plugin est un dossier ou ZIP contenant :",
|
||||
"help.plugins_hooks_desc": "Hooks disponibles : <code>onFileRender</code>, <code>onSearchFilter</code>, <code>onEditorAction</code>, <code>onSidebarItem</code>, <code>onFileCreate</code>, <code>onFileDelete</code>, <code>onVaultMount</code>.",
|
||||
"help.plugins_security": "<strong>Sécurité :</strong> chaque plugin s'exécute dans un Web Worker isolé (sandbox), sans accès au DOM, localStorage, ni réseau sauf permissions explicites.",
|
||||
"help.plugins_template": "Utilisez le bouton <strong>Template</strong> dans Paramètres > Plugins pour générer un plugin starter valide."
|
||||
}
|
||||
Reference in New Issue
Block a user