Commit Graph
13 Commits
Author SHA1 Message Date
james.maesandClaude Opus 5.5 4261382567 build: pin QQQ 4.1.0-RC.15 (core S3 session credentials and ${file.PATH}, qqq#1165)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 16:00:18 -05:00
james.maesandClaude Opus 5.5 5401070321 fix: the qbit metadata version comes from the build, not a hardcoded constant
The producer read a literal version, so released artifacts reported a stale
or -SNAPSHOT version. qbit-object-storage.properties (version=${project.version}) is
Maven-filtered and the producer loads it; tests assert producer == bundle ==
artifact version.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 01:34:11 -05:00
james.maesandClaude Opus 5.5 eb04621d4e fix(help): the help bundle carries the artifact version (Maven-filtered) instead of a hardcoded SNAPSHOT
On release branches the bundle's version and the producer's differed, so the
bundle test that asserts they match failed, and released bundles recorded
SNAPSHOT as their provenance. help/*.yaml is now filtered:
version: ${project.version}.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 22:07:58 -05:00
james.maesandClaude Opus 5.5 8aa4511839 Merge origin/develop into feature/health-checks; pin QQQ 4.1.0-RC.8
RC.8 ships the central health kernel (QRun-IO/qqq#1207).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 21:18:29 -05:00
james.maesandClaude Opus 5.5 d00c230140 feat(help): ship the qbit-object-storage help bundle through QQQ help bundles, with coverage gate
Host-neutral help (deployment-specific facts removed), registered with
HelpBundles, gated by HelpBundleAssertions. QQQ 4.1.0-RC.7.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 20:37:04 -05:00
james.maesandClaude Opus 5.5 25e57e0315 feat: guided empty states, Setup card, starter header rule and bucket presign overrides
Help bundle for all 12 tables and the app (ObjectStorageHelp), Setup card on
the home, disabled default-mutable header rule via a jar changelog tested
through real Liquibase on H2, tables guardrail test. The bucket row's presign
limits are now read at runtime (ConfigSync.withBucketOverrides). The version
table is documented as reserved and not used yet.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 16:57:43 -05:00
james.maesandClaude Opus 5.5 5871f32b77 build: QQQ 4.1.0-RC.6 and qbit-build-parent 2.1.0 with guardrails enforced
Move the core baseline to the released 4.1.0-RC.6 (architecture review
finding F19, guardrail G7). Adopt qbit-build-parent 2.1.0 with the
architecture guardrails enforced (G1, G3, G4, G7) and tests in strict
raw-route mode (G2). Everything passes with no source changes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 07:18:42 -05:00
james.maesandClaude Opus 5.5 a58b179334 refactor(connections): build S3 clients with core S3ClientFactory (QQQ 4.1.0-RC.5)
ConnectionRuntime maps StorageConnectionConfig to S3BackendMetaData and
builds clients with core S3ClientFactory.buildClient, which is uncached.
The per-connection cache keyed by the settings hash is unchanged.
The duplicated HTTP, TLS and trust-manager code is deleted.

Still local:
- the presigner;
- a session-credentials bridge, because core has no session-token or
  credentials-provider hook;
- ${file.PATH} secret refs.
The last two are tagged STAND-IN(core=QRun-IO/qqq#1165, removeBy=4.1.0-RC.7).

Retries now follow core and SDK defaults instead of a forced ADAPTIVE_V2.
Unused SFTP/SSH transitive dependencies of the filesystem module are
excluded.

Closes #10 (architecture review QRun-IO/qqq#1150, finding F3).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 19:36:05 -05:00
james.maesandClaude Opus 5.5 2e95c64a78 build(deps): AWS SDK for Java v2 2.41.10 -> 2.41.34 (GHSA-443w-3rq3-5m5h)
2.41.10 carries the HIGH advisory GHSA-443w-3rq3-5m5h (flagged by a Trivy scan); 2.41.30+ fixes it. Same minor line, so no API change.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 10:23:36 -05:00
james.maesandClaude Sonnet 5.5 e8616197f0 feat: generated PostgreSQL schema, snake_case column names, and the index tests on real PostgreSQL
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-12 17:18:18 -05:00
james.maesandClaude Sonnet 5.5 c3347b56d8 feat: responsive Storage home, record screen sections, preview field, probe records versioning state, demo server
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-12 17:06:20 -05:00
james.maesandClaude Sonnet 5.5 18ffbf1e75 feat: storage service API, config, tables, capability probe, Test connection, and the MinIO and Garage conformance suite
P1 of the object storage qbit: ObjectStorage.bucket(alias) with put, get, head, copy,
delete, restore, list, header changes, presigned GET/PUT/POST and public URLs; config
from code upserted into visible object_storage_* tables; capability model with the
Test connection probe; operation log; header policy; protection rules; SF1-SF5.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-12 16:21:04 -05:00
james.maesandClaude Opus 5.5 ad4677ad79 chore: bootstrap qbit-object-storage with the QRun qbit repository standard
Maven scaffold (qbit-build-parent 2.0.0, com.kingsrook.qbits, <revision>
versioning, qqq 4.1.0-RC.4 BOM, JaCoCo gate), QBit config and producer,
CircleCI qqq-orb pipeline, and the standard repository files.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 14:41:25 -05:00