CharlieBoyer HF Staff commited on
Commit
0d8c9ef
·
1 Parent(s): a795803

add app file

Browse files
Files changed (4) hide show
  1. Dockerfile +13 -0
  2. README.md +4 -4
  3. app.py +46 -0
  4. requirements.txt +4 -0
Dockerfile ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ FROM python:3.9
2
+
3
+ RUN useradd -m -u 1000 user
4
+ USER user
5
+ ENV PATH="/home/user/.local/bin:$PATH"
6
+
7
+ WORKDIR /app
8
+
9
+ COPY --chown=user ./requirements.txt requirements.txt
10
+ RUN pip install --no-cache-dir --upgrade -r requirements.txt
11
+
12
+ COPY --chown=user . /app
13
+ CMD ["uvicorn", "app:app", "--host", "0.0.0.0", "--port", "7860"]
README.md CHANGED
@@ -1,8 +1,8 @@
1
  ---
2
- title: Rg Demo
3
- emoji: 🌖
4
- colorFrom: pink
5
- colorTo: indigo
6
  sdk: docker
7
  pinned: false
8
  ---
 
1
  ---
2
+ title: Cdcsc
3
+ emoji: 🐨
4
+ colorFrom: green
5
+ colorTo: green
6
  sdk: docker
7
  pinned: false
8
  ---
app.py ADDED
@@ -0,0 +1,46 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import hmac
2
+ from hashlib import sha256
3
+ from typing import Dict, Any
4
+ from fastapi import FastAPI, Header, HTTPException, Request, Response
5
+ from huggingface_hub import HfApi
6
+ import os
7
+
8
+
9
+ # --- Configuration ---
10
+ # Load from Space secrets
11
+ WEBHOOK_SECRET = os.environ.get("WEBHOOK_SECRET")
12
+ HF_TOKEN = os.environ.get("HF_TOKEN")
13
+ RESOURCE_GROUP_ID = os.environ.get("RESOURCE_GROUP_ID")
14
+
15
+ if not all([WEBHOOK_SECRET, HF_TOKEN, RESOURCE_GROUP_ID]):
16
+ raise ValueError("Missing one or more required environment variables: WEBHOOK_SECRET, HF_TOKEN, RESOURCE_GROUP_ID")
17
+
18
+ app = FastAPI()
19
+
20
+
21
+ hf_api = HfApi(token=os.getenv("HF_TOKEN"))
22
+
23
+
24
+ # --- Webhook validation ---
25
+ async def validate_webhook(request: Request, x_webhook_secret: str = Header(...)):
26
+ if not x_webhook_secret:
27
+ raise HTTPException(status_code=400, detail="X-Webhook-Secret header is missing")
28
+
29
+ # Make sure the secret matches
30
+ if x_webhook_secret != WEBHOOK_SECRET:
31
+ raise HTTPException(status_code=401, detail="Invalid webhook secret")
32
+
33
+ # --- Webhook endpoint ---
34
+ @app.get("/webhook")
35
+ def webhook_endpoint():
36
+
37
+ # path_to_call = f"/api/models/{MODEL_REPO_ID}/resource-group"
38
+ payload = {"resourceGroupId": RESOURCE_GROUP_ID}
39
+
40
+ response = hf_api.get_user_overview(username="CharlieBoyer", token=HF_TOKEN)
41
+ print(response)
42
+ return {"status": "event_not_handled"}
43
+
44
+ @app.get("/")
45
+ def health_check():
46
+ return "Webhook listener is running."
requirements.txt ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ fastapi
2
+ uvicorn
3
+ huggingface_hub
4
+ loguru