Skip to content

Latest commit

 

History

History
75 lines (54 loc) · 2.88 KB

File metadata and controls

75 lines (54 loc) · 2.88 KB

Contributing to knowledge-dataplane

knowledge-dataplane is an open-source Teradata field engineering project. Contributions are welcome from Teradata employees, customers, and the broader data engineering community.

Where to contribute

The most valuable contributions right now, in priority order:

1. New backend adapters The highest-value contribution. Pick a service interface and implement a new backend:

  • adapters/datahub/ — production catalog + lineage (stub exists, needs implementation)
  • adapters/openmetadata/ — improve the existing MVP adapter
  • adapters/airflow/ — Airflow orchestration adapter (alternative to Dagster)
  • adapters/prefect/ — Prefect orchestration adapter

Each adapter implements one of the four ABCs in core/. See the OpenMetadata adapter for a reference implementation.

2. Scaffold template improvements

  • Additional SLA tiers and quality thresholds
  • Industry-specific model templates (retail, finance, healthcare)
  • More dbt macros for common Teradata patterns

3. New demo scenarios

  • examples/retail-sales-dp/ — retail/ecommerce product for non-airline demos
  • examples/iot-telemetry-dp/ — streaming/sensor data product

4. Platform UI (platform/) React application using Refine + Tremor + React Flow. See docs/ui-architecture.md.

Development setup

git clone https://github.com/Teradata/knowledge-dataplane
cd knowledge-dataplane

# Install in development mode
pip install -e ".[all]"

# Run the test suite
pytest tests/

# Test the scaffold template
copier copy scaffold /tmp/test-dp --data product_name=test-dp \
  --data domain=test --data description="Test." \
  --data owner_email="test@test.com" --defaults

Adapter implementation guide

  1. Create adapters/<your-adapter>/ with __init__.py
  2. Import and subclass the relevant ABC from core/
  3. Implement all abstract methods — raise NotImplementedError for any you skip
  4. Add your adapter to _ADAPTER_MAP in core/__init__.py
  5. Add a config example to kdp.config.yaml
  6. Write at least one test in tests/adapters/test_<your_adapter>.py
  7. Open a PR — describe what backend you've implemented and any known limitations

Pull request checklist

  • New adapter: all abstract methods implemented or explicitly stubbed with NotImplementedError
  • Tests pass: pytest tests/
  • Scaffold template still generates cleanly: copier copy scaffold /tmp/test --defaults
  • kdp.config.yaml updated with new adapter option
  • README.md updated if new adapter changes the quick-start story

Code style

  • Python 3.11+, type hints throughout
  • ruff for linting (pip install ruff && ruff check .)
  • No external dependencies in core/ — it must be importable with only stdlib + pyyaml + requests
  • Adapter dependencies are optional extras in setup.py

Questions

Open a GitHub Discussion or reach out via the Teradata Developer Community.