-- Migration 001: Create prompt artifacts table -- Implements FR-1: InformationSpace Addressability -- Date: 2026-02-08 -- Prompt artifacts table for content-based addressing CREATE TABLE IF NOT EXISTS prompt_artifacts ( id TEXT PRIMARY KEY, space_id TEXT NOT NULL, name TEXT NOT NULL, artifact_type TEXT NOT NULL, content_digest TEXT NOT NULL, content_size INTEGER DEFAULT 0, metadata JSON, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, UNIQUE(space_id, name) ); -- Indexes for performance CREATE INDEX IF NOT EXISTS idx_artifacts_space ON prompt_artifacts(space_id); CREATE INDEX IF NOT EXISTS idx_artifacts_digest ON prompt_artifacts(content_digest); CREATE INDEX IF NOT EXISTS idx_artifacts_type ON prompt_artifacts(artifact_type); CREATE INDEX IF NOT EXISTS idx_artifacts_name ON prompt_artifacts(space_id, name); -- Comments (for documentation) -- prompt_artifacts.id: Unique UUID identifier for the artifact -- prompt_artifacts.space_id: Reference to information space containing this artifact -- prompt_artifacts.name: Human-readable name, unique within space -- prompt_artifacts.artifact_type: Classification: content, template, generated, schema, config -- prompt_artifacts.content_digest: SHA-256 hash of content for change detection -- prompt_artifacts.content_size: Size of content in bytes -- prompt_artifacts.metadata: JSON extensible metadata (description, tags, author, version, custom) -- prompt_artifacts.created_at: Artifact creation timestamp -- prompt_artifacts.updated_at: Last modification timestamp