Search Knowledge Base by Keyword
Dell Powerflex
Overview
Dell PowerFlex is a software-defined block storage platform, previously sold as VxFlex OS and before that as ScaleIO. Instead of a purpose-built array it pools the local drives of a cluster of standard servers into shared capacity. That capacity is carved into Storage Pools, grouped for fault isolation into Protection Domains, and presented to hosts as volumes through the SDC kernel driver that runs on each consuming machine. The whole cluster is managed from the PowerFlex Management Platform, or PFMP.
The ReadyWorks connector talks to the PFMP REST API. It posts the username and password to the login endpoint, reads the bearer token out of the access_token node in the response, and then sends that token on every subsequent call. Five shipped jobs walk the object model from the top down and write each level into its own staging table in the estate.
The value of that shape is the chain it gives you. A volume record names the storage pool it came from, a pool names its protection domain, and the SDC records say which client machines have volumes mapped to them. Reconciled against the server and application records already in the fabric, that tells you which workloads sit on which slice of PowerFlex capacity. Before a data centre exit or a storage refresh, that is the difference between knowing a host uses shared storage and knowing exactly which pool and protection domain it depends on.
The connector is inbound only. It reads from PFMP and writes to ReadyWorks staging. No outbound job fields are exposed and no outbound templates ship, so nothing is written back to PowerFlex.
NOTE: All five templates ship enabled on a Daily schedule, and the connection ships with placeholder defaults for the PFMP address. Edit the connection fully before saving, or you will schedule five jobs that call a host name that does not resolve.
Connector Properties
| Property | Value |
|---|---|
| Identifier | POWERFLEX |
| Name | Dell PowerFlex |
| Description | Dell PowerFlex is a software-defined block storage platform (formerly known as VxFlex/ScaleIO). Volumes are presented to clients via the SDC kernel driver. |
| Job Types | Inbound Only |
| Order | 170 |
| Enabled | Yes |
| Locked | Yes |
| Block Update | No |
| Single Authentication | Yes |
| Windows Only | No |
| Connector Version | 2026-05-17 |
| Hooks | None |
| Additional Job Fields | None |
| Image | ![]() |
Authentication Methods
One authentication method is shipped, matching the PFMP login flow.
| Method | Identifier | Base Method | Script | Order | Enabled | Config Fields |
|---|---|---|---|---|---|---|
| Dell PowerFlex: User/Pass to Bearer Token | POWERFLEX_8a3b1c5e92 |
POWERFLEX_8a3b1c5e92 |
json_rest_api.php |
10 | Yes | 7 |
Method 1: Dell PowerFlex: User/Pass to Bearer Token (POWERFLEX_8a3b1c5e92)
Username and Password to PFMP Bearer Token
Posts the username and password as a JSON body to the PFMP login endpoint, extracts the bearer token from the access_token node in the response, and attaches it as Authorization: Bearer on every data call. Both the endpoint and the token node are required fields with working defaults, so the only values you normally supply are the PFMP address and a PFMP service account. Use an account with read access to the system, protection domain, storage pool, SDC and volume objects.
Connection Configuration Fields (7)
| Order | Label | Type | Required | Default | Max Len | Tooltip |
|---|---|---|---|---|---|---|
| 10 | API Domain | text | Yes | https://PFMP_FQDN_REPLACE |
255 | Enter the PowerFlex Management Platform (PFMP) URL |
| 30 | Server Temporary Working Path | text | Yes | storage/etl5 |
255 | Enter path where temporary files are stored during data processing (exclude starting and ending backslash) |
| 40 | Username | text | No | 1024 | PFMP username | |
| 50 | Password | password | No | 64000 | PFMP password | |
| 190 | Authentication Token End Point | text | Yes | https://PFMP_FQDN_REPLACE/rest/auth/login |
500 | PowerFlex Management Platform login endpoint |
| 200 | Authentication Token JSON Node | text | Yes | access_token |
255 | JSON node containing the access token in the auth response |
| 250 | Additional Job Fields | fields_list | No | Enter list of additional fields to add to staging data for all jobs |
Authentication Configuration
Headers sent on the authentication call:
| Header | Value | Base64 |
|---|---|---|
Content-Type: |
application/json |
Off |
Headers sent on the data calls:
| Header | Value | Base64 |
|---|---|---|
Content-Type: |
application/json |
Off |
Authorization: |
Bearer %auth_data% |
Off |
Authentication request body:
| Key | Value |
|---|---|
username |
%user_name% |
password |
%user_pass% |
cURL options:
| Option | Authentication Call | Data Calls |
|---|---|---|
USERAGENT |
Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0 |
Same |
SSL_VERIFYHOST |
false |
Same |
SSL_VERIFYPEER |
false |
Same |
RETURNTRANSFER |
true |
Same |
FOLLOWLOCATION |
true |
Same |
FAILONERROR |
true |
Same |
NOTE: This connector authenticates once per run rather than on every pagination and enumeration loop, which is the correct behaviour for a token-fetch method. The setting is fixed at the connector level and is not offered on the connection form.
NOTE: The Authentication Token End Point is an absolute URL that repeats the PFMP host name, so the host appears in two fields on this form. Change both together.
Inbound Job Fields Enabled (44)
The inbound job form carries the full generic REST field set, including pagination, the three enumeration levels and the raw JSON body.
| Order | Label | Type | Required | Default | Tooltip |
|---|---|---|---|---|---|
| 10 | Job Description | text | Yes | Enter description of the Job | |
| 20 | Job Schedule | lookup | Yes | Daily | Select frequency Job should run |
| 30 | Enabled | radio | Yes | Yes | Choose if Job is enabled |
| 40 | Use Unparsed Data | radio | No | No | Choose if you wish to parse the incoming data, or leave it in its raw format |
| 50 | Log Raw API Calls | radio | Yes | No | Choose if raw API calls are logged |
| 70 | Destination Table | text | Yes | Enter name of the destination table | |
| 80 | Data Identity | text | No | Enter identity of the Job | |
| 120 | Append New Data to Existing Tables | radio | No | No | Choose if new data will append to the existing destination table, or will create a new destination table |
| 130 | Fields to Index | text | No | Enter fields to index | |
| 170 | Method Type | select | Yes | GET |
Select method type of the Job |
| 190 | API End Point | text | No | Enter API end point of the Job | |
| 200 | API Data Parameters | fields_list | No | Enter API data parameters of the Job | |
| 210 | Body Data Sending Method | select | Yes | JSON Encoded Data | Select method for sending the body data |
| 220 | Raw JSON Body Data | textarea | No | Enter the raw JSON body to send. Do not use body selections in the API Parameters if this is used. | |
| 230 | API Return Data Node | text | No | Enter API return data node of the Job | |
| 250 | Pagination Type | select | No | None | Select request paging type of the Job |
| 270 | API Pagination Node | text | No | Enter API pagination node of the Job | |
| 280 | Pagination Offset Start | text | No | Enter request paging offset start of the Job | |
| 290 | Pagination Limit | text | No | Enter request pagination limit of the Job | |
| 300 | Pagination Termination Node | text | No | Enter request paging termination node and value of the Job | |
| 310 | Maximum API Calls | text | No | Enter maximum number of API calls for the Job to make | |
| 320 | Enumeration 1 Type | select | No | None | Enter enumeration level 1 type |
| 330 | Enumeration 1 ETL Job | lookup | No | Select ETL job for the enumeration values | |
| 340 | Enumeration 1 Data Type | data_type | No | Select the data type and fields for enumeration 1 values | |
| 350 | Enumeration 1 Keys End Point | text | No | Enter enumeration 1 keys end point of the Job | |
| 360 | Enumeration 1 Node | text | No | Enter enumeration 1 node of the Job | |
| 370 | Enumeration 1 Fields | fields_list | No | Enter enumeration 1 fields of the Job | |
| 380 | Enumeration 2 Type | select | No | None | Enter enumeration level 2 type |
| 390 | Enumeration 2 ETL Job | lookup | No | Select ETL job for the enumeration 2 values | |
| 400 | Enumeration 2 Data Type | data_type | No | Select the data type and fields for enumeration 2 values | |
| 410 | Enumeration 2 Keys End Point | text | No | Enter enumeration 2 keys end point of the Job | |
| 420 | Enumeration 2 Node | text | No | Enter enumeration 2 node of the Job | |
| 430 | Enumeration 2 Fields | fields_list | No | Enter enumeration 2 fields of the Job | |
| 440 | Enumeration 3 Type | select | No | None | Enter enumeration level 3 type |
| 450 | Enumeration 3 ETL Job | lookup | No | Select ETL job for the enumeration 3 values | |
| 460 | Enumeration 3 Data Type | data_type | No | Select the data type and fields for enumeration 3 values | |
| 470 | Enumeration 3 Keys End Point | text | No | Enter enumeration 3 keys end point of the Job | |
| 480 | Enumeration 3 Node | text | No | Enter enumeration 3 node of the Job | |
| 490 | Enumeration 3 Fields | fields_list | No | Enter enumeration 3 fields of the Job | |
| 500 | Pause Enumeration | text | No | Enter values for pausing enumeration every X calls for Y seconds | |
| 510 | Kill Enumeration on Error | radio | No | No | Choose to stop the enumeration loop on an error or continue processing the loop |
| 520 | Additional Fields | fields_list | No | Enter list of additional fields to add to staging data | |
| 550 | Retry Pause | text | No | Enter values for retrying a failed API connection. Retry X times, waiting Y seconds between each try, with an API timeout of Z seconds. | |
| 560 | Order | text | Yes | Enter order of the Job |
NOTE: Several labels and tooltips carry unedited text from the shared templates. Enumaration 1 Node is misspelled and the tooltip on Enumeration 1 Keys End Point refers to enumeration 2. The fields behave as their level numbers say.
Inbound Job Templates (5)
Five inbound templates ship, all enabled on a Daily schedule. They walk the PowerFlex object model from the cluster down to the individual volume, each writing to its own staging table.
| # | Job Description | Destination Table | API End Point | Enabled | What It Pulls |
|---|---|---|---|---|---|
| 1 | GET System | powerflex_system |
/api/types/System/instances |
Yes | The cluster-level record from /api/types/System/instances: the PowerFlex system’s identity, version, overall capacity and configuration. Usually one row, and the anchor everything else hangs off. |
| 2 | GET ProtectionDomain | powerflex_protection_domain |
/api/types/ProtectionDomain/instances |
Yes | The fault-isolation groupings from /api/types/ProtectionDomain/instances: each protection domain’s name, identifier, state and the system it belongs to. This is the boundary within which a rebuild is contained. |
| 3 | GET StoragePool | powerflex_storage_pool |
/api/types/StoragePool/instances |
Yes | The capacity tiers from /api/types/StoragePool/instances: each pool’s name, identifier, parent protection domain, data layout and capacity and utilisation figures. This is where you see how much of the estate’s block capacity is actually consumed. |
| 4 | GET SDC | powerflex_sdc |
/api/types/Sdc/instances |
Yes | The storage data clients from /api/types/Sdc/instances: one row per host running the SDC kernel driver, with its identifier, IP address, connection state and driver version. This is the join back to the server records in the estate. |
| 5 | GET Volume | powerflex_volume |
/api/types/Volume/instances |
Yes | The provisioned volumes from /api/types/Volume/instances: each volume’s name, identifier, size, type and the storage pool it was carved from. Typically the largest collection of the five. |
Job Template Configuration
Settings Common to All Five Templates
| Setting | Value |
|---|---|
| Enabled | Yes |
| Job Schedule | Daily (15 1 * * *) |
| Allow Empty Table | Yes |
| Append Files to Same Destination Table | No |
| Append New Data to Existing Tables | No |
| Use Unparsed Data | No |
| Convert UUID-Keyed Objects to Rows | No |
| Ignore XML Attributes | No |
| Log Raw API Calls | No |
| Method Type | GET |
| Body Data Sending Method | JSON Encoded Data |
Settings That Vary by Template
| Template | ID | Order | Destination Table | Data Identity | API End Point |
|---|---|---|---|---|---|
| GET System | 152 | 40000 | powerflex_system |
powerflex_system |
/api/types/System/instances |
| GET ProtectionDomain | 153 | 40001 | powerflex_protection_domain |
powerflex_protection_domain |
/api/types/ProtectionDomain/instances |
| GET StoragePool | 154 | 40002 | powerflex_storage_pool |
powerflex_storage_pool |
/api/types/StoragePool/instances |
| GET SDC | 155 | 40003 | powerflex_sdc |
powerflex_sdc |
/api/types/Sdc/instances |
| GET Volume | 156 | 40004 | powerflex_volume |
powerflex_volume |
/api/types/Volume/instances |
NOTE: None of the five sets Pagination Type, so each job takes whatever a single call returns. Review this on GET Volume and GET SDC before the first scheduled run.
NOTE: There is no template for the SDS storage data servers or for the underlying devices, so the server-side contribution of physical drives to each pool is not retrieved. Copy the connector’s job form and add one if you need it.
Outbound Job Templates (0)
This connector is inbound only, so no outbound templates are shipped and the outbound job form is not available.

