feat: serve run and log search from any instance, not just the indexer

Adds concurrency_locks.owner_addr, where the indexer advertises a base URL
other instances can reach it on, so searching no longer requires the ingress
to pin /api/srch/* to the indexer pod (WIN-1968).

Bumps the EE ref for windmill-ee-private#feat-indexer-search-proxy.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V2vNYVA1Jc9rrfqCPN6eKg
This commit is contained in:
Ruben Fiszel
2026-08-26 23:57:22 +00:00
co-authored by Claude Opus 5
parent c04b570574
commit a787496c21
6 changed files with 66 additions and 1 deletions
@@ -0,0 +1,16 @@
{
"db_name": "PostgreSQL",
"query": "INSERT INTO concurrency_locks (id, last_locked_at, owner, owner_addr)\n VALUES ($1, now(), $2, $3)\n ON CONFLICT (id)\n DO UPDATE SET\n last_locked_at = now(),\n owner = EXCLUDED.owner,\n owner_addr = EXCLUDED.owner_addr",
"describe": {
"columns": [],
"parameters": {
"Left": [
"Varchar",
"Varchar",
"Varchar"
]
},
"nullable": []
},
"hash": "15b0f7ca74a6f769ff7281651b5b062ea40a286151810c3e89d931f352daaf95"
}
@@ -0,0 +1,28 @@
{
"db_name": "PostgreSQL",
"query": "SELECT last_locked_at, owner_addr FROM concurrency_locks WHERE id = $1",
"describe": {
"columns": [
{
"ordinal": 0,
"name": "last_locked_at",
"type_info": "Timestamp"
},
{
"ordinal": 1,
"name": "owner_addr",
"type_info": "Varchar"
}
],
"parameters": {
"Left": [
"Text"
]
},
"nullable": [
false,
true
]
},
"hash": "1ff3d43899a63d5f56450d8edfc741e2a4823ac287cb94b17c42277c67513b53"
}
@@ -0,0 +1,16 @@
{
"db_name": "PostgreSQL",
"query": "UPDATE concurrency_locks SET\n last_locked_at = now(),\n owner_addr = $3\n WHERE id = $1 AND owner = $2",
"describe": {
"columns": [],
"parameters": {
"Left": [
"Text",
"Text",
"Varchar"
]
},
"nullable": []
},
"hash": "a500d9496c643c0107a77e9debc8eae8db9cc8b5de08003b469f1fae72398921"
}
+1 -1
View File
@@ -1 +1 @@
d6aef91c0f7ba556befbf4addeb7674d4a9dd819
8943367fd141b96fe86a2632f2f94885140ae345
@@ -0,0 +1 @@
ALTER TABLE concurrency_locks DROP COLUMN IF EXISTS owner_addr;
@@ -0,0 +1,4 @@
-- The indexer records the base URL other instances can reach it on, so a server
-- instance without an in-memory index reader can forward search requests to it
-- instead of requiring the ingress to pin /api/srch/* to the indexer pod.
ALTER TABLE concurrency_locks ADD COLUMN IF NOT EXISTS owner_addr VARCHAR;