Evidex API Reference

Main APIs and data contracts used by Evidex.

Module

github.com/ilexum-group/evidex

acquisition Package

NewAcquirer

func NewAcquirer(
    custodyChain *models.CustodyChainEntry,
  os osWrapper.OS,
    metadataMgr *metadata.MetadataManager,
) *Acquirer

AcquireFile

func (a *Acquirer) AcquireFile(filePath string) error

GetEvidencePackage

func (a *Acquirer) GetEvidencePackage() *models.EvidencePackage

Additional acquisition helpers

func (a *Acquirer) AcquireDirectory(dirPath string, recursive bool) error
func (a *Acquirer) AcquireMultiple(filePaths []string) error

metadata Package

NewMetadataManager

func NewMetadataManager(commandLogger CommandLogger) *MetadataManager

config Package

type Config struct {
  FilePaths []string
  Recursive bool
  CaseID    string
  ServerURL string
  AuthToken string
}

Usage Example

package main

import (
    "fmt"
    "github.com/ilexum-group/evidex/internal/acquisition"
    "github.com/ilexum-group/evidex/internal/config"
    "github.com/ilexum-group/evidex/internal/metadata"
  osWrapper "github.com/ilexum-group/evidex/internal/os"
    "github.com/ilexum-group/evidex/internal/sender"
    "github.com/ilexum-group/evidex/pkg/models"
)

func main() {
  cfg := config.ParseFlags()
  if err := config.ValidateConfig(cfg); err != nil {
    panic(err)
  }

  osImpl := osWrapper.New()
    custody := models.NewCustodyChainEntry("evidex", "1.0.4")

  metadataMgr := metadata.NewMetadataManager(custody.LogCommand)
    acquirer := acquisition.NewAcquirer(custody, osImpl, metadataMgr)

  if err := acquirer.AcquireMultiple(cfg.FilePaths); err != nil {
    panic(err)
  }
  fmt.Printf("Acquired files: %d\n", acquirer.GetFileCount())

    pkg := acquirer.GetEvidencePackage()
    s := sender.NewSender(cfg.ServerURL, cfg.AuthToken)
    s.SendEvidencePackage(pkg)
}