• KofTwentyTwo released this 2026-10-16 16:28:45 +00:00 | 8 commits to develop since this release

    qbit-object-storage 0.1.0-RC.9 release candidate. RC.8 and earlier remain immutable. Requires QQQ 4.1.0-RC.15 or later.

    Since RC.8

    • ci(release-rc): pass secrets so the shared workflow can sign the RC tag (#29)
    • fix(app): Storage home links use the /app/ route (#30)

      The help bundle ships the qbit's in-app help through QQQ help bundles (core < qbit < host < user edit), so hosts no longer need staging copies.

      No GA approval is implied.

      The signed annotated tag v0.1.0-RC.9 fixes source ab1918b on release/0.1.

    Downloads
  • KofTwentyTwo released this 2026-10-15 22:39:13 +00:00 | 14 commits to develop since this release

    qbit-object-storage 0.1.0-RC.8 release candidate. RC.7 and earlier remain immutable. Requires QQQ 4.1.0-RC.15 or later.

    Since RC.7

    • fix(help): help bundle version comes from the build, not a hardcoded SNAPSHOT (#25)
    • fix: qbit metadata version comes from the build (#26)
    • refactor: core S3 session credentials and ${file.PATH} refs; drop qqq#1165 stand-ins (QQQ RC.15) (#28)
    • Register object-storage caches with ClusterCaches (multi-node) (#27)

    The help bundle ships the qbit's in-app help through QQQ help bundles (core < qbit < host < user edit), so hosts no longer need staging copies.

    No GA approval is implied.

    The signed annotated tag v0.1.0-RC.8 fixes source 0abedf4 on release/0.1.

    Downloads
  • KofTwentyTwo released this 2026-10-15 02:54:00 +00:00 | 27 commits to develop since this release

    qbit-object-storage 0.1.0-RC.7 release candidate. RC.6 and earlier remain immutable. Requires QQQ 4.1.0-RC.8 or later.

    Since RC.6

    • feat(help): qbit-object-storage help bundle via QQQ help bundles, with coverage gate (#24)
    • feat(health): register object storage connection checks with core central health (#17)

    The help bundle ships the qbit's in-app help through QQQ help bundles (core < qbit < host < user edit), so hosts no longer need staging copies.

    No GA approval is implied.

    The signed annotated tag v0.1.0-RC.7 fixes source dec9d06 on release/0.1.

    Downloads
  • KofTwentyTwo released this 2026-10-14 23:18:57 +00:00 | 36 commits to develop since this release

    qbit-object-storage 0.1.0-RC.6 release candidate. RC.5 and earlier remain immutable. Requires QQQ 4.1.0-RC.6 or later.

    Since RC.5

    • Fix: internal system work (including config sync) runs as a QSystemUserSession. Before this, config sync ran without a session token and wrote nothing, which left the storage tables empty (#18).
    • Indexes on the record-page child columns folder_id and object_id (#19).
    • Foreign keys on every relation between the qbit's tables (#20), applied on PostgreSQL; the H2 test schema skips those Postgres-only blocks (#23).

    Note: the new foreign keys mean deleting a referenced row (for example a bucket that still has folders or objects) is now refused instead of leaving orphans.

    No GA approval is implied.

    The signed annotated tag v0.1.0-RC.6 fixes source cf2e9fc on release/0.1.

    Downloads
  • KofTwentyTwo released this 2026-10-14 22:45:23 +00:00 | 46 commits to develop since this release

    qbit-object-storage 0.1.0-RC.5 release candidate. RC.4 and earlier remain immutable. Requires QQQ 4.1.0-RC.6 or later.

    Since RC.4

    • Guided empty states, a Setup card, a starter header rule and per-bucket presign overrides (#21).
    • CI: qqq-orb 0.6.9 (#15).

    No GA approval is implied.

    The signed annotated tag v0.1.0-RC.5 fixes source 93c116f on release/0.1.

    Downloads
  • KofTwentyTwo released this 2026-10-14 12:45:29 +00:00 | 53 commits to develop since this release

    qbit-object-storage 0.1.0-RC.4 release candidate. RC.3 and earlier remain immutable.

    Since RC.3

    • StorageBucket.maxUploadBytes() (#13)
    • QQQ 4.1.0-RC.6 and qbit-build-parent 2.1.0 with guardrails enforced (#14)

    No GA approval is implied.

    The signed annotated tag v0.1.0-RC.4 fixes source 5c8f2f5 on release/0.1.

    Downloads
  • KofTwentyTwo released this 2026-10-14 01:10:25 +00:00 | 59 commits to develop since this release

    qbit-object-storage 0.1.0-RC.3 is published to Maven Central (com.kingsrook.qbits:qbit-object-storage:0.1.0-RC.3) from release/0.1 on 2026-10-14. This is architecture remediation (#11): connection handling is consolidated into ConnectionRuntime and S3ClientFactory. It builds against QQQ 4.1.0-RC.5 (the S3 backend on AWS SDK v2) with no SNAPSHOT dependencies. This is a prerelease.

    The signed annotated tag v0.1.0-RC.3 fixes source 8692857 on release/0.1.

    Downloads
  • KofTwentyTwo released this 2026-10-13 16:05:03 +00:00 | 66 commits to develop since this release

    qbit-object-storage 0.1.0-RC.2 is published to Maven Central (com.kingsrook.qbits:qbit-object-storage:0.1.0-RC.2) from release/0.1 on 2026-10-13. It is a security update to RC.1: AWS SDK for Java v2 moves from 2.41.10 to 2.41.34, which fixes HIGH GHSA-443w-3rq3-5m5h (#8). There are no functional changes. This is a prerelease.

    The signed annotated tag v0.1.0-RC.2 fixes source 07275bc (the orb's version bump on release/0.1).

    Downloads
  • KofTwentyTwo released this 2026-10-12 23:12:34 +00:00 | 70 commits to develop since this release

    qbit-object-storage 0.1.0-RC.1 is the first release candidate of the object storage qbit (S3-compatible storage), published to Maven Central (com.kingsrook.qbits:qbit-object-storage:0.1.0-RC.1) from release/0.1 on 2026-10-12. Design: qqq#1089, approved by the owner 2026-10-12. This is a prerelease.

    It builds against QQQ 4.1.0-RC.4 with a stand-in S3 client factory. The QQQ S3 backend on AWS SDK v2 (qqq#1095) ships in 4.1.0-RC.5, and the stand-in is replaced before GA. Included: #4 and #6 (114 tests).

    The signed annotated tag v0.1.0-RC.1 fixes source f1fb246 (the orb's version bump on release/0.1).

    Notes from the changelog:

    Added

    • The service (P1). ObjectStorage.bucket(alias) and ObjectStorage.asSystem(caller, runId): put (multipart above the part size), get with ranges, head, copy (in parts for very large objects), header and metadata changes, delete (delete marker, private trash, or permanent), restore, list, presigned GET, PUT and POST, public URLs, tags. Key building and URL encoding, the header policy (object_storage_header_rule), PublicUrlResolver, StorageChangeListener, StorageReferenceProvider, StorageAlertSink.
    • Configuration in code, upserted into visible object_storage_* tables; secret references with an allow-list; per-connection rate limits; per-bucket and per-connection record security locks.
    • The capability model and the Test connection probe (read-only by default, write tests on request, clock skew, presign host), with seeded provider defaults.
    • The object_storage_operation audit log (presigned URLs are logged without their signature) and protection rules (READ_ONLY, NO_DELETE, WARN, with allowed system callers).
    • Backups follow-ups SF1 to SF5: BucketRole.BACKUP, object lock on put, system-caller permanent delete, probes that skip locked backup buckets, and the system-caller context.
    • The index (P2). object_storage_object and object_storage_folder kept in step with each indexed bucket: resumable full scan with a mass-removal safety stop, HEAD backlog, write-through on every service write, soft-deleted rows, folder rollups. Orphaned and missing objects from FieldReferenceProvider, daily usage snapshots, quota and freshness alerts, the nightly job.
    • The Storage app (P3, P4). Admin -> Storage with a responsive home; record screens with sections, child lists and a thumbnail preview; actions Rescan bucket, Check configuration, Refresh from bucket, Apply header policy (replaces app-specific backfills), Change headers and metadata, Edit tags, Copy, Move or rename, Delete, Restore, Create download link, Create upload link, folder rename and delete, Upload files, Test connection; every one a standard Review and Result with a bulk cap.
    • ObjectStorageSchema: PostgreSQL DDL generated from the table metadata.
    • Conformance suite against MinIO and Garage (Testcontainers), service, index and action tests, and the index and actions on PostgreSQL.

    Notes

    • Until QQQ core's S3 module on AWS SDK v2 (qqq#1095, RC.5) is released, the qbit uses a small internal SDK v2 client factory.
    • Deliberate differences from the design text: Test connection is two actions (read-only, and with write tests) so the write variant can require object_storage.admin; a folder record has no subfolder child list (core does not allow a self join as an exposed join); there is no withTableNamePrefix (the object_storage_ prefix is fixed by the naming rule).
    Downloads