flussonic/openapi_handler
59.1
Adequate · 17 September 2026
1.8k
lines of production code
Erlang
primary language
1
measurement over time
What this system is
This system is an Erlang library that acts as an OpenAPI 3.1 handler, translating API requests into native function calls. It provides schema validation, type conversion, and robust JSON processing with support for various data handling options. The implementation includes comprehensive testing to ensure correct route generation and error propagation.
Features
Initial release of OpenAPI 3.1 Cowboy handler
Introduces the \openapi\_handler\ library, which translates OpenAPI 3.1 requests into native Erlang function calls. The package includes the core Erlang source, a Dockerfile for building the environment, a GitLab CI configuration for testing and dialyzer checks, and a Makefile for compilation and running tests. It supports schema validation, type conversion from OpenAPI definitions to Erlang types, and customizable schema processing options such as handling extra object keys and external format validators.
(repo-wide) · high confidence
Behavioural changes
OpenAPI library upgraded to version 22.11.0 with OTP 27+ JSON handling and enhanced validation
The OpenAPI handler library has been updated to version 22.11.0, introducing a new \openapi\_json\ module that uses the native \json\ library on OTP 27+ for decoding and encoding, while falling back to \jsx\ on older versions. This change improves JSON encoding robustness by handling invalid UTF-8 sequences and properly encoding \undefined\ values as \null\. The update also enhances schema validation with new options for \array\_convert\, \apply\_defaults\, \patch\ mode, and \extra\_obj\_key\ handling, while fixing query parameter parsing to correctly interpret \\_is\_not\ filters and ensuring implicit sorting is only applied when no other sort fields are present.
src · high confidence
Test coverage
Expanded test suite for OpenAPI schema validation and handler behavior
Added comprehensive test coverage for the OpenAPI schema processor and handler, including new test suites (\openapi\_schema\_SUITE\, \openapi\_handler\_SUITE\) and fixture files (e.g., \redocly-petstore.json\, \flussonic-230127.json\). The tests verify schema processing features such as discriminator resolution, default value application, extra key handling (error/drop/pass), null/undefined handling in non-nullable fields, and array validation. The handler tests cover route generation, request/response processing, file uploads, error propagation, and specific edge cases like broken JSON and invalid UTF-8 sequences.
test · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Baseline
- First survey — no prior run to compare against. CAI 59.
Lenses
- Code Health 81
- Architecture 100
- Maturity 42
- Readiness 59
- Security 97
Changes since last survey
- 173 commits — 144 feature/other, 29 fixes
By area
- (repo) — 65 commits
- src/openapi_schema.erl — 33 commits
- (root) — 21 commits
- src/openapi_handler.erl — 21 commits
- src/openapi_client.erl — 13 commits
- src/openapi_collection.erl — 11 commits
- src/openapi_json.erl — 3 commits
- test/openapi_schema_SUITE.erl — 3 commits
- src/openapi_handler.app.src — 1 commit
- test/done_req.json — 1 commit
- test/openapi_collection_SUITE.erl — 1 commit
Notable commits
- fix: Added support for maxItems and fixed object validation #39414
- fix: Fixed using of parsed response in openapi_client #27819
- fix: Fixed validation of non-object as object schema #29506
- fix: Fixes in minor tests failures #25598
- fix: Merge branch 'aa-24130-license4-fixes' into 'master'
- fix: Merge branch 'altrg-43998-missing-discriminator-fixes' into 'master'
- fix: Merge branch 'altrg-43998-missing-discriminator-fixes' into 'master'
- fix: Merge branch 'altrg-56729-fix-broken-unicode' into 'master'
- fix: Merge branch 'dz-21788-fixes' into 'master'
- fix: Merge branch 'dz-32071-fixes-for-cowboy2' into 'master'
- fix: Merge branch 'kai-39952-oneof-const-fix' into 'master'
- fix: Merge branch 'ml-29506-fix-validation-scalar-as-object' into 'master'
- fix: Merge branch 'revert-8a86dd3b' into 'master'
- fix: Merge branch 'revert-b10862ae' into 'master'
- fix: Merge pull request #5 from stolen/fix-null-type-name
- fix: Merge remote-tracking branch 'github/master' into altrg-43998-missing-discriminator-fixes
- fix: Revert "Merge branch 'kn-51937-extra-object-key-pass' into 'master'"
- fix: Revert "Merge branch 'os-28036-array-undefined' into 'master'"
- fix: fix const check if integer provided #39952
- fix: fix crash of merge_objects on non map object #32992
- …and 153 more
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
flussonic/openapi_handler was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 17 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit 8d2728b2eaca67fe5b0387a6892991a6770420ba — the exact code this score is about.
- Scored under rubric-2026.09.12 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-f94092f054c1.