Skip to main content

Shared utilities for Kibana operations, authentication, and workflows

Project description

kb-dashboard-tools

Shared utilities for Kibana operations, authentication, and workflows. This package provides common functionality used across the kb-yaml-to-lens ecosystem, including CLI tools, Language Server Protocol (LSP) servers, and future MCP servers.

Features

  • KibanaClient: HTTP client for interacting with Kibana's Saved Objects API and Elasticsearch APIs
  • Authentication utilities: Credential normalization and URL redaction for safe logging
  • Result pattern: Type-safe error handling without exceptions
  • ES|QL support: Models for ES|QL query execution and results

Installation

pip install kb-dashboard-tools

Usage

Kibana Client

from kb_dashboard_tools import KibanaClient

# Note: ssl_verify=False is only for local development with self-signed certificates.
# Always use ssl_verify=True (the default) in production environments.
async with KibanaClient(
    url='https://localhost:5601',
    username='elastic',
    password='changeme',
    ssl_verify=False,  # Only for local dev with self-signed certs
) as client:
    # Upload a dashboard
    result = await client.upload_ndjson('dashboard.ndjson')

    # Execute ES|QL query
    esql_result = await client.execute_esql('FROM logs | LIMIT 10')
    print(f'Found {esql_result.row_count} rows')

Authentication Utilities

from kb_dashboard_tools import normalize_credentials, redact_url

# Normalize credentials (converts empty strings to None)
api_key = normalize_credentials(user_input)

# Redact credentials from URLs for safe logging
safe_url = redact_url('https://user:pass@example.com:9200/path')
# Returns: 'https://example.com:9200/path'

Result Pattern

from kb_dashboard_tools import Result

def divide(a: int, b: int) -> Result[float]:
    if b == 0:
        return Result.fail('Division by zero')
    return Result.ok(a / b)

result = divide(10, 2)
if result.success:
    print(f'Result: {result.unwrap()}')
else:
    print(f'Error: {result.error}')

Development

See the main repository's DEVELOPING.md for development setup.

# Install dependencies
make install

# Run CI checks
make ci

# Run tests
make test

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

kb_dashboard_tools-0.2.4.tar.gz (13.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

kb_dashboard_tools-0.2.4-py3-none-any.whl (13.7 kB view details)

Uploaded Python 3

File details

Details for the file kb_dashboard_tools-0.2.4.tar.gz.

File metadata

  • Download URL: kb_dashboard_tools-0.2.4.tar.gz
  • Upload date:
  • Size: 13.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for kb_dashboard_tools-0.2.4.tar.gz
Algorithm Hash digest
SHA256 065bca14a9ef1f3ab4dda8fb28f73bd98fec8186395e181c579404922ef71133
MD5 8e73abcbfd14273ad83fb3bc9b5801d7
BLAKE2b-256 714bb94c862c898cf54f6a12d612a055a1452f64b0da3a227a3e4d838be682b2

See more details on using hashes here.

File details

Details for the file kb_dashboard_tools-0.2.4-py3-none-any.whl.

File metadata

  • Download URL: kb_dashboard_tools-0.2.4-py3-none-any.whl
  • Upload date:
  • Size: 13.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for kb_dashboard_tools-0.2.4-py3-none-any.whl
Algorithm Hash digest
SHA256 358f3b7ec4e9e077c8dfa06edadbf32cb0b7f8be38a761ddd9ba1bca03e725e9
MD5 de101f82de6379720b7f7ccab16fd33d
BLAKE2b-256 cf1a6cccb9d6649bf76cf3deb1b31d2cd9929f0d80d669e149759a7ccf016d2b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page