Skip to content

Commit dd554ec

Browse files
committed
fix(tw): 🐛 wire CUSTOMER_JWT_SECRET + async-track queue into worker sandboxes
1 parent 73ad495 commit dd554ec

9 files changed

Lines changed: 30 additions & 2 deletions

File tree

scripts/tw/commands/refreshWarm.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import {
1818
REDIS_URL,
1919
SERVER_PORT,
2020
SQS_QUEUE_URL_V2,
21+
TRACK_ASYNC_SQS_QUEUE_URL,
2122
TRACK_SQS_QUEUE_URL,
2223
WARM_SANDBOX_PREFIX,
2324
} from "../constants.ts";
@@ -122,6 +123,7 @@ const buildWarmEnv = (): Record<string, string> => ({
122123
CACHE_V2_DRAGONFLY_URL: REDIS_URL,
123124
SQS_QUEUE_URL_V2,
124125
TRACK_SQS_QUEUE_URL,
126+
TRACK_ASYNC_SQS_QUEUE_URL,
125127
AUTUMN_DB_DIRECT: "1",
126128
TW_WORKER_MODE: "1",
127129
TW_SKIP_STRIPE_ACCOUNT: "1",

scripts/tw/commands/run.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,9 @@ import {
4848
REGISTRY_DIR,
4949
SERVER_PORT,
5050
SQS_QUEUE_URL_V2,
51+
TRACK_ASYNC_SQS_QUEUE_URL,
5152
TRACK_SQS_QUEUE_URL,
53+
TW_CUSTOMER_JWT_SECRET,
5254
TW_ENV,
5355
WARM_SANDBOX_PREFIX,
5456
WORKER_VCPUS,
@@ -642,6 +644,8 @@ const buildWorkerEnv = ({
642644
CACHE_V2_DRAGONFLY_URL: REDIS_URL,
643645
SQS_QUEUE_URL_V2,
644646
TRACK_SQS_QUEUE_URL,
647+
TRACK_ASYNC_SQS_QUEUE_URL,
648+
CUSTOMER_JWT_SECRET: TW_CUSTOMER_JWT_SECRET,
645649
// baked secrets (every worker).
646650
ENCRYPTION_IV: requireSecret("ENCRYPTION_IV"),
647651
ENCRYPTION_PASSWORD: requireSecret("ENCRYPTION_PASSWORD"),
@@ -734,6 +738,7 @@ const buildWarmEnv = (): Record<string, string> => ({
734738
CACHE_V2_DRAGONFLY_URL: REDIS_URL,
735739
SQS_QUEUE_URL_V2,
736740
TRACK_SQS_QUEUE_URL,
741+
TRACK_ASYNC_SQS_QUEUE_URL,
737742
AUTUMN_DB_DIRECT: "1",
738743
TW_WORKER_MODE: "1",
739744
TW_SKIP_STRIPE_ACCOUNT: "1",

scripts/tw/constants.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -180,3 +180,8 @@ export const CACHE_V2_DRAGONFLY_URL = REDIS_URL;
180180
export const ELASTICMQ_BASE_URL = `http://localhost:${ELASTICMQ_PORT}/000000000000`;
181181
export const SQS_QUEUE_URL_V2 = `${ELASTICMQ_BASE_URL}/autumn.fifo`;
182182
export const TRACK_SQS_QUEUE_URL = `${ELASTICMQ_BASE_URL}/autumn-track.fifo`;
183+
export const TRACK_ASYNC_SQS_QUEUE_URL = `${ELASTICMQ_BASE_URL}/autumn-track-async.fifo`;
184+
185+
/** Harness-only, ≥32 chars (customerJwt getSecret) so bad tokens 401 instead of 500. */
186+
export const TW_CUSTOMER_JWT_SECRET =
187+
"tw-test-customer-jwt-secret-0123456789abcdef";

scripts/tw/helpers/freestyle.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,9 @@ import {
4242
REDIS_URL,
4343
SERVER_PORT,
4444
SQS_QUEUE_URL_V2,
45+
TRACK_ASYNC_SQS_QUEUE_URL,
4546
TRACK_SQS_QUEUE_URL,
47+
TW_CUSTOMER_JWT_SECRET,
4648
WORKER_TIMEOUT_MS,
4749
} from "../constants.ts";
4850
import { READY_SENTINEL } from "../worker/boot.ts";
@@ -332,6 +334,8 @@ const warmServerEnv = (): Record<string, string> => {
332334
CACHE_V2_DRAGONFLY_URL: REDIS_URL,
333335
SQS_QUEUE_URL_V2,
334336
TRACK_SQS_QUEUE_URL,
337+
TRACK_ASYNC_SQS_QUEUE_URL,
338+
CUSTOMER_JWT_SECRET: TW_CUSTOMER_JWT_SECRET,
335339
ENCRYPTION_IV: requireSecret("ENCRYPTION_IV"),
336340
ENCRYPTION_PASSWORD: requireSecret("ENCRYPTION_PASSWORD"),
337341
BETTER_AUTH_SECRET: requireSecret("BETTER_AUTH_SECRET"),

scripts/tw/helpers/modalImage.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@
1212
* - Dragonfly → /opt/autumn-tw/bin/dragonfly
1313
* - goaws (native Go SQS, via crane) → /opt/autumn-tw/bin/goaws
1414
* - goaws config → /opt/autumn-tw/goaws/goaws.yaml (port 9324, AccountId
15-
* "000000000000", EnableDuplicates env-level, queues autumn.fifo + autumn-track.fifo)
15+
* "000000000000", EnableDuplicates env-level, queues autumn.fifo +
16+
* autumn-track.fifo + autumn-track-async.fifo)
1617
* - bun (pinned to .bun-version) → /usr/local/bin/bun, with `node` symlinked
1718
* to bun so the whole image runs on one runtime (ingress + native installs)
1819
*
@@ -149,6 +150,7 @@ export const buildBaseImage = (
149150
"' Port: 9324' ' Region: us-east-1' ' AccountId: \"000000000000\"' " +
150151
"' LogToFile: false' ' LogLevel: warn' ' EnableDuplicates: true' " +
151152
"' Queues:' ' - Name: autumn.fifo' ' - Name: autumn-track.fifo' " +
153+
"' - Name: autumn-track-async.fifo' " +
152154
`> ${TW_PREFIX}/goaws/goaws.yaml`,
153155
])
154156
// 6. bun → /usr/local/bin/bun (pinned to .bun-version, so `bun` resolves for

scripts/tw/image/build-base.sh

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -190,8 +190,9 @@ Local:
190190
Queues:
191191
- Name: autumn.fifo
192192
- Name: autumn-track.fifo
193+
- Name: autumn-track-async.fifo
193194
EOF
194-
log "Wrote goaws config to $GOAWS_CONF (autumn.fifo + autumn-track.fifo, dedup on)"
195+
log "Wrote goaws config to $GOAWS_CONF (autumn.fifo + autumn-track[-async].fifo, dedup on)"
195196

196197
# ---------------------------------------------------------------------------
197198
# 5. ClickHouse (optional — only when analytics tests are in scope).

scripts/tw/image/freestyle-base.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ Local:
6868
Queues:
6969
- Name: autumn.fifo
7070
- Name: autumn-track.fifo
71+
- Name: autumn-track-async.fifo
7172
YAML
7273

7374
echo "[freestyle-base] 6/7 bun (pinned to .bun-version) + node symlink"

scripts/tw/image/start-services.sh

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,13 @@ wait_for "PostgreSQL" "pg_isready -h localhost -p $PG_PORT" 60 "$LOG_DIR/pg.log"
127127
wait_for "Dragonfly" "redis-cli -p $DRAGONFLY_PORT PING" 60 "$LOG_DIR/dragonfly.log"
128128
wait_for "goaws" "$goaws_ready_probe" 120 "$LOG_DIR/goaws.log"
129129

130+
# Queues added after a base/warm snapshot was baked are missing from its
131+
# goaws.yaml — CreateQueue is idempotent, so ensure them on every boot.
132+
for queue in autumn.fifo autumn-track.fifo autumn-track-async.fifo; do
133+
curl -s -o /dev/null --data "Action=CreateQueue&QueueName=$queue&Version=2012-11-05" \
134+
"http://localhost:$ELASTICMQ_PORT/" || log "WARN: CreateQueue $queue failed"
135+
done
136+
130137
# ---------------------------------------------------------------------------
131138
# 4. ClickHouse (optional).
132139
# ---------------------------------------------------------------------------

scripts/tw/image/warmup.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ export CACHE_URL="$REDIS_URL"
5151
export CACHE_V2_DRAGONFLY_URL="$REDIS_URL"
5252
export SQS_QUEUE_URL_V2="http://localhost:${ELASTICMQ_PORT}/000000000000/autumn.fifo"
5353
export TRACK_SQS_QUEUE_URL="http://localhost:${ELASTICMQ_PORT}/000000000000/autumn-track.fifo"
54+
export TRACK_ASYNC_SQS_QUEUE_URL="http://localhost:${ELASTICMQ_PORT}/000000000000/autumn-track-async.fifo"
5455

5556
# Bypass Infisical for all DB CLI ops (env.ts:66-74): direct mode requires
5657
# DATABASE_URL injected, which we just set.

0 commit comments

Comments
 (0)