Avinashnalla7 commited on
Commit
e9d6910
·
verified ·
1 Parent(s): 620250b

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +11 -17
app.py CHANGED
@@ -23,8 +23,12 @@ MAX_MESSAGES = int(os.getenv("MAX_MESSAGES", "200"))
23
  PERSIST_TO_FILE = os.getenv("PERSIST_TO_FILE", "0").strip() == "1"
24
  PERSIST_PATH = os.getenv("PERSIST_PATH", "webhook_messages.jsonl").strip()
25
 
26
- # Downstream wakeup server (IMPORTANT: this must be the base path, not ".../wakeup/wakeup")
27
- WAKEUP_URL = os.getenv("WAKEUP_URL", "http://163.245.192.149:8080/wakeup").strip().rstrip("/")
 
 
 
 
28
  RELAY_TIMEOUT = int(os.getenv("RELAY_TIMEOUT", "30"))
29
 
30
  # Dedupe window
@@ -114,6 +118,7 @@ def _norm(v: Any) -> str:
114
 
115
 
116
  def compute_fingerprint(payload: Dict[str, Any]) -> str:
 
117
  parts = {
118
  "event_type": _norm(payload.get("event_type")),
119
  "rid": _norm(payload.get("rid")),
@@ -205,14 +210,17 @@ async def webhook(
205
  now = _now_ts()
206
  _gc_seen(now)
207
 
 
208
  if not _norm(payload.get("sa_processing_state")):
209
  payload["sa_processing_state"] = "new"
210
 
 
211
  fp = _norm(payload.get("sa_fingerprint"))
212
  if not fp:
213
  fp = compute_fingerprint(payload)
214
  payload["sa_fingerprint"] = fp
215
 
 
216
  duplicate = fp in SEEN
217
  if not duplicate:
218
  SEEN[fp] = now
@@ -229,10 +237,6 @@ async def webhook(
229
  meta = {
230
  "client": request.client.host if request.client else None,
231
  "path": str(request.url.path),
232
- "headers": {
233
- "user-agent": request.headers.get("user-agent"),
234
- "content-type": request.headers.get("content-type"),
235
- },
236
  }
237
  _append_message(payload=payload, meta=meta, relay=relay_info)
238
  return JSONResponse(status_code=200, content=relay_info)
@@ -249,10 +253,6 @@ async def webhook(
249
  meta = {
250
  "client": request.client.host if request.client else None,
251
  "path": str(request.url.path),
252
- "headers": {
253
- "user-agent": request.headers.get("user-agent"),
254
- "content-type": request.headers.get("content-type"),
255
- },
256
  }
257
  _append_message(payload=payload, meta=meta, relay=relay_info)
258
  return JSONResponse(status_code=200, content=relay_info)
@@ -282,12 +282,6 @@ async def webhook(
282
  meta = {
283
  "client": request.client.host if request.client else None,
284
  "path": str(request.url.path),
285
- "headers": {
286
- "user-agent": request.headers.get("user-agent"),
287
- "content-type": request.headers.get("content-type"),
288
- WEBHOOK_TOKEN_HEADER: "***" if request.headers.get(WEBHOOK_TOKEN_HEADER) else None,
289
- "x-sa-signature": "***" if request.headers.get("x-sa-signature") else None,
290
- },
291
  }
292
 
293
  _append_message(payload=payload, meta=meta, relay=relay_info)
@@ -295,7 +289,7 @@ async def webhook(
295
 
296
 
297
  # -----------------------------------------------------------------------------
298
- # Gradio dashboard (mounted at /ui so it cannot break API routes)
299
  # -----------------------------------------------------------------------------
300
  def ui_status() -> str:
301
  return _safe_json_dumps(
 
23
  PERSIST_TO_FILE = os.getenv("PERSIST_TO_FILE", "0").strip() == "1"
24
  PERSIST_PATH = os.getenv("PERSIST_PATH", "webhook_messages.jsonl").strip()
25
 
26
+ # Downstream wakeup server
27
+ # IMPORTANT: This must be the *actual* endpoint. Example:
28
+ # http://163.245.192.149:8080/wakeup
29
+ WAKEUP_URL = os.getenv("WAKEUP_URL", "http://163.245.192.149:8080/wakeup").strip()
30
+ WAKEUP_URL = WAKEUP_URL.rstrip("/") # normalize to no trailing slash
31
+
32
  RELAY_TIMEOUT = int(os.getenv("RELAY_TIMEOUT", "30"))
33
 
34
  # Dedupe window
 
118
 
119
 
120
  def compute_fingerprint(payload: Dict[str, Any]) -> str:
121
+ # MVP fingerprint. Upgrade later to sha256(file_bytes) when you have file URL/bytes.
122
  parts = {
123
  "event_type": _norm(payload.get("event_type")),
124
  "rid": _norm(payload.get("rid")),
 
210
  now = _now_ts()
211
  _gc_seen(now)
212
 
213
+ # Default state
214
  if not _norm(payload.get("sa_processing_state")):
215
  payload["sa_processing_state"] = "new"
216
 
217
+ # Fingerprint
218
  fp = _norm(payload.get("sa_fingerprint"))
219
  if not fp:
220
  fp = compute_fingerprint(payload)
221
  payload["sa_fingerprint"] = fp
222
 
223
+ # Dedupe
224
  duplicate = fp in SEEN
225
  if not duplicate:
226
  SEEN[fp] = now
 
237
  meta = {
238
  "client": request.client.host if request.client else None,
239
  "path": str(request.url.path),
 
 
 
 
240
  }
241
  _append_message(payload=payload, meta=meta, relay=relay_info)
242
  return JSONResponse(status_code=200, content=relay_info)
 
253
  meta = {
254
  "client": request.client.host if request.client else None,
255
  "path": str(request.url.path),
 
 
 
 
256
  }
257
  _append_message(payload=payload, meta=meta, relay=relay_info)
258
  return JSONResponse(status_code=200, content=relay_info)
 
282
  meta = {
283
  "client": request.client.host if request.client else None,
284
  "path": str(request.url.path),
 
 
 
 
 
 
285
  }
286
 
287
  _append_message(payload=payload, meta=meta, relay=relay_info)
 
289
 
290
 
291
  # -----------------------------------------------------------------------------
292
+ # Gradio dashboard mounted at /ui (doesn't interfere with API routes)
293
  # -----------------------------------------------------------------------------
294
  def ui_status() -> str:
295
  return _safe_json_dumps(