Clients requests

Getting the secure client endpoints

Gets a list of secure client endpoints that need to be accessible to the SaaS server.

Example: GET https://10.10.10.10/api/v3/clients/networks/configuration

Response:
{
  "clientFirewallAllowlist": [
    {
      "name": "claims:0:0",
      "type": "Route",
      "host": "claims-turbonomic.example-host",
      "ip": "9.9.9.9",
      "port": 443
    },
    {
      "name": "skupper:0:0",
      "type": "Route",
      "host": "skupper-turbonomic.example-host",
      "ip": "9.9.9.9",
      "port": 443
    },
    {
      "name": "skupper-edge:0:0",
      "type": "Route",
      "host": "skupper-edge-turbonomic.example-host",
      "ip": "9.9.9.9",
      "port": 443
},
    {
      "name": "skupper-inter-router:0:0",
      "type": "Route",
      "host": "skupper-inter-router-turbonomic.example-host",
      "ip": "9.9.9.9",
      "port": 443
    }
  ]
} 

Getting a list of secure clients

Gets a list of secure clients.

Example: GET https://10.10.10.10/api/v3/clients/networks/sites

Response:
[
  {
    "id": "4df2b4a5-bae3-42b6-9e6b-e355c2db168f",
    "name": "turbonomic-client"
  },
  {
    "id": "6d3899b9-e01d-4585-94ee-ac3b0f018461",
    "name": "turbonomic-client"
  }
] 

Removing access for all secure clients

Removes access for all secure clients.

Example: DELETE https://10.10.10.10/api/v3/clients/networks/sites

Response: Status 200

Get a list of secure client tokens

Gets a list of secure client tokens.

Example: GET https://10.10.10.10/api/v3/clients/networks/tokens

Response:
[
  {
    "id": "ebd939c3-2fa5-11ee-be62-9e7ff38c09f2",
    "created": "1690810016",
    "claimsMade": 0,
    "claimsRemaining": 1,
    "claimExpiration": "1690810916"
  },
  {
    "id": "015d769c-2fbd-11ee-a817-d283076531fd",
    "created": "1690819931",
    "claimsMade": 0,
    "claimsRemaining": 1,
    "claimExpiration": "1690820831"
  },
  {
    "id": "adb3fccb-2fc0-11ee-a817-d283076531fd",
    "created": "1690821508",
    "claimsMade": 1,
    "claimsRemaining": 0,
    "claimExpiration": "1690822408"
  },
 {
    "id": "c3c8f093-3048-11ee-a817-d283076531fd",
    "created": "1690879957",
    "claimsMade": 1,
    "claimsRemaining": 0,
    "claimExpiration": "1690880857"
  }
] 

Creating a token to add a secure client

In order to add a new secure client, a token must be generated and then applied on the secure client. A token can be returned in either base-64 encoded or in raw format depending on the request format.

With a payload in the following format:
{ "claimLimit": 1, "expiration": 15 }

claimLimit refers to the number of times a token can be applied.

expiration refers to the time in minutes for the token to be claimed, a token that has expired cannot be used to connect client and server.

Example: POST https://10.10.10.10/api/v3/clients/networks/tokens?output=encoded

Response (encoded in base-64):
{
  "id": "c3c8f093-3048-11ee-a817-d283076531fd",
  "tokenData": "eyJhcGlWZXJzaW9uIjoidjEiLCJkYXRhIjp7ImNhLmNydCI6IkxTMHRMUzFDUlVkSlRpQkRSVkpVU1VaSlEwRlVSUzB0TFMwdENrMUpTVVJNVkVORFFXaFhaMEYzU1VKQlowbFNRVXRZT1haVlFYRXdhMVV6V21NemRESXZRMnBGVDNOM1JGRlpTa3R2V2tsb2RtTk9RVkZGVEVKUlFYY0tSMnBGV1UxQ1dVZEJNVlZGUVhoTlVHTXlkREZqU0VKc1kya3hlbUZZVW14TVYwNW9UVUkwV0VSVVNYcE5SR042VFZSRmVVNVVhM2RPTVc5WVJGUkpOQXBOUkdONVQxUkZlVTVVYTNkT01XOTNSMnBGV1UxQ1dVZEJNVlZGUVhoTlVHTXlkREZqU0VKc1kya3hlbUZZVW14TVYwNW9UVWxKUWtscVFVNUNaMnR4Q21ocmFVYzVkekJDUVZGRlJrRkJUME5CVVRoQlRVbEpRa05uUzBOQlVVVkJjSGhNY0c1eE4wcG1SbFZhUmpKT1pDdGphbXN4WTJkU1NsWk9aRWN2SzFRS1dHMDVSMWczWWtoVmJXSnZRWFYyTXk5bk9YbG1jVkJ3VjJ4TVNGSXpkMEkyYkdkUVZrVjFWVkpFZDNaeFNHVmxUWG9yUWpGV1NHeDNWRTVwZG5wRk1nb3pkamw0YWtSTWRHRlVibGhxT1VsWmJWQmpiamRZUTNWaVdXaFNialZNYVRKaVp6SlRaWFJhUlVveFZscFFZbk5IUTFwTU5WVndWbFI0VUZWWU5VSnpDazVMZERSQ1IwaE5RMEZtT0RGc05YaE9ZM1JOTlRBdk1sSmljMkpLTTNsRlVVcHhObGx1YkVnMmFUVjJRMDkyTW5wRlFtRlNhRm92T1ZkUFpEZE9SellLZVhVM1NFdHdVRm94VXpnMFFXZEtXSEJZYmpCU01uUmlZM1F4ZDNaVlZpdFFRM1poWjBGRVZDczNZVlpwTkhRMFRtcHBURlZRUzNaNFIzaEhURWRrVmdvNE5GazBMekZLTm5kWWIyVlBWMDFHWm14S1FWTllkMmhtYVhjeWNtbFRVVkJvVEZBMVlrVllRVlpyYkVSa09GbFNOblJuZDFGSlJFRlJRVUp2TWpSM0NtSkVRVTlDWjA1V1NGRTRRa0ZtT0VWQ1FVMURRWEZSZDBoUldVUldVakJzUWtKWmQwWkJXVWxMZDFsQ1FsRlZTRUYzUlVkRFEzTkhRVkZWUmtKM1RVTUtUVUU0UjBFeFZXUkZkMFZDTDNkUlJrMUJUVUpCWmpoM1NGRlpSRlpTTUU5Q1FsbEZSa05uV1hwc1pucE5OMWQzYkc5VU5WY3ZXbmN3VjJsRVdHUkVaZ3BOUVhOSFFURlZaRVZSVVVWTlFVdERRVVJCVGtKbmEzRm9hMmxIT1hjd1FrRlJjMFpCUVU5RFFWRkZRV2xpZW5vd1RHcHBha2x6VFhGaldXd3hlR1E1Q2tJeVNrbHFlV2h6ZEdWWWRrVnlkRlEzUzNSTWR6VnJSbk13TnpkNkszbzNSVkZOWmxGWFRqQk1SSFpsWVdWc016RkNOWFJwYkhkelFub3dkMjl0VEc4S1FqWnVablJXV25SbWRISjVMM3ByYWtWUmNXbEpRMDlUU1ZaVU5GWlhheXRCVVRSUlYzWlZiVU54UkRSQ2NsSkZkMWxsVWpWaVUyUlFUMUZxYWpoeWNBbzFjRzl0WjA1aFNYZzJjWEZYTWtkbVNVeHlOSFJrT1haNVlWbGFiSE5VV2k5aGEyTXZRM1I2THpOVlpXMXdZa2hUYWpNNVlVVXlUelJVT1dWRFJtWlhDamRwY1ZOTlFrUkRjVVpJVkdZeE9TOUZRMFZGTlRFdlowaExkSEV5TTJ4VVZEaFNSRWh2U21jdlEyODRUakUzYUVKa2NFRklNVU5wYVdwcFVtWm9Zbk1LUlZWalpYVnFRV1JtWjB4dmMxcGtXRUkxVlZKUlF6QnRSak5LTkVwa2VtUjRPV2t4YnpjeU5sZDJXRTlGVFRWTGVGTnhibGRvVDBjclNWWm5RVE4xU1FwUmR6MDlDaTB0TFMwdFJVNUVJRU5GVWxSSlJrbERRVlJGTFMwdExTMEsiLCJwYXNzd29yZCI6Ik5FWk1XR3g2ZGxGQlZreHBOREExTTJ0dk5URjBlRlZXU0dnNVZURm9RbmRNY0ZGTGFFWlRhbWRNVUhWV1ZFMWxaMnN3UVhVNFZUZ3dTalYwY1RVME9FUXhXRTFHWld3M1JHWXpiWE5MTnpoSk1HUlNiVlJGYUdRd1VGUnRNbFoyV1VaTWFUTlFTbU5pVVZKbVozWmplR05PWkdsc2JqSmpiRWM1WmpWS01raz0ifSwia2luZCI6IlNlY3JldCIsIm1ldGFkYXRhIjp7ImFubm90YXRpb25zIjp7InNrdXBwZXIuaW8vZ2VuZXJhdGVkLWJ5IjoiNWU5MjJmM2EtOWU2Ni00YmQzLTg1YTAtMmE5M2M5YzUxMzRlIiwic2t1cHBlci5pby9zaXRlLXZlcnNpb24iOiIxLjIuNyIsInNrdXBwZXIuaW8vdXJsIjoiaHR0cHM6Ly85LjQ2LjgwLjE0MjozMDM3My9jM2M4ZjA5My0zMDQ4LTExZWUtYTgxNy1kMjgzMDc2NTMxZmQifSwibGFiZWxzIjp7InNrdXBwZXIuaW8vdHlwZSI6InRva2VuLWNsYWltIn0sIm5hbWUiOiJjM2M4ZjA5My0zMDQ4LTExZWUtYTgxNy1kMjgzMDc2NTMxZmQifX0="
} 

Example: POST https://10.10.10.10/api/v3/clients/networks/tokens?output=raw

Response (in raw format):
{
  "apiVersion": "v1",
  "kind": "Secret",
  "metadata": {
    "name": "2f2cb866-304c-11ee-a817-d283076531fd",
    "annotations": {
      "skupper.io/generated-by": "5e922f3a-9e66-4bd3-85a0-2a93c9c5134e",
      "skupper.io/site-version": "1.2.7",
      "skupper.io/url": "https://9.46.80.142:30373/2f2cb866-304c-11ee-a817-d283076531fd"
    },
    "labels": {
      "skupper.io/type": "token-claim"
    }
  },
  "data": {
    "ca.crt": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURMVENDQWhXZ0F3SUJBZ0lSQUtYOXZVQXEwa1UzWmMzdDIvQ2pFT3N3RFFZSktvWklodmNOQVFFTEJRQXcKR2pFWU1CWUdBMVVFQXhNUGMydDFjSEJsY2kxemFYUmxMV05oTUI0WERUSXpNRGN6TVRFeU5Ua3dOMW9YRFRJNApNRGN5T1RFeU5Ua3dOMW93R2pFWU1CWUdBMVVFQXhNUGMydDFjSEJsY2kxemFYUmxMV05oTUlJQklqQU5CZ2txCmhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBcHhMcG5xN0pmRlVaRjJOZCtjamsxY2dSSlZOZEcvK1QKWG05R1g3YkhVbWJvQXV2My9nOXlmcVBwV2xMSFIzd0I2bGdQVkV1VVJEd3ZxSGVlTXorQjFWSGx3VE5pdnpFMgozdjl4akRMdGFUblhqOUlZbVBjbjdYQ3ViWWhSbjVMaTJiZzJTZXRaRUoxVlpQYnNHQ1pMNVVwVlR4UFVYNUJzCk5LdDRCR0hNQ0FmODFsNXhOY3RNNTAvMlJic2JKM3lFUUpxNllubEg2aTV2Q092MnpFQmFSaFovOVdPZDdORzYKeXU3SEtwUFoxUzg0QWdKWHBYbjBSMnRiY3Qxd3ZVVitQQ3ZhZ0FEVCs3YVZpNHQ0TmppTFVQS3Z4R3hHTEdkVgo4NFk0LzFKNndYb2VPV01GZmxKQVNYd2hmaXcycmlTUVBoTFA1YkVYQVZrbERkOFlSNnRnd1FJREFRQUJvMjR3CmJEQU9CZ05WSFE4QkFmOEVCQU1DQXFRd0hRWURWUjBsQkJZd0ZBWUlLd1lCQlFVSEF3RUdDQ3NHQVFVRkJ3TUMKTUE4R0ExVWRFd0VCL3dRRk1BTUJBZjh3SFFZRFZSME9CQllFRkNnWXpsZnpNN1d3bG9UNVcvWncwV2lEWGREZgpNQXNHQTFVZEVRUUVNQUtDQURBTkJna3Foa2lHOXcwQkFRc0ZBQU9DQVFFQWlienowTGppaklzTXFjWWwxeGQ5CkIySklqeWhzdGVYdkVydFQ3S3RMdzVrRnMwNzd6K3o3RVFNZlFXTjBMRHZlYWVsMzFCNXRpbHdzQnowd29tTG8KQjZuZnRWWnRmdHJ5L3prakVRcWlJQ09TSVZUNFZXaytBUTRRV3ZVbUNxRDRCclJFd1llUjViU2RQT1FqajhycAo1cG9tZ05hSXg2cXFXMkdmSUxyNHRkOXZ5YVlabHNUWi9ha2MvQ3R6LzNVZW1wYkhTajM5YUUyTzRUOWVDRmZXCjdpcVNNQkRDcUZIVGYxOS9FQ0VFNTEvZ0hLdHEyM2xUVDhSREhvSmcvQ284TjE3aEJkcEFIMUNpaWppUmZoYnMKRVVjZXVqQWRmZ0xvc1pkWEI1VVJRQzBtRjNKNEpkemR4OWkxbzcyNld2WE9FTTVLeFNxbldoT0crSVZnQTN1SQpRdz09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K",
    "password": "Nk9tQmM4OTRPMnBTeUd6OGp6M1paa2ZNNDJ1QW9NaXlRRExvYVFqWGg0VWZBeFpucEg0MmFnZTI4anFKY3VsTmJXUFZLSzNqT3p1Z1EyeTk2WGQ5M3FBcGRqVHNudHJKeDR4ZEhaMHpVMXZURW9IMU45Q3RFaFB0ZHVyZk9YZXo="
  }
} 

Removing a secure client token

Secure client tokens can be removed based on their unique token ID.

Example: DELETE https://10.10.10.10/api/v3/clients/networks/tokens?tokenId=<TOKEN_ID>

Response: Status 200