Compare commits

..
25 Commits
Author SHA1 Message Date
CI 9fb6fe096f Bump version to 0.1.0-RC.11 [skip ci] 2026-11-12 17:40:02 +00:00
james.maes 3473cf62bc Merge pull request 'fix(permissions): the service's own writes pass under core permission enforcement; the operation log cannot be edited (release/0.1 port of #52)' (#53) from fix/system-writes-under-core-enforcement-0.1 into release/0.1
maven / build (push) Successful in 3m20s
build / maven (push) Successful in 3m20s
2026-11-12 17:37:21 +00:00
james.maesandClaude Fable 5.2 59b0ea2ed6 fix(permissions): mark the service's own writes with the core bypass; report a failed audit row
maven / build (push) Successful in 2m53s
build / maven (push) Successful in 2m53s
Review of the first fix found the checker's pass too broad: it let any
QSystemUserSession insert, update and delete every table nobody may write
directly, so server code running as the system user could edit or delete
operation log rows.

- ObjectStoragePermissionChecker no longer looks at the session class. A
  write of those tables that reaches it is refused to every session, the
  core system user included.
- Db.insert, Db.update and Db.delete mark their input with core's per-call
  permission bypass (withPermissionBypass, Db.OWN_WRITE_REASON), so core
  does not ask about the service's own writes when a host enforces
  permissions inside the core actions.
- A failed operation log row is logged at ERROR, raises the
  storage.operation_log.failed alert on the StorageAlertSink (resolved by
  the next row written for the bucket) and is counted in
  OperationLog.failedWriteCount(). A row the insert action hands back with
  a record error is now detected too. The operation still succeeds.

Tests: the service's own log, index insert, update and delete under core
enforcement, with the acting person on the row; a system session outside
Db refused insert, update and delete of an operation row; update and
delete of an operation row refused to a person, the administrator and the
system user; the failure signal.

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
2026-11-12 11:29:00 -06:00
james.maesandClaude Fable 5.2 a1ff8b6369 fix(permissions): let the service write its own tables when core actions enforce permissions
maven / build (push) Successful in 3m40s
build / maven (push) Successful in 3m40s
In a host that sets QInstance.enforcePermissionsInCoreActions, core checks
table permissions inside InsertAction, UpdateAction and DeleteAction for
every outermost call. Db.asSystem starts a new context, so each write it
makes is outermost, and core asks ObjectStoragePermissionChecker about it.
The checker refused every write of a table that is not admin-editable
("This storage table changes only through storage actions.") to every
session, the system user the service itself writes as included.

Seen in a host application: every StorageBucket.put stored the object and
logged "Could not write a storage operation log row" with
QPermissionDeniedException, so object_storage_operation had no row for any
stored file. The same refusal applies to every other Db.asSystem write of
those tables.

The checker now lets a QSystemUserSession through for those tables. Such a
session is built by server code only; no authentication module gives one
to a request. A person is refused as before, the storage administrator
included (DbSystemSessionTest
.testServiceWritesItsOwnTablesWhenCoreActionsEnforcePermissions, which
failed before with no operation row).

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
2026-11-12 11:07:04 -06:00
CI ffa4973638 Bump version to 0.1.0-RC.10 [skip ci] 2026-11-07 17:24:26 +00:00
james.maes 92e20679d0 Merge pull request 'release: merge develop into release/0.1 (Gitea-aligned RC)' (#51) from merge/develop-into-release-0.1 into release/0.1
maven / build (push) Successful in 5m45s
build / maven (push) Successful in 5m45s
2026-11-07 17:19:26 +00:00
james.maesandClaude Opus 5.5 df281dda13 Merge develop into release/0.1 (Gitea-aligned RC)
maven / build (push) Canceled after 1m1s
build / maven (push) Canceled after 1m2s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-07 11:18:56 -06:00
james.maesandCodex 1b7f9021cf ci: centralize release branch verification and workflows (#38)
Co-authored-by: Codex <noreply@openai.com>
2026-10-21 12:43:10 -05:00
CircleCI ab1918b3cc Bump version to 0.1.0-RC.9 [skip ci] 2026-10-16 16:04:32 +00:00
github-actions[bot] 13ac85cc14 Merge develop into release/0.1 for the next 0.1.0 RC 2026-10-16 15:57:47 +00:00
CircleCI 0abedf482b Bump version to 0.1.0-RC.8 [skip ci] 2026-10-15 22:22:19 +00:00
james.maesandClaude Opus 5.5 2f94e04fec Merge develop into release/0.1 for 0.1.0-RC.8 (#27 cluster caches, #28 QQQ RC.15 S3 core)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 17:13:02 -05:00
CircleCI dec9d063a6 Bump version to 0.1.0-RC.7 [skip ci] 2026-10-15 02:45:16 +00:00
james.maesandClaude Opus 5.5 89e0e5915b Merge develop into release/0.1 for 0.1.0-RC.7 (#24 help bundle)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 21:35:47 -05:00
CircleCI cf2e9fca77 Bump version to 0.1.0-RC.6 [skip ci] 2026-10-14 23:07:52 +00:00
james.maesandClaude Opus 5.5 cd26342cfd Merge develop into release/0.1 for 0.1.0-RC.6 (#18 ConfigSync session fix, #19, #20, #23)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 17:58:53 -05:00
CircleCI 93c116ff01 Bump version to 0.1.0-RC.5 [skip ci] 2026-10-14 22:34:39 +00:00
james.maesandClaude Opus 5.5 9f2d7fc202 Merge develop into release/0.1 for 0.1.0-RC.5 (#21 setup card, seeds, help)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 17:25:24 -05:00
CircleCI 5c8f2f595b Bump version to 0.1.0-RC.4 [skip ci] 2026-10-14 12:37:00 +00:00
james.maesandClaude Opus 5.5 1ea40241f7 Merge develop into release/0.1 for 0.1.0-RC.4 (#13 maxUploadBytes, #14 QQQ RC.6 and guardrails)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 07:28:10 -05:00
CircleCI 8692857891 Bump version to 0.1.0-RC.3 [skip ci] 2026-10-14 01:02:56 +00:00
james.maesandClaude Opus 5.5 b6db9aff8b Merge develop into release/0.1 for 0.1.0-RC.3 (ConnectionRuntime/S3ClientFactory consolidation, #11)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 19:55:34 -05:00
CircleCI 07275bce3f Bump version to 0.1.0-RC.2 [skip ci] 2026-10-13 15:51:56 +00:00
james.maesandClaude Opus 5.5 9eefc0b071 Merge develop into release/0.1 for 0.1.0-RC.2
AWS SDK for Java v2 2.41.10 -> 2.41.34 (GHSA-443w-3rq3-5m5h, #8).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 10:44:08 -05:00
CircleCI f1fb2462f9 Bump version to 0.1.0-RC.1 [skip ci] 2026-10-12 23:02:00 +00:00
+1 -1
View File
@@ -20,7 +20,7 @@
<properties>
<qbit.guardrails.enforce>true</qbit.guardrails.enforce>
<qbit.guardrails.strictUiApiRoutes>true</qbit.guardrails.strictUiApiRoutes>
<revision>0.2.0-SNAPSHOT</revision>
<revision>0.1.0-RC.11</revision>
<maven.compiler.source>21</maven.compiler.source>
<maven.compiler.target>21</maven.compiler.target>
<jacoco.version>0.8.15</jacoco.version>