feat(api): .kc checkout packing + ETag caching (Phase 2) #142
Reference in New Issue
Block a user
Delete Branch "%!s()"
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?
Implement the checkout pipeline that packs server-side state into the silo/ directory before serving .kc files, as specified in KC_SERVER.md Section 5.
Depends on: #141 (Phase 1 -- commit extraction + metadata API)
Supports: SILO_VIEWPORT Phase 1-3
Checkout Pipeline (Section 5)
When a client downloads a .kc via
GET /api/items/{partNumber}/file:silo/directory entries in the ZIP:manifest.jsonfrom item_metadata + items tablemetadata.jsonfrom item_metadata.fields + tags + lifecyclehistory.jsonfrom revisions table (last 20 revisions)approvals.jsonfrom item_approvals + approval_signatures (if active ECO)dependencies.jsonfrom item_dependenciesmacros/*.pyfrom item_macrosjobs/*.yamlfrom job_definitions (filtered by item type)Caching (Section 5.3)
If-None-Match-> 304 Not Modified.Implementation scope
internal/kc/pack.go-- silo/ directory serializer, ZIP entry replacementAcceptance criteria