Files
Dorod-Sky/skyvern/forge/sdk/routes/pylon.py
2025-06-24 17:45:07 -04:00

35 lines
958 B
Python

import hashlib
import hmac
import structlog
from fastapi import Query
from skyvern.config import settings
from skyvern.forge.sdk.routes.routers import base_router
from skyvern.forge.sdk.schemas.pylon import PylonHash
LOG = structlog.get_logger()
@base_router.get(
"/pylon/email_hash",
include_in_schema=False,
response_model=PylonHash,
)
def get_pylon_email_hash(email: str = Query(...)) -> PylonHash:
no_hash = "???-no-hash-???"
secret = settings.PYLON_IDENTITY_VERIFICATION_SECRET
if not secret:
LOG.error("No Pylon identity verification secret", email=email)
return PylonHash(hash=no_hash)
try:
secret_bytes = bytes.fromhex(secret)
signature = hmac.new(secret_bytes, email.encode(), hashlib.sha256).hexdigest()
return PylonHash(hash=signature)
except Exception:
LOG.exception("Failed to generate Pylon email hash", email=email)
return PylonHash(hash=no_hash)