# Identifiers

The `identifiers` action retrieves a list of items that are present in the repository. Different types of repository store items in different types of hierarchy. For example, file systems have folders and files, but an e-mail system might have mailboxes and messages.

The connector looks for child items of each identifier that you pass into the action. A FlowFile is routed to the "Identifiers Output" relationship for each child item that is found, and information is also returned in the action response.

This action can be used by front end applications for providing an interface to browse a repository. You can use the identifiers that are returned by this action in other connector actions that require you to provide identifiers.

Type: asynchronous

Parameter | Description | Required
--- | --- | ---
`ConnectorGroup` | The name of the connector group to send the request to. This must match the name you specified when you configured the ConnectorGroupRouter processor in your dataflow. | Yes
`Documents` | XML that specifies where to start looking in the data repository.
    <documents custom_attribute1="...">
        <document custom_attribute2="...">
            <CONNECTOR_GROUP>FileSystem</CONNECTOR_GROUP>
            <AUTN_IDENTIFIER>BASE64</AUTN_IDENTIFIER>
        </document>
        ...
    </documents>
The `CONNECTOR_GROUP` element specifies the name of the connector group to send the request to. This overrides the value of the `ConnectorGroup` action parameter for a specific document. If you specify the connector group for every document, you no longer need to set the action parameter. If present in the XML, the `CONNECTOR_GROUP` element must be the first element within the `document` element. The `AUTN_IDENTIFIER` element specifies an IDOL document identifier. In NiFi Ingest, actions are represented by FlowFiles. You can specify custom attributes on the `documents` element (for all documents) or on a `document` element (for a single document). These are added to FlowFiles that represent actions, as FlowFile attributes. The FlowFile attributes are named `idol.doc.name`, for example `idol.doc.custom_attribute1`. | Set this or `Identifiers`
`Identifiers` | A comma-separated list of document identifiers to specify where to start looking in the data repository. You can also specify the special value `ROOT`, to start looking in the root of the repository. | Set this or `Documents`
Custom parameters | Any other parameters that you set are added to the FlowFile, created by the HandleAciRequest processor, that represents the action. When a connector processes the action, it adds the parameters to any FlowFiles that it generates. The parameters are added as FlowFile attributes named `idol.aci.param.name`, where `name` is the name of the parameter that you set. FlowFile attributes can be referenced by processor properties that support expression language, and can be read by Lua scripts. You can therefore set custom parameters to customize processing within NiFi. The maximum size for a custom parameter value is 4KB. | No

## Example

    http://host:10000/action=Identifiers
                             &ConnectorGroup=FileSystem
                             &Identifiers=root

## Response

This is an asynchronous action, so you receive a token in response to the request. You can use the QueueInfo action to see the result of the action.

The following is an example response from the `QueueInfo` action.

    <autnresponse>
        <action>QUEUEINFO</action>
        <response>SUCCESS</response>
            <responsedata>
            <actions>
                <action>
                    <status>Finished</status>
                    <queued_time>2019-Sep-23 12:25:48</queued_time>
                    <time_in_queue>0</time_in_queue>
                    <process_start_time>2019-Sep-23 12:25:48</process_start_time>
                    <time_processing>0</time_processing>
                    <process_end_time>2019-Sep-23 12:25:48</process_end_time>
                    <identifiers parent_identifier="identifier0">
                        <identifier attributes="document" name="file.txt" type="File">identifier1</identifier>
                        <identifier attributes="document" name="archive.zip" type="File">identifier2</identifier>
                        <identifier attributes="document" name="document.docx" type="File">identifier3</identifier>
                        <identifier attributes="document" name="text.txt" type="File">identifier4</identifier>
                        <identifier attributes="container" name="folder" type="Directory">identifier5</identifier>
                    </identifiers>
                    <token>...</token>
                </action>
            </actions>
        </responsedata>
    </autnresponse>

In the response, there is an `<identifiers parent_identifier="...">` element for each of the identifiers that you passed into the action. These contain `<identifier ...>` elements for items that are direct descendants of the parent item.

An `<identifier ...>` element can provide the following attributes:

- `attributes` - contains a comma-separated list of attributes for the item.

  - If an item has the `container` attribute it is an item that can contain other items. To retrieve the identifiers of the child items, run the action again using the identifier of the container as the value of the `Documents` action parameter.
  - If an item has the `document` attribute it is a file or has metadata that can be ingested.
- `name` - a display name for the item (if one is available).
- `type` - the type of item that the identifier represents.

_FT_HTML5_bannerTitle.htm