📇
Catalogue API
  • Catalogue API
  • developers
  • How users request items
  • Search
    • Current queries
      • images
      • Query structure
    • Search
      • Changelog
      • Collecting data
      • Query design
      • Query design
      • wellcomecollection.org query development index
      • Reporting and metrics
      • Work IDs crib sheet
      • Analysis
        • Less than 3-word searches
        • Subsequent searches
        • Searches with 3 words or more
      • Hypotheses
        • Behaviours
        • Concepts, subject, and another field
        • Concepts, subjects with other field
        • Concepts, subjects
        • Contributor with other field
        • Contributors
        • Further research and design considerations
        • Genre with other field
        • Genres
        • Mood
        • Phrases
        • Reference number with other field
        • Reference numbers
        • Search scenarios
        • Synonymous names and subjects
        • Title with other field
        • Titles
      • Relevance tests
        • Test 1 - Explicit feedback
        • Test 2 - Implicit feedback
        • Test 3 - Adding notes
        • Test 4 - AND or OR
        • Test 5 - Scoring Tiers
        • Test 6 - English tokeniser and Contributors
        • Test 7 - BoolBoosted vs ConstScore
        • Test 8 - BoolBoosted vs PhaserBeam
    • Rank
      • Rank cluster
      • Developing with rank
      • Testing
Powered by GitBook
On this page
  • Dependencies
  • Running locally

developers

PreviousCatalogue APINextHow users request items

Last updated 3 months ago

Continuous integration

The build .

After a deployment to stage environment, we run against the stage API and then on the front-end pointing the production wellcomecollection.org at the stage catalogue API.

After a successful stage deployment we run the and wait for a user to review and .

We then run the same smoke & e2e tests pointed at production to confirm a successful deployment.

The CI flow looks as follows:

Dependencies

  • Java 1.8

  • Scala 2.12

  • SBT

  • Terraform

  • Docker

  • Make

Installing dependencies

curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"

Then install Java 11 with:

sdk install java 11.0.24-amzn

At the root of the project you should be able to use sbt to run the project as described below.

Running locally

You will need to have signed in to the AWS on the CLI to allow the application to assume the required role.

sbt "project search" "~reStart"
AWS_PROFILE=catalogue-developer sbt "project items" "~reStart"

You should then be able to access the APIs at:

  • http://localhost:8080/works: Seach

  • http://localhost:8081/items: Items

To specify a different pipeline index, you can set the pipelineDate environment variable for the search API:

pipelineDate=2021-01-01 sbt "project search" "~reStart"

We suggest using to manage Java versions. It can be installed with:

Currently only the search & items API can be run locally. It will use the configured pipeline index in .

To run with reloading of code changes using from the root of the repository:

SDKMAN
ElastiConfig.scala
sbt-revolver
current latest default branch
deploys to staging automatically
smoke tests
e2e tests
diff_tool
deploy to production
Buildkite pipelines