# This is the Pony Mail (Foal) field mapping data for setting up new indices.
# It is used solely by setup.py during the setup process, and should not be
# edited prior to installation.
account:
  dynamic: strict
  dynamic_templates: # for internal.oauth_data
    - strings_as_keyword:
        match_mapping_type: 
          string
        mapping:
          type: keyword
  properties:
    cid:
      type: keyword
    credentials:
      properties:
        email:
          type: keyword
        name:
          type: keyword
        uid:
          type: keyword
    internal:
      properties:
        admin:
          type: boolean
        oauth_data:
          dynamic: true  # internal oauth_data depends on provider
          type: object
        oauth_provider:
          type: keyword
    request_id:
      type: keyword
attachment:
  dynamic: strict
  properties:
    source:
      type: binary
mbox:
  dynamic: strict
  properties:
    attachments: # array, empty if no attachments found
      properties:
        content_type:
          type: keyword
        filename:
          type: keyword
        hash: # this is the _id for the item in the attachments
          type: keyword
        size:
          type: long
    body:
      type: text
    body_short: # first N (default 200) chars of the body
      type: text
    cc:
      type: text
    date: # epoch expressed in UTC (historically this may have been generated using local time)
      format: yyyy/MM/dd HH:mm:ss
      store: true
      type: date
    dbid: # This is the _id used for the source index
      type: keyword
    deleted:
      type: boolean
    epoch: # parsed from Date: header: default if missing: Unix epoch
      type: long
    forum: # list@domain
      type: keyword
    from:
      type: text
    from_raw:
      type: keyword
    gravatar:
      type: text
    html_source_only: # body is stored as HTML (html2text was not available)
      type: boolean
    in-reply-to:
      type: keyword
    list: # <list.domain>
      type: text
    list_raw: # <list.domain>
      type: keyword
    message-id:
      type: keyword
    mid: # same as the _id of this entry
      type: keyword
    permalinks:
      type: keyword
    previous: # (only present if threadinfo selected)
      type: keyword
    private:
      type: boolean
    references:
      type: text
    size: # size of the raw source
      type: long
    subject:
      fielddata: true
      type: text
    thread:  # (only present if threadinfo selected)
      type: keyword
    to:
      type: text
    top:  # (only present if threadinfo selected)
      type: boolean
    _notes:
      type: text
    _archived_at:
      type: long
notification:
  dynamic: true # explicit default
  properties:
    date:
      format: yyyy/MM/dd HH:mm:ss
      store: true
      type: date
    epoch:
      type: long
    from:
      type: text
    in-reply-to:
      type: keyword
    list:
      type: text
    message-id:
      type: keyword
    mid:
      type: text
    private:
      type: boolean
    recipient:
      type: keyword
    seen:
      type: long
    subject:
      type: keyword
    to:
      type: text
    type:
      type: keyword
session:
  dynamic: strict
  properties:
    cookie:
      type: keyword
    updated:
      type: long
    cid:
      type: keyword
source:
  dynamic: strict
  properties:
    deleted:
      type: boolean
    message-id:
      type: keyword
    source:
      type: binary
auditlog:
  dynamic: true # explicit default
  properties:
    date:
      format: yyyy/MM/dd HH:mm:ss
      store: true
      type: date
    author:
      type: keyword
    remote:
      type: keyword
    action:
      type: keyword
    target:
      type: keyword
    lid:
      type: keyword
    log:
      type: text
