Endpoint
...
Environment
...
URL
...
Exttest
...
https://keyservice.exttest.ehealth.sundhed.dk
...
Inttest
...
https://keyservice.inttest.ehealth.sundhed.dk
...
Devenvcgi
...
https://keyservice.devenvcgi.ehealth.sundhed.dk
...
Preprod
...
https://keyservice.preprod.ehealth.sundhed.dk
...
Prod
...
https://keyservice.prod.ehealth.sundhed.dk
Swagger open api macro |
---|
{ "swagger": "2.0", "info": { "description": "This is the api description of the key service api.</br></br>", "version": "1.0.1-SNAPSHOT", "title": "Key service API", "contact": { "url": "https://www.trifork.com", "email": "support@trifork.com" } }, "host": "localhost:8080", "basePath": "/", "tags": [ { "name": "main-controller", "description": "Main Controller" }, { "name": "management-controller", "description": "Management Controller" } ], "paths": { "/createKey": { "post": { "tags": [ "main-controller" ], "summary": "createKey - requesting a \"key\" to be generated at the server via the given secret", "operationId": "createKeyUsingPOST", "consumes": [ "application/json" ], "produces": [ "*/*" ], "parameters": [ { "in": "body", "name": "input", "description": "input", "required": true, "schema": { "$ref": "#/definitions/CreateKeyInput" } } ], "responses": { "200": { "description": "Successfully created key(the result field should always be \"OK\")", "schema": { "$ref": "#/definitions/KeyIdResultFirstTime" } }, "500": { "description": "Cannot create key" } }, "deprecated": false } }, "/key": { "post": { "tags": [ "main-controller" ], "summary": "key - Tries to retrieve a key via the given secret", "operationId": "getKeyUsingPOST", "consumes": [ "application/json" ], "produces": [ "*/*" ], "parameters": [ { "in": "body", "name": "input", "description": "input", "required": true, "schema": { "$ref": "#/definitions/GetKeyFromSecretInput" } } ], "responses": { "200": { "description": "Check status field for the result of the operation; if not ok ,the other fields will be excluded", "schema": { "$ref": "#/definitions/KeyIdResultInterface" } } }, "deprecated": false } }, "/longKey": { "post": { "tags": [ "main-controller" ], "summary": "longKey - Tries to retrieve a key via the given long secret", "operationId": "getKeyFromLongSecretUsingPOST", "consumes": [ "application/json" ], "produces": [ "*/*" ], "parameters": [ { "in": "body", "name": "input", "description": "input", "required": true, "schema": { "$ref": "#/definitions/GetKeyFromLongSecretInput" } } ], "responses": { "200": { "description": "Check status field for the result of the operation; if not ok ,the other fields will be excluded", "schema": { "$ref": "#/definitions/KeyIdResultInterface" } } }, "deprecated": false } }, "/management/deleteDevice": { "post": { "tags": [ "management-controller" ], "summary": "deleteDevice - Attempts to delete the given keyId by the given CPR number as verification.", "operationId": "deleteDeviceForCprUsingPOST", "consumes": [ "application/json" ], "produces": [ "*/*" ], "parameters": [ { "in": "body", "name": "input", "description": "input", "required": true, "schema": { "$ref": "#/definitions/DeleteDeviceForCprInput" } } ], "responses": { "200": { "description": "look at the status field to know the result of the operation", "schema": { "$ref": "#/definitions/DeleteDeviceForCprOutput" } }, "401": { "description": "Bad / wrong / missing JWT token" } }, "security": [ { "nemLogin": [ "citizen" ] } ], "deprecated": false } }, "/management/devices": { "get": { "tags": [ "management-controller" ], "summary": "devices - Lists devices under the given CPR number", "operationId": "getDevicesByCprUsingGET", "produces": [ "*/*" ], "responses": { "200": { "description": "The list will be empty if anything fails or if there are none; if there are it will contain them.", "schema": { "$ref": "#/definitions/GetDevicesByCprOutput" } }, "401": { "description": "Bad / wrong / missing JWT token" } }, "security": [ { "nemLogin": [ "citizen" ] } ], "deprecated": false } } }, "securityDefinitions": { "nemLogin": { "type": "oauth2", "authorizationUrl": "https://saml.fut.trifork.com/auth/realms/nemlogin/protocol/openid-connect/token", "tokenUrl": "https://saml.fut.trifork.com/auth/realms/nemlogin/protocol/openid-connect/token", "flow": "accessCode", "scopes": { "citizen": "Citizen access to data" } } }, "definitions": { "CreateKeyInput": { "type": "object", "required": [ "clientName", "deviceName", "secret" ], "properties": { "clientName": { "type": "string", "description": "A name of the client (properly not user provided)" }, "deviceName": { "type": "string", "description": "A name of the device (potentially user provided)" }, "secret": { "type": "string", "description": "The raw user supplied secret (password / pin)" } }, "title": "CreateKeyInput", "description": "This is what is required to create a new key" }, "DeleteDeviceForCprInput": { "type": "object", "required": [ "keyId" ], "properties": { "keyId": { "type": "string", "description": "The keyId of the device we are trying to delete" } }, "title": "DeleteDeviceForCprInput", "description": "The input for trying to delete a device" }, "DeleteDeviceForCprOutput": { "type": "object", "required": [ "status" ], "properties": { "status": { "type": "string", "description": "The resulting status of the deletion.", "enum": [ "deleted", "failed", "notFound" ] } }, "title": "DeleteDeviceForCprOutput", "description": "The result of deleting a device (by CPR & keyId)" }, "DeviceByCpr": { "type": "object", "required": [ "clientName", "deviceName", "keyId" ], "properties": { "clientName": { "type": "string", "description": "The user supplied name for the device that performed the registration" }, "deviceName": { "type": "string", "description": "A device name (not user supplied)" }, "keyId": { "type": "string", "description": "an \"id\" so just a string(it is secure random)" } }, "title": "DeviceByCpr", "description": "A Device registered under the given cpr number" }, "GetDevicesByCprOutput": { "type": "object", "required": [ "devices" ], "properties": { "devices": { "type": "array", "description": "The devices belonging to the given CPR.", "items": { "$ref": "#/definitions/DeviceByCpr" } } }, "title": "GetDevicesByCprOutput", "description": "The result of querying for devices given a CPR number." }, "GetKeyFromLongSecretInput": { "type": "object", "required": [ "keyId", "longSecret" ], "properties": { "keyId": { "type": "string", "description": "The KeyId we are to lookup" }, "longSecret": { "type": "string", "description": "The long secret that we want to use to authenticate via the given keyId" } }, "title": "GetKeyFromLongSecretInput", "description": "The input for when trying to authenticate via a long secret" }, "GetKeyFromSecretInput": { "type": "object", "required": [ "keyId", "secret" ], "properties": { "keyId": { "type": "string", "description": "The keyId we are trying to authenticate via" }, "secret": { "type": "string", "description": "The secret related to that keyId" } }, "title": "GetKeyFromSecretInput", "description": "The input for trying to authenticate via a given secret (for the given keyId)" }, "KeyIdResultFailed": { "title": "KeyIdResultFailed", "allOf": [ { "$ref": "#/definitions/KeyIdResultInterface" }, { "type": "object", "required": [ "status" ], "properties": { "status": { "type": "string", "description": "The resulting status of the operation; it will never be OK", "enum": [ "KeyNotFound", "WrongSecret", "KeyIsLocked" ] } }, "title": "KeyIdResultFailed", "description": "A failed operation." } ], "description": "A failed operation." }, "KeyIdResultFirstTime": { "type": "object", "required": [ "clientName", "deviceName", "keyId", "keyValue", "longSecret" ], "properties": { "clientName": { "type": "string", "description": "The user supplied name for the device that performed the registration" }, "deviceName": { "type": "string", "description": "A device name (not user supplied)" }, "keyId": { "type": "string", "description": "an \"id\" so just a string(it is secure random)" }, "keyValue": { "type": "string", "description": "a 128 bit AES - base64 encoded key" }, "longSecret": { "type": "string", "description": "a random generated long secret, that is more secure to store on a user device." } }, "title": "KeyIdResultFirstTime", "description": "A create key response (success)" }, "KeyIdResultInterface": { "type": "object", "required": [ "status" ], "discriminator": "status", "properties": { "status": { "type": "string", "enum": [ "OK", "KeyNotFound", "WrongSecret", "KeyIsLocked" ] } }, "title": "KeyIdResultInterface", "description": "The result of an operation. Inspect the status to know how it went.\nSee either KeyIdResultSuccess (when it is successful) or KeyIdResultFailed (when it fails)" }, "KeyIdResultSuccess": { "title": "KeyIdResultSuccess", "allOf": [ { "$ref": "#/definitions/KeyIdResultInterface" }, { "type": "object", "required": [ "clientName", "deviceName", "keyId", "keyValue" ], "properties": { "clientName": { "type": "string", "description": "The user supplied name for the device that performed the registration" }, "deviceName": { "type": "string", "description": "A device name (not user supplied)" }, "keyId": { "type": "string", "description": "an \"id\" so just a string(it is secure random)" }, "keyValue": { "type": "string", "description": "a 128 bit AES - base64 encoded key" }, "status": { "type": "string", "description": "The resulting status of the operation (will always be OK)", "enum": [ "OK" ] } }, "title": "KeyIdResultSuccess", "description": "A login response" } ], "description": "A login response" } } } |
...