feat(api): item dependency extraction, indexing, and resolve endpoints #151
Reference in New Issue
Block a user
Delete Branch "feat/kc-dependencies"
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?
Summary
Extract
silo/dependencies.jsonfrom .kc files on commit and index into theitem_dependenciestable. Two new API endpoints let clients query raw dependencies and resolve UUIDs to part numbers + file availability.New files
internal/kc/kc.go—Dependencytype + extraction from ZIPinternal/db/item_dependencies.go— Repository withReplaceForRevision,ListByItem,Resolveinternal/api/dependency_handlers.go—HandleGetDependencies,HandleResolveDependenciesModified files
internal/api/handlers.go— Adddepsfield to Server structinternal/api/metadata_handlers.go— Index dependencies inextractKCMetadata+ SSE broadcastinternal/api/pack_handlers.go— Pack real dependency data on checkout + deref helpersinternal/api/routes.go— RegisterGET /dependenciesandGET /dependencies/resolveinternal/kc/pack_test.go— Update to use typed[]DependencyEndpoints
/api/items/{partNumber}/dependencies/api/items/{partNumber}/dependencies/resolveDesign decisions
storage.Exists()in the handlerCloses #143
Depends on: PR #149 (Phase 1), PR #150 (Phase 2)
- Add Dependency type to internal/kc and extract silo/dependencies.json from .kc files on commit - Create ItemDependencyRepository with ReplaceForRevision, ListByItem, and Resolve (LEFT JOIN against items table) - Add GET /{partNumber}/dependencies and GET /{partNumber}/dependencies/resolve endpoints - Index dependencies in extractKCMetadata with SSE broadcast - Pack real dependency data into .kc files on checkout - Update PackInput.Dependencies from []any to []Dependency Closes #143