Skip to content

Commit e4448ad

Browse files
authored
Merge pull request #20 from abundant-ai/claude/fix-modal-preview-webhook-collision
Namespace Modal preview webhook subdomains per PR
2 parents 71c2dee + 97332b1 commit e4448ad

2 files changed

Lines changed: 6 additions & 1 deletion

File tree

backend/endpoints.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
API_CONCURRENCY_TARGET,
3030
API_MAX_CONTAINERS,
3131
API_MIN_CONTAINERS,
32+
API_WEBHOOK_LABEL,
3233
api_volumes,
3334
app,
3435
image,
@@ -52,7 +53,7 @@
5253
target_inputs=API_CONCURRENCY_TARGET,
5354
max_inputs=API_CONCURRENCY_MAX,
5455
)
55-
@modal.asgi_app(label="api")
56+
@modal.asgi_app(label=API_WEBHOOK_LABEL)
5657
def api_app():
5758
"""Single ASGI endpoint for all API routes."""
5859
return api

backend/modal_app.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,10 @@ def _env_int(name: str, default: int) -> int:
2222
MODAL_APP_NAME = os.environ.get("MODAL_APP_NAME", "oddish")
2323
MODAL_SECRET_ENVIRONMENT = os.environ.get("MODAL_SECRET_ENVIRONMENT", "main")
2424
RUNTIME_SECRET_NAME = "oddish-prod"
25+
# Per-app webhook label so PR previews don't collide on the shared
26+
# `{workspace}-{environment}--{label}.modal.run` subdomain. Production keeps
27+
# the historical "api" label; previews derive a unique one from the app name.
28+
API_WEBHOOK_LABEL = "api" if MODAL_APP_NAME == "oddish" else f"{MODAL_APP_NAME}-api"
2529
ENABLE_BACKGROUND_WORKERS = _env_flag("ODDISH_ENABLE_MODAL_WORKERS", True)
2630
API_MIN_CONTAINERS = _env_int("ODDISH_MODAL_API_MIN_CONTAINERS", 1)
2731
API_BUFFER_CONTAINERS = _env_int("ODDISH_MODAL_API_BUFFER_CONTAINERS", 16)

0 commit comments

Comments
 (0)