Releases: awslabs/open-resource-broker
v1.5.2
v1.5.2 (2026-04-02)
This release is published under the Apache-2.0 License.
Bug Fixes
-
ci: Exclude intentional missing-import test files from pyright, use config-driven paths (
a01ba80) -
ci: Exempt trufflehog from AGPL-3.0 license check (
5078c48) -
ci: Fix ruff import sorting/unused imports and restore uv.lock from main (
4ce90ab) -
ci+tests: Add integration/onmoto/e2e to PR workflow, fix e2e test mocks (
38885db) -
ci+tests: Fix coverage XML generation, codecov flags, and remaining test failures (
29d0ca3) -
cli: Use plain print for JSON output and fix Rich console line wrapping (
c098051) -
config: Config_dict path now applies full normalisation pipeline (
5d9297b) -
onaws: Correct partial return test matrix across all provider APIs (
81c6c9e) -
providers: EC2Fleet/SpotFleet request fleet deleted on partial return (
8f44985) -
tests: Add explanatory comments to empty except blocks in test_cleanup_e2e.py (
a716b89) -
tests: Fix 8 pre-existing test failures across e2e, integration, infrastructure, MCP (
e418266) -
tests: Fix create_return_request assertion to use created_request_ids (
e831312) -
tests: Fix Python 3.14 compatibility and coverage generation (
03eba90) -
tests: Fix remaining integration and onmoto test failures (
7072839) -
tests: Log return_request_id for traceability in cleanup step (
9ae8f37) -
tests: Mock health port in auth_client fixture and bearer token test (
aa16694) -
tests: Mock health port in base client fixture to prevent 503 in CI (
0a0602d) -
tests: Remove duplicate deps imports flagged by GH code quality bot (
6dcbbf0) -
tests: Rename unused return_request_id to _return_request_id in cleanup step (
aea0ff8) -
tests: Resolve all pyright errors across test suite and enforce in CI (
30a3126) -
tests: Skip partial return test when fewer than 2 physical instances provisioned (
a6b60a6) -
tests+ci: Fix remaining test failures and parallelise CI test jobs (
2aa0100) -
tests+ci: Fix scheduler-agnostic assertions and coverage XML parse errors (
29d292f)
Chores
-
Monthly dependency maintenance (
eef30b3) -
Monthly dependency maintenance (
54b2d49) -
Monthly dependency maintenance (
2056d27) -
deps: Bump cryptography in the uv group across 1 directory (
ca9434e) -
deps: Bump the uv group across 1 directory with 2 updates (
b5562dc)
Code Style
-
Auto-format code with ruff [skip ci] (
ef80687) -
Auto-format code with ruff [skip ci] (
bc38eab) -
Auto-format code with ruff [skip ci] (
343700e) -
Auto-format code with ruff [skip ci] (
3e99dc6) -
Auto-format code with ruff [skip ci] (
7d8a578) -
Auto-format code with ruff [skip ci] (
bf4ba02) -
Auto-format code with ruff [skip ci] (
32d0e59) -
Auto-format code with ruff [skip ci] (
50906f1) -
Auto-format code with ruff [skip ci] (
747aa9f) -
Auto-format code with ruff [skip ci] (
725054d) -
Auto-format code with ruff [skip ci] (
561bbf6) -
Auto-format code with ruff [skip ci] (
d14cea6) -
Auto-format code with ruff [skip ci] (
75b4fd3) -
Auto-format code with ruff [skip ci] (
3d98f2f)
Continuous Integration
-
deps: Bump the github-actions group with 5 updates (
2846dc5) -
deps: Use ci prefix for github-actions dependabot commits (
940eeca)
Testing
-
onmoto: Add EC2Fleet, ASG, SpotFleet price type matrix tests (
3d54f5f) -
onmoto: Complete epic 1670 — RunInstances gaps, cross-cutting, onaws fixes (
a52c925) -
onmoto: Complete epic 2153 — full onmoto/onaws equivalence coverage (
ad1d6e0)
Detailed Changes: v1.5.1...v1.5.2
v1.5.1
v1.5.1 (2026-03-23)
This release is published under the Apache-2.0 License.
Chores
-
Add orb-maintainers as default reviewer in PR template (
5df23eb) -
Delete unused commands.py and queries.py from application/base (
bec1f0c) -
Fix import sort in bootstrap/init.py (
050023f) -
Replace bare print() with console helpers in cli/main.py (
8bd63ab) -
Replace print() with print_console() in bootstrap/init.py (
0a816ef) -
Update middleware docstring example to use logger instead of print() (
716de4a)
Code Style
- Auto-format code with ruff [skip ci] (
253639e)
Features
- Add print_console() plain-text helper to cli/console (
5afcd10)
Detailed Changes: v1.5.0...v1.5.1
v1.5.0
v1.5.0 (2026-03-23)
This release is published under the Apache-2.0 License.
Bug Fixes
-
Add --machine-id/-m, --request-id/-r, --template-id/-t flag forms to subcommands (
bdcfa8c) -
Add @handle_interface_exceptions to providers and infrastructure handlers (
5ad3595) -
Add dry-run preview job and manual approval gate to semantic release (
47c9c74) -
Add enum choices to machines list --status flag (
158accb) -
Add explanatory comment to empty except in scheduler registry (
69fd7cc) -
Add explanatory comment to empty except in test_container_factory_hook (
6c5ff77) -
Add format_machine_operation and format_template_mutation to ResponseFormattingService (
f0e007a) -
Add request_id and return_request_id to MachineReferenceDTO (
c2df2ce) -
Add requestId and returnRequestId to machine entries in request status (
353260e) -
Add validate_aws_region to InputValidator (
5d96de7) -
Add validate_aws_region to InputValidator (
1e748df) -
Address code review issues — merge machine_ids_flag, fix limit falsy-zero, normalise dest naming (
fd13964) -
Address GH code quality comments — dead code, empty excepts, redundant assert (
53ee321) -
Align SDK protocols.py — get_request_status request_ids, add stop/start_machines stubs (
c04605c) -
Apply suggested fix to src/orb/domain/template/template_aggregate.py from Copilot Autofix (
8bda3cf) -
Cast registry to Any before hasattr reload call to satisfy pyright (
82e05da) -
CLI audit — ResponseFormattingService throughout, fix 11 bugs + list-returns machines (
119771a) -
Config commands wrap results in InterfaceResponse (
d4c0ebf) -
Correct InfrastructureError import path in http_response_handler test (
b737799) -
Correct stale test assertions — requestId→request_id, long→verbose, detailed→verbose, fix import order (
be39857) -
Extract build_parser(), add --detailed to providers health, add CLI contract tests (
1a51349) -
Fix actionlint errors in preview job (
b2f457f) -
Forward offset, limit, status from args to ListRequestsInput in handle_list_requests (
15bcde4) -
Handle_system_health returns InterfaceResponse on happy path (
f7f8928) -
Handle_system_health returns InterfaceResponse, update tests to match; fix list_all→find_all in system_handlers (
949147b) -
Health endpoint runs checks before returning status (
1f0e120) -
Health_command_handler returns dict, fix system_health return type (
cc08ae5) -
Include templates in RefreshTemplatesHandler command.result (
d1c66b3) -
Infrastructure handlers exit codes and data; templates generate error key (
192e9c3) -
Log actual provider types on init instead of stale mock fallback (
d7bc390) -
Log provider instances (not type) on successful init (
761f018) -
Machine handlers return type annotations and None guard (
5330f0c) -
Machines stop/start use ResponseFormattingService; machines show wraps result in InterfaceResponse (
4b70e5d) -
Map shutting-down/stopping machine state to executing not fail (
66bd90b) -
Move AWS naming patterns into providers block, move database into storage, add contract test imports (
8595693) -
Normalise validation error dicts in request/machine/template handlers (
a47057f) -
Orchestrator consistency cleanup — config nesting, duplicate imports, health handler (
d73d156) -
Orchestrator consistency — 18 issues across serialisation, registry wiring, and envelope shape (
43fc771) -
PR #173 second review — 7 issues across interface, MCP, AWS adapter, and DI (
4b14268) -
Preserve historical machine data (IP, subnet etc) for terminal/transitional states (
24687b0) -
Providers JSON output + providers get command + scheduler validate DTO + system status real metrics + test type fixes (
351c443) -
Providers select now persists default via config write + fix args.provider_name (
a2c861e) -
Remove --detailed subparser args; --verbose is already global (
284adc5) -
Remove broken requests create/return registry entries; explicit provider factory signatures (
6aaf640) -
Remove PrivateIpAddress from required AWS instance fields — absent for shutting-down/terminated instances (
2fdecb8) -
Remove redundant if condition from release job (
5fb6cf8) -
Rename GetRequestQuery.long→verbose, wire duration/success_rate/launch_template into RequestDTO (
1909536) -
Rename machines list --template-id to --request-id and fix extract_output_format (
8f3c451) -
Rename providers select positional to provider_name and add --args alias on exec (
3d4db94) -
Replace _make_bus_handler with proper handlers; wrap system metrics and mcp handlers in InterfaceResponse (
a507da3) -
Replace broken upload-sarif with SPDX dependency submission for SBOM upload (
efbca6a) -
Replace empty string choice with auto for force_level input (
63d3e8d) -
Replace MCP _get_tool_schema name-heuristic with sta...
v1.4.0
v1.4.0 (2026-03-18)
This release is published under the Apache-2.0 License.
Bug Fixes
-
Config dead code removal and env var fixes (
ccf9fe1) -
Post-review robustness — polling abort threshold, no_op on empty return, hasattr cleanup (
436436c) -
RequestStatusError crash and SDK pagination kwargs dropped (
3490587) -
Resolve 127 reportCallIssue pyright errors in test suite (
d7e1fc2) -
Resolve 7 SDK and orchestration bugs identified during doc alignment (
7bd4667) -
Resolve CI failures, CodeQL issues, and code quality comments (
46c95b4) -
Template storage round-trip and SDK scheduler override correctness (
41cd99f) -
Unify Command/Query ABC hierarchy to eliminate cast(object) workarounds (
b6b6c4f) -
Wire remaining orchestrators into DI registry; thin CLI and REST handlers (
f4f16de)
Documentation
- Delete APIHandlerFactory dead code and clean up stale references (
d376216)
Features
-
Add NotFoundError and AlreadyExistsError to SDK; surface DuplicateError→409 (
490b8a0) -
Add stop/start/provider orchestrators; swap concrete buses for ports (
799e463) -
Add template orchestrators — Create, Update, Delete, Validate, Get, List, Refresh (
7beca6e) -
Orb config show — GetSystemConfigQuery with nested section DTOs (
67df91b) -
Orchestration layer — base class, registry, 9 core orchestrators (
78b9762) -
Rewrite CLI/MCP and REST template handlers to use orchestrators (
582fa37) -
Wire SDK and CLI adapters to orchestrators (
201dad1)
Detailed Changes: v1.3.0...v1.4.0
v1.3.0
v1.3.0 (2026-03-16)
This release is published under the Apache-2.0 License.
Bug Fixes
-
Add explanatory comment to empty except in client.py wait_for_request (
3c88554) -
Add explanatory comment to empty except in reset_singletons.py (
86ddca1) -
Add get_cache_location() to platform_dirs and route cache through it (
1546b0b) -
Add increment_gauge/decrement_gauge to MetricsCollector (
0e949f5) -
Add instance_type/image_id to UpdateTemplateCommand, fix aggregate methods and immutable pattern (
0247d8f) -
Add logging to empty except blocks and suppress unused param warnings (
6b194f9) -
Add ORB_ROOT_DIR support to all platform_dirs functions and fix install paths (
5af378c) -
Add type: ignore[return] to Protocol stubs and fix unused vars in delegation guard (
5ca57e5) -
Address code quality bot comments — pass in ABC, remove lambdas, unused imports (
9aae52d) -
Address code quality review comments (
42a0d23) -
Address GH code quality comments on PR 169 (
fd50c3f) -
Address GH Code Quality findings and ruff violations (
55f57b0) -
Address remaining GH code quality comments (
14aa70e) -
Address remaining GH Code Quality comments on PR #158 (
ad3356a) -
Bypass registry cache in _discover_infrastructure (
e388dcc) -
CI metrics workflow, Docker config, and example config cleanup (
127f051) -
Clean up ORB_CONFIG_DIR env var in onaws test fixtures (
dcb979d) -
Clear BaseRegistry._instances on singleton reset to fix test isolation gap (
0600447) -
CLI --wait polling, flag_ prefix, storage validate, --validate-only flag (
6d8776b) -
Complete audit fixes for tasks 1714 and 1718 (
b3fb825) -
Consolidate dual import in test_provisioning_orchestration_service_di (
66494cb) -
Consolidate hardcoded request ID prefixes and wire config-driven defaults (
a893699) -
Correct import path in domain configuration_service (
582f323) -
Correct test imports for exception classes (
60e759d) -
Correct test_acquire_fleet_missing_fleet_type_returns_failure assertion (
d3bf596) -
Credentials-first flow and VPC discovery stale cache in orb init (
7fb7858) -
Defer setup_environment() until after arg parse, skip for orb init (
cbb392d) -
Delete dead DomainConfigurationService and fix pyright errors (
8146633) -
Delete dead monitoring MetricsEventHandler, fix gauge methods in application handler (
bd34c7a) -
Delete dead test files and consolidate smoke imports (
c1e6282) -
Fix _check_application_health double-run, disk check path, and health_dir work/ placement (
eadf5fa) -
Fix pyrightconfig.json absolute venvPath (
03ef967) -
Get_loaded_config_file() uses get_config_location() not relative paths (
886ef70) -
Guard boto3 client creation with moto in test fixtures (
5442d82) -
Guard get_domain_events/clear_domain_events with hasattr in template repository (
c2b1825) -
Guard is_in_use() with hasattr in DeleteTemplateHandler (
302a27b) -
Guard metrics flush_traces logger call against shutdown race (
079f3ea) -
Handle all input shapes in transform_subnet_id (
d9829e0) -
Handle None provider_config in create_aws_strategy (
d112a04) -
Implement active_only filter in ListTemplatesHandler, align SDK default (
f3be764) -
Implement get_cleanup_config in ConfigurationAdapter (
0036f85) -
Include requestId in orb requests list output (
0b7344d) -
Inject ConfigurationPort into ProviderRegistry singleton via DI (
4f62eba) -
Inject ConsolePort into AWSProviderStrategy for infrastructure discovery (
4b919ee) -
Inject ConsolePort into AWSProviderStrategy from DI container (
06a0253) -
Inject LoggingPort into HealthCheck and add PermissionError fallback in mkdir (
e641d5d) -
Load default_config.json via importlib.resources in ConfigLoader (
e5f0de3) -
Make Codecov upload non-fatal when coverage XML is missing (
220e702) -
Make HealthCheck thread-safe and register_check idempotent (
4835da5) -
MCP tool dispatch TypeError, handle_get_template scheduler formatting, dead storage fetch (
a7c08b4) -
MetricsCollector PermissionError fallback, MetricsEventHandler thread safety, remaining DIP violations (
195c8b5) -
Move AWS health check registration from strategy creation to bootstrap (
9ea5acb) -
Move get_health_location() fallback inside work/ directory (
6fdfe32) -
Orb templates update --file now reads and applies the JSON file (
0f7a25f) -
Pass full template fields to validate_template_config in CreateTemplateHandler (
87812b1) -
Pass+type-ignore in Protocol methods, log empty except in aws_cli_spec ([`2930...
v1.2.2
v1.2.2 (2026-03-07)
This release is published under the Apache-2.0 License.
Bug Fixes
- Use absolute URLs for README logo so it renders on PyPI (
ec33036)
Detailed Changes: v1.2.1...v1.2.2
v1.2.1
v1.2.1 (2026-03-07)
This release is published under the Apache-2.0 License.
Bug Fixes
- Resolve release pipeline failures in coverage and container tags (
70f8925)
Detailed Changes: v1.2.0...v1.2.1
v1.2.0
v1.2.0 (2026-03-07)
This release is published under the Apache-2.0 License.
Bug Fixes
-
Add --profile support and consistent region defaults to admin scripts (
5551065) -
Add -f/--file and -d/--data flags to subcommands via add_global_arguments (
1d636f7) -
Add ASG and SpotFleet branches to describe_resource_instances (
57d6aea) -
Add AWS client resolver to provider strategy (
7967406) -
Add check_health delegation method to AWS strategy (
a95b5f8) -
Add conditional badge generation to prevent failures (
d5379ff) -
Add default_grace_period to RequestConfig so return requests respect configured value (
c4d19d8) -
Add DNS names and price type fields to machine data (
b79ed6e) -
Add fleetType to EC2Fleet Instant templates and enable SpotFleet ondemand support (
65f5851) -
Add generic provider registration to eliminate hardcoded AWS checks (
70c3a11) -
Add get_handler() to AWSProviderStrategy delegating to handler registry (
70bbcdf) -
Add get_resource_prefix to ConfigurationPort, migrate all handlers off service locator (
0015bc3) -
Add lazy initialization to domain services to break circular dependencies (
5001663) -
Add machine JOIN logic to ListRequestsHandler (
29eb613) -
Add machine-specific formatting for show command (
c113daf) -
Add MCP tools direct routing (
3128df9) -
Add missing Any import in AWSHandlerFactory (
ca5e85b) -
Add missing app_config property to ConfigurationAdapter (
f7173a7) -
Add missing config_manager arg to GetReturnRequestsRESTHandler DI registration (
30630e0) -
Add missing Dict and List imports to request status service (
f7026c9) -
Add missing field mappings and use machine_types in all handler templates (
9eff1ac) -
Add missing Jinja context keys to all three config builders (
db761cb) -
Add missing ListRequestsQueryHandler (
5ff5f19) -
Add missing os import to default scheduler strategy (
8a40514) -
Add missing permissions to package-testing workflow (
06fc733) -
Add missing provider_name and provider_type to RequestDTO.from_domain (
66c1770) -
Add missing system command handlers to CLI execution (
4c51442) -
Add missing unsupported_features field to ValidationResult construction (
681a442) -
Add onaws conftest.py - auto-create logs/ dir and add repo root to sys.path (
6218820) -
Add packages read permission to Container Build workflow (
d373746) -
Add packages:read to container validation and decouple cleanup from validation (
74e116c) -
Add provider fields to HostFactory status response (
c0825db) -
Add provider_override param to DefaultSchedulerStrategy.load_templates_from_path (
393c40f) -
Add scheduled container cleanup and fix existing cleanup jobs (
4f4bf3e) -
Add singular machine alias for consistency (
b36b505) -
Add storage show command, clarify --provider flag (
3645121) -
Add synchronous query execution support (
7ac4aa6) -
Add vmTypes to SpotFleet templates and restore error response shape for failed requests (
bc46e88) -
Address container CVEs and pin trivy-action to working version (
e50fd8b) -
Align Advanced Metrics workflow with established patterns (
d401bd9) -
Align config schemas and default_config with actual runtime usage (
e839619) -
Align default_config.json with Pydantic AppConfig model (
fdbf013) -
Align HF parse_request_data return type with default strategy (
c7b69f2) -
Align requestMachines response with IBM HF spec (
f8b5060) -
Align return request response format with request machines (
4722042) -
Align startup validator with config loader path resolution (
d9ea31a) -
Align tests and command types with CQRS and config env var changes (
65f085d) -
Allow explicit onaws path to bypass aws test skip in pytest (
e4ae467) -
Allow werkzeug compound BSD-3-Clause license in dependency review (
ff44037) -
Always check AWS credentials when onaws tests are collected (
c41d80f) -
AMI cache to work/.cache, config.json to config/ subdir, scripts/ gitignore, fast-fail loops (
706401b) -
Authentication error suppression in orb init (
d471dba) -
Auto-sync coverage source from .project.yml, convert providers to bullets (
5f8b585) -
AWS handlers to use unified machine_types field (
f2bff51) -
Broaden handle_get_request_status return type to include list (
8664be2) -
Bump urllib3 to >=2.6.3 and trivy-action to 0.34.0 (
330caa3) -
Call format_request_status_response in handle_get_request_status ([
a145a8b](ht...
v1.1.2
v1.1.2 (2026-01-28)
This release is published under the Apache-2.0 License.
Bug Fixes
-
Adding documentation on the history retrieval for individual EC2 instances. (
c605fcd) -
Adding terminate_req_instances.py to quickly terminate all relevant EC2s by name (
12198e1) -
Bandit errors and ruff errors (
eca087c) -
Botocore_metrics.py now uses correct call to set_gauge metric (
2b49092) -
Default config was missing in system tests (
56baf97) -
EC2 Fleet Instant now checks for errors and checks if there are no instances returned. Such requests marked as failed. (
4cefd23) -
Removing code duplication and improving performance in onaws tests (
a915481) -
Ruff errors (
188a0b8) -
Self.config: dict[str, Any] = {} was used without initialisation. Refactoring it out (
ce8ac9a)
Chores
- ci)(deps: Bump actions/checkout in the github-actions group (
74a77f8)
Detailed Changes: v1.1.1...v1.1.2
v1.1.1
v1.1.1 (2026-01-21)
This release is published under the Apache-2.0 License.
Bug Fixes
-
Remove hardcoded src prefix from package imports (
25a93e3) -
Resolve workflow failures and improve consistency (
521bb89)
Chores
-
ci)(deps: Bump the github-actions group across 1 directory with 6 updates (
c360b4f) -
deps)(deps-dev: Update mkdocstrings requirement (
c35c993) -
deps)(deps-dev: Update pytest requirement (
e7783a5)
Detailed Changes: v1.1.0...v1.1.1