DocumentsProduct CategoriesProgress DataDirect Hybrid Data Pipeline - Yearly Subscription
Progress DataDirect Hybrid Data Pipeline - Yearly Subscription
Jun 28, 2024
rootcert.pem
7. Extract server certificates from the PKCS12 file.
openssl pkcs12 -in servercert.pfx -clcerts -nodes -nokeys > servercert.pem
32 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Deployment scenarios
8. Concatenate the certificates and private key in a single PEM file. In this example, the Linux/UNIX cat
command is used to concatenate root certificate, server certificate, and private key.
cat rootcert.pem servercert.pem privatekey.pem > server.bundle.pem
9. Confirm that the PEM file has the private key and the required certificates as described in PEM file format
on page 31.
The resulting server.bundle.pem file should be specified during the installation of the Hybrid Data Pipeline
server.
Converting a Java jks keystore file to a PKCS12 file
A Java jks keystore file must first be converted to a PKCS12 file. The PKCS12 file can then be converted to a
PEM file.
1. Use the following Java keytool command to convert the jks file into a pfx file.
keytool -importkeystore -srckeystore keystore.jks -srcstoretype JKS -deststoretype
PKCS12 -destkeystore target.pfx
2. Enter the keystore password and keystore file alias when prompted.
3. Use the resulting target.pfx file to create a PEM file by following the instructions in Converting a PKCS12
(pfx) file to a PEM file on page 32.
Converting PKCS7 (p7b) file certificates to PEM file certificates
These instructions assume that the private key is already available as a PEM file.
1. Use the following OpenSSL command to convert PKCS7 file certificates to PEM file certificates.
openssl pkcs7 -print_certs -in certificates.p7b -out certificates.pem
2. Concatenate the certificate and private key files. In this example, the Linux/UNIX cat command is used.
cat certificates.pem privatekey.pem > server.bundle.pem
3. Confirm that the resulting PEM file has the private key and the required certificates as described in PEM
file format on page 31.
The resulting server.bundle.pem file should be specified during the installation of the Hybrid Data Pipeline
server.
Converting PKCS7 file certificates to PKCS12 file certificates and adding the private
key to the PKCS12 file
After the certificate and private key files have been converted to the PKCS12 format, the PKCS12 file can then
be converted to a PEM file.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 33Chapter 1: Welcome to DataDirect Hybrid Data Pipeline
1. Use the following OpenSSL command to convert a PKCS7 file to a PKCS12 file.
openssl pkcs7 -print_certs -in certificate.p7b -out certificate.cer
2. Use the following command to add the private key to the PKCS12 file.
openssl pkcs12 -export -in certificate.cer -inkey privatekey.key -out target.pfx
-certfile CACert.cer
3. Use the resulting target.pfx file to create a PEM file by following the instructions in Converting a PKCS12
(pfx) file to a PEM file on page 32.
Converting DER certificates to PEM file certificates
The DER extension is used for binary DER files. These files may also use the CER and CRT extensions.
These instructions assume that the private key is already available as a PEM file.
1. Use the following OpenSSL command to convert DER certificates to PEM file certificates.
openssl x509 -inform der -in certificates.cer -out certificates.pem
2. Concatenate the certificate and private key files. In this example, the Linux/UNIX cat command is used.
cat certificates.pem privatekey.pem > server.bundle.pem
3. Confirm that the PEM file has the private key and the required certificates as described in PEM file format
on page 31.
The resulting server.bundle.pem file should be specified during the installation of the Hybrid Data Pipeline
server.
Creating a PEM file from a private key and Base64 encoded certificates
PEM files use Base64 encoding. Therefore, no conversion process is required. However, the Base64 encoded
certificates and the private key must be concatenated in a single PEM file.
These instructions assume that the private key is already available as a PEM file.
1. Concatenate the certificate and private key files. In this example, the Linux/UNIX cat command is used.
cat Base64rootcert.pem Base64servercert.pem privatekey.pem > server.bundle.pem
2. Confirm that the PEM file has the private key and the required certificates as described in PEM file format
on page 31
The resulting server.bundle.pem file should be specified during the installation of the Hybrid Data Pipeline
server.
Application and driver configuration for standalone deployment
Client applications must be appropriately configured. In conjunction with ODBC and JDBC applications, ODBC
and JDBC drivers will also need to be configured. OData applications will need their own modifications.
For the most part, configuration of the ODBC and JDBC drivers is handled during the installation of the drivers.
If the drivers are installed using the configuration files generated by the Hybrid Data Pipeline server installation,
then they will use the DNS of the host machine. Nevertheless, you may wish to configure the drivers in other
ways.
34 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Deployment scenarios
OData applications must be modified to use the DNS of the host machine for HTTP or HTTPS requests. In
addition, OData applications should be configured for SSL as appropriate.
Firewall and port redirection using iptables for standalone deployment
Hybrid Data Pipeline Web UI and API endpoints are exposed by default on port 8080 for HTTP connections
or port 8443 for HTTPS connections. The iptables firewall utility can be used to route connections from the
standard HTTP port 80 and HTTPS port 443 to these endpoints. In this scenario, ports 80 and 443 will be
accessible to everyone, while ports 8080 and 8443 are only accessible to processing running on the server.
The instructions in the following topics can be applied to RedHat 7, Oracle 7 and Centos 7 distributions of
Linux.
Please see the documentation for your Linux distribution for more information about configuring the firewall.
Note: If you are using a Suse 12 distribution of Linux, use the YaST2 Firewall setting GUI to configure your
firewall. In Suse 12 you can find the firewall setting under Applications > System Tools > YaST >
Adiministrator Settings/Security and Users/Firewall.
Disabling firewalld
If you are using a later version of Linux, it may have come configured with the newer firewalld software. Consult
the documentation for firewalld to determine how to configure it in a similar way, and how to disable firewalld
and use iptables.
To disable firewalld, use the following commands in a console window.
systemctl disable firewalld
systemctl stop firewalld
Installing iptables
Installing iptable requires root privileges.
1. Log in with an admin account.
2. Run sudo -s
3. Use yum to install the iptables services:
a) yum install iptables
b) yum install iptables-ipv6
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 35Chapter 1: Welcome to DataDirect Hybrid Data Pipeline
Creating the iptables configuration file
Create the file /etc/sysconfig/iptables containing the content displayed here (your configuration may be slightly
different). This will require root privileges.
# Generated by iptables-save v1.4.21 on Thu Jun 23 09:05:43 2016
*nat
:PREROUTING ACCEPT [1100:133346]
:INPUT ACCEPT [1:48]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
-A PREROUTING -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8080
-A PREROUTING -p tcp -m tcp --dport 443 -j REDIRECT --to-ports 8443
-A PREROUTING -p tcp --dport 8080 -j MARK --set-mark 1
-A PREROUTING -p tcp --dport 8443 -j MARK --set-mark 2
COMMIT
# Completed on Thu Jun 23 09:05:43 2016
# Generated by iptables-save v1.4.21 on Thu Jun 23 09:05:43 2016
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [378:34583]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -m mark --mark 1 -j DROP
-A INPUT -p tcp -m state --state NEW -m tcp --dport 8080 -j ACCEPT
-A INPUT -m mark --mark 2 -j DROP
-A INPUT -p tcp -m state --state NEW -m tcp --dport 8443 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
# Completed on Thu Jun 23 09:05:43 2016
Starting the iptables service
Start the iptables service using the service command.
service iptables start
Load balancer deployment
Hybrid Data Pipeline configuration depends in part on whether you are deploying the service on a standalone
node or deploying the service on one or more nodes behind a load balancer. A load balancer deployment offers
high availability and scalability, and is therefore the best option for production environments. In a load balancer
deployment, the service is installed on one or more nodes behind a load balancer. Requests are handled by
the load balancer which distributes requests across nodes.
Hybrid Data Pipeline is largely configured during the installation process.When installing the service on multiple
nodes behind a load balancer, the initial installation of the Hybrid Data Pipeline server is used as a template
for installations on additional nodes.The following configuration details should be addressed before installation
to ensure a successful load balancer deployment.
• Login credentials for load balancer deployment on page 37
Passwords for the default administrator and user accounts must be specified during installation of the Hybrid
Data Pipeline server. When initially logging in to the Web UI or using the API, you must authenticate as one
of these users.
36 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Deployment scenarios
• Load balancer configuration on page 38
Hybrid Data Pipeline can be deployed on one or more nodes behind a load balancer to provide high availability
and scalability. Hybrid Data Pipeline supports two types of load balancers.
• Network load balancers that support the TCP tunneling protocol (such as HAProxy)
• Cloud load balancers that support the WebSocket protocol (such as the AWS application load balancer
and the Azure application gateway)
• System database for load balancer deployment on page 44
A system database is required for storing user and configuration information. For load balancer deployments,
an external database is required to serve as the system database. As a best practice, the external system
database should be replicated, or mirrored, to promote the continuous availability of the service.
• Shared files and the key location for load balancer deployment on page 48
The specification of a key location is required during installation. The installation program writes shared
files used in the operation of the data access service to this directory. As a matter of best practices, the key
location should be secured on a machine separate from the machines hosting the Hybrid Data Pipeline
service or the machine hosting the system database.
• Access ports for load balancer deployment on page 49
The access ports used for Hybrid Data Pipeline should be enabled for incoming traffic and unallocated for
other purposes.
• SSL certificates for load balancer deployment on page 49
SSL/TLS encrypted communications between client applications and the load balancer are supported. In
addition, all communications between the On-Premises Connector and the load balancer are SSL/TLS
encrypted. SSL connections between the load balancer and the Hybrid Data Pipeline nodes are currently
not supported.
• Client application configuration for load balancer deployment on page 50
Applications and drivers must be properly configured to ensure a successful deployment of the service.
• Browser configuration for load balancer deployment on page 51
For load balancer deployments, the browser you use to connect to the Web UI must have cookies enabled.
Login credentials for load balancer deployment
You must specify passwords for the default d2cadmin and d2cuser accounts during installation of the Hybrid
Data Pipeline server. The default password policy is not enforced during installation of the server. However,
best practices recommend that you follow the default password policy when specifying these account passwords.
When initially logging in to the Web UI or using Hybrid Data Pipeline APIs, you must authenticate as one of
these users.
Hybrid Data Pipeline default password policy
After installation, Hybrid Data Pipeline enforces the following password policy by default.
• The password must contain at least 8 characters.
• The password must not contain more than 12 characters. A password with a length of 12 characters is
acceptable.
• The password must not contain the username.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 37Chapter 1: Welcome to DataDirect Hybrid Data Pipeline
• Characters from at least three of the following four groups must be used in the password:
• Uppercase letters A-Z
• Lowercase letters a-z
• Numbers 0-9
• Non-white space special characters
Load balancer configuration
The Hybrid Data Pipeline product package does not include a load balancer. However, Hybrid Data Pipeline
can be deployed on one or more nodes behind a load balancer to provide high availability and scalability.
Hybrid Data Pipeline supports two types of load balancers: network load balancers that support the TCP
tunneling protocol and cloud load balancers that support the WebSocket protocol. In turn, the load balancer
must be configured to support the Hybrid Data Pipeline environment according to the following criteria.
• The load balancer must be configured to accept HTTPS connections on port 443 and unencrypted HTTP
connections on port 80.
• The load balancer must be configured for SSL termination to support encrypted communications between
clients and the load balancer. The configuration of the load balancer depends in part on the type of SSL
certificate supplied. See SSL certificates for load balancer deployment on page 49 for details.
• The load balancer must support session affinity. The load balancer must either be configured to supply its
own cookies or to pass the cookies generated by the Hybrid Data Pipeline service back to the client. The
Hybrid Data Pipeline service provides a cookie named C2S-SESSION that can be used by the load balancer.
For ODBC and JDBC applications, the ODBC and JDBC drivers automatically use cookies for session
affinity. OData applications should be configured to echo cookies for optimal performance.
• The load balancer must pass the hostname in the Host header when a request is made to an individual
Hybrid Data Pipeline node. For example, if the hostname used to access the cluster is hdp.mycorp.com
and the individual nodes behind the load balancer have the hostnames hdpsvr1.mycorp.com,
hdpsvr2.mycorp.com, hdpsvr3.mycorp.com, then the Host header in the request forwarded to the
Hybrid Data Pipeline node must be the load balancer hostname hdp.mycorp.com.
• The load balancer must supply the X-Forwarded-Proto header to indicate to the Hybrid Data Pipeline node
whether the request was received by the load balancer as an HTTP or HTTPS request.
• The load balancer must supply the X-Forwarded-For header for IP address filtering. The X-Forwarded-For
header is also required if the client IP address is needed for Hybrid Data Pipeline access logs. If the
X-Forwarded-For header is not supplied, the IP address in the access logs will always be the load balancer''s
IP address.
• The load balancer may be configured to run HTTP health checks against nodes with the Health Check API.
• Additional configuration is required for the following scenarios.
• If you are using the On-Premises Connector with a network load balancer such as HAProxy, see
Configuring a network load balancer with the On-Premises Connector on page 39 for additional
configuration requirements.
• If you are using the On-Premises Connector with a cloud load balancer such as the AWS Application
Load Balancer or the Azure Application Gateway, see Configuring a cloud load balancer with the
On-Premises Connector on page 42 for additional configuration details.
38 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Deployment scenarios
Configuring a network load balancer with the On-Premises Connector
When running Hybrid Data Pipeline behind a network load balancer with an On-Premises Connector, the load
balancer must be configured to route requests for on-premises data sources to the correct server nodes.
There are two general steps involved in configuring your load balancer to support on-premises data access.
First, a custom Access Control List must be created to direct requests for the On-Premises Connector to cluster
nodes. Second, a backend notification pool that specifies the on-premises port for each cluster node must be
created.The following instructions explain how an HAProxy load balancer can be configured to support Hybrid
Data Pipeline access to backend data sources using the On-Premises Connector. These instructions may be
adapted for other load balancers, such as NGINX and F5.
The Hybrid Data Pipeline installation program automatically generates an HAProxy configuration file for each
installation of the server. These HAProxy configuration files are written to the HAProxy subdirectory in the key
location directory specified during installation. These files must be merged to create a single HAProxy
configuration file for a load balancer deployment of Hybrid Data Pipeline.
Take the following steps to create an HAProxy configuration file for a load balancer deployment using the
On-Premises Connector.
1. Create an Access Control List (ACL) to direct requests for the On-Premises Connector to each Hybrid Data
Pipeline server.
Note: Options 1 and 2 below may be used in combination.
• Option 1. Use a custom header to direct requests. Each entry should be prefaced with acl.
In this example, the custom header X-DataDirect-OPC-Host is used to direct requests to the server
service2.myserver.com through the default On-Premises Port 40501.
acl is_opa_hdr_service2_myserver_com_40501 hdr(X-DataDirect-OPC-Host)
-i opa_service2_myserver_com_40501
use_backend opa_service2_myserver_com_40501 if is_opa_hdr_service2_myserver_com_40501
• Option 2. Use URL routing to direct requests. Each entry should be prefaced with acl.
In this example, URL routing is used to direct requests to the server service2.myserver.com through
the default On-Premises Port 40501.
acl is_opa_url_service2_myserver_com_40501 path_end
-i /connect/opa_service2_myserver_com_40501
use_backend opa_service2_myserver_com_40501 if is_opa_url_service2_myserver_com_40501
2. Add each Hybrid Data Pipeline server to the backend notification pool section using the server keyword.
In the following example, the server server2.myserver.com has been added to the backend
hdp_notification_pool section, and health checks have been enabled at the root with the option
httpchk property.
backend hdp_notification_pool
mode http
option http-tunnel
balance roundrobin
option httpchk HEAD /
http-check expect status 200
#HDP Notification Server Definitions
server server1.myserver.com 11.22.111.105:11280 check
server server2.myserver.com 11.22.111.106:11280 check
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 39Chapter 1: Welcome to DataDirect Hybrid Data Pipeline
3. Create a backend pool that specifies the On-Premises Port for each Hybrid Data Pipeline server that supports
the On-Premises Connector by adding a backend section to the configuration file.
For example, the following backend section is for a node on the service2.myserver.com server using
the default On-Premises Port 40501. Health checks have been enabled at the root with the option
httpchk property.
backend opa_service2_myserver_com_40501
mode http
option http-tunnel
option httpchk HEAD /
http-check expect status 200
server service2.myserver.com 11.22.111.106:40501 check
4. Add each Hybrid Data Pipeline server to the default backend pool using the server keyword.
In the following example, server2.myserver.com has been added to the backend
hdp_default_backend pool, and health checks have been enabled by specifying the /api/healthcheck
endpoint with the option httpchk property.
backend hdp_default_backend
mode http
balance roundrobin
option httpchk HEAD /api/healthcheck
http-check expect status 200
cookie HDP_SESSION insert nocache
#HDP Server Definitions
server service1.myserver.com 11.22.11.105:8080 check cookie service1.myserver.com
server service2.myserver.com 11.22.111.106:8080 check cookie service2.myserver.com
Example
The following example demonstrates an HAProxy configuration file for using the load balancer with two server
nodes that have the On-Premises connector enabled, server1.myserver.com and server2.myserver.com.
To create this file, the required sections were copied from the generated configuration file for
service2.myserver.com into the generated file for service1.myserver.com. Copied sections are
indicated with comments.
global
log 127.0.0.1 local0
chroot /var/lib/haproxy
daemon
defaults
log global
mode http
option httplog
option dontlognull
timeout connect 5s
timeout client 15m
timeout server 15m
##############################################################################
# Configuration for OPC with load balancer.
##############################################################################
frontend lb_opc_nodes
bind *:80
#Replace /common/hdpsmoke/shared/redist/ddcloud.pem with the location of the
#loadbalancers SSL certificate
bind *:443 ssl crt /common/hdpsmoke/shared/redist/ddcloud.pem
#In production port 80 should be a permanent redirected to 443 by uncommenting the
40 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Deployment scenarios
#following line
#redirect scheme https code 301 if !{ ssl_fc }
mode http
default_backend hdp_default_backend
#Define rules for HDP Notification Servers
acl is_hdp_notification2 path_end -i /connect/X_DataDirect_Notification_Server
use_backend hdp_notification_pool if is_hdp_notification2
acl is_hdp_notification hdr(X-DataDirect-OPC-Host) -i X_DataDirect_Notification_Server
use_backend hdp_notification_pool if is_hdp_notification
#Rules for on-premises connection to service.myserver.com
acl is_url_opa_service1_myserver_com_40501 path_end
-i /connect/opa_service1_myserver_com_40501
use_backend opa_service1_myserver_com_40501 if is_url_opa_service1_myserver_com_40501
acl is_hdr_opa_service1_myserver_com_40501 hdr(X-DataDirect-OPC-Host)
-i opa_service1_myserver_com_40501
use_backend opa_service1_myserver_com_40501 if is_hdr_opa_service1_myserver_com_40501
#Rules for on-premises connection to service2.myserver.com. These rules were copied
#from the service2.myserer.com configuration file.
acl is_url_opa_service2_myserver_com_40501 path_end
-i /connect/opa_service2_myserver_com_40501
use_backend opa_service2_myserver_com_40501 if is_url_opa_service2_myserver_com_40501
acl is_hdr_opa_service2_myserver_com_40501 hdr(X-DataDirect-OPC-Host)
-i opa_service2_myserver_com_40501
use_backend opa_service2_myserver_com_40501 if is_hdr_opa_service2_myserver_com_40501
backend hdp_notification_pool
mode http
option http-tunnel
balance roundrobin
option httpchk HEAD /
http-check expect status 200
#HDP Notification Server Definitions
server service1.myserver.com 11.22.111.105:11280 check
#The following server argument was copied from the service2.myserver.com
#configuration file
server service2.myserver.com 11.22.111.106:11280 check
backend opa_service1_myserver_com_40501
mode http
option http-tunnel
option httpchk HEAD /
http-check expect status 200
server service1.myserver.com 11.22.111.105:40501 check
#The following section was copied from the service2.myserver.com configuration file.
backend opa_service2_myserver_com_40501
mode http
option http-tunnel
option httpchk HEAD /
http-check expect status 200
server service2.myserver.com 11.22.111.106:40501 check
backend hdp_default_backend
mode http
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 41Chapter 1: Welcome to DataDirect Hybrid Data Pipeline
balance roundrobin
option httpchk HEAD /api/healthcheck
http-check expect status 200
cookie HDP_SESSION insert nocache
#HDP Server Definitions
server service1.myserver.com 11.22.11.105:8080 check cookie service1.myserver.com
#The following server argument was copied from the service2.myserver.com
#configuration file
server service2.myserver.com 11.22.111.106:8080 check cookie service2.myserver.com
Configuring a cloud load balancer with the On-Premises Connector
Hybrid Data Pipeline can be deployed on a web service, such as Amazon Web Services or Microsoft Azure,
behind a cloud load balancer that supports the WebSocket protocol. When using an On-Premises Connector,
the cloud load balancer must be configured to route requests for on-premises data sources to the correct server
nodes.
The instructions in this section describe how an Amazon Web Services load balancer must be configured to
support Hybrid Data Pipeline. These instructions assume that you have completed the following deployment
tasks.
• Created a Virtual Private Cloud (VPC) to host a Hybrid Data Pipeline environment.
• Created AWS compute instances in the VPC for each node that will be used to support the Hybrid Data
Pipeline environment.
• Provisioned an RDS database instance to operate as a system database for storing user and configuration
information.
• Created a file system on a node in the VPC to be used as the key location for shared files.
• Installed the Hybrid Data Pipeline server on each node that will be hosting the service.
• The key location specified during the initial installation must reside on a node in the VPC.
• The system database specified during initial installation must be the RDS database instance for storing
user and configuration information.
• Created an AWS Application Load Balancer in the VPC to connect to Hybrid Data Pipeline.
The following general steps must be taken to configure routing and listening rules in the AWS Application Load
Balancer. The corresponding topics provide detailed instruction for each step.
1. Create a target group for default routing to the Hybrid Data Pipeline service API on page 42
2. Create a target group for notifications on page 43
3. Create a target group for on-premises access on page 43
4. Configure target routing on page 44
Once the Application Load Balancer has been configured with listener and target group rules, you can install
On-Premises Connectors.
Create a target group for default routing to the Hybrid Data Pipeline service API
Take the following steps to create a target group for default routing.
42 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Deployment scenarios
1. Use the AWS console to create a load balancer target group.
2. Specify target group details.
Name -
Protocol – HTTP
Port 8080
Target type – Instance
VPC
3. Set up health checks.
Protocol: HTTP
Port: 8080
Path: /api/healthcheck
4. Save the target group.
5. Register each Hybrid Data Pipeline instance as a target on port 8080.
6. Set the stickiness attribute for the target group to 5 minutes.
Create a target group for notifications
Take the following steps to create a target group for notifications.
1. Use the AWS console to create a load balancer target group.
2. Specify target group details.
Target Group Name:
Protocol HTTP
Port 11280
Target type instance
VPC
3. Set up health checks.
Protocol: HTTP
Path: /
Port: Select traffic port
4. Save the target group.
5. Register each Hybrid Data Pipeline instance as a target on port 11280.
6. Disable stickiness via the stickiness attribute.
Create a target group for on-premises access
Take the following steps to create a target group for on-premises access.
1. Use the AWS console to create a load balancer target group.
2. Specify target group details.
Target Group Name:
Protocol HTTP
Port 40501
Target type instance
VPC
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 43Chapter 1: Welcome to DataDirect Hybrid Data Pipeline
3. Set up health checks.
Protocol: HTTP
Path: /
Port: Select traffic port
4. Save the target group.
5. Register the first Hybrid Data Pipeline instance as a target on port 40501.
6. Disable stickiness via the stickiness attribute.
7. Repeat steps 1 through 6 for each Hybrid Data Pipeline instance.
Configure target routing
Take the following steps to configure target routing.
1. Create a rule to route to the notifications target group by setting Path is to
/connect/X_DataDirect_Notification_Server.
Note: For load balancers that support routing with HTTP headers, the header
X-DataDirect-OPC-Host:X_DataDirect_Notification_Server should be used.
2. For each node running the Hybrid Data Pipeline service, create a rule to route to the corresponding
on-premises access target by setting Path is to /connect/.
Note: The format of the is opa__ where is
the hostname specified during installation with dot characters replaced by underscores, and
is the On-Premises Access port number. For example, the routing key for nc-d2c02.americas.test.com
on port 40501 would be opa_nc-d2c73_americas_test_com_40501.
3. Create a default routing rule. The Forward to attribute should be set to the Hybrid Data Pipeline service
API target group.
Important: Setting the default rule for routing requests to the Hybrid Data Pipeline service API must be
completed after creating the rules for routing to the On-Premises Access and Notifications servers.
System database for load balancer deployment
Hybrid Data Pipeline requires a system database for storing user and configuration information.When deploying
the service behind a load balancer, you must use a supported external database. An external system database
ensures that user and configuration information is consistent across multiple nodes behind the load balancer.
These nodes use the system information on the external system database to access data and return successful
queries. In addition, an external system database provides better security and more flexibility for backing up
system information. As a best practice, the external system database should be replicated, or mirrored, to
promote the continuous availability of the service. Configuring Hybrid Data Pipeline to use a system database
occurs during installation.
44 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Deployment scenarios
External system databases
Hybrid Data Pipeline requires a system database for storing sensitive information used in the operation of the
data access service. For a standalone node deployment, you can opt to use either the embedded internal
database or a supported external database. For a load balancer deployment, you must use an external database.
Depending on the external database you are using, certain requirements must be met. See the following
sections for details.
• Supported databases on page 45
• Oracle requirements
• MySQL Community Edition requirements on page 46
• Microsoft SQL Server requirements on page 47
• PostgreSQL requirements on page 47
Supported databases
Note: Hybrid Data Pipeline supports Amazon RDS instances that are compatible with these supported database
versions.
Database Version
Microsoft Azure SQL Database Microsoft Azure SQL Database 11
Microsoft SQL Server Microsoft SQL Server 2016
Microsoft SQL Server 2014
MySQL Community Edition Support based on MySQL Connector/J 5.12
Oracle Database Oracle 12c R1, R2 (12.1, 12.2)
Oracle 11g R2 (11.2)
PostgreSQL PostgreSQL 11
2 Hybrid Data Pipeline does not provide a driver for MySQL Community Edition. MySQL Connector/J 5.1 must be used to support
the use of MySQL Community Edition as an external system database. Therefore, you should refer to the MySQL Connector/J
5.1 documentation for information on supported versions of MySQL Community Edition.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 45Chapter 1: Welcome to DataDirect Hybrid Data Pipeline
Oracle requirements
If you plan to store system information in an external Oracle database, you must provide the following information.
• Hostname (server name or IP address)
• Port information for the database. The default is 1521.
• SID or Service Name
• Administrator and user account information
• An administrator name and password. The administrator must have the following privileges:
• CREATE SESSION
• CREATE TABLE
• CREATE ANY SYNONYM
• CREATE SEQUENCE
• CREATE TRIGGER
• A user name and password for a standard account.The standard user must have the CREATE SESSION
privileges.
MySQL Community Edition requirements
If you plan on to use a MySQL Community Edition database as an external system database, you must provide
the following.
• A MySQL Connector/J driver, version 5.1, and its location
To download the driver, visit the MySQL developer website at https://dev.mysql.com/.
• Hostname (server name or IP address)
• Port information for the database. The default is 3306.
• Database Name
• Administrator and user account information:
• An administrator user name and password. The administrator must have the following privileges:
• ALTER
• CREATE
• DROP
• DELETE
• INDEX
• INSERT
• REFERENCES
• SELECT
• UPDATE
• A user name and password for a standard account.The standard user must have the following privileges:
• DELETE
46 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Deployment scenarios
• INSERT
• SELECT
• UPDATE
Microsoft SQL Server requirements
If you plan to store system information in an external SQL Server database, you must take the following steps
when setting up the SQL Server database.
1. Create a database schema to be used for storing Hybrid Data Pipeline system information.
2. Create an administrator who can access the newly created schema. The administrator must have the
CREATE TABLE privileges.
3. Create a user who can access the newly created schema. The user must have the CREATE SESSION
privileges.
After the SQL Server database has been setup, you must provide the following information during installation:
• Hostname (server name or IP address)
• Port information for the database. The default is 1433.
• Database Name
• Schema Name
• Administrator and user account information
• An administrator name and password. The administrator must have the CREATE TABLE privileges.
• A user name and password for a standard account.The user must have the CREATE SESSION privileges.
PostgreSQL requirements
If you plan to store system information on an external PostgreSQL database, you must take the following steps
when setting up the PostgreSQL database.
1. Enable the citext PostgreSQL extension.
2. Create a database schema to be used for storing Hybrid Data Pipeline system information.
3. Create an administrator who can access the newly created schema.The administrator must have privileges
to create tables.
4. Create a user who can access the newly created schema. The user must have privileges to select, insert,
update, delete, and sequence tables.
After the PostgreSQL database has been setup, you must provide the following information during installation:
• Hostname (server name or IP address)
• Port information for the database. The default is 5432.
• Database Name
• Administrator and user account information
• An administrator name and password. The administrator must have privileges to create tables.
• A user name and password for a standard account. The user must have privileges to select, insert,
update, delete, and sequence tables.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 47Chapter 1: Welcome to DataDirect Hybrid Data Pipeline
Shared files and the key location for load balancer deployment
Hybrid Data Pipeline requires the specification of a key location during installation. The installation program
writes shared files used in the operation of the data access service to this directory. For a load balancer
deployment, the key location must be accessible to the node or nodes running the service.
Shared files
The following files are stored in the key location for a load balancer deployment.
• .backup: A backup copy of the contents of the install directory from the previous install. This is used to
restore the contents of the directory if there is an error during an upgrade.
• key: Reference to the file containing the encryption key for the Hybrid Data Pipeline database.
• key00: Encryption key for the system database. This key is used to encrypt sensitive information such as
data source user IDs and passwords, security tokens, access tokens and other user or data source identifying
information. If this is not present, or was over written during the installation, then you will not be able decrypt
any of the encrypted information in the system database.
• key-cred: Encryption key for credentials contained in Hybrid Data Pipeline configuration files. Examples
of credentials in the config files include the user ID and password information for the system database.
• db/*: Encrypted information about the system database. The contents of these files are encrypted using
the key-cred key. Used by the installer when performing an upgrade or installing on an additional node.
If these are not present, or do not have valid encoding, the installation or upgrade will fail.
• dddrivers/*: A directory of internally supported drivers that have been updated after a product upgrade.
• drivers/*: The directory used for integrating third party drivers with Hybrid Data Pipeline.
• plugins/*: JAR files for external authentication plugins.
• authKey: Authentication key for the On-Premises Connector. This key is used to encrypt the user ID and
password information in the On-Premises Connector configuration file.The key in this file is encrypted using
a key built into the On-Premises Connector.This encrypted key is included in the OnPremise.properties
configuration file distributed with the On-Premises Connector. If this is overwritten or incorrect, the
On-Premises Connector will not be able to authenticate with Hybrid Data Pipeline.
• ddcloud.jks: Sun SSL keystore. This keystore contains the Hybrid Data Pipeline server SSL certificate
if the SSL termination is done at the Hybrid Data Pipeline server.
• ddcloud.bks: Bouncy Castle SSL keystore. This keystore contains the same SSL certificate as the
ddcloud.jks keystore.This keystore is in the Bouncy Castle keystore format and is used when the server
is configured to run in FIPS compliant mode. Should only be present with FIPS enabled.
• ddcloudTrustStore.jks: Sun SSL truststore. This trustore contains the root CA certificate needed to
validate the server SSL certificate. This truststore is distributed with the On-Premises Connector and with
the ODBC and JDBC drivers, allowing these components to validate the Hybrid Data Pipeline server
certificate.
• ddcloudTrustStore.bks: Bouncy Castle SSL truststore. Should only be present with FIPS enabled.
This truststore contains the root CA certificate needed to validate the server SSL certificate in the Bouncy
Castle keystore format. The Bouncy Castle SSL library does not use the default Java cacerts file, so this
truststore is populated with the contents of the default cacerts file and the root certificate needed to validate
the Hybrid Data Pipeline server certificate. Should only be present with FIPS enabled.
• key-opc: Contains the unencrypted encryption key. The authKey above contains the encrypted version
of this key. This key is not shipped with the On-Premises Connector.
• global.properties: Stores properties and other information shared between nodes in a cluster.
48 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Deployment scenarios
• redist/*: Redistributable files. These files are used to install the On-Premises Connector and the ODBC
and JDBC drivers.
Access ports for load balancer deployment
Multiple access ports on nodes hosting the Hybrid Data Pipeline server must be opened and unassigned to
other functions. The following tables document the required ports and default port numbers. The installation
program for the Hybrid Data Pipeline server confirms that default ports are available and allows new port values
to be assigned when needed. Port values are passed during the installation of Hybrid Data Pipeline servers.
Server Access Port
A Server Access Port must be opened for the load balancer. As a matter of best practices, the load balancer
should be configured for SSL/TLS termination.
Name Default Description
HTTP Port 8080 Port that exposes Hybrid Data Pipeline
Server Internal Ports
The Shutdown Port must be opened. However, as a matter of best practice, the Shutdown Port should not be
available outside the firewall of the Hybrid Data Pipeline server. For a load balancer installation, the Internal
API Port on any node must be open to all the other nodes in the cluster. The Internal API Port should not be
available outside the firewall.
Name Default Description
Internal API Port 8190 Non-SSL port for the Internal API
Shutdown Port 8005 Shutdown port
On-Premises Access Ports
The Message Queue Port must be opened. For a load balancer installation with the On-Premises Connector,
the On-Premises Access Port and the TCP Notification Server Port must be opened for the load balancer.
Name Default Description
On-Premises Port 40501 Port for the On-Premises Connector
TCP Port 11280 Port for the Notification Server
Message Queue Port 8282 Port for the message queue
SSL certificates for load balancer deployment
The following SSL encrypted communications are supported for a load balancer deployment.
• Communications between the browser and the Hybrid Data Pipeline Web UI when the load balancer is
configured for SSL.
• Communications between applications using the REST API, including the OData API, and the load balancer.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 49Chapter 1: Welcome to DataDirect Hybrid Data Pipeline
• Communications between the JDBC or ODBC drivers and the load balancer.
• Communications between the On-Premises Connector and the load balancer.
Important: SSL connections between the load balancer and the Hybrid Data Pipeline nodes are currently not
supported.
The following guidelines should be used when implementing SSL in a Hybrid Data Pipeline environment.
• The load balancer needs to be configured with the root certificate and any intermediate certificates necessary
to establish the chain of trust to the root certificate.
• The root certificate must be specified as the SSL certificate during installation of the Hybrid Data Pipeline
server. When intermediate certificates are required for the trust chain, then the SSL certificate must be
supplied in a PEM file format. When there are no intermediate certificates, then the SSL certificate can be
supplied in either DER or PEM file format.
• The SSL certificate specified during installation is used to generate the trust stores for the ODBC driver,
JDBC driver, and On-Premises Connector.These files are written to the redist directory of the key location
upon installation. Before installing the ODBC driver, the JDBC driver, or the On-Premises Connector, the
trust store and properties files in the redist directory must be copied to the installer directory of the
component you are installing.
Client application configuration for load balancer deployment
Client applications must be appropriately configured. In conjunction with ODBC and JDBC applications, ODBC
and JDBC drivers will also need to be configured. OData applications will need their own modifications.
For the most part, configuration of the ODBC and JDBC drivers is handled during the installation of the drivers.
If the drivers are installed using the configuration files generated by the Hybrid Data Pipeline server installation,
then they will use the hostname of the load balancer or machine hosting the server. However, you may wish
to configure the drivers in other ways.
OData applications must be modified to use the hostname of the load balancer for HTTP or HTTPS requests.
Additionally, for optimal performance, OData applications should be configured to echo cookies for session
affinity. OData applications must also be configured appropriately for SSL. See Node-to-node communication
in OData Hybrid Data Pipeline load balancer environment on page 50 for details on communication between
nodes when an OData client cannot be configured to echo cookies.
Node-to-node communication in OData Hybrid Data Pipeline load balancer environment
In an OData Hybrid Data Pipeline load balancer environment, the load balancer and OData clients should be
configured to handle cookies to achieve session affinity and optimize OData query performance. The load
balancer should supply its own cookies or pass the cookies generated by the Hybrid Data Pipeline service
back to the OData client. In turn, the OData client should echo cookies to allow the load balancer to direct
query requests to the node that initially received the query.
However, it is not always possible to configure an OData client to echo cookies. In such cases, Hybrid Data
Pipeline uses an internal mechanism called the distributed file persistence manager.When a query is executed
that requires file persistence, execution results are stored temporarily on the node that initially received the
query. The manager associates the query with the node and the execution results stored there. If a request
from the same query is routed to a different node in the cluster, the manager obtains the persisted execution
results from the original node. The query results are then returned to the client by the node that received the
request.
50 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Deployment scenarios
The distributed file persistence manager requires node-to-node communication using the HTTP protocol to
achieve session affinity. The Internal API Port specified during Hybrid Data Pipeline server installation is the
port used for this node-to-node communication. Data remains secure in the following respects. First, the Internal
API Port (8190 default) is not exposed externally to the public facing network. Each node registers itself using
this port, and communications are restricted. Second, a UUID is generated during the node registration process.
This UUID is passed in as an HTTP header to confirm the validity of node-to-node communications. Third, the
service stores persisted files on only a temporary basis.
Browser configuration for load balancer deployment
For load balancer deployments of Hybrid Data Pipeline, the browser you use to connect to the Web UI must
have cookies enabled.
Exposing on-premises data sources to cloud-based applications
This scenario describes a deployment where on-premises data sources are exposed for secure access by
cloud-based applications. For this deployment, a Hybrid Data Pipeline server is installed in the cloud, and the
On-Premises Connector is used to perform secure connections through the firewall to the backend data store.
The cloud-based application is located in a separate cloud but connects with Hybrid Data Pipeline through an
API such as OData, ODBC, or JDBC.
This deployment could be suitable for an independent software vendor who wants to embed Hybrid Data
Pipeline services in the cloud to give the cloud application users access to their data that resides in the data
center or other on-premises systems.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 51Chapter 1: Welcome to DataDirect Hybrid Data Pipeline
Connecting an application in the cloud to on-premises data sources
This scenario describes a deployment where the Hybrid Data Pipeline server is installed behind a firewall with
on-premises data sources while a number of applications reside in the cloud. With the Hybrid Data Pipeline
server behind a firewall, a cloud-based service does not need to be maintained, and SSL can be used to secure
your data.
This deployment scenario could be suitable when using cloud-based OData applications, for example, creating
a real-time connectivity between Salesforce and an on-premises database.
External JRE support and integration
Hybrid Data Pipeline uses an embedded JRE at runtime. However, you can integrate an external JRE with a
standing deployment of Hybrid Data Pipeline. The following JREs are currently supported.
• Oracle Java 8 JRE
• OpenJDK 8 JRE
Hybrid Data Pipeline must be installed on at least one server before you proceed with integrating an external
JRE. Files associated with the embedded JRE can then be used to modify the external JRE you wish to use
with the Hybrid Data Pipeline server or the On-Premises Connector.
Note: Using an external JRE with the server is exclusive from using an external JRE with the On-Premises
Connector. That is, the server can run on an external JRE while the On-Premises Connector runs on the
embedded JRE, and vice versa.
The following work flow outlines the procedure for integrating an external JRE. See the corresponding topics
for details.
1. Modify the external JRE.
• Option 1. Non-FIPS environment.
52 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Deployment scenarios
• Option 2. FIPS environment.
Note: FIPS is not supported for the On-Premises Connector with either embedded or external JREs.
2. If integrating the external JRE with the server, configure the server to use the JRE.
3. If integrating the external JRE with the On-Premises Connector, configure the connector to use the JRE.
See also
Importing data store SSL certificates on page 55
Modify the external JRE for a non-FIPS environment
Take the following steps to modify an external JRE for a non-FIPS environment.
Note:
• is the installation directory of the Hybrid Data Pipeline server.
• is the home directory of the external JRE.
1. Enable the Unlimited Strength Jurisdiction Policy according to the JRE vendor documentation. Depending
on the vendor and version, the Unlimited Strength Jurisdiction Policy may be enabled by default.
Note: Enabling the Unlimited Strength Jurisdiction Policy is the only modification required for using an
external JRE with the On-Premises Connector. Therefore, the remaining steps can be ignored if the JRE
is to be used only with the On-Premises Connector.
2. Copy the /ddcloud/utils/jre/lib/ext/bc-fips-1.0.0.jar file to the
/lib/ext directory.
3. Merge the contents of the embedded JRE
/ddcloud/utils/jre/lib/security/java.policy.sun file into the external
JRE /lib/security/java.policy file.
Note:
• Any previously made customizations to the /lib/security/java.policy
should be preserved.
• Any permissions for data sources in the embedded JRE java.policy.sun file should be carried over
to the external JRE java.policy file.
4. Merge the contents of the embedded JRE
/ddcloud/utils/jre/lib/security/java.security.sun file into the
external JRE /lib/security/java.security file.
Note:
• Any previously made customizations to the /lib/security/java.security
should be preserved.
• Any properties enabled in the embedded JRE java.security.sun file should be carried over to the
external JRE java.security file.
What to do next:
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 53Chapter 1: Welcome to DataDirect Hybrid Data Pipeline
• Configure the server to use the external JRE.
• Configure the On-Premises Connector to use the external JRE.
Modify the external JRE for a FIPS environment
Take the following steps to modify an external JRE for a FIPS environment.
Note: FIPS is not supported for the On-Premises Connector with either embedded or external JREs.
Note:
• is the installation directory of the Hybrid Data Pipeline server.
• is the home directory of the external JRE.
1. Enable the Unlimited Strength Jurisdiction Policy according to the JRE vendor documentation. Depending
on the vendor and version, the Unlimited Strength Jurisdiction Policy may be enabled by default.
2. Copy the /ddcloud/utils/jre/lib/ext/bc-fips-1.0.0.jar file to the
/lib/ext directory.
3. Merge the contents of the embedded JRE
/ddcloud/utils/jre/lib/security/java.policy.bcfips file into the
external JRE /lib/security/java.policy file.
Note:
• Any previously made customizations to the /lib/security/java.policy
should be preserved.
• Any permissions for data sources in the embedded JRE java.policy.bcfips file should be carried
over to the external JRE java.policy file.
4. Merge the contents of the embedded JRE
/ddcloud/utils/jre/lib/security/java.security.bcfips file into the
external JRE /lib/security/java.security file.
Note:
• Any previously made customizations to the /lib/security/java.security
should be preserved.
• Any properties enabled in the embedded JRE java.security.bcfips file should be carried over to
the external JRE java.security file.
What to do next:
Configure the server to use the external JRE.
Configure the server to use the external JRE
Once you have modified the external JRE, you can configure the server to use the external JRE by performing
an upgrade installation of the server. During the upgrade, you will be prompted specify whether you are using
the embedded JRE or an external JRE. If you select external JRE, you must specify the path to the external
JRE.
54 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Deployment scenarios
If you are using a response file to perform a silent upgrade, best practices recommend that you use the
installation program to generate the response file. However, you may opt to edit the response file manually. If
editing the response file manually, you must add Java configuration options to the response file. The options
and values depend on whether the response file is based on the GUI installation template or the console mode
installation template.
GUI mode
#Java Configuration#
------------------
SPECIFY_JAVA_HOME_NO=0
SPECIFY_JAVA_HOME_YES=1
HDP_JAVA_HOME_DIR=/usr/lib/jvm/jre-1.8.0-openjdk-1.8.0.181-3.b13.el7_5.x86_64
SPECIFY_JAVA_HOME_NO indicates whether you are using an external JRE. If you are using an external JRE,
specify 0.
SPECIFY_JAVA_HOME_YES indicates whether you are using an external JRE. If you are using an external
JRE, specify 1.
HDP_JAVA_HOME_DIR specifies the path to the external JRE to be used at runtime.
Console mode
#Java Configuration#
------------------
SPECIFY_JAVA_HOME_YESNO=\"Yes\",\"\"
HDP_JAVA_HOME_DIR_CONSOLE=\"/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.102-4.b14.el7.x86_64/jre\"
Important: The escape characters, as shown in this example, are required for a response file based on the
console mode template.
SPECIFY_JAVA_HOME_YESNO indicates whether you are using an external JRE. If you are using an external
JRE, specify Yes.
HDP_JAVA_HOME_DIR_CONSOLE specifies the path to the external JRE to be used at runtime.
What to do next:
If integrating the external JRE with the On-Premises Connector, configure the connector to use the JRE.
Configure the On-Premises Connector to use the external JRE
To use an external JRE with an On-Premises Connector, the JRE''s Unlimited Strength Jurisdiction Policy must
be enabled. No other modifications to the JRE are required to use it with an On-Premises Connector. Depending
on the vendor and version of the JRE, the Unlimited Strength Jurisdiction Policy may be enabled by default.
Once the Unlimited Strength Jurisdiction Policy has been enabled, you can configure the On-Premises Connector
to use the external JRE when installing or upgrading the connector. During installation or upgrade, you will be
prompted to specify whether you are using the embedded JRE or an external JRE. If you select external JRE,
you must specify the path to the external JRE.
Importing data store SSL certificates
The Hybrid Data Pipeline server and On-Premises Connector use a JRE at runtime. When connecting to a
data store secured with a self-signed certificate, you must import that self-signed certificate into the truststore
of the JRE used at runtime.You may also need to import a certificate if you are using a certificate from a
less-well-known certificate authority.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 55Chapter 1: Welcome to DataDirect Hybrid Data Pipeline
Note: To view the certificates in a JRE truststore, navigate to the truststore directory and use the keytool utility
to list supported certificates. For example:
JAVA_HOME/bin/keytool -list -v -keystore cacerts
See the following sections for instructions on importing SSL certificates into JRE truststores.
• Importing certificates into the Hybrid Data Pipeline server JRE truststore
• Importing certificates into the On-Premises Connector JRE truststore
Importing certificates into the Hybrid Data Pipeline server JRE truststore
If you are connecting from the Hybrid Data Pipeline server to the data store, you must update the truststore
on each node running the server. The location of the truststore depends on whether you are using the default,
embedded JRE or an external JRE.
• Embedded JRE trustore location: hdp_install_dir/jre/lib/security/cacerts, where
hdp_install_dir is the Hybrid Data Pipeline installation directory.
• External JRE truststore location: jre_install_dir/jre/lib/security/cacerts, where
jre_install_dir is the installation directory of the external JRE used by the server.
Take the following steps to import an SSL certificate into the Hybrid Data Pipeline server JRE truststore:
1. From your console, navigate to the JRE trustore directory. For example:
cd hdp_install_dir/jre/lib/security
2. Use the keytool to import the certificate file. In the following example, the certificate file is in the PEM file
format.
JAVA_HOME/bin/keytool -importcert -file full_path/selfsignedcert.pem
-keystore cacerts -storetype JKS -storepass changeit
Note: The default password for the JRE truststore embedded with the Hybrid Data Pipeline server is
changeit.
3. Restart the Hybrid Data Pipeline service.
a. Run the stop service script.
./install_dir/ddcloud/stop.sh
Note: Shutting down Hybrid Data Pipeline can take a few minutes. Wait until you see the Shutdown
complete message displayed on the console before taking any additional actions.
b. Run the start service script.
./install_dir/ddcloud/start.sh
4. Follow steps 1-3 for each node running the Hybrid Data Pipeline service.
5. Test connectivity to the data store by setting up a Hybrid Data Pipeline data source and running a query
against it.
56 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Deployment scenarios
Importing certificates into the On-Premises Connector JRE truststore
If you are connecting to an on-premise data store with the On-Premises Connector, you must update the
truststore of any On-Premises Connector that is being used to connect to the data store. The location of the
On-Premises Connector truststore depends on whether you are using the default, embedded JRE or an external
JRE.
• Embedded JRE trustore location:opc_install_dir\OPDAS\ConfigTool\ddcloudTrustStore.jks,
where opc_install_dir is the On-Premises Connector installation directory.
• External JRE truststore location: jre_install_dir\jre\lib\security\cacerts, where
jre_install_dir is the installation directory of the external JRE used by the On-Premises Connector.
Take the following steps to import an SSL certificate into the On-Premises Connector JRE truststore:
1. From your console, navigate to the JRE trustore directory. For example:
cd opc_install_dir\OPDAS\ConfigTool\ddcloudTrustStore.jks
2. Use the keytool to import the certificate file. In the following example, the certificate file is in the PEM file
format.
JAVA_HOME\bin\keytool -importcert -file full_path/selfsignedcert.pem
-keystore ddcloudTrustStore.jks -storetype JKS
Note: There is no default password for the JRE embedded with the On-Premises Connector. If you are
updating the embedded JRE, press Enter when prompted for the truststore password to continue.
3. Restart the On-Premises Connector.
a. Select Stop Services from the Progress DataDirect Hybrid Data Pipeline On-Premises Connector
program group.
b. After the service has stopped, select Start Services from the Progress DataDirect Hybrid Data Pipeline
On-Premises Connector program group.
c. Select Configuration Tool from the Progress DataDirect Hybrid Data Pipeline On-Premises Connector
program group.
d. Select the Status tab and click Test to verify that the On-Premises Connector configuration is correct.
4. Follow steps 1-3 for each On-Premises Connector that may be used to connect to the data store using the
new certificate.
5. Test connectivity to the data store by setting up a Hybrid Data Pipeline data source and running a query
against it.
See also
External JRE support and integration on page 52
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 57Chapter 1: Welcome to DataDirect Hybrid Data Pipeline
58 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.12
Administering Hybrid Data Pipeline
The administration of Hybrid Data Pipeline involves the management of three basic resources common to any
Hybrid Data Pipeline environment: tenants, user accounts, and data sources.
A Hybrid Data Pipeline system administrator can develop either a single-tenant or multitenant architecture. In
a single-tenant architecture, the system administrator creates user accounts in the default system tenant. In a
multitenant architecture, the system administrator first creates one or more child tenants in the system tenant.
Then, the system administrator may create user accounts in either the system tenant or any one of the child
tenants. The user accounts that reside in one tenant are isolated from those in other tenants.
Once a tenant architecture has been established, a system administrator can provision user accounts in two
general ways. First, an administrator can provision an account such that the user has direct access to the
Hybrid Data Pipeline service. In this case, the administrator can provision the user to create, manage, and
query data sources. The administrator can also promote or restrict access to Hybrid Data Pipeline features,
such as the Web UI, the SQL Editor, and the Management API.
Alternatively, an administrator can provision an account such that user access is limited to queries against a
data source. For example, an administrator may want to provision user access such that a user can run an
OData application against a backend data store. In this scenario, the administrator creates the data source
and supplies the end user with connection information for the data source. The end user can query the data
store with the connection information supplied, but he or she does not have access to the connection information
stored in the data source definition or to Hybrid Data Pipeline itself.
Beginning with information on initial log in, the topics in this section provide information on administering Hybrid
Data Pipeline and configuring Hybrid Data Pipeline features.
For details, see the following topics:
• Initial login with default user accounts
• Permissions and default roles
• Logging in to the Web UI
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 59Chapter 2: Administering Hybrid Data Pipeline
• Using Hybrid Data Pipeline APIs
• Using the Web UI
• Tenant architectures
• User provisioning
• Authentication
• Password policy
• Enabling and disabling the password policy
• Configuring change password behavior
• Implementing an account lockout policy
• Transactions
• Implementing IP address whitelists
• Throttling
• Configuring CORS behavior
• FIPS (Federal Information Processing Standard)
• Data source logging
• SQL statement auditing
• Using third party JDBC drivers with Hybrid Data Pipeline
• Configuring Hybrid Data Pipeline to authorize client applications using OAuth 2.0
• Integrating Hybrid Data Pipeline with a Google OAuth 2.0 authorization flow to access Google Analytics
• Troubleshooting
Initial login with default user accounts
You must specify passwords for the default d2cadmin and d2cuser accounts during installation of the Hybrid
Data Pipeline server. Best practices recommend that you follow the Hybrid Data Pipeline default password
policy when specifying these account passwords. When initially logging in to the Web UI or using Hybrid Data
Pipeline APIs, you must authenticate as one of these users.
The d2cadmin account has the default System Administrator role.The System Administrator role has all Hybrid
Data Pipeline permissions.The d2cuser account has the default User role.The User role has a set of permissions
associated with standard user tasks. (See Permissions and default roles on page 61 for details.) These default
roles cannot be deleted. However, the users associated with them can be modified through the Web UI or
Hybrid Data Pipeline APIs.
As a matter of best practices, you should consider removing the default d2cadmin and d2cuser accounts. To
remove the default d2cadmin account, you must create at least one other user with the Administrator permission.
When you log in through the new account that has the Administrator permission, you can then remove the
default d2cadmin account. Hybrid Data Pipeline requires that at least one user have the Administrator permission.
However, as a matter of best practices, more than one user should have Administrator permission at any time.
For more information on provisioning users, see Tenant architectures on page 87 and User provisioning on
page 112.
60 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Permissions and default roles
See also
Logging in to the Web UI on page 63
Using Hybrid Data Pipeline APIs on page 64
Permissions and default roles on page 61
Tenant architectures on page 87
User provisioning on page 112
Permissions and default roles
Hybrid Data Pipeline user accounts are required to have at least one role. A user account with a given role
inherits all the permissions associated with that role. Roles can be assigned and managed either through the
Users API or the Web UI. However, the users API must be used to associate a permission directly with a user
account. The permissions for a user account are the sum of the permissions granted to the role(s) associated
with the account and the permissions granted explicitly on the account.
Hybrid Data Pipeline provides three default roles in the system tenant: System Administrator, Tenant
Administrator, and User. As detailed in the table below, the System Administrator role has all permissions, the
Tenant Administrator role has tenant and user permissions, and the User role has only user permissions.These
roles cannot be deleted, and only the users associated with them can be modified.
When building out a Hybrid Data Pipeline environment, it can be useful for administrators to consider permissions
in terms of the following categories.
• User permissions support the ability of users to create and manage their own data sources directly through
the Web UI, the Management API, or both.
• Tenant permissions support the ability of administrators to provision and manage users on a tenant-by-tenant
basis. The OnBehalfOf permission allows administrators to create and manage resources on behalf of
users. This on-behalf-of functionality allows administrators to obscure or conceal the service from users.
• Elevated permissions support the ability of administrators to use administrative features, such as throttling
and logging. The operations associated with these permissions can affect all users of the system and may
not be isolated on a tenant-by-tenant basis.
Important: To administer user accounts and other resources that belong to a tenant, a tenant administrator
must be given explicit administrative access to the given tenant. In the Web UI, administrative access to a
tenant can be granted by editing a user account via the Manage Users view on page 67. With the API,
administrative access can be granted either by updating the tenants administered for a user via the Users API
or by updating the list of administrators for a tenant via the Tenant API.
Note: A subset of permissions can be set on data sources. See Data source permissions on page 1350 for
details.
Permission System Tenant User Category ID Description
admin admin
CreateDataSource x x x user 1 May create new data sources
ViewDataSource x x x user 2 May view the details of any data source
they own
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 61Chapter 2: Administering Hybrid Data Pipeline
Permission System Tenant User Category ID Description
admin admin
ModifyDataSource x x x user 3 May modify or update any data source
they own
DeleteDataSource x x x user 4 May delete any data source they own
UseDataSourceWithJDBC x x x user 5 May connect to any data source they
own with the JDBC driver
UseDataSourceWithODBC x x x user 6 May connect to any data source they
own with the ODBC driver
UseDataSourceWithOData x x x user 7 May make OData requests to any data
source they own
WebUI x x x user 8 May use the Web UI with data sources
they own. Operations on the data source
through the Web UI will be limited based
on the permissions they have been
granted
ChangePassword x x x user 9 May use the Web UI to change their
password
SQLEditorWebUI x x x user 10 May query the data sources they own
with the SQL Editor in the Web UI
MgmtAPI x x x user 11 May use the Management API
CreateUsers x x tenant 13 May create users in administered tenants
ViewUsers x x tenant 14 May get lists of users and their
information in administered tenants
ModifyUsers x x tenant 15 May modify user information in
administered tenants
DeleteUsers x x tenant 16 May delete users in administered tenants
CreateRole x x tenant 17 May create roles in administered tenants
ViewRole x x tenant 18 May get lists of roles and their
information in administered tenants
ModifyRole x x tenant 19 May modify role information in
administered tenants
DeleteRole x x tenant 20 May delete roles in administered tenants
OnBehalfOf x x tenant 21 May use ?user= to manage user''s
data sources in administered tenants
62 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Logging in to the Web UI
Permission System Tenant User Category ID Description
admin admin
Configurations x elevated 22 May view and modify system
configuration values
CORSwhitelist x elevated 23 May view and modify the CORS whitelist
Logging x elevated 24 May view and modify logging settings
TenantAPI x elevated 25 May use the Tenant API to create, view,
modify or delete tenants
RegisterExternalAuthService x elevated 26 May create, view, modify, or delete
authentication services in administered
tenants
Limits x elevated 27 May see and modify limit values for
administered tenants, users in
administered tenants, and data sources
of users in administered tenants
OAuth x elevated 28 May specify and update OAuth
information that a data source uses for
authentication
IPWhiteList x elevated 29 May create, view, modify or delete IP
whitelists
Administrator x system 12 May use the Administrator API. A user
admin with the Administrator permission has all
permissions and access privileges
across the system. This permission can
only be granted to a user in the system
tenant.
See also
Tenant architectures on page 87
User provisioning on page 112
Logging in to the Web UI
Logging in to the Web UI is a two step process. First, you must enter the URL of your Hybrid Data Pipeline
instance in the address field of a supported browser. Then, you must enter your username and password at
the Hybrid Data Pipeline login screen.
A URL includes the Web protocol, a server name, and a port number. For example:
https://MyServer:8443/hdpui
The syntax for this URL can be described as follows.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 63Chapter 2: Administering Hybrid Data Pipeline
webprotocol://servername:portnumber
where
webprotocol
is the Web protocol, such as HTTP or HTTPS, used to connect to your Hybrid Data Pipeline instance.
servername
is the name of the machine hosting the Hybrid Data Pipeline service, or the name of the machine
hosting the load balancer used to route requests to the Hybrid Data Pipeline service.
portnumber
is the port number of the machine hosting the Hybrid Data Pipeline service, or the port number of
the machine hosting the load balancer used to route requests to the Hybrid Data Pipeline service.
For a standalone installation, the port number is specified as the Server Access Port during installation.
For a load balancer installation, the port number must be either 80 for http or 443 for https.Whenever
port 80 or 433 are used, it is not necessary to include the port number in the URL.
See also
Initial login with default user accounts on page 60
Using the Web UI on page 65
Using Hybrid Data Pipeline APIs on page 64
Using Hybrid Data Pipeline APIs
Hybrid Data Pipeline provides a representational state transfer (REST) application programming interface (API)
for managing Hybrid Data Pipeline connectivity service resources.
Hybrid Data Pipeline APIs use HTTP Basic Authentication to authenticate user accounts. The Hybrid Data
Pipeline user ID and password are encoded in the Authorization header.The Hybrid Data Pipeline user specified
in the Authorization header is the authenticated user.
To execute REST calls, you must pass a valid REST URL and pass a valid username and password to
authenticate with basic authentication. A REST URL must include a base and resource-specific information.
The base includes the Web protocol, a server name, and a port number, while resource-specific information
provides a path to a particular resource necessary for performing an API operation. For example:
https://MyServer:8443/api/mgmt/datasources
Note: The port number is only required if the Hybrid Data Pipeline server or load balancer is configured to use
a port other than 443 for SSL or 80 for non-SSL connections.
The syntax for a REST URL can be described as follows.
webprotocol://servername:portnumber/resourceinfo
where
webprotocol
is the Web protocol, such as HTTP or HTTPS, used to connect to your Hybrid Data Pipeline instance.
64 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Using the Web UI
servername
is the name of the machine hosting the Hybrid Data Pipeline service, or the name of the machine
hosting the load balancer used to route requests to the Hybrid Data Pipeline service.
portnumber
is the port number of the machine hosting the Hybrid Data Pipeline service, or the port number of
the machine hosting the load balancer used to route requests to the Hybrid Data Pipeline service.
For a standalone installation, the port number is specified as the Server Access Port during installation.
For a load balancer installation, the port number must be either 80 for http or 443 for https.Whenever
port 80 or 433 are used, it is not necessary to include the port number in the URL.
resourceinfo
is resource-specific information that provides a path to a particular Hybrid Data Pipeline resource
necessary to perform an API operation.
See also
Hybrid Data Pipeline API reference on page 1065
Initial login with default user accounts on page 60
User provisioning on page 112
Logging in to the Web UI on page 63
Using the Web UI
The Hybrid Data Pipeline Web UI consists of views which can be selected from the navigation bar to the left.
Access to these views, and the ability to execute operations they support, depend on permissions granted to
the user (see Permissions and default roles on page 61 for details). These views include:
• Manage Tenants
• Manage Users
• Manage Roles
• Data Sources
• SQL Editor
• Manage External Authentication
• Manage IP WhiteList
• Manage Limits
• System Configurations
See the following topics for details on these views and other features of the Web UI.
• Manage Tenants view on page 66
• Manage Users view on page 67
• Manage Roles view on page 69
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 65Chapter 2: Administering Hybrid Data Pipeline
• Data Sources view on page 71
• SQL Editor view on page 77
• Manage External Authentication view on page 79
• Manage IP WhiteList view on page 80
• Manage Limits view on page 82
• System Configurations view on page 85
• User profile on page 87
• Changing your password in the Web UI on page 87
• Product information on page 86
Manage Tenants view
The Manage Tenants view provides a list of tenants with description and status information for each tenant.
With the appropriate permissions, you can add, modify, and delete tenants using this view.
The Manage Tenants view is available to users with either set of the following permissions.
• Administrator (12) permission
• WebUI (8) and TenantAPI (25) permissions, and administrative access on tenants the user administers
The following table provides permissions and descriptions for each action in the Manage Tenants view.
Note: Any user with Administrator (12) permission may perform all actions.
66 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Using the Web UI
Action Permissions Description
Create new WebUI (8) To create a new tenant, click + New Tenant. Define the
tenant tenant with settings under each of the following tabs.
TenantAPI (25)
• General tab. Enter values in the given fields.The tenant
name is required.
• Roles tab. Import roles from the parent tenant, if desired.
• Limits tab. Set limits as desired.
Edit a tenant Administrative access for the To edit a tenant, select a tenant from the list of tenants.
tenant Then, select Edit from the Actions dropdown. Edit the
tenant settings as desired.
WebUI (8)
TenantAPI (25)
Delete a tenant Administrative access for the To delete a tenant, select the tenant you want to delete.
tenant Then, select Delete from the Actions dropdown. Confirm
or cancel the delete operation in the dialog.
WebUI (8)
TenantAPI (25)
View tenant Administrative access for the To view the users of a tenant, select the tenant from the list
users tenant of tenants. Then, select View Users from the Actions
dropdown.You are directed to the Manage Users view
WebUI (8)
where a list of users belonging to the tenant is displayed.
ViewUsers (14) See Manage Users view on page 67 for details.
TenantAPI (25)
Transfer tenant Administrative access for the To transfer users from the system tenant to a child tenant,
users system tenant and the tenant select the child tenant from the list of tenants. Then, select
to which user(s) will be Transfer Users from the Actions dropdown.You are
transferred directed to the Transfer User From System Tenant page.
Select each user you want to transfer to the child tenant,
WebUI (8)
and choose a role for each user from the role dropdown.
ViewUsers (14)
ModifyUsers (15) Note: Users can only be transferred from the system tenant
to a child tenant.
TenantAPI (25)
Manage Users view
The Manage Users view provides a list of users with roles and status information for a given tenant. With the
appropriate permissions, you can add, update, and delete users using this view.
The Manage Users view is available to users with either set of the following permissions.
• Administrator (12) permission
• WebUI (8) permission, ViewUsers (14) permission, ViewRole (18) permission, and administrative access
on the tenant to which the users belong
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 67Chapter 2: Administering Hybrid Data Pipeline
The following table provides permissions and descriptions for each action in the Manage Users view.
Note: Any user with Administrator (12) permission may perform all actions.
Action Permissions Description
Filter users by Administrative access to An administrator with administrative access to multiple
tenant multiple tenants tenants will have the option of selecting the tenant for which
he or she wants to view or manage users. Select the tenant
Web UI (8)
for which you want to view users from the Select Tenant
ViewUsers (14) dropdown.
ViewRole (18)
Create a new Administrative access for the To create a new user, click + New User. Define the user
user tenant with settings under each of the following tabs.
Web UI (8) • General tab. Enter values in the given fields. User name
CreateUsers (13) and role are required.
ViewUsers (14) • Authentication Setup tab. The required information
depends on the type of authentication you are using.
ViewRole (18) See Authentication on page 148 for details.
• Limits tab. Set limits as desired.
• Tenant Admin Access tab. Grant the user
administrative access to tenant(s), if desired.
68 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Using the Web UI
Action Permissions Description
Edit a user Administrative access for the To edit a user, select a user from the list of users. Then,
tenant select Edit from the Actions dropdown. Edit user settings
as desired.
WebUI (8)
ViewUsers (14)
ModifyUsers (15)
ViewRole (18)
Delete a user Administrative access for the To delete a user, select the user you want to delete. Then,
tenant select Delete from the Actions dropdown. Confirm or cancel
the delete operation in the dialog.
WebUI (8)
ViewUsers (14)
DeleteUsers (16)
ViewRole (18)
View the data Administrative access for the To view the data sources owned by a user, select a user
sources owned tenant from the list of users. Then, select Data Sources from the
by a user Actions dropdown. A list of data sources owned by the
WebUI (8)
user is displayed.
ViewUsers (14)
ViewRole (18)
OnBehalfOf (21)
Manage Roles view
The Manage Roles view provides a list of roles for a given tenant. With the appropriate permissions, you can
add, update, and delete roles using this view.
The Manage Roles view is available to users with either set of the following permissions.
• Administrator (12) permission
• WebUI (8) permission, ViewRole (18) permission, and administrative access on the tenant to which the
role(s) belong
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 69Chapter 2: Administering Hybrid Data Pipeline
The following table provides permissions and descriptions for each action in the Manage Roles view.
Note: Any user with Administrator (12) permission may perform all actions.
Action Permissions Description
Filter roles by Administrative access to An administrator with administrative access to multiple
tenant multiple tenants tenants will have the option of selecting the tenant for which
he or she wants to view or manage roles. Select the tenant
Web UI (8)
for which you want to view roles from the Select Tenant
ViewRole (18) dropdown.
Create a new role Administrative access for the To create a new role, click + New Role. Provide a name
tenant and description for the new role. Then, select permissions
to define the role.
Web UI (8)
CreateRole (17)
ViewRole (18)
70 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Using the Web UI
Action Permissions Description
Edit a role Administrative access for the To edit a role, select the role from the list of roles. Then,
tenant select Edit from the Actions dropdown. Edit the role as
desired.
WebUI (8)
ViewRole (18)
ModifyRole (19)
Delete a role Administrative access for the To delete a role, select the role you want to delete. Then,
tenant select Delete from the Actions dropdown. Confirm or cancel
the delete operation in the dialog.
WebUI (8)
ViewRole (18)
DeleteRole (20)
Data Sources view
The Data Sources view allows you to manage data sources and data source groups. The Data Sources view
is available to users with either set of the following permissions.
• Administrator (12) permission
• WebUI (8) and ViewDataSource (2) permissions
The Data Sources view consists of the following pages.
• Data Sources
• Data Source Groups
Data Sources
The Data Sources page enables you to create, edit, delete, and share data source definitions. A data source
definition configures the connection between Hybrid Data Pipeline and a data store.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 71Chapter 2: Administering Hybrid Data Pipeline
The following table provides permissions and descriptions for basic actions in the Data Sources page. For
detailed information on creating data sources, see Creating data sources with the Web UI on page 240 and
How to create a data source in the Web UI on page 240.
Note: With the appropriate permissions, administrators can view data sources owned by other users through
the Web UI. However, administrators cannot create, modify, delete, or share data sources owned by other
users through the Web UI. To create, modify, delete, or share data sources that belong to other users,
administrators must use Hybrid Data Pipeline APIs. See Data Sources API on page 1306 and Managing resources
on behalf of users on page 1310 for further details.
Action Permissions Description
Filter data Administrative access to An administrator with administrative access to multiple
sources by multiple tenants tenants will have the option of filtering by tenants to view
tenant data sources owned by a given user. Select the tenant in
WebUI (8)
which the user resides from the Select Tenant dropdown.
ViewDataSource (2)
ViewUsers (14)
Note: Any user with the
Administrator (12) permission
can view the data sources of
any user across all tenants.
72 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Using the Web UI
Action Permissions Description
Filter data Administrative access to the A user with administrative access to a tenant can filter data
sources by user tenant sources by user. Select the user whose data sources you
want to view from the Select User dropdown.
WebUI (8)
ViewDataSource (2)
ViewUsers (14)
Note: Any user with the
Administrator (12) permission
can view the data sources of
any user across all tenants.
Search for a data Use the search field in the upper right to filter data sources
WebUI (8)
source by name, data store, and description.
ViewDataSource (2)
Create a new WebUI (8) To create a new data source, click + New Data Source.
data source See How to create a data source in the Web UI on page
CreateDataSource (1)
240 for details.
ViewDataSource (2)
Modify a data WebUI (8) To modify a data source, select the data source from the
source list of data sources. Then, select Edit from the Actions
ViewDataSource (2)
dropdown. Edit the data source as desired.
ModifyDataSource (3)
Delete a data WebUI (8) To delete a data source, select the data source you want
source to delete. Then, select Delete from the Actions dropdown.
ViewDataSource (2)
Confirm or cancel the delete operation in the dialog.
DeleteDataSource (4)
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 73Chapter 2: Administering Hybrid Data Pipeline
Action Permissions Description
Share a data Administrative access to the To share the data source:
source tenant
1. Select the data source from the list of data sources.
MgmtAPI (11)
2. Select Share from the Actions dropdown.
WebUI (8)
3. Select the user or tenant with which you want to share
ViewUsers (14) the data source.
CreateDataSource (1) 4. Select the permissions you want to grant the user or
ViewDataSource (2) tenant.
5. Click Save.
Note: Any user with the To stop sharing the data source:
Administrator (12) permission
can share a data source he 1. Select the data source from the list of data sources.
or she owns with any tenant 2. Select Share from the Actions dropdown.
across the system.
3. Select the user or tenant with which you want to stop
sharing the data source.
4. Click Remove.
Test a data WebUI (8) To run queries against a data source through the Web UI,
source select the data source. Then, select SQL Testing from the
ViewDataSource (2)
Actions dropdown.You are directed to the SQL Editor
SQLEditorWebUI (10) view where you review schema and execute a SQL
statement against the data source.
At least one of the following
query permissions:
• UseDataSourceWithJDBC
(5)
• UseDataSourceWithODBC
(6)
• UseDataSourceWithOData
(7)
Sync OData WebUI (8) OData enabled data sources maintain an OData model.
Schema The OData model should be refreshed whenever the
ViewDataSource (2)
schema of the data source has been changed. To refresh
ModifyDataSource (3)
the OData model, click the sync icon . For details, see
MgmtAPI (11) Configuring data sources for OData connectivity and
working with data source groups on page 646.
74 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Using the Web UI
Action Permissions Description
Obtain OData URI WebUI (8) To obtain the OData URI for an OData enabled data source,
ViewDataSource (2) click the link icon to copy the link associated with the
data source.
Configure data WebUI (8) To configure data source logging, click the settings icon
source logging
ViewDataSource (2) .You are directed to the Logging Settings page. Set
Logging (24) logging and privacy levels as desired.
Data Source Groups
The Data Source Groups page enables you to combine OData enabled data sources into a single data source
group.You can create, edit, delete, and share data source groups from this page.
The following table provides permissions and descriptions for basic actions in the Data Source Groups page.
For detailed information on creating OData enabled data sources and data source groups, see Configuring
data sources for OData connectivity and working with data source groups on page 646.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 75Chapter 2: Administering Hybrid Data Pipeline
Action Permissions Description
Filter data source Administrative access to An administrator with administrative access to multiple
groups by tenant multiple tenants tenants will have the option of filtering by tenants to view
data source groups owned by a given user. Select the
WebUI (8)
tenant in which the user resides from the Select Tenant
ViewDataSource (2) dropdown.
ViewUsers (14)
Note: Any user with the
Administrator (12) permission
can view the data source
groups of any user across all
tenants.
Filter data source Administrative access to the To filter data source groups by user, select the user whose
groups by user tenant data source groups you want to view from the Select User
dropdown.
WebUI (8)
ViewDataSource (2)
ViewUsers (14)
Note: Any user with the
Administrator (12) permission
can view the data source
groups of any user across all
tenants.
Search for a data Use the search field in the upper right to filter data source
WebUI (8)
source group groups by name, data store, and description.
ViewDataSource (2)
Create a new WebUI (8) To create a new data source group, click + New Group.
data source See Creating a data source group on page 659 for details.
CreateDataSource (1)
group
ViewDataSource (2)
Modify a data WebUI (8) To modify a data source group, select the group. Then,
source group select Edit from the Actions dropdown. Edit the group as
ViewDataSource (2)
desired.
ModifyDataSource (3)
Delete a data WebUI (8) To delete a data source group, select the group you want
source group to delete. Then, select Delete from the Actions dropdown.
ViewDataSource (2)
Confirm or cancel the delete operation in the dialog.
DeleteDataSource (4)
76 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Using the Web UI
Action Permissions Description
Share a data Administrative access to the Note: Sharing a data source group requires that the
source group tenant member data sources of the group also be shared.
MgmtAPI (11) To share the data source group:
WebUI (8) 1. Select the data source group from the list of data
ViewUsers (14) sources.
CreateDataSource (1) 2. Select Share from the Actions dropdown.
ViewDataSource (2) 3. Select the user or tenant with which you want to share
the data source group.
Note: Any user with the 4. Select the permissions you want to grant the user or
Administrator (12) permission tenant.
can share a data source 5. Click Save.
group he or she owns with
any tenant across the To stop sharing the data source group:
system. 1. Select the data source group from the list of data
sources.
2. Select Share from the Actions dropdown.
3. Select the user or tenant with which you want to stop
sharing the data source group.
4. Click Remove.
Obtain OData URI WebUI (8) To obtain the OData URI of a data source group, click the
ViewDataSource (2) link icon to copy the link associated with the data source
group.
SQL Editor view
The SQL Editor view allows users to browse schemas3 and to query data associated with a data source.
The SQL Editor view is available to users with either set of the following permissions.
• Administrator (12) permission
• WebUI (8) permission, ViewDataSource (2) permission, SQLEditorWebUI (10) permission, and, to query
data sources, at least one of the following query permissions:
• UseDataSourceWithJDBC (5)
• UseDataSourceWithODBC (6)
• UseDataSourceWithOData (7)
3 For backend data stores that support schemas, the Metadata Exposed Schemas option can be used to restrict the exposed
schemas to a single schema. Metadata Exposed Schemas only affects the metadata that is displayed in the Schema navigation
pane. SQL queries can still be executed against tables in other schemas. For details, see the parameters topic for your data
source type.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 77Chapter 2: Administering Hybrid Data Pipeline
The following table provides permissions and descriptions for actions in the SQL Editor view. To perform any
action from this view, begin by selecting a data source from the Select a Data Source dropdown.
Action Permissions Description
Explore the WebUI (8) To begin, a data source must be selected from the Select
schema and a Data Source dropdown.To view schema tables, click the
ViewDataSource (2)
tables associated a schema carrot in the Schema Tree panel. Click on a table
with the data SQLEditorWebUI (10) to view the details of a table in the Table Details panel.
source Views and procedures that reside in the schema may also
be listed.
Execute a SQL WebUI (8) To begin, a data source must be selected from the Select
statement a Data Source dropdown. To run a query against the data
ViewDataSource (2)
against the data source, enter the SQL statement in the field provided in the
source SQLEditorWebUI (10) Editor panel. Then click Execute to run the query. SQL
query results will be returned in the Results panel.
At least one of the following
query permissions:
Note: Queries made via the SQL Editor view time out after
• UseDataSourceWithJDBC 6 minutes.Therefore, to validate a data source connection,
(5) you should execute queries that require less processing
• UseDataSourceWithODBC time. For large queries, only the first 200 results are shown.
(6)
• UseDataSourceWithOData
(7)
78 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Using the Web UI
Manage External Authentication view
The Manage External Authentication view allows you to add, update, and delete an external authentication
service.The external authentication service must first be implemented by a system administrator as described
in Authentication on page 148. Once the service has been implemented, it can be added to a tenant.
The Manage External Authentication view is available to users with either set of the following permissions.
• Administrator (12) permission
• WebUI (8) permission, RegisterExternalAuthService (26) permission, and administrative access on the
given tenant
The following table provides permissions and descriptions for actions in the Manage External Authentication
view.
Note: Any user with Administrator (12) permission may perform all actions.
Action Permissions Description
Filter Administrative access to An administrator with administrative access to multiple
authentication multiple tenants tenants will have the option of selecting the tenant for which
services by he or she wants to view or manage external authentication
WebUI (8)
tenant services. Select the tenant for which you want to view
RegisterExternalAuthService authentication services from the Select Tenant dropdown.
(26)
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 79Chapter 2: Administering Hybrid Data Pipeline
Action Permissions Description
Register an Administrative access for the To register an authentication service with the tenant, click
external tenant + New Service. Provide the following information, and then
authentication click Save.
WebUI (8)
service
RegisterExternalAuthService • The name and description of the service
(26) • The service type
• For Java plugin service provide:
• The class name
• Attributes
• For LDAP service provide:
• Target URL
• Service Authentication
• Security Principal
• Other Attributes
Edit an external Administrative access for the To edit an authentication service, select the service. Then,
authentication tenant select Edit from the Actions dropdown. Edit the service as
service desired.
WebUI (8)
RegisterExternalAuthService
(26)
Delete an Administrative access for the To delete a service, select the service you want to delete.
external tenant Then, select Delete from the Actions dropdown. Confirm
authentication or cancel the delete operation in the dialog.
WebUI (8)
service
RegisterExternalAuthService
(26)
Manage IP WhiteList view
The Manage IP WhiteList view allows you to create and manage IP address whitelists. (See Implementing IP
address whitelists on page 169 for details on the IP address whitelist feature.)
The Manage IP WhiteList view is available to users with either set of the following permissions.
• Administrator (12) permission
• WebUI (8) permission, IPWhiteList (29) permission, and administrative access on the given tenant
80 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Using the Web UI
The following table provides permissions and descriptions for actions in the Manage IP WhiteList view.
Note:
• Any user with Administrator (12) permission may perform all actions.
• See Configuring IP address whitelists with the API on page 170 for step-by-step instructions on creating and
applying IP address whitelists in the Web UI.
• IP address whitelists are enabled by default. Unless you have disabled this feature, any IP address whitelist
you create will immediately be enforced. For how to enable or disable IP address whitelists, see Enabling
and disabling the IP address whitelist feature.
Action Permissions Description
Select level Administrative access to the An administrator with the permissions to set IP address
system tenant whitelists at more than one level will have the option to
select the level. From the Select Level dropdown, select
WebUI (8)
the level at which you want to apply IP address whitelists.
IPWhiteList (29)
• System applies the whitelist across the system.
• Tenant applies the whitelist to a selected tenant.
• User applies the whitelist to a specified user.
Select tenant Administrative access to An administrator with administrative access to multiple
multiple tenants tenants will have the option of selecting the tenant to which
he or she wants to apply IP address whitelists. From the
WebUI (8)
Select Tenant dropdown, select the tenant to which you
IPWhiteList (29) want to apply IP address whitelists.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 81Chapter 2: Administering Hybrid Data Pipeline
Action Permissions Description
Select user Administrative access to a An administrator with administrative access to a tenant will
given tenant have the option of selecting the user to which he or she
wants to apply IP address whitelists. From the Select User
WebUI (8)
dropdown, select the user to which you want to apply IP
IPWhiteList (29) address whitelists.
Configure an IP Administrative access to a To configure an IP address whitelist, click New IP Range.
address whitelist given tenant From the New IP Range window, select the resource for
which you are creating the whitelist. Then, enter the IP
WebUI (8)
address or IP address range you want to apply to the
IPWhiteList (29) resource. IPv4 and IPv6 formats are supported. For details,
see Implementing IP address whitelists on page 169.
Manage Limits view
The Manage Limits view allows you to view and set limits for features such as throttling, logging, and SQL
auditing.
In the Manage Limits view, limits can be set at either the system or tenant level. System limits apply to behavior
across Hybrid Data Pipeline and override default behavior, while tenant limits apply to the resources of a given
tenant and override default behavior and system limits. Most limits can only be configured at the system level.
However, some limits, such as MaxFetchRows and MaxConcurrentQueries, can be configured at any level.
Note:
• Tenant limits can also be set via the Manage Tenants view on page 66.
• Limits can also be specified for users and data sources. User limits can be set either through the Manage
Users view on page 67 or the Limits API on page 1099. User limits override default, system, and tenant limits.
Data source limits can only be set via the Limits API on page 1099. Data source limits override all other limits.
The Manage Limits view is available to users with either set of the following permissions.
• Administrator (12) permission
• WebUI (8) permission, Limits (27) permission, and administrative access on the given tenant
82 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Using the Web UI
The table below provides descriptions for limits that may be set via the Manage Limits view.
Note:
• Throttling limits can be set either for the system tenant or any child tenant across the system.
• Log Management, Data Usage Meter, and Security limits can only be set for the system.
• SQL Auditing can be set for the system tenant or for a child tenant. However, the SQLAuditingRetentionDays
and SQLAuditingMaxAge limits may only be set at the system level.
• To set system limits, the system tenant must be selected from the Tenant dropdown. The user must have
the Administrator (12) permission.
• To set tenant limits, the child tenant must be selected from the Tenant dropdown. The user must have
either the Administrator (12) permission, or WebUI (8), Limits (27) permissions, and administrative access
on the given tenant.
Category Limit Description
Throttling MaxFetchRows Maximum number of rows allowed to be fetched
for a single query.
Throttling ODataMaxConcurrentPagingQueries Maximum number of concurrent active queries
per data source that cause paging to be
invoked.
Throttling TransactionTimeout The number of seconds the system allows a
transaction to be idle before rolling it back.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 83Chapter 2: Administering Hybrid Data Pipeline
Category Limit Description
Throttling XdbcMaxResponse Approximate allowed maximum size of
JDBC/ODBC HTTP result data in KB.
Throttling ODataMaxConcurrentRequests Maximum number of simultaneous OData
requests allowed per user.
Throttling ODataMaxWaitingRequests Maximum number of waiting OData requests
allowed per user.
Log Management LogRetentionDays Number of days log files should be retained.
Log Management MonitorRetentionDays Number of days monitor details should be
retained
Data Usage Meter UserMeterRetentionDays Number of days user meter details should be
retained
Data Usage Meter UserMeterWriteInterval 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
Data Usage Meter UserMeterMaxAge The number seconds the system waits before
writing out meter records. A lower setting will
result in the rows written to meter table to occur
more frequently
Security PasswordLockoutInterval The duration, in seconds, for counting the
number of consecutive failed authentication
attempts.
Security PasswordLockoutLimit The number of consecutive failed authentication
attempts that are allowed before locking the
user account.
Security PasswordLockoutPeriod The duration, in seconds, for which a user
account will not be allowed to authenticate to
the system when the PasswordLockoutLimit is
reached.
Security OAuthAccessTokenDuration The duration, in minutes, for which a Access
token is valid.
Security OAuthAccessTokenCacheSize Number of oauth access tokens to be cached
in memory for OAuth Authentication. By default
up to 2000 tokens will be cached in memory.
Security CORSBehavior 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.
84 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Using the Web UI
Category Limit Description
SQL Auditing SQLAuditing Configuration parameter for SQL statement
auditing. Setting the value to 0 disables SQL
statement auditing. Setting the value to 1
enables SQL statement auditing.
SQL Auditing SQLAuditingRetentionDays The number of days auditing records are
retained in the SQLAudit table.
SQL Auditing SQLAuditingMaxAge 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.
System Configurations view
The System Configurations view can be used to set a number of configurations across the Hybrid Data
Pipeline system. This view is only available to users with the Administrator (12) permission (system
administrators).
The following table provides descriptions of the options available via the System Configurations view.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 85Chapter 2: Administering Hybrid Data Pipeline
Option Permissions Description
Delimiter Administrator (12) Specifies a delimiter to be used between the user
name and authentication service name. In the following
example, the | symbol delimits user437 and the LDAP1
service: user437|LDAP1. See Authentication on page
148 for details.
Secure Password Change Administrator (12) Specifies whether the current password is required in
order to update the password of the logged-in user.
The default value is ON.
Default OData Version Administrator (12) Sets the default OData version for new data sources.
Default Entity Name Administrator (12) Sets the default entity name mode for OData V4 data
sources. For details, see Configuring data sources for
OData connectivity and working with data source
groups on page 646.
JDBC DataStore Administrator (12) Enables the third party JDBC data store feature. The
default value is ON. For details, see Using third party
JDBC drivers with Hybrid Data Pipeline on page 197.
Password Policy Administrator (12) Enables the default password policy.The default value
is ON.
System Monitor Details Administrator (12) Determines how the system persists monitor details.
IP WhiteList Filtering Administrator (12) Enables the whitelist filtering feature.The default value
is ON. See Implementing IP address whitelists on page
169 for details.
Product information
Users can access product information by clicking the question mark icon and selecting About.
The About Hybrid Data Pipeline window displays installation and version information.
86 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Tenant architectures
User profile
The down arrow next to the username in the upper right hand corner of the Web UI opens a dropdown menu.
Users can change their passwords by selecting the Change Password item, or log out by selecting the Log
Out item.
Changing your password in the Web UI
Take the following steps to change your password in the WebUI.
Note: You can also change your password using the Change Password API.
1. Select the arrow next to your username in the right hand corner of the Web UI.
2. Click Change Password to open the Change Password window.
3. Enter your current password in the Current Password field.
4. Enter your new password in the New Password field.
Note: The password must be a maximum of 32 characters in length.
5. Retype your new password in the Confirm Password field.
6. Click SAVE.
Tenant architectures
A Hybrid Data Pipeline system administrator can develop either a single-tenant or multitenant architecture. In
a single-tenant architecture, the system administrator creates user accounts in the default system tenant. In a
multitenant architecture, the system administrator first creates one or more child tenants in the default system
tenant. Then, the system administrator can create user accounts in either the system tenant or any one of the
child tenants. The user accounts that reside in one tenant are isolated from those in other tenants.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 87Chapter 2: Administering Hybrid Data Pipeline
When establishing a tenant architecture, the system administrator should consider the roles users and other
administrators will assume in the Hybrid Data Pipeline environment. As detailed in Permissions and default
roles on page 61, Hybrid Data Pipeline provides three default roles: System Administrator, Tenant Administrator,
and User. These roles can be used in either a single-tenant or multitenant architecture. In the context of these
roles, the system administrator has full permissions and administrative access across the system, while the
tenant administrator can assume responsibility for provisioning and managing user accounts in tenants for
which he or she has administrative access.
Important: To administer user accounts and other resources that belong to a tenant, a tenant administrator
must be given explicit administrative access to the given tenant. In the Web UI, administrative access to a
tenant can be granted by editing a user account via the Manage Users view on page 67. With the API,
administrative access can be granted either by updating the tenants administered for a user via the Users API
or by updating the list of administrators for a tenant via the Tenant API.
The following topics describe single-tenant and multitenant architectures in greater detail, including how
administrative roles can be applied in each.
• Single-tenant environment
• Multitenant environment
Single-tenant environment
Tenancy is mostly transparent in a single-tenant environment where users and features are managed from the
default system tenant. Nevertheless, tenant and elevated permissions were introduced with support for
multitenancy. Tenant permissions support the ability of administrators to provision and manage users, while
elevated permissions support the ability of administrators to execute other administrative tasks, such as throttling
and logging. By granting such permissions to other users, the system administrator can delegate administrative
tasks and responsibilities.
Note: As an alternative to using the default system tenant, a system administrator could create a child tenant
in the system tenant. This child tenant could function as a single, dedicated tenant from which users and
features are managed.
See the following topics on how to set up a single-tenant environment.
• Using the Web UI to set up a single-tenant environment on page 88
• Using the APIs to set up a single-tenant environment on page 89
See also
User provisioning on page 112
Permissions and default roles on page 61
Using the Web UI to set up a single-tenant environment
The following steps show how you can set up a single-tenant environment using the Web UI.
Note: It is assumed that users and features will be managed from the default system tenant. Therefore, there
is no step to create a child tenant.
1. Create administrator roles.
88 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Tenant architectures
a) Navigate to the Manage Roles view by clicking the manage roles icon .
b) Click + New Role.
c) Provide a name and description for the role.
d) Select permissions to define the role.
e) Click Save.
2. Create administrator users.
a) Navigate to the Manage Users view by clicking the manage users icon .
b) Click + New User.
c) Define the user with settings under each of the following tabs.
• Under the General tab, enter a user name and assign the role you have created for the user.
• Under the Authentication Setup tab, configure authentication settings.
• Under the Limits tab, configure limits as desired. Note that user limits override system limits.
• Under the Tenant Admin Access tab, grant the user administrative access to the system tenant.
d) Click Save.
3. Set system configurations.
a) Navigate to the System Configurations view by clicking the system configurations icon .
b) Configure options as desired. See System Configurations view on page 85 for option descriptions.
c) Click Save.
4. Set limits.
a) Navigate to the Manage Limits view by clicking the manage limits icon .
b) Set limits as desired. See Manage Limits view on page 82 for limit descriptions.
c) Click Save.
Using the APIs to set up a single-tenant environment
The following operations show how you can set up a single-tenant environment using Hybrid Data Pipeline
APIs.
Note: It is assumed that users and features will be managed from the default system tenant. Therefore, there
is no step to create a child tenant.
• Retrieving valid roles in the system tenant
• Create a user with the Tenant Administrator role
• Grant the administrator user administrative access to the system tenant
• Create a new role with tenant and elevated permissions
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 89Chapter 2: Administering Hybrid Data Pipeline
• Assign the new role to the administrator user
• Retrieving and setting system configurations
• Retrieving and setting limits
Retrieving valid roles in the system tenant
The following GET operation retrieves the valid roles and their IDs for the system tenant in a single-tenant
environment. Role IDs can then be used to assign roles to users.
Request
GET https://MyServer:8443/api/admin/roles
Response Payload
{
"roles": [
{
"id": 1,
"name": "System Administrator",
"tenantId": 1,
"description": "This role has all permissions. This role cannot be
modified or deleted."
},
{
"id": 2,
"name": "User",
"tenantId": 1,
"description": "This role has the default permissions that a normal
user will be expected to have."
},
{
"id": 3,
"name": "Tenant Administrator",
"tenantId": 1,
"description": "This role has all the tenant administrator
permissions."
}
]
}
Create a user with the Tenant Administrator role
The ID for the Tenant Administrator role (3) can then be used to create a user with the Tenant Administrator
role, as shown in the following POST operation. The user inherits the permissions associated with this role.
Request
POST https://MyServer:8443/api/admin/users
Request Payload
{
"userName": "TenantAdmin",
"statusInfo": {
"status": 1,
"accountLocked": false
},
"passwordInfo": {
"password": "",
"passwordStatus": 1,
"passwordExpiration": "2020-01-01 00:00:00"
},
"permissions": {
90 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Tenant architectures
"roles": [
3
]
}
}
Response Payload
{
"id": 87,
"userName": "TenantAdmin",
"tenantId": 1,
"tenantName": "Root",
"statusInfo": {
"status": 1,
"accountLocked": false
},
"passwordInfo": {
"passwordStatus": 1,
"passwordExpiration": "2020-01-01 00:00:00.0"
},
"permissions": {
"roles": [
3
]
},
"authenticationInfo": {
"authUsers": [
{
"authUserName": "TenantAdmin",
"authServiceId": 1
}
]
}
}
Grant the administrator user administrative access to the system tenant
In addition to being granted the Tenant Administrator role, the tenant administrator must be granted administrative
access to the system tenant. The following Users API request grants user account 87 administrative access
to the system tenant.
Note: Administrative access to the system tenant can also be managed by updating the list of administrators
via the Tenant API.
Request
PUT https://MyServer:8443/api/admin/users/87/tenantsadministered
Request Payload
{
"tenantsAdministered": [
1
]
}
Response Payload
{
"tenantsAdministered": [
1
]
}
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 91Chapter 2: Administering Hybrid Data Pipeline
Create a new role with tenant and elevated permissions
The following POST request creates the new Tenant Admin Plus role. The new role has all user and tenant
permissions plus the Logging (24), Limits (27), and OAuth (28) permissions.
Request
POST https://MyServer:8443/api/admin/roles
Request Payload
{
"name": "Tenant Admin Plus",
"description": "This role has all the tenant administrator permissions plus
elevated permissions.",
"permissions": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
13,
14,
15,
16,
17,
18,
19,
20,
21,
24,
27,
28
],
"users": []
}
Response Payload
{
"id": 42,
"name": "Tenant Admin Plus",
"description": "This role has all the tenant administrator permissions plus
elevated permissions.",
"permissions": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
13,
14,
15,
16,
17,
18,
19,
92 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Tenant architectures
20,
21,
24,
27,
28
],
"users": []
}
Assign the new role to the administrator user
The following PUT assigns the new Tenant Admin Plus role to the administrator user. The user inherits the
permissions associated with this role. Note that the ID of the Tenant Admin Plus role (42) was provided in the
response payload when the role was created. Also, note that any existing roles and permissions are removed
by this operation.
Request
PUT https://MyServer:8443/api/admin/users/87/permissions
Request Payload
{
"roles": [42],
"permissions": []
}
Response Payload
{
"roles": [42]
}
Retrieving and setting system configurations
The following GET operation retrieves a list of system configurations.
Request
GET https://MyServer:8443/api/admin/configurations
Response Payload
Note: See System Configurations API on page 1152 for a complete list of system configurations and their
descriptions.
{
"configurations": [
{
"id": 1,
"description": "Delimiter between user name and authentication
service/configuration name",
"value": null
},
{
"id": 2,
"description": "Enable Secure Password Change, when value is set to
true, the change password api will require a valid old password
in order to update the logged in user password.",
"value": "true"
},
...,
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 93Chapter 2: Administering Hybrid Data Pipeline
{
"id": 8,
"description": "Configure whitelist filtering. Enables filtering when
value is set to ''true''. Default value is "true" ",
"value": "true"
}
]
}
The following PUT operation disables IP address whitelists. The number 8 is the ID of the IP address whitelist
feature.
Request
PUT https://MyServer:8443/api/admin/configurations/8
Request Payload
{
"value":"false"
}
Retrieving and setting limits
The following GET operation retrieves a list of limits.
Request
GET https://MyServer:8443/api/admin/limits
Response Payload
Note: See Limits API on page 1099 for a complete list of limits and their descriptions.
{
"limits": [
{
"id": 1,
"name": "MaxFetchRows",
"description": "Maximum number of rows allowed to be fetched for a
single query",
"minValue": 1,
"maxValue": 9000000000000000000,
"defaultValue": 9000000000000000000,
"validForLimits": 15
},
...,
{
"id": 6,
"name": "ODataMaxConcurrentQueries",
"description": "Maximum number of concurrent active queries per
data source",
"minValue": 0,
"maxValue": 9000000000000000000,
"defaultValue": 0,
"validForLimits": 15
},
...
]
}
The following POST creates a system-level limit of 50000 queries. The number 6 is the ID of the
ODataMaxConcurrentQueries limit. The payload passes 50000 as the value for this limit.
94 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Tenant architectures
Request
POST https://MyServer:8443/api/admin/limits/system/6
Request Payload
{
"value": 50000
}
See also
User provisioning on page 112
Users API on page 1174
Roles API on page 1140
System Configurations API on page 1152
Limits API on page 1099
Multitenant environment
Multitenancy allows system administrators to isolate groups of users, such as organizations or departments,
hosted by the Hybrid Data Pipeline service. The system administrator maintains a physical instance of Hybrid
Data Pipeline, while each tenant (group of users) is provided with its own logical instance of the service. To
create a multitenant environment, the system administrator creates child tenants in the default system tenant.
The system administrator can then proceed with setting up administrative and support structures for maintaining
the Hybrid Data Pipeline environment.The administration of tenants follows two general patterns: system-level
administration and tenant-level administration.
In system-level administration, a system administrator may want to delegate or share user provisioning and
other administrative tasks with a tenant administrator who can manage user accounts and enable supported
features across multiple tenants. In this instance, the system administrator creates tenant administrators in the
system tenant with user management permissions and administrative access to the tenants they will manage.
These tenant administrators are able to manage users, data sources, and other resources across multiple
tenants.
In tenant-level administration, the system administrator delegates user provisioning and other administrative
tasks to tenant administrators who belong to one of many tenants. For example, a Hybrid Data Pipeline provider
may host several external organizations where it is appropriate for the organizations themselves to provision
users and administer data access. In this scenario, the system administrator would create tenant administrators
who reside in the tenants they administer, thus isolating administrative tasks such as user provisioning from
one tenant to another. For tenant-level administration, tenant administrators must have administrative access
to the tenants in which they reside, as well as user management and other permissions as needed.
Note that system-level and tenant-level administration are not mutually exclusive. For example, a system
administrator might want to delegate and isolate the administration of tenants, but also provision support
personnel to work with resources across multiple tenants.
The following topics provide information on creating multitenant environments.
• Setting up a multitenant environment with system-level administration on page 95
• Setting up a multitenant environment with tenant-level administration on page 104
Setting up a multitenant environment with system-level administration
A system administrator can take the following general steps to set up a multitenant environment with system-level
administration.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 95Chapter 2: Administering Hybrid Data Pipeline
1. Create child tenants.
2. Create administrator roles in the system tenant.
3. Create tenant administrators in the system tenant.
4. Set system configurations and limits.
See the following topics for details.
• Using the Web UI to set up a multitenant environment with system-level administration on page 96
• Using the APIs to set up a multitenant environment with system-level administration on page 97
Using the Web UI to set up a multitenant environment with system-level administration
Take the following steps to set up a multitenant environment with system-level administration using the Web
UI.
1. Create tenants.
a) Navigate to the Manage Tenants view by clicking the manage tenants icon .
b) Click + New Tenant.
c) Under the General tab, enter a name and description for the tenant.
d) Under the Roles tab, select any roles that you created in the system tenant that you want to import to
the new tenant.
e) Under the Limits tab, specify any limits that you want to set for the tenant. These limits will override
limits at the system level.
f) Click Save.
2. Create administrator roles.
a) Navigate to the Manage Roles view by clicking the manage roles icon .
b) For Tenant, select System from the dropdown.
c) Click + New Role.
d) Provide a name and description for the role.
e) Select permissions to define the role.
f) Click Save.
3. Create administrator users.
a) Navigate to the Manage Users view by clicking the manage users icon .
b) For Tenant, select System from the dropdown.
c) Click + New User.
d) Define the user with settings under each of the following tabs.
• Under the General tab, enter a user name and assign the role you have created for the user.
• Under the Authentication Setup tab, configure authentication settings.
• Under the Limits tab, configure limits as desired. Note that user limits override system limits.
96 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Tenant architectures
• Under the Tenant Admin Access tab, grant the user administrative access to any tenants they will
be administering.
e) Click Save.
4. Set system configurations. These configurations apply to all tenants across the system.
a) Navigate to the System Configurations view by clicking the system configurations icon .
b) Configure options as desired. See System Configurations view on page 85 for option descriptions.
c) Click Save.
5. Set system limits.
a) Navigate to the Manage Limits view by clicking the manage limits icon .
b) For Tenant, select System from the dropdown.
c) Set limits as desired. Limits set on tenants will override limits set at the system level.
d) Click Save.
Results:
You have created child tenants in the system tenant. In addition, you have created tenant administrators who
reside in the system tenant. These administrators can perform administrative tasks, based on the permissions
associated with their roles, in any tenants to which they have administrative access. System configurations
and limits have been set as well.
Using the APIs to set up a multitenant environment with system-level administration
The following operations show how you can set up a multitenant environment with system-level administration
using Hybrid Data Pipeline APIs.
• Creating tenants with the Tenant API
• Retrieving roles with the Roles API
• Provisioning a user at the system level with the Tenant Administrator role
• Granting administrative access to the tenant with the Users API
• Granting administrative access to the tenant with the Tenant API
• Setting system configurations and limits
• Setting tenant limits
• Creating users and roles at the tenant level
Creating tenants with the Tenant API
In this example, a system administrator creates TenantA, TenantB, and TenantC using the Tenant API. The
User (2) role has been specified as an imported role. As new tenants are created, the imported role becomes
unique and is given a new ID.
Request to create TenantA
POST https://MyServer:8443/api/admin/tenants
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 97Chapter 2: Administering Hybrid Data Pipeline
Request Payload
{
"name": "TenantA",
"description": "This is the HDP tenant for organization A.",
"parentTenant": 1,
"status": 1,
"importedRoles": [
2
]
}
Response Payload
{
"id": 61,
"name": "TenantA",
"description": "This is the HDP tenant for organization A.",
"parentTenant": 1,
"status": 1,
"roles": [
81
]
}
Request to create TenantB
POST https://MyServer:8443/api/admin/tenants
Request Payload
{
"name": "TenantB",
"description": "This is the HDP tenant for organization B.",
"parentTenant": 1,
"status": 1,
"importedRoles": [
2
]
}
Response Payload
{
"id": 62,
"name": "TenantB",
"description": "This is the HDP tenant for organization B.",
"parentTenant": 1,
"status": 1,
"roles": [
82
]
}
Request to create TenantC
POST https://MyServer:8443/api/admin/tenants
Request Payload
{
"name": "TenantC",
"description": "This is the HDP tenant for organization C.",
"parentTenant": 1,
"status": 1,
"importedRoles": [
2
98 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Tenant architectures
]
}
Response Payload
{
"id": 63,
"name": "TenantC",
"description": "This is the HDP tenant for organization C.",
"parentTenant": 1,
"status": 1,
"roles": [
83
]
}
Retrieving roles with the Roles API
The system administrator must have the role ID to create a user with the Tenant Administrator role.The following
GET operation retrieves the roles across the system.
Request
GET https://MyServer:8443/api/admin/roles
Response Payload
The first three roles in the payload are roles tied to the system tenant ("tenantId": 1). The remaining roles
are the roles copied to the new tenants.
{
"roles": [
{
"id": 1,
"name": "System Administrator",
"tenantId": 1,
"description": "This role has all permissions. This role cannot be
modified or deleted."
},
{
"id": 2,
"name": "User",
"tenantId": 1,
"description": "This role has the default permissions that a normal
user will be expected to have."
},
{
"id": 3,
"name": "Tenant Administrator",
"tenantId": 1,
"description": "This role has all the tenant administrator
permissions."
},
{
"id": 81,
"name": "User",
"tenantId": 61,
"description": "This role has the default permissions that a normal
user will be expected to have."
},
{
"id": 82,
"name": "User",
"tenantId": 62,
"description": "This role has the default permissions that a normal
user will be expected to have."
},
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 99Chapter 2: Administering Hybrid Data Pipeline
{
"id": 83,
"name": "User",
"tenantId": 63,
"description": "This role has the default permissions that a normal
user will be expected to have."
}
]
}
Creating a user at the system level with the Tenant Administrator role
With the following User API operation, the system administrator creates a user at the system level with the
Tenant Administrator role. The tenant administrator must then be given administrative access to the tenant
either through the Users API or the Tenant API, as described below.
Request
POST https://MyServer:8443/api/admin/users
Request Payload
{
"userName": "SysTenantAdmin",
"tenantId": 1,
"statusInfo": {
"status": 1,
"accountLocked": false
},
"passwordInfo": {
"password": "TempWord",
"passwordStatus": 1,
"passwordExpiration": null
},
"permissions": {
"roles": [
3
]
}
}
Response Payload
{
"id": 1001,
"userName": "SysTenantAdmin",
"tenantId": 1,
"statusInfo": {
"status": 1,
"accountLocked": false
},
"passwordInfo": {
"passwordStatus": 1,
"passwordExpiration": null
},
"permissions": {
"roles": [
3
]
},
"authenticationInfo": {
"authUsers": [
{
"authUserName": "SysTenantAdmin",
"authServiceId": 1
}
]
100 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Tenant architectures
}
}
Granting administrative access to the tenant with the Users API
In addition to user management permissions, a tenant administrator must be granted administrative access to
the tenant. This can be done either through the Users API or the Tenant API. The following Users API request
grants user account 2001 administrative access to TenantA (61).
Request
PUT https://MyServer:8443/api/admin/users/2001/tenantsadministered
Request Payload
{
"tenantsAdministered": [
61
]
}
Response Payload
{
"tenantsAdministered": [
61
]
}
Granting administrative access to the tenant with the Tenant API
In addition to user management permissions, a tenant administrator must be granted administrative access to
the tenant. This can be done either through the Users API or the Tenant API. The following Tenant API request
adds user account 2001 to the list of administrators who can administer the TenantA (61).
PUT https://MyServer:8443/api/admin/tenants/61
Request Payload
{
"admins": [
391,
502,
2001
]
}
Response Payload
{
"admins": [
391,
502,
2001
]
}
Setting system configurations and limits
Setting a system configuration
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 101Chapter 2: Administering Hybrid Data Pipeline
The following PUT operation disables IP address whitelists across all tenants. The number 8 is the ID of the
IP address whitelist feature.
PUT https://MyServer:8443/api/admin/configurations/8
{
"value":"false"
}
Setting a system limit
The following POST creates a limit of 50000 concurrent OData queries across all tenants. The number 6 is the
ID of the ODataMaxConcurrentQueries limit. The payload passes 50000 as the value for this limit.
POST https://MyServer:8443/api/admin/limits/system/6
{
"value": 50000
}
Setting tenant limits
The following POST creates a limit of 10000 concurrent OData queries on TenantA. The number 61 is the ID
of TenantA, and the number 6 is the ID of the ODataMaxConcurrentQueries limit. This tenant limit will override
the system limit.
POST https://MyServer:8443/api/admin/limits/tenants/61/6
{
"value": 10000
}
Creating users and roles at the tenant level
The new system-level tenant administrator (SysTenantAdmin) can now provision users and create roles for
TenantA, TenantB, and TenantC. The first request creates a new user in TenantA (61). The second request
creates a new role in TenantA.
Request to create user in TenantA
POST https://MyServer:8443/api/admin/users
Request Payload
{
"userName": "User1A",
"tenantId": 61,
"statusInfo": {
"status": 1,
"accountLocked": false
},
"passwordInfo": {
"password": "TempWord",
"passwordStatus": 1,
"passwordExpiration": null
},
"permissions": {
"roles": [
81
]
}
}
102 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Tenant architectures
Response Payload
{
"id": 2601,
"userName": "User1A",
"tenantId": 1,
"statusInfo": {
"status": 1,
"accountLocked": false
},
"passwordInfo": {
"passwordStatus": 1,
"passwordExpiration": null
},
"permissions": {
"roles": [
81
]
},
"authenticationInfo": {
"authUsers": [
{
"authUserName": "SysTenantAdmin",
"authServiceId": 1
}
]
}
}
POST operation to create new role
With the following POST request, a new role is created in TenantA (61) for OData-only access to data sources.
No user is specified in this example, but a user can subsequently be assigned the new role either through the
Roles API or the Users API.
Request to create role in TenantA
POST https://MyServer:8443/api/admin/roles
Request Payload
{
"name": "ODataOnly",
"tenantId": 61,
"description": "This role allows only OData access.",
"permissions": [7],
"users": []
}
Response Payload
{
"id": 102,
"name": "ODataOnly",
"tenantId": 61,
"description": "This role allows only OData access.",
"permissions": [
7
],
"users": []
}
See also
User provisioning on page 112
Users API on page 1174
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 103Chapter 2: Administering Hybrid Data Pipeline
Roles API on page 1140
System Configurations API on page 1152
Limits API on page 1099
Setting up a multitenant environment with tenant-level administration
A system administrator can take the following general steps to set up a multitenant environment with tenant-level
administration.
1. Create child tenants.
2. Create administrator roles in the child tenants.
3. Create tenant administrators who reside in the child tenants.
4. Set system configurations and limits.
See the following topics for details.
• Using the Web UI to set up a multitenant environment with tenant-level administration on page 104
• Using the APIs to set up a multitenant environment with tenant-level administration on page 105
Using the Web UI to set up a multitenant environment with tenant-level administration
Take the following steps to set up a multitenant environment with tenant-level administration using the Web
UI.
1. Create tenants.
a) Navigate to the Manage Tenants view by clicking the manage tenants icon .
b) Click + New Tenant.
c) Under the General tab, enter a name and description for the tenant.
d) Under the Roles tab, select any roles that you created in the system tenant that you want to import to
the new tenant.
e) Under the Limits tab, specify any limits that you want to set for the tenant. These limits will override
limits at the system level.
f) Click Save.
2. Create administrator roles.
a) Navigate to the Manage Roles view by clicking the manage roles icon .
b) For Tenant, select the child tenant for which you want to create the new administrator role.
c) Click + New Role.
d) Provide a name and description for the role.
e) Select permissions to define the role.
f) Click Save.
3. Create administrator users.
a) Navigate to the Manage Users view by clicking the manage users icon .
b) For Tenant, select the child tenant for which you want to create the new administrator user.
104 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Tenant architectures
c) Click + New User.
d) Define the user with settings under each of the following tabs.
• Under the General tab, enter a user name and assign the role you have created for the user.
• Under the Authentication Setup tab, configure authentication settings.
• Under the Limits tab, configure limits as desired. Note that user limits override system limits.
• Under the Tenant Admin Access tab, grant the user administrative access to the child tenant.
e) Click Save.
4. Set system configurations. These configurations apply to all tenants across the system.
a) Navigate to the System Configurations view by clicking the system configurations icon .
b) Configure options as desired. See System Configurations view on page 85 for option descriptions.
c) Click Save.
5. Set system limits.
a) Navigate to the Manage Limits view by clicking the manage limits icon .
b) For Tenant, select System from the dropdown.
c) Set limits as desired. Limits set on tenants will override limits set at the system level.
d) Click Save.
Results:
You have created child tenants in the system tenant. In addition, you have created tenant administrators who
reside in the child tenants. These administrators can perform administrative tasks, based on the permissions
associated with their roles, in the tenants to which they belong and have administrative access. System
configurations and limits have been set as well.
Using the APIs to set up a multitenant environment with tenant-level administration
The following operations show how you can set up a multitenant environment with tenant-level administration
using Hybrid Data Pipeline APIs.
• Creating tenants with the Tenant API
• Retrieving roles with the Roles API
• Provisioning a tenant user with the Tenant Administrator role
• Granting administrative access to the tenant with the Users API
• Granting administrative access to the tenant with the Tenant API
• Setting system configurations and limits
• Setting tenant limits
• Creating users and roles at the tenant level
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 105Chapter 2: Administering Hybrid Data Pipeline
Creating tenants with the Tenant API
In this example, a system administrator creates the following tenants with the Tenant API: OrgA, OrgB, and
OrgC. The default User (2) and Tenant Administrator (3) roles are being imported from the system tenant. As
the system tenants are created, the imported roles becomes unique and are given a new IDs.
Request to create OrgA
POST https://MyServer:8443/api/admin/tenants
Request Payload
{
"name": "OrgA",
"description": "This is the HDP tenant for organization A.",
"parentTenant": 1,
"status": 1,
"importedRoles": [
2,
3
]
}
Response Payload
{
"id": 71,
"name": "OrgA",
"description": "This is the HDP tenant for organization A.",
"parentTenant": 1,
"status": 1,
"roles": [
103,
104
]
}
Request to create OrgB
POST https://MyServer:8443/api/admin/tenants
Request Payload
{
"name": "OrgB",
"description": "This is the HDP tenant for organization B.",
"parentTenant": 1,
"status": 1,
"importedRoles": [
2,
3
]
}
Response Payload
{
"id": 72,
"name": "OrgA",
"description": "This is the HDP tenant for organization A.",
"parentTenant": 1,
"status": 1,
"roles": [
105,
106
]
}
106 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Tenant architectures
Request
POST https://MyServer:8443/api/admin/tenants
Request Payload to create OrgC
{
"name": "OrgC",
"description": "This is the HDP tenant for organization C.",
"parentTenant": 1,
"status": 1,
"importedRoles": [
2,
3
]
}
Response Payload
{
"id": 73,
"name": "OrgC",
"description": "This is the HDP tenant for organization C.",
"parentTenant": 1,
"status": 1,
"roles": [
107,
108
]
}
Retrieving roles with the Roles API
The system administrator must have the role ID to create a user with the Tenant Administrator role.The following
GET operation retrieves the roles across the system.
Request
GET https://MyServer:8443/api/admin/roles
Note: The ?tenantID= and ?tenantName= query parameters can be
appended to the URL to limit the roles returned to a specific tenant.
Response Payload
The first three roles in the payload are roles tied to the system tenant ("tenantId": 1). The remaining roles
are the User and Tenant Administrator roles copied to the new tenants.
{
"roles": [
{
"id": 1,
"name": "System Administrator",
"tenantId": 1,
"description": "This role has all permissions. This role cannot be
modified or deleted."
},
{
"id": 2,
"name": "User",
"tenantId": 1,
"description": "This role has the default permissions that a normal
user will be expected to have."
},
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 107Chapter 2: Administering Hybrid Data Pipeline
{
"id": 3,
"name": "Tenant Administrator",
"tenantId": 1,
"description": "This role has all the tenant administrator permissions."
},
{
"id": 103,
"name": "User",
"tenantId": 71,
"description": "This role has the default permissions that a normal user
will be expected to have."
},
{
"id": 104,
"name": "Tenant Administrator",
"tenantId": 71,
"description": "This role has all the tenant administrator permissions."
},
{
"id": 105,
"name": "User",
"tenantId": 72,
"description": "This role has the default permissions that a normal user
will be expected to have."
},
{
"id": 106,
"name": "Tenant Administrator",
"tenantId": 72,
"description": "This role has all the tenant administrator permissions."
},
{
"id": 107,
"name": "User",
"tenantId": 73,
"description": "This role has the default permissions that a normal user
will be expected to have."
},
{
"id": 108,
"name": "Tenant Administrator",
"tenantId": 73,
"description": "This role has all the tenant administrator permissions."
}
]
}
Provisioning a tenant user with the Tenant Administrator role
With the following User API operation, the system administrator creates a user in the OrgA tenant (71) with
the Tenant Administrator role. The tenant administrator must then be given administrative access to the tenant
either through the Users API or the Tenant API, as described below.
Request
POST https://MyServer:8443/api/admin/users
Request Payload
{
"userName": "OrgAAdmin",
"tenantId": 71,
"statusInfo": {
"status": 1,
"accountLocked": false
},
108 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Tenant architectures
"passwordInfo": {
"password": "TempWord",
"passwordStatus": 1,
"passwordExpiration": null
},
"permissions": {
"roles": [
103,
104
]
}
}
Response Payload
{
"id": 2001,
"userName": "OrgAAdmin",
"tenantId": 71,
"statusInfo": {
"status": 1,
"accountLocked": false
},
"passwordInfo": {
"passwordStatus": 1,
"passwordExpiration": null
},
"permissions": {
"roles": [
103,
104
]
},
"authenticationInfo": {
"authUsers": [
{
"authUserName": "OrgAAdmin",
"authServiceId": 1
}
]
}
}
Granting administrative access to the tenant with the Users API
In addition to user management permissions, a tenant administrator must be granted administrative access to
the tenant. This can be done either through the Users API or the Tenant API. The following Users API request
grants user account 2001 administrative access to the OrgA tenant (71).
Request
PUT https://MyServer:8443/api/admin/users/2001/tenantsadministered
Request Payload
{
"tenantsAdministered": [
71
]
}
Response Payload
{
"tenantsAdministered": [
71
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 109Chapter 2: Administering Hybrid Data Pipeline
]
}
Granting administrative access to the tenant with the Tenant API
In addition to user management permissions, a tenant administrator must be granted administrative access to
the tenant. This can be done either through the Users API or the Tenant API. The following Tenant API request
adds user account 2001 to the list of administrators who can administer the OrgA tenant (71).
PUT https://MyServer:8443/api/admin/tenants/71
Request Payload
{
"admins": [
391,
502,
2001
]
}
Response Payload
{
"admins": [
391,
502,
2001
]
}
Setting system configurations and limits
Setting a system configuration
The following PUT operation disables IP address whitelists across all tenants. The number 8 is the ID of the
IP address whitelist feature.
PUT https://MyServer:8443/api/admin/configurations/8
{
"value":"false"
}
Setting a system limit
The following POST creates a limit of 50000 concurrent OData queries across all tenants. The number 6 is the
ID of the ODataMaxConcurrentQueries limit. The payload passes 50000 as the value for this limit.
POST https://MyServer:8443/api/admin/limits/system/6
{
"value": 50000
}
110 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Tenant architectures
Setting tenant limits
The following POST creates a limit of 10000 concurrent OData queries on the OrgA tenant. The number 71 is
the ID of OrgA, and the number 6 is the ID of the ODataMaxConcurrentQueries limit. This tenant limit will
override the system limit.
POST https://MyServer:8443/api/admin/limits/tenants/71/6
{
"value": 10000
}
Creating users and roles at the tenant level
The new tenant administrator (OrgAAdmin) can now provision users and create roles for the OrgA tenant (71).
The first request creates a new user in OrgA. The second request creates a new role in OrgA.
Request
POST https://MyServer:8443/api/admin/users
Request Payload
{
"userName": "OrgAUser1",
"tenantId": 71,
"statusInfo": {
"status": 1,
"accountLocked": false
},
"passwordInfo": {
"password": "TempWord",
"passwordStatus": 1,
"passwordExpiration": null
},
"permissions": {
"roles": [
104
]
}
}
Response Payload
{
"id": 3222,
"userName": "OrgAUser1",
"tenantId": 71,
"statusInfo": {
"status": 1,
"accountLocked": false
},
"passwordInfo": {
"passwordStatus": 1,
"passwordExpiration": null
},
"permissions": {
"roles": [
104
]
},
"authenticationInfo": {
"authUsers": [
{
"authUserName": "OrgAUser1",
"authServiceId": 1
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 111Chapter 2: Administering Hybrid Data Pipeline
}
]
}
}
With the following POST request, a new role is created in the OrgA tenant for OData-only access to data
sources. No user is specified in this example, but a user can subsequently be assigned the new role either
through the Roles API or the Users API.
Request
POST https://MyServer:8443/api/admin/roles
Request Payload
{
"name": "ODataOnly",
"tenantId": 71,
"description": "This role allows only OData access.",
"permissions": [7],
"users": []
}
Response Payload
{
"id": 311,
"name": "ODataOnly",
"tenantId": 71,
"description": "This role allows only OData access.",
"permissions": [
7
],
"users": []
}
See also
User provisioning on page 112
Users API on page 1174
Roles API on page 1140
System Configurations API on page 1152
Limits API on page 1099
User provisioning
Once a tenant architecture has been established as described in Tenant architectures on page 87, a Hybrid
Data Pipeline administrator can proceed with provisioning users. User accounts can be created and managed
either through the Web UI or using Hybrid Data Pipeline APIs. User accounts must have at least one assigned
role. A role is defined by the permissions that are associated with it. Users can be provisioned to have either
direct access to the Hybrid Data Pipeline service or query-only access to Hybrid Data Pipeline data sources.
Whether a user is a direct-access or query-only user depends on the role assigned and its associated
permissions.
• Direct-access user
• Query-only user
• Administrator permissions
112 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1User provisioning
• User provisioning scenarios
Direct-access user
A direct-access user is a user the administrator has provisioned with direct access to the service to create,
manage, and query data sources. The following work flow describes how access to data may be established
with a direct-access user.
1. The administrator creates a role for a direct-access user.
2. The administrator creates a user account for the direct-access user.
3. The direct-access user creates a data source through either the Web UI or the Data Sources API on page
1306.
Note: Alternatively, administrators can create their own data sources and share them with users or create
data sources on behalf of users.
4. Data source connection information is integrated into a client-side application or BI tool.
Query-only user
An administrator can limit user access such that users can run applications against Hybrid Data Pipeline data
sources, but not access Hybrid Data Pipeline directly. In this scenario, the administrator must not only provision
user accounts, but also create the data sources against which queries will be made.The data source information
may then be supplied either directly to the query-only user, or integrated into the client application such that
data access is transparent to the application end user. Thus, client applications are given access to backend
data stores, while users and developers on the client side do not otherwise have access to Hybrid Data Pipeline.
When provisioning users for query-only access to Hybrid Data Pipeline data sources, administrators can manage
data sources in two distinct ways.
• First, they can create a data source themselves, and then share the data source with one or more user
accounts. In this case, the data source information, including connection information, is the same for all
accounts querying the data source. Hence, sharing data sources can be used to support general access
to a backend data store when access to the data is the same across multiple end users. For example, an
administrator might create a data source to support the use of a reporting tool. Multiple end users across
the organization use the tool to run reports against the backend data store. In this case, connection information
associated with the data source can be integrated with the reporting tool. Hybrid Data Pipeline may be
entirely transparent to the users running the reports. However, the reporting tool uses the Hybrid Data
Pipeline data source to access the backend data. Administrators can share data sources either through the
Data Sources API or the Web UI.
• Second, the administrator can create a data source on behalf of a user account. In this scenario, the data
source is owned by the user account, and the data source information is unique to the account. Therefore,
creating data sources on behalf of users should be used in scenarios where access to backend data must
be unique for each user. For example, a backend data store might have row-level security measures on an
Employee database such that managers are only able to access information for the employees they manage.
In this case, an administrator would create data sources on the backend data store that are unique to each
manager based on each manager''s credentials. Administrators must use the Hybrid Data Pipeline API to
create data sources on behalf of users.
The following work flow describes how access to data may be enabled for a query-only user.
1. The administrator creates a role for the query-only user.
2. The administrator creates a user account for the query-only user.
3. The administrator uses either of the following methods to create a Hybrid Data Pipeline data source for the
query-only user.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 113Chapter 2: Administering Hybrid Data Pipeline
a. The administrator creates a data source through either the Web UI or the Data Sources API on page
1306. The administrator then shares the data source with the query-only user based on the rules and
guidelines in Sharing data sources on page 1308.
b. The administrator creates a data source on behalf of the query-only user as described in the Data Sources
API on page 1306 and Managing resources on behalf of users on page 1310.
4. Data source connection information is integrated into a client-side application or BI tool.
Administrator permissions
The ability of an administrator to provision users depend on the administrator''s permissions and administrative
access to a given tenant. A system administrator – defined as a user with the Administrator (12) permission –
can provision users across any tenant in the system. An administrator who does not have the Administrator
(12) permission must meet the following requirements to provision users.
• WebUI (8) permission must be granted if the administrator is using the Web UI to provision users.
• Administrative access to the tenant. In the Web UI, administrative access to a tenant can be granted by
editing a user account via the Manage Users view on page 67. With the API, administrative access can be
granted either by updating the tenants administered for a user via the Users API or by updating the list of
administrators for a tenant via the Tenant API.
• The permission corresponding to the specific operation. For example, the administrator must have the
CreateUsers (13) permission to create a user account, or the DeleteUsers (16) permission to delete a user
account.
User provisioning scenarios
The following topics describe a number of Hybrid Data Pipeline user provisioning scenarios.
• Provisioning users with the Web UI on page 114
• Provisioning users with Hybrid Data Pipeline APIs on page 119
• Managing permissions with Hybrid Data Pipeline APIs on page 137
Provisioning users with the Web UI
The Web UI can be used to provision and manage Hybrid Data Pipeline user accounts. The Web UI can also
be used to create, view, modify, and delete roles, and, more generally, manage roles and the users associated
with them. Depending on the role assigned and its associated permissions, users may have either direct access
to the service or query-only access to data sources.
The following topics provide instructions for provisioning users with the Web UI. (See also Using the Web UI
on page 65.)
• Create user accounts on page 115
• Update user accounts on page 115
• Delete user accounts on page 116
• Create roles on page 116
• Update roles on page 117
• Delete roles on page 117
• View data sources or data source groups on page 118
• Reset user account password on page 118
114 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1User provisioning
Create user accounts
Take the following steps to create a user account through the Web UI.
1. Navigate to the Manage Users view by clicking the manage users icon .
2. Click + New User.
3. Under the General tab, provide the following information.
• Tenant. Select the tenant to which the user will belong. Only the tenants for which you have administrative
access will appear.
• User Name. Enter the name of the user.
• Role. Assign a role for the user. A role must be assigned for the user.
• Status. Specify the user''s status. The user can be active or inactive.
4. Under the Authentication Setup tab, specify the Authentication Type.
• If you select Internal, you must specify a user name and password.
• If you select an external authentication service, you must specify one or more users whose credentials
are maintained by the service.This action associates the user with the Hybrid Data Pipeline user account.
Note: See Authentication on page 148 for information on implementing authentication services.
5. Under the Limits tab, set limits for the user as desired.
6. Under the Tenant Admin Access tab, administrative access to tenants may be granted if desired.
7. Click Save.
Results:
The user has been created. The user will appear in the list of users in the Manage Users view for the given
tenant.
What to do next:
Depending on the application environment, either of the following actions may be taken.
• The direct-access user creates a data source through either the Web UI or the Data Sources API on page
1306.
• The administrator creates a data source through either the Web UI or the Data Sources API on page 1306.
The administrator then shares the data source with the user based on the rules and guidelines in Sharing
data sources on page 1308.
• The administrator creates a data source on behalf of the user as described in the Data Sources API on
page 1306 and Managing resources on behalf of users on page 1310.
Update user accounts
Take the following steps to update a user account through the Web UI.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 115Chapter 2: Administering Hybrid Data Pipeline
1. Navigate to the Manage Users view by clicking the manage users icon .
2. Select the user account you want to update.
3. Click the Actions dropdown. Then select Edit.
4. Under the General tab, update user information as desired..
• Tenant. The tenant field displays the tenant to which the user belongs. However, you may not select
another tenant in order to transfer the user. To transfer a user from one tenant to another, you must
create a new user account in the tenant to which the user is moving.
• User Name.You may edit the user name field.
• Role.You may assign a different or additional role to the user.
• Status.You may change the user''s status. The user can be active or inactive.
5. Under the Authentication Setup tab, update authentication information as desired.
• Authentication Type. Specify the method of authentication the user must use to login. In addition to
the internal authentication service, an administrator can integrate an external authentication service such
as Active Directory. See Authentication on page 148 for details.
• Password. Enter a new user password. See Password policy on page 164 for password requirements.
• Confirm Password. Re-enter the new password.
6. Under the Limits tab, set limits for the user as desired.
7. Under the Tenant Admin Access tab, administrative access to tenants may be granted or removed.
8. Click Save.
Results:
The user has been updated.
Delete user accounts
Take the following steps to delete user account through the Web UI.
1. Navigate to the Manage Users view by clicking the manage users icon .
2. Select the user account(s) you want to delete.
3. Click the Actions dropdown. Then select Delete.
4. When prompted confirm that you wish to delete the user(s) by clicking Delete.
Results:
The user(s) has been delete. The user(s) is removed from the list of users in the Manage Users view for the
given tenant.
Create roles
Take the following steps to create a role through the Web UI.
116 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1User provisioning
1. Navigate to the Manage Roles view by clicking the manage roles icon .
2. Click + New Role.
3. Provide the following information.
• Tenant. Select the tenant for which the role is being created. Only the tenants for which you have
administrative access will appear.
• Role Name. Enter the name of the role.
• Role Description. Enter a description of the role.
• Permissions. Select the permissions associated with the role. See Permissions and default roles on
page 61 for details.
4. Click Save.
Results:
The role has been created. The role will appear in the list of roles in the Manage Roles view for the given
tenant.
What to do next:
You can now create users with this role, or assign this role to users.
Update roles
Take the following steps to update a role through the Web UI.
1. Navigate to the Manage Roles view by clicking the manage roles icon .
2. Select the role you want to update.
3. Click the Actions dropdown. Then select Edit.
4. Update the role as desired.
• Tenant. The tenant field displays the tenant to which the role belongs. However, you may not select
another tenant in order to transfer the role. A distinct role must be created for the other tenant.
• Role Name.You may enter a new name for the role.
• Role Description.You may enter a new description for the role.
• Permissions.You may modify the permissions associated with the role. See Permissions and default
roles on page 61 for details.
5. Click Save.
Results:
The role has been updated. The permissions for the users to whom the role was assigned are modified
accordingly.
Delete roles
Take the following steps to delete roles through the Web UI.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 117Chapter 2: Administering Hybrid Data Pipeline
1. Navigate to the Manage Roles view by clicking the manage roles icon .
2. Select the role(s) you want to delete.
3. Click the Actions dropdown. Then select Delete.
4. When prompted confirm that you wish to delete the roles(s) by clicking Delete.
Results:
The role(s) has been delete. The role(s) is removed from the list of roles in the Manage Roles view for the
given tenant.
View data sources or data source groups
In the tenants they administer, administrators can view a list of data sources owned by the users that reside
in the tenant.
Take the following steps to view data sources in the tenant.
1. Navigate to the Data Sources view by clicking the data sources icon .
By default, a list of data sources owned by the administrator will be shown.
2. Specify whether you want to view the user''s data sources or the user''s data source groups.
• Select the Data Sources tab to view the user''s data sources.
• Select the Data Source Groups tab to view the user''s data source groups.
3. Select the user''s tenant and then the user''s name from the Select Tenant and Select User dropdowns.
Results:
A list of data sources or data source groups owned by the user is displayed.
Reset user account password
Take the following steps to reset a user account password through the Web UI.
1. Navigate to the Manage Users view by clicking the manage users icon .
2. Select the user account you want to update.
3. Click the Actions dropdown. Then select Edit.
4. Select the Authentication Setup tab.
5. Enter a password in the Password field. See Password policy on page 164 for password requirements.
6. Re-enter the password in the Confirm Password field.
7. Click Save.
Results:
The user password has been reset.
118 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1User provisioning
Provisioning users with Hybrid Data Pipeline APIs
Administrators can use Hybrid Data Pipeline APIs to provision users for access to Hybrid Data Pipeline. The
Users API on page 1174 can be used to provision and manage Hybrid Data Pipeline user accounts.The Roles
API on page 1140 can be used to create, view, modify, and delete roles, and, more generally, manage roles and
the users associated with them.
The following topics detail API operations for provisioning users in a number of scenarios. (See also the Hybrid
Data Pipeline API reference on page 1065.)
• Providing direct access on page 119
• Providing query-only access by sharing a data source on page 123
• Providing query-only access by creating data sources on behalf of users on page 126
• Providing limited direct access to data sources and features on page 130
• Providing query access to an ODBC data source and limited access to the Web UI on page 133
Providing direct access
The following operations show how you can provision a direct-access user with Hybrid Data Pipeline APIs.
• Creating a user account
• Creating new role
• Assigning new role
• Setting permissions on a user account
• Resetting user account password
• Changing user account status
• Deleting a user account
Creating a user account
The following operation creates a user account in tenant 26 with role 86. The administrator must have the
Administrator (12) permission, or the CreateUsers (13) permission and administrative access on the tenant.
Note: An administrator cannot create users that have tenant or elevated permissions unless the administrator
also has those permissions.
Request
POST https://MyServer:8443/api/admin/users
Request Payload
{
"userName": "testuser",
"tenantId": 26,
"statusInfo": {
"status": 1,
"accountLocked": false
},
"passwordInfo": {
"password": "TempPassword",
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 119Chapter 2: Administering Hybrid Data Pipeline
"passwordStatus": 1,
"passwordExpiration": "2020-01-01 00:00:00"
},
"permissions": {
"roles": [
86
]
}
}
Response Payload
{
"id": 31,
"userName": "testuser",
"tenantId": 26,
"statusInfo": {
"status": 1,
"accountLocked": false
},
"passwordInfo": {
"password": "TempPassword",
"passwordStatus": 1,
"passwordExpiration": "2020-01-01 00:00:00"
},
"permissions": {
"roles": [
86
]
},
"authenticationInfo": {
"authUsers": [
{
"authUserName": "testuser",
"authServiceId": 1
}
]
}
}
Creating new role
The following operation creates a new role in tenant 26. The administrator must have the Administrator (12)
permission; or the administrator must have the CreateRole (17) permission, any permissions specified in the
new role, and administrative access on the tenant.
Request
POST https://MyServer:8443/api/admin/roles
Request Payload
{
"name": "odata_ds_role",
"tenantId": 26,
"description": "This role allows users to create and work with OData data sources.",
"permissions": [
1,
2,
3,
4,
7,
8,
9,
10,
11
120 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1User provisioning
],
"users": []
}
Response Payload
{
"id": 94,
"name": "odata_ds_role",
"tenantId": 26,
"description": "This role allows users to create and work with OData data sources.",
"permissions": [
1,
2,
3,
4,
7,
8,
9,
10,
11
],
"users": []
}
Assigning new role
The following operation assigns the odata_ds_role to the testuser user account. The user account ID 31 is
specified in the URL.The administrator must have the Administrator (12) permission; or the administrator must
have the ModifyUsers (15) permission, any permissions specified in the new role, and administrative access
on the tenant.
Request
PUT https://MyServer:8443/api/admin/users/31
Request Payload
{
"userName": "testuser",
"tenantId": 26,
"statusInfo": {
"status": 1,
"accountLocked": false
},
"passwordInfo": {
"passwordStatus": 1,
"passwordExpiration": "2025-01-01 00:00:00"
},
"permissions": {
"roles": [
94
]
}
}
Response Payload
{
"userName": "testuser",
"tenantId": 26,
"statusInfo": {
"status": 1,
"accountLocked": false
},
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 121Chapter 2: Administering Hybrid Data Pipeline
"passwordInfo": {
"passwordStatus": 1,
"passwordExpiration": "2025-01-01 00:00:00"
},
"permissions": {
"roles": [
94
]
},
"authenticationInfo": {
"authUsers": [
{
"authUserName": "testuser",
"authServiceId": 1
}
]
}
}
Setting permissions on a user account
The following operation shows how permissions can be set explicitly on a user account. In this example, the
administrator retains the odata_ds_role for the user, but adds the UseDataSourceWithJDBC (5) permission.
The administrator must have the Administrator (12) permission; or the administrator must have the ModifyUsers
(15) permission, any permissions specified in the new role, and administrative access on the tenant.
Request
PUT https://MyServer:8443/api/admin/users/31/permissions
Request Payload
{
"roles": [
94
],
"permissions": [
5
]
}
Response Payload
{
"roles": [
94
],
"permissions": [
5
]
}
Resetting user account password
The following operation shows how to reset a user account password. Making this request changes the password
and sets the passwordStatus to 2 (reset). The end user must change the password when he or she next
logs in. Users can change their passwords either through the Web UI or through the User Details API. The
administrator must have the Administrator (12) permission, or the ModifyUsers (15) permission and administrative
access on the tenant.
Request
PUT https://MyServer:8443/api/admin/users/31/resetpassword
122 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1User provisioning
Request Payload
{
"newPassword": "tempsecret"
}
Response Payload
Status code: 204
No Content
Changing user account status
The following operation shows how to change user account status from active (1) to inactive (0). An inactive
user cannot log in to the Web UI, use APIs, or establish JDBC, ODBC, or OData connections.The administrator
must have the Administrator (12) permission, or the ModifyUsers (15) permission and administrative access
on the tenant.
Request
PUT https://MyServer:8443/api/admin/users/31/statusinfo
Request Payload
{
"status": 0
}
Response Payload
{
"status": 0
}
Deleting user account
The following operation shows how to delete a user account. The user account ID 31 is specified in the URL.
The administrator must have the Administrator (12) permission, or the DeleteUsers (16) permission and
administrative access on the tenant.
Request
DELETE https://MyServer:8443/api/admin/users/31
Response Payload
{
"success":true
}
Providing query-only access by sharing a data source
The following operations show the provisioning of a query-only user for ODBC access to a SQL Server database.
The administrator begins by creating a role for the user account, creates a user account, creates a data source,
and then shares the data source with the user account.
Note: A data source can also be shared with a tenant, in effect sharing the data source with all the users in
the tenant. See Sharing data sources on page 1308 for details.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 123Chapter 2: Administering Hybrid Data Pipeline
• Create role for query-only access
• Create user account
• Create data source
• Share data source
Create role for query-only access
The administrator begins by creating a role for query-only access with the following operation.The administrator
must have the Administrator (12) permission, or the CreateRole (17) permission and administrative access on
the tenant.
Request
POST https://MyServer:8443/api/admin/roles
Request Payload
{
"name": "Query access",
"tenantId": 59,
"description": "This role permits only query access.",
"permissions": [
5,
6,
7
],
"users": []
}
Response Payload
{
"id": 62,
"name": "Query access",
"tenantId": 59,
"description": "This role permits only query access.",
"permissions": [
5,
6,
7
],
"users": []
}
Create user account
The administrator then provisions a user account with the "Query access" role. The administrator must have
the Administrator (12) permission, or the CreateUsers (13) permission and administrative access on the tenant.
Request
POST https://MyServer:8443/api/admin/users
Request Payload
{
"userName": "QueryOnlyUser",
"tenantId": 59,
"statusInfo": {
"status": 1,
"accountLocked": false
},
"passwordInfo": {
124 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1User provisioning
"password": "TempPassword",
"passwordStatus": 1,
"passwordExpiration": null
},
"permissions": {
"roles": [
44
]
}
}
Response Payload
{
"id": 921,
"userName": "QueryOnlyUser",
"tenantId": 56,
"statusInfo": {
"status": 1,
"accountLocked": false
},
"passwordInfo": {
"passwordStatus": 1,
"passwordExpiration": null
},
"permissions": {
"roles": [
44
]
},
"authenticationInfo": {
"authUsers": [
{
"authUserName": "QueryOnlyUser",
"authServiceId": 1
}
]
}
}
Create a data source
The administrator then creates a data source. The administrator will be the owner of this data source, but will
share the data source with ODBCUser in the next operation.
The administrator must have the Administrator (12) permission, or the MgmtAPI (11) and CreateDataSource
(1) permissions.
Request
POST https://MyServer:8443/api/mgmt/datasources
Request Payload
{
"name": "SQLServer2",
"dataStore": "46",
"connectionType": "Hybrid",
"description": "Test SQL Server access",
"options": {
"Database": "CustomerData",
"User": "MySQLServerUserId",
"Password": "MySQLServerPassword"
}
}
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 125Chapter 2: Administering Hybrid Data Pipeline
Response Payload
{
"id": "6334",
"name": "SQLServer2",
"dataStore": "46",
"connectionType": "Hybrid",
"description": "Test SQL Server access",
"options": {
"Database": "CustomerData",
"User": "MySQLServerUserId",
"Password": "MySQLServerPassword"
}
}
Share a data source
The administrator then shares the data source with the QueryOnlyUser. The administrator limits access to
ODBC-only queries by setting the UseDataSourceWithODBC (6) permission on the data source. The data
source ID 6334 is passed in the request URL, while the user ID 921 and the data source permission are passed
in the request payload.
The administrator must have the Administrator (12) permission; or the administrator must have the MgmtAPI
(11) permission, the ModifyDataSource (3) permission, the UseDataSourceWithODBC (6) permission, and
administrative access to the tenant to which the shared user belongs.
Request
POST https://MyServer:8443/api/mgmt/datasources/6334/sharedUsers
Request Payload
{
"sharedUsers": [
{
"userId": 921,
"permissions": [
6
]
}
Response Payload
Status code: 201
Successful response
{
"sharedUsers": [
{
"userId": 921,
"permissions": [
6
]
}
Providing query-only access by creating data sources on behalf of users
The following operations show the provisioning of a query-only user for OData access to an Oracle database.
The administrator begins by creating a role for the user account, next creates the user account, and then
creates a data source on behalf of the user. (See also Managing resources on behalf of users on page 1310.)
• Create role for OData query-only access
126 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1User provisioning
• Create user account
• Create a data source on behalf of the user account
• Retrieve data source information on behalf of the user account
• User queries the OData endpoint
Create role for OData query-only access
The administrator begins by creating a role for OData query-only access with the following operation. The
administrator must have the Administrator (12) permission, or the CreateRole (17) permission and administrative
access on the tenant.
Request
POST https://MyServer:8443/api/admin/roles
Request Payload
{
"name": "OData query",
"tenantId": 56,
"description": "This role permits only OData query access.",
"permissions": [
7
],
"users": []
}
Response Payload
{
"id": 21,
"name": "OData-only Users",
"tenantId": 56,
"description": "This role permits only OData query access.",
"permissions": [
7
],
"users": []
}
Create user account
The administrator then provisions a user account with the "OData query" role. The administrator must have
the Administrator (12) permission, or the CreateUsers (13) permission and administrative access on the tenant.
Request
POST https://MyServer:8443/api/admin/users
Request Payload
{
"userName": "ODataUser",
"tenantId": 56,
"statusInfo": {
"status": 1,
"accountLocked": false
},
"passwordInfo": {
"password": "TempPassword",
"passwordStatus": 1,
"passwordExpiration": null
},
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 127Chapter 2: Administering Hybrid Data Pipeline
"permissions": {
"roles": [
21
]
}
}
Response Payload
{
"id": 921,
"userName": "ODataUser",
"tenantId": 56,
"statusInfo": {
"status": 1,
"accountLocked": false
},
"passwordInfo": {
"passwordStatus": 1,
"passwordExpiration": null
},
"permissions": {
"roles": [
21
]
},
"authenticationInfo": {
"authUsers": [
{
"authUserName": "ODataUser",
"authServiceId": 1
}
]
}
}
Create a data source on behalf of the user account
The administrator then creates a data source on behalf of ODataUser. Since the only permission associated
with the assigned role is UseDataSourceWithOData (7), the user will be able to access data through this data
source with OData queries, but will not be able to view data source information or access other Hybrid Data
Pipeline features.
The user query parameter (?user) is used to specify the owner of the data source. The administrator must
have the Administrator (12) permission; or the administrator must have the MgmtAPI (11) permission, the
OnBehalfOf (21) permission, administrative access on the tenant to which the user belongs, and the
CreateDataSource (1) permission.
Request
POST https://MyServer:8443/api/mgmt/datasources?user=ODataUser
Request Payload
{
"name": "Oracle_OData",
"dataStore": 43,
"connectionType": "Hybrid",
"description": "",
"options": {
"User": "OracleTest",
"Password": "Secret",
"ODataSchemaMap": "{\"odata_mapping_v2\":{\"schemas\":[{\"name\":\"D2CQA01\",
\"tables\":{\"Dept_Emp\":{},\"Employees\":{},\"Departments\":{},\"Salaries\":{},
\"Titles\":{},\"Dept_Manager\":{}}}]}}",
"ServerName": "TestServer",
128 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1User provisioning
"ExtendedOptions": "EncryptionMethod=noEncryption",
"SID": "UNI",
"ODataVersion": "2"
}
}
Response Payload
{
"id": "1681",
"name": "Oracle_OData",
"dataStore": 43,
"connectionType": "Hybrid",
"description": "",
"options": {
"User": "OracleTest",
"Password": "Secret",
"ODataSchemaMap": "{\"odata_mapping_v2\":{\"schemas\":[{\"name\":\"D2CQA01\",
\"tables\":{\"Dept_Emp\":{},\"Employees\":{},\"Departments\":{},\"Salaries\":{},
\"Titles\":{},\"Dept_Manager\":{}}}]}}",
"ServerName": "TestServer",
"ExtendedOptions": "EncryptionMethod=noEncryption",
"SID": "UNI",
"ODataVersion": "2"
}
}
Retrieve data source information on behalf of the user account
The administrator can then retrieve data source details on behalf of ODataUser. The administrator must have
the Administrator (12) permission; or the administrator must have the MgmtAPI (11) permission, the OnBehalfOf
(21) permission, administrative access on the tenant to which the user belongs, and the ViewDataSource (2)
permission. (Note that ODataUser cannot retrieve this information because the user does not have
ViewDataSource (2) permission.)
Request
GET https://MyServer:8443/api/mgmt/datasources?user=ODataUser
Response Payload
{
"id": "1681",
"name": "Oracle_OData",
"dataStore": 43,
"connectionType": "Hybrid",
"description": "",
"options": {
"User": "OracleTest",
"Password": "Secret",
"ODataSchemaMap": "{\"odata_mapping_v2\":{\"schemas\":[{\"name\":\"D2CQA01\",
\"tables\":{\"Dept_Emp\":{},\"Employees\":{},\"Departments\":{},\"Salaries\":{},
\"Titles\":{},\"Dept_Manager\":{}}}]}}",
"ServerName": "TestServer",
"ExtendedOptions": "EncryptionMethod=noEncryption",
"SID": "UNI",
"ODataVersion": "2"
}
}
User queries the OData endpoint
With the appropriate connection information as supplied by the administrator, the ODataUser can now query
the OData endpoint.With the following request, ODataUser retrieves an XML document from the Oracle_OData
data source.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 129Chapter 2: Administering Hybrid Data Pipeline
Important: The new user must authenticate using basic authentication to execute API queries.
Request
GET https://MyServer:8443/api/odata/Oracle_OData/Employees
Response Payload
Employeeshttps://MyServer:8443/api/odata/Oracle_OData/Oracle_OData/Employees2018-03-29T17:58:44Zhttps://MyServer:8443/api/odata/Oracle_OData/Employees(10001M)2018-03-29T17:58:44Z
...
Providing limited direct access to data sources and features
The following operations show the provisioning of a direct-access user.The user is granted permission to query
data sources and use a number of features, including the Web UI, but is not granted permission to create,
view, or modify data sources.
• Create query-based role
• Create SQL user
• Create a data source
• Share data source with SQLUser
Create query-based role
With the following request, an administrator can create a role that gives a user permissions to query OData,
ODBC, and JDBC data sources. In addition, the user has access to the Web UI, can change their password
in the Web UI, and can query data sources they own using the SQL Editor. However, the role does not permit
the user to create, modify, or delete data sources.The administrator must have the Administrator (12) permission,
or the CreateRole (17) permission and administrative access on the tenant.
Request
POST https://MyServer:8443/api/admin/roles
Request Payload
{
"name": "QueryBasedRole",
"tenantId": 56,
"description": "This role allows query access and direct access for the
Web UI, password, SQL editor, and Management API features",
"permissions": [
5,6,7,8,9,10,11
130 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1User provisioning
],
"users": []
}
Response Payload
{
"id": 88,
"name": "QueryBasedRole",
"tenantId": 56,
"description": "This role allows query access and direct access for the
Web UI, password, SQL editor, and Management API features",
"permissions": [
5,
6,
7,
8,
9,
10,
11
],
"users": []
}
Create SQL user
With the following request, an administrator creates a user called SQLUser with the QueryBasedRole role.
SQLUser inherits the permissions of the QueryBasedRole role described above. The administrator must have
the Administrator (12) permission, or the CreateUsers (13) permission and administrative access on the tenant.
Request
POST https://MyServer:8443/api/admin/users
Request Payload
{
"userName": "SQLUser",
"tenantId": 56,
"statusInfo": {
"status": 1,
"accountLocked": false
},
"passwordInfo": {
"password": "Secret",
"passwordStatus": 1
},
"permissions": {
"roles": [
88
]
}
}
Response Payload
{
"id": 1297,
"userName": "SQLUser",
"tenantId": 56,
"statusInfo": {
"status": 1,
"accountLocked": false
},
"passwordInfo": {
"passwordStatus": 1,
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 131Chapter 2: Administering Hybrid Data Pipeline
"passwordExpiration": null
},
"permissions": {
"roles": [
88
]
},
"authenticationInfo": {
"authUsers": [
{
"authUserName": "SQLUser",
"authServiceId": 1
}
]
}
}
Create a data source
An administrator can then create a data source. The administrator will be the owner of this data source, but
will share the data source with SQLUser in the next operation.
The administrator must have the Administrator (12) permission, or the MgmtAPI (11) and CreateDataSource
(1) permissions.
Request
POST https://MyServer:8443/api/mgmt/datasources
Request Payload
{
"name": "Oracle_Test",
"dataStore": 43,
"connectionType": "Hybrid",
"description": "",
"options": {
"User": "Test",
"Password": "Test",
"ServerName": "OracleTest",
"ODataSchemaMap": "{\"odata_mapping_v2\":{\"schemas\":[{\"name\":\"D2CQA
01\",\"tables\":{\"Dept_Emp\":{},\"Employees\":{},\"Departments\":{},\"Salaries\
":{},\"Titles\":{},\"Dept_Manager\":{}}}]}}",
"ODataVersion": "2",
"SID": "UNI",
"ExtendedOptions": "EncryptionMethod=noEncryption"
}
}
Response Payload
{
"id": "13",
"name": "Oracle_Test",
"dataStore": 43,
"connectionType": "Hybrid",
"description": "",
"options": {
"User": "Test",
"Password": "Test",
"ServerName": "OracleTest",
"ODataSchemaMap": "{\"odata_mapping_v2\":{\"schemas\":[{\"name\":\"D2CQA
01\",\"tables\":{\"Dept_Emp\":{},\"Employees\":{},\"Departments\":{},\"Salaries\
":{},\"Titles\":{},\"Dept_Manager\":{}}}]}}",
"ODataVersion": "2",
"SID": "UNI",
132 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1User provisioning
"ExtendedOptions": "EncryptionMethod=noEncryption"
}
Share a data source
The administrator can then share the data source with the SQLUser.The administrator limits access to queries
by setting the UseDataSourceWithJDBC (5), UseDataSourceWithODBC (6), and UseDataSourceWithOData
(7) permissions on the data source. The data source ID 13 is passed in the request URL, while the user ID
1297 and the data source permission are passed in the request payload.
The administrator must have the Administrator (12) permission; or the administrator must have the MgmtAPI
(11) permission, the ModifyDataSource (3) permission, the query permissions, and administrative access to
the tenant to which the shared user belongs.
Request
POST https://MyServer:8443/api/mgmt/datasources/13/sharedUsers
Request Payload
{
"sharedUsers": [
{
"userId": 1297,
"permissions": [
5,
6,
7
]
}
Response Payload
Status code: 201
Successful response
{
"sharedUsers": [
{
"userId": 1297,
"permissions": [
5,
6,
7
]
}
Providing query access to an ODBC data source and limited access to
the Web UI
The following operations show the provisioning of a direct-access user. The user is initially granted access to
query ODBC data sources and to change their password via the Web UI.Then, the user is subsequently granted
access to the SQL Editor.
• Create role for ODBC-only user with access to change password in the Web UI
• Create ODBC-only user
• Create a data source on behalf of ODBC-only user
• Update ODBC-only role to include SQL Editor access
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 133Chapter 2: Administering Hybrid Data Pipeline
• Grant SQL Editor access explicitly to the ODBC-only user
Create role for ODBC-only user with access to change password in the Web UI
With the following request, an administrator can create a role for an ODBC-only user with Web UI access to
change their password.The administrator must have the Administrator (12) permission, or the CreateRole (17)
permission and administrative access on the tenant.
Note: To use change password functionality in the Web UI, Web UI permission must also be granted.
Request
POST https://MyServer:8443/api/admin/roles
Request Payload
{
"name": "ODBC-only Users",
"tenantId": 56,
"description": "This role has ODBC, WebUI, and change password permissions.",
"permissions": [
6,
8,
9
],
"users": []
}
Response Payload
{
"id": 42,
"name": "ODBC-only Users",
"tenantId": 56,
"description": "This role has ODBC, WebUI, and change password permissions.",
"permissions": [
6,
8,
9
],
"users": []
}
Create ODBC-only user
An administrator can create a user with the ODBC-only role with the following request. The administrator must
have the Administrator (12) permission, or the CreateUsers (13) permission and administrative access on the
tenant.
Request
POST https://MyServer:8443/api/admin/users
Request Payload
{
"userName": "ODBCUser",
"tenantId": 56,
"statusInfo": {
"status": 1,
"accountLocked": false
},
"passwordInfo": {
134 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1User provisioning
"password": "TempPassword",
"passwordStatus": 1,
"passwordExpiration": null
},
"permissions": {
"roles": [
42
]
}
}
Response Payload
{
"id": 963,
"userName": "ODBCUser",
"tenantId": 56,
"statusInfo": {
"status": 1,
"accountLocked": false
},
"passwordInfo": {
"passwordStatus": 1,
"passwordExpiration": null
},
"permissions": {
"roles": [
42
]
},
"authenticationInfo": {
"authUsers": [
{
"authUserName": "ODBCUser",
"authServiceId": 1
}
]
}
}
Create a data source on behalf of ODBC-only user
An administrator can create a data source on behalf of ODBCUser with the following request. While the user
will not be able to view data source information or modify the data source, ODBCUser will be able to execute
ODBC queries on the data source and change their password in the Web UI.
The user query parameter (?user) is used to specify the owner of the data source. The administrator must
have the Administrator (12) permission; or the administrator must have the MgmtAPI (11) permission, the
OnBehalfOf (21) permission, administrative access on the tenant to which the user belongs, and the
CreateDataSource (1) permission.
Request
POST https://MyServer:8443/api/mgmt/datasources?user=ODBCUser
Request Payload
{
"name": "Oracle_ODBC",
"dataStore": 43,
"connectionType": "Hybrid",
"description": "",
"options": {
"User": "OracleTest",
"Password": "Secret",
"ServerName": "TestServer",
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 135Chapter 2: Administering Hybrid Data Pipeline
"ODataSchemaMap": "{\"odata_mapping_v2\":{\"schemas\":[{\"name\":\"D2CQA
01\",\"tables\":{\"Dept_Emp\":{},\"Employees\":{},\"Departments\":{},\"Salaries\
":{},\"Titles\":{},\"Dept_Manager\":{}}}]}}",
"ODataVersion": "2",
"ExtendedOptions": "EncryptionMethod=noEncryption",
"SID": "UNI"
}
Response Payload
{
"id": "2918",
"name": "Oracle_ODBC",
"dataStore": 43,
"connectionType": "Hybrid",
"description": "",
"options": {
"User": "OracleTest",
"Password": "Secret",
"ServerName": "TestServer",
"ODataSchemaMap": "{\"odata_mapping_v2\":{\"schemas\":[{\"name\":\"D2CQA
01\",\"tables\":{\"Dept_Emp\":{},\"Employees\":{},\"Departments\":{},\"Salaries\
":{},\"Titles\":{},\"Dept_Manager\":{}}}]}}",
"ODataVersion": "2",
"ExtendedOptions": "EncryptionMethod=noEncryption",
"SID": "UNI"
}
Update ODBC-only role to include SQL Editor access
With the following request, an administrator can update the ODBC-only role to include SQL editor access. The
SQLEditor permission allows the user to pass SQL queries with the SQL Editor in the Web UI. To use the SQL
Editor functionality, Web UI permission must also be granted. The administrator must have the Administrator
(12) permission, or the ModifyRole (19) permission and administrative access on the tenant.
Note: The payload should also include any previously set permissions that need to be retained, as well as the
user or users assigned the role.
Request
PUT https://MyServer:8443/api/admin/roles/42
Request Payload
{
"name": "ODBC-only Users",
"tenantId": 56,
"description": "This role has ODBC, WebUI, change password, and SQL editor
permissions.",
"permissions": [
6,
8,
9,
10
],
"users": [963]
}
Response Payload
{
"id": 42,
"name": "ODBC-only Users",
"tenantId": 56,
136 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1User provisioning
"description": "This role has ODBC, WebUI, change password, and SQL editor
permissions.",
"permissions": [
6,
8,
9,
10
],
"users": [963]
}
Grant SQL Editor access explicitly to the ODBC-only user
Alternatively, an administrator could explicitly set the SQLEditor permission on the user. To use the SQL Editor
functionality, Web UI permission must also be granted. In this example, the user inherits ODBC, WebUI, and
change password permissions through the ODBC-only Users role (42), while the SQLEditor (10) permission
is set explicitly on the user.The administrator must have the Administrator (12) permission, or the ModifyUsers
(15) permission and administrative access on the tenant to which the user belongs.
Note: The request payload must include the roles the user needs to retain. The payload should also include
any previously set explicit permissions the user needs to retain.
Request
PUT https://MyServer:8443/api/admin/users/963/permissions
Request Payload
{
"roles": [
42
],
"permissions": [
10
]
}
Response Payload
{
"roles": [
42
],
"permissions": [
10
]
}
Managing permissions with Hybrid Data Pipeline APIs
The Hybrid Data Pipeline APIs can be used to manage permissions for a user, role, or data source.The following
topics provide a number of example operations for the handling of permissions.
• Retrieving permissions on page 138
• Working with roles on page 141
• Working with user permissions on page 144
• Working with data source permissions on page 146
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 137Chapter 2: Administering Hybrid Data Pipeline
Retrieving permissions
The first step in working with permissions may simply be retrieving permissions. An administrator may want to
retrieve a list of all supported permissions, or retrieve the permissions for a role, user, or data source.
• Retrieve supported permissions
• Retrieve roles and permissions on a role
• Retrieve effective permissions on a user
• Retrieve permissions on a data source
Note: Administrators can also retrieve permissions on data sources that are shared with users and tenants.
See Data Sources API on page 1306 and Sharing data sources on page 1308 for details.
Retrieve supported permissions
An administrator can retrieve information on all supported permissions using the Administrator Permissions
API. A user must have either the Administrator (12) or MgmtAPI (11) to use this API.
Request
GET https://MyServer:8443/api/admin/permissions
Response Payload
{
"permissions": [
{
"id": 1,
"name": "CreateDataSource",
"description": "May create new data sources."
},
{
"id": 2,
"name": "ViewDataSource",
"description": "May view any data source they own (when given to a role
or user) or view an individual data source they own (when given to a data source)."
},
{
"id": 3,
"name": "ModifyDataSource",
"description": "May modify/update any data source they own (when given
to a role or user) or modify/update an individual data source they own (when given
to a data source)."
},
...
]
}
Retrieve roles and permissions on a role
A role ID is required to retrieve permissions on a role. Therefore, an administrator may need to retrieve roles
before requesting permissions on a role. The Roles API can be used to retrieve roles and then permissions
associated with a specific role.
Retrieve roles
The following request retrieves the roles for a Hybrid Data Pipeline service.The user must have the Administrator
(12) permission, or the ViewRole (18) permission and administrative access on the tenant.
138 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1User provisioning
Request
GET https://MyServer:8443/api/admin/roles
Response Payload
{
"roles": [
{
"id": 1,
"name": "Administrator",
"tenantId": 1,
"description": "This role has all permissions. This role cannot be
modified or deleted."
},
{
"id": 2,
"name": "User",
"tenantId": 1,
"description": "This role has the default permissions that a normal
user will be expected to have."
},
{
"id": 3,
"name": "Tenant Administrator",
"tenantId": 1,
"description": "This role has all the tenant administrator permissions."
}
]
}
Retrieve permissions on a role
With the role ID, an administrator can retrieve the permissions associated with a role.This request also returns
the users that have been assigned the role. The user must have the Administrator (12) permission, or the
ViewRole (18) permission and administrative access on the tenant.
Request
https://MyServer:8443/api/admin/roles/2
Response Payload
{
"name": "User",
"tenantId": 1,
"description": "This role has the default permissions that a normal user will
be expected to have.",
"permissions": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11
],
"users": [
2,
9,
46
]
}
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 139Chapter 2: Administering Hybrid Data Pipeline
Retrieve effective permissions on a user
An administrator can retrieve permissions on a user with either the Management Permissions API or the Users
API. The permissions for a user are the sum of the permissions granted to the user''s role(s) and permissions
granted explicitly to the user.
Management Permissions API example
The following Management Permissions API request returns the list of effective permissions for the user by
specifying the user''s name with the user query parameter (?user).The administrator must have the Administrator
(12) permission; or the administrator must have the MgmtAPI (11) permission, the OnBehalfOf (21) permission,
and administrative access on the tenant to which the user belongs.
Request
GET https://MyServer:8443/api/mgmt/permissions?user=d2cuser
Response Payload
{
"userId": 2,
"permissions": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11
]
}
Users API example
The following Users API request returns a roles object that shows the roles assigned to the user, and a
permissions object that shows the permissions that have been explicitly set on the user. The {id} is the
auto-generated user ID. The administrator must have the Administrator (12) permission, or the ViewUsers (14)
permission and administrative access on the tenant to which the user belongs.
Request
GET https://MyServer:8443/api/admin/users/{id}/permissions
Response Payload
{
"roles": [
5
],
"permissions": [
8,
9,
10
]
}
140 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1User provisioning
Retrieve permissions on a data source
The following Data Sources API request retrieves permissions on a specific data source on behalf of the data
source owner. The {datasourceId} is the auto-generated data source ID, and the user query parameter
(?user) is used to specify the owner of the data source. The administrator must have the Administrator (12)
permission; or the administrator must have the MgmtAPI (11) permission, the OnBehalfOf (21) permission,
administrative access on the tenant to which the user belongs, and the ViewDataSource (2) permission.
Note: When no permissions have been set on a data source, then the permissions of the user are returned.
When permissions have been set on a data source, they will be returned instead of the user''s permissions.
The permissions on a data source override the user''s permissions.
Request
GET https://MyServer:8443/api/mgmt/datasources/{datasourceId}/permissions?user=TestUser
Request Payload
{
"permissions": [
2,
5
]
}
Working with roles
The following operations show how the Roles API can be used to retrieve roles, create roles, retrieve details
on a role, and update the permissions on a role.
Note: Hybrid Data Pipeline provides three default roles in the system tenant: System Administrator, Tenant
Administrator, and User. The System Administrator role has all permissions, the Tenant Administrator role has
tenant and user permissions, and the User role has only user permissions.These roles cannot be deleted, and
only the users associated with them can be modified. (See also Permissions and default roles.)
• Retrieve current roles
• Create a new role
• Retrieve details on new role
• Update permissions on new role
Retrieve current roles
The following request will retrieve current roles in the Hybrid Data Pipeline service. The administrator must
have the Administrator (12) permission, or the ViewRole (18) permission and administrative access on the
tenant.
Request
GET https://MyServer:8443/api/admin/roles
Note: The ?tenantID= and ?tenantName= query parameters can be
appended to the URL to limit the roles returned to a specific tenant.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 141Chapter 2: Administering Hybrid Data Pipeline
Response Payload
{
"roles": [
{
"id": 1,
"name": "Administrator",
"tenantId": 1,
"description": "This role has all permissions. This role cannot be
modified or deleted."
},
{
"id": 2,
"name": "User",
"tenantId": 1,
"description": "This role has the default permissions that a normal
user will be expected to have."
},
{
"id": 3,
"name": "Tenant Administrator",
"tenantId": 1,
"description": "This role has all the tenant administrator permissions."
}
]
}
Create a new role
With the following POST request, a new role is created which allows OData-only access to three users as
specified with the "users" property. The administrator must have the Administrator (12) permission, or the
CreateRole (17) permission and administrative access on the tenant.
Request
POST https://MyServer:8443/api/admin/roles
Request Payload
{
"name": "ODataOnly",
"tenantId": 1,
"description": "This role allows only OData access.",
"permissions": [7],
"users": [11,12,13]
}
Response Payload
{
"id": 37
"name": "ODataOnly",
"tenantId": 1,
"description": "This role allows only OData access.",
"permissions": [
7
],
"users": [
11,
12,
13
]
}
142 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1User provisioning
Retrieve details on new role
An administrator can then retrieve details on the new role, including permissions and users, with the following
GET request. The role ID 37 is past in the request URL. The administrator must have the Administrator (12)
permission, or the ViewRole (18) permission and administrative access on the tenant.
Request
GET https://MyServer:8443/api/admin/roles/37
Response Payload
{
"id": 37,
"name": "ODataOnly",
"tenantId": 1,
"description": "This role allows only OData access.",
"permissions": [
7
],
"users": [
11,
12,
13
]
}
Update permissions on new role
An administrator can also use a PUT request to update permissions and users associated with the new role.
The following request adds the SQLEditor permission to the role and assigns the role to an additional user.
The administrator must have the Administrator (12) permission, or the ModifyRole (19) permission and
administrative access on the tenant.
Request
PUT https://MyServer:8443/api/admin/roles/37
Request Payload
{
"id": 37,
"name": "ODataOnly",
"tenantId": 1,
"description": "This role allows OData access and access to the Web UI SQL
editor.",
"permissions": [
7,
10
],
"users": [
11,
12,
13,
14
]
}
Response Payload
{
"id": 37,
"name": "ODataOnly",
"tenantId": 1,
"description": "This role allows OData access and access to the Web UI SQL
editor.",
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 143Chapter 2: Administering Hybrid Data Pipeline
"permissions": [
7,
10
],
"users": [
11,
12,
13,
14
]
}
Working with user permissions
Administrators can use the Users API to create users with a specific role and set permissions explicitly on
users.The permissions for a user are the sum of the permissions granted to the user''s role(s) and permissions
granted explicitly to the user. When creating a user, the administrator must assign the user a role.
Note: Administrators cannot use the Users API to assign themselves a role or set permissions on themselves.
Such tasks would have to be done by another administrator. Best practices recommend that there should be
at least two users with Administrator (12) permission. Any user with the Administrator (12) permission is in
effect a system administrator and has permission to use all Hybrid Data Pipeline features and functionality.
• Create a new user
• Set explicit permissions on the user
• Retrieve permissions on the new user
Create a new user
The following POST creates a user with the ODataOnly role.The user inherits the permissions associated with
this role. The administrator must have the Administrator (12) permission, or the CreateUsers (13) permission
and administrative access on the tenant.
Request
POST https://MyServer:8443/api/admin/users
Request Payload
{
"userName": "ODataUser",
"tenantId": 56,
"statusInfo": {
"status": 1,
"accountLocked": false
},
"passwordInfo": {
"passwordStatus": 1,
"passwordExpiration": null
},
"permissions": {
"roles": [
6
]
}
}
144 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1User provisioning
Response Payload
{
"id": 307,
"userName": "ODataUser",
"tenantId": 56,
"statusInfo": {
"status": 1,
"accountLocked": false
},
"passwordInfo": {
"passwordStatus": 1,
"passwordExpiration": null
},
"permissions": {
"roles": [
6
]
},
"authenticationInfo": {
"authUsers": [
{
"authUserName": "ODataUser",
"authServiceId": 1
}
]
}
}
Set explicit permissions on the user
An administrator can then set permissions explicitly on the new user with the following PUT request, where
{id} is the auto-generated user ID. In this example, the user is explicitly being granted ChangePassword
permission.The administrator must have the Administrator (12) permission, or the ModifyUsers (15) permission
and administrative access on the tenant.
Request
PUT https://MyServer:8443/api/admin/users/{id}/permissions
Request Payload
{
"roles": [6],
"permissions": [10]
}
Response Payload
{
"roles": [
6
],
"permissions": [
10
]
}
Retrieve permissions on the new user
With the following GET request, the permissions in terms of roles and explicit permissions can be retrieved for
the new user, where {id} is the auto-generated ID of the user. The administrator must have the Administrator
(12) permission, or the ViewUsers (14) permission and administrative access on the tenant.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 145Chapter 2: Administering Hybrid Data Pipeline
Request
GET https://MyServer:8443/api/admin/users/{id}/permissions
Response Payload
{
"roles": [
6
],
"permissions": [
10
]
}
Working with data source permissions
The Data Sources API allows administrators to create their own data sources and create data sources on
behalf of users. When creating a data source on behalf of a user, administrators can set permissions on the
data source to limit user access to the data source. Data source permissions override individual user permissions
whether inherited through a role or set explicitly for the user. When an administrator creates a data source on
behalf of a user, any administrator with the appropriate permissions would have access to the data source
through the on-behalf-of functionality.
• Create a data source on behalf of a user
• Retrieve permissions on behalf of a user
• Update permissions on a data source
• Retrieve the effective permissions on a data source
Create a data source on behalf of a user
The following POST request creates a data source on behalf of a user. The user query parameter (?user) is
used to specify the owner of the data source. The administrator must have the Administrator (12) permission;
or the administrator must have the MgmtAPI (11) permission, the OnBehalfOf (21) permission, administrative
access on the tenant to which the user belongs, and the CreateDataSource (1) permission.
Request
POST https://MyServer:8443/api/mgmt/datasources?user=ODataUser
Request Payload
{
"name": "ODataSF",
"dataStore": "1",
"connectionType": "Cloud",
"description": "Test OData access to Salesforce",
"options": {
"Database": "Accounting",
"User": "mySForceUserId",
"Password": "mySForcePassword",
"SecurityToken": "mySecurityToken",
"StmtCallLimit": "60",
"ODataSchemaMap": "{\"odata_mapping_v2\":{\"schemas\":[{\"name\":\"D2CQA01\"
,\"tables\":{\"Dept_Emp\":{},\"Employees\":{},\"Departments\":{},\"Salaries\":{}
,\"Titles\":{},\"Dept_Manager\":{}}}]}}",
"ODataVersion": "2"
}
}
146 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1User provisioning
Retrieve permissions on behalf of a user
The following GET request retrieves the effective permissions on the data source on behalf of the data source
owner, where 16 is the ID of the data source.
The administrator must have the Administrator (12) permission; or the administrator must have the MgmtAPI
(11) permission, the OnBehalfOf (21) permission, administrative access on the tenant to which the user belongs,
and the ViewDataSource (2) permission.
Note: When no permissions have been set on a data source, then the permissions of the user are returned.
When permissions have been set on a data source, they will be returned instead of the user''s permissions.
The permissions on a data source override user and role permissions.
Request
GET https://MyServer:8443/api/mgmt/datasources/16/permissions?user=ODataUser
Response Payload
{
"permissions": [
7
]
}
Update permissions on a data source
With the following PUT request, an administrator can modify permissions on the data source on behalf of the
data source owner. In this example, the administrator allows the ODataUser several additional permissions.
The user query parameter (?user) is used to specify the owner of the data source. The administrator must
have the Administrator (12) permission; or the administrator must have the MgmtAPI (11) permission, the
OnBehalfOf (21) permission, administrative access on the tenant to which the user belongs, and the
ModifyDataSource (3) permission.
Request
PUT https://MyServer:8443/api/mgmt/datasources/16/permissions?user=ODataUser
Request Payload
{
"permissions": [
2,
3,
4,
7,
10
]
}
Retrieve the effective permissions on a data source
An administrator can then retrieve the updated effective permissions with a GET request.
The user query parameter (?user) is used to specify the owner of the data source. The administrator must
have the Administrator (12) permission; or the administrator must have the MgmtAPI (11) permission, the
OnBehalfOf (21) permission, administrative access on the tenant to which the user belongs, and the
ViewDataSource (2) permission.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 147Chapter 2: Administering Hybrid Data Pipeline
Note: When permissions have been set on a data source, the effective permissions are the permissions set
on the data source. Since data source permissions override user permissions, the user permissions are excluded
from the response payload.
Request
GET https://MyServer:8443/api/mgmt/datasources/16/permissions?user=ODataUser
Response Payload
{
"permissions": [
2,
3,
4,
7,
10
]
}
Authentication
Hybrid Data Pipeline supports internal and external authentication. When the default internal authentication
system is used, end user credentials are checked against a hash of the password stored in the Hybrid Data
Pipeline account database. When external authentication is used, end user credentials are checked against
an external authentication service. External authentication services may be supported either through a Java
plugin or through an LDAP server. The following topics provide details and procedures for implementing
authentication services.
• Integrating external authentication with a Java plugin on page 148
• Integrating an LDAP authentication service on page 157
• Advanced functionality for authentication services on page 162
See also
Authentication API on page 1070
Users API on page 1174
Integrating external authentication with a Java plugin
Hybrid Data Pipeline supports external authentication services through a Java authentication plugin. The
following general steps must be followed to implement authentication with a Java plugin.
Note: If running Hybrid Data Pipeline in FIPS mode, the Java authentication plugin must be FIPS compliant.
In addition, the plugin should be tested with FIPS mode enabled before moving to a production environment.
1. Build a Java plugin that implements the Java authentication plugin interface using the authjavaplugin.jar
file provided in the product package.
2. Add the Java plugin to the Hybrid Data Pipeline environment.
148 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Authentication
3. Register a Java plugin authentication service.
4. Configure a Hybrid Data Pipeline user account to authenticate end user credentials against the Java plugin
authentication service.
Building a Java plugin for external authentication
The first step in integrating a Java authentication plugin is building the plugin. The plugin must be built using
Java 8.
The external authentication service must be multi-thread safe. In other words, Hybrid Data Pipeline must be
able to safely have multiple threads call authenticate() on the same Java plugin object at the same time.
The Hybrid Data Pipeline service must also be able to create multiple instances of the plugin.
Take the following steps to build a Java plugin to use with an external authentication service.
1. Create a Java class that implements the Java authentication plugin interface, according to substeps a, b,
and c.
The Java authentication plugin interface is:
com.ddtek.cloudservice.plugins.auth.javaplugin.JavaAuthPluginInterface
The Java authentication plugin interface is defined in the
/ddcloud/dev/lib/authjavaplugin.jar, where is the installation
directory of a Hybrid Data Pipeline server.
See Java authentication plugin interface syntax on page 150 for the syntax of the interface definition.
See Java authentication plugin sample on page 151 for an example plugin.
a) After creating an instance of the Java plugin, Hybrid Data Pipeline will call the init() method in the
object to initialize the object with configuration information.
void init(HashMap(String, Object) attributes, Logger logger)
attributes: a JSON object that can provide useful values for initialization, such as an authentication
server name. Multiple authentication services can use the same plugin as long as the appropriate
attributes are provided via the JSON object. Hybrid Data Pipeline passes a HashMap representation of
the JSON object for any authentication service configured to use the plugin and registered via the
Authentication API.
logger: an object that can be used to log information, such as failed authentication or errors that
occurred when authenticating a user. The log entries are collected in a separate file named
extauth.log located in the .../ddcloud/das/server/logs/das subdirectory.
b) The following method is called by the Hybrid Data Pipeline service to release or close resources in the
event Hybrid Data Pipeline shuts down or the authentication service is updated.
void destroy()
c) The Hybrid Data Pipeline service calls the following method to authenticate the Hybrid Data Pipeline
end user.
boolean authenticate(String username, String password, String ipAddress)
username: the username persisted by an authentication service. Referred to as the authUserName in
the Users API.
password: the password provided by the end user.
ipAddress: the IP Address of the end user machine.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 149Chapter 2: Administering Hybrid Data Pipeline
Note: If the user cannot be authenticated, an error is returned. When the plugin returns false, Hybrid
Data Pipeline will return an invalid username and password error. If the plugin throws an exception,
Hybrid Data Pipeline will return an error indicating the service is unavailable.
2. Compile the Java class implemented in Step 1 with any other Java classes needed to implement the
authentication methods.
The following command compiles the Java class.
javac -cp /ddcloud/dev/lib/authjavaplugin.jar ...
3. Package all the class files into a jar file.
The following command packages input files into the file custom_auth_plugin.jar.
jar cf custom_auth_plugin.jar
What to do next:
The Java authentication plugin, in the form of the jar file, must be added to the Hybrid Data Pipeline environment.
Java authentication plugin interface syntax
When building a Java plugin, a Java class must be created that implements the Java authentication plugin
interface. The Java plugin interface has the following syntax.
{
"className": "java_plugin_classname",
"attributes": {
"attribute_name": "attribute_value",
"attribute_name": "attribute_value",
...
}
Property Description Valid Values
"className" The class name that implements The name of the class that the Java plugin
the Java authentication plugin developer created to implement the Java
interface. authentication plugin interface.
"attributes" A JSON object comprised of named A valid JSON object.
attribute values that are passed to
the init method of the Java
plugin.These attributes can provide
useful values for initialization, such
as an authentication server name,
and can be used to configure the
plugin for use by multiple
authentication servers.
Interface example
{
"className": "com.test.hdp.plugins.auth.HDPUserAuthentication",
"attributes": {
"Server": "test-authentication",
"BackupServer": "test-authentication-backup"
}
150 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Authentication
Java authentication plugin sample
The following sample Java authentication plugin can be modified to create a custom plugin for integrating an
in-house authentication system with Hybrid Data Pipeline. The external authentication service must be
multi-thread safe. In other words, Hybrid Data Pipeline must be able to safely have multiple threads call
authenticate() on the same Java plugin object at the same time. The Hybrid Data Pipeline service must
also be able to create multiple instances of the plugin.
The Java authentication plugin interface must be implemented with the following methods.
• void init (HashMap attributes, Logger logger)
• void destroy ()
• boolean authenticate (String username, String password, String ipAddress)
The JavaAuthPluginException constructor can be used to handle errors and exceptions.
package com.ddtek.cloudservice.plugins.auth.javaplugin;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Properties;
import java.util.Set;
import java.util.logging.Logger;
public class JavaAuthPluginSample implements JavaAuthPluginInterface {
Properties authorizedUsers;
/**
* Initializes a Java authentication plugin with any properties specified when defining
the plugin.
* @param props The defined properties for this plugin.
* @param logger A Java logger for the plugin to use.
*/
@Override
public void init (HashMap attributes, Logger logger) {
if (attributes == null) {
authorizedUsers = new Properties ();
authorizedUsers.setProperty ("d2ctest", "d2ctest");
return;
}
authorizedUsers = new Properties ();
Set keySet = attributes.keySet ();
Iterator keys = keySet.iterator ();
while (keys.hasNext ()) {
String key = keys.next ();
Object value = attributes.get (key);
if (value instanceof String) {
authorizedUsers.setProperty (key, (String) value);
}
else {
logger.warning (value.toString () + " [" + value.getClass ().getName () +
"] is not a String");
}
}
}
/**
* Terminates a Java authentication plugin -- free resources and cleanup.
*/
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 151Chapter 2: Administering Hybrid Data Pipeline
@Override
public void destroy () {}
/**
* Authenticates a username and password.
* If authentication cannot be determined, such as due to a failure
* in the authentication mechanism, an exception should be thrown.
* This routine must be multi-thread safe.
* @param username The name of the user.
* @param password The password to authenticate with.
* @param ipAddress The IP address of the authentication request.
* @returns Whether or not the username and password are valid.
*/
@Override
public boolean authenticate (String username, String password, String ipAddress) {
String pwd = authorizedUsers.getProperty (username);
// Assumes password is never null, but pwd may be null.
return password.equals (pwd);
}
}
/**
* Constructor for JavaAuthPluginException.
*/
public JavaAuthPluginException ();
/**
* Constructor for JavaAuthPluginException.
* @param message Detail message for JavaAuthPluginException.
*/
public JavaAuthPluginException (String message);
/**
* Constructor for JavaAuthPluginException.
* @param message Detail message for JavaAuthPluginException.
* @param cause Cause of the exception.
*/
public JavaAuthPluginException (String message, Throwable cause);
/**
* Constructor for JavaAuthPluginException.
* @param cause Cause of the exception.
*/
public JavaAuthPluginException (Throwable cause);
Adding a Java authentication plugin to a Hybrid Data Pipeline environment
Once the Java authentication plugin has been built as described in Building a Java plugin for external
authentication on page 149, the plugin must be added to the Hybrid Data Pipeline environment.
Take the following steps to add a Java authentication plugin.
Note: If your authentication plugin calls to an external source that uses a self-signed certificate for HTTPS,
the self-signed certificate must be added to the Hybrid Data Pipeline JRE truststore. The default location of
the truststore is hdp_install_dir/jre/lib/security/cacerts, where hdp_install_dir is the
Hybrid Data Pipeline installation directory. However, if you are using an external JRE at runtime, you will need
to update the truststore at jre_install_dir/jre/lib/security/cacerts, where jre_install_dir
is the installation directory of the external JRE.
1. Add the plugin and any other jar files required for the implementation, such as Apache HTTP Client jars, to
the plugins directory. The location of the plugins directory depends on the Hybrid Data Pipeline
deployment.
152 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Authentication
Standalone node deployment
The plugins directory will be found in either of the following locations.
• hdp_install_dir/ddcloud/keystore if the default key location was selected during installation
of the server
• user_specified_location if a non-default key location was specified during installation of the server
Load balancer deployment
The plugins directory will be found in the location specified as the key location during installation of the
server.
2. Restart the Hybrid Data Pipeline service on each node that is running the service.
a) Run the stop service script for each node running the service. The location of the stop script is
hdp_install_dir/ddcloud/stop.sh.
Note: Shutting down Hybrid Data Pipeline may take a few minutes. Wait until you see the Shutdown
complete message displayed on the console before taking any additional actions.
b) Run the start service script for each node running the service. The location of the start script is
hdp_install_dir/ddcloud/start.sh.
What to do next:
The external authentication service must be registered using the Authentication API.
See also
External JRE support and integration on page 52
Registering a Java plugin authentication service
Before a user account can be configured to use a Java plugin authentication service, the authentication service
must be registered in Hybrid Data Pipeline. As described in the following sections, you can register a Java
plugin authentication service either through the Web UI or the Authentication API.
Note:
• An external authentication service registered in the default system tenant is available across all tenants,
while an external authentication service registered in a child tenant is only available in that tenant. Once a
service is registered with a tenant, the tenant administrator can create or modify user accounts to authenticate
end user credentials against the service.
• A user with the Administrator (12) permission can register an external authentication service on any tenant
within the system. A user with the RegisterExternalAuthService (26) permission can register an external
authentication service on any tenant to which he or she has administrative access.
Register Java plugin service via the Web UI
Take the following steps to register a Java plugin service via the Web UI.
1. Navigate to the Manage External Authentication view by clicking the manage external authentication icon
.
2. Select the tenant for which you are registering the service from the Select Tenant dropdown.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 153Chapter 2: Administering Hybrid Data Pipeline
3. Click + New Service.You will be directed to the Create Authentication Service screen.
4. Provide the following information.
• The name and description of the service
• The service type
• The class name (The class name that implements the Java authentication plugin. For example,
com.sample.plugin.auth.JavaPluginAuthSample.)
• Attributes (A JSON object comprised of named attribute values that are passed to the init method of
the Java plugin.)
5. Click Save.
What to do next:
Configure Hybrid Data Pipeline user accounts to authenticate end user credentials against the Java plugin
authentication service. See Configuring user accounts for Java plugin authentication on page 155 for details.
Register Java plugin service via the Authentication API
The following POST operation registers the jplugauth service. The className property provides the class
name of the Java plugin, and the attributes property provides the HashMap that will be processed by the
authentication service. For further details, see Register an external authentication service.
Request
POST https://MyServer:8443/api/admin/auth/services
Request payload
{
"name": "jplugauth",
"tenantId": 1,
"description": "Java external auth plugin",
"authDefinition": {
"className": "com.test.hdp.plugins.auth.HDPUserAuthentication",
"attributes": {
"Server": "test-authentication",
"BackupServer": "test-authentication-backup"
}
},
"authTypeId": 2
}
Response payload
Status code: 201
Successful response
{
"id": 43,
"name": "jplugauth",
"tenantId": 1,
"description": "Java external auth plugin",
"authDefinition": {
"className": "com.test.hdp.plugins.auth.HDPUserAuthentication",
"attributes": {
"Server": "test-authentication",
"BackupServer": "test-authentication-backup"
}
},
"lastModifiedTime": "2018-02-15T11:09:35.107Z",
"authTypeId": 2,
154 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Authentication
"tenantName": "OrgM"
}
What to do next:
Configure Hybrid Data Pipeline user accounts to authenticate end user credentials against the Java plugin
authentication service. See Configuring user accounts for Java plugin authentication on page 155 for details.
Configuring user accounts for Java plugin authentication
Once a Java plugin service has been registered, user accounts can be configured to use the service. As
described in the following sections, user accounts can be configured through either the Web UI or the Users
API.
Using the Web UI to configure a user account for Java plugin authentication
To create a new user account, take the following steps.
1. Navigate to the Manage Users view by clicking the manage users icon .
2. Click + New User.
3. Under the General tab, provide tenant, user name, and user role information.
4. Click the Authentication Setup tab.
• Option 1. If you are adding the Java plugin service as an additional authentication type for the user
account, click + Add Authentication Service.
• Option 2. If you want to use only the Java plugin service, modify the properties of the current
authentication type.
5. Select the Java plugin service from the Authentication Type dropdown.
6. In the External Usernames field, specify the user or users you want to associate with the Hybrid Data
Pipeline user account. Any user name provided should correspond to a user name persisted by the
authentication service.
7. Click Save.
To modify a current user account, take the following steps.
1. Navigate to the Manage Users view by clicking the manage users icon .
2. From the list of user accounts, click the user account you want to modify.
3. Click the Authentication Setup tab.
• Option 1. If you are adding the Java plugin service as an additional authentication type for the user
account, click + Add Authentication Service.
• Option 2. If you want to use only the Java plugin service, modify the properties of the current
authentication type.
4. Select the Java plugin service from the Authentication Type dropdown.
5. In the External Usernames field, specify the user or users you want to associate with the Hybrid Data
Pipeline user account. Any user name provided should correspond to a user name persisted by the
authentication service.
6. Click Update to save your changes to the user account.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 155Chapter 2: Administering Hybrid Data Pipeline
Using the Users API to configure a user account for Java plugin authentication
To create a new user, take the following steps.
The following POST operation creates a user account using an external authentication service. Here the end
user (user_external) authenticates via a Java plugin external authentication service ("authServiceId":
43). This end user inherits all the attributes associated with the testuser account. For further details, see
Create a user account.
Request
POST https://MyServer:8443/api/admin/users
Request payload
{
"userName": "testuser",
"tenantId": 1,
"statusInfo": {
"status": 1,
"accountLocked": false
},
"passwordInfo": {
"passwordStatus": 1,
"passwordExpiration": "2020-01-01 00:00:00"
},
"permissions": {
"roles": [
2
]
},
"authenticationInfo": {
"authUsers": [
{
"authUserName": "user_external",
"authServiceId": 43
}
]
}
}
Response payload
Status code: 201
Successful response
{
"id": 4,
"userName": "testuser",
"tenantId": 1,
"statusInfo": {
"status": 1,
"accountLocked": false
},
"passwordInfo": {
"passwordStatus": 1,
"passwordExpiration": "2020-01-01 00:00:00"
},
"permissions": {
"roles": [
2
]
},
"authenticationInfo": {
"authUsers": [
{
"authUserName": "user_external",
"authServiceId": 43
156 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Authentication
}
]
}
}
To modify a current user account, take the following steps.
The following PUT operation updates user account 101 to use the a Java plugin external authentication service
("authServiceId": 43) for managing authentication. Two end users (user_1 and user_2) have been
associated with the account. Their credentials are managed through the authentication service that has ID 43.
Each user inherits all the attributes associated with user account 101. For further details, see Update
authentication information on a user account.
Request
PUT https://MyServer:8443/api/admin/users/101/authinfo
Request payload
{
"authUsers": [
{
"authUserName": "user_1",
"authServiceId": 43
},
{
"authUserName": "user_2",
"authServiceId": 43
}
]
}
Response payload
Status code: 200
Successful response
{
"authUsers": [
{
"authUserName": "user_1",
"authServiceId": 43
},
{
"authUserName": "user_2",
"authServiceId": 43
}
]
}
Integrating an LDAP authentication service
LDAP authentication services can be integrated with Hybrid Data Pipeline. The following general steps apply
to integrating an LDAP service.
1. The LDAP service must be registered as an external authentication service.
2. Hybrid Data Pipeline user accounts must be configured to use the LDAP service.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 157Chapter 2: Administering Hybrid Data Pipeline
Registering an LDAP authentication service
Before a user account can be configured to use LDAP, an LDAP service must be registered with Hybrid Data
Pipeline. As described in the following sections, you can register a Java plugin authentication service either
through the Web UI or the Authentication API.
Note:
• An external authentication service registered in the default system tenant is available across all tenants,
while an external authentication service registered in a child tenant is only available in that tenant. Once a
service is registered with a tenant, the tenant administrator can create or modify user accounts to authenticate
end user credentials against the service.
• A user with the Administrator (12) permission can register an external authentication service on any tenant
within the system. A user with the RegisterExternalAuthService (26) permission can register an external
authentication service on any tenant to which he or she has administrative access.
Register LDAP service via the Web UI
Take the following steps to register an LDAP service via the Web UI.
1. Navigate to the Manage External Authentication view by clicking the manage external authentication icon
.
2. Select the tenant for which you are registering the service from the Select Tenant dropdown.
3. Click + New Service.You will be directed to the Create Authentication Service screen.
4. Provide the following information.
• The name and description of the service
• The service type
• Target URL (The URL used to access the LDAP service.)
• Service Authentication (The authentication mechanism required by the LDAP service.)
• Security Principal (The principal used to authenticate against the LDAP server. The user name token
%LOGINNAME% is supported to permit the replacement of the actual user name. For example,
CN=%LOGINNAME%,OU=TestRuns,DC=testdomain.)
• Other Attributes (A valid JSON Object to be passed as key and value pairs to the environment properties
during the creation of InitialDirContext object.)
5. Click Save.
What to do next:
Configure Hybrid Data Pipeline user accounts to use the LDAP service. See Configuring user accounts for
LDAP authentication on page 159 for details.
Register LDAP service via the Authentication API
The following POST operation registers the LDAP1 service. For further details, see Register an external
authentication service.
Request
POST https://MyServer:8443/api/admin/auth/services
158 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Authentication
Request payload
{
"name": "LDAP1",
"tenantId": 1,
"description": "LDAP Auth plugin",
"authDefinition": {
"attributes": {
"targetUrl": "LDAP://123.45.67.899:389",
"securityAuthentication": "simple",
"securityPrincipal": "CN=%LOGINNAME%,OU=TestRuns,DC=testdomain,DC=local"
}
},
"authTypeId": 3
}
Response payload
Status code: 201
Successful response
{
"id": 21,
"name": "LDAP1",
"tenantId": 1,
"description": "LDAP Auth plugin",
"authDefinition": {
"attributes": {
"targetUrl": "LDAP://123.45.67.899:389",
"securityAuthentication": "simple",
"securityPrincipal": "CN=%LOGINNAME%,OU=TestRuns,DC=testdomain,DC=local"
}
},
"lastModifiedTime": "2018-02-14T11:34:13.009Z",
"authTypeId": 3,
"tenantName": "OrgT"
}
What to do next
Configure Hybrid Data Pipeline user accounts to use the LDAP service. See Configuring user accounts for
LDAP authentication on page 159 for details.
Configuring user accounts for LDAP authentication
Once an LDAP service has been registered, user accounts can be configured to use the service. As described
in the following sections, user accounts can be configured through either the Web UI or the Users API.
Using the Web UI to configure a user account for LDAP authentication
To create a new user account, take the following steps.
1. Navigate to the Manage Users view by clicking the manage users icon .
2. Click + New User.
3. Under the General tab, provide tenant, user name, and user role information.
4. Click the Authentication Setup tab.
• Option 1. If you are adding the LDAP service as an additional authentication type for the user account,
click + Add Authentication Service.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 159Chapter 2: Administering Hybrid Data Pipeline
• Option 2. If you want to use only the LDAP service, modify the properties of the current authentication
type.
5. Select the LDAP service from the Authentication Type dropdown.
6. In the External Usernames field, specify the user or users you want to associate with the Hybrid Data
Pipeline user account. Any user name provided should correspond to a user name persisted by the
authentication service.
7. Click Save.
To modify a current user account, take the following steps.
1. Navigate to the Manage Users view by clicking the manage users icon .
2. From the list of user accounts, click the user account you want to modify.
3. Click the Authentication Setup tab.
• Option 1. If you are adding the LDAP service as an additional authentication type for the user account,
click + Add Authentication Service.
• Option 2. If you want to use only the LDAP service, modify the properties of the current authentication
type.
4. Select the LDAP service from the Authentication Type dropdown.
5. In the External Usernames field, specify the user or users you want to associate with the Hybrid Data
Pipeline user account. Any user name provided should correspond to a user name persisted by the
authentication service.
6. Click Update to save your changes to the user account.
Using the Users API to configure a user account for LDAP authentication
To create a new user account, take the following steps.
The following POST operation creates a user account that authenticates through an LDAP service. Here the
end user (LDAP_user_1) authenticates via an LDAP service ("authServiceId": 21).This end user inherits
all the attributes associated with the testuser2 account. For further details, see Create a user account.
Request
POST https://MyServer:8443/api/admin/users
Request payload
{
"userName": "testuser2",
"tenantId": 1,
"statusInfo": {
"status": 1,
"accountLocked": false
},
"passwordInfo": {
"passwordStatus": 1,
"passwordExpiration": "2020-01-01 00:00:00"
},
"permissions": {
"roles": [
2
]
},
"authenticationInfo": {
"authUsers": [
160 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Authentication
{
"authUserName": "LDAP_user_1",
"authServiceId": 21
}
]
}
}
Response payload
Status code: 201
Successful response
{
"id": 8,
"userName": "testuser2",
"tenantId": 1,
"statusInfo": {
"status": 1,
"accountLocked": false
},
"passwordInfo": {
"passwordStatus": 1,
"passwordExpiration": "2020-01-01 00:00:00"
},
"permissions": {
"roles": [
2
]
},
"authenticationInfo": {
"authUsers": [
{
"authUserName": "LDAP_user1",
"authServiceId": 21
}
]
}
}
To modify a current user account, take the following steps.
The following PUT operation updates user account 202 to use the LDAP service ("authServiceId": 21)
for managing authentication. Two end users (user_1 and user_2) have been associated with the account.
Their credentials are managed through the authentication service that has ID 21. Each user inherits all the
attributes associated with user account 202. For further details, see Update authentication information on a
user account.
Request
PUT https://MyServer:8443/api/admin/users/101/authinfo
Request payload
{
"authUsers": [
{
"authUserName": "user_1",
"authServiceId": 21
},
{
"authUserName": "user_2",
"authServiceId": 21
}
]
}
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 161Chapter 2: Administering Hybrid Data Pipeline
Response payload
Status code: 200
Successful response
{
"authUsers": [
{
"authUserName": "user_1",
"authServiceId": 21
},
{
"authUserName": "user_2",
"authServiceId": 21
}
]
}
Advanced functionality for authentication services
Hybrid Data Pipeline supports the following advanced authentication functionality.
• Integrate multiple authentication services with a single user account
• Associate a group of users to a Hybrid Data Pipeline account using a wildcard
• Set a delimiter for the username credential
Integrate multiple authentication services with a single user account
Multiple authentication services can be integrated with a single Hybrid Data Pipeline user account. After the
authentication services have been registered, administrators can configure a user account to use the registered
services. In the following API request, an administrator associates a number of end users with a user account
named odata_users with ID of 18. The internal_user uses the internal authentication mechanism. The
other end users use separate authentication services as specified with the authServiceID property.
Note: You can also associate multiple services (and end users) with a user account through the Web UI.When
creating or updating a user account, you can associate an external service with the account by clicking + Add
Authentication Service under the Authentication Setup tab.
PUT https://MyServer:8443/api/admin/users/18/authinfo
{
"authUsers": [
{
"authUserName": "internal_user",
"authServiceId": 1
},
{
"authUserName": "odata_user_1",
"authServiceId": 21
},
{
"authUserName": "odata_user_2",
"authServiceId": 43
},
{
"authUserName": "odata_user_3",
162 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Authentication
"authServiceId": 89
}
]
}
Associate a group of users to a Hybrid Data Pipeline account using a wildcard
A wildcard can be used to associate a group of end users in an external authentication service with a user
account. The only supported wildcard is *, which matches any and all names. In the following example, an
administrator creates a user account called support_team and uses a wildcard to associate users in an external
authentication service with this account.
Important: When a wildcard is used to associate end users with a user account, the Systems Configuration
API must be used to implement a delimiter for the username credential as described in the next section.
POST https://MyServer:8443/api/admin/users
{
"userName": "support_team",
"statusInfo": {
"status": 1,
"accountLocked": false
},
"passwordInfo": {
"passwordStatus": 1,
"passwordExpiration": "2020-01-01 00:00:00"
},
"permissions": {
"roles": [
1
]
},
"authenticationInfo": {
"authUsers": [
{
"authUserName": "internal_user2",
"authServiceId": 1
},
{
"authUserName": "*",
"authServiceId": 21
}
]
}
}
Set a delimiter for the username credential
A delimiter can be specified to require the inclusion of the name of the authentication service, as well as the
name of the end user when passing the username credential. A delimiter must be used whenever the wildcard
is used to associate names from an external authentication service with a user account. A delimiter should
also be required if there is a possibility of naming conflicts among end users from different external authentication
services. In the following example, an administrator uses the Systems Configuration API to specify a delimiter.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 163Chapter 2: Administering Hybrid Data Pipeline
Note: You can also set a delimiter from the System Configurations view using the Web UI. See System
Configurations view on page 85 for details.
PUT https://MyServer:8443/api/admin/configurations/1
{
"value": ":"
}
With this implementation, the username credential must take the form auth_user_name:auth_service_name
(for example, user437:LDAP1).
Password policy
After installation Hybrid Data Pipeline enforces the following password policy by default.
Note: You must specify passwords for the default d2cadmin and d2cuser accounts during installation of the
Hybrid Data Pipeline server. When initially logging in to the Web UI or using the API, you must authenticate
as one of these users. Best practices recommend that the passwords adhere to this password policy.
• The password must contain at least 8 characters.
• The password must not contain more than 12 characters. A password with a length of 12 characters is
acceptable.
• The password should not contain the username.
• Characters from at least three of the following four groups must be used in the password:
• Uppercase letters A-Z
• Lowercase letters a-z
• Numbers 0-9
• Special characters: `~!@#$%^&*()+=_-{}[]|?/:;'',<>.
Enabling and disabling the password policy
Hybrid Data Pipeline enforces a password policy by default. When the password policy is turned on, user
passwords must conform to the Password policy on page 164.
You can use the Web UI or the System Configurations API to enable or disable the password policy.
Using the Web UI
Take the following steps to enable or disable the password policy via the Web UI.
1. Navigate to the System Configurations view by clicking the system configurations icon .
2. Set Password Policy to the desired value.
3. Click Save.
164 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Configuring change password behavior
Using the System Configurations API
The following GET operation retrieves the current behavior. The number 6 is the ID of the password policy
attribute.
GET https://MyServer:8443/api/admin/configurations/6
{
"id": 6,
"description": "Valid values are: 1 or -1. Value of 1 enforces that
the password be in compliant with the default password policy. Value
of -1 turns off the Password Policy enforcement.Any other value will
be treated like -1",
"value": "-1"
}
To disable the default password policy, execute a PUT operation on the same endpoint with the following
payload.
{
"value":"-1"
}
To enable the default password policy, execute a PUT operation on the same endpoint with the following
payload.
{
"value":"1"
}
See also
Password policy on page 164
System Configurations view on page 85
System Configurations API on page 1152
Configuring change password behavior
Hybrid Data Pipeline supports two types of change password behavior. By default, change password behavior
is configured to require users to provide a current password as well as a new password when changing
passwords. Alternatively, change password behavior can be configured such that users are only required to
provide and confirm a new password when changing passwords.
You can use the Web UI or the System Configurations API to configure change password behavior.
Using the Web UI
Take the following steps to enable or disable the password policy via the Web UI.
1. Navigate to the System Configurations view by clicking the system configurations icon .
2. Set Secure Password Change.
• When set to ON, the user must provide a current password before providing new password.
• When set to OFF, the user need only provide a new password.
3. Click Save.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 165Chapter 2: Administering Hybrid Data Pipeline
Using the System Configurations API
Administrators can change the behavior by setting the secureChangePassword attribute in the System
Configurations API.
The following PUT operation would configure the system to use the non-default behavior where the user must
provide only a new password. The number 2 is the ID of the secureChangePassword attribute.
PUT https://:/api/admin/configurations/2
{
"value": "false"
}
See also
System Configurations view on page 85
System Configurations API on page 1152
Implementing an account lockout policy
Hybrid Data Pipeline supports the implementation of an account lockout policy. An account lockout policy can
be used to limit the number of consecutive failed authentication attempts permitted before a user account is
locked.The user is unable to authenticate until a configurable period of time has passed or until the administrator
unlocks the account.
The Hybrid Data Pipeline account lockout policy is by default enabled in accordance with Federal Risk and
Authorization Management Program (FedRAMP) low- and medium-risk guidelines. The number of failed
authentication attempts is limited to 3 in a 15 minute period. Once this limit is met, a lockout of the user account
occurs for 30 minutes.
An account lockout policy can only be applied to user accounts managed through the default internal
authentication service. A policy cannot be applied to end users managed through an external authentication
service.
An account lockout policy can only be applied at the system level. It cannot be applied to individual tenants.
To implement an account lockout policy, the administrator must reside in the default system tenant and have
either the Administrator (12) or the Limits (27) permission. To unlock a user account, the administrator must
have either the Administrator (12) permission or the ModifyUsers (15) permission with administrative access
to the tenant. In addition, to use the Web UI for these tasks, the administrator must have either the Administrator
(12) or the WebUI (8) permission.
Configuring an account lockout policy
An account lockout policy can be configured either through the Web UI or the Limits API. The following limits
are used to define the account lockout policy.
• PasswordLockoutLimit is the number of consecutive failed authentication attempts that are allowed before
locking the user account. By default, account lockout functionality is enabled with PasswordLockoutLimit
set to 3. Setting PasswordLockoutLimit to zero disables lockout functionality.
• PasswordLockoutInterval is the duration, in seconds, for counting the number of consecutive failed
authentication attempts.
• PasswordLockoutPeriod is the duration, in seconds, for which a user account will not be allowed to
authenticate to the system when the PasswordLockoutLimit is reached.
Using the Web UI
166 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Transactions
Take the following steps to configure these limits via the Web UI.
1. Navigate to the Manage Limits view by clicking the manage limits icon .
2. Select the system tenant from the Tenant dropdown.
3. Expand the Security and Password sections to view account policy limits.
4. Specify values for each limit.
5. Click Save.
Using the Limits API
The following PUT operation updates the PasswordLockoutLimit to 5 login attempts. The endpoint is specified
with the number 3, the ID of the PasswordLockoutLimit. (See the Limits API on page 1099 for details on setting
other account policy lockout limits.)
PUT https://myserver:port/api/admin/limits/system/3
{
"value": 5
}
Unlocking a user account
An account can be unlocked by executing a PUT operation on the statusinfo endpoint in the Users API on
page 1174. As the following example shows, the URL must include the user ID, and the payload must include
the accountLocked property with a value of false.
PUT https://:/api/admin/users/{id}/statusinfo
{
"accountLocked": false
}
AccountLockedAt and AccountLockedUntil are additional properties that can be set when unlocking a user
account. See Update status info on a user account on page 1195 for further details.
Transactions
Hybrid Data Pipeline supports transactions against data stores that provide transaction support such as DB2,
MySQL, Oracle, and SQL Server.Transactions are supported for JDBC, ODBC, and OData client applications.
For JDBC and ODBC applications, transactions are handled via the TransactionMode property and Transaction
Mode option, respectively. For OData client applications, Hybrid Data Pipeline supports transactions for OData
Version 4 batch requests.
Most ODBC and JDBC drivers that support transactions connect to backend data stores using a socket.
However, the Hybrid Data Pipeline drivers connect to data stores through an HTTP(S) connection. Therefore,
Hybrid Data Pipeline can only detect the abnormal termination of a transaction from a lack of activity on the
session. To detect session inactivity, Hybrid Data Pipeline runs a transaction timeout thread through sessions
every 5 seconds to look for idle transaction threads. If a transaction remains idle longer than a specified period,
it will be rolled back and canceled. By default, the transaction timeout limit is 60 seconds. An administrator can
specify the period a transaction thread can remain idle with the transaction timeout limit.The transaction timeout
limit can be set at the system, tenant, user, or data source level, or a combination of these. See Manage Limits
view on page 82 and Limits API on page 1099 for information on setting limits.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 167Chapter 2: Administering Hybrid Data Pipeline
In the following example, an administrator sets the transaction timeout limit to 10 seconds at the system level
by executing a POST operation with the Limits API. Given the 5 second interval at which the transaction timeout
thread runs, no transaction threads may remain idle for more than 15 seconds with this setting.
Sample request
POST https://:/api/admin/limits/system/14
{
"value": 10
}
In addition to a transaction timeout, server and session timeouts can also lead to transaction rollback and
cancellation. Hybrid Data Pipeline will return the same error for each of these timeouts. When a transaction
timeout error is thrown, the connection associated with the error is placed in a special state. The rollback and
close methods are allowed for JDBC connections in this state, while only the rollback method is allowed for
ODBC connections. However, calls that do not require a round trip to the server may still succeed.
The following isolation levels are supported depending on which isolation levels are supported by the data
store.
• TRANSACTION_NONE
• TRANSACTION_READ_UNCOMMITTED
• TRANSACTION_READ_COMMITTED
• TRANSACTION_REPEATABLE_READ
• TRANSACTION_SERIALIZABLE
The following data stores support transactions. The data stores marked with an asterisk(*) include parameters
that can be configured on the Hybrid Data Pipeline data source definition.
• Amazon Redshift
• DB2*
• Greenplum*
• Informix
• Microsoft SQL Server*
• MySQL Community Edition
• MySQL Enterprise
• OpenEdge
• Oracle
• PostgreSQL*
• Sybase*
168 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Implementing IP address whitelists
Implementing IP address whitelists
Administrators can secure access to Hybrid Data Pipeline resources by implementing IP address whitelists.
When an IP address whitelist is enabled for a resource, any user attempting to reach the resource from an
invalid IP address will be denied access, and a 403 access-denied error will be returned. Access to the following
resources can be managed with IP address whitelists.
• Management API
• Administrators API
• Data access (ODBC, JDBC, and OData)
• Web UI access (system level only)
IP address whitelists must be applied at the system level, tenant level, user level, or some combination of these
levels. The following protocols are applied when IP address whitelists are implemented.
• When an IP address whitelist is set at the system level, users across the system must access the given
resource from an IP address or range of IP addresses specified in the whitelist.
• When an IP address whitelist is set at the tenant level, users who reside in the tenant must access the
resource from an IP address or range of IP addresses specified in the whitelist.
• When an IP address whitelist is set at the user level, the specified user must access the resource from an
IP address or range of IP addresses specified in the whitelist.
• When an IP address whitelist is set at multiple levels for a given resource, Hybrid Data Pipeline first checks
the system level, then the tenant level, and then the user level. If any check fails, the user is denied access.
• Web UI access may only be set at the system level.
Note:
• IP address whitelist restrictions do not apply when resources are accessed from a local host.
• The IP address whitelist feature is enabled by default. However, if a whitelist has not been defined for a
particular resource, all IP addresses will be allowed access to that resource.
• In the event that an IP address whitelist implementation inadvertently prevents administrators from using
Hybrid Data Pipeline, an administrator can bypass the whitelist by accessing the service directly from any
machine hosting the service. First, the administrator must have access privileges to the host machine. Next,
the administrator can access the service from a host machine by replacing the servername in the Hybrid
Data Pipeline URL with localhost, 127.0.0.1, or ::1.Then, the administrator can disable the IP address
whitelist feature or update the implementation as desired.
Depending on the level at which IP address whitelists are being implemented, an administrator must have
certain permissions.
• An administrator with the Administrator (12) permission can implement and create whitelists for all resources
at the system, tenant, and user levels.
• An administrator with the following permissions can create whitelists for resources at the tenant level: the
MgmtAPI (11) permission, the IPWhiteList (29) permission, and administrative access to the tenant.
• An administrator with the following permissions can create whitelists for resources at the user level: the
MgmtAPI (11) permission, the IPWhitelist (29) permission, and administrative access to the tenant to which
the user belongs.
• An administrator who does not have the Administrator (12) permission, but wants to use the Web UI to
apply IP address whitelists, must have the WebUI (8) permission.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 169Chapter 2: Administering Hybrid Data Pipeline
IP address whitelists can be configured through the Web UI or the Hybrid Data Pipeline API. See the following
topics for details.
• Configuring IP address whitelists through the Web UI on page 170
• Configuring IP address whitelists with the API on page 170
• Enabling and disabling the IP address whitelist feature on page 173
Configuring IP address whitelists through the Web UI
Take the following steps to configure IP address whitelists through the Web UI.
Note: IP address whitelists are enabled by default. Unless you have disabled this feature, any IP address
whitelist you create will immediately be enforced. For how to enable or disable IP address whitelists, see
Enabling and disabling the IP address whitelist feature.
1. Navigate to the Manage IP WhiteList view by clicking the IP address whitelist icon .
2. From the Select Level dropdown, select the level at which you want to apply the IP address whitelist.
• System applies the whitelist across the system. After selecting System, proceed to Step 3.
• Tenant applies the whitelist to a selected tenant. After selecting Tenant, select the tenant from the
Select Tenant dropdown. Then, proceed to Step 3.
• User applies the whitelist to a specified user. After selecting User, select the tenant to which the user
belongs from the Select Tenant dropdown. Next, specify a user from the User dropdown.Then, proceed
to Step 3.
3. Click New IP Range.
4. Select the resource you want to secure from the Resource dropdown.
5. Enter the IP address or IP address range for the whitelist.
• If providing a single IP address, enter the address in the Start IP field.
• If providing an IP address range, enter the beginning of the range in the Start IP field and the end of the
range in the End IP field.
6. Click Save to apply the IP address whitelist.
Configuring IP address whitelists with the API
You can use the IP Address Whitelist API to view and configure IP address whitelists. When setting up IP
address whitelists, you must identify the IP addresses that you need to whitelist.You can specify a single
address, a list of addresses, or a range of addresses.
The IP addresses can be specified in either IPv4 or IPv6 format, or a combination of the two.The IP addresses
can also be specified in the IPv4-mapped IPv6 combination address format.The following is the payload format
for specifying a range of IP addresses.
{
"startAddress": "",
"endAddress": ""
}
170 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Implementing IP address whitelists
Apply the following guidelines when specifying IP addresses.
• If you specify only a start address, and do not specify an end address, the specified IP address will be
treated as an individual IP address.
• If you are specifying a range of IP addresses, the starting IP address and the ending IP address should be
in the same format. However, you can specify different IP address formats for different whitelists. For
example, you may use the IPv4 format to whitelist data access APIs, but use the IPv6 format to whitelist
Management API.
• If the incoming IP address is in IPv6 format, it will be validated against the IP address range having IPv6
addresses. This same limitations holds true for IPv4 addresses. The system will not convert IP addresses
from one format to another to check for whitelisting.
• In a load balancer deployment, the load balancer should be configured to echo back the originating client''s
IP address in the X-Forwarded-For header to have this feature function appropriately.
The following sections show how to configure IP address whitelists at various levels.
Note: IP address whitelists are enabled by default. Unless you have disabled this feature, any IP address
whitelist you create will immediately be enforced. For how to enable or disable IP address whitelists, see
Enabling and disabling the IP address whitelist feature.
System level example
In the following example, a GET request retrieves all the IP address whitelists applied at the system level.
Request
GET https://MyServer:8443/api/admin/security/whitelist/system
Response
{
"managementAPI": [],
"adminAPI": [],
"dataAccess": [],
"webUI": []
}
The response indicates that none of the resources are protected at a system level.The following POST request
creates whitelists for all resources except the Web UI. By providing null as the value for the webUI property,
a whitelist is not applied to the Web UI.
Request
POST https://MyServer:8443/api/admin/security/whitelist/system
Request Payload
{
"managementAPI": [
{
"startAddress": "10.20.30.0",
"endAddress": "10.20.30.10"
}
],
"adminAPI": [
{
"startAddress": "10.20.30.0",
"endAddress": "10.20.40.20"
}
],
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 171Chapter 2: Administering Hybrid Data Pipeline
"dataAccess": [
{
"startAddress": "10.20.30.0",
"endAddress": "10.20.50.20"
}
],
"webUI": null
}
Tenant level example
In a multitenant environment, IP address whitelists can be set at a tenant level. In the following example, the
POST request creates a whitelist for a tenant with the tenant ID of 2.
Request
POST https://MyServer:8443/api/admin/security/whitelist/tenants/2
Request Payload
{
"managementAPI": [
{
"startAddress": "10.20.30.0",
"endAddress": "10.20.30.5"
}
],
"adminAPI": [
{
"startAddress": "10.20.30.0",
"endAddress": "10.20.40.5"
}
],
"dataAccess": [
{
"startAddress": "10.20.30.0",
"endAddress": "10.20.50.5"
}
],
"webUI": null
}
User level example
Retrieve users configured with IP address whitelist
The following request returns the users that the administrator making the request can administer. If a system
administrator (user with Administrator permission) makes the request, the response lists all the users in the
system that have IP address whitelists. If a tenant administrator makes the request, the response lists only the
users in tenants for which tenant administrator has administrative access.
Request
GET https://MyServer:8443/api/mgmt/security/whitelist/users
Response Payload
{
"appliedWhiteLists": [
{
"id": 89,
"name": "TestUserA",
"protectedResources": [
"managementAPI",
172 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Implementing IP address whitelists
"dataAccess"
]
},
{
"id": 105,
"name": "TestUserB",
"protectedResources": [
"managementAPI"
]
},
...
]
}
Create IP address whitelist for a user
In the following example, the POST request creates a whitelist for TestUserA by appending the user endpoint
with the ?user query parameter and specifying the user''s name.
Request
POST https://MyServer:8443/api/mgmt/security/whitelist/user?user=TestUserA
Request Payload
{
"managementAPI": [
{
"startAddress": "10.20.30.2"
}
],
"adminAPI": [
{
"startAddress": "10.20.30.2"
}
],
"dataAccess": [
{
"startAddress": "10.20.30.2"
}
]
}
See also
IP Address Whitelist API on page 1222
Enabling and disabling the IP address whitelist feature
You can use either the Web UI or the System Configurations API to enable or disable the IP address whitelist
feature.
Using the Web UI
Take the following steps to enable or disable IP address whitelists.
1. Navigate to the System Configurations view by clicking the system configurations icon .
2. Toggle the IP WhiteList Filtering switch to the desired setting.
3. Click Save to save the change.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 173Chapter 2: Administering Hybrid Data Pipeline
Using the System Configurations API
The following GET operation retrieves the current setting. The number 8 is the ID of the IP address whitelist
feature.
GET https://:/api/admin/configurations/8
{
"id": 8,
"description": "Enable IP Whitelist filtering, when value is set to true. Default value
is "true".
"value": "true"
}
The following PUT request disables the IP address whitelist feature.
PUT https://:/api/admin/configurations/8
{
"value":"false"
}
The following PUT request enables the IP address whitelist feature.
PUT https://:/api/admin/configurations/8
{
"value":"true"
}
See also
System Configurations API on page 1152
Throttling
Hybrid Data Pipeline supports the following types of throttling. See corresponding topics for details.
• Row limit throttling allows you to set the maximum number of rows that can be fetched for a single query.
Row limit throttling may be configured with the MaxFetchRows limit.
• OData query throttling for users allows you to limit the number of simultaneous OData requests a user may
have running against a Hybrid Data Pipeline server at a time. OData query throttling for users may be
configured with the ODataMaxConcurrentRequests and ODataMaxWaitingRequests limits.
• OData large query throttling allows you to limit the number of simultaneous OData queries that invoke paging
against Hybrid Data Pipeline data sources. OData large query throttling may be configured with the
ODataMaxConcurrentPagingQueries limit.
• JDBC and ODBC result set throttling allows you to set the approximate size of JDBC/ODBC HTTP result
data in KB. JDBC and ODBC result set throttling may be configured with the XdbcMaxResponse.
• Transaction timeout throttling allows you to set the number of seconds the system allows a transaction to
be idle before rolling it back.
174 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Throttling
Row limit throttling
Hybrid Data Pipeline supports row limit throttling which allows you to set the maximum number of rows that
can be fetched for a single query. Row limit throttling may be configured with the MaxFetchRows limit. The
MaxFetchRows limit can be applied at four levels in the following manner.
• Data source. When applied to a data source, the limit applies to queries made to the data source. A limit
applied at the data source level overrides the limit set at the other levels.
• User. When applied to a user account, the limit applies to queries made by that user. A limit applied at the
user level overrides limits set at the tenant and system levels.
• Tenant.When applied to a tenant, the limit applies to queries made by any user in the tenant. A limit applied
at the tenant level overrides a limit set at the system level.
• System. When applied at the system level, the limit applies to queries made by any user in the Hybrid Data
Pipeline system.
To configure row limit throttling, the administrator must have either the Administrator (12) or the Limits (27)
permission.
System level configuration
Row limit throttling can be configured at the system level either with the Web UI or with the Limits API. For
details on using the Web UI, see Manage Limits view on page 82.
The following POST creates a system-level limit of 1000 rows. The number 1 is the ID of the MaxFetchRows
limit. The payload passes 1000 as the value for this limit.
POST https://:/api/admin/limits/system/1
{
"value": 1000
}
Tenant configuration
Row limit throttling can be configured at the tenant level with either the Web UI or with the Limits API. When
using the Web UI, you can enable row limit throttling through either the Manage Tenants view on page 66 or
the Manage Limits view on page 82.
The following POST sets a limit of 1500 rows on the specified tenant. The number 32 is the ID of the tenant,
and the number 1 is the ID of the MaxFetchRows limit. The payload passes 1500 as the value for this limit.
POST https://:/api/admin/limits/tenants/32/1
{
"value": 1500
}
User account configuration
Row limit throttling can be configured at the user level either with the Web UI or with the Limits API. For details
on using the Web UI, see Manage Users view on page 67.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 175Chapter 2: Administering Hybrid Data Pipeline
The following POST sets a limit of 2000 rows on the specified user account. The number 86 is the ID of the
user account, and the number 1 is the ID of the MaxFetchRows limit. The payload passes 2000 as the value
for this limit.
POST https://:/api/admin/limits/users/86/1
{
"value": 2000
}
Data source configuration
Row limit throttling can only be configured at the data sources level using the Limits API. The following POST
sets a limit of 2500 rows on the specified data source.The number 86 is the ID of the user account; the number
14 is the ID of the data source that is owned by the user account; and the number 1 is the ID of the
MaxFetchRows limit. The payload passes 2500 as the value for this limit.
PUT https://:/api/admin/limits/users/86/datasources/14/1
{
"value": 2500
}
See also
Limits API on page 1099
OData query throttling for users
Hybrid Data Pipeline supports throttling the number of simultaneous OData requests a user may have running
against a Hybrid Data Pipeline server at a time. OData query throttling for users may be configured with the
ODataMaxConcurrentRequests and ODataMaxWaitingRequests limits. The ODataMaxConcurrentRequests
limit sets the maximum number of simultaneous OData requests allowed per user, while the
ODataMaxWaitingRequests limit sets the maximum number of waiting OData requests allowed per user.These
limits can be applied at four levels in the following manner.
• User. When applied to a user, the limits apply only to that user. Limits set at the user level override limits
set at the tenant and system level.
• Tenant. When applied to a tenant, the limits apply to all users in the tenant. Limits set at the tenant level
override limits set at the system level.
• System. When applied at the system level, the limits apply to all users in the Hybrid Data Pipeline system.
Note: The ODataMaxConcurrentRequests and ODataMaxWaitingRequests limit are enforced on a per node
basis. Therefore, in multinode environments, the number of requests a user has running could exceed the
specified limits.
To configure OData query throttling on users, the administrator must have either the Administrator (12) or the
Limits (27) permission.
System level configuration
OData query throttling on users can be configured at the system level either with the Web UI or with the Limits
API. For details on using the Web UI, see Manage Limits view on page 82.
176 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Throttling
The following POST sets a limit of 100 queries allowed per user across the system. The number 24 is the ID
of the ODataMaxConcurrentRequests limit. The payload passes 100 as the value for this limit.
POST https://:/api/admin/limits/system/24
{
"value": 100
}
The following POST sets a limit of 50 waiting queries allowed per user across the system. The number 25 is
the ID of the ODataMaxWaitingRequests limit. The payload passes 50 as the value for this limit.
POST https://:/api/admin/limits/system/25
{
"value": 50
}
Tenant configuration
OData query throttling on users can be configured at the tenant level with either the Web UI or with the Limits
API. When using the Web UI, you can enable OData query throttling on users through either the Manage
Tenants view on page 66 or the Manage Limits view on page 82.
The following POST sets a limit of 100 queries allowed per user across the tenant. The number 32 is the ID of
the tenant, and the number 24 is the ID of the ODataMaxConcurrentRequests limit. The payload passes 100
as the value for this limit.
POST https://:/api/admin/limits/tenants/32/24
{
"value": 100
}
The following POST sets a limit of 50 waiting queries allowed per user across the tenant. The number 32 is
the ID of the tenant, and the number 25 is the ID of the ODataMaxWaitingRequests limit. The payload passes
50 as the value for this limit.
POST https://:/api/admin/limits/tenants/32/25
{
"value": 50
}
User account configuration
OData query throttling on users can be configured at the user level either with the Web UI or with the Limits
API. For details on using the Web UI, see Manage Users view on page 67.
The following POST sets a limit of 100 queries allowed per user across the tenant. The number 86 is the ID of
the user account, and the number 24 is the ID of the ODataMaxConcurrentRequests limit.The payload passes
100 as the value for this limit.
POST https://:/api/admin/limits/users/86/24
{
"value": 100
}
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 177Chapter 2: Administering Hybrid Data Pipeline
The following POST sets a limit of 50 queries allowed per user across the tenant. The number 86 is the ID of
the user account, and the number 25 is the ID of the ODataMaxWaitingRequests limit. The payload passes
50 as the value for this limit.
POST https://:/api/admin/limits/users/86/25
{
"value": 100
}
See also
Limits API on page 1099
OData large query throttling
Hybrid Data Pipeline supports throttling large OData queries against data sources. Large queries are defined
here as queries that require paging in order to return results.
By default, when executing an OData query, Hybrid Data Pipeline sends the query to the backend data store.
All the results are then fetched and persisted, and the first page of results is returned to the application. Having
multiple large queries running simultaneously can negatively impact the performance of the service for all users.
Furthermore, some results are never fully viewed by applications, meaning that resources are unnecessarily
allocated to return unused data. As a result, an administrator may want to limit the number of large OData
queries.
OData large query throttling may be configured with the ODataMaxConcurrentPagingQueries limit. When the
ODataMaxConcurrentPagingQueries limit is set to 0 (zero), there is no maximum number of large queries
against the data source.When ODataMaxConcurrentPagingQueries is set to a positive integer, rows are fetched
one page in advance of application requests. This maintains quick response times in addition to minimizing
the expense associated with executing large queries. Queries that contain more than one page of results are
persisted in system memory until completely returned to the application or terminated. To prevent users from
exhausting system and database resources, the maximum number of large queries are limited to the value
specified.When this limit is exceeded, the least recently used large query is canceled, and subsequent attempts
to retrieve data from the canceled query will fail.
The ODataMaxConcurrentPagingQueries limit can be applied at four levels in the following manner.
• Data source. When applied to a data source, the limit applies only to the data source. A limit applied at the
data source level overrides the limit set at the other levels.
• User. When applied to a user account, the limit applies to the data sources owned by that user. A limit
applied at the user level overrides limits set at the tenant and system levels.
• Tenant. When applied to a tenant, the limit applies to all data sources in the tenant. A limit applied at the
tenant level overrides a limit set at the system level.
• System. When applied at the system level, the limit applies to all data sources in the Hybrid Data Pipeline
system.
For example, with an ODataMaxConcurrentPagingQueries limit of 10 set on at the system level, 500 concurrent
users would be able to have 10 queries for each data source that they own.
To configure OData large query throttling, the administrator must have either the Administrator (12) or the
Limits (27) permission.
178 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Throttling
System level configuration
OData query throttling can be configured at the system level either with the Web UI or with the Limits API. For
details on using the Web UI, see Manage Limits view on page 82.
The following POST creates a system-level limit of 50 queries. The number 6 is the ID of the
ODataMaxConcurrentPagingQueries limit. The payload passes 50 as the value for this limit.
POST https://myserver:port/api/admin/limits/system/6
{
"value": 50
}
Tenant configuration
OData query throttling can be configured at the tenant level with either the Web UI or with the Limits API.When
using the Web UI, you can enable OData query throttling through either the Manage Tenants view on page 66
or the Manage Limits view on page 82.
The following POST sets a limit of 60 queries on the specified tenant. The number 32 is the ID of the tenant,
and the number 6 is the ID of the ODataMaxConcurrentPagingQueries limit. The payload passes 60 as the
value for this limit.
POST https://:/api/admin/limits/tenants/32/6
{
"value": 60
}
User account configuration
OData query throttling can be configured at the user level either with the Web UI or with the Limits API. For
details on using the Web UI, see Manage Users view on page 67.
The following POST sets a limit of 30 queries on the specified user account. The number 86 is the ID of the
user account, and the number 6 is the ID of the ODataMaxConcurrentPagingQueries limit.The payload passes
30 as the value for this limit.
POST https://:/api/admin/limits/users/86/1
{
"value": 30
}
Data source configuration
OData query throttling can only be configured at the data sources level using the Limits API. The following
POST sets a limit of 100 queries on the specified data source. The number 86 is the ID of the user account;
the number 14 is the ID of the data source that is owned by the user account; and the number 6 is the ID of
the ODataMaxConcurrentPagingQueries limit. The payload passes 100 as the value for this limit.
PUT https://:/api/admin/limits/users/86/datasources/14/1
{
"value": 100
}
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 179Chapter 2: Administering Hybrid Data Pipeline
See also
Limits API on page 1099
JDBC and ODBC result set throttling
Hybrid Data Pipeline supports limiting the size of result set data that can be retrieved with JDBC and ODBC
HTTP calls. Result set throttling may be configured with the XdbcMaxResponse limit by specifying the maximum
size of the result set in KB.The default value for the XdbcMaxResponse limit is 900 KB.The XdbcMaxResponse
limit can be applied at four levels in the following manner.
• Data source. When applied to a data source, the limit applies to JDBC and ODBC queries made only to
the data source. A limit applied at the data source level overrides the limit set at the other levels.
• User. When applied to a user account, the limit applies to JDBC and ODBC queries made by that user. A
limit applied at the user level overrides limits set at the tenant and system levels.
• Tenant. When applied to a tenant, the limit applies to JDBC and ODBC queries made by any user in the
tenant. A limit applied at the tenant level overrides a limit set at the system level.
• System. When applied at the system level, the limit applies to JDBC and ODBC queries made by any user
in the Hybrid Data Pipeline system.
To configure result set throttling, the administrator must have either the Administrator (12) or the Limits (27)
permission.
System level configuration
Result set throttling can be configured at the system level either with the Web UI or with the Limits API. For
details on using the Web UI, see Manage Limits view on page 82.
The following POST creates a system-level limit of 1000 KB.The number 15 is the ID of the XdbcMaxResponse
limit. The payload passes 1000 as the value for this limit.
POST https://:/api/admin/limits/system/15
{
"value": 1000
}
Tenant configuration
Result set throttling can be configured at the tenant level with either the Web UI or with the Limits API. When
using the Web UI, you can enable result set throttling through either the Manage Tenants view on page 66 or
the Manage Limits view on page 82.
The following POST sets a limit of 1500 KB on the specified tenant. The number 32 is the ID of the tenant, and
the number 15 is the ID of the XdbcMaxResponse limit. The payload passes 1500 as the value for this limit.
POST https://:/api/admin/limits/tenants/32/15
{
"value": 1500
}
180 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Throttling
User account configuration
Result set throttling can be configured at the user level either with the Web UI or with the Limits API. For details
on using the Web UI, see Manage Users view on page 67.
The following POST sets a limit of 2000 KB on the specified user account. The number 86 is the ID of the user
account, and the number 15 is the ID of the XdbcMaxResponse limit. The payload passes 2000 as the value
for this limit.
POST https://:/api/admin/limits/users/86/15
{
"value": 2000
}
Data source configuration
Result set throttling can only be configured at the data source level using the Limits API. The following POST
sets a limit of 2500 KB on the specified data source. The number 86 is the ID of the user account; the number
14 is the ID of the data source that is owned by the user account; and the number 15 is the ID of the
XdbcMaxResponse limit. The payload passes 2500 as the value for this limit.
PUT https://:/api/admin/limits/users/86/datasources/14/15
{
"value": 2500
}
See also
Limits API on page 1099
Transaction timeout throttling
Hybrid Data Pipeline supports limiting how long a transaction can remain idle before rolling it back.Transaction
timeout throttling may be configured with the TransactionTimeout limit by specifying the number of seconds
the transaction can remain idle. The default value for the TransactionTimeout limit is 60 seconds. The
TransactionTimeout limit can be applied at four levels in the following manner.
• Data source. When applied to a data source, the limit applies to queries made to the data source. A limit
applied at the data source level overrides the limit set at the other levels.
• User. When applied to a user account, the limit applies to queries made by that user. A limit applied at the
user level overrides limits set at the tenant and system levels.
• Tenant.When applied to a tenant, the limit applies to queries made by any user in the tenant. A limit applied
at the tenant level overrides a limit set at the system level.
• System. When applied at the system level, the limit applies to queries made by any user in the Hybrid Data
Pipeline system.
To configure transaction timeout throttling, the administrator must have either the Administrator (12) or the
Limits (27) permission.
System level configuration
Transaction timeout throttling can be configured at the system level either with the Web UI or with the Limits
API. For details on using the Web UI, see Manage Limits view on page 82.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 181Chapter 2: Administering Hybrid Data Pipeline
The following POST creates a system-level limit of 90 seconds. The number 14 is the ID of the
TransactionTimeout limit. The payload passes 90 as the value for this limit.
POST https://:/api/admin/limits/system/14
{
"value": 90
}
Tenant configuration
Transaction timeout throttling can be configured at the tenant level with either the Web UI or with the Limits
API. When using the Web UI, you can enable transaction timeout throttling through either the Manage Tenants
view on page 66 or the Manage Limits view on page 82.
The following POST sets a limit of 120 seconds on the specified tenant. The number 32 is the ID of the tenant,
and the number 14 is the ID of the TransactionTimeout limit. The payload passes 120 as the value for this limit.
POST https://:/api/admin/limits/tenants/32/14
{
"value": 120
}
User account configuration
Transaction timeout throttling can be configured at the user level either with the Web UI or with the Limits API.
For details on using the Web UI, see Manage Users view on page 67.
The following POST sets a limit of 180 seconds on the specified user account. The number 86 is the ID of the
user account, and the number 14 is the ID of the TransactionTimeout limit. The payload passes 180 as the
value for this limit.
POST https://:/api/admin/limits/users/86/14
{
"value": 180
}
Data source configuration
Transaction timeout throttling can only be configured at the data source level using the Limits API.The following
POST sets a limit of 30 seconds on the specified data source. The number 86 is the ID of the user account;
the number 304 is the ID of the data source that is owned by the user account; and the number 14 is the ID of
the TransactionTimeout limit. The payload passes 30 as the value for this limit.
PUT https://:/api/admin/limits/users/86/datasources/304/14
{
"value": 30
}
See also
Limits API on page 1099
182 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Configuring CORS behavior
Configuring CORS behavior
Hybrid Data Pipeline supports cross-origin resource sharing (CORS) filters that allow the sharing of web
resources across domains. CORS provides several advantages over sites with a single-origin policy, including
improved resource management and two-way integration between third-party sites. An administrator can enable
or disable CORS filtering with the CORSBehavior limit. In turn, the CORS Whitelist API must be used to create
and manage a whitelist of trusted origins.
CORS filtering can only be applied at the system level. It cannot be applied to individual tenants. To enable or
disable CORS, the administrator must have either the Administrator (12), or the Limits (27) permission and
administrative access on the default system tenant. To create and manage a whitelist, the administrator must
have either the Administrator (12) permission, or the CORSwhitelist (23) permission and administrative access
on the default system tenant.
Enabling CORS behavior
CORS filters can be enabled either with the Web UI or with the Limits API. For details on using the Web UI,
see Manage Limits view on page 82.
CORS filtering is disabled by default (CORSBehavior set to 0), and resources are shared only with pages of
the same origin. CORS filtering can be enabled by setting the CORSBehavior limit to 1 or 2 via the Limits API.
When CORSBehavior is set to 1, the CORS filter is enabled with all origins trusted. When CORSBehavior is
set to 2, the CORS filter is enabled with a whitelist of trusted origins. The following POST operation specifies
the CORSBehavior endpoint (5). The payload sets the CORSBehavior limit to 2.
POST https://myserver:port/api/admin/limits/system/5
{
"value": 2
}
Creating a whitelist for CORS filtering
When CORS filtering has been enabled to use a whitelist of trusted origins (CORSBehavior set to 2), a whitelist
must be created to complete a CORS configuration. The CORS Whitelist API must be used to create the
whitelist of trusted origins. The following POST operation specifies the whitelist endpoint with a payload the
specifies domains for the trusted origins.
Note: The wild card * can be used at the beginning of a domain. For example, *.progress.com is a valid
entry, and will whitelist any origin that ends with progress.com. The wild card is not supported at any other
location within a domain. For example, progress.abc.*.com is not supported for origin validation.
POST https://:/api/admin/security/cors/whitelist
{
"whitelist": [
{
"domain": "http://*.abc.com",
"description": "The ABC group domain"
},
{
"domain": "http://bar.test.com",
"description": "The bar trusted origin"
}
]
}
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 183Chapter 2: Administering Hybrid Data Pipeline
See also
Manage Limits view on page 82
Limits API on page 1099
CORS Whitelist API on page 1091
FIPS (Federal Information Processing Standard)
The Federal Information Processing Standard (or FIPS) is a cryptography standard created by the U.S.
government. FIPS specifications require certain secure algorithms, cryptographic modules and random number
generation. Hybrid Data Pipeline uses the Bouncy Castle libraries to provide FIPS 140-2 compliant cryptography.
Using FIPS in Hybrid Data Pipeline server changes the following:
• The way we secure Pseudo-Random Number Generation for cryptographic elements
• The modules used for generating encrypted data including SSL
• The handling of SSL certificates, including the generation of the java truststore and keystore to be compatible
with the Bouncy Castle libraries
Note: If you plan to run Hybrid Data Pipeline in FIPS mode and use a Java plugin to support external
authentication services, the Java plugin must be FIPS compliant. In addition, the external authentication Java
plugin should be tested with FIPS mode enabled before moving to a production environment.
Before enabling FIPS
FIPS support should only be enabled if the hardware on the server machine supports secure random. If FIPS
support is enabled on a server machine that does not support secure random, the installer and the Hybrid Data
Pipeline server may hang as they wait for the system to generate sufficiently random numbers for security-related
tasks like encrypting or decrypting database information. To check if your hardware supports secure random
on Intel hardware, you can examine the CPU flags to see if the rdrand instruction is supported.
-sh-4.2$ cat /proc/cpuinfo | grep rdrand
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36
clflush dts mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc
arch_perfmon pebs bts nopl xtopology tsc_reliable nonstop_tsc aperfmperf pni
pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt aes xsave
avx f16c rdrand hypervisor lahf_lm ida arat epb pln pts dtherm fsgsbase
smep
Hybrid Data Pipeline can be installed on hardware that does not support secure random but if this is done,
there should be a secure random daemon installed to avoid the Hybrid Data Pipeline installer and server from
being blocked waiting for secure random seed values. Another method of determining if the CPU supports
secure random number generation is to obtain information about which CPU is being used with cat
/proc/cpuinfo and then visiting the listed CPU manufacturer''s website to obtain information about the
specific CPU.
Important: In addition to confirming that server hardware supports secure random, you should also ensure
enough entropy is available on any VM where Hybrid Data Pipeline is installed. Having enough entropy ensures
reliability, especially when using FIPS.
184 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1FIPS (Federal Information Processing Standard)
If Your Hardware Does Not Support Secure Random
If your hardware does not support secure random, but you wish to test the FIPS compliant components of
Hybrid Data Pipeline you can do so by modifying the configuration files provided. The resulting Hybrid Data
Pipeline instance will generate the correct components but they will not be FIPS compliant. Make the modification
as follows:
1. In the install_dir/jre/lib/security/java.security.bcfips file change the line
securerandom.source=file:/dev/random to securerandom.source=file:/dev/urandom.
2. Enable FIPS mode as normal. After installation scripts are provided for enabling and disabling the FIPS
complaint security provider. These scripts will automatically restart the local Hybrid Data Pipeline server
instance. In a clustered environment you will need to run this script on a single node, and then restart the
other nodes which will pick up the changes at startup. The scripts are found in install_dir/ddcloud
and are as follows:
• enable_fips.sh: Enables Bouncy Castle as the FIPS compliant security provider
• disable_fips.sh: Enables Sun as the security provider. This is not FIPS compliant
Note: To add certificates to the keystore and truststore for a FIPS compliant installation, you need to run the
installer and perform an upgrade to specify a new PEM with all the needed certificates and chains.
Enabling and disabling FIPS
Configuring Hybrid Data Pipeline server for FIPS support
There are two ways to configure the Hybrid Data Pipeline server for FIPS support:
• Through an installer during the initial Hybrid Data Pipeline server installation. By default, Hybrid Data Pipeline
will be installed in a FIPS disabled mode.You need to explicitly opt for FIPS support on the relevant
installation screen.
• Using the script enable_fips.sh
Note: We recommend a new, clean installation with FIPS enabled for production environments. With a new
installation, users and datasources must be re-created. The script will not change the stored encryption keys
which if generated by a non-FIPS install use the same encryption algorithm, but with the less secure random
number generation.
Enable FIPS during installation
Before enabling FIPS, you must ensure that your hardware supports secure random, or you have a secure
random daemon installed. To enable FIPS during installation, you must:
1. Run the installer, GUI or Console mode, and choose your desired options.
2. Choose Custom on the Install Type screen.
3. On the FIPS Configuration screen, check the Enable FIPS check-box.
Complete the remaining installation steps to install FIPS enabled Hybrid Data Pipeline server.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 185Chapter 2: Administering Hybrid Data Pipeline
Enable FIPS after installation
Prerequisite: Before enabling FIPS, you must ensure that your hardware supports secure random, or you have
a secure random daemon installed. To enable FIPS support after the installation:
1. Go to the installation directory, /Progress/DataDirect/Hybrid_Data_Pipeline/Hybrid_Server/ddcloud
2. Verify that the following two scripts exist for FIPS support:
• disable_fips.sh
• enable_fips.sh
3. Execute the enable_fips.sh script to enable FIPS support for the Hybrid Data Pipeline server. Note that
running the script will force the Hybrid Data Pipeline Server to restart.
nc-hdp-u19:~/Progress/DataDirect/Hybrid_Data_Pipeline/Hybrid_Server/ddcloud%
./enable_fips.sh
4. After the script has completed, verify that FIPS is enabled. To verify, you can look at the standard output
of the enable_fips.sh script. The final line output in a successful execution will be ‘Finished setting
security provider’ and the script will exit with a return code of 0. If it fails, the appropriate error(s) will be
displayed in the console, and the script will exit with a return code of 1.
Additionally, ./enable_fips.sh force can be run. By default enable_fips.sh will not attempt to generate
the existing .bks Bouncy Castle keystore and truststore if FIPS compatibility is already enabled.With the optional
force argument it forces both .bks Bouncy Castle keystore and truststore to be regenerated from the default
Sun .jks files. If it is in a multimode install you will need to run enable_fips.sh on a single node, then restart
the other nodes. The change will be detected on startup by the other Hybrid Data Pipeline nodes.
Disable FIPS
To disable FIPS:
1. Go to the installation directory, /Progress/DataDirect/Hybrid_Data_Pipeline/Hybrid_Server/ddcloud
2. Execute the disable_fips.sh script to enable FIPS support for the Hybrid Data Pipeline server.
nc-hdp-u19:~/Progress/DataDirect/Hybrid_Data_Pipeline/Hybrid_Server/ddcloud%
./disable_fips.sh
3. After the script has completed, verify that FIPS is disabled. To verify, you can look at the standard output
of the enable_fips.sh script. The final line output in a successful execution will be ‘Finished setting
security provider’ and the script will exit with a return code of 0. If it fails, the appropriate error(s) will be
displayed in the console, and the script will exit with a return code of 1.
Note: Running the script will force the Hybrid Data Pipeline Server to restart.
Data source logging
Hybrid Data Pipeline provides data source logging to record user activity against data sources. Administrators
can set logging levels for data sources through the Web UI or the Logging API. The resulting data source
activity log can be used to troubleshoot issues.
186 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Data source logging
Note: In addition to data source logging, a number of other system logs are generated. See System logs on
page 212 for details.
See the following topics for information on using data source logging.
• Setting data source logging levels on page 187
• The data source activity log on page 191
Setting data source logging levels
There are two basic data source logging levels: logging level and privacy level. The logging level determines
the level of detail to be included in the data source activity log, while the privacy level determines the type of
information that gets logged. These logging levels apply to all data sources. Non-relational data sources, such
as Salesforce and Oracle Eloqua, include additional loggers that, when enabled, pass information related to
the internal SQL engine to the data source activity log. Data source logging levels can be set either via the
Web UI or the Logging API.
Note: Enabling and increasing logging levels may adversely impact performance. Therefore, best practices
recommend that logging levels be restored to their defaults once an issue has been resolved.
See the following sections for more information about data source logging levels and how to set them.
• Logging level
• Privacy level
• Driver loggers
• Setting data source logging levels via the Web UI
• Setting data source logging levels with the Logging API
Logging level
By default, logging level is set to CONFIG to track servlet and worker thread activity. This usually provides
enough information to pinpoint an issue.The following table describes each of the valid settings for the logging
level.
Setting Description
SEVERE Used to indicate system level problems that may
require intervention.
WARNING Possible severe situation, but problem probably
averted.
INFO Basic activity that probably always wants to be tracked.
CONFIG Tracks servlet and worker thread activity.
FINE Debug diagnostics.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 187Chapter 2: Administering Hybrid Data Pipeline
Setting Description
FINER Debug diagnostics. More verbose than FINE.
FINEST Debug diagnostics. This is the most verbose mode.
Privacy level
By default, privacy level is set to AllowNone. This is the most restrictive setting where neither user data nor
SQL statements are logged. The following table describes each of the valid settings for the privacy level.
Setting Description
AllowNone This is the most restrictive level. Here neither user
data nor SQL statements are logged.
AllowSQL This level allows the logging of SQL statements, but
not input parameter values or result set column data.
AllowData This is the least restrictive level. It allows SQL
statements and any data values to be logged.
Driver loggers
In addition to logging and privacy levels, driver loggers are available for non-relational data sources. These
loggers are disabled by default. They can be enabled by setting a level of granularity from SEVERE to FINEST.
When these loggers are enabled, information related to the internal SQL engine is passed to the data source
activity log. This information can be useful in pinpointing and resolving issues. The following table describes
the loggers available for non-relational data sources, such as Salesforce and Oracle Eloqua.
Note: Driver loggers are not available for standard relational data sources such as DB2, SQL Server, and
Oracle.
Logger Description
SQL Logs events associated with how the embedded SQL engine interacts
with the data store and application.
Cloud Logs JDBC spy calls to troubleshoot JDBC interactions between the
connectivity service and the data store.
Driver Communication Logs events associated with the JDBC calls made into the embedded
SQL engine.
Adapter Logs events related to how the connectivity service communicates with
the data store in question.
Setting data source logging levels via the Web UI
Either set of the following permissions are required to set logging levels through the Web UI.
• Administrator (12) permission
188 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Data source logging
• WebUI (8) permission, Logging (24) permission, and administrative access on the tenant to which the users
and data sources belong
Take the following steps to set logging levels via the Web UI.
1. Navigate to the Data Sources view by clicking the data sources icon .
2. For multitenant environments, select the tenant to which the user and data source belong.
3. Select the user who owns the data source.
4. Click the logging configurations icon next to the data source for which you are configuring logging.
The Logging Settings page is displayed.
5. Set Logging Level and Privacy Level to desired level.
6. For non-relational data sources, enable driver loggers by setting the loggers to the desired level of granularity.
7. Click Save.
Setting data source logging levels with the Logging API
Either set of the following permissions are required to set logging levels through the Logging API.
• Administrator (12) permission
• Logging (24) permission and administrative access on the tenant to which the users and data sources
belong
Retrieve a user''s data sources
To retrieve the logging levels on a data source, the data source ID must be specified as a URL parameter. If
you don''t know the data source ID, you can execute the following GET operation to retrieve a list of data sources
for a user. In this example, the number 9 is the user ID. The response payload follows the operation.
GET https://MyServer:8443/api/admin/users/9/datasources
{
"dataSources": [
{
"id": 51,
"name": "SF_test_ds_1",
"dataStore": 1,
"isGroup": false,
"description": ""
},
{
"id": 52,
"name": "SF_test_ds_2",
"dataStore": 1,
"isGroup": false,
"description": ""
},
{
"id": 53,
"name": "SF_test_ds_1",
"dataStore": 1,
"isGroup": false,
"description": ""
}
]
}
Retrieve the logging levels of a data source
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 189Chapter 2: Administering Hybrid Data Pipeline
You can now use the data source ID from the response payload to retrieve the logging configurations for the
data source. The GET operation used to retrieve data source logging levels requires that you pass the user
ID (9) and data source ID (51) as URL parameters, as in the following example. The response payload follows.
GET https://MyServer:8443/api/admin/users/9/datasources/51/logging
{
"dasLogLevel": "CONFIG",
"privacyLevel": "AllowNone",
"driverLogConfig": [
{
"name": "ADAPTER",
"logLevel": "OFF"
},
{
"name": "CLOUD",
"logLevel": "OFF"
},
{
"name": "DRIVERCOMMUNICATION",
"logLevel": "OFF"
},
{
"name": "SQL",
"logLevel": "OFF"
}
]
}
Update the logging levels of a data source
An UPDATE operation can now be executed against the same endpoint to configure logging on the data source.
As shown in the following example, a corresponding request payload provides the required configuration
information.
PUT https://MyServer:8443/api/admin/users/9/datasources/51/logging
{
"dasLogLevel": "CONFIG",
"privacyLevel": "AllowSQL",
"driverLogConfig": [
{
"name": "ADAPTER",
"logLevel": "SEVERE"
},
{
"name": "CLOUD",
"logLevel": "SEVERE"
},
{
"name": "DRIVERCOMMUNICATION",
"logLevel": "SEVERE"
},
{
"name": "SQL",
"logLevel": "SEVERE"
}
]
}
190 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Data source logging
The data source activity log
The data source activity log records user activity against data sources. The data source activity log is written
to the following directory where install_dir is the Hybrid Data Pipeline installation directory.
install_dir/ddcloud/das/server/logs/das
When running the server on multiple nodes behind a load balancer, a data source activity log is created for
each instance of the service. In this scenario, multiple logs may need to be reviewed to identify errors, since
the operation in question may have been handled by any one of the nodes.
The name of the data source activity log takes the following format.
[api][user_account][data_store][data_source_name].datestamp.log
For example:
[odbc][user123][oracle][oracle_odata_ds].2019-05-07.log
Note: For data sources using an On-Premises Connector, a corresponding data source activity log is generated
on the machine hosting the connector. The name of the connector log file has the same format as the server
log file. The connector data source activity log may be found in the following directory.
opc_install_dir\OPDAS\server\logs\das
The following sample shows that every entry in the data source activity log file starts out with the same standard
information.
08-Sep-2017 07:11:54.493 CONFIG [http-bio-8080-exec-12] [steve@abctestmail.com]
[salesforce][d2c_salesforce_odatav4][aYDHNkfB6Fd4mCk3].[execute] [success=true][ms=82
[stmtId=1][bytesIn=2][bytesOut=1861][worker=Worker-1][rowsFetched=0]
The following table can be used to parse the information contained in the data source activity log.
Table 1: Data source activity log elements
Element Example Description
Timestamp 08-Sep-2017 UTC date time value for when the logging event was
07:11:54.493 written.
Log Level CONFIG The Java logging level associated with the event.
Thread Name http-bio-8080-exec-12 The name of the thread that logged the event.
User Name steve@abctestmail.com The name of the user.
Data Source Name salesforce The name of the data source.
Session Token aYDHNkfB6Fd4mCk3 The session identifier assigned to the user.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 191Chapter 2: Administering Hybrid Data Pipeline
Element Example Description
Operation Context execute The operational context in which the event occurred.
If a Tomcat servlet thread, this will identify the
command. Other types of operations include: login,
logout, upload, clear, and continue. A worker
value indicates the operation is being done
asynchronously in a worker thread. This is only done
as part of an execute request.
Message success=true ms=82 The rest of the line (or lines) will be the actual log
message. Most messages are just key value pairs.
Most messages include a success flag. When the flag
is false, an error event message will usually proceed
the message. The ms key gives the duration of the
operation in milliseconds.
SQL statement auditing
Hybrid Data Pipeline provides a SQL statement auditing feature. When SQL statement auditing is enabled,
the connectivity service records SQL statements and related metrics in the SQLAudit table on the Hybrid Data
Pipeline system database (also referred to as the account database). This information can then be queried
directly by administrators.
See the following topics for more information.
• The SQLAudit table
• Enabling and configuring SQL auditing
• SQLAudit table queries
The SQLAudit table
The SQLAudit table includes the following columns.
Name Type Description
ID Long An auto-increment, primary key column
SessionID Char(16) A unique Hybrid Data Pipeline connection identifier
SQLStatement VarChar(2000) The SQL statement executed against the data store
TimestampBegin Long A standard Java UTC epoch in milliseconds that indicates the time at
which the SQL statement was made
TimestampEnd Long A standard Java UTC epoch in milliseconds that indicates the time at
which the SQL statement ended
RowsFetched Long The number of rows that were returned
192 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1SQL statement auditing
Name Type Description
RowsUpdated Long The number of rows that were deleted, inserted, or updated
UserName VarChar(128) The internal authUserName associated with the authentication service.
When using internal authentication, the UserName is the same as the
LoginName. When using external authentication, these values may be
different. See Authentication for details.
LoginName VarChar(250) The name supplied by the user when logging into Hybrid Data Pipeline
DatasourceName VarChar(128) The name of the Hybrid Data Pipeline data source
RemoteAddress VarChar(128) The IP address of the user
Status Integer The success or failure status of the query. 0 indicates failure. 1 indicates
success.
Enabling and configuring SQL auditing
SQL statement auditing may be enabled and configured using either the Web UI or the Limits API.The following
limits can be used to enable and configure SQL statement auditing.
• SQLAuditing (21): Used to enable or disable the feature. May be enabled at the system, tenant, user, and
data source levels. The feature is disabled by default.
• SQLAuditingRetentionDays (22): The number of days records are retained in the SQLAudit table. May
only be applied at the system level. The default setting is 30 days.
• SQLAuditingMaxAge (23): The maximum number of seconds the service waits before inserting auditing
records into the SQLAudit table. A lower setting will increase the frequency with which records are written
to the SQLAudit table. May only be applied at the system level. The default is 60 seconds.
The following examples show how to enable SQL statement auditing at each level using the SQLAuditing limit,
and how to further configure the feature with the SQLAuditingRetentionDays and SQLAuditingMaxAge limits.
Note: To enable and configure SQL statement auditing, the administrator must have either the Administrator
(12) or the Limits (27) permission.
• System level
• Tenant level
• User level
• Data source level
• Set SQLAuditingRetentionDays
• Set SQLAuditingMaxAge
System level
SQL statement auditing can be enabled at the system level with either the Web UI or with the Limits API. For
details on using the Web UI, see Manage Limits view on page 82.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 193Chapter 2: Administering Hybrid Data Pipeline
The following POST enables SQL statement auditing at the system level, where the number 21 is the ID of the
SQLAuditing limit.
POST https://:/api/admin/limits/system/21
{
"value": 1
}
Tenant level
SQL statement auditing can be enabled at the tenant level with either the Web UI or with the Limits API. When
using the Web UI, you can enable SQL statement auditing through either the Manage Tenants view on page
66 or the Manage Limits view on page 82.
The following POST enables SQL statement auditing at the tenant level. In this example, the number 32 is the
ID of the tenant, and the number 21 is the ID of the SQLAuditing limit.
POST https://:/api/admin/limits/tenants/32/21
{
"value": 1
}
User level
SQL statement auditing can be enabled at the user level either with the Web UI or with the Limits API. For
details on using the Web UI, see Manage Users view on page 67.
The following POST enables SQL statement auditing for a user. In this example, the number 86 is the ID of
the user, and the number 21 is the ID of the SQLAuditing limit.
POST https://:/api/admin/limits/users/86/21
{
"value": 1
}
Data source level
SQL statement auditing can only be enabled at the data source level using the Limits API.The following POST
enables SQL statement auditing on a data source. In this example, the number 86 is the ID of the user who
owns the data source, the number 14 is the ID of the data source, and the number 21 is the ID of the SQLAuditing
limit.
POST https://:/api/admin/limits/users/86/datasources/14/21
{
"value": 1
}
194 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1SQL statement auditing
Set SQLAuditingRetentionDays
Once SQL statement auditing is enabled, you can then set SQLAuditingRetentionDays (22) at the system level
to specify the number of days rows are retained in the SQLAudit table. (SQLAuditingRetentionDays can also
be set via the Web UI. See Manage Limits view on page 82 for details.)
POST https://:/api/admin/limits/system/22
{
"value": 90
}
Set SQLAuditingMaxAge
Once enabled, you can also set SQLAuditingMaxAge (23) to specify the maximum number of seconds the
service waits before inserting the auditing records into the SQLAudit table. (SQLAuditingMaxAge can also be
set via the Web UI. See Manage Limits view on page 82 for details.)
POST https://:/api/admin/limits/system/23
{
"value": 30
}
See also
Limits API on page 1099
SQLAudit table queries
How you formulate a successful query against the SQLAudit table in part depends on the database you are
using as your Hybrid Data Pipeline system database.The following examples show how to query each supported
database system. The key difference between each is the function used to convert a timestamp supported by
the database into the standard Java UTC epoch (also known as Unix time).
• Oracle
• Microsoft SQL Server
• MySQL
• PostgreSQL
• Internal system database
• Filter using the Java UTC epoch
Note: Ordering by ID will not necessarily reflect a chronological order.
Oracle
Oracle does not provide a readily available function to convert human-readable timestamps into the Java UTC
epoch. However, the following stored procedure can be used to achieve the conversion.
CREATE OR REPLACE FUNCTION TO_JAVA_UTC (TimestampEnd IN TIMESTAMP WITH TIME ZONE)
RETURN NUMBER IS
days NUMBER;
hours NUMBER;
minutes NUMBER;
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 195Chapter 2: Administering Hybrid Data Pipeline
seconds NUMBER;
millis NUMBER;
utc TIMESTAMP WITH TIME ZONE;
diff INTERVAL DAY(9) TO SECOND;
BEGIN
utc := TO_TIMESTAMP_TZ(''01-01-1970 00:00:00+00:00'', ''MM-DD-YYYY HH24:MI:SS TZH:TZM'');
diff := TimestampEnd - utc;
days := EXTRACT (day FROM diff);
hours := EXTRACT (hour FROM diff);
minutes := EXTRACT (minute FROM diff);
seconds := EXTRACT (second FROM diff);
millis := (((days * 24 + hours) * 60) + minutes) * 60 + seconds;
RETURN millis;
END;
The TO_JAVA_UTC function can now be used to filter queries, as shown in the following example.
SELECT * FROM SQLAudit WHERE TimestampEnd < TO_JAVA_UTC (TO_TIMESTAMP_TZ(''08-26-2020
12:00:00 -04:00'', ''MM-DD-YYYY HH24:MI:SS TZH:TZM''))
Microsoft SQL Server
For Microsoft SQL Server, the DATEDIFF function may be used to convert human-readable timestamps into
the Java UTC epoch. The CAST function then casts the Java UTC epoch in terms of milliseconds.
SELECT * FROM SQLAudit WHERE TimestampEnd <= DATEDIFF(SECOND, ''1970-01-01'', ''2020-08-26
12:00:00+04:00'') * CAST(1000 as bigint)
MySQL
As the following example shows, MySQL provides the UNIX_TIMESTAMP function which converts
human-readable timestamps into the Java UTC epoch.The epoch should then be multiplied by 1000 to convert
the value from seconds to milliseconds.
SELECT * FROM SQLAudit WHERE TimestampEnd <= UNIX_TIMESTAMP(''2020-08-26 12:00:00'') *
1000
PostgreSQL
In this example, the PostgreSQL EXTRACT function is used to convert human-readable timestamps into the
Java UTC epoch.The epoch should then be multiplied by 1000 to convert the value from seconds to milliseconds.
SELECT * FROM SQLAudit WHERE TimestampEnd <= EXTRACT(epoch from ''2020-08-26 12:00:00''
at time zone ''edt'' at time zone ''utc'') * 1000
Internal system database
For the internal system database, the UNIX_MILLIS function can be used to convert human-readable
timestamps into the Java UTC epoch in milliseconds, as shown in the following example.
SELECT * FROM SQLAudit WHERE TimestampEnd <= UNIX_MILLIS(''1970-01-01'', ''08-26-2020
12:00:00-04:00'')
196 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Using third party JDBC drivers with Hybrid Data Pipeline
Filter using the Java UTC epoch
As opposed to including a function in your WHERE clause filter, you can filter using the Java UTC epoch. In this
scenario, you would begin by converting a human-readable timestamp into the Java UTC epoch, using an
epoch converter tool.You could then create a query like the following:
SELECT * FROM SQLAudit WHERE TimestampEnd <= 1598457600000
In this example, the value 1598457600000 is the Java epoch (in milliseconds) for the timestamp 2020-08-26
12:00:00 Americas/New_York. The result set would provide an audit trail of SQL statements executed
on or before this time.
See also
System database for standalone deployment on page 24
System database for load balancer deployment on page 44
Using third party JDBC drivers with Hybrid Data
Pipeline
Hybrid Data Pipeline supports the use of third party JDBC drivers. This feature gives customers the ability to
integrate data stores for which Hybrid Data Pipeline does not currently have a built-in integration.The integration
of a third party driver enables Hybrid Data Pipeline to expose backend data to JDBC, ODBC, and OData clients.
Three general steps should be followed to integrate a third party driver with Hybrid Data Pipeline environment.
1. The third party driver must be evaluated to verify compatibility with Hybrid Data Pipeline.
2. The third party driver must be integrated with the Hybrid Data Pipeline environment.
3. A data source must be created with the third party driver to access data on the backend data store.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 197Chapter 2: Administering Hybrid Data Pipeline
Verifying a third party JDBC driver for Hybrid Data Pipeline
compatibility
The Hybrid Data Pipeline verification tool should be used to verify whether a third party driver is compatible
with Hybrid Data Pipeline. The following files and scripts will be used in the verification process. These files
are located in the tools folder of either a Hybrid Data Pipeline server installation, or an On-Premises Connector
installation.
• jdbcVerificationTool.jar - The JDBC driver verification tool.
• config.properties - This file must be updated with driver-specific information before running the
verification tool. The following information must be updated in the config.properties file.
# Configure the database URL
DBURL= database_url
# Configure the driver class name
CLASSNAME=classname
# Configure the user name
USER=username
# Configure the password
PASSWORD=passwordl
# Configure the schema name
SCHEMA=schemaname
# Configure the comma separated table names
TABLES=tablename1, tablename2
# Configure the top term supported by the database.Supported top term keywords are
{LIMIT ,ROWNUM ,FIRST,FETCHFIRST,TOP}
TOPTERM=topterm
# Configure the location of the third party driver files.
LOCATION=\default\location
• jdbcVerificationTool.sh - This shell script reads the config.properties file and runs the verification
tool. This file is used to run the tool in Linux.
• jdbcVerificationTool.bat - This bat file reads the config.properties file and runs the verification tool.
This file is used to run the tool in Windows.
• datastore_profile_template.xml - This is the template profile file for the third party JDBC Driver.
1. Navigate to the tools folder.
a) For the Hybrid Data Pipeline service: /ddcloud/tools
b) For an On-Premises Connector service: \tools
2. Update the config.properties file with driver information.
3. Run the JDBC verification tool. Use the jdbcVerificationTool.sh file for Linux, or the
jdbcVerificationTool.bat file for Windows.
4. Review the reports generated by the verification tool. The reports can be seen in the Reports folder.
The tool generates the following files:
• A summary report summarizes the findings of the verification tool. It conveys the percentage of test
cases that succeeded, and provides an overview of warnings and exceptions. It will also indicate if any
of the warnings and exceptions are critical. Here is an example of what a summary report looks like:
---------------------------------------------------------------
Summary of Results:
---------------------------------------------------------------
Total:20
198 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Using third party JDBC drivers with Hybrid Data Pipeline
Succeeded:19
Failed:1
Pass Percentage:95%
---------------------------------------------------------------
Conclusion:
---------------------------------------------------------------
This driver is compatible and can be used in HDP. However some of the functionality
will be affected due to the following failures.
Found un-supported data types, respective columns will not be exposed via OData.
Found columns with longer size than the supported column size in table ''GTABLE'', the
list of columns that will not be exposed via OData: LVCOL,LVARBINCOL.
• A verbose report provides information on a full range of test cases, including metadata and SQL queries.
This report also details all the errors, warnings and exceptions. Here is an example of what a verbose
report looks like:
---------------------------------------------------------------
JDBC Metadata API Verification
---------------------------------------------------------------
API: getMaxCatalogNameLength
[SUCCESS]Succeeded with Value:32
API: getTypeInfo
[SUCCESS]Succeeded with Table:null
[SUCCESS][BIT][UNSIGNED_ATTRIBUTE]Received:false
[SUCCESS][BIT][TYPE_NAME]Received:BIT
API: getColumns TABLE:GTABLE
[SUCCESS]Succeeded with Table:GTABLE
[SUCCESS][CHARCOL][COLUMN_DEF]Received:null
[SUCCESS][CHARCOL][COLUMN_NAME]Received:CHARCOL
[SUCCESS][LVCOL][DATA_TYPE]Received:-1
[FAILURE][LVCOL][COLUMN_SIZE]Failed with exception:Actual size is 2147483647 and
supported size is 32768
[SUCCESS][BITCOL][COLUMN_DEF]Received:null
[SUCCESS][BITCOL][DATA_TYPE]Received:-7
[FAILURE][LVARBINCOL][COLUMN_SIZE]Failed with exception:Actual size is 2147483647
and supported size is 32768
[SUCCESS][DATECOL][COLUMN_DEF]Received:null
...
---------------------------------------------------------------
SQL Query Processing
---------------------------------------------------------------
ODATA QUERY: SELECT
[SUCCESS]Succeeded with Query:SELECT T0.`CHARCOL`, T0.`VCHARCOL`, T0.`DECIMALCOL`,
T0.`NUMERICCOL`, T0.`SMALLCOL` FROM `GTABLE` T0
ODATA QUERY: COUNT
[SUCCESS]Succeeded with Query:SELECT count(*) FROM `GTABLE` T0
...
• A .datastore-profile.xml is generated. This file can be used to specify any
changes that need to be made to the third party JDBC driver. If the user intends to create this file from
scratch, it should be named in the given format:.datastore-profile.xml. In case
of any changes, the updated file must be placed in the same location as the third party JDBC driver.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 199Chapter 2: Administering Hybrid Data Pipeline
Integrating the third party JDBC driver into Hybrid Data Pipeline
After confirming that the third party JDBC driver is compatible, the driver can be integrated with the Hybrid
Data Pipeline environment. The driver must be copied to the drivers folder. The location of the drivers
folder varies depending on the Hybrid Data Pipeline environment.
• In a standalone installation, the driver must be copied to the following location:
• /ddcloud/keystore/drivers if the default key location was selected during
installation of the server
• /shared/drivers if a non-default key location was specified during
installation of the server
• In a load balancer installation, the driver must be copied to the drivers directory in the key location specified
during the installation of the initial Hybrid Data Pipeline node.
• In an On-Premises Connector installation, the drivers must be updated in the On-Premises Connector
Installation directory:\OPDAS\server\drivers.The profile xml for the third party
driver will still be read from the Hybrid Data Pipeline server.
After the third party driver has been integrated with the Hybrid Data Pipeline environment, you can create a
data source to access backend data. If you attempt to create the JDBC data source without plugging in the
driver, you will get an error. Data sources can be created either through the Web UI or through the Hybrid Data
Pipeline API. For information on creating data sources through the Web UI, see Creating data sources with
the Web UI on page 240 and JDBC parameters for third party drivers on page 307. For information on creating
data sources through the Hybrid Data Pipeline API, see Data Sources API on page 1306.
Note: The current limitation is that there should not be any conflicts between the classes among various
drivers. Multiple drivers cannot use different versions of the same library.
Configuring Hybrid Data Pipeline to authorize client
applications using OAuth 2.0
Hybrid Data Pipeline supports OAuth 2.0 based authentication for OData APIs, in addition to basic authentication.
OAuth 2.0 is not backwards compatible with OAuth 1.0 or 1.1.
Customers using client applications or third-party applications like Salesforce Connect and Power BI will be
able to invoke Hybrid Data Pipeline OData access endpoints by passing in the required tokens as opposed to
passing in username and password in basic authentication. This allows users to grant applications access to
their OData endpoints without storing their user credentials in the application. Hybrid Data Pipeline supports
OAuth based authorization for OData access endpoints for OData version 2 and version 4.
To integrate a client Application with Hybrid Data Pipeline using OAuth 2.0, an application developer can
integrate an in-house OData application with OAuth 2.0. The following section lists the steps involved in
achieving an OData connection with Hybrid Data Pipeline using OAuth.
Establishing an OData connection using OAuth 2.0
Take the following steps to establish OData connectivity using OAuth 2.0.
200 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Configuring Hybrid Data Pipeline to authorize client applications using OAuth 2.0
1. A client registers a client application with Hybrid Data Pipeline. See Register client application on page 201.
Once the application is registered, the Hybrid Data Pipeline service will issue client credentials in the form
of a client identifier and a client secret.
2. The application uses the Client ID and Client Secret to generate an access token. Depending on the type
of grant flow, the sequence of steps here will be different. See OAuth grant flows on page 202.The application
must also specify the scope of access. Hybrid Data Pipeline currently supports one high level scope: "Allow
data access via OData."
3. When the client application attempts to connect, Hybrid Data Pipeline prompts the end user for login
credentials. If valid credentials are used, Hybrid Data Pipeline asks if the application should be allowed
access to resource specified in scope.
4. If the application is authorized to access the resource specified in the scope, then Hybrid Data Pipeline
sends the access token and refresh token to the client applications callback URL.
5. Client uses access token to access OData endpoint. Using the access token, the client application can
make OData requests against Hybrid Data Pipeline resource.
6. If the access token expires, the application uses the Client ID, the Client Secret and the refresh token to
generate a new access token.
Note: If you want third-party applications to use Hybrid Data Pipeline OData URL to pull data via OAuth 2.0,
you will need to perform additional configuration steps to achieve the OAuth flow. Consult your third-party
application documentation for information.
Register client application
To support OAuth 2.0 authentication, you must register your application with Hybrid Data Pipeline. With the
Client Application Registration API, you can register a client application with Hybrid Data Pipeline to generate
a client ID and client secret. The client ID and client secret can then be used to generate tokens that enable
applications to authenticate against Hybrid Data Pipeline with OAuth 2.0.
You must provide the following details while registering your application:
• Application Name
• Application description
• Redirect URLs: This is a user defined list of authorized URLs and can include one or more valid URLs.
These URLs instruct Hybrid Data Pipeline where to provide the access token and refresh token to the
application. These are the URLs that the application should redirect to, on successful authorization.You
can enter multiple URLs, separated by commas.
When the request is executed, a client ID and a client secret are generated.The Client ID is a publicly exposed
string that is used by the Hybrid Data Pipeline Service API to identify the application, and is also used to build
authorization URLs that are presented to users. The Client Secret is used to authenticate the identity of the
application to the service API when the application requests access to a user''s account, and must be kept
private between the application and the API.
OAuth 2.0 tokens
OAuth gives client applications restricted access to your data on a resource server. To allow access, an
authorization server grants tokens to the client application in response to an authorization. Hybrid Data Pipeline
generates three kinds of tokens.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 201Chapter 2: Administering Hybrid Data Pipeline
Authorization Code: This code is generated as part of OAuth Authorization grant flow. The authorization
server creates this token and passes it to the client application via the browser. This code is exchanged by the
client application to obtain an access token and refresh token.
Access Token: Once the application has an access token, it may use the token to access the user''s account
via the API, limited to the scope of access, until the token expires or is revoked. The access token expires in
60 minutes. When an access token expires, using it to make a request from the API will result in an "Invalid
Token Error". The duration of validity of an access token can be modified using the System Limit API. See
Limits API on page 1099.
Refresh Token: If your access tokens expire, refresh tokens allow applications to continue to have access to
users’ accounts without the user continually re-authorizing the application. The refresh token must be stored
securely within the application.You can use the refresh token to get a new access token from the server. The
Refresh token will be used to generate an Access Token. Once issued by Hybrid Data Pipeline, the Refresh
token remains valid until the user revokes it.
OAuth grant flows
While OAuth 2.0 defines several different grant types, Hybrid Data Pipeline currently supports the following
grant flows.
• Authorization grant flow (UI-based): used with server-side applications
• Resource Owner Password credentials grant flow (non-UI based): used with trusted applications, such as
those owned by the service itself.
Grant Type: Authorization Code
The authorization code grant type is the most commonly used because it is optimized for server-side applications,
where source code is not publicly exposed, and Client Secret confidentiality can be maintained. This is a
redirection-based flow, which means that the application must be capable of interacting with the user-agent
(i.e. the user''s web browser) and receiving API authorization codes that are routed through the user-agent.
Now we will describe the authorization code flow:
Step 1: Authorization Code Link
First, the user is given an authorization code link that looks like the following:
https://cloud.hybriddatapipeline.com/
oauth2/authorize?response_type=code&client_id=CLIENT_ID&redirect_uri=CALLBACK_URL&scope=odata
Here is an explanation of the link components:
• https://cloud.hybriddatapipeline.com/oauth2/authorize: the API authorization endpoint
• client_id: The client id of the application in Hybrid Data Pipeline
• redirect_uri: Where the service redirects the user-agent after an authorization code is granted
• response_type: Specifies that your application is requesting an authorization code grant
• scope: Specifies the level of access that the application is requesting. Hybrid Data Pipeline currently supports
one high level scope - "Allow data access via OData"
Step 2: User Authorizes Application
When the user clicks the link, they must first log in to the service, to authenticate their identity (unless they are
already logged in). Then they will be prompted by the service to authorize or deny the application access to
their account. If the user chooses to allow, the grant flow carries on with the next step. If the user chooses to
deny, an error message will be displayed, specifying that “User denied OAuth access”.
202 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Configuring Hybrid Data Pipeline to authorize client applications using OAuth 2.0
Step 3: Application Receives Authorization Code
If the user clicks "Authorize Application", the service redirects the user-agent to the application redirect URI,
which was specified during the client registration, along with an authorization code. The redirect would look
something like this:
https://hybriddatapipeline.com/callback?code=AUTHORIZATION_CODE
Step 4: Application Requests Access Token
The application requests an access token from the API, by passing the authorization code along with
authentication details, including the client secret, to the API token endpoint.The parameters are sent in request
body as form url encoded. The following is an example of a POST request to Hybrid Data Pipeline''s token
endpoint.
https://cloud.hybriddatapipeline.com/oauth2/token
POST Call
client_id=CLIENT_ID
client_secret=CLIENT_SECRET
grant_type=authorization_code
code=AUTHORIZATION_CODE
redirect_uri=CALLBACK_URL
Step 5: Application Receives Access Token
If the authorization is valid, the API will send a response containing the access token and a refresh token to
the application. The entire response will look something like this:
{
"access_token":"ACCESS_TOKEN",
"token_type":"bearer",
"expires_in":600,
"refresh_token":"REFRESH_TOKEN"
}
The application is now authorized. It may use the token to access the user''s account via the API, limited to the
scope of access, until the token expires or is revoked. A refresh token can be used to request a new access
token if the original access token has expired.
Grant Type: Resource Owner Password Credentials
With the resource owner password credentials grant type, the user provides their service credentials (username
and password) directly to the application.The application uses the /oauth2/token endpoint to obtain an access
token from the service.
The following details are required in this grant type:
• Client credentials
• grant_type
• scope (included in the request body)
This grant type should only be used with trusted applications since user credentials need to be shared with the
client application.
Resource Owner Password Credentials Flow
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 203Chapter 2: Administering Hybrid Data Pipeline
After the user gives their credentials to the application, the application will then request an access token from
the authorization server. To generate the proper OAuth2 token, you need to pass the payload as
"application/x-www-form-urlencoded".The POST request must include the user credentials in the request body.
The authorization should be set to No Auth before posting the payload.
grant_type:password
scope:api.access.odata
username:
password:
client_id:
client_secret:
After the user credentials provided are authenticated, the authorization server returns an access token to the
application. Now the application is authorized.
OAuth 2.0 endpoints
You can use the Hybrid Data Pipeline endpoints to register a client application, view a list of registered
applications, reset client credentials, revoke access to a registered application, and otherwise manage client
application access to Hybrid Data Pipeline data sources using OAuth 2.0. OAuth endpoints are the URLs that
you use to make OAuth authorization requests to Hybrid Data Pipeline. The following is the list of OAuth 2.0
endpoints:
204 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Integrating Hybrid Data Pipeline with a Google OAuth 2.0 authorization flow to access Google Analytics
Operation Request Endpoints
Get list of OAuth GET
registered applications https://:/api/mgmt/oauth/client/applications
Register OAuth POST
application https://:/api/mgmt/oauth/client/applications
Get registered GET
application by ID https://:/api/mgmt/oauth/client/applications/{id}
Update registered PUT
application by ID https://:/api/mgmt/oauth/client/applications/{id}
Delete registered DELETE
application by ID https://:/api/mgmt/oauth/client/applications/{id}
Reset client secret of PUT
application https://:/api/mgmt/oauth/client/applications/{id}/reset
Get list of applications GET
for which logged-in https://:/api/mgmt/oauth/client/allowedapplications
user has access
Revoke access granted DELETE
for the given application https://:/api/mgmt/oauth/client/allowedapplications/{id}
ID
Generate access token POST
and refresh token https://:/api/mgmt/oauth2/token
Authorize token POST
https://:/api/mgmt/oauth2/authorize
For additional information, see OAuth API for configuring Hybrid Data Pipeline to authorize client applications
on page 1402.
Integrating Hybrid Data Pipeline with a Google OAuth
2.0 authorization flow to access Google Analytics
Hybrid Data Pipeline must be integrated as a client application into a Google OAuth 2.0 authorization flow to
create a data source for accessing Google Analytics. The following workflow outlines the tasks required to
achieve this integration. The remaining topics in this section provide detailed instructions for these tasks.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 205Chapter 2: Administering Hybrid Data Pipeline
1. Hybrid Data Pipeline must be registered as a client application with the Analytics API in the Google Developer
Console.
2. The OAuth applications API must be used to create an OAuth application object. The OAuth application
object holds the client ID and secret provided by Google. This information allows Hybrid Data Pipeline to
identify itself as a registered application with the Analytics API.
3. An OAuth profile must be created as part of the process of creating a data source on a Google Analytics
data store. (Once a profile has been created, it may be selected by a user during the creation of subsequent
data sources.)
• If creating the data source through the Web UI, the user enters the name of the new OAuth profile in the
OAuth Profile Name field. Then, the user clicks Authorize with Google. The user is redirected to
Google where he or she must login to Google. When the user clicks Accept, Google sends access and
refresh tokens to Hybrid Data Pipeline. The user is then returned to the Hybrid Data Pipeline interface
to finish creating the data source.
• If creating the data source with the Hybrid Data Pipeline API, the user must begin by obtaining OAuth
access and refresh tokens from Google. Then, the user creates an OAuth profile object with the OAuth
profile API. Once the OAuth profile has been created, the user can proceed with creating the data source
using the Data Sources API.
Registering Hybrid Data Pipeline as a client application with the
Google Analytics API
Hybrid Data Pipeline must be integrated as a client application into a Google OAuth 2.0 authorization flow to
create a data source for accessing Google Analytics. Registering Hybrid Data Pipeline as a client application
with the Analytics API is the first task in achieving this integration.
Take the following steps to register Hybrid Data Pipeline as a client application with the Analytics API.
1. Launch the Google Developer Console and log in with the appropriate Google account credentials.
2. Create a new project.
3. Click Library on the left. Then navigate to and click Analytics API. Then enable the Analytics API.
4. Click Credentials on the left. Then click Credentials in APIs & Services.
5. Under the OAuth consent screen tab, enter the required details and click Save.
6. Under the Credentials tab, click Create credentials > OAuth client ID.
7. Provide the following information in the Create client ID dialog.
a) Select Web application.
b) Enter an application name.
c) Specify the Hybrid Data Pipeline URL (for example, https://hdp-test:8443) in the Authorized
JavaScript origins field. The domain name must be fully qualified.
d) Click Create.
8. Copy the client ID and secret key to a text editor.These credentials will be used to create an OAuth application
object using the OAuth applications API.
What to do next:
206 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Integrating Hybrid Data Pipeline with a Google OAuth 2.0 authorization flow to access Google Analytics
Once Hybrid Data Pipeline has been successfully registered with the Analytics API, an administrator should
proceed with the next task in integrating Hybrid Data Pipeline with a Google OAuth 2.0 authorization flow:
Using the OAuth applications API to create an OAuth application object.
Using the OAuth applications API to create an OAuth application
object
Once Hybrid Data Pipeline has been registered as a client application with the Google Analytics API, an
administrator can proceed with creating an OAuth application object. The OAuth application object holds the
client ID and secret provided by Google. This information allows Hybrid Data Pipeline to identify itself as a
registered application with the Analytics API during the OAuth 2.0 authorization flow.
In a multitenant environment, an OAuth application object can be created for a particular tenant. When an
OAuth application is created for the system tenant, it can be used by users in either the system tenant or a
child tenant to create data sources on Google Analytics data stores. When an OAuth application is created for
a child tenant, it can only be used by users in the child tenant to create data sources on Google Analytics data
stores. Even though they will be able to view OAuth application objects that exist in child tenants, administrators
who reside in the system tenant can only use the OAuth application object in the system tenant when creating
their own data sources. An OAuth application object must be created for the system tenant to permit the creation
of Google Analytics data sources by users, including administrators, in the system tenant.
The permissions required to create and modify OAuth application objects for Google Analytics data stores
depend on the tenant in which the user resides and the tenants for which the user has administrative access.
With the Administrator (12) permission, a user can create an OAuth application object in any tenant across the
system. With the MgmtAPI (11) and OAuth (28) permissions, a user in the system tenant can create an OAuth
application object for the system tenant. This user can also create OAuth application objects for tenants for
which he or she has administrative access. With the MgmtAPI (11) and OAuth (28) permissions, a user in a
child tenant can create an OAuth application object only in the tenant in which he or she resides.
POST operation
The POST operation to create an OAuth application object will have the following syntax.
POST https://:/api/mgmt/oauthapps
Payload definition
The payload used to create the OAuth application object can be defined as follows.
{
"name": "oauth_application_name",
"dataStore": data_store_id,
"tenantId": tenant_id,
"description": "oauth_application_description",
"clientId": "client_id",
"clientSecret": "client_secret"
}
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 207Chapter 2: Administering Hybrid Data Pipeline
Property Description Usage Valid Values
"name" The name of the OAuth application object. Required The user-specified
name of the OAuth
application object.
The name can
contain only
alphanumeric
characters and the
underscore
character.
"dataStore" The ID of the data store for which the Required The only data store
OAuth application object is being created. which Hybrid Data
Pipeline currently
supports access to is
Google Analytics.
Therefore, the only
valid value is the
Google Analytics
data store ID: 54.
"tenantId" The ID of the tenant to which the OAuth Optional A valid tenant ID.
application and data store belong.
When a tenant ID is not specified, the
OAuth application is created for the tenant
to which the user belongs.
"description" A description of the OAuth application Optional A description
object. provided by the user.
"clientId" The OAuth client_id generated by Required A valid client_id.
Google when an application is registered
with the Analytics API in the Google
Developer Console.
"clientSecret" The OAuth client_secret generated by Required A valid
Google when an application is registered client_secret.
with the Analytics API in the Google
Developer Console.
Example
The following POST operation creates the TenantA OAuth app object.
POST https://MyServer:8443/api/mgmt/oauthapps
Request payload
{
"name": "TenantA OAuth app",
"dataStore": 54,
"tenantId": 303,
"description": "TenantA OAuth application object for Google Analytics",
"clientId": "asdfjasdljfasdkjf",
208 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Integrating Hybrid Data Pipeline with a Google OAuth 2.0 authorization flow to access Google Analytics
"clientSecret": "1912308409123890"
}
Response payload
Status code: 201
Successful response
{
"id": "17",
"name": "TenantA OAuth app",
"dataStore": 54,
"tenantId": 303,
"description": "TenantA OAuth application object for Google Analytics",
"clientId": "asdfjasdljfasdkjf",
"clientSecret": "1912308409123890"
}
What to do next
Users may now proceed with creating an OAuth profile and a Google Analytics data source.
• If creating the OAuth profile and data source through the Web UI, proceed to the following topics.
• Creating data sources with the Web UI on page 240
• How to create a data source in the Web UI on page 240
• Google Analytics parameters on page 313
• If creating the OAuth profile and data source through the Web UI, proceed to the following topics.
• Using the OAuth profiles API to create an OAuth profile on page 209
• Using the Data Sources API to create a Google Analytics data source on page 211
Using the OAuth profiles API to create an OAuth profile
If a user intends to use the Data Sources API to create data sources on a Google Analytics data store, the
user must first create an OAuth profile with the OAuth profiles API.The OAuth profiles API permits Hybrid Data
Pipeline access to Google Analytics through the creation of an OAuth profile object. The OAuth profile object
holds OAuth access and refresh tokens that are initially supplied by Google. These tokens enable Hybrid Data
Pipeline to access Google Analytics on behalf of the user. Before a user can create an OAuth profile, he or
she must obtain these tokens from Google before executing the POST to create the OAuth profile.
OAuth profiles are created or selected for data sources, and a single OAuth profile can be used for multiple
data sources on a Google Analytics data store. Since OAuth profiles are associated with data sources, a user
must have the CreateDataSource (1) permission to create a profile.
Once the user has obtained the required access and refresh tokens from Google, he or she may proceed with
a POST operation to create an OAuth profile.
POST operation
The POST operation to create an OAuth profile will have the following syntax.
POST https://:/api/mgmt/oauthprofiles
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 209Chapter 2: Administering Hybrid Data Pipeline
Payload definition
The payload used to create the OAuth profile can be defined as follows.
{
"name": "oauth_profile_name",
"oauthAppId": oauth_application_id,
"description": "oauth_profile_description",
"accessToken": "access_token",
"refreshToken": "refresh_token"
}
Parameter Description Usage Valid Values
"name" The name of the OAuth profile. Required The name can contain only
alphanumeric characters
and the underscore
character.
"oauthAppId" The ID of the OAuth application object. Required The automatically
generated OAuth
application ID.
"description" A description of the OAuth profile. Optional A description provided by
the user.
"accessToken" The access token includes the credential information Optional A valid access token.
required to gain access to the Google Analytics API.
"refreshToken" The refresh token is used to generate new access Required A valid refresh token.
tokens.
Example
The following POST operation creates the Google_User_1 profile.
POST https://MyServer:8443/api/mgmt/oauthprofiles
Request payload
{
"name": "Google_User_1",
"oauthAppId": 17,
"description": "OAuth profile 1",
"accessToken": "111c334445e55",
"refreshToken": "222d88899966fa"
}
Response payload
Status code: 201
Successful response
{
"id": 33,
"name": "Google_User_1",
"oauthAppId": 17,
"description": "OAuth profile 1",
"accessToken": "111c334445e55",
210 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Troubleshooting
"refreshToken": "222d88899966fa"
}
What to do next
Once a user has created an OAuth profile with Google-supplied access and refresh tokens, the user can
proceed with creating a Google Analytics data source with the Data Sources API.
Using the Data Sources API to create a Google Analytics data
source
Once a user has created an OAuth profile, the user can use the Data Sources API to create a Google Analytics
data source. The user must have the CreateDataSource (1) permission to create a data source. For example,
the following POST operation creates the GoogleAnalytics_Test data source.
POST https://MyServer:8443/api/mgmt/datasources
Example request payload
{
"name": "GoogleAnalytics_Test",
"dataStore": 54,
"description": "DS for testing GA profiles",
"options": {
"OAuthProfileId": "31",
"ODataVersion": "4",
"DefaultQueryOptions": "segmentId=-1;",
"ConfigOptions": "defaultView=Progress - No Filters"
}
}
Example response payload
Status code: 201
Successful response
{
"id": 279,
"name": "GoogleAnalytics_Test",
"dataStore": 54,
"description": "DS for testing GA profiles",
"options": {
"OAuthProfileId": "17",
"ODataVersion": "4",
"AuthenticationCode": "4/ABCDEFGHiJkLMNO_PQRSTu1vWXYZ-ABc2-abC3",
"DefaultQueryOptions": "segmentId=-1;",
"ConfigOptions": "defaultView=Progress - No Filters"
}
}
Troubleshooting
This section includes several topics to help troubleshoot issues with Hybrid Data Pipeline. Contact Technical
Support for additional assistance.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 211Chapter 2: Administering Hybrid Data Pipeline
System logs
Hybrid Data Pipeline generates a number of log files to record events, activity, and other information. As
described in Data source logging on page 186, the user activity log provides the information needed to resolve
most user issues. However, some issues may warrant further investigation. In such a scenario, Progress
technical support can help you retrieve and examine other system logs, as well as the user activity log.
Hybrid Data Pipeline system logging falls into three general categories.
• Deployment logging
• Runtime logging
• On-Premises Connector logging
Note: Deployment and runtime logs can be bundled into a compressed tar file by running the
install_dir/ddcloud/getlogs.sh script. If running the server on multiple nodes, the getlogs.sh script
must be run on each host machine. The name of the tar file will have the following format.
d2c_logs.datetimestamp.tar.gz
Deployment logging
The following log files can be useful when investigating problems that occur during installation or upgrade of
the server.
/ddcloud/final.log
The final.log file provides the overall status of a Hybrid Data Pipeline server deployment. If no errors were
received during the deployment process, the file will contain the message "Hybrid Data Pipeline deployment
complete." If an error does occur during the deployment process, this file will contain a message that indicates
where the deployment script encountered the error.
/ddcloud/error.log
The error.log file provides error and warning messages received during the deployment process. If any
error is received during deployment, the error message, or exception, is logged to this file.
/ddcloud/deploy.log
The deploy.log file provides details on the deployment process. In particular, this log file contains all
parameters used in the configuration of the Hybrid Data Pipeline server, as well as any modifications to the
system database schema.
Runtime logging
Runtime logging includes Tomcat log files, Web UI log files, and service log files. Hybrid Data Pipeline server
runtime logs can be found in the following directory, and its sub-directories.
/ddcloud/das/server/logs
Tomcat log files
The following Apache Tomcat log files are written to the /ddcloud/das/server/logs
directory. These log files may be useful in diagnosing issues that occur when trying to start the Hybrid Data
Pipeline service.
• localhost.datestamp.log
• catalina.datestamp.log
• catalina.out
212 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Troubleshooting
• manager.datestamp.log
• localhost_access_log.datestamp.txt
Web UI log files
The following logs record issues that occur with the Web UI.
• install_dir/ddcloud/das/server/logs/d2c-ui/d2c-ui.log
• install_dir/ddcloud/das/server/logs/d2c-service-api/d2c-service-api.log
Service log files
A number of log files record activity that relates directly to the operation of the Hybrid Data Pipeline service.
The following table lists all service logs. (The service logs include the data source activity log described in Data
source logging on page 186.)
File name Description
[background].datestamp.log This log captures logging events from the background
threads in Hybrid Data Pipeline.
clouddb.datestamp.log This log captures exceptions from non-relational data
sources.
das-monitor.datestamp.log System statistics are logged every 60 seconds.
ddcloud.datestamp.log The log for initialization and shutdown of the servlet.
extauth.datestamp.log Logging related to any external authentication services
configured for the Hybrid Data Pipeline instance.
[filter].datestamp.log This log is used by our Tomcat filters. These include
the authentication filter, IP address whitelist filter, and
CORS filter.
[messaging].datestamp.log Logging related to the Hybrid Data Pipeline service
internal message queue.
user_data_source_info.datestamp.log The log where a specific user''s data source activity is
captured.This is the data source activity log described
in Data source logging on page 186.
onpremise.datestamp.log Activity related to making on-premises connections
using the On-Premises Connector.
[system].datestamp.log This log file captures any runtime logging events that
cannot be associated with a user.
On-Premises Connector logging
When the On-Premises Connector is being used to connect to data sources, log files are written to the installation
directory of the On-Premises Connector. For the most part these log files are analogous to the service log files
generated for each instance of a Hybrid Data Pipeline server. These files are written to the
connector_install_dir\OPDAS\server\logs\das directory.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 213Chapter 2: Administering Hybrid Data Pipeline
In addition, an opacessor.datestamp file is written to directly to the
connector_install_dir\OPDAS\server\logs directory.This log captures information on communications
between the On-Premises Connector and the Hybrid Data Pipeline server. If a problem occurs where the
On-Premises Connector is unable to communicate with the Hybrid Data Pipeline server, this log may help
identify the issue.
MySQL Community Edition troubleshooting
Hybrid Data Pipeline uses MySQL Connector/J when connecting to MySQL Community Edition. During
installation, if you opt for using MySQL Community Edition as an external database or as a data source, you
are prompted to specify the location of the MySQL Connector/J driver. This allows the installer to integrate
MySQL Connector/J into the Hybrid Data Pipeline environment. Subsequently, you may configure data sources
that connect to a MySQL CE data store and execute queries with ODBC, JDBC, and OData applications.
Since MySQL Connector/J is a separate component, it may require configuration and maintenance apart from
Hybrid Data Pipeline. Therefore, you should refer to MySQL Connector/J documentation for information on
support, functionality, and maintenance. In addition, the Progress DataDirect Hybrid Data Pipeline Installation
Guide provides a procedure for upgrading the MySQL Connector/J driver without reinstalling the Hybrid Data
Pipeline server.
Out of memory errors
Hybrid Data Pipeline automatically generates an HPROF binary heap dump when an out of memory error
occurs. The service generates the file java_date_time.hprof in the Hybrid Data Pipeline installation
directory whenever an out of memory error occurs. For example,
install_dir/ddcloud/heapdumps/java_20170906_134157.hprof. The HPROF heap dump may
contain sensitive information and should be handled securely.
Progress technical support will use the HPROF heap dump to help you analyze and resolve the out of memory
error. When an out of memory error occurs, the Hybrid Data Pipeline service should be restarted.
IP address troubleshooting
Hosted database systems may by default limit client access based on IP addresses. Therefore, to access data
using the Hybrid Data Pipeline service, you may need to modify security settings in your hosted environment
to include the public IP address Hybrid Data Pipeline uses to access the database.
For example, if you wanted Hybrid Data Pipeline to access a database hosted on Amazon RDS, you would
need to modify the default settings of your VPC security group to include the Hybrid Data Pipeline public IP
address. In a Salesforce environment, you might similarly modify Trusted IP ranges for an organization.
Refer to vendor documentation regarding client access based on IP addresses for information on how to modify
security settings.
Extracting schema files for non-relational data sources
In addition to providing connectivity to relational databases, Hybrid Data Pipeline offers connectivity to
non-relational data stores, such as Salesforce and Oracle Service Cloud web services, that expose an object
model. When creating a data source on a non-relational data store, Hybrid Data Pipeline generates map files
that expose objects and fields as tables and columns.These map files can be used to develop SQL statements,
better understand native metadata, and resolve issues in a given application environment. The Driver Files
API can be used to obtain these map files.
214 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Troubleshooting
Users can execute a GET operation on the following endpoints to obtain the files involved in the relational
mapping of the object model.
• https://:/api/mgmt/datasources/{id}/export/driverfiles
• https://:/api/mgmt/datasources/{id}/export/driverfiles/native
• https://:/api/mgmt/datasources/{id}/export/driverfiles/config
Note: To use these endpoints, the user must have either the Administrator (12) permission, or the MgmtAPI
(11) permission and ViewDataSource (2) permission on the applicable data source.
When executing a GET operation on the /export/driverfiles endpoint, the response file is streamed to
the users, who can download all the artifacts as a zip file. When executing a GET operation on the
/export/driverfiles/config and /export/driverfiles/native endpoints, the entire file is returned
as an XML response.
See also
Export driver files for data source on page 1391
Export config files for data source on page 1392
Export native file for data source on page 1393
Contacting Technical Support
Progress DataDirect offers a variety of options to meet your support needs. Please visit our Web site for more
details and for contact information:
https://www.progress.com/support
The Progress DataDirect Web site provides the latest support information through our global service network.
The SupportLink program provides access to support contact details, tools, patches, and valuable information,
including a list of FAQs for each product. In addition, you can search our Knowledgebase for technical bulletins
and other information.
When you contact us for assistance, please provide the following information:
• Your number or the serial number that corresponds to the product for which you are seeking support, or a
case number if you have been provided one for your issue. If you do not have a SupportLink contract, the
SupportLink representative assisting you will connect you with our Sales team.
• Your name, phone number, email address, and organization. For a first-time call, you may be asked for full
information, including location.
• The Progress DataDirect product and the version that you are using.
• The type and version of the operating system where you have installed your product.
• Any database, database version, third-party software, or other environment information required to understand
the problem.
• A brief description of the problem, including, but not limited to, any error messages you have received, what
steps you followed prior to the initial occurrence of the problem, any trace logs capturing the issue, and so
on. Depending on the complexity of the problem, you may be asked to submit an example or reproducible
application so that the issue can be re-created.
• A description of what you have attempted to resolve the issue. If you have researched your issue on Web
search engines, our Knowledgebase, or have tested additional configurations, applications, or other vendor
products, you will want to carefully note everything you have already attempted.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 215Chapter 2: Administering Hybrid Data Pipeline
• A simple assessment of how the severity of the issue is impacting your organization.
216 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.13
Using Hybrid Data Pipeline
For details, see the following topics:
• Logging in to the Web UI
• Using Hybrid Data Pipeline APIs
• Using the Web UI
• Creating data sources with the Web UI
• Editing, deleting, sharing, and testing data sources with the Web UI
• Configuring data sources for OData connectivity and working with data source groups
• Creating and using REST data sources
Logging in to the Web UI
Logging in to the Web UI is a two step process. First, you must enter the URL of your Hybrid Data Pipeline
instance in the address field of a supported browser. Then, you must enter your username and password at
the Hybrid Data Pipeline login screen.
A URL includes the Web protocol, a server name, and a port number. For example:
https://MyServer:8443/hdpui
The syntax for this URL can be described as follows.
webprotocol://servername:portnumber
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 217Chapter 3: Using Hybrid Data Pipeline
where
webprotocol
is the Web protocol, such as HTTP or HTTPS, used to connect to your Hybrid Data Pipeline instance.
servername
is the name of the machine hosting the Hybrid Data Pipeline service, or the name of the machine
hosting the load balancer used to route requests to the Hybrid Data Pipeline service.
portnumber
is the port number of the machine hosting the Hybrid Data Pipeline service, or the port number of
the machine hosting the load balancer used to route requests to the Hybrid Data Pipeline service.
For a standalone installation, the port number is specified as the Server Access Port during installation.
For a load balancer installation, the port number must be either 80 for http or 443 for https.Whenever
port 80 or 433 are used, it is not necessary to include the port number in the URL.
See also
Initial login with default user accounts on page 60
Using the Web UI on page 65
Using Hybrid Data Pipeline APIs on page 64
Using Hybrid Data Pipeline APIs
Hybrid Data Pipeline provides a representational state transfer (REST) application programming interface (API)
for managing Hybrid Data Pipeline connectivity service resources.
Hybrid Data Pipeline APIs use HTTP Basic Authentication to authenticate user accounts. The Hybrid Data
Pipeline user ID and password are encoded in the Authorization header.The Hybrid Data Pipeline user specified
in the Authorization header is the authenticated user.
To execute REST calls, you must pass a valid REST URL and pass a valid username and password to
authenticate with basic authentication. A REST URL must include a base and resource-specific information.
The base includes the Web protocol, a server name, and a port number, while resource-specific information
provides a path to a particular resource necessary for performing an API operation. For example:
https://MyServer:8443/api/mgmt/datasources
Note: The port number is only required if the Hybrid Data Pipeline server or load balancer is configured to use
a port other than 443 for SSL or 80 for non-SSL connections.
The syntax for a REST URL can be described as follows.
webprotocol://servername:portnumber/resourceinfo
where
webprotocol
is the Web protocol, such as HTTP or HTTPS, used to connect to your Hybrid Data Pipeline instance.
218 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Using the Web UI
servername
is the name of the machine hosting the Hybrid Data Pipeline service, or the name of the machine
hosting the load balancer used to route requests to the Hybrid Data Pipeline service.
portnumber
is the port number of the machine hosting the Hybrid Data Pipeline service, or the port number of
the machine hosting the load balancer used to route requests to the Hybrid Data Pipeline service.
For a standalone installation, the port number is specified as the Server Access Port during installation.
For a load balancer installation, the port number must be either 80 for http or 443 for https.Whenever
port 80 or 433 are used, it is not necessary to include the port number in the URL.
resourceinfo
is resource-specific information that provides a path to a particular Hybrid Data Pipeline resource
necessary to perform an API operation.
See also
Hybrid Data Pipeline API reference on page 1065
Initial login with default user accounts on page 60
User provisioning on page 112
Logging in to the Web UI on page 63
Using the Web UI
The Hybrid Data Pipeline Web UI consists of views which can be selected from the navigation bar to the left.
Access to these views, and the ability to execute operations they support, depend on permissions granted to
the user (see Permissions and default roles on page 61 for details). These views include:
• Manage Tenants
• Manage Users
• Manage Roles
• Data Sources
• SQL Editor
• Manage External Authentication
• Manage IP WhiteList
• Manage Limits
• System Configurations
See the following topics for details on these views and other features of the Web UI.
• Manage Tenants view on page 66
• Manage Users view on page 67
• Manage Roles view on page 69
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 219Chapter 3: Using Hybrid Data Pipeline
• Data Sources view on page 71
• SQL Editor view on page 77
• Manage External Authentication view on page 79
• Manage IP WhiteList view on page 80
• Manage Limits view on page 82
• System Configurations view on page 85
• User profile on page 87
• Changing your password in the Web UI on page 87
• Product information on page 86
Manage Tenants view
The Manage Tenants view provides a list of tenants with description and status information for each tenant.
With the appropriate permissions, you can add, modify, and delete tenants using this view.
The Manage Tenants view is available to users with either set of the following permissions.
• Administrator (12) permission
• WebUI (8) and TenantAPI (25) permissions, and administrative access on tenants the user administers
The following table provides permissions and descriptions for each action in the Manage Tenants view.
Note: Any user with Administrator (12) permission may perform all actions.
220 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Using the Web UI
Action Permissions Description
Create new WebUI (8) To create a new tenant, click + New Tenant. Define the
tenant tenant with settings under each of the following tabs.
TenantAPI (25)
• General tab. Enter values in the given fields.The tenant
name is required.
• Roles tab. Import roles from the parent tenant, if desired.
• Limits tab. Set limits as desired.
Edit a tenant Administrative access for the To edit a tenant, select a tenant from the list of tenants.
tenant Then, select Edit from the Actions dropdown. Edit the
tenant settings as desired.
WebUI (8)
TenantAPI (25)
Delete a tenant Administrative access for the To delete a tenant, select the tenant you want to delete.
tenant Then, select Delete from the Actions dropdown. Confirm
or cancel the delete operation in the dialog.
WebUI (8)
TenantAPI (25)
View tenant Administrative access for the To view the users of a tenant, select the tenant from the list
users tenant of tenants. Then, select View Users from the Actions
dropdown.You are directed to the Manage Users view
WebUI (8)
where a list of users belonging to the tenant is displayed.
ViewUsers (14) See Manage Users view on page 67 for details.
TenantAPI (25)
Transfer tenant Administrative access for the To transfer users from the system tenant to a child tenant,
users system tenant and the tenant select the child tenant from the list of tenants. Then, select
to which user(s) will be Transfer Users from the Actions dropdown.You are
transferred directed to the Transfer User From System Tenant page.
Select each user you want to transfer to the child tenant,
WebUI (8)
and choose a role for each user from the role dropdown.
ViewUsers (14)
ModifyUsers (15) Note: Users can only be transferred from the system tenant
to a child tenant.
TenantAPI (25)
Manage Users view
The Manage Users view provides a list of users with roles and status information for a given tenant. With the
appropriate permissions, you can add, update, and delete users using this view.
The Manage Users view is available to users with either set of the following permissions.
• Administrator (12) permission
• WebUI (8) permission, ViewUsers (14) permission, ViewRole (18) permission, and administrative access
on the tenant to which the users belong
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 221Chapter 3: Using Hybrid Data Pipeline
The following table provides permissions and descriptions for each action in the Manage Users view.
Note: Any user with Administrator (12) permission may perform all actions.
Action Permissions Description
Filter users by Administrative access to An administrator with administrative access to multiple
tenant multiple tenants tenants will have the option of selecting the tenant for which
he or she wants to view or manage users. Select the tenant
Web UI (8)
for which you want to view users from the Select Tenant
ViewUsers (14) dropdown.
ViewRole (18)
Create a new Administrative access for the To create a new user, click + New User. Define the user
user tenant with settings under each of the following tabs.
Web UI (8) • General tab. Enter values in the given fields. User name
CreateUsers (13) and role are required.
ViewUsers (14) • Authentication Setup tab. The required information
depends on the type of authentication you are using.
ViewRole (18) See Authentication on page 148 for details.
• Limits tab. Set limits as desired.
• Tenant Admin Access tab. Grant the user
administrative access to tenant(s), if desired.
222 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Using the Web UI
Action Permissions Description
Edit a user Administrative access for the To edit a user, select a user from the list of users. Then,
tenant select Edit from the Actions dropdown. Edit user settings
as desired.
WebUI (8)
ViewUsers (14)
ModifyUsers (15)
ViewRole (18)
Delete a user Administrative access for the To delete a user, select the user you want to delete. Then,
tenant select Delete from the Actions dropdown. Confirm or cancel
the delete operation in the dialog.
WebUI (8)
ViewUsers (14)
DeleteUsers (16)
ViewRole (18)
View the data Administrative access for the To view the data sources owned by a user, select a user
sources owned tenant from the list of users. Then, select Data Sources from the
by a user Actions dropdown. A list of data sources owned by the
WebUI (8)
user is displayed.
ViewUsers (14)
ViewRole (18)
OnBehalfOf (21)
Manage Roles view
The Manage Roles view provides a list of roles for a given tenant. With the appropriate permissions, you can
add, update, and delete roles using this view.
The Manage Roles view is available to users with either set of the following permissions.
• Administrator (12) permission
• WebUI (8) permission, ViewRole (18) permission, and administrative access on the tenant to which the
role(s) belong
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 223Chapter 3: Using Hybrid Data Pipeline
The following table provides permissions and descriptions for each action in the Manage Roles view.
Note: Any user with Administrator (12) permission may perform all actions.
Action Permissions Description
Filter roles by Administrative access to An administrator with administrative access to multiple
tenant multiple tenants tenants will have the option of selecting the tenant for which
he or she wants to view or manage roles. Select the tenant
Web UI (8)
for which you want to view roles from the Select Tenant
ViewRole (18) dropdown.
Create a new role Administrative access for the To create a new role, click + New Role. Provide a name
tenant and description for the new role. Then, select permissions
to define the role.
Web UI (8)
CreateRole (17)
ViewRole (18)
224 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Using the Web UI
Action Permissions Description
Edit a role Administrative access for the To edit a role, select the role from the list of roles. Then,
tenant select Edit from the Actions dropdown. Edit the role as
desired.
WebUI (8)
ViewRole (18)
ModifyRole (19)
Delete a role Administrative access for the To delete a role, select the role you want to delete. Then,
tenant select Delete from the Actions dropdown. Confirm or cancel
the delete operation in the dialog.
WebUI (8)
ViewRole (18)
DeleteRole (20)
Data Sources view
The Data Sources view allows you to manage data sources and data source groups. The Data Sources view
is available to users with either set of the following permissions.
• Administrator (12) permission
• WebUI (8) and ViewDataSource (2) permissions
The Data Sources view consists of the following pages.
• Data Sources
• Data Source Groups
Data Sources
The Data Sources page enables you to create, edit, delete, and share data source definitions. A data source
definition configures the connection between Hybrid Data Pipeline and a data store.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 225Chapter 3: Using Hybrid Data Pipeline
The following table provides permissions and descriptions for basic actions in the Data Sources page. For
detailed information on creating data sources, see Creating data sources with the Web UI on page 240 and
How to create a data source in the Web UI on page 240.
Note: With the appropriate permissions, administrators can view data sources owned by other users through
the Web UI. However, administrators cannot create, modify, delete, or share data sources owned by other
users through the Web UI. To create, modify, delete, or share data sources that belong to other users,
administrators must use Hybrid Data Pipeline APIs. See Data Sources API on page 1306 and Managing resources
on behalf of users on page 1310 for further details.
Action Permissions Description
Filter data Administrative access to An administrator with administrative access to multiple
sources by multiple tenants tenants will have the option of filtering by tenants to view
tenant data sources owned by a given user. Select the tenant in
WebUI (8)
which the user resides from the Select Tenant dropdown.
ViewDataSource (2)
ViewUsers (14)
Note: Any user with the
Administrator (12) permission
can view the data sources of
any user across all tenants.
226 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Using the Web UI
Action Permissions Description
Filter data Administrative access to the A user with administrative access to a tenant can filter data
sources by user tenant sources by user. Select the user whose data sources you
want to view from the Select User dropdown.
WebUI (8)
ViewDataSource (2)
ViewUsers (14)
Note: Any user with the
Administrator (12) permission
can view the data sources of
any user across all tenants.
Search for a data Use the search field in the upper right to filter data sources
WebUI (8)
source by name, data store, and description.
ViewDataSource (2)
Create a new WebUI (8) To create a new data source, click + New Data Source.
data source See How to create a data source in the Web UI on page
CreateDataSource (1)
240 for details.
ViewDataSource (2)
Modify a data WebUI (8) To modify a data source, select the data source from the
source list of data sources. Then, select Edit from the Actions
ViewDataSource (2)
dropdown. Edit the data source as desired.
ModifyDataSource (3)
Delete a data WebUI (8) To delete a data source, select the data source you want
source to delete. Then, select Delete from the Actions dropdown.
ViewDataSource (2)
Confirm or cancel the delete operation in the dialog.
DeleteDataSource (4)
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 227Chapter 3: Using Hybrid Data Pipeline
Action Permissions Description
Share a data Administrative access to the To share the data source:
source tenant
1. Select the data source from the list of data sources.
MgmtAPI (11)
2. Select Share from the Actions dropdown.
WebUI (8)
3. Select the user or tenant with which you want to share
ViewUsers (14) the data source.
CreateDataSource (1) 4. Select the permissions you want to grant the user or
ViewDataSource (2) tenant.
5. Click Save.
Note: Any user with the To stop sharing the data source:
Administrator (12) permission
can share a data source he 1. Select the data source from the list of data sources.
or she owns with any tenant 2. Select Share from the Actions dropdown.
across the system.
3. Select the user or tenant with which you want to stop
sharing the data source.
4. Click Remove.
Test a data WebUI (8) To run queries against a data source through the Web UI,
source select the data source. Then, select SQL Testing from the
ViewDataSource (2)
Actions dropdown.You are directed to the SQL Editor
SQLEditorWebUI (10) view where you review schema and execute a SQL
statement against the data source.
At least one of the following
query permissions:
• UseDataSourceWithJDBC
(5)
• UseDataSourceWithODBC
(6)
• UseDataSourceWithOData
(7)
Sync OData WebUI (8) OData enabled data sources maintain an OData model.
Schema The OData model should be refreshed whenever the
ViewDataSource (2)
schema of the data source has been changed. To refresh
ModifyDataSource (3)
the OData model, click the sync icon . For details, see
MgmtAPI (11) Configuring data sources for OData connectivity and
working with data source groups on page 646.
228 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Using the Web UI
Action Permissions Description
Obtain OData URI WebUI (8) To obtain the OData URI for an OData enabled data source,
ViewDataSource (2) click the link icon to copy the link associated with the
data source.
Configure data WebUI (8) To configure data source logging, click the settings icon
source logging
ViewDataSource (2) .You are directed to the Logging Settings page. Set
Logging (24) logging and privacy levels as desired.
Data Source Groups
The Data Source Groups page enables you to combine OData enabled data sources into a single data source
group.You can create, edit, delete, and share data source groups from this page.
The following table provides permissions and descriptions for basic actions in the Data Source Groups page.
For detailed information on creating OData enabled data sources and data source groups, see Configuring
data sources for OData connectivity and working with data source groups on page 646.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 229Chapter 3: Using Hybrid Data Pipeline
Action Permissions Description
Filter data source Administrative access to An administrator with administrative access to multiple
groups by tenant multiple tenants tenants will have the option of filtering by tenants to view
data source groups owned by a given user. Select the
WebUI (8)
tenant in which the user resides from the Select Tenant
ViewDataSource (2) dropdown.
ViewUsers (14)
Note: Any user with the
Administrator (12) permission
can view the data source
groups of any user across all
tenants.
Filter data source Administrative access to the To filter data source groups by user, select the user whose
groups by user tenant data source groups you want to view from the Select User
dropdown.
WebUI (8)
ViewDataSource (2)
ViewUsers (14)
Note: Any user with the
Administrator (12) permission
can view the data source
groups of any user across all
tenants.
Search for a data Use the search field in the upper right to filter data source
WebUI (8)
source group groups by name, data store, and description.
ViewDataSource (2)
Create a new WebUI (8) To create a new data source group, click + New Group.
data source See Creating a data source group on page 659 for details.
CreateDataSource (1)
group
ViewDataSource (2)
Modify a data WebUI (8) To modify a data source group, select the group. Then,
source group select Edit from the Actions dropdown. Edit the group as
ViewDataSource (2)
desired.
ModifyDataSource (3)
Delete a data WebUI (8) To delete a data source group, select the group you want
source group to delete. Then, select Delete from the Actions dropdown.
ViewDataSource (2)
Confirm or cancel the delete operation in the dialog.
DeleteDataSource (4)
230 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Using the Web UI
Action Permissions Description
Share a data Administrative access to the Note: Sharing a data source group requires that the
source group tenant member data sources of the group also be shared.
MgmtAPI (11) To share the data source group:
WebUI (8) 1. Select the data source group from the list of data
ViewUsers (14) sources.
CreateDataSource (1) 2. Select Share from the Actions dropdown.
ViewDataSource (2) 3. Select the user or tenant with which you want to share
the data source group.
Note: Any user with the 4. Select the permissions you want to grant the user or
Administrator (12) permission tenant.
can share a data source 5. Click Save.
group he or she owns with
any tenant across the To stop sharing the data source group:
system. 1. Select the data source group from the list of data
sources.
2. Select Share from the Actions dropdown.
3. Select the user or tenant with which you want to stop
sharing the data source group.
4. Click Remove.
Obtain OData URI WebUI (8) To obtain the OData URI of a data source group, click the
ViewDataSource (2) link icon to copy the link associated with the data source
group.
SQL Editor view
The SQL Editor view allows users to browse schemas4 and to query data associated with a data source.
The SQL Editor view is available to users with either set of the following permissions.
• Administrator (12) permission
• WebUI (8) permission, ViewDataSource (2) permission, SQLEditorWebUI (10) permission, and, to query
data sources, at least one of the following query permissions:
• UseDataSourceWithJDBC (5)
• UseDataSourceWithODBC (6)
• UseDataSourceWithOData (7)
4 For backend data stores that support schemas, the Metadata Exposed Schemas option can be used to restrict the exposed
schemas to a single schema. Metadata Exposed Schemas only affects the metadata that is displayed in the Schema navigation
pane. SQL queries can still be executed against tables in other schemas. For details, see the parameters topic for your data
source type.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 231Chapter 3: Using Hybrid Data Pipeline
The following table provides permissions and descriptions for actions in the SQL Editor view. To perform any
action from this view, begin by selecting a data source from the Select a Data Source dropdown.
Action Permissions Description
Explore the WebUI (8) To begin, a data source must be selected from the Select
schema and a Data Source dropdown.To view schema tables, click the
ViewDataSource (2)
tables associated a schema carrot in the Schema Tree panel. Click on a table
with the data SQLEditorWebUI (10) to view the details of a table in the Table Details panel.
source Views and procedures that reside in the schema may also
be listed.
Execute a SQL WebUI (8) To begin, a data source must be selected from the Select
statement a Data Source dropdown. To run a query against the data
ViewDataSource (2)
against the data source, enter the SQL statement in the field provided in the
source SQLEditorWebUI (10) Editor panel. Then click Execute to run the query. SQL
query results will be returned in the Results panel.
At least one of the following
query permissions:
Note: Queries made via the SQL Editor view time out after
• UseDataSourceWithJDBC 6 minutes.Therefore, to validate a data source connection,
(5) you should execute queries that require less processing
• UseDataSourceWithODBC time. For large queries, only the first 200 results are shown.
(6)
• UseDataSourceWithOData
(7)
232 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Using the Web UI
Manage External Authentication view
The Manage External Authentication view allows you to add, update, and delete an external authentication
service.The external authentication service must first be implemented by a system administrator as described
in Authentication on page 148. Once the service has been implemented, it can be added to a tenant.
The Manage External Authentication view is available to users with either set of the following permissions.
• Administrator (12) permission
• WebUI (8) permission, RegisterExternalAuthService (26) permission, and administrative access on the
given tenant
The following table provides permissions and descriptions for actions in the Manage External Authentication
view.
Note: Any user with Administrator (12) permission may perform all actions.
Action Permissions Description
Filter Administrative access to An administrator with administrative access to multiple
authentication multiple tenants tenants will have the option of selecting the tenant for which
services by he or she wants to view or manage external authentication
WebUI (8)
tenant services. Select the tenant for which you want to view
RegisterExternalAuthService authentication services from the Select Tenant dropdown.
(26)
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 233Chapter 3: Using Hybrid Data Pipeline
Action Permissions Description
Register an Administrative access for the To register an authentication service with the tenant, click
external tenant + New Service. Provide the following information, and then
authentication click Save.
WebUI (8)
service
RegisterExternalAuthService • The name and description of the service
(26) • The service type
• For Java plugin service provide:
• The class name
• Attributes
• For LDAP service provide:
• Target URL
• Service Authentication
• Security Principal
• Other Attributes
Edit an external Administrative access for the To edit an authentication service, select the service. Then,
authentication tenant select Edit from the Actions dropdown. Edit the service as
service desired.
WebUI (8)
RegisterExternalAuthService
(26)
Delete an Administrative access for the To delete a service, select the service you want to delete.
external tenant Then, select Delete from the Actions dropdown. Confirm
authentication or cancel the delete operation in the dialog.
WebUI (8)
service
RegisterExternalAuthService
(26)
Manage Limits view
The Manage Limits view allows you to view and set limits for features such as throttling, logging, and SQL
auditing.
In the Manage Limits view, limits can be set at either the system or tenant level. System limits apply to behavior
across Hybrid Data Pipeline and override default behavior, while tenant limits apply to the resources of a given
tenant and override default behavior and system limits. Most limits can only be configured at the system level.
However, some limits, such as MaxFetchRows and MaxConcurrentQueries, can be configured at any level.
Note:
• Tenant limits can also be set via the Manage Tenants view on page 66.
• Limits can also be specified for users and data sources. User limits can be set either through the Manage
Users view on page 67 or the Limits API on page 1099. User limits override default, system, and tenant limits.
Data source limits can only be set via the Limits API on page 1099. Data source limits override all other limits.
234 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Using the Web UI
The Manage Limits view is available to users with either set of the following permissions.
• Administrator (12) permission
• WebUI (8) permission, Limits (27) permission, and administrative access on the given tenant
The table below provides descriptions for limits that may be set via the Manage Limits view.
Note:
• Throttling limits can be set either for the system tenant or any child tenant across the system.
• Log Management, Data Usage Meter, and Security limits can only be set for the system.
• SQL Auditing can be set for the system tenant or for a child tenant. However, the SQLAuditingRetentionDays
and SQLAuditingMaxAge limits may only be set at the system level.
• To set system limits, the system tenant must be selected from the Tenant dropdown. The user must have
the Administrator (12) permission.
• To set tenant limits, the child tenant must be selected from the Tenant dropdown. The user must have
either the Administrator (12) permission, or WebUI (8), Limits (27) permissions, and administrative access
on the given tenant.
Category Limit Description
Throttling MaxFetchRows Maximum number of rows allowed to be fetched
for a single query.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 235Chapter 3: Using Hybrid Data Pipeline
Category Limit Description
Throttling ODataMaxConcurrentPagingQueries Maximum number of concurrent active queries
per data source that cause paging to be
invoked.
Throttling TransactionTimeout The number of seconds the system allows a
transaction to be idle before rolling it back.
Throttling XdbcMaxResponse Approximate allowed maximum size of
JDBC/ODBC HTTP result data in KB.
Throttling ODataMaxConcurrentRequests Maximum number of simultaneous OData
requests allowed per user.
Throttling ODataMaxWaitingRequests Maximum number of waiting OData requests
allowed per user.
Log Management LogRetentionDays Number of days log files should be retained.
Log Management MonitorRetentionDays Number of days monitor details should be
retained
Data Usage Meter UserMeterRetentionDays Number of days user meter details should be
retained
Data Usage Meter UserMeterWriteInterval 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
Data Usage Meter UserMeterMaxAge The number seconds the system waits before
writing out meter records. A lower setting will
result in the rows written to meter table to occur
more frequently
Security PasswordLockoutInterval The duration, in seconds, for counting the
number of consecutive failed authentication
attempts.
Security PasswordLockoutLimit The number of consecutive failed authentication
attempts that are allowed before locking the
user account.
Security PasswordLockoutPeriod The duration, in seconds, for which a user
account will not be allowed to authenticate to
the system when the PasswordLockoutLimit is
reached.
Security OAuthAccessTokenDuration The duration, in minutes, for which a Access
token is valid.
236 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Using the Web UI
Category Limit Description
Security OAuthAccessTokenCacheSize Number of oauth access tokens to be cached
in memory for OAuth Authentication. By default
up to 2000 tokens will be cached in memory.
Security CORSBehavior 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.
SQL Auditing SQLAuditing Configuration parameter for SQL statement
auditing. Setting the value to 0 disables SQL
statement auditing. Setting the value to 1
enables SQL statement auditing.
SQL Auditing SQLAuditingRetentionDays The number of days auditing records are
retained in the SQLAudit table.
SQL Auditing SQLAuditingMaxAge 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.
System Configurations view
The System Configurations view can be used to set a number of configurations across the Hybrid Data
Pipeline system. This view is only available to users with the Administrator (12) permission (system
administrators).
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 237Chapter 3: Using Hybrid Data Pipeline
The following table provides descriptions of the options available via the System Configurations view.
Option Permissions Description
Delimiter Administrator (12) Specifies a delimiter to be used between the user
name and authentication service name. In the following
example, the | symbol delimits user437 and the LDAP1
service: user437|LDAP1. See Authentication on page
148 for details.
Secure Password Change Administrator (12) Specifies whether the current password is required in
order to update the password of the logged-in user.
The default value is ON.
Default OData Version Administrator (12) Sets the default OData version for new data sources.
Default Entity Name Administrator (12) Sets the default entity name mode for OData V4 data
sources. For details, see Configuring data sources for
OData connectivity and working with data source
groups on page 646.
JDBC DataStore Administrator (12) Enables the third party JDBC data store feature. The
default value is ON. For details, see Using third party
JDBC drivers with Hybrid Data Pipeline on page 197.
Password Policy Administrator (12) Enables the default password policy.The default value
is ON.
238 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Using the Web UI
Option Permissions Description
System Monitor Details Administrator (12) Determines how the system persists monitor details.
IP WhiteList Filtering Administrator (12) Enables the whitelist filtering feature.The default value
is ON. See Implementing IP address whitelists on page
169 for details.
Product information
Users can access product information by clicking the question mark icon and selecting About.
The About Hybrid Data Pipeline window displays installation and version information.
User profile
The down arrow next to the username in the upper right hand corner of the Web UI opens a dropdown menu.
Users can change their passwords by selecting the Change Password item, or log out by selecting the Log
Out item.
Changing your password in the Web UI
Take the following steps to change your password in the WebUI.
Note: You can also change your password using the Change Password API.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 239Chapter 3: Using Hybrid Data Pipeline
1. Select the arrow next to your username in the right hand corner of the Web UI.
2. Click Change Password to open the Change Password window.
3. Enter your current password in the Current Password field.
4. Enter your new password in the New Password field.
Note: The password must be a maximum of 32 characters in length.
5. Retype your new password in the Confirm Password field.
6. Click SAVE.
Creating data sources with the Web UI
Hybrid Data Pipeline enables access to a variety of data stores, such as Apache Hive, DB2, SQL Server,
Oracle, and Salesforce. To access data residing on a backend data store, Hybrid Data Pipeline administrators
or users must create a Hybrid Data Pipeline data source. A Hybrid Data Pipeline data source can be created
by specifying parameters associated with a specific data store. The information provided in the data source
allows the service to connect to the backend data store. A data source can be created with the Web UI or the
Data Sources API.
Note: While administrators can create their own data sources with the Web UI, they cannot create or modify
data sources on behalf of users in the Web UI. In addition, administrators cannot set permissions on data
sources with the Web UI. To create data sources on behalf of a user or set permissions on data sources, an
administrator must execute API operations with the Data Sources API. See User provisioning on page 112 for
use cases with example API operations.
Hybrid Data Pipeline also supports OData access to backend data stores.This access is enabled by specifying
the appropriate parameters and configuring an OData schema under the OData tab. OData access occurs
over HTTPS (or HTTP) and does not require a driver to be installed locally. Each OData-enabled data source
exposes an OData schema. The name of this data source becomes part of the resource path in the OData
URI. A data source group can be created to enable OData access from multiple schemas using a single resource
path. A data source group can contain references to multiple data sources that have been enabled for OData.
These data sources can be specified when the group is created, or added later. For more information, see
Configuring data sources for OData connectivity and working with data source groups on page 646.
In addition, Hybrid Data Pipeline supports SQL read-only access to JSON-based REST services through the
Autonomous REST Connector.When you create a REST data source, the connector creates a relational model
of the returned JSON data and translates SQL statements to REST API requests.You can create and manage
REST data sources either through the Web UI or through the Hybrid Data Pipeline API. For details, see Creating
and using REST data sources on page 661 and Autonomous REST Connector parameters on page 274.
The following topics provide instructions on how to create a data source using the Web UI. The first topic
provides step-by-step instructions for creating a data source. The subsequent topics describe the parameters
that can be used to define a data source for each data store supported by Hybrid Data Pipeline.
How to create a data source in the Web UI
A Hybrid Data Pipeline data source contains the information that allows the service to connect to the backend
data store.
240 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Take the following steps to create a Hybrid Data Pipeline data source.
Note: These steps apply generally to all data stores, but the available options differ by data store type. Consult
the topics that follow for information specific to supported data stores.
1. Navigate to the Data Sources view by clicking the data sources icon .
2. Click + NEW DATA SOURCE to open the Data Stores page.
3. From the list of data stores, click data store to which you want to connect.
The Create Data Source page opens.
4. Provide required information in the fields provided under each of the tabs.
5. Click Save to create the data source definition.
6. Click TEST to establish a connection with the data store.
If you create an OData-enabled data source, the icon beside it indicates the status of the schema map generation.
The following table provides details of the icons:
Icon Description
The synchronization of the schema map is in progress.
The number denotes the percentage of synchronization
completed.
The schema map was synchronized successfully.
The schema map was synchronized successfully, but
there are some table/column warnings. Hybrid Data
Pipeline allows users to know the details of the
tables/columns and/or functions that were dropped
while generating the OData Model for a given schema
map of a Data Source.The number of warnings shown
is limited to 100. If there are more than 100
errors/warnings, you can use the Schema API on page
1441 to retrieve table and column warnings.
Errors occurred while synchronizing the schema map.
You must address the errors and synchronize the
schema map again. Hybrid Data Pipeline allows users
to know the details of the tables and/or columns that
were dropped while generating the OData Model for
a given schema map of a Data Source. The number
of errors/warnings shown is limited to 100. If there are
more than 100 errors/warnings, you can use the
Schema API on page 1441 to retrieve table and column
warnings.
You must synchronize the schema map again.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 241Chapter 3: Using Hybrid Data Pipeline
Supported data stores
The parameters used to create a Hybrid Data Pipeline data source vary across supported data stores. See the
topics listed in this table to review parameters specific to supported data stores.
Note:
• For connectivity using a third party JDBC driver, see Using third party JDBC drivers with Hybrid Data Pipeline
on page 197 and JDBC parameters for third party drivers on page 307.
• For connectivity to REST services, see Creating and using REST data sources on page 661 and Autonomous
REST Connector parameters on page 274.
Data store Supported Connection Parameters
Amazon Redshift Amazon Redshift parameters on page 243
Apache Hadoop Hive Apache Hadoop Hive parameters on page 258
Autonomous REST Autonomous REST Connector parameters on page 274
Connector
DB2 DB2 parameters on page 288
JDBC third party JDBC parameters for third party drivers on page 307
Google Analytics Google Analytics parameters on page 313
Google BigQuery Google BigQuery parameters
Greenplum Greenplum parameters on page 357
Informix Informix parameters on page 371
Microsoft Dynamics Microsoft Dynamics CRM parameters on page 382
CRM
Microsoft SQL Server Microsoft SQL Server parameters on page 395
MySQL Community MySQL Community Edition parameters on page 420
Edition
MySQL Enterprise MySQL Enterprise parameters on page 426
Oracle Oracle parameters on page 440
Oracle Marketing Cloud Oracle Marketing Cloud (Eloqua) parameters on page 470
(Eloqua)
Oracle Sales Cloud Oracle Sales Cloud parameters on page 484
Oracle Service Cloud parameters on page 496
Oracle Service Cloud
242 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Data store Supported Connection Parameters
PostgreSQL PostgreSQL parameters on page 510
Progress OpenEdge Progress OpenEdge parameters on page 525
Progress Rollbase Progress Rollbase parameters on page 537
Salesforce-based data
sources • Salesforce parameters on page 549
• FinancialForce parameters on page 568
• ServiceMax parameters on page 584
• Veeva CRM parameters on page 600
SugarCRM SugarCRM parameters on page 616
Sybase ASE Sybase parameters on page 629
Amazon Redshift parameters
The following tables describe parameters available on the tabs of an Amazon Redshift Data Source dialog:
• General tab
• Security tab
• OData tab
• Advanced tab
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 243Chapter 3: Using Hybrid Data Pipeline
General tab
244 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Table 2: General tab connection parameters for Amazon Redshift
Field Description
Data Source
A unique name for the data source. Data source names can contain only alphanumeric
Name*
characters, underscores, and dashes.
Description
A general description of the data source.
User Id
The login credentials for your Amazon Redshift server.
Hybrid Data Pipeline uses this information to connect to the data store. The administrator
of the server must grant permission to a user with these credentials to access the data
store and the target data.
Note: You can save the Data Source definition without specifying the login credentials.
In that case, when you test the Data source connection, you will be prompted to specify
these details. Applications using the connectivity service will have to supply the data store
credentials (if they are not saved in the Data Source) in addition to the Data Source name
and the credentials for the Hybrid Data Pipeline account.
Password
A case-sensitive password that is used to connect to your Amazon Redshift database. A
password is required if user ID/password authentication is enabled on your database.
Contact your system administrator to obtain your password.
Note: By default, the password is encrypted.
By default, the characters in the Password field you type are not shown. If you want the
password to be displayed in clear text, click the eye icon. Click the icon again to
conceal the password.
Server Name* Specifies either the IP address in IPv4 or IPv6 format, or a combination of the two, or the
server name (if your network supports named servers) of the primary database server, for
example, RedshiftServer or 122.23.15.12
Valid Values:
server_name | IP_address
where:
server_name
is the name of the server to which you want to connect.
IP_address
is the IP address of the server to which you want to connect.
Port Number The port number of the Amazon Redshift server.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 245Chapter 3: Using Hybrid Data Pipeline
Field Description
Database*
The name of the database that is running on the database server.
Security tab
246 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Table 3: Security tab Connection Parameters for Amazon Redshift
Field Description
Encryption Method
Determines whether data is encrypted and decrypted when transmitted over the network
between the Hybrid Data Pipeline connectivity service and the database server.
Valid Values:
noEncryption | SSL | requestSSL
If set to noEncryption, data is not encrypted or decrypted.
If set to SSL, data is encrypted using SSL. If the database server does not support SSL,
the connection fails and the Hybrid Data Pipeline connectivity service throws an exception.
If set to requestSSL, the login request and data is encrypted using SSL. If the database
server does not support SSL, the connectivity service establishes an unencrypted
connection.
Note:
• When SSL is enabled, the following properties also apply:
Host Name In Certificate
ValidateServerCertificate
Crypto Protocol Version
Default: SSL
Crypto Protocol
Specifies a protocol version or a comma-separated list of the protocol versions that can
Version
be used in creating an SSL connection to the data source. If the protocol (or none of the
protocols) is not supported by the database server, the connection fails and the connectivity
service returns an error.
Valid Values:
cryptographic_protocol [[, cryptographic_protocol ]...]
where:
cryptographic_protocol
is one of the following cryptographic protocols:
TLSv1 | TLSv1.1 | TLSv1.2
The client must send the highest version that it supports in the client hello.
Note: Good security practices recommend using TLSv1.2 if your data source supports
that protocol version, due to known vulnerabilities in the earlier protocols.
Example
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 247Chapter 3: Using Hybrid Data Pipeline
Field Description
Your security environment specifies that you can use TLSv1.1 and TLSv1.2. When you
enter the following values, the connectivity service sends TLSv1.2 to the server first.
TLSv1.1,TLSv1.2
Default: TLSv1, TLSv1.1, TLSv1.2
248 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
Host Name In
Specifies a host name for certificate validation when validation is enabled (Validate Server
Certificate
Certificate=ON). This optional parameter provides additional security against
man-in-the-middle (MITM) attacks by ensuring that the server that the Hybrid Data Pipeline
connectivity service is connecting to is the server that was requested.
Valid Values:
host_name | #SERVERNAME#
where host_name is a valid host name.
If host_name is specified, the Hybrid Data Pipeline connectivity service compares the
specified host name to the DNSName value of the SubjectAlternativeName in the
certificate. If a DNSName value does not exist in the SubjectAlternativeName or if the
certificate does not have a SubjectAlternativeName, the Hybrid Data Pipeline connectivity
service compares the host name with the Common Name (CN) part of the certificate’s
Subject name. If the values do not match, the connection fails and the connectivity service
throws an exception.
If #SERVERNAME# is specified, the Hybrid Data Pipeline connectivity service compares
the server name that is specified in the connection URL or data source of the connection
to the DNSName value of the SubjectAlternativeName in the certificate. If a DNSName
value does not exist in the SubjectAlternativeName or if the certificate does not have a
SubjectAlternativeName, the Hybrid Data Pipeline connectivity service compares the host
name to the CN part of the certificate’s Subject name. If the values do not match, the
connection fails and the connectivity service throws an exception. If multiple CN parts are
present, the connectivity service validates the host name against each CN part. If any
one validation succeeds, a connection is established.
Default: Empty string
Validate Server
Certificate
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 249Chapter 3: Using Hybrid Data Pipeline
Field Description
Determines whether the Hybrid Data Pipeline connectivity service validates the certificate
that is sent by the database server when SSL encryption is enabled (Encryption
Method=SSL). When using SSL server authentication, any certificate that is sent by the
server must be issued by a trusted Certificate Authority (CA). Allowing the Hybrid Data
Pipeline connectivity service to trust any certificate that is returned from the server even
if the issuer is not a trusted CA is useful in test environments because it eliminates the
need to specify truststore information on each client in the test environment.
Valid Values:
ON | OFF
If set to ON, the Hybrid Data Pipeline connectivity service validates the certificate that is
sent by the database server. Any certificate from the server must be issued by a trusted
CA in the truststore file. If the Host Name In Certificate parameter is specified, the Hybrid
Data Pipeline connectivity service also validates the certificate using a host name. The
Host Name In Certificate parameter is optional and provides additional security against
man-in-the-middle (MITM) attacks by ensuring that the server the connectivity service is
connecting to is the server that was requested.
If set to OFF, the Hybrid Data Pipeline connectivity service does not validate the certificate
that is sent by the database server. The connectivity service ignores any truststore
information that is specified by the Java system properties. Truststore information is
specified using Java system properties.
Default: ON
250 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
OData tab
Table 4: OData tab connection parameters for Amazon Redshift
Field Description
OData Version
Enables you to choose from the supported OData versions. OData configuration made
with one OData version will not work if you switch to a different OData version. If you want
to maintain the data source with different OData versions, you must create different data
sources for each of them.
OData Name
Enables you to set the case for entity type, entity set, and property names in OData
Mapping Case
metadata.
Valid Values: Uppercase | Lowercase | Default
When set to Uppercase, the case changes to all uppercase.
When set to Lowercase, the case changes to all lowercase.
When set to Default, the case does not change.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 251Chapter 3: Using Hybrid Data Pipeline
Field Description
OData Access URI
Specifies the base URI for the OData feed to access the data source, for example,
https://example.com:8443/api/odata4/.You can copy
the URI and paste it into your application''s OData configuration.
The URI contains the case-insensitive name of the data source to connect to, and the
query that you want to execute. This URI is the OData Service Root URI for the OData
feed. The Service Document for the data source is returned by issuing a GET request to
the data source''s service root.
The OData Service Document returns the names of the entities exposed by the Data
Source OData service. To get details such as the properties of the entities exposed, the
data types for those properties and the relationships between entities, the Service Metadata
Document can be fetched by adding /$metadata to the service root URI.
Schema Map
Enables OData support. If a schema map is not defined, the OData API cannot be used
to access the data store using this data source definition. Use the Configure Schema
editor to select the tables/columns to expose through OData.
See Configuring data sources for OData connectivity and working with data source groups
on page 646 for more information.
Page Size
Determines the number of entities returned on each page for paging controlled on the
server side. On the client side, requests can use the $top and $skip parameters to
control paging. In most cases, server side paging works well for large data sets. Client
side pagination works best with a smaller data sets where it is not as expensive to fetch
subsequent pages.
Valid Values: 0 | n
where n is an integer from 1 to 10000.
When set to 0, the server default of 2000 is used.
Default: 0
Refresh Result
Controls what happens when you fetch the first page of a cached result when using Client
Side Paging. Skip must be omitted or set to 0.You can use the cached copy of that first
page, or you can re-execute the query to get a new result, discarding the previously
cached result. Re-executing the query is useful when the data being fetched may change
between two requests for the first page. Using the cached result is useful if you are paging
back and forth through results that are not expected to change.
Valid Values:
When set to 0, the OData service caches the first page of results.
When set to 1, the OData service re-executes the query.
Default: 1
252 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
Inline Count Mode
Specifies how the connectivity service satisfies requests that include the $count parameter
when it is set to true (for OData version 4) or the $inlinecount parameter when it is
set to allpages (for OData version 2). These requests require the connectivity service
to include the total number of entities that are defined by the OData query request. The
count must be included in the first page in server-driven paging and must be included in
every page when using client-driven paging.
The optimal setting depends on the data store and the size of results. The OData service
can run a separate query using the count(*) aggregate to get the count, before running
the query used to generate the entities. In very large results, this approach can often lead
to the first page being returned faster. Alternatively, the OData service can fetch the entire
result before returning the first page. This approach works well for small results and for
data stores that cannot optimize the count(*) aggregate; however, it may have a longer
initial response time for the first page if the result is large.
Valid Values:
When set to 1, the connectivity service runs a separate count(*) aggregate query to
get the count of entities before executing the query to return results. In very large results,
this approach can often lead to the first page being returned faster.
When set to 2, the connectivity service fetches all entities before returning the first page.
For small results, this approach is always faster. However, the initial response time for
the first page may be longer if the result is large.
Default: 1
Top Mode
Indicates how requests typically use $top and $skip for client side pagination, allowing
the service to better anticipate how to process queries.
Valid Values:
Set to 0 when the application generally uses $top to limit the size of the result and rarely
attempts to get additional entities by combining $top and $skip.
Set to 1 when the application uses $top as part of client-driven paging and generally
combines $top and $skip to page through the result.
Default: 0
OData Read Only
Controls whether write operations can be performed on the OData service.Write operations
generate a 405 Method Not Allowed response if this option is enabled.
Valid Values:
ON | OFF
When ON is selected, OData access is restricted to read-only mode.
When OFF is selected, write operations can be performed on the OData service.
Default: OFF
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 253Chapter 3: Using Hybrid Data Pipeline
Advanced tab
254 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Table 5: Advanced tab connection parameters for Amazon Redshift
Field Description
Catalog Options Determines which type of metadata information is included in result sets when an application
calls DatabaseMetaData methods.To include multiple types of metatdata information, add
the sum of the values that you want to include. In this case, specify 6 to query database
catalogs for column information and to emulate getColumns() calls.
Valid Values:
2 | 4
If set to 2, the Hybrid Data Pipeline connectivity service queries database catalogs for
column information.
If set to 4, a hint is provided to the connectivity service to emulate getColumns() calls using
the ResultSetMetaData object instead of querying database catalogs for column information.
Using emulation can improve performance because the SQL statement that is formulated
by the emulation is less complex than the SQL statement that is formulated using
getColumns(). The argument to getColumns() must evaluate to a single table. If it does
not, because of a wildcard or null value, for example, the Hybrid Data Pipeline connectivity
service reverts to the default behavior for getColumns() calls.
Default: 2
Extended Options Specifies a semi-colon separated list of connection options and their values. Use this
configuration option to set the value of undocumented connection options that are provided
by Progress DataDirect technical support.You can include any valid connection option in
the Extended Options string, for example:
Database=Server1;UndocumentedOption1=value[;UndocumentedOption2=value;]
If the Extended Options string contains option values that are also set in the setup dialog,
the values of the options specified in the Extended Options string take precedence.
Valid Values:
string
Default:none
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 255Chapter 3: Using Hybrid Data Pipeline
Field Description
Initialization
A semicolon delimited set of commands to be executed on the data store after Hybrid Data
String
Pipeline has established and performed all initialization for the connection. If the execution
of a SQL command fails, the connection attempt also fails and Hybrid Data Pipeline returns
an error indicating which SQL commands failed.
Syntax:
command[[; command]...]
Where:
command
is a SQL command. Multiple commands must be separated by semicolons. In addition, if
this property is specified in a connection URL, the entire value must be enclosed in
parentheses when multiple commands are specified. For example, assuming a schema
name of SFORCE:
InitializationString=(REFRESH SCHEMA SFORCE)
The default is an empty string.
Login Timeout
The amount of time, in seconds, that the Hybrid Data Pipeline connectivity service waits
for a connection to be established before timing out the connection request.
Valid Values:
0 | x
where x is a positive integer that represents a number of seconds.
If set to 0, the connectivity service does not time out a connection request.
If set to x, the connectivity service waits for the specified number of seconds before returning
control to the application and throwing a timeout exception.
Default: 30
Max Pooled
The maximum number of prepared statements to cache for this connection. If the value of
Statements
this property is set to 20, the connectivity service caches the last 20 prepared statements
that are created by the application.
256 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
Query Timeout
Sets the default query timeout (in seconds) for all statements created by a connection.
Valid Values:
-1 | 0 | x
If set to -1, the query timeout functionality is disabled.The Hybrid Data Pipeline connectivity
service silently ignores calls to the Statement.setQueryTimeout() method.
If set to 0, the default query timeout is infinite (the query does not time out).
If set to x, the Hybrid Data Pipeline connectivity service uses the value as the default
timeout for any statement that is created by the connection.To override the default timeout
value set by this connection option, call the Statement.setQueryTimeout() method to set
a timeout value for a particular statement.
Default: 0
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 257Chapter 3: Using Hybrid Data Pipeline
Field Description
Resultset Meta Determines whether the Hybrid Data Pipeline connectivity service returns table name
Data Options information in the ResultSet metadata for Select statements.
Valid Values:
0 | 1
If set to 0 and the ResultSetMetaData.getTableName() method is called, the Hybrid Data
Pipeline connectivity service does not perform additional processing to determine the
correct table name for each column in the result set. The getTableName() method may
return an empty string for each column in the result set.
If set to 1 and the ResultSetMetaData.getTableName() method is called, the Hybrid Data
Pipeline connectivity service performs additional processing to determine the correct table
name for each column in the result set. The connectivity service returns schema name
and catalog name information when the ResultSetMetaData.getSchemaName() and
ResultSetMetaData.getCatalogName() methods are called if the Hybrid Data Pipeline
connectivity service can determine that information.
Default: 0
Metadata
Restricts the metadata exposed by Hybrid Data Pipeline to a single schema.The metadata
Exposed
exposed in the SQL Editor, the Configure Schema Editor, and third party applications will
Schemas
be limited to the specified schema. JDBC, OData, and ODBC metadata calls will also be
restricted. In addition, calls made with the Schema API will be limited to the specified
schema.
Warning: This functionality should not be regarded as a security measure. While
the Metadata Exposed Schemas option restricts the metadata exposed by Hybrid
Data Pipeline to a single schema, it does not prevent queries against other schemas
on the backend data store. As a matter of best practice, permissions should be
set on the backend data store to control the ability of users to query data.
Valid Values
Where:
is the name of a valid schema on the backend data store.
Default: No schema is specified. Therefore, all schemas are exposed.
See the steps for:
How to create a data source in the Web UI on page 240
Apache Hadoop Hive parameters
The following tables describe parameters available on the tabs of an Apache Hadoop Hive On-Premise Data
Source dialog:
258 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
• General tab
• Security tab
• OData tab
• Advanced tab
General tab
Table 6: General tab connection parameters for Apache Hadoop Hive
Field Description
Data Source
A unique name for the data source. Data source names can contain only alphanumeric
Name
characters, underscores, and dashes.
Description
A general description of the data source.
User ID
The User ID for the Apache Hive account used to establish the connection to the Apache
Hive server.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 259Chapter 3: Using Hybrid Data Pipeline
Field Description
Password
A password for the Apache Hive account that is used to establish the connection to your
Apache Hive server.
Note: By default, the password is encrypted.
By default, the characters in the Password field you type are not shown. If you want the
password to be displayed in clear text, click the eye icon. Click the icon again to
conceal the password.
Server Name
Specifies either the server name (if your network supports named servers) or the IP address
of the primary Apache Hive server machine, for example, MyHiveServer or
122.23.15.12.
Port Number The port number of the Apache Hive server to connect to.
Database
The name of the database that is running on the database server.
Connector ID
The unique identifier of the On-Premise Connector that is to be used to access the
on-premise data source. Select the Connector that you want to use from the dropdown.
The identifier can be a descriptive name, the name of the machine where the Connector
is installed, or the Connector ID for the Connector.
If you have not installed an On-Premise Connector, and no Connectors have been shared
with you, this field and drop-down list are empty.
If you own multiple Connectors that have the same name, for example, Production, an
identifier is appended to each Connector, for example, Production_dup0 and
Production_dup1. If the Connectors in the dropdown were shared with you, the owner''s
name is appended, for example, Production(owner1) and Production(owner2).
260 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Security tab
Table 7: Security tab connection parameters for Apache Hadoop Hive
Field Description
Encryption Method
Determines whether data is encrypted and decrypted when transmitted over the network
between the Hybrid Data Pipeline connectivity service and the database server.
Valid Values:
noEncryption | SSL
If set to noEncryption, data is not encrypted or decrypted.
If set to SSL, data is encrypted using SSL. If the database server does not support SSL,
the connection fails and the Hybrid Data Pipeline connectivity service throws an exception.
Note:
• Connection hangs can occur when the Hybrid Data Pipeline connectivity service is
configured for SSL and the database server does not support SSL.You may want to
set a login timeout using the Login Timeout parameter to avoid problems when
connecting to a server that does not support SSL.
• When SSL is enabled, the following parameters also apply:
Host Name In Certificate
Validate Server Certificate
Crypto Protocol Version
Default: noEncryption
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 261Chapter 3: Using Hybrid Data Pipeline
Field Description
Crypto Protocol
Specifies a protocol version or a comma-separated list of the protocol versions that can
Version
be used in creating an SSL connection to the data source. If the protocol (or none of the
protocols) is not supported by the database server, the connection fails and the connectivity
service returns an error.
Valid Values:
cryptographic_protocol [[, cryptographic_protocol ]...]
where:
cryptographic_protocol
is one of the following cryptographic protocols:
TLSv1 | TLSv1.1 | TLSv1.2
The client must send the highest version that it supports in the client hello.
Note: Good security practices recommend using TLSv1.2 if your data source supports
that protocol version, due to known vulnerabilities in the earlier protocols.
Example
Your security environment specifies that you can use TLSv1.1 and TLSv1.2. When you
enter the following values, the connectivity service sends TLSv1.2 to the server first.
TLSv1.1,TLSv1.2
Default: TLSv1, TLSv1.1, TLSv1.2
262 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
Host Name In
Specifies a host name for certificate validation when SSL encryption is enabled (Encryption
Certificate
Method=SSL) and validation is enabled (Validate Server Certificate=ON). This optional
parameter provides additional security against man-in-the-middle (MITM) attacks by
ensuring that the server that the Hybrid Data Pipeline connectivity service is connecting
to is the server that was requested.
Valid Values:
host_name | #SERVERNAME#
where host_name is a valid host name.
If host_name is specified, the Hybrid Data Pipeline connectivity service compares the
specified host name to the DNSName value of the SubjectAlternativeName in the
certificate. If a DNSName value does not exist in the SubjectAlternativeName or if the
certificate does not have a SubjectAlternativeName, the connectivity service compares
the host name with the Common Name (CN) part of the certificate’s Subject name. If the
values do not match, the connection fails and the connectivity service throws an exception.
If #SERVERNAME# is specified, the Hybrid Data Pipeline connectivity service compares
the server name that is specified in the connection URL or data source of the connection
to the DNSName value of the SubjectAlternativeName in the certificate. If a DNSName
value does not exist in the SubjectAlternativeName or if the certificate does not have a
SubjectAlternativeName, the connectivity service compares the host name to the CN part
of the certificate’s Subject name. If the values do not match, the connection fails and the
connectivity service throws an exception. If multiple CN parts are present, the connectivity
service validates the host name against each CN part. If any one validation succeeds, a
connection is established.
Default: Empty string
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 263Chapter 3: Using Hybrid Data Pipeline
Field Description
Validate Server
Determines whether the Hybrid Data Pipeline connectivity service validates the certificate
Certificate
that is sent by the database server when SSL encryption is enabled (Encryption
Method=SSL). When using SSL server authentication, any certificate that is sent by the
server must be issued by a trusted Certificate Authority (CA). Allowing the connectivity
service to trust any certificate that is returned from the server even if the issuer is not a
trusted CA is useful in test environments because it eliminates the need to specify truststore
information on each client in the test environment.
Valid Values:
ON | OFF
If ON is selected, the Hybrid Data Pipeline connectivity service validates the certificate
that is sent by the database server. Any certificate from the server must be issued by a
trusted CA in the truststore file.
If OFF is selected, the Hybrid Data Pipeline connectivity service does not validate the
certificate that is sent by the database server. The connectivity service ignores any
truststore information that is specified by the Java system properties.
Default: ON
ImpersonateUser
Specifies the user ID used for Impersonation. When Impersonation is enabled on the
server (hive.server2.enable.doAs=true), this value determines your identity and
access rights to Hadoop resources when executing queries. If Impersonation is disabled,
you will execute queries as the user who initiated the HiveServer2 process.
OData tab
The following table describes the controls on the OData tab. For information on using the Configure Schema
editor, see Configuring data sources for OData connectivity and working with data source groups on page 646.
For information on formulating OData requests, see Formulating queries with OData Version 2 on page 868.
264 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Table 8: OData tab connection parameters for Apache Hadoop Hive
Field Description
OData Version
Enables you to choose from the supported OData versions. OData configuration made
with one OData version will not work if you switch to a different OData version. If you want
to maintain the data source with different OData versions, you must create different data
sources for each of them.
OData Name
Enables you to set the case for entity type, entity set, and property names in OData
Mapping Case
metadata.
Valid Values: Uppercase | Lowercase | Default
When set to Uppercase, the case changes to all uppercase.
When set to Lowercase, the case changes to all lowercase.
When set to Default, the case does not change.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 265Chapter 3: Using Hybrid Data Pipeline
Field Description
OData Access URI
Specifies the base URI for the OData feed to access your data source, for example,
https://hybridpipe.operations.com/api/odata/.You
can copy the URI and paste it into your application''s OData configuration.
The URI contains the case-insensitive name of the data source to connect to, and the
query that you want to execute. This URI is the OData Service Root URI for the OData
feed. The Service Document for the data source is returned by issuing a GET request to
the data source''s service root.
The OData Service Document returns the names of the entities exposed by the Data
Source OData service. To get details such as the properties of the entities exposed, the
data types for those properties and the relationships between entities, the Service Metadata
Document can be fetched by adding /$metadata to the service root URI.
Schema Map
Enables OData support. If a schema map is not defined, the OData API cannot be used
to access the data store using this data source definition. Use the Configure Schema
editor to select the tables/columns to expose through OData.
See Configuring data sources for OData connectivity and working with data source groups
on page 646 for more information.
Page Size
Determines the number of entities returned on each page for paging controlled on the
server side. On the client side, requests can use the $top and $skip parameters to
control paging. In most cases, server side paging works well for large data sets. Client
side pagination works best with a smaller data sets where it is not as expensive to fetch
subsequent pages.
Valid Values: 0 | n
where n is an integer from 1 to 10000.
When set to 0, the server default of 2000 is used.
Default: 0
Refresh Result
Controls what happens when you fetch the first page of a cached result when using Client
Side Paging. Skip must be omitted or set to 0.You can use the cached copy of that first
page, or you can re-execute the query to get a new result, discarding the previously
cached result. Re-executing the query is useful when the data being fetched may change
between two requests for the first page. Using the cached result is useful if you are paging
back and forth through results that are not expected to change.
Valid Values:
When set to 0, the OData service caches the first page of results.
When set to 1, the OData service re-executes the query.
Default: 1
266 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
Inline Count Mode
Specifies how the connectivity service satisfies requests that include the $count parameter
when it is set to true (for OData version 4) or the $inlinecount parameter when it is
set to allpages (for OData version 2). These requests require the connectivity service
to include the total number of entities that are defined by the OData query request. The
count must be included in the first page in server-driven paging and must be included in
every page when using client-driven paging.
The optimal setting depends on the data store and the size of results. The OData service
can run a separate query using the count(*) aggregate to get the count, before running
the query used to generate the entities. In very large results, this approach can often lead
to the first page being returned faster. Alternatively, the OData service can fetch the entire
result before returning the first page. This approach works well for small results and for
data stores that cannot optimize the count(*) aggregate; however, it may have a longer
initial response time for the first page if the result is large.
Valid Values:
When set to 1, the connectivity service runs a separate count(*) aggregate query to
get the count of entities before executing the query to return results. In very large results,
this approach can often lead to the first page being returned faster.
When set to 2, the connectivity service fetches all entities before returning the first page.
For small results, this approach is always faster. However, the initial response time for
the first page may be longer if the result is large.
Default: 1
Top Mode
Indicates how requests typically use $top and $skip for client side pagination, allowing
the service to better anticipate how to process queries.
Valid Values:
Set to 0 when the application generally uses $top to limit the size of the result and rarely
attempts to get additional entities by combining $top and $skip.
Set to 1 when the application uses $top as part of client-driven paging and generally
combines $top and $skip to page through the result.
Default: 0
OData Read Only
Controls whether write operations can be performed on the OData service.Write operations
generate a 405 Method Not Allowed response if this option is enabled.
Valid Values:
ON | OFF
When ON is selected, OData access is restricted to read-only mode.
When OFF is selected, write operations can be performed on the OData service.
Default: OFF
String Max Length
Controls the maximum length reported for Apache Hive String columns. Values larger
than the specified value cause the String columns to be excluded from the model. Values
smaller than the specified value may cause issues with some OData applications as data
may be returned that exceeds the maximum length. The default value is 32768.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 267Chapter 3: Using Hybrid Data Pipeline
Advanced tab
268 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Table 9: Advanced tab connection parameters for Apache Hadoop Hive
Field Description
Array Fetch Size
Specifies the number of fields the data access service uses to calculate the maximum
number of rows for a fetch. When executing a fetch, the service divides the Array Fetch
Size value by the number of columns in a particular table to determine the number of rows
to retrieve. By determining the fetch size based on the number of fields, out of memory
errors may be avoided when fetching from tables containing a large number of columns
while continuing to provide improved performance when fetching from tables containing a
small number of columns.
Valid values:
-x | x
where:
-x is a negative integer
x is a positive integer.
If set to -x, the service overrides any settings on the statement level and uses the number
of fields specified by the absolute value of -x to calculate the number of rows to retrieve.
If set to x, the service uses the number of fields specified by the value of x to calculate the
number of rows to retrieve. However, the service will not override settings, such as
setFetchSize(), on the statement level.
For example, if this property is set to 20000 fields and you are querying a table with 19
columns, the service divides the number of fields by the number of columns to calculate
the number of rows to retrieve. In this case, approximately 1053 rows would be retrieved
for each fetch.
Note: You can improve performance by increasing the value specified for this parameter.
However, if the number of fields specified exceeds the available buffer memory on the
server, an out of memory error will be returned. If you receive this error, decrease the value
specified until fetches are successfully executed.
Default: 20000 (fields)
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 269Chapter 3: Using Hybrid Data Pipeline
Field Description
Array Insert Size
Specifies the number of fields the data access service uses to calculate the maximum
number of rows sent in a packet when executing a multi-row insert. When executing a
multi-row insert, the service divides the Array Insert Size value by the number of columns
in a particular insert statement to determine the number of rows to send in a packet. By
determining the packet size based on the number of fields, the service can avoid out of
memory errors when executing inserts containing a large number of columns while
continuing to provide improved performance when executing inserts containing a small
number of columns. The default value is 20,000 fields.
In most scenarios, the default setting for Array Insert Size provides the ideal behavior;
however, you may need to reduce the value specified if you encounter either of the following:
• Performance or memory issues when inserting a large number of rows that contain
large values.
• The following error when inserting a large number of rows when using Apache Knox:
HTTP/1.1 500 Server Error.
Default: 20000 (fields)
Batch Mechanism
Determines the mechanism that is used to execute batch operations.
Valid values:
nativeBatch | multiRowInsert.
If set to nativeBatch, the Hive native batch mechanism is used to execute batch
operations, and an insert statement is executed for each row contained in a parameter
array.
If set to multiRowInsert, the service attempts to execute a single insert statement for
all the rows contained in a parameter array. If the size of the insert statement exceeds the
available buffer memory of the server, the service executes multiple statements. This
behavior provides substantial performance gains for batch inserts.
Default: multiRowInsert
Note:
• Multirow inserts can only be performed on Insert statements that use parameterized
arrays.
• Batch operations for parameterized arrays are not supported for updates or deletes.
• The service modifies the HQL statement to perform a multirow insert.
• This connection property can affect performance.
270 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
Catalog Mode
Specifies whether the service uses native catalog functions to retrieve information returned
by DatabaseMetaData functions.
Valid values:
mixed | native | query
If set to mixed, the service uses a combination of native catalog functions and discovered
information to retrieve catalog information. Select this option for the optimal balance of
performance and accuracy.
If set to native, the service uses native catalog functions to retrieve information returned
by DatabaseMetaData functions. This setting provides the best performance, but at the
expense of less-accurate catalog information.
If set to query, the service uses discovered information to retrieve catalog information.
This option provides highly accurate catalog information, but at the expense of slower
performance.
Default: mixed
Initialization
A semicolon delimited set of commands to be executed on the data store after Hybrid Data
String
Pipeline has established and performed all initialization for the connection. If the execution
of a SQL command fails, the connection attempt also fails and Hybrid Data Pipeline returns
an error indicating which SQL commands failed.
Syntax:
command[[; command]...]
Where:
command
is a SQL command. Multiple commands must be separated by semicolons. In addition, if
this property is specified in a connection URL, the entire value must be enclosed in
parentheses when multiple commands are specified. For example, assuming a schema
name of SFORCE:
InitializationString=(REFRESH SCHEMA SFORCE)
Login Timeout
The amount of time, in seconds, that the Hybrid Data Pipeline connectivity service waits
for a connection to be established before timing out the connection request.
Valid Values:
0 | x
where x is a positive integer that represents a number of seconds.
If set to 0, the connectivity service does not time out a connection request.
If set to x, the connectivity service waits for the specified number of seconds before returning
control to the application and throwing a timeout exception.
Default: 30
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 271Chapter 3: Using Hybrid Data Pipeline
Field Description
Max Pooled
The maximum number of prepared statements to cache for this connection. If the value of
Statements
this property is set to 20, the connectivity service caches the last 20 prepared statements
that are created by the application.
Query Timeout The number of seconds for the default query timeout for all statements that are created by
a connection.
Valid Values:
-1 | 0 | x
If set to -1, the query timeout functionality is disabled.The Hybrid Data Pipeline connectivity
service silently ignores calls to the Statement.setQueryTimeout() method.
If set to 0, the default query timeout is infinite (the query does not time out).
If set to x, the Hybrid Data Pipeline connectivity service uses the value as the default
timeout for any statement that is created by the connection.To override the default timeout
value set by this connection parameter, call the Statement.setQueryTimeout() method to
set a timeout value for a particular statement.
Default: 0
Transport Mode
Specifies whether binary (TCP) mode or HTTP mode is used to access Apache Hive data
sources.
Valid values:
binary | http
If set to binary, Thrift RPC requests are sent directly to data sources using a binary
connection (TCP mode).
If set to http, Thrift RPC requests are sent using HTTP transport (HTTP mode). HTTP
mode is typically used when connecting to a proxy server, such as a gateway, for improved
security, or a load balancer.
Default: binary
Note:
• The setting of this parameter corresponds to that of the hive.server2.transport.mode
property in your hive-site.xml file.
• When Transport Mode is set to http, the HTTP/HTTPS end point for the Hive server
must be specified using the HTTP Path parameter.
• To use HTTPS end points, set Transport Mode to http and Encryption Method to
SSL.
• Apache Hive currently supports using only one protocol mode per server at a time.
272 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
HTTP Path
Specifies the path of the HTTP/HTTPS endpoint used for connections when HTTP mode
is enabled (Transport Mode set to http).
Valid values:
string
where:
string
is the path of the URL endpoint. By default, the value specified must be an HTTP end point.
To support HTTPS values, enable SSL by setting Encryption Method to SSL.
Enable Cookie
Determines whether the service attempts to use cookie based authentication for requests
Authentication
to an HTTP endpoint after the initial authentication to the server. Cookie based
authentication improves response time by eliminating the need to re-authenticate with the
server for each request.
Valid values:
ON | OFF
If set to ON, the service attempts to use cookie based authentication for requests to an
HTTP endpoint after the initial authentication to the server. The cookie used for
authentication is specified by the Cookie Name parameter. If the name does not match,
or authentication fails, the driver attempts to authenticate according to the setting of the
Authentication Method.
If set to OFF, the service does not use cookie based authentication for HTTP requests after
the initial authentication.
Default: ON
Cookie Name
Specifies the name of the cookie used for authenticating HTTP requests when HTTP mode
is enabld (Transport Mode set to http) and cookie based authentication is enabled
(Enable Cookie Authentication is set to ON). When preparing an HTTP request to the
server, the service will not attempt to reauthenticate if a valid cookie is present.
Valid values:
string
where:
string
is a valid cookie name.
Default: hive.server2.auth
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 273Chapter 3: Using Hybrid Data Pipeline
Field Description
Extended Options
Specifies a semi-colon separated list of connection options and their values. Use this
configuration option to set the value of undocumented connection options that are provided
by Progress DataDirect technical support.You can include any valid connection option in
the Extended Options string, for example:
Database=Server1;UndocumentedOption1=value[;UndocumentedOption2=value;]
If the Extended Options string contains option values that are also set in the setup dialog,
the values of the options specified in the Extended Options string take precedence.
Valid Values:
string
Default: none
Metadata
Restricts the metadata exposed by Hybrid Data Pipeline to a single schema.The metadata
Exposed
exposed in the SQL Editor, the Configure Schema Editor, and third party applications will
Schemas
be limited to the specified schema. JDBC, OData, and ODBC metadata calls will also be
restricted. In addition, calls made with the Schema API will be limited to the specified
schema.
Warning: This functionality should not be regarded as a security measure. While
the Metadata Exposed Schemas option restricts the metadata exposed by Hybrid
Data Pipeline to a single schema, it does not prevent queries against other schemas
on the backend data store. As a matter of best practice, permissions should be
set on the backend data store to control the ability of users to query data.
Valid Values
Where:
is the name of a valid schema on the backend data store.
Default: No schema is specified. Therefore, all schemas are exposed.
See the steps for:
How to create a data source in the Web UI on page 240
Autonomous REST Connector parameters
Note: For additional information about REST connectivity, see Creating and using REST data sources on
page 661.
The following tables describe parameters available on the tabs of an Autonomous REST Connector Data
Source setup dialog:
274 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
• General tab
• Security tab
• OData tab
• Mapping tab
• Advanced tab
General tab
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 275Chapter 3: Using Hybrid Data Pipeline
Table 10: General tab connection parameters
Field Description
Data Source A unique name for the data source. Data source names can contain only alphanumeric
Name characters, underscores, and dashes.
Description A general description of the data source.
Endpoints Specify REST endpoints in either of the following ways. The REST endpoints specified
are used to generate a relational model of the REST data.
• Option 1. Add REST endpoints via the Web UI. Click Add, and provide the following
information in the dialog.
• Entity Name is the name of the relational table to which the connectivity service
maps the endpoint.
• Request Type is the type of request that is used to retrieve data from the endpoint.
(If POST is selected, a HTTP Body field will be provided.)
• URL is the URL of the REST endpoint. For example,
http://mysite.com/countries/.
• Option 2. Import an input REST file. Click Import REST file, and browse to the input
REST file you want to import. For information on creating an input REST file using a
text editor, see Creating an input REST file on page 665.
Take the following steps to refine the relational model of REST data.
1. Click the generate (or edit) configuration button.
2. Edit the JSON to meet application or query requirements. See Creating an input REST
file on page 665 for syntax requirements.
3. Click Update in the editor to save your changes.
4. Click Update in the data source dialog to update the data source.
Connector ID The unique identifier of the On-Premise Connector that is to be used to access the
on-premise data source. Select the Connector that you want to use from the dropdown.
The identifier can be a descriptive name, the name of the machine where the Connector
is installed, or the Connector ID for the Connector.
If you have not installed an On-Premise Connector, and no Connectors have been shared
with you, this field and drop-down list are empty.
If you own multiple Connectors that have the same name, for example, Production, an
identifier is appended to each Connector, for example, Production_dup0 and
Production_dup1. If the Connectors in the dropdown were shared with you, the owner''s
name is appended, for example, Production(owner1) and Production(owner2).
276 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Security tab
Table 11: Security tab connection parameters
Field Description
Authentication Determines which authentication method the connectivity service uses during the course
Method of a session.
Valid Values:
None | Basic | HttpHeader | UrlParameter
When set to None, the service does not attempt to authenticate.
When set to Basic, the service uses a hashed value, based on the concatenation of the
user name and password, for authentication. In addition to the User and Password
properties, you must also configure the AuthHeader property if the name of your HTTP
header is not Authorization (the default).
When set to HttpHeader, the service passes security tokens via HTTP headers for
authentication.You must also configure SecurityToken property and, if the name of your
HTTP header is not Authorization (the default), the AuthHeader property.
When set to UrlParameter, the service passes security tokens via the URL for
authentication.You must also configure the AuthParam and SecurityToken properties.
Default: None
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 277Chapter 3: Using Hybrid Data Pipeline
Field Description
User Specifies the user name that is used to connect to the REST service. A user name is
required if user is enabled by your REST service. This parameter is ignored when
Authentication Method is set to None.
Valid Values:
string
where:
string
is a valid user name. The user name is case-insensitive.
Password Specifies the password to use to connect to your REST service.This parameter is ignored
when Authentication Method is set to None.
Valid Values:
password
where:
password
is a valid password. The password is case-sensitive.
Authentication Specifies the name of the HTTP header used for authentication. This parameter is used
HTTP Header when Authentication Method is set to Basic or HttpHeader authentication has been
Name selected.
Valid Values:
auth_header
where:
auth_header
is the name of the HTTP header used for authentication. For example,
X-Api-Key.
278 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
Authentication Specifies the name of the URL parameter used to pass the security token. This property
URL Param Name is required when Authentication Method is set to UrlParameter.
Valid Values:
auth_parameter
where:
auth_parameter
is the name of the URL parameter used to pass the security token. For example,
apikey or key.
Security Token Specifies the security token required to make a connection to your REST API endpoint.
This parameter is required when Authentication Method is set to UrlParameter or
HttpHeader. If a security token is required and you do not supply one, the connection
will fail.
Important: The Security Token parameter, like all parameters, is persisted in clear text.
Valid Values:
string
where:
string
is the value of the security token assigned to the user.
OData tab
The following table describes the controls on the OData tab. For information on using the Configure Schema
editor, see Configuring data sources for OData connectivity and working with data source groups on page 646.
For information on formulating OData requests, see Formulating queries with OData Version 2 on page 868 or
Formulating queries with OData Version 4 on page 915.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 279Chapter 3: Using Hybrid Data Pipeline
Table 12: OData tab connection parameters
Field Description
OData Version Enables you to choose from the supported OData versions. OData configuration made
with one OData version will not work if you switch to a different OData version. If you want
to maintain the data source with different OData versions, you must create different data
sources for each of them.
280 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
OData Name
Enables you to set the case for entity type, entity set, and property names in OData
Mapping Case
metadata.
Valid Values: Uppercase | Lowercase | Default
When set to Uppercase, the case changes to all uppercase.
When set to Lowercase, the case changes to all lowercase.
When set to Default, the case does not change.
OData Access URI Specifies the base URI for the OData feed to access the data source, for example,
https://example.com:8443/api/odata4/.You can copy
the URI and paste it into your application''s OData configuration.
The URI contains the case-insensitive name of the data source to connect to, and the
query that you want to execute. This URI is the OData Service Root URI for the OData
feed. The Service Document for the data source is returned by issuing a GET request to
the data source''s service root.
The OData Service Document returns the names of the entities exposed by the Data
Source OData service. To get details such as the properties of the entities exposed, the
data types for those properties and the relationships between entities, the Service Metadata
Document can be fetched by adding /$metadata to the service root URI.
Schema Map Enables OData support. If a schema map is not defined, the OData API cannot be used
to access the data store using this data source definition. Use the Configure Schema
editor to select the tables/columns to expose through OData.
See Configuring data sources for OData connectivity and working with data source groups
on page 646 for more information.
Page Size Determines the number of entities returned on each page for paging controlled on the
server side. On the client side, requests can use the $top and $skip parameters to
control paging. In most cases, server side paging works well for large data sets. Client
side pagination works best with a smaller data sets where it is not as expensive to fetch
subsequent pages.
Valid Values: 0 | n
where n is an integer from 1 to 10000.
When set to 0, the server default of 2000 is used.
Default: 0
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 281Chapter 3: Using Hybrid Data Pipeline
Field Description
Refresh Result Controls what happens when you fetch the first page of a cached result when using Client
Side Paging. Skip must be omitted or set to 0.You can use the cached copy of that first
page, or you can re-execute the query to get a new result, discarding the previously
cached result. Re-executing the query is useful when the data being fetched may change
between two requests for the first page. Using the cached result is useful if you are paging
back and forth through results that are not expected to change.
Valid Values:
When set to 0, the OData service caches the first page of results.
When set to 1, the OData service re-executes the query.
Default: 1
Inline Count Mode Specifies how the connectivity service satisfies requests that include the $count parameter
when it is set to true (for OData version 4) or the $inlinecount parameter when it is
set to allpages (for OData version 2). These requests require the connectivity service
to include the total number of entities that are defined by the OData query request. The
count must be included in the first page in server-driven paging and must be included in
every page when using client-driven paging.
The optimal setting depends on the data store and the size of results. The OData service
can run a separate query using the count(*) aggregate to get the count, before running
the query used to generate the entities. In very large results, this approach can often lead
to the first page being returned faster. Alternatively, the OData service can fetch the entire
result before returning the first page. This approach works well for small results and for
data stores that cannot optimize the count(*) aggregate; however, it may have a longer
initial response time for the first page if the result is large.
Valid Values:
When set to 1, the connectivity service runs a separate count(*) aggregate query to
get the count of entities before executing the query to return results. In very large results,
this approach can often lead to the first page being returned faster.
When set to 2, the connectivity service fetches all entities before returning the first page.
For small results, this approach is always faster. However, the initial response time for
the first page may be longer if the result is large.
Default: 1
Top Mode Indicates how requests typically use $top and $skip for client side pagination, allowing
the service to better anticipate how to process queries.
Valid Values:
Set to 0 when the application generally uses $top to limit the size of the result and rarely
attempts to get additional entities by combining $top and $skip.
Set to 1 when the application uses $top as part of client-driven paging and generally
combines $top and $skip to page through the result.
Default: 0
282 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Mapping tab
The Mapping tab provides options for managing the relational map of the REST data.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 283Chapter 3: Using Hybrid Data Pipeline
Table 13: Mapping tab connection parameters
Field Description
Refresh Schema Specifies whether the connectivity service automatically refreshes the relational map of
the data model when a user connects to a REST service.
Valid Values:
When set to ON, the service automatically refreshes the map of the data model when a
user connects to a REST service. Changes to objects since the last time the map was
generated will be shown in the metadata.
When set to OFF, the service does not refresh the map of the data model when a user
connects to a REST service.
Note:
• This parameter should not be enabled when Create Mapping is set to session.
• You can choose to refresh the schema by clicking the Refresh icon. This refreshes
the schema immediately. Note that the refresh option is available only while editing
the data source.
• Use the option to specify whether the connectivity service attempts to refresh the
schema when an application first connects. Click the Refresh icon if you want to refresh
the schema immediately, using an already saved configuration.
• If you are making other edits to the settings, you need to click update to save your
configuration. Clicking the Refresh icon will only trigger a runtime call on the saved
configuration.
Default: OFF
Create Mapping Determines whether the connectivity service creates the internal files required for a
relational map of the REST data when establishing a connection.
Valid Values:
session | forceNew | notExist
When set to session, the service uses memory to store the internal configuration
information and relational map of REST data. A REST file is not created when this value
is specified. After the session, the view is discarded.
When set to forceNew, the service generates a new REST file and creates a new
relational map of the REST data.
Warning: This causes all customizations defined in the REST file to be lost.
When set to notExist, the service uses the current REST file and relational map of
REST data. If the files do not exist, the service creates them.
Default: notExist
284 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Advanced tab
Table 14: Advanced tab connection parameters
Field Description
Web Service The maximum number of Web service calls allowed for a single SQL statement or metadata
Call Limit query.
When set to 0, there is no limit on the number of Web service calls on a single connection
that can be made when executing a SQL statement.
Default: 10
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 285Chapter 3: Using Hybrid Data Pipeline
Field Description
Web Service Specifies the number of rows of data the Hybrid Data Pipeline connectivity service attempts
Fetch Size to fetch for each call.
Valid Values:
0 | x
If set to 0, the Hybrid Data Pipeline connectivity service attempts to fetch up to a maximum
of 10000 rows. This value typically provides the maximum throughput.
If set to x, the Hybrid Data Pipeline connectivity service attempts to fetch up to a maximum
of the specified number of rows. Setting the value lower than 10000 can reduce the response
time for returning the initial data. Consider using a smaller value for interactive applications
only.
Default: 0
Web Service The number of times to retry a timed-out Select request. The Web Service Timeout
Retry Count parameter specifies the period between retries. A value of 0 for the retry count prevents
retries. A positive integer sets the number of retries. The default value is 3.
Web Service The time, in seconds, to wait before retrying a timed-out Select request. Valid only if the
Timeout value of Web Service Retry Count is greater than zero. A value of 0 for the timeout waits
indefinitely for the response to a Web service request.There is no timeout. A positive integer
is considered as a default timeout for any statement created by the connection. The default
value is 120.
The default is an empty string.
Max Pooled The maximum number of prepared statements to cache for this connection. If the value of
Statements this property is set to 20, the connectivity service caches the last 20 prepared statements
that are created by the application.
286 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
Extended Specifies a semi-colon separated list of connection options and their values. Use this
Options configuration option to set the value of undocumented connection options that are provided
by Progress DataDirect technical support.You can include any valid connection option in
the Extended Options string, for example:
Valid Values:
string
where:
string
is a semi-colon separated list of connection options and their values.
Syntax:
Database=Server1;UndocumentedOption1=value[;UndocumentedOption2=value;]
Note: If the Extended Options string contains option values that are also set in the setup
dialog, the values of the options specified in the Extended Options string take precedence.
Metadata Restricts the metadata exposed by Hybrid Data Pipeline to a single schema. The metadata
Exposed exposed in the SQL Editor, the Configure Schema Editor, and third party applications will
Schemas be limited to the specified schema. JDBC, OData, and ODBC metadata calls will also be
restricted. In addition, calls made with the Schema API will be limited to the specified schema.
Warning: This functionality should not be regarded as a security measure. While
the Metadata Exposed Schemas option restricts the metadata exposed by Hybrid
Data Pipeline to a single schema, it does not prevent queries against other schemas
on the backend data store. As a matter of best practice, permissions should be set
on the backend data store to control the ability of users to query data.
Valid Values
Where:
is the name of a valid schema on the backend data store.
Default: No schema is specified. Therefore, all schemas are exposed.
See the steps for:
How to create a data source in the Web UI on page 240
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 287Chapter 3: Using Hybrid Data Pipeline
DB2 parameters
Before you start
For the driver to create and bind packages with your user ID, these privileges are required: BINDADD for
binding packages, CREATEIN for the collection specified by the Package Collection option, and GRANT
EXECUTE for the PUBLIC group for executing the packages. Typically, a Database Administrator (DBA) has
these privileges. If your user ID does not have these privileges, someone that has a user ID with DBA privileges
must create packages by connecting to the connectivity service.
When connecting for the first time, the connectivity service determines whether bind packages exist on the
server. If packages do not exist, the service creates them using the default values.
The following basic information enables you to connect with your data source and test your connection after
installation.
• General tab
• OData tab
• Security tab
• Advanced tab
Parameters for a basic connection
288 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
The following table describes the connection parameters that you must supply on the General tab.
Table 15: General tab connection parameters for DB2
Field Description
Data Source
A unique name for the data source. Data source names can contain only alphanumeric
Name
characters, underscores, and dashes.
Description A description of this set of connection parameters.
User Id
The User ID for the DB2 account used to establish the connection to the DB2 server.
Note: The User ID for the DB2 account is different from your Hybrid Data Pipeline User
ID.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 289Chapter 3: Using Hybrid Data Pipeline
Field Description
Password
A password for the DB2 account that is used to establish the connection to your DB2
server.
Note: The password for the DB2 account is different from your Hybrid Data Pipeline
password.
Note: By default, the password is encrypted.
By default, the characters in the Password field you type are not shown. If you want the
password to be displayed in clear text, click the eye icon. Click the icon again to
conceal the password.
Server Name
Specifies either the IP address in IPv4 or IPv6 format, or the server name (if your network
supports named servers) of the primary database server, for example, 122.23.15.12
or AppServer2.
Valid Values:
string
where:
string
is the IP address or the name of the server to which you want to connect.
Port Number The TCP port of the primary database server that is listening for connections to the DB2
database.
Database
The name of the database that is running on the database server.
290 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
Location Name Specifies the name of the DB2 location that you want to access.
For DB2 for z/OS, your system administrator can determine the name of your DB2 location
using the following command:
DISPLAY DDF
For DB2 for iOS, your system administrator can determine the name of your DB2 location
using the following command. The name of the database that is listed as "LOCAL" is the
value that you should use for this attribute.
WRKRDBDIRE
This option is not supported for DB2 for Linux/UNIX/Windows.
This option is mutually exclusive with the Database Name option.
Valid Value:
location_name
where:
location_name
is the name of a valid DB2 location.
Connector ID
The unique identifier of the On-Premises Connector that is used to access the on-premise
data source. Click the arrow and select the Connector that you want to use. The
identifier can be a descriptive name, the name of the machine where the Connector is
installed, or the Connector ID for the Connector.
If you have not installed an On-Premises Connector, and no Connectors have been shared
with you, this field and drop-down list are empty.
If you own multiple Connectors that have the same name, for example, Production, an
identifier is appended to each Connector, for example, Production_dup0 and
Production_dup1. If the Connectors in the drop-down list were shared with you, the
owner''s name is appended, for example, Production(owner1) and
Production(owner2).
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 291Chapter 3: Using Hybrid Data Pipeline
Security tab
Table 16: Security tab connection parameters for DB2
Field Description
Authentication
Determines which authentication method the Hybrid Data Pipeline connectivity service
Method
uses when it establishes a connection.
When user ID/password authentication is used, the encryption method that is used for
user IDs and passwords is negotiated during the connection process. Supported encryption
methods are:
• Advanced Encryption Standard (AES)
• Data Encryption Standard (DES)
To use AES encryption, the following requirements and restrictions apply:
• AES is supported for the following DB2 databases:
• DB2 V9.x and higher for Linux/UNIX/Windows
• DB2 UDB V8.1 for Linux/UNIX/Windows (requires DB2 Fix Pack 16)
• DB2 V9.1 for z/OS
• DB2 UDB V8.1 for z/OS (requires DB2 PTF for APAR PK56287)
• The Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy files,
which require Java SE 5 or higher, must be installed with the On-Premise Connector
on the client or application server.You can obtain these files from the following URL:
292 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
http://www.oracle.com/technetwork/java/javase/downloads/index.html
• The DB2 authentication parameter on the database server must be set to a value of
SERVER_ENCRYPT.
• For DB2 V9.7 for Linux/UNIX/Windows, the DB2 alternate_auth_enc parameter on
the database server must be set to allow AES encryption.
• AES encryption cannot be used if the Encryption Method parameter is set to a value
of DBEncryption or requestDBEncryption.
Valid Values:
clearText | encryptedPassword | encryptedPasswordAES |
encryptedUIDPassword
| encryptedUIDPasswordAES
If set to clearText, the Hybrid Data Pipeline connectivity service uses user ID/password
authentication. The connectivity service sends the user ID and password in clear text to
the DB2 server for authentication. If a user ID and password are not specified, the
connectivity service throws an exception.
If set to encryptedPassword, the Hybrid Data Pipeline connectivity service uses
user ID/password authentication. The connectivity service sends a user ID in clear text
and an encrypted password to the DB2 server for authentication. If the requirements for
AES encryption are met, the connectivity service uses AES encryption; otherwise, the
connectivity service allows a downgrade to DES encryption. If the Encryption Method
parameter is set to a value of DBEncryption or requestDBEncryption, the Hybrid
Data Pipeline connectivity service downgrades encryption to DES. If a user ID and
password are not specified, the connectivity service throws an exception.
If set to encryptedPasswordAES, the Hybrid Data Pipeline connectivity service uses
user ID/password authentication. The connectivity service sends a clear text user ID and
an AES-encrypted password to the DB2 server for authentication.The Hybrid Data Pipeline
connectivity service throws an exception in the following cases:
• If the database server indicates encryption must be downgraded to DES
• If a user ID and password are not specified
• If the Encryption Method parameter is set to a value of DBEncryption or
requestDBEncryption
If set to encryptedUIDPassword, the Hybrid Data Pipeline connectivity service uses
user ID/password authentication. The connectivity service sends an encrypted user ID
and password to the DB2 server for authentication. If the requirements for AES encryption
are met, the connectivity service uses AES encryption; otherwise, the connectivity service
allows a downgrade to DES encryption. If the Encryption Method parameter is set to a
value of DBEncryption or requestDBEncryption, the connectivity service downgrades
encryption to DES. If a user ID and password are not specified, the connectivity service
throws an exception.
If set to encryptedUIDPasswordAES, the Hybrid Data Pipeline connectivity service
uses user ID/password authentication.The connectivity service sends an AES-encrypted
user ID and password to the DB2 server for authentication.The connectivity service throws
an exception in the following situations:
• If the database server indicates encryption must be downgraded to DES
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 293Chapter 3: Using Hybrid Data Pipeline
Field Description
• If a user ID and password are not specified
• If the Encryption Method parameter is set to a value of DBEncryption or
requestDBEncryption.
Note:
• The User parameter provides the user ID. The Password parameter provides the
password. The Encryption Method parameter determines whether the Hybrid Data
Pipeline connectivity service uses data encryption.
Default: clearText
Encryption Method
Determines whether data is encrypted and decrypted when transmitted over the network
between the Hybrid Data Pipeline connectivity service and the on-premise database
server.
Valid Values:
noEncryption | DBEncryption | requestDBEncryption | SSL
If set to noEncryption, data is not encrypted or decrypted.
If set to DBEncryption, data is encrypted using DES encryption if the database server
supports it. If the database server does not support DES encryption, the connection fails
and the Hybrid Data Pipeline connectivity service throws an exception.The Authentication
Method parameter must be set to a value of clearText, encryptedPassword, or
encryptedUIDPassword. This value is not supported for DB2 for i.
If set to requestDBEncryption, data is encrypted using DES encryption if the database
server supports it. If the database server does not support DES encryption, the Hybrid
Data Pipeline connectivity service attempts to establish an unencrypted connection. The
Authentication Method parameter must be set to a value of clearText,
encryptedPassword, or encryptedUIDPassword. This value is not supported for
DB2 for i.
If set to SSL, data is encrypted using SSL. If the database server does not support SSL,
the connection fails and the Hybrid Data Pipeline connectivity service throws an exception.
Note:
• Connection hangs can occur when the Hybrid Data Pipeline connectivity service is
configured for SSL and the database server does not support SSL.You might want
to set a login timeout using the Login Timeout property to avoid problems when
connecting to a server that does not support SSL.
• When SSL is enabled, the following properties also apply:
Host Name In Certificate
ValidateServerCertificate
Crypto Protocol Version
294 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
The default value is noEncryption.
Crypto Protocol
Specifies a protocol version or a comma-separated list of the protocol versions that can
Version
be used in creating an SSL connection to the data source. If the protocol (or none of the
protocols) is not supported by the database server, the connection fails and the connectivity
service returns an error.
Valid Values:
cryptographic_protocol [[, cryptographic_protocol ]...]
where:
cryptographic_protocol
is one of the following cryptographic protocols:
TLSv1 | TLSv1.1 | TLSv1.2
The client must send the highest version that it supports in the client hello.
Note: Good security practices recommend using TLSv1.2 if your data source supports
that protocol version, due to known vulnerabilities in the earlier protocols.
Example
Your security environment specifies that you can use TLSv1.1 and TLSv1.2. When you
enter the following values, the connectivity service sends TLSv1.2 to the server first.
TLSv1.1,TLSv1.2
Default: TLSv1, TLSv1.1, TLSv1.2
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 295Chapter 3: Using Hybrid Data Pipeline
Field Description
Host Name In
Specifies a host name for certificate validation when SSL encryption is enabled (Encryption
Certificate
Method=SSL) and validation is enabled (Validate Server Certificate=ON). This optional
parameter provides additional security against man-in-the-middle (MITM) attacks by
ensuring that the server that the Hybrid Data Pipeline connectivity service is connecting
to is the server that was requested.
Valid Values:
host_name | #SERVERNAME#
where host_name is a valid host name.
If host_name is specified, the Hybrid Data Pipeline connectivity service compares the
specified host name to the DNSName value of the SubjectAlternativeName in the
certificate. If a DNSName value does not exist in the SubjectAlternativeName or if the
certificate does not have a SubjectAlternativeName, the Hybrid Data Pipeline connectivity
service compares the host name with the Common Name (CN) part of the certificate’s
Subject name. If the values do not match, the connection fails and the connectivity service
throws an exception.
If #SERVERNAME# is specified, the Hybrid Data Pipeline connectivity service compares
the server name that is specified in the connection URL or data source of the connection
to the DNSName value of the SubjectAlternativeName in the certificate. If a DNSName
value does not exist in the SubjectAlternativeName or if the certificate does not have a
SubjectAlternativeName, the connectivity service compares the host name to the CN part
of the certificate’s Subject name. If the values do not match, the connection fails and the
connectivity service throws an exception. If multiple CN parts are present, the connectivity
service validates the host name against each CN part. If any one validation succeeds, a
connection is established.
Default: Empty string
ValidateServer
Certificate
296 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
Determines whether the Hybrid Data Pipeline connectivity service validates the certificate
that is sent by the database server when SSL encryption is enabled (Encryption
Method=SSL). When using SSL server authentication, any certificate that is sent by the
server must be issued by a trusted Certificate Authority (CA). Allowing the connectivity
service to trust any certificate that is returned from the server even if the issuer is not a
trusted CA is useful in test environments because it eliminates the need to specify truststore
information on each client in the test environment.
Valid Values:
ON | OFF
If ON is selected, the Hybrid Data Pipeline connectivity service validates the certificate
that is sent by the database server. Any certificate from the server must be issued by a
trusted CA in the truststore file. If the Host Name In Certificate parameter is specified, the
connectivity service also validates the certificate using a host name. The Host Name In
Certificate parameter is optional and provides additional security against man-in-the-middle
(MITM) attacks by ensuring that the server the connectivity service is connecting to is the
server that was requested.
If OFF is selected, the Hybrid Data Pipeline connectivity service does not validate the
certificate that is sent by the database server. The connectivity service ignores any Java
system properties.
Default: OFF
OData tab
The following table describes the controls on the OData tab. For information on using the Configure Schema
editor, see Configuring data sources for OData connectivity and working with data source groups on page 646.
For information on formulating OData requests, see Formulating queries with OData Version 2 on page 868.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 297Chapter 3: Using Hybrid Data Pipeline
Table 17: OData tab connection parameters for DB2
Field Description
OData Version
Enables you to choose from the supported OData versions. OData configuration made
with one OData version will not work if you switch to a different OData version. If you want
to maintain the data source with different OData versions, you must create different data
sources for each of them.
OData Name
Enables you to set the case for entity type, entity set, and property names in OData
Mapping Case
metadata.
Valid Values: Uppercase | Lowercase | Default
When set to Uppercase, the case changes to all uppercase.
When set to Lowercase, the case changes to all lowercase.
When set to Default, the case does not change.
298 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
OData Access URI
Specifies the base URI for the OData feed to access your data source, for example,
https://hybridpipe.operations.com/api/odata/.You
can copy the URI and paste it into your application''s OData configuration.
The URI contains the case-insensitive name of the data source to connect to, and the
query that you want to execute. This URI is the OData Service Root URI for the OData
feed. The Service Document for the data source is returned by issuing a GET request to
the data source''s service root.
The OData Service Document returns the names of the entities exposed by the Data
Source OData service. To get details such as the properties of the entities exposed, the
data types for those properties and the relationships between entities, the Service Metadata
Document can be fetched by adding /$metadata to the service root URI.
Schema Map
Enables OData support. If a schema map is not defined, the OData API cannot be used
to access the data store using this data source definition. Use the Configure Schema
editor to select the tables/columns to expose through OData.
Page Size
Determines the number of entities returned on each page for paging controlled on the
server side. On the client side, requests can use the $top and $skip parameters to
control paging. In most cases, server side paging works well for large data sets. Client
side pagination works best with a smaller data sets where it is not as expensive to fetch
subsequent pages.
Valid Values: 0 | n
where n is an integer from 1 to 10000.
When set to 0, the server default of 2000 is used.
Default: 0
Refresh Result
Controls what happens when you fetch the first page of a cached result when using Client
Side Paging. Skip must be omitted or set to 0.You can use the cached copy of that first
page, or you can re-execute the query to get a new result, discarding the previously
cached result. Re-executing the query is useful when the data being fetched may change
between two requests for the first page. Using the cached result is useful if you are paging
back and forth through results that are not expected to change.
Valid Values:
When set to 0, the OData service caches the first page of results.
When set to 1, the OData service re-executes the query.
Default: 1
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 299Chapter 3: Using Hybrid Data Pipeline
Field Description
Inline Count Mode
Specifies how the connectivity service satisfies requests that include the $count parameter
when it is set to true (for OData version 4) or the $inlinecount parameter when it is
set to allpages (for OData version 2). These requests require the connectivity service
to include the total number of entities that are defined by the OData query request. The
count must be included in the first page in server-driven paging and must be included in
every page when using client-driven paging.
The optimal setting depends on the data store and the size of results. The OData service
can run a separate query using the count(*) aggregate to get the count, before running
the query used to generate the entities. In very large results, this approach can often lead
to the first page being returned faster. Alternatively, the OData service can fetch the entire
result before returning the first page. This approach works well for small results and for
data stores that cannot optimize the count(*) aggregate; however, it may have a longer
initial response time for the first page if the result is large.
Valid Values:
When set to 1, the connectivity service runs a separate count(*) aggregate query to
get the count of entities before executing the query to return results. In very large results,
this approach can often lead to the first page being returned faster.
When set to 2, the connectivity service fetches all entities before returning the first page.
For small results, this approach is always faster. However, the initial response time for
the first page may be longer if the result is large.
Default: 1
Top Mode
Indicates how requests typically use $top and $skip for client side pagination, allowing
the service to better anticipate how to process queries.
Valid Values:
Set to 0 when the application generally uses $top to limit the size of the result and rarely
attempts to get additional entities by combining $top and $skip.
Set to 1 when the application uses $top as part of client-driven paging and generally
combines $top and $skip to page through the result.
Default: 0
OData Read Only
Controls whether write operations can be performed on the OData service.Write operations
generate a 405 Method Not Allowed response if this option is enabled.
Valid Values:
ON | OFF
When ON is selected, OData access is restricted to read-only mode.
When OFF is selected, write operations can be performed on the OData service.
Default: OFF
300 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Advanced tab
Table 18: Advanced tab connection parameters for DB2
Field Description
Alternate ID
Specifies the name of the schema to be used to qualify unqualified database objects in
dynamically prepared SQL statements. This property sets the name of the schema in the
DB2 CURRENT SCHEMA special register. If the attempt to change the schema fails, the
connection fails and you receive the message Invalid value for AlternateID.
Refer to your DB2 documentation for permission requirements imposed by the database.
Valid Values:
string.
where string is a valid DB2 schema name.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 301Chapter 3: Using Hybrid Data Pipeline
Field Description
Default: None
Alternate Servers
Specifies one or more alternate servers for failover and is required for all failover methods.
To turn off failover, do not specify a value for the Alternate Servers connection property.
Valid Values:
(servername1[:port1][,servername2[:port2]]...)
The server name (servername1, servername2, and so on) is required for each alternate
server entry. Port number (port1, port2, and so on) is optional for each alternate server
entry. If the port is unspecified, the port number of the primary server is used. If the port
number of the primary server is unspecified, the default port number is used.
Default: None
Load Balancing
Determines whether the connectivity service uses client load balancing in its attempts to
connect to the servers (primary and alternate) defined in a Connector group.You can
specify one or multiple alternate servers by setting the AlternateServers property.
Valid Values: ON | OFF
If set to ON, the connectivity service uses client load balancing and attempts to connect
to the servers (primary and alternate) in random order.The connectivity service randomly
selects from the list of primary and alternate On Premise Connectors which server to
connect to first. If that connection fails, the connectivity service again randomly selects
from this list of servers until all servers in the list have been tried or a connection is
successfully established.
If set to OFF, the connectivity service does not use client load balancing and connects to
each servers based on their sequential order (primary server first, then, alternate servers
in the order they are specified).
Default: OFF
Notes
• The Alternate Servers parameter specifies one or multiple alternate servers for failover
and is required for all failover methods. To turn off failover, do not specify a value for
the Alternate Servers property.
302 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
Catalog Options Determines which type of metadata information is included in result sets when a JDBC
application calls DatabaseMetaData methods. To include multiple types of metatdata
information, add the sum of the values that you want to include. In this case, specify 8 to
include synonyms and to emulate getColumns() calls.
Valid Values:
0 | 2 | 6
If set to 0, result sets do not contain synonyms or remarks.
If set to 2, result sets contain synonyms and remarks that are returned from the following
DatabaseMetaData methods: getColumns(), getExportedKeys(), getFunctionColumns(),
getFunctions(), getImportedKeys(), getIndexInfo(), getPrimaryKeys(),
getProcedureColumns(), and getProcedures().
If set to 6, a hint is provided to the Hybrid Data Pipeline connectivity service to emulate
getColumns() calls using the ResultSetMetaData object instead of querying database
catalogs for column information. Result sets contain synonyms, but not remarks. Using
emulation can improve performance because the SQL statement that is formulated by
the emulation is less complex than the SQL statement that is formulated using
getColumns(). The argument to getColumns() must evaluate to a single table. If it does
not, because of a wildcard or null value, for example, the Hybrid Data Pipeline connectivity
service reverts to the default behavior for getColumns() calls.
Default: 2
Code Page
The code page to be used by the Hybrid Data Pipeline connectivity service to convert
Override
Character and Clob data. The specified code page overrides the default database code
page or column collation. All Character and Clob data that is returned from or written to
the database is converted using the specified code page.
By default, the Hybrid Data Pipeline connectivity service automatically determines which
code page to use to convert Character data. Use this parameter only if you need to change
the Hybrid Data Pipeline connectivity service’s default behavior.
Valid Values:
string
where string is the name of a valid code page that is supported by your JVM. For
example, CP950.
Default: empty string
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 303Chapter 3: Using Hybrid Data Pipeline
Field Description
Concurrent
Determines whether a read transaction can access committed rows that are locked by a
Access Resolution
write transaction when the application isolation level is Read Committed (DB2 Cursor
Stability) or Repeatable Read (DB2 Read Stability). This parameter only applies to
connections to DB2 V9.7 for Linux/UNIX/Windows and higher databases.
Valid Values:
auto | useCurrentlyCommitted | waitForOutcome
If set to auto, the connectivity service determines whether read transactions can access
currently committed data when lock contention occurs by checking the setting of the DB2
cur_commit parameter on the database server. If the cur_commit parameter is set to ON,
read transactions can access currently committed data.
If set to useCurrentlyCommitted, the connectivity service allows read transactions to
access currently committed data if the data is being updated or deleted. Read transactions
skip rows that are being inserted.
If set to waitForOutcome, read transactions wait for a commit or rollback operation if
they encounter data that is being updated or deleted. Read transactions do not skip rows
that are being inserted.
Default: auto
Extended Options
Specifies a semi-colon delimited list of connection options and their values. Use this
configuration option to set the value of undocumented connection options that are provided
by Progress DataDirect technical support.You can include any valid connection option
in the Extended Options string, for example:
Database=Server1;UndocumentedOption1=value[;
UndocumentedOption2=value;]
If the Extended Options string contains option values that are also set in the setup dialog,
the values of the options specified in the Extended Options string take precedence.
Initialization String
A semicolon delimited set of commands to be executed after the Hybrid Data Pipeline
connectivity service has established and performed all initialization for the connection
with DB2. If the execution of a SQL command fails, the connection attempt also fails and
Hybrid Data Pipeline returns an error indicating which SQL commands failed.
Syntax:
command[[; command]...]
Where:
command
is a SQL command. Multiple commands must be separated by semicolons. The following
example for DB2 for z/OS adds USER2 to the CURRENT PATH special register and sets
the CURRENT PRECISION special register to DEC31:
SET CURRENT PATH=current_path, USER2;SET CURRENT PRECISION=''DEC31''
The default is an empty string.
304 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
Login Timeout
The amount of time, in seconds, to wait for a connection to be established before timing
out the connection request.
Valid Values:
0 | x
where x is a positive integer that represents a number of seconds.
If set to 0, the connectivity service does not time out a connection request.
If set to x, the connectivity service waits for the specified number of seconds before
returning control to the application and throwing a timeout exception.
Default: 30
Max Pooled
The maximum number of prepared statements to cache for this connection. If the value
Statements
of this property is set to 20, the connectivity service caches the last 20 prepared statements
that are created by the application.
Query Timeout
Sets the default query timeout (in seconds) for all statements that are created by a
connection.
Valid Values:
-1 | 0 | x
where x is a positive integer that represents a number of seconds.
If set to -1, the query timeout functionality is disabled.The Hybrid Data Pipeline connectivity
service silently ignores calls to the Statement.setQueryTimeout() method.
If set to 0, the detault query timeout is infinite (the query does not time out).
If set to x, the Hybrid Data Pipeline connectivity service uses the value as the default
timeout for any statement that is created by the connection.To override the default timeout
value that is set by this parameter, call the Statement.setQueryTimeout() method to set
a timeout value for a particular statement.
Default: 0
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 305Chapter 3: Using Hybrid Data Pipeline
Field Description
Result Set Meta Determines whether the Hybrid Data Pipeline connectivity service returns table name
Data Options information in the ResultSet metadata for Select statements.
Valid Values:
0 | 1
If set to 0 and the ResultSetMetaData.getTableName() method is called, the Hybrid Data
Pipeline connectivity service does not perform additional processing to determine the
correct table name for each column in the result set. The getTableName() method may
return an empty string for each column in the result set.
If set to 1 and the ResultSetMetaData.getTableName() method is called, the Hybrid Data
Pipeline connectivity service performs additional processing to determine the correct table
name for each column in the result set. The connectivity service returns schema name
and catalog name information when the ResultSetMetaData.getSchemaName() and
ResultSetMetaData.getCatalogName() methods are called if the connectivity service can
determine that information.
Default: 0
306 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
Metadata Exposed
Restricts the metadata exposed by Hybrid Data Pipeline to a single schema.The metadata
Schemas
exposed in the SQL Editor, the Configure Schema Editor, and third party applications will
be limited to the specified schema. JDBC, OData, and ODBC metadata calls will also be
restricted. In addition, calls made with the Schema API will be limited to the specified
schema.
Warning: This functionality should not be regarded as a security measure.While
the Metadata Exposed Schemas option restricts the metadata exposed by Hybrid
Data Pipeline to a single schema, it does not prevent queries against other
schemas on the backend data store. As a matter of best practice, permissions
should be set on the backend data store to control the ability of users to query
data.
Valid Values
Where:
is the name of a valid schema on the backend data store.
Default: No schema is specified. Therefore, all schemas are exposed.
With Hold Cursors
Determines whether the cursor stays open on commit. After a commit, DB2 can leave all
cursors open (Preserve cursors) or close all open cursors (Delete cursors). Rolling back
a transaction closes all cursors regardless of how this property is specified.
ON | OFF
If set to ON, the cursor behavior is Preserve.
If set to OFF, the cursor behavior is Delete.
Default: ON
See the steps for:
How to create a data source in the Web UI on page 240
JDBC parameters for third party drivers
Important: Before you can proceed with creating a third party driver data source, an administrator must
integrate the third party driver with Hybrid Data Pipeline. For detailed information, see Using third party JDBC
drivers with Hybrid Data Pipeline.
The following tables describe parameters available on the General and OData tabs of a JDBC Data Source
dialog.
• General tab
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 307Chapter 3: Using Hybrid Data Pipeline
• OData tab
General tab
Table 19: General tab connection parameters for JDBC
Field Description
Data Source Name
A unique name for the data source. Data source names can contain only alphanumeric
characters, underscores, and dashes.
Description
A general description of the data source.
Driver Class
The name of the class of the third party driver which is plugged into Hybrid Data Pipeline.
308 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
User Id, Password
The login credentials used to connect to the JDBC database. A user name and password
is required if user ID/password authentication is enabled on your database. Contact
your system administrator to obtain your user name.
Note: By default, the password is encrypted.
By default, the characters in the Password field you type are not shown. If you want
the password to be displayed in clear text, click the eye icon. Click the icon again
to conceal the password.
Connector ID
A general description of the data source.
Metadata Exposed
Restricts the metadata exposed by Hybrid Data Pipeline to a single schema. The
Schemas
metadata exposed in the SQL Editor, the Configure Schema Editor, and third party
applications will be limited to the specified schema. JDBC, OData, and ODBC metadata
calls will also be restricted. In addition, calls made with the Schema API will be limited
to the specified schema.
Warning: This functionality should not be regarded as a security measure.
While the Metadata Exposed Schemas option restricts the metadata exposed
by Hybrid Data Pipeline to a single schema, it does not prevent queries against
other schemas on the backend data store. As a matter of best practice,
permissions should be set on the backend data store to control the ability of
users to query data.
Valid Values
Where:
is the name of a valid schema on the backend data store.
Default: No schema is specified. Therefore, all schemas are exposed.
Connection URL
The URL used by the third party driver to make a JDBC connection. This includes
connection specific information like server name, the port to connect to, the database
etc.
OData tab
The following table describes the controls on the OData tab. For information on using the Configure Schema
editor, see Configuring data sources for OData connectivity and working with data source groups on page 646.
For information on formulating OData requests, see Formulating queries with OData Version 2 on page 868.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 309Chapter 3: Using Hybrid Data Pipeline
Table 20: OData tab connection parameters for JDBC
Field Description
OData Version
Enables you to choose from the supported OData versions. OData configuration made
with one OData version will not work if you switch to a different OData version. If you want
to maintain the data source with different OData versions, you must create different data
sources for each of them.
OData Name
Enables you to set the case for entity type, entity set, and property names in OData
Mapping Case
metadata.
Valid Values: Uppercase | Lowercase | Default
When set to Uppercase, the case changes to all uppercase.
When set to Lowercase, the case changes to all lowercase.
When set to Default, the case does not change.
310 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
OData Access URI
Specifies the base URI for the OData feed to access your data source, for example,
https://hybridpipe.operations.com/api/odata/.You
can copy the URI and paste it into your application''s OData configuration.
The URI contains the case-insensitive name of the data source to connect to, and the
query that you want to execute. This URI is the OData Service Root URI for the OData
feed. The Service Document for the data source is returned by issuing a GET request to
the data source''s service root.
The OData Service Document returns the names of the entities exposed by the Data
Source OData service. To get details such as the properties of the entities exposed, the
data types for those properties and the relationships between entities, the Service Metadata
Document can be fetched by adding /$metadata to the service root URI.
Schema Map
Enables OData support. If a schema map is not defined, the OData API cannot be used
to access the data store using this data source definition. Use the Configure Schema
editor to select the tables/columns to expose through OData.
See Configuring data sources for OData connectivity and working with data source groups
on page 646 for more information.
Page Size
Determines the number of entities returned on each page for paging controlled on the
server side. On the client side, requests can use the $top and $skip parameters to
control paging. In most cases, server side paging works well for large data sets. Client
side pagination works best with a smaller data sets where it is not as expensive to fetch
subsequent pages.
Valid Values: 0 | n
where n is an integer from 1 to 10000.
When set to 0, the server default of 2000 is used.
Default: 0
Refresh Result
Controls what happens when you fetch the first page of a cached result when using Client
Side Paging. Skip must be omitted or set to 0.You can use the cached copy of that first
page, or you can re-execute the query to get a new result, discarding the previously
cached result. Re-executing the query is useful when the data being fetched may change
between two requests for the first page. Using the cached result is useful if you are paging
back and forth through results that are not expected to change.
Valid Values:
When set to 0, the OData service caches the first page of results.
When set to 1, the OData service re-executes the query.
Default: 1
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 311Chapter 3: Using Hybrid Data Pipeline
Field Description
Inline Count Mode
Specifies how the connectivity service satisfies requests that include the $count parameter
when it is set to true (for OData version 4) or the $inlinecount parameter when it is
set to allpages (for OData version 2). These requests require the connectivity service
to include the total number of entities that are defined by the OData query request. The
count must be included in the first page in server-driven paging and must be included in
every page when using client-driven paging.
The optimal setting depends on the data store and the size of results. The OData service
can run a separate query using the count(*) aggregate to get the count, before running
the query used to generate the entities. In very large results, this approach can often lead
to the first page being returned faster. Alternatively, the OData service can fetch the entire
result before returning the first page. This approach works well for small results and for
data stores that cannot optimize the count(*) aggregate; however, it may have a longer
initial response time for the first page if the result is large.
Valid Values:
When set to 1, the connectivity service runs a separate count(*) aggregate query to
get the count of entities before executing the query to return results. In very large results,
this approach can often lead to the first page being returned faster.
When set to 2, the connectivity service fetches all entities before returning the first page.
For small results, this approach is always faster. However, the initial response time for
the first page may be longer if the result is large.
Default: 1
Top Mode
Indicates how requests typically use $top and $skip for client side pagination, allowing
the service to better anticipate how to process queries.
Valid Values:
Set to 0 when the application generally uses $top to limit the size of the result and rarely
attempts to get additional entities by combining $top and $skip.
Set to 1 when the application uses $top as part of client-driven paging and generally
combines $top and $skip to page through the result.
Default: 0
OData Read Only
Controls whether write operations can be performed on the OData service.Write operations
generate a 405 Method Not Allowed response if this option is enabled.
Valid Values:
ON | OFF
When ON is selected, OData access is restricted to read-only mode.
When OFF is selected, write operations can be performed on the OData service.
Default: OFF
312 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Google Analytics parameters
Important: Before you can proceed with creating a data source, an administrator must register Hybrid Data
Pipeline as a client application with the Google Analytics API and create an OAuth application object using the
Hybrid Data Pipeline OAuth applications API. For detailed information, see Integrating Hybrid Data Pipeline
with a Google OAuth 2.0 authorization flow to access Google Analytics.
The following tables describe parameters available on the tabs of a Google Analytics Data Source setup dialog:
• General tab
• OData tab
• Mapping tab
• Advanced tab
General tab
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 313Chapter 3: Using Hybrid Data Pipeline
Table 21: General tab connection parameters for Google Analytics
Field Description
Data Source
A unique name for the data source. Data source names can contain only alphanumeric
Name
characters, underscores, and dashes.
Description
A general description of the data source.
OAuth Profile
An OAuth profile contains access and refresh tokens generated by Google. These tokens
Name
allow Hybrid Data Pipeline to access the Google Analytics API on your behalf.
You must either select an existing profile or create a new one.
For an existing OAuth profile, select the profile from the OAuth Profile Name drop-down
list. The Default View Name and Segment fields will automatically populate.
To create a new profile, you must have administrative privileges on the Google Analytics
project.To begin, click Create OAuth Profile Name, enter a profile name and click Create.
A Google authorization pop-up window appears. In the authorization window, enter the
required Google credentials and click Allow. Google Analytics supplies Hybrid Data Pipeline
with access and refresh tokens. Then, you are returned to the General tab. Click Save to
save these changes to the data source.
See the following topics for further details: Creating an OAuth profile, Renaming an OAuth
profile, Deleting an OAuth profile, and Refreshing stale access and refresh tokens.
Default View
A view that belongs to your Google Analytics account. Select a view from the drop-down
Name
list.
Segment
A segment that belongs to your Google Analytics account. Select a segment from the
drop-down list.
Start Date The start date for fetching Google Analytics data (inclusive).You can enter a specific date
in YYYY-MM-DD format, or select a date, using the calendar icon. Alternatively, select a
relative value (Today, Yesterday, or N Days Ago, where N is a positive integer). The default
is 30 days prior to the current date.
End Date The end date for fetching Google Analytics data.You can enter a specific date in
YYYY-MM-DD format, or select a date, using the calendar icon. Alternatively, select a
relative value from the drop-down list (Today, Yesterday, or N Days Ago, where N is a
positive integer).
The end date must always be later than the start date, if a start date is specified.
OData tab
The following table describes the controls on the OData tab. For information on using the Configure Schema
editor, see Configuring data sources for OData connectivity and working with data source groups on page 646.
For information on formulating OData requests, see "Formulating queries" under Querying with OData.
314 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Table 22: OData tab connection parameters for Google Analytics
Field Description
OData Version
Enables you to choose from the supported OData versions. OData configuration made
with one OData version will not work if you switch to a different OData version. If you want
to maintain the data source with different OData versions, you must create different data
sources for each of them.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 315Chapter 3: Using Hybrid Data Pipeline
Field Description
OData Name
Enables you to set the case for entity type, entity set, and property names in OData
Mapping Case
metadata.
Valid Values: Uppercase | Lowercase | Default
When set to Uppercase, the case changes to all uppercase.
When set to Lowercase, the case changes to all lowercase.
When set to Default, the case does not change.
OData Access URI
Specifies the base URI for the OData feed to access the data source, for example,
https://example.com:8443/api/odata4/.You can copy
the URI and paste it into your application''s OData configuration.
The URI contains the case-insensitive name of the data source to connect to, and the
query that you want to execute. This URI is the OData Service Root URI for the OData
feed. The Service Document for the data source is returned by issuing a GET request to
the data source''s service root.
The OData Service Document returns the names of the entities exposed by the Data
Source OData service. To get details such as the properties of the entities exposed, the
data types for those properties and the relationships between entities, the Service Metadata
Document can be fetched by adding /$metadata to the service root URI.
Schema Map
Enables OData support. If a schema map is not defined, the OData API cannot be used
to access the data store using this data source definition. Use the Configure Schema
editor to select the tables/columns to expose through OData.
See Configuring data sources for OData connectivity and working with data source groups
on page 646 for more information.
Page Size
Determines the number of entities returned on each page for paging controlled on the
server side. On the client side, requests can use the $top and $skip parameters to
control paging. In most cases, server side paging works well for large data sets. Client
side pagination works best with a smaller data sets where it is not as expensive to fetch
subsequent pages.
Valid Values: 0 | n
where n is an integer from 1 to 10000.
When set to 0, the server default of 2000 is used.
Default: 0
316 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
Refresh Result
Controls what happens when you fetch the first page of a cached result when using Client
Side Paging. Skip must be omitted or set to 0.You can use the cached copy of that first
page, or you can re-execute the query to get a new result, discarding the previously
cached result. Re-executing the query is useful when the data being fetched may change
between two requests for the first page. Using the cached result is useful if you are paging
back and forth through results that are not expected to change.
Valid Values:
When set to 0, the OData service caches the first page of results.
When set to 1, the OData service re-executes the query.
Default: 1
Inline Count Mode
Specifies how the connectivity service satisfies requests that include the $count parameter
when it is set to true (for OData version 4) or the $inlinecount parameter when it is
set to allpages (for OData version 2). These requests require the connectivity service
to include the total number of entities that are defined by the OData query request. The
count must be included in the first page in server-driven paging and must be included in
every page when using client-driven paging.
The optimal setting depends on the data store and the size of results. The OData service
can run a separate query using the count(*) aggregate to get the count, before running
the query used to generate the entities. In very large results, this approach can often lead
to the first page being returned faster. Alternatively, the OData service can fetch the entire
result before returning the first page. This approach works well for small results and for
data stores that cannot optimize the count(*) aggregate; however, it may have a longer
initial response time for the first page if the result is large.
Valid Values:
When set to 1, the connectivity service runs a separate count(*) aggregate query to
get the count of entities before executing the query to return results. In very large results,
this approach can often lead to the first page being returned faster.
When set to 2, the connectivity service fetches all entities before returning the first page.
For small results, this approach is always faster. However, the initial response time for
the first page may be longer if the result is large.
Default: 1
Top Mode
Indicates how requests typically use $top and $skip for client side pagination, allowing
the service to better anticipate how to process queries.
Valid Values:
Set to 0 when the application generally uses $top to limit the size of the result and rarely
attempts to get additional entities by combining $top and $skip.
Set to 1 when the application uses $top as part of client-driven paging and generally
combines $top and $skip to page through the result.
Default: 0
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 317Chapter 3: Using Hybrid Data Pipeline
Mapping tab
The Mapping tab enables you to create relational tables in Hybrid Data Pipeline and map them to Metrics and
Dimensions in your Google Analytics data source.
Table 23: Mapping tab connection parameters for Google Analytics
Field Description
Map Name
Optional name of the map definition that Hybrid Data Pipeline uses to interpret the schema
of the data store. The Hybrid Data Pipeline service automatically creates a name for the
map. If you want to name the map yourself, enter a unique name.
318 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
Refresh Schema
The Refresh Schema option specifies whether the connectivity service attempts to refresh
the schema when an application first connects.
Valid Values:
When set to ON, the connectivity service attempts to refresh the schema.
When set to OFF, the connectivity service does not attempt to refresh the schema.
Default: OFF
Notes:
• You can choose to refresh the schema by clicking the Refresh icon. This refreshes
the schema immediately. Note that the refresh option is available only while editing
the data source.
• Use the option to specify whether the connectivity service attempts to refresh the
schema when an application first connects. Click the Refresh icon if you want to refresh
the schema immediately, using an already saved configuration.
• If you are making other edits to the settings, you need to click update to save your
configuration. Clicking the Refresh icon will only trigger a runtime call on the saved
configuration.
Create Mapping
Determines whether the Google Analytics table mapping files are to be (re)created.
Hybrid Data Pipeline automatically maps data store objects and fields to tables and
columns the first time that it connects to the data store. The map includes both standard
and custom objects and includes any relationships defined between objects.
Table 24: Valid values for Create Map field
Value Description
Not Exist Select this option for most normal operations. If a map for a data source
does not exist, this option causes one to be created. If a map exists, the
service uses that existing map. If a name is not specified in the Map
Name field, the name will be a combination of the User Name and Data
Source ID.
Force New Select this option to force creation of a new map. A map is created on
connection whether one exists or not. The Hybrid Data Pipeline
connectivity service uses a combination of the User Name and Data
Source ID to name the map. Map creation is expensive, so you will likely
not want to leave this option set to Force New indefinitely.
No If a map for a data source does not exist, the connectivity service does
not create one.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 319Chapter 3: Using Hybrid Data Pipeline
Field Description
Add Tables
320 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
A set of tables to work with your Google Analytics account.
To create configuration tables that use different combinations of Metrics and Dimensions,
click Configure Logical Schema.
In the Configure Logical Schema screen, click Create Table and enter a name for the
table.
In the Dimensions and Metrics screen, select the metrics that you want to add to the
table.You can select metrics across multiple dimensions. Each metric gets added as a
column in the table.
Finally, click Save & Close.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 321Chapter 3: Using Hybrid Data Pipeline
Field Description
For more information, see Adding Google Analytics tables and Using Google Analytics.
Show Deprecated
Defines whether Hybrid Data Pipeline shows deprecated objects. Google Analytics marks
Objects
dimensions and metrics as deprecated as an indication that they plan to remove support
for those objects. By default, the Hybrid Data Pipeline connectivity service does not expose
these deprecated objects. Set the value to ON while you work on rewriting your queries
and table definitions to migrate from the deprecated objects. Once the queries and table
definitions are fixed, change the setting for the map option back to OFF.
Valid Values:
ON | OFF
If set to ON, Hybrid Data Pipeline includes deprecated objects in the relational model.
If set to OFF, Hybrid Data Pipeline does not include deprecated objects in the relational
model.
Default: OFF
Show Internal
Defines how Hybrid Data Pipeline shows internal tables.
Tables
Valid Values:
ON | OFF
If set to ON, Hybrid Data Pipeline shows the "Data" table.
If set to OFF, Hybrid Data Pipeline does not show the "Data" table.
Default: OFF
Subtract Tables
Defines a comma-separated list of tables that should be hidden from the user''s view.This
feature is useful if you want to define your own tables instead of using some of the tables
that are supplied with the data store, or to limit access to certain tables so that the user
does not see them. For example, enter adSense,adWords.
subtractTables can be used both for the pseudo-tables in Google Analytics that are derived
from the Data system table, and also for the regular management tables such as Goal
or Account.
322 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Advanced tab
Table 25: Advanced tab connection parameters for Google Analytics
Field Description
Default Query
A semi-colon delimited list of default values for the WHERE clauses within the connection.
Options
Specifying mandatory values such as startDate, endDate, and viewId in this parameter
makes the queries simpler. For example, the query SELECT * FROM Overview returns
only results from the specified period.
Valid Values:
(key=value[;key=value])
Where:
key
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 323Chapter 3: Using Hybrid Data Pipeline
Field Description
is one of the following values:
If set to startDate, specifies the starting date for the query (inclusive).The default is thirty
days prior to the current date, expressed as 30daysago.
If set to endDate, the ending date for the query (inclusive). This defaults to yesterday.
The syntax for startDate and endDate values is as follows:
• a date in YYYY-MM-DD format
• the word "today" for the current date
• the word "yesterday" for the prior date
• #daysAgo, where # is some positive integer
If the key is viewId, the value is a comma-separated list of view Ids. There is no default;
in order for SELECT * FROM to work for either "Data" or any of the pseudo-tables, this must
be set either explicitly in a WHERE clause or via the defaultQueryOptions connection string
option.
Default: If no value is specified (the default), the connectivity service uses
startDate=30daysAgo;endDate=yesterday.
Max Pooled
The maximum number of prepared statements to cache for this connection. If the value of
Statements
this property is set to 20, the connectivity service caches the last 20 prepared statements
that are created by the application.
Initialization
A semicolon delimited set of commands to be executed on the cloud data store after Hybrid
String
Data Pipeline has established and performed all initialization for the connection. If the
execution of a SQL command fails, the connection attempt also fails and Hybrid Data Pipeline
returns an error indicating which SQL commands failed.
The default is an empty string.
Web Service
The maximum number of Web service calls allowed for a single SQL statement or metadata
Call Limit
query.
When set to 0, there is no limit on the number of Web service calls on a single connection
that can be made when executing a SQL statement.
Web Service
The time, in seconds, to wait before retrying a timed-out Select request. Valid only if the
Timeout
value of Web Service Retry Count is greater than zero. A value of 0 for the timeout waits
indefinitely for the response to a Web service request.There is no timeout. A positive integer
is considered as a default timeout for any statement created by the connection. The default
value is 120.
Web Service
The number of times to retry a timed-out Select request. The Web Service Timeout
Retry Count
parameter specifies the period between retries. A value of 0 for the retry count prevents
retries. A positive integer sets the number of retries. The default value is 3.
324 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
Web Service
Specifies the number of rows of data the Hybrid Data Pipeline connectivity service attempts
Fetch Size
to fetch for each call.
Valid Values:
0 | x
If set to 0, the Hybrid Data Pipeline connectivity service attempts to fetch up to a maximum
of 10000 rows. This value typically provides the maximum throughput.
If set to x, the Hybrid Data Pipeline connectivity service attempts to fetch up to a maximum
of the specified number of rows. Setting the value lower than 10000 can reduce the response
time for returning the initial data. Consider using a smaller value for interactive applications
only.
Default: 0
Extended
Specifies a semi-colon delimited list of connection options and their values. Use this
Options
configuration option to set the value of undocumented connection options that are provided
by Progress DataDirect technical support.You can include any valid connection option in
the Extended Options string, for example:
Database=Server1;UndocumentedOption1=value[;
UndocumentedOption2=value;]
If the Extended Options string contains option values that are also set in the setup dialog,
the values of the options specified in the Extended Options string take precedence.
Metadata
Restricts the metadata exposed by Hybrid Data Pipeline to a single schema. The metadata
Exposed
exposed in the SQL Editor, the Configure Schema Editor, and third party applications will
Schemas
be limited to the specified schema. JDBC, OData, and ODBC metadata calls will also be
restricted. In addition, calls made with the Schema API will be limited to the specified schema.
Warning: This functionality should not be regarded as a security measure. While
the Metadata Exposed Schemas option restricts the metadata exposed by Hybrid
Data Pipeline to a single schema, it does not prevent queries against other schemas
on the backend data store. As a matter of best practice, permissions should be set
on the backend data store to control the ability of users to query data.
Valid Values
Where:
is the name of a valid schema on the backend data store.
Default: No schema is specified. Therefore, all schemas are exposed.
See the steps for:
How to create a data source in the Web UI on page 240
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 325Chapter 3: Using Hybrid Data Pipeline
Creating an OAuth profile
Take the following steps to create an OAuth profile. This procedure requires administrative privileges on the
Google Analytics project.
1. Click Create OAuth Profile Name.
2. Enter a profile name in the Create OAuth Profile dialog. Then, click Create.
A Google authorization pop-up window appears.
3. In the Google authorization pop-up window, enter the required Google credentials.
4. Click Allow.
Google Analytics supplies Hybrid Data Pipeline with access and refresh tokens. Then, you are returned to
the General tab.
5. Click Save to save these changes to the data source.
Renaming an OAuth profile
The drop-down list for the OAuth Profile Name field contains the names of previously-created OAuth profiles.
You can rename an existing or previously-created profile. This procedure requires a user with administrative
privileges on the Google Analytics project.
1. Open the drop-down list in the OAuth Profile Name field, and click the Rename icon next to the profile that
you want to rename.
The profile appears in Edit mode.
2. Change the name of the profile and click the Add icon next to the profile name.
The profile is renamed and you are returned to the General tab.
3. Click Save.
Deleting an OAuth profile
The drop-down list for the OAuth Profile Name field contains the names of previously-created OAuth profiles.
You can delete an unused or outdated profile. This procedure requires a user with administrative privileges on
the Google Analytics project.
1. Open the drop-down list in the OAuth Profile Name field, and click the Delete icon next to the profile that
you want to delete.
The OAuth profile is removed from the drop-down list in the OAuth Profile Name field.
2. Click Save.
Refreshing stale access and refresh tokens
Access and refresh tokens may expire or be revoked. To refresh these tokens in the Web UI, you must open
a data source that uses the profile and click Authorize with Google. As with creating a profile for the first time,
you are redirected to Google where you must log in to the Google account.When you click Accept, new access
and refresh tokens will be supplied to Hybrid Data Pipeline.You are then returned to the Hybrid Data Pipeline
Web UI.
326 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Adding Google Analytics tables
To determine the content of the Add Tables field:
1. Click Configure Logical Schema.
2. Select the tables from a schema. If no primary key is defined in the table, set the primary key by selecting
a column in the table.
3. Click Save & Close. The JSON of the configured schema appears in the Add Tables field.
To add Google Analytics tables:
1. Click Configure Logical Schema.
2. Click Create Table.
3. Type a name for the table, or select a table from the drop-down list.
4. Select from the options under the Dimensions and Metrics headings. If no primary key is defined in the
table, set the primary key by selecting a column in the table.
5. Click Save & Close. The JSON of the configured schema appears in the Add Tables field.
Using Google Analytics
Google Analytics is a service that generates detailed statistics about a website''s traffic and traffic sources. But
Google Analytics is not just a database. It is a multi-dimensional hypercube containing all kinds of measurements
about traffic to a website.
When you connect to Google Analytics using Hybrid Data Pipeline, you can reach into this repository and flatten
it into relational data that can be used with any ODBC or JDBC application.
Imagine a very small store of data about your website. For each hit, the Analytics software logs the date,
language of user, country of origin, new or returning user, and their time on the site (in seconds).
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 327Chapter 3: Using Hybrid Data Pipeline
Google Analytics collected data for our little web site over four days.The data is broken down by date, language,
country and user type. And for each visit, we recorded the time spent on the site.
You can look at the time on site as a measurement or metric, and all of the other columns as dimensions.
Google Analytics works like our example. It aggregates information from your website, but measures hundreds
of things, and categorizes them by hundreds of dimensions.
The query interface that Google provides allows you to fetch these metrics and group them. Because of the
massive amount of information they store, their interface limits you to fetching at most ten metrics at a time,
and grouped by no more than seven dimensions.
Creating a query
Suppose you want to know how much time new visitors spent on the site.Your dimension is user type and
your metric is time.You would get back two rows:
How much data you get back depends on how you ask for it. If you ask for two dimensions, you get even more
data, because you get one row per permutation. Requesting how much time users have spent on each day,
broken down by country, returns more rows:
328 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Google Analytics Dashboard
This section assumes you have access to a Google Analytics Dashboard.
Go to http://www.google.com/analytics/ and choose [Google Analytics] from the drop-down menu in the upper
right corner.
An outline of your views into your web properties appears. Choose a view and you see the Audience Overview,
a graph with other metrics showing Sessions, Users, Pageviews, Pages/Session, Average Session Duration,
Bounce Rate and Percent of New Sessions. In the lower right is a breakdown of sessions by language.
The DataDirect Hybrid Data Pipeline connectivity service defines a table called Overview for your Google
Analytics Data Store that provides similar information. After connecting to Google Analytics, you can use the
following query to give you the same numbers as the Audience Overview.
SELECT * FROM Overview WHERE viewId = ''ga:12345678''
You can copy the viewId from the URI in your browser. The URI will end in something like this:
/visitors-overview/a99999999w00000000p12345678/. Copy the digits after the final "p", and prefix
them with a "ga:" as the viewId.
VIEWID SEGMENTID STARTDATE ENDDATE _BROWSER _OPERATINGSYSTEM
ga:12345678 NULL "2014-01-01" "2014-01-30" NULL NULL
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 329Chapter 3: Using Hybrid Data Pipeline
A simpler way to get the result is to use the defaultView connection option in your connection string. The name
of the view is generally displayed in view control on the General tab of the setup dialog. Include that name in
the defaultView connection option, and the connectivity service will look up the viewId for you. For example, if
your view were named "web.mycompany.com blog", you could use the following connection string:
Connection c = DriverManager.getConnection
("jdbc:datadirect:googleanalytics:configOptions=(defaultView=web.mycompany.com
blog);clientid=XXX;clientsecret=YYY;refreshtoken=ZZZ");
Now your query is simpler:
SELECT * FROM Overview
The remaining examples assume that you made this change.
To make the difference between metrics and dimensions a little more clear, in the driver we prefix all dimensions
with an underscore.
Note that only one row was returned, and all of the dimensions came out as NULL. We have a special rule that
says if you ask for all dimensions, like we just did with the SELECT *, then we get no dimensions.These values
would match exactly what we see in the Google Analytics Audience Overview.
If we ask for the same set by language:
SELECT _LANGUAGE,SESSIONS FROM Overview
we get exactly what was in the lower-right corner of that dashboard page.
Overview table
The entire data store of Google Analytics is available in a hidden table called Data. The Overview table is
actually a small view into the Data table that has selected metrics and dimensions that are useful together.
Other tables, which are also subsets of Data, come predefined.These tables are listed on the Google Analytics
Pseudo Tables page.
By default, the actual underlying Data table is hidden. The Data table has over 100 metrics and dimensions,
Google limits the number of metrics (to 10) and dimensions (to 7) for each query. Hiding the table makes it
less likely that users will submit a query such as SELECT TOP 10 * FROM DATA, which could return results
that are not very useful.
The Data table can be made visible by adding showInternalTables=1 to the Map Options.
After doing that, the following query would work the same way as the SELECT FROM Overview query.
SELECT _LANGUAGE,SESSIONS FROM Data
Adding your own tables
Usually, you don''t need to expose the Data table, because new pseudo-tables can be added with the addTables
configuration option. Suppose you wanted to define a table that let you query sessions only by language and
country. This piece of JSON defines the new table:
{"MyTable":["sessions","_language","_country"]}
You can add it to your connection string using the reference controls on the dialogs.
330 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
This adds a new pseudo-table named MyTable, and it now has three columns, plus the "automatic" columns
of viewId, segmentId, startDate and endDate. Now instead of doing what we did, we can do the functionality
equivalent:
SELECT _LANGUAGE,SESSIONS FROM MyTable
Because of this, it is typically not necessary to expose the Data table. (Note that we could have defined this
table as just based on sessions and language. But remember the earlier rule that said that if you request all
dimensions, we behave as if you had selected none. This means that both SELECT _LANGUAGE,SESSIONS
and SELECT * would have all referenced one dimension, and therefore, it would have not broken the data
down by language. There is no harm in adding extra dimensions to your definition.)
Defining the columns
You can use the Metadata table to define the columns in your pseudo-table. The Metadata table has the list
of all of the metrics and dimensions. Use only the metrics and dimensions that are marked with a "PUBLIC"
status. The Hybrid Data Pipeline connectivity service ignores metrics and dimensions with a "DEPRECATED"
status, unless showDeprecatedObjects=ON is added to the config options.
Not all combinations of metrics and dimensions are valid. Refer to the table called Incompatible. If you see a
row in that table that contains both columns, it means they can''t be used in the same query.
Support for custom variables, metrics, and dimensions
Custom Variables are defined on the client, and are basically key=value pairs. There are 5 available (50 for
premium). They are set in the webpage by calling methods defined in ga.js. They are used only for Google
Analytics before the upgrade to Universal Analytics.
Custom Metrics and Dimensions are defined solely on the server, and the names are available as metadata.
There are 20 (200 for premium) of each available. They replace the concept of custom variables when the web
properties are upgraded to Universal Analytics.
If you need access to three of the new tables, AccountUserLink, WebpropertyUserLink, and/or ProfileUserLink,
your refresh token may have to be regenerated to get the new permission.
Google BigQuery parameters
The following tables describe parameters available on the tabs of a Google BigQuery Data Source setup
dialog:
• Connection tab
• Database tab
• Billing tab
• Mapping tab
• OData tab
• Performance tab
• Advanced tab
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 331Chapter 3: Using Hybrid Data Pipeline
Connection tab
332 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Table 26: Connection tab connection parameters for Google BigQuery
Field Description
Data Source
A unique name for the data source. Data source names can contain only alphanumeric
Name
characters, underscores, and dashes.
Description
A general description of the data source.
Authentication
The authentication method used to establish a connection.
Method
Valid Values:
OAuth 2.0 | Service Account
If set to OAuth 2.0, OAuth 2.0 is used to establish a connection.
If set to Service Account, service account authentication is used to establish a
connection.
Default: OAuth 2.0
Service Account
The email address associated with your service account that is required to authenticate
Email
to Google BigQuery when service account authentication is enabled.
To learn more about service accounts and service account emails, refer to Google
documentation.
Service Account
The private key required to authenticate to Google BigQuery when using service account
Key Content
authentication. The private key is obtained from the private key file as specified with the
Import Key parameter.
Import Key
The full path to the private key file. The private key in this file is used to authenticate to
Google BigQuery when using service account authentication.
See also Obtaining the private key file on page 357.
Client ID
The consumer key for your application. This value is used when authenticating to Google
BigQuery using OAuth 2.0.
See also Obtaining client information and tokens on page 356.
Client Secret
The consumer secret for your application.This value is used when authenticating to Google
BigQuery using OAuth 2.0.
See also Obtaining client information and tokens on page 356.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 333Chapter 3: Using Hybrid Data Pipeline
Field Description
Access Token
The access token required to authenticate to Google BigQuery when OAuth 2.0 is enabled.
Notes:
• If no value is specified, the value of the Refresh Token parameter is used to generate
an access token to make a connection.
• If no values are specified for either Access Token or Refresh Token, the connection
will fail.
• If values for Access Token and Refresh Token are specified, the Access Token value
is used to connect. However, if the Access Token value expires, the Refresh Token
value is used to generate a new value for Access Token.
See also Obtaining client information and tokens on page 356.
Refresh Token
The refresh token used to either request a new access token or renew an expired access
token. If an access token is not provided or expires at the time of connection, the refresh
token is used to generate an access token to authenticate to Google BigQuery when OAuth
2.0 is enabled.
Notes:
• If no value is specified, the value of the Refresh Token parameter is used to generate
an access token to make a connection.
• If no values are specified for either Access Token or Refresh Token, the connection
will fail.
• If values for Access Token and Refresh Token are specified, the Access Token value
is used to connect. However, if the Access Token value expires, the Refresh Token
value is used to generate a new value for Access Token.
See also Obtaining client information and tokens on page 356.
334 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
Scope
Specifies a space-separated list of OAuth scopes that limit the permissions granted by an
access token at the time of connection.
Valid Values:
string
where:
string
is a space-separated list of security scopes.
The following example demonstrates a configuration that allows the user to view and
manage tables created from Google drive.
Scope=https://www.googleapis.com/auth/drive
Default:
https://www.googleapis.com/auth/bigquery
KMS Key Name
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 335Chapter 3: Using Hybrid Data Pipeline
Field Description
The customer-managed encryption key (CMEK) used for executing queries. If it is not
specified, the default key encryption key from Google is used.
To learn more about CMEK, refer to the Google documentation.
Valid Values:
projects/project/locations/location/KeyRings/keyring/cryptoKeys/key
where:
project
specifies the name of the project to which are connecting.
location
specifies the geographical location where your dataset is stored.
keyring
specifies the key ring value, which is a prerequisite for creating CMEK. To learn
how to create a key ring, refer to the Google documentation.
key
specifies the CMEK value. To learn how to create a key, refer to the Google
documentation.
Notes:
• Passing KMSKeyName as part of job configuration is not supported for DDL statements.
Therefore, for Create statements, CMEK must be provided using the Options clause,
in the following format:
CREATE TABLE .()OPTIONS(kms_key_name=''projects/project/
locations/location/KeyRings/keyring/cryptoKeys/key'')
• If a table is encrypted using CMEK, you can perform insert and select operations on it
with or without specifying CMEK. However, you must not specify an incorrect CMEK,
as it leads to query failure.
• If you specify a CMEK to query a table that is not encrypted with CMEK, the query will
fail.
• CMEKs specified at connection are used to execute queries for the life of the connection.
336 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Database tab
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 337Chapter 3: Using Hybrid Data Pipeline
Table 27: Database tab connection parameters for Google BigQuery
Field Description
Project
The name of the project to which you are connecting.
If you want to query data in a project different from the one you specified at the time of
connection, specify it in the following format:
project.dataset.table
Dataset
The name of the dataset to which you are connecting.
If you want to query data in a dataset different from the one you specified at the time of
connection, specify it in the following format:
project.dataset.table
Location
The geographical location where your dataset is stored. Google BigQuery allows storing
datasets in either one single geographical place, such as Tokyo, or a large geographical
area, such as Europe.
For more information on dataset locations, refer to the Google BigQuery documentation.
338 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
JSON Format
The JSON string format in which values for complex data types, such as Array and Struct,
are returned.
Valid Values:
Raw | KeyValue | Pretty | Unsafe
If set to Raw, the values are returned in their native Google BigQuery format.
If set to KeyValue, the values are returned in key value pairs. Also, if there is a closing
curly bracket (}) or a back slash (\) in a value, the connectivity service escapes it by adding
a back slash (\) in front of it. For example, if the value is "8}", the service returns it as
"8\}".
If set to Pretty, only the values are returned (unaccompanied by keys).
If set to Unsafe, the values are returned in key value pairs. However, if there are any
special characters in them, they are not escaped.
Default: Raw
Example:
If the data type is Simple Array and values are [121,122,123], the values are returned in
one of the following formats based on the valid value you set for the JSON Format
parameter:
Valid Value Data Format
KeyValue [{v=121},{v=122},{v=123}]
Pretty [121, 122, 123]
Raw [{"v":"121"},{"v":"122"},{"v":"123"}]
Unsafe [{v=121},{v=122},{v=123}]
Syntax
The Google BigQuery SQL dialect to be used for querying data.
Valid Values:
Standard | Legacy
If set to Standard, the standard SQL dialect is used for querying data.
If set to Legacy, the legacy SQL dialect is used for querying data.
Default: Standard
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 339Chapter 3: Using Hybrid Data Pipeline
Field Description
Allow Large
Determines whether results larger than 128 MB for legacy SQL queries are returned.
Results
Valid Values:
OFF | ON
If set to OFF, query results larger than 128 MB are not returned.
If set to ON, query results larger than 128 MB are returned. When set to ON, the results are
stored in the dataset and table specified using Legacy Dataset and Legacy Table
parameters.
Default: OFF
Legacy Dataset
The dataset where results for legacy SQL queries are stored when Allow Large Results is
enabled.
Default: _queries_
Legacy Table
The table where results for legacy SQL queries are stored when Allow Large Results is
enabled.
Default: _sql_*
Billing tab
340 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Table 28: Billing tab connection parameters for Google BigQuery
Field Description
Maximum Bytes
The maximum number of bytes a query can read. As per the on-demand pricing model of
Billed
Google BigQuery, charges are billed based on the number of bytes a query reads. To
control the cost a query may incur, you can set a limit. Once the limit is exceeded, the
query fails without incurring any cost.
Valid Values:
0 | x
where:
x
is a positive integer that defines the maximum number of bytes a query can read.
If set to 0, the connectivity service allows queries to read indefinite amount of data; there
is no limit.
If set to x, the connectivity service uses the value as the limit beyond which queries fail
without incurring any cost.
Default: 0 (no limit)
Maximum Billing
Specifies the billing tier that you have access to. If you query a resource beyond the limit
Tier
set for your tier, the query will fail without incurring any cost.
Valid Values:
x
where:
x
is a positive integer that identifies the tier you have access to.
Default: 0
Mapping tab
The Mapping tab includes parameters for managing the relational schema of the BigQuery data model.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 341Chapter 3: Using Hybrid Data Pipeline
342 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Table 29: Mapping tab connection parameters for Google BigQuery
Field Description
Create Map
Determines whether the Google BigQuery table mapping files are to be (re)created.
Hybrid Data Pipeline automatically maps data store objects and fields to tables and
columns the first time that it connects to the data store. The map includes both standard
and custom objects and includes any relationships defined between objects.
Table 30: Valid values for Create Map field
Value Description
Not Exist Select this option for most normal operations. If a map for a data source
does not exist, this option causes one to be created. If a map exists, the
service uses that existing map. If a name is not specified in the Map
Name field, the name will be a combination of the User Name and Data
Source ID.
Force New Select this option to force creation of a new map. A map is created on
connection whether one exists or not. The Hybrid Data Pipeline
connectivity service uses a combination of the User Name and Data
Source ID to name the map. Map creation is expensive, so you will likely
not want to leave this option set to Force New indefinitely.
Warning: This causes all views, data caches, and map customizations
defined in the current schema map to be lost.
Default: Not Exist
Refresh Schema
The Refresh Schema option specifies whether the connectivity service attempts to refresh
the schema when an application first connects.
Valid Values:
When set to ON, the connectivity service attempts to refresh the schema.
When set to OFF, the connectivity service does not attempt to refresh the schema.
Default: OFF
Notes:
• You can choose to refresh the schema by clicking the Refresh icon. This refreshes
the schema immediately. Note that the refresh option is available only while editing
the data source.
• Use the option to specify whether the connectivity service attempts to refresh the
schema when an application first connects. Click the Refresh icon if you want to refresh
the schema immediately, using an already saved configuration.
• If you are making other edits to the settings, you need to click update to save your
configuration. Clicking the Refresh icon will only trigger a runtime call on the saved
configuration.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 343Chapter 3: Using Hybrid Data Pipeline
Field Description
Schema Set
The project-dataset pairs for which metadata is fetched.
Variable Character
The maximum length of string columns.
Length
Default: 65535
Binary Length
The maximum length of binary columns.
Default: 65535
Keyword Conflict
Specifies a string of up to 5 alphanumeric characters that the connectivity service appends
Suffix
to any object or field name that conflicts with a SQL engine keyword.
Valid Values:
string
where:
string
is a string of up to 5 alphanumeric characters.
Default: _
Example:
A field called CASE exists in the data schema.To avoid a naming conflict with the keyword
CASE, you could set KeywordConflictSuffix=TAB. In this scenario, the connectivity
service maps the CASE field to the CASETAB column.
OData tab
The following table describes the controls on the OData tab. For information on using the Configure Schema
editor, see Configuring data sources for OData connectivity and working with data source groups on page 646.
For information on developing OData requests, see Formulating queries with OData Version 2 on page 868 or
Formulating queries with OData Version 4 on page 915.
344 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Table 31: OData tab connection parameters for Google BigQuery
Field Description
OData Version
Enables you to choose from the supported OData versions. OData configuration made
with one OData version will not work if you switch to a different OData version. If you want
to maintain the data source with different OData versions, you must create different data
sources for each of them.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 345Chapter 3: Using Hybrid Data Pipeline
Field Description
OData Name
Enables you to set the case for entity type, entity set, and property names in OData
Mapping Case
metadata.
Valid Values:
Uppercase | Lowercase | Default
When set to Uppercase, the case changes to all uppercase.
When set to Lowercase, the case changes to all lowercase.
When set to Default, the case does not change.
OData Access URI
Specifies the base URI for the OData feed to access the data source, for example,
https://example.com:8443/api/odata4/.You can copy
the URI and paste it into your application''s OData configuration.
The URI contains the case-insensitive name of the data source to connect to, and the
query that you want to execute. This URI is the OData Service Root URI for the OData
feed. The Service Document for the data source is returned by issuing a GET request to
the data source''s service root.
The OData Service Document returns the names of the entities exposed by the Data
Source OData service. To get details such as the properties of the entities exposed, the
data types for those properties and the relationships between entities, the Service Metadata
Document can be fetched by adding /$metadata to the service root URI.
Schema Map
Enables OData support. If a schema map is not defined, the OData API cannot be used
to access the data store using this data source definition. Use the Configure Schema
editor to select the tables/columns to expose through OData.
Page Size
Determines the number of entities returned on each page for paging controlled on the
server side. On the client side, requests can use the $top and $skip parameters to
control paging. In most cases, server side paging works well for large data sets. Client
side pagination works best with a smaller data sets where it is not as expensive to fetch
subsequent pages.
Valid Values: 0 | n
where n is an integer from 1 to 10000.
When set to 0, the server default of 2000 is used.
Default: 0
346 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
Refresh Result
Controls what happens when you fetch the first page of a cached result when using Client
Side Paging. Skip must be omitted or set to 0.You can use the cached copy of that first
page, or you can re-execute the query to get a new result, discarding the previously
cached result. Re-executing the query is useful when the data being fetched may change
between two requests for the first page. Using the cached result is useful if you are paging
back and forth through results that are not expected to change.
Valid Values:
When set to 0, the OData service caches the first page of results.
When set to 1, the OData service re-executes the query.
Default: 1
Inline Count Mode
Specifies how the connectivity service satisfies requests that include the $count parameter
when it is set to true (for OData version 4) or the $inlinecount parameter when it is
set to allpages (for OData version 2). These requests require the connectivity service
to include the total number of entities that are defined by the OData query request. The
count must be included in the first page in server-driven paging and must be included in
every page when using client-driven paging.
The optimal setting depends on the data store and the size of results. The OData service
can run a separate query using the count(*) aggregate to get the count, before running
the query used to generate the entities. In very large results, this approach can often lead
to the first page being returned faster. Alternatively, the OData service can fetch the entire
result before returning the first page. This approach works well for small results and for
data stores that cannot optimize the count(*) aggregate; however, it may have a longer
initial response time for the first page if the result is large.
Valid Values:
When set to 1, the connectivity service runs a separate count(*) aggregate query to
get the count of entities before executing the query to return results. In very large results,
this approach can often lead to the first page being returned faster.
When set to 2, the connectivity service fetches all entities before returning the first page.
For small results, this approach is always faster. However, the initial response time for
the first page may be longer if the result is large.
Default: 1
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 347Chapter 3: Using Hybrid Data Pipeline
Field Description
Top Mode
Indicates how requests typically use $top and $skip for client side pagination, allowing
the service to better anticipate how to process queries.
Valid Values:
Set to 0 when the application generally uses $top to limit the size of the result and rarely
attempts to get additional entities by combining $top and $skip.
Set to 1 when the application uses $top as part of client-driven paging and generally
combines $top and $skip to page through the result.
Default: 0
OData Read Only
Controls whether write operations can be performed on the OData service.Write operations
generate a 405 Method Not Allowed response if this option is enabled.
Valid Values:
ON | OFF
When ON is selected, OData access is restricted to read-only mode.
When OFF is selected, write operations can be performed on the OData service.
Default: OFF
348 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Performance tab
Table 32: Performance tab connection parameters for Google BigQuery
Field Description
Job Timeout
The time, in seconds, that the connectivity service waits for a job to run before timing it out.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 349Chapter 3: Using Hybrid Data Pipeline
Field Description
Valid Values:
0 | x
where:
x
is a positive integer that defines the number of seconds the connectivity service
waits for a job to run.
If set to 0, the connectivity service waits indefinitely for a job to run; there is no timeout.
If set to x, the connectivity service uses the value as the default timeout for any job run
against Google BigQuery.
Default: 0 (no timeout)
Use Query
Determines whether results are saved to Google BigQuery''s query cache.
Cache
Valid Values:
OFF | ON
If set to OFF, the query cache is not used to save results.
If set to ON, query cache is used to save results.
Default: ON
350 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
Fetch Size
The maximum number of rows that are processed before returning data to the application
when executing a Select. This value provides a suggestion as to the number of rows the
connectivity service should internally process before returning control to the application.
The service may fetch fewer rows to conserve memory when processing exceptionally wide
rows.
Valid Values:
0 | x
where:
x
is a positive integer indicating the number of rows that should be processed.
If set to 0, all the rows of the result are processed before returning control to the application.
When large data sets are being processed, setting Fetch Size to 0 can diminish performance
and increase the likelihood of out-of-memory errors.
If set to x, the number of rows that may be processed for each fetch request are limited to
this setting before returning control to the application.
Default: 100 (rows)
Notes:
• To optimize throughput and conserve memory, the connectivity service uses an internal
algorithm to determine how many rows should be processed based on the width of rows
in the result set.Therefore, the connectivity service may process fewer rows than specified
by Fetch Size when the result set contains exceptionally wide rows. Alternatively, the
connectivity service processes the number of rows specified by Fetch Size when the
result set contains rows of unexceptional width.
• Fetch Size and Web Service Fetch Size can be used to adjust the trade-off between
throughput and response time. Smaller fetch sizes can improve the initial response time
of the query. Larger fetch sizes can improve overall response times at the cost of
additional memory.
• You can use Fetch Size to reduce demands on memory and decrease the likelihood of
out-of-memory errors. Simply, decrease Fetch Size to reduce the number of rows the
connectivity service is required to process before returning data to the application.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 351Chapter 3: Using Hybrid Data Pipeline
Field Description
Web Service
Specifies the number of rows of data the connectivity service attempts to fetch for each web
Fetch Size
service call.
Valid Values:
0 | x
where:
x
is a positive integer from 1 to 2147483647 that defines a number of rows.
If set to 0, the connectivity service attempts to fetch up to a maximum of 2147483647 rows.
This value typically provides the maximum throughput.
If set to x, the connectivity service attempts to fetch up to a maximum of the specified number
of rows. Setting the value lower than 1000000 can reduce the response time for returning
the initial data. Consider using a smaller Web Service Fetch Size for interactive applications
only.
Default: 1000000 (rows)
Notes:
Web Service Fetch Size and Fetch Size can be used to adjust the trade-off between
throughput and response time. Smaller fetch sizes can improve the initial response time of
the query. Larger fetch sizes can improve overall response times at the cost of additional
memory.
352 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
Web Service
Specifies the maximum number of Google BigQuery sessions. This allows the connectivity
Pool Size
service to have multiple web service requests active when multiple connections are open,
thereby improving throughput and performance.
Valid Values:
x
where:
x
is the number of Google BigQuery sessions the connectivity service uses to
distribute calls. This value should not exceed the number of sessions permitted
by the Google BigQuery account.
Default: 1
Notes:
• You can improve performance by increasing the number of sessions specified by this
option. By increasing the number of sessions, you can improve throughput by distributing
calls across multiple sessions when multiple connections are active.
• The maximum number of sessions is determined by the setting of Web Service Pool
Size for the connection that initiates the session. For subsequent connections to an
active session, the setting is ignored and a warning is returned.To change the maximum
number of sessions, close all connections.Then, open a new Google BigQuery connection
with desired limit specified for this option.
Web Service
The number of times to retry a timed-out Select request. Insert, Update, and Delete requests
Retry Count
are never retried.The Web Service Timeout parameter specifies the period between retries.
A value of 0 for the retry count prevents retries. A positive integer sets the number of retries.
Default: 0
Web Service
The time, in seconds, to wait before retrying a timed-out Select request. Valid only if the
Timeout
value of Web Service Retry Count is greater than zero. A value of 0 for the timeout waits
indefinitely for the response to a Web service request.There is no timeout. A positive integer
is considered as a default timeout for any statement created by the connection. The default
value is 120.
Default: 120
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 353Chapter 3: Using Hybrid Data Pipeline
Field Description
Use Storage API
Specifies whether the Google BigQuery Storage API is used when fetching large result sets
based on the values of the Storage API Threshold and Storage API Minimum Page Count
parameters.
Valid Values
OFF | ON
If set to OFF, the Storage API is not used, and the Storage API Threshold and Storage API
Minimum Page Count parameters are ignored.
If set to ON, the Storage API is used for selects when the number of rows in the result set
exceeds the value of the Storage API Threshold parameter, and the number of pages in
the result set exceeds the value of the Storage API Minimum Page Count parameter.
Default: OFF
Storage API
The number of rows that, if exceeded, signals the connectivity service to use the Google
Threshold
BigQuery Storage API for select operations. For this behavior to take effect, the Use Storage
API parameter must be set to ON (enabled), and the value of the Storage API Mininum Page
Count parameter must be exceeded.
Valid Values
x
where:
x
is a positive integer that indicates a number of rows in a result set.
Default: 10000 (rows)
Storage API
The number of pages that, if exceeded, signals the connectivity service to use the Google
Minimum Page
BigQuery Storage API for select operations. For this behavior to take effect, the Use Storage
Count
API parameter must be set to ON (enabled), and the value of the Storage API Threshold
parameter must be exceeded.
Valid Values
x
where:
x
is a positive integer that indicates a number of pages in a result set.
Default: 3 (pages)
354 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Advanced tab
Table 33: Advanced tab connection parameters for Google BigQuery
Field Description
Enable Catalog
Determines whether the connectivity service supports specifying values for catalog
Support
parameters in metadata calls. Note that catalogs and schemas are equivalent to projects
and datasets in Google BigQuery.
Valid Values
OFF | ON
If set to OFF, no value can be specified for the catalog parameter in metadata calls. The
values for catalog and schema must be specified within the schema parameter, separated
by a period. For example:
getTables(Null,"MyProject.Dataset1","Employee",Null), where MyProject
is a catalog, Dataset1 is a schema, and Employee is a table.
If set to ON, a value can be specified for the catalog parameter in metadata calls. For example:
getTables("MyProject","Dataset1","Employee",Null), where MyProject is
a catalog, Dataset1 is a schema, and Employee is a table.
Default: OFF
Extended
Specifies a semi-colon delimited list of connection options and their values. Use this
Options
configuration option to set the value of undocumented connection options that are provided
by Progress DataDirect technical support.You can include any valid connection option in
the Extended Options string, for example:
Database=Server1;UndocumentedOption1=value[;
UndocumentedOption2=value;]
If the Extended Options string contains option values that are also set in the setup dialog,
the values of the options specified in the Extended Options string take precedence.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 355Chapter 3: Using Hybrid Data Pipeline
Obtaining client information and tokens
This section guides you through the process of obtaining client information and generating tokens used to
authenticate to Google BigQuery when OAuth 2.0 is set as the authentication method.
To generate an access token and a refresh token from Google Cloud Console:
1. Go to the APIs & Services dashboard.
2. Select the project for which you want to generate access and refresh tokens.
3. Click OAuth consent screen on the left.
4. Click EDIT APP.
5. On the Edit app registration page, provide the following information:
• Application name
• Support email
• Scopes for Google APIs
• Authorized domains
• Application Homepage link
• Application Privacy Policy link
6. Click Credentials on the left. Click +CREATE CREDENTIALS, and select OAuth client ID from the
dropdown.
7. On the Create OAuth client ID page, select Web application from the Application type dropdown. Provide
the following information, and click CREATE.
• Name
• Authorized JavaScript origins
• Authorized redirect URIs
Result:
The OAuth cleint window appears.
8. Copy and save your client ID and client secret from the corresponding fields.
9. Navigate to the OAuth 2.0 Playground.
10. Select the required scopes; then, click Authorize APIs.
11. On the login screen, click your username. The following message appears: "Google OAuth 2.0 Playground
wants to access your Google Account."
12. Scroll down and click Allow.
You are redirected to the OAuth 2.0 Playground. It contains the newly generated authorization code for
your application.
13. Click Exchange authorization code for tokens, and record the refresh and access tokens generated in
the corresponding fields.
356 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Obtaining the private key file
This section guides you through the process of obtaining the private key file. A private key file must be specified
when creating a data source with service account authentication.
To obtain a private key file from Google Cloud Console:
1. Go to the APIs & Services dashboard.
2. Click Credentials on the left.
3. If you have not already created service account credentials, click + CREATE CREDENTIALS, and select
Service account from the dropdown.
4. Provide the required information on the Create service account page.
5. Click the service account for which you want to obtain a private key file.
6. Select the KEYS tab.
7. From the ADD KEY dropdown, select Create new key, and select the format of the private key file you
want to create and download. Press CREATE.
Results:
The private key file is downloaded to your local machine. The private key file should be moved to a secure
location, but one that is accessible to the Hybrid Data Pipeline service. The service uses the contents of the
private key file to authenticate clients with Google BigQuery.You must specify the full path to the private key
file when you create your Google BigQuery data source.
Note: If you are using a P12 file, take note of the private key password and secure it.
Greenplum parameters
The following tables describe parameters available on the tabs of a Greenplum Data Source setup dialog:
• General tab
• OData tab
• Security tab
• Advanced tab
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 357Chapter 3: Using Hybrid Data Pipeline
General tab
358 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Table 34: General tab connection parameters for Greenplum
Field Description
Data Source
A unique name for the data source. Data source names can contain only alphanumeric
Name
characters, underscores, and dashes.
Description
A general description of the data source.
User Id
The login credentials for your Greenplum server.
The Hybrid Data Pipeline connectivity service uses this information to connect to the data
store. The administrator of the data store must grant permission to a user with these
credentials to access the data store and the target data.
Note: You can save the Data Source definition without specifying the login credentials.
In that case, when you test the Data Source connection, you will be prompted to specify
these details. Applications using the connectivity service will have to supply the data store
credentials (if they are not saved in the Data Source) in addition to the Data Source name
and the credentials for the Hybrid Data Pipeline connectivity service.
Password
Specifies a case-sensitive password that is used to connect to your Greenplum database.
A password is required if user ID/Password authentication is enabled on your database.
Contact your system administrator to obtain your password.
Note: By default, the password is encrypted.
By default, the characters in the Password field you type are not shown. If you want the
password to be displayed in clear text, click the eye icon. Click the icon again to
conceal the password.
Server Name
Specifies either the IP address in IPv4 or IPv6 format, or the server name (if your network
supports named servers) of the primary database server, for example, GreenplumServer
or 122.23.15.12.
Valid Values: string
where:
string
is a valid IP address or server name.
The IP address can be specified in either IPv4 or IPv6 format, or a combination of the two.
Port Number The port number of the Greenplum server to which you want to connect.
Database
The name of the database that is running on the database server.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 359Chapter 3: Using Hybrid Data Pipeline
Field Description
Connector ID
The unique identifier of the On-Premise Connector that is to be used to access the
on-premise data source. Select the Connector that you want to use from the dropdown.
The identifier can be a descriptive name, the name of the machine where the Connector
is installed, or the Connector ID for the Connector.
If you have not installed an On-Premise Connector, and no Connectors have been shared
with you, this field and drop-down list are empty.
If you own multiple Connectors that have the same name, for example, Production, an
identifier is appended to each Connector, for example, Production_dup0 and
Production_dup1. If the Connectors in the dropdown were shared with you, the owner''s
name is appended, for example, Production(owner1) and Production(owner2).
Security tab
Table 35: Security tab connection parameters for Greenplum
Field Description
Crypto Protocol
Specifies a protocol version or a comma-separated list of the protocol versions that can
Version
be used in creating an SSL connection to the data source. If the protocol (or none of the
protocols) is not supported by the database server, the connection fails and the connectivity
service returns an error.
Valid Values:
cryptographic_protocol [[, cryptographic_protocol ]...]
360 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
where:
cryptographic_protocol
is one of the following cryptographic protocols:
TLSv1 | TLSv1.1 | TLSv1.2
The client must send the highest version that it supports in the client hello.
Note: Good security practices recommend using TLSv1.2 if your data source supports
that protocol version, due to known vulnerabilities in the earlier protocols.
Example
Your security environment specifies that you can use TLSv1.1 and TLSv1.2. When you
enter the following values, the connectivity service sends TLSv1.2 to the server first.
TLSv1.1,TLSv1.2
Default: TLSv1, TLSv1.1, TLSv1.2
Encryption Method
Determines whether data is encrypted and decrypted when transmitted over the network
between the Hybrid Data Pipeline connectivity service and the on-premise database
server.
Valid Values:
noEncryption | SSL
If set to noEncryption, data is not encrypted or decrypted.
If set to SSL, data is encrypted using SSL. If the database server does not support SSL,
the connection fails and the Hybrid Data Pipeline connectivity service throws an exception.
Note:
• Connection hangs can occur when the Hybrid Data Pipeline connectivity service is
configured for SSL and the database server does not support SSL.You might want
to set a login timeout using the Login Timeout property to avoid problems when
connecting to a server that does not support SSL.
• When SSL is enabled, the following properties also apply:
Host Name In Certificate
ValidateServerCertificate
Crypto Protocol Version
The default value is noEncryption.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 361Chapter 3: Using Hybrid Data Pipeline
Field Description
Host Name In
Specifies a host name for certificate validation when SSL encryption is enabled (Encryption
Certificate
Method=SSL) and validation is enabled (Validate Server Certificate=ON). This optional
parameter provides additional security against man-in-the-middle (MITM) attacks by
ensuring that the server that the Hybrid Data Pipeline connectivity service is connecting
to is the server that was requested.
Valid Values:
host_name | #SERVERNAME#
where host_name is a valid host name.
If host_name is specified, the Hybrid Data Pipeline connectivity service compares the
specified host name to the DNSName value of the SubjectAlternativeName in the
certificate. If a DNSName value does not exist in the SubjectAlternativeName or if the
certificate does not have a SubjectAlternativeName, the Hybrid Data Pipeline connectivity
service compares the host name with the Common Name (CN) part of the certificate’s
Subject name. If the values do not match, the connection fails and the Hybrid Data Pipeline
connectivity service throws an exception.
If #SERVERNAME# is specified, the Hybrid Data Pipeline connectivity service compares
the server name that is specified in the connection URL or data source of the connection
to the DNSName value of the SubjectAlternativeName in the certificate. If a DNSName
value does not exist in the SubjectAlternativeName or if the certificate does not have a
SubjectAlternativeName, the Hybrid Data Pipeline connectivity service compares the host
name to the CN part of the certificate’s Subject name. If the values do not match, the
connection fails and the connectivity service throws an exception. If multiple CN parts are
present, the connectivity service validates the host name against each CN part. If any
one validation succeeds, a connection is established.
Default: Empty string
ValidateServer
Certificate
362 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
Determines whether the Hybrid Data Pipeline connectivity service validates the certificate
that is sent by the database server when SSL encryption is enabled (Encryption
Method=SSL). When using SSL server authentication, any certificate that is sent by the
server must be issued by a trusted Certificate Authority (CA). Allowing the connectivity
service to trust any certificate that is returned from the server even if the issuer is not a
trusted CA is useful in test environments because it eliminates the need to specify truststore
information on each client in the test environment.
Valid Values:
ON | OFF
If set to ON, the Hybrid Data Pipeline connectivity service validates the certificate that is
sent by the database server. Any certificate from the server must be issued by a trusted
CA in the truststore file. If the Host Name In Certificate parameter is specified, the
connectivity service also validates the certificate using a host name. The Host Name In
Certificate parameter is optional and provides additional security against man-in-the-middle
(MITM) attacks by ensuring that the server the connectivity service is connecting to is the
server that was requested.
If set to OFF, the Hybrid Data Pipeline connectivity service does not validate the certificate
that is sent by the database server. The connectivity service ignores any Java system
properties.
Default: ON
OData tab
The following table describes the controls on the OData tab. For information on using the Configure Schema
editor, see Configuring data sources for OData connectivity and working with data source groups on page 646.
For information on formulating OData requests, see "Formulating queries" under Querying with OData.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 363Chapter 3: Using Hybrid Data Pipeline
Table 36: OData tab connection parameters for Greenplum
Field Description
OData Version
Enables you to choose from the supported OData versions. OData configuration made
with one OData version will not work if you switch to a different OData version. If you want
to maintain the data source with different OData versions, you must create different data
sources for each of them.
OData Name
Enables you to set the case for entity type, entity set, and property names in OData
Mapping Case
metadata.
Valid Values: Uppercase | Lowercase | Default
When set to Uppercase, the case changes to all uppercase.
When set to Lowercase, the case changes to all lowercase.
When set to Default, the case does not change.
364 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
OData Access URI
Specifies the base URI for the OData feed to access your data source, for example,
https://hybridpipe.operations.com/api/odata/.You
can copy the URI and paste it into your application''s OData configuration.
The URI contains the case-insensitive name of the data source to connect to, and the
query that you want to execute. This URI is the OData Service Root URI for the OData
feed. The Service Document for the data source is returned by issuing a GET request to
the data source''s service root.
The OData Service Document returns the names of the entities exposed by the Data
Source OData service. To get details such as the properties of the entities exposed, the
data types for those properties and the relationships between entities, the Service Metadata
Document can be fetched by adding /$metadata to the service root URI.
Schema Map
Enables OData support. If a schema map is not defined, the OData API cannot be used
to access the data store using this data source definition. Use the Configure Schema
editor to select the tables/columns to expose through OData.
See Configuring data sources for OData connectivity and working with data source groups
on page 646 for more information.
Page Size
Determines the number of entities returned on each page for paging controlled on the
server side. On the client side, requests can use the $top and $skip parameters to
control paging. In most cases, server side paging works well for large data sets. Client
side pagination works best with a smaller data sets where it is not as expensive to fetch
subsequent pages.
Valid Values: 0 | n
where n is an integer from 1 to 10000.
When set to 0, the server default of 2000 is used.
Default: 0
Refresh Result
Controls what happens when you fetch the first page of a cached result when using Client
Side Paging. Skip must be omitted or set to 0.You can use the cached copy of that first
page, or you can re-execute the query to get a new result, discarding the previously
cached result. Re-executing the query is useful when the data being fetched may change
between two requests for the first page. Using the cached result is useful if you are paging
back and forth through results that are not expected to change.
Valid Values:
When set to 0, the OData service caches the first page of results.
When set to 1, the OData service re-executes the query.
Default: 1
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 365Chapter 3: Using Hybrid Data Pipeline
Field Description
Inline Count Mode
Specifies how the connectivity service satisfies requests that include the $count parameter
when it is set to true (for OData version 4) or the $inlinecount parameter when it is
set to allpages (for OData version 2). These requests require the connectivity service
to include the total number of entities that are defined by the OData query request. The
count must be included in the first page in server-driven paging and must be included in
every page when using client-driven paging.
The optimal setting depends on the data store and the size of results. The OData service
can run a separate query using the count(*) aggregate to get the count, before running
the query used to generate the entities. In very large results, this approach can often lead
to the first page being returned faster. Alternatively, the OData service can fetch the entire
result before returning the first page. This approach works well for small results and for
data stores that cannot optimize the count(*) aggregate; however, it may have a longer
initial response time for the first page if the result is large.
Valid Values:
When set to 1, the connectivity service runs a separate count(*) aggregate query to
get the count of entities before executing the query to return results. In very large results,
this approach can often lead to the first page being returned faster.
When set to 2, the connectivity service fetches all entities before returning the first page.
For small results, this approach is always faster. However, the initial response time for
the first page may be longer if the result is large.
Default: 1
Top Mode
Indicates how requests typically use $top and $skip for client side pagination, allowing
the service to better anticipate how to process queries.
Valid Values:
Set to 0 when the application generally uses $top to limit the size of the result and rarely
attempts to get additional entities by combining $top and $skip.
Set to 1 when the application uses $top as part of client-driven paging and generally
combines $top and $skip to page through the result.
Default: 0
OData Read Only
Controls whether write operations can be performed on the OData service.Write operations
generate a 405 Method Not Allowed response if this option is enabled.
Valid Values:
ON | OFF
When ON is selected, OData access is restricted to read-only mode.
When OFF is selected, write operations can be performed on the OData service.
Default: OFF
366 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Advanced tab
Table 37: Advanced tab connection parameters for Greenplum
Field Description
Alternate Servers
Specifies one or more alternate servers for failover and is required for all failover methods.
To turn off failover, do not specify a value for the Alternate Servers connection property.
Valid Values:
(servername1[:port1][,servername2[:port2]]...)
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 367Chapter 3: Using Hybrid Data Pipeline
Field Description
The server name (servername1, servername2, and so on) is required for each alternate
server entry. Port number (port1, port2, and so on) is optional for each alternate server
entry. If the port is unspecified, the port number of the primary server is used. If the port
number of the primary server is unspecified, the default port number is used.
Default: None
Load Balancing
Determines whether the connectivity service uses client load balancing in its attempts to
connect to the servers (primary and alternate) defined in a Connector group.You can
specify one or multiple alternate servers by setting the AlternateServers property.
Valid Values: ON | OFF
If set to ON, the connectivity service uses client load balancing and attempts to connect to
the servers (primary and alternate) in random order. The connectivity service randomly
selects from the list of primary and alternate On Premise Connectors which server to
connect to first. If that connection fails, the connectivity service again randomly selects
from this list of servers until all servers in the list have been tried or a connection is
successfully established.
If set to OFF, the connectivity service does not use client load balancing and connects to
each servers based on their sequential order (primary server first, then, alternate servers
in the order they are specified).
Default: OFF
Notes
• The Alternate Servers parameter specifies one or multiple alternate servers for failover
and is required for all failover methods. To turn off failover, do not specify a value for
the Alternate Servers property.
Catalog Options Determines which type of metadata information is included in result sets when an application
calls DatabaseMetaData methods.
Valid Values:
2 | 4
If set to 2, the Hybrid Data Pipeline connectivity service queries database catalogs for
column information.
If set to 4, a hint is provided to the Hybrid Data Pipeline connectivity service to emulate
getColumns() calls using the ResultSetMetaData object instead of querying database
catalogs for column information. Using emulation can improve performance because the
SQL statement that is formulated by the emulation is less complex than the SQL statement
that is formulated using getColumns(). The argument to getColumns() must evaluate to a
single table. If it does not, because of a wildcard or null value, for example, the connectivity
service reverts to the default behavior for getColumns() calls.
Default: 2
368 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
Extended Options
Specifies a semi-colon delimited list of connection options and their values. Use this
configuration option to set the value of undocumented connection options that are provided
by Progress DataDirect technical support.You can include any valid connection option in
the Extended Options string, for example:
Database=Server1;UndocumentedOption1=value[;
UndocumentedOption2=value;]
If the Extended Options string contains option values that are also set in the setup dialog,
the values of the options specified in the Extended Options string take precedence.
Initialization String
A semicolon delimited set of commands to be executed on the data store after Hybrid Data
Pipeline has established and performed all initialization for the connection. If the execution
of a SQL command fails, the connection attempt also fails and Hybrid Data Pipeline returns
an error indicating which SQL commands failed.
Syntax:
command[[; command]...]
Where:
command
is a SQL command. Multiple commands must be separated by semicolons. In addition, if
this property is specified in a connection URL, the entire value must be enclosed in
parentheses when multiple commands are specified. For example, assuming a schema
name of SFORCE:
InitializationString=(REFRESH SCHEMA SFORCE)
The default is an empty string.
Login Timeout
The amount of time, in seconds, to wait for a connection to be established before timing
out the connection request.
Valid Values:
0 | x
where x is a positive integer that represents a number of seconds.
If set to 0, the connectivity service does not time out a connection request.
If set to x, the connectivity service waits for the specified number of seconds before
returning control to the application and throwing a timeout exception.
Default: 30
Max Pooled
The maximum number of prepared statements to cache for this connection. If the value
Statements
of this property is set to 20, the connectivity service caches the last 20 prepared statements
that are created by the application.
The default value is 0.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 369Chapter 3: Using Hybrid Data Pipeline
Field Description
Query Timeout Sets the default query timeout (in seconds) for all statements created by a connection.
Valid Values:
-1 | 0 | x
If set to -1, the query timeout functionality is disabled.The Hybrid Data Pipeline connectivity
service silently ignores calls to the Statement.setQueryTimeout() method.
If set to 0, the default query timeout is infinite (the query does not time out).
If set to x, the Hybrid Data Pipeline connectivity service uses the value as the default
timeout for any statement that is created by the connection.To override the default timeout
value set by this connection option, call the Statement.setQueryTimeout() method to set
a timeout value for a particular statement.
Default: 0
Result Set Meta Determines whether the Hybrid Data Pipeline connectivity service returns table name
Data Options information in the ResultSet metadata for Select statements.
Valid Values:
0 | 1
If set to 0 and the ResultSetMetaData.getTableName() method is called, the Hybrid Data
Pipeline connectivity service does not perform additional processing to determine the
correct table name for each column in the result set. The getTableName() method may
return an empty string for each column in the result set.
If set to 1 and the ResultSetMetaData.getTableName() method is called, the Hybrid Data
Pipeline connectivity service performs additional processing to determine the correct table
name for each column in the result set. The connectivity service returns schema name
and catalog name information when the ResultSetMetaData.getSchemaName() and
ResultSetMetaData.getCatalogName() methods are called if the connectivity service can
determine that information.
Default: 0
370 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
Transaction Error
Determines how the driver handles errors that occur within a transaction. When an error
Behavior
occurs in a transaction, the Greenplum server does not allow any operations on the
connection except for rolling back the transaction.
Valid Values:
none | RollbackTransaction
If set to none, the connectivity service does not roll back the transaction when an error
occurs. The application must handle the error and roll back the transaction. Any operation
on the statement other than a rollback results in an error.
If set to RollbackTransaction, the connectivity service rolls back the transaction when
an error occurs. In addition to the original error message, the connectivity service posts
an error message indicating that the transaction has been rolled back.
Default: RollbackTransaction
Metadata
Restricts the metadata exposed by Hybrid Data Pipeline to a single schema.The metadata
Exposed
exposed in the SQL Editor, the Configure Schema Editor, and third party applications will
Schemas
be limited to the specified schema. JDBC, OData, and ODBC metadata calls will also be
restricted. In addition, calls made with the Schema API will be limited to the specified
schema.
Warning: This functionality should not be regarded as a security measure. While
the Metadata Exposed Schemas option restricts the metadata exposed by Hybrid
Data Pipeline to a single schema, it does not prevent queries against other schemas
on the backend data store. As a matter of best practice, permissions should be
set on the backend data store to control the ability of users to query data.
Valid Values
Where:
is the name of a valid schema on the backend data store.
Default: No schema is specified. Therefore, all schemas are exposed.
See the steps for:
How to create a data source in the Web UI on page 240
Informix parameters
The following tables describe parameters available on the tabs of an Informix Data Source dialog:
• General tab
• OData tab
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 371Chapter 3: Using Hybrid Data Pipeline
• Advanced tab
General tab
372 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Table 38: General tab connection parameters for Informix
Field Description
Data Source
A unique name for the data source. Data source names can contain only alphanumeric
Name
characters, underscores, and dashes.
Description
A general description of the data source.
User Id
The login credentials for your Informix server.
The Hybrid Data Pipeline connectivity service uses this information to connect to the data
store. The administrator of the data store must grant permission to a user with these
credentials to access the data store and the target data.
Note: You can save the Data Source definition without specifying the login credentials.
In that case, when you test the Data Source connection, you will be prompted to specify
these details. Applications using the connectivity service will have to supply the data store
credentials (if they are not saved in the Data Source) in addition to the Data Source name
and the credentials for the Hybrid Data Pipeline connectivity service.
Password
Specifies a case-sensitive password that is used to connect to your Informix database. A
password is required if user ID/Password authentication is enabled on your database.
Contact your system administrator to obtain your password.
Note: By default, the password is encrypted.
By default, the characters in the Password field you type are not shown. If you want the
password to be displayed in clear text, click the eye icon. Click the icon again to
conceal the password.
Host Name
Specifies either the IP address in IPv4 or IPv6 format, or the server name (if your network
supports named servers) of the primary database server, for example, InformixServer
or 122.23.15.12.
Valid Values: string
where:
string
is a valid IP address or server name.
The IP address can be specified in either IPv4 or IPv6 format, or a combination of the two.
Port Number The port number of the Informix server to which you want to connect.
Informix Server The name of the Informix database server to which you want to connect.
Database
The name of the database that is running on the database server.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 373Chapter 3: Using Hybrid Data Pipeline
Field Description
Connector ID
The unique identifier of the On-Premises Connector that is used to access the on-premise
data source. Click the arrow and select the Connector that you want to use. The
identifier can be a descriptive name, the name of the machine where the Connector is
installed, or the Connector ID for the Connector.
If you have not installed an On-Premises Connector, and no Connectors have been shared
with you, this field and drop-down list are empty.
If you own multiple Connectors that have the same name, for example, Production, an
identifier is appended to each Connector, for example, Production_dup0 and
Production_dup1. If the Connectors in the drop-down list were shared with you, the
owner''s name is appended, for example, Production(owner1) and
Production(owner2).
OData tab
The following table describes the controls on the OData tab. For information on using the Configure Schema
editor, see Configuring data sources for OData connectivity and working with data source groups on page 646.
For information on formulating OData requests, see Formulating queries with OData Version 2 on page 868.
374 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Table 39: OData tab connection parameters for Informix
Field Description
OData Version
Enables you to choose from the supported OData versions. OData configuration made
with one OData version will not work if you switch to a different OData version. If you want
to maintain the data source with different OData versions, you must create different data
sources for each of them.
OData Name
Enables you to set the case for entity type, entity set, and property names in OData
Mapping Case
metadata.
Valid Values: Uppercase | Lowercase | Default
When set to Uppercase, the case changes to all uppercase.
When set to Lowercase, the case changes to all lowercase.
When set to Default, the case does not change.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 375Chapter 3: Using Hybrid Data Pipeline
Field Description
OData Access URI
Specifies the base URI for the OData feed to access your data source, for example,
https://hybridpipe.operations.com/api/odata/.You
can copy the URI and paste it into your application''s OData configuration.
The URI contains the case-insensitive name of the data source to connect to, and the
query that you want to execute. This URI is the OData Service Root URI for the OData
feed. The Service Document for the data source is returned by issuing a GET request to
the data source''s service root.
The OData Service Document returns the names of the entities exposed by the Data
Source OData service. To get details such as the properties of the entities exposed, the
data types for those properties and the relationships between entities, the Service Metadata
Document can be fetched by adding /$metadata to the service root URI.
Schema Map
Enables OData support. If a schema map is not defined, the OData API cannot be used
to access the data store using this data source definition. Use the Configure Schema
editor to select the tables/columns to expose through OData.
See Configuring data sources for OData connectivity and working with data source groups
on page 646 for more information.
Page Size
Determines the number of entities returned on each page for paging controlled on the
server side. On the client side, requests can use the $top and $skip parameters to
control paging. In most cases, server side paging works well for large data sets. Client
side pagination works best with a smaller data sets where it is not as expensive to fetch
subsequent pages.
Valid Values: 0 | n
where n is an integer from 1 to 10000.
When set to 0, the server default of 2000 is used.
Default: 0
Refresh Result
Controls what happens when you fetch the first page of a cached result when using Client
Side Paging. Skip must be omitted or set to 0.You can use the cached copy of that first
page, or you can re-execute the query to get a new result, discarding the previously
cached result. Re-executing the query is useful when the data being fetched may change
between two requests for the first page. Using the cached result is useful if you are paging
back and forth through results that are not expected to change.
Valid Values:
When set to 0, the OData service caches the first page of results.
When set to 1, the OData service re-executes the query.
Default: 1
376 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
Inline Count Mode
Specifies how the connectivity service satisfies requests that include the $count parameter
when it is set to true (for OData version 4) or the $inlinecount parameter when it is
set to allpages (for OData version 2). These requests require the connectivity service
to include the total number of entities that are defined by the OData query request. The
count must be included in the first page in server-driven paging and must be included in
every page when using client-driven paging.
The optimal setting depends on the data store and the size of results. The OData service
can run a separate query using the count(*) aggregate to get the count, before running
the query used to generate the entities. In very large results, this approach can often lead
to the first page being returned faster. Alternatively, the OData service can fetch the entire
result before returning the first page. This approach works well for small results and for
data stores that cannot optimize the count(*) aggregate; however, it may have a longer
initial response time for the first page if the result is large.
Valid Values:
When set to 1, the connectivity service runs a separate count(*) aggregate query to
get the count of entities before executing the query to return results. In very large results,
this approach can often lead to the first page being returned faster.
When set to 2, the connectivity service fetches all entities before returning the first page.
For small results, this approach is always faster. However, the initial response time for
the first page may be longer if the result is large.
Default: 1
Top Mode
Indicates how requests typically use $top and $skip for client side pagination, allowing
the service to better anticipate how to process queries.
Valid Values:
Set to 0 when the application generally uses $top to limit the size of the result and rarely
attempts to get additional entities by combining $top and $skip.
Set to 1 when the application uses $top as part of client-driven paging and generally
combines $top and $skip to page through the result.
Default: 0
OData Read Only
Controls whether write operations can be performed on the OData service.Write operations
generate a 405 Method Not Allowed response if this option is enabled.
Valid Values:
ON | OFF
When ON is selected, OData access is restricted to read-only mode.
When OFF is selected, write operations can be performed on the OData service.
Default: OFF
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 377Chapter 3: Using Hybrid Data Pipeline
Advanced tab
Table 40: Advanced tab connection parameters for Informix
Field Description
Alternate Servers
Specifies one or more alternate servers for failover and is required for all failover methods.
To turn off failover, do not specify a value for the Alternate Servers connection property.
Valid Values:
(servername1[:port1][,servername2[:port2]]...)
The server name (servername1, servername2, and so on) is required for each alternate
server entry. Port number (port1, port2, and so on) is optional for each alternate server
entry. If the port is unspecified, the port number of the primary server is used. If the port
number of the primary server is unspecified, the default port number is used.
378 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
Default: None
Load Balancing
Determines whether the connectivity service uses client load balancing in its attempts to
connect to the servers (primary and alternate) defined in a Connector group.You can
specify one or multiple alternate servers by setting the AlternateServers property.
Valid Values: ON | OFF
If set to ON, the connectivity service uses client load balancing and attempts to connect to
the servers (primary and alternate) in random order. The connectivity service randomly
selects from the list of primary and alternate On Premise Connectors which server to
connect to first. If that connection fails, the connectivity service again randomly selects
from this list of servers until all servers in the list have been tried or a connection is
successfully established.
If set to OFF, the connectivity service does not use client load balancing and connects to
each servers based on their sequential order (primary server first, then, alternate servers
in the order they are specified).
Default: OFF
Notes
• The Alternate Servers connection parameter specifies one or multiple alternate servers
for failover and is required for all failover methods. To turn off failover, do not specify
a value for the Alternate Servers parameter.
Catalog Options Determines which type of metadata information is included in result sets when an application
calls DatabaseMetaData methods.To include multiple types of metatdata information, add
the sum of the values that you want to include. In this case, specify 6 to query database
catalogs for column information and to emulate getColumns() calls.
Valid Values:
2 | 4
If set to 2, the connectivity service queries database catalogs for column information.
If set to 4, a hint is provided to the Hybrid Data Pipeline connectivity service to emulate
getColumns() calls using the ResultSetMetaData object instead of querying database
catalogs for column information. Using emulation can improve performance because the
SQL statement that is formulated by the emulation is less complex than the SQL statement
that is formulated using getColumns(). The argument to getColumns() must evaluate to a
single table. If it does not, because of a wildcard or null value, for example, the Hybrid
Data Pipeline connectivity service reverts to the default behavior for getColumns() calls.
Default: 2
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 379Chapter 3: Using Hybrid Data Pipeline
Field Description
Code Page The code page to be used by the Hybrid Data Pipeline connectivity service to convert
Override Character and Clob data. The specified code page overrides the default database code
page or column collation. All Character and Clob data that is returned from or written to
the database is converted using the specified code page.
By default, the Hybrid Data Pipeline connectivity service automatically determines which
code page to use to convert Character data. Use this parameter only if you need to change
the connectivity service’s default behavior.
Valid Values:
string
where string is the name of a valid code page that is supported by your JVM.CP950.
Default: empty string
Extended Options
Specifies a semi-colon delimited list of connection options and their values. Use this
configuration option to set the value of undocumented connection options that are provided
by Progress DataDirect technical support.You can include any valid connection option in
the Extended Options string, for example:
Database=Server1;UndocumentedOption1=value[;
UndocumentedOption2=value;]
If the Extended Options string contains option values that are also set in the setup dialog,
the values of the options specified in the Extended Options string take precedence.
Initialization String
A semicolon delimited set of commands to be executed on the data store after Hybrid Data
Pipeline has established and performed all initialization for the connection. If the execution
of a SQL command fails, the connection attempt also fails and Hybrid Data Pipeline returns
an error indicating which SQL commands failed.
Syntax:
command[[; command]...]
Where:
command
is a SQL command. Multiple commands must be separated by semicolons. In addition, if
this property is specified in a connection URL, the entire value must be enclosed in
parentheses when multiple commands are specified. For example, assuming a schema
name of SFORCE:
InitializationString=(REFRESH SCHEMA SFORCE)
The default is an empty string.
380 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
Login Timeout
The amount of time, in seconds, that the Hybrid Data Pipeline connectivity service waits
for a connection to be established before timing out the connection request.
Valid Values:
0 | x
where x is a positive integer that represents a number of seconds.
If set to 0, the Hybrid Data Pipeline connectivity service does not time out a connection
request.
If set to x, the connectivity service waits for the specified number of seconds before
returning control to the application and returning a timeout error.
Default: 30
Max Pooled
The maximum number of prepared statements to cache for this connection. If the value
Statements
of this property is set to 20, the connectivity service caches the last 20 prepared statements
that are created by the application.
The default value is 0.
Query Timeout Sets the default query timeout (in seconds) for all statements created by a connection.
Valid Values:
-1 | 0 | x
If set to -1, the query timeout functionality is disabled.The Hybrid Data Pipeline connectivity
service silently ignores calls to the connectivity service silently ignores calls to the::
Statement.setQueryTimeout() method.
If set to 0 Statement.setQueryTimeout() method., the default query timeout is infinite (the
query does not time out).
If set to x, the Hybrid Data Pipeline connectivity service uses the value asHybrid Data
Pipeline the default timeout for any statement that is created by the connection.To override
the default timeout value set by this connection option, call the Statement.setQueryTimeout()
method to set a timeout value for a particular statement.
Default: 0
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 381Chapter 3: Using Hybrid Data Pipeline
Field Description
Result Set Meta Determines whether the Hybrid Data Pipeline connectivity service returns table name
Data Options information in the ResultSet metadata for Select statements.
Valid Values
0 | 1
If set to 0 and the ResultSetMetaData.getTableName() method is called, the Hybrid Data
Pipeline connectivity service does not perform additional processing to determine the
correct table name for each column in the result set. The getTableName() method may
return an empty string for each column in the result set.
If set to 1 and the ResultSetMetaData.getTableName() method is called, the connectivity
service performs additional processing to determine the correct table name for each column
in the result set. The connectivity service returns schema name and catalog name
information when the ResultSetMetaData.getSchemaName() and
ResultSetMetaData.getCatalogName() methods are called if the Hybrid Data Pipeline
connectivity service can determine that information.
Default: 0
Metadata
Restricts the metadata exposed by Hybrid Data Pipeline to a single schema.The metadata
Exposed
exposed in the SQL Editor, the Configure Schema Editor, and third party applications will
Schemas
be limited to the specified schema. JDBC, OData, and ODBC metadata calls will also be
restricted. In addition, calls made with the Schema API will be limited to the specified
schema.
Warning: This functionality should not be regarded as a security measure. While
the Metadata Exposed Schemas option restricts the metadata exposed by Hybrid
Data Pipeline to a single schema, it does not prevent queries against other schemas
on the backend data store. As a matter of best practice, permissions should be
set on the backend data store to control the ability of users to query data.
Valid Values
Where:
is the name of a valid schema on the backend data store.
Default: No schema is specified. Therefore, all schemas are exposed.
See the steps for:
How to create a data source in the Web UI on page 240
Microsoft Dynamics CRM parameters
The following tables describe parameters available on the tabs of an on-premise Data Source dialog for
Microsoft Dynamics® CRM:
382 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
• General tab
• Security tab
• OData tab
• Mapping tab
• Advanced tab
General tab
Table 41: General tab connection parameters for Microsoft Dynamics CRM
Field Description
Data Source
A unique name for the data source. Data source names can contain only alphanumeric
Name
characters, underscores, and dashes.
Description
A general description of the data source.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 383Chapter 3: Using Hybrid Data Pipeline
Field Description
Organization
A URL that can be used to connect to your organization’s SOAP service.
Service URL
To obtain this URL, sign into your organization’s CRM site using the browser. Select
Settings. When you have selected the settings, select Customization. Then, select
Developer Resources. An example of an Organization Service URL is
https://mycompany.api.crm.dynamics.com/XRMServices/2011/Organization.svc
Connector ID
The unique identifier of the On-Premise Connector that is to be used to access the
on-premise data source. Select the Connector that you want to use from the dropdown.
The identifier can be a descriptive name, the name of the machine where the Connector
is installed, or the Connector ID for the Connector.
If you have not installed an On-Premise Connector, and no Connectors have been shared
with you, this field and drop-down list are empty.
If you own multiple Connectors that have the same name, for example, Production, an
identifier is appended to each Connector, for example, Production_dup0 and
Production_dup1. If the Connectors in the dropdown were shared with you, the owner''s
name is appended, for example, Production(owner1) and Production(owner2).
Security tab
Table 42: Security tab connection parameters for Microsoft Dynamics CRM
Field Description
User Id
The User Id for the Microsoft Dynamics CRM account used to establish the connection
to the Microsoft Dynamics CRM server.
384 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
Password
A password for the Microsoft Dynamics CRM account that is used to establish the
connection to your Microsoft Dynamics CRM server.
By default, the characters in the Password field you type are not shown. If you want the
password to be displayed in clear text, click the eye icon. Click the icon again to
conceal the password.
Authentication
Determines which authentication method the Hybrid Data Pipeline connectivity service
Method
uses when it establishes a connection.
Valid Values:
Kerberos
At this time, the Hybrid Data Pipeline connectivity service always uses Kerberos
authentication when it establishes a connection.
Service Principle
Specifies the service principal name to be used by the Hybrid Data Pipeline connectivity
Name
service for Kerberos authentication.
Valid Values:
string
Where
string is a valid service principal name. This name is case-sensitive.
Domain Name Specifies the domain of the network that Microsoft Dynamics CRM locates.
OData tab
The following table describes the controls on the OData tab. For information on using the Configure Schema
editor, see Configuring data sources for OData connectivity and working with data source groups on page 646.
For information on formulating OData requests, see Formulating queries with OData Version 2 on page 868.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 385Chapter 3: Using Hybrid Data Pipeline
Table 43: OData tab connection parameters for Microsoft Dynamics CRM
Field Description
OData Version
Enables you to choose from the supported OData versions. OData configuration made
with one OData version will not work if you switch to a different OData version. If you want
to maintain the data source with different OData versions, you must create different data
sources for each of them.
OData Name
Enables you to set the case for entity type, entity set, and property names in OData
Mapping Case
metadata.
Valid Values: Uppercase | Lowercase | Default
When set to Uppercase, the case changes to all uppercase.
When set to Lowercase, the case changes to all lowercase.
When set to Default, the case does not change.
386 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
OData Access URI
Specifies the base URI for the OData feed to access your data source, for example,
https://hybridpipe.operations.com/api/odata/.You
can copy the URI and paste it into your application''s OData configuration.
The URI contains the case-insensitive name of the data source to connect to, and the
query that you want to execute. This URI is the OData Service Root URI for the OData
feed. The Service Document for the data source is returned by issuing a GET request to
the data source''s service root.
The OData Service Document returns the names of the entities exposed by the Data
Source OData service. To get details such as the properties of the entities exposed, the
data types for those properties and the relationships between entities, the Service Metadata
Document can be fetched by adding /$metadata to the service root URI.
Schema Map
Enables OData support. If a schema map is not defined, the OData API cannot be used
to access the data store using this data source definition. Use the Configure Schema
editor to select the tables/columns to expose through OData.
See Configuring data sources for OData connectivity and working with data source groups
on page 646 for more information.
Page Size
Determines the number of entities returned on each page for paging controlled on the
server side. On the client side, requests can use the $top and $skip parameters to
control paging. In most cases, server side paging works well for large data sets. Client
side pagination works best with a smaller data sets where it is not as expensive to fetch
subsequent pages.
Valid Values: 0 | n
where n is an integer from 1 to 10000.
When set to 0, the server default of 2000 is used.
Default: 0
Refresh Result
Controls what happens when you fetch the first page of a cached result when using Client
Side Paging. Skip must be omitted or set to 0.You can use the cached copy of that first
page, or you can re-execute the query to get a new result, discarding the previously
cached result. Re-executing the query is useful when the data being fetched may change
between two requests for the first page. Using the cached result is useful if you are paging
back and forth through results that are not expected to change.
Valid Values:
When set to 0, the OData service caches the first page of results.
When set to 1, the OData service re-executes the query.
Default: 1
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 387Chapter 3: Using Hybrid Data Pipeline
Field Description
Inline Count Mode
Specifies how the connectivity service satisfies requests that include the $count parameter
when it is set to true (for OData version 4) or the $inlinecount parameter when it is
set to allpages (for OData version 2). These requests require the connectivity service
to include the total number of entities that are defined by the OData query request. The
count must be included in the first page in server-driven paging and must be included in
every page when using client-driven paging.
The optimal setting depends on the data store and the size of results. The OData service
can run a separate query using the count(*) aggregate to get the count, before running
the query used to generate the entities. In very large results, this approach can often lead
to the first page being returned faster. Alternatively, the OData service can fetch the entire
result before returning the first page. This approach works well for small results and for
data stores that cannot optimize the count(*) aggregate; however, it may have a longer
initial response time for the first page if the result is large.
Valid Values:
When set to 1, the connectivity service runs a separate count(*) aggregate query to
get the count of entities before executing the query to return results. In very large results,
this approach can often lead to the first page being returned faster.
When set to 2, the connectivity service fetches all entities before returning the first page.
For small results, this approach is always faster. However, the initial response time for
the first page may be longer if the result is large.
Default: 1
Top Mode
Indicates how requests typically use $top and $skip for client side pagination, allowing
the service to better anticipate how to process queries.
Valid Values:
Set to 0 when the application generally uses $top to limit the size of the result and rarely
attempts to get additional entities by combining $top and $skip.
Set to 1 when the application uses $top as part of client-driven paging and generally
combines $top and $skip to page through the result.
Default: 0
OData Read Only
Controls whether write operations can be performed on the OData service.Write operations
generate a 405 Method Not Allowed response if this option is enabled.
Valid Values:
ON | OFF
When ON is selected, OData access is restricted to read-only mode.
When OFF is selected, write operations can be performed on the OData service.
Default: OFF
388 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Mapping tab
The default values for advanced mapping fields are appropriate in many cases. However, if your organization
wants to strip custom prefixes or enable uppercase identifiers, you might want to change map option settings.
Understanding how Hybrid Data Pipeline creates and uses maps will help you choose the appropriate values.
The first time you save and test a connection, a map for that data store is created. Once a map is created, you
cannot change the map options for that Data Source definition unless you also create a new map. For example,
suppose a map is created with Strip Custom Prefix set to new,test. Later, you change the value to new,abc.
You will get an error saying the configuration options do not match. Simply change the value of the Create
Map option to force creation of a new map.
The following table describes the mapping options that apply to Microsoft Dynamics CRM. Click the + next to
Set Map Options to display the optional fields.
Note: Map creation is an expensive operation. In most cases, you will only want to re-create a map if you
need to change mapping options.
Table 44: Mapping tab connection parameters for Microsoft Dynamics CRM
Field Description
Map Name
Optional name of the map definition that the Hybrid Data Pipeline connectivity service
uses to interpret the schema of the data store. The Hybrid Data Pipeline service
automatically creates a name for the map.
If you want to name the map yourself, enter a unique name.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 389Chapter 3: Using Hybrid Data Pipeline
Field Description
Refresh Schema
The Refresh Schema option specifies whether the connectivity service attempts to refresh
the schema when an application first connects.
Valid Values:
When set to ON, the connectivity service attempts to refresh the schema.
When set to OFF, the connectivity service does not attempt to refresh the schema.
Default: OFF
Notes:
• You can choose to refresh the schema by clicking the Refresh icon. This refreshes
the schema immediately. Note that the refresh option is available only while editing
the data source.
• Use the option to specify whether the connectivity service attempts to refresh the
schema when an application first connects. Click the Refresh icon if you want to refresh
the schema immediately, using an already saved configuration.
• If you are making other edits to the settings, you need to click update to save your
configuration. Clicking the Refresh icon will only trigger a runtime call on the saved
configuration.
Create Mapping
Determines whether the Microsoft Dynamics CRM table mapping files are to be (re)created.
The Hybrid Data Pipeline connectivity service automatically maps data store objects and
fields to tables and columns the first time that it connects to the data store. The map
includes both standard and custom objects and includes any relationships defined between
objects.
Table 45: Valid values for Create Map field
Value Description
Not Exist Select this option for most normal operations. If a map for a data source
does not exist, this option causes one to be created. If a map exists, the
service uses that existing map. If a name is not specified in the Map
Name field, the name will be a combination of the User Name and Data
Source ID.
Force New Select this option to force creation of a new map. A map is created on
connection whether one exists or not. The connectivity service uses a
combination of the User Name and Data Source ID to name the map.
Map creation is expensive, so you will likely not want to leave this option
set to Force New indefinitely.
No If a map for a data source does not exist, the connectivity service does
not create one.
390 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
Strip Custom
Microsoft Dynamics CRM data stores treat the creation of standard and custom objects
Prefix
differently. Objects you create in your organization are called custom objects, and the
objects already created for you by the data store administrator are called standard objects.
When you create custom objects such as tables and columns, Microsoft Dynamics CRM
prepends a string of lowercase characters, immediately followed by an underscore to the
name of the custom object, for example, new_.You can change this custom prefix, and
define one or multiple prefixes for the same Microsoft Dynamics CRM instance. This
custom prefix can be stripped from the table names, allowing you to make queries without
adding the prefix.
For example, a Microsoft Dynamics CRM user who creates a custom object named emp
might expect to be able to query the table using that name. However, because Microsoft
Dynamics CRM has added the new_ prefix, the query must include it in the object name,
for example, SELECT * FROM new_emp. By default, the map strips the prefix, so in this
example, the user can make the query without adding the prefix (SELECT * FROM emp).
Valid Values:
• If set to new (the default), the prefix new_ is stripped.
• If a comma-separated string, for example, new,test,abc is specified, the specified
prefixes are stripped.
• If the special value is specified, no prefixes are stripped.
The angle brackets are required for this special value. If you are disabling the option
via an XML-based configuration, you must explicitly add the value as <none>
Uppercase
Indentifiers
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 391Chapter 3: Using Hybrid Data Pipeline
Field Description
Defines how Hybrid Data Pipeline maps identifiers. By default, all unquoted identifier
names are mapped to uppercase. Identifiers are object names. Classes, methods,
variables, interfaces, and database objects, such as tables, views, columns, indexes,
triggers, procedures, constraints, and rules, can have identifiers.
Valid Values:
When set to ON, the connectivity service maps all identifier names to uppercase.
When set to OFF, Hybrid Data Pipeline maps identifiers to the mixed case name of the
object being mapped. If mixed case identifiers are used, those identifiers must be quoted
in SQL statements, and the case of the identifier, must exactly match the case of the
identifier name.
Note: When object names are passed as arguments to catalog functions, the case of
the value must match the case of the name in the database. If an unquoted identifier
name was used when the object was created, the value passed to the catalog function
must be uppercase because unquoted identifiers are converted to uppercase before being
used. If a quoted identifier name was used when the object was created, the value passed
to the catalog function must match the case of the name as it was defined. Object names
in results returned from catalog functions are returned in the case that they are stored in
the database.
For example, if Uppercase Identifiers is set to ON, to query the Account table you would
need to specify:
SELECT "id", "name" FROM "Account"
Default: ON
392 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Advanced tab
Table 46: Advanced tab connection parameters for Microsoft Dynamics CRM
Field Description
Web Service Call
The maximum number of Web service calls allowed to the data store for a single SQL
Limit
statement or metadata query.
The default value of 0 implies there is no limit.
Web Service The maximum number of requests to be batched together in a single Web service call. If
Batch Size configured for 0, the connectivity service uses the default value 1000. Valid values are
from 0 to 1000.
Max Pooled
The maximum number of prepared statements to cache for this connection. If the value of
Statements
this property is set to 20, the connectivity service caches the last 20 prepared statements
that are created by the application.
The default value is 0.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 393Chapter 3: Using Hybrid Data Pipeline
Field Description
Login Timeout The amount of time, in seconds, to wait for a connection to be established before timing
out the connection request.
If set to 0, the Hybrid Data Pipeline connectivity service does not time out a connection
request.
Initialization
A semicolon delimited set of commands to be executed on the data store after Hybrid Data
String
Pipeline has established and performed all initialization for the connection. If the execution
of a SQL command fails, the connection attempt also fails and Hybrid Data Pipeline returns
an error indicating which SQL commands failed.
Syntax:
command[[; command]...]
Where:
command
is a SQL command. Multiple commands must be separated by semicolons. In addition, if
this property is specified in a connection URL, the entire value must be enclosed in
parentheses when multiple commands are specified. For example, assuming a schema
name of SFORCE:
InitializationString=(REFRESH SCHEMA SFORCE)
The default is an empty string.
Read Only
Sets the connection to read-only mode, indicating that the data store can be read but not
updated.
By default, this option is set to OFF.
394 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
Extended Options
Specifies a semi-colon delimited list of connection options and their values. Use this
configuration option to set the value of undocumented connection options that are provided
by Progress DataDirect technical support.You can include any valid connection option in
the Extended Options string, for example:
Database=Server1;UndocumentedOption1=value[;
UndocumentedOption2=value;]
If the Extended Options string contains option values that are also set in the setup dialog,
the values of the options specified in the Extended Options string take precedence.
Metadata
Restricts the metadata exposed by Hybrid Data Pipeline to a single schema.The metadata
Exposed
exposed in the SQL Editor, the Configure Schema Editor, and third party applications will
Schemas
be limited to the specified schema. JDBC, OData, and ODBC metadata calls will also be
restricted. In addition, calls made with the Schema API will be limited to the specified
schema.
Warning: This functionality should not be regarded as a security measure. While
the Metadata Exposed Schemas option restricts the metadata exposed by Hybrid
Data Pipeline to a single schema, it does not prevent queries against other schemas
on the backend data store. As a matter of best practice, permissions should be
set on the backend data store to control the ability of users to query data.
Valid Values
Where:
is the name of a valid schema on the backend data store.
Default: No schema is specified. Therefore, all schemas are exposed.
See the steps for:
How to create a data source in the Web UI on page 240
Microsoft SQL Server parameters
The following tables describe parameters available on the tabs of a Microsoft SQL Server Data Source dialog:
• General tab
• OData tab
• Security tab
• Data Types tab
• Advanced tab
The connection parameters also apply to Microsoft Azure SQL Database, unless specifically noted.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 395Chapter 3: Using Hybrid Data Pipeline
General tab
396 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Table 47: General tab connection parameters for Microsoft SQL Server
Field Description
Data Source
A unique name for the data source. Data source names can contain only alphanumeric
Name
characters, underscores, and dashes.
Description
A general description of the data source.
User Id
The login credentials for your Microsoft SQL Server data store account.
The Hybrid Data Pipeline connectivity service uses this information to connect to the data
store. The administrator of the data store must grant permission to a user with these
credentials to access the data store and the target data.
Note: You can save the Data Source definition without specifying the login credentials.
In that case, when you test the Data Source connection, you will be prompted to specify
these details. Applications using the connectivity service will have to supply the data store
credentials (if they are not saved in the Data Source) in addition to the Data Source name
and the credentials for the Hybrid Data Pipeline connectivity service.
Password
A case-sensitive password that is used to connect to your Microsoft SQL Server database
or Azure instance. A password is required if user ID/password authentication is enabled
on your database. Contact your system administrator to obtain your password.
By default, the characters in the Password field you type are not shown. If you want the
password to be displayed in clear text, click the eye icon. Click the icon again to
conceal the password.
Note: By default, the password is encrypted.
Server Name
The name of the server on which the SQL Server database to connect to is running. This
is the fully qualified host name by which the server is accessed via the WAN.
For example, mysqlserver.integration.mycorp.com.
To connect to an Always On Availability group, the virtual network name (VNN) of the
availability group listener must be specified.
Port Number
The TCP port of the primary database server that is listening for connections to the database
or Azure instance.
Database
The name of the database that is running on the database server. If not specified, the
default database for your login is used.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 397Chapter 3: Using Hybrid Data Pipeline
Field Description
Connector ID
The unique identifier of the On-Premises Connector that is used to access the on-premise
data source. Click the arrow and select the Connector that you want to use. The
identifier can be a descriptive name, the name of the machine where the Connector is
installed, or the Connector ID for the Connector.
If you have not installed an On-Premises Connector, and no Connectors have been shared
with you, this field and drop-down list are empty.
If you own multiple Connectors that have the same name, for example, Production, an
identifier is appended to each Connector, for example, Production_dup0 and
Production_dup1. If the Connectors in the drop-down list were shared with you, the
owner''s name is appended, for example, Production(owner1) and
Production(owner2).
Security tab
The following table describes the controls on the Security tab.
398 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Table 48: Security tab connection parameters for Microsoft SQL Server
Field Description
Authentication
Determines which authentication method the connectivity service uses when establishing
Method
a connection. If the specified authentication method is not supported by the database
server, the connection fails and the connectivity service returns an error.
Valid Values:
ntlmjava | ntlm2java | userIdPassword | ActiveDirectoryPassword
If set to ntlmjava, the connectivity service uses NTLM authentication, but requires a
user ID and password to be specified.You must specify the name of the domain server
that administers the database.You can specify the domain server using the Domain
property. If the Domain property is not specified, the connectivity service tries to determine
the domain server from the User property. If the connectivity service cannot determine
the domain server name, it returns an error.
If set to ntlm2java, the connectivity service uses NTLMv2 authentication, but requires
a user ID and password to be specified.You must specify the name of the domain server
that administers the database.You can specify the domain server using the Domain
property. If the Domain property is not specified, the connectivity service tries to determine
the domain server from the User property. If the connectivity service cannot determine
the domain server name, it returns an error. This value is supported for Windows and
UNIX/Linux clients.
If set to userIdPassword, the connectivity service uses SQL Server authentication when
establishing a connection. If a user ID is not specified, the connectivity service returns an
error.
If set to ActiveDirectoryPassword, the connectivity service uses an Active Directory
principal name and password to connect to the SQL Database or Azure instance. If a user
ID is not specified, the connectivity service returns an error.
The default value is userIdPassword.
Domain
Specifies the name of the domain server that administers the database. Set this parameter
only if you are using NTLM authentication (Authentication Method=ntlmjava). If the Domain
property is unspecified, the connectivity service tries to determine the domain server name
from the User property.
Valid Values:
string
where string is the name of the domain server.
Default: empty string
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 399Chapter 3: Using Hybrid Data Pipeline
Field Description
Encryption Method
Determines whether data is encrypted and decrypted when transmitted over the network
between the Hybrid Data Pipeline connectivity service and the on-premise database
server.
Valid values:
noEncryption | SSL
If set to noEncryption, data is not encrypted or decrypted.
If set to SSL, data is encrypted using SSL. If the database server does not support SSL,
the connection fails and the Hybrid Data Pipeline connectivity service throws an exception.
Note:
• Connection hangs can occur when the connectivity service is configured for SSL and
the database server does not support SSL.You may want to set a login timeout using
the Login Timeout parameter to avoid problems when connecting to a server that does
not support SSL.
• When SSL is enabled, the following properties also apply:
Host Name In Certificate
ValidateServerCertificate
Crypto Protocol Version
The default value is noEncryption.
Crypto Protocol
Specifies a protocol version or a comma-separated list of the protocol versions that can
Version
be used in creating an SSL connection to the data source. If the protocol (or none of the
protocols) is not supported by the database server, the connection fails and the connectivity
service returns an error.
Valid Values:
cryptographic_protocol [[, cryptographic_protocol ]...]
where:
cryptographic_protocol
is one of the following cryptographic protocols:
TLSv1 | TLSv1.1 | TLSv1.2
The client must send the highest version that it supports in the client hello.
Note: Good security practices recommend using TLSv1.2 if your data source supports
that protocol version, due to known vulnerabilities in the earlier protocols.
Example
400 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
Your security environment specifies that you can use TLSv1.1 and TLSv1.2. When you
enter the following values, the connectivity service sends TLSv1.2 to the server first.
TLSv1.1,TLSv1.2
Default: TLSv1, TLSv1.1, TLSv1.2
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 401Chapter 3: Using Hybrid Data Pipeline
Field Description
Host Name In
Specifies a host name for certificate validation when SSL encryption is enabled (Encryption
Certificate
Method=SSL) and validation is enabled (Validate Server Certificate=ON). This optional
parameter provides additional security against man-in-the-middle (MITM) attacks by
ensuring that the server that the Hybrid Data Pipeline connectivity service is connecting
to is the server that was requested.
Valid values:
host_name | #SERVERNAME#
where host_name is a valid host name.
If host_name is specified, the Hybrid Data Pipeline connectivity service compares the
specified host name to the DNSName value of the SubjectAlternativeName in the
certificate. If a DNSName value does not exist in the SubjectAlternativeName or if the
certificate does not have a SubjectAlternativeName, the connectivity service compares
the host name with the Common Name (CN) part of the certificate’s Subject name. If the
values do not match, the connection fails and the Hybrid Data Pipeline connectivity service
throws an exception.
If #SERVERNAME# is specified, the Hybrid Data Pipeline connectivity service compares
the server name that is specified in the connection URL or data source of the connection
to the DNSName value of the SubjectAlternativeName in the certificate. If a DNSName
value does not exist in the SubjectAlternativeName or if the certificate does not have a
SubjectAlternativeName, the Hybrid Data Pipeline connectivity service compares the host
name to the CN part of the certificate’s Subject name. If the values do not match, the
connection fails and the connectivity service throws an exception. If multiple CN parts are
present, the connectivity service validates the host name against each CN part. If any
one validation succeeds, a connection is established.
The default is an empty string.
Validate Server
Certificate
402 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
Determines whether the Hybrid Data Pipeline connectivity service validates the certificate
that is sent by the database server when SSL encryption is enabled (Encryption
Method=SSL). When using SSL server authentication, any certificate that is sent by the
server must be issued by a trusted Certificate Authority (CA). Allowing the connectivity
service to trust any certificate that is returned from the server even if the issuer is not a
trusted CA is useful in test environments because it eliminates the need to specify truststore
information on each client in the test environment.
Valid values:
ON | OFF
If set to ON, the Hybrid Data Pipeline connectivity service validates the certificate that is
sent by the database server. Any certificate from the server must be issued by a trusted
CA in the truststore file. If the Host Name In Certificate parameter is specified, the
connectivity service also validates the certificate using a host name. The Host Name In
Certificate parameter is optional and provides additional security against man-in-the-middle
(MITM) attacks by ensuring that the server the connectivity service is connecting to is the
server that was requested.
If set to OFF, the Hybrid Data Pipeline connectivity service does not validate the certificate
that is sent by the database server. The connectivity service ignores any Java system
properties.
Default: ON
OData tab
The following table describes the controls on the OData tab. For information on using the Configure Schema
editor, see Configuring data sources for OData connectivity and working with data source groups on page 646.
For information on formulating OData requests, see Formulating queries with OData Version 2 on page 868.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 403Chapter 3: Using Hybrid Data Pipeline
Table 49: OData tab connection parameters for Microsoft SQL Server
Field Description
OData Version
Enables you to choose from the supported OData versions. OData configuration made
with one OData version will not work if you switch to a different OData version. If you want
to maintain the data source with different OData versions, you must create different data
sources for each of them.
OData Name
Enables you to set the case for entity type, entity set, and property names in OData
Mapping Case
metadata.
Valid Values: Uppercase | Lowercase | Default
When set to Uppercase, the case changes to all uppercase.
When set to Lowercase, the case changes to all lowercase.
When set to Default, the case does not change.
404 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
OData Access URI
Specifies the base URI for the OData feed to access your data source, for example,
https://hybridpipe.operations.com/api/odata/.You
can copy the URI and paste it into your application''s OData configuration.
The URI contains the case-insensitive name of the data source to connect to, and the
query that you want to execute. This URI is the OData Service Root URI for the OData
feed. The Service Document for the data source is returned by issuing a GET request to
the data source''s service root.
The OData Service Document returns the names of the entities exposed by the Data
Source OData service. To get details such as the properties of the entities exposed, the
data types for those properties and the relationships between entities, the Service Metadata
Document can be fetched by adding /$metadata to the service root URI.
Schema Map
Enables OData support. If a schema map is not defined, the OData API cannot be used
to access the data store using this data source definition. Use the Configure Schema
editor to select the tables/columns to expose through OData.
See Configuring data sources for OData connectivity and working with data source groups
on page 646 for more information.
Page Size
Determines the number of entities returned on each page for paging controlled on the
server side. On the client side, requests can use the $top and $skip parameters to
control paging. In most cases, server side paging works well for large data sets. Client
side pagination works best with a smaller data sets where it is not as expensive to fetch
subsequent pages.
Valid Values: 0 | n
where n is an integer from 1 to 10000.
When set to 0, the server default of 2000 is used.
Default: 0
Refresh Result
Controls what happens when you fetch the first page of a cached result when using Client
Side Paging. Skip must be omitted or set to 0.You can use the cached copy of that first
page, or you can re-execute the query to get a new result, discarding the previously
cached result. Re-executing the query is useful when the data being fetched may change
between two requests for the first page. Using the cached result is useful if you are paging
back and forth through results that are not expected to change.
Valid Values:
When set to 0, the OData service caches the first page of results.
When set to 1, the OData service re-executes the query.
Default: 1
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 405Chapter 3: Using Hybrid Data Pipeline
Field Description
Inline Count Mode
Specifies how the connectivity service satisfies requests that include the $count parameter
when it is set to true (for OData version 4) or the $inlinecount parameter when it is
set to allpages (for OData version 2). These requests require the connectivity service
to include the total number of entities that are defined by the OData query request. The
count must be included in the first page in server-driven paging and must be included in
every page when using client-driven paging.
The optimal setting depends on the data store and the size of results. The OData service
can run a separate query using the count(*) aggregate to get the count, before running
the query used to generate the entities. In very large results, this approach can often lead
to the first page being returned faster. Alternatively, the OData service can fetch the entire
result before returning the first page. This approach works well for small results and for
data stores that cannot optimize the count(*) aggregate; however, it may have a longer
initial response time for the first page if the result is large.
Valid Values:
When set to 1, the connectivity service runs a separate count(*) aggregate query to
get the count of entities before executing the query to return results. In very large results,
this approach can often lead to the first page being returned faster.
When set to 2, the connectivity service fetches all entities before returning the first page.
For small results, this approach is always faster. However, the initial response time for
the first page may be longer if the result is large.
Default: 1
Top Mode
Indicates how requests typically use $top and $skip for client side pagination, allowing
the service to better anticipate how to process queries.
Valid Values:
Set to 0 when the application generally uses $top to limit the size of the result and rarely
attempts to get additional entities by combining $top and $skip.
Set to 1 when the application uses $top as part of client-driven paging and generally
combines $top and $skip to page through the result.
Default: 0
OData Read Only
Controls whether write operations can be performed on the OData service.Write operations
generate a 405 Method Not Allowed response if this option is enabled.
Valid Values:
ON | OFF
When ON is selected, OData access is restricted to read-only mode.
When OFF is selected, write operations can be performed on the OData service.
Default: OFF
406 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
DataTypes tab
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 407Chapter 3: Using Hybrid Data Pipeline
Table 50: DataTypes tab connection parameters for Microsoft SQL Server
Field Description
Date Time Input
Specifies how the Hybrid Data Pipeline connectivity service describes the data type for
Parameters
Date/Time/Timestamp input parameters.
This parameter only applies to connections to Microsoft SQL Server 2008 and higher and
Microsoft Azure SQL Database. For connections to prior versions of Microsoft SQL Server,
the Hybrid Data Pipeline connectivity service always describes Date/Time/Timestamp
input parameters as datetime.
Valid values:
auto | dateTime | dateTimeOffset
If set to auto, the Hybrid Data Pipeline connectivity service uses the following rules to
describe the data type of Date/Time/Timestamp input parameters:
• If an input parameter is set using setDate(), the Hybrid Data Pipeline connectivity
service describes it as date.
• If an input parameter is set using setTime(), the Hybrid Data Pipeline connectivity
service describes it as time.
• If an input parameter is set using setTimestamp(), the Hybrid Data Pipeline connectivity
service describes it as datetimeoffset.
If set to dateTime, the Hybrid Data Pipeline connectivity service describes
Date/Time/Timestamp input parameters as datetime.
If set to dateTimeOffset, the Hybrid Data Pipeline connectivity service describes
Date/Time/Timestamp input parameters as datetimeoffset.
Default: auto
408 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
Describe Input
Determines whether the Hybrid Data Pipeline connectivity service attempts to determine,
Parameters
at execute time, which data type to use to send input parameters to the database server.
Sending parameters as the data type the database expects improves performance and
prevents locking issues caused by data type mismatches.
Valid values:
noDescribe | describeIfString | describeIfDateTime | describeAll
If set to noDescribe, the Hybrid Data Pipeline connectivity service sends String and
Date/Time/Timestamp input parameters to the server as specified by the
StringInputParameterType and DateTime Input Parameter Type parameters.
If set to describeIfString, the Hybrid Data Pipeline connectivity service submits a
request to the database to describe String input parameters. The Hybrid Data Pipeline
connectivity service uses the data types that it returns to determine whether to describe
the String input parameters as nvarchar or varchar. If this operation fails, the connectivity
service sends String input parameters to the server as specified by the String Input
Parameter Type parameter.
If set to describeIfDateTime, the Hybrid Data Pipeline connectivity service submits
a request to the database to describe Date/Time/Timestamp input parameters. The
connectivity service uses the data types that it returns to determine how to describe the
Date/Time/Timestamp input parameters. If this operation fails, the connectivity service
sends Date/Time/Timestamp input parameters to the server as specified by the DateTime
Input Parameter Type connection parameter.
If set to describeAll, the Hybrid Data Pipeline connectivity service submits a request
to the database to describe both String and Date/Time/Timestamp input parameters and
uses the data types that it returns to determine which data type to use to describe the
input parameters. If this operation fails, the connectivity service sends String input
parameters to the server as specified by the String Input Parameter Type parameter and
sends Date/Time/Timestamp input parameters to the server as specified by the Date Time
Input Parameter connection parameter.
Default: noDescribe
Fetch
Determines whether the Hybrid Data Pipeline connectivity service returns column values
TWFSasTime
with the time data type as the JDBC data type TIME or TIMESTAMP.
Supported only for Microsoft SQL Server 2008 and higher.
Valid values:
ON | OFF
If set to ON, the Hybrid Data Pipeline connectivity service returns column values with the
time data type as the JDBC data type TIME. The fractional seconds portion of the value
is truncated.
If set to OFF, the Hybrid Data Pipeline connectivity service returns column values with the
time data type as the JDBC data type TIMESTAMP. The fractional seconds portion of the
value is preserved.Time columns are not searchable when they are described and fetched
as timestamp.
Default: OFF
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 409Chapter 3: Using Hybrid Data Pipeline
Field Description
FetchTSWTZ as
Determines whether column values with the datetimeoffset data type are returned as a
Timestamp
JDBC VARCHAR or TIMESTAMP data type.
This parameter only applies to connections to Microsoft SQL Server 2008 and higher and
Microsoft Azure SQL Database.
Valid values: ON | OFF
If set to ON, column values with the datetimeoffset data type are returned as a JDBC
TIMESTAMP data type.
If set to OFF, column values with the datetimeoffset data type are returned as a JDBC
VARCHAR data type.
Default: OFF
String Input
Determines whether the Hybrid Data Pipeline connectivity service sends String input
Parameter Type
parameters to the database in Unicode or in the default character encoding of the database.
Valid values: nvarchar | varchar
If set to nvarchar, the Hybrid Data Pipeline connectivity service sends String input
parameters to the database in Unicode.
If set to varchar, the Hybrid Data Pipeline connectivity service sends String input
parameters to the database in the default character encoding of the database. This value
can improve performance because the server does not need to convert Unicode characters
to the default encoding.
Notes
• When set to nvarchar and a value is specified for the CodePageOverride parameter,
this parameter is ignored and a warning is generated.
Default: nvarchar
410 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
Truncate
Determines whether the Hybrid Data Pipeline connectivity service truncates timestamp
Fractional
values to three fractional seconds. For example, a value of the datetime2 data type can
Seconds
have a maximum of seven fractional seconds.
Valid values:
ON | OFF
If set to ON, the Hybrid Data Pipeline connectivity service truncates all timestamp values
to three fractional seconds.
If set to OFF, the Hybrid Data Pipeline connectivity service does not truncate fractional
seconds.
Default: ON
XML Describe
Determines whether the Hybrid Data Pipeline connectivity service maps XML data to the
Type
LONGVARCHAR or LONGVARBINARY data type.
Valid values:
longvarchar | longvarbinary
If set to longvarchar, the Hybrid Data Pipeline connectivity service maps XML data to
the LONGVARCHAR data type.
If set to longvarbinary, the Hybrid Data Pipeline connectivity service maps XML data
to the LONGVARBINARY data type.
Default: empty string
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 411Chapter 3: Using Hybrid Data Pipeline
Advanced tab
Table 51: Advanced tab connection parameters for Microsoft SQL Server
Field Description
Alternate Servers
Specifies one or more alternate servers for failover and is required for all failover methods.
To turn off failover, do not specify a value for the Alternate Servers connection property.
Valid Values:
(servername1[:port1][,servername2[:port2]]...)
412 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
The server name (servername1, servername2, and so on) is required for each alternate
server entry. Port number (port1, port2, and so on) is optional for each alternate server
entry. If the port is unspecified, the port number of the primary server is used. If the port
number of the primary server is unspecified, the default port number is used.
Default: None
Multi-Subnet
Determines whether the connectivity service attempts parallel connections to the failover
Failover
IP addresses of an Availability Group during initial connection or during a multi-subnet
failover.
Valid values:
ON | OFF
If set to ON), the connectivity service will simultaneously attempt to connect to all IP
addresses associated with the Availability Group listener when establishing an initial
connection or reconnecting after a connection is broken or the listener IP address becomes
unavailable. The first IP address to successfully respond to the request is used for the
connection. Using parallel-connection attempts offers improved response time over
traditional failover, which attempts to connect to alternate servers one at a time.
If set to OFF, the connectivity service connects to an alternate server or servers as specified
by the AlternateServer property when the primary server is unavailable. Use this setting
if your environment is not configured for Always On Availability Groups.
Default: OFF
Load Balancing
Determines whether the connectivity service uses client load balancing in its attempts to
connect to the servers (primary and alternate) defined in a Connector group.You can
specify one or multiple alternate servers by setting the AlternateServers property.
Valid Values: ON | OFF
If set to ON, the connectivity service uses client load balancing and attempts to connect
to the servers (primary and alternate) in random order.The connectivity service randomly
selects from the list of primary and alternate On Premise Connectors which server to
connect to first. If that connection fails, the connectivity service again randomly selects
from this list of servers until all servers in the list have been tried or a connection is
successfully established.
If set to OFF, the connectivity service does not use client load balancing and connects to
each servers based on their sequential order (primary server first, then, alternate servers
in the order they are specified).
Default: OFF
Notes
• The Alternate Servers connection parameter specifies one or multiple alternate servers
for failover and is required for all failover methods. To turn off failover, do not specify
a value for the Alternate Servers property.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 413Chapter 3: Using Hybrid Data Pipeline
Field Description
Always Report
Determines how the Hybrid Data Pipeline connectivity service reports results that are
Trigger Results
generated by database triggers (procedures that are stored in the database and executed,
or fired, when a table is modified). For Microsoft SQL Server 2005 and higher and Azure,
this includes triggers that are fired by Data Definition Language (DDL) events.
Valid values:
ON | OFF
If set to ON, the Hybrid Data Pipeline connectivity service returns all results, including
results that are generated by triggers. Multiple trigger results are returned one at a time.
You can use the SQLMoreResults function to return individual trigger results. Warnings
and errors are reported in the results as they are encountered.
If set to OFF:
• For Microsoft SQL Server 2005 and higher and Microsoft Azure SQL Database, the
Hybrid Data Pipeline connectivity service does not report trigger results if the statement
is a single INSERT, UPDATE, DELETE, CREATE, ALTER, DROP, GRANT, REVOKE,
or DENY statement.
• For other Microsoft SQL Server databases, the Hybrid Data Pipeline connectivity service
does not report trigger results if the statement is a single INSERT, UPDATE, or DELETE
statement.
If set to OFF, the only result that is returned is the update count that is generated by the
statement that was executed (if no errors occurred). Although trigger results are ignored,
any errors and warnings that are generated by the trigger are reported. If errors are
reported, the update count is not reported.
Default: OFF
Application Intent
Specifies whether the Hybrid Data Pipeline connectivity service connects to read-write
databases or requests read-only routing to connect to read-only database replicas. When
connecting to an Always On Availability group, Application Intent should be set to ReadOnly.
By setting Application Intent to ReadOnly and querying read-only database replicas when
possible, you can improve efficiency by reducing the workload on read-write nodes.
Valid values:
ReadOnly | ReadWrite
If set to ReadOnly, the Hybrid Data Pipeline connectivity service requests read-only
routing and connects to the read-only database replicas as specified by the server.
If set to ReadWrite, the Hybrid Data Pipeline connectivity service connects to a read-write
node in the AlwaysOn environment.
Default: ReadWrite
414 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
Bulk Load Options
Enables bulk load protocol options for batch inserts that the Hybrid Data Pipeline
connectivity service can take advantage of when Enable Bulk Load is set to a value of ON.
Valid values:
0 | 1 | 2 | 16 | 32 | 64
Value Option Enabled
0 All of the options are disabled.
1 The KeepIdentity option preserves identity values. If unspecified, identity
values are ignored in the source and are assigned by the destination.
Note: If using the bulk load feature with batch inserts, this option has no effect
if enabled.
2 The TableLock option assigns a table lock for the duration of the bulk copy
operation. Other applications cannot update the table until the operation
completes. If unspecified, the default bulk locking mechanism specified by the
database server is used.
16 The CheckConstraints option checks integrity constraints while data is being
copied. If unspecified, constraints are not checked.
32 The FireTriggers option causes the database server to fire insert triggers for
the rows being inserted into the database. If unspecified, triggers are not fired.
64 The KeepNulls option preserves null values in the destination table regardless
of the settings for default values. If unspecified, null values are replaced by
column default values where applicable.
Example
A value of 67 means the KeepIdentity, TableLock, and KeepNulls options are enabled
(1 + 2 + 64).
Default: 2
Catalog Options
Determines which type of metadata information is included in result sets when an application
calls DatabaseMetaData methods.
Valid values:
0 | 2
If set to 0, result sets do not contain synonyms.
If set to 2, result sets contain synonyms that are returned from the following
DatabaseMetaData methods: getFunctions(), getTables(), getColumns(), getProcedures(),
getProcedureColumns(), and getFunctionColumns()
Default: 0
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 415Chapter 3: Using Hybrid Data Pipeline
Field Description
Code Page
The code page the Hybrid Data Pipeline connectivity service uses to convert Character
Override
and Clob data. The specified code page overrides the default database code page or
column collation. All Character and Clob data that is returned from or written to the database
is converted using the specified code page.
By default, the Hybrid Data Pipeline connectivity service automatically determines which
code page to use to convert Character data. Use this parameter only if you need to change
the Hybrid Data Pipeline connectivity service’s default behavior.
Valid values:
string
where string is the name of a valid code page that is supported by your JVM. For
example, CP950.
Default: empty string
Enable Bulk Load
Specifies whether to use the bulk load protocol for insert, update, delete, and batch
operations. This increases the number of rows that the Hybrid Data Pipeline connectivity
service loads to send to the data store. Bulk load reduces the number of network trips.
Valid values:
ON | OFF
If set to ON, the Hybrid Data Pipeline connectivity service uses the native bulk load protocols
for batch inserts.
If set to OFF, the Hybrid Data Pipeline connectivity service uses the batch mechanism for
batch inserts.
Default: OFF
Extended Options
Specifies a semi-colon delimited list of connection options and their values. Use this
configuration option to set the value of undocumented connection options that are provided
by Progress DataDirect technical support.You can include any valid connection option in
the Extended Options string, for example:
Database=Server1;UndocumentedOption1=value[;
UndocumentedOption2=value;]
If the Extended Options string contains option values that are also set in the setup dialog,
the values of the options specified in the Extended Options string take precedence.
416 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
Initialization String
A semicolon delimited set of commands to be executed on the data store after Hybrid
Data Pipeline has established and performed all initialization for the connection. If the
execution of a SQL command fails, the connection attempt also fails and Hybrid Data
Pipeline returns an error indicating which SQL commands failed.
Syntax:
SQLcommand[[; SQLcommand]...]
where:
SQLcommand is a SQL command. Multiple commands must be separated by semicolons.
The default is an empty string.
Login Timeout
The amount of time, in seconds, to wait for a connection to be established before timing
out the connection request.
Valid Values:
0 | x
where x is a positive integer that represents a number of seconds.
If set to 0, the connectivity service does not time out a connection request.
If set to x, the connectivity service waits for the specified number of seconds before
returning control to the application and throwing a timeout exception.
Default: 30
Max Pooled
The maximum number of prepared statements to cache for this connection. If the value
Statements
of this property is set to 20, the connectivity service caches the last 20 prepared statements
that are created by the application.
The default value is 0.
Query Timeout
Sets the default query timeout (in seconds) for all statements that are created by a
connection.
Valid values:
-1 | 0 | x
If set to -1, the query timeout functionality is disabled.The Hybrid Data Pipeline connectivity
service silently ignores calls to the Statement.setQueryTimeout() method.
If set to 0, the default query timeout is infinite (the query does not time out).
If set to x, the Hybrid Data Pipeline connectivity service uses the value as the default
timeout for any statement that is created by the connection.To override the default timeout
value set by this connection option, call the Statement.setQueryTimeout() method to set
a timeout value for a particular statement.
The default value is 0.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 417Chapter 3: Using Hybrid Data Pipeline
Field Description
Result Set Meta
Determines whether the Hybrid Data Pipeline connectivity service returns table name
Data Options
information in the ResultSet metadata for Select statements.
Valid values:
0 | 1
If set to 0 and the ResultSetMetaData.getTableName() method is called, the Hybrid Data
Pipeline connectivity service does not perform additional processing to determine the
correct table name for each column in the result set. The getTableName() method may
return an empty string for each column in the result set.
If set to 1 and the ResultSetMetaData.getTableName() method is called, the Hybrid Data
Pipeline connectivity service performs additional processing to determine the correct table
name for each column in the result set. The Hybrid Data Pipeline connectivity service
returns schema name and catalog name information when the
ResultSetMetaData.getSchemaName() and ResultSetMetaData.getCatalogName() methods
are called if the Hybrid Data Pipeline connectivity service can determine that information.
Default: 0
Select Method
A hint to the Hybrid Data Pipeline connectivity service that determines whether the
connectivity service requests a database cursor for Select statements. Performance and
behavior of the connectivity service are affected by this property, which is defined as a
hint because the connectivity service may not always be able to satisfy the requested
method.
Valid values:
direct | cursor
If set to direct, the database server sends the complete result set in a single response
to the Hybrid Data Pipeline connectivity service when responding to a query. A server-side
database cursor is not created if the requested result set type is a forward-only result set.
Typically, responses are not cached by the Hybrid Data Pipeline connectivity service.
Using this method, the connectivity service must process the entire response to a query
before another query is submitted. If another query is submitted (using a different statement
on the same connection, for example), the connectivity service caches the response to
the first query before submitting the second query. Typically, the direct method performs
better than the cursor method.
If set to cursor, a server-side cursor is requested. When returning forward-only result
sets, the rows are returned from the server in blocks. The setFetchSize() method can be
used to control the number of rows that are returned for each request when forward-only
result sets are returned. Performance tests show that, when returning forward-only result
sets, the value of Statement.setFetchSize() significantly impacts performance. There is
no simple rule for determining the setFetchSize() value that you should use.We recommend
that you experiment with different setFetchSize() values to determine which value gives
the best performance for your application. The cursor method is useful for queries that
produce a large amount of data, particularly if multiple open result sets are used.
Default: direct
418 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
Snapshot
For Microsoft SQL Server 2005 and higher and Microsoft Azure SQL Database only. Allows
Serializable
your application to use Snapshot Isolation for connections.
This parameter is useful for applications that have the Serializable isolation level set. Using
the Snapshot Serializable parameter allows you to use Snapshot Isolation with no or
minimum code changes. If you are developing a new application, you may find that using
the constant TRANSACTION_SNAPSHOT is a better choice.
Valid values:
ON | OFF
If set to ON and your application has the transaction isolation level set to Serializable, the
application uses Snapshot Isolation for connections.
If set to OFF and your application has the transaction isolation level set to Serializable,
the application uses the Serializable isolation level.
Note: To use Snapshot Isolation, your database also must be configured for Snapshot
Isolation.
Default: OFF
Suppress
Determines whether the Hybrid Data Pipeline connectivity service suppresses "changed
Connection
database" and "changed language" warnings when connecting to the database server.
Warnings
Valid values:
ON | OFF
If set to ON, warnings are suppressed.
If set to OFF, warnings are not suppressed.
Default: OFF
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 419Chapter 3: Using Hybrid Data Pipeline
Field Description
Transaction Mode
Specifies how the Hybrid Data Pipeline connectivity service delimits the start of a local
transaction.
Valid values: implicit | explicit
If set to implicit, the Hybrid Data Pipeline connectivity service uses implicit transaction
mode. This means that the database, not the connectivity service, automatically starts a
transaction when a transactionable statement is executed. Typically, implicit transaction
mode is more efficient than explicit transaction mode because the connectivity service
does not have to send commands to start a transaction and a transaction is not started
until it is needed. When TRUNCATE TABLE statements are used with implicit transaction
mode, the database may roll back the transaction if an error occurs. If this occurs, use the
explicit value for this parameter.
If set to explicit, the Hybrid Data Pipeline connectivity service uses explicit transaction
mode.This means that the connectivity service, not the database starts a new transaction
if the previous transaction was committed or rolled back.
Default: implicit
Metadata
Restricts the metadata exposed by Hybrid Data Pipeline to a single schema.The metadata
Exposed
exposed in the SQL Editor, the Configure Schema Editor, and third party applications will
Schemas
be limited to the specified schema. JDBC, OData, and ODBC metadata calls will also be
restricted. In addition, calls made with the Schema API will be limited to the specified
schema.
Warning: This functionality should not be regarded as a security measure. While
the Metadata Exposed Schemas option restricts the metadata exposed by Hybrid
Data Pipeline to a single schema, it does not prevent queries against other schemas
on the backend data store. As a matter of best practice, permissions should be
set on the backend data store to control the ability of users to query data.
Valid Values
Where:
is the name of a valid schema on the backend data store.
Default: No schema is specified. Therefore, all schemas are exposed.
See the steps for:
How to create a data source in the Web UI on page 240
MySQL Community Edition parameters
The following tables describe parameters available on the General tab of a MySQL Community Edition Data
Source dialog.
420 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Note: Hybrid Data Pipeline uses MySQL Connector/J when connecting to MySQL Community Edition. During
installation of the Hybrid Data Pipeline server, you are prompted to specify the location of the MySQL Connector/J
driver. Since MySQL Connector/J is a separate component, it may require configuration and maintenance apart
from Hybrid Data Pipeline. Therefore, you should refer to MySQL Connector/J documentation for information
on support, functionality, and maintenance. In addition, the Progress DataDirect Hybrid Data Pipeline Installation
Guide provides a procedure for upgrading the MySQL Connector/J driver without reinstalling the Hybrid Data
Pipeline server.
• General tab
• OData tab
General tab
Table 52: General tab connection parameters for MySQL Community Edition
Field Description
Data Source Name
A unique name for the data source. Data source names can contain only alphanumeric
characters, underscores, and dashes.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 421Chapter 3: Using Hybrid Data Pipeline
Field Description
Description
A general description of the data source.
User Id, Password
The login credentials used to connect to the MySQL Community Edition database. A
user name and password is required if user ID/password authentication is enabled on
your database. Contact your system administrator to obtain your user name.
Note: By default, the password is encrypted.
By default, the characters in the Password field you type are not shown. If you want
the password to be displayed in clear text, click the eye icon. Click the icon again
to conceal the password.
Server Name Specifies either the IP address in IPv4 or IPv6 format, or the server name (if your
network supports named servers) of the primary database server, for example,
122.23.15.12 or mysqlcommunityserver.
Port Number The TCP port of the primary database server listening for connections to the database.
Database The name of the database that is running on the database server.
Extended Options
Specifies a semi-colon delimited list of connection options and their values. Use this
configuration option to set the value of undocumented connection options that are
provided by Progress DataDirect technical support.You can include any valid connection
option in the Extended Options string, for example:
Database=Server1;UndocumentedOption1=value[;
UndocumentedOption2=value;]
If the Extended Options string contains option values that are also set in the setup
dialog, the values of the options specified in the Extended Options string take
precedence.
Connector ID
The unique identifier of the On-Premise Connector that is to be used to access the
on-premise data source. Select the Connector that you want to use from the dropdown.
The identifier can be a descriptive name, the name of the machine where the Connector
is installed, or the Connector ID for the Connector.
If you have not installed an On-Premise Connector, and no Connectors have been
shared with you, this field and drop-down list are empty.
If you own multiple Connectors that have the same name, for example, Production,
an identifier is appended to each Connector, for example, Production_dup0 and
Production_dup1. If the Connectors in the dropdown were shared with you, the
owner''s name is appended, for example, Production(owner1) and
Production(owner2).
422 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
OData tab
The following table describes the controls on the OData tab. For information on using the Configure Schema
editor, see Configuring data sources for OData connectivity and working with data source groups on page 646.
For information on formulating OData requests, see Formulating queries with OData Version 2 on page 868.
Table 53: OData tab connection parameters for MySQL Community Edition
Field Description
OData Version
Enables you to choose from the supported OData versions. OData configuration made
with one OData version will not work if you switch to a different OData version. If you want
to maintain the data source with different OData versions, you must create different data
sources for each of them.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 423Chapter 3: Using Hybrid Data Pipeline
Field Description
OData Name
Enables you to set the case for entity type, entity set, and property names in OData
Mapping Case
metadata.
Valid Values: Uppercase | Lowercase | Default
When set to Uppercase, the case changes to all uppercase.
When set to Lowercase, the case changes to all lowercase.
When set to Default, the case does not change.
OData Access URI
Specifies the base URI for the OData feed to access your data source, for example,
https://hybridpipe.operations.com/api/odata/.You
can copy the URI and paste it into your application''s OData configuration.
The URI contains the case-insensitive name of the data source to connect to, and the
query that you want to execute. This URI is the OData Service Root URI for the OData
feed. The Service Document for the data source is returned by issuing a GET request to
the data source''s service root.
The OData Service Document returns the names of the entities exposed by the Data
Source OData service. To get details such as the properties of the entities exposed, the
data types for those properties and the relationships between entities, the Service Metadata
Document can be fetched by adding /$metadata to the service root URI.
Schema Map
Enables OData support. If a schema map is not defined, the OData API cannot be used
to access the data store using this data source definition. Use the Configure Schema
editor to select the tables/columns to expose through OData.
See Configuring data sources for OData connectivity and working with data source groups
on page 646 for more information.
Page Size
Determines the number of entities returned on each page for paging controlled on the
server side. On the client side, requests can use the $top and $skip parameters to
control paging. In most cases, server side paging works well for large data sets. Client
side pagination works best with a smaller data sets where it is not as expensive to fetch
subsequent pages.
Valid Values: 0 | n
where n is an integer from 1 to 10000.
When set to 0, the server default of 2000 is used.
Default: 0
424 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
Refresh Result
Controls what happens when you fetch the first page of a cached result when using Client
Side Paging. Skip must be omitted or set to 0.You can use the cached copy of that first
page, or you can re-execute the query to get a new result, discarding the previously
cached result. Re-executing the query is useful when the data being fetched may change
between two requests for the first page. Using the cached result is useful if you are paging
back and forth through results that are not expected to change.
Valid Values:
When set to 0, the OData service caches the first page of results.
When set to 1, the OData service re-executes the query.
Default: 1
Inline Count Mode
Specifies how the connectivity service satisfies requests that include the $count parameter
when it is set to true (for OData version 4) or the $inlinecount parameter when it is
set to allpages (for OData version 2). These requests require the connectivity service
to include the total number of entities that are defined by the OData query request. The
count must be included in the first page in server-driven paging and must be included in
every page when using client-driven paging.
The optimal setting depends on the data store and the size of results. The OData service
can run a separate query using the count(*) aggregate to get the count, before running
the query used to generate the entities. In very large results, this approach can often lead
to the first page being returned faster. Alternatively, the OData service can fetch the entire
result before returning the first page. This approach works well for small results and for
data stores that cannot optimize the count(*) aggregate; however, it may have a longer
initial response time for the first page if the result is large.
Valid Values:
When set to 1, the connectivity service runs a separate count(*) aggregate query to
get the count of entities before executing the query to return results. In very large results,
this approach can often lead to the first page being returned faster.
When set to 2, the connectivity service fetches all entities before returning the first page.
For small results, this approach is always faster. However, the initial response time for
the first page may be longer if the result is large.
Default: 1
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 425Chapter 3: Using Hybrid Data Pipeline
Field Description
Top Mode
Indicates how requests typically use $top and $skip for client side pagination, allowing
the service to better anticipate how to process queries.
Valid Values:
Set to 0 when the application generally uses $top to limit the size of the result and rarely
attempts to get additional entities by combining $top and $skip.
Set to 1 when the application uses $top as part of client-driven paging and generally
combines $top and $skip to page through the result.
Default: 0
OData Read Only
Controls whether write operations can be performed on the OData service.Write operations
generate a 405 Method Not Allowed response if this option is enabled.
Valid Values:
ON | OFF
When ON is selected, OData access is restricted to read-only mode.
When OFF is selected, write operations can be performed on the OData service.
Default: OFF
MySQL Enterprise parameters
The following tables describe parameters available on the tabs of a MySQL Data Source dialog:
• General Tab
• OData tab
• Security tab
• Advanced tab
426 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
General tab
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 427Chapter 3: Using Hybrid Data Pipeline
Table 54: General tab connection parameters for MySQL Enterprise
Field Description
Data Source
A unique name for the data source. Data source names can contain only alphanumeric
Name
characters, underscores, and dashes.
Description
A general description of the data source.
User Id,
The login credentials used to connect to the MySQL database. A user name and password
Password
is required if user ID/password authentication is enabled on your database. Contact your
system administrator to obtain your user name.
Note: By default, the password is encrypted.
By default, the characters in the Password field you type are not shown. If you want the
password to be displayed in clear text, click the eye icon. Click the icon again to
conceal the password.
Server Name
Specifies either the IP address in IPv4 or IPv6 format, or the server name (if your network
supports named servers) of the primary database server, for example, 122.23.15.12 or
mysqlserver.
Port Number The TCP port of the primary database server listening for connections to the database.
Database
The name of the database that is running on the database server.
Connector ID
The unique identifier of the On-Premise Connector that is to be used to access the
on-premise data source. Select the Connector that you want to use from the dropdown.
The identifier can be a descriptive name, the name of the machine where the Connector
is installed, or the Connector ID for the Connector.
If you have not installed an On-Premise Connector, and no Connectors have been shared
with you, this field and drop-down list are empty.
If you own multiple Connectors that have the same name, for example, Production, an
identifier is appended to each Connector, for example, Production_dup0 and
Production_dup1. If the Connectors in the dropdown were shared with you, the owner''s
name is appended, for example, Production(owner1) and Production(owner2).
428 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Security tab
Table 55: Security tab connection parameters for MySQL Enterprise
Field Description
Encryption Method
Determines whether data is encrypted and decrypted when transmitted over the network
between the Hybrid Data Pipeline connectivity service and the on-premise database
server.
Valid Values:
noEncryption | SSL
If set to noEncryption, data is not encrypted or decrypted.
If set to SSL, data is encrypted using SSL. If the database server does not support SSL,
the connection fails and the Hybrid Data Pipeline connectivity service throws an exception.
Note:
• Connection hangs can occur when the Hybrid Data Pipeline connectivity service is
configured for SSL and the database server does not support SSL.You may want to
set a login timeout using the Login Timeout parameter to avoid problems when
connecting to a server that does not support SSL.
• When SSL is enabled, the following properties also apply:
Host Name In Certificate
ValidateServerCertificate
Crypto Protocol Version
The default value is noEncryption.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 429Chapter 3: Using Hybrid Data Pipeline
Field Description
Crypto Protocol
Specifies a protocol version or a comma-separated list of the protocol versions that can
Version
be used in creating an SSL connection to the data source. If the protocol (or none of the
protocols) is not supported by the database server, the connection fails and the connectivity
service returns an error.
Valid Values:
cryptographic_protocol [[, cryptographic_protocol ]...]
where:
cryptographic_protocol
is one of the following cryptographic protocols:
TLSv1 | TLSv1.1 | TLSv1.2
The client must send the highest version that it supports in the client hello.
Note: Good security practices recommend using TLSv1.2 if your data source supports
that protocol version, due to known vulnerabilities in the earlier protocols.
Example
Your security environment specifies that you can use TLSv1.1 and TLSv1.2. When you
enter the following values, the connectivity service sends TLSv1.2 to the server first.
TLSv1.1,TLSv1.2
Default: TLSv1, TLSv1.1, TLSv1.2
430 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
Host Name In
Specifies a host name for certificate validation when SSL encryption is enabled (Encryption
Certificate
Method=SSL) and validation is enabled (Validate Server Certificate=ON). This optional
parameter provides additional security against man-in-the-middle (MITM) attacks by
ensuring that the server that the Hybrid Data Pipeline connectivity service is connecting
to is the server that was requested.
Valid Values:
host_name | #SERVERNAME#
where host_name is a valid host name.
If host_name is specified, the Hybrid Data Pipeline connectivity service compares the
specified host name to the DNSName value of the SubjectAlternativeName in the
certificate. If a DNSName value does not exist in the SubjectAlternativeName or if the
certificate does not have a SubjectAlternativeName, the connectivity service compares
the host name with the Common Name (CN) part of the certificate’s Subject name. If the
values do not match, the connection fails and the connectivity service throws an exception.
If #SERVERNAME# is specified, the Hybrid Data Pipeline connectivity service compares
the server name that is specified in the connection URL or data source of the connection
to the DNSName value of the SubjectAlternativeName in the certificate. If a DNSName
value does not exist in the SubjectAlternativeName or if the certificate does not have a
SubjectAlternativeName, the connectivity service compares the host name to the CN part
of the certificate’s Subject name. If the values do not match, the connection fails and the
connectivity service throws an exception. If multiple CN parts are present, the connectivity
service validates the host name against each CN part. If any one validation succeeds, a
connection is established.
Default: Empty string
Validate Server
Certificate
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 431Chapter 3: Using Hybrid Data Pipeline
Field Description
Determines whether the Hybrid Data Pipeline connectivity service validates the certificate
that is sent by the database server when SSL encryption is enabled (Encryption
Method=SSL). When using SSL server authentication, any certificate that is sent by the
server must be issued by a trusted Certificate Authority (CA). Allowing the connectivity
service to trust any certificate that is returned from the server even if the issuer is not a
trusted CA is useful in test environments because it eliminates the need to specify truststore
information on each client in the test environment.
Valid Values:
ON | OFF
If set to ON, the Hybrid Data Pipeline connectivity service validates the certificate that is
sent by the database server. Any certificate from the server must be issued by a trusted
CA in the truststore file. If the Host Name In Certificate parameter is specified, the
connectivity service also validates the certificate using a host name. The Host Name In
Certificate parameter is optional and provides additional security against man-in-the-middle
(MITM) attacks by ensuring that the server the connectivity service is connecting to is the
server that was requested.
If set to OFF, the Hybrid Data Pipeline connectivity service does not validate the certificate
that is sent by the database server. The connectivity service ignores any truststore
information that is specified by the Java system properties. Truststore information is
specified using Java system properties.
Default: ON
OData tab
The following table describes the controls on the OData tab. For information on using the Configure Schema
editor, see Configuring data sources for OData connectivity and working with data source groups on page 646.
For information on formulating OData requests, see Formulating queries with OData Version 2 on page 868.
432 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Table 56: OData tab connection parameters for MySQL Enterprise
Field Description
OData Version
Enables you to choose from the supported OData versions. OData configuration made
with one OData version will not work if you switch to a different OData version. If you want
to maintain the data source with different OData versions, you must create different data
sources for each of them.
OData Name
Enables you to set the case for entity type, entity set, and property names in OData
Mapping Case
metadata.
Valid Values: Uppercase | Lowercase | Default
When set to Uppercase, the case changes to all uppercase.
When set to Lowercase, the case changes to all lowercase.
When set to Default, the case does not change.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 433Chapter 3: Using Hybrid Data Pipeline
Field Description
OData Access URI
Specifies the base URI for the OData feed to access your data source, for example,
https://hybridpipe.operations.com/api/odata/.You
can copy the URI and paste it into your application''s OData configuration.
The URI contains the case-insensitive name of the data source to connect to, and the
query that you want to execute. This URI is the OData Service Root URI for the OData
feed. The Service Document for the data source is returned by issuing a GET request to
the data source''s service root.
The OData Service Document returns the names of the entities exposed by the Data
Source OData service. To get details such as the properties of the entities exposed, the
data types for those properties and the relationships between entities, the Service Metadata
Document can be fetched by adding /$metadata to the service root URI.
Schema Map
Enables OData support. If a schema map is not defined, the OData API cannot be used
to access the data store using this data source definition. Use the Configure Schema
editor to select the tables/columns to expose through OData.
See Configuring data sources for OData connectivity and working with data source groups
on page 646 for more information.
Page Size
Determines the number of entities returned on each page for paging controlled on the
server side. On the client side, requests can use the $top and $skip parameters to
control paging. In most cases, server side paging works well for large data sets. Client
side pagination works best with a smaller data sets where it is not as expensive to fetch
subsequent pages.
Valid Values: 0 | n
where n is an integer from 1 to 10000.
When set to 0, the server default of 2000 is used.
Default: 0
Refresh Result
Controls what happens when you fetch the first page of a cached result when using Client
Side Paging. Skip must be omitted or set to 0.You can use the cached copy of that first
page, or you can re-execute the query to get a new result, discarding the previously
cached result. Re-executing the query is useful when the data being fetched may change
between two requests for the first page. Using the cached result is useful if you are paging
back and forth through results that are not expected to change.
Valid Values:
When set to 0, the OData service caches the first page of results.
When set to 1, the OData service re-executes the query.
Default: 1
434 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
Inline Count Mode
Specifies how the connectivity service satisfies requests that include the $count parameter
when it is set to true (for OData version 4) or the $inlinecount parameter when it is
set to allpages (for OData version 2). These requests require the connectivity service
to include the total number of entities that are defined by the OData query request. The
count must be included in the first page in server-driven paging and must be included in
every page when using client-driven paging.
The optimal setting depends on the data store and the size of results. The OData service
can run a separate query using the count(*) aggregate to get the count, before running
the query used to generate the entities. In very large results, this approach can often lead
to the first page being returned faster. Alternatively, the OData service can fetch the entire
result before returning the first page. This approach works well for small results and for
data stores that cannot optimize the count(*) aggregate; however, it may have a longer
initial response time for the first page if the result is large.
Valid Values:
When set to 1, the connectivity service runs a separate count(*) aggregate query to
get the count of entities before executing the query to return results. In very large results,
this approach can often lead to the first page being returned faster.
When set to 2, the connectivity service fetches all entities before returning the first page.
For small results, this approach is always faster. However, the initial response time for
the first page may be longer if the result is large.
Default: 1
Top Mode
Indicates how requests typically use $top and $skip for client side pagination, allowing
the service to better anticipate how to process queries.
Valid Values:
Set to 0 when the application generally uses $top to limit the size of the result and rarely
attempts to get additional entities by combining $top and $skip.
Set to 1 when the application uses $top as part of client-driven paging and generally
combines $top and $skip to page through the result.
Default: 0
OData Read Only
Controls whether write operations can be performed on the OData service.Write operations
generate a 405 Method Not Allowed response if this option is enabled.
Valid Values:
ON | OFF
When ON is selected, OData access is restricted to read-only mode.
When OFF is selected, write operations can be performed on the OData service.
Default: OFF
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 435Chapter 3: Using Hybrid Data Pipeline
Advanced tab
Table 57: Advanced tab connection parameters for MySQL Enterprise
Field Description
Alternate Servers
Specifies one or more alternate servers for failover and is required for all failover methods.
To turn off failover, do not specify a value for the Alternate Servers connection property.
Valid Values:
(servername1[:port1][,servername2[:port2]]...)
The server name (servername1, servername2, and so on) is required for each alternate
server entry. Port number (port1, port2, and so on) is optional for each alternate server
entry. If the port is unspecified, the port number of the primary server is used. If the port
number of the primary server is unspecified, the default port number is used.
Default: None
436 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
Load Balancing
Determines whether the connectivity service uses client load balancing in its attempts to
connect to the servers (primary and alternate) defined in a Connector group.You can
specify one or multiple alternate servers by setting the AlternateServers property.
Valid Values: ON | OFF
If set to ON, the connectivity service uses client load balancing and attempts to connect to
the servers (primary and alternate) in random order. The connectivity service randomly
selects from the list of primary and alternate On Premise Connectors which server to
connect to first. If that connection fails, the connectivity service again randomly selects
from this list of servers until all servers in the list have been tried or a connection is
successfully established.
If set to OFF, the connectivity service does not use client load balancing and connects to
each servers based on their sequential order (primary server first, then, alternate servers
in the order they are specified).
Default: OFF
Notes
• The Alternate Servers connection parameter specifies one or multiple alternate servers
for failover and is required for all failover methods. To turn off failover, do not specify
a value for the Alternate Servers parameter.
Catalog Options Determines which type of metadata information is included in result sets when a JDBC
application calls DatabaseMetaData methods.
Valid Values:
2 | 4
If set to 2, result sets contain synonyms that are returned from the following
DatabaseMetaData methods: getColumns(), getExportedKeys(), getFunctionColumns(),
getFunctions(), getImportedKeys(), getIndexInfo(), getPrimaryKeys(),
getProcedureColumns(), and getProcedures().
If set to 4, a hint is provided to the Hybrid Data Pipeline connectivity service to emulate
getColumns() calls using the ResultSetMetaData object instead of querying database
catalogs for column information. Result sets contain synonyms. Using emulation can
improve performance because the SQL statement that is formulated by the emulation is
less complex than the SQL statement that is formulated using getColumns().The argument
to getColumns() must evaluate to a single table. If it does not, because of a wildcard or
null value, for example, the connectivity service reverts to the default behavior for
getColumns() calls.
Default: 2
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 437Chapter 3: Using Hybrid Data Pipeline
Field Description
Code Page The code page to be used by the Hybrid Data Pipeline connectivity service to convert
Override Character and Clob data. The specified code page overrides the default database code
page or column collation. All Character and Clob data that is returned from or written to
the database is converted using the specified code page.
By default, the Hybrid Data Pipeline connectivity service automatically determines which
code page to use to convert Character data. Use this parameter only if you need to change
the Hybrid Data Pipeline connectivity service’s default behavior.
Valid Values:
string
where string is the name of a valid code page that is supported by your JVM. For
example, CP950.
Default: empty string
Extended Options
Specifies a semi-colon delimited list of connection options and their values. Use this
configuration option to set the value of undocumented connection options that are provided
by Progress DataDirect technical support.You can include any valid connection option in
the Extended Options string, for example:
Database=Server1;UndocumentedOption1=value[;
UndocumentedOption2=value;]
If the Extended Options string contains option values that are also set in the setup dialog,
the values of the options specified in the Extended Options string take precedence.
Initialization String
A semicolon delimited set of commands to be executed on the data store after Hybrid Data
Pipeline has established and performed all initialization for the connection. If the execution
of a SQL command fails, the connection attempt also fails and Hybrid Data Pipeline returns
an error indicating which SQL commands failed.
Syntax:
command[[; command]...]
Where:
command
is a SQL command. Multiple commands must be separated by semicolons. In addition, if
this property is specified in a connection URL, the entire value must be enclosed in
parentheses when multiple commands are specified. For example, assuming a schema
name of SFORCE:
InitializationString=(REFRESH SCHEMA SFORCE)
The default is an empty string.
438 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
Login Timeout
The amount of time, in seconds, to wait for a connection to be established before timing
out the connection request.
Valid Values:
0 | x
where x is a positive integer that represents a number of seconds.
If set to 0, the connectivity service does not time out a connection request.
If set to x, the connectivity service waits for the specified number of seconds before
returning control to the application and throwing a timeout exception.
Default: 30
Max Pooled
The maximum number of prepared statements to cache for this connection. If the value
Statements
of this property is set to 20, the connectivity service caches the last 20 prepared statements
that are created by the application.
The default value is 0.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 439Chapter 3: Using Hybrid Data Pipeline
Field Description
Query Timeout Sets the default query timeout (in seconds) for all statements that are created by a
connection.
Valid Values:
-1 | 0 | x
If set to -1, the query timeout functionality is disabled.The Hybrid Data Pipeline connectivity
service silently ignores calls to the Statement.setQueryTimeout() method.
If set to 0, the default query timeout is infinite (the query does not time out).
If set to x, the Hybrid Data Pipeline connectivity service uses the value as the default
timeout for any statement that is created by the connection.To override the default timeout
value set by this connection option, call the Statement.setQueryTimeout() method to set
a timeout value for a particular statement.
The default value is 0.
Result Set Meta Determines whether the Hybrid Data Pipeline connectivity service returns table name
Data Options information in the ResultSet metadata for Select statements.
Valid Values:
0 | 1
If set to 0 and the ResultSetMetaData.getTableName() method is called, the Hybrid Data
Pipeline connectivity service does not perform additional processing to determine the
correct table name for each column in the result set. The getTableName() method may
return an empty string for each column in the result set.
If set to 1 and the ResultSetMetaData.getTableName() method is called, the Hybrid Data
Pipeline connectivity service performs additional processing to determine the correct table
name for each column in the result set. The connectivity service returns schema name
and catalog name information when the ResultSetMetaData.getSchemaName() and
ResultSetMetaData.getCatalogName() methods are called if the connectivity service can
determine that information.
Default: 0
See the steps for:
How to create a data source in the Web UI on page 240
Oracle parameters
The following tables describe parameters available on the tabs of the Oracle Data Source dialog:
• General tab
• OData tab
• Security tab
• Advanced tab
440 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
General tab
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 441Chapter 3: Using Hybrid Data Pipeline
Table 58: General tab connection parameters for Oracle
Field Description
Data Source A unique name for the data source. Data source names can contain only alphanumeric
Name characters, underscores, and dashes.
Description A general description of the data source.
User Id The User Id for the Oracle account used to establish the connection to the Oracle server.
Password A password for the Oracle account that is used to establish the connection to your Oracle
server.
Note: By default, the password is encrypted.
By default, the characters in the Password field you type are not shown. If you want the
password to be displayed in clear text, click the eye icon. Click the icon again to
conceal the password.
Server Name Specifies either the IP address in IPv4 or IPv6 format, or the server name (if your network
supports named servers) of the primary database server, for example, 122.23.15.12 or
OracleAppServer.
If using a tnsnames.ora file to provide connection information, do not specify this parameter.
Valid values: string
where:
string
is a valid IP address or server name.
The IP address can be specified in either IPv4 or IPv6 format, or a combination of the two.
Port Number The port number on which the Oracle database instance is listening for connections.
Connector ID The unique identifier of the On-Premise Connector that is to be used to access the
on-premise data source. Select the Connector that you want to use from the dropdown.
The identifier can be a descriptive name, the name of the machine where the Connector
is installed, or the Connector ID for the Connector.
If you have not installed an On-Premise Connector, and no Connectors have been shared
with you, this field and drop-down list are empty.
If you own multiple Connectors that have the same name, for example, Production, an
identifier is appended to each Connector, for example, Production_dup0 and
Production_dup1. If the Connectors in the dropdown were shared with you, the owner''s
name is appended, for example, Production(owner1) and Production(owner2).
442 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
Edition Name The name of the Oracle edition the Hybrid Data Pipeline connectivity service uses when
establishing a connection. Oracle 11gR2 and higher allows your database administrator
to create multiple editions of schema objects so that your application can still use those
objects while the database is being upgraded. This parameter is only valid for Oracle 11g
R2 and higher databases and tells the connectivity service which edition of the schema
objects to use.
The Hybrid Data Pipeline connectivity service uses the default edition in the following
cases:
• When the specified edition is not a valid edition. The Hybrid Data Pipeline connectivity
service generates a warning indicating that it was unable to set the current edition to
the specified edition.
• When the value for this parameter is not specified or is set to an empty string.
Valid values:
string
where:
string
is the name of a valid Oracle edition.
Default: empty string
Service Name The Oracle Service Name that identifies the database on the Oracle server to connect to.
SID The Oracle SID that identifies the database on the Oracle server to connect to.
Note: Oracle recommends using Oracle Server Name instead of SID.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 443Chapter 3: Using Hybrid Data Pipeline
Field Description
SysLoginRole Specifies whether the user is logged on the database with the Oracle system privilege
SYSDBA or the Oracle system privilege SYSOPER. For example, you may want the user
to be granted the SYSDBA privilege to allow the user to create or drop a database.
Refer to your Oracle documentation for information about which operations are authorized
for the SYSDBA and SYSOPER system privileges.
Valid values:
sysdba | sysoper
If set to sysdba, the user is logged on the database with the Oracle system privilege
SYSDBA. The user must be granted SYSDBA system privileges before the connection is
attempted by the Hybrid Data Pipeline connectivity service. If not, the connectivity service
returns an error and the connection attempt fails.
If set to sysoper, the user is logged on the database with the Oracle system privilege
SYSOPER.The user must be granted SYSOPER system privileges before the connection
is attempted by the Hybrid Data Pipeline connectivity service. If not, the connectivity service
throws an exception and the connection attempt fails.
If this parameter is set to an empty string or is unspecified, the user is logged in without
SYSDBA or SYSOPER privileges.
Default: empty string
444 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
TNS Names File Specifies the name of the TNSNAMES.ORA file. In a TNSNAMES.ORA file, connection
information for Oracle services is associated with an Oracle net service name. The entry
in the TNSNAMES.ORA file specifies Host, Port Number, and Service Name or SID.
TNSNames File is ignored if no value is specified in the Server Name option. If the Oracle
Server Name option is specified but the TNSNames File option is left blank, the TNS_ADMIN
environment setting is used for the TNSNAMES.ORA file path. If there is no TNS_ADMIN
setting, the ORACLE_HOME environment setting is used. On Windows, if ORACLE_HOME
is not set, the path is taken from the Oracle section of the Registry.
Using an Oracle TNSNAMES.ORA file to centralize connection information in your Oracle
environment simplifies maintenance when changes occur. If, however, the TNSNAMES.ORA
file is unavailable, then it is useful to be able to open a backup version of the
TNSNAMES.ORA file (TNSNames file failover).You can specify one or more backup, or
alternate, TNSNAMES.ORA files.
Valid values:
path_filename
where:
path_filename
is the entire path, including the file name, to the TNSNAMES.ORA file.
To specify multiple TNSNAMES.ORA file locations, separate the names with a comma
and enclose the locations in parentheses (you do not need parentheses for a single entry).
For example:
(M:\server2\oracle\tnsnames.ora,
C:\oracle\product\10.1\db_1\network\admin\tnsnames.ora)
The Hybrid Data Pipeline connectivity service tries to open the first file in the list. If that file
is not available, then it tries to open the second file in the list, and so on.
Note: This option is mutually exclusive with the Server Name, Port Number, SID, and
Service Name options.
TNS Server Specifies the name of the set of connection information in the tnsnames.ora file to use to
Name establish the connection.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 445Chapter 3: Using Hybrid Data Pipeline
Security tab
446 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Table 59: Security tab connection parameters for Oracle
Field Description
Data Integrity Determines the level of Oracle Advanced Security data integrity used for data sent between
Level the Hybrid Data Pipeline connectivity service and database server. The connection fails
if the database server does not have a compatible integrity algorithm.
Valid values:
rejected | accepted | requested | required
If set to rejected, the Hybrid Data Pipeline connectivity service does not enable a data
integrity check for data sent between the connectivity service and database server. The
connection fails if the database server specifies REQUIRED.
If set to accepted, the Hybrid Data Pipeline connectivity service enables a data integrity
check for data sent between the connectivity service and database server if the database
server requests or requires it.
If set to requested, the Hybrid Data Pipeline connectivity service enables a data integrity
check for data sent between the connectivity service and database server if the database
server permits it.
If set to required, the Hybrid Data Pipeline connectivity service performs a data integrity
check for data sent between the connectivity service and database server. The database
server must have data integrity check enabled.The connection fails if the database server
specifies REJECTED.
Note:
• You can enable data integrity protection without enabling encryption.
• Consult your Oracle administrator to verify the data integrity settings of your Oracle
server.
Default: accepted
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 447Chapter 3: Using Hybrid Data Pipeline
Field Description
Data Integrity Determines the method the Hybrid Data Pipeline connectivity service uses to protect
Types against attacks that intercept and modify data being transmitted between the client and
server.You can enable data integrity protection without enabling encryption.
Valid values:
value [[,value ]...]
where:
value
is one of the following values specifying an algorithm in the following table:
Table 60: Oracle Advanced Security data integrity algorithms
Value Description
MD5 Message Digest 5 (MD5).
SHA1 Secure Hash Algorithm (SHA-1).
Note:
• Multiple values must be separated by commas. In addition, if this parameter is specified
in a connection URL, the entire value must be enclosed in parentheses when multiple
values are specified.
• If multiple values are specified and Oracle Advanced Security data integrity is enabled
using the Data Integrity Level parameter, the database server determines which
algorithm is used based on how it is configured.
• If unspecified, a list of all possible values is sent to the database server.The database
server determines which algorithm is used based on how it is configured.
• The value of this parameter is ignored if the Data Integrity Level parameter is set to
rejected.
• Consult your Oracle administrator to verify the data encryption settings of your Oracle
server.
Default: SHA1,MD5 (a list of all possible values)
448 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
Encryption Level Determines whether data is encrypted and decrypted when transmitted over the network
between the Hybrid Data Pipeline connectivity service and database server using Oracle
Advanced Security encryption.
Valid values:
rejected | accepted | requested | required
If set to rejected, data sent between the Hybrid Data Pipeline connectivity service and
the database server is not encrypted or decrypted. The connection fails if the database
server specifies REQUIRED.
If set to accepted, data sent between the Hybrid Data Pipeline connectivity service and
the database server is encrypted and decrypted if the database server requests or requires
it.
If set to requested, data sent between the Hybrid Data Pipeline connectivity service
and the database server is encrypted and decrypted if the database server permits it.
If set to required, data sent between the Hybrid Data Pipeline connectivity service and
the database server must be encrypted and decrypted.The connection fails if the database
server specifies REJECTED.
Note:
• When this parameter is set to accepted, requested, or required, the Encryption
Types connection parameter determines which Oracle Advanced Security algorithms
are used.
• To enable SSL encryption, you can set the Encryption Method connection parameter.
• Consult your database administrator to verify the data encryption settings of your
Oracle server.
Default: accepted
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 449Chapter 3: Using Hybrid Data Pipeline
Field Description
Encryption Method Determines whether data is encrypted and decrypted when transmitted over the network
between the Hybrid Data Pipeline connectivity service and the on-premise database
server.
Valid values:
noEncryption | SSL
If set to noEncryption, data is not encrypted or decrypted.
If set to SSL, data is encrypted using SSL. If the database server does not support SSL,
the connection fails and the Hybrid Data Pipeline connectivity service throws an exception.
Note:
• Connection hangs can occur when the Hybrid Data Pipeline connectivity service is
configured for SSL and the database server does not support SSL.You may want to
set a login timeout using the Login Timeout parameter to avoid problems when
connecting to a server that does not support SSL.
• When SSL is enabled, the following properties also apply:
Host Name In Certificate
ValidateServerCertificate
Crypto Protocol Version
• To enable Oracle Advanced Security encryption, you can set the Encryption Level
connection parameter.
The default value is noEncryption.
450 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
Encryption Types
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 451Chapter 3: Using Hybrid Data Pipeline
Field Description
Specifies a comma-separated list of the encryption algorithms to use if Oracle Advanced
Security encryption is enabled using the Encryption Level parameter.
Valid values:
encryption_algorithm [[,encryption_algorithm ]...]
encryption_algorithm
is a encryption algorithm specifying an algorithm in the following table: AES256
| RC4_256 | AES192 | 3DES168 | AES128 | RC4_128 | 3DES112 | RC4_56 |
DES | RC4_40
Encryption algorithm Description
3DES112 Two-key Triple-DES (with an effective key size of
112-bit).
AES128 AES with a 128-bit key size.
AES192 AES with a 192-bit key size.
AES256 AES with a 256-bit key size.
DES DES (with an effective key size of 56-bit).
DES168 Three-key Triple-DES (with an effective key size of
168-bit).
RC4_128 RC4-128 with a 128-bit key size.
RC4_256 RC4 with a 256-bit key size.
RC4_40 RSA RC4 with a 40-bit key size.
RC4_56 RSA RC4 with a 56-bit key size.
Note: Beginning with Oracle 11.2, Oracle no longer supports DES, MD5, and RC4.
Example
Your security environments specifies that you can use AES with a 192-bit key size or
two-key Triple-DES with an effective key size of 112-bit. Use the following values:
Encryption Types=AES192,3DES112
Note:
• Multiple values must be separated by commas. In addition, if this parameter is specified
in a connection URL, the entire value must be enclosed in parentheses when multiple
values are specified.
452 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
• If multiple values are specified and Oracle Advanced Security encryption is enabled
using the Encryption Level parameter, the database server determines which algorithm
is used based on how it is configured.
• If unspecified, a list of all possible values is sent to the database server.The database
server determines which algorithm is used based on how it is configured.
• Consult your Oracle administrator to verify the data encryption settings of your Oracle
server.
• The value of this property is ignored if the Encryption Level parameter is set to
rejected.
The default value is an empty string.
Crypto Protocol Specifies a protocol version or a comma-separated list of the protocol versions that can
Version be used in creating an SSL connection to the data source. If the protocol (or none of the
protocols) is not supported by the database server, the connection fails and the connectivity
service returns an error.
Valid Values:
cryptographic_protocol [[, cryptographic_protocol ]...]
where:
cryptographic_protocol
is one of the following cryptographic protocols:
TLSv1 | TLSv1.1 | TLSv1.2
The client must send the highest version that it supports in the client hello.
Note: Good security practices recommend using TLSv1.2 if your data source supports
that protocol version, due to known vulnerabilities in the earlier protocols.
Example
Your security environment specifies that you can use TLSv1.1 and TLSv1.2. When you
enter the following values, the connectivity service sends TLSv1.2 to the server first.
TLSv1.1,TLSv1.2
Default: TLSv1, TLSv1.1, TLSv1.2
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 453Chapter 3: Using Hybrid Data Pipeline
Field Description
Host Name In Specifies a host name for certificate validation when SSL encryption is enabled (Encryption
Certificate Method=SSL) and validation is enabled (Validate Server Certificate=ON). This optional
parameter provides additional security against man-in-the-middle (MITM) attacks by
ensuring that the server that the Hybrid Data Pipeline connectivity service is connecting
to is the server that was requested.
Valid values:
host_name | #SERVERNAME#
where host_name is a valid host name.
If host_name is specified, the Hybrid Data Pipeline connectivity service compares the
specified host name to the DNSName value of the SubjectAlternativeName in the
certificate. If a DNSName value does not exist in the SubjectAlternativeName or if the
certificate does not have a SubjectAlternativeName, the connectivity service compares
the host name with the Common Name (CN) part of the certificate’s Subject name. If the
values do not match, the connection fails and the connectivity service throws an exception.
If #SERVERNAME# is specified, the Hybrid Data Pipeline connectivity service compares
the server name that is specified in the connection URL or data source of the connection
to the DNSName value of the SubjectAlternativeName in the certificate. If a DNSName
value does not exist in the SubjectAlternativeName or if the certificate does not have a
SubjectAlternativeName, the connectivity service compares the host name to the CN part
of the certificate’s Subject name. If the values do not match, the connection fails and the
connectivity service throws an exception. If multiple CN parts are present, the connectivity
service validates the host name against each CN part. If any one validation succeeds, a
connection is established.
Default: Empty string
Validate Server Determines whether the Hybrid Data Pipeline connectivity service validates the certificate
Certificate that is sent by the database server when SSL encryption is enabled (Encryption
Method=SSL). When using SSL server authentication, any certificate that is sent by the
server must be issued by a trusted Certificate Authority (CA). Allowing the connectivity
service to trust any certificate that is returned from the server even if the issuer is not a
trusted CA is useful in test environments because it eliminates the need to specify truststore
information on each client in the test environment.
Valid values:
ON | OFF
If set to ON, the Hybrid Data Pipeline connectivity service validates the certificate that is
sent by the database server. Any certificate from the server must be issued by a trusted
CA in the truststore file. If the Host Name In Certificate parameter is specified, the
connectivity service also validates the certificate using a host name. The Host Name In
Certificate parameter is optional and provides additional security against man-in-the-middle
(MITM) attacks by ensuring that the server the connectivity service is connecting to is the
server that was requested.
If set to OFF, the Hybrid Data Pipeline connectivity service does not validate the certificate
that is sent by the database server. The connectivity service ignores any truststore
information that is specified by the Java system properties.
Default: ON
454 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
OData tab
The following table describes the controls on the OData tab. For information on using the Configure Schema
editor, see Configuring data sources for OData connectivity and working with data source groups on page 646.
For information on formulating OData requests, see "Formulating queries" under Querying with OData.
Table 61: OData tab connection parameters for Oracle
Field Description
OData Version Enables you to choose from the supported OData versions. OData configuration made
with one OData version will not work if you switch to a different OData version. If you want
to maintain the data source with different OData versions, you must create different data
sources for each of them.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 455Chapter 3: Using Hybrid Data Pipeline
Field Description
OData Name
Enables you to set the case for entity type, entity set, and property names in OData
Mapping Case
metadata.
Valid Values: Uppercase | Lowercase | Default
When set to Uppercase, the case changes to all uppercase.
When set to Lowercase, the case changes to all lowercase.
When set to Default, the case does not change.
OData Access URI Specifies the base URI for the OData feed to access your data source, for example,
https://hybridpipe.operations.com/api/odata/.You
can copy the URI and paste it into your application''s OData configuration.
The URI contains the case-insensitive name of the data source to connect to, and the
query that you want to execute. This URI is the OData Service Root URI for the OData
feed. The Service Document for the data source is returned by issuing a GET request to
the data source''s service root.
The OData Service Document returns the names of the entities exposed by the Data
Source OData service. To get details such as the properties of the entities exposed, the
data types for those properties and the relationships between entities, the Service Metadata
Document can be fetched by adding /$metadata to the service root URI.
Schema Map Enables OData support. If a schema map is not defined, the OData API cannot be used
to access the data store using this Data Source definition. Use the Configure Schema
editor to select the tables/columns and/or functions to expose through OData.
Page Size Determines the number of entities returned on each page for paging controlled on the
server side. On the client side, requests can use the $top and $skip parameters to
control paging. In most cases, server side paging works well for large data sets. Client
side pagination works best with a smaller data sets where it is not as expensive to fetch
subsequent pages.
Valid Values: 0 | n
where n is an integer from 1 to 10000.
When set to 0, the server default of 2000 is used.
Default: 0
456 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
Refresh Result Controls what happens when you fetch the first page of a cached result when using Client
Side Paging. Skip must be omitted or set to 0.You can use the cached copy of that first
page, or you can re-execute the query to get a new result, discarding the previously
cached result. Re-executing the query is useful when the data being fetched may change
between two requests for the first page. Using the cached result is useful if you are paging
back and forth through results that are not expected to change.
Valid Values:
When set to 0, the OData service caches the first page of results.
When set to 1, the OData service re-executes the query.
Default: 1
Inline Count Mode Specifies how the connectivity service satisfies requests that include the $count parameter
when it is set to true (for OData version 4) or the $inlinecount parameter when it is
set to allpages (for OData version 2). These requests require the connectivity service
to include the total number of entities that are defined by the OData query request. The
count must be included in the first page in server-driven paging and must be included in
every page when using client-driven paging.
The optimal setting depends on the data store and the size of results. The OData service
can run a separate query using the count(*) aggregate to get the count, before running
the query used to generate the entities. In very large results, this approach can often lead
to the first page being returned faster. Alternatively, the OData service can fetch the entire
result before returning the first page. This approach works well for small results and for
data stores that cannot optimize the count(*) aggregate; however, it may have a longer
initial response time for the first page if the result is large.
Valid Values:
When set to 1, the connectivity service runs a separate count(*) aggregate query to
get the count of entities before executing the query to return results. In very large results,
this approach can often lead to the first page being returned faster.
When set to 2, the connectivity service fetches all entities before returning the first page.
For small results, this approach is always faster. However, the initial response time for
the first page may be longer if the result is large.
Default: 1
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 457Chapter 3: Using Hybrid Data Pipeline
Field Description
Top Mode Indicates how requests typically use $top and $skip for client side pagination, allowing
the service to better anticipate how to process queries.
Valid Values:
Set to 0 when the application generally uses $top to limit the size of the result and rarely
attempts to get additional entities by combining $top and $skip.
Set to 1 when the application uses $top as part of client-driven paging and generally
combines $top and $skip to page through the result.
Default: 0
OData Read Only Controls whether write operations can be performed on the OData service.Write operations
generate a 405 Method Not Allowed response if this option is enabled.
Valid Values:
ON | OFF
When ON is selected, OData access is restricted to read-only mode.
When OFF is selected, write operations can be performed on the OData service.
Default: OFF
458 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Advanced tab
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 459Chapter 3: Using Hybrid Data Pipeline
Table 62: Advanced tab connection parameters for Oracle
Field Description
Alternate Servers Specifies one or more alternate servers for failover and is required for all failover methods.
To turn off failover, do not specify a value for the Alternate Servers connection property.
Valid values:
(servername1[:port1][;property=value[;...]][,servername2[:port2]
[;property=value[;...]]]...)
The server name (servername1, servername2, and so on) is required for each
alternate server entry. Port number (port1, port2, and so on) and connection properties
(property=value) are optional for each alternate server entry. If the port is unspecified,
the port number of the primary server is used. If the port number of the primary server is
unspecified, the default port number of 1521 is used.
Optional connection properties are Service Name and SID.
Example:
Server Name=server1:1521;ServiceName=TEST;
AlternateServers=(server2:1521;ServiceName=TEST2,server3:1521;
ServiceName=TEST3
Load Balancing Determines whether the connectivity service uses client load balancing in its attempts to
connect to the servers (primary and alternate) defined in a Connector group.You can
specify one or multiple alternate servers by setting the AlternateServers property.
Valid Values: ON | OFF
If set to ON, the connectivity service uses client load balancing and attempts to connect to
the servers (primary and alternate) in random order. The connectivity service randomly
selects from the list of primary and alternate On Premise Connectors which server to
connect to first. If that connection fails, the connectivity service again randomly selects
from this list of servers until all servers in the list have been tried or a connection is
successfully established.
If set to OFF, the connectivity service does not use client load balancing and connects to
each servers based on their sequential order (primary server first, then, alternate servers
in the order they are specified).
Default: OFF
Notes
• The Alternate Servers parameter specifies one or multiple alternate servers for failover
and is required for all failover methods. To turn off failover, do not specify a value for
the Alternate Servers property.
460 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
Bulk Load Enables bulk load protocol options for batch inserts that the Hybrid Data Pipeline connectivity
Options service can take advantage of when EnableBulkLoad is set to a value of ON.
This option only applies to connections to Oracle 11g R2 and higher database servers.
Valid values:
0 | 128
If set to 0 or unspecified, the bulk load operation continues even if a value that can cause
an index to be invalidated is loaded.
If set to 128, the NoIndexErrors option stops a bulk load operation when a value that would
cause an index to be invalidated is loaded. For example, if a value is loaded that violates
a unique or non-null constraint, the Hybrid Data Pipeline connectivity service stops the
bulk load operation and discards all data being loaded, including any data that was loaded
prior to the problem value.
Default: 0
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 461Chapter 3: Using Hybrid Data Pipeline
Field Description
Determines which type of metadata information is included in result sets when a JDBC
Catalog Options
application calls DatabaseMetaData methods.
Valid values:
0 | 1 | 2 | 3 | 4 | 6 | 8 | 10
If set to 0, result sets do not contain remarks or synonyms.
If set to 1, result sets contain remarks information that is returned from the following
DatabaseMetaData methods: getColumns() and getTables().
If set to 2, result sets contain synonyms that are returned from the following
DatabaseMetaData methods: getColumns(), getExportedKeys(), getFunctionColumns(),
getFunctions(), getImportedKeys(), getIndexInfo(), getPrimaryKeys(),
getProcedureColumns(), and getProcedures().
If set to 3, result sets contain both remarks and synonyms (as described for values 1 and
2).
If set to 4 or 6, a hint is provided to the Hybrid Data Pipeline connectivity service to emulate
getColumns() calls using the ResultSetMetaData object instead of querying database
catalogs for column information. Result sets contain synonyms, but no remarks. If set to
4, synonyms are not returned for getColumns() calls and getTables() or getProcedure()
calls. Using emulation can improve performance because the SQL statement that is
formulated by the emulation is less complex than the SQL statement that is formulated
using getColumns(). The argument to getColumns() must evaluate to a single table. If it
does not, because of a wildcard or null value, for example, the Hybrid Data Pipeline
connectivity service reverts to the default behavior for getColumns() calls.
If set to 8, result sets contain accurate metadata information for VARRAY, TABLE, and
OBJECT data when the following DatabaseMetaData methods are called: getColumns(),
getProcedureColumns(), and getFunctionColumns(). Setting this value can negatively
impact performance.
If set to 10, results sets contain accurate metadata information for VARRAY, TABLE, and
OBJECT data (as described for value 8) and synonyms for other data types (as described
for value 2).
Default:2
462 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
Code Page
Override
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 463Chapter 3: Using Hybrid Data Pipeline
Field Description
The code page to be used by the Hybrid Data Pipeline connectivity service to convert
Character data. The specified code page overrides the default database code page or
column collation. All Character data that is returned from or written to the database is
converted using the specified code page.This option has no effect on how the Hybrid Data
Pipeline connectivity service converts character data to the national character set.
By default, the Hybrid Data Pipeline connectivity service automatically determines which
code page to use to convert Character data. Use this parameter only if you need to change
the connectivity service’s default behavior.
Valid values:
utf8 | sjis | enhanced_sjis | enhanced_sjis_oracle | ms932 |
euc_jp_solaris
where string is the name of a valid code page that is supported by your JVM. For example,
CP950.
If set to utf8, the Hybrid Data Pipeline connectivity service uses the UTF-8 code page to
send data to the Oracle server as Unicode. The UTF-8 code page converts data from the
Java String format UTF-16 to UTF-8. If you specify this value, the Hybrid Data Pipeline
connectivity service forces the value of the WireProtocolMode parameter to 2.
If set to sjis, the Hybrid Data Pipeline connectivity service uses the SHIFT-JIS code page
to convert character data to the JA16SJIS character set.
If set to enhanced_sjis, the Hybrid Data Pipeline connectivity service uses the
ENHANCED_SJIS code page to convert character data from the Java String format UTF-16
to SJIS as defined by the ICU character conversion library. In addition, it maps the following
MS-932 characters to the corresponding SJIS encoding for those characters:
\UFF5E Wave dash
\U2225 Double vertical line
\UFFE0 Cent sign
\UFF0D Minus sign
\UFFE1 Pound sign
\UFFE2 Not sign
This value is provided for backward compatibility. Only use this value when the Oracle
database character set is SHIFT_JIS.
If set to enhanced_sjis_oracle, the Hybrid Data Pipeline connectivity service uses the
ENHANCED_SJIS_ORACLE code page to convert Character data from the Java String
format UTF-16 to Oracle’s definition of SJIS. When the connectivity service connects to
an Oracle database with a JA16SJIS character set, the Hybrid Data Pipeline connectivity
service uses this code page by default. The ENHANCED_SJIS_ORACLE code page is a
super set of the MS932 code page. Only use this value when the Oracle database character
set is SHIFT_JIS.
If set to ms932, the Hybrid Data Pipeline connectivity service uses the Microsoft MS932
code page to convert Character data from the Java String format UTF-16 to SJIS. This
464 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
value is provided for backward compatibility because earlier versions of the connectivity
service used the MS932 code page when converting Character data to JA16SJIS. Only
use this value when the Oracle database character set is SHIFT_JIS.
If set to euc_jp_solaris, the Hybrid Data Pipeline connectivity service uses the
EUC_JP_Solaris code page to convert Character data to the EUC_JP character set.
Default: empty string
Enable Bulk Load Specifies whether to use the bulk load protocol for insert, update, delete, and batch
operations. This increases the number of rows that the Hybrid Data Pipeline connectivity
service loads to send to the data store. Bulk load reduces the number of network trips.
Valid values:
ON | OFF
If set to ON, the Hybrid Data Pipeline connectivity service uses the native bulk load protocols
for batch inserts.
If set to OFF, the connectivity service uses the batch mechanism for batch inserts.
Default: OFF
Extended Options Specifies a semi-colon delimited list of connection options and their values. Use this
configuration option to set the value of undocumented connection options that are provided
by Progress DataDirect technical support.You can include any valid connection option in
the Extended Options string, for example:
Database=Server1;UndocumentedOption1=value[;
UndocumentedOption2=value;]
If the Extended Options string contains option values that are also set in the setup dialog,
the values of the options specified in the Extended Options string take precedence.
Fetch TSWTZ as Determines whether column values with the TIMESTAMP WITH TIME ZONE data type
Timestamp are returned as a JDBC CHAR or TIMESTAMP data type.
Valid on Oracle 10g R2 or higher.
Valid values:
ON | OFF
If set to ON, column values with the TIMESTAMP WITH TIME ZONE data type are returned
as a JDBC TIMESTAMP data type.
If set to OFF, column values with the TIMESTAMP WITH TIME ZONE data type are returned
as a JDBC VARCHAR data type.
Default: OFF
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 465Chapter 3: Using Hybrid Data Pipeline
Field Description
Initialization A semicolon delimited set of commands to be executed on the data store after Hybrid Data
String Pipeline has established and performed all initialization for the connection. If the execution
of a SQL command fails, the connection attempt also fails and Hybrid Data Pipeline returns
an error indicating which SQL commands failed.
Syntax:
SQLcommand[[; SQLcommand]...]
where:
SQLcommand is a SQL command. Multiple commands must be separated by semicolons.
Default: empty string
LOB Prefetch Specifies the size of prefetch data the server returns for BLOBs and CLOBs during a fetch
Size operation.
Valid Values: -1 | 0 | x
where x is a positive integer that represents the size of a BLOB in bytes or a CLOB in
characters.
If set to -1, the property is disabled.
If set to 0, the server returns only LOB meta-data such as length and chunk size with the
LOB locator.
If set to x, the server returns LOB meta-data and the beginning of LOB data with the LOB
locator.
Default: 4000
Login Timeout The amount of time, in seconds, that the Hybrid Data Pipeline connectivity service waits
for a connection to be established before timing out the connection request.
Valid values:
0 | x
where x is a positive integer that represents a number of seconds.
If set to 0, the Hybrid Data Pipeline connectivity service does not time out a connection
request.
If set to x, the Hybrid Data Pipeline connectivity service waits for the specified number of
seconds before returning control to the application and throwing a timeout exception.
Default: 30
Max Pooled The maximum number of prepared statements to cache for this connection. If the value of
Statements this property is set to 20, the Hybrid Data Pipeline connectivity service caches the last 20
prepared statements that are created by the application.
The default value is 0.
466 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
Query Timeout Sets the default query timeout (in seconds) for all statements created by a connection
.
Valid values:
-1 | 0 | x
where x is a positive integer that represents a number of seconds.
If set to -1, the query timeout functionality is disabled.The Hybrid Data Pipeline connectivity
service silently ignores calls to the Statement.setQueryTimeout() method.
If set to 0, the default query timeout is infinite (the query does not time out).
If set to x, the Hybrid Data Pipeline connectivity service uses the value as the default
timeout for any statement that is created by the connection.To override the default timeout
value that is set by this parameter, call the Statement.setQueryTimeout() method to set a
timeout value for a particular statement.
Default: 0
Report Recycle Determines whether the Hybrid Data Pipeline connectivity service returns items that are
Bin in the Oracle Recycle Bin for the getTables(), getColumns(), and getTablePrivileges()
methods. For Oracle 10g R1 and higher, when a table is dropped, it is not actually removed
from the database, but is placed in the recycle bin. By default, the connectivity service
returns items in the Oracle Recycle Bin.
Valid values:
ON | OFF
If set to ON, the Hybrid Data Pipeline connectivity service fetches items contained in the
Oracle Recycle Bin.
If set to OFF, the Hybrid Data Pipeline connectivity service does not return items contained
in the Oracle Recycle Bin. Functionally, this means that the Hybrid Data Pipeline connectivity
service filters out results whose table name begins with BIN$.
Default: ON
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 467Chapter 3: Using Hybrid Data Pipeline
Field Description
Result Set Meta Determines whether the Hybrid Data Pipeline connectivity service returns table name
Data Options information in the ResultSet metadata for Select statements.
Valid values:
0 | 1
If set to 0 and the ResultSetMetaData.getTableName() method is called, the Hybrid Data
Pipeline connectivity service does not perform additional processing to determine the
correct table name for each column in the result set. The getTableName() method may
return an empty string for each column in the result set.
If set to 1 and the ResultSetMetaData.getTableName() method is called, the Hybrid Data
Pipeline connectivity service performs additional processing to determine the correct table
name for each column in the result set. The connectivity service returns schema name
and catalog name information when the ResultSetMetaData.getSchemaName() and
ResultSetMetaData.getCatalogName() methods are called if the connectivity service can
determine that information.
Default: 0
Send Float Determines whether FLOAT, BINARY_FLOAT, and BINARY_DOUBLE parameters are
Parameters As sent to the database server as a string or as a floating point number.
String
Valid values:
ON | OFF
If set to ON, the Hybrid Data Pipeline connectivity service sends FLOAT, BINARY_FLOAT,
and BINARY_DOUBLE parameters to the database server as string values.
If set to OFF), the Hybrid Data Pipeline connectivity service sends FLOAT, BINARY_FLOAT,
and BINARY_DOUBLE parameters to the database server as floating point numbers.When
Oracle overloaded stored procedures are used, this value ensures that the database server
can determine the correct stored procedure to call based on the parameter’s data type.
Note:
• Numbers larger than 1.0E127 or smaller than 1.0E-130 cannot be converted to Oracle’s
number format for Oracle8i and Oracle9i databases using floating point numbers.When
a number larger than 1.0E127 or smaller than 1.0E-130 is encountered, the Hybrid Data
Pipeline connectivity service throws an exception. If your application uses numbers in
this range against an Oracle8i or Oracle9i database, set this parameter to ON.
Default: OFF
468 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
String Params Determines whether the Hybrid Data Pipeline connectivity service uses ORA_CHAR or
Must Match Char ORA_VARCHAR bindings for string parameters in a Where clause. Using ORA_VARCHAR
Columns bindings can improve performance, but may cause matching problems for CHAR columns.
Valid values:
ON | OFF
If set to ON, the Hybrid Data Pipeline connectivity service uses ORA_CHAR bindings.
If set to OFF, the Hybrid Data Pipeline connectivity service uses ORA_VARCHAR bindings,
which can improve performance. For example, in the following code, if col1 is defined as
CHAR(10) and the column name has the string ''abc'' in it, the match will fail.
ps = con.prepareStatement("SELECT * FROM employees WHERE col1=?");
ps.setString(1, "abc");
rs = ps.executeQuery();
Default: ON
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 469Chapter 3: Using Hybrid Data Pipeline
Field Description
Support Links Determines whether the Hybrid Data Pipeline connectivity service supports Oracle linked
servers, which means a mapping has been defined in one Oracle server to another Oracle
server.When Oracle linked servers are supported, the connectivity service does not support
distributed transactions.
Valid values:
ON | OFF
If set to ON, the Hybrid Data Pipeline connectivity service supports Oracle linked servers
but does not support distributed transactions.
If set to OFF, the Hybrid Data Pipeline connectivity service supports distributed transactions
but does not support Oracle linked servers. In most cases, setting this parameter to OFF
provides the best performance.
Default: OFF
Metadata Restricts the metadata exposed by Hybrid Data Pipeline to a single schema.The metadata
Exposed exposed in the SQL Editor, the Configure Schema Editor, and third party applications will
Schemas be limited to the specified schema. JDBC, OData, and ODBC metadata calls will also be
restricted. In addition, calls made with the Schema API will be limited to the specified
schema.
Warning: This functionality should not be regarded as a security measure. While
the Metadata Exposed Schemas option restricts the metadata exposed by Hybrid
Data Pipeline to a single schema, it does not prevent queries against other schemas
on the backend data store. As a matter of best practice, permissions should be
set on the backend data store to control the ability of users to query data.
Valid Values
Where:
is the name of a valid schema on the backend data store.
Default: No schema is specified. Therefore, all schemas are exposed.
Oracle Marketing Cloud (Eloqua) parameters
The following tables describe parameters available on the tabs of a Oracle Marketing Cloud Data Source
dialog:
• General tab
• OData tab
• Mapping tab
• Advanced tab
470 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
General tab
Table 63: General tab connection parameters for Oracle Marketing Cloud
Field Description
Data Source
A unique name for the data source. Data source names can contain only alphanumeric
Name
characters, underscores, and dashes.
Description A description of this set of connection parameters.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 471Chapter 3: Using Hybrid Data Pipeline
Field Description
User Id,
The login credentials for your Oracle Marketing Cloud data store account.
Password
Note: By default, the password is encrypted.
By default, the characters in the Password field you type are not shown. If you want the
password to be displayed in clear text, click the eye icon. Click the icon again to
conceal the password.
In addition to the user ID and password, the company identifier must be set.
Company The company identifier that Oracle Marketing Cloud issues after registration. For example,
if your company name is My Company LLC, Oracle Marketing Cloud might issue the
company identifier as mycompany.
Note: If you do not know this value, ask the person who registered the Oracle Marketing
Cloud account.
OData tab
The following table describes the controls on the OData tab. For information on using the Configure Schema
editor, see Configuring data sources for OData connectivity and working with data source groups on page 646.
For information on formulating OData requests, see "Formulating queries" under Querying with OData.
472 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Table 64: OData tab connection parameters for Oracle Marketing Cloud
Field Description
OData Version
Enables you to choose from the supported OData versions. OData configuration made
with one OData version will not work if you switch to a different OData version. If you want
to maintain the data source with different OData versions, you must create different data
sources for each of them.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 473Chapter 3: Using Hybrid Data Pipeline
Field Description
OData Name
Enables you to set the case for entity type, entity set, and property names in OData
Mapping Case
metadata.
Valid Values: Uppercase | Lowercase | Default
When set to Uppercase, the case changes to all uppercase.
When set to Lowercase, the case changes to all lowercase.
When set to Default, the case does not change.
OData Access URI
Specifies the base URI for the OData feed to access the data source, for example,
https://example.com:8443/api/odata4/.You can copy
the URI and paste it into your application''s OData configuration.
The URI contains the case-insensitive name of the data source to connect to, and the
query that you want to execute. This URI is the OData Service Root URI for the OData
feed. The Service Document for the data source is returned by issuing a GET request to
the data source''s service root.
The OData Service Document returns the names of the entities exposed by the Data
Source OData service. To get details such as the properties of the entities exposed, the
data types for those properties and the relationships between entities, the Service Metadata
Document can be fetched by adding /$metadata to the service root URI.
Schema Map
Enables OData support. If a schema map is not defined, the OData API cannot be used
to access the data store using this data source definition. Use the Configure Schema
editor to select the tables/columns to expose through OData.
See Configuring data sources for OData connectivity and working with data source groups
on page 646 for more information.
Page Size
Determines the number of entities returned on each page for paging controlled on the
server side. On the client side, requests can use the $top and $skip parameters to
control paging. In most cases, server side paging works well for large data sets. Client
side pagination works best with a smaller data sets where it is not as expensive to fetch
subsequent pages.
Valid Values: 0 | n
where n is an integer from 1 to 10000.
When set to 0, the server default of 2000 is used.
Default: 0
474 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
Refresh Result
Controls what happens when you fetch the first page of a cached result when using Client
Side Paging. Skip must be omitted or set to 0.You can use the cached copy of that first
page, or you can re-execute the query to get a new result, discarding the previously
cached result. Re-executing the query is useful when the data being fetched may change
between two requests for the first page. Using the cached result is useful if you are paging
back and forth through results that are not expected to change.
Valid Values:
When set to 0, the OData service caches the first page of results.
When set to 1, the OData service re-executes the query.
Default: 1
Inline Count Mode
Specifies how the connectivity service satisfies requests that include the $inlinecount
parameter when it is set to allpages. These requests require the connectivity service
to include the total number of entities that are defined by the OData query request. The
count must be included in the first page in server-driven paging and must be included in
every page when using client-driven paging.
The optimal setting depends on the data store and the size of results. The OData service
can run a separate query using the count(*) aggregate to get the count, before running
the query used to generate the entities. In very large results, this approach can often lead
to the first page being returned faster. Alternatively, the OData service can fetch the entire
result before returning the first page. This approach works well for small results and for
data stores that cannot optimize the count(*) aggregate; however, it may have a longer
initial response time for the first page if the result is large.
Valid Values:
When set to 1, the connectivity service runs a separate count(*) aggregate query to
get the count of entities before executing the query to return results. In very large results,
this approach can often lead to the first page being returned faster.
When set to 2, the connectivity service fetches all entities before returning the first page.
For small results, this approach is always faster. However, the initial response time for
the first page may be longer if the result is large.
Default: 2
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 475Chapter 3: Using Hybrid Data Pipeline
Field Description
Top Mode
Indicates how requests typically use $top and $skip for client side pagination, allowing
the service to better anticipate how to process queries.
Valid Values:
Set to 0 when the application generally uses $top to limit the size of the result and rarely
attempts to get additional entities by combining $top and $skip.
Set to 1 when the application uses $top as part of client-driven paging and generally
combines $top and $skip to page through the result.
Default: 0
OData Read Only
Controls whether write operations can be performed on the OData service.Write operations
generate a 405 Method Not Allowed response if this option is enabled.
Valid Values:
ON | OFF
When ON is selected, OData access is restricted to read-only mode.
When OFF is selected, write operations can be performed on the OData service.
Default: OFF
476 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Mapping tab
The default values for advanced mapping fields are appropriate in many cases. However, if your organization
wants to strip custom prefixes or enable uppercase identifiers, you might want to change map option settings.
Understanding how the Hybrid Data Pipeline connectivity service creates and uses maps will help you choose
the appropriate values.
Click the + next to Set Map Options to display these fields.
The following table describes the mapping options that apply to Oracle Marketing Cloud.
Note: Map creation is an expensive operation. In most cases, you will only want to re-create a map if you
need to change mapping options.
Table 65: Mapping tab Connection Parameters for Oracle Marketing Cloud
Field Description
Map Name
Optional name of the map definition that Hybrid Data Pipeline uses to interpret the schema
of the cloud data store. The Hybrid Data Pipeline service automatically creates a name
for the map.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 477Chapter 3: Using Hybrid Data Pipeline
Field Description
Refresh Schema
The Refresh Schema option specifies whether the connectivity service attempts to refresh
the schema when an application first connects.
Valid Values:
When set to ON, the connectivity service attempts to refresh the schema.
When set to OFF, the connectivity service does not attempt to refresh the schema.
Default: OFF
Notes:
• You can choose to refresh the schema by clicking the Refresh icon. This refreshes
the schema immediately. Note that the refresh option is available only while editing
the data source.
• Use the option to specify whether the connectivity service attempts to refresh the
schema when an application first connects. Click the Refresh icon if you want to refresh
the schema immediately, using an already saved configuration.
• If you are making other edits to the settings, you need to click update to save your
configuration. Clicking the Refresh icon will only trigger a runtime call on the saved
configuration.
Create Mapping
Determines whether the Oracle Marketing Cloud table mapping files are to be (re)created.
The Hybrid Data Pipeline connectivity service automatically maps data store objects and
fields to tables and columns the first time that it connects to the data store. The map
includes both standard and custom objects and includes any relationships defined between
objects.
Table 66: Valid values for Create Map field
Value Description
Not Exist Select this option for most normal operations. If a map for a data source
does not exist, this option causes one to be created. If a map exists, the
service uses that existing map. If a name is not specified in the Map
Name field, the name will be a combination of the User Name and Data
Source ID.
Force New Select this option to force creation of a new map. A map is created on
connection whether one exists or not. The connectivity service uses a
combination of the User Name and Data Source ID to name the map.
Map creation is expensive, so you will likely not want to leave this option
set to Force New indefinitely.
No If a map for a data source does not exist, the connectivity service does
not create one.
478 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
Keyword Conflict
The SQL standard and Hybrid Data Pipeline both define keywords and reserved words.
Suffix
These have special meaning in context, and may not be used as identifier names unless
typed in uppercase letters and enclosed in quotation marks.
For example, the Case object is a standard object present in most Salesforce organizations
but CASE is also an SQL keyword. Therefore, a table named Case cannot be used in a
SQL statement unless enclosed in quotes and entered in uppercase letters:
• Execution of the SQL query Select * from Case will return the following:
Error: [DataDirect][DDCloud JDBC Driver][Salesforce]Unexpected
token: CASE in statement [select * from case]
• Execution of the SQL query Select * from "Case" will return the following:
Error: [DataDirect][DDCloud JDBC Driver][Salesforce]Table not
found in statement [select * from "Case"]
• Execution of the SQL query, Select * from "CASE" will complete successfully.
To avoid using quotes and uppercase for table or column names that match keywords
and reserved words, you can instruct Hybrid Data Pipeline to add a suffix to such names.
For example, if Keyword Conflict Suffix is set to TAB, the Case table will be mapped
to a table named CASETAB.With such a suffix appended in the map, the following queries
both work:
• Select * from CASETAB
• Select * from casetab
The default value is an empty string.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 479Chapter 3: Using Hybrid Data Pipeline
Field Description
Check Box As Specifies whether the check box values of the user-defined columns should be returned
Text as a string or as boolean.
If set to 0, the check box value is returned as a boolean, which is described as BIT in the
schema. Any values that cannot be matched to the current ''checkedValue'' or
''uncheckedValue'' are returned as NULL.
If set to 1, the stored literal value of the check box is returned as a string, which is described
as WVARCHAR in the schema.
Default: 0
Fetch Option Lists Determines whether the connectivity service describes the column length of option lists
based on the length of their values. When enabled, Fetch List Options creates a more
accurate schema map, but at the expense of slower performance when creating or
refreshing a map.
Valid Values: ON | OFF
If set to ON, the connectivity service fetches the lengths of option list values to describe
the column length of option lists in the schema map. For single-option lists, the column
length of an option list is set to the same length as its longest value. For multi-option lists,
the column length is set to the sum of the lengths of all its values minus 1.
If set to OFF, the column length of single-option lists are set to the default length of text
data type, while the column length of multi-option lists are set to VARCHAR(1000).
Default: OFF
480 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Advanced tab
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 481Chapter 3: Using Hybrid Data Pipeline
Table 67: Advanced tab connection parameters for Oracle Marketing Cloud
Field Description
Web Service
Specifies the number of rows of data the Hybrid Data Pipeline connectivity service attempts
Fetch Size
to fetch for each call.
Valid Values:
0 | x
If set to 0, the Hybrid Data Pipeline connectivity service attempts to fetch up to a maximum
of 10000 rows. This value typically provides the maximum throughput.
If set to x, the Hybrid Data Pipeline connectivity service attempts to fetch up to a maximum
of the specified number of rows. Setting the value lower than 10000 can reduce the
response time for returning the initial data. Consider using a smaller value for interactive
applications only.
Default: 1000
Web Service Retry
The number of times to retry a timed-out Select request. Insert, Update, and Delete
Count
requests are never retried. The Web Service Timeout parameter specifies the period
between retries. A value of 0 for the retry count prevents retries. A positive integer sets
the number of retries. The default value is 0.
Web Service
The time, in seconds, to wait before retrying a timed-out Select request. Valid only if the
Timeout
value of Web Service Retry Count is greater than zero. A value of 0 for the timeout waits
indefinitely for the response to a Web service request. There is no timeout. A positive
integer is considered as a default timeout for any statement created by the connection.
The default value is 120.
Fail On Specifies how Hybrid Data Pipeline processes a query when Oracle Marketing Cloud
Incomplete Data returns no data for some columns.
For these columns, which together form incomplete data, the connectivity service can
either return NULL values or throw an exception.
If set to 0, the connectivity service returns NULL values for such columns.
If set to 1, if possible, the connectivity service tries to retrieve the complete data using the
bulk load.
While using the bulk load, if the number of columns exceeds 100 and the interface is
therefore unable to satisfy the requirements of the query, the connectivity service throws
an exception.
Note: It is preferable that you enable bulk load (Enable Bulk Load), as this allows more
options for retrieving the data.
Default: 0
482 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
Enable Bulk Load
Enables or disables bulk support for fetching data.
If set to 1, bulk support is enabled.
If set to 0, bulk support is disabled.
Default: 1
Activity Bulk Page The number of records to be fetched from Activity_XXX tables in a single request when
Size using the bulk load.
Valid Values: 2 to 50000
Default: 50000
Bulk Page Size The number of records to be fetched from Oracle Marketing Cloud in a single request
when using the bulk load. 5, 6
Valid Values: 2 to 50000
Default: 5000
Bulk Timeout The timeout duration for a bulk call in seconds.
Oracle Marketing Cloud automatically clears out the bulk staging area after this timeout,
so if the query is large and the data takes more than this time to run, the query could be
aborted midstream. This property only has an effect if the bulk load is enabled.
Valid Values: 3600 to 120960
Default: 18000
Bulk Top For a Select query that qualifies for the bulk operations and the TOP n clause is used:
Threshold
If the specified value is less than or equal to 1000, the standard mechanism would be
used to process the query.
If the specified value is greater than 1000, bulk load would be used to process the query.
Valid Values: An integer greater than 0
Default: 1000
Read Only Enables write operations to Oracle Marketing Cloud.
If set to ON, the data source is read only. Write operations are not allowed.
If set to OFF, write operations are permitted.
Default: OFF
5 Generally, higher page sizes return results more quickly. However, Oracle Marketing Cloud imposes a 32 MB limit on response
package size. If queries return large records, too many records within a single page will exceed that limit, causing the query to
fail.
6 All of the objects returned within a page must be materialized as the page is retrieved, so sufficient Java heap space is necessary
with large page sizes containing many small columns.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 483Chapter 3: Using Hybrid Data Pipeline
Field Description
Extended Options
Specifies a semi-colon delimited list of connection options and their values. Use this
configuration option to set the value of undocumented connection options that are provided
by Progress DataDirect technical support.You can include any valid connection option
in the Extended Options string, for example:
Database=Server1;UndocumentedOption1=value[;
UndocumentedOption2=value;]
If the Extended Options string contains option values that are also set in the setup dialog,
the values of the options specified in the Extended Options string take precedence.
Metadata Exposed
Restricts the metadata exposed by Hybrid Data Pipeline to a single schema.The metadata
Schemas
exposed in the SQL Editor, the Configure Schema Editor, and third party applications will
be limited to the specified schema. JDBC, OData, and ODBC metadata calls will also be
restricted. In addition, calls made with the Schema API will be limited to the specified
schema.
Warning: This functionality should not be regarded as a security measure. While
the Metadata Exposed Schemas option restricts the metadata exposed by Hybrid
Data Pipeline to a single schema, it does not prevent queries against other
schemas on the backend data store. As a matter of best practice, permissions
should be set on the backend data store to control the ability of users to query
data.
Valid Values
Where:
is the name of a valid schema on the backend data store.
Default: No schema is specified. Therefore, all schemas are exposed.
Oracle Sales Cloud parameters
The following tables describe parameters available on the tabs of an Oracle® Sales Cloud™ Data Source dialog:
• General tab
• OData tab
• Mapping tab
• Advanced tab
484 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
General tab
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 485Chapter 3: Using Hybrid Data Pipeline
Table 68: General tab connection parameters for Oracle Sales Cloud
Field Description
Data Source
A unique name for the data source. Data source names can contain only alphanumeric
Name
characters, underscores, and dashes.
Description
A general description of the data source.
User Id,
The login credentials for your Oracle Sales Cloud data store account.
Password
Note: By default, the password is encrypted.
The Hybrid Data Pipeline connectivity service uses this information to connect to the data
store. The administrator of the data store must grant permission to a user with these
credentials to access the data store and the target data.
Note: You can save the Data Source definition without specifying the login credentials.
In that case, when you test the Data Source connection, you will be prompted to specify
these details. Applications using the connectivity service will have to supply the data store
credentials (if they are not saved in the Data Source) in addition to the Data Source name
and the credentials for the Hybrid Data Pipeline connectivity service.
By default, the characters in the Password field you type are not shown. If you want the
password to be displayed in clear text, click the eye icon. Click the icon again to
conceal the password.
Oracle Sales
The Host Name for the Oracle Sales Cloud site that the Hybrid Data Pipeline connectivity
Cloud Login URL
service will use to query the service; for example, mysite.custhelp.com.
OData tab
The following table describes the controls on the OData tab. For information on using the Configure Schema
editor, see Configuring data sources for OData connectivity and working with data source groups on page 646.
For information on formulating OData requests, see Formulating queries with OData Version 2 on page 868
under Querying with OData.
486 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Table 69: OData tab connection parameters for Oracle Sales Cloud
Field Description
OData Version
Enables you to choose from the supported OData versions. OData configuration made
with one OData version will not work if you switch to a different OData version. If you want
to maintain the data source with different OData versions, you must create different data
sources for each of them.
OData Name
Enables you to set the case for entity type, entity set, and property names in OData
Mapping Case
metadata.
Valid Values: Uppercase | Lowercase | Default
When set to Uppercase, the case changes to all uppercase.
When set to Lowercase, the case changes to all lowercase.
When set to Default, the case does not change.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 487Chapter 3: Using Hybrid Data Pipeline
Field Description
OData Access URI
Specifies the base URI for the OData feed to access your data source, for example,
https://hybridpipe.operations.com/api/odata/.You
can copy the URI and paste it into your application''s OData configuration.
The URI contains the case-insensitive name of the data source to connect to, and the
query that you want to execute. This URI is the OData Service Root URI for the OData
feed. The Service Document for the data source is returned by issuing a GET request to
the data source''s service root.
The OData Service Document returns the names of the entities exposed by the Data
Source OData service. To get details such as the properties of the entities exposed, the
data types for those properties and the relationships between entities, the Service Metadata
Document can be fetched by adding /$metadata to the service root URI.
Schema Map
Enables OData support. If a schema map is not defined, the OData API cannot be used
to access the data store using this data source definition. Use the Configure Schema
editor to select the tables/columns to expose through OData.
See Configuring data sources for OData connectivity and working with data source groups
on page 646 for more information.
Page Size
Determines the number of entities returned on each page for paging controlled on the
server side. On the client side, requests can use the $top and $skip parameters to
control paging. In most cases, server side paging works well for large data sets. Client
side pagination works best with a smaller data sets where it is not as expensive to fetch
subsequent pages.
Valid Values: 0 | n
where n is an integer from 1 to 10000.
When set to 0, the server default of 2000 is used.
Default: 0
Refresh Result
Controls what happens when you fetch the first page of a cached result when using Client
Side Paging. Skip must be omitted or set to 0.You can use the cached copy of that first
page, or you can re-execute the query to get a new result, discarding the previously
cached result. Re-executing the query is useful when the data being fetched may change
between two requests for the first page. Using the cached result is useful if you are paging
back and forth through results that are not expected to change.
Valid Values:
When set to 0, the OData service caches the first page of results.
When set to 1, the OData service re-executes the query.
Default: 1
488 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
Inline Count Mode
Specifies how the connectivity service satisfies requests that include the $count parameter
when it is set to true (for OData version 4) or the $inlinecount parameter when it is
set to allpages (for OData version 2). These requests require the connectivity service
to include the total number of entities that are defined by the OData query request. The
count must be included in the first page in server-driven paging and must be included in
every page when using client-driven paging.
The optimal setting depends on the data store and the size of results. The OData service
can run a separate query using the count(*) aggregate to get the count, before running
the query used to generate the entities. In very large results, this approach can often lead
to the first page being returned faster. Alternatively, the OData service can fetch the entire
result before returning the first page. This approach works well for small results and for
data stores that cannot optimize the count(*) aggregate; however, it may have a longer
initial response time for the first page if the result is large.
Valid Values:
When set to 1, the connectivity service runs a separate count(*) aggregate query to
get the count of entities before executing the query to return results. In very large results,
this approach can often lead to the first page being returned faster.
When set to 2, the connectivity service fetches all entities before returning the first page.
For small results, this approach is always faster. However, the initial response time for
the first page may be longer if the result is large.
Default: 1
Top Mode
Indicates how requests typically use $top and $skip for client side pagination, allowing
the service to better anticipate how to process queries.
Valid Values:
Set to 0 when the application generally uses $top to limit the size of the result and rarely
attempts to get additional entities by combining $top and $skip.
Set to 1 when the application uses $top as part of client-driven paging and generally
combines $top and $skip to page through the result.
Default: 0
OData Read Only
Controls whether write operations can be performed on the OData service.Write operations
generate a 405 Method Not Allowed response if this option is enabled.
Valid Values:
ON | OFF
When ON is selected, OData access is restricted to read-only mode.
When OFF is selected, write operations can be performed on the OData service.
Default: OFF
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 489Chapter 3: Using Hybrid Data Pipeline
Mapping tab
The default values for advanced mapping fields are appropriate in many cases. However, if your organization
wants to strip custom prefixes or enable uppercase identifiers, you might want to change map option settings.
Understanding how the Hybrid Data Pipeline connectivity service creates and uses maps will help you choose
the appropriate values.
Click the + next to Set Map Options to display these fields.
The following table describes the mapping options that apply to Oracle Sales Cloud.
Note: Map creation is an expensive operation. In most cases, you will only want to re-create a map if you
need to change mapping options.
490 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Table 70: Mapping tab Connection Parameters for Oracle Sales Cloud
Field Description
Web Service Call
The maximum number of Web service calls allowed to the cloud data store for a single
Limit
SQL statement or metadata query.
Valid Values: -1 | 0 | x
where x is a positive integer that defines the maximum number of Web service calls that
the connectivity service can make when executing any single SQL statement or metadata
query.
If set to -1, the connectivity service uses the default value that is configured in the service
when connected to a site whose version is August 2014 or later. When connected to sites
whose version is prior to August 2014, the connectivity service sets the maximum number
of calls to 100.
If set to 0, the connectivity service uses the maximum number of calls allowed by the
service when connected to a site whose version is August 2014 or later.When connected
to sites whose version is prior to August 2014, there is no limit.
If set to x, the connectivity service uses this value to set the maximum number of Web
service calls that can be made when executing a SQL statement or metadata query. If
you specify a value that is greater than the maximum number of calls allowed when
connected to a site whose version is August 2014 or later, the connectivity service returns
a warning and uses the maximum value instead.
Default: -1.
Map Name
Optional name of the map definition that the Hybrid Data Pipeline connectivity service
uses to interpret the schema of the data store. The Hybrid Data Pipeline service
automatically creates a name for the map.
Refresh Schema
Specifies whether the Hybrid Data Pipeline connectivity service attempts to refresh the
schema when an application first connects.
Valid Values:
ON | OFF
If set to OFF and the ResultSetMetaData.getTableName() method is called, the connectivity
service does not perform additional processing to determine the correct table name for
each column in the result set. The getTableName() method may return an empty string
for each column in the result set.
If set to ON and the ResultSetMetaData.getTableName() method is called, the connectivity
service performs additional processing to determine the correct table name for each
column in the result set.The connectivity service returns schema name and catalog name
information when the ResultSetMetaData.getSchemaName() and
ResultSetMetaData.getCatalogName() methods are called if the connectivity service can
determine that information.
Default: OFF
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 491Chapter 3: Using Hybrid Data Pipeline
Field Description
Create Mapping
Determines whether the Oracle Sales Cloud table mapping files are to be (re)created.
The Hybrid Data Pipeline connectivity service automatically maps data store objects and
fields to tables and columns the first time that it connects to the data store. The map
includes both standard and custom objects and includes any relationships defined between
objects.
Table 71: Valid values for Create Map field
Value Description
Not Exist Select this option for most normal operations. If a map for a data source
does not exist, this option causes one to be created. If a map exists, the
service uses that existing map. If a name is not specified in the Map
Name field, the name will be a combination of the User Name and Data
Source ID.
Force New Select this option to force creation of a new map. A map is created on
connection whether one exists or not. The connectivity service uses a
combination of the User Name and Data Source ID to name the map.
Map creation is expensive, so you will likely not want to leave this option
set to Force New indefinitely.
No If a map for a data source does not exist, the connectivity service does
not create one.
API Version
Identifies the version of Oracle Sales Cloud used in your environment.
By default, API Version is set to latest. When set to latest, the connectivity service
assumes the latest version of Oracle Sales Cloud is being used.
API Version can also be set to a specific Oracle Sales Cloud API version, for example,
11.1.11.
API Endpoints
Specifies modules for Oracle Sales Cloud instances.The Hybrid Data Pipeline connectivity
service retrieves resources from the specified endpoints. Modules must be separated by
a comma.
Default: salesApi,crmCommonApi
Varchar Threshold
Specifies the threshold at which columns of the data type SQL_VARCHAR are described
as SQL_LONGVARCHAR. If the size of the SQL_VARCHAR column exceeds the value
specified, the column is described as SQL_LONGVARCHAR when calling SQLDescribeCol
and SQLColumns. This option allows you to fetch columns that would otherwise exceed
the upper limit of the SQL_VARCHAR type for some third-party applications.
Default: 4000
492 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Advanced tab
Table 72: Advanced tab connection parameters for Oracle Sales Cloud
Field Description
Web Service
Specifies the number of rows of data the Hybrid Data Pipeline connectivity service attempts
Fetch Size
to fetch for each Web service call.
Valid Values:
0 | x
If set to 0, the connectivity service attempts to fetch up to a maximum of 100 rows. This
value typically provides the maximum throughput.
If set to x, the connectivity service attempts to fetch up to a maximum of the specified
number of rows. Setting the value lower than 100 can reduce the response time for
returning the initial data. Consider using a smaller value for interactive applications only.
Default: 100
Web Service Retry
The number of times to retry a timed-out Select request. Insert, Update, and Delete
Count
requests are never retried. The Web Service Timeout parameter specifies the period
between retries. A value of 0 for the retry count prevents retries. A positive integer sets
the number of retries. The default value is 0.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 493Chapter 3: Using Hybrid Data Pipeline
Field Description
Web Service
The time, in seconds, to wait before retrying a timed-out Select request. Valid only if the
Timeout
value of Web Service Retry Count is greater than zero. A value of 0 for the timeout waits
indefinitely for the response to a Web service request. There is no timeout. A positive
integer is considered as a default timeout for any statement created by the connection.
The default value is 120.
Max Pooled
The maximum number of prepared statements to cache for this connection. If the value
Statements
of this property is set to 20, the connectivity service caches the last 20 prepared statements
that are created by the application.
Default: 0
Initialization String
A semicolon delimited set of commands to be executed on the data store after Hybrid
Data Pipeline has established and performed all initialization for the connection. If the
execution of a SQL command fails, the connection attempt also fails and Hybrid Data
Pipeline returns an error indicating which SQL commands failed.
Syntax:
SQLcommand[[; SQLcommand]...]
where:
SQLcommand is a SQL command. Multiple commands must be separated by semicolons.
Default: an empty string.
Read Only Enables write operations to Oracle Sales Cloud.
If set to ON, the data source is read only. Write operations are not allowed.
If set to OFF), write operations are permitted if Oracle Sales Cloud Database is set to
operational.Write operations are not supported if Oracle Sales Cloud Database is set
to report.
Default: ON
494 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
Extended Options
Specifies a semi-colon delimited list of connection options and their values. Use this
configuration option to set the value of undocumented connection options that are provided
by Progress DataDirect technical support.You can include any valid connection option
in the Extended Options string, for example:
Database=Server1;UndocumentedOption1=value[;
UndocumentedOption2=value;]
If the Extended Options string contains option values that are also set in the setup dialog,
the values of the options specified in the Extended Options string take precedence.
Note:
If you are using a proxy server to connect to your Sales Cloud instance, then you have
to set these options:
proxyHost = hostname of the proxy server; proxyPort = portnumber of
the proxy server
If Authentication is enabled, then you have to include the following:
proxyuser=; proxypassword=
Metadata Exposed
Restricts the metadata exposed by Hybrid Data Pipeline to a single schema.The metadata
Schemas
exposed in the SQL Editor, the Configure Schema Editor, and third party applications will
be limited to the specified schema. JDBC, OData, and ODBC metadata calls will also be
restricted. In addition, calls made with the Schema API will be limited to the specified
schema.
Warning: This functionality should not be regarded as a security measure. While
the Metadata Exposed Schemas option restricts the metadata exposed by Hybrid
Data Pipeline to a single schema, it does not prevent queries against other
schemas on the backend data store. As a matter of best practice, permissions
should be set on the backend data store to control the ability of users to query
data.
Valid Values
Where:
is the name of a valid schema on the backend data store.
Default: No schema is specified. Therefore, all schemas are exposed.
How to create a data source in the Web UI on page 240
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 495Chapter 3: Using Hybrid Data Pipeline
Oracle Service Cloud parameters
The following tables describe parameters available on the tabs of an Oracle® Service Cloud™ Data Source
dialog:
• General tab
• OData tab
• Mapping tab
• Advanced tab
General tab
496 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Table 73: General tab connection parameters for Oracle Service Cloud
Field Description
Data Source
A unique name for the data source. Data source names can contain only alphanumeric
Name
characters, underscores, and dashes.
Description
A general description of the data source.
User Id,
The login credentials for your Oracle Service Cloud data store account.
Password
Note: By default, the password is encrypted.
The Hybrid Data Pipeline connectivity service uses this information to connect to the data
store. The administrator of the data store must grant permission to a user with these
credentials to access the data store and the target data.
Note: You can save the Data Source definition without specifying the login credentials.
In that case, when you test the Data Source connection, you will be prompted to specify
these details. Applications using the connectivity service will have to supply the data store
credentials (if they are not saved in the Data Source) in addition to the Data Source name
and the credentials for the Hybrid Data Pipeline connectivity service.
By default, the characters in the Password field you type are not shown. If you want the
password to be displayed in clear text, click the eye icon. Click the icon again to
conceal the password.
Oracle Service
The Host Name for the Oracle Service Cloud site that Hybrid Data Pipeline will use to query
Cloud Login URL
the service; for example mysite.custhelp.com, mysite.custhelp.com.
Interface The name of the Oracle Service Cloud interface to which you want to connect.
OData tab
The following table describes the controls on the OData tab. For information on using the Configure Schema
editor, see Configuring data sources for OData connectivity and working with data source groups on page 646.
For information on formulating OData requests, see Formulating queries with OData Version 2 on page 868.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 497Chapter 3: Using Hybrid Data Pipeline
Table 74: OData tab connection parameters for Oracle Service Cloud
Field Description
OData Version
Enables you to choose from the supported OData versions. OData configuration made
with one OData version will not work if you switch to a different OData version. If you want
to maintain the data source with different OData versions, you must create different data
sources for each of them.
OData Name
Enables you to set the case for entity type, entity set, and property names in OData
Mapping Case
metadata.
Valid Values: Uppercase | Lowercase | Default
When set to Uppercase, the case changes to all uppercase.
When set to Lowercase, the case changes to all lowercase.
When set to Default, the case does not change.
498 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
OData Access URI
Specifies the base URI for the OData feed to access your data source, for example,
https://hybridpipe.operations.com/api/odata/.You
can copy the URI and paste it into your application''s OData configuration.
The URI contains the case-insensitive name of the data source to connect to, and the
query that you want to execute. This URI is the OData Service Root URI for the OData
feed. The Service Document for the data source is returned by issuing a GET request to
the data source''s service root.
The OData Service Document returns the names of the entities exposed by the Data
Source OData service. To get details such as the properties of the entities exposed, the
data types for those properties and the relationships between entities, the Service Metadata
Document can be fetched by adding /$metadata to the service root URI.
Schema Map
Enables OData support. If a schema map is not defined, the OData API cannot be used
to access the data store using this data source definition. Use the Configure Schema
editor to select the tables/columns to expose through OData.
See Configuring data sources for OData connectivity and working with data source groups
on page 646 for more information.
Page Size
Determines the number of entities returned on each page for paging controlled on the
server side. On the client side, requests can use the $top and $skip parameters to
control paging. In most cases, server side paging works well for large data sets. Client
side pagination works best with a smaller data sets where it is not as expensive to fetch
subsequent pages.
Valid Values: 0 | n
where n is an integer from 1 to 10000.
When set to 0, the server default of 2000 is used.
Default: 0
Refresh Result
Controls what happens when you fetch the first page of a cached result when using Client
Side Paging. Skip must be omitted or set to 0.You can use the cached copy of that first
page, or you can re-execute the query to get a new result, discarding the previously
cached result. Re-executing the query is useful when the data being fetched may change
between two requests for the first page. Using the cached result is useful if you are paging
back and forth through results that are not expected to change.
Valid Values:
When set to 0, the OData service caches the first page of results.
When set to 1, the OData service re-executes the query.
Default: 1
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 499Chapter 3: Using Hybrid Data Pipeline
Field Description
Inline Count Mode
Specifies how the connectivity service satisfies requests that include the $count parameter
when it is set to true (for OData version 4) or the $inlinecount parameter when it is
set to allpages (for OData version 2). These requests require the connectivity service
to include the total number of entities that are defined by the OData query request. The
count must be included in the first page in server-driven paging and must be included in
every page when using client-driven paging.
The optimal setting depends on the data store and the size of results. The OData service
can run a separate query using the count(*) aggregate to get the count, before running
the query used to generate the entities. In very large results, this approach can often lead
to the first page being returned faster. Alternatively, the OData service can fetch the entire
result before returning the first page. This approach works well for small results and for
data stores that cannot optimize the count(*) aggregate; however, it may have a longer
initial response time for the first page if the result is large.
Valid Values:
When set to 1, the connectivity service runs a separate count(*) aggregate query to
get the count of entities before executing the query to return results. In very large results,
this approach can often lead to the first page being returned faster.
When set to 2, the connectivity service fetches all entities before returning the first page.
For small results, this approach is always faster. However, the initial response time for
the first page may be longer if the result is large.
Default: 1
Top Mode
Indicates how requests typically use $top and $skip for client side pagination, allowing
the service to better anticipate how to process queries.
Valid Values:
Set to 0 when the application generally uses $top to limit the size of the result and rarely
attempts to get additional entities by combining $top and $skip.
Set to 1 when the application uses $top as part of client-driven paging and generally
combines $top and $skip to page through the result.
Default: 0
OData Read Only
Controls whether write operations can be performed on the OData service.Write operations
generate a 405 Method Not Allowed response if this option is enabled.
Valid Values:
ON | OFF
When ON is selected, OData access is restricted to read-only mode.
When OFF is selected, write operations can be performed on the OData service.
Default: OFF
500 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Mapping tab
The default values for advanced mapping fields are appropriate in many cases. However, if your organization
wants to strip custom prefixes or enable uppercase identifiers, you might want to change map option settings.
Understanding how Hybrid Data Pipeline creates and uses maps will help you choose the appropriate values.
Click the + next to Set Map Options to display these fields.
The following table describes the mapping options that apply to Oracle Service Cloud.
Note: Map creation is an expensive operation. In most cases, you will only want to re-create a map if you
need to change mapping options.
Table 75: Mapping tab Connection Parameters for Oracle Service Cloud
Field Description
Map Name
Optional name of the map definition that the Hybrid Data Pipeline connectivity service
uses to interpret the schema of the data store. The Hybrid Data Pipeline service
automatically creates a name for the map.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 501Chapter 3: Using Hybrid Data Pipeline
Field Description
Refresh Schema
Specifies whether the Hybrid Data Pipeline connectivity service attempts to refresh the
schema when an application first connects.
Valid Values:
ON | OFF
If set to OFF and the ResultSetMetaData.getTableName() method is called, the Hybrid
Data Pipeline connectivity service does not perform additional processing to determine
the correct table name for each column in the result set. The getTableName() method
may return an empty string for each column in the result set.
If set to ON and the ResultSetMetaData.getTableName() method is called, the Hybrid Data
Pipeline connectivity service performs additional processing to determine the correct table
name for each column in the result set. The Hybrid Data Pipeline connectivity service
returns schema name and catalog name information when the
ResultSetMetaData.getSchemaName() and ResultSetMetaData.getCatalogName()
methods are called if the Hybrid Data Pipeline connectivity service can determine that
information.
Default: OFF
Create Mapping
Determines whether the Oracle Service Cloud table mapping files are to be (re)created.
The Hybrid Data Pipeline connectivity service automatically maps data store objects and
fields to tables and columns the first time that it connects to the data store. The map
includes both standard and custom objects and includes any relationships defined between
objects.
Table 76: Valid values for Create Map field
Value Description
Not Exist Select this option for most normal operations. If a map for a data source
does not exist, this option causes one to be created. If a map exists, the
service uses that existing map. If a name is not specified in the Map
Name field, the name will be a combination of the User Name and Data
Source ID.
Force New Select this option to force creation of a new map. A map is created on
connection whether one exists or not. The connectivity service uses a
combination of the User Name and Data Source ID to name the map.
Map creation is expensive, so you will likely not want to leave this option
set to Force New indefinitely.
No If a map for a data source does not exist, the connectivity service does
not create one.
502 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
Audit Columns
The audit columns added by Hybrid Data Pipeline are:
• CreatedByAccountID
• CreatedTime
• UpdatedByAccountID
• UpdatedTime
The following table describes the valid values for the Audit Columns parameter.
Table 77: Valid values for Audit Columns
Value Description
All Hybrid Data Pipeline includes all of the audit columns in its table
definitions.
standard Hybrid Data Pipeline adds only the audit columns in its table
definitions.
custom Hybrid Data Pipeline adds audit columns only for custom objects in
its table definitions.
None Hybrid Data Pipeline does not add the audit columns in its table
definitions.
The default value for Audit Columns is All.
In a typical Oracle Service Cloud instance, not all users are granted access to the Audit
columns. If Audit Columns is set to a value other than None and if Hybrid Data Pipeline
cannot include the columns requested, the connection fails and an exception is thrown.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 503Chapter 3: Using Hybrid Data Pipeline
Field Description
Map System
Defines whether Hybrid Data Pipeline maps the integration name of standard columns
Column Names
that appear in each Oracle Service Cloud object to a new name. By default, Hybrid Data
Pipeline maps the id column to ROWID, and maps the remaining standard columns to a
new name prefixed with SYS_ .
Valid Values:
1 | 0
When set to 1, Hybrid Data Pipeline prefixes the names of standard columns of Oracle
Service Cloud objects with SYS_ or ROWID.
When set to 0, Hybrid Data Pipeline does not map the names of standard columns of
Oracle Service Cloud objects to new names.
Default: 0
NamedID Controls whether the Name attribute of NamedID fields are exposed in the relational
Behavior model.
Valid Values:
1 | 2
When set to 1, the Id and Name attributes of the NamedID fields are exposed in the
relational model. This means that they will be included in the results for the queries.
However, including these columns in queries can cause Oracle Service Cloud to return
a “poor performing query” error if the table has a large number of rows.
When set to 2, only the Id attribute of the NamedID fields is exposed in the relational
model. This setting may improve performance of queries that use NamedID fields.
Default: 1
504 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Advanced tab
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 505Chapter 3: Using Hybrid Data Pipeline
Table 78: Advanced tab connection parameters for Oracle Service Cloud
Field Description
Web Service Call
The maximum number of Web service calls allowed to the cloud data store for a single
Limit
SQL statement or metadata query.
Valid Values: -1 | 0 | x
where x is a positive integer that defines the maximum number of Web service calls that
the connectivity service can make when executing any single SQL statement or metadata
query.
If set to -1, the connectivity service uses the default value that is configured in the service
when connected to a site whose version is August 2014 or later. When connected to sites
whose version is prior to August 2014, the connectivity service sets the maximum number
of calls to 100.
If set to 0, the connectivity service uses the maximum number of calls allowed by the
service when connected to a site whose version is August 2014 or later. When connected
to sites whose version is prior to August 2014, there is no limit.
If set to x, the connectivity service uses this value to set the maximum number of Web
service calls that can be made when executing a SQL statement or metadata query. If
you specify a value that is greater than the maximum number of calls allowed when
connected to a site whose version is August 2014 or later, the connectivity service returns
a warning and uses the maximum value instead.
Default: -1.
Web Service
Specifies the number of rows of data the Hybrid Data Pipeline connectivity service attempts
Fetch Size
to fetch for each web service call.
Valid Values: 0 | x
where x is a positive integer that defines the maximum number of Web service calls that
the connectivity service can make when executing any single SQL statement or metadata
query. For servers prior to version 14.08, the maximum is 10,000 rows. For versions 14.08
and higher, the maximum is server dependent.
If set to 0, the connectivity service uses the maximum page size for the Oracle Service
Cloud database to which it is connecting (Operational or Report) for sites whose version
is 14.08 or higher.When connecting to sites whose version is prior to 14.08, the connectivity
service attempts to fetch up to a maximum of 10,000 rows. This value typically provides
the maximum throughput.
If set to x, the connectivity service attempts to fetch up to a maximum of the specified
number of rows. Setting the value lower than 10,000 can reduce the response time for
returning the initial data. Consider using a smaller value for interactive applications only.
If you specify a value greater than the server allows, the connectivity service returns a
warning and uses the maximum value permitted.
The default is 0.
Web Service Retry
The number of times to retry a timed-out Select request. Insert, Update, and Delete
Count
requests are never retried. The Web Service Timeout parameter specifies the period
between retries. A value of 0 for the retry count prevents retries. A positive integer sets
the number of retries. The default value is 0.
506 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
Web Service
The time, in seconds, to wait before retrying a timed-out Select request. Valid only if the
Timeout
value of Web Service Retry Count is greater than zero. A value of 0 for the timeout waits
indefinitely for the response to a Web service request. There is no timeout. A positive
integer is considered as a default timeout for any statement created by the connection.
The default value is 120.
Max Pooled
The maximum number of prepared statements to cache for this connection. If the value
Statements
of this property is set to 20, the connectivity service caches the last 20 prepared statements
that are created by the application.
Default: 0
Oracle Service Determines against which database queries should be resolved. Oracle Service Cloud
Cloud Database can satisfy queries against the production (operational) or the reporting database that
backs the service.
Valid Values:
report | operational
If set to report, the Hybrid Data Pipeline connectivity service prepends a "USE REPORT;
" statement to the base ROQL command. This results in the reporting database being
used for subsequent queries.
If set to operational, the Hybrid Data Pipeline connectivity service prepends a "USE
OPERATIONAL; " statement to the base ROQL command. This results in the production
database being used for subsequent queries.
If not specified, the Hybrid Data Pipeline connectivity service sends the base ROQL
command directly. This results in the default database behavior.
Default: report.
Enable Paging
Specifies whether the Hybrid Data Pipeline connectivity service can inject the Order By
With Order By ID
clause in the Select query for each call. Enabling this connection parameter provides a
stable paging mechanism for retrieving result sets that are larger than the maximum
number of rows for the site. Note: If your application does not retrieve large result sets,
consider disabling this feature, because adding the Order By clause can have a negative
performance impact on queries.
If set to ON, the Hybrid Data Pipeline connectivity service can inject the Order By clause
in the Select query.
Default: ON
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 507Chapter 3: Using Hybrid Data Pipeline
Field Description
Processing
Determines whether external events and business rules are run on the server side when
Options
performing a Create, Destroy, Get, or Update operation.
Valid Values:
0 | 1 | 2 | 3
If set to 0, external events and business rules run after a Create, Destroy, Get, or Update
operation completes.
If set to 1, external events do not run after a Create, Destroy, Get, or Update operation
completes.
If set to 2, business rules do not run after a Create, Destroy, Get, or Update operation
completes.
If set to 3, external events and business rules do not run after a Create, Destroy, Get, or
Update operation completes.
Default: 0
Initialization String
A semicolon delimited set of commands to be executed on the data store after Hybrid
Data Pipeline has established and performed all initialization for the connection. If the
execution of a SQL command fails, the connection attempt also fails and Hybrid Data
Pipeline returns an error indicating which SQL commands failed.
Syntax:
SQLcommand[[; SQLcommand]...]
where:
SQLcommand is a SQL command. Multiple commands must be separated by semicolons.
Default: an empty string.
Read Only Enables write operations to Oracle Service Cloud.
If set to ON, the data source is read only. Write operations are not allowed.
If set to OFF), write operations are permitted if Oracle Service Cloud Database is set to
operational. Write operations are not supported if Oracle Service Cloud Database is
set to report.
Default: ON
508 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
Extended Options
Specifies a semi-colon delimited list of connection options and their values. Use this
configuration option to set the value of undocumented connection options that are provided
by Progress DataDirect technical support.You can include any valid connection option
in the Extended Options string, for example:
Database=Server1;UndocumentedOption1=value[;
UndocumentedOption2=value;]
If the Extended Options string contains option values that are also set in the setup dialog,
the values of the options specified in the Extended Options string take precedence.
Note:
If you are using a proxy server to connect to your service cloud instance, then you have
to set these options:
proxyHost = hostname of the proxy server; proxyPort = portnumber of
the proxy server
If Authentication is enabled, then you have to include the following:
proxyuser=; proxypassword=
Metadata Exposed
Restricts the metadata exposed by Hybrid Data Pipeline to a single schema.The metadata
Schemas
exposed in the SQL Editor, the Configure Schema Editor, and third party applications will
be limited to the specified schema. JDBC, OData, and ODBC metadata calls will also be
restricted. In addition, calls made with the Schema API will be limited to the specified
schema.
Warning: This functionality should not be regarded as a security measure. While
the Metadata Exposed Schemas option restricts the metadata exposed by Hybrid
Data Pipeline to a single schema, it does not prevent queries against other
schemas on the backend data store. As a matter of best practice, permissions
should be set on the backend data store to control the ability of users to query
data.
Valid Values
Where:
is the name of a valid schema on the backend data store.
Default: No schema is specified. Therefore, all schemas are exposed.
See the steps for:
How to create a data source in the Web UI on page 240
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 509Chapter 3: Using Hybrid Data Pipeline
PostgreSQL parameters
The following tables describe parameters available on the tabs of a PostgreSQL On-Premise Data Source
dialog:
• General tab
• Security tab
• OData tab
• Advanced tab
General tab
510 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Table 79: General tab connection parameters for PostgreSQL
Field Description
Data Source
A unique name for the data source. Data source names can contain only alphanumeric
Name
characters, underscores, and dashes.
Description
A general description of the data source.
User Id
The login credentials for your PostgreSQL server.
Hybrid Data Pipeline uses this information to connect to the data store. The administrator
of the server must grant permission to a user with these credentials to access the data
store and the target data.
By default, the characters in the Password field you type are not shown. If you want the
password to be displayed in clear text, click the eye icon. Click the icon again to
conceal the password.
Note: You can save the Data Source definition without specifying the login credentials.
In that case, when you test the Data source connection, you will be prompted to specify
these details. Applications using the connectivity service will have to supply the data store
credentials (if they are not saved in the Data Source) in addition to the Data Source name
and the credentials for the Hybrid Data Pipeline account.
Password
A case-sensitive password that is used to connect to your PostgreSQL database. A
password is required if user ID/password authentication is enabled on your database.
Contact your system administrator to obtain your password.
Note: By default, the password is encrypted.
Server Name Specifies either the IP address in IPv4 or IPv6 format, or the server name (if your network
supports named servers) of the primary database server, for example, PostgreServer
or 122.23.15.12
Valid Values:
server_name | IP_address
where:
server_name
is the name of the server to which you want to connect.
IP_address
is the IP address of the server to which you want to connect.
The IP address can be specified in either IPv4 or IPv6 format, or a combination of the two.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 511Chapter 3: Using Hybrid Data Pipeline
Field Description
Port Number The port number of the PostgreSQL server.
Database
The name of the database that is running on the database server.
Connector ID
The unique identifier of the On-Premise Connector that is to be used to access the
on-premise data source. Select the Connector that you want to use from the dropdown.
The identifier can be a descriptive name, the name of the machine where the Connector
is installed, or the Connector ID for the Connector.
If you have not installed an On-Premise Connector, and no Connectors have been shared
with you, this field and drop-down list are empty.
If you own multiple Connectors that have the same name, for example, Production, an
identifier is appended to each Connector, for example, Production_dup0 and
Production_dup1. If the Connectors in the dropdown were shared with you, the owner''s
name is appended, for example, Production(owner1) and Production(owner2).
Security tab
512 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Table 80: Security tab connection parameters for PostgreSQL On-Premise
Field Description
Encryption Method
Determines whether data is encrypted and decrypted when transmitted over the network
between the Hybrid Data Pipeline connectivity service and the on-premise database
server.
Valid Values:
noEncryption | SSL | requestSSL
If set to noEncryption, data is not encrypted or decrypted.
If set to SSL, data is encrypted using SSL. If the database server does not support SSL,
the connection fails and the Hybrid Data Pipeline connectivity service throws an exception.
If set to requestSSL, the login request and data is encrypted using SSL. If the database
server does not support SSL, the connectivity service establishes an unencrypted
connection.
Note:
• When SSL is enabled, the following properties also apply:
Host Name In Certificate
ValidateServerCertificate
Crypto Protocol Version
Default: noEncryption
Crypto Protocol
Specifies a protocol version or a comma-separated list of the protocol versions that can
Version
be used in creating an SSL connection to the data source. If the protocol (or none of the
protocols) is not supported by the database server, the connection fails and the connectivity
service returns an error.
Valid Values:
cryptographic_protocol [[, cryptographic_protocol ]...]
where:
cryptographic_protocol
is one of the following cryptographic protocols:
TLSv1 | TLSv1.1 | TLSv1.2
The client must send the highest version that it supports in the client hello.
Note: Good security practices recommend using TLSv1.2 if your data source supports
that protocol version, due to known vulnerabilities in the earlier protocols.
Example
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 513Chapter 3: Using Hybrid Data Pipeline
Field Description
Your security environment specifies that you can use TLSv1.1 and TLSv1.2. When you
enter the following values, the connectivity service sends TLSv1.2 to the server first.
TLSv1.1,TLSv1.2
Default: TLSv1, TLSv1.1, TLSv1.2
514 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
Host Name In
Specifies a host name for certificate validation when SSL encryption is enabled (Encryption
Certificate
Method=SSL) and validation is enabled (Validate Server Certificate=ON). This optional
parameter provides additional security against man-in-the-middle (MITM) attacks by
ensuring that the server that the Hybrid Data Pipeline connectivity service is connecting
to is the server that was requested.
Valid Values:
host_name | #SERVERNAME#
where host_name is a valid host name.
If host_name is specified, the Hybrid Data Pipeline connectivity service compares the
specified host name to the DNSName value of the SubjectAlternativeName in the
certificate. If a DNSName value does not exist in the SubjectAlternativeName or if the
certificate does not have a SubjectAlternativeName, the connectivity service compares
the host name with the Common Name (CN) part of the certificate’s Subject name. If the
values do not match, the connection fails and the connectivity service throws an exception.
If #SERVERNAME# is specified, the Hybrid Data Pipeline connectivity service compares
the server name that is specified in the connection URL or data source of the connection
to the DNSName value of the SubjectAlternativeName in the certificate. If a DNSName
value does not exist in the SubjectAlternativeName or if the certificate does not have a
SubjectAlternativeName, the connectivity service compares the host name to the CN part
of the certificate’s Subject name. If the values do not match, the connection fails and the
connectivity service throws an exception. If multiple CN parts are present, the connectivity
service validates the host name against each CN part. If any one validation succeeds, a
connection is established.
Default: Empty string
Validate Server
Certificate
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 515Chapter 3: Using Hybrid Data Pipeline
Field Description
Determines whether the Hybrid Data Pipeline connectivity service validates the certificate
that is sent by the database server when SSL encryption is enabled (Encryption
Method=SSL). When using SSL server authentication, any certificate that is sent by the
server must be issued by a trusted Certificate Authority (CA). Allowing the Hybrid Data
Pipeline connectivity service to trust any certificate that is returned from the server even
if the issuer is not a trusted CA is useful in test environments because it eliminates the
need to specify truststore information on each client in the test environment.
Valid Values:
ON | OFF
If set to ON, the Hybrid Data Pipeline connectivity service validates the certificate that is
sent by the database server. Any certificate from the server must be issued by a trusted
CA in the truststore file. If the Host Name In Certificate parameter is specified, the Hybrid
Data Pipeline connectivity service also validates the certificate using a host name. The
Host Name In Certificate parameter is optional and provides additional security against
man-in-the-middle (MITM) attacks by ensuring that the server the connectivity service is
connecting to is the server that was requested.
If set to OFF, the Hybrid Data Pipeline connectivity service does not validate the certificate
that is sent by the database server. The connectivity service ignores any truststore
information that is specified by the Java system properties. Truststore information is
specified using Java system properties.
Default: ON
OData tab
The following table describes the controls on the OData tab. For information on using the Configure Schema
editor, see Configuring data sources for OData connectivity and working with data source groups on page 646.
For information on formulating OData requests, see Formulating queries with OData Version 2 on page 868.
516 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Table 81: OData tab connection parameters for PostgreSQL
Field Description
OData Version
Enables you to choose from the supported OData versions. OData configuration made
with one OData version will not work if you switch to a different OData version. If you want
to maintain the data source with different OData versions, you must create different data
sources for each of them.
OData Name
Enables you to set the case for entity type, entity set, and property names in OData
Mapping Case
metadata.
Valid Values: Uppercase | Lowercase | Default
When set to Uppercase, the case changes to all uppercase.
When set to Lowercase, the case changes to all lowercase.
When set to Default, the case does not change.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 517Chapter 3: Using Hybrid Data Pipeline
Field Description
OData Access URI
Specifies the base URI for the OData feed to access your data source, for example,
https://hybridpipe.operations.com/api/odata/.You
can copy the URI and paste it into your application''s OData configuration.
The URI contains the case-insensitive name of the data source to connect to, and the
query that you want to execute. This URI is the OData Service Root URI for the OData
feed. The Service Document for the data source is returned by issuing a GET request to
the data source''s service root.
The OData Service Document returns the names of the entities exposed by the Data
Source OData service. To get details such as the properties of the entities exposed, the
data types for those properties and the relationships between entities, the Service Metadata
Document can be fetched by adding /$metadata to the service root URI.
Schema Map
Enables OData support. If a schema map is not defined, the OData API cannot be used
to access the data store using this data source definition. Use the Configure Schema
editor to select the tables/columns to expose through OData.
See Configuring data sources for OData connectivity and working with data source groups
on page 646 for more information.
Page Size
Determines the number of entities returned on each page for paging controlled on the
server side. On the client side, requests can use the $top and $skip parameters to
control paging. In most cases, server side paging works well for large data sets. Client
side pagination works best with a smaller data sets where it is not as expensive to fetch
subsequent pages.
Valid Values: 0 | n
where n is an integer from 1 to 10000.
When set to 0, the server default of 2000 is used.
Default: 0
Refresh Result
Controls what happens when you fetch the first page of a cached result when using Client
Side Paging. Skip must be omitted or set to 0.You can use the cached copy of that first
page, or you can re-execute the query to get a new result, discarding the previously
cached result. Re-executing the query is useful when the data being fetched may change
between two requests for the first page. Using the cached result is useful if you are paging
back and forth through results that are not expected to change.
Valid Values:
When set to 0, the OData service caches the first page of results.
When set to 1, the OData service re-executes the query.
Default: 1
518 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
Inline Count Mode
Specifies how the connectivity service satisfies requests that include the $count parameter
when it is set to true (for OData version 4) or the $inlinecount parameter when it is
set to allpages (for OData version 2). These requests require the connectivity service
to include the total number of entities that are defined by the OData query request. The
count must be included in the first page in server-driven paging and must be included in
every page when using client-driven paging.
The optimal setting depends on the data store and the size of results. The OData service
can run a separate query using the count(*) aggregate to get the count, before running
the query used to generate the entities. In very large results, this approach can often lead
to the first page being returned faster. Alternatively, the OData service can fetch the entire
result before returning the first page. This approach works well for small results and for
data stores that cannot optimize the count(*) aggregate; however, it may have a longer
initial response time for the first page if the result is large.
Valid Values:
When set to 1, the connectivity service runs a separate count(*) aggregate query to
get the count of entities before executing the query to return results. In very large results,
this approach can often lead to the first page being returned faster.
When set to 2, the connectivity service fetches all entities before returning the first page.
For small results, this approach is always faster. However, the initial response time for
the first page may be longer if the result is large.
Default: 1
Top Mode
Indicates how requests typically use $top and $skip for client side pagination, allowing
the service to better anticipate how to process queries.
Valid Values:
Set to 0 when the application generally uses $top to limit the size of the result and rarely
attempts to get additional entities by combining $top and $skip.
Set to 1 when the application uses $top as part of client-driven paging and generally
combines $top and $skip to page through the result.
Default: 0
OData Read Only
Controls whether write operations can be performed on the OData service.Write operations
generate a 405 Method Not Allowed response if this option is enabled.
Valid Values:
ON | OFF
When ON is selected, OData access is restricted to read-only mode.
When OFF is selected, write operations can be performed on the OData service.
Default: OFF
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 519Chapter 3: Using Hybrid Data Pipeline
Advanced tab
520 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Table 82: Advanced tab connection parameters for PostgreSQL
Field Description
Alternate Servers
Specifies one or more alternate servers for failover and is required for all failover methods.
To turn off failover, do not specify a value for the Alternate Servers connection property.
Valid Values:
(servername1[:port1][,servername2[:port2]]...)
The server name (servername1, servername2, and so on) is required for each alternate
server entry. Port number (port1, port2, and so on) is optional for each alternate server
entry. If the port is unspecified, the port number of the primary server is used. If the port
number of the primary server is unspecified, the default port number is used.
Default: None
Load Balancing
Determines whether the connectivity service uses client load balancing in its attempts to
connect to the servers (primary and alternate) defined in a Connector group.You can
specify one or multiple alternate servers by setting the AlternateServers property.
Valid Values: ON | OFF
If set to ON, the connectivity service uses client load balancing and attempts to connect
to the servers (primary and alternate) in random order.The connectivity service randomly
selects from the list of primary and alternate On Premise Connectors which server to
connect to first. If that connection fails, the connectivity service again randomly selects
from this list of servers until all servers in the list have been tried or a connection is
successfully established.
If set to OFF, the connectivity service does not use client load balancing and connects to
each servers based on their sequential order (primary server first, then, alternate servers
in the order they are specified).
Default: OFF
Notes
• The Alternate Servers connection parameter specifies one or multiple alternate servers
for failover and is required for all failover methods. To turn off failover, do not specify
a value for the Alternate Servers parameter.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 521Chapter 3: Using Hybrid Data Pipeline
Field Description
Catalog Options Determines which type of metadata information is included in result sets when an application
calls DatabaseMetaData methods. To include multiple types of metatdata information,
add the sum of the values that you want to include. In this case, specify 6 to query database
catalogs for column information and to emulate getColumns() calls.
Valid Values:
2 | 4
If set to 2, the Hybrid Data Pipeline connectivity service queries database catalogs for
column information.
If set to 4, a hint is provided to the Hybrid Data Pipeline connectivity service to emulate
getColumns() calls using the ResultSetMetaData object instead of querying database
catalogs for column information. Using emulation can improve performance because the
SQL statement that is formulated by the emulation is less complex than the SQL statement
that is formulated using getColumns(). The argument to getColumns() must evaluate to a
single table. If it does not, because of a wildcard or null value, for example, the connectivity
service reverts to the default behavior for getColumns() calls.
Default:2
Extended Options
Specifies a semi-colon delimited list of connection options and their values. Use this
configuration option to set the value of undocumented connection options that are provided
by Progress DataDirect technical support.You can include any valid connection option in
the Extended Options string, for example:
Database=Server1;UndocumentedOption1=value[;
UndocumentedOption2=value;]
If the Extended Options string contains option values that are also set in the setup dialog,
the values of the options specified in the Extended Options string take precedence.
Initialization String
A semicolon delimited set of commands to be executed on the data store after Hybrid
Data Pipeline has established and performed all initialization for the connection. If the
execution of a SQL command fails, the connection attempt also fails and Hybrid Data
Pipeline returns an error indicating which SQL commands failed.
Syntax:
command[[; command]...]
Where:
command
is a SQL command. Multiple commands must be separated by semicolons. In addition, if
this property is specified in a connection URL, the entire value must be enclosed in
parentheses when multiple commands are specified. For example, assuming a schema
name of SFORCE:
InitializationString=(REFRESH SCHEMA SFORCE)
The default is an empty string.
522 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
LoginTimeout
Valid Values:
0 | x
where x is a positive integer that represents a number of seconds.
If set to 0, the connectivity service does not time out a connection request.
If set to x, the connectivity service waits for the specified number of seconds before
returning control to the application and throwing a timeout exception.
Default: 30
Max Pooled
The maximum number of prepared statements to cache for this connection. If the value
Statements
of this property is set to 20, the connectivity service caches the last 20 prepared statements
that are created by the application.
The default value is 0.
Query Timeout
Sets the default query timeout (in seconds) for all statements created by a connection.
Valid Values:
-1 | 0 | x
If set to -1, the query timeout functionality is disabled.The Hybrid Data Pipeline connectivity
service silently ignores calls to the Statement.setQueryTimeout() method.
If set to 0, the default query timeout is infinite (the query does not time out).
If set to x, the Hybrid Data Pipeline connectivity service uses the value as the default
timeout for any statement that is created by the connection.To override the default timeout
value set by this connection option, call the Statement.setQueryTimeout() method to set
a timeout value for a particular statement.
Default: 0
Result Set Meta Determines whether the Hybrid Data Pipeline connectivity service returns table name
Data Options information in the ResultSet metadata for Select statements.
Valid Values:
0 | 1
If set to 0 and the ResultSetMetaData.getTableName() method is called, the Hybrid Data
Pipeline connectivity service does not perform additional processing to determine the
correct table name for each column in the result set. The getTableName() method may
return an empty string for each column in the result set.
If set to 1 and the ResultSetMetaData.getTableName() method is called, the connectivity
service performs additional processing to determine the correct table name for each column
in the result set. The connectivity service returns schema name and catalog name
information when the ResultSetMetaData.getSchemaName() and
ResultSetMetaData.getCatalogName() methods are called if the connectivity service can
determine that information.
Default: 0
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 523Chapter 3: Using Hybrid Data Pipeline
Field Description
Transaction Error
Determines how the driver handles errors that occur within a transaction. When an error
Behavior
occurs in a transaction, the PostgreSQL server does not allow any operations on the
connection except for rolling back the transaction.
Valid Values:
none | RollbackTransaction | RollbackSavepoint
If set to none, the connectivity service does not roll back the transaction when an error
occurs. The application must handle the error and roll back the transaction. Any operation
on the statement other than a rollback results in an error.
If set to RollbackTransaction, the connectivity service rolls back the transaction when
an error occurs. In addition to the original error message, the connectivity service posts
an error message indicating that the transaction has been rolled back.
If set to RollbackSavepoint, the connectivity service rolls back the transaction to the
last savepoint when an error is detected. In manual commit mode, the connectivity service
automatically sets a savepoint after each statement issued. This value makes transaction
behavior resemble that of most other database system types, but uses more resources
on the database server and may incur a slight performance penalty.
Default: RollbackTransaction
Metadata
Restricts the metadata exposed by Hybrid Data Pipeline to a single schema.The metadata
Exposed
exposed in the SQL Editor, the Configure Schema Editor, and third party applications will
Schemas
be limited to the specified schema. JDBC, OData, and ODBC metadata calls will also be
restricted. In addition, calls made with the Schema API will be limited to the specified
schema.
Warning: This functionality should not be regarded as a security measure. While
the Metadata Exposed Schemas option restricts the metadata exposed by Hybrid
Data Pipeline to a single schema, it does not prevent queries against other schemas
on the backend data store. As a matter of best practice, permissions should be
set on the backend data store to control the ability of users to query data.
Valid Values
Where:
is the name of a valid schema on the backend data store.
Default: No schema is specified. Therefore, all schemas are exposed.
See the steps for:
How to create a data source in the Web UI on page 240
524 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Progress OpenEdge parameters
The following tables describe parameters available on the tabs of a Progress® OpenEdge® Data Source setup
dialog:
• General tab
• Security tab
• OData tab
• Advanced tab
General tab
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 525Chapter 3: Using Hybrid Data Pipeline
Table 83: General tab connection parameters for Progress OpenEdge
Field Description
Data Source
A unique name for the data source. Data source names can contain only alphanumeric
Name
characters, underscores, and dashes.
Description
A general description of the data source.
User Id
The login credentials for your Progress OpenEdge server.
Hybrid Data Pipeline uses this information to connect to the data store. The administrator
of the server must grant permission to a user with these credentials to access the data
store and the target data.
Password
A case-sensitive password that is used to connect to your Progress OpenEdge database.
A password is required if user ID/password authentication is enabled on your database.
Contact your system administrator to obtain your password.
By default, the characters in the Password field you type are not shown. If you want the
password to be displayed in clear text, click the eye icon. Click the icon again to
conceal the password.
Note: By default, the password is encrypted.
Server Name
The name of the server machine on which the OpenEdge database to connect to is running.
The value is the name of the server as it is known on the On-Premise network, for example,
myopenedge.
Port Number The port number configured in OpenEdge interface to serve the specified database.
Database
The name of the database that is running on the database server.
Connector ID
The unique identifier of the On-Premise Connector that is to be used to access the
on-premise data source. Select the Connector that you want to use from the dropdown.
The identifier can be a descriptive name, the name of the machine where the Connector
is installed, or the Connector ID for the Connector.
If you have not installed an On-Premise Connector, and no Connectors have been shared
with you, this field and drop-down list are empty.
If you own multiple Connectors that have the same name, for example, Production, an
identifier is appended to each Connector, for example, Production_dup0 and
Production_dup1. If the Connectors in the dropdown were shared with you, the owner''s
name is appended, for example, Production(owner1) and Production(owner2).
526 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Security tab
Table 84: Security tab connection parameters for Progress OpenEdge
Field Description
Encryption Method
Determines whether data is encrypted and decrypted when transmitted over the network
between the driver and the on-premise database server.
Valid Values:
noEncryption | SSL
If set to noEncryption, data is not encrypted or decrypted.
If set to SSL, data is encrypted using SSL. If the database server does not support SSL,
the connection fails and the vwz1474495743590 connectivity service throws an exception.
Note:
• Connection hangs can occur when the Hybrid Data Pipeline connectivity service is
configured for SSL and the database server does not support SSL.You may want to
set a login timeout using the Login Timeout parameter to avoid problems when
connecting to a server that does not support SSL.
• When SSL is enabled, the Host Name In Certificate and Validate Server Certificate
parameters also apply.
The default value is noEncryption.
Crypto Protocol
Specifies a protocol version or a comma-separated list of the protocol versions that can
Version
be used in creating an SSL connection to the data source. If the protocol (or none of the
protocols) is not supported by the database server, the connection fails and the connectivity
service returns an error.
Valid Values:
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 527Chapter 3: Using Hybrid Data Pipeline
Field Description
cryptographic_protocol [[, cryptographic_protocol ]...]
where:
cryptographic_protocol
is one of the following cryptographic protocols:
TLSv1 | TLSv1.1 | TLSv1.2
The client must send the highest version that it supports in the client hello.
Note: Good security practices recommend using TLSv1.2 if your data source supports
that protocol version, due to known vulnerabilities in the earlier protocols.
Example
Your security environment specifies that you can use TLSv1.1 and TLSv1.2. When you
enter the following values, the connectivity service sends TLSv1.2 to the server first.
TLSv1.1,TLSv1.2
Default: TLSv1, TLSv1.1, TLSv1.2
528 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
Host Name In
Specifies a host name for certificate validation when SSL encryption is enabled (Encryption
Certificate
Method=SSL) and validation is enabled (Validate Server Certificate=ON). This optional
parameter provides additional security against man-in-the-middle (MITM) attacks by
ensuring that the server that the Hybrid Data Pipeline connectivity service is connecting
to is the server that was requested.
Valid Values:
host_name | #SERVERNAME#
where host_name is a valid host name.
If host_name is specified, the Hybrid Data Pipeline connectivity service compares the
specified host name to the DNSName value of the SubjectAlternativeName in the
certificate. If a DNSName value does not exist in the SubjectAlternativeName or if the
certificate does not have a SubjectAlternativeName, the connectivity service compares
the host name with the Common Name (CN) part of the certificate’s Subject name. If the
values do not match, the connection fails and the connectivity service throws an exception.
If #SERVERNAME# is specified, the Hybrid Data Pipeline connectivity service compares
the server name that is specified in the connection URL or data source of the connection
to the DNSName value of the SubjectAlternativeName in the certificate. If a DNSName
value does not exist in the SubjectAlternativeName or if the certificate does not have a
SubjectAlternativeName, the connectivity service compares the host name to the CN part
of the certificate’s Subject name. If the values do not match, the connection fails and the
connectivity service throws an exception. If multiple CN parts are present, the connectivity
service validates the host name against each CN part. If any one validation succeeds, a
connection is established.
Default: Empty string
Validate Server Determines whether the Hybrid Data Pipeline connectivity service validates the certificate
Certificate that is sent by the database server when SSL encryption is enabled
(EncryptionMethod=SSL). When using SSL server authentication, any certificate that is
sent by the server must be issued by a trusted Certificate Authority (CA). Allowing the
connectivity service to trust any certificate that is returned from the server even if the
issuer is not a trusted CA is useful in test environments because it eliminates the need
to specify truststore information on each client in the test environment.
Valid Values:
ON | OFF
If set to ON, the Hybrid Data Pipeline connectivity service validates the certificate that is
sent by the database server. Any certificate from the server must be issued by a trusted
CA in the truststore file. If the Host Name In Certificate parameter is specified, the driver
also validates the certificate using a host name. The HostNameInCertificate property is
optional and provides additional security against man-in-the-middle (MITM) attacks by
ensuring that the server the driver is connecting to is the server that was requested.
If set to OFF, the connectivity service does not validate the certificate that is sent by the
database server. The Hybrid Data Pipeline connectivity service ignores any truststore
information that is specified by the TrustStore and TrustStorePassword properties or Java
system properties. Truststore information is specified using the Java system properties.
Default: ON
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 529Chapter 3: Using Hybrid Data Pipeline
OData tab
The following table describes the controls on the OData tab. For information on using the Configure Schema
editor, see Configuring data sources for OData connectivity and working with data source groups on page 646.
For information on formulating OData requests, see Formulating queries with OData Version 2 on page 868.
Table 85: OData tab connection parameters for OpenEdge
Field Description
OData Version
Enables you to choose from the supported OData versions. OData configuration made
with one OData version will not work if you switch to a different OData version. If you want
to maintain the data source with different OData versions, you must create different data
sources for each of them.
530 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
OData Name
Enables you to set the case for entity type, entity set, and property names in OData
Mapping Case
metadata.
Valid Values: Uppercase | Lowercase | Default
When set to Uppercase, the case changes to all uppercase.
When set to Lowercase, the case changes to all lowercase.
When set to Default, the case does not change.
OData Access URI
Specifies the base URI for the OData feed to access your data source, for example,
https://hybridpipe.operations.com/api/odata/.You
can copy the URI and paste it into your application''s OData configuration.
The URI contains the case-insensitive name of the data source to connect to, and the
query that you want to execute. This URI is the OData Service Root URI for the OData
feed. The Service Document for the data source is returned by issuing a GET request to
the data source''s service root.
The OData Service Document returns the names of the entities exposed by the Data
Source OData service. To get details such as the properties of the entities exposed, the
data types for those properties and the relationships between entities, the Service Metadata
Document can be fetched by adding /$metadata to the service root URI.
Schema Map
Enables OData support. If a schema map is not defined, the OData API cannot be used
to access the data store using this data source definition. Use the Configure Schema
editor to select the tables/columns to expose through OData.
See Configuring data sources for OData connectivity and working with data source groups
on page 646 for more information.
Page Size
Determines the number of entities returned on each page for paging controlled on the
server side. On the client side, requests can use the $top and $skip parameters to
control paging. In most cases, server side paging works well for large data sets. Client
side pagination works best with a smaller data sets where it is not as expensive to fetch
subsequent pages.
Valid Values: 0 | n
where n is an integer from 1 to 10000.
When set to 0, the server default of 2000 is used.
Default: 0
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 531Chapter 3: Using Hybrid Data Pipeline
Field Description
Refresh Result
Controls what happens when you fetch the first page of a cached result when using Client
Side Paging. Skip must be omitted or set to 0.You can use the cached copy of that first
page, or you can re-execute the query to get a new result, discarding the previously
cached result. Re-executing the query is useful when the data being fetched may change
between two requests for the first page. Using the cached result is useful if you are paging
back and forth through results that are not expected to change.
Valid Values:
When set to 0, the OData service caches the first page of results.
When set to 1, the OData service re-executes the query.
Default: 1
Inline Count Mode
Specifies how the connectivity service satisfies requests that include the $count parameter
when it is set to true (for OData version 4) or the $inlinecount parameter when it is
set to allpages (for OData version 2). These requests require the connectivity service
to include the total number of entities that are defined by the OData query request. The
count must be included in the first page in server-driven paging and must be included in
every page when using client-driven paging.
The optimal setting depends on the data store and the size of results. The OData service
can run a separate query using the count(*) aggregate to get the count, before running
the query used to generate the entities. In very large results, this approach can often lead
to the first page being returned faster. Alternatively, the OData service can fetch the entire
result before returning the first page. This approach works well for small results and for
data stores that cannot optimize the count(*) aggregate; however, it may have a longer
initial response time for the first page if the result is large.
Valid Values:
When set to 1, the connectivity service runs a separate count(*) aggregate query to
get the count of entities before executing the query to return results. In very large results,
this approach can often lead to the first page being returned faster.
When set to 2, the connectivity service fetches all entities before returning the first page.
For small results, this approach is always faster. However, the initial response time for
the first page may be longer if the result is large.
Default: 1
532 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
Top Mode
Indicates how requests typically use $top and $skip for client side pagination, allowing
the service to better anticipate how to process queries.
Valid Values:
Set to 0 when the application generally uses $top to limit the size of the result and rarely
attempts to get additional entities by combining $top and $skip.
Set to 1 when the application uses $top as part of client-driven paging and generally
combines $top and $skip to page through the result.
Default: 0
OData Read Only
Controls whether write operations can be performed on the OData service.Write operations
generate a 405 Method Not Allowed response if this option is enabled.
Valid Values:
ON | OFF
When ON is selected, OData access is restricted to read-only mode.
When OFF is selected, write operations can be performed on the OData service.
Default: OFF
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 533Chapter 3: Using Hybrid Data Pipeline
Advanced tab
Table 86: Advanced tab connection parameters for Progress OpenEdge
Field Description
Alternate Servers
Specifies one or more alternate servers for failover and is required for all failover methods.
To turn off failover, do not specify a value for the Alternate Servers connection property.
Valid Values:
(servername1[:port1][,servername2[:port2]]...)
The server name (servername1, servername2, and so on) is required for each alternate
server entry. Port number (port1, port2, and so on) is optional for each alternate server
entry. If the port is unspecified, the port number of the primary server is used. If the port
number of the primary server is unspecified, the default port number is used.
Default: None
534 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
Load Balancing
Determines whether the connectivity service uses client load balancing in its attempts to
connect to the servers (primary and alternate) defined in a Connector group.You can
specify one or multiple alternate servers by setting the AlternateServers property.
Valid Values: ON | OFF
If set to ON, the connectivity service uses client load balancing and attempts to connect to
the servers (primary and alternate) in random order. The connectivity service randomly
selects from the list of primary and alternate On Premise Connectors which server to
connect to first. If that connection fails, the connectivity service again randomly selects
from this list of servers until all servers in the list have been tried or a connection is
successfully established.
If set to OFF, the connectivity service does not use client load balancing and connects to
each servers based on their sequential order (primary server first, then, alternate servers
in the order they are specified).
Default: OFF
Notes
• The Alternate Servers connection parameter specifies one or multiple alternate servers
for failover and is required for all failover methods. To turn off failover, do not specify a
value for the Alternate Servers parameter.
Catalog Options Determines which type of metadata information is included in result sets when a JDBC
application calls DatabaseMetaData methods. To include multiple types of metatdata
information, add the sum of the values that you want to include. In this case, specify 6 to
include synonyms and to emulate getColumns() calls.
Valid Values:
0 | 2 | 4
If set to 0, result sets do not contain synonyms.
If set to 2, result sets contain synonyms that are returned from the following
DatabaseMetaData methods: getColumns(), getExportedKeys(), getFunctionColumns(),
getFunctions(), getImportedKeys(), getIndexInfo(), getPrimaryKeys(),
getProcedureColumns(), and getProcedures().
If set to 4, a hint is provided to the driver to emulate getColumns() calls using the
ResultSetMetaData object instead of querying database catalogs for column information.
Result sets contain synonyms. Using emulation can improve performance because the
SQL statement that is formulated by the emulation is less complex than the SQL statement
that is formulated using getColumns(). The argument to getColumns() must evaluate to a
single table. If it does not, because of a wildcard or null value, for example, the driver
reverts to the default behavior for getColumns() calls.
The default is 2.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 535Chapter 3: Using Hybrid Data Pipeline
Field Description
Default Schema The name of the schema used when identifiers are not qualified in a SQL query. For
example, suppose Default Schema is set to White. Subsequent SQL statements with
unqualified table references use the owner name White. In this example, SELECT * FROM
Customer returns all rows in the ‘White.Customer’ table. The username establishing the
original session is still the current user.
Syntax:
string_literal
Where:
string_literal
specifies the name for the default owner as a string literal, enclosed in single or double
quotes.
When the field is left blank, the data store uses the default schema for the user.
The default is an empty string.
Initialization
A semicolon delimited set of commands to be executed on the data store after Hybrid Data
String
Pipeline has established and performed all initialization for the connection. If the execution
of a SQL command fails, the connection attempt also fails and Hybrid Data Pipeline returns
an error indicating which SQL commands failed.
Syntax:
command[[; command]...]
Where:
command
is a SQL command. Multiple commands must be separated by semicolons. In addition, if
this property is specified in a connection URL, the entire value must be enclosed in
parentheses when multiple commands are specified. For example, assuming a schema
name of SFORCE:
InitializationString=(REFRESH SCHEMA SFORCE)
The default is an empty string.
LoginTimeout
The amount of time, in seconds, that the Hybrid Data Pipeline connectivity service waits
for a connection to be established before timing out the connection request.
Valid Values:
0 | x
where x is a positive integer that represents a number of seconds.
If set to 0, the driver does not time out a connection request.
If set to x, the Hybrid Data Pipeline connectivity service waits for the specified number of
seconds before returning control to the application and throwing a timeout exception.
The default is 30.
536 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
Max Pooled
The maximum number of prepared statements to cache for this connection. If the value of
Statements
this property is set to 20, the connectivity service caches the last 20 prepared statements
that are created by the application.
The default value is 0.
Extended Options
Specifies a semi-colon delimited list of connection options and their values. Use this
configuration option to set the value of undocumented connection options that are provided
by Progress DataDirect technical support.You can include any valid connection option in
the Extended Options string, for example:
Database=Server1;UndocumentedOption1=value[;
UndocumentedOption2=value;]
If the Extended Options string contains option values that are also set in the setup dialog,
the values of the options specified in the Extended Options string take precedence.
Metadata
Restricts the metadata exposed by Hybrid Data Pipeline to a single schema.The metadata
Exposed
exposed in the SQL Editor, the Configure Schema Editor, and third party applications will
Schemas
be limited to the specified schema. JDBC, OData, and ODBC metadata calls will also be
restricted. In addition, calls made with the Schema API will be limited to the specified
schema.
Warning: This functionality should not be regarded as a security measure. While
the Metadata Exposed Schemas option restricts the metadata exposed by Hybrid
Data Pipeline to a single schema, it does not prevent queries against other schemas
on the backend data store. As a matter of best practice, permissions should be
set on the backend data store to control the ability of users to query data.
Valid Values
Where:
is the name of a valid schema on the backend data store.
Default: No schema is specified. Therefore, all schemas are exposed.
See the steps for: How to create a data source in the Web UI on page 240
Progress Rollbase parameters
Creating a Data Source defines how to connect to your cloud Data Store. See How to create a data source
in the Web UI on page 240.
The Progress® Rollbase® On-Premise Data Source dialog provides the connection parameters described in
the following tables to connect to Rollbase data:
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 537Chapter 3: Using Hybrid Data Pipeline
• General tab
• OData tab
• Mapping tab
• Advanced tab
General tab
538 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Table 87: General tab connection parameters for Progress Rollbase
Field Description
Data Source
A unique name for the data source. Data source names can contain only alphanumeric
Name
characters, underscores, and dashes.
Description
A description of this set of connection parameters.
User Id,
Login credentials for a Rollbase Private Cloud account with sufficient permissions to access
Password
the data of interest.
By default, the characters in the Password field you type are not shown. If you want the
password to be displayed in clear text, click the eye icon. Click the icon again to
conceal the password.
Host Name
The name of the host on which Rollbase is installed. In a multi-server environment, the
host on which you installed the Master server.You can confirm the hostname by navigating
to Setup > Application Setup > SOAP API > URI. The host name is the part of the URL
following http:// and preceding the port number. For example, in the following URL, mercury
is the host name: http://mercury:8080/webapi/services/rpcrouter.
Port Number
The port number to access Rollbase Private Cloud. The default is 443, which is the port
used for SSL.
Connector ID
The unique identifier of the On-Premise Connector that is to be used to access the
on-premise data source. Select the Connector that you want to use from the dropdown.
The identifier can be a descriptive name, the name of the machine where the Connector
is installed, or the Connector ID for the Connector.
If you have not installed an On-Premise Connector, and no Connectors have been shared
with you, this field and drop-down list are empty.
If you own multiple Connectors that have the same name, for example, Production, an
identifier is appended to each Connector, for example, Production_dup0 and
Production_dup1. If the Connectors in the dropdown were shared with you, the owner''s
name is appended, for example, Production(owner1) and Production(owner2).
OData tab
The following table describes the controls on the OData tab. For information on using the Configure Schema
editor, see Configuring data sources for OData connectivity and working with data source groups on page 646.
For information on formulating OData requests, see Formulating queries with OData Version 2 on page 868.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 539Chapter 3: Using Hybrid Data Pipeline
Table 88: OData tab connection parameters for Rollbase
Field Description
OData Version
Enables you to choose from the supported OData versions. OData configuration made
with one OData version will not work if you switch to a different OData version. If you want
to maintain the data source with different OData versions, you must create different data
sources for each of them.
OData Name
Enables you to set the case for entity type, entity set, and property names in OData
Mapping Case
metadata.
Valid Values: Uppercase | Lowercase | Default
When set to Uppercase, the case changes to all uppercase.
When set to Lowercase, the case changes to all lowercase.
When set to Default, the case does not change.
540 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
OData Access URI
Specifies the base URI for the OData feed to access your data source, for example,
https://hybridpipe.operations.com/api/odata/.You
can copy the URI and paste it into your application''s OData configuration.
The URI contains the case-insensitive name of the data source to connect to, and the
query that you want to execute. This URI is the OData Service Root URI for the OData
feed. The Service Document for the data source is returned by issuing a GET request to
the data source''s service root.
The OData Service Document returns the names of the entities exposed by the Data
Source OData service. To get details such as the properties of the entities exposed, the
data types for those properties and the relationships between entities, the Service Metadata
Document can be fetched by adding /$metadata to the service root URI.
Schema Map
Enables OData support. If a schema map is not defined, the OData API cannot be used
to access the data store using this data source definition. Use the Configure Schema
editor to select the tables/columns to expose through OData.
See Configuring data sources for OData connectivity and working with data source groups
on page 646 for more information.
Page Size
Determines the number of entities returned on each page for paging controlled on the
server side. On the client side, requests can use the $top and $skip parameters to
control paging. In most cases, server side paging works well for large data sets. Client
side pagination works best with a smaller data sets where it is not as expensive to fetch
subsequent pages.
Valid Values: 0 | n
where n is an integer from 1 to 10000.
When set to 0, the server default of 2000 is used.
Default: 0
Refresh Result
Controls what happens when you fetch the first page of a cached result when using Client
Side Paging. Skip must be omitted or set to 0.You can use the cached copy of that first
page, or you can re-execute the query to get a new result, discarding the previously
cached result. Re-executing the query is useful when the data being fetched may change
between two requests for the first page. Using the cached result is useful if you are paging
back and forth through results that are not expected to change.
Valid Values:
When set to 0, the OData service caches the first page of results.
When set to 1, the OData service re-executes the query.
Default: 1
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 541Chapter 3: Using Hybrid Data Pipeline
Field Description
Inline Count Mode
Specifies how the connectivity service satisfies requests that include the $count parameter
when it is set to true (for OData version 4) or the $inlinecount parameter when it is
set to allpages (for OData version 2). These requests require the connectivity service
to include the total number of entities that are defined by the OData query request. The
count must be included in the first page in server-driven paging and must be included in
every page when using client-driven paging.
The optimal setting depends on the data store and the size of results. The OData service
can run a separate query using the count(*) aggregate to get the count, before running
the query used to generate the entities. In very large results, this approach can often lead
to the first page being returned faster. Alternatively, the OData service can fetch the entire
result before returning the first page. This approach works well for small results and for
data stores that cannot optimize the count(*) aggregate; however, it may have a longer
initial response time for the first page if the result is large.
Valid Values:
When set to 1, the connectivity service runs a separate count(*) aggregate query to
get the count of entities before executing the query to return results. In very large results,
this approach can often lead to the first page being returned faster.
When set to 2, the connectivity service fetches all entities before returning the first page.
For small results, this approach is always faster. However, the initial response time for
the first page may be longer if the result is large.
Default: 1
Top Mode
Indicates how requests typically use $top and $skip for client side pagination, allowing
the service to better anticipate how to process queries.
Valid Values:
Set to 0 when the application generally uses $top to limit the size of the result and rarely
attempts to get additional entities by combining $top and $skip.
Set to 1 when the application uses $top as part of client-driven paging and generally
combines $top and $skip to page through the result.
Default: 0
OData Read Only
Controls whether write operations can be performed on the OData service.Write operations
generate a 405 Method Not Allowed response if this option is enabled.
Valid Values:
ON | OFF
When ON is selected, OData access is restricted to read-only mode.
When OFF is selected, write operations can be performed on the OData service.
Default: OFF
Mapping tab
You can set Map Options, which are values that provide the information required to create a connection to
Progress Rollbase. Click the + next to Set Map Options to display these fields.
542 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Table 89: Mapping tab connection parameters for Rollbase
Field Description
Map Name
Optional name of the map definition that the Hybrid Data Pipeline connectivity service
uses to interpret the schema of the data store. The Hybrid Data Pipeline service
automatically creates a name for the map.
If you want to name the map yourself, enter a unique name.
Refresh Schema
Controls what happens when you fetch the first page of a cached result when using Client
Side Paging. Skip must be omitted or set to 0.You can use the cached copy of that first
page, or you can re-execute the query to get a new result, discarding the previously
cached result. Re-executing the query is useful when the data being fetched may change
between two requests for the first page. Using the cached result is useful if you are paging
back and forth through results that are not expected to change.
Valid Values:
When set to 0, the OData service caches the first page of results.
When set to 1, the OData service re-executes the query.
Default: 1
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 543Chapter 3: Using Hybrid Data Pipeline
Field Description
Create Mapping
Determines whether the Rollbase table mapping files are to be (re)created.
The Hybrid Data Pipeline connectivity service automatically maps data store objects and
fields to tables and columns the first time that it connects to the data store. The map
includes both standard and custom objects and includes any relationships defined between
objects.
Note: You must force creation of a new map when there is a change in the mapping
options for the data source, or when the User Name / User ID connecting to the data
source has changed.The mapping is tied to the user account that initially connects through
the driver when the data source is created. If the user account is changed, then the map
must be recreated. Simply change the value of the Create Map option to force creation
of a new map.
Table 90: Valid values for Create Map field
Value Description
Not Exist Select this option for most normal operations. If a map for a data source
does not exist, this option causes one to be created. If a map exists, the
service uses that existing map. If a name is not specified in the Map
Name field, the name will be a combination of the User Name and Data
Source ID.
Force New Select this option to force creation of a new map. A map is created on
connection whether one exists or not. The connectivity service uses a
combination of the User Name and Data Source ID to name the map.
Map creation is expensive, so you will likely not want to leave this option
set to Force New indefinitely.
No If a map for a data source does not exist, the connectivity service does
not create one.
Map System
The mapSystemColumnNames parameter defines whether Hybrid Data Pipeline maps
Column Names
the integration name of standard columns that appear in each Rollbase object to a new
name. By default, Hybrid Data Pipeline maps the id column to ROWID, and maps the
remaining standard columns to a new name prefixed with SYS_ .
Valid values for mapSystemColumnNames are:
1 | 0
When set to 1, Hybrid Data Pipeline prefixes the names of standard columns of Rollbase
objects with SYS_ or ROWID.
When set to 0, Hybrid Data Pipeline does not map the names of standard columns of
Rollbase objects to new names.
Default: 1
544 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
Uppercase
Defines how Hybrid Data Pipeline maps identifiers. By default, all unquoted identifier
Identifiers
names are mapped to uppercase. Identifiers are object names. Classes, methods,
variables, interfaces, and database objects, such as tables, views, columns, indexes,
triggers, procedures, constraints, and rules, can have identifiers.
Valid Values:
When set to ON, the connectivity service maps all identifier names to uppercase.
When set to OFF, Hybrid Data Pipeline maps identifiers to the mixed case name of the
object being mapped. If mixed case identifiers are used, those identifiers must be quoted
in SQL statements, and the case of the identifier, must exactly match the case of the
identifier name.
Note: When object names are passed as arguments to catalog functions, the case of
the value must match the case of the name in the database. If an unquoted identifier name
was used when the object was created, the value passed to the catalog function must be
uppercase because unquoted identifiers are converted to uppercase before being used.
If a quoted identifier name was used when the object was created, the value passed to
the catalog function must match the case of the name as it was defined. Object names
in results returned from catalog functions are returned in the case that they are stored in
the database.
For example, if Uppercase Identifiers is set to ON, to query the Account table you would
need to specify:
SELECT "id", "name" FROM "Account"
Default: ON
Use Integration
Names
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 545Chapter 3: Using Hybrid Data Pipeline
Field Description
The useIntegrationNames map option is applicable only to data sources that access
Rollbase data for either public cloud or private cloud (on-premise) applications. The
useIntegrationNames parameter defines the type of name that Hybrid Data Pipeline
uses for objects and fields. Every object in Rollbase has a singular name, a plural name,
and an integration name. Every field in Rollbase has display name and an integration
name. By default, when the map is generated, Hybrid Data Pipeline uses the singular
name to generate the table names and the field''s display name when generating the
column names.
Hybrid Data Pipeline must use the integration names when communicating to Rollbase
through the REST API.
To control the object and column names that Hybrid Data Pipeline uses when
communicating to Rollbase, enable useIntegrationName in the Set Map Options section
of the Mapping tab of your data source definition.
Valid Values:
0 | 1
If set to 1, Hybrid Data Pipeline uses the integration names to generate the table and
column names.
If set to 0, Hybrid Data Pipeline uses the singular name to generate the table names and
the field''s display name when generating the column names when the map is generated.
The default value for useIntegrationNames is 0.
546 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Advanced tab
Table 91: Advanced tab connection parameters for Progress Rollbase
Field Description
Encryption
Specifies whether SSL is used to communicate with the Rollbase Web Service. When
Method
SSL is enabled, the default, the driver uses the "https" scheme. When SSL is disabled,
the driver uses the "http" scheme.
The default value is SSL.
Max Pooled
The maximum number of prepared statements to cache for this connection. If the value
Statements
of this property is set to 20, the connectivity service caches the last 20 prepared statements
that are created by the application.
The default value of 0 means that the internal prepared statement pooling is not enabled.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 547Chapter 3: Using Hybrid Data Pipeline
Field Description
Login Timeout
The amount of time, in seconds, to wait for a connection to be established before timing
out the connection request.
When set to 0, the connection request never times out.
The default value is 0.
Initialization String
A semicolon delimited set of commands to be executed on the data store after Hybrid
Data Pipeline has established and performed all initialization for the connection. If the
execution of a SQL command fails, the connection attempt also fails and Hybrid Data
Pipeline returns an error indicating which SQL commands failed.
Syntax:
command[[; command]...]
Where:
command
is a SQL command. Multiple commands must be separated by semicolons. In addition, if
this property is specified in a connection URL, the entire value must be enclosed in
parentheses when multiple commands are specified. For example, assuming a schema
name of SFORCE:
InitializationString=(REFRESH SCHEMA SFORCE)
The default is an empty string.
Read Only Sets the connection to read-only mode, that is, the data store can be read but not updated.
The default value is OFF.
Web Service Call
The maximum number of Web service calls allowed to the cloud data store for a single
Limit
SQL statement or metadata query.
Web Service
The maximum number of Web service calls allowed to the data store for a single SQL
Timeout
statement or metadata query. The value of 0 implies there is no limit.
The default value is 120.
Web Service
Controls the number of times to retry a Select request that times out. call. Insert, Update,
Retry Count
Delete requests are never retried. If set to 0, no retry attempts are made for Select requests
that time out after the initial unsuccessful attempt.Valid values are from 0 and any positive
integer.
The default value is 3.
548 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
Extended Options
Specifies a semi-colon delimited list of connection options and their values. Use this
configuration option to set the value of undocumented connection options that are provided
by Progress DataDirect technical support.You can include any valid connection option in
the Extended Options string, for example:
Database=Server1;UndocumentedOption1=value[;
UndocumentedOption2=value;]
If the Extended Options string contains option values that are also set in the setup dialog,
the values of the options specified in the Extended Options string take precedence.
Metadata
Restricts the metadata exposed by Hybrid Data Pipeline to a single schema.The metadata
Exposed
exposed in the SQL Editor, the Configure Schema Editor, and third party applications will
Schemas
be limited to the specified schema. JDBC, OData, and ODBC metadata calls will also be
restricted. In addition, calls made with the Schema API will be limited to the specified
schema.
Warning: This functionality should not be regarded as a security measure. While
the Metadata Exposed Schemas option restricts the metadata exposed by Hybrid
Data Pipeline to a single schema, it does not prevent queries against other schemas
on the backend data store. As a matter of best practice, permissions should be
set on the backend data store to control the ability of users to query data.
Valid Values
Where:
is the name of a valid schema on the backend data store.
Default: No schema is specified. Therefore, all schemas are exposed.
See also
How to create a data source in the Web UI on page 240
Editing a data source on page 644
Salesforce (and Related Data Store) connection parameters
The data source parameters for connecting to the Salesforce and related data stores are similar. However, for
simplicity, because the connection features are not identical, the connection parameters are listed separately.
Salesforce parameters
The following tables describe parameters available on the tabs of a Salesforce.com® Data Source setup dialog:
• General tab
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 549Chapter 3: Using Hybrid Data Pipeline
• OData tab
• Mapping tab
• Advanced tab
General tab
550 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Table 92: General tab connection parameters for Salesforce
Field Description
Data Source Name
A unique name for the data source. Data source names can contain only
alphanumeric characters, underscores, and dashes.
Description
A description of this set of connection parameters.
User Id, Password
The login credentials for your Salesforce cloud data store account.
Hybrid Data Pipeline uses this information to connect to the data store. The
administrator of the cloud data store must grant permission to a user with these
credentials to access the data store and the target data.
Note: You can save the Data Source definition without specifying the login
credentials. In that case, when you test the Data source connection, you will be
prompted to specify these details. Applications using the connectivity service will
have to supply the data store credentials (if they are not saved in the Data Source)
in addition to the Data Source name and the credentials for the Hybrid Data
Pipeline account.
By default, the characters in the Password field you type are not shown. If you
want the password to be displayed in clear text, click the eye icon. Click the
icon again to conceal the password.
Salesforce Login URL
The data store URL.
For example, login.salesforce.com.
Valid Values:
login.salesforce.com | test.salesforce.com
If set to login.salesforce.com, the production environment is used.
If set to test.salesforce.com, the test environment is used.
Security Token
The security token is required to log in to Salesforce from an untrusted network.
Salesforce automatically generates this key. If you do not have the security token,
log into your account, go to Setup > My Personal Information > Reset My
Security Token. A new token will be sent by e-mail.
OData tab
The following table describes the controls on the OData tab. For information on using the Configure Schema
editor, see Configuring data sources for OData connectivity and working with data source groups on page 646.
For information on formulating OData requests, see Formulating queries with OData Version 2 on page 868.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 551Chapter 3: Using Hybrid Data Pipeline
Table 93: OData tab connection parameters for Salesforce
Field Description
OData Version
Enables you to choose from the supported OData versions. OData configuration made
with one OData version will not work if you switch to a different OData version. If you want
to maintain the data source with different OData versions, you must create different data
sources for each of them.
OData Name
Enables you to set the case for entity type, entity set, and property names in OData
Mapping Case
metadata.
Valid Values: Uppercase | Lowercase | Default
When set to Uppercase, the case changes to all uppercase.
When set to Lowercase, the case changes to all lowercase.
When set to Default, the case does not change.
552 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
OData Access URI
Specifies the base URI for the OData feed to access your data source, for example,
https://hybridpipe.operations.com/api/odata/.You
can copy the URI and paste it into your application''s OData configuration.
The URI contains the case-insensitive name of the data source to connect to, and the
query that you want to execute. This URI is the OData Service Root URI for the OData
feed. The Service Document for the data source is returned by issuing a GET request to
the data source''s service root.
The OData Service Document returns the names of the entities exposed by the Data
Source OData service. To get details such as the properties of the entities exposed, the
data types for those properties and the relationships between entities, the Service Metadata
Document can be fetched by adding /$metadata to the service root URI.
Schema Map
Enables OData support. If a schema map is not defined, the OData API cannot be used
to access the data store using this data source definition. Use the Configure Schema
editor to select the tables/columns to expose through OData.
See Configuring data sources for OData connectivity and working with data source groups
on page 646 for more information.
Page Size
Determines the number of entities returned on each page for paging controlled on the
server side. On the client side, requests can use the $top and $skip parameters to
control paging. In most cases, server side paging works well for large data sets. Client
side pagination works best with a smaller data sets where it is not as expensive to fetch
subsequent pages.
Valid Values: 0 | n
where n is an integer from 1 to 10000.
When set to 0, the server default of 2000 is used.
Default: 0
Refresh Result
Controls what happens when you fetch the first page of a cached result when using Client
Side Paging. Skip must be omitted or set to 0.You can use the cached copy of that first
page, or you can re-execute the query to get a new result, discarding the previously
cached result. Re-executing the query is useful when the data being fetched may change
between two requests for the first page. Using the cached result is useful if you are paging
back and forth through results that are not expected to change.
Valid Values:
When set to 0, the OData service caches the first page of results.
When set to 1, the OData service re-executes the query.
Default: 1
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 553Chapter 3: Using Hybrid Data Pipeline
Field Description
Inline Count Mode
Specifies how the connectivity service satisfies requests that include the $count parameter
when it is set to true (for OData version 4) or the $inlinecount parameter when it is
set to allpages (for OData version 2). These requests require the connectivity service
to include the total number of entities that are defined by the OData query request. The
count must be included in the first page in server-driven paging and must be included in
every page when using client-driven paging.
The optimal setting depends on the data store and the size of results. The OData service
can run a separate query using the count(*) aggregate to get the count, before running
the query used to generate the entities. In very large results, this approach can often lead
to the first page being returned faster. Alternatively, the OData service can fetch the entire
result before returning the first page. This approach works well for small results and for
data stores that cannot optimize the count(*) aggregate; however, it may have a longer
initial response time for the first page if the result is large.
Valid Values:
When set to 1, the connectivity service runs a separate count(*) aggregate query to
get the count of entities before executing the query to return results. In very large results,
this approach can often lead to the first page being returned faster.
When set to 2, the connectivity service fetches all entities before returning the first page.
For small results, this approach is always faster. However, the initial response time for
the first page may be longer if the result is large.
Default: 1
Top Mode
Indicates how requests typically use $top and $skip for client side pagination, allowing
the service to better anticipate how to process queries.
Valid Values:
Set to 0 when the application generally uses $top to limit the size of the result and rarely
attempts to get additional entities by combining $top and $skip.
Set to 1 when the application uses $top as part of client-driven paging and generally
combines $top and $skip to page through the result.
Default: 0
OData Read Only
Controls whether write operations can be performed on the OData service.Write operations
generate a 405 Method Not Allowed response if this option is enabled.
Valid Values:
ON | OFF
When ON is selected, OData access is restricted to read-only mode.
When OFF is selected, write operations can be performed on the OData service.
Default: OFF
554 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Mapping tab
The default values for advanced mapping fields are appropriate in many cases. However, if your organization
wants to strip custom prefixes or enable uppercase identifiers, you might want to change map option settings.
Understanding how Hybrid Data Pipeline creates and uses maps will help you choose the appropriate values.
The following table describes the mapping options that apply to Salesforce CRM.
Note: Map creation is an expensive operation. In most cases, you will only want to re-create a map if you
need to change mapping options.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 555Chapter 3: Using Hybrid Data Pipeline
Table 94: Mapping tab connection parameters for Salesforce
Field Description
Map Name
Optional name of the map definition that the Hybrid Data Pipeline connectivity service
uses to interpret the schema of the data store. The Hybrid Data Pipeline service
automatically creates a name for the map.
If you want to name the map yourself, enter a unique name.
Refresh Map
The Refresh Schema option specifies whether the connectivity service attempts to refresh
the schema when an application first connects.
Valid Values:
When set to ON, the connectivity service attempts to refresh the schema.
When set to OFF, the connectivity service does not attempt to refresh the schema.
Default: OFF
Notes:
• You can choose to refresh the schema by clicking the Refresh icon. This refreshes
the schema immediately. Note that the refresh option is available only while editing
the data source.
• Use the option to specify whether the connectivity service attempts to refresh the
schema when an application first connects. Click the Refresh icon if you want to refresh
the schema immediately, using an already saved configuration.
• If you are making other edits to the settings, you need to click update to save your
configuration. Clicking the Refresh icon will only trigger a runtime call on the saved
configuration.
556 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
Create Mapping
Determines whether the Salesforce table mapping files are to be (re)created.
The Hybrid Data Pipeline connectivity service automatically maps data store objects and
fields to tables and columns the first time that it connects to the data store. The map
includes both standard and custom objects and includes any relationships defined between
objects.
Table 95: Valid values for Create Map field
Value Description
Not Exist Select this option for most normal operations. If a map for a data source
does not exist, this option causes one to be created. If a map exists, the
service uses that existing map. If a name is not specified in the Map
Name field, the name will be a combination of the User Name and Data
Source ID.
Force New Select this option to force creation of a new map. A map is created on
connection whether one exists or not. The connectivity service uses a
combination of the User Name and Data Source ID to name the map.
Map creation is expensive, so you will likely not want to leave this option
set to Force New indefinitely.
No If a map for a data source does not exist, the connectivity service does
not create one.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 557Chapter 3: Using Hybrid Data Pipeline
Field Description
Map System
By default, when mapping Salesforce system fields to columns in a table, Hybrid Data
Column Names
Pipeline changes system column names to make it evident that the column is a system
column. System columns include those for name and id. If the system column names are
not changed and you create a new table with id and name columns, the map will need to
append a suffix to your columns to differentiate them from the system columns, even if
the map option is set to strip suffixes.
If you do not want to change the names of system columns, set this parameter to 0.
Valid values are described in the following table.
Table 96: Valid values for Map System Column Names
Value Description
0 Hybrid Data Pipeline does not change the names of the Salesforce
system columns.
1
Hybrid Data Pipeline changes the names of the Salesforce system
columns as described in the following table:
Field Name Mapped Name
Id ROWID
Name SYS_NAME
IsDeleted SYS_ISDELETED
CreatedDate SYS_CREATEDDATE
CreatedById
SYS_CREATEDBYID
LastModifiedDate
SYS_LASTMODIFIEDDATE
LastModifiedid
SYS_LASTMODIFIEDID
SystemModstamp SYS_SYSTEMMODSTAMP
LastActivityDate SYS_LASTACTIVITYDATE
The default value is 0.
558 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
Uppercase
Defines how Hybrid Data Pipeline maps identifiers. By default, all unquoted identifier
Identifiers
names are mapped to uppercase. Identifiers are object names. Classes, methods,
variables, interfaces, and database objects, such as tables, views, columns, indexes,
triggers, procedures, constraints, and rules, can have identifiers.
Valid Values:
When set to ON, the connectivity service maps all identifier names to uppercase.
When set to OFF, Hybrid Data Pipeline maps identifiers to the mixed case name of the
object being mapped. If mixed case identifiers are used, those identifiers must be quoted
in SQL statements, and the case of the identifier, must exactly match the case of the
identifier name.
Note: When object names are passed as arguments to catalog functions, the case of
the value must match the case of the name in the database. If an unquoted identifier name
was used when the object was created, the value passed to the catalog function must be
uppercase because unquoted identifiers are converted to uppercase before being used.
If a quoted identifier name was used when the object was created, the value passed to
the catalog function must match the case of the name as it was defined. Object names
in results returned from catalog functions are returned in the case that they are stored in
the database.
For example, if Uppercase Identifiers is set to ON, to query the Account table you would
need to specify:
SELECT "id", "name" FROM "Account"
Default: ON
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 559Chapter 3: Using Hybrid Data Pipeline
Field Description
Audit Columns
The audit columns added by Hybrid Data Pipeline are:
• IsDeleted
• CreatedById
• CreatedDate
• LastModifiedById
• LastModifiedDate
• SYSTEMMODSTAMP
The following table describes the valid values for the Audit Columns parameter.
Table 97: Valid values for Audit Columns
Value Description
All Hybrid Data Pipeline includes all of the audit columns and the
MasterRecordId column in its table definitions.
AuditOnly Hybrid Data Pipeline adds only the audit columns in its table
definitions.
MasterOnly Hybrid Data Pipeline adds only the MasterRecordId column in its
table definitions.
None Hybrid Data Pipeline does not add the audit columns or the
MasterRecordId column in its table definitions.
The default value for Audit Columns is All.
In a typical Salesforce instance, not all users are granted access to the Audit or
MasterRecordId columns. If Audit Columns is set to a value other than None and if
Hybrid Data Pipeline cannot include the columns requested, the connection fails and an
exception is thrown.
560 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
Custom Suffix
Data stores treat the creation of standard and custom objects differently. Objects you
create in your organization are called custom objects, and the objects already created for
you by the data store administrator are called standard objects.
When you create custom objects such as tables and columns, the data store appends a
custom suffix to the name, (__c), two underscores immediately followed by a lowercase
“c” character.
For example, Salesforce will create a table named emp__c if you create a new table using
the following statement:
CREATE TABLE emp (id int, name varchar(30))
When you expose external objects, Salesforce appends a _x extension (__x), two
underscores immediately followed by a lowercase “x” character. This extension is treated
in the same way as the __c extension for custom object.
You might expect to be able to query the table using the name you gave it, emp in the
example. Therefore, by default, the connectivity service strips off the suffix, allowing you
to make queries without adding the suffix "__c" or "__x". The Map Options field allows
you to specify a value for CustomSuffix to control whether the map includes the suffix
or not:
• If set to include, the map uses the “__c” or "__x" suffix; you must therefore use it in
your queries.
• If set to strip, the suffix in the map is removed in the map.Your queries should not
include the suffix when referring to custom fields.
The default value for CustomSuffix is include.
The first time you save and test a connection, a map for that data store is created. Once
a map is created, you cannot change the map options for that Data Source definition
unless you also create a new map. For example, if a map is created with Custom Suffix
set to include and then later, you change the Custom Suffixvalue to strip, you will
get an error saying the configuration options do not match. Simply change the value of
the Create Map option to force creation of a new map.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 561Chapter 3: Using Hybrid Data Pipeline
Field Description
Keyword Conflict
The SQL standard and Hybrid Data Pipeline both define keywords and reserved words.
Suffix
These have special meaning in context, and may not be used as identifier names unless
typed in uppercase letters and enclosed in quotation marks.
For example, the Case object is a standard object present in most Salesforce organizations
but CASE is also an SQL keyword. Therefore, a table named Case cannot be used in a
SQL statement unless enclosed in quotes and entered in uppercase letters:
• Execution of the SQL query Select * from Case will return the following:
Error: [DataDirect][DDHybrid JDBC Driver][Salesforce]Unexpected
token: CASE in statement [select * from case]
• Execution of the SQL query Select * from "Case" will return the following:
Error: [DataDirect][DDHybrid JDBC Driver][Salesforce]Table not
found in statement [select * from "Case"]
• Execution of the SQL query, Select * from "CASE" will complete successfully.
To avoid using quotes and uppercase for table or column names that match keywords
and reserved words, you can instruct Hybrid Data Pipeline to add a suffix to such names.
For example, if Keyword Conflict Suffix is set to TAB, the Case table will be mapped
to a table named CASETAB.With such a suffix appended in the map, the following queries
both work:
• Select * From CASETAB
• Select * From casetab
Number Field
Mapping
562 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
In addition to the primitive data types, Hybrid Data Pipeline also defines custom field data
types. The Number Field Mapping parameter defines how Hybrid Data Pipeline maps
fields defined as NUMBER (custom field data type). The NUMBER data type can be used to
enter any number with or without a decimal place.
Hybrid Data Pipeline type casts NUMBER data type to the SQL data type DOUBLE and
stores the values as DOUBLE.
This type casting can cause problems when the precision of the NUMBER field is greater
than the precision of a SQL data type DOUBLE value.
By default, Hybrid Data Pipeline maps NUMBER values with a precision of 9 or less and
scale 0 to the SQL data type INTEGER type, and also maps all other NUMBER fields to the
SQL data type DOUBLE. Precision is the number of digits in a number. Scale is the number
of digits to the right of the decimal point in a number. For example: The number 123.45
has a precision of 5 and a scale of 2.
Valid values for Number Field Mapping are described in the following table.
Table 98: Valid values for Number Field Mapping
Value Description
alwaysDouble Hybrid Data Pipeline maps NUMBER fields to the SQL data type DOUBLE.
emulateInteger Hybrid Data Pipeline maps NUMBER fields with a precision of 9 or less
and a scale of 0 to the SQL data type INTEGER and maps all other
NUMBER fields to the SQL data type DOUBLE.
The default value for Number Field Mapping is emulateInteger.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 563Chapter 3: Using Hybrid Data Pipeline
Advanced tab
Table 99: Advanced tab connection parameters for Salesforce
Field Description
Web Service Call
The maximum number of Web service calls allowed to the cloud data store for a single
Limit
SQL statement or metadata query.
The default value is 0.
564 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
Web Service
The number of times to retry a timed-out Select request.Insert, Update, and Delete
Retry Count
requests are never retried. The Web Service Timeout parameter specifies the period
between retries. A value of 0 for the retry count prevents retries. A positive integer sets
the number of retries. The default value is 0.
Web Service
The time, in seconds, to wait before retrying a timed-out Select request. Valid only if the
Timeout
value of Web Service Retry Count is greater than zero. A value of 0 for the timeout waits
indefinitely for the response to a Web service request. There is no timeout. A positive
integer is considered as a default timeout for any statement created by the connection.
The default value is 120.
Max Pooled
The maximum number of prepared statements to cache for this connection. If the value
Statements
of this property is set to 20, the connectivity service caches the last 20 prepared statements
that are created by the application.
The default value is 0.
Login Timeout
The amount of time, in seconds, to wait for a connection to be established before timing
out the connection request.
If set to 0, the connectivity service does not time out a connection request.
The default value is 0.
Enable Bulk Load
Specifies whether to use the bulk load protocol for insert, update, delete, and batch
operations. This increases the number of rows that the Hybrid Data Pipeline connectivity
service loads to send to the data store. Bulk load reduces the number of network trips.
The default value is ON.
Bulk Load
Sets a threshold (number of rows) that, if exceeded, triggers bulk loading for insert, update,
Threshold
delete, or batch operations. The default is 4000.
Enable Bulk Fetch
Specifies whether to use the Salesforce Bulk API for selects based on the value of the
Bulk Fetch Threshold option. If the number of rows expected in the result set exceeds the
value of Bulk Fetch Threshold, the connectivity service uses the Salesforce Bulk API to
execute the select operation. Using the Salesforce Bulk API may significantly reduce the
number of Web service calls used to execute a statement and, therefore, may improve
performance.
The default value is ON.
Bulk Fetch
Sets a threshold (number of rows) that, if exceeded, triggers the use of the Salesforce
Threshold
Bulk API for select operations. For this behavior to take effect, the Enable Bulk Fetch
option must be set to ON.
If set to 0, the Salesforce Bulk API is used for all select operations.
The default is 30000 (rows).
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 565Chapter 3: Using Hybrid Data Pipeline
Field Description
Enable Primary
Specifies whether the driver uses PK chunking for select operations. PK chunking breaks
Key Chunking
down bulk fetch operations into smaller, more manageable batches for improved
performance.
If set to ON, PK chunking is used for select operations when the expected number of rows
in the result set is greater than the values of the Bulk Fetch Threshold and Primary Key
Chunk Size options. For this behavior to take effect, the Enable Bulk Fetch option must
also be set to ON.
If set to OFF, PK chunking is not used when executing select operations, and the Primary
Key Chunk Size option is ignored.
The default is ON.
Primary Key
Specifies the size, in rows, of a primary key chunk when PK chunking has been enabled
Chunk Size
via the Enable Primary Key Chunking option. The Salesforce Bulk API splits the query
into chunks of this size.
Primary Key Chunk Size may be set to a maximum value of 250000 rows.
The default is 100000 (rows).
Initialization String
A semicolon delimited set of commands to be executed on the data store after Hybrid
Data Pipeline has established and performed all initialization for the connection. If the
execution of a SQL command fails, the connection attempt also fails and Hybrid Data
Pipeline returns an error indicating which SQL commands failed.
Syntax:
command[[; command]...]
Where:
command
is a SQL command. Multiple commands must be separated by semicolons. In addition, if
this property is specified in a connection URL, the entire value must be enclosed in
parentheses when multiple commands are specified. For example, assuming a schema
name of SFORCE:
InitializationString=(REFRESH SCHEMA SFORCE)
The default is an empty string.
Read Only
Sets the connection to read-only mode. Indicates that the cloud data store can be read
but not updated.
The default value is OFF.
566 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
Extended Options
Specifies a semi-colon delimited list of connection options and their values. Use this
configuration option to set the value of undocumented connection options that are provided
by Progress DataDirect technical support.You can include any valid connection option in
the Extended Options string, for example:
Database=Server1;UndocumentedOption1=value[;
UndocumentedOption2=value;]
If the Extended Options string contains option values that are also set in the setup dialog,
the values of the options specified in the Extended Options string take precedence.
Note:
If you are using a proxy server to connect to your sales cloud instance, then you have to
set these options:
proxyHost = hostname of the proxy server; proxyPort = portnumber of
the proxy server
If Authentication is enabled, then you have to include the following:
proxyuser=; proxypassword=
Metadata
Restricts the metadata exposed by Hybrid Data Pipeline to a single schema.The metadata
Exposed
exposed in the SQL Editor, the Configure Schema Editor, and third party applications will
Schemas
be limited to the specified schema. JDBC, OData, and ODBC metadata calls will also be
restricted. In addition, calls made with the Schema API will be limited to the specified
schema.
Warning: This functionality should not be regarded as a security measure. While
the Metadata Exposed Schemas option restricts the metadata exposed by Hybrid
Data Pipeline to a single schema, it does not prevent queries against other schemas
on the backend data store. As a matter of best practice, permissions should be
set on the backend data store to control the ability of users to query data.
Valid Values
Where:
is the name of a valid schema on the backend data store.
Default: No schema is specified. Therefore, all schemas are exposed.
See the steps for:
How to create a data source in the Web UI on page 240
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 567Chapter 3: Using Hybrid Data Pipeline
See also
Salesforce data store reports on page 995
Salesforce-type data types on page 962
Supported SQL and Extensions on page 996
Supported scalar functions on page 969
FinancialForce parameters
The following tables describe parameters available on the tabs of a FinancialForce.com® Data Source setup
dialog:
• General tab
• OData tab
• Mapping tab
• Advanced tab
General tab
568 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Table 100: General tab connection parameters for FinancialForce
Field Description
Data Source
A unique name for the data source. Data source names can contain only alphanumeric
Name
characters, underscores, and dashes.
Description
A general description of the data source.
User Id,
The login credentials for your FinancialForce data store account.
Password
Hybrid Data Pipeline uses this information to connect to the data store. The administrator
of the cloud data store must grant permission to a user with these credentials to access
the data store and the target data.
Note:
You can save the Data Source definition without specifying the login credentials. In that
case, when you test the Data source connection, you will be prompted to specify these
details. Applications using the connectivity service will have to supply the data store
credentials (if they are not saved in the Data Source) in addition to the Data Source name
and the credentials for the Hybrid Data Pipeline account.
By default, the characters in the Password field you type are not shown. If you want the
password to be displayed in clear text, click the eye icon. Click the icon again to
conceal the password.
FinancialForce
The data store URL.
Login URL
Valid Values:
login.salesforce.com | test.salesforce.com
If set to login.salesforce.com, the production environment is used.
If set to test.salesforce.com, the test environment is used.
Security Token
The security token is required to log in to Salesforce from an untrusted network.
Salesforce automatically generates this key. If you do not have the security token, log into
your account, go to Setup > My Personal Information > Reset My Security Token. A
new token will be sent by e-mail.
OData tab
The following table describes the controls on the OData tab. For information on using the Configure Schema
editor, see Configuring data sources for OData connectivity and working with data source groups on page 646.
For information on formulating OData requests, see Formulating queries with OData Version 2 on page 868.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 569Chapter 3: Using Hybrid Data Pipeline
Table 101: OData tab connection parameters for FinancialForce
Field Description
OData Version
Enables you to choose from the supported OData versions. OData configuration made
with one OData version will not work if you switch to a different OData version. If you want
to maintain the data source with different OData versions, you must create different data
sources for each of them.
OData Name
Enables you to set the case for entity type, entity set, and property names in OData
Mapping Case
metadata.
Valid Values: Uppercase | Lowercase | Default
When set to Uppercase, the case changes to all uppercase.
When set to Lowercase, the case changes to all lowercase.
When set to Default, the case does not change.
570 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
OData Access URI
Specifies the base URI for the OData feed to access your data source, for example,
https://hybridpipe.operations.com/api/odata/.You
can copy the URI and paste it into your application''s OData configuration.
The URI contains the case-insensitive name of the data source to connect to, and the
query that you want to execute. This URI is the OData Service Root URI for the OData
feed. The Service Document for the data source is returned by issuing a GET request to
the data source''s service root.
The OData Service Document returns the names of the entities exposed by the Data
Source OData service. To get details such as the properties of the entities exposed, the
data types for those properties and the relationships between entities, the Service Metadata
Document can be fetched by adding /$metadata to the service root URI.
Schema Map
Enables OData support. If a schema map is not defined, the OData API cannot be used
to access the data store using this data source definition. Use the Configure Schema
editor to select the tables/columns to expose through OData.
See Configuring data sources for OData connectivity and working with data source groups
on page 646 for more information.
Page Size
Determines the number of entities returned on each page for paging controlled on the
server side. On the client side, requests can use the $top and $skip parameters to
control paging. In most cases, server side paging works well for large data sets. Client
side pagination works best with a smaller data sets where it is not as expensive to fetch
subsequent pages.
Valid Values: 0 | n
where n is an integer from 1 to 10000.
When set to 0, the server default of 2000 is used.
Default: 0
Refresh Result
Controls what happens when you fetch the first page of a cached result when using Client
Side Paging. Skip must be omitted or set to 0.You can use the cached copy of that first
page, or you can re-execute the query to get a new result, discarding the previously
cached result. Re-executing the query is useful when the data being fetched may change
between two requests for the first page. Using the cached result is useful if you are paging
back and forth through results that are not expected to change.
Valid Values:
When set to 0, the OData service caches the first page of results.
When set to 1, the OData service re-executes the query.
Default: 1
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 571Chapter 3: Using Hybrid Data Pipeline
Field Description
Inline Count Mode
Specifies how the connectivity service satisfies requests that include the $count parameter
when it is set to true (for OData version 4) or the $inlinecount parameter when it is
set to allpages (for OData version 2). These requests require the connectivity service
to include the total number of entities that are defined by the OData query request. The
count must be included in the first page in server-driven paging and must be included in
every page when using client-driven paging.
The optimal setting depends on the data store and the size of results. The OData service
can run a separate query using the count(*) aggregate to get the count, before running
the query used to generate the entities. In very large results, this approach can often lead
to the first page being returned faster. Alternatively, the OData service can fetch the entire
result before returning the first page. This approach works well for small results and for
data stores that cannot optimize the count(*) aggregate; however, it may have a longer
initial response time for the first page if the result is large.
Valid Values:
When set to 1, the connectivity service runs a separate count(*) aggregate query to
get the count of entities before executing the query to return results. In very large results,
this approach can often lead to the first page being returned faster.
When set to 2, the connectivity service fetches all entities before returning the first page.
For small results, this approach is always faster. However, the initial response time for
the first page may be longer if the result is large.
Default: 1
Top Mode
Indicates how requests typically use $top and $skip for client side pagination, allowing
the service to better anticipate how to process queries.
Valid Values:
Set to 0 when the application generally uses $top to limit the size of the result and rarely
attempts to get additional entities by combining $top and $skip.
Set to 1 when the application uses $top as part of client-driven paging and generally
combines $top and $skip to page through the result.
Default: 0
OData Read Only
Controls whether write operations can be performed on the OData service.Write operations
generate a 405 Method Not Allowed response if this option is enabled.
Valid Values:
ON | OFF
When ON is selected, OData access is restricted to read-only mode.
When OFF is selected, write operations can be performed on the OData service.
Default: OFF
572 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Mapping tab
Table 102: Mapping tab connection parameters for FinancialForce
Field Description
Map Name
Optional name of the map definition that the Hybrid Data Pipeline connectivity service
uses to interpret the schema of the data store. The Hybrid Data Pipeline service
automatically creates a name for the map.
If you want to name the map yourself, enter a unique name.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 573Chapter 3: Using Hybrid Data Pipeline
Field Description
Refresh Schema
The Refresh Schema option specifies whether the connectivity service attempts to refresh
the schema when an application first connects.
Valid Values:
When set to ON, the connectivity service attempts to refresh the schema.
When set to OFF, the connectivity service does not attempt to refresh the schema.
Default: OFF
Notes:
• You can choose to refresh the schema by clicking the Refresh icon. This refreshes
the schema immediately. Note that the refresh option is available only while editing
the data source.
• Use the option to specify whether the connectivity service attempts to refresh the
schema when an application first connects. Click the Refresh icon if you want to refresh
the schema immediately, using an already saved configuration.
• If you are making other edits to the settings, you need to click update to save your
configuration. Clicking the Refresh icon will only trigger a runtime call on the saved
configuration.
Create Mapping
Determines whether the Salesforce table mapping files are to be (re)created.
The Hybrid Data Pipeline connectivity service automatically maps data store objects and
fields to tables and columns the first time that it connects to the data store. The map
includes both standard and custom objects and includes any relationships defined between
objects.
Table 103: Valid values for Create Map field
Value Description
Not Exist Select this option for most normal operations. If a map for a data source
does not exist, this option causes one to be created. If a map exists, the
service uses that existing map. If a name is not specified in the Map
Name field, the name will be a combination of the User Name and Data
Source ID.
Force New Select this option to force creation of a new map. A map is created on
connection whether one exists or not. The connectivity service uses a
combination of the User Name and Data Source ID to name the map.
Map creation is expensive, so you will likely not want to leave this option
set to Force New indefinitely.
No If a map for a data source does not exist, the connectivity service does
not create one.
574 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
Map System
By default, when mapping Salesforce system fields to columns in a table, Hybrid Data
Column Names
Pipeline changes system column names to make it evident that the column is a system
column. System columns include those for name and id. If the system column names are
not changed and you create a new table with id and name columns, the map will need to
append a suffix to your columns to differentiate them from the system columns, even if
the map option is set to strip suffixes.
If you do not want to change the names of system columns, set this parameter to 0.
Valid values are described in the following table.
Table 104: Valid values for Map System Column Names
Value Description
0 Hybrid Data Pipeline does not change the names of the Salesforce
system columns.
1
Hybrid Data Pipeline changes the names of the Salesforce system
columns as described in the following table:
Field Name Mapped Name
Id ROWID
Name SYS_NAME
IsDeleted SYS_ISDELETED
CreatedDate SYS_CREATEDDATE
CreatedById
SYS_CREATEDBYID
LastModifiedDate
SYS_LASTMODIFIEDDATE
LastModifiedid
SYS_LASTMODIFIEDID
SystemModstamp SYS_SYSTEMMODSTAMP
LastActivityDate SYS_LASTACTIVITYDATE
The default value is 0.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 575Chapter 3: Using Hybrid Data Pipeline
Field Description
Uppercase
Defines how Hybrid Data Pipeline maps identifiers. By default, all unquoted identifier
Identifiers
names are mapped to uppercase. Identifiers are object names. Classes, methods,
variables, interfaces, and database objects, such as tables, views, columns, indexes,
triggers, procedures, constraints, and rules, can have identifiers.
Valid Values:
When set to ON, the connectivity service maps all identifier names to uppercase.
When set to OFF, Hybrid Data Pipeline maps identifiers to the mixed case name of the
object being mapped. If mixed case identifiers are used, those identifiers must be quoted
in SQL statements, and the case of the identifier, must exactly match the case of the
identifier name.
Note: When object names are passed as arguments to catalog functions, the case of
the value must match the case of the name in the database. If an unquoted identifier name
was used when the object was created, the value passed to the catalog function must be
uppercase because unquoted identifiers are converted to uppercase before being used.
If a quoted identifier name was used when the object was created, the value passed to
the catalog function must match the case of the name as it was defined. Object names
in results returned from catalog functions are returned in the case that they are stored in
the database.
For example, if Uppercase Identifiers is set to ON, to query the Account table you would
need to specify:
SELECT "id", "name" FROM "Account"
Default: ON
576 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
Audit Columns
The audit columns added by Hybrid Data Pipeline are:
• IsDeleted
• CreatedById
• CreatedDate
• LastModifiedById
• LastModifiedDate
• SYSTEMMODSTAMP
The following table describes the valid values for the Audit Columns parameter.
Table 105: Valid values for Audit Columns
Value Description
All Hybrid Data Pipeline includes all of the audit columns and the
MasterRecordId column in its table definitions.
AuditOnly Hybrid Data Pipeline adds only the audit columns in its table
definitions.
MasterOnly Hybrid Data Pipeline adds only the MasterRecordId column in its
table definitions.
None Hybrid Data Pipeline does not add the audit columns or the
MasterRecordId column in its table definitions.
The default value for Audit Columns is All.
In a typical Salesforce instance, not all users are granted access to the Audit or
MasterRecordId columns. If Audit Columns is set to a value other than None and if
Hybrid Data Pipeline cannot include the columns requested, the connection fails and an
exception is thrown.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 577Chapter 3: Using Hybrid Data Pipeline
Field Description
Custom Suffix
Data stores treat the creation of standard and custom objects differently. Objects you
create in your organization are called custom objects, and the objects already created for
you by the data store administrator are called standard objects.
When you create custom objects such as tables and columns, the data store appends a
custom suffix to the name, (__c), two underscores immediately followed by a lowercase
“c” character.
For example, Salesforce will create a table named emp__c if you create a new table using
the following statement:
CREATE TABLE emp (id int, name varchar(30))
When you expose external objects, Salesforce appends a _x extension (__x), two
underscores immediately followed by a lowercase “x” character. This extension is treated
in the same way as the __c extension for custom object.
You might expect to be able to query the table using the name you gave it, emp in the
example. Therefore, by default, the connectivity service strips off the suffix, allowing you
to make queries without adding the suffix "__c" or "__x". The Map Options field allows
you to specify a value for CustomSuffix to control whether the map includes the suffix
or not:
• If set to include, the map uses the “__c” or "__x" suffix; you must therefore use it in
your queries.
• If set to strip, the suffix in the map is removed in the map.Your queries should not
include the suffix when referring to custom fields.
The default value for CustomSuffix is include.
The first time you save and test a connection, a map for that data store is created. Once
a map is created, you cannot change the map options for that Data Source definition
unless you also create a new map. For example, if a map is created with Custom Suffix
set to include and then later, you change the Custom Suffixvalue to strip, you will
get an error saying the configuration options do not match. Simply change the value of
the Create Map option to force creation of a new map.
578 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
Keyword Conflict
The SQL standard and Hybrid Data Pipeline both define keywords and reserved words.
Suffix
These have special meaning in context, and may not be used as identifier names unless
typed in uppercase letters and enclosed in quotation marks.
For example, the Case object is a standard object present in most Salesforce organizations
but CASE is also an SQL keyword. Therefore, a table named Case cannot be used in a
SQL statement unless enclosed in quotes and entered in uppercase letters:
• Execution of the SQL query Select * from Case will return the following:
Error: [DataDirect][DDHybrid JDBC Driver][Salesforce]Unexpected
token: CASE in statement [select * from case]
• Execution of the SQL query Select * from "Case" will return the following:
Error: [DataDirect][DDHybrid JDBC Driver][Salesforce]Table not
found in statement [select * from "Case"]
• Execution of the SQL query, Select * from "CASE" will complete successfully.
To avoid using quotes and uppercase for table or column names that match keywords
and reserved words, you can instruct Hybrid Data Pipeline to add a suffix to such names.
For example, if Keyword Conflict Suffix is set to TAB, the Case table will be mapped
to a table named CASETAB.With such a suffix appended in the map, the following queries
both work:
• Select * From CASETAB
• Select * From casetab
Number Field
Mapping
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 579Chapter 3: Using Hybrid Data Pipeline
Field Description
In addition to the primitive data types, Hybrid Data Pipeline also defines custom field data
types. The Number Field Mapping parameter defines how Hybrid Data Pipeline maps
fields defined as NUMBER (custom field data type). The NUMBER data type can be used to
enter any number with or without a decimal place.
Hybrid Data Pipeline type casts NUMBER data type to the SQL data type DOUBLE and
stores the values as DOUBLE.
This type casting can cause problems when the precision of the NUMBER field is greater
than the precision of a SQL data type DOUBLE value.
By default, Hybrid Data Pipeline maps NUMBER values with a precision of 9 or less and
scale 0 to the SQL data type INTEGER type, and also maps all other NUMBER fields to the
SQL data type DOUBLE. Precision is the number of digits in a number. Scale is the number
of digits to the right of the decimal point in a number. For example: The number 123.45
has a precision of 5 and a scale of 2.
Valid values for Number Field Mapping are described in the following table.
Table 106: Valid values for Number Field Mapping
Value Description
alwaysDouble Hybrid Data Pipeline maps NUMBER fields to the SQL data type DOUBLE.
emulateInteger Hybrid Data Pipeline maps NUMBER fields with a precision of 9 or less
and a scale of 0 to the SQL data type INTEGER and maps all other
NUMBER fields to the SQL data type DOUBLE.
The default value for Number Field Mapping is emulateInteger.
580 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Advanced tab
Table 107: Advanced tab connection parameters for FinancialForce
Field Description
Web Service Call
The maximum number of Web service calls allowed to the cloud data store for a single
Limit
SQL statement or metadata query.
The default value is 0.
Web Service
The number of times to retry a timed-out Select request.Insert, Update, and Delete
Retry Count
requests are never retried. The Web Service Timeout parameter specifies the period
between retries. A value of 0 for the retry count prevents retries. A positive integer sets
the number of retries. The default value is 0.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 581Chapter 3: Using Hybrid Data Pipeline
Field Description
Web Service
The time, in seconds, to wait before retrying a timed-out Select request. Valid only if the
Timeout
value of Web Service Retry Count is greater than zero. A value of 0 for the timeout waits
indefinitely for the response to a Web service request. There is no timeout. A positive
integer is considered as a default timeout for any statement created by the connection.
The default value is 120.
Max Pooled
The maximum number of prepared statements to cache for this connection. If the value
Statements
of this property is set to 20, the connectivity service caches the last 20 prepared statements
that are created by the application.
The default value is 0.
Login Timeout
The amount of time, in seconds, to wait for a connection to be established before timing
out the connection request.
If set to 0, the connectivity service does not time out a connection request.
The default value is 0.
Enable Bulk Load
Specifies whether to use the bulk load protocol for insert, update, delete, and batch
operations. This increases the number of rows that the Hybrid Data Pipeline connectivity
service loads to send to the data store. Bulk load reduces the number of network trips.
The default value is ON.
Bulk Load
Sets a threshold (number of rows) that, if exceeded, triggers bulk loading for insert, update,
Threshold
delete, or batch operations. The default is 4000.
Initialization String
A semicolon delimited set of commands to be executed on the data store after Hybrid
Data Pipeline has established and performed all initialization for the connection. If the
execution of a SQL command fails, the connection attempt also fails and Hybrid Data
Pipeline returns an error indicating which SQL commands failed.
Syntax:
command[[; command]...]
Where:
command
is a SQL command. Multiple commands must be separated by semicolons. In addition, if
this property is specified in a connection URL, the entire value must be enclosed in
parentheses when multiple commands are specified. For example, assuming a schema
name of SFORCE:
InitializationString=(REFRESH SCHEMA SFORCE)
The default is an empty string.
582 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
Read Only
Sets the connection to read-only mode. Indicates that the cloud data store can be read
but not updated.
The default value is OFF.
Extended Options
Specifies a semi-colon delimited list of connection options and their values. Use this
configuration option to set the value of undocumented connection options that are provided
by Progress DataDirect technical support.You can include any valid connection option in
the Extended Options string, for example:
Database=Server1;UndocumentedOption1=value[;
UndocumentedOption2=value;]
If the Extended Options string contains option values that are also set in the setup dialog,
the values of the options specified in the Extended Options string take precedence.
Note:
If you are using a proxy server to connect to your sales cloud instance, then you have to
set these options:
proxyHost = hostname of the proxy server; proxyPort = portnumber of
the proxy server
If Authentication is enabled, then you have to include the following:
proxyuser=; proxypassword=
Metadata
Restricts the metadata exposed by Hybrid Data Pipeline to a single schema.The metadata
Exposed
exposed in the SQL Editor, the Configure Schema Editor, and third party applications will
Schemas
be limited to the specified schema. JDBC, OData, and ODBC metadata calls will also be
restricted. In addition, calls made with the Schema API will be limited to the specified
schema.
Warning: This functionality should not be regarded as a security measure. While
the Metadata Exposed Schemas option restricts the metadata exposed by Hybrid
Data Pipeline to a single schema, it does not prevent queries against other schemas
on the backend data store. As a matter of best practice, permissions should be
set on the backend data store to control the ability of users to query data.
Valid Values
Where:
is the name of a valid schema on the backend data store.
Default: No schema is specified. Therefore, all schemas are exposed.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 583Chapter 3: Using Hybrid Data Pipeline
See the steps for:
How to create a data source in the Web UI on page 240
See also
Salesforce data store reports on page 995
Salesforce-type data types on page 962
Supported SQL statements and extensions on page 996
Supported scalar functions on page 969
ServiceMax parameters
The following tables describe parameters available on the tabs of a ServiceMax® Data Source setup dialog:
• General tab
• OData tab
• Mapping tab
• Advanced tab
General tab
584 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Table 108: General tab connection parameters for ServiceMax
Field Description
Data Source
A unique name for the data source. Data source names can contain only alphanumeric
Name
characters, underscores, and dashes.
Description
A general description of the data source.
User Id,
The login credentials for your ServiceMax cloud data store account.
Password
Hybrid Data Pipeline uses this information to connect to the data store. The administrator
of the cloud data store must grant permission to a user with these credentials to access
the data store and the target data.
Note:
You can save the Data Source definition without specifying the login credentials. In that
case, when you test the Data source connection, you will be prompted to specify these
details. Applications using the connectivity service will have to supply the data store
credentials (if they are not saved in the Data Source) in addition to the Data Source name
and the credentials for the Hybrid Data Pipeline account.
By default, the characters in the Password field you type are not shown. If you want the
password to be displayed in clear text, click the eye icon. Click the icon again to
conceal the password.
ServiceMax Login
The data store URL.
URL
Valid Values:
login.salesforce.com | test.salesforce.com
If set to login.salesforce.com, the production environment is used.
If set to test.salesforce.com, the test environment is used.
Security Token
The security token is required to log in to Salesforce from an untrusted network.
Salesforce automatically generates this key. If you do not have the security token, log into
your account, go to Setup > My Personal Information > Reset My Security Token. A
new token will be sent by e-mail.
OData tab
The following table describes the controls on the OData tab. For information on using the Configure Schema
editor, see Configuring data sources for OData connectivity and working with data source groups on page 646.
For information on formulating OData requests, see "Formulating queries" under Querying with OData.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 585Chapter 3: Using Hybrid Data Pipeline
Table 109: OData tab connection parameters for ServiceMax
Field Description
OData Version
Enables you to choose from the supported OData versions. OData configuration made
with one OData version will not work if you switch to a different OData version. If you want
to maintain the data source with different OData versions, you must create different data
sources for each of them.
OData Name
Enables you to set the case for entity type, entity set, and property names in OData
Mapping Case
metadata.
Valid Values: Uppercase | Lowercase | Default
When set to Uppercase, the case changes to all uppercase.
When set to Lowercase, the case changes to all lowercase.
When set to Default, the case does not change.
586 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
OData Access URI
Specifies the base URI for the OData feed to access your data source, for example,
https://hybridpipe.operations.com/api/odata/.You
can copy the URI and paste it into your application''s OData configuration.
The URI contains the case-insensitive name of the data source to connect to, and the
query that you want to execute. This URI is the OData Service Root URI for the OData
feed. The Service Document for the data source is returned by issuing a GET request to
the data source''s service root.
The OData Service Document returns the names of the entities exposed by the Data
Source OData service. To get details such as the properties of the entities exposed, the
data types for those properties and the relationships between entities, the Service Metadata
Document can be fetched by adding /$metadata to the service root URI.
Schema Map
Enables OData support. If a schema map is not defined, the OData API cannot be used
to access the data store using this data source definition. Use the Configure Schema
editor to select the tables/columns to expose through OData.
See Configuring data sources for OData connectivity and working with data source groups
on page 646 for more information.
Page Size
Determines the number of entities returned on each page for paging controlled on the
server side. On the client side, requests can use the $top and $skip parameters to
control paging. In most cases, server side paging works well for large data sets. Client
side pagination works best with a smaller data sets where it is not as expensive to fetch
subsequent pages.
Valid Values: 0 | n
where n is an integer from 1 to 10000.
When set to 0, the server default of 2000 is used.
Default: 0
Refresh Result
Controls what happens when you fetch the first page of a cached result when using Client
Side Paging. Skip must be omitted or set to 0.You can use the cached copy of that first
page, or you can re-execute the query to get a new result, discarding the previously
cached result. Re-executing the query is useful when the data being fetched may change
between two requests for the first page. Using the cached result is useful if you are paging
back and forth through results that are not expected to change.
Valid Values:
When set to 0, the OData service caches the first page of results.
When set to 1, the OData service re-executes the query.
Default: 1
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 587Chapter 3: Using Hybrid Data Pipeline
Field Description
Inline Count Mode
Specifies how the connectivity service satisfies requests that include the $count parameter
when it is set to true (for OData version 4) or the $inlinecount parameter when it is
set to allpages (for OData version 2). These requests require the connectivity service
to include the total number of entities that are defined by the OData query request. The
count must be included in the first page in server-driven paging and must be included in
every page when using client-driven paging.
The optimal setting depends on the data store and the size of results. The OData service
can run a separate query using the count(*) aggregate to get the count, before running
the query used to generate the entities. In very large results, this approach can often lead
to the first page being returned faster. Alternatively, the OData service can fetch the entire
result before returning the first page. This approach works well for small results and for
data stores that cannot optimize the count(*) aggregate; however, it may have a longer
initial response time for the first page if the result is large.
Valid Values:
When set to 1, the connectivity service runs a separate count(*) aggregate query to
get the count of entities before executing the query to return results. In very large results,
this approach can often lead to the first page being returned faster.
When set to 2, the connectivity service fetches all entities before returning the first page.
For small results, this approach is always faster. However, the initial response time for
the first page may be longer if the result is large.
Default: 1
Top Mode
Indicates how requests typically use $top and $skip for client side pagination, allowing
the service to better anticipate how to process queries.
Valid Values:
Set to 0 when the application generally uses $top to limit the size of the result and rarely
attempts to get additional entities by combining $top and $skip.
Set to 1 when the application uses $top as part of client-driven paging and generally
combines $top and $skip to page through the result.
Default: 0
OData Read Only
Controls whether write operations can be performed on the OData service.Write operations
generate a 405 Method Not Allowed response if this option is enabled.
Valid Values:
ON | OFF
When ON is selected, OData access is restricted to read-only mode.
When OFF is selected, write operations can be performed on the OData service.
Default: OFF
588 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Mapping tab
Table 110: Mapping tab connection parameters for ServiceMax
Field Description
Map Name
Optional name of the map definition that the Hybrid Data Pipeline connectivity service
uses to interpret the schema of the data store. The Hybrid Data Pipeline service
automatically creates a name for the map.
If you want to name the map yourself, enter a unique name.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 589Chapter 3: Using Hybrid Data Pipeline
Field Description
Refresh Schema
The Refresh Schema option specifies whether the connectivity service attempts to refresh
the schema when an application first connects.
Valid Values:
When set to ON, the connectivity service attempts to refresh the schema.
When set to OFF, the connectivity service does not attempt to refresh the schema.
Default: OFF
Notes:
• You can choose to refresh the schema by clicking the Refresh icon. This refreshes
the schema immediately. Note that the refresh option is available only while editing
the data source.
• Use the option to specify whether the connectivity service attempts to refresh the
schema when an application first connects. Click the Refresh icon if you want to refresh
the schema immediately, using an already saved configuration.
• If you are making other edits to the settings, you need to click update to save your
configuration. Clicking the Refresh icon will only trigger a runtime call on the saved
configuration.
Create Mapping
Determines whether the Salesforce table mapping files are to be (re)created.
The Hybrid Data Pipeline connectivity service automatically maps data store objects and
fields to tables and columns the first time that it connects to the data store. The map
includes both standard and custom objects and includes any relationships defined between
objects.
Table 111: Valid values for Create Map field
Value Description
Not Exist Select this option for most normal operations. If a map for a data source
does not exist, this option causes one to be created. If a map exists, the
service uses that existing map. If a name is not specified in the Map
Name field, the name will be a combination of the User Name and Data
Source ID.
Force New Select this option to force creation of a new map. A map is created on
connection whether one exists or not. The connectivity service uses a
combination of the User Name and Data Source ID to name the map.
Map creation is expensive, so you will likely not want to leave this option
set to Force New indefinitely.
No If a map for a data source does not exist, the connectivity service does
not create one.
590 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
Map System
By default, when mapping Salesforce system fields to columns in a table, Hybrid Data
Column Names
Pipeline changes system column names to make it evident that the column is a system
column. System columns include those for name and id. If the system column names are
not changed and you create a new table with id and name columns, the map will need to
append a suffix to your columns to differentiate them from the system columns, even if
the map option is set to strip suffixes.
If you do not want to change the names of system columns, set this parameter to 0.
Valid values are described in the following table.
Table 112: Valid values for Map System Column Names
Value Description
0 Hybrid Data Pipeline does not change the names of the Salesforce
system columns.
1
Hybrid Data Pipeline changes the names of the Salesforce system
columns as described in the following table:
Field Name Mapped Name
Id ROWID
Name SYS_NAME
IsDeleted SYS_ISDELETED
CreatedDate SYS_CREATEDDATE
CreatedById
SYS_CREATEDBYID
LastModifiedDate
SYS_LASTMODIFIEDDATE
LastModifiedid
SYS_LASTMODIFIEDID
SystemModstamp SYS_SYSTEMMODSTAMP
LastActivityDate SYS_LASTACTIVITYDATE
The default value is 0.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 591Chapter 3: Using Hybrid Data Pipeline
Field Description
Uppercase
Defines how Hybrid Data Pipeline maps identifiers. By default, all unquoted identifier
Identifiers
names are mapped to uppercase. Identifiers are object names. Classes, methods,
variables, interfaces, and database objects, such as tables, views, columns, indexes,
triggers, procedures, constraints, and rules, can have identifiers.
Valid Values:
When set to ON, the connectivity service maps all identifier names to uppercase.
When set to OFF, Hybrid Data Pipeline maps identifiers to the mixed case name of the
object being mapped. If mixed case identifiers are used, those identifiers must be quoted
in SQL statements, and the case of the identifier, must exactly match the case of the
identifier name.
Note: When object names are passed as arguments to catalog functions, the case of
the value must match the case of the name in the database. If an unquoted identifier name
was used when the object was created, the value passed to the catalog function must be
uppercase because unquoted identifiers are converted to uppercase before being used.
If a quoted identifier name was used when the object was created, the value passed to
the catalog function must match the case of the name as it was defined. Object names
in results returned from catalog functions are returned in the case that they are stored in
the database.
For example, if Uppercase Identifiers is set to ON, to query the Account table you would
need to specify:
SELECT "id", "name" FROM "Account"
Default: ON
592 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
Audit Columns
The audit columns added by Hybrid Data Pipeline are:
• IsDeleted
• CreatedById
• CreatedDate
• LastModifiedById
• LastModifiedDate
• SYSTEMMODSTAMP
The following table describes the valid values for the Audit Columns parameter.
Table 113: Valid values for Audit Columns
Value Description
All Hybrid Data Pipeline includes all of the audit columns and the
MasterRecordId column in its table definitions.
AuditOnly Hybrid Data Pipeline adds only the audit columns in its table
definitions.
MasterOnly Hybrid Data Pipeline adds only the MasterRecordId column in its
table definitions.
None Hybrid Data Pipeline does not add the audit columns or the
MasterRecordId column in its table definitions.
The default value for Audit Columns is All.
In a typical Salesforce instance, not all users are granted access to the Audit or
MasterRecordId columns. If Audit Columns is set to a value other than None and if
Hybrid Data Pipeline cannot include the columns requested, the connection fails and an
exception is thrown.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 593Chapter 3: Using Hybrid Data Pipeline
Field Description
Custom Suffix
Data stores treat the creation of standard and custom objects differently. Objects you
create in your organization are called custom objects, and the objects already created for
you by the data store administrator are called standard objects.
When you create custom objects such as tables and columns, the data store appends a
custom suffix to the name, (__c), two underscores immediately followed by a lowercase
“c” character.
For example, Salesforce will create a table named emp__c if you create a new table using
the following statement:
CREATE TABLE emp (id int, name varchar(30))
When you expose external objects, Salesforce appends a _x extension (__x), two
underscores immediately followed by a lowercase “x” character. This extension is treated
in the same way as the __c extension for custom object.
You might expect to be able to query the table using the name you gave it, emp in the
example. Therefore, by default, the connectivity service strips off the suffix, allowing you
to make queries without adding the suffix "__c" or "__x". The Map Options field allows
you to specify a value for CustomSuffix to control whether the map includes the suffix
or not:
• If set to include, the map uses the “__c” or "__x" suffix; you must therefore use it in
your queries.
• If set to strip, the suffix in the map is removed in the map.Your queries should not
include the suffix when referring to custom fields.
The default value for CustomSuffix is include.
The first time you save and test a connection, a map for that data store is created. Once
a map is created, you cannot change the map options for that Data Source definition
unless you also create a new map. For example, if a map is created with Custom Suffix
set to include and then later, you change the Custom Suffixvalue to strip, you will
get an error saying the configuration options do not match. Simply change the value of
the Create Map option to force creation of a new map.
594 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
Keyword Conflict
The SQL standard and Hybrid Data Pipeline both define keywords and reserved words.
Suffix
These have special meaning in context, and may not be used as identifier names unless
typed in uppercase letters and enclosed in quotation marks.
For example, the Case object is a standard object present in most Salesforce organizations
but CASE is also an SQL keyword. Therefore, a table named Case cannot be used in a
SQL statement unless enclosed in quotes and entered in uppercase letters:
• Execution of the SQL query Select * from Case will return the following:
Error: [DataDirect][DDHybrid JDBC Driver][Salesforce]Unexpected
token: CASE in statement [select * from case]
• Execution of the SQL query Select * from "Case" will return the following:
Error: [DataDirect][DDHybrid JDBC Driver][Salesforce]Table not
found in statement [select * from "Case"]
• Execution of the SQL query, Select * from "CASE" will complete successfully.
To avoid using quotes and uppercase for table or column names that match keywords
and reserved words, you can instruct Hybrid Data Pipeline to add a suffix to such names.
For example, if Keyword Conflict Suffix is set to TAB, the Case table will be mapped
to a table named CASETAB.With such a suffix appended in the map, the following queries
both work:
• Select * From CASETAB
• Select * From casetab
Number Field
Mapping
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 595Chapter 3: Using Hybrid Data Pipeline
Field Description
In addition to the primitive data types, Hybrid Data Pipeline also defines custom field data
types. The Number Field Mapping parameter defines how Hybrid Data Pipeline maps
fields defined as NUMBER (custom field data type). The NUMBER data type can be used to
enter any number with or without a decimal place.
Hybrid Data Pipeline type casts NUMBER data type to the SQL data type DOUBLE and
stores the values as DOUBLE.
This type casting can cause problems when the precision of the NUMBER field is greater
than the precision of a SQL data type DOUBLE value.
By default, Hybrid Data Pipeline maps NUMBER values with a precision of 9 or less and
scale 0 to the SQL data type INTEGER type, and also maps all other NUMBER fields to the
SQL data type DOUBLE. Precision is the number of digits in a number. Scale is the number
of digits to the right of the decimal point in a number. For example: The number 123.45
has a precision of 5 and a scale of 2.
Valid values for Number Field Mapping are described in the following table.
Table 114: Valid values for Number Field Mapping
Value Description
alwaysDouble Hybrid Data Pipeline maps NUMBER fields to the SQL data type DOUBLE.
emulateInteger Hybrid Data Pipeline maps NUMBER fields with a precision of 9 or less
and a scale of 0 to the SQL data type INTEGER and maps all other
NUMBER fields to the SQL data type DOUBLE.
The default value for Number Field Mapping is emulateInteger.
596 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Advanced tab
Table 115: Advanced tab connection parameters for ServiceMax
Field Description
Web Service Call
The maximum number of Web service calls allowed to the cloud data store for a single
Limit
SQL statement or metadata query.
The default value is 0.
Web Service
The number of times to retry a timed-out Select request.Insert, Update, and Delete
Retry Count
requests are never retried. The Web Service Timeout parameter specifies the period
between retries. A value of 0 for the retry count prevents retries. A positive integer sets
the number of retries. The default value is 0.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 597Chapter 3: Using Hybrid Data Pipeline
Field Description
Web Service
The time, in seconds, to wait before retrying a timed-out Select request. Valid only if the
Timeout
value of Web Service Retry Count is greater than zero. A value of 0 for the timeout waits
indefinitely for the response to a Web service request. There is no timeout. A positive
integer is considered as a default timeout for any statement created by the connection.
The default value is 120.
Max Pooled
The maximum number of prepared statements to cache for this connection. If the value
Statements
of this property is set to 20, the connectivity service caches the last 20 prepared statements
that are created by the application.
The default value is 0.
Login Timeout
The amount of time, in seconds, to wait for a connection to be established before timing
out the connection request.
If set to 0, the connectivity service does not time out a connection request.
The default value is 0.
Enable Bulk Load
Specifies whether to use the bulk load protocol for insert, update, delete, and batch
operations. This increases the number of rows that the Hybrid Data Pipeline connectivity
service loads to send to the data store. Bulk load reduces the number of network trips.
The default value is ON.
Bulk Load
Sets a threshold (number of rows) that, if exceeded, triggers bulk loading for insert, update,
Threshold
delete, or batch operations. The default is 4000.
Initialization String
A semicolon delimited set of commands to be executed on the data store after Hybrid
Data Pipeline has established and performed all initialization for the connection. If the
execution of a SQL command fails, the connection attempt also fails and Hybrid Data
Pipeline returns an error indicating which SQL commands failed.
Syntax:
command[[; command]...]
Where:
command
is a SQL command. Multiple commands must be separated by semicolons. In addition, if
this property is specified in a connection URL, the entire value must be enclosed in
parentheses when multiple commands are specified. For example, assuming a schema
name of SFORCE:
InitializationString=(REFRESH SCHEMA SFORCE)
The default is an empty string.
598 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
Read Only
Sets the connection to read-only mode. Indicates that the cloud data store can be read
but not updated.
The default value is OFF.
Extended Options
Specifies a semi-colon delimited list of connection options and their values. Use this
configuration option to set the value of undocumented connection options that are provided
by Progress DataDirect technical support.You can include any valid connection option in
the Extended Options string, for example:
Database=Server1;UndocumentedOption1=value[;
UndocumentedOption2=value;]
If the Extended Options string contains option values that are also set in the setup dialog,
the values of the options specified in the Extended Options string take precedence.
Note:
If you are using a proxy server to connect to your sales cloud instance, then you have to
set these options:
proxyHost = hostname of the proxy server; proxyPort = portnumber of
the proxy server
If Authentication is enabled, then you have to include the following:
proxyuser=; proxypassword=
Metadata
Restricts the metadata exposed by Hybrid Data Pipeline to a single schema.The metadata
Exposed
exposed in the SQL Editor, the Configure Schema Editor, and third party applications will
Schemas
be limited to the specified schema. JDBC, OData, and ODBC metadata calls will also be
restricted. In addition, calls made with the Schema API will be limited to the specified
schema.
Warning: This functionality should not be regarded as a security measure. While
the Metadata Exposed Schemas option restricts the metadata exposed by Hybrid
Data Pipeline to a single schema, it does not prevent queries against other schemas
on the backend data store. As a matter of best practice, permissions should be
set on the backend data store to control the ability of users to query data.
Valid Values
Where:
is the name of a valid schema on the backend data store.
Default: No schema is specified. Therefore, all schemas are exposed.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 599Chapter 3: Using Hybrid Data Pipeline
See the steps for:
How to create a data source in the Web UI on page 240
See also
Salesforce data store reports on page 995
Salesforce-type data types on page 962
Supported SQL statements and extensions on page 996
Supported scalar functions on page 969
Veeva CRM parameters
The following tables describe parameters available on the tabs of a Veeva® CRM Data Source setup dialog:
• General tab
• OData tab
• Mapping tab
• Advanced tab
General tab
600 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Table 116: General tab connection parameters for Veeva CRM
Field Description
Data Source
A unique name for the data source. Data source names can contain only alphanumeric
Name
characters, underscores, and dashes.
Description
A general description of the data source.
User Id,
The login credentials for your Veeva CRM data store account.
Password
Hybrid Data Pipeline uses this information to connect to the data store. The administrator
of the cloud data store must grant permission to a user with these credentials to access
the data store and the target data.
You can save the Data Source definition without specifying the login credentials. In that
case, when you test the Data source connection, you will be prompted to specify these
details. Applications using the connectivity service will have to supply the data store
credentials (if they are not saved in the Data Source) in addition to the Data Source name
and the credentials for the Hybrid Data Pipeline account.
By default, the characters in the Password field you type are not shown. If you want the
password to be displayed in clear text, click the eye icon. Click the icon again to
conceal the password.
Veeva CRM
The data store URL.
Login URL
Valid Values:
login.salesforce.com | test.salesforce.com
If set to login.salesforce.com, the production environment is used.
If set to test.salesforce.com, the test environment is used.
Security Token
The security token is required to log in to Salesforce from an untrusted network.
Salesforce automatically generates this key. If you do not have the security token, log into
your account, go to Setup > My Personal Information > Reset My Security Token. A
new token will be sent by e-mail.
OData tab
The following table describes the controls on the OData tab. For information on using the Configure Schema
editor, see Configuring data sources for OData connectivity and working with data source groups on page 646.
For information on formulating OData requests, see Formulating queries with OData Version 2 on page 868.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 601Chapter 3: Using Hybrid Data Pipeline
Table 117: OData tab connection parameters for Veeva CRM
Field Description
OData Version
Enables you to choose from the supported OData versions. OData configuration made
with one OData version will not work if you switch to a different OData version. If you want
to maintain the data source with different OData versions, you must create different data
sources for each of them.
OData Name
Enables you to set the case for entity type, entity set, and property names in OData
Mapping Case
metadata.
Valid Values: Uppercase | Lowercase | Default
When set to Uppercase, the case changes to all uppercase.
When set to Lowercase, the case changes to all lowercase.
When set to Default, the case does not change.
602 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
OData Access URI
Specifies the base URI for the OData feed to access your data source, for example,
https://hybridpipe.operations.com/api/odata/.You
can copy the URI and paste it into your application''s OData configuration.
The URI contains the case-insensitive name of the data source to connect to, and the
query that you want to execute. This URI is the OData Service Root URI for the OData
feed. The Service Document for the data source is returned by issuing a GET request to
the data source''s service root.
The OData Service Document returns the names of the entities exposed by the Data
Source OData service. To get details such as the properties of the entities exposed, the
data types for those properties and the relationships between entities, the Service Metadata
Document can be fetched by adding /$metadata to the service root URI.
Schema Map
Enables OData support. If a schema map is not defined, the OData API cannot be used
to access the data store using this data source definition. Use the Configure Schema
editor to select the tables/columns to expose through OData.
See Configuring data sources for OData connectivity and working with data source groups
on page 646 for more information.
Page Size
Determines the number of entities returned on each page for paging controlled on the
server side. On the client side, requests can use the $top and $skip parameters to
control paging. In most cases, server side paging works well for large data sets. Client
side pagination works best with a smaller data sets where it is not as expensive to fetch
subsequent pages.
Valid Values: 0 | n
where n is an integer from 1 to 10000.
When set to 0, the server default of 2000 is used.
Default: 0
Refresh Result
Controls what happens when you fetch the first page of a cached result when using Client
Side Paging. Skip must be omitted or set to 0.You can use the cached copy of that first
page, or you can re-execute the query to get a new result, discarding the previously
cached result. Re-executing the query is useful when the data being fetched may change
between two requests for the first page. Using the cached result is useful if you are paging
back and forth through results that are not expected to change.
Valid Values:
When set to 0, the OData service caches the first page of results.
When set to 1, the OData service re-executes the query.
Default: 1
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 603Chapter 3: Using Hybrid Data Pipeline
Field Description
Inline Count Mode
Specifies how the connectivity service satisfies requests that include the $count parameter
when it is set to true (for OData version 4) or the $inlinecount parameter when it is
set to allpages (for OData version 2). These requests require the connectivity service
to include the total number of entities that are defined by the OData query request. The
count must be included in the first page in server-driven paging and must be included in
every page when using client-driven paging.
The optimal setting depends on the data store and the size of results. The OData service
can run a separate query using the count(*) aggregate to get the count, before running
the query used to generate the entities. In very large results, this approach can often lead
to the first page being returned faster. Alternatively, the OData service can fetch the entire
result before returning the first page. This approach works well for small results and for
data stores that cannot optimize the count(*) aggregate; however, it may have a longer
initial response time for the first page if the result is large.
Valid Values:
When set to 1, the connectivity service runs a separate count(*) aggregate query to
get the count of entities before executing the query to return results. In very large results,
this approach can often lead to the first page being returned faster.
When set to 2, the connectivity service fetches all entities before returning the first page.
For small results, this approach is always faster. However, the initial response time for
the first page may be longer if the result is large.
Default: 1
Top Mode
Indicates how requests typically use $top and $skip for client side pagination, allowing
the service to better anticipate how to process queries.
Valid Values:
Set to 0 when the application generally uses $top to limit the size of the result and rarely
attempts to get additional entities by combining $top and $skip.
Set to 1 when the application uses $top as part of client-driven paging and generally
combines $top and $skip to page through the result.
Default: 0
OData Read Only
Controls whether write operations can be performed on the OData service.Write operations
generate a 405 Method Not Allowed response if this option is enabled.
Valid Values:
ON | OFF
When ON is selected, OData access is restricted to read-only mode.
When OFF is selected, write operations can be performed on the OData service.
Default: OFF
604 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Mapping tab
Table 118: Mapping tab connection parameters for Veeva CRM
Field Description
Map Name
Optional name of the map definition that the Hybrid Data Pipeline connectivity service
uses to interpret the schema of the data store. The Hybrid Data Pipeline service
automatically creates a name for the map.
If you want to name the map yourself, enter a unique name.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 605Chapter 3: Using Hybrid Data Pipeline
Field Description
Refresh Schema
The Refresh Schema option specifies whether the connectivity service attempts to refresh
the schema when an application first connects.
Valid Values:
When set to ON, the connectivity service attempts to refresh the schema.
When set to OFF, the connectivity service does not attempt to refresh the schema.
Default: OFF
Notes:
• You can choose to refresh the schema by clicking the Refresh icon. This refreshes
the schema immediately. Note that the refresh option is available only while editing
the data source.
• Use the option to specify whether the connectivity service attempts to refresh the
schema when an application first connects. Click the Refresh icon if you want to refresh
the schema immediately, using an already saved configuration.
• If you are making other edits to the settings, you need to click update to save your
configuration. Clicking the Refresh icon will only trigger a runtime call on the saved
configuration.
Create Mapping
Determines whether the Salesforce table mapping files are to be (re)created.
The Hybrid Data Pipeline connectivity service automatically maps data store objects and
fields to tables and columns the first time that it connects to the data store. The map
includes both standard and custom objects and includes any relationships defined between
objects.
Table 119: Valid values for Create Map field
Value Description
Not Exist Select this option for most normal operations. If a map for a data source
does not exist, this option causes one to be created. If a map exists, the
service uses that existing map. If a name is not specified in the Map
Name field, the name will be a combination of the User Name and Data
Source ID.
Force New Select this option to force creation of a new map. A map is created on
connection whether one exists or not. The connectivity service uses a
combination of the User Name and Data Source ID to name the map.
Map creation is expensive, so you will likely not want to leave this option
set to Force New indefinitely.
No If a map for a data source does not exist, the connectivity service does
not create one.
606 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
Map System
By default, when mapping Salesforce system fields to columns in a table, Hybrid Data
Column Names
Pipeline changes system column names to make it evident that the column is a system
column. System columns include those for name and id. If the system column names are
not changed and you create a new table with id and name columns, the map will need to
append a suffix to your columns to differentiate them from the system columns, even if
the map option is set to strip suffixes.
If you do not want to change the names of system columns, set this parameter to 0.
Valid values are described in the following table.
Table 120: Valid values for Map System Column Names
Value Description
0 Hybrid Data Pipeline does not change the names of the Salesforce
system columns.
1
Hybrid Data Pipeline changes the names of the Salesforce system
columns as described in the following table:
Field Name Mapped Name
Id ROWID
Name SYS_NAME
IsDeleted SYS_ISDELETED
CreatedDate SYS_CREATEDDATE
CreatedById
SYS_CREATEDBYID
LastModifiedDate
SYS_LASTMODIFIEDDATE
LastModifiedid
SYS_LASTMODIFIEDID
SystemModstamp SYS_SYSTEMMODSTAMP
LastActivityDate SYS_LASTACTIVITYDATE
The default value is 0.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 607Chapter 3: Using Hybrid Data Pipeline
Field Description
Uppercase
Defines how Hybrid Data Pipeline maps identifiers. By default, all unquoted identifier
Identifiers
names are mapped to uppercase. Identifiers are object names. Classes, methods,
variables, interfaces, and database objects, such as tables, views, columns, indexes,
triggers, procedures, constraints, and rules, can have identifiers.
Valid Values:
When set to ON, the connectivity service maps all identifier names to uppercase.
When set to OFF, Hybrid Data Pipeline maps identifiers to the mixed case name of the
object being mapped. If mixed case identifiers are used, those identifiers must be quoted
in SQL statements, and the case of the identifier, must exactly match the case of the
identifier name.
Note: When object names are passed as arguments to catalog functions, the case of
the value must match the case of the name in the database. If an unquoted identifier name
was used when the object was created, the value passed to the catalog function must be
uppercase because unquoted identifiers are converted to uppercase before being used.
If a quoted identifier name was used when the object was created, the value passed to
the catalog function must match the case of the name as it was defined. Object names
in results returned from catalog functions are returned in the case that they are stored in
the database.
For example, if Uppercase Identifiers is set to ON, to query the Account table you would
need to specify:
SELECT "id", "name" FROM "Account"
Default: ON
608 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
Audit Columns
The audit columns added by Hybrid Data Pipeline are:
• IsDeleted
• CreatedById
• CreatedDate
• LastModifiedById
• LastModifiedDate
• SYSTEMMODSTAMP
The following table describes the valid values for the Audit Columns parameter.
Table 121: Valid values for Audit Columns
Value Description
All Hybrid Data Pipeline includes all of the audit columns and the
MasterRecordId column in its table definitions.
AuditOnly Hybrid Data Pipeline adds only the audit columns in its table
definitions.
MasterOnly Hybrid Data Pipeline adds only the MasterRecordId column in its
table definitions.
None Hybrid Data Pipeline does not add the audit columns or the
MasterRecordId column in its table definitions.
The default value for Audit Columns is All.
In a typical Salesforce instance, not all users are granted access to the Audit or
MasterRecordId columns. If Audit Columns is set to a value other than None and if
Hybrid Data Pipeline cannot include the columns requested, the connection fails and an
exception is thrown.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 609Chapter 3: Using Hybrid Data Pipeline
Field Description
Custom Suffix
Data stores treat the creation of standard and custom objects differently. Objects you
create in your organization are called custom objects, and the objects already created for
you by the data store administrator are called standard objects.
When you create custom objects such as tables and columns, the data store appends a
custom suffix to the name, (__c), two underscores immediately followed by a lowercase
“c” character.
For example, Salesforce will create a table named emp__c if you create a new table using
the following statement:
CREATE TABLE emp (id int, name varchar(30))
When you expose external objects, Salesforce appends a _x extension (__x), two
underscores immediately followed by a lowercase “x” character. This extension is treated
in the same way as the __c extension for custom object.
You might expect to be able to query the table using the name you gave it, emp in the
example. Therefore, by default, the connectivity service strips off the suffix, allowing you
to make queries without adding the suffix "__c" or "__x". The Map Options field allows
you to specify a value for CustomSuffix to control whether the map includes the suffix
or not:
• If set to include, the map uses the “__c” or "__x" suffix; you must therefore use it in
your queries.
• If set to strip, the suffix in the map is removed in the map.Your queries should not
include the suffix when referring to custom fields.
The default value for CustomSuffix is include.
The first time you save and test a connection, a map for that data store is created. Once
a map is created, you cannot change the map options for that Data Source definition
unless you also create a new map. For example, if a map is created with Custom Suffix
set to include and then later, you change the Custom Suffixvalue to strip, you will
get an error saying the configuration options do not match. Simply change the value of
the Create Map option to force creation of a new map.
610 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
Keyword Conflict
The SQL standard and Hybrid Data Pipeline both define keywords and reserved words.
Suffix
These have special meaning in context, and may not be used as identifier names unless
typed in uppercase letters and enclosed in quotation marks.
For example, the Case object is a standard object present in most Salesforce organizations
but CASE is also an SQL keyword. Therefore, a table named Case cannot be used in a
SQL statement unless enclosed in quotes and entered in uppercase letters:
• Execution of the SQL query Select * from Case will return the following:
Error: [DataDirect][DDHybrid JDBC Driver][Salesforce]Unexpected
token: CASE in statement [select * from case]
• Execution of the SQL query Select * from "Case" will return the following:
Error: [DataDirect][DDHybrid JDBC Driver][Salesforce]Table not
found in statement [select * from "Case"]
• Execution of the SQL query, Select * from "CASE" will complete successfully.
To avoid using quotes and uppercase for table or column names that match keywords
and reserved words, you can instruct Hybrid Data Pipeline to add a suffix to such names.
For example, if Keyword Conflict Suffix is set to TAB, the Case table will be mapped
to a table named CASETAB.With such a suffix appended in the map, the following queries
both work:
• Select * From CASETAB
• Select * From casetab
Number Field
Mapping
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 611Chapter 3: Using Hybrid Data Pipeline
Field Description
In addition to the primitive data types, Hybrid Data Pipeline also defines custom field data
types. The Number Field Mapping parameter defines how Hybrid Data Pipeline maps
fields defined as NUMBER (custom field data type). The NUMBER data type can be used to
enter any number with or without a decimal place.
Hybrid Data Pipeline type casts NUMBER data type to the SQL data type DOUBLE and
stores the values as DOUBLE.
This type casting can cause problems when the precision of the NUMBER field is greater
than the precision of a SQL data type DOUBLE value.
By default, Hybrid Data Pipeline maps NUMBER values with a precision of 9 or less and
scale 0 to the SQL data type INTEGER type, and also maps all other NUMBER fields to the
SQL data type DOUBLE. Precision is the number of digits in a number. Scale is the number
of digits to the right of the decimal point in a number. For example: The number 123.45
has a precision of 5 and a scale of 2.
Valid values for Number Field Mapping are described in the following table.
Table 122: Valid values for Number Field Mapping
Value Description
alwaysDouble Hybrid Data Pipeline maps NUMBER fields to the SQL data type DOUBLE.
emulateInteger Hybrid Data Pipeline maps NUMBER fields with a precision of 9 or less
and a scale of 0 to the SQL data type INTEGER and maps all other
NUMBER fields to the SQL data type DOUBLE.
The default value for Number Field Mapping is emulateInteger.
612 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Advanced tab
Table 123: Advanced tab connection parameters for Veeva CRM
Field Description
Web Service Call
The maximum number of Web service calls allowed to the cloud data store for a single
Limit
SQL statement or metadata query.
The default value is 0.
Web Service
The number of times to retry a timed-out Select request.Insert, Update, and Delete
Retry Count
requests are never retried. The Web Service Timeout parameter specifies the period
between retries. A value of 0 for the retry count prevents retries. A positive integer sets
the number of retries. The default value is 0.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 613Chapter 3: Using Hybrid Data Pipeline
Field Description
Web Service
The time, in seconds, to wait before retrying a timed-out Select request. Valid only if the
Timeout
value of Web Service Retry Count is greater than zero. A value of 0 for the timeout waits
indefinitely for the response to a Web service request. There is no timeout. A positive
integer is considered as a default timeout for any statement created by the connection.
The default value is 120.
Max Pooled
The maximum number of prepared statements to cache for this connection. If the value
Statements
of this property is set to 20, the connectivity service caches the last 20 prepared statements
that are created by the application.
The default value is 0.
Login Timeout
The amount of time, in seconds, to wait for a connection to be established before timing
out the connection request.
If set to 0, the connectivity service does not time out a connection request.
The default value is 0.
Enable Bulk Load
Specifies whether to use the bulk load protocol for insert, update, delete, and batch
operations. This increases the number of rows that the Hybrid Data Pipeline connectivity
service loads to send to the data store. Bulk load reduces the number of network trips.
The default value is ON.
Bulk Load
Sets a threshold (number of rows) that, if exceeded, triggers bulk loading for insert, update,
Threshold
delete, or batch operations. The default is 4000.
Initialization String
A semicolon delimited set of commands to be executed on the data store after Hybrid
Data Pipeline has established and performed all initialization for the connection. If the
execution of a SQL command fails, the connection attempt also fails and Hybrid Data
Pipeline returns an error indicating which SQL commands failed.
Syntax:
command[[; command]...]
Where:
command
is a SQL command. Multiple commands must be separated by semicolons. In addition, if
this property is specified in a connection URL, the entire value must be enclosed in
parentheses when multiple commands are specified. For example, assuming a schema
name of SFORCE:
InitializationString=(REFRESH SCHEMA SFORCE)
The default is an empty string.
614 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
Read Only
Sets the connection to read-only mode. Indicates that the cloud data store can be read
but not updated.
The default value is OFF.
Extended Options
Specifies a semi-colon delimited list of connection options and their values. Use this
configuration option to set the value of undocumented connection options that are provided
by Progress DataDirect technical support.You can include any valid connection option in
the Extended Options string, for example:
Database=Server1;UndocumentedOption1=value[;
UndocumentedOption2=value;]
If the Extended Options string contains option values that are also set in the setup dialog,
the values of the options specified in the Extended Options string take precedence.
Note:
If you are using a proxy server to connect to your sales cloud instance, then you have to
set these options:
proxyHost = hostname of the proxy server; proxyPort = portnumber of
the proxy server
If Authentication is enabled, then you have to include the following:
proxyuser=; proxypassword=
Metadata
Restricts the metadata exposed by Hybrid Data Pipeline to a single schema.The metadata
Exposed
exposed in the SQL Editor, the Configure Schema Editor, and third party applications will
Schemas
be limited to the specified schema. JDBC, OData, and ODBC metadata calls will also be
restricted. In addition, calls made with the Schema API will be limited to the specified
schema.
Warning: This functionality should not be regarded as a security measure. While
the Metadata Exposed Schemas option restricts the metadata exposed by Hybrid
Data Pipeline to a single schema, it does not prevent queries against other schemas
on the backend data store. As a matter of best practice, permissions should be
set on the backend data store to control the ability of users to query data.
Valid Values
Where:
is the name of a valid schema on the backend data store.
Default: No schema is specified. Therefore, all schemas are exposed.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 615Chapter 3: Using Hybrid Data Pipeline
See the steps for:
How to create a data source in the Web UI on page 240
See also
Salesforce data store reports on page 995
Salesforce-type data types on page 962
Supported SQL statements and extensions on page 996
Supported scalar functions on page 969
SugarCRM parameters
You define the information that Hybrid Data Pipeline needs to connect to the data store in a data source.These
default connection values are used each time you or your application connects to a particular data store. In
addition to user credentials, the data store may provide other options you can use to tune performance.
The following tables describes parameter available on the SugarCRM Data Source setup dialog.
• General tab
• Security tab
• Mapping tab
• OData tab
• Advanced tab
616 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
General tab
Table 124: General tab connection parameters for SugarCRM
Field Description
Data Source
A unique name for the data source. Data source names can contain only alphanumeric
Name
characters, underscores, and dashes.
Description
A general description of the data source.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 617Chapter 3: Using Hybrid Data Pipeline
Field Description
User Id, Password
The login credentials for your SugarCRM cloud data store account.
Hybrid Data Pipeline uses this information to connect to the data store. The administrator
of the cloud data store must grant permission to a user with these credentials to access
the data store and the target data.
Note: By default, the password is encrypted.
Note: You can save the Data Source definition without specifying the login credentials.
In that case, when you test the Data source connection, you will be prompted to specify
these details. Applications using the connectivity service will have to supply the data store
credentials (if they are not saved in the Data Source) in addition to the Data Source
name and the credentials for the Hybrid Data Pipeline account.
By default, the characters in the Password field you type are not shown. If you want the
password to be displayed in clear text, click the eye icon. Click the icon again to
conceal the password.
Host Name
Specifies the path to the SugarCRM instance. Examples include:
• http://localhost/
• https://crm.mycompany.com/production/sugarcrm
Default: None
OAuth Client ID
Specifies a unique OAuth client Id value for the connection. Each connection must have
a unique client Id value. If a second connection is made using the same OAuth client Id,
even with another user name, the SugarCRM service may opt to invalidate the access
token of the first connection.
OAuth Client
Specifies the OAuth client shared-secret phrase. The client shared-secret provides
Secret
credentials between the OAuth server, SugarCRM, and the OAuth client, the Hybrid Data
Pipeline connectivity service. SugarCRM supports an empty client secret, although this
practice is not recommended.
618 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
OAuth Refresh
Specifies the OAuth refresh token value.
Token
When used with the clientId and clientSecret, the refresh token provides an alternative
method for using OAuth to connect to SugarCRM. In this case, the login behaves just like
a relogin, to fetch the access token using the refresh token. If the refresh token is passed,
the username and password are ignored, as they are derived from the login the refresh
token is associated with.
Connector ID
The unique identifier of the On-Premise Connector that is to be used to access the
on-premise data source. Select the Connector that you want to use from the dropdown.
The identifier can be a descriptive name, the name of the machine where the Connector
is installed, or the Connector ID for the Connector.
If you have not installed an On-Premise Connector, and no Connectors have been shared
with you, this field and drop-down list are empty.
If you own multiple Connectors that have the same name, for example, Production, an
identifier is appended to each Connector, for example, Production_dup0 and
Production_dup1. If the Connectors in the dropdown were shared with you, the owner''s
name is appended, for example, Production(owner1) and Production(owner2).
Security tab
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 619Chapter 3: Using Hybrid Data Pipeline
Table 125: Security tab connection parameters for SugarCRM
Field Description
Authentication
Determines which authentication method the Hybrid Data Pipeline connectivity service
Method
uses when it establishes a connection.
Valid Values:
Auto | OAuth | UserIDPassword
If set to Auto, the connectivity service first attempts to use the UserIDPassword method,
if sufficient credentials are supplied. If a user ID and password are not specified or are
not accepted, the Hybrid Data Pipeline connectivity service tries again using the
refreshToken, if supplied. If neither method is successful, the connectivity service throws
an exception.
If set to OAuth, the Hybrid Data Pipeline connectivity service uses only the refresh token
method.
If set to UserIDPassword, the Hybrid Data Pipeline connectivity service uses
user ID/password authentication.The connectivity service sends the user ID and password
in clear text to the SugarCRM server for authentication. If a user ID and password are not
specified, the connectivity service throws an exception.
Note:
• The User Id parameter provides the user ID. The Password parameter provides the
password. The Encryption Method parameter determines whether the Hybrid Data
Pipeline connectivity service uses data encryption.
Default: Auto
Encryption Method
Determines whether data is encrypted and decrypted when transmitted over the network
between the Hybrid Data Pipeline connectivity service and the on-premise database
server. Note that when using the SugarCRM-hosted version of SugarCRM, as opposed
to a locally-installed copy, this will always be SSL, since sugarcrm.com instances always
use SSL encryption.
Valid Values:
noEncryption | SSL
If set to noEncryption, data is not encrypted or decrypted.
If set to SSL, data is encrypted using SSL. If the database server does not support SSL,
the connection fails and the Hybrid Data Pipeline connectivity service throws an exception.
Default: SSL
620 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Mapping tab
Table 126: Mapping tab connection parameters for SugarCRM
Field Description
Map Name
Optional name of the map definition that the Hybrid Data Pipeline connectivity service
uses to interpret the schema of the data store. The Hybrid Data Pipeline service
automatically creates a name for the map.
If you want to name the map yourself, enter a unique name.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 621Chapter 3: Using Hybrid Data Pipeline
Field Description
Refresh Schema
The Refresh Schema option specifies whether the connectivity service attempts to refresh
the schema when an application first connects.
Valid Values:
When set to ON, the connectivity service attempts to refresh the schema.
When set to OFF, the connectivity service does not attempt to refresh the schema.
Default: OFF
Notes:
• You can choose to refresh the schema by clicking the Refresh icon. This refreshes
the schema immediately. Note that the refresh option is available only while editing
the data source.
• Use the option to specify whether the connectivity service attempts to refresh the
schema when an application first connects. Click the Refresh icon if you want to refresh
the schema immediately, using an already saved configuration.
• If you are making other edits to the settings, you need to click update to save your
configuration. Clicking the Refresh icon will only trigger a runtime call on the saved
configuration.
Create Mapping
Determines whether the SugarCRM table mapping files are to be (re)created.
The Hybrid Data Pipeline connectivity service automatically maps data store objects and
fields to tables and columns the first time that it connects to the data store. The map
includes both standard and custom objects and includes any relationships defined between
objects.
Table 127: Valid values for Create Map field
Value Description
Not Exist Select this option for most normal operations. If a map for a data source
does not exist, this option causes one to be created. If a map exists, the
service uses that existing map. If a name is not specified in the Map
Name field, the name will be a combination of the User Name and Data
Source ID.
Force New Select this option to force creation of a new map. A map is created on
connection whether one exists or not. The connectivity service uses a
combination of the User Name and Data Source ID to name the map.
Map creation is expensive, so you will likely not want to leave this option
set to Force New indefinitely.
No If a map for a data source does not exist, the connectivity service does
not create one.
622 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
OData tab
The following table describes the controls on the OData tab. For information on using the Configure Schema
editor, see Configuring data sources for OData connectivity and working with data source groups on page 646
and Configuring data sources for OData connectivity and working with data source groups on page 646. For
information on formulating OData requests, see Formulating queries with OData Version 2 on page 868
Table 128: OData tab connection parameters for SugarCRM
Field Description
OData Version
Enables you to choose from the supported OData versions. OData configuration made
with one OData version will not work if you switch to a different OData version. If you want
to maintain the data source with different OData versions, you must create different data
sources for each of them.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 623Chapter 3: Using Hybrid Data Pipeline
Field Description
OData Name
Enables you to set the case for entity type, entity set, and property names in OData
Mapping Case
metadata.
Valid Values: Uppercase | Lowercase | Default
When set to Uppercase, the case changes to all uppercase.
When set to Lowercase, the case changes to all lowercase.
When set to Default, the case does not change.
OData Access URI
Specifies the base URI for the OData feed to access your data source, for example,
https://hybridpipe.operations.com/api/odata/.You
can copy the URI and paste it into your application''s OData configuration.
The URI contains the case-insensitive name of the data source to connect to, and the
query that you want to execute. This URI is the OData Service Root URI for the OData
feed. The Service Document for the data source is returned by issuing a GET request to
the data source''s service root.
The OData Service Document returns the names of the entities exposed by the Data
Source OData service. To get details such as the properties of the entities exposed, the
data types for those properties and the relationships between entities, the Service Metadata
Document can be fetched by adding /$metadata to the service root URI.
Schema Map
Enables OData support. If a schema map is not defined, the OData API cannot be used
to access the data store using this data source definition. Use the Configure Schema
editor to select the tables/columns to expose through OData.
See Configuring data sources for OData connectivity and working with data source groups
on page 646 for more information.
Page Size
Determines the number of entities returned on each page for paging controlled on the
server side. On the client side, requests can use the $top and $skip parameters to
control paging. In most cases, server side paging works well for large data sets. Client
side pagination works best with a smaller data sets where it is not as expensive to fetch
subsequent pages.
Valid Values: 0 | n
where n is an integer from 1 to 10000.
When set to 0, the server default of 2000 is used.
Default: 0
624 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Field Description
Refresh Result
Controls what happens when you fetch the first page of a cached result when using Client
Side Paging. Skip must be omitted or set to 0.You can use the cached copy of that first
page, or you can re-execute the query to get a new result, discarding the previously
cached result. Re-executing the query is useful when the data being fetched may change
between two requests for the first page. Using the cached result is useful if you are paging
back and forth through results that are not expected to change.
Valid Values:
When set to 0, the OData service caches the first page of results.
When set to 1, the OData service re-executes the query.
Default: 1
Inline Count Mode
Specifies how the connectivity service satisfies requests that include the $count parameter
when it is set to true (for OData version 4) or the $inlinecount parameter when it is
set to allpages (for OData version 2). These requests require the connectivity service
to include the total number of entities that are defined by the OData query request. The
count must be included in the first page in server-driven paging and must be included in
every page when using client-driven paging.
The optimal setting depends on the data store and the size of results. The OData service
can run a separate query using the count(*) aggregate to get the count, before running
the query used to generate the entities. In very large results, this approach can often lead
to the first page being returned faster. Alternatively, the OData service can fetch the entire
result before returning the first page. This approach works well for small results and for
data stores that cannot optimize the count(*) aggregate; however, it may have a longer
initial response time for the first page if the result is large.
Valid Values:
When set to 1, the connectivity service runs a separate count(*) aggregate query to
get the count of entities before executing the query to return results. In very large results,
this approach can often lead to the first page being returned faster.
When set to 2, the connectivity service fetches all entities before returning the first page.
For small results, this approach is always faster. However, the initial response time for
the first page may be longer if the result is large.
Default: 1
Top Mode
Indicates how requests typically use $top and $skip for client side pagination, allowing
the service to better anticipate how to process queries.
Valid Values:
Set to 0 when the application generally uses $top to limit the size of the result and rarely
attempts to get additional entities by combining $top and $skip.
Set to 1 when the application uses $top as part of client-driven paging and generally
combines $top and $skip to page through the result.
Default: 0
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 625Chapter 3: Using Hybrid Data Pipeline
Advanced tab
626 Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1Creating data sources with the Web UI
Table 129: Advanced tab connection parameters for SugarCRM
Field Description
Max Pooled
The maximum number of prepared statements to cache for this connection. If the value of
Statements
this property is set to 20, the connectivity service caches the last 20 prepared statements
that are created by the application.
The default value is 0.
Initialization
A semicolon delimited set of commands to be executed on the data store after Hybrid Data
String
Pipeline has established and performed all initialization for the connection. If the execution
of a SQL command fails, the connection attempt also fails and Hybrid Data Pipeline returns
an error indicating which SQL commands failed.
Syntax:
command[[; command]...]
Where:
command
is a SQL command. Multiple commands must be separated by semicolons. In addition, if
this property is specified in a connection URL, the entire value must be enclosed in
parentheses when multiple commands are specified. For example, assuming a schema
name of SFORCE:
InitializationString=(REFRESH SCHEMA SFORCE)
The default is an empty string.
Web Service Call
The maximum number of Web service calls allowed for a single SQL statement or metadata
Limit
query.
When set to 0, there is no limit on the number of Web service calls on a single connection
that can be made when executing a SQL statement.
The default value is 0.
Web Service
The time, in seconds, to wait before retrying a timed-out Select request. Valid only if the
Timeout
value of Web Service Retry Count is greater than zero. A value of 0 for the timeout waits
indefinitely for the response to a Web service request. There is no timeout. A positive
integer is considered as a default timeout for any statement created by the connection.
The default value is 120.
Web Service
The number of times to retry a timed-out Select request. The Web Service Timeout
Retry Count
parameter specifies the period between retries. A value of 0 for the retry count prevents
retries. A positive integer sets the number of retries. The default value is 2.
Progress DataDirect Hybrid Data Pipeline: User''s Guide: Version 4.6.1 627Chapter 3: Using Hybrid Data Pipeline
Field Description
Web Service
Specifies the number of rows of data the Hybrid Data Pipeline connectivity service attempts
Fetch Size
to fetch for each call.
Valid Values:
0 | x
If set to 0, the connectivity service attempts to fetch up to a maximum of 10000 rows. This
value typically provides the maximum throughput.
If set to x, the Hybrid Data Pipeline connectivity service attempts to fetch up to a maximum
of the specified number of rows. Setting the value lower than 10000 can reduce the response
time for returning the initial data. Consider using a smaller value for interactive applications
only.
Default: 0
Extended Options
Specifies a semi-colon delimited list of connection options and their values. Use this
configuration option to set the value of undocumented connection options that are provided
by Progress DataDirect technical support.You can include any valid connection option in
the Extended Options string, for example:
Database=Server1;UndocumentedOption1=value[;
UndocumentedOption2=value;]
If the Extended Options string contains option values that are also set in the setup dialog,
the values of the options specified in the Extended Options string take precedence.
Metadata
Restricts the metadata exposed by Hybrid Data Pipeline to a single schema.The metadata
Exposed
exposed in the SQL Editor, the Configure Schema Editor, and third party applications will
Schemas
be limited to the specified schema. JDBC, OData, and ODBC metadata calls will also be
restricted. In addition, calls made with the Schema API will be limited to the specified
schema.
Warning: This functionality should not be regarded as a security measure. While
the Metadata Exposed Schemas option restricts the metadata exposed by Hybrid
Data Pipeline to a single schema, it does not prevent queries against other schemas
on the backend data store. As a matter of best practice, permissions should be
set on the backend data store to control the ability of users to query data.
Valid Values
Where: