forge-recovery 878e6def90
QRun-IO/ci-policy: ci / fork-guard (push) Skipped
QRun-IO/ci-policy: ci / head-profile (push) Skipped
QRun-IO/ci-policy: ci / application-template-0 (push) Skipped
QRun-IO/ci-policy: ci / gradle-1 (push) Skipped
QRun-IO/ci-policy: ci / java-docker-4 (push) Skipped
QRun-IO/ci-policy: ci / java-frontend-browser-5 (push) Skipped
QRun-IO/ci-policy: ci / java-maven-6 (push) Skipped
QRun-IO/ci-policy: ci / java-maven-7 (push) Skipped
QRun-IO/ci-policy: ci / node-8 (push) Skipped
QRun-IO/ci-policy: ci / node-9 (push) Skipped
QRun-IO/ci-policy: ci / node-10 (push) Skipped
QRun-IO/ci-policy: ci / node-playwright-11 (push) Skipped
QRun-IO/ci-policy: ci / repository-policy-12 (push) Skipped
QRun-IO/ci-policy: ci / source-config-13 (push) Skipped
QRun-IO/ci-policy: ci / source-config-14 (push) Skipped
QRun-IO/ci-policy: ci / android-0 (push) Skipped
QRun-IO/ci-policy: ci / not-enrolled (push) Skipped
QRun-IO/ci-policy: native / fork-deny (push) Skipped
QRun-IO/ci-policy: native / dotnet-0 (push) Skipped
Shared Java Maven CI with Docker / secrets (push) Successful in 12s
QRun-IO/ci-policy: native / native-result (push) Successful in 4s
QRun-IO/ci-policy: Shared Java Maven CI with Docker / secrets (push) Successful in 9s
QRun-IO/ci-policy: ci / repository-policy (push) Skipped
QRun-IO/ci-policy: ci / java-core-2-head (push) Skipped
QRun-IO/ci-policy: ci / java-docker-3-head (push) Skipped
QRun-IO/ci-policy: ci / java-maven-6-head (push) Skipped
QRun-IO/ci-policy: ci / java-maven-7-head (push) Skipped
Shared Java Maven CI with Docker / verify (push) Successful in 1m1s
QRun-IO/ci-policy: Shared Java Maven CI with Docker / verify (push) Successful in 1m2s
Shared Java Maven CI with Docker / gate (push) Successful in 11s
qrun-release / release (push) Successful in 1h38m16s
qrun-release / postpublish (push) Skipped
QRun-IO/ci-policy: Shared Java Maven CI with Docker / gate (push) Successful in 16s
QRun-IO/ci-policy: ci / java-docker-3 (push) Successful in 1h38m29s
QRun-IO/ci-policy: ci / ci-result (push) Successful in 6s
ci: enroll shared Gitea lifecycle
2026-11-02 19:28:34 +00:00
2026-01-10 18:35:51 -06:00
2026-01-10 18:35:51 -06:00
2026-01-10 18:35:51 -06:00
2026-01-10 18:35:51 -06:00
2026-01-10 18:35:51 -06:00
2026-01-10 18:35:51 -06:00

QBit Template: Extension

Template repository for creating QQQ Extension QBits - infrastructure extensions, customizers, and action handlers.

What is an Extension QBit?

Extension QBits extend or enhance how QQQ operates at the infrastructure/framework level. They provide:

  • New backend implementations
  • Authentication mechanisms
  • Audit capabilities
  • Table customizers
  • Action handlers

Quick Start

  1. Click "Use this template" to create your QBit
  2. Run scripts/customize_template.py to rename the example
  3. Implement your extension logic
  4. Add tests
  5. Publish to Maven repository

Structure

src/main/java/com/kingsrook/qbits/example/
├── ExampleExtensionQBitConfig.java    # Configuration
├── ExampleExtensionQBitProducer.java  # Entry point
├── customizers/
│   └── ExampleTableCustomizer.java    # Table customization
└── actions/
    └── ExampleActionCustomizer.java   # Action handling

Key Characteristics

  • No QAppSection - Pure infrastructure
  • No user-facing tables (or minimal operational)
  • Wraps existing tables/processes with new behavior
  • Validates dependencies on other QQQ components

Documentation

License

AGPL-3.0 - See LICENSE

S
Description
QQQ QBit: WORM (write-once) audit - append-only audit tables, hash-chained tamper evidence, verification, sealed exports to S3 Object Lock
Readme
4.9 MiB
0 Stars 3 Watchers 0 Forks
Languages
Java 95.4%
PLpgSQL 4.6%