Skip to content

feat: Add Admin UI for Product Catalog Provider Configuration #888

@bokelley

Description

@bokelley

Summary

Product catalog providers are currently only configurable via direct database updates. Add Admin UI support for configuring these providers per-tenant.

Background

The sales agent supports 5 product catalog provider types:

  • database (default) - reads products from PostgreSQL
  • mcp - calls an upstream MCP server for products (federation)
  • ai - uses AI/RAG to match products based on brief
  • signals - discovery via Signals protocol
  • hybrid - combines multiple sources with configurable ranking

Currently configured via tenant config.product_catalog JSON field:

{
  "product_catalog": {
    "provider": "hybrid",
    "config": {
      "signals_discovery": {
        "enabled": true,
        "upstream_url": "http://signals-agent:8080/mcp/"
      },
      "ranking_strategy": "signals_first"
    }
  }
}

Requirements

  1. Add product catalog provider selection to tenant settings UI
  2. Show provider-specific configuration fields based on selection
  3. Validate configuration before saving
  4. Display current provider status/health

Provider-specific config fields

Provider Config Fields
database (none - uses local products table)
mcp upstream_url, tool_name, timeout, optional auth headers
ai AI model settings, embedding config
signals upstream_url, discovery options
hybrid sub-provider configs, ranking_strategy

Files

  • product_catalog_providers/ - provider implementations
  • product_catalog_providers/factory.py - provider registry
  • src/admin/ - Admin UI (needs new section)

Acceptance Criteria

  • Tenant admins can select product catalog provider from dropdown
  • Provider-specific config fields appear based on selection
  • Configuration is validated before save
  • Current provider health/status is visible
  • Changes take effect without server restart

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions