All pages
Powered by GitBook
1 of 1

Loading...

Document Templating

Reference of the document templating mechanism in Ketryx

Ketryx can generate highly customizable documents based on user-managed templates in the form of Word or Excel files.

Getting started

To get started with custom templates in Ketryx:

  1. Navigate to a project's Documents page

  2. Create a folder called Templates

  3. Create a folder called Release inside the Templates folder

  4. Upload the sample file sample-template.docx into the Release folder

Create a few Requirement items and a new version, and navigate to the version's Documents page. The document sample-template.docx should show up as another release document that can be generated and approved.

For a demonstration of document templating, utilizing many of the concepts discussed on this page, see our and video guides.

Template locations

Templates are managed in dedicated folders in the Documents section:

  • Templates/System/[name].{docx,xlsx} with [name] being the name of a system document type, to override the built-in rendering of those documents

  • Templates/Release/[name].{docx,xlsx} to add a custom release document with an arbitrary name to each (unreleased) version

  • Templates/Milestones/[milestone]/[name].{docx,xlsx} to add a custom document with an arbitrary name to milestones that match the name [milestone]

The following system documents can be overwritten inside the Templates/System folder:

  • Authority Matrix

  • Change Management File

  • Change Request Verification Report

Template-based release documents are considered out of date when any active records in the relevant project and version change. This may result in documents being indicated as requiring an update, even if regenerating them does not ultimately result in different document content. If this enforcement is too strict, the release control Require up-to-date release documents in the project settings can be deactivated.

Standard example templates

The templates at the are designed to closely resemble the out of the box release documents. There are also templates that utilize the feature to draft natural language summaries within the framework of the out of the box release documents.

If you would like to make small changes to the standard documents or just need a place to start, you can place these files in your project as specified in .

Template tags

A template can be a Word or Excel file with any user-defined content. Certain tags delimited by {...} are recognized by the Ketryx document generator and can be used to insert dynamic data from a Ketryx project into the document. The template syntax is inspired by the template language.

Data

  • {name}: insert template variable name

  • {project.id}: insert the property id of an object project

Rich-text variables - usually suffixed by *Content - contain HTML content which can be rendered as a block using ~~ or as an inline element using ~. I.e., use HTML for a single word within a sentence, as opposed to the entire paragraph. As example, please refer to .

Conditions and loops

  • {#condition} … {/}: insert the block within if the given condition is true

  • {#items} … {/}: loop over a list of items, inserting the block within for each of them

Conditions and loops are expressed using the same template syntax. Whether data is looped over depends on whether it is a list.

In the block inside a loop, the properties of the item that is currently iterated over become available as template variables. Example (showing the id of each of the iterated items):

The item as a whole object is available using the special syntax . (a literal dot).

Loops can be used in tables (including Excel files) to create multiple rows, by putting the starting tag (e.g., {#items}) in the starting cell, and the ending tag {/} on another cell to right in the same row. Example:

The ending tag {/} is shorthand for repeating the full expression as in {#items} … {/items}.

If a variable is not set, a corresponding condition hides the contained block. This can be used to "comment out" a part of a document. Example (assuming there is no variable HIDDEN defined):

Variable assignments

  • {$SET var = value}: set the variable var to the given value

Querying items

  • {$KQL items = query}: resolve the query query and assign the resulting list of items to the template variable items

  • {$KQL @version:version items = query}: resolve the query query for the given version (specified by its Ketryx ID or by its full name)

Examples:

Each item in the resulting list has the data type .

$KQL expressions are only supported at the "top level" of the document structure, not inside other loops or conditions.

Traceability matrices

  • {$TRACE rtm}: stores data from the project's requirements traceability matrix in the template variable rtm

  • {$TRACE @version:version rtm}: compute traceability for the given version (specified by its Ketryx ID or by its full name)

  • {$TRACE rtm: extraConfigName}: uses the "extra" traceability configuration with the name extraConfigName

Example:

The resulting object has the type .

$TRACE expressions are only supported at the "top level" of the document structure, not inside other loops or conditions.

Expressions

Conditions (as in {#expr}) and some filters (such as where : expr) involve expressions. Expressions may involve constants (e.g., "John", 42) as well as access to template data and properties (e.g. project.id). They may contain the following operators:

  • ternaries: a ? b : c

  • equality/inequality: a == b, a != b

  • relational: a > b, a < b, a >= b

Parenthesis can be used for grouping, to enforce a particular operator precedence.

Filters

Filters can be used to transform data before it is displayed or used in a condition or loop.

Filters are applied to values using the | operator, potentially followed by one or more arguments separated by :.

The following filters are available:

datetime

  • value | datetime: renders the date/time value in the default format

  • value | datetime:"yyyy-MM-dd": uses the specified format, based on the given

  • value | datetime:"yyyy-MM-dd":"US/Eastern": uses the specified format and timezone, based on the given

where

  • items | where:'...': filter the given items based on the given filter ; the expression can refer to properties of each item

Example:

sort

  • items | sort:'...': sort the given items based on the key determined by the given

When using this to sort by a string, there is no numeric collation and file_100.docx would be sorted before file_11.docx. To sort using numeric collation use sortByNumericTextField.

Example (sorting items by their id):

sortByNumericTextField

  • items | sortByNumericTextField:'...': sort the given items based on the key determined by the given

When using this to sort by a string, numeric collation would sort file_11.docx before file_100.docx.

Example (sorting items by their id):

reverse

  • items | reverse: reverse the order of the given items

Example (sorting items by their id in reverse order):

group

  • items | group:'...': group the given items based on the key determined by the given ; the resulting list will contain entries with properties groupKey (the unique key of the group) and groupItems (list of items within that group)

Example (grouping items by their Requirement type and showing the item IDs in each group separately):

at

  • items | at:N: returns the item at index N in the given list of items; the index is 0-based, so 0 denotes the first item; negative indices count from the end, so -1 denotes the last item

  • object | at:"...": returns the value for the given key in an object such as an ItemRecord's fieldValue object; this could also be done using "dot" access (object.property

Example (accessing an object property for each vulnerability, equivalent to info.summary):

Example (accessing a traceability column with a key containing a - dash):

count

  • items | count: returns the number of items in a given list or properties in a given object

join

  • values | join: returns all the values in a list concatenated, using ", " as the separator between them

  • values | join:"...": uses the given separator string between values in the list

Example (rendering list of items using a custom separator):

inMilestone

  • item | inMilestone: determines whether an item is in the document's milestone

Example:

If the document is not generated for a particular milestone, inMilestone returns true.

inRegion

  • item | inRegion: determines whether an item is in the document's region

Example:

If the document is not generated for a particular region, inRegion returns true.

itemContent

  • {~~ item | itemContent}: display the given item using the standard Ketryx rendering

  • {~~ item | itemContent:"HEADINGS +2"}: shift the levels of headings in item content by 2 levels, to account for nested headings in the template itself while maintaining a sensible navigation hierarchy

  • {~~ item | itemContent:"OMIT Context,Requirement type"}: omit the fields Context

Example:

Note the use of . to refer to the currently iterated item, and the use of ~~ to render rich-text (HTML) content. If you omit the ~~ prefix, you might see raw HTML code in the generated file.

createMap and getFromMap

createMap creates a hash map and getFromMap allows getting items from that map.

createMap:<keyProperty>:<conflictResolutionMode> takes two parameters. The first parameter is a string that describes the property that will be used as the map key. The second property is either "first" or "last" and denotes whether the first or last item should be part of the map when duplicate keys are encountered.

getMap:<key> takes a single value as a parameter and returns the value associated with that key or null if there is no value associated with that key.

Example:

Inserting other documents

  • {:include $DOC path}: include the EDMS document with the given path

  • {:include $RELEASEDOC name}: include the release document with the given name

  • {:include $RELEASEDOC milestone / name}: include the milestone document with the given

Examples:

Template variables are also available in the specified path with a $ prefix. However, arbitrary expressions are not supported, to avoid ambiguity with regards to where the expression would end. This can be circumvented by assigning an expression to another variable using $SET and using that in the included document path.

Included documents inherit the styling of the containing template document, including any named . For instance, paragraphs using the Normal style in the included document will be formatted according to the definition of the Normal style in the template.

Summarizing items

This is an experimental Assistant feature based on an LLM and not validated. Use at your own risk. Always manually check if summaries are accurate.

The $SUMMARIZE command allows summarizing an array of objects of the type into a textual summary using an LLM. This command is only available for projects that have Enable AI setting turned on in advanced settings.

  • {$SUMMARIZE mySummary = itemRecords:myItems}: summarize the item records saved in the variable myItems and store the result in the variable mySummary

  • {$SUMMARIZE mySummary = itemRecords:myItems totalWordTarget:200}: summarize the item records saved in the variable myItems with a total target of 200 words

Example:

Adding an @ symbol before the $KQL and $SUMMARIZE commands will prevent them from leaving an empty line. Without using the @ symbol, we would have to write all three commands into a single line, which hurts readability.

Template data

Templates receive data based on the containing project, version, etc. See the section on below for more information about each type and its available fields.

Variable
Type
Description

In addition, templates may query for certain items in a project using the $KQL tag (as explained ).

async variables

All variables marked as async are asynchronously resolved. These variables cannot be used as sub-parts of other . They have to be output directly or assigned to a variable first using the .

Data types

Data in templates consists of objects (with certain properties), lists, strings, numbers, and dates. The following object types may appear.

Organization

Property
Type
Description

Project

Property
Type
Description

ProjectReference

Property
Type
Description

Version

Property
Type
Description

When accessing version information through vulnerability templates (via project.version), the scopeDescription field is not available. The version object in this context only contains id, name, and versionNumber.

Milestone

Property
Type
Description

MeetingNote

Property
Type
Description

Document

Property
Type
Description

Item

Property
Type
Description

ItemRecordCore

The core data for an item record contains the following properties:

Property
Type
Description

For controlled records, controlledRevision counts the number of controlled records so far (starting with 1 for the first controlled record), and uncontrolledRevision is 0. For uncontrolled records, controlledRevision is the controlled revision counter of the upcoming controlled revision (i.e., the controlled revision worked on towards), and uncontrolledRevision counts the number of revisions since the previous controlled revision. These counters can be used to establish a record numbering scheme such as 1-1 (first draft towards the first controlled record), 1-2, …, 1-0 (first controlled record), 2-1, etc.

Some other properties that are more expensive to compute are only exposed under , to improve performance and avoid a potential infinite recursion.

ItemRecordFull

A full item record contains all the properties from , plus the following:

Property
Type
Description

The keys in the objects fieldContent, fieldValue, fieldChanged, and fieldContentDiff are field names, where spaces are replaced by underscores (_), e.g., Rationale_for_deferring_resolution.

The values in fieldContent and fieldContentDiff are pieces of rich-text (HTML) content that need to be rendered with a ~~ prefix, similarly to the filter. Example:

The raw Xray data exposed in xrayData is not currently documented in detail, as it might change depending on their data structure.

Comment

Property
Type
Description

Attachment

Property
Type
Description

The value in renderedContent is a piece of rich-text HTML that can be rendered with a ~~ prefix, similarly to the filter. If isImage is true, then {~~renderedContent} will render an image; otherwise, it will render a link to the resource, using the filename as the displayed text.

TestRun

Property
Type
Description

TestStep

Property
Type
Description

Content fields such as actionContent, dataContent, resultContent, actualResultContent, commentContent are pieces of rich-text HTML that can be rendered with a ~~ prefix, similarly to the filter.

Actual results and evidence are only available for steps on a , but not on the of the underlying Test Case.

Iteration

Property
Type
Description

IterationParameter

Property
Type
Description

IterationStepResult

Property
Type
Description

IterationDefect

Property
Type
Description

Relation

Property
Type
Description

TraceabilityMatrix

Property
Type
Description

TraceabilityCheck

Property
Type
Description

TraceabilityRow

Property
Type
Description

To access the values of columns using dot property access (e.g., columns.useCase), make sure they don't contain special characters such as spaces or -. Otherwise, direct property access does not work, and the filter should be used instead.

When using groupedRows, this structures each column as an object. Because of this, each column must be looped over.

TraceabilityCell

Property
Type
Description

In a groupedRows loop, use itemRecords instead of itemRecord and testStatuses instead of testStatus. This syntax is to represent the array structure inside the specified trace column that is created when using groupedRows instead of rows.

TestStatus

Property
Type
Description

AutomatedTestExecution

Property
Type
Description

ApprovalData

Property
Type
Description

User

Property
Type
Description

TrainingStatus

Property
Type
Description

TrainingStatusDocument

Property
Type
Description

TrainingDocument

Property
Type
Description

Vulnerability

Property
Type
Description

The value of descriptionContent is a piece of rich-text (HTML) content that needs to be rendered with a ~~ prefix, similarly to the fieldContent field of and the filter. This is the HTML version of the raw value of info.description.

VulnerabilityInfo

Property
Type
Description

The originalSeverity is set when the severity of the vulnerability was overwritten by a . It is not available when accessed through .

VulnerabilitySeverity

Property
Type
Description

Dependency

Property
Type
Description

Library

Property
Type
Description

Standard templates

When using the standard templates below (unlike the out-of-the-box documents), you will need to manually update the table of contents after generating the document and re-uploading it. If this is cumbersome, it is possible to build the table of contents in a lower-level way. The "System Design Specification with Automatic ToC" document shows the implementation of this method. .

As an example, an automatic, lower-level implementation of the table of contents exists in the version below of the System Design Specification

AI Templates

Additional templates

Template Approval and Revision Control

The Require controlled templates setting ensures that only officially approved templates can be used for document creation. This setting is located in the Document Configuration section of your .

We recommend setting this to 'yes' once you are satisfied with the current version of your templates and wish to approve them and maintain that approved state.

Note on revisions: When this setting is active, uploading a revision of an already-approved template will not make it immediately available for creating new documents. The system ignores unapproved drafts, and the last controlled (approved) version remains in use. The new version must first complete the required approval workflow before it replaces the previous controlled version on the Release Documents screen.

Record Change and Deletion Approval

Items marked for deletion are not immediately removed from Ketryx. The deletion of a record is treated as a formal change to the record, and this change must be approved by authorized users before Ketryx can finalize the removal. This process is essential for ensuring that all record destruction is tracked in the audit trail for compliance purposes.

Code Review Report
  • Cyber Risk Management File

  • Problem Report

  • Release History

  • Release Notes

  • Risk Control Matrix

  • Risk Management File

  • Risk Matrix

  • System Architecture Chart

  • System Design Specification

  • System Design Structure Matrix

  • System Requirements Specification

  • SBoM SOUP Software Configuration Report

  • Test Plan

  • Testing Report

  • Traceability Matrix

  • Unresolved Anomalies

  • {$KQL @version:(version1,version2) items = query}: resolve the KQL query query for several versions (concatenating the list of all records)

  • {@$KQL items = query}: resolve the KQL query query without leaving an empty line

  • , as defined in the advanced project document setting
    Requirements Traceability Matrix
    (under
    extraConfigurations
    )
    ,
    a <= b
  • logical AND: a && b

  • logical OR: a || b

  • addition: a + b

  • subtraction: a - b

  • multiplication: a * b

  • division: a / b

  • ), but this
    at
    filter can be useful for computed property names or names that contain spaces or other special characters
    and
    Requirement type
    when rendering the item
    name
    from the given
    milestone
  • {:include $RELEASEDOC project -> name}: include a release document from a referenced project

  • {$SUMMARIZE mySummary = itemRecords:myItems wordTargetPerItem:20 instructions:"Some special instructions." systemPromptOverride:"Some special system prompt."}: summarize the item records saved in the variable myItems with a target of 20 words per item, special instructions, and a special system prompt

    versionScopeDescription

    string (async)

    Scope description of the version

    milestone

    Milestone the document is generated for

    milestones

    list of

    All milestones in the version

    document

    Information about the document

    dependencies

    list of

    Dependencies in the project

    vulnerabilities

    list of

    Vulnerabilities in the project

    trainingStatus

    list of

    Training status of users in the project

    trainingDocuments

    list of

    Training documents in the project

    approvals

    list of

    All approvals in the project

    projectReferences

    list of

    References to other projects in the project

    previousVersions

    list of

    All previous versions of the project

    allVersions

    list of

    All versions of the project

    completedAt

    date

    Completion date

    createdAt

    date

    Creation date

    testRailItemId

    string

    TestRail Test Case ID of the item

    testRailItemIdForExecution

    string

    TestRail Test Execution ID of the item

    polarionWorkItemId

    string

    Polarion work item ID

    jamaDocumentKey

    string

    Jama item ID

    typeShortName

    string

    Short name of item type

    revision

    number

    Record revision number

    controlledRevision

    number

    Controlled revision counter

    uncontrolledRevision

    number

    Uncontrolled revision counter

    status

    string

    Status name

    createdAt

    date

    Record creation date

    diff

    "NEW", "CHANGED", "REMOVED", "SAME"

    Diff of the item to the baseline version

    regions

    list of string

    Regions

    introducedInVersion

    string

    Version number introducing this item

    obsoleteInVersion

    string

    Version number obsoleting this item

    assignee

    The user who is assigned to this item (if available)

    isControlled

    boolean

    Whether this record is in a controlled state

    isRiskAcceptable

    boolean

    Whether this risk record has an acceptable risk

    url

    string

    URL of the record's item record detail page

    item

    Item

    comments

    list of (async)

    Comments on the item record

    fieldContent

    object

    Rendered content of each field

    fieldValue

    object

    Raw value of each field

    fieldChanged

    boolean

    Whether the value of each field changed compared to the baseline release

    fieldContentDiff

    object

    Rendered content of the difference ("diff" or "redline") of each field compared to the baseline release

    steps

    list of

    Information for each step on an (Xray) Test Case

    testEnvironments

    list of string

    Test environments associated with an (Xray) Test Case

    testRuns

    list of

    Information for each test run on an (Xray) Test Execution

    xrayData

    object

    Raw data from Xray

    recordRevision

    number

    Record revision the comment is written on

    contentSha256

    string

    Hash of the file contents (Base64-encoded SHA-256 value)

    createdAt

    date

    Timestamp of creation

    url

    date

    Timestamp of creation

    renderedContent

    date

    Timestamp of creation

    isImage

    boolean

    Whether the resource is an image

    test

    Test Case being executed

    testExecution

    Test Execution containing this test run

    comment

    string

    Raw value of the comment field

    commentContent

    object

    Formatted content for the comment field

    evidence

    list of

    Evidence attached to this test run

    iterations

    list of

    Results for parameterized Xray test runs

    xrayId

    string

    ID of the test run in Xray

    xrayData

    object

    Raw data from Xray

    dataContent

    object

    Formatted content for the data field

    result

    string

    Raw value of the result field

    resultContent

    object

    Formatted content for the result field

    actualResult

    string

    Raw value of the actual result field

    actualResultContent

    object

    Formatted content for the actual result field

    defects

    list of strings

    Xray IDs of defects found in this step

    comment

    string

    Raw value of the comment field

    commentContent

    object

    Formatted content for the comment field

    evidence

    list of

    Evidence attached to this step

    attachments

    list of

    Other attachments on this step

    xrayId

    string

    ID of the test step in Xray

    xrayData

    object

    Raw data from Xray

    xrayData

    object

    Raw data from Xray

    actualResultContent

    object

    Formatted content for the actual result field

    defects

    list of

    Defects found in this step

    evidence

    list of

    Evidence attached to this step

    xrayId

    string

    ID of the result in Xray

    xrayData

    object

    Raw data from Xray

    isComplete

    boolean

    Whether the check is complete

    result

    "FAIL", "FAIL_ACCEPTED", "PASS", "PASS_WITH_EXCEPTION"

    Effective test result (if any)

    manualExecutions

    list of

    Effective manual test executions

    automatedExecutions

    list of

    Effective automated test executions

    allManualExecutions

    list of

    All manual test executions, including not effective ones

    record

    date

    Approved item record, if the approval was for an item record

    version

    Approved version, if the approval was for a version

    dependency

    Dependency affected by the vulnerability

    relatedRisks

    list of

    Linked risks

    relatedMitigations

    list of

    Linked mitigations

    urls

    list of string

    Vulnerability URLs

    cveId

    string

    CVE ID of the vulnerability; filled for vulnerabilities coming from the National Vulnerability Database (NVD)

    externalId

    string

    External ID of the vulnerability; filled for vulnerabilities submitted via the Build API

    githubId

    string

    GHSA ID of the vulnerability; filled for vulnerabilities coming from the GitHub Security Advisory (GHSA)

    cweIds

    list of string

    CWE IDs of the vulnerability

    publishedDate

    date

    Date the vulnerability was published

    modifiedDate

    date

    Date the vulnerability was modified

    vulnerabilitySource

    string ("NVD", "GHSA", "Build", "Import", or "Unknown")

    The ingestion source of the vulnerability

    currentSeverity

    Severity information

    originalSeverity

    Original severity information

    cisaVulnerabilityName

    string

    The name of the vulnerability as listed in the CISA Known Exploited Vulnerabilities (KEV) catalog

    cisaExploitAdd

    Date

    The date the vulnerability was added to the CISA KEV catalog

    cisaActionDue

    Date

    The date the required action is due by CISA

    cisaRequiredAction

    string

    The required action to address the vulnerability by CISA

    declaredVersions

    string

    A ;-separated list of all declared versions of the dependency

    lockedVersions

    string

    A ;-separated list of all locked versions of the dependency

    earliestUsedVersion

    string

    Earliest used version of the dependency

    latestUsedVersion

    string

    Latest used version of the dependency

    latestAvailableVersion

    string

    Latest available version of the dependency

    acceptedVersions

    string

    Accepted versions of the dependency

    status

    string

    Review status of the dependency

    riskLevel

    string

    Level of risk of the dependency

    issuesUrl

    string

    Repository issues URL of the dependency

    manufacturer

    string

    Manufacturer of the dependency

    license

    string

    License of the dependency

    intendedUse

    string

    Intended use of the dependency

    securityImpact

    string

    Security impact of the dependency

    securityImpactJustification

    string

    Security impact justification of the dependency

    reliabilityImpact

    string

    Reliability impact of the dependency

    reliabilityImpactJustification

    string

    Reliability impact justification of the dependency

    additionalNotes

    string

    Additional notes of the dependency

    relatedRequirements

    Related requirements of the dependency

    relatedSoftwareItems

    Related software items of the dependency

    relatedRisks

    Related risks of the dependency

    relatedTests

    Related tests of the dependency

    library

    Associated library

    vulnerabilityInfos

    list of

    Information for vulnerabilities of the dependency

    manualVulnerabilities

    string

    Manual vulnerabilities of the dependency

    levelOfSupport

    string

    Level of support for the dependency (e.g., Maintained, Deprecated, Abandoned)

    levelOfSupportDescription

    string

    Description of the level of support for the dependency

    endOfLife

    date

    End of life date for the dependency

    endOfLifeDescription

    string

    Description of the end of life for the dependency

    ecosystem

    string

    Ecosystem name of the library

    ID

    Title

    Type

    {#items}{id}

    {title}

    {typeName}{/}

    Req ID

    Spec ID

    Test Title

    {#rtm.rows}{columns.req.itemRecord.docId}

    {columns.spec.itemRecord.docId}

    {columns.test.testStatus.title}{/}

    ketryxVersion

    string

    Version of Ketryx used to generate the document

    organization

    Organization

    Organization the document is generated in

    project

    Project

    Project the document is generated in

    version

    Version

    Version the document is generated for

    id

    string

    Ketryx ID of the organization

    name

    string

    Organization name

    id

    string

    Ketryx ID of the project

    name

    string

    Project name

    version

    Version

    Referenced version

    depth

    number

    Reference depth

    project

    Project

    Referenced project

    version

    Version

    Referenced version

    id

    string

    Ketryx ID of the version

    name

    string

    Version name

    versionNumber

    string

    Version number

    scopeDescription

    string (async)

    Scope description

    id

    string

    Ketryx ID of the milestone

    name

    string

    Milestone name

    meetingNotes

    list of MeetingNote

    Meeting notes for this milestone

    configurationItems

    list of ItemRecordCore

    Items associated with this milestone

    id

    string

    Ketryx ID of the meeting note

    content

    string

    Content rendered to HTML

    date

    date

    Date of the meeting

    participants

    string

    Plain text string containing meeting participants

    id

    string

    Ketryx ID of the document

    title

    string

    Document title

    date

    date

    Generation date

    id

    string

    Ketryx ID of the item

    jiraIssueKey

    string

    Jira work item key of the item

    repositoryItemId

    string

    User-defined item ID from the source code

    comments

    list of Comment (async)

    Comments on the item

    id

    string

    Ketryx ID of the record

    docId

    string

    Document ID of the record

    title

    string

    Title

    typeName

    string

    Name of item type

    contentSha256

    string

    Hash of the record contents (Base64-encoded SHA-256 value)

    relations

    list of Relation

    Relations from or to this record

    approvals

    list of ApprovalData

    Approvals of this record

    attachments

    list of Attachment

    Attachments to this record

    id

    string

    Ketryx ID of the comment

    author

    User

    Author of the comment

    content

    string

    Content of the comment

    createdAt

    date

    Creation date

    id

    string

    ID of the resource

    filename

    string

    File name associated with the resource

    sizeBytes

    number

    File size in bytes

    contentType

    string

    Content type (as a media type)

    statusName

    string

    Status name

    executedBy

    User

    User who executed this test run (if available)

    assignee

    User

    User who was assigned this test run (if available)

    steps

    list of TestStep

    Information for each step of the executed test

    statusName

    string

    Status name (from Xray)

    action

    string

    Raw value of the action field

    actionContent

    object

    Formatted content for the action field

    data

    string

    Raw value of the data field

    rank

    string

    Index of the step

    statusName

    string

    Execution status of the step in an iteration

    parameters

    list of IterationParameter

    Parameters for the step, specific to each iteration

    stepResults

    list of IterationStepResult

    Results for the step, specific to each iteration

    name

    string

    Unique key

    value

    string

    Value to specific to an iteration

    statusName

    string

    Status name (from Xray)

    comment

    string

    Raw value of the comment field

    commentContent

    object

    Formatted content for the comment field

    actualResult

    string

    Raw value of the actual result field

    id

    string

    Xray ID of the defect

    type

    string

    For system relations will be the built-in type, such as "HAS_PARENT". For custom relations will be the key of the configuration object in the "Custom relations" advanced setting

    name

    string

    Relation name

    other

    ItemRecordCore

    Respective record of the related item

    isReverse

    boolean

    Whether the relation is a reverse relation, i.e. the other item is the source item of the relation

    rows

    list of TraceabilityRow

    Rows in the traceability matrix

    groupedRows

    grouped list of TraceabilityRow

    Grouped rows in the traceability matrix

    checks

    list of TraceabilityCheck

    Results of checks performed in the traceability matrix

    isFulfilled

    boolean

    Whether all checks are fulfilled, i.e. the matrix is "green"

    title

    string

    Title of the check

    progress

    number

    Progress percentage (0 – 100)

    description

    string

    Description of the check

    isPositiveProgress

    boolean

    Whether the check is complete upon reaching 100%

    columns

    object containing TraceabilityCell

    Data for each cell in the row, using each column's ID as the key

    itemRecord

    ItemRecordFull

    Item associated with this cell

    testStatus

    TestStatus

    Test status associated with this cell

    title

    string

    Title of this test

    isInTestPlan

    boolean

    Whether this test is in the test plan

    testCase

    ItemRecordCore

    Test Case item associated with this test (if any)

    executedAt

    date

    Execution time stamp (if any)

    title

    string

    Title of this automated test

    createdAt

    date

    Timestamp

    result

    "FAIL", "FAIL_ACCEPTED", "PASS", "PASS_WITH_EXCEPTION"

    Test status result

    id

    string

    Ketryx ID of the approval

    createdAt

    date

    Timestamp

    revokedAt

    date

    Timestamp of the revocation, if the approval was revoked

    approver

    User

    Approving user

    id

    string

    Ketryx ID of the user

    name

    string

    Full name of the user

    email

    string

    Email of the user

    user

    User

    User the training status is for

    groupNames

    list of string

    Names of groups the user is a member of

    documents

    list of TrainingStatusDocument

    Training status for each relevant document

    document

    TrainingDocument

    Document being trained on

    latestAcknowledgement

    ApprovalData

    Latest acknowledgement of the document by the user

    record

    ItemRecordCore

    Relevant record of the training document

    approvals

    list of ApprovalData

    Approvals of the document

    info

    VulnerabilityInfo

    Vulnerability information

    project

    Project

    Project containing the vulnerability

    descriptionContent

    string

    Rendered content for the vulnerability description

    record

    ItemRecordFull

    Data associated with the vulnerability

    id

    string

    Ketryx ID of the vulnerability

    summary

    string

    Summary

    description

    string

    Description (raw value)

    version

    string

    Affected version(s)

    level

    string

    Qualitative severity ratings

    score

    number

    Numerical severity rating

    vector

    string

    CVSS vector

    name

    string

    Name of the dependency

    project

    Project

    Project containing the dependency

    type

    string

    Type of the dependency

    record

    ItemRecordFull

    Data associated with the dependency (only when dependencies as items is enabled)

    id

    string

    Ketryx ID of the library

    name

    string

    Name of the library

    registry

    string

    Unique identifier of the library's registry

    registryUrl

    string

    URL of the library's registry

    20KB
    sample-template.docx
    Open
    Document Templating Introduction
    Document Templating Deep Dive
    bottom of this page
    Assistant SUMMARIZE
    Template locations
    Mustache
    itemContent
    KQL
    KQL
    ItemRecordFull
    TraceabilityMatrix
    Unicode date format string
    tz timezone ID
    expression
    expression
    expression
    expression
    styles
    ItemRecordFull
    Data types
    here
    expressions
    $SET operation
    ItemRecordFull
    ItemRecordCore
    itemContent
    itemContent
    itemContent
    TestRun
    ItemRecordFull
    at
    ItemRecordFull
    itemContent
    vulnerability impact assessment
    Dependency
    See here for more details
    26KB
    System Requirements Specification.docx
    Open
    21KB
    System Design Specification.docx
    Open
    23KB
    System Design Specification with Automatic ToC.docx
    Open
    27KB
    Test Plan.docx
    Open
    21KB
    Testing Report.docx
    Open
    12KB
    SBoM SOUP Software Configuration Report.xlsx
    Open
    60KB
    Traceability Matrix.xlsx
    Open
    36KB
    Risk Management File (2).docx
    Open
    12KB
    Risk Control Matrix.xlsx
    Open
    13KB
    Risk Matrix.xlsx
    Open
    28KB
    System Requirements Specification with Summary .docx
    Open
    23KB
    System Design Specification with Summary.docx
    Open
    28KB
    Test Plan with Summary.docx
    Open
    23KB
    Testing Report with Summary.docx
    Open
    44KB
    Risk Management File with Summary.docx
    Open
    29KB
    Change Report.docx
    Open
    Advanced Settings
    {#items}
    {id}
    {/}
    {#HIDDEN}
    some text that will not be in the generated document
    {/HIDDEN}
    {$KQL reqs = type:Requirement}
    {#reqs}
    * {title}
    {/}
    {@$KQL items = (RQ and diff:new) CR}
    {#items}
    * {title}
    {/}
    {@$KQL @version:("Version 1.0","Version 2.0") items = RQ}
    {#items}
    * {title}
    {/}
    {$TRACE rtm}
    {#items | where:'typeName=="Requirement"'}
    {id}
    {/}
    {#items | sort:'id'}
    {id}
    {/}
    {#items | sortByNumericTextField:'id'}
    {id}
    {/}
    {#items | sort:'id' | reverse}
    {id}
    {/}
    {#items | group:"fieldValue.Requirement_type"}
    {groupKey}
    
    {#groupItems}
    {id}
    {/}
    
    {/}
    {#vulnerabilities}
    {info | at:"summary"}
    {/}
    {(columns | at:"system-requirements").itemRecord.docId}
    {#trainingStatus}
    {groupNames | join:" - "}
    {/}
    {#items | where:'. | inMilestone'}
    {id}
    {/}
    {#items | where:'. | inRegion'}
    {id}
    {/}
    {#items}
    {~~ . | itemContent}
    {/}
    {$KQL rqs = RQ}
    {$SET rqMap = rqs | createMap:”title”:”first”}
    
    {#rqs}
    {$SET rq1 = rqMap | getFromMap:title}
    {rq1.title} | {rq1.obsoleteInVersion}
    {/}
    {:include $DOC Some folder/Subfolder/Document A}
    
    {:include $RELEASEDOC Test Plan}
    
    {:include $RELEASEDOC First milestone / Test Plan}
    
    {:include $RELEASEDOC Other project -> Test Plan}
    {@$KQL items = (RQ and diff:new) CR}
    {@$SUMMARIZE summary = itemRecords:items totalWordTarget:500 instructions:"Summarize the given items into a release note summary. Do not use bullet points. Use paragraphs. End each paragraph with two newline characters. Add 2 lines between each paragraph."}
    {~~ summary}
    {~~ item.fieldContent.Rationale_for_deferring_resolution}
    Milestone
    Milestone
    Document
    Dependency
    Vulnerability
    TrainingStatus
    TrainingDocument
    ApprovalData
    ProjectReference
    Version
    Version
    User
    Item
    Comment
    TestStep
    TestRun
    ItemRecordCore
    ItemRecordCore
    Attachment
    Iteration
    Attachment
    Attachment
    IterationDefect
    Attachment
    ItemRecordCore
    AutomatedTestExecution
    ItemRecordCore
    Version
    Dependency
    ItemRecordFull
    ItemRecordFull
    VulnerabilitySeverity
    VulnerabilitySeverity
    ItemRecordCore
    ItemRecordCore
    ItemRecordCore
    ItemRecordCore
    Library
    VulnerabilityInfo