meshery / meshery/meshkit

[registry] ModelDefinition.Registrant emits snake_case wire format — mismatches v1beta3 canonical contract

Open
#1,090 2 comments 0 reactions 0 assignees View on GitHub
area/models component/mesheryctl
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.