IntegrationDataManager
IntegrationDataManager
Contents
Support............................................................................................................................................................ 5
2 Basic concepts...................................................................................................................................... 11
4 Workflow example................................................................................................................................. 15
6 Security...................................................................................................................................................21
7 Configuration......................................................................................................................................... 23
8 Troubleshooting.....................................................................................................................................25
Contents 3
Guidewire PolicyCenter for Guidewire Cloud 2024.02 Integration Data Manager
4 Contents
Support
Guidewire customers
https://community.guidewire.com
Guidewire partners
https://partner.guidewire.com
chapter 1
Integration Data Manager (IDM) is a JSON document storage service for integration developers. Integration Data
Manager makes it easy to store third-party data for use with InsuranceSuite, and allows users to view this data or use it
in business logic without having to change the InsuranceSuite data model. This process simplifies the InsuranceSuite
configuration and makes it easier to perform upgrades.
Note: IDM no longer supports retrieving multiple documents at the same time. The GET /pools/{poolId}/
documents endpoint is disabled. You must use the getDocument endpoint instead.
In addition, included usage limits may apply to the products and capabilities in this release. See Guidewire Cloud
Platform Specifications and Limits (located on Guidewire Community) for more information.
IDM is well suited for storing data from an external system which enriches claims, policies, buildings and people. Use
cases include fraud scoring reports, credit score reports, building risk reports, police reports, credit reports, prefill data
and car rental information.
Features:
• Data pools can be created for different use cases. Each pool can have its own JSON schema and retention policy.
• Integration Gateway apps can be granted access to individual pools.
• Pool and schema-level configuration lifecycle is managed by Guidewire Lifecycle Management (LCM).
• Data isolation - documents can be shared across Integration Gateway apps within the same project with appropriate
permissions. Documents are partitioned by tenant, project, and environment while pool and schema information is
accessible across environments within the same tenant and project.
• Documents are protected against update (read-only), since InsuranceSuite is not the system of record. Data can be
written, read and deleted but it cannot be edited.
• A retention period can be specified for documents within a pool.
• IDM clients are provided for InsuranceSuite and for Integration Gateway.
• Integration Gateway access to pools is managed through an administration user interface.
• IDM can be used in conjunction with the Assessment API to associate assessment documents in IDM with core
InsuranceSuite entities.
Data retention. Retention period can vary from hours to days. Maximum of ninety days. No control over third-
Retention period is configured for each data party retention. Data is
pool (a pool is used to store data of a specific retained indefinitely
type). until claim is purged or
archived.
Integration Gateway Each Integration Gateway app needs to be Any Integration Gateway app
app data access. granted access to a particular pool. can access data in the key value
store for the tenant.
Maximum object size Maximum 400Kb.
that can be stored.
Schema Supported. Schemas are defined for each pool. No. Not available.
management. Schemas can be used to enforce the quality of
the stored data. Schemas can also be accessed
from different Guidewire services.
Basic concepts
Pool
A pool is created to store data for a particular purpose. A pool is a logical collection of documents of the same type.
Each pool has a name, a retention period for documents in the pool, and a JSON schema. The schema is used to
understand the structure of the document and to enforce the integrity of documents stored in the pool. The schema is
versioned. Each document is associated with a single version of the schema.
Schema
The schema is a JSON document that defines the structure of JSON documents in the pool. Schemas are versioned and
numbered. When a document is written to a pool it is validated against the pool's latest schema unless a particular
schema version is specified. Each schema has a size limit of 400KB.
Document
A document is a JSON object. Each document is stored in a pool and must be associated with a particular schema
version.
Basic concepts 11
Guidewire PolicyCenter for Guidewire Cloud 2024.02 Integration Data Manager
12 Basic concepts
chapter 3
Prerequisites
• You must be on Hakuba (2023.06) or later.
Getting access
Customers need to be onboarded for Integration Data Manager by filing the following cloud operations ticket:
IDM-0010: Integration Data Manager.
The following groups will be enabled in the customer's IdP(s):
gwa.any_planet_class.flexistore.admin
Access to everything (pools, schemas and documents) for a single tenant.
gwa.lower.flexistore.admin
In development environments, access to everything (pools, schemas and documents) for a single tenant.
You then need to create the same groups and assign users as appropriate in the your IdP.
You can only use the IDM administration user interface in a non-production environment. The IDM administration user
interface is used to edit configuration data (pools and schemas). Configuration data in a production environment cannot
be edited.
Note:
To use IDM successfully, you must switch the Guidewire Cloud (GCH) context to select a planet that has an
IDM-assigned package. IDM requires you to be in a planet that has an assigned package. Customers can assign
the package to the planet in the Lifecycle Manager.
Workflow example
IDM configurations can be managed using either the administration user interface, or by using the REST API. You can
use the administration user interface to grant access to the pool for the Integration Gateway app.
Design time:
1. Fulfill prerequisites - onboard for IDM by filing a ticket and creating a draft package.
2. Set up configuration resources, including the pools and schemas that will organize the documents to be stored.
This can be done through the administration user interface or the IDM REST API:
a. Upload a JSON schema for the pool. Enable validation of document written to the pool (if required).
Note: If a JSON schema is not available, a file with an empty schema containing {} can be
uploaded.
b. Grant one or more Integration Gateway apps access to the pool through the administration user interface
Pool Detail screen.
3. If a schema changes then the schema must be updated through the administration user interface or the REST API.
Run-time:
1. The Integration Gateway app will retrieve documents from the third party source and store a JSON representation
of those documents in the pool.
2. Each document must comply with the schema for the pool. If a document does not comply, the update will result
in an error or a warning depending on the pool schema validation setting.
3. The Integration Gateway app will write documents to the pool. If there are multiple versions of the schema and
the document to be written only complies with an older schema version, the schema version must be specified in
the post document API call. Otherwise the latest schema version is assumed.
4. When the document is written to IDM, a document ID is returned, which is required to retrieve the document.
You can also search for all document IDs based on a “secondary attribute”.
5. Typically the Integration Gateway app will make a call to ClaimCenter or PolicyCenter’s assessment API to
provide it with standardized information about the assessment along with the document ID.
6. xCenter can then retrieve the document using the document ID and the platform client.
7. This information can then be used in business logic or passed to an embedded Jutro page or PCF page for display.
Workflow example 15
Guidewire PolicyCenter for Guidewire Cloud 2024.02 Integration Data Manager
16 Workflow example
chapter 5
This section contains instructions for setting up a connection between an Integration Gateway or InsuranceSuite client
and Integration Data Manager.
implementation("com.guidewire.camel:gw-camel-idm:${integrationGatewayVersion}")
To configure the component, you must set the appropriate region URL for Integration Data Manager in
route.properties. For example:
gw.camel.idm.url=https://integrationdatamanager.api.omega2-andromeda.guidewire.net/
See the table above for a list of all the region URLs.
Note: The gw-camel-flexistore component is deprecated and will soon be unsupported. Instead, use the gw-
camel-idm component.
documents
retrieveDocumentMetadataFirstPage
createDocument
deleteAllDocuments
retrieveDocument
updateDocumentMetadata
You must set the expected headers for the component. These headers are CamelIdm.poolId and
CamelIdm.schemaVersion.
@Override
public void configure() throws Exception {
rest().id("check-idm-create-document")
.post("/check/idm-create-document")
.consumes("application/json")
.produces("application/json")
.description("Checks storing IDM document to given poolId")
.param().dataType("string").type(RestParamType.query).name("poolId").endParam()
.param().dataType("integer").type(RestParamType.query).name("schemaVersion").endParam()
.param().type(RestParamType.body).name("document").endParam()
.to("direct:check-idm-create-document");
from("direct:check-IDM-create-document")
.process(exchange -> {
Map<String, Object> headers = exchange.getIn().getHeaders();
ObjectNode bodyAsObjectNode = (ObjectNode) new ObjectMapper().readTree((InputStream)
exchange.getIn().getBody());
DefaultMessage outbound = new DefaultMessage(exchange);
outbound.setBody(bodyAsObjectNode);
exchange.setMessage(outbound);
exchange.getIn().setHeader("poolId", headers.get("poolId"));
exchange.getIn().setHeader("schemaVersion", headers.get("schemaVersion"));
})
.toD("idm:documents/createDocument?poolId=${header.poolId}&schemaVersion=$
{header.schemaVersion}&inBody=document")
.process(exchange -> {
String response = new ObjectMapper().writeValueAsString(exchange.getIn().getBody());
exchange.getIn().setBody(response);
});
}
@Override
public void configure() throws Exception {
rest().id("check-idm-retrieve-document")
.get("/check/idm-retrieve-document")
.produces("application/json")
.description("Checks retrieve document from IDM")
.param().dataType("string").type(RestParamType.query).name("poolId").endParam()
.param().dataType("string").type(RestParamType.query).name("documentId").endParam()
.to("direct:check-idm-retrieve-document");
from("direct:check-idm-retrieve-document")
.toD("idm:documents/retrieveDocument?poolId=${header.poolId}&documentId=${header.documentId}")
.process(exchange -> {
String response = new ObjectMapper().registerModule(new
JavaTimeModule()).writeValueAsString(exchange.getIn().getBody());
exchange.getIn().setBody(response);
});
}
idm.url = https://idm.api.dev.ccs.guidewire.net/api/v1
Using Helios, the property values are set at the super-galaxy level for PolicyCenter, ClaimCenter, BillingCenter, and
ContactManager. The same value is applicable for all tenants unless it is overwritten at a different Helios layer.
A sample call to create a document is shown below:
uses gw.api.idm.idmClient
uses gw.api.idm.idmClient
.toD("idm:documents/createDocument?poolId=${header.poolId}&schemaVersion=${header.schemaVersion}&searchKey=$
{header.searchKey}&inBody=document")
.toD("idm:documents/getDocumentsBySearchKey?poolId=${header.poolId}&searchKey=${header.searchKey}&pageLimit=$
{header.pageLimit}&forward=${header.forward}")
Security
Security 21
Guidewire PolicyCenter for Guidewire Cloud 2024.02 Integration Data Manager
22 Security
chapter 7
Configuration
Configuration 23
Guidewire PolicyCenter for Guidewire Cloud 2024.02 Integration Data Manager
24 Configuration
chapter 8
Troubleshooting
Issue Reason
Does a document have to Each document is stored within a pool. The pool can be configured so that every new document
conform to its associated added to the pool either is or isn't validated against its schema.
schema?
IP not allowed error. Confirm the URL that is being used to connect to the service. The URL must be a production IDM
server for the appropriate region. Often the wrong region is being used, or an internal development
server is specified. This is usually the case with an Integration Gateway implementation where the
URL must be specified in the configuration file. For an InsuranceSuite app, this issue only occurs if
the URL was overwritten in Helios.
Cannot access IDM through There is currently a bug in GCH that is preventing the gwa.lower.flexistore.admin group
GCH with the gwa.lower. permission from working correctly. As a workaround, the user must have access to an additional
flexistore.admin group group until the issue is resolved. The user will need the group gwa.pd_lower.flexistore.
permission. admin to access the tile in GCH as well as gwa.lower.flexistore.admin to access the IDM
service.
The table below contains the list of IDM API error responses.
403 Project mismatch error - insurer project specified in the deploymentId must match the required project scope.
403 Planet class mismatch error - planet specified in the deploymentId must match the required planet scope.
planet_class.lower is used for non-production planets.
403 Pool scope mismatch error - trying to access a pool without the required pool-level scope.
403 Tenant mismatch error - tenant specified in the deploymentId must match the required tenant scope.
409 Conflict - when creating a pool, there may be an existing pool for the project already created in another package.
500 Size limit exceeded when retrieving multiple documents - the maximum payload size for a request is 10MB. If the
combination of files being retrieved is larger than 10MB, the request will need to be broken up into multiple requests.
Troubleshooting 25
Guidewire PolicyCenter for Guidewire Cloud 2024.02 Integration Data Manager
26 Troubleshooting