[registry] ModelDefinition.Registrant emits snake_case wire format — mismatches v1beta3 canonical contract
- Dominant language
- Go
- Stars
- 223
- Forks
- 225
- Avg merge
- 7d 1h
- Merged PRs (30d)
- 1
Description
## Summary
`meshkit`'s model registration pipeline emits `Registrant` fields with
snake_case JSON keys (`created_at`, `updated_at`, `user_id`), violating the
identifier-naming contract defined in `meshery/schemas/AGENTS.md`.
## Root Cause
`ModelDefinition.Registrant` is typed as `v1beta1/connection.Connection`,
whose JSON tags use the legacy snake_case format. The canonical wire format
requires `v1beta3/connection.Connection` (camelCase tags: `createdAt`,
`updatedAt`, `userId`).
## Impact
`mesheryctl model generate` produces model JSON with snake_case registrant
fields, while `mesheryctl model init` (which uses the `v1beta3` component
template) produces camelCase fields. The two commands are inconsistent.
## Expected
All model output from the `model generate` pipeline should use camelCase
wire format consistent with `v1beta3` schemas and the `model init` template.
Contributor guide
Research direction
Read meshery/schemas/AGENTS.md first, then trace ModelDefinition.Registrant through the model generate pipeline and compare its v1beta1/connection.Connection type with the v1beta3 component used by model init. Done means model generate emits camelCase createdAt, updatedAt, and userId fields consistently with the v1beta3 contract.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go
- Domain
- cli
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 68/100