Repository navigation
feat: standard error envelope, OpenAPI generation, cursor pagination, and validation middleware - #1828
Merged
Smartdevs17 merged 1 commit intoOct 18, 2026
Conversation
… and validation middleware closes Smartdevs17#1785 closes Smartdevs17#1784 closes Smartdevs17#1787 closes Smartdevs17#1786
|
@Gbemi-programmer Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits. You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀 |
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.
Closes #1785
Closes #1784
Closes #1787
Closes #1786
Changes
#1785 Standard error envelope
DomainError(backend/services/shared/errors.ts) now builds one consistent shape (code,message,statusCode,details,requestId,userMessage,recovery). It still accepts the old calling styles, so existing callers keep working.ERROR_HTTP_STATUS_MAPinapiResponse.tswhen only an error code is given.docs/ERROR_HANDLING.md.#1784 OpenAPI generation
scripts/generate-openapi.tsbuildsspec/openapi.yaml,developer-portal/docs/openapi.jsonandsdks/generated/endpoints.jsonfrom the source schemas.openapi:generateandopenapi:check. CI runsopenapi:checkand fails on drift.GET /api/docs/openapi.json, with a Swagger UI atGET /api/docs.#1787 Cursor pagination
#1786 Request validation middleware
validationMiddleware.tschecks requests against a schema at the edge and rejects bad input with the standard error envelope (VALIDATION_ERRORplus details for each field).backend/shared/middlewareand wired intocreateApiServer. Documented indocs/VALIDATION.md.Tests
validationMiddleware.test.ts,generateOpenApi.test.ts.errors,apiResponseandpaginationsuites pass.pnpm run openapi:checkreports no drift.Notes
In
backend/services/shared, 20 suites (50 tests) already fail onmain. They fail exactly the same way on this branch, so this PR adds no new failures.