feat: ConnectWise PSA integration (#106)
PSA abstraction layer with provider pattern, ConnectWise integration (connection management, ticket linking, note posting, status updates, member mapping), Integrations page UI, Fernet credential encryption, in-memory TTL cache, 6 DB migrations, ConnectWise API reference docs.
This commit was merged in pull request #106.
This commit is contained in:
@@ -119,6 +119,16 @@ class Settings(BaseSettings):
|
||||
"""Check if any AI provider is configured."""
|
||||
return self.ANTHROPIC_API_KEY is not None or self.GOOGLE_AI_API_KEY is not None
|
||||
|
||||
# ConnectWise PSA Integration
|
||||
# CW_CLIENT_ID is a product-level GUID registered at developer.connectwise.com
|
||||
# All MSP customers share this single clientId — it identifies ResolutionFlow as the integration
|
||||
CW_CLIENT_ID: Optional[str] = None
|
||||
|
||||
@property
|
||||
def cw_enabled(self) -> bool:
|
||||
"""Check if ConnectWise integration is configured."""
|
||||
return self.CW_CLIENT_ID is not None
|
||||
|
||||
# Monitoring
|
||||
SENTRY_DSN: Optional[str] = None
|
||||
|
||||
|
||||
Reference in New Issue
Block a user