Onspring
- Overview
- Setup
- Data & mappings
- Operations & API
- Changelog
[!NOTE]
The Onspring Connector integrates with the Onspring GRC platform to synchronize security findings and exception requests. Onspring stores data as records inside configurable applications, each with its own set of fields. The connector discovers the relevant applications, reads their field metadata, and derives its schema dynamically from those fields, mapping each Onspring field to a connector attribute. In addition to ingesting Finding and Exception Request records, the connector can create and update Exception Request records back in Onspring.
Data retrieved from Onspring
| Connector Object | Required | Maps to Data Model |
|---|---|---|
| Finding | Yes | (dynamic — derived from app fields) |
| Exception Request | Yes | (dynamic — derived from app fields) |
Model relationships
For detailed steps on how to view the data retrieved from Onspring in the Brinqa Platform, see How to view your data.
Attributes for the Onspring models are derived dynamically from the Onspring API based on the fields defined in the corresponding application (e.g. "Exception Requests", "Findings"). One attribute is created per Onspring field, using the field ID as the attribute name and the Onspring field name as the display title.
Connection settings
When setting up a data integration, select Onspring from the Connector dropdown and provide the following:
| Setting | Required | Default | Description |
|---|---|---|---|
| Onspring URL | Yes | https://api.onspring.com | Onspring server url |
| API key | Yes | — | Onspring API Key |
| Page size | No | 100 | Maximum number of records to get per API request |
| Parallel requests | No | min(4, available CPUs) | Maximum number of parallel API requests |
| Maximum retries | No | 5 | Maximum number of retry attempts before giving up a request |
Authentication
The connector authenticates with the Onspring API using an API Key. The key is supplied as the X-ApiKey request header on every call. There is no token-exchange or login step; the same API key is attached to every subsequent request (record reads, field/app discovery, and record create/update).
Connectivity is validated by issuing a lightweight request to the Apps endpoint. A 200 response confirms the API key and base URL are valid.
Endpoint
| Method | URL |
|---|---|
GET | https://api.onspring.com/Apps |
Request Headers
| Header | Value |
|---|---|
Content-Type | application/json |
X-ApiKey | Your Onspring API Key |
Sample Response
{
"pageNumber": 1,
"pageSize": 5,
"totalPages": 3,
"totalRecords": 12,
"items": [
{
"href": "https://api.onspring.com/apps/id/37",
"id": 37,
"name": "Third Party Engagements"
}
]
}
Response Fields
| Field | Description |
|---|---|
pageNumber | Current page number of the result set |
pageSize | Number of records returned per page |
totalPages | Total number of available pages |
totalRecords | Total number of records across all pages |
items[].id | Application identifier used in later calls |
items[].name | Application display name |
Usage
The API key is read from the configured apiKey property and added as the X-ApiKey header on every request the connector makes — application discovery, field metadata retrieval, record synchronization, and record create/update. The key is never exchanged for a session token; it is sent directly on each call.
How to obtain Onspring credentials
Obtain the required credentials (url, apiKey) from your Onspring administrator or the Onspring admin console, then enter them in the connection settings above.
Attribute mappings
Expand the sections below to view the mappings between the source and the Brinqa data model attributes:
Finding
| Source Field Name | SDM Attribute |
|---|---|
(sync time) | LAST_CAPTURED |
Record.fieldData[].value | FIELD_{fieldId} |
Record.recordId | UID |
The FIELD_{fieldId} attributes are generated dynamically from the field metadata of the Findings application. The attribute data type is derived from the Onspring field type: Text → string, Date/DateAndTime → instant, List → multi-valued string, Reference → integer (multi-valued when multiplicity is MultiSelect), Timespan → multi-valued, and Formula → typed by its output type (Integer, Numeric, DateAndTime, Text, ListValue).
Exception Request
| Source Field Name | SDM Attribute |
|---|---|
(sync time) | LAST_CAPTURED |
Record.fieldData[].value | FIELD_{fieldId} |
Record.recordId | UID |
The FIELD_{fieldId} attributes are generated dynamically from the field metadata of the Exception Requests application, using the same field-type-to-attribute-type mapping described for the Finding model. On create/update, incoming attributes are matched back to Onspring fields by ID (or by case-insensitive field name), and Date/DateAndTime values are normalized to instants.
Operations & API
Expand each connector object to see its operation options, delta-sync behavior, and the API it uses. See connector operation options for how to apply operation options (keys and values are case-sensitive).
Finding
Operation options
This object does not support any operation options.
Delta sync
The connector README does not document sync behavior for this object.
API
- Type: REST endpoint · Endpoint:
GET Records/appId/{appId}
Exception Request
Operation options
This object does not support any operation options.
Delta sync
The connector README does not document sync behavior for this object.
API
- Type: REST endpoint · Endpoint:
GET Records/appId/{appId}
Changelog
The Onspring connector has undergone the following changes:
| Version | Description | Migration Steps |
|---|---|---|
| 3.0.5 | Improvements - Correct date and time handling: Date and date-time fields from Onspring are now properly recognized as date values, ensuring accurate date filtering, sorting, and reporting within the platform. | • Finding: Date and date-time field data types were corrected — Action: purge the connector's data and re-sync so records are stored with the correct data types. • Exception Request: Date and date-time field data types were corrected — Action: purge the connector's data and re-sync so records are stored with the correct data types. |
| 3.0.4 | Bug Fixes - Fixed attribute name validation failure: Resolved ValidationException caused by Onspring field names exceeding the platform's 53-character attribute name limit. Attribute names are now mapped to field IDs (setName(fieldId)) and human-readable field names are preserved as display titles (setTitle(fieldName)), consistent with other Brinqa connector conventions. Improvements - Added fieldTitleMap: Introduced a dedicated fieldTitleMap (Map<Integer, String>) in OnspringModel to store human-readable Onspring field names for TITLE display, decoupled from the fieldMap BiMap which now stores field ID strings for NAME. | N/A |
| 3.0.3 | Improvements - Enhanced Exception Request Handling: Improved the processing of exception requests by implementing robust field type mapping and automated date formatting. - Improved Date Parsing: Added support for multiple date formats (ISO 8601, numeric timestamps in seconds/milliseconds) to ensure reliable data synchronization with Onspring. - Standardized API Communication: Refactored API response handling and error message providers for better consistency and reliability. - Optimized JSON Serialization: Updated JSON utility configurations to use ISO 8601 for dates and handle null values more efficiently. Bug Fixes - Consistent Test Coverage: Updated and stabilized connector tests to ensure accurate verification of create and update operations. | N/A |
| 3.0.2 | Improvements - More reliable synchronization: Streamlined how the connector resolves Onspring applications and their fields during sync, consolidating data retrieval into a single, more maintainable path for steadier collection of Findings and Exception Requests. Dependency Upgrades - Upgraded internal framework and model libraries to the latest stable versions for improved reliability, security patches, and alignment with the rest of the connector platform. | N/A |
| 3.0.1 | New Features - Create and update Exception Requests: The connector can now write Exception Request records back to Onspring, returning the created or updated record identifier so changes are reflected reliably in Onspring. Improvements - Clearer model names: The synchronized model names were updated from "Findings" to "Finding" and from "Exception Requests" to "Exception Request" for consistency, while the underlying Onspring application names remain unchanged. | • Finding: The model name changed from "Findings" to "Finding" — Action: purge the connector's data and re-sync so records are stored under the new model name. • Exception Request: The model name changed from "Exception Requests" to "Exception Request" — Action: purge the connector's data and re-sync so records are stored under the new model name. |
| 3.0.0 | Overview The Onspring connector integrates with Onspring to synchronize compliance findings and exception requests, giving teams visibility into their governance, risk, and compliance program within Brinqa. Category: Compliance Management Models | N/A |