Skip to main content

CHANGELOG.md

# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]

## [1.0.0] - 2025-10-04

### Added

- Initial release of ReqFly
- Req plugin for Fly.io Machines API with seamless integration
- **Apps API** - Complete application management
  - List apps with organization filtering
  - Create new applications
  - Get application details
  - Destroy applications
- **Machines API** - Full lifecycle management
  - List machines in an application
  - Create machines with comprehensive configuration
  - Get machine details
  - Update machine configuration
  - Start, stop, restart, and signal machines
  - Wait for machines to reach desired states
  - Destroy machines
  - Lease management (acquire and release)
  - Cordon and uncordon operations
  - Metadata and event queries
- **Secrets API** - Secure secrets management
  - List application secrets
  - Create secrets with custom values
  - Generate random secrets
  - Delete secrets
- **Volumes API** - Persistent storage management
  - List volumes
  - Create volumes with size and region specification
  - Get volume details
  - Update volume configuration
  - Extend volume size
  - Delete volumes
  - Create volume snapshots
  - List volume snapshots
- **Orchestrator** - High-level multi-step workflows
  - Create app and wait for activation
  - Create machine and wait for ready state
  - Exponential backoff with jitter for polling
  - Configurable timeouts and intervals
- **Error Handling**
  - Structured error responses with `ReqFly.Error` exception
  - Detailed error messages from API responses
  - Status code preservation
- **Retry Logic**
  - Built-in retry with exponential backoff
  - Configurable retry strategies (`:safe_transient`, `:transient`, etc.)
  - Configurable max retries
- **Telemetry Support**
  - Request lifecycle events (start, stop, exception)
  - Orchestrator operation events
  - Configurable telemetry prefixes
  - Rich metadata for observability
- **Testing Infrastructure**
  - Comprehensive test suite with 187 tests
  - ExVCR integration for API cassette recording
  - Bypass integration for mock server testing
  - High test coverage across all modules
- **Documentation**
  - Complete module documentation with examples
  - Detailed function documentation
  - Comprehensive README with usage examples
  - Getting started guide
  - Configuration examples for all patterns

### Development Tools

- Mix task for OpenAPI spec analysis (`mix req_fly.analyze_spec`)
- Code quality tools (Credo, Dialyzer)
- Automated formatting configuration

[Unreleased]: https://github.com/mikehostetler/req_fly/compare/v1.0.0...HEAD
[1.0.0]: https://github.com/mikehostetler/req_fly/releases/tag/v1.0.0