benchling_sdk.apps.helpers.webhook_helpers module¶
- class GetJwksFunction¶
Bases:
Protocol
Function for custom resolution of JWKs for an app.
- __init__(*args, **kwargs)¶
- class JwkUrlProvider¶
Bases:
Protocol
Function for custom URL for resolving JWKs by app.
Should generally never be used except in the event of specialized testing with internal Benchling.
- __init__(*args, **kwargs)¶
- exception WebhookVerificationError¶
Bases:
Exception
Webhook Verification Error.
Indicates a webhook from Benchling could not be verified.
Some reasons this could happen include: - An app developer misconfiguration (e.g., wrong app) - A webhook was received too late - The webhook did not originate from Benchling (possible attack vector)
- jwks_by_app(app_id: str, httpx_client: Optional[httpx.Client] = None, jwk_url_provider: Optional[JwkUrlProvider] = None) jwcrypto.jwk.JWKSet ¶
Get JWKs by App.
Retrieves a set of JWKs assigned to an app used to verify webhooks.
JWKs generally should not be resolved on their own. We recommend using webhook verification functions such as verify_app_installation().
This method is provided for specialized cases such as customizing the httpx client.
- verify_app_installation(app_id: str, data: str, headers: dict, jwk_function: Optional[GetJwksFunction] = None) None ¶
Verify a webhook for an app installation.
Verifies that a webhook was a valid webhook from Benchling. Raises WebhookVerificationError if the webhook could not be verified. Resolves JWKs from Benchling with default settings. Pass jwk_function for customization.
This method will eventually be replaced with verify(app_definition_id) once Benchling Apps have global JWKs available for their app definition id.