Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
51 commits
Select commit Hold shift + click to select a range
39bfe84
chore(deps): bump guardian/actions-riff-raff from 4.2.4 to 4.3.3
dependabot[bot] May 14, 2026
9c9ff95
WIP
lindseydew May 18, 2026
dd174a4
Define API endpoint for crop variations
lindseydew May 18, 2026
60010ce
Merge branch 'main' into ld/api-endpoint-for-image-crops
lindseydew May 20, 2026
b0f0ae3
Upgrade the amazon sdk libs
lindseydew May 21, 2026
556ac11
Remove auth from the endpoint
lindseydew May 21, 2026
c1924a5
Merge branch 'main' into ld/api-endpoint-for-image-crops
lindseydew May 21, 2026
5bcac47
Add a comment for the non-authed endpoint
lindseydew May 27, 2026
b09475a
Merge branch 'main' into ld/api-endpoint-for-image-crops
lindseydew May 27, 2026
01f057f
Merge pull request #4743 from guardian/ld/api-endpoint-for-image-crops
lindseydew May 27, 2026
68b9a97
Merge branch 'main' into ld/upgrade-amazon-sdk
lindseydew May 28, 2026
8d463fa
Update deprecated method
lindseydew May 28, 2026
e502d48
upgrade oidc-provider to latest v9
andrew-nowak May 28, 2026
be8e03b
Merge pull request #4745 from guardian/ld/upgrade-amazon-sdk
lindseydew May 28, 2026
e679789
Merge pull request #4748 from guardian/an/upgrade-oidc-provider
andrew-nowak May 28, 2026
740fc08
chore(deps): bump sbt/setup-sbt from 1.1.14 to 1.2.0
dependabot[bot] May 28, 2026
84fbfc1
split out query from chips and only embed query
ellenmuller Jun 1, 2026
f1f589b
make similar part of model and split out filteropt
ellenmuller Jun 2, 2026
98a1ee7
add chip filter opt
ellenmuller Jun 2, 2026
3f32dec
wire filteropt through to elasticsearch query
ellenmuller Jun 2, 2026
efbeb33
require a semantic text query in semantic mode
ellenmuller Jun 3, 2026
6ef668b
tidy up extracting semantic text query
ellenmuller Jun 3, 2026
21cbcf9
add case where there's a similar search + semantic text query
ellenmuller Jun 3, 2026
3246742
filter at knn stage to maximise knn results
ellenmuller Jun 3, 2026
50db9a5
don't collapse filters when in ai mode
ellenmuller Jun 3, 2026
9a0b0fa
Merge pull request #4751 from guardian/dependabot/github_actions/sbt/…
lindseydew Jun 4, 2026
7a4732e
remove inadvisable-metadata-backup script from repo
andrew-nowak Jun 4, 2026
b984bb1
Merge pull request #4754 from guardian/an/remove-metadata-backup
andrew-nowak Jun 4, 2026
f62a2c3
Merge pull request #4740 from guardian/dependabot/github_actions/guar…
lindseydew Jun 4, 2026
658eaab
refactor the filter checking and move into lib
ellenmuller Jun 4, 2026
dd7faf4
tidy up remove comments etc
ellenmuller Jun 4, 2026
434c4aa
Merge branch 'main' of github.com:guardian/grid into em-semantic-sear…
ellenmuller Jun 4, 2026
eb27ea3
add extra comment
ellenmuller Jun 5, 2026
ac30ea9
Apply suggestions from code review
ellenmuller Jun 5, 2026
ad855fc
tidy up
ellenmuller Jun 5, 2026
e7f9ed6
simplify filtering, action joe's comment
ellenmuller Jun 8, 2026
d2dcd2e
remove excessive frontend parsing
ellenmuller Jun 8, 2026
f0989cc
Add config option to allow exclusion of DenseVectorField embedding fr…
AndyKilmory Jun 8, 2026
1a1b3f5
add explicit error messages for filter parsing failures
ellenmuller Jun 8, 2026
04737da
Add in guard/check to protect against running AI search if embedding/…
AndyKilmory Jun 9, 2026
2d3295b
Merge branch 'main' into t3214-mappings-exclude-vectors
AndyKilmory Jun 9, 2026
1b34872
removing redundant return statements
AndyKilmory Jun 9, 2026
6626793
Merge branch 't3214-mappings-exclude-vectors' of github.com:bbc/grid …
AndyKilmory Jun 9, 2026
f9c74ca
use left right syntax instead
ellenmuller Jun 9, 2026
29a0bc1
add unit tests
ellenmuller Jun 9, 2026
c195930
update please enter a query text
ellenmuller Jun 9, 2026
b5a2698
amend update script to easily manage exclusion of denseVector mappings
AndyKilmory Jun 9, 2026
cdf30a5
Merge pull request #4752 from guardian/em-semantic-search-filtering
ellenmuller Jun 10, 2026
cc7803f
Merge branch 'main' into t3214-mappings-exclude-vectors
AndyKilmory Jun 11, 2026
b7fdc57
Adding in else clause to make branching intent and early return patte…
AndyKilmory Jun 11, 2026
29ffa00
Merge pull request #4758 from bbc/t3214-mappings-exclude-vectors
andrew-nowak Jun 12, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ jobs:
npm test
- name: Image Embedder bundling
run: ./scripts/embedder-deploy/build.sh
- uses: guardian/actions-riff-raff@v4.2.4
- uses: guardian/actions-riff-raff@v4.3.3
if: "! github.event.pull_request.head.repo.fork"
with:
githubToken: ${{ secrets.GITHUB_TOKEN }}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/sbt-dependency-graph.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ jobs:
java-version: 17
- name: Install sbt
id: sbt
uses: sbt/setup-sbt@3e125ece5c3e5248e18da9ed8d2cce3d335ec8dd # v1.1.14
uses: sbt/setup-sbt@4ed7b7ec4bfa2074fe48554c09e341267397247c # v1.2.0
- name: Submit dependencies
id: submit
uses: scalacenter/sbt-dependency-submission@f43202114d7522a4b233e052f82c2eea8d658134 # v3.2.1
Expand Down
4 changes: 2 additions & 2 deletions build.sbt
Original file line number Diff line number Diff line change
Expand Up @@ -76,8 +76,8 @@ Global / concurrentRestrictions := Seq(
Tags.limitAll(12)
)

val awsSdkVersion = "1.12.470"
val awsSdkV2Version = "2.42.25"
val awsSdkVersion = "1.12.797"
val awsSdkV2Version = "2.44.13"
val elastic4sVersion = "8.19.1"
val awsKclVersion = "3.4.3"
val okHttpVersion = "3.12.1"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ class SimpleSqsMessageConsumer (queueUrl: String, config: CommonConfig) {
new ReceiveMessageRequest(queueUrl)
.withWaitTimeSeconds(20) // Wait for maximum duration (20s) as per doc recommendation: http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-long-polling.html
.withMaxNumberOfMessages(1) // Pull 1 message at a time to avoid starvation
.withAttributeNames(attributeNames: _*)
.withMessageSystemAttributeNames(attributeNames: _*)
).getMessages.asScala.headOption

def deleteMessage(message: SQSMessage): Unit =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,8 @@ class CommonConfigWithElastic(resources: GridConfigResources) extends CommonConf
),
url = string("es6.url"),
shards = string("es6.shards").toInt,
replicas = string("es6.replicas").toInt
replicas = string("es6.replicas").toInt,
includeDenseVectorMappings = booleanOpt("es.includeDenseVectorMappings").getOrElse(true)
)

private val persistenceIdentifier = string("persistence.identifier")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ trait ElasticSearchClient extends ElasticSearchExecutions with GridLogging {

def shards: Int
def replicas: Int
def includeDenseVectorMappings: Boolean

lazy val client = {
logger.info("Connecting to Elastic 8: " + url)
Expand Down Expand Up @@ -146,7 +147,7 @@ trait ElasticSearchClient extends ElasticSearchExecutions with GridLogging {
"to remove the need for these: " + nonRecommendenedIndexSettingOverrides)

createIndex(index).
mapping(Mappings.imageMapping).
mapping(Mappings.imageMapping(includeDenseVectorMappings)).
analysis(IndexSettings.analysis).
settings(nonRecommendenedIndexSettingOverrides).
shards(shards).
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
package com.gu.mediaservice.lib.elasticsearch

case class ElasticSearchConfig(aliases: ElasticSearchAliases, url: String, shards: Int, replicas: Int)
case class ElasticSearchConfig(aliases: ElasticSearchAliases, url: String, shards: Int, replicas: Int, includeDenseVectorMappings: Boolean = true)
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import play.api.libs.json.{JsObject, Json}

object Mappings {

val imageMapping: MappingDefinition = {
def imageMapping(includeDenseVectorMappings: Boolean = true): MappingDefinition = {

// Non indexed fields stored as keywords can still participate in exists / has queries
def filemetaDataStringsAsKeyword: DynamicTemplateRequest = {
Expand Down Expand Up @@ -75,8 +75,7 @@ object Mappings {
leasesMapping("leases"),
collectionMapping("collections"),
esInfoMapping("esInfo"),
embeddingMapping("embedding"),
)
) ++ (if (includeDenseVectorMappings) Seq(embeddingMapping("embedding")) else Seq.empty)
)
}

Expand Down
2 changes: 1 addition & 1 deletion dev/oidc-provider/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM node:16
FROM node:24

WORKDIR /usr/src/app

Expand Down
2 changes: 1 addition & 1 deletion dev/oidc-provider/app.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
import { findAccountFunc } from "./find-account.js";
import { makeProvider } from "./make-provider.js";
// relative path to the users file within the localstack box ( to /etc/grid/users.json)
import USER_JSON from "../../../etc/grid/users.json" assert { type: "json" };
import USER_JSON from "../../../etc/grid/users.json" with { type: "json" };

const { DOMAIN, EMAIL_DOMAIN, OIDC_CLIENT_ID, OIDC_CLIENT_SECRET } =
process.env;
Expand Down
Loading
Loading