benchling_sdk.apps.helpers.webhook_helpers module¶
- class GetJwksFunction¶
Bases:
Protocol
Function for custom resolution of JWKs for an app definition.
- __init__(*args, **kwargs)¶
- class HeadersMapping¶
Bases:
Protocol
A general type for objects that represent request headers.
This can be a dict, or any Mapping[str, str], or an instance of a class like Flaskâs Headers class which is dict-like to a limited degree.
- __init__(*args, **kwargs)¶
- class JwkUrlProvider¶
Bases:
Protocol
Function for custom URL for resolving JWKs by app definition id.
Should generally never be used except in the event of specialized testing with internal Benchling.
- __init__(*args, **kwargs)¶
- class LegacyGetJwksFunction¶
Bases:
Protocol
Function for custom resolution of JWKs for an app.
- __init__(*args, **kwargs)¶
- class LegacyJwkUrlProvider¶
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[LegacyJwkUrlProvider] = None) jwcrypto.jwk.JWKSet ¶
Get JWKs by App (Deprecated).
Please migrate to jwks_by_app_definition, which uses an appâs global app_definition_id.
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.
- jwks_by_app_definition(app_definition_id: str, httpx_client: Optional[httpx.Client] = None, jwk_url_provider: Optional[JwkUrlProvider] = None) jwcrypto.jwk.JWKSet ¶
Get JWKs for a Benchling App from its global app_definition_id.
Retrieves a set of JWKs assigned to an app definition used to verify webhooks.
JWKs generally should not be resolved on their own. We recommend using webhook verification functions such as verify().
This method is provided for specialized cases such as customizing the httpx client.
- verify(app_definition_id: str, data: str, headers: HeadersMapping, jwk_function: Optional[GetJwksFunction] = None) None ¶
Verify a webhook for a Benchling App from its global app_definition_id.
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.
The headers parameter can be a dict, or a dict-like object such as the Headers type from Flask.
- verify_app_installation(app_id: str, data: str, headers: HeadersMapping, jwk_function: Optional[LegacyGetJwksFunction] = None) None ¶
Verify a webhook for an app installation (Deprecated).
Please migrate to verify, which uses an appâs global app_definition_id.
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.