Migrate Kik parser to the LAVA pipeline (@artifact_processor)#287
Open
OneSixForensics wants to merge 1 commit into
Open
Migrate Kik parser to the LAVA pipeline (@artifact_processor)#287OneSixForensics wants to merge 1 commit into
OneSixForensics wants to merge 1 commit into
Conversation
kik.py previously hand-built ArtifactHtmlReport objects, so its artifacts
rendered in HTML but never populated the LAVA database. Rebuilt all functions
onto the modern @artifact_processor decorator: each returns
(data_headers, data_list, source_path) and the framework writes
HTML + TSV + timeline + LAVA.
Changes:
- Functions renamed to match their __artifacts_v2__ keys (the decorator and
plugin loader key off the function name).
- The subscriber PDF previously emitted three tables from one function
(Info, Profile Pics, Events); only the first was a declared artifact, so
Pics/Events would not appear in LAVA. Split into three declared artifacts
(kik_subscriber / kik_subscriber_pics / kik_subscriber_events) sharing a
cached PDF text extract. report_icons.py already had entries for all three.
- Chat media now uses a typed ('Media','media') column registered via the
framework check_in_media, rendering inline in HTML and LAVA; absent media
shows the filename with an empty media cell.
- Human-readable timestamp columns typed ('...','datetime') for LAVA timeline.
- Schema-fallback behaviour preserved.
Validated end-to-end on a synthetic Kik return (PDF + all CSVs + a media file):
all 15 artifacts register in LAVA with correct counts; media item/reference
created. Real-return QA recommended before merge.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BdD6DdQA21KqDRSUjQHaTK
6bf8e6b to
4aa6eec
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Migrate the Kik parser to the LAVA pipeline
kik.py(merged earlier) hand-buildsArtifactHtmlReportobjects, so its artifacts render in HTML but never populate the LAVA database — they don't appear in the LAVA viewer. This rebuilds the module onto the modern@artifact_processordecorator so all artifacts emit HTML + TSV + timeline + LAVA from a single(data_headers, data_list, source_path)return. No parsing logic changed.Changes
__artifacts_v2__keys (the decorator and plugin loader key off the function name).kik_subscriberwas a declared artifact, so Profile Pics and Events would never reach LAVA. Split into three declared artifacts (kik_subscriber/kik_subscriber_pics/kik_subscriber_events) sharing a cached PDF text extract.report_icons.pyalready contained icon entries for all three.('Media','media')column registered via an exactseeker.file_infoslookup (handles the Base64-encodedmedias/filenames), rendering inline in both HTML and LAVA. Referenced-but-absent media shows the filename with an empty media cell.('…','datetime')for the LAVA timeline.Artifact count goes 13 → 15 (the two new subscriber sub-artifacts).
Validation
End-to-end on a synthetic Kik return (a generated subscriber PDF + every CSV + a real media file): all 15 artifacts register in LAVA with correct row counts, and the media item/reference is created (real file linked, absent file shown by name).
Companion to the Synchronoss parser PR (same LAVA-migration recipe).