REST API

Introduction

URL : https://api.myinwebo.com/v2/rest

Access to inWebo REST API implement SSL client certificate authentication. Configuration is done in inWebo Administration Console.

If you are familiar with Swagger, you can browse and test our API with Swagger 2.0 UI

GET /services/logs/{domain}

Description

Returns a paged collection of log lines for a given service (authenticated by the certificate). If the domain is added in the path, the log lines are returned for the given domain, otherwise all log lines are returned

The constraints while using this method to query logs is that a maximum number of 10000 lines can be returned. Example:

  • You can retrieve only 1 page of 10000 log lines
  • You can retrieve 200 pages of 50 log lines
  • Etc.

If you want to retrieve more log lines, please use the scroll API functions

Parameters

Name Located in Required Description
domain path No There are 3 available domains to get logs from: provisioning, configuration and authentication
page query No Specifies the page of results to retrieve (Default value is 1)
size query No The number of potential results to retrieve per page (Default value is 100, Max allowed is 10000)
since query No Returns results since the specified datetime (ISO 8601 GMT)
until query No Returns results until the specified datetime (ISO 8601 GMT)
sort query No Column Sorting. Use sort=column for ASC sorting, sort=-column for DESC sorting
q query No Filters applied to the query. Formatted using RSQL syntax

Responses

200 A collection of paged log line objects. See the page response model for more details

400 INVALID_REQUEST

401 UNAUTHORIZED

403 FORBIDDEN

404 RESOURCE_NOT_FOUND

500 INTERNAL_SERVER_ERROR

See the error response model for more details

Example

curl -X GET --header 'Accept: application/json' 'https://api.myinwebo.com/v2/rest/services/logs/?page=1&size=100&sort=-date'

Response 200 OK
{
	"links":[
		{"rel":"self","href":"https://api.myinwebo.com/v2/rest/services/logs/?page=1&size=120&desc=date"},
		{"rel":"next","href":"https://api.myinwebo.com/v2/rest/services/logs/?desc=date&page=2&size=120"},
		{"rel":"first","href":"https://api.myinwebo.com/v2/rest/services/logs/?desc=date&page=1&size=120"},
		{"rel":"last","href":"https://api.myinwebo.com/v2/rest/services/logs/?desc=date&page=84&size=120"}],

	"content":[
		{"id":"AVoda7pUyA31xVnSnyF1","date":"2016-11-28T09:39:27.000Z","resultCode":"OK","apiVersion":"soapv1","serviceId":186,"operation":"AUTHENTICATE","certId":138,"sourceIP":"78.194.1.90","userId":1683109,"userLogin":"Rashawn.Reilly","deviceType":"AUTHENTICATOR","deviceAlias":"06eca947bca4dd2dcb09f995386d3ecf","deviceName":"MA_1","deviceVersion":"ma-java-2.1.10","deviceLibVersion":"0.2.8","userAgent":"Symfony2 BrowserKit","secondFactor":"PIN"},
		{"id":"AVbcf7pUyA31xVnSnyF2","date":"2016-11-28T09:39:27.000Z","resultCode":"OK","apiVersion":"servletv1","serviceId":186,"operation":"OTP","userId":1683109,"userLogin":"Rashawn.Reilly","blocked":false,"deviceType":"AUTHENTICATOR","deviceAlias":"06eca947bca4dd2dcb09f995386d3ecf","deviceIP":"78.194.1.90","deviceName":"MA_1","deviceVersion":"ma-java-2.1.10","deviceLibVersion":"0.2.8","userAgent":"Java/1.8.0_111"},
		{"id":"AVohg7pUyA58xVnSnyF1","date":"2016-11-28T09:39:22.000Z","resultCode":"OK","apiVersion":"servletv1","serviceId":186,"operation":"OTP","userId":1683109,"userLogin":"Rashawn.Reilly","blocked":false,"deviceType":"AUTHENTICATOR","deviceAlias":"06eca947bca4dd2dcb09f995386d3ecf","deviceIP":"78.194.1.90","deviceName":"MA_1","deviceVersion":"ma-java-2.1.10","deviceLibVersion":"0.2.8","userAgent":"Java/1.8.0_111"},
		{"id":"AVodc8pUyA64xBgSnyF1","date":"2016-11-28T09:39:22.000Z","resultCode":"OK","apiVersion":"soapv1","serviceId":186,"operation":"AUTHENTICATE","certId":138,"sourceIP":"78.194.1.90","userId":1683109,"userLogin":"Rashawn.Reilly","deviceType":"AUTHENTICATOR","deviceAlias":"06eca947bca4dd2dcb09f995386d3ecf","deviceName":"MA_1","deviceVersion":"ma-java-2.1.10","deviceLibVersion":"0.2.8","userAgent":"Symfony2 BrowserKit","secondFactor":"PIN"},
		{"id":"AVjko7pUyC61xVnSnyF9","date":"2016-11-28T09:39:22.000Z","resultCode":"OK","apiVersion":"soapv1","serviceId":186,"operation":"RESTORE_USER","certId":138,"sourceIP":"78.194.1.90","userId":1683109,"userLogin":"Rashawn.Reilly","codeType":3,"code":"971869514","userAgent":"Symfony2 BrowserKit"},
		{"id":"AVbnd8pUyA31xVnTgbF6","date":"2016-11-28T09:39:18.000Z","resultCode":"OK","apiVersion":"servletv1","serviceId":186,"operation":"ADD_SERVICE","userId":1683109,"userLogin":"Rashawn.Reilly","blocked":false,"deviceType":"AUTHENTICATOR","deviceAlias":"06eca947bca4dd2dcb09f995386d3ecf","deviceIP":"78.194.1.90","deviceName":"MA_1","deviceVersion":"ma-java-2.1.10","deviceLibVersion":"0.2.8","userAgent":"Java/1.8.0_111"},
		{...}],
		
	"page":{"size":100,"totalElements":22904,"totalPages":230,"numberOfElements":100,"number":1}
}

Request formatting with 'since' parameter:

curl -X GET --header 'Accept: application/json' 'https://api.myinwebo.com/v2/rest/services/logs?since=2016-11-28T15:06:42+01:00'

Request formatting with 'q' parameter:

curl -X GET --header 'Accept: application/json' 'https://api.myinwebo.com/v2/rest//services/logs/authentication?q=(operation==VALIDATE_OTP,operation==GENERATE_OTP,operation==CHECK_PUSH_RESULT)&since=2016-12-16T11:59:31+01:00&until=2017-01-06T11:59:31+01:00&page=1&size=10'

GET /services/log/{id}

Description

Gets a log line by its id for a given service.

Parameters

Name Located in Required Description
id path Yes The id of the log line to retrieve

Responses

200 Returns a log line object

400 INVALID_REQUEST

401 UNAUTHORIZED

403 FORBIDDEN

404 RESOURCE_NOT_FOUND

500 INTERNAL_SERVER_ERROR

See the error response model for more details

Example

curl -X GET --header 'Accept: application/json' 'https://api.myinwebo.com/v2/rest/services/log/AVoda-FlyA31xVnSnyRz'

GET /services/logs/scroll/{scrollId}

Description

Returns a collection of scrolled log lines for a given service (authenticated by the certificate). If the scrollId is added in the path, the API returns the collection attached to the given scrollId

The scroll functions are useful to retrieve massive amount of log lines allowing you to get of rid of the 10000 lines limit

The proper way to retrieve all logs on a service is to:

  1. Make a first call to /services/logs/scroll/
  2. Get the log lines and the next link from the response
  3. Make a call to the next link which will return a new response
  4. Repeat operations 2 and 3 until a an empty response is returned

Parameters

Name Located in Required Description
scrollId path No The current scrollId
size query No The number of potential results to retrieve per scroll (Default value is 100, Max allowed is 10000)
since query No Returns results since the specified datetime (ISO 8601 GMT)
until query No Returns results until the specified datetime (ISO 8601 GMT)
sort query No Column Sorting. Use sort=column for ASC sorting, sort=-column for DESC sorting
q query No Filters applied to the query. Formatted using RSQL syntax

Responses

200 A collection of log line objects. See the scroll response model for more details

400 INVALID_REQUEST

401 UNAUTHORIZED

403 FORBIDDEN

404 SCROLL_ID_NOT_FOUND

500 INTERNAL_SERVER_ERROR

See the error response model for more details

Example

curl -X GET --header 'Accept: application/json' 'https://api.myinwebo.com/v2/rest/services/logs/scroll/'

Response 200 OK
{
	"links":[
		{"rel":"next","href":"https://api.myinwebo.com/v2/rest/services/logs/scroll/cXVlcnlUaGVuRmV0Y2g7NTA7NTkzODM3OnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTkzODM1OnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTkzODgzOnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTkzODM2OnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTkzODg0OnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTkzODgyOnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTkzODY1OnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTkzODM4OnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTkzODM5OnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTkzODQwOnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTkzODQxOnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTkzODQyOnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTkzODQzOnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTkzODQ0OnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTkzODQ1OnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTkzODQ2OnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTkzODQ3OnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTkzODQ4OnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTkzODQ5OnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTkzODUwOnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTkzODUxOnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTkzODUyOnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTkzODUzOnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTkzODU0OnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTkzODU1OnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTkzODU2OnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTkzODU3OnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTkzODU4OnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTkzODU5OnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTkzODYwOnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTkzODYxOnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTkzODYyOnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTkzODYzOnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTkzODY0OnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTkzODY2OnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTkzODY3OnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTkzODY4OnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTkzODY5OnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTkzODcwOnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTkzODcxOnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTkzODcyOnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTkzODczOnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTkzODc0OnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTkzODc1OnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTkzODc2OnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTkzODc3OnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTkzODc4OnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTkzODc5OnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTkzODgwOnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTkzODgxOnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7MDs="}],
		
	"content":[
		{"date":"2016-11-21T15:11:31.000Z","resultCode":"NO_MATCHING_DEVICE","rejectReason":"OTP does not match any of the user's devices","apiVersion":"restv1","serviceId":186,"operation":"AUTHENTICATE","certId":138,"sourceIP":"78.194.1.90","userId":1644835,"userLogin":"Damion.Gorczany","userAgent":"Symfony2 BrowserKit"},	
		{"date":"2016-11-21T15:11:29.000Z","resultCode":"OK","apiVersion":"servletv1","serviceId":186,"operation":"ACTIVATE","userId":1644835,"userLogin":"Damion.Gorczany","blocked":false,"deviceType":"AUTHENTICATOR","deviceIP":"78.194.1.90","deviceName":"MA_1","deviceVersion":"ma-java-2.1.9","deviceLibVersion":"0.2.8","userAgent":"Java/1.8.0_111"},
		{"date":"2016-11-21T15:11:28.000Z","resultCode":"USER_NOT_ACTIVATED","rejectReason":"User has not activated a token yet","apiVersion":"restv1","serviceId":186,"operation":"SEND_PUSH_REQUEST","certId":138,"sourceIP":"78.194.1.90","userId":1644835,"userLogin":"Damion.Gorczany","userAgent":"Symfony2 BrowserKit"},
		{...}],

	"scroll":
		{"scrollId":"cXVlcnlUaGVuRmV0Y2g7NTA7NTkzODM3OnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTkzODM1OnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTkzODgzOnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTkzODM2OnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTkzODg0OnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTkzODgyOnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTkzODY1OnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTkzODM4OnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTkzODM5OnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTkzODQwOnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTkzODQxOnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTkzODQyOnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTkzODQzOnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTkzODQ0OnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTkzODQ1OnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTkzODQ2OnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTkzODQ3OnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTkzODQ4OnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTkzODQ5OnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTkzODUwOnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTkzODUxOnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTkzODUyOnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTkzODUzOnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTkzODU0OnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTkzODU1OnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTkzODU2OnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTkzODU3OnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTkzODU4OnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTkzODU5OnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTkzODYwOnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTkzODYxOnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTkzODYyOnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTkzODYzOnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTkzODY0OnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTkzODY2OnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTkzODY3OnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTkzODY4OnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTkzODY5OnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTkzODcwOnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTkzODcxOnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTkzODcyOnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTkzODczOnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTkzODc0OnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTkzODc1OnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTkzODc2OnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTkzODc3OnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTkzODc4OnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTkzODc5OnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTkzODgwOnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTkzODgxOnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7MDs=","keepAlive":"1 minute","numberOfElements":100,"totalElements":22904}
}

DELETE /services/logs/scroll/{scrollId}

Description

Deletes the current scrollId

Parameters

Name Located in Required Description
scrollId path Yes The current scrollId

Responses

200 Delete was successful

400 INVALID_REQUEST

401 UNAUTHORIZED

403 FORBIDDEN

404 SCROLL_ID_NOT_FOUND

500 INTERNAL_SERVER_ERROR

See the error response model for more details

Example

curl -X DELETE --header 'Accept: application/json' 'https://api.myinwebo.com/v2/rest/services/logs/scroll/cXVlcnlUaGVuRmV0Y2g7NTA7NTk0MTEyOnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTk0MTA5OnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTk0MTEwOnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTk0MTU4OnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTk0MTU2OnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTk0MTExOnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTk0MTU3OnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTk0MTEzOnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTk0MTE0OnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTk0MTE2OnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTk0MTE1OnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTk0MTE3OnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTk0MTE4OnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTk0MTE5OnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTk0MTIwOnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTk0MTIxOnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTk0MTIyOnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTk0MTIzOnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTk0MTI0OnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTk0MTI1OnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTk0MTI2OnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTk0MTI3OnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTk0MTI4OnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTk0MTI5OnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTk0MTMwOnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTk0MTMxOnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTk0MTMyOnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTk0MTMzOnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTk0MTM0OnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTk0MTM1OnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTk0MTM2OnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTk0MTM3OnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTk0MTM4OnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTk0MTM5OnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTk0MTQwOnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTk0MTQxOnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTk0MTQyOnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTk0MTQzOnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTk0MTQ0OnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTk0MTQ1OnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTk0MTQ2OnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTk0MTQ3OnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTk0MTQ4OnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTk0MTQ5OnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTk0MTUwOnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTk0MTUxOnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTk0MTUyOnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTk0MTUzOnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTk0MTU0OnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7NTk0MTU1OnlTY3RUT1p6U25tNXJoLXBvNkNiTHc7MDs='

Response 200 OK

Page Response Model

A page response has the following properties:

An array of links allowing you to navigate in the returned collection :

  • self: the current page
  • next: the next page in the collection
  • prev: the previous pagein the collection
  • first: the first page in the collection
  • last: the last page in the collection

content

An array of log line objects

page metadata

An object containing the paging information:

  • size: the number of element retrieved per page
  • totalElements: the total number of elements retrievde,
  • totalPages: the total number of pages calculated from the size and the totalElements
  • numberOfElements: the number of elements retrieved in the current page
  • number: the current page number

Scroll Response Model

A scroll response has the following properties:

links

An array of links allowing you to navigate in the returned collection :

  • next: the next page in the scroll

content

An array of log line objects

scroll metadata

An object containing the scrolling information:

  • scrollId: the id of the current scroll
  • keepAlive: the keep alive time of the current scroll (arbitrary set to 1 minute)
  • numberOfElements: the number of elements returned in the current scroll page
  • totalElements: the total number of elements retrieved by the scroll

Log Line Model

A log line is an object with a set of properties. The properties attached to each log line vary according to the context. Indeed the properties attached to the log line of a service configuration operation differ from the ones of an authentication operation.

Property Description
id (string)The unique id of the log line
certId (integer)The id of the certificate used to make the API call
sourceIP (string)The IP of the server on which the operation was executed (if available)
serviceId (integer)The id of the inWebo service associated with the operation
serviceName (string)The name of the inWebo service associated with the operation (if available)
date (date)The date of the operation
operation (string)The operation represented by its identifier - see the detailed list of operation identifiers
resultCode (string)The result code of the operation - see the detailed list of possible resultCodes
rejectReason (string) If the operation failed, a short notice explaining the failure
objectInfo An object containing additional information on the operation (if available)
adminLogin (string)The login name of the administrator user that performed the operation (if available)
userId (integer)Tthe id of the user associated with the operation (if available)
userLogin (string)The login name of the user associated with the operation (if available)
blocked (boolean)The status of the user (blocked or not blocked) (if available)
firstName (string)The first name of the user (if available)
lastName (string)The last name of the user (if available)
email (string)The email of the user (if available)
phone (string)The phone number of the user (if available)
extraFields (string)The extrafields defined for the user (if available)
lang (string)The lang of the user (if available)
code (string) for an activation, a new device or a pin/password reset, the code associated with the operation
codeType (integer) for an activation, a new device or a pin/password reset, the type of code generated (0, 1 or 2)
deviceAlias (string)The alias of the device on which the operation was executed (if available)
deviceType (string)The type of the device (if available)
deviceIP (string)The IP of the device (if available)
deviceName (string)The name of the device (if available)
deviceVersion (string)The version of the device (if available)
deviceLibVersion (string)The inWebo library version embbeded in the device (if available)
deviceOS (string)The OS of the device (if available)
userAgent (string)The user agent of the device (if available)
sessionId (string) for an authentication by push, indicates the session id associated with the authentication operation
secondFactor (string) for an authentication, indicates the second factor used to generate the OTP (PIN or BioKey)
withoutPinForced (boolean) for an authentication, indicates if an authentication without pin was forced
sealedData (string) for a sealing operation, the data that was sealed
url (string) for an authentication, the URL on which the authentication actually occurred (if available)
roleId (integer)The id of the role associated with the operation (if available)
roleName (string)The name of the role associated with the operation (if available)
groupId (integer)The id of the group associated with the operation (if available)
groupName (string)The name of the group associated with the operation (if available)
policyName (string)The name of the security policy associated with the operation (if available)
connectorName (string)The name of the connector associated with the operation (if available)
secureSiteName (string)The name of the secure site associated with the operation (if available)

inWebo operation identifiers

User Provisionning

User provisioning operations performed via the administration console or via inWebo provisioning API (SOAP)

Identifier Description
CREATE_USER Create a new user in the service
UPDATE_USER Update an existing user in the service
DELETE_USER Delete an existing user from the service
SEND_MAIL Send an activation code to a user via email
ACTIVATE_CODE Activate an activation code created with codeType 1
GET_CODE_FROM_LINK Transform a 3 weeks lifetime long code (created with codeType 2) into an activation code
GET_RESET_CODE Get a reset password code for a user
RESET_PIN_ERROR_COUNTER Reset the pin error counter for a user
RESTORE_USER Restore an existing user
GET_DEVICE_ACTIVATION_CODE Get a user device activation code
DELETE_DEVICE Delete a user device
CREATE_MEMBERSHIP Add a user to a group
UPDATE_MEMBERSHIP Update user group membership
DELETE_MEMBERSHIP Remove a user from a group

Service Configuration

Configuration operations performed via the administration console

Identifier Description
CREATE_SERVICE Create a new service
UPDATE_SERVICE Update an existing service
BLOCK_SERVICE Block a service
CREATE_CONNECTOR Create a new connector in the service
UPDATE_CONNECTOR Update an existing connector in the service
DELETE_CONNECTOR Delete an existing connector from the service
CREATE_GROUP Create a new user group in the service
UPDATE_GROUP Update an existing user group in the service
DELETE_GROUP Delete an existing user group from the service
CREATE_GROUP_FORM Associate a secure site and a user group
DELETE_GROUP_FORM Remove the association between a secure site and a user group
CREATE_SECURE_SITE Create a new secure site in the service
UPDATE_SECURE_SITE Update an existing secure site in the service
DELETE_SECURE_SITE Delete an existing secure site from the service
CREATE_POLICY Create a new group security policy in the service
UPDATE_POLICY Update an existing group security policy in the service
DELETE_POLICY Delete an existing group security policy from the service
CREATE_ROLE Create a new user custom role in the service
UPDATE_ROLE Update an existing user custom role in the service
DELETE_ROLE Delete an existing user custom role from the service
CREATE_CERTIFICATE Create a new API certificate for the service
DELETE_CERTIFICATE Delete an existing API certificate from the service
CREATE_RADIUS Create a new radius configuration for the service
DELETE_RADIUS Delete an existing radius configuration from the service

Authentication API

Authentication operations performed via inWebo authentication API (REST or SOAP)

Identifier Description
VALIDATE_OTP Validate an OTP generated on a device (authenticate & authenticateExtended methods)
SEND_PUSH_REQUEST Send a push authentication request to a mobile device
CHECK_PUSH_RESULT Get the result of a SEND_PUSH_REQUEST
PUSH_SEAL Send a sealing request to a mobile device
VALIDATE_SEAL Verify a data sealed on a mobile device
DEFERRED_VALIDATE_SEAL Delayed verification of a data sealed on a mobile device

Operations on devices

Operations performed by inWebo authentication devices (mobile and browser tokens)

Identifier Description
ACTIVATE Activate a device
GENERATE_OTP Generate an OTP on a device
GENERATE_SEAL Seal a data on a mobile device
RESET Reset password or PIN on a device
PUSH_OTP_REQUEST Send a push authentication request to a mobile device from Helium or Virtual Authenticator
PUSH_OTP_GET_RESULT Get the result of a PUSH_OTP_REQUEST on Helium or Virtual Authenticator
PUSH_VALIDATION Validate a push authentication request on a mobile device
PUSH_ACTIVATION_REQUEST Send a push activation request to a mobile device from Helium or Virtual Authenticator
PUSH_ACTIVATION_GET_CODE Get the result of a PUSH_ACTIVATION_REQUEST on Helium or Virtual Authenticator
PUSH_ACTIVATION Validate a push activation request on a mobile device
PUSH_REMOTE_OTP_REQUEST Send an authentication request to a mobile device from a non activated Helium
PUSH_REMOTE_OTP_GET_RESULT Get the result of a PUSH_REMOTE_OTP_REQUEST on a non activated Helium

inWebo operation result codes

resultCode rejectReason
OK Operation successful
BROWSER_TOKEN_REQUIRED User needs to activate a browser token first
CERT_REVOKED API Certificate has been revoked
DEVICE_LOCKED Device is locked
DEVICE_NOT_SYNC Device needs to be synchronized
DEVICE_UNSYNC Synchronisation failed
DEVICE_VERSION User needs to upgrade his device
EMAIL_NOT_SENT Email could not be sent
INCORRECT_CERT_OR_IP Incorrect certificate or unauthorized source IP address
INVALID_CODE Invalid code or secure site id
INVALID_EMAIL_ADDRESS Invalid email address
INVALID_OTP OTP is not valid
INVALID_SERVICE Service is not valid
INVALID_URL URL is not a valid secure site for this user
LOGIN_EXISTS A user with this login name already exists
MAX_NB_DEVICES_REACHED Maximum number of devices reached
MAX_NB_USERS_REACHED Maximum number of users reached
NO_MATCHING_DEVICE OTP does not match any of the user's devices
NO_MOBILE_FOUND User does not have any mobile device
NO_PENDING_PUSH User does not have any pending push notification
NO_PIN User has no PIN defined
NO_PUSH_CONFIG No push configuration for mAccess found for the service
NO_PUSH_ID Device is not registered for Push Notifications
NO_PUSH_ID Device is not registered for Push Notifications
OPERATION_IS_FORBIDDEN Operation is forbidden and cannot be performed
PIN_FORMAT PIN does not match the required format
PIN_REUSED PIN cannot be reused
PUSH_REFUSED User refused the Push notification
REQUEST_PENDING Request to inWebo server is pending
REQUEST_TIMEOUT Request to inWebo server timed out
SERVICE_BLOCKED Service is blocked
SYNTAX_ERROR Syntax error in the request to inWebo servers
UNKNOWN_DEVICE Unknown Device
UNKNOWN_RADIUS Unknown Radius
UNKNOWN_ROLE Unknown Role
UNKNOWN_SERVICE Unknown Service
UNKNOWN_USER Unknown user
USER_BLOCKED User is blocked
USER_HAS_NO_EMAIL No email address is defined for this user
USER_HAS_OTHER_SERVICES User has other services. He needs to go to myinwebo.com to activate a new device
USER_NOT_ACTIVATED User has not activated a token yet
WRONG_PIN Wrong pin entered

Error Response Model

Each error response comes with the following properties that come in addition to the HTTP response code

  • resultCode: the primary response code
  • rejectReason: the primary reject reason
  • causes: an array of possible root causes of the error
Code resultCode Description
400 INVALID_REQUEST There is an error in the request and a result cannot be returned
401 UNAUTHORIZED The certificate used is not valid or not found
403 FORBIDDEN Access to the resource is forbidden
404 SCROLL_ID_NOT_FOUND or PAGE_NOT_FOUND The requested resource could not be found
405 METHOD_NOT_ALLOWED The method used is not allowed, e.g. a POST for an operation that only supports GET
500 INTERNAL_SERVER_ERROR An error occurred on the server