Skip to content

k-yomo/terraform-provider-algolia

Repository files navigation

Terraform Provider Algolia

License: MPL-2.0 Tests Workflow codecov Go Report Card

Terraform Provider for Algolia.

Documentation

Full, comprehensive documentation is available on the Terraform website:

https://registry.terraform.io/providers/k-yomo/algolia/latest/docs

Using the provider

Set an environment variable ALGOLIA_API_KEY to store your Algolia API key.

$ export ALGOLIA_API_KEY=<your api key>

The example below demonstrates the following operations:

  • create index
  • create rule for the index
  • create api key to search the index
terraform {
  required_providers {
    algolia = {
      source = "k-yomo/algolia"
      version = ">= 0.1.0, < 1.0.0"
    }
  }
}

provider "algolia" {
  app_id = "XXXXXXXXXX"
}

resource "algolia_index" "example" {
  name = "example"
  attributes_config {
    searchable_attributes = [
      "title",
      "category,tag",
      "unordered(description)",
    ]
    attributes_for_faceting = [
      "category"
    ]
    unretrievable_attributes = [
      "author_email"
    ]
    attributes_to_retrieve = [
      "title",
      "category",
      "tag",
      "description",
      "body"
    ]
  }

  ranking_config {
    ranking = [
      "words",
      "proximity"
    ]
  }

  faceting_config {
    max_values_per_facet = 50
    sort_facet_values_by = "alpha"
  }

  languages_config {
    remove_stop_words_for = ["en"]
  }
}

resource "algolia_rule" "example" {
  index_name = algolia_index.example.name
  object_id = "example-rule"

  conditions {
    pattern = "{facet:category}"
    anchoring = "contains"
  }

  consequence {
    params_json = jsondecode({
      automaticFacetFilters = {
        facet = "category"
        disjunctive = true
      }
    })
  }
}


resource "algolia_api_key" "example" {
  acl = [
    "search",
    "browse"
  ]
  expires_at = "2030-01-01T00:00:00Z"
  max_hits_per_query = 100
  max_queries_per_ip_per_hour = 10000
  description = "This is a example api key"
  indexes = [algolia_index.example.name]
  referers = ["https://algolia.com/\\*"]
}

Supported resources

Contributing

I appreciate your help!

To contribute, please read the Contributing to Terraform - Algolia Provider

Sponsor


ManoMano