From daec06fec6893c29817a56460a37da408e2c1ad9 Mon Sep 17 00:00:00 2001 From: Lambodar Padhy Date: Mon, 29 Sep 2025 13:10:47 +0100 Subject: [PATCH 1/2] NHSO-61032: Dep documentaion and postman collection changes --- ...HS Login sandpit).postman_environment.json | 4 +- postman/NHS App.postman_collection.json | 123 ++++++++++++++++++ specification/nhs-app.yaml | 4 +- 3 files changed, 127 insertions(+), 4 deletions(-) diff --git a/postman/NHS App - dev (NHS Login sandpit).postman_environment.json b/postman/NHS App - dev (NHS Login sandpit).postman_environment.json index 47454ad..def529d 100644 --- a/postman/NHS App - dev (NHS Login sandpit).postman_environment.json +++ b/postman/NHS App - dev (NHS Login sandpit).postman_environment.json @@ -4,7 +4,7 @@ "values": [ { "key": "base_url", - "value": "https://dev.api.service.nhs.uk", + "value": "https://dep.api.service.nhs.uk", "enabled": true }, { @@ -41,4 +41,4 @@ "_postman_variable_scope": "environment", "_postman_exported_at": "2021-02-10T23:55:54.828Z", "_postman_exported_using": "Postman/7.36.3" -} \ No newline at end of file +} diff --git a/postman/NHS App.postman_collection.json b/postman/NHS App.postman_collection.json index 80d987b..bf27992 100644 --- a/postman/NHS App.postman_collection.json +++ b/postman/NHS App.postman_collection.json @@ -20,6 +20,19 @@ "type": "text/javascript", "packages": {} } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "var baseNhsAppApiUrl = pm.environment.get(\"base_url\").toString()", + "//replace base url for sandpit(dev) enviornment which uses dep api proxy(nhs-app-dep-dev)", + "if(baseNhsAppApiUrl.includes(\"dep.api\") && pm.request.url.toString().includes(\"nhs-app/\")){", + " pm.request.url = pm.request.url.toString().replace(\"nhs-app/\", \"nhs-app-dep/\").replace(\"{{base_url}}\", baseNhsAppApiUrl);", + "}" + ], + "type": "text/javascript" + } } ], "request": { @@ -57,6 +70,19 @@ ], "type": "text/javascript" } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "var baseNhsAppApiUrl = pm.environment.get(\"base_url\").toString()", + "//replace base url for sandpit(dev) enviornment which uses dep api proxy(nhs-app-dep-dev)", + "if(baseNhsAppApiUrl.includes(\"dep.api\") && pm.request.url.toString().includes(\"nhs-app/\")){", + " pm.request.url = pm.request.url.toString().replace(\"nhs-app/\", \"nhs-app-dep/\").replace(\"{{base_url}}\", baseNhsAppApiUrl);", + "}" + ], + "type": "text/javascript" + } } ], "request": { @@ -148,6 +174,12 @@ "var uniqueId = pm.variables.replaceIn('{{$guid}}');", "eval(pm.globals.get(\"jsrsasign-js\")); //import jsrsasign lib", "", + "var baseNhsAppApiUrl = pm.environment.get(\"base_url\").toString()", + "//replace base url for sandpit(dev) enviornment which uses dep api proxy(nhs-app-dep-dev)", + "if(baseNhsAppApiUrl.includes(\"dep.api\") && pm.request.url.toString().includes(\"oauth2/\")){", + " pm.request.url = pm.request.url.toString().replace(\"oauth2/\", \"oauth2-dep/\").replace(\"{{base_url}}\", baseNhsAppApiUrl);", + "}", + "", "var header = {", " \"typ\": \"JWT\",", " \"alg\": \"RS512\",", @@ -242,6 +274,19 @@ ], "type": "text/javascript" } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "var baseNhsAppApiUrl = pm.environment.get(\"base_url\").toString()", + "//replace base url for sandpit(dev) enviornment which uses dep api proxy(nhs-app-dep-dev)", + "if(baseNhsAppApiUrl.includes(\"dep.api\") && pm.request.url.toString().includes(\"nhs-app/\")){", + " pm.request.url = pm.request.url.toString().replace(\"nhs-app/\", \"nhs-app-dep/\").replace(\"{{base_url}}\", baseNhsAppApiUrl);", + "}" + ], + "type": "text/javascript" + } } ], "request": { @@ -302,6 +347,19 @@ ], "type": "text/javascript" } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "var baseNhsAppApiUrl = pm.environment.get(\"base_url\").toString()", + "//replace base url for sandpit(dev) enviornment which uses dep api proxy(nhs-app-dep-dev)", + "if(baseNhsAppApiUrl.includes(\"dep.api\") && pm.request.url.toString().includes(\"nhs-app/\")){", + " pm.request.url = pm.request.url.toString().replace(\"nhs-app/\", \"nhs-app-dep/\").replace(\"{{base_url}}\", baseNhsAppApiUrl);", + "}" + ], + "type": "text/javascript" + } } ], "request": { @@ -362,6 +420,19 @@ ], "type": "text/javascript" } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "var baseNhsAppApiUrl = pm.environment.get(\"base_url\").toString()", + "//replace base url for sandpit(dev) enviornment which uses dep api proxy(nhs-app-dep-dev)", + "if(baseNhsAppApiUrl.includes(\"dep.api\") && pm.request.url.toString().includes(\"nhs-app/\")){", + " pm.request.url = pm.request.url.toString().replace(\"nhs-app/\", \"nhs-app-dep/\").replace(\"{{base_url}}\", baseNhsAppApiUrl);", + "}" + ], + "type": "text/javascript" + } } ], "request": { @@ -422,6 +493,19 @@ ], "type": "text/javascript" } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "var baseNhsAppApiUrl = pm.environment.get(\"base_url\").toString()", + "//replace base url for sandpit(dev) enviornment which uses dep api proxy(nhs-app-dep-dev)", + "if(baseNhsAppApiUrl.includes(\"dep.api\") && pm.request.url.toString().includes(\"nhs-app/\")){", + " pm.request.url = pm.request.url.toString().replace(\"nhs-app/\", \"nhs-app-dep/\").replace(\"{{base_url}}\", baseNhsAppApiUrl);", + "}" + ], + "type": "text/javascript" + } } ], "request": { @@ -480,6 +564,19 @@ ], "type": "text/javascript" } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "var baseNhsAppApiUrl = pm.environment.get(\"base_url\").toString()", + "//replace base url for sandpit(dev) enviornment which uses dep api proxy(nhs-app-dep-dev)", + "if(baseNhsAppApiUrl.includes(\"dep.api\") && pm.request.url.toString().includes(\"nhs-app/\")){", + " pm.request.url = pm.request.url.toString().replace(\"nhs-app/\", \"nhs-app-dep/\").replace(\"{{base_url}}\", baseNhsAppApiUrl);", + "}" + ], + "type": "text/javascript" + } } ], "request": { @@ -543,6 +640,19 @@ ], "type": "text/javascript" } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "var baseNhsAppApiUrl = pm.environment.get(\"base_url\").toString()", + "//replace base url for sandpit(dev) enviornment which uses dep api proxy(nhs-app-dep-dev)", + "if(baseNhsAppApiUrl.includes(\"dep.api\") && pm.request.url.toString().includes(\"nhs-app/\")){", + " pm.request.url = pm.request.url.toString().replace(\"nhs-app/\", \"nhs-app-dep/\").replace(\"{{base_url}}\", baseNhsAppApiUrl);", + "}" + ], + "type": "text/javascript" + } } ], "request": { @@ -606,6 +716,19 @@ ], "type": "text/javascript" } + }, + { + "listen": "prerequest", + "script": { + "exec": [ + "var baseNhsAppApiUrl = pm.environment.get(\"base_url\").toString()", + "//replace base url for sandpit(dev) enviornment which uses dep api proxy(nhs-app-dep-dev)", + "if(baseNhsAppApiUrl.includes(\"dep.api\") && pm.request.url.toString().includes(\"nhs-app/\")){", + " pm.request.url = pm.request.url.toString().replace(\"nhs-app/\", \"nhs-app-dep/\").replace(\"{{base_url}}\", baseNhsAppApiUrl);", + "}" + ], + "type": "text/javascript" + } } ], "request": { diff --git a/specification/nhs-app.yaml b/specification/nhs-app.yaml index 1d312cd..b5ef760 100644 --- a/specification/nhs-app.yaml +++ b/specification/nhs-app.yaml @@ -64,7 +64,7 @@ info: ## Environments and testing | API Environment | NHS Login Environment | Base URL | | -------------------- | --------------------- | ------------------------------------------- | - | Development | Sandpit | `https://dev.api.service.nhs.uk/nhs-app/` | + | Development | Sandpit | `https://dep.api.service.nhs.uk/nhs-app-dep/` | | Integration Testing | Integration (AOS) | `https://int.api.service.nhs.uk/nhs-app/` | | Production | Production | `https://api.service.nhs.uk/nhs-app/` | @@ -146,7 +146,7 @@ x-spec-publication: try-this-api: disabled: true servers: - - url: "https://dev.api.service.nhs.uk/nhs-app" + - url: "https://dep.api.service.nhs.uk/nhs-app-dep" description: Development environment. - url: "https://int.api.service.nhs.uk/nhs-app" description: Integration test environment. From 311c7e3bf31fd38ae18463050f8cf03b80593275 Mon Sep 17 00:00:00 2001 From: Lambodar Padhy Date: Mon, 29 Sep 2025 14:41:33 +0100 Subject: [PATCH 2/2] NHSO-61032: Review comments --- postman/NHS App.postman_collection.json | 20 ++++++++++---------- specification/nhs-app.yaml | 8 ++++---- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/postman/NHS App.postman_collection.json b/postman/NHS App.postman_collection.json index bf27992..f872d8f 100644 --- a/postman/NHS App.postman_collection.json +++ b/postman/NHS App.postman_collection.json @@ -26,7 +26,7 @@ "script": { "exec": [ "var baseNhsAppApiUrl = pm.environment.get(\"base_url\").toString()", - "//replace base url for sandpit(dev) enviornment which uses dep api proxy(nhs-app-dep-dev)", + "//replace base url for sandpit(dev) environment which uses dep api proxy(nhs-app-dep-dev)", "if(baseNhsAppApiUrl.includes(\"dep.api\") && pm.request.url.toString().includes(\"nhs-app/\")){", " pm.request.url = pm.request.url.toString().replace(\"nhs-app/\", \"nhs-app-dep/\").replace(\"{{base_url}}\", baseNhsAppApiUrl);", "}" @@ -76,7 +76,7 @@ "script": { "exec": [ "var baseNhsAppApiUrl = pm.environment.get(\"base_url\").toString()", - "//replace base url for sandpit(dev) enviornment which uses dep api proxy(nhs-app-dep-dev)", + "//replace base url for sandpit(dev) environment which uses dep api proxy(nhs-app-dep-dev)", "if(baseNhsAppApiUrl.includes(\"dep.api\") && pm.request.url.toString().includes(\"nhs-app/\")){", " pm.request.url = pm.request.url.toString().replace(\"nhs-app/\", \"nhs-app-dep/\").replace(\"{{base_url}}\", baseNhsAppApiUrl);", "}" @@ -175,7 +175,7 @@ "eval(pm.globals.get(\"jsrsasign-js\")); //import jsrsasign lib", "", "var baseNhsAppApiUrl = pm.environment.get(\"base_url\").toString()", - "//replace base url for sandpit(dev) enviornment which uses dep api proxy(nhs-app-dep-dev)", + "//replace base url for sandpit(dev) environment which uses dep api proxy(nhs-app-dep-dev)", "if(baseNhsAppApiUrl.includes(\"dep.api\") && pm.request.url.toString().includes(\"oauth2/\")){", " pm.request.url = pm.request.url.toString().replace(\"oauth2/\", \"oauth2-dep/\").replace(\"{{base_url}}\", baseNhsAppApiUrl);", "}", @@ -280,7 +280,7 @@ "script": { "exec": [ "var baseNhsAppApiUrl = pm.environment.get(\"base_url\").toString()", - "//replace base url for sandpit(dev) enviornment which uses dep api proxy(nhs-app-dep-dev)", + "//replace base url for sandpit(dev) environment which uses dep api proxy(nhs-app-dep-dev)", "if(baseNhsAppApiUrl.includes(\"dep.api\") && pm.request.url.toString().includes(\"nhs-app/\")){", " pm.request.url = pm.request.url.toString().replace(\"nhs-app/\", \"nhs-app-dep/\").replace(\"{{base_url}}\", baseNhsAppApiUrl);", "}" @@ -353,7 +353,7 @@ "script": { "exec": [ "var baseNhsAppApiUrl = pm.environment.get(\"base_url\").toString()", - "//replace base url for sandpit(dev) enviornment which uses dep api proxy(nhs-app-dep-dev)", + "//replace base url for sandpit(dev) environment which uses dep api proxy(nhs-app-dep-dev)", "if(baseNhsAppApiUrl.includes(\"dep.api\") && pm.request.url.toString().includes(\"nhs-app/\")){", " pm.request.url = pm.request.url.toString().replace(\"nhs-app/\", \"nhs-app-dep/\").replace(\"{{base_url}}\", baseNhsAppApiUrl);", "}" @@ -426,7 +426,7 @@ "script": { "exec": [ "var baseNhsAppApiUrl = pm.environment.get(\"base_url\").toString()", - "//replace base url for sandpit(dev) enviornment which uses dep api proxy(nhs-app-dep-dev)", + "//replace base url for sandpit(dev) environment which uses dep api proxy(nhs-app-dep-dev)", "if(baseNhsAppApiUrl.includes(\"dep.api\") && pm.request.url.toString().includes(\"nhs-app/\")){", " pm.request.url = pm.request.url.toString().replace(\"nhs-app/\", \"nhs-app-dep/\").replace(\"{{base_url}}\", baseNhsAppApiUrl);", "}" @@ -499,7 +499,7 @@ "script": { "exec": [ "var baseNhsAppApiUrl = pm.environment.get(\"base_url\").toString()", - "//replace base url for sandpit(dev) enviornment which uses dep api proxy(nhs-app-dep-dev)", + "//replace base url for sandpit(dev) environment which uses dep api proxy(nhs-app-dep-dev)", "if(baseNhsAppApiUrl.includes(\"dep.api\") && pm.request.url.toString().includes(\"nhs-app/\")){", " pm.request.url = pm.request.url.toString().replace(\"nhs-app/\", \"nhs-app-dep/\").replace(\"{{base_url}}\", baseNhsAppApiUrl);", "}" @@ -570,7 +570,7 @@ "script": { "exec": [ "var baseNhsAppApiUrl = pm.environment.get(\"base_url\").toString()", - "//replace base url for sandpit(dev) enviornment which uses dep api proxy(nhs-app-dep-dev)", + "//replace base url for sandpit(dev) environment which uses dep api proxy(nhs-app-dep-dev)", "if(baseNhsAppApiUrl.includes(\"dep.api\") && pm.request.url.toString().includes(\"nhs-app/\")){", " pm.request.url = pm.request.url.toString().replace(\"nhs-app/\", \"nhs-app-dep/\").replace(\"{{base_url}}\", baseNhsAppApiUrl);", "}" @@ -646,7 +646,7 @@ "script": { "exec": [ "var baseNhsAppApiUrl = pm.environment.get(\"base_url\").toString()", - "//replace base url for sandpit(dev) enviornment which uses dep api proxy(nhs-app-dep-dev)", + "//replace base url for sandpit(dev) environment which uses dep api proxy(nhs-app-dep-dev)", "if(baseNhsAppApiUrl.includes(\"dep.api\") && pm.request.url.toString().includes(\"nhs-app/\")){", " pm.request.url = pm.request.url.toString().replace(\"nhs-app/\", \"nhs-app-dep/\").replace(\"{{base_url}}\", baseNhsAppApiUrl);", "}" @@ -722,7 +722,7 @@ "script": { "exec": [ "var baseNhsAppApiUrl = pm.environment.get(\"base_url\").toString()", - "//replace base url for sandpit(dev) enviornment which uses dep api proxy(nhs-app-dep-dev)", + "//replace base url for sandpit(dev) environment which uses dep api proxy(nhs-app-dep-dev)", "if(baseNhsAppApiUrl.includes(\"dep.api\") && pm.request.url.toString().includes(\"nhs-app/\")){", " pm.request.url = pm.request.url.toString().replace(\"nhs-app/\", \"nhs-app-dep/\").replace(\"{{base_url}}\", baseNhsAppApiUrl);", "}" diff --git a/specification/nhs-app.yaml b/specification/nhs-app.yaml index b5ef760..52b618e 100644 --- a/specification/nhs-app.yaml +++ b/specification/nhs-app.yaml @@ -62,11 +62,11 @@ info: After following these steps to create an application and register the public key, the App ID should be provided to the [NHS App onboarding team](mailto:app.onboarding@nhs.net) to grant your application permissions to the features that are appropriate to your use cases. If this step is not completed, all calls to this API will return responses with status code 403 Forbidden. ## Environments and testing - | API Environment | NHS Login Environment | Base URL | - | -------------------- | --------------------- | ------------------------------------------- | + | API Environment | NHS Login Environment | Base URL | + | -------------------- | --------------------- | ----------------------------------------------- | | Development | Sandpit | `https://dep.api.service.nhs.uk/nhs-app-dep/` | - | Integration Testing | Integration (AOS) | `https://int.api.service.nhs.uk/nhs-app/` | - | Production | Production | `https://api.service.nhs.uk/nhs-app/` | + | Integration Testing | Integration (AOS) | `https://int.api.service.nhs.uk/nhs-app/` | + | Production | Production | `https://api.service.nhs.uk/nhs-app/` | ### Development Our development environment: