ventusforge/neos-index-manager

Index Manager for ElasticSearch/OpenSearch in Neos

Maintainers

Package info

github.com/VentusForge/VentusForge.IndexManager

Type:neos-application

pkg:composer/ventusforge/neos-index-manager

Statistics

Installs: 2

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

0.0.1 2026-04-17 09:34 UTC

This package is auto-updated.

Last update: 2026-04-21 15:03:42 UTC


README

Client to manage indices.

How To Use

Define the authentication

# Settings.yaml
VentusForge:
  IndexManager:
    clients:
      default:
        host: 'opensearch'
        port: 9200
        scheme: 'https'
        # username: dev_foo_bar # optional
        # password: dev_foo_bar # optional
        sslCaInfo: '/client-certs/opensearch/root-ca.pem'
        sslKey: '/client-certs/dev_foo_bar-key.pem'
        sslCert: '/client-certs/dev_foo_bar.pem'

Select between username & password or a certification file.

Note: you can create an own IndexClientFactory and use the authentication from another settings (i.e. Flowpack.ElasticSearch.clients)

Inject the client

# Objects.yaml
'Foo.Bar:DefaultClient':
  className: VentusForge\IndexManager\IndexClient
  scope: singleton
  factoryObjectName: VentusForge\IndexManager\IndexClientFactoryInterface
  factoryMethodName: create
  arguments:
    1:
      value: default

and add the following to your service/controller.

<?php

namespace Foo\Bar\Service;

use VentusForge\IndexManager\IndexClient;

class SomeService
{
    /**
     * @Flow\Inject(name="Foo.Bar:DefaultClient")
     * @var IndexClient
     */
    protected $indexClient;
}

Testing

Run the functional tests to check if the client is working. This requires a user with the credentials: unittest_user:unittest_user and access to the index dev_unittest_user_*.

FLOW_CONTEXT=Testing bin/phpunit -c Packages/Application/VentusForge.IndexManager/Tests/FunctionalTests.xml