The Key/Value store is available for storing properties and configuration values that does not fit into the FHIR based infrastructure.
Keys and values stored in this service SHALL NOT contain any clinical or personal sensitive information.
Vendor access
Access is granted to:
System users (called from BFF’s), per vendor registered as a client on Keycloak.
Can create/modify/read:Client data
Own user specific data
User data of any user usage of the client
Users (called from both BFF’s and client)
Can create/modify/read own user specific data
NOTE: Also modifiable by client associated system users.
Can read client specific data
Initial configuration (to be done by infrastructure team)
Vendors must contact operations to gain access with the following information:
realm
client id
system users
Multiple system users can access data for the client and it’s users
System users can access data for multiple clients and it’s users
Swagger open api macro |
---|
openapi: 3.0.1 info: title: API description: System resource and user storage with per key defined media type. servers: - url: https://kvstore.inttest.ehealth.sundhed.dk/kvstore/api variables: {} - url: https://kvstore.exttest.ehealth.sundhed.dk/kvstore/api variables: {} paths: /{realm}/property/{id}: get: summary: Returns the value to which the specified key or resource id is mapped. operationId: get parameters: - name: realm in: path description: Athentication realm required: true schema: type: string example: ehealth - name: id in: path description: 'The resource id whose associated value is to be returned ' required: true schema: type: integer format: int32 example: 432 responses: "401": description: Unauthorized headers: WWW-Authenticate: description: Defines the authentication method that should be used to gain access to a resource. style: simple "404": description: Not Found - The requested resource was not found. "200": description: Success headers: ETag: description: ETag version information to be used as If-Match header value on updates for optimistic locking support. style: simple content: text/plain: {} application/json: {} application/xml: {} put: summary: Replaces the value to which the specified key or resource id is mapped. description: The key or resource id must exists (been created by means of a POST). <br>It is not posible to change the media type. operationId: update parameters: - name: If-Match in: header description: 'Optional version precondition check. Use the ETag header value of a previous POST, GET, PUT to do optimistic locking ' schema: type: string example: version32 - name: realm in: path description: Athentication realm required: true schema: type: string example: ehealth - name: id in: path description: 'The resource id whose associated value is to be returned ' required: true schema: type: integer format: int32 example: 432 requestBody: content: application/x-www-form-urlencoded: schema: type: object properties: value: type: string responses: "401": description: Unauthorized headers: WWW-Authenticate: description: Defines the authentication method that should be used to gain access to a resource. style: simple "404": description: Not Found - The requested resource was not found. "201": description: No content - New value accepted headers: ETag: description: ETag version information to be used as If-Match header value on updates for optimistic locking support. style: simple "412": description: Precondition Failed - Optimistic locking error. Existing data has changed since last read. delete: summary: Remove the value and key to which the specified key or resource id is mapped. operationId: delete parameters: - name: realm in: path description: Athentication realm required: true schema: type: string example: ehealth - name: id in: path description: 'The resource id whose associated value is to be returned ' required: true schema: type: integer format: int32 example: 432 responses: "401": description: Unauthorized headers: WWW-Authenticate: description: Defines the authentication method that should be used to gain access to a resource. style: simple "404": description: Not Found - The requested resource was not found. "201": description: No content - Resource deleted /{realm}/property/lookup: get: summary: Returns the value to which the specified key or resource id is mapped. operationId: get_1 parameters: - name: realm in: path description: Athentication realm required: true schema: type: string example: ehealth - name: key in: query description: 'The key whose associated value is to be returned ' required: true schema: type: string example: my-key responses: "401": description: Unauthorized headers: WWW-Authenticate: description: Defines the authentication method that should be used to gain access to a resource. style: simple "404": description: Not Found - The requested resource was not found. "200": description: Success headers: ETag: description: ETag version information to be used as If-Match header value on updates for optimistic locking support. style: simple content: text/plain: {} application/json: {} application/xml: {} put: summary: Replaces the value to which the specified key or resource id is mapped. description: The key or resource id must exists (been created by means of a POST). <br>It is not posible to change the media type. operationId: update_1 parameters: - name: If-Match in: header description: 'Optional version precondition check. Use the ETag header value of a previous POST, GET, PUT to do optimistic locking ' schema: type: string example: version32 - name: realm in: path description: Athentication realm required: true schema: type: string example: ehealth - name: key in: query description: 'The key whose associated value is to be returned ' required: true schema: type: string example: my-key requestBody: content: application/x-www-form-urlencoded: schema: type: object properties: value: type: string responses: "401": description: Unauthorized headers: WWW-Authenticate: description: Defines the authentication method that should be used to gain access to a resource. style: simple "404": description: Not Found - The requested resource was not found. "201": description: No content - New value accepted headers: ETag: description: ETag version information to be used as If-Match header value on updates for optimistic locking support. style: simple "412": description: Precondition Failed - Optimistic locking error. Existing data has changed since last read. delete: summary: Remove the value and key to which the specified key or resource id is mapped. operationId: delete_1 parameters: - name: realm in: path description: Athentication realm required: true schema: type: string example: ehealth - name: key in: query description: 'The key whose associated value is to be returned ' required: true schema: type: string example: my-key responses: "401": description: Unauthorized headers: WWW-Authenticate: description: Defines the authentication method that should be used to gain access to a resource. style: simple "404": description: Not Found - The requested resource was not found. "201": description: No content - Resource deleted /{realm}/properties: post: summary: Associates the specified value with the specified key or resource id operationId: create parameters: - name: realm in: path description: Athentication realm required: true schema: type: string example: ehealth requestBody: content: application/x-www-form-urlencoded: schema: type: object properties: media-type: type: string default: TEXT enum: - TEXT - JSON - XML key: type: string value: type: string responses: "401": description: Unauthorized headers: WWW-Authenticate: description: Defines the authentication method that should be used to gain access to a resource. style: simple "201": description: No content - New value create headers: ETag: description: ETag version information to be used as If-Match header value on updates for optimistic locking support. style: simple Location: description: Url to the create key/value style: simple "409": description: Conflict /{realm}/property/lookup/user: get: summary: Returns the value to which the specified key or resource id is mapped. operationId: get_2 parameters: - name: realm in: path description: Athentication realm required: true schema: type: string example: ehealth - name: fhirId in: query description: Fhir user identifier required: true schema: type: string example: https://patient,exttest.ehealth.sundhed.dk/fhir/Patient/1234567 - name: key in: query description: 'The key whose associated value is to be returned ' required: true schema: type: string example: my-key responses: "401": description: Unauthorized headers: WWW-Authenticate: description: Defines the authentication method that should be used to gain access to a resource. style: simple "404": description: Not Found - The requested resource was not found. "200": description: Success headers: ETag: description: ETag version information to be used as If-Match header value on updates for optimistic locking support. style: simple content: text/plain: {} application/json: {} application/xml: {} put: summary: Replaces the value to which the specified key or resource id is mapped. description: The key or resource id must exists (been created by means of a POST). <br>It is not posible to change the media type. operationId: update_2 parameters: - name: If-Match in: header description: 'Optional version precondition check. Use the ETag header value of a previous POST, GET, PUT to do optimistic locking ' schema: type: string example: version32 - name: realm in: path description: Athentication realm required: true schema: type: string example: ehealth - name: fhirId in: query description: Fhir user identifier required: true schema: type: string example: https://patient,exttest.ehealth.sundhed.dk/fhir/Patient/1234567 - name: key in: query description: 'The key whose associated value is to be returned ' required: true schema: type: string example: my-key requestBody: content: application/x-www-form-urlencoded: schema: type: object properties: value: type: string responses: "401": description: Unauthorized headers: WWW-Authenticate: description: Defines the authentication method that should be used to gain access to a resource. style: simple "404": description: Not Found - The requested resource was not found. "201": description: No content - New value accepted headers: ETag: description: ETag version information to be used as If-Match header value on updates for optimistic locking support. style: simple "412": description: Precondition Failed - Optimistic locking error. Existing data has changed since last read. delete: summary: Remove the value and key to which the specified key or resource id is mapped. operationId: delete_2 parameters: - name: realm in: path description: Athentication realm required: true schema: type: string example: ehealth - name: fhirId in: query description: Fhir user identifier required: true schema: type: string example: https://patient,exttest.ehealth.sundhed.dk/fhir/Patient/1234567 - name: key in: query description: 'The key whose associated value is to be returned ' required: true schema: type: string example: my-key responses: "401": description: Unauthorized headers: WWW-Authenticate: description: Defines the authentication method that should be used to gain access to a resource. style: simple "404": description: Not Found - The requested resource was not found. "201": description: No content - Resource deleted /{realm}/property/{id}/user: get: summary: Returns the value to which the specified key or resource id is mapped. operationId: get_3 parameters: - name: realm in: path description: Athentication realm required: true schema: type: string example: ehealth - name: fhirId in: query description: Fhir user identifier required: true schema: type: string example: https://patient,exttest.ehealth.sundhed.dk/fhir/Patient/1234567 - name: id in: path description: 'The resource id whose associated value is to be returned ' required: true schema: type: integer format: int32 example: 432 responses: "401": description: Unauthorized headers: WWW-Authenticate: description: Defines the authentication method that should be used to gain access to a resource. style: simple "404": description: Not Found - The requested resource was not found. "200": description: Success headers: ETag: description: ETag version information to be used as If-Match header value on updates for optimistic locking support. style: simple content: text/plain: {} application/json: {} application/xml: {} put: summary: Replaces the value to which the specified key or resource id is mapped. description: The key or resource id must exists (been created by means of a POST). <br>It is not posible to change the media type. operationId: update_3 parameters: - name: If-Match in: header description: 'Optional version precondition check. Use the ETag header value of a previous POST, GET, PUT to do optimistic locking ' schema: type: string example: version32 - name: realm in: path description: Athentication realm required: true schema: type: string example: ehealth - name: fhirId in: query description: Fhir user identifier required: true schema: type: string example: https://patient,exttest.ehealth.sundhed.dk/fhir/Patient/1234567 - name: id in: path description: 'The resource id whose associated value is to be returned ' required: true schema: type: integer format: int32 example: 432 requestBody: content: application/x-www-form-urlencoded: schema: type: object properties: value: type: string responses: "401": description: Unauthorized headers: WWW-Authenticate: description: Defines the authentication method that should be used to gain access to a resource. style: simple "404": description: Not Found - The requested resource was not found. "201": description: No content - New value accepted headers: ETag: description: ETag version information to be used as If-Match header value on updates for optimistic locking support. style: simple "412": description: Precondition Failed - Optimistic locking error. Existing data has changed since last read. delete: summary: Remove the value and key to which the specified key or resource id is mapped. operationId: delete_3 parameters: - name: realm in: path description: Athentication realm required: true schema: type: string example: ehealth - name: fhirId in: query description: Fhir user identifier required: true schema: type: string example: https://patient,exttest.ehealth.sundhed.dk/fhir/Patient/1234567 - name: id in: path description: 'The resource id whose associated value is to be returned ' required: true schema: type: integer format: int32 example: 432 responses: "401": description: Unauthorized headers: WWW-Authenticate: description: Defines the authentication method that should be used to gain access to a resource. style: simple "404": description: Not Found - The requested resource was not found. "201": description: No content - Resource deleted /{realm}/properties/user: post: summary: Associates the specified value with the specified key or resource id operationId: create_1 parameters: - name: realm in: path description: Athentication realm required: true schema: type: string example: ehealth - name: fhirId in: query description: Fhir user identifier required: true schema: type: string example: https://patient,exttest.ehealth.sundhed.dk/fhir/Patient/1234567 requestBody: content: application/x-www-form-urlencoded: schema: type: object properties: media-type: type: string default: TEXT enum: - TEXT - JSON - XML key: type: string value: type: string responses: "401": description: Unauthorized headers: WWW-Authenticate: description: Defines the authentication method that should be used to gain access to a resource. style: simple "201": description: No content - New value create headers: ETag: description: ETag version information to be used as If-Match header value on updates for optimistic locking support. style: simple Location: description: Url to the create key/value style: simple "409": description: Conflict /{realm}/user/property/{id}: get: summary: Returns the value to which the specified key or resource id is mapped. operationId: get_4 parameters: - name: realm in: path description: Athentication realm required: true schema: type: string example: ehealth - name: id in: path description: 'The resource id whose associated value is to be returned ' required: true schema: type: integer format: int32 example: 432 responses: "401": description: Unauthorized headers: WWW-Authenticate: description: Defines the authentication method that should be used to gain access to a resource. style: simple "404": description: Not Found - The requested resource was not found. "200": description: Success headers: ETag: description: ETag version information to be used as If-Match header value on updates for optimistic locking support. style: simple content: text/plain: {} application/json: {} application/xml: {} put: summary: Replaces the value to which the specified key or resource id is mapped. description: The key or resource id must exists (been created by means of a POST). <br>It is not posible to change the media type. operationId: update_4 parameters: - name: If-Match in: header description: 'Optional version precondition check. Use the ETag header value of a previous POST, GET, PUT to do optimistic locking ' schema: type: string example: version32 - name: realm in: path description: Athentication realm required: true schema: type: string example: ehealth - name: id in: path description: 'The resource id whose associated value is to be returned ' required: true schema: type: integer format: int32 example: 432 requestBody: content: application/x-www-form-urlencoded: schema: type: object properties: value: type: string responses: "401": description: Unauthorized headers: WWW-Authenticate: description: Defines the authentication method that should be used to gain access to a resource. style: simple "404": description: Not Found - The requested resource was not found. "201": description: No content - New value accepted headers: ETag: description: ETag version information to be used as If-Match header value on updates for optimistic locking support. style: simple "412": description: Precondition Failed - Optimistic locking error. Existing data has changed since last read. delete: summary: Remove the value and key to which the specified key or resource id is mapped. operationId: delete_4 parameters: - name: realm in: path description: Athentication realm required: true schema: type: string example: ehealth - name: id in: path description: 'The resource id whose associated value is to be returned ' required: true schema: type: integer format: int32 example: 432 responses: "401": description: Unauthorized headers: WWW-Authenticate: description: Defines the authentication method that should be used to gain access to a resource. style: simple "404": description: Not Found - The requested resource was not found. "201": description: No content - Resource deleted /{realm}/user/property/lookup: get: summary: Returns the value to which the specified key or resource id is mapped. operationId: get_5 parameters: - name: realm in: path description: Athentication realm required: true schema: type: string example: ehealth - name: key in: query description: 'The key whose associated value is to be returned ' required: true schema: type: string example: my-key responses: "401": description: Unauthorized headers: WWW-Authenticate: description: Defines the authentication method that should be used to gain access to a resource. style: simple "404": description: Not Found - The requested resource was not found. "200": description: Success headers: ETag: description: ETag version information to be used as If-Match header value on updates for optimistic locking support. style: simple content: text/plain: {} application/json: {} application/xml: {} put: summary: Replaces the value to which the specified key or resource id is mapped. description: The key or resource id must exists (been created by means of a POST). <br>It is not posible to change the media type. operationId: update_5 parameters: - name: If-Match in: header description: 'Optional version precondition check. Use the ETag header value of a previous POST, GET, PUT to do optimistic locking ' schema: type: string example: version32 - name: realm in: path description: Athentication realm required: true schema: type: string example: ehealth - name: key in: query description: 'The key whose associated value is to be returned ' required: true schema: type: string example: my-key requestBody: content: application/x-www-form-urlencoded: schema: type: object properties: value: type: string responses: "401": description: Unauthorized headers: WWW-Authenticate: description: Defines the authentication method that should be used to gain access to a resource. style: simple "404": description: Not Found - The requested resource was not found. "201": description: No content - New value accepted headers: ETag: description: ETag version information to be used as If-Match header value on updates for optimistic locking support. style: simple "412": description: Precondition Failed - Optimistic locking error. Existing data has changed since last read. delete: summary: Remove the value and key to which the specified key or resource id is mapped. operationId: delete_5 parameters: - name: realm in: path description: Athentication realm required: true schema: type: string example: ehealth - name: key in: query description: 'The key whose associated value is to be returned ' required: true schema: type: string example: my-key responses: "401": description: Unauthorized headers: WWW-Authenticate: description: Defines the authentication method that should be used to gain access to a resource. style: simple "404": description: Not Found - The requested resource was not found. "201": description: No content - Resource deleted /{realm}/user/properties: post: summary: Associates the specified value with the specified key or resource id operationId: create_2 parameters: - name: realm in: path description: Athentication realm required: true schema: type: string example: ehealth requestBody: content: application/x-www-form-urlencoded: schema: type: object properties: media-type: type: string default: TEXT enum: - TEXT - JSON - XML key: type: string value: type: string responses: "401": description: Unauthorized headers: WWW-Authenticate: description: Defines the authentication method that should be used to gain access to a resource. style: simple "201": description: No content - New value create headers: ETag: description: ETag version information to be used as If-Match header value on updates for optimistic locking support. style: simple Location: description: Url to the create key/value style: simple "409": description: Conflict |