Using data.query: and file.read: you can read and extract specific files from a ZIP attachment.

Read a ZIP archive manifest

  • 
    start:
      data.query/zip:
        inputs:
          query@text:
            type:attachment.manifest
            id:1234
            filter:*.txt
            format:dictionaries
        output: results
    
    

    The optional filter: key matches a filename pattern with * as wildcards.

  • 
    commands:
      data.query:
        deny/type@bool: {{query.type != 'attachment.manifest'}}
        allow@bool: yes
    
    

Extract a specific file path from a ZIP archive

  • 
    start:
      file.read:
        output: file_contents
        inputs:
          uri: cerb:attachment:1234
          extract: README.txt
          filters:
            gzip.decompress:
    
    
  • 
    commands:
      file.read:
        allow@bool: yes