diff --git a/.circleci/config.yml b/.circleci/config.yml
index 41973ad..ed1e21c 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -1,56 +1,57 @@
version: 2.1
-executors:
- java-executor:
- docker:
- - image: cimg/openjdk:17.0
-
-jobs:
- verify:
- executor: java-executor
- steps:
- - checkout
- - restore_cache:
- keys:
- - v1-maven-cache-{{ checksum "pom.xml" }}
- - run:
- name: Verify with Maven
- command: mvn -s .circleci/mvn-settings.xml verify
- - store_test_results:
- path: target/surefire-reports
- - save_cache:
- paths:
- - ~/.m2/repository
- key: v1-maven-cache-{{ checksum "pom.xml" }}
-
- deploy:
- executor: java-executor
- steps:
- - checkout
- - restore_cache:
- keys:
- - v1-maven-cache-{{ checksum "pom.xml" }}
- - run:
- name: Deploy with Maven
- command: mvn -s .circleci/mvn-settings.xml deploy
- - store_test_results:
- path: target/surefire-reports
- - save_cache:
- paths:
- - ~/.m2/repository
- key: v1-maven-cache-{{ checksum "pom.xml" }}
+orbs:
+ qqq-orb: kingsrook/qqq-orb@0.3.5
workflows:
- version: 2
- build_and_deploy:
+
+ test_only:
jobs:
- - verify:
- context: qqq-maven-registry-credentials
+ - qqq-orb/mvn_test_only:
+ context: [ qqq-maven-registry-credentials ]
filters:
branches:
- ignore: main
- - deploy:
- context: qqq-maven-registry-credentials
+ ignore: /(develop|main|release/.*|hotfix/.*|integration.*)/
+ tags:
+ only: []
+
+ publish_snapshot:
+ jobs:
+ - qqq-orb/mvn_publish:
+ context: [ qqq-maven-registry-credentials ]
+ branch_type: snapshot
filters:
branches:
- only: main
+ only:
+ - develop
+
+ publish_release_candidate:
+ jobs:
+ - qqq-orb/mvn_publish:
+ context: [ qqq-maven-registry-credentials ]
+ branch_type: release_candidate
+ filters:
+ branches:
+ only:
+ - /release\/.*/
+
+ publish_release:
+ jobs:
+ - qqq-orb/mvn_publish:
+ context: [ qqq-maven-registry-credentials ]
+ branch_type: release
+ filters:
+ branches:
+ only: [ main ]
+ tags:
+ only: [ /v.*/ ]
+
+ publish_hotfix_release:
+ jobs:
+ - qqq-orb/mvn_publish:
+ context: [ qqq-maven-registry-credentials ]
+ branch_type: hotfix
+ filters:
+ branches:
+ only:
+ - /hotfix\/.*/
diff --git a/.circleci/mvn-settings.xml b/.circleci/mvn-settings.xml
deleted file mode 100644
index b2a345f..0000000
--- a/.circleci/mvn-settings.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
- github-qqq-maven-registry
- ${env.QQQ_MAVEN_REGISTRY_USERNAME}
- ${env.QQQ_MAVEN_REGISTRY_PASSWORD}
-
-
-
diff --git a/CHANGELOG.md b/CHANGELOG.md
new file mode 100644
index 0000000..2fe902f
--- /dev/null
+++ b/CHANGELOG.md
@@ -0,0 +1,58 @@
+# Changelog
+
+All notable changes to QBit User Role Permissions will be documented in this file.
+
+The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/)
+and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+
+## [Unreleased]
+
+### Added
+- Comprehensive README documentation following QQQ sub repo standards
+- Standard GitHub files (LICENSE, CHANGELOG, CONTRIBUTING, SECURITY, CODE_OF_CONDUCT)
+- Proper project structure and documentation
+
+### Changed
+- Updated README to follow QQQ framework standards
+- Improved project documentation and structure
+- Enhanced GitHub repository setup
+
+## [0.30.0-SNAPSHOT] - 2024-01-XX
+
+### Added
+- Initial QBit implementation for user role permissions
+- Database schema for users, roles, and permissions
+- Java classes for User, Role, Permission, UserRole, and RolePermission
+- Integration with QQQ Backend Core framework
+- H2 database support for testing
+- JUnit 5 test framework integration
+- AssertJ assertions for testing
+- Checkstyle configuration for code quality
+
+### Changed
+- Initial public release of QBit User Role Permissions
+- Established QBit development standards
+- Created modular architecture for permission management
+
+---
+
+## 📚 For Detailed Information
+
+**📖 [Complete Documentation Wiki](https://github.com/Kingsrook/qqq/wiki)** - Start here for comprehensive guides
+- **[🏠 Home](https://github.com/Kingsrook/qqq/wiki/Home)** - Project overview and quick start
+- **[🚀 Release Flow](https://github.com/Kingsrook/qqq/wiki/Release-Flow)** - Detailed release process
+- **[🏷️ Changelog & Tagging](https://github.com/Kingsrook/qqq/wiki/Changelog-and-Tagging)** - Commit conventions and release notes
+- **[🔧 Developer Onboarding](https://github.com/Kingsrook/qqq/wiki/Developer-Onboarding)** - Setup and contribution guide
+
+## 🔄 Version Compatibility
+
+QBit User Role Permissions follows semantic versioning:
+- **MAJOR** versions may contain breaking changes
+- **MINOR** versions add new functionality (backward compatible)
+- **PATCH** versions contain bug fixes (backward compatible)
+
+For detailed compatibility information, see [QQQ Compatibility Matrix](https://github.com/Kingsrook/qqq/wiki/Compatibility-Matrix).
+
+---
+
+**Thank you for using QBit User Role Permissions!** 🚀
diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md
new file mode 100644
index 0000000..c079e2b
--- /dev/null
+++ b/CODE_OF_CONDUCT.md
@@ -0,0 +1,4 @@
+# Code of Conduct
+
+
+See Project level [Code of Conduct](https://github.com/Kingsrook/qqq/blob/develop/CODE_OF_CONDUCT.md)
diff --git a/CODE_STYLE.md b/CODE_STYLE.md
new file mode 100644
index 0000000..a1cf983
--- /dev/null
+++ b/CODE_STYLE.md
@@ -0,0 +1,3 @@
+# Code Style Guide
+
+* See Project [Code Style Guide](https://github.com/Kingsrook/qqq/blob/develop/CODE_STYLE.md)
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
new file mode 100644
index 0000000..470372b
--- /dev/null
+++ b/CONTRIBUTING.md
@@ -0,0 +1,4 @@
+# Contributing to QBit User Role Permissions
+
+* See Project [Contributing](https://github.com/Kingsrook/qqq/blob/develop/CONTRIBUTING.md)
+
diff --git a/README.md b/README.md
index ccfc072..c67f63a 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,35 @@
-## QBit: webhooks
+# QBit: Webhooks
+
+[](https://github.com/Kingsrook/qbit-webhooks)
+[](https://www.gnu.org/licenses/agpl-3.0.en.html)
+[](https://adoptium.net/)
+
+> **Webhook Implementation for QQQ Applications - Event-Driven Integration**
+
+This QBit provides a comprehensive webhook system for QQQ applications, enabling real-time event notifications to external systems and partners.
+
+## 🚀 What Makes QBit Webhooks Different?
+
+**QBit Webhooks gives you enterprise-grade webhook capabilities** - you define your event types, configure webhook endpoints, and QBit Webhooks handles the reliable delivery, retry logic, and comprehensive logging. No more building webhook infrastructure from scratch.
+
+### ✨ Core Capabilities
+
+- **🔗 Webhook Management**: Complete webhook endpoint and subscription management
+- **📡 Event Types**: Flexible event type registration and categorization
+- **🔄 Reliable Delivery**: Built-in retry logic and delivery tracking
+- **📊 Comprehensive Logging**: Full audit trail of webhook events and delivery attempts
+- **🎯 Event Filtering**: Subscribe to specific event types and categories
+- **📦 JSON Payloads**: Structured event content with API versioning support
+
+## 🔓 Open Source & Full Control
+
+**QBit Webhooks is 100% open source** - you have complete ownership and control:
+
+- **💻 Your Code**: Full access to QBit Webhooks source code
+- **🗄️ Your Data**: All webhook data stays in your systems
+- **🏗️ Your System**: Deploy anywhere - on-premises, cloud, or hybrid
+- **🔒 No Vendor Lock-in**: No external webhook services required
+- **⚡ Full Customization**: Modify and extend webhook behavior to your needs
### Overview
*Note: This is one of the original QBit implementations - so, some of the mechanics of how
@@ -7,6 +38,38 @@ creation... Please excuse any dust or not-quite-round wheels you find here!*
This QBit provides a basic implementation of webhooks to a QQQ Application.
+## 🏗️ Architecture
+
+### Technology Stack
+
+- **Java**: Java 17+ with UTF-8 encoding
+- **QQQ Framework**: Built on QQQ backend modules
+- **Database**: RDBMS support through QQQ tables
+- **JSON**: Structured event payloads with API versioning
+
+### What This QBit Contains
+
+- **Webhook Management**: Complete webhook endpoint and subscription system
+- **Event Processing**: Event type registration and categorization
+- **Delivery System**: Reliable webhook delivery with retry logic
+- **Audit Trail**: Comprehensive logging of all webhook activities
+- **Database Schema**: Five core tables for webhook management
+
+### What This QBit Does NOT Contain
+
+- **HTTP Client**: Uses QQQ's built-in HTTP capabilities
+- **Authentication**: Relies on QQQ's security framework
+- **Scheduling**: Uses QQQ's job scheduling system
+- **External Services**: No third-party webhook services
+
+## 🚀 Getting Started
+
+### Prerequisites
+
+- **Java 17+** (required for QQQ features)
+- **Maven 3.8+** (for build system)
+- **QQQ Application** (this is a QBit, not a standalone application)
+
### Usage
#### Pom dependency
@@ -53,3 +116,66 @@ webhooksRegistry.registerWebhookEventType(new WebhookEventType()
- `qqq-backend-module-api` - as the objects posted are api-versioned
- `QQQTablesMetaDataProvider` - for event record foreign keys
+## 📚 Documentation
+
+**📖 [Complete Documentation Wiki](https://github.com/Kingsrook/qqq/wiki)** - Start here for comprehensive guides
+
+- **[🏠 Home](https://github.com/Kingsrook/qqq/wiki/Home)** - Project overview and quick start
+- **[🏗️ Architecture](https://github.com/Kingsrook/qqq/wiki/High-Level-Architecture)** - System design and principles
+- **[🔧 Development](https://github.com/Kingsrook/qqq/wiki/Developer-Onboarding)** - Setup and contribution guide
+- **[📦 Modules](https://github.com/Kingsrook/qqq/wiki/Core-Modules)** - Available components and usage
+- **[🚀 Building](https://github.com/Kingsrook/qqq/wiki/Building-Locally)** - Local development workflow
+- **[🔌 QBits](https://github.com/Kingsrook/qqq/wiki/QBit-Development)** - QBit development guide
+
+## 🤝 Contributing
+
+QBit Webhooks is **open source** and welcomes contributions!
+
+- **🐛 [Report Issues](https://github.com/Kingsrook/qqq/issues)** - Bug reports and feature requests
+- **📝 [Contribution Guide](https://github.com/Kingsrook/qqq/wiki/Contribution-Guidelines)** - How to contribute code and documentation
+- **🔍 [Code Standards](https://github.com/Kingsrook/qqq/wiki/Code-Review-Standards)** - QQQ's coding standards and review process
+
+**First time contributing?** Start with our [Developer Onboarding Guide](https://github.com/Kingsrook/qqq/wiki/Developer-Onboarding) to get your environment set up.
+
+## 🏢 About Kingsrook
+
+QBit Webhooks is built by **[Kingsrook](https://qrun.io)** - making engineers more productive through intelligent automation and developer tools.
+
+- **Website**: [https://qrun.io](https://qrun.io)
+- **Contact**: [contact@kingsrook.com](mailto:contact@kingsrook.com)
+- **GitHub**: [https://github.com/Kingsrook](https://github.com/Kingsrook)
+
+## 📄 License
+
+This project is licensed under the **GNU Affero General Public License v3.0** - see the [LICENSE.txt](LICENSE.txt) file for details.
+
+## 🆘 Support & Community
+
+### ⚠️ Important: Use Main QQQ Repository
+
+**All support, issues, discussions, and community interactions should go through the main QQQ repository:**
+
+- **Main Repository**: https://github.com/Kingsrook/qqq
+- **Issues**: https://github.com/Kingsrook/qqq/issues
+- **Discussions**: https://github.com/Kingsrook/qqq/discussions
+- **Wiki**: https://github.com/Kingsrook/qqq.wiki
+
+### Why This Repository Exists
+
+This repository is maintained separately from the main QQQ repository to:
+- **Enable independent QBit development** and versioning
+- **Allow QBit-specific CI/CD** and deployment pipelines
+- **Provide clear separation** between QBit components and core framework concerns
+- **Support different release cycles** for QBits vs. core framework
+
+### Getting Help
+
+- **Documentation**: Check the [QQQ Wiki](https://github.com/Kingsrook/qqq.wiki)
+- **Issues**: Report bugs and feature requests on [Main QQQ Issues](https://github.com/Kingsrook/qqq/issues)
+- **Discussions**: Join community discussions on [Main QQQ Discussions](https://github.com/Kingsrook/qqq/discussions)
+- **Questions**: Ask questions in the main QQQ repository
+
+---
+
+**Ready to integrate webhooks into your QQQ application?** [Get started with QBit Webhooks today!](https://github.com/Kingsrook/qqq/wiki/QBit-Development)
+
diff --git a/SECURITY.md b/SECURITY.md
new file mode 100644
index 0000000..44e3e7b
--- /dev/null
+++ b/SECURITY.md
@@ -0,0 +1,3 @@
+# Security Policy
+
+ * See Project [Security Policy](https://github.com/Kingsrook/qqq/blob/develop/SECURITY.md)
diff --git a/pom.xml b/pom.xml
index 9e94e97..13ab9e1 100644
--- a/pom.xml
+++ b/pom.xml
@@ -23,24 +23,57 @@
4.0.0
+
+ com.kingsrook
+ qbit-build-parent
+ 1.1.0
+
+
com.kingsrook.qbits
qbit-webhooks
- 0.1.4-SNAPSHOT
+ ${revision}
+ jar
+
+ QBit Webhooks
+ Webhook implementation for QQQ applications, enabling real-time event notifications to external systems and partners
+ https://github.com/Kingsrook/qbit-webhooks
+
+
+
+ GNU Affero General Public License v3.0
+ https://www.gnu.org/licenses/agpl-3.0.html
+ repo
+
+
+
+
+
+ kingsrook
+ Kingsrook Team
+ contact@kingsrook.com
+ Kingsrook, LLC
+ https://kingsrook.com
+
+
+
+
+ scm:git:git://github.com/Kingsrook/qbit-webhooks.git
+ scm:git:ssh://github.com:Kingsrook/qbit-webhooks.git
+ https://github.com/Kingsrook/qbit-webhooks
+ HEAD
+
- UTF-8
- UTF-8
- 17
- 17
- true
+ 0.2.0-SNAPSHOT
+
com.kingsrook.qqq
qqq-bom-pom
- 0.26.0-20250723-153141
+ 0.27.9
pom
import
@@ -61,7 +94,7 @@
com.kingsrook.qqq
- qqq-middleware-api
+ qqq-middleware-api
@@ -75,41 +108,6 @@
3.27.3
test
-
- com.kingsrook.qqq
- qqq-middleware-javalin
- test
-
-
-
-
- org.apache.maven.plugins
- maven-surefire-plugin
- 3.0.0-M5
-
-
- ${testOutputToFile}
-
-
-
-
-
-
-
- github-qqq-maven-registry
- GitHub QQQ Maven Registry
- https://maven.pkg.github.com/Kingsrook/qqq-maven-registry
-
-
-
-
-
- github-qqq-maven-registry
- GitHub QQQ Maven Registry
- https://maven.pkg.github.com/Kingsrook/qqq-maven-registry
-
-
-