**ACLs (Access Control Lists):** - Ajout du type AclConfig dans sources/event.v (allowed_ips CIDR + allowed_tokens) - Chaque source webhook (Gitea, Uptime Kuma, Cron, Generic) supporte les ACLs - Validation IP via X-Forwarded-For / X-Real-IP avant HMAC - Validation Bearer token via Authorization header - Tests: 7 tests ACL (IP exact, CIDR, parse IPv4, ACL vide, IP+token combiné) **Plugin system:** - sources/plugin.v: runner exécutable externe, stdout JSON → Event - Exit 0 = publish, exit ≠ 0 = skip. Timeout configurable - Plugin loop dans server.v (goroutine, toutes les 60s) - Example: scripts/example-plugin-disk.sh (vérifie espace disque) **Docs:** - README.md: ajout source Plugin + section Features complète - ARCHITECTURE.md: flux Plugin, flux ACL, endpoints /metrics /api/silence - ROADMAP.md: Phase 5 → 8/8 complet, ajout v0.6.0 - ntfy-bridge.example.yaml: sections ACLs et Plugins commentées - Version bump: 0.5.0 → 0.6.0
This commit is contained in:
@@ -3,7 +3,7 @@ module main
|
||||
import os
|
||||
import flag
|
||||
|
||||
const version = '0.5.0'
|
||||
const version = '0.6.0'
|
||||
const author = 'Bruno Charest'
|
||||
|
||||
fn main() {
|
||||
@@ -220,6 +220,10 @@ fn print_startup_info(cfg Config) {
|
||||
if generic_count > 0 {
|
||||
println(' Generic: ${generic_count} webhook${if generic_count > 1 { 's' } else { '' }}')
|
||||
}
|
||||
plugin_count := cfg.sources.plugin.len
|
||||
if plugin_count > 0 {
|
||||
println(' Plugin: ${plugin_count} script${if plugin_count > 1 { 's' } else { '' }}')
|
||||
}
|
||||
|
||||
println('')
|
||||
println(' Webhook URLs:')
|
||||
|
||||
Reference in New Issue
Block a user