Unfortunately, it's not there. There was some controversy, but I am adding this now...
Jan Blaha
@admin
Posts made by admin
-
RE: reportTimeout Behavior in Async Requestsposted in general forum
-
RE: JSReport Puppeteer vulnerabilitiesposted in general forum
The dependencies will be updated with the next release as always.
https://github.com/jsreport/jsreport?tab=readme-ov-file#vulnerabilitiesThe release is scheduled for this week.
-
RE: Merge external PDF into recipeposted in general forum
Yes, you can use a custom jsreport script where you can code what you need
https://jsreport.net/learn/scripts
https://jsreport.net/learn/pdf-utils#usage-in-scriptconst jsreport = require('jsreport-proxy') async function afterRender (req, res) { res.content = await jsreport.pdfUtils.merge(res.content, Buffer.from(req.data.externalPdf, 'base64')) }Full demo here
https://playground.jsreport.net/w/anon/2lCyXIBl -
RE: numbers of columns in html-embedded-in-docxposted in general forum
It works the way jsreport takes your html as is and puts it into the docx file source.
When you open the Word app, it interprets the HTML.
jsreport does not influence how it is interpreted.Perhaps you can try the docx recipe and
docxHtmlhelper, if you need to display just a simple html.
This would let you modify the page size and orientation in the word template.
https://jsreport.net/learn/docx#docxhtml -
RE: Component Evaluation Hookposted in general forum
Maybe you can implement your own helper "dynamicComponent" that receives the component code and returns the evaluated result.
It would be up to you where you download the component implementation.https://playground.jsreport.net/w/anon/CQZ_3bC4
const jsreport = require('jsreport-proxy') async function dynamicComponent(content, helpers) { return await jsreport.templatingEngines.evaluate({ engine: 'handlebars', content: content, helpers: helpers, data: this }, { entity: jsreport.req.template, entitySet: 'templates' }) }{{{dynamicComponent "some dynamic content {{myData}}" "function aHelper() {}"}}} -
RE: Create users in k8s deploymentposted in general forum
The custom users need to be persisted.
However, you can create a startup script that will import or create them.
-
RE: Worker terminated due to reaching memory limit: JS heap out of memoryposted in general forum
See this config
https://jsreport.net/learn/configuration#workers
https://nodejs.org/api/worker_threads.html#worker_threads_worker_resourcelimitsCould you please let us know the default heap size?
These are the runtime/nodejs settings.
Each thread gets the same default limit as the main thread
~1.5 GB on 64-bit systemsHow many percentage of RAM should be allocated to heap?
There is no rule of thumb, try what works best for you.
The main thread can remain in default, and the rest can be divided among workers.If we have set only one worker then why are we getting heap size limit issue?
Because every worker has the nodejs default limit.
Do references held by previous renders get freed up after report rendering finishes?
nodejs is the garbage-collected runtime. So it gets cleaned from memory when the GC gets triggered by the runtime.
-
RE: Import ESM module to sandboxposted in general forum
Hi, it is likely that in June 2026, the node VM module will enable us to sandbox ESM modules.
However, note that in the newer node, you will still be able to use CommonJS modules as of now.
In other words, that date, June 2026, shouldn't be significant for you. -
RE: Prevent non-admin users from creating new assets in the root folderposted in general forum
This hasn’t been implemented yet, unfortunately — there were other priorities.
-
RE: jsreport.templatingEngines.createStream does not work for xlsxposted in general forum
The xlsx recipe, when you use
xlsxAdd, already use batching and streaming internally.
Do you hit an OOM error when having many rows?