PHPackages                             xola/elasticsearch-proxy-bundle - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Authentication &amp; Authorization](/categories/authentication)
4. /
5. xola/elasticsearch-proxy-bundle

ActiveSymfony-bundle[Authentication &amp; Authorization](/categories/authentication)

xola/elasticsearch-proxy-bundle
===============================

A Symfony2 plugin that acts as an authorization proxy for elasticsearch

v3.1(5y ago)013.7k4[1 issues](https://github.com/xola/XolaElasticsearchProxyBundle/issues)MITPHPPHP &gt;=7.1CI failing

Since Jan 24Pushed 5mo ago5 watchersCompare

[ Source](https://github.com/xola/XolaElasticsearchProxyBundle)[ Packagist](https://packagist.org/packages/xola/elasticsearch-proxy-bundle)[ Docs](https://github.com/xola/XolaElasticsearchProxyBundle)[ RSS](/packages/xola-elasticsearch-proxy-bundle/feed)WikiDiscussions master Synced 3d ago

READMEChangelog (3)Dependencies (2)Versions (6)Used By (0)

XolaElasticsearchProxyBundle
============================

[](#xolaelasticsearchproxybundle)

A Symfony2 plugin that acts as a proxy for Elasticsearch.

Installation
------------

[](#installation)

With composer, add:

```
{
    "require": {
        "xola/elasticsearch-proxy-bundle" : "dev-master"
    }
}
```

Then enable it in your kernel:

```
// app/AppKernel.php
public function registerBundles()
{
    $bundles = array(
        //...
        new Xola\ElasticsearchProxyBundle\XolaElasticsearchProxyBundle(),
        //...
```

Configuration
-------------

[](#configuration)

```
# app/config/config.yml
xola_elasticsearch_proxy:
    client:
        protocol: http
        host: localhost
        port: 9200
        indexes: ['logs']
```

The `indexes` parameter lets you grant access to only the specified elasticsearch indexes.

Routing
-------

[](#routing)

Update your routing

```
# app/config/routing.yml
# Xola elasticsearch proxy
XolaElasticsearchProxyBundle:
    resource: "@XolaElasticsearchProxyBundle/Resources/config/routing.yml"
    prefix:   /
```

The default path is `/elasticsearch` and permits all HTTP methods (GET, PUT, POST, etc.).

Override it. Ensure `index` (to capture elastic search index) and `slug` (to capture rest of the url) remain in the route pattern.

```
# app/config/routing.yml
xola_elasticsearch_proxy:
     pattern:  /myproxy/{index}/{slug}
     defaults: { _controller: XolaElasticsearchProxyBundle:ElasticsearchProxy:proxy }
     requirements:
        slug: ".+"
```

Events
------

[](#events)

There are a couple of events fired by the bundle controller that can help you. By listening to these events you can add any custom authentication or filtering logic you require.

1. `elasticsearch_proxy.before_elasticsearch_request` - This event is fired before the request is sent to Elasticsearch. The listener will receive `ElasticsearchProxyEvent` as an argument containing the request, index, slug, and the query object. You may modify this query object and set it back on the event with `setQuery`. The updated request will then be sent on to Elasticsearch.
2. `elasticsearch_proxy.after_elasticsearch_response` - This event is fired after a response has been received from Elasticsearch. The listener will receive `ElasticsearchProxyEvent` as argument containing the request, index, slug, query, and response objects. You may modify the response and set it back into the event. The updated response is then sent back to the client.

###  Health Score

39

—

LowBetter than 86% of packages

Maintenance48

Moderate activity, may be stable

Popularity22

Limited adoption so far

Community15

Small or concentrated contributor base

Maturity62

Established project with proven stability

 Bus Factor2

2 contributors hold 50%+ of commits

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~338 days

Total

4

Last Release

2019d ago

Major Versions

v0.2 → v3.02020-01-22

PHP version history (2 changes)2.x-devPHP &gt;=5.3.2

v3.0PHP &gt;=7.1

### Community

Maintainers

![](https://www.gravatar.com/avatar/515bcf4e3e9e811a32d202cdaf796b30389d26d857c66317d78702b6e9381a5c?d=identicon)[anush](/maintainers/anush)

---

Top Contributors

[![kotrakrishna](https://avatars.githubusercontent.com/u/3157591?v=4)](https://github.com/kotrakrishna "kotrakrishna (19 commits)")[![anush](https://avatars.githubusercontent.com/u/109667?v=4)](https://github.com/anush "anush (14 commits)")[![rushi](https://avatars.githubusercontent.com/u/65708?v=4)](https://github.com/rushi "rushi (10 commits)")

---

Tags

searchsymfonyproxyelasticsearchauthorization

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/xola-elasticsearch-proxy-bundle/health.svg)

```
[![Health](https://phpackages.com/badges/xola-elasticsearch-proxy-bundle/health.svg)](https://phpackages.com/packages/xola-elasticsearch-proxy-bundle)
```

###  Alternatives

[auth0/symfony

Symfony SDK for Auth0 Authentication and Management APIs.

128738.1k](/packages/auth0-symfony)[scheb/2fa

Two-factor authentication for Symfony applications (please use scheb/2fa-bundle to install)

578630.7k1](/packages/scheb-2fa)[web-auth/webauthn-framework

FIDO2/Webauthn library for PHP and Symfony Bundle.

50570.7k1](/packages/web-auth-webauthn-framework)[web-auth/webauthn-symfony-bundle

FIDO2/Webauthn Security Bundle For Symfony

63397.4k6](/packages/web-auth-webauthn-symfony-bundle)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
