Plugin Hledger - Renderizar diários contábeis em texto simples nos tópicos

:information_source: Resumo Renderiza diários hledger como um painel ao vivo na primeira publicação de um tópico.
:hammer_and_wrench: Repositório gitea.kosmos.org/raucao/discourse-hledger
:open_book: Guia de Instalação README

Funcionalidades

Insira um diário hledger em um bloco de código cercado por hledger na primeira publicação de um tópico e ele será substituído por um painel com cinco relatórios, gerados sob demanda pelo executável hledger do servidor:

  • :clipboard: Contas — a árvore de saldos completa, com todas as contas pai expandidas.

  • :balance_scale: Balanço Patrimonial — ativos, passivos e patrimônio líquido, agrupados em seções.

  • :chart_increasing: DRE — receitas e despesas.

  • :busts_in_silhouette: Patrimônio Líquido — uma distribuição por moeda do capital contribuído.

  • :receipt: Diário — um log de transações com cada lançamento.

  • Os relatórios podem ser filtrados por um intervalo de datas De/Até; a data final é inclusiva.

  • Segmentos de conta escritos como @username (por exemplo equity:@alice) se tornam
    links de menção do Discourse com o cartão de perfil usual; apenas usuários existentes são
    vinculados.

  • Os relatórios são gerados sob demanda e em cache por revisão da publicação, portanto editar o
    diário os atualiza.

Bloco de exemplo

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

Capturas de tela

Requisitos

  • O executável hledger no servidor (testado com hledger 1.32.3).
  • Discourse 2.7.0 ou mais novo.

Com a instalação padrão via Docker, instale o plugin e o pacote hledger através do seu app.yml e reconstrua:

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

Configuração

  1. Habilite o plugin em Admin > Settings > Plugins (hledger enabled).
  2. Adicione um diário hledger à primeira publicação de um tópico.
  3. Opcionalmente, defina hledger path se o executável não estiver no PATH padrão.

Configurações

Nome Descrição
hledger enabled Habilita o plugin.
hledger path Caminho para o executável hledger (padrão hledger).
hledger max journal bytes Tamanho máximo de um diário aceito, em bytes (padrão 262144).
hledger max journal lines Número máximo de linhas em um diário (padrão 5000).
hledger timeout seconds Limite de tempo real para cada invocação do hledger (padrão 10).
hledger max output bytes Limite para a saída capturada do hledger (padrão 1048576).
hledger memory limit mb Limite de memória para o processo hledger; 0 desativa (padrão 256).
hledger global rate limit per minute Limite de geração de relatórios para todos os usuários; 0 desativa (padrão 120).

Segurança

Diários são entradas não confiáveis. O plugin executa o hledger como um subprocesso sem privilégios com um ambiente limpo, um diretório de trabalho privado, um tempo limite rígido, limites de CPU/tamanho de arquivo/memória e um limite de saída, e rejeita diretivas include. Os relatórios são retornados apenas para tópicos que o visualizador pode ver, e as solicitações têm limite de taxa por IP (30/min) e globalmente.

Compatibilidade e licença

  • Licença MIT
  • Feedback, relatórios de bugs e traduções são bem-vindos neste tópico ou por e-mail, redes sociais (ActivityPub) ou chat (XMPP) para raucao@kosmos.org
2 curtidas