Table of Contents


Overview

Pure Storage FlashArray is an all-flash block and file storage array. Each array runs the Purity//FA operating environment and presents a REST API on its management endpoint. The 2.x REST interface is token based: you hold a long-lived API token tied to a Purity user account, POST it to the login endpoint, and receive a short-lived session token that is then sent on every subsequent request. The collections underneath describe the array itself, its controllers and drives, the physical hardware tree, the volumes it serves and the host groups those volumes are presented to.

The ReadyWorks connector implements exactly that exchange. Both authentication methods post to an API token endpoint (the default is /api/2.26/login) with an api-token header, read the x-auth-token value out of the response headers, and replay it as x-auth-token on every data call. Each shipped job is a GET against a versioned resource path under /api/2.26/, and the JSON lands in a pure_get_* staging table.

In the estate this gives you the block storage layer. Array, controller, drive and hardware inventory carries the serial numbers and component detail needed for support entitlement and refresh planning. Volume and host-group data shows which hosts are presented which storage, so before you move, rebuild or retire a server you can see what it depends on and what else shares the same group. The alerts job gives a near real-time view of array health alongside the rest of the estate rather than only inside the Purity UI.

The connector is declared bidirectional and the outbound job form is enabled, but no outbound templates ship. As delivered it reads from FlashArray and writes nothing back.

NOTE: The connector id is PURE STORAGE and the help link, template names and staging tables all say Pure Storage, but the display name shown in the connector picker is Everpure and the description reads “Connect to the Everpure (formerly Pure Storage) FlashArray REST API”. Pure Storage has not been renamed to Everpure. Look for Everpure in the picker if you cannot find Pure Storage.

NOTE: Every template pins the REST version into the path as /api/2.26/. Confirm your Purity release serves that version before enabling jobs, and edit the API End Point on each job if it does not.

Connector Properties

PropertyValue
IdentifierPURE STORAGE
NameEverpure
DescriptionConnect to the Everpure (formerly Pure Storage) FlashArray REST API
Job TypesBoth Inbound and Outbound
Order160
EnabledYes
LockedYes
Block UpdateNo
Single AuthenticationNo
Windows OnlyNo
Connector Version2025-11-18
HooksNone
Additional Job FieldsNone
Image

Authentication Methods

Two authentication methods ship, both of them API token exchanges handled by the same driver. They differ only in where the API token comes from.

MethodIdentifierBase MethodScriptOrderEnabledConfig Fields
API Token Header Authentication From EnumerationPURE STORAGE_92efee2bcdPURE STORAGE_92efee2bcdjson_rest_api.php30Yes3
API Token Header AuthenticationPURE STORAGE_token_headJSON Rest API_token_headjson_rest_api.php30Yes6

NOTE: Both methods are flagged as the default and both sit at display order 30, so which one a new connection pre-selects is not determined by the metadata. Check which method is selected before saving a new connection.

NOTE: In both recipes the >GetHeader entry is a directive to the driver rather than a header sent to the array. It names the response header (x-auth-token) whose value is captured and then made available as %auth_data% on the data calls.

Method 1: API Token Header Authentication From Enumeration (PURE STORAGE_92efee2bcd)

API Token Header Authentication From Enumeration

A variant intended to take the array’s API token from an enumeration value at run time (%enum_auth_token%) rather than from a field stored on the connection, so that one connection could walk several arrays in turn. Nothing in the shipped metadata supplies that value: the method exposes no API Token field, and none of the nine templates configures an enumeration. Do not select this method unless you have built the enumeration that feeds it.

Connection Configuration Fields (3)

OrderLabelTypeRequiredDefaultMax LenTooltip
10Server Temporary Working PathtextYesstorage/etl5255Enter path where temporary files are stored during data processing (exclude starting and ending backslash)
10API DomaintextYes255Enter API domain of the Connection
190API Token Post End PointtextNo500Tooltip for Authentication End Point

Authentication Configuration

Headers sent on the authentication call:

HeaderValueBase64
Content-Type:application/jsonOff
>GetHeaderx-auth-tokenOff
api-token:%enum_auth_token%Off

Headers sent on the data calls:

HeaderValueBase64
Content-Type:application/jsonOff
x-auth-token:%auth_data%Off

cURL options:

OptionAuthentication CallData Calls
USERAGENTMozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0Same
SSL_VERIFYHOSTfalseSame
SSL_VERIFYPEERfalseSame
RETURNTRANSFERtrueSame
FOLLOWLOCATIONtrueSame
FAILONERRORtrueSame
POSTtrueSame

NOTE: This method sets the cURL POST option on the data calls as well as the authentication call, while every shipped template uses method type GET.

Method 2: API Token Header Authentication (PURE STORAGE_token_head)

API Token Header Authentication

The method to use. You store the FlashArray API token on the connection, and the connector posts it in an api-token header to the API Token Post End Point (default /api/2.26/login), captures the returned x-auth-token session token and sends that on every data call. Generate the API token against a dedicated Purity user with a read-only role. This method also exposes the Single Authentication switch, which controls whether the login is repeated on each pagination or enumeration loop.

Connection Configuration Fields (6)

OrderLabelTypeRequiredDefaultMax LenTooltip
10API DomaintextYes255Enter API domain of the Connection
30Server Temporary Working PathtextYesstorage/etl5255Enter path where temporary files are stored during data processing (exclude starting and ending backslash)
60API TokenpasswordNo64000Enter API token of the Connection
190API Token Post End PointtextNo/api/2.26/login500Enter API end point to request an auth-token
240Single AuthenticationradioYes0Choose if authentication is only to be done once and not on each enumeration or pagination loop
250Additional Job Fieldsfields_listNoEnter list of additional fields to add to staging data for all jobs

Authentication Configuration

Headers sent on the authentication call:

HeaderValueBase64
Content-Type:application/jsonOff
>GetHeaderx-auth-tokenOff
api-token:%auth_value_1%Off

Headers sent on the data calls:

HeaderValueBase64
Content-Type:application/jsonOff
x-auth-token:%auth_data%Off

cURL options:

OptionAuthentication CallData Calls
USERAGENTMozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0Same
SSL_VERIFYHOSTfalseSame
SSL_VERIFYPEERfalseSame
RETURNTRANSFERtrueSame
FOLLOWLOCATIONtrueSame
FAILONERRORtrueSame
POSTtrueNot set

Inbound Job Fields Enabled (44)

The inbound job form exposes the standard REST job fields: endpoint, return data node, pagination, three levels of enumeration, and the staging table the response lands in.

OrderLabelTypeRequiredDefaultTooltip
10Job DescriptiontextYesEnter description of the Job
20Job SchedulelookupYesDailySelect frequency Job should run
30EnabledradioYesYesChoose if Job is enabled
40Use Unparsed DataradioNoNoChoose if you wish to parse the incoming data, or leave it in its raw format
50Log Raw API CallsradioYesNoChoose if raw API calls are logged
70Destination TabletextYesEnter name of the destination table
80Data IdentitytextNoEnter identity of the Job
120Append New Data to Existing TablesradioNoNoChoose if new data will append to the existing destination table, or will create a new destination table
130Fields to IndextextNoEnter fields to index
170Method TypeselectYesGETSelect method type of the Job
190API End PointtextNoEnter API end point of the Job
200API Data Parametersfields_listNoEnter API data parameters of the Job
210Body Data Sending MethodselectYesJSON Encoded DataSelect method for sending the body data
220Raw JSON Body DatatextareaNoEnter the raw JSON body to send. Do not use body selections in the API Parameters if this is used.
230API Return Data NodetextNoEnter API return data node of the Job
250Pagination TypeselectNoNoneSelect request paging type of the Job
270API Pagination NodetextNoEnter API pagination node of the Job
280Pagination Offset StarttextNoEnter request paging offset start of the Job
290Request LimittextNoEnter request limit of the Job
300Pagination Termination NodetextNoEnter request paging termination node and value of the Job
310Maximum API CallstextNoEnter maximum number of API calls for the Job to make
320Enumeration 1 TypeselectNoNoneEnter enumeration level 1 type
330Enumeration 1 ETL JoblookupNoSelect ETL job for the enumeration values
340Enumeration 1 Data Typedata_typeNoSelect the data type and fields for enumeration 1 values
350Enumeration 1 Keys End PointtextNoEnter enumeration 1 keys end point of the Job
360Enumeration 1 NodetextNoEnter enumeration 1 node of the Job
370Enumeration 1 Fieldsfields_listNoEnter enumeration 1 fields of the Job
380Enumeration 2 TypeselectNoNoneEnter enumeration level 2 type
390Enumeration 2 ETL JoblookupNoSelect ETL job for the enumeration 2 values
400Enumeration 2 Data Typedata_typeNoSelect the data type and fields for enumeration 2 values
410Enumeration 2 Keys End PointtextNoEnter enumeration 2 keys end point of the Job
420Enumeration 2 NodetextNoEnter enumeration 2 node of the Job
430Enumeration 2 Fieldsfields_listNoEnter enumeration 2 fields of the Job
440Enumeration 3 TypeselectNoNoneEnter enumeration level 3 type
450Enumeration 3 ETL JoblookupNoSelect ETL job for the enumeration 3 values
460Enumeration 3 Data Typedata_typeNoSelect the data type and fields for enumeration 3 values
470Enumeration 3 Keys End PointtextNoEnter enumeration 3 keys end point of the Job
480Enumeration 3 NodetextNoEnter enumeration 3 node of the Job
490Enumeration 3 Fieldsfields_listNoEnter enumeration 3 fields of the Job
500Pause EnumerationtextNoEnter values for pausing enumeration every X calls for Y seconds
510Kill Enumeration on ErrorradioNoNoChoose to stop the enumeration loop on an error or continue processing the loop
520Additional Fieldsfields_listNoEnter list of additional fields to add to staging data
550Retry PausetextNoEnter values for retrying a failed API connection. Retry X times, waiting Y seconds between each try, with an API timeout of Z seconds.
560OrdertextYesEnter order of the Job

Outbound Job Fields Enabled (13)

OrderLabelTypeRequiredDefaultTooltip
10Job DescriptiontextYesEnter description of the Job
30EnabledradioYesYesChoose if Job is enabled
50Log Raw API CallsradioYesNoChoose if raw API calls are logged
170Method TypeselectYesGETSelect method type of the Job
180Data Sending MethodselectYesJSON Encoded DataSelect method for sending the outbound data
190API End PointtextNoEnter API end point of the Job
200API Data Parametersfields_listNoEnter API data parameters of the Job
210Body Data Sending MethodselectYesJSON Encoded DataSelect method for sending the body data
260Return Data Fields Listfields_listYesEnter return data fields of the Job
530Outbound Fields Listfields_listYesEnter outbound fields of the Job
540Ignore Empty Outbound FieldsradioNoYesIgnore, and do not include, any outbound fields that are empty and have no data
550Raw JSON Outbound TemplatetextareaNoEnter the raw JSON outbound template to send. This will replace any automated structures defined in the outbound fields.
560OrdertextYesEnter order of the Job

Inbound Job Templates (9)

Nine inbound templates ship, eight of them mapped to FlashArray REST collections and one blank scaffold. Two are active by default (GET Pure Arrays hourly and GET Pure Alerts every five minutes); the rest ship disabled on a Daily schedule. None sets a return data node and none sets pagination.

#Job DescriptionDestination TableAPI End PointEnabledWhat It Pulls
1GET Pure Arrayspure_get_arrays/api/2.26/arraysYesThe array’s own record: array name and id, the Purity release it is running, model, total capacity and current space consumption. One row per array, and the anchor every other table joins back to.
2GET Pure Alertspure_get_array_alerts/api/2.26/alertsYesAlerts raised by the array, with severity, the component that raised them, current state and the timestamps for when they opened and closed. Scheduled every five minutes so array health surfaces quickly.
3GET Pure Controllerspure_get_controllers/api/2.26/controllersNoThe controllers in the array chassis, with model, the mode each is running in (primary or secondary), status and Purity version. Use it to confirm both controllers are healthy and on matching code before any maintenance.
4GET Pure Drivespure_get_drives/api/2.26/drivesNoEvery flash module and NVRAM device by bay position, with device type, capacity and status. This is the drive-level view behind the array’s capacity figures and the source for tracking individual module failures.
5GET Pure Hardwarepure_get_hardware/api/2.26/hardwareNoThe physical component tree: chassis, expansion shelves, bays, ports, temperature and power components, each with its slot identifier and health. Broader than the drives job and the right place to look for a named physical component.
6GET Pure Host Groupspure_get_host_groups/api/2.26/host-groupsNoHost groups, the named sets of hosts that volumes are presented to, with their membership and connection counts. This is the link between a server in the estate and the storage it is entitled to see.
7GET Pure Port Initiatorspure_get_port_initiators/api/2.26/arraysNoNamed for the array’s port and initiator relationships, but the endpoint configured on this template is /api/2.26/arrays, the same call GET Pure Arrays makes. As shipped it stages the array record into pure_get_port_initiators, not port or initiator data.
8GET Pure Volumespure_get_volumes/api/2.26/volumesNoEvery provisioned volume on the array, with name, serial, provisioned size, space actually consumed, and whether the volume has been destroyed and is pending eradication.
9Pure Storage API CallpureNot setNoA blank scaffold with no endpoint set, writing to a generic pure table. Copy it when you need a FlashArray collection that has no shipped template of its own.

Job Template Configuration

Settings Common to All Nine Templates

SettingValue
Order10
Allow Empty TableYes
Append Files to Same Destination TableNo
Use Unparsed DataNo
Convert UUID-Keyed Objects to RowsNo
Ignore XML AttributesNo
Log Raw API CallsNo
Method TypeGET
Body Data Sending MethodJSON Encoded Data

Settings That Vary by Template

TemplateIDEnabledJob ScheduleDestination TableData IdentityAPI End PointAppend New Data to Existing Tables
GET Pure Arrays157YesHourly (0 * * * *)pure_get_arrayspure_get_arrays/api/2.26/arraysYes
GET Pure Alerts158YesEvery 5 Minutes (*/5 * * * *)pure_get_array_alertspure_get_array_alerts/api/2.26/alertsYes
GET Pure Controllers159NoDaily (15 1 * * *)pure_get_controllerspure_get_controllers/api/2.26/controllersYes
GET Pure Drives160NoDaily (15 1 * * *)pure_get_drivespure_get_drives/api/2.26/drivesYes
GET Pure Hardware161NoDaily (15 1 * * *)pure_get_hardwarepure_get_hardware/api/2.26/hardwareYes
GET Pure Host Groups162NoDaily (15 1 * * *)pure_get_host_groupspure_get_host_groups/api/2.26/host-groupsYes
GET Pure Port Initiators163NoDaily (15 1 * * *)pure_get_port_initiatorspure_get_port_initiators/api/2.26/arraysYes
GET Pure Volumes164NoDaily (15 1 * * *)pure_get_volumespure_get_volumes/api/2.26/volumesYes
Pure Storage API Call165NoDaily (15 1 * * *)purepureNot setNo

Job Parameters and Enumeration

GET Pure Arrays

Additional staging fields:

KeyValue
Array Namegso-e3-px90-p01

GET Pure Alerts

Additional staging fields:

KeyValue
Array Namegso-e3-px90-p01

GET Pure Controllers

Additional staging fields:

KeyValue
Array Namegso-e3-px90-p01

GET Pure Drives

Additional staging fields:

KeyValue
Array Namegso-e3-px90-p01

GET Pure Hardware

Additional staging fields:

KeyValue
Array Namegso-e3-px90-p01

GET Pure Host Groups

Additional staging fields:

KeyValue
Array Namegso-e3-px90-p01

GET Pure Port Initiators

Additional staging fields:

KeyValue
Array Namegso-e3-px90-p01

GET Pure Volumes

Additional staging fields:

KeyValue
Array Namegso-e3-px90-p01

NOTE: All eight resource templates carry an Additional Fields entry that stamps a literal Array Name of gso-e3-px90-p01 onto every staged row. That is a value left in the shipped metadata, not your array. Change or remove it on every job before you enable it.

Outbound Job Templates (0)

No outbound templates ship with this connector. The outbound job form is enabled, so you can author your own, but nothing is written back to the array by default.

Last updated on 11/4/2026

Attachments