{"id":21828651,"url":"https://github.com/smartrecruiters/openapi-schemas-validator","last_synced_at":"2026-02-07T07:02:19.654Z","repository":{"id":48479253,"uuid":"124135624","full_name":"smartrecruiters/openapi-schemas-validator","owner":"smartrecruiters","description":"Schema validators for api documentation in OpenAPI Specification 3.x format.","archived":false,"fork":false,"pushed_at":"2026-01-30T10:08:00.000Z","size":27,"stargazers_count":1,"open_issues_count":1,"forks_count":1,"subscribers_count":31,"default_branch":"master","last_synced_at":"2026-01-31T02:24:00.079Z","etag":null,"topics":["oas3","openapi","openapi3","validator"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/smartrecruiters.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"docs/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"docs/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2018-03-06T20:39:42.000Z","updated_at":"2026-01-30T10:08:03.000Z","dependencies_parsed_at":"2024-10-24T10:52:15.038Z","dependency_job_id":"bf229857-945f-4d6d-b47f-23229f217ffa","html_url":"https://github.com/smartrecruiters/openapi-schemas-validator","commit_stats":{"total_commits":18,"total_committers":5,"mean_commits":3.6,"dds":0.5555555555555556,"last_synced_commit":"944c5c9881f4a7ec0986129a44dc68a82b8b09a0"},"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/smartrecruiters/openapi-schemas-validator","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smartrecruiters%2Fopenapi-schemas-validator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smartrecruiters%2Fopenapi-schemas-validator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smartrecruiters%2Fopenapi-schemas-validator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smartrecruiters%2Fopenapi-schemas-validator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/smartrecruiters","download_url":"https://codeload.github.com/smartrecruiters/openapi-schemas-validator/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smartrecruiters%2Fopenapi-schemas-validator/sbom","scorecard":{"id":832925,"data":{"date":"2025-08-11","repo":{"name":"github.com/smartrecruiters/openapi-schemas-validator","commit":"944c5c9881f4a7ec0986129a44dc68a82b8b09a0"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.2,"checks":[{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Code-Review","score":5,"reason":"Found 10/18 approved changesets -- score normalized to 5","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 10 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-23T18:12:32.850Z","repository_id":48479253,"created_at":"2025-08-23T18:12:32.850Z","updated_at":"2025-08-23T18:12:32.850Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29188307,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-07T05:07:31.176Z","status":"ssl_error","status_checked_at":"2026-02-07T05:06:15.227Z","response_time":63,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["oas3","openapi","openapi3","validator"],"created_at":"2024-11-27T18:17:06.308Z","updated_at":"2026-02-07T07:02:19.639Z","avatar_url":"https://github.com/smartrecruiters.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# @smartrecruiters/openapi-schemas-validator\n\n[![NPM Version][npm-image]][npm-url]\n[![NPM Downloads][downloads-image]][downloads-url]\n[![Node.js Version][node-version-image]][node-version-url]\n[![Licence][license-image]][license-url]\n[![Build][travis-image]][travis-url]\n\nCreate schema validators for api documentation in OpenAPI Specification 3.x format.\n\n## tv4\n\nThis module uses [tv4](https://www.npmjs.com/package/tv4) validator, additionally\nconfigured with [tv4-formats](https://www.npmjs.com/package/tv4-formats).\n\nThis module uses tv4 [`validateMultiple`](https://www.npmjs.com/package/tv4#usage-3-multiple-errors) function,\nwith [`checkRecursive`](https://github.com/geraintluff/tv4#cyclical-javascript-objects) param always passed as `true`.\n\nYou can configure tv4 validator with following options:\n * customFormats - will be passed to [`tv4.addFormat`](https://www.npmjs.com/package/tv4#addformatformat-validationfunction) function\n * banUnknownProperties - will be passed to validating function ([The banUnknownProperties flag](https://www.npmjs.com/package/tv4#the-banunknownproperties-flag))\n\nThere is exported an `ErrorCodes` object containing mappings between error code numbers and error names that are generated by [tv4](https://www.npmjs.com/package/tv4) validator.\n\n## OpenAPI Specification 3.0 specific features\n\nCurrently @smartrecruiters/openapi-schemas-validator supports `nullable` field.\n\nPlease refer to https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.1.md#fixed-fields-20.\n\n## License\n\n[MIT](LICENSE)\n\n[npm-image]: https://img.shields.io/npm/v/@smartrecruiters/openapi-schemas-validator.svg\n[npm-url]: https://www.npmjs.com/package/@smartrecruiters/openapi-schemas-validator\n[downloads-image]: https://img.shields.io/npm/dm/@smartrecruiters/openapi-schemas-validator.svg\n[downloads-url]: https://www.npmjs.com/package/@smartrecruiters/openapi-schemas-validator\n[node-version-image]: https://img.shields.io/node/v/@smartrecruiters/openapi-schemas-validator.svg\n[node-version-url]: https://nodejs.org/en/download/\n[license-url]: https://github.com/smartrecruiters/openapi-schemas-validator/blob/master/LICENSE\n[license-image]: https://img.shields.io/npm/l/@smartrecruiters/openapi-schemas-validator.svg\n[travis-url]: https://travis-ci.org/smartrecruiters/openapi-schemas-validator\n[travis-image]: https://api.travis-ci.org/smartrecruiters/openapi-schemas-validator.svg?branch=master\n## API\n\n\n### Modules\n\n\u003cdl\u003e\n\u003cdt\u003e\u003ca href=\"#module_@smartrecruiters/openapi-schemas-validator\"\u003e@smartrecruiters/openapi-schemas-validator\u003c/a\u003e\u003c/dt\u003e\n\u003cdd\u003e\u003c/dd\u003e\n\u003c/dl\u003e\n\n### Classes\n\n\u003cdl\u003e\n\u003cdt\u003e\u003ca href=\"#SchemaValidator\"\u003eSchemaValidator\u003c/a\u003e\u003c/dt\u003e\n\u003cdd\u003e\u003c/dd\u003e\n\u003c/dl\u003e\n\n\u003ca name=\"module_@smartrecruiters/openapi-schemas-validator\"\u003e\u003c/a\u003e\n\n### @smartrecruiters/openapi-schemas-validator\n\u003ca name=\"SchemaValidator\"\u003e\u003c/a\u003e\n\n### SchemaValidator\n**Kind**: global class  \n\n* [SchemaValidator](#SchemaValidator)\n    * [new SchemaValidator(spec, [options])](#new_SchemaValidator_new)\n    * [.validate(entity, schema)](#SchemaValidator+validate) ⇒ \u003ccode\u003eArray.\u0026lt;Object\u0026gt;\u003c/code\u003e\n\n\u003ca name=\"new_SchemaValidator_new\"\u003e\u003c/a\u003e\n\n#### new SchemaValidator(spec, [options])\nCreate schema validator for schemas defined in spec at `#/components/schemas`\n\n\n| Param | Type | Default | Description |\n| --- | --- | --- | --- |\n| spec | \u003ccode\u003eObject\u003c/code\u003e |  | API specification in OpenAPI Specification 3.0 format |\n| [options] | \u003ccode\u003eObject\u003c/code\u003e | \u003ccode\u003e{}\u003c/code\u003e | options |\n| [options.customFormats] | \u003ccode\u003eObject\u003c/code\u003e |  | custom format validators |\n| [options.banUnknownProperties] | \u003ccode\u003eboolean\u003c/code\u003e | \u003ccode\u003efalse\u003c/code\u003e | disallow extra properties in validated objects |\n\n\u003ca name=\"SchemaValidator+validate\"\u003e\u003c/a\u003e\n\n#### schemaValidator.validate(entity, schema) ⇒ \u003ccode\u003eArray.\u0026lt;Object\u0026gt;\u003c/code\u003e\nValidate object against schema. Schema can be passed explicitly or reference a schema from spec.\n\n**Kind**: instance method of [\u003ccode\u003eSchemaValidator\u003c/code\u003e](#SchemaValidator)  \n**Returns**: \u003ccode\u003eArray.\u0026lt;Object\u0026gt;\u003c/code\u003e - An array with errors when object is invalid, `undefined` otherwise  \n\n| Param | Type | Description |\n| --- | --- | --- |\n| entity | \u003ccode\u003eObject\u003c/code\u003e | object to validate |\n| schema | \u003ccode\u003eObject\u003c/code\u003e \\| \u003ccode\u003estring\u003c/code\u003e | object schema |\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsmartrecruiters%2Fopenapi-schemas-validator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsmartrecruiters%2Fopenapi-schemas-validator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsmartrecruiters%2Fopenapi-schemas-validator/lists"}