> ## Documentation Index
> Fetch the complete documentation index at: https://docs.alumio.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Ibexa

> Connect Alumio to Ibexa.

## Extra information

System documentation: [Ibexa API Reference](https://doc.ibexa.co/en/latest/api/rest_api/rest_api_reference/rest_api_reference.html)

## Connector package documentation

### Table of Contents

* **1.** Setting up the HTTP Client Ibexa
  * **1.1** Steps
* **2.** Subscribing to entities from Ibexa
  * **2.1** Steps
  * **2.2** General concept
* **3.** Publishing entity to Ibexa
  * **3.1** Steps
  * **3.2** General concept

### 1. Setting up the HTTP Client Ibexa

**1.1 Steps**

1. In the Alumio Dashboard, go to Clients -> HTTP Clients. Create a new HTTP Client and select Ibexa Client as the HTTP Client.
2. Select the JWT Token Authentication to use
3. Fill in the Base URL, Username, and Password according to your Ibexa account.
   (For more information, see [Ibexa JWT Token Reference](https://doc.ibexa.co/en/latest/api/rest_api/rest_api_reference/rest_api_reference.html#managing-users-create-jwt-token))
4. You can optionally enable the logging of request to get the log of the authentication.
5. Save the HTTP Client for use.

<img src="https://mintcdn.com/alumio/uG1gp13i6A-hR0sB/images/connectors/ibexa-01.png?fit=max&auto=format&n=uG1gp13i6A-hR0sB&q=85&s=18167dabb2c8228b066630c83cfbfd90" alt="Ibexa connector screenshot 1" width="690" height="398" data-path="images/connectors/ibexa-01.png" />

### 2. Subscribing to Entities from Ibexa

**2.1 Steps**

1. Go to Connections -> Incoming and create a new incoming configuration and select Ibexa Subscriber as the subscriber.
2. Select the entity you want to subscribe to from Ibexa.
3. Add any request parameters needed to subscribe to the entity.
4. You can optionally add a transformer to transform the request parameters into something you will request from Ibexa.
5. Select the Ibexa HTTP Client to use.
6. You can also optionally enable pagination to allow Alumio fetches paginated entities.

**2.2 General Concept**

We follow Ibexa documentation on building this connector, so you can easily use the connector based on the [Ibexa API Reference](https://doc.ibexa.co/en/latest/api/rest_api/rest_api_reference/rest_api_reference.html).

**Entity**

The entity you want to subscribe to Ibexa. Please refer to the entities from [Ibexa API Reference](https://doc.ibexa.co/en/latest/api/rest_api/rest_api_reference/rest_api_reference.html) page.

**Request Parameters**

These are the parameters you can provide to get the needed entity based on the [Ibexa API Reference](https://doc.ibexa.co/en/latest/api/rest_api/rest_api_reference/rest_api_reference.html)

Please look at the example below on how to fill Request Parameters field when subscribing ["Load Content"](https://doc.ibexa.co/en/latest/api/rest_api/rest_api_reference/rest_api_reference.html#managing-content-load-content) entity.

<img src="https://mintcdn.com/alumio/uG1gp13i6A-hR0sB/images/connectors/ibexa-02.png?fit=max&auto=format&n=uG1gp13i6A-hR0sB&q=85&s=9496c73a7596fa8ceb4f208d7fc6c23d" alt="Ibexa connector screenshot 2" width="303" height="74" data-path="images/connectors/ibexa-02.png" />

We can see in the documentation that the end point requires "contentId" as a path parameter to define which content we want to fetch.

<img src="https://mintcdn.com/alumio/uG1gp13i6A-hR0sB/images/connectors/ibexa-03.png?fit=max&auto=format&n=uG1gp13i6A-hR0sB&q=85&s=6a2451b0378fad9f3642c2b52018ac61" alt="Ibexa connector screenshot 3" width="690" height="396" data-path="images/connectors/ibexa-03.png" />

We set the "contentId" by providing it inside the path key in the Request Parameters,

* "Path" is the path parameter of the URL. For example the \{id}.
* "Query" is defined set of parameters attached to the end of a URL.\
  Example: [www.url.com?type=true\&start=0](http://www.url.com?type=true\&start=0)

Alumio will send the request as /content/objects/123

**Input Transformer**

Any transformers set here will be executed before the Request Parameters are loaded. So, you can add any transformer to provide and manipulate the request parameters into anything you need, either as path parameters and/or as query parameters of an entity.

**HTTP Client**

The HTTP Client configuration you will use to access Ibexa.

### 3. Publishing Entity to Ibexa

**3.1 Steps**

1. Go to Connections -> Outgoing, create a new outgoing configuration and select Ibexa Publisher as the publisher.
2. Select the action that you want the publisher to perform with the data.
3. Select the Ibexa entity you want the data to be published to.
4. You can optionally add any path data to the request on the key path.
5. You can optionally add any query data to the request on the key query.
6. You can optionally add any payload data to the request on the key payload.
7. Select the HTTP Client to use.

<img src="https://mintcdn.com/alumio/uG1gp13i6A-hR0sB/images/connectors/ibexa-04.png?fit=max&auto=format&n=uG1gp13i6A-hR0sB&q=85&s=12957e85e99607d5adb5e646897c64a3" alt="Ibexa connector screenshot 4" width="690" height="268" data-path="images/connectors/ibexa-04.png" />

**3.2 General Concept**

Like the subscriber, the publisher has similar methods on how to use it. The difference is the payload that will be submitted by the publisher originating from the data (from routes, from transformers in outgoing configuration), though you can also add or modify payload using the Request Transformer.

**Action**

Currently we support Create (HTTP POST method), Head (HTTP HEAD method), Delete (HTTP DELETE method), Copy (HTTP COPY method), Publish (HTTP PUBLISH method), Move (HTTP MOVE method), Swap (HTTP SWAP method), and Patch (HTTP PATCH method) on submitting data to Ibexa.

**Entity**

We support publishing to most Ibexa endpoints.
Please refer to [Ibexa API Reference](https://doc.ibexa.co/en/latest/api/rest_api/rest_api_reference/rest_api_reference.html) page.

Based on the documentation, some endpoints may need one or more path parameters.
For example, we want to use ["Delete Product"](https://doc.ibexa.co/en/latest/api/rest_api/rest_api_reference/rest_api_reference.html#product-catalog-delete-product).

<img src="https://mintcdn.com/alumio/uG1gp13i6A-hR0sB/images/connectors/ibexa-05.png?fit=max&auto=format&n=uG1gp13i6A-hR0sB&q=85&s=745989c11314504c197f33b195e557b7" alt="Ibexa connector screenshot 5" width="359" height="72" data-path="images/connectors/ibexa-05.png" />

Please select "Delete" as the action and "Delete Product" as the entity of the publisher.

<img src="https://mintcdn.com/alumio/uG1gp13i6A-hR0sB/images/connectors/ibexa-06.png?fit=max&auto=format&n=uG1gp13i6A-hR0sB&q=85&s=9d42ee0057637e4fdeea3cdc421581f4" alt="Ibexa connector screenshot 6" width="690" height="215" data-path="images/connectors/ibexa-06.png" />

The documentation says that we need "identifier" as path parameters. In that case, you need to provide "identifier" data into the path key in the data, either as an output from Routes or output from Transformers in Outgoing Configuration. And you can put the data you want to send to Ibexa into the payload key in the data.

<img src="https://mintcdn.com/alumio/uG1gp13i6A-hR0sB/images/connectors/ibexa-07.png?fit=max&auto=format&n=uG1gp13i6A-hR0sB&q=85&s=7e2ce4cdbb840f78430af85a9d92c3ee" alt="Ibexa connector screenshot 7" width="186" height="142" data-path="images/connectors/ibexa-07.png" />

* "Path" is the path parameter of the URL. For example the \{id}.
* "Query" is defined set of parameters attached to the end of a URL.\
  Example: [www.url.com?type=true\&start=0](http://www.url.com?type=true\&start=0)
* Payload is the data contained within a request.

Alumio will then send the request as /product/catalog/products/123
Examples of the Possible Response after deletion are

<img src="https://mintcdn.com/alumio/uG1gp13i6A-hR0sB/images/connectors/ibexa-08.png?fit=max&auto=format&n=uG1gp13i6A-hR0sB&q=85&s=7aa181612cae26634e84b213c3632fc7" alt="Ibexa connector screenshot 8" width="816" height="197" data-path="images/connectors/ibexa-08.png" />

**HTTP Client**

The HTTP Client configuration you will use to access Ibexa.
