[{"data":1,"prerenderedAt":124},["ShallowReactive",2],{"docs-\u002Fdocs\u002Fmain\u002Fupgrades":3},{"id":4,"title":5,"body":6,"description":111,"extension":112,"group":113,"meta":114,"navigation":115,"order":116,"path":117,"section":118,"seo":119,"source":120,"stem":121,"version":122,"__hash__":123},"docs\u002Fdocs\u002Fmain\u002Fupgrades.md","Compatibility and upgrades",{"type":7,"value":8,"toc":101},"minimark",[9,14,18,22,47,51,64,68,79,83,90,94],[10,11,13],"h2",{"id":12},"module-version-policy","Module version policy",[15,16,17],"p",{},"goNex uses semantic module versions. Until v1, minor versions may change APIs and templates; patch versions should preserve behavior except documented bug\u002Fsecurity fixes. Review the changelog, pin the framework version and upgrade in a branch. No automatic migration of handwritten code is provided.",[10,19,21],{"id":20},"upgrade-checklist","Upgrade checklist",[23,24,25,34,41,44],"ol",{},[26,27,28,29,33],"li",{},"Update the framework requirement and run ",[30,31,32],"code",{},"go mod tidy"," independently in each service.",[26,35,36,37,40],{},"Review DTO validation, lifecycle behavior and generated registries before regenerating. ",[30,38,39],{},".gonex.json"," format 1 records hashes; generators refuse changed owned files and incompatible layouts. Resolve conflicts explicitly rather than deleting metadata.",[26,42,43],{},"Run tests, vet, build, migration checks and contract generation\u002Fchecks. Database migrations are ordered immutable files: append a migration instead of editing applied SQL. Take deployment-specific backups before applying schema changes.",[26,45,46],{},"Export every supported HTTP version and compare its release baseline. Deploy consumers\u002Fproviders in a compatible order before retiring old contracts.",[10,48,50],{"id":49},"http-compatibility","HTTP compatibility",[15,52,53,54,57,58,63],{},"HTTP compatibility includes methods\u002Fpaths, operation IDs, parameter locations\u002Ftypes\u002Frequiredness, body schemas, response status\u002Fschema and security requirements. ",[30,55,56],{},"gonex openapi validate --file current.json --against baseline.json"," performs a conservative comparison: additions are allowed but changes to existing contracts are rejected, including some harmless descriptive edits. Review such changes explicitly; do not silently replace the baseline. Keep separate baselines for each HTTP major. See ",[59,60,62],"a",{"href":61},"\u002Fdocs\u002Fmain\u002Fversioning\u002F","versioning",".",[10,65,67],{"id":66},"protobuf-compatibility","Protobuf compatibility",[15,69,70,71,74,75,78],{},"Protobuf packages encode the API major (",[30,72,73],{},"identity.v1","). Keep field numbers\u002Ftypes, service\u002Fmethod identities and request\u002Fresponse types compatible. Run both ",[30,76,77],{},"gonex grpc check"," and Buf breaking against the released descriptor baseline. Removing\u002Frepurposing fields or methods requires a new version and a consumer migration. The internal checker is deliberately conservative; Buf is an additional release gate.",[10,80,82],{"id":81},"strict-dto-changes","Strict DTO changes",[15,84,85,86,89],{},"This implementation tightens early-phase behavior: duplicate JSON keys and unsupported validation tags now fail; nested request objects require pointers; custom JSON encodings require explicit transport DTOs. A value body wrapper is already required and should not carry ",[30,87,88],{},"validate:\"required\"","; use a pointer if the body's explicit presence is validated. Deadline failures have a documented 504 response. These changes prevent runtime\u002Fschema disagreement; update DTOs rather than weakening exported contracts.",[10,91,93],{"id":92},"template-compatibility","Template compatibility",[15,95,96,97,100],{},"Templates do not infer business mappings. Older module layouts require the injectable service factory before automatic gRPC enable. Existing handwritten adapters are retained when versions are added; ",[30,98,99],{},"--policy replace"," is an explicit legacy-route registration change.",{"title":102,"searchDepth":103,"depth":103,"links":104},"",2,[105,106,107,108,109,110],{"id":12,"depth":103,"text":13},{"id":20,"depth":103,"text":21},{"id":49,"depth":103,"text":50},{"id":66,"depth":103,"text":67},{"id":81,"depth":103,"text":82},{"id":92,"depth":103,"text":93},"Pin Gonex versions and review HTTP, Protobuf and generated-code compatibility before upgrading.","md","REFERENCE",{},true,180,"\u002Fdocs\u002Fmain\u002Fupgrades","build",{"title":5,"description":111},"upgrade.md","docs\u002Fmain\u002Fupgrades","main","PhMFOYqOBOnRHuQ2VDQeFFPjgXG-mQGLENoItLRXV8o",1792521640675]