Limits API
- Last Updated: July 19, 2024
- 2 minute read
- Hybrid Data Pipeline
- Version 5.0
- Documentation
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.
- Data source
- User
- Tenant
- 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.
- The Supported limits table lists all configurable limits, their IDs, what levels they may be applied to, and their descriptions.
- The Limits API operations table lists supported operations with links to operation-specific topics for details.
| 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. |
| 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} |