Install

Works with Drupal: ^10 || ^11

Using Composer to manage Drupal site dependencies

Alternative installation files

Download tar.gz 35.38 KB
MD5: 5b9cb6aa4712b40b8805f8f45e5d6b8a
SHA-1: 4b4e2909a5c4f970e1d247ba45d31449020adae4
SHA-256: 3c09e0f84c42261e3be23896cac256aa8e7598ae00504977c29b0a11b4e870ad
Download zip 49.39 KB
MD5: af171fe72f8164992b01bf1d3fd9ec90
SHA-1: ee2ecc08b36cbf262d91b88a08421bfe4cdffaad
SHA-256: 0c569d8f5836354258c24729da486af957f77331105da89555234018c768432c

Release notes

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog.

[1.0.0] - 2026-03-02

Added

  • Initial release of API Solr Indexer.
  • ApiIndexerSource config entity to store API source definitions.
  • ApiFetcher service: HTTP client supporting no-auth, Bearer token,
    HTTP Basic, OAuth2 Client Credentials (with State API caching), and
    API Key header authentication.
  • FieldMapper service: YAML-based field mapping with dot-notation for
    nested JSON, multiple aliases per field, pass-through, and explicit
    exclusion. Automatic ISO 8601 date conversion and split-by-separator
    for multivalued fields.
  • SolrItemIndexer service: pushes mapped items directly to a Search
    API Solr index via the Search API PHP client.
  • IndexerManager service: orchestrates fetching, mapping, and indexing
    with full pagination support (none, offset/limit, page/per_page,
    cursor, link/next-URL).
  • ApiData Search API datasource plugin: exposes mapped fields
    automatically in the Search API "Add fields" UI.
  • Batch API integration via IndexerBatch: progress bar in the browser,
    no PHP timeout risk even for tens of thousands of items.
  • Admin UI at /admin/config/search/api-solr-indexer:
    • List all sources with last-run timestamp and item count.
    • Per-source "Run now" action (CSRF-protected).
    • Global "Run all active sources" action.
  • Drush commands: api:solr:index-all, api:solr:index [source_id],
    api:solr:list.
  • Full CMI export support for all source configuration.
  • Compatible with Drupal 10 and 11, PHP 8.1+.
Created by: whereiam
Created on: 2 Mar 2026 at 21:23 UTC
Last updated: 2 Mar 2026 at 21:23 UTC
Bug fixes
New features

Other releases