feat(kc): commit extraction pipeline + metadata API (Phase 1) #149
Reference in New Issue
Block a user
Delete Branch "feat/kc-extraction-pipeline"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Implements issue #141 — .kc server-side metadata integration Phase 1.
When a .kc file is uploaded, the server extracts
silo/manifest.jsonandsilo/metadata.jsonfrom the ZIP archive and indexes them into theitem_metadatatable (created in migration 018, PR #148). Plain.fcstdfiles continue to work unchanged. Extraction is best-effort: failures are logged but do not block the upload.New packages
internal/kc: ZIP extraction library (Extract,Manifest,Metadatatypes) with 6 unit testsinternal/db/item_metadata.go:ItemMetadataRepository(Get, Upsert, UpdateFields, UpdateLifecycle, SetTags)New API endpoints
Under
/api/items/{partNumber}:/metadata/metadata/metadata/lifecycle/metadata/tagsExtraction pipeline
Hooked into
HandleUploadFile— after file storage + revision creation:silo/directorysilo/manifest.json+silo/metadata.jsonitem_metadatarowmetadata.updatedeventSSE events
metadata.updated— on extraction and PUTmetadata.lifecycle— on lifecycle transitionmetadata.tags— on tag changesLifecycle transitions (Phase 1)
draft → review → released → obsolete, plusreview → draft(reject).Closes #141