Szybki start SDK Python digna 2026.06¶
Ta strona pokazuje minimalną konfigurację i podstawowe scenariusze pracy z klientem SDK Python digna. Potraktuj ją jako punkt wyjścia przed przejściem do stron referencyjnych o zasobach, modelach i błędach.
Tworzenie klucza API¶
Przed połączeniem się z SDK utwórz klucz API w interfejsie digna:
- Zaloguj się do digna w interfejsie.
- Otwórz profil użytkownika w lewym dolnym rogu.
- W profilu użytkownika kliknij API Keys.
- Kliknij Add API Key.
- Podaj zrozumiałą nazwę i ustaw datę wygaśnięcia. Klucz API możesz w każdej chwili unieważnić lub usunąć.
- Skopiuj wyświetlony klucz API do schowka. Klucz jest pokazywany tylko w momencie tworzenia.
Użyj klucza API jako tokenu SDK. Dobre sposoby przekazania go aplikacji to:
- Zmienna środowiskowa, na przykład
DIGNA_API_KEY, do pracy lokalnej i automatyzacji. - Magazyn sekretów w CI/CD, na przykład sekrety GitHub Actions, zmienne CI/CD w GitLab albo zmienne tajne Azure DevOps.
- Menedżer sekretów działający w czasie wykonania, na przykład sekrety Kubernetes, sekrety Docker, HashiCorp Vault albo magazyn sekretów dostawcy chmury.
Unikaj umieszczania kluczy API na stałe w kodzie źródłowym, notatnikach, historii powłoki oraz w plikach konfiguracyjnych trafiających do repozytorium.
Połączenie¶
import os
from digna_sdk import DignaClient
client = DignaClient(
base_url="http://localhost:8000", # your on-premises Digna backend
token=os.environ["DIGNA_API_KEY"],
)
Używaj DignaClient jako menedżera kontekstu, aby bazowa pula połączeń zamykała się automatycznie:
with DignaClient(base_url="http://localhost:8000", token="<token>") as client:
projects = client.projects.list()
Lista projektów¶
Tworzenie źródła danych¶
from digna_sdk.models import (
DataSourceModules,
DataSourceObject,
StableDataSourceKind,
StableDataSourceQueryMode,
)
data_source = client.data_sources.create(
project_id=1,
db_connection_id=10,
name="orders_table",
kind=StableDataSourceKind.TABLE,
query_mode=StableDataSourceQueryMode.SINGLE,
object=DataSourceObject(catalog_name="prod", schema_name="public", table_name="orders"),
modules=DataSourceModules(
data_analytics=True,
data_anomaly=True,
data_validation=True,
schema_tracker=False,
timeliness=False,
),
)
Wysłanie żądania inspekcji i oczekiwanie na jego zakończenie¶
import datetime
from digna_sdk import DignaInspectionRequestFailed
from digna_sdk.models import StableInspectionRequestMode
request = client.inspection_requests.submit(
project_id=1,
data_source_ids=[data_source.id],
start_date=datetime.date(2026, 1, 1),
end_date=datetime.date(2026, 1, 31),
mode=StableInspectionRequestMode.DAILY,
)
try:
client.inspection_requests.wait_until_finished(request.id, poll_interval=2.0, timeout=300.0)
except DignaInspectionRequestFailed as exc:
print(f"Inspection failed: {exc.status.value}")
# Once finished, retrieve the resulting statuses.
statuses = client.inspection_statuses.for_data_sources(
data_source_id=data_source.id,
start_date=datetime.date(2026, 1, 1),
end_date=datetime.date(2026, 1, 31),
)
Pełny przebieg wysłanie → odpytywanie → pobranie znajdziesz w pliku examples/inspection_flow.py w repozytorium.