{%- macro render_annotation_fields(data, parent_key='') -%} {%- for key, value in data.items() -%} {%- set current_key = parent_key ~ key if parent_key else key -%} {%- if value is mapping -%}

{{ current_key }}

{{ render_annotation_fields(value, parent_key=current_key ~ ' -> ') }}
{%- elif value is iterable and value is not string -%}

{{ current_key }}

{%- for item in value -%} {# Fix: Check if item is mapping before recursing #} {%- if item is mapping -%} {{ render_annotation_fields(item, parent_key=current_key ~ ' (' ~ loop.index ~ ') -> ') }} {%- else -%}
{{ item }}
{%- endif -%} {% if not loop.last %}
{% endif %} {%- endfor -%}
{%- else -%}
{{ current_key }} {{ value }}
{%- endif -%} {%- endfor -%} {%- endmacro -%}
File Information Raw JSON
Name
{{ file['annotations']['file/base']['record']['name'] }}
Extension
{{ file['annotations']['file/base']['record']['extension'] or 'None' }}
Size
{{ file_size['human'] }}
Media Type
{{ file['annotations']['file/base']['record']['media_type'] }}
Date Modified (Local)
{{ local_filesystem_info['date_modified']['human'] }}
Date Created (Local)
{{ local_filesystem_info['date_created']['human'] }}

Content Hashes

SHA-256
{{ file['hash'] }}
BLAKE3
{{ file['validation_hash'] }}
{% if file['similarity_hash'] %}
TLSH
{{ file['similarity_hash'] }}
{% endif %} {% if file.get('quick_hash') %}
Quick Hash
{{ file['quick_hash'] }}
{% endif %}
{% if file['annotations'] and file['annotations']|length > 1 %}

Annotations

{% for key, annotation in file['annotations'].items() %} {% if annotation and key != 'file/base' %}
{{ key }}
{{ render_annotation_fields(annotation['record']) }}
{% endif %} {% endfor %}
{% endif %} {% if file['tags'] %}

Tags

{% for tag in file['tags'] %} {{ tag['name'] }}: {{ tag['value'] }} {% endfor %}
{% endif %}
{{ raw_data_json }}