aminghadersohi commented on issue #39827:
URL: https://github.com/apache/superset/issues/39827#issuecomment-4732487441

   1. The lazy-hydration model doesn't cover MCP's use case — the SIP should.
   MCP's build_query_context_from_form_data() generates a QueryContext 
​in-memory on the fly​ to run a live chart data query — it doesn't persist to 
DB. The SIP's hydration path is designed for the opposite: generate → persist → 
reuse. If the sidecar only returns a query_context to be stored, MCP still 
can't use it to replace its Python logic without an extra parse step. The SIP 
should explicitly support an ​ephemeral / direct response mode​ (i.e., return 
the raw query_context dict to the caller without requiring DB persistence), so 
code like MCP can call the sidecar inline and feed the result into 
QueryContextFactory. Otherwise MCP remains a maintained duplicate regardless of 
this SIP.
   
   2. Plugin-version coupling needs a versioning contract.
   The sidecar bundles frontend chart plugin JS. Plugin behavior evolves — new 
chart types, new form_data fields, changed metric/column resolution logic. If 
the sidecar version drifts from the Superset backend version, query_context can 
be silently wrong (wrong columns, missing filters, wrong metrics) without any 
error. This is especially risky for MCP where query accuracy is user-visible. 
The SIP should define a concrete versioning contract: which versions of 
@superset-ui/chart-controls and each viz plugin are pinned per Superset 
release, how mismatches are detected at startup, and whether the sidecar is 
distributed as a versioned artifact alongside each Superset release.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to