Skip to content

Add File Metadata and Versioning System #2

Description

@AnshSinghSonkhia

Priority: High
Category: Storage & Metadata
Estimated Effort: Large

Description

Enhance the file system with metadata tracking and versioning capabilities:

  • Original filename preservation
  • File timestamps and size tracking
  • Version history with content evolution
  • File tags and descriptions

Implementation Plan

  1. Metadata Structure (metadata.go)

    type FileMetadata struct {
        Hash         string    `json:"hash"`
        OriginalName string    `json:"original_name"`
        Size         int64     `json:"size"`
        CreatedAt    time.Time `json:"created_at"`
        ModifiedAt   time.Time `json:"modified_at"`
        Tags         []string  `json:"tags"`
        Description  string    `json:"description"`
        Versions     []string  `json:"versions"`
    }
  2. Metadata Storage

    • SQLite database for local metadata
    • JSON files for simple deployments
    • Metadata replication across peers
  3. Versioning Logic

    • Track file evolution by linking hashes
    • Implement copy-on-write semantics
    • Garbage collection for old versions
  4. API Integration

    • Extend file operations to include metadata
    • Search files by name, tags, date ranges
    • Version management endpoints

Files to Create/Modify:

  • metadata.go - Metadata structures and operations
  • database.go - SQLite integration
  • store.go - Add metadata hooks to file operations
  • server.go - Metadata-aware file operations

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions