Metadata-Version: 2.4
Name: thingflash
Version: 0.0.1
Summary: Production-ready AWS IoT infrastructure from a declarative YAML manifest.
Project-URL: Homepage, https://thingflash.com
Project-URL: Repository, https://github.com/thingflash/thingflash
Project-URL: Issues, https://github.com/thingflash/thingflash/issues
Author-email: Togayev Alisher <alisherka0151@gmail.com>
License: Apache-2.0
License-File: LICENSE
License-File: NOTICE
Keywords: aws,cli,cloudformation,infrastructure,iot,iot-core
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: System :: Systems Administration
Requires-Python: >=3.11
Requires-Dist: boto3>=1.34
Requires-Dist: pydantic>=2.6
Requires-Dist: pyyaml>=6.0
Requires-Dist: rich>=13.7
Requires-Dist: typer>=0.12
Provides-Extra: dev
Requires-Dist: boto3-stubs[cloudformation,dynamodb,iam,iot,s3]>=1.34; extra == 'dev'
Requires-Dist: moto[cloudformation,dynamodb,iam,iot,s3]>=5.0; extra == 'dev'
Requires-Dist: mypy>=1.10; extra == 'dev'
Requires-Dist: pytest-cov>=5.0; extra == 'dev'
Requires-Dist: pytest>=8.0; extra == 'dev'
Requires-Dist: ruff>=0.5; extra == 'dev'
Requires-Dist: types-pyyaml>=6.0; extra == 'dev'
Description-Content-Type: text/markdown

<p align="center">
  <img src="https://raw.githubusercontent.com/thingflash/thingflash/main/images/thingflash_banner.png" alt="ThingFlash logo">
</p>

# ThingFlash

<p align="center">
  <a href="LICENSE"><img src="https://img.shields.io/badge/license-Apache--2.0-blue.svg" alt="License: Apache-2.0"></a>
  <a href="https://github.com/Alisherka7/thingflash"><img src="https://img.shields.io/badge/Open%20Source-%E2%9D%A4-brightgreen.svg" alt="Open Source"></a>
  <a href="https://aws.amazon.com/cdk/"><img src="https://img.shields.io/badge/AWS-CDK%20v2-FF9900?logo=amazonaws&logoColor=white" alt="AWS CDK v2"></a>
  <a href="https://aws.amazon.com/iot-core/"><img src="https://img.shields.io/badge/AWS-IoT%20Core-232F3E?logo=amazonaws&logoColor=white" alt="AWS IoT Core"></a>
</p>

**Production-ready AWS IoT infrastructure in three commands.**

Building an IoT backend on AWS means wiring together 15+ services — IoT Core, X.509 certificates, IoT policies, Device Shadows, Rules, Lambda, S3, DynamoDB, CloudWatch — and getting the security right on every one of them.

ThingFlash compresses that into a declarative workflow:

```bash
pipx install thingflash

thingflash init
thingflash plan
thingflash apply
```

From an empty AWS account to a secure MQTT-connected device with telemetry flowing into a database — **in under 15 minutes**.

---

## What is ThingFlash?

ThingFlash is an open-source, opinionated CLI for provisioning and operating AWS IoT infrastructure. You describe your device fleet in a single version-controlled YAML manifest — ThingFlash safely creates and manages everything else.

It is **not** a Terraform replacement. It's a specialized layer for connected products that knows how IoT should be built:

- **Secure by default** — one certificate per device, least-privilege IoT policies, topic access scoped by Thing name
- **Plan before apply** — every change is previewed with security warnings; nothing touches your infrastructure silently
- **Batteries included** — device registry, certificate lifecycle, MQTT topics, telemetry pipelines, image upload, monitoring
- **Automation-first** — every command is idempotent, non-interactive, and supports `--output json` for CI/CD and AI agents

## Who is it for?

Developers and teams building connected products — from ESP32 microcontrollers to Raspberry Pi gateways, sensors, cameras, and robot fleets — who need a real cloud backend without becoming AWS IoT experts first.

```yaml
# thingflash.yaml — your entire IoT backend in one file
fleet:
  thingType: camera
  policies:
    mode: least-privilege

telemetry:
  rules:
    - name: telemetry-to-dynamodb
      source: devices/+/telemetry
      destination:
        type: dynamodb
```

## Get involved

- ⭐ Star the [main repository](https://github.com/thingflash/thingflash) to follow progress
- 💬 Open an [issue](https://github.com/thingflash/thingflash/issues) — feedback from real IoT teams shapes the roadmap
- 📖 Read the [documentation](https://github.com/thingflash/thingflash/tree/main/docs)

## License

Apache 2.0 — open source.