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)
}