chore: Updated to meet requirements for maven central and qqq-orb #1
No files matched your search
+48
-47
@@ -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\/.*/
|
||||
@@ -1,9 +0,0 @@
|
||||
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
|
||||
<servers>
|
||||
<server>
|
||||
<id>github-qqq-maven-registry</id>
|
||||
<username>${env.QQQ_MAVEN_REGISTRY_USERNAME}</username>
|
||||
<password>${env.QQQ_MAVEN_REGISTRY_PASSWORD}</password>
|
||||
</server>
|
||||
</servers>
|
||||
</settings>
|
||||
@@ -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!** 🚀
|
||||
@@ -0,0 +1,4 @@
|
||||
# Code of Conduct
|
||||
|
||||
|
||||
See Project level [Code of Conduct](https://github.com/Kingsrook/qqq/blob/develop/CODE_OF_CONDUCT.md)
|
||||
@@ -0,0 +1,3 @@
|
||||
# Code Style Guide
|
||||
|
||||
* See Project [Code Style Guide](https://github.com/Kingsrook/qqq/blob/develop/CODE_STYLE.md)
|
||||
@@ -0,0 +1,4 @@
|
||||
# Contributing to QBit User Role Permissions
|
||||
|
||||
* See Project [Contributing](https://github.com/Kingsrook/qqq/blob/develop/CONTRIBUTING.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)
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
# Security Policy
|
||||
|
||||
* See Project [Security Policy](https://github.com/Kingsrook/qqq/blob/develop/SECURITY.md)
|
||||
@@ -23,24 +23,57 @@
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<parent>
|
||||
<groupId>com.kingsrook</groupId>
|
||||
<artifactId>qbit-build-parent</artifactId>
|
||||
<version>1.1.0</version>
|
||||
</parent>
|
||||
|
||||
<groupId>com.kingsrook.qbits</groupId>
|
||||
<artifactId>qbit-webhooks</artifactId>
|
||||
<version>0.1.4-SNAPSHOT</version>
|
||||
<version>${revision}</version>
|
||||
<packaging>jar</packaging>
|
||||
|
||||
<name>QBit Webhooks</name>
|
||||
<description>Webhook implementation for QQQ applications, enabling real-time event notifications to external systems and partners</description>
|
||||
<url>https://github.com/Kingsrook/qbit-webhooks</url>
|
||||
|
||||
<licenses>
|
||||
<license>
|
||||
<name>GNU Affero General Public License v3.0</name>
|
||||
<url>https://www.gnu.org/licenses/agpl-3.0.html</url>
|
||||
<distribution>repo</distribution>
|
||||
</license>
|
||||
</licenses>
|
||||
|
||||
<developers>
|
||||
<developer>
|
||||
<id>kingsrook</id>
|
||||
<name>Kingsrook Team</name>
|
||||
<email>contact@kingsrook.com</email>
|
||||
<organization>Kingsrook, LLC</organization>
|
||||
<organizationUrl>https://kingsrook.com</organizationUrl>
|
||||
</developer>
|
||||
</developers>
|
||||
|
||||
<scm>
|
||||
<connection>scm:git:git://github.com/Kingsrook/qbit-webhooks.git</connection>
|
||||
<developerConnection>scm:git:ssh://github.com:Kingsrook/qbit-webhooks.git</developerConnection>
|
||||
<url>https://github.com/Kingsrook/qbit-webhooks</url>
|
||||
<tag>HEAD</tag>
|
||||
</scm>
|
||||
|
||||
<properties>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
|
||||
<maven.compiler.source>17</maven.compiler.source>
|
||||
<maven.compiler.target>17</maven.compiler.target>
|
||||
<testOutputToFile>true</testOutputToFile>
|
||||
<revision>0.2.0-SNAPSHOT</revision>
|
||||
</properties>
|
||||
|
||||
|
||||
<dependencyManagement>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>com.kingsrook.qqq</groupId>
|
||||
<artifactId>qqq-bom-pom</artifactId>
|
||||
<version>0.26.0-20250723-153141</version>
|
||||
<version>0.27.9</version>
|
||||
<type>pom</type>
|
||||
<scope>import</scope>
|
||||
</dependency>
|
||||
@@ -61,7 +94,7 @@
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.kingsrook.qqq</groupId>
|
||||
<artifactId>qqq-middleware-api</artifactId>
|
||||
<artifactId>qqq-middleware-api</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
@@ -75,41 +108,6 @@
|
||||
<version>3.27.3</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.kingsrook.qqq</groupId>
|
||||
<artifactId>qqq-middleware-javalin</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-surefire-plugin</artifactId>
|
||||
<version>3.0.0-M5</version>
|
||||
<configuration>
|
||||
<!-- Reduce console output for cleaner JUnit output -->
|
||||
<redirectTestOutputToFile>${testOutputToFile}</redirectTestOutputToFile>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
<repositories>
|
||||
<repository>
|
||||
<id>github-qqq-maven-registry</id>
|
||||
<name>GitHub QQQ Maven Registry</name>
|
||||
<url>https://maven.pkg.github.com/Kingsrook/qqq-maven-registry</url>
|
||||
</repository>
|
||||
</repositories>
|
||||
|
||||
<distributionManagement>
|
||||
<repository>
|
||||
<id>github-qqq-maven-registry</id>
|
||||
<name>GitHub QQQ Maven Registry</name>
|
||||
<url>https://maven.pkg.github.com/Kingsrook/qqq-maven-registry</url>
|
||||
</repository>
|
||||
</distributionManagement>
|
||||
|
||||
</project>
|
||||
Reference in new issue
Block a user