Unified toolkit for Quilt workflows.
Project description
quiltx
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ea29124ff1cb996074eb78717e70e46fd8ac4da552c9d4542d2ae8d5eb3251a7
|
|
| MD5 |
a47bb0f103d650f8bbff48420231892f
|
|
| BLAKE2b-256 |
35f3dc2bdf65a0a459148538228ca80d401623721722e1c22fcdb7d080c33c1d
|
Provenance
The following attestation bundles were made for quiltx-0.6.0.tar.gz:
Publisher:
publish.yml on quiltdata/quiltx
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
quiltx-0.6.0.tar.gz -
Subject digest:
ea29124ff1cb996074eb78717e70e46fd8ac4da552c9d4542d2ae8d5eb3251a7 - Sigstore transparency entry: 1270490115
- Sigstore integration time:
-
Permalink:
quiltdata/quiltx@5827ad0f9bb155932f4f3e9a122229245bb754b7 -
Branch / Tag:
refs/tags/v0.6.0 - Owner: https://github.com/quiltdata
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@5827ad0f9bb155932f4f3e9a122229245bb754b7 -
Trigger Event:
push
-
Statement type:
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
467fd0974367c5e610ea863ce722964f221dbf7e0e320e3ca3196c6732130fe0
|
|
| MD5 |
27462d08a144a375f564b49d570ee53f
|
|
| BLAKE2b-256 |
9cc15d82eeff8b38d8b3653d049f871d9d8e9524a15d889cfa35ee8000607f95
|
Provenance
The following attestation bundles were made for quiltx-0.6.0-py3-none-any.whl:
Publisher:
publish.yml on quiltdata/quiltx
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
quiltx-0.6.0-py3-none-any.whl -
Subject digest:
467fd0974367c5e610ea863ce722964f221dbf7e0e320e3ca3196c6732130fe0 - Sigstore transparency entry: 1270490130
- Sigstore integration time:
-
Permalink:
quiltdata/quiltx@5827ad0f9bb155932f4f3e9a122229245bb754b7 -
Branch / Tag:
refs/tags/v0.6.0 - Owner: https://github.com/quiltdata
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@5827ad0f9bb155932f4f3e9a122229245bb754b7 -
Trigger Event:
push
-
Statement type: