feat: introduce pydantic-settings for config definition and validation (#5202)

Co-authored-by: -LAN- <laipz8200@outlook.com>
This commit is contained in:
Bowen Liang
2024-06-19 13:41:12 +08:00
committed by GitHub
parent d160d1ed02
commit 3cc6093e4b
21 changed files with 772 additions and 227 deletions

View File

@@ -0,0 +1,12 @@
from pydantic import BaseModel
from configs.extra.notion_configs import NotionConfigs
from configs.extra.sentry_configs import SentryConfigs
class ExtraServiceConfigs(
# place the configs in alphabet order
NotionConfigs,
SentryConfigs,
):
pass

View File

@@ -0,0 +1,33 @@
from typing import Optional
from pydantic import BaseModel, Field
class NotionConfigs(BaseModel):
"""
Notion integration configs
"""
NOTION_CLIENT_ID: Optional[str] = Field(
description='Notion client ID',
default=None,
)
NOTION_CLIENT_SECRET: Optional[str] = Field(
description='Notion client secret key',
default=None,
)
NOTION_INTEGRATION_TYPE: Optional[str] = Field(
description='Notion integration type, default to None, available values: internal.',
default=None,
)
NOTION_INTERNAL_SECRET: Optional[str] = Field(
description='Notion internal secret key',
default=None,
)
NOTION_INTEGRATION_TOKEN: Optional[str] = Field(
description='Notion integration token',
default=None,
)

View File

@@ -0,0 +1,23 @@
from typing import Optional
from pydantic import BaseModel, Field, PositiveFloat
class SentryConfigs(BaseModel):
"""
Sentry configs
"""
SENTRY_DSN: Optional[str] = Field(
description='Sentry DSN',
default=None,
)
SENTRY_TRACES_SAMPLE_RATE: PositiveFloat = Field(
description='Sentry trace sample rate',
default=1.0,
)
SENTRY_PROFILES_SAMPLE_RATE: PositiveFloat = Field(
description='Sentry profiles sample rate',
default=1.0,
)