github appbaseio/reactivesearch-api 9.4.0

pre-release6 hours ago

Summary

Feature release adding RS_SETUP_PROFILE tiers for lean deployments against external Elasticsearch/OpenSearch clusters (as few as 4 primary shards). Also includes Render one-click deploy with minimal-profile defaults, nil-safe guards when optional meta indices are skipped, and a binary publish workflow fix for Packer AMI builds. Bumps the default version to 9.4.0.


New features

Setup profiles (RS_SETUP_PROFILE)

Control which meta (system) Elasticsearch indices are created at startup. Unset defaults to full (backward compatible).

Profile Primary shards (fresh install) Indexes created
minimal 4 .users, .permissions, .pipelines, .pipeline_vars
standard 12 minimal + .synonyms, .searchrelevancy, .logs, .pipeline_logs, .pipeline_invocations, .analytics, .user_sessions, .analytics_preferences
full ~35–48 All meta indexes (current behavior)
  • Central registryutil/setup_profile.go with ShouldCreateMetaIndex() gates index creation across all plugins.
  • Shard reductionMetaIndexShards() forces 1 primary shard per index on minimal and standard; full keeps per-plugin defaults.
  • JWT on lean profiles.publickey is not created on minimal / standard; set JWT_RSA_PUBLIC_KEY_LOC for JWT auth instead.
  • Example configconfig/minimal.env.example for local testing.
  • Smoke testsscripts/smoke-minimal.sh validates auth, pipelines, pipeline vars, and ES proxy under the minimal profile.

Render one-click deploy

  • render.yaml blueprint — Docker web service with RS_SETUP_PROFILE=minimal, health check at /arc/health.
  • README — Deploy to Render button and pairing guide with Aiven free OpenSearch for a free end-to-end stack.
  • ES_CLUSTER_URL, USERNAME, and PASSWORD are prompted at deploy time (sync: false).

Fixes

  • Nil-safe lean profiles — Guard against panics when optional meta indices are not created:
    • Nodes plugin: skip .nodes index init and cron jobs; /arc/_health returns health: ok without node counts.
    • Pipelines: skip invocation record writes when .pipeline_invocations is absent.
    • Analytics / applycache middleware: skip persistence and cache-stats rollover when respective indices are absent.
  • Binary publish workflow — Restore rs-linux-ami.zip / rs-linux-cluster.zip asset names expected by Packer AMI upgrade.sh.

Configuration

Variable Description
RS_SETUP_PROFILE minimal, standard, or full (default: full)
JWT_RSA_PUBLIC_KEY_LOC Load JWT public key from disk when .publickey index is not created

See docs/env-vars.md for full setup profile documentation.


Build & release

  • Default version bumped from 9.3.09.4.0 (Makefile, Dockerfile).

Upgrade notes

  • Existing deployments — No action required. Unset RS_SETUP_PROFILE keeps full behavior identical to 9.3.0.
  • New lean / demo deployments — Set RS_SETUP_PROFILE=minimal when pointing at a shared or free-tier OpenSearch cluster (e.g. Aiven + Render). Only 4 meta indices are created; features like analytics, logs, rules, cache, and node tracking are unavailable until you move to standard or full.
  • Health endpoints/arc/health (upstream cluster ping, no auth) and /arc/_health (ARC node health) both work on minimal; _health returns node_count: 0 since .nodes is not created.

Don't miss a new reactivesearch-api release

NewReleases is sending notifications on new releases.