-
Notifications
You must be signed in to change notification settings - Fork 122
Expand file tree
/
Copy pathadmin_api.py
More file actions
25 lines (19 loc) · 1 KB
/
admin_api.py
File metadata and controls
25 lines (19 loc) · 1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
from __future__ import annotations
from dbt_mcp.config.headers import AdminApiHeadersProvider
from .base import AdminApiConfig, ConfigProvider, CredentialsProviderProtocol
class DefaultAdminApiConfigProvider(ConfigProvider[AdminApiConfig]):
def __init__(self, credentials_provider: CredentialsProviderProtocol):
self.credentials_provider = credentials_provider
async def get_config(self) -> AdminApiConfig:
settings, token_provider = await self.credentials_provider.get_credentials()
assert settings.actual_host and settings.dbt_account_id
if settings.actual_host_prefix:
url = f"https://{settings.actual_host_prefix}.{settings.base_host}"
else:
url = f"https://{settings.actual_host}"
return AdminApiConfig(
url=url,
headers_provider=AdminApiHeadersProvider(token_provider=token_provider),
account_id=settings.dbt_account_id,
prod_environment_id=settings.actual_prod_environment_id,
)