Repository navigation
Conversation
Persist custom templates in Console, publish an internal static catalog, preserve existing catalog sources, and support legacy deployment APIs with explicit registration readiness. Fixes modelsphere#64 Refs modelsphere#84
Identify the Console-owned catalog by publication location, keep foreign same-name models visible, and follow the module import conventions. Refs modelsphere#64
Update only the existing publication URL, retain operator-selected defaults and YAML details, and separate safe wire reasons from contextual private causes. Refs modelsphere#64
|
already support writable catalog in #73 , what's the diff ? Another thing, model catalog schema V1 is deprecated, any now feature should working on schema V2 only |
|
Both fair. Taking them in order. What's the diff vs #73. #73 edits a catalog that is already writable: the profile entry has to be a catalog-server (schema v2, V1. Agreed, and it's worse than just legacy: a v1 catalog cannot be deployed through the LLMSvc backend (its plans must be schema v2), and the v1 legacy-response shims in #86 are the wrong thing to extend. If the Console-owned route stays, it has to publish The gap I missed. Console's chart still pins the swiss subchart at 0.6.3, which predates both #73's write API and So I'd close #86 and follow up with that much smaller chart change. Only if you want installs to get a catalog without running catalog-server would I rework #86 to v2-only. Which do you prefer? |
|
Closing in favour of the writable-catalog route rather than keeping this as a second publishing stack. swiss 0.7.0 vendors catalog-server in the swiss chart, so an installation whose own catalog is a static index can add a writable schema-v2 catalog and then use #73's New model in the Model Library. A Console-owned store publishing a v1 index duplicates that, and v1 is a dead end: deprecated, cannot be read by the swissd the chart should bundle, and cannot deploy through the LLMSvc backend. Follow-up: #90 — bump Console's swiss subchart from 0.6.3 to 0.7.0 (the bundled 0.6.3 has neither catalog v2 nor Thanks for the review — it saved a second catalog implementation. |
|
Follow-up implementation: #91 (swiss 0.7.0 subchart, catalog-server documented, writable-catalog setup). |
What type of PR is this?
What this PR does and why
Users of a static JSON model catalog cannot add their own deployable model templates from Model Library. #73 only provides writes to an initialized writable catalog-server; it does not cover the reported installation. This adds Console-owned template creation, persistence, publication and UI, preserving existing catalog models and requiring no changes to other projects.
console-localthrough the existing Swiss profile API, preserving original catalogs, operator-selected defaults, other YAML and comments. Saved-but-unconnected templates return 202, remain visible, cannot deploy, and have a connection retry action; ready creations return 201.Which issue(s) this PR fixes
Fixes #64
Refs #84 (API/storage/publication design)
The issue was reopened after correcting the earlier assumption that #73 covered static catalog installations. It remains open for review and acceptance.
How it was tested
go vet ./..., scoped storage/registration/permission tests, dedicated-publication/web-404 boundary tests, and Helm config/RBAC/ClusterIP-only rendering and strict lint.dfdc4beCLI read-only from an archive. It read the actual generated index/recipe over HTTP and composed aplan.swiss/v1plan, including a browser-generated template input. No install/apply ran.catalog=console-localand the new model identifier. No real catalog, site profile or workload was modified.Checks
go test ./...and Go formattingnpm run typecheck && npm test && npm run buildinweb/helm lint --strict helm/consoleNotes for reviewers
Review #84 and
docs/architecture/local-model-templates.mdfirst. Current scope is immutable new names/versions, v1 static publication and the existing Helm deployment path; it does not download weights, supply chart packages, overwrite original static catalogs, or add v2 LLMService publication. Runtime state is bounded to about 900 KiB; full storage and duplicate names fail explicitly.Swiss's existing profile API has no CAS. Registration preserves/rechecks current YAML and reconciles generations with bounded retries, but cannot promise a transaction against an external administrator editing that profile concurrently. Native persistence success is reported separately from connection readiness.
Release note