The Limits API can be used to manage a number of Hybrid Data Pipeline features. For example, the Limits API can be used to restrict the number of rows in a query, or to implement an account lockout policy, or to enable CORS behavior. Each limit has a default value that governs some aspect of behavior related to its corresponding feature. Limits can be set at four levels: system, tenant, user, and data source. The following hierarchy applies to these levels.

  1. Data source
  2. User
  3. Tenant
  4. System

Limits set on a data source override limits set at the other levels; limits set on a user account override those set on a tenant or set at the system level; limits set on a tenant override those set at the system level; and limits set at the system level override default behavior. Default and system limits apply to behavior across Hybrid Data Pipeline, while limits on data sources, users, and tenants apply to the resources they handle.

The following tables provide summary information on the Limits API.

Table 1. Supported limits
Limits ID Usage Description
MaxFetchRows 1 All levels Maximum number of rows allowed to be fetched for a single query.
PasswordLockoutInterval 2 System level The duration, in seconds, for counting the number of consecutive failed authentication attempts.
PasswordLockoutLimit 3 System level The number of consecutive failed authentication attempts that are allowed before locking the user account.
PasswordLockoutPeriod 4 System level The duration, in seconds, for which a user account will not be allowed to authenticate to the system when the PasswordLockoutLimit is reached.
CORSBehavior 5 System level Configuration parameter for CORS behavior. Setting the value to 0 disables the CORS filter. Setting the value to 1 enables the CORS filter. Setting the value to 2 enables the CORS filter with the whitelist option.
ODataMaxConcurrentPagingQueries 6 All levels Maximum number of concurrent active queries per data source that cause paging to be invoked.
LogRetentionDays 7 System level Number of days log files should be retained.
OAuthAccessTokenDuration 8 System level The duration, in minutes, for which a Access token is valid.
MonitorRetentionDays 9 System level Number of days monitor details should be retained.
UserMeterRetentionDays 10 System level Number of days user meter details should be retained.
UserMeterWriteInterval 11 System level The number of seconds the system waits before scanning sessions for current metrics. A lower setting will result in more rows written to the meter table.
UserMeterMaxAge 12 System level The number of seconds the system waits before writing out meter records. A lower setting will result in the rows written to the meter table to occur more frequently.
OAuthAccessTokenCacheSize 13 System level Number of oauth access tokens to be cached in memory for OAuth Authentication. By default up to 2000 tokens will be cached in memory.
TransactionTimeout 14 All levels The number of seconds the system allows a transaction to be idle before rolling it back.
XdbcMaxResponse 15 All levels Approximate allowed maximum page size of JDBC/ODBC HTTP result data in KB.
SQLAuditing 21 All levels Configuration parameter for SQL statement auditing. Setting the value to 0 disables SQL statement auditing. Setting the value to 1 enables SQL statement auditing.
SQLAuditingRetentionDays 22 System level The number of days auditing records are retained in the SQLAudit table.
SQLAuditingMaxAge 23 System level The maximum number of seconds the service waits before inserting the auditing records into the SQLAudit table. A lower setting will increase the frequency with which records are written to the SQLAudit table.
ODataMaxConcurrentRequests 24 System, Tenant, and User levels Maximum number of simultaneous OData requests allowed per user.
ODataMaxWaitingRequests 25 System, Tenant, and User levels Maximum number of waiting OData requests allowed per user.
LogAPIMaxFileSize 26 System level Maximum size in megabytes of the compressed log file to be downloaded. The maximum size allowed is 2048 megabytes.
LogAPITimeout 27 System level Maximum time after which the request will be timed out in minute.
ODataCharacterColumnSizeLimit 28 All levels Maximum size for an OData long character column. The allowed range is 32 KB to 1 MB. The default is 32 KB.
ODataIncludeCharacterLongData 29 All levels Expose long character columns in OData Version 4 data sources.
ODataBinaryColumnSizeLimit 30 All levels Maximum size for an OData long binary column. The allowed range is 32 KB to 1 MB. The default is 32 KB.
ODataIncludeBinaryLongData 31 All levels Expose long binary columns in OData Version 4 data sources.
Table 2. Limits API operations
Operation Request URL
Retrieve configurable limits GET https://<myserver>:<port>/api/admin/limits
Retrieve limits that have been set at the system level GET https://<myserver>:<port>/api/admin/limits/system
Retrieve a limit set at the system level GET https://<myserver>:<port>/api/admin/limits/system/{limitId}
Create a limit at the system level POST https://<myserver>:<port>/api/admin/limits/system/{limitId}
Update a limit set at the system level PUT https://<myserver>:<port>/api/admin/limits/system/{limitId}
Remove a limit set at the system level DELETE https://<myserver>:<port>/api/admin/limits/system/{limitId}
Retrieve limits that have been set for tenants GET https://<myserver>:<port>/api/admin/limits/tenants
Retrieve a limit set on a tenant GET https://<myserver>:<port>/api/admin/limits/tenants/{tenantId}/{limitId}
Create a limit on a tenant POST https://<myserver>:<port>/api/admin/limits/tenants/{tenantId}/{limitId}
Update a limit set on a tenant PUT https://<myserver>:<port>/api/admin/limits/tenants/{tenantId}/{limitId}
Remove a limit set on a tenant DELETE https://<myserver>:<port>/api/admin/limits/tenants/{tenantId}/{limitId}
Retrieve limits that have been set on user accounts GET https://<myserver>:<port>/api/admin/limits/users
Retrieve a limit set on a user account GET https://<myserver>:<port>/api/admin/limits/users/{userId}/{limitId}
Create a limit on a user account POST https://<myserver>:<port>/api/admin/limits/users/{userId}/{limitId}
Update a limit on a user account PUT https://<myserver>:<port>/api/admin/limits/users/{userId}/{limitId}
Delete a limit set on a user account DELETE https://<myserver>:<port>/api/admin/limits/users/{userId}/{limitId}
Retrieve limits that have been set on data sources for a user account GET https://<myserver>:<port>/api/admin/

limits/users/{userId}/datasources

Retrieve a limit set on a data source GET https://<myserver>:<port>/api/admin/

limits/users/{userId}/datasources/{datasourceId}/{limitId}

Create a limit on a data source POST https://<myserver>:<port>/api/admin/

limits/users/{userId}/datasources/{datasourceId}/{limitId}

Update a limit set on a data source PUT https://<myserver>:<port>/api/admin/

limits/users/{userId}/datasources/{datasourceId}/{limitId}}

Delete a limit set on a data source DELETE https://<myserver>:<port>/api/admin/

limits/users/{userId}/datasources/{datasourceId}/{limitId}