Skip to content
CAI
Software that uses CAICheck a score

flussonic/openapi_handler

59.1

Adequate · 17 September 2026

1.8k

lines of production code

Erlang

primary language

1

measurement over time

CAI band scale
CAI lens gauges

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.