Skip to main content

StrataCTL — bootstrap StrataCI into a customer AWS account and install/update/uninstall StrataBI modules via an ephemeral CodeBuild runner.

Project description

StrataCTL

The local command-line tool for operators. It installs, updates, and removes StrataBI modules and the StrataBI platform in your AWS account, fetches the account-entitled runtime, and version-controls dashboards. It runs on your machine with your own AWS credentials — it is not a hosted service.

The same strata package is also the runner program that executes inside the ephemeral CodeBuild runner (python -m strata.runner).

Install

python3 -m venv ~/.venvs/strata && source ~/.venvs/strata/bin/activate
pip install -e .            # from this directory; exposes the `stratactl` command
stratactl --help

Configure

strata init collects a deployment's configuration into strata.yaml (the source of truth) and generates the Terraform variable files — you don't hand-edit .tfvars.

stratactl init                     # interactive; re-run to reuse answers + fill gaps
stratactl init --non-interactive   # config + defaults only (automation)

Settings resolve in this precedence (highest first): CLI flag → env (STRATA_*) → ./.stratactl.toml~/.stratactl/config.toml → AWS SSM (/strataci/hq/*) → packaged defaults. Point it at a customer account by pasting the stratactl_customer_config output from strataci-runner into your config, and set your license token:

export STRATA_HQ_TOKEN=<your license token>

AWS credentials come from your normal profile/keys (--profile, AWS_PROFILE, env). What you can deploy is governed by your own IAM in the target account.

Commands

stratactl init                            # configure a deployment (writes strata.yaml + tfvars)
stratactl fetch-runtime --version 1.0.0   # pull the account-entitled runtime wheel -> ./dist (verified)
stratactl install <module>                # entitlement -> runner -> tofu apply, in your account
stratactl install-stratabi                # install the StrataBI platform (Enterprise)
stratactl install-stratabi-dev            # install the Developer/Community edition
stratactl update <module> --to <version>
stratactl uninstall <module>              # runs the module's tofu destroy (always available)
stratactl list                            # what's installed + delivery mode
stratactl logs <job-id>                   # tail/replay a runner build
stratactl dashboards push <file>          # validate + upload a dashboard to analyst/dashboards/
stratactl dashboards pull|list|diff       # dashboards-as-code: git-sync the registered set

--source stratahq (default) fetches a signed bundle from Shaleio's control plane; --source customer_s3 installs from your own bucket (offline / air-gapped).

dashboards resolves the system bucket + git-registry table from the recorded dev install (no manual config). A plain push <file> needs only the bucket and validates against the packaged schema; the git-sync flow (--new/pull/diff) uses the registry for version control.

End-to-end: deploy StrataBI Enterprise

# 0. one-time per account: scaffold the runner  (see ../strataci-runner)
# 1. build the runtime container image          (see ../build_template)  -> ECR image URI
# 2. configure + deploy:
export STRATA_HQ_TOKEN=<token>
stratactl init            # set stratabi_image=<ECR URI>, vpc_id, subnets, allowed_ip_cidrs
stratactl install-stratabi
stratactl list

Your strata init values ride through to the ephemeral runner automatically (the CLI uploads them; the runner applies them over the bundle's baked defaults), so the platform deploys with your networking/image without any manual .tfvars on the runner.

Layout

Path What
src/strata/commands/ CLI subcommands (init, install, fetch_runtime, dashboards, …)
src/strata/hq/ StrataHQ client (SigV4-signed entitlement calls)
src/strata/runner/ the program that runs inside CodeBuild
src/strata/install/ the strata init wizard (schema / prompt / store / tfvars)
src/strata/artifacts/ bundle download / verify / manifest
tests/ unit tests (pytest)

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

stratactl-1.0.2.tar.gz (66.9 kB view details)

Uploaded Source

Built Distribution

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

stratactl-1.0.2-py3-none-any.whl (79.7 kB view details)

Uploaded Python 3

File details

Details for the file stratactl-1.0.2.tar.gz.

File metadata

  • Download URL: stratactl-1.0.2.tar.gz
  • Upload date:
  • Size: 66.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for stratactl-1.0.2.tar.gz
Algorithm Hash digest
SHA256 28185c70dfb47626ef243352f3903919ec4eb3ddd92241bed8264ffe69164d2c
MD5 303be1a1932d5cfb24b65b77b2a201c2
BLAKE2b-256 df0badcaff882534e1b295ef1774c6f24baf5c320b4f75a783520a43127402d3

See more details on using hashes here.

Provenance

The following attestation bundles were made for stratactl-1.0.2.tar.gz:

Publisher: release.yml on shaleio/stratactl

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

File details

Details for the file stratactl-1.0.2-py3-none-any.whl.

File metadata

  • Download URL: stratactl-1.0.2-py3-none-any.whl
  • Upload date:
  • Size: 79.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for stratactl-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 02b5d15483532b1b858344cc288a11847b4c5e91e2b215ccbafc3593c44343ad
MD5 9c7b84f4b7086945e000a5bfb5aad4c4
BLAKE2b-256 02b38654b3dc509c782ff63f3feb073503ee9c6e1857ba5bc318237d8d90d92e

See more details on using hashes here.

Provenance

The following attestation bundles were made for stratactl-1.0.2-py3-none-any.whl:

Publisher: release.yml on shaleio/stratactl

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