Plugin Hledger: renderizza registri contabili in testo semplice nei topic

:information_source: Riepilogo Renderizza i journal hledger come una 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 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 dei saldi completo, con tutti i conti genitore espansi.

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

  • :chart_increasing: Conto economico — ricavi e spese.

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

  • :receipt: Journal — un registro delle transazioni con ogni addebito e accredito.

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

  • 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 ogni 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 versioni successive.

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

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

Configurazione

  1. Abilita il plugin in Amministrazione > Impostazioni > Plugin (hledger enabled).
  2. Aggiungi un journal 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 invocazione di hledger (predefinito 10).
hledger max output bytes Limite per l’output di hledger catturato (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 di report per tutti gli utenti; 0 lo disabilita (predefinito 120).

Sicurezza

I journal sono un input non fidato. Il plugin esegue hledger come un sottoprocesso non privilegiato con un ambiente pulito, 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 gli 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/Nostr), o chat (XMPP) a raucao@kosmos.org
7 Mi Piace