Plugin Hledger: visualizza registri contabili in testo semplice nei topic

:information_source: Sintesi Renderizza i journal di hledger come dashboard live nel primo post di un argomento.
:hammer_and_wrench: Repository gitea.kosmos.org/raucao/discourse-hledger
:open_book: Guida all’installazione README

Funzionalità

Inserisci un journal di hledger in un blocco di codice delimitato da hledger nel primo post di un argomento e verrà sostituito da una dashboard con cinque report, generati su richiesta dall’eseguibile hledger del server:

  • :clipboard: Conti — l’albero completo dei saldi, con tutti i conti padre espansi.

  • :balance_scale: Stato patrimoniale — attività, passività e patrimonio netto, raggruppati in sezioni.

  • :chart_increasing: Conto economico — ricavi e spese.

  • :busts_in_silhouette: Patrimonio netto — una distribuzione per valuta del capitale versato.

  • :receipt: Journal — un registro delle transazioni con ogni movimento contabile.

  • I report possono essere filtrati per un intervallo di date Da/A; la data di fine è inclusa.

  • I segmenti di conto scritti come @username (ad esempio equity:@alice) diventano
    link di menzione di Discourse con la solita scheda profilo; solo gli utenti esistenti vengono
    linkati.

  • I report vengono generati su richiesta e memorizzati nella cache per revisione del post, quindi la modifica del
    journal li aggiorna.

Esempio di blocco

```hledger
2024-01-01 Saldi iniziali
    assets:bank:checking       1000.00 EUR
    equity:alice               -600.00 EUR
    equity:bob                 -400.00 EUR
```

Screenshot

Requisiti

  • L’eseguibile hledger sul server (testato con hledger 1.32.3).
  • Discourse 2.7.0 o superiore.

Con l’installazione Docker standard, installa il plugin e il pacchetto hledger tramite il tuo app.yml e ricostruisci:

hooks:
  after_code:
    - exec:
        cd: $home/plugins
        cmd:
          - git clone https://gitea.kosmos.org/raucao/discourse-hledger.git discourse-hledger
    - exec:
        cd: $home
        cmd:
          - apt-get update
          - DEBIAN_FRONTEND=noninteractive apt-get install -y hledger

Configurazione

  1. Abilita il plugin in Admin > Settings > Plugins (hledger enabled).
  2. Aggiungi un journal di hledger al primo post di un argomento.
  3. Facoltativamente, imposta hledger path se l’eseguibile non si trova nel PATH predefinito.

Impostazioni

Nome Descrizione
hledger enabled Abilita il plugin.
hledger path Percorso dell’eseguibile hledger (predefinito hledger).
hledger max journal bytes Dimensione massima di un journal accettato, in byte (predefinito 262144).
hledger max journal lines Numero massimo di righe in un journal (predefinito 5000).
hledger timeout seconds Limite di tempo reale per ogni chiamata a hledger (predefinito 10).
hledger max output bytes Limite per l’output catturato da hledger (predefinito 1048576).
hledger memory limit mb Limite di memoria per il processo hledger; 0 lo disabilita (predefinito 256).
hledger global rate limit per minute Limite per la generazione dei report per tutti gli utenti; 0 lo disabilita (predefinito 120).

Sicurezza

I journal sono un input non affidabile. Il plugin esegue hledger come sotto-processo non privilegiato con un ambiente sanificato, una directory di lavoro privata, un timeout rigido, limiti di CPU/dimensione file/memoria e un limite di output, e rifiuta le direttive include. I report vengono restituiti solo per argomenti visibili all’utente, e le richieste sono soggette a limitazione di frequenza per IP (30/min) e globalmente.

Compatibilità e licenza

  • Licenza MIT
  • Feedback, segnalazioni di bug e traduzioni sono benvenuti in questo argomento o via email, social media (ActivityPub), o chat (XMPP) a raucao@kosmos.org
2 Mi Piace