abrignoni / iLEAPP

iOS Logs, Events, And Plist Parser
MIT License
736 stars 154 forks source link

Discuss ADR: Media Manager Architecture #851

Open JamesHabben opened 3 weeks ago

JamesHabben commented 3 weeks ago

Media Manager Implementation Discussion

We're proposing a new Media Management System to centralize and streamline how we handle media files across different modules in our project. This issue is to discuss the proposed architecture and technical specifications.

Key Points:

  1. Centralized media check-in process
  2. Avoidance of duplicate media entries
  3. Automatic reference tracking
  4. Integration with existing parser systems

Proposed Changes:

  1. New check_in_media function that modules will use to register media files
  2. New database tables: media_items and media_references
  3. Modules will store MediaReference objects as cell values
  4. Updates to automatic parsers in ilapfuncs.py and lavafuncs.py to handle MediaReference objects

Documents for Review:

Questions for Discussion:

  1. Is the proposed check_in_media function signature sufficient? Should we add or remove any parameters?
  2. Are there any concerns about performance, especially for projects with a large number of media files?
  3. How should we handle cases where the same media file is referenced by multiple modules or artifacts?
  4. Are there any additional metadata fields we should consider extracting and storing?
  5. How should we approach implementing the automatic parser updates in ilapfuncs.py and lavafuncs.py?

Please review the linked documents and share your thoughts, concerns, or suggestions.

abrignoni commented 2 days ago

Per discussion on another platform:

abrignoni commented 2 days ago

Some of my thoughts on the questions:

  1. Any metadata we can pull from files we should. I agree on EXIF data as soon as feasible.
  2. As discussed previously the app loading items as they are being accessed is a key feature of this reporting system.
  3. The LAVA database will have the paths for each file it needs to show module table. As the user moves from module to module in LAVA the tool will just use the reference. The metadata will be on the media/file data structure.