1from plain.preflight import PreflightCheck, PreflightResult, register_check
2from plain.runtime import settings
3
4
5@register_check(name="connect.secret_key")
6class CheckConnectSecretKey(PreflightCheck):
7 def run(self) -> list[PreflightResult]:
8 if str(settings.CONNECT_SECRET_KEY):
9 return []
10 if not settings.CONNECT_PAGEVIEWS_PUBLIC_TOKEN:
11 return []
12 return [
13 PreflightResult(
14 fix=(
15 "CONNECT_PAGEVIEWS_PUBLIC_TOKEN is set but CONNECT_SECRET_KEY is empty. "
16 "Get the shared secret from the App settings page on Plain Cloud "
17 "and set CONNECT_SECRET_KEY in app/settings.py (or the "
18 "PLAIN_CONNECT_SECRET_KEY env var), or unset the token."
19 ),
20 id="connect.secret_key_missing",
21 warning=True,
22 )
23 ]