{"id":28092437,"url":"https://github.com/notaryio/notary","last_synced_at":"2025-10-13T17:08:24.024Z","repository":{"id":73075420,"uuid":"94712860","full_name":"notaryio/notary","owner":"notaryio","description":"A contracts broker that provides a declarative way of sharing, validating \u0026 discovering contracts between multiple projects.","archived":false,"fork":false,"pushed_at":"2018-01-03T07:09:13.000Z","size":1086,"stargazers_count":17,"open_issues_count":8,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-07-17T02:03:10.493Z","etag":null,"topics":["api","api-documentation","contract-management","contract-testing","contracts","contracts-broker","microservices","rest-api","swagger"],"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/notaryio.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-06-18T21:00:06.000Z","updated_at":"2023-07-07T08:59:23.000Z","dependencies_parsed_at":"2023-06-03T18:45:44.808Z","dependency_job_id":null,"html_url":"https://github.com/notaryio/notary","commit_stats":{"total_commits":47,"total_committers":4,"mean_commits":11.75,"dds":0.5106382978723405,"last_synced_commit":"5d1dbc65bbf3f1c9306ac4f624fe46e1420907d6"},"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/notaryio/notary","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/notaryio%2Fnotary","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/notaryio%2Fnotary/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/notaryio%2Fnotary/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/notaryio%2Fnotary/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/notaryio","download_url":"https://codeload.github.com/notaryio/notary/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/notaryio%2Fnotary/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265728966,"owners_count":23818733,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["api","api-documentation","contract-management","contract-testing","contracts","contracts-broker","microservices","rest-api","swagger"],"created_at":"2025-05-13T13:14:55.391Z","updated_at":"2025-10-13T17:08:18.993Z","avatar_url":"https://github.com/notaryio.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n\u003ch1 align=\"center\"\u003e\n  \u003cbr\u003e\n  \u003cimg src=\"https://cdn.rawgit.com/notaryio/notary/43655d8b/docs/visual-assets/logo.svg\" alt=\"notary\" width=\"200\"\u003e\n  \u003cbr\u003e\n\u003c/h1\u003e\n\n\u003ch4 align=\"center\"\u003eA contracts broker that provides a declarative way of sharing, validating \u0026 discovering contracts between multiple projects.\u003c/h4\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/notaryio/notary/releases/latest\"\u003e\u003cimg src=\"https://img.shields.io/github/release/notaryio/notary.svg?style=flat-square\" title=\"GitHub release\"/\u003e\u003c/a\u003e\n  \u003ca href=\"https://travis-ci.org/notaryio/notary\"\u003e\u003cimg src=\"https://img.shields.io/travis/notaryio/notary.svg?style=flat-square\" title=\"Travis\"/\u003e\u003c/a\u003e\n  \u003ca href=\"https://codecov.io/gh/notaryio/notary\"\u003e\u003cimg src=\"https://img.shields.io/codecov/c/github/notaryio/notary.svg?style=flat-square\" title=\"Codecov\"/\u003e\u003c/a\u003e\n  \u003ca href=\"https://gitter.im/notaryio/Lobby\"\u003e\u003cimg src=\"https://img.shields.io/gitter/room/nwjs/nw.js.svg?style=flat-square\" title=\"Gitter\"/\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/notaryio/notary/issues\"\u003e\u003cimg src=\"https://img.shields.io/github/issues/notaryio/notary.svg?style=flat-square\" title=\"GitHub issues\"/\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/notaryio/notary/blob/master/LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/github/license/notaryio/notary.svg?style=flat-square\" title=\"license\"/\u003e\u003c/a\u003e\n\u003c/p\u003e\n\u003cbr\u003e \n\nBeside contracts validation, sharing \u0026 discovery, notary also allows you to generate all sort of extra artifacts out of those contracts like Client libraries, Stubbed endpoints, Dependency Graphs \u0026 much more. \n\nSupport for multiple popular integration patterns like REST APIs will be shipped out of the box, plus the ability to easily extend the project with \"Integrations plugins\" to support even more patterns.\n\n## What is a *Contract*?\n\nA contract is either a **Producer Promise** or a **Consumer Expectation**. In notary, it's a meta-data describing how to use a specific shared integration point, e.g.: a Swagger file describing exposed REST API endpoint including API versioning, paths, supported methods, response entities, etc..\n\n## How does the provider/consumer validation work?\nTo validate your contracts you need to issue a request to the [validation endpoint]. Ideally, this will be done automatically in your CI pipeline.\n\nThe validation process includes:\n\n1. Syntactic validation\n1. Check if all of the project's promises satisfy its consumers\n1. Check if all of the project's expectations are honored by its upstream providers\n\n## What integration patterns does the project support so far?\n1. [REST APIs](src/contracts/integrations/rest/README.md): Define contracts for RESTful API endpoints using the [Swagger spec](http://swagger.io/specification/)\n1. [Frontend LocalStorage](src/contracts/integrations/localstorage/README.md): Define contracts for shared objects in the end-customer's browser LocalStorage using a specified [JSON schema](http://json-schema.org/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnotaryio%2Fnotary","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnotaryio%2Fnotary","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnotaryio%2Fnotary/lists"}