mcpField
D
data-catalog

data-catalog

github.com/alphaonedevData & databases44 installs
Repository

About data-catalog

data-catalog is a skill for managing metadata about data assets, intended for data engineering teams handling discovery, governance, and lineage. It provides CLI and REST API workflows for registering and searching assets and maintaining lineage.

Key features

  1. 01Register and update asset metadata
  2. 02Search by text or tags
  3. 03Track asset lineage
  4. 04Associate governance tags
  5. 05Connect to storage systems and databases

Use cases

  1. 01Catalog datasets in ETL workflows
  2. 02Audit data governance and access controls
  3. 03Trace origins and dependencies of data
  4. 04Register pipeline outputs automatically

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/alphaonedev/openclaw-graph --skill data-catalog

After installing, type/data-catalogin Claude Code to confirm it loaded.

Details

From the project README

data-catalog

Purpose

This skill manages metadata for data assets, enabling discovery, governance, and lineage tracking in data engineering workflows. It catalogs datasets, schemas, and dependencies to support data-driven projects.

When to Use

Use this skill when you need to track data assets in a project, such as during ETL processes, data governance audits, or when building data pipelines. Apply it in scenarios involving large-scale data repositories, compliance requirements, or collaborative data teams.

Key Capabilities

  • Register and update metadata for datasets using JSON structures, e.g., {"name": "sales_data", "schema": {"columns": ["id", "date"]}}.
  • Search and query assets via full-text or tag-based filters, supporting lineage queries like tracing data origins.
  • Enforce governance policies, such as access controls, by associating tags like "sensitive" to assets.
  • Generate lineage graphs in JSON format, e.g., {"source": "raw_logs", "target": "processed_reports"}.
  • Integrate with storage systems like S3 or databases, using connectors that require API keys via $DATA_CATALOG_API_KEY.

Usage Patterns

To use this skill, first authenticate with an environment variable like export DATA_CATALOG_API_KEY=your_key. Then, follow a pattern: initialize the catalog, register assets, query as needed, and handle updates. For pipelines, embed it in scripts to auto-register outputs. Always validate metadata before operations to avoid conflicts.

Common Commands/API

Use the dcatalog CLI or REST API for interactions. Authentication requires $DATA_CATALOG_API_KEY in requests.

  • CLI Commands:

    • Register an asset: dcatalog register --asset-name sales_data --type dataset --metadata '{"schema": ["id", "amount"]}' --api-key $DATA_CATALOG_API_KEY
    • Query assets: dcatalog search --query "sales" --tags metadata --limit 10
    • Update lineage: dcatalog update-lineage --source raw_data --target processed_data --relation depends_on
  • API Endpoints:

    • POST /api/v1/assets: Create a new asset. Example curl: curl -H "Authorization: Bearer $DATA_CATALOG_API_KEY" -d '{"name": "sales_data", "tags": ["metadata"]}' -X POST https://api.opencclaw.com/api/v1/assets
    • GET /api/v1/assets/search?query=sales: Search assets. Example: curl -H "Authorization: Bearer $DATA_CATALOG_API_KEY" https://api.opencclaw.com/api/v1/assets/search?query=sales
    • PUT /api/v1/lineage: Update lineage. Code snippet:
      import requests
      headers = {"Authorization": f"Bearer {os.environ['DATA_CATALOG_API_KEY']}"}
      response = requests.put('https://api.opencclaw.com/api/v1/lineage', headers=headers, json={"source": "raw_data", "target": "report"})
      

Config formats are JSON-based, e.g., for CLI config file (~/.dcatalog/config.json):
{"default_tags": ["data-governance"], "api_endpoint": "https://api.opencclaw.com"}

Integration Notes

Integrate this skill with data tools like Apache Airflow or AWS Glue by wrapping API calls in custom operators. For example, in a Python script, import the API client and pass $DATA_CATALOG_API_KEY. Ensure compatibility by matching schema versions; use JSON configs for mappings, e.g., link to S3 buckets via {"bucket": "my-bucket", "prefix": "data/"}. Test integrations in a sandbox environment before production.

Error Handling

Handle errors by checking HTTP status codes in API responses; for example, if status is 401, prompt for $DATA_CATALOG_API_KEY revalidation. For CLI, use try-catch in scripts:

try:
    subprocess.run(["dcatalog", "register", "--asset-name", "test"], check=True)
except subprocess.CalledProcessError as e:
    print(f"Error: {e.returncode} - {e.output}")

Common issues include invalid JSON metadata (fix by validating with json.loads() before sending) or authentication failures (retry with refreshed keys). Log errors with timestamps for debugging.

Graph Relationships

  • Related Cluster: data-engineering
  • Connected Tags: metadata, data-governance, data-discovery
  • Dependencies: Often links to skills in storage or processing clusters, e.g., for data ingestion or transformation.

Comments

Markdown supported