{"id":23421233,"url":"https://github.com/nhsdigital/proxygen-api-specification","last_synced_at":"2026-02-05T19:00:59.752Z","repository":{"id":176686956,"uuid":"658677616","full_name":"NHSDigital/proxygen-api-specification","owner":"NHSDigital","description":"API Specification for the Proxygen Service","archived":false,"fork":false,"pushed_at":"2025-10-03T08:32:35.000Z","size":226,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":18,"default_branch":"main","last_synced_at":"2025-10-03T10:27:55.610Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/NHSDigital.png","metadata":{"files":{"readme":".github/README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","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":"2023-06-26T09:18:37.000Z","updated_at":"2025-10-03T08:32:13.000Z","dependencies_parsed_at":null,"dependency_job_id":"afd7c7a8-1109-4299-aedf-edacd2beb6c9","html_url":"https://github.com/NHSDigital/proxygen-api-specification","commit_stats":null,"previous_names":["nhsdigital/proxygen-api-specification"],"tags_count":26,"template":false,"template_full_name":null,"purl":"pkg:github/NHSDigital/proxygen-api-specification","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NHSDigital%2Fproxygen-api-specification","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NHSDigital%2Fproxygen-api-specification/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NHSDigital%2Fproxygen-api-specification/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NHSDigital%2Fproxygen-api-specification/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NHSDigital","download_url":"https://codeload.github.com/NHSDigital/proxygen-api-specification/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NHSDigital%2Fproxygen-api-specification/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29130089,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-05T18:55:47.139Z","status":"ssl_error","status_checked_at":"2026-02-05T18:55:04.010Z","response_time":65,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5: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":[],"created_at":"2024-12-23T02:14:30.974Z","updated_at":"2026-02-05T19:00:59.735Z","avatar_url":"https://github.com/NHSDigital.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Proxygen API Specification\n\n[![Create Release and Publish to Live API Catalogue](https://github.com/NHSDigital/proxygen-api-specification/actions/workflows/release.yml/badge.svg)](https://github.com/NHSDigital/proxygen-api-specification/actions/workflows/release.yml)\n\n\nThis is a RESTful API Specification for the Proxygen service in [OAS v3.0](https://swagger.io/specification/v3/) format. It is published on the [API Catalogue](https://digital.nhs.uk/developer/api-catalogue).\n\nProxygen is an internal-use NHS England service for API Producer teams building and running services on the API Management platform.\n\nThe Proxygen implementation is found in the [api-management-infrastructure](https://github.com/NHSDigital/api-management-infrastructure) repo.\n\n- `specification/` This [Open API Specification](https://swagger.io/docs/specification/about/) describes the endpoints, methods and messages exchanged by the API. Use it to generate interactive documentation; the contract between the API and its consumers.\n- `scripts/` Utilities helpful to developers of this specification.\n- `.github/` GitHub Actions workflows automating the Software Development Lifecycle of this repository.\n\n## Contributing\n\nContributions to this project are welcome from anyone, providing that they conform to the [guidelines for contribution](https://github.com/NHSDigital/proxygen-api-specification/blob/main/CONTRIBUTING.md) and the [community code of conduct](https://github.com/NHSDigital/proxygen-api-specification/blob/main/CODE_OF_CONDUCT.md).\n\n## Licensing\n\nThis code is dual licensed under the MIT license and the OGL (Open Government License). Any new work added to this repository must conform to the conditions of these licenses. In particular this means that this project may not depend on GPL-licensed or AGPL-licensed libraries, as these would violate the terms of those libraries' licenses.\n\nThe contents of this repository are protected by Crown Copyright (C).\n\n## Software Development Lifecycle: Editing, Previewing and Publishing\n\n### Automation\n\nThe SDLC is driven by a number of GitHub Actions workflows defined in `.github/workflows/`:\n\n- `pr-lint.yml` [PR Quality Check](https://github.com/NHSDigital/proxygen-api-specification/actions/workflows/release.yml)\n**When a PR is opened:** branch name is checked for conformity to agreed format; helpful information is added to the PR; OAS spec is linted.\n- `publish-to-uat.yml` [Publish Spec to Bloomreach UAT Portal](https://github.com/NHSDigital/proxygen-api-specification/actions/workflows/publish-uat.yml)\n**Run manually** to publish a specification from any branch to the UAT Portal for previewing.\n- `release.yml` [Create Release and Publish to Live API Catalogue](https://github.com/NHSDigital/proxygen-api-specification/actions/workflows/release.yml)\n**On merging to `main`** a new release is created and the specification is updated on the API Catalogue.\n\n### Workflow\n\n1. Create a branch. The name must include a JIRA ticket reference.\n2. Make changes to the specification (see [OAS Authoring](#oas-authoring), below)\n3. Open a Pull Request for a colleague to review.\n4. On successful review, and successful completion of the [PR Quality Check](https://github.com/NHSDigital/proxygen-api-specification/actions/workflows/release.yml) pipeline, merge to `main`\n5. Specification is published to the API Catalogue\n\n### Previewing on the UAT Environment\n\nManually run the [Publish Spec to Bloomreach UAT Portal](https://github.com/NHSDigital/proxygen-api-specification/actions/workflows/publish-uat.yml) against any branch to publish a preview to the UAT Portal. Only one preview can be published at a time.\n\n## OAS Authoring\n\nThe specification is a collection of YAML files and can be modified with any text editor. However a number of tools are available to make the process easier.\n\nThe [openapi.tools](http://openapi.tools) website lists a number of [GUI Editors](https://openapi.tools/#gui-editors). Or you can find a plugin for your favourite text editor. Some suggestions below.\n\n### VS Code Plugins\n\n- [openapi-lint](https://marketplace.visualstudio.com/items?itemName=mermade.openapi-lint)\n- [OpenAPI (Swagger) Editor](https://marketplace.visualstudio.com/items?itemName=42Crunch.vscode-openapi)\n- [ReDocly OpenAPI](https://marketplace.visualstudio.com/items?itemName=Redocly.openapi-vs-code)\n\n### Emacs Plugins\n\n- [openapi-yaml-mode](https://github.com/esc-emacs/openapi-yaml-mode) provides syntax highlighting, completion, and path help\n\n## OAS File Versioning\n\nOAS Specifications have a mandatory `info.version` property indicating the version of the specification. In the repository it is set to `__VERSION__` and is populated during deployment.\n\nOn merge to `main` a release is created and the version is calculated from commits using the `scripts/calculate_version.py` script.\n\nWhen publishing a preview using the [Publish Spec to Bloomreach UAT Portal](https://github.com/NHSDigital/proxygen-api-specification/actions/workflows/publish-uat.yml) Workflow the `info.version` is set to `\u003cbranch_name\u003e-\u003ccommit_SHA\u003e`\n\n## Key Dependencies\n\nThis repo is for an OAS specification file. As such there are no dependencies ******per se****** however the following utilities are used by the GitHub actions workflows:\n\n- [vacuum](https://quobix.com/vacuum/)\nAn OpenAPI linter\n- [proxygen-cli](https://github.com/NHSDigital/proxygen-cli)\nDeploys the specification\n\n### Secrets Required by Github Worflows\nThe Github workflows use the Proxygen CLI to perform automated deployment and therefore require some secrets to be defined. The current values for these are always stored in the APIM Prod AWS Secrets Manager.\n\n| Workflow Variable | AWS SM Path |\n| ----------- | ----------- |\n| PROXYGEN_CLIENT_ID | prod/proxygen-api-specification/client_id |\n| PROXYGEN_KID | prod/proxygen-api-specification/key_id |\n| ENCODED_PROXYGEN_PRIVATE_KEY | prod/proxygen-api-specification/keycloak_client_private_key |","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnhsdigital%2Fproxygen-api-specification","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnhsdigital%2Fproxygen-api-specification","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnhsdigital%2Fproxygen-api-specification/lists"}