Skip to main content

Unified toolkit for Quilt workflows.

Project description

quiltx

PyPI

Quilt extension toolkit for working with Quilt catalogs.

Quick start

# See available tools
uvx quiltx

# Configure a Quilt catalog
uvx quiltx stack catalog https://open.quiltdata.com

# Get help for any tool
uvx quiltx <tool> --help

Tools

  • bucket — Register cross-account S3 buckets with Quilt (policy, SNS, notifications)
  • ecs — Interactive shell access to running ECS tasks via Session Manager
  • logs — Display and tail CloudWatch logs for the configured catalog
  • stack — Manage Quilt stack:
    • stack acl — Declarative access-control-list (ACL) reconciliation from YAML
    • stack catalog — Configure and display Quilt catalog settings
    • stack cfn — Discover the Quilt CloudFormation stack and cache metadata

Stack ACL

quiltx stack acl declaratively manages a Quilt stack's access control lists (ACLs) — buckets, policies, roles, and SSO mappings — from a single YAML file. Instead of clicking through the catalog admin UI, you define the desired state in version-controlled YAML and let the tool reconcile it against the server.

YAML example

# Access control lists for a Quilt stack
bucket_policies:
  public:
    read:
      - quilt-example
  internal:
    read_write:
      - quilt-bake
      - quilt-dev
    read:
      - quilt-leadership

roles:
  visitor:
    bucket_policies: [public]
  member:
    bucket_policies: [public, internal]
    default: true          # assigned to new users

sso:
  - match:
      groups: Employees
    roles: [member]
    admin: true
  - match:
      groups: Everyone
    roles: [visitor]

CLI usage

# Show current server ACL state
uvx quiltx stack acl

# Preview changes (dry run)
uvx quiltx stack acl config.yml --dry-run

# Preview with full detail
uvx quiltx stack acl config.yml --dry-run --verbose

# Apply changes (with confirmation prompt)
uvx quiltx stack acl config.yml

# Apply without prompting
uvx quiltx stack acl config.yml --yes

Python API

from quiltx import (
    parse_acl_config,
    fetch_current_state,
    compute_diff,
    print_diff,
    apply_acl,
)

config = parse_acl_config("config.yml")
current = fetch_current_state()
diff = compute_diff(config, current)
print_diff(diff, verbose=True, desired=config, current=current)

if diff.has_changes():
    apply_acl(diff, current)

Config and stack API

from quiltx import get_catalog_url, get_catalog_region, set_catalog_url
from quiltx.stack import find_matching_stack

set_catalog_url("https://open.quiltdata.com")
print(get_catalog_url())     # https://open.quiltdata.com
print(get_catalog_region())  # us-east-1

stack = find_matching_stack(get_catalog_url())
print(stack["StackName"])

Persistent install (optional)

uv tool install -U quiltx
# Now use without the uvx prefix:
quiltx --list

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

quiltx-0.6.0.tar.gz (191.1 kB view details)

Uploaded Source

Built Distribution

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

quiltx-0.6.0-py3-none-any.whl (48.9 kB view details)

Uploaded Python 3

File details

Details for the file quiltx-0.6.0.tar.gz.

File metadata

  • Download URL: quiltx-0.6.0.tar.gz
  • Upload date:
  • Size: 191.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for quiltx-0.6.0.tar.gz
Algorithm Hash digest
SHA256 ea29124ff1cb996074eb78717e70e46fd8ac4da552c9d4542d2ae8d5eb3251a7
MD5 a47bb0f103d650f8bbff48420231892f
BLAKE2b-256 35f3dc2bdf65a0a459148538228ca80d401623721722e1c22fcdb7d080c33c1d

See more details on using hashes here.

Provenance

The following attestation bundles were made for quiltx-0.6.0.tar.gz:

Publisher: publish.yml on quiltdata/quiltx

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file quiltx-0.6.0-py3-none-any.whl.

File metadata

  • Download URL: quiltx-0.6.0-py3-none-any.whl
  • Upload date:
  • Size: 48.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for quiltx-0.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 467fd0974367c5e610ea863ce722964f221dbf7e0e320e3ca3196c6732130fe0
MD5 27462d08a144a375f564b49d570ee53f
BLAKE2b-256 9cc15d82eeff8b38d8b3653d049f871d9d8e9524a15d889cfa35ee8000607f95

See more details on using hashes here.

Provenance

The following attestation bundles were made for quiltx-0.6.0-py3-none-any.whl:

Publisher: publish.yml on quiltdata/quiltx

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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