docs(openapi): pin Company schema field lengths to match the validators#272
Merged
Merged
Conversation
Mirror of the customer fix in #270. The OpenAPI Company component schema had compState with maxLength: 2 already, but the other fields were unbounded — even though company.schema.js validates them with concrete .min/.max constraints (and the DB columns underneath cap compPhone at varchar(32)). Aligned every string field with the runtime contract: - compName: minLength: 1, maxLength: 255 (per zod min(1).max(255)) - compAddress1/2 / compCity / compEmail: maxLength: 255 - compState: minLength: 2, maxLength: 2 - compZip / compPhone: maxLength: 32 SDK generators (openapi-typescript et al.) now carry the bounds into client types. No behavior change. 760 tests still pass. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
CryptoJones
added a commit
that referenced
this pull request
May 19, 2026
#276) Same pattern as the customer fix (#270) and company fix (#272). \`worker.schema.js\` validates workerFName / workerLName / workerTitle each as \`z.string().min(1).max(255)\`. The OpenAPI Worker component had them as bare \`type: 'string'\` with no bounds; SDK generators (openapi-typescript et al.) couldn't surface the constraint, so clients generated from the spec missed the minimum-1-char floor and the 255-char ceiling. Set \`minLength: 1, maxLength: 255\` on each name field. No behavior change. 760 tests still pass. Co-authored-by: Aaron K. Clark <akclark@thenetwerk.net> Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
CryptoJones
added a commit
that referenced
this pull request
May 19, 2026
…ts (#290) Extends the field-length / numeric-bound pinning sweep started in #270 (Customer), #272 (Company), and #276 (Worker) to the two remaining single-table entity components. BillingType: - btName: minLength: 1, maxLength: 255 (per zod min(1).max(255)) - btHourlyRate: minimum: 0 (per zod nonnegative()) InventoryItem: - invitDescription: minLength: 1, maxLength: 1000 (per zod min(1).max(1000)) \`finite\` is implicit in OpenAPI's number type per the spec (no NaN / Infinity in JSON), so no extra annotation is needed there. SDK generators now carry the bounds into client-side types for these two entities, matching the rest of the spec. No behavior change. 760 tests still pass. Co-authored-by: Aaron K. Clark <akclark@thenetwerk.net> Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This was referenced May 19, 2026
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.
Summary
Mirror of the customer fix in #270.
The OpenAPI
Companycomponent schema hadcompStatewithmaxLength: 2already, but the other fields were unbounded — even thoughcompany.schema.jsvalidates them with concrete.min/.maxconstraints (and the DB columns underneath capcompPhoneatvarchar(32)).What changed
Aligned every string field with the runtime contract:
compName:minLength: 1, maxLength: 255(per zodmin(1).max(255))compAddress1/2,compCity,compEmail:maxLength: 255compState:minLength: 2, maxLength: 2compZip,compPhone:maxLength: 32SDK generators (openapi-typescript et al.) now carry the bounds into client types.
Test plan
npm run lint && npm test— 760 passingProudly Made in Nebraska. Go Big Red! 🌽 https://xkcd.com/2347/