Files

1.9 KiB

Templates User Guide

Open Templates to create or select a reusable definition.

  1. Choose the template type and the contexts in which it may be used, such as campaign.postal.
  2. Declare every required input path and its type. Use the same paths as tokens in the body, for example {{name}} or {{postal.address}}.
  3. Configure page size and, for label sheets, rows, columns, and spacing.
  4. Save to create a new immutable revision. Publish the revision before using it for final output.
  5. In Preview, supply a representative JSON item. Compatibility validation explains missing fields, wrong types, unsupported usages, and output-format mismatches before output is produced.
  6. Preview a draft or render final output. Store it in Files when that module is available and you have upload permission; otherwise use the bounded download. Bounded output history is visible only to the actor who rendered it and to a Templates administrator. Calling modules expose their own governed download when additional collaborators need access.

Render evidence shows the exact revision and abbreviated template, input, and output hashes. A consumer such as Campaign can submit many frozen recipients; the UI sample intentionally validates one representative item.

Rendering is also limited to 15 seconds elapsed time, 10 CPU seconds, 512 MiB process memory, 32 MiB serialized input and 8 MiB serialized result transport; the final output remains limited to 5 MiB and 5,000 items. Deeply nested data or more than 1,000,000 transported value nodes is rejected. A limit error creates no partial output or render evidence: reduce the selected input or template complexity and retry. If processing capacity is busy, retry later. Unavailable worker controls or a worker failure require operator investigation. Existing successful output with the same idempotency key is reused without rendering again, provided its input and authorization still match.