Release history
===============

0.9.0 (2025-03-28)
------------------

- dependencies: bump go-crypto to 0.35.0

- apitester: remove context in NewAPITester

- go 1.24.1

- template-varlist: fix error handling

- engines: implement a Closer interface

- rendering engines now receive a context
  containing the username

- mjml-migrate: add option to control mjml
  auto-migration

- auth: token secret can be set as an environnment
  variable

- template preview can be html

- upgrade golangCI to 1.64.6

- generate config command: defaults to stdout

- mail sender: fix delays and logs

- rednerd global options: --dsn is mandatory

- mail sender: bail out if the context is done

- rednerd serve command: add --disable-mail-sender
  to disable the mail sender routine

- metadata.Remove is now case insensitive

- email_queue: add messageID and header handling

- api configurator: enable renderer configurator

- models.Document: implement jsonb sql storage

- renderer: add 'OnDocRender' hooks

- preview: fix metadata not being passed to rendering engine

- render: return detailed errors

0.8.0 (2024-12-09)
==================

- go 1.23.4

- go-duktape: remove warnings
  (using fork github.com/nayarsystems/go-duktape)

- template preview

- golangCI: enable linters (errnamen, inamedparam, wsl)

- pypdf breaking change in weasyprint: force lower version.
  see https://github.com/Kozea/WeasyPrint/issues/2200

0.7.0 (2023-07-12)
==================

- Makefile : add help on the "generate" make commands

- api: add activity/renderstats object to user information.

- Fix render logs writing (was completely disabled)

- api: return a proper error when template does not exist, and internal server
  errors on rendering errors that are not due to invalid inputs.

- Drop the 'lo' engine

- Engine wpd: update weasyprint to v59.0

- Fixes, code cleaning


0.6.1 (2023-03-27)
==================

- db: add a 'created_at' column to the 'users' table.

0.6.0 (2023-03-14)
==================

- api:

    - template-add/template-update: body/body-format errors now return 400 errors
      and not 500.

    - template-add/template-update: duplicate template name now return a 400
      status.

    - template-list does not return template bodies anymore, for big speed-up.

- Renderings are now logged in the 'render_logs' table (and to prometheus
  summaries), and can be retrived with /v1/renderlogs/{period}

0.5.0 (2022-11-15)
==================

- api:

    - add 'register', 'forgot-password' and 'forgot-password'

    - add 'firstname', 'lastname' and 'email' to 'userinfo'

0.4.1 (2022-02-15)
==================

- pooled engine: log the number of workers
- od-templating: add support for headers and footers rendering
- code cleaning: enable more code linters and comply to them

0.4.0 (2022-01-25)
==================

- wpd engine: almost complete rewrite of the engine. Should be more stable and
  handler big loads properly.
- pooled engine: add an engine wrapper that runs multiple worker. It allow a
  mono-task engine to handle concurrent tasks.

0.3.5 (2021-12-16)
==================

- fix metric names: rename ``alpe_api_*`` to ``rednerd_api_*``

- wpd engine: adjust log level of the wpd engine: changed the "will render" message from
  'info' to 'trace')

- wpd engine: fix a deadlock when jobs are queued faster than results

0.3.4 (2021-10-19)
------------------

- Update MJML to v4.10.3

- Fix a libreoffice renderer bug where spaces were inserted in some place

- loffice: Fix handling of nested standalone tag.

  Example: '<p><span>{{section}}</span></p>' is now replaced with '{{section}}'
  and not '<p>{{section}}</p>'

0.3.3 (2021-06-14)
------------------

- fix engines priorities so that html->pdf is done by wpd by default (ie, always)

0.3.2 (2021-04-22)
------------------

- od-templating: fix a crash when a xml element opens in a mustache tag and closes in
  another.

0.3.1 (2021-03-10)
------------------

- mjml: Fix a process crash when the mjml source is not a valid mjml document.

0.3.0 (2021-03-09)
------------------

- use the 'database' package provided by go-orusapi
- 'admin-password' command now accepts the password as an argument.
- provide a 'rednerd-standalone' image
- flag '--token-secret' is not required anymore
- add a "varlist" feature. It lists all the variables found in a template
- documentation
- use 'go-orusapi/database' to replace the internal database package.
- Implement streamed documents and parallel rendering the pipeline steps.

- new engines:

  - od-templating - uses https://orus.io/orus-io/od-templating to render
    mustache templates inside OpenDocument files.

  - libreoffice - uses https://github.com/dveselov/go-libreofficekit to convert
    documents with libreoffice.

0.2.0 (2020-09-17)
------------------

- Non-blocking rendering errors are now returned in the field 'render-errors' of
  the document. This allow the client to see MJML validation errors.
- MJML: the validation level can be changed with the 'mjml-validation-level'
  metadata.

0.1.1 (2020-08-11)
------------------

- Fix prometheus: when enabled, all the handlers were 'unimplemented'
- Add options for tokens and cookies

0.1 (2020-08-11)
----------------

Initial Release