dp-search-reindex-api

command module
v0.14.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 24, 2021 License: MIT Imports: 11 Imported by: 0

README

dp-search-reindex-api

Provides detail about search reindex jobs and enables creation and running of them

Getting started
  • Set up dependencies locally as follows:

In dp-compose repo run docker-compose up -d to run MongoDB on port 27017.

NB. The above command will also run Site Wide ElasticSearch, on port 11200, which is required by the Search API.

Run vault server -dev (this is required by Zebedee)

In the zebedee repo run ./run.sh to run Zebedee

In the dp-search-api repo set the ELASTIC_SEARCH_URL environment variable as follows (to use the Site Wide ElasticSearch):

export ELASTIC_SEARCH_URL="http://localhost:11200"

Also in the dp-search-api repo run make debug

Make sure that you have a valid local SERVICE_AUTH_TOKEN environment variable value; if not then set one up by following these instructions: https://github.com/ONSdigital/zebedee

  • Then in the dp-search-reindex-api repo run make debug
Dependencies
  • Requires MongoDB running on port 27017
  • Requires Zebedee running on port 8082
  • Requires Search API running on port 23900
  • No further dependencies other than those defined in go.mod
Configuration
Environment variable Default Description
BIND_ADDR localhost:25700 The host and port to bind to (The http:// scheme prefix is added programmatically)
GRACEFUL_SHUTDOWN_TIMEOUT 20s The graceful shutdown timeout in seconds (time.Duration format)
HEALTHCHECK_INTERVAL 30s Time between self-healthchecks (time.Duration format)
HEALTHCHECK_CRITICAL_TIMEOUT 90s Time to wait until an unhealthy dependent propagates its state to make this app unhealthy (time.Duration format)
MAX_REINDEX_JOB_RUNTIME 3600s The maximum amount of time that a reindex job is allowed to run before another reindex job can be started
MONGODB_BIND_ADDR localhost:27017 The MongoDB bind address
MONGODB_JOBS_COLLECTION jobs MongoDB jobs collection
MONGODB_LOCKS_COLLECTION jobs_locks MongoDB locks collection
MONGODB_TASKS_COLLECTION tasks MongoDB tasks collection
MONGODB_DATABASE search The MongoDB search database
DEFAULT_MAXIMUM_LIMIT 1000 The maximum number of items to be returned in any list endpoint (to prevent performance issues)
DEFAULT_LIMIT 20 The default number of items to be returned from a list endpoint
DEFAULT_OFFSET 0 The number of items into the full list (i.e. the 0-based index) that a particular response is starting at
ZEBEDEE_URL http://localhost:8082 The URL to Zebedee (for authorisation)
TASK_NAME_VALUES dataset-api,zebedee The list of permissible values that can be used for the task_name when creating a new task for a reindex job
SEARCH_API_URL http://localhost:23900 The URL to the Search API (for creating new ElasticSearch indexes)
SERVICE_AUTH_TOKEN This is required to identify the Search Reindex API when it calls the Search API POST /search endpoint
Testing
  • Run the component tests with this command go test -component
  • Run the unit tests with this command make test
  • For all details of the service endpoints use a swagger editor such as this one to view the swagger specification

When running the service (see 'Getting Started') then one can use command line tool (cURL) or REST API client (e.g. Postman) to test the endpoints:

Contributing

See CONTRIBUTING for details.

License

Copyright © 2021, Office for National Statistics (https://www.ons.gov.uk)

Released under MIT license, see LICENSE for details.

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
api
features
steps
Package steps is used to define the steps that are used in the component test, which is written in godog (Go's version of cucumber).
Package steps is used to define the steps that are used in the component test, which is written in godog (Go's version of cucumber).

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL