Skip to main content

yekta-sdk

Python SDK for the Yekta data catalog — credential vending, catalog browsing, access control.

Install

pip install yekta-sdk            # Core
pip install yekta-sdk[duckdb]    # + DuckDB integration
pip install yekta-sdk[polars]    # + Polars/Delta integration
pip install yekta-sdk[all]       # Everything

Quick Start

Browse the catalog

from yekta import YektaClient

client = YektaClient.from_env()  # reads YEKTA_URL, YEKTA_TOKEN

# List resources
for r in client.ls("/dev/bronze"):
    print(f"{r.path} ({r.format})")

# Preview data
df = client.preview_df("/dev/bronze/memotech/patents", rows=100)
df.head()

# Schema
schema = client.schema("/dev/bronze/memotech/patents")
for col in schema.columns:
    print(f"  {col.name}: {col.data_type}")

Get temporary credentials (the core feature)

from yekta import CredentialVendor

vendor = CredentialVendor.from_env()  # reads SEPAR_URL, SEPAR_API_KEY

# Vend a short-lived, scoped SAS token
cred = vendor.vend(
    connection_id="019c479e-...",
    resource_path="dev/bronze/memotech/fabric/memotech_imt_patent",
)

print(cred.expires_at)  # 1 hour from now
print(cred.is_expired)  # False

Use with DuckDB

import duckdb

conn = duckdb.connect()
conn.execute(cred.duckdb_secret())

df = conn.sql("""
    SELECT country, COUNT(*) as cnt
    FROM delta_scan('az://dagster-data-pipelines/dev/bronze/.../memotech_imt_patent')
    GROUP BY country ORDER BY cnt DESC
""").df()

Use with Polars

import polars as pl

df = pl.read_delta(
    cred.abfss_uri(),
    storage_options=cred.storage_options(),
)

Use with Spark

for key, value in cred.spark_config().items():
    spark.conf.set(key, value)

df = spark.read.format("delta").load(cred.abfss_uri())

Access control

# List grants
for g in client.grants():
    print(f"{g.path_prefix} → {g.principal_id}: {g.permission}")

# Grant read access
client.grant("/dev/bronze", principal_id="user-uuid", permission="read")

# Revoke
client.revoke(grant_id="...")

Environment Variables

Variable Default Description
YEKTA_URL http://localhost:8081 Yekta API URL
YEKTA_TOKEN — JWT token for authentication
SEPAR_URL http://localhost:8080 Separ auth URL
SEPAR_API_KEY — API key for service-to-service auth

License

Apache-2.0

Metadata

Release files for yekta-sdk 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for yekta-sdk 0.1.0
File Size Uploaded
yekta_sdk-0.1.0.tar.gz 10.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for yekta-sdk 0.1.0
File Interpreter ABI Platform
yekta_sdk-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 23.0 kB

Release files / yekta_sdk-0.1.0.tar.gz

Download URL yekta_sdk-0.1.0.tar.gz
Size 10.4 kB
Tags Source
SHA-256 checksum
How to use checksums
958055ecef64b04eb728a3274fb37e1df8f3ed1bac4a634b29993c4b2ead816b
BLAKE2b-256 checksum
How to use checksums
1c620ea5ef74a05e6f9b2468a40991a17ea4312a09cfa774541a06d68d461c74
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.3

Release files / yekta_sdk-0.1.0-py3-none-any.whl

Download URL yekta_sdk-0.1.0-py3-none-any.whl
Size 12.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
62079685fdc125304eb95d878e8db9f9c38e0c3c6e1c9260d965cec5d7e06080
BLAKE2b-256 checksum
How to use checksums
0ad1c6ce6baf1b37c4472df6f458d384e74a17ff85ca58e7136fbebf558d67fc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.3

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page