feat(extensions): add local text-to-diagram rendering API - #5009
Draft
tang-vu wants to merge 1 commit into
Draft
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why this matters
Documents, scripts and local agents can render text diagrams without sending their source to a public rendering endpoint. Add an optional Kroki service through the existing catalog/install lifecycle, with concrete local API examples and an API-service dashboard label.
Contract
yuzutech/kroki:0.32.1@sha256:6980bfb218b48b74ea14b888d9c7e8c032d1cb6325f3292277abdf62483abd9d, inspecting the exact Java server, PlantUML implementation and Dockerfile. Run UID/GID 1001, read-only root, no host data mounts, temporary scratch, dropped capabilities and loopback 7829 -> 8000.KROKI_BODY_LIMIT, not the companion-only similarly named setting), five-second native-command and twenty-second Java-conversion limits, 2 CPU/1.5 GB memory. Preserve image logging options by setting the heap throughJAVA_TOOL_OPTIONS./healthand returns 404 to HEAD.pixel-inferencemetadata without activating it.Overlap check
Searched open/closed PRs for
Kroki, diagram rendering and the new production recipe paths; no Kroki PR exists. #4924 is an interactive draw.io editor, whereas this is a text-to-image API for automation. #1613 covers generic headless metadata; this recipe follows the current dashboard API-service mechanism. #5003 adds a different LanguageTool API ID to the same set, and combined integration must retain both. Shared catalog/README additions remain independently installable services.Validation
24-live-get-health, 217.01 seconds of pytest). Actual health/version, Graphviz SVG with Unicode, compressed-source GET, PNG signature/dimensions, PlantUML SVG, malformed input 400, oversized request 413, and repeated container recreation./healthreturning 404; corrected the recipe to GET before publication. No success is claimed for that failed run.git diff --checkpassed.make gatestill reproduces the root/WSL no-sudo Docker baseline failure, covered by existing fix(installer): honor unavailable sudo in Docker fallback #3158. Added path-filtered CI runs the real render test; no full local gate pass is claimed.Review and limits
Draft pending independent recipe review and CI. Image advertises amd64/arm64; live evidence covers only Linux amd64 under WSL. No native Windows/macOS/ARM, real editor integration, large/concurrent workload, optional companion or every bundled renderer was tested. These controls are not a general sandbox guarantee; upstream supplies no API authentication, so remote use needs an operator-managed protected path and trusted clients.