Repository navigation
Releases: ksperis/bucketreef
Release list
v0.2.18
0.2.18 - 2026-10-24
Added
- Replace the expanded Billing product model with a focused Cost Explorer, including configurable global and per-endpoint prices, Admin analytics, Portal usage costs, and targeted Account/RGW User/Portal cost-estimation policies.
- Add RGW User usage-metrics, bucket-composition, and scheduled-collection overrides so Account and RGW User usage controls follow the same inheritance model.
- Add production-oriented Helm HA support for deployments behind external TLS termination, including trusted-proxy handling, ingress-aware CronJobs, and clearer PostgreSQL HA guidance.
- Add runtime-image vulnerability scanning to public CI and refresh Node.js, Go, Python, Vite/Vitest, Wrangler, Trivy, and related dependency pins.
Changed
- Rework bucket migration planning, diagnostics, execution strategy, progress, and cleanup models around canonical persisted state while simplifying the Manager migration UI and service boundaries.
- Make Ceph Admin bucket operations tenant-aware by carrying the RGW tenant and unqualified bucket name through configuration, comparison, integrity, purge, usage-statistics, and backup workflows.
- Simplify backend read/write models across Admin, Manager, Portal, Browser, authentication, statistics, health, quotas, and cost workflows. The bundled frontend is updated in the same release, so these coordinated application-API changes are not treated as breaking external contracts.
- Rename the backend API-prefix setting from
API_V1_PREFIXtoAPI_PREFIX; the default route remains/api. - Continue consolidating frontend state, pagination, IAM editing, bucket-operation actions, Browser runtime context, and settings feedback without changing the corresponding user-facing storage semantics.
Fixed
- Correct IAM role audit delegation classification and align healthcheck/demo payloads with the current backend contracts.
- Preserve settings save feedback and usable mobile action targets, and keep sticky action hover surfaces visually opaque.
- Update vulnerable dependencies and verify backend, frontend, and scheduler runtime images with zero HIGH/CRITICAL findings in the release security checks.
- Harden tenant-qualified Ceph Admin bucket operations so same-name buckets in different RGW tenants cannot collapse into one logical target.
Upgrade notes
- Apply the normal Alembic upgrade path before starting the matching backend. Migrations
0167through0193withdraw the 0.2.17 Billing expansion, introduce the Cost model and estimation policies, add RGW usage controls, canonicalize bucket-migration state, preserve tenant identity in usage data, and remove retired internal state. - Deploy the backend and bundled frontend from the same release. Internal application route and payload changes are coordinated within 0.2.18 and are not considered breaking external contracts.
- Breaking change for external Billing integrations: the Billing Integration API v1 (
/api/integrations/billing/v1) andbilling:readtoken scope introduced in 0.2.17 are removed as BucketReef returns to cost exploration rather than invoicing lifecycle management. Migrations preserve daily usage history but reset incompatible 0.2.17 Billing configuration. - Breaking change for custom deployments: rename
API_V1_PREFIXtoAPI_PREFIX. The removedAPI_V1_PREFIXvariable is no longer read by the backend; the default/apipath is unchanged.
Full changelog: v0.2.17...v0.2.18
v0.2.17
0.2.17 - 2026-10-19
Added
- Add versioned Billing Rate Plans with effective-month tariffs, endpoint/global defaults, account and S3-user assignments, deterministic storage charging, and explicit actual-usage versus allocated-quota pricing.
- Add Billing Entities and historical analytical groups so chargeback can consolidate subjects across endpoints while preserving membership provenance, currency separation, and conflict reporting.
- Add persisted monthly Billing Statements with draft review, immutable finalization, JSON/CSV/PDF exports, finalized-period analytics, configurable PDF branding, webhook notification, and scheduled statement automation.
- Add the supported read-only Billing Integration API v1 for external invoicing, ERP, accounting, reporting, and chargeback consumers using scoped API tokens and finalized statement snapshots.
- Add explicit Admin controls for creating RGW resources in non-default tenants, tenant-aware account/user imports, and endpoint-map hover details.
- Add Browser direct-transfer workers with per-context endpoint authorization and CSP so eligible uploads and downloads can communicate with the selected S3 endpoint without proxying object payloads through BucketReef.
- Add Browser upload-mode controls so administrators can independently allow direct presigned, STS, and proxy uploads while requiring at least one upload path to remain enabled.
Changed
- Resolve Billing Rate Plans through explicit subject assignments, Billing Entity assignments, endpoint defaults, and the global default, while keeping pricing provenance and incomplete-coverage states visible instead of silently falling back.
- Treat finalized Billing Statements as the canonical immutable source for historical period totals and external integrations; raw daily Billing retention no longer affects persisted statements.
- Scope RGW account names by tenant and keep tenant qualification compact in Admin inventories and creation/import workflows.
- Simplify S3 Connection terminology, Admin activity presentation, Billing feature gating, and several workspace navigation/localization details.
- Modernize backend query paths across health, audit, usage, onboarding, Portal, quota, Browser, and Admin services without changing their supported external contracts.
- Serve Browser direct-transfer workers from the frontend through an authenticated
/api/browser/direct-transfer-worker/path with a request-scoped CSP.
Fixed
- Enforce Portal IAM revocation boundaries and strengthen RGW Billing input validation, statement history invariants, stale-draft detection, and estimated-statement finalization.
- Preserve tenant-aware RGW account/user uniqueness and imports, including migration of existing account-name uniqueness to the tenant scope.
- Isolate Browser direct transfers by execution context, prevent stale endpoint policy reuse, and avoid replaying uncertain direct writes through the backend proxy.
- Keep Billing settings disabled when the feature is off and align RGW user/account creation dialogs with their tenant-aware contracts.
Upgrade notes
- Apply the normal Alembic upgrade path before starting the matching backend. Migrations
0159through0166add versioned Billing tariffs, historical quota data, Billing Entities and Groups, persisted statements and automation state, tenant-scoped S3 account-name uniqueness, and estimated-statement state. - Deploy the backend and bundled frontend from the same release. Application API changes used only by the bundled frontend are coordinated within 0.2.17 and are not treated as breaking external contracts.
- The Billing Integration API under
/api/integrations/billing/v1is now a supported external read-only contract. Use dedicated API tokens with the documentedbilling:readscope; internal Admin Billing routes remain application-private. - Breaking change for custom reverse proxies: Browser direct-transfer workers are served by the frontend under
/api/browser/direct-transfer-worker/. Deployments that route all/apitraffic directly to the backend must add this frontend exception, preserve the query string and existing session cookie, and keep the worker response CSP uncached. The bundled Helm ingress already includes this route.
Full changelog: v0.2.16...v0.2.17
v0.2.16
0.2.16 - 2026-10-17
Added
- Add Admin feature policies with tri-state inheritance, resource-level overrides, effective-rights presentation, and project usage feature overrides shared across the application.
- Add Manager account activity history tied to explicit S3 execution contexts, with canonical audit context fields used across Admin audit and Manager activity views.
- Add explicit Ceph RGW tenant support for accounts and users, including tenant-aware identity validation, collision protection, migration of pre-tenant identities, and structured RGW identity metadata for S3 Connections.
- Add automatic bucket composition collection with configurable collection policy and scheduler integration for bucket usage/statistics workflows.
- Complete French, German, and Chinese localization across Admin, Ceph Admin, shared settings, authentication, errors, endpoint management, metrics, usage, and common workspace components.
- Complete Manager IAM user, group, role, policy, tag, and membership editing workflows and tighten their storage-side validation.
Changed
- Canonicalize execution-context selectors, audit outcomes, Portal collaborator/quota requests, Manager migration requests, and S3 Connection RGW identity fields. The bundled frontend and backend are updated together and no legacy application-API compatibility aliases are retained.
- Split bucket integrity, purge, and usage-statistics request contracts by workspace surface: Manager and Ceph Admin accept bucket-name collections, while Storage Ops accepts explicit execution-context targets.
- Keep persistent settings editors mounted after save, clarify feature inheritance and locked controls, and align Admin, Manager, Browser, Portal, Ceph Admin, and demo UI contracts with the current backend.
- Require
APP_SETTINGS_PATHbootstrap JSON to use the current canonicalAppSettingsschema instead of converting removed legacy fields at runtime. - Rename the production-readiness command to
python -m app.scripts.check_production_readinessand remove the formercheck_production_hardeningcompatibility module.
Fixed
- Stop returning RGW secret keys from Ceph Admin user access-key list/detail responses; newly created keys still return their secret once through the dedicated one-time creation response.
- Reject mutations of BucketReef-managed IAM resources before remote calls and prevent outbound health/OIDC probes from following unsafe redirects or bypassing validated targets.
- Correct tenant-aware RGW account/user operations, pre-tenant migration compatibility, ambiguous identity collisions, missing-user cleanup, and Ceph Admin parameter handling.
- Preserve requested bucket-migration pause state, verify Manager IAM role-tag mutations, stabilize feature-policy rollout and audit coverage, and align Ceph functional qualification with current feature settings.
- Repair shared workspace navigation, dashboard icons, localized UI contracts, demo isolation checks, and assorted Admin/Browser/Manager functional QA regressions.
Upgrade notes
- Apply the normal Alembic upgrade path before running the matching backend. Migrations
0148through0158add feature policies, Manager activity history, execution-context audit fields, project usage overrides, RGW tenant metadata, bucket composition collection policy, canonical Portal/audit data, and canonical S3 Connection RGW identity fields. - Deploy the backend and bundled frontend from the same release. Internal application routes now use the canonical execution-context, audit-status, Portal request, migration, bucket-operation, and Ceph Admin key-read contracts described above; these coordinated application API changes are not treated as release-breaking external contracts.
- Breaking change:
APP_SETTINGS_PATHno longer converts removed legacy settings fields. Bootstrap JSON must already use the currentAppSettingsschema. - Breaking change: operational checks must use
python -m app.scripts.check_production_readiness; the formercheck_production_hardeningmodule has been removed.
Full changelog: v0.2.15...v0.2.16
v0.2.15
0.2.15 - 2026-10-11
Added
- Add optional Manager access-key metadata and expiration controls for account/IAM and S3-user keys, enabled globally by default on fresh deployments while retaining explicit per-resource opt-ins and scheduled expiration enforcement.
- Add French, German, and Chinese localization across the Manager workspace.
- Complete locale-aware Browser coverage and integrate the contributor i18n foundation across authentication, errors, navigation, and responsive shell controls.
- Add a configurable documentation base URL for workspace links and validate S3/IAM resource names consistently before creation.
Changed
- Remove the retired
BUCKET_MIGRATION_WEBHOOK_*runtime aliases. Configure webhook delivery exclusively with the canonicalWEBHOOK_*variables; Compose and Helm defaults now use the canonical names. - Remove the unused
endpoint_configuredandstorage_access_configuredfields from the Admin onboarding status API; the bundled frontend usescompleteand journeys for setup state. - Remove the retired
/admin/api-tokensfrontend redirect and the unused standalone API-token page mode. Superadmins manage API tokens exclusively from the shared profile API-token tab. - Remove the retired Browser transfer IndexedDB cleanup hook; current Browser code no longer reads, opens, or deletes the obsolete
bucketreef-browser-transfers-v1database. - Reorganize Manager bucket detail navigation, return structured conflicts for bucket deletion, and simplify API error handling across Manager, Admin, and Ceph Admin surfaces.
- Tighten typed service boundaries for storage endpoints, endpoint identities, key rotation, migrations, account capabilities, and execution targets.
Fixed
- Avoid repeating the OIDC callback when changing locale and preserve translated shell controls on narrow screens.
- Preserve Browser bucket and object operations for plain S3 account contexts.
- Scope Ceph Admin account bucket metrics defensively and purge functional-test buckets through Ceph Admin cleanup paths.
- Correct Manager functional UX/localization details, including French timezone wording.
- Restore the scheduler runtime dependency required by maintenance jobs and rebuild Supercronic with the patched Go toolchain used by the release image.
Upgrade notes
- Apply the normal Alembic upgrade path. Migrations
0145_manager_access_key_metadataand0146_manager_access_key_expirationadd the optional Manager access-key metadata/expiration state; existing account and S3-user opt-ins remain disabled until explicitly enabled. - Migration
0147_remove_legacy_ceph_admin_system_compatremoves the retired Ceph Admin system-user compatibility flag and marks affected legacy Ceph Admin identities as missing so they are revalidated through the current credential contract.
Full changelog: v0.2.14...v0.2.15
v0.2.14
0.2.14 - 2026-10-06
Added
- Add dedicated Runtime Read Ops and Supervision service identities for Ceph RGW endpoints, with explicit validation, provisioning state, rotation recovery, and signed S3 health probes.
- Add cached Admin dashboard metrics collected through supervision credentials, plus clearer endpoint identity health and recovery feedback.
- Split the documentation into audience-specific Admin, Manager, Portal, Browser, and Developer guides, including a French Portal guide and contextual documentation links from application workspaces.
Changed
-
Restore manually supplied Ceph Admin credentials in endpoint settings and onboarding; remove the activation dialog and automatic Ceph Admin provisioning/rotation.
-
Simplify endpoint Credentials: keep Admin Ops hardening in documentation, fold creation commands for configured identities, and distinguish saved identity state from mode changes.
-
Show service identity retries only when needed, block retries of unsaved endpoint configuration, and report retry failures inside the editor.
-
Make Runtime and Supervision permanent service identities for every Ceph endpoint; feature toggles only control their use.
-
Detect Usage exclusively with Supervision, including after managed onboarding provisioning, without requiring Usage capabilities on Admin Ops.
-
Recommend complete provisioning/quota Admin Ops permissions for normal setup and place reduced permissions under advanced hardening guidance.
-
Validate the complete ENV endpoint inventory before synchronization and use the same external Runtime credential requirements as the endpoint API.
-
Remove the misleading
commitargument from endpoint creation; registration persists a durable endpoint before reconciling RGW identities. -
Detect untracked S3, Swift and temporary URL keys on managed endpoint identities, block their mutations, and report auditable drift without exposing key material.
-
Simplify Portal external-tool configuration and Manager/Admin dashboards while keeping workspace-specific permissions and execution contexts explicit.
Fixed
- Preserve legacy and externally managed Ceph Admin credentials across the
0.2.13upgrade path, including endpoints that expose only dedicated Ceph Admin credentials. - Namespace automatically generated RGW user identifiers and preserve uniqueness for externally provisioned Portal IAM users.
- Protect Helm deployments from slow backend startup and refresh frontend base-image security packages.
- Restore full regression validation and scheduled secret-scan baselines in CI.
- Make ARM64 release installation smokes tolerate emulated probe startup latency without weakening normal deployment healthcheck defaults, and retain service logs on smoke failures.
- Verify the complete GitHub/GitLab release index before and after stable publication, including latest pointers, and fetch remote tags explicitly before generating release compare links.
Upgrade notes
-
Breaking change: Ceph Admin credentials are now operator-managed external pairs. Upgrades from
0.2.13preserve complete stored Ceph Admin credentials and RGW users, then revalidate the pair after migration; pending managed rotations and managed-only metadata are discarded. Per-endpoint Ceph Admin authorization is intentionally reset to disabled during migration and must be explicitly re-enabled after validating the preserved credentials. Re-enter keys only when the stored pair is incomplete or invalid. -
Breaking change: upgrades from
0.2.13create a Runtime Read Ops identity inexternal/missingstate for every existing Ceph endpoint because0.2.13had no dedicated Runtime credentials. Configure a Runtime pair with exactlyaccounts=read;user-info-without-keys=read;buckets=readand no admin/system flag before Manager/Portal live account, user and bucket reads resume; Admin Ops is not used as a fallback. Existing Supervision credentials are preserved as external and must validate with exactlyusage=read;buckets=readand no admin/system flag. External Ceph endpoints require complete Runtime and Supervision pairs even when monitoring is disabled. Existing managed endpoints provision missing Supervision at administration startup or reconciliation and need Admin Opsusers=writefor that provisioning. -
Breaking change: administered Ceph endpoints configured through
ENV_STORAGE_ENDPOINTSin external mode must supply both Runtime keys. Incomplete inventories now prevent startup. -
Breaking change: managed Runtime and Supervision rotation requires deletion of the previous key. Disable-only rotation is refused for these identities. Remove previously disabled or manually added keys externally, then retry identity configuration; pending revocations are never announced as successful while unexpected keys remain.
Full changelog: v0.2.13...v0.2.14
v0.2.13
0.2.13 - 2026-10-01
Added
- Added a configurable numeric prefix for automatically generated Ceph RGW account IDs, with a default of
80while preserving Ceph's required identifier format.
Changed
- Moved personal API token management into the shared user profile for administrators, with a redirect from the previous Admin settings route.
- Consolidated Admin platform-access tabs and effective-access investigation into the dedicated access audit, with contextual Review access links and UI Group provenance filtering.
- Namespaced BucketReef-managed Portal IAM resources, generated Storage Space buckets, lifecycle IDs, policy Sids, migration probes, onboarding sample names, and RGW account-root key names under the canonical
bkr-/BucketReefcontracts.
Fixed
- Allowed empty private Portal Storage Spaces to be deleted without listing their contents through a technical principal, while preserving non-empty buckets and handling deletion races explicitly.
- Recognized empty Ceph RGW usage maps as zero usage and recovered concurrent creation of BucketReef-managed Portal IAM groups through bounded ownership checks.
- Preserved Storage Ops execution-context fields when enriching bucket feature columns.
- Aligned demo access-review data, endpoint geolocation, theme readability, endpoint-health columns, and production-readiness descriptions with the application.
- Kept the release documentation synchronized with the changelog and corrected S3 Connection validation test routing.
- Invalidated cached backend OS upgrades when Debian publishes security updates, ensuring newly fixed PCRE2 and OpenSSL packages are included in release images.
Upgrade notes
- Breaking change: previous implicit BucketReef-managed storage resource names are not migrated, aliased, or adopted automatically. Recreate pre-cutover Portal IAM resources deliberately before using the new naming contract. Foreign lifecycle rules and bucket-policy statements remain preserved.
- Apply the normal Alembic upgrade path. This patch adds no database migration or schema baseline and keeps the unified
bucketreef-deploybundle introduced in 0.2.12.
Full changelog: v0.2.12...v0.2.13
v0.2.12
0.2.12 - 2026-09-29
Changed
- Replaced the separate Compose and QuickStart release archives with one deterministic
bucketreef-deploybundle shared by both installation paths. - Standardized distributed and source Compose filenames on
compose.yamland made the scheduler part of the normal full deployment. - Simplified QuickStart around the normal
bucketreefCompose project,.env, and~/.local/share/bucketreefinstallation directory. - Split release qualification into independent AMD64/ARM64 QuickStart and manual Compose smoke tests consuming the exact same candidate bundle.
Upgrade notes
- Breaking change: the separate
bucketreef-composeandbucketreef-quickstartrelease bundles have been replaced by the singlebucketreef-deploybundle. Legacy QuickStart installations, project names, volumes, environment files, and previous bundle layouts are not migrated automatically. - Existing older GitHub releases remain available with their original assets. Install 0.2.12 as a new deployment or deliberately preserve and reconfigure any data you want to carry forward.
Tests
- Release tests verify deterministic packaging, SHA-256 integrity, immutable publication/recovery, and exact candidate bytes across both installation paths.
- QuickStart and Compose qualification independently cover bootstrap, scheduler health, restart persistence, and the exact AMD64/ARM64 images selected by the qualified multi-architecture manifests.
Full changelog: v0.2.11...v0.2.12
v0.2.11
0.2.11 - 2026-09-29
Changed
- Simplified Browser favorites, path navigation and Storage Space labels while preserving the current execution context and S3 permissions.
- Aligned Admin RGW editors and account/group/user association pickers with their role columns and shared layouts.
- Enabled standalone Browser access for Portal projects by default on fresh installations; explicit global settings and account overrides remain authoritative.
- Automated releases on protected main version increases, with complete qualification and anonymous candidate installation tests before any stable promotion.
Fixed
- Preserved primary-link contrast in dark mode.
- Kept sequential migration cleanup and its lease checks on the same database-session thread, preventing intermittent source-cleanup failures.
- Preserved complete merged Git history during secret detection and verified the exact scanned commit set before and after analysis.
- Prevented failed ARM64 installation checks from reserving immutable stable image, bundle or chart versions.
- Added durable release evidence and idempotent recovery of partial registry/forge publication using the exact tested artifacts and original application commit.
- Replaced CI edits to Compose archives with explicit healthcheck settings and bounded QEMU startup/test budgets, retaining secret-free diagnostics before cleanup.
Upgrade notes
- Apply the normal Alembic upgrade path; this patch introduces no database migration or schema baseline.
- The four public download assets and their URLs remain unchanged. Compose keeps its existing default healthcheck budget of 24 attempts; advanced deployments can set
BUCKETREEF_HEALTHCHECK_RETRIESexplicitly.
Tests
- Added automatic-trigger, graph, mandatory-gate, architecture identity, candidate-byte integrity, interrupted-promotion, cross-forge recovery and immutable-conflict coverage.
- Release qualification covers application, Ceph, security and both image architectures; candidate installation checks cover QuickStart, Compose/scheduler, Kind onboarding and Helm upgrade before stable publication and demo deployment.
Full changelog: v0.2.10...v0.2.11
v0.2.10
0.2.10 - 2026-09-28
Added
- Added a persistent static demo with mocked Admin, Manager, Portal, Browser, and Ceph Admin workspaces plus Cloudflare Pages publication support.
- Added delegated Portal collaborator management with explicit role selection and role-change request handling.
- Added a guarded Manager bucket-migration workflow with preparation checks, resumable execution, maintenance operations, and dedicated audit/webhook events.
- Added synchronized personal Browser path favorites and an application-version indicator in the UI.
Changed
- Simplified Browser navigation and transfer workflows around the stable S3 operations while preserving explicit multipart management, folder/ZIP downloads, object previews, version downloads, deep links, and contextual CORS guidance.
- Improved workspace routing, contextual error pages, shared/private execution-context labelling, and responsive Storage Ops bucket presentation.
- Extended the demo and frontend CI coverage for multi-step workspace flows and public demo publication.
Fixed/Security
- Propagated logout across tabs, clarified authentication failures, added secret-visibility controls, and enforced inherited privileged-workspace access consistently.
- Revalidated onboarding credentials on retry, avoided sample-account collisions, cleaned Portal IAM state during account deletion, and corrected Ceph Admin RGW user modification semantics.
- Fixed large proxied uploads, exact-version downloads, archive stream cleanup, empty or invalid bulk actions, lifecycle/access JSON validation, and compatibility with legacy botocore checksum configuration.
Upgrade notes
- Apply the normal Alembic upgrade path. Migrations
0133_portal_role_change_requestthrough0137_browser_path_favoritesadd Portal collaborator delegation, Browser favorites, and the revised bucket-migration workflow. - Before upgrading, finish or stop any active bucket migration and verify that migration-applied target protections have been restored; migration
0135_bucket_migration_workflowintentionally refuses to proceed otherwise. - This patch release does not create a new schema baseline.
Tests
- Added cross-surface UI validation and focused Browser/migration retests covering authentication, workspace access, Portal delegation, Manager migrations, object/version downloads, favorites, uploads, and responsive behavior.
- Release qualification validates the exact prepared SHA across the mandatory application suite, Ceph checks, multi-architecture images and scans, Helm/Compose contracts, Kind onboarding, and public release bundles before finalization.
Full changelog: v0.2.9...v0.2.10
v0.2.9
0.2.9 - 2026-09-26
Added
- Added durable Admin webhook endpoints with event subscriptions, signed delivery, retry tracking, delivery history, and migration-callback integration.
- Added an Admin effective-access audit to explain direct and group-derived rights across storage targets.
- Added guided JSON editors and context-aware autocomplete for advanced bucket configuration workflows.
Changed
- Redesigned Manager and Ceph Admin bucket configuration cards around compact summaries and focused editing dialogs while preserving existing S3 behavior.
- Consolidated backend domain-error handling, association validation, identity resolution, statistics, billing, health, and storage-service contracts to remove redundant compatibility paths.
- Updated release publication so stable tags and releases are created only after the exact qualified distribution, public images, Helm chart, bundles, scans, and smoke tests are ready.
Fixed/Security
- Enforced split-deployment runtime-surface boundaries and removed remaining hardening compatibility fallbacks.
- Fixed lifecycle-rule scope preservation, multi-backend webhook dispatch isolation, and several typed upstream/resource-not-found error paths.
- Aligned frontend tests with the redesigned bucket configuration UX and fixed release secret-fixture resolution from the repository root.
Upgrade notes
- Apply the normal Alembic upgrade path. Migrations
0130_canonical_admin_passkey_policy,0131_canonical_onboarding_journeys, and0132_webhook_endpointspreserve the Admin passkey policy, migrate legacy onboarding completion state, and add durable webhook storage. - This patch release does not create a new schema baseline.
Tests
- Expanded backend and frontend coverage for webhooks, effective-access auditing, guided settings editors, bucket configuration, runtime-surface security, migration compatibility, and release publication.
- Release qualification validates the exact prepared SHA across the mandatory application suite, Ceph checks, multi-architecture images and scans, Helm/Compose contracts, Kind onboarding, and public release bundles before finalization.
Full changelog: v0.2.8...v0.2.9