diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index b9093b6..9567aee 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -2,8 +2,22 @@ name: CI
on:
push:
branches: [develop]
+ paths-ignore:
+ - '**.md'
+ - 'docs/**'
+ - 'tutorials/**'
+ - 'examples/**/README.md'
+ - 'LICENSE'
+ - '.gitignore'
pull_request:
branches: [develop, main]
+ paths-ignore:
+ - '**.md'
+ - 'docs/**'
+ - 'tutorials/**'
+ - 'examples/**/README.md'
+ - 'LICENSE'
+ - '.gitignore'
workflow_dispatch:
inputs:
triggered-by:
@@ -13,10 +27,5 @@ on:
jobs:
build:
uses: fireflyframework/.github/.github/workflows/java-ci.yml@main
- permissions:
- packages: read
- contents: read
- actions: write
with:
java-version: '25'
- secrets: inherit
diff --git a/README.md b/README.md
index 8c30be7..5efc504 100644
--- a/README.md
+++ b/README.md
@@ -1,662 +1,110 @@
-# Firefly IDP - Internal Database Implementation
+# Firefly Framework - IDP - Internal Database
[](https://github.com/fireflyframework/fireflyframework-idp-internal-db/actions/workflows/ci.yml)
-
[](LICENSE)
-[](https://www.oracle.com/java/)
-[](https://spring.io/projects/spring-boot)
-
-A production-ready, self-contained Identity Provider (IDP) implementation for the Firefly Framework. This adapter provides database-backed authentication and authorization using PostgreSQL, R2DBC, and JWT tokens—no external IDP services required.
-
-## Overview
-
-The **fireflyframework-idp-internal-db-impl** is a reactive, high-performance identity provider that implements the Firefly IDP Adapter interface. It provides complete user authentication, authorization, and session management capabilities using an internal PostgreSQL database.
-
-### Key Features
+[](https://openjdk.org)
+[](https://spring.io/projects/spring-boot)
-- ✅ **Self-Contained**: Standalone authentication without external dependencies (no Keycloak, Cognito, etc.)
-- ✅ **Reactive Architecture**: Built on Spring WebFlux and R2DBC for non-blocking, high-throughput operations
-- ✅ **JWT-Based Authentication**: Secure stateless authentication with access and refresh tokens
-- ✅ **BCrypt Password Hashing**: Industry-standard password security with configurable strength
-- ✅ **PostgreSQL Storage**: Production-ready database storage via R2DBC reactive driver
-- ✅ **Role-Based Access Control (RBAC)**: Comprehensive user and role management with flexible permissions
-- ✅ **Session Management**: Active session tracking and management capabilities
-- ✅ **Token Refresh Flow**: Secure refresh token mechanism with automatic rotation
-- ✅ **Database Migrations**: Automated schema management using Flyway
-- ✅ **Security Center Integration**: Seamless integration with Firefly Security Center via auto-configuration
-- ✅ **Fully Tested**: 31 passing unit tests covering all critical paths
+> Internal database-based IDP implementation using R2DBC for user management, JWT authentication, and role-based access control.
-### When to Use This IDP
-
-This internal database IDP is ideal for:
-
-- 🧪 **Development & Testing**: Quick setup without complex external IDP configuration
-- 🏗️ **Microservices**: Standalone authentication for independent services
-- 🚀 **Simple Requirements**: Projects not requiring advanced SSO or federated identity
-- 🔒 **Self-Hosted Deployments**: Complete control over authentication data and infrastructure
-- ⚡ **High-Performance Applications**: Reactive architecture for maximum throughput
-- 🏢 **Internal Applications**: Corporate tools requiring basic authentication and RBAC
+---
-## Architecture
+## Table of Contents
-### Component Structure
+- [Overview](#overview)
+- [Features](#features)
+- [Requirements](#requirements)
+- [Installation](#installation)
+- [Quick Start](#quick-start)
+- [Configuration](#configuration)
+- [Documentation](#documentation)
+- [Contributing](#contributing)
+- [License](#license)
-```
-fireflyframework-idp-internal-db-impl/
-├── adapter/
-│ └── InternalDbIdpAdapter.java # IdpAdapter interface implementation
-├── config/
-│ ├── InternalDbIdpConfiguration.java # Spring configuration and beans
-│ └── InternalDbProperties.java # Configuration properties binding
-├── domain/
-│ ├── User.java # User entity with credentials
-│ ├── Role.java # Role entity
-│ ├── UserRole.java # User-role assignment junction
-│ ├── Session.java # Active session tracking
-│ └── RefreshToken.java # Refresh token storage
-├── repository/
-│ ├── UserRepository.java # R2DBC user data access
-│ ├── RoleRepository.java # R2DBC role data access
-│ ├── UserRoleRepository.java # R2DBC user-role assignments
-│ ├── SessionRepository.java # R2DBC session tracking
-│ └── RefreshTokenRepository.java # R2DBC token management
-├── service/
-│ ├── AuthenticationService.java # Login, logout, token validation
-│ ├── UserManagementService.java # User CRUD operations
-│ ├── RoleService.java # Role and permission management
-│ └── JwtTokenService.java # JWT token generation/validation
-└── resources/
- └── db/migration/
- └── V1__Create_IDP_Tables.sql # Database schema initialization
-```
+## Overview
-### Database Schema
+Firefly Framework IDP Internal Database implements the `IdpAdapter` interface using a local database as the identity store. It provides complete user management, authentication, JWT token generation and validation, session tracking, and role-based access control using R2DBC for reactive database access.
-The implementation uses five core tables:
+The module includes domain entities for users, roles, sessions, and refresh tokens, with corresponding R2DBC repositories. The `AuthenticationService` handles login/logout flows, `JwtTokenService` manages JWT creation and validation, and `UserManagementService` provides CRUD operations for user administration.
-| Table | Description |
-|-------|-------------|
-| `idp_users` | User accounts with credentials, profile info, and account status |
-| `idp_roles` | Available roles in the system |
-| `idp_user_roles` | Many-to-many junction table for user-role assignments |
-| `idp_sessions` | Active user sessions with access token tracking |
-| `idp_refresh_tokens` | Refresh tokens for secure token renewal |
+This implementation is suitable for applications that need self-contained identity management without external IDP dependencies.
-### Technology Stack
+## Features
-- **Java 25**: Modern Java language features and performance (Java 21+ compatible)
-- **Spring Boot 3.x**: Enterprise application framework
-- **Spring WebFlux**: Reactive web framework for non-blocking I/O
-- **Spring Data R2DBC**: Reactive database access
-- **PostgreSQL**: Production-ready relational database
-- **Flyway**: Database migration management
-- **JJWT**: JWT token creation and validation
-- **Spring Security Crypto**: BCrypt password hashing
-- **Lombok**: Reduced boilerplate code
+- Full `IdpAdapter` implementation with internal database storage
+- R2DBC-based reactive repositories for users, roles, sessions, and tokens
+- JWT token generation and validation via `JwtTokenService`
+- Authentication service with login, logout, and token refresh
+- Role-based access control with user-role assignments
+- Refresh token management with rotation support
+- Session tracking and management
+- User management service for CRUD operations
+- Configurable via `InternalDbProperties`
-## Quick Start
+## Requirements
-### 1. Add Dependency
+- Java 21+
+- Spring Boot 3.x
+- Maven 3.9+
+- PostgreSQL database (for user store)
-Add the following to your `pom.xml`:
+## Installation
```xml
org.fireflyframework
- fireflyframework-idp-internal-db-impl
- 1.0.0-SNAPSHOT
+ fireflyframework-idp-internal-db
+ 26.01.01
```
-### 2. Configure Application
-
-Add to your `application.yml`:
-
-```yaml
-firefly:
- security-center:
- idp:
- provider: internal-db
- internal-db:
- jwt:
- secret: "your-very-secure-secret-key-min-256-bits-32-chars!"
- issuer: "firefly-framework"
- access-token-expiration: 900000 # 15 minutes
- refresh-token-expiration: 604800000 # 7 days
-
-# R2DBC Database Configuration
-spring:
- r2dbc:
- url: r2dbc:postgresql://localhost:5432/firefly
- username: firefly_user
- password: ${DB_PASSWORD}
-
- # Flyway for migrations (uses JDBC)
- flyway:
- enabled: true
- baseline-on-migrate: true
- locations: classpath:db/migration
-
- datasource:
- url: jdbc:postgresql://localhost:5432/firefly
- username: firefly_user
- password: ${DB_PASSWORD}
-```
-
-### 3. Database Setup
-
-The database schema is automatically created via Flyway migrations on startup. Ensure your PostgreSQL database exists:
-
-```bash
-createdb firefly
-```
-
-### 4. Default Credentials
-
-The migration creates a default admin user:
-- **Username**: `admin`
-- **Password**: `admin123`
-
-⚠️ **IMPORTANT**: Change this password immediately in production!
-
-## Configuration Reference
-
-### JWT Configuration
-
-| Property | Description | Default |
-|----------|-------------|---------|
-| `firefly.security-center.idp.internal-db.jwt.secret` | JWT signing secret (min 256 bits) | **Required** |
-| `firefly.security-center.idp.internal-db.jwt.issuer` | JWT issuer claim | `firefly-idp-internal-db` |
-| `firefly.security-center.idp.internal-db.jwt.access-token-expiration` | Access token lifetime (ms) | `900000` (15 min) |
-| `firefly.security-center.idp.internal-db.jwt.refresh-token-expiration` | Refresh token lifetime (ms) | `604800000` (7 days) |
-
-### Database Tables
-
-The implementation creates the following tables:
-
-- **`idp_users`**: User accounts with credentials
-- **`idp_roles`**: Available roles
-- **`idp_user_roles`**: User-role assignments
-- **`idp_sessions`**: Active user sessions
-- **`idp_refresh_tokens`**: Refresh tokens for token renewal
-
-### Database Schema Details
-
-#### Users Table (`idp_users`)
-
-| Column | Type | Description |
-|--------|------|-------------|
-| `id` | UUID | Primary key |
-| `username` | VARCHAR(255) | Unique username |
-| `email` | VARCHAR(255) | Email address (nullable) |
-| `password_hash` | VARCHAR(255) | BCrypt hashed password |
-| `first_name` | VARCHAR(100) | User's first name |
-| `last_name` | VARCHAR(100) | User's last name |
-| `enabled` | BOOLEAN | Account enabled flag |
-| `account_non_expired` | BOOLEAN | Account expiration flag |
-| `account_non_locked` | BOOLEAN | Account lock flag |
-| `credentials_non_expired` | BOOLEAN | Password expiration flag |
-| `mfa_enabled` | BOOLEAN | MFA status (reserved for future use) |
-| `created_at` | TIMESTAMP | Account creation timestamp |
-| `updated_at` | TIMESTAMP | Last update timestamp |
-| `last_login_at` | TIMESTAMP | Last successful login |
-
-#### Default Roles
-
-Three roles are automatically created during database initialization:
-
-- **`ADMIN`**: Full administrative access to all system features
-- **`MANAGER`**: Elevated permissions for management tasks
-- **`USER`**: Standard user access with basic permissions
-
-## Usage Examples
-
-### Login
-
-```bash
-curl -X POST http://localhost:8080/api/v1/auth/login \
- -H "Content-Type: application/json" \
- -d '{
- "username": "admin",
- "password": "admin123"
- }'
-```
-
-Response:
-```json
-{
- "accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
- "refreshToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
- "tokenType": "Bearer",
- "expiresIn": 900
-}
-```
-
-### Create User
-
-**Note:** These examples assume the Security Center is running and exposing the endpoints.
-
-```bash
-curl -X POST http://localhost:8080/api/v1/users \
- -H "Authorization: Bearer $ACCESS_TOKEN" \
- -H "Content-Type: application/json" \
- -d '{
- "username": "john.doe",
- "password": "SecurePassword123!",
- "email": "john.doe@example.com",
- "givenName": "John",
- "familyName": "Doe"
- }'
-```
-
-### Assign Roles
-
-```bash
-curl -X POST http://localhost:8080/api/v1/users/{userId}/roles \
- -H "Authorization: Bearer $ACCESS_TOKEN" \
- -H "Content-Type: application/json" \
- -d '{
- "userId": "550e8400-e29b-41d4-a716-446655440000",
- "roleNames": ["USER", "MANAGER"]
- }'
-```
-
-### Get User Info
-
-```bash
-curl -X GET http://localhost:8080/api/v1/users/me \
- -H "Authorization: Bearer $ACCESS_TOKEN"
-```
-
-### Refresh Token
-
-```bash
-curl -X POST http://localhost:8080/api/v1/auth/refresh \
- -H "Content-Type: application/json" \
- -d '{
- "refreshToken": "$REFRESH_TOKEN"
- }'
-```
-
-### Logout
-
-```bash
-curl -X POST http://localhost:8080/api/v1/auth/logout \
- -H "Content-Type: application/json" \
- -d '{
- "accessToken": "$ACCESS_TOKEN",
- "refreshToken": "$REFRESH_TOKEN"
- }'
-```
-
-## Security Considerations
-
-### Production Deployment
-
-When deploying to production:
-
-1. **Change Default Password**: Immediately change the default admin password
-2. **Secure JWT Secret**: Use a strong, randomly generated secret (32+ characters)
-3. **Environment Variables**: Store secrets in environment variables, not configuration files
-4. **Database Security**: Use strong database credentials and restrict network access
-5. **TLS/SSL**: Always use HTTPS in production
-6. **Token Expiration**: Adjust token expiration times based on security requirements
-7. **Password Policy**: Implement password complexity requirements in your application layer
-
-### JWT Secret Generation
-
-Generate a secure JWT secret:
-
-```bash
-# Using OpenSSL
-openssl rand -base64 32
+## Quick Start
-# Using Node.js
-node -e "console.log(require('crypto').randomBytes(32).toString('base64'))"
+```xml
+
+
+ org.fireflyframework
+ fireflyframework-idp
+
+
+ org.fireflyframework
+ fireflyframework-idp-internal-db
+
+
```
-## Limitations
-
-This internal IDP implementation has some limitations compared to full-featured IDPs:
-
-- ❌ **No MFA**: Multi-factor authentication not implemented
-- ❌ **No OAuth2 flows**: Only username/password authentication
-- ❌ **No Social Login**: No integration with Google, Facebook, etc.
-- ❌ **No LDAP/AD**: No integration with enterprise directories
-- ❌ **Basic Session Management**: Limited session tracking features
-
-For advanced features, consider using `fireflyframework-idp-keycloak-impl` or `fireflyframework-idp-aws-cognito-impl`.
-
-## Adapter Implementation
-
-This library implements the `IdpAdapter` interface from `fireflyframework-idp-adapter`. It **does not expose REST endpoints directly**. Instead, it provides the backend implementation that the **Firefly Security Center** uses to handle authentication requests.
-
-### Implemented Methods
-
-The `InternalDbIdpAdapter` class implements these methods:
-
-| Method | Description | Returns |
-|--------|-------------|--------|
-| `login(LoginRequest)` | Authenticate user with username/password | `Mono>` |
-| `refresh(RefreshRequest)` | Refresh access token using refresh token | `Mono>` |
-| `logout(LogoutRequest)` | Revoke user tokens and logout | `Mono` |
-| `introspect(String)` | Validate and introspect an access token | `Mono>` |
-| `getUserInfo(String)` | Get user information from access token | `Mono>` |
-| `createUser(CreateUserRequest)` | Create a new user account | `Mono>` |
-| `updateUser(UpdateUserRequest)` | Update user information | `Mono>` |
-| `deleteUser(DeleteUserRequest)` | Delete a user account | `Mono` |
-| `assignRoles(AssignRolesRequest)` | Assign roles to a user | `Mono` |
-| `removeRoles(RemoveRolesRequest)` | Remove roles from a user | `Mono` |
-| `getUserSessions(GetUserSessionsRequest)` | List user's active sessions | `Mono>` |
-| `createRoles(CreateRolesRequest)` | Create new roles | `Mono>` |
-| `listRoles()` | List all available roles | `Mono>` |
-
-### REST Endpoints (Exposed by Security Center)
-
-When integrated with the Firefly Security Center, the following REST endpoints become available:
-
-**Authentication:**
-- `POST /api/v1/auth/login` - User login
-- `POST /api/v1/auth/refresh` - Refresh access token
-- `POST /api/v1/auth/logout` - User logout
-- `POST /api/v1/auth/introspect` - Token introspection
-- `GET /api/v1/auth/userinfo` - Get user info
-
-**User Management:**
-- `POST /api/v1/users` - Create user
-- `GET /api/v1/users/{id}` - Get user
-- `PUT /api/v1/users/{id}` - Update user
-- `DELETE /api/v1/users/{id}` - Delete user
-
-**Role Management:**
-- `POST /api/v1/roles` - Create roles
-- `GET /api/v1/roles` - List roles
-- `POST /api/v1/users/{id}/roles` - Assign roles
-- `DELETE /api/v1/users/{id}/roles` - Remove roles
-- `GET /api/v1/users/{id}/sessions` - Get user sessions
-
-**Note:** The Security Center handles HTTP routing, request validation, and response serialization. This adapter focuses solely on business logic and data persistence.
-
-For detailed API documentation, see the [Security Center API Documentation](https://github.org/fireflyframework-oss/common-platform-security-center).
-
-## Integration with Firefly Security Center
-
-This adapter integrates seamlessly with the `common-platform-security-center` via Spring Boot auto-configuration:
+## Configuration
```yaml
firefly:
- security-center:
- idp:
- provider: internal-db # Automatically loads this implementation
-```
-
-### Auto-Configuration
-
-When `provider: internal-db` is set, the Security Center:
-1. **Auto-detects** this library on the classpath
-2. **Auto-configures** the `InternalDbIdpAdapter` bean
-3. **Activates** all repositories and services
-4. **Applies** database migrations via Flyway
-5. **Exposes** unified authentication endpoints
-
-No additional configuration or manual bean registration is required.
-
-## Development
-
-### Building the Project
-
-```bash
-# Clean and build
-mvn clean install
-
-# Skip tests
-mvn clean install -DskipTests
-
-# Build and install to local Maven repository
-mvn clean install
-```
-
-### Running Tests
-
-The project includes comprehensive unit tests with mocks:
-
-```bash
-# Run all unit tests
-mvn test
-
-# Run specific test class
-mvn test -Dtest=AuthenticationServiceTest
-
-# Run with verbose output
-mvn test -X
-```
-
-**Test Coverage:**
-- ✅ 31 unit tests
-- ✅ 100% service layer coverage
-- ✅ All authentication flows tested
-- ✅ User management operations verified
-- ✅ Role management operations validated
-
-### Code Quality
-
-The codebase follows enterprise Java standards:
-
-- **Java 25** language features (Java 21+ compatible)
-- **Lombok** for reduced boilerplate
-- **SLF4J** for structured logging
-- **Reactive patterns** throughout
-- **Comprehensive error handling**
-- **Detailed JavaDoc comments**
-
-## Troubleshooting
-
-### Common Issues
-
-#### 1. Migration Issues
-
-**Problem:** Flyway migrations fail on startup
-
-**Solution:**
-```bash
-# Reset database
-dropdb firefly
-createdb firefly
-
-# Or via SQL
-DROP DATABASE firefly;
-CREATE DATABASE firefly;
-```
-
-Ensure both R2DBC and JDBC URLs are correctly configured for the same database.
-
-#### 2. JWT Secret Error
-
-**Problem:** `JWT secret is required` exception on startup
-
-**Solution:**
-- Verify `firefly.security-center.idp.internal-db.jwt.secret` is configured
-- Secret must be **at least 32 characters** (256 bits)
-- Use environment variable: `JWT_SECRET=your-secure-secret-here`
-
-**Generate a secure secret:**
-```bash
-# Using OpenSSL
-openssl rand -base64 32
-
-# Using Python
-python3 -c "import secrets; print(secrets.token_urlsafe(32))"
-```
-
-#### 3. Database Connection Issues
-
-**Problem:** Cannot connect to PostgreSQL
-
-**Checklist:**
-- [ ] PostgreSQL is running: `pg_ctl status`
-- [ ] Database exists: `psql -l | grep firefly`
-- [ ] Credentials are correct
-- [ ] Both R2DBC and JDBC URLs match your setup
-- [ ] Port 5432 is accessible
-- [ ] Firewall rules allow connections
-
-**Test connection:**
-```bash
-psql -h localhost -U firefly_user -d firefly
-```
-
-#### 4. BCrypt Hash Mismatch
-
-**Problem:** Authentication fails with correct password
-
-**Cause:** Password may have been stored without BCrypt hashing
-
-**Solution:** Use the provided BCrypt utility to generate proper hashes:
-```java
-PasswordEncoder encoder = new BCryptPasswordEncoder(12);
-String hash = encoder.encode("password");
-```
-
-#### 5. Token Validation Failures
-
-**Problem:** Valid tokens are rejected
-
-**Common Causes:**
-- JWT secret mismatch between services
-- System clock skew (check NTP sync)
-- Token expired (check `expiresIn` configuration)
-
-**Debug:**
-```yaml
-logging:
- level:
- org.fireflyframework.idp.internaldb: DEBUG
- io.jsonwebtoken: DEBUG
-```
-
-## Performance Considerations
-
-### Connection Pooling
-
-The R2DBC driver uses connection pooling for optimal performance:
-
-```yaml
+ idp:
+ internal-db:
+ jwt:
+ secret: your-jwt-secret-key
+ expiration: 3600
+ refresh-expiration: 86400
spring:
r2dbc:
- pool:
- initial-size: 10 # Initial connections
- max-size: 30 # Maximum connections
- max-idle-time: 30m # Idle connection timeout
- validation-query: SELECT 1
+ url: r2dbc:postgresql://localhost:5432/idp
```
-### Token Expiration Strategy
-
-**Recommended Settings:**
-
-| Environment | Access Token | Refresh Token |
-|-------------|--------------|---------------|
-| Development | 1 hour (3600000ms) | 30 days |
-| Staging | 15 minutes (900000ms) | 7 days |
-| Production | 5-15 minutes | 7 days |
-
-### Database Indexing
-
-The migration creates indexes on:
-- `idp_users.username` (unique)
-- `idp_users.email` (unique)
-- `idp_sessions.access_token_jti`
-- `idp_refresh_tokens.token_jti`
-- `idp_user_roles (user_id, role_id)`
-
-## Limitations
+## Documentation
-This internal IDP has some limitations compared to enterprise IDP solutions:
+Additional documentation is available in the [docs/](docs/) directory:
-| Feature | Status | Alternative |
-|---------|--------|-------------|
-| Multi-Factor Authentication (MFA) | ❌ Not implemented | Use `fireflyframework-idp-keycloak-impl` |
-| OAuth2 Authorization Flows | ❌ Password grant only | Use `fireflyframework-idp-keycloak-impl` or `fireflyframework-idp-aws-cognito-impl` |
-| Social Login (Google, Facebook) | ❌ Not supported | Use `fireflyframework-idp-keycloak-impl` |
-| LDAP/Active Directory Integration | ❌ Not supported | Use `fireflyframework-idp-keycloak-impl` |
-| Advanced Session Management | ⚠️ Basic implementation | Consider external IDP |
-| User Federation | ❌ Not supported | Use `fireflyframework-idp-keycloak-impl` |
-| Single Sign-On (SSO) | ❌ Not supported | Use `fireflyframework-idp-keycloak-impl` |
-
-For advanced enterprise features, consider:
-- **fireflyframework-idp-keycloak-impl**: Full OAuth2/OIDC with SSO, MFA, and federation
-- **fireflyframework-idp-aws-cognito-impl**: AWS-managed identity with advanced security features
+- [Readme](docs/README.md)
+- [Api](docs/API.md)
+- [Dto Field Mapping](docs/DTO_FIELD_MAPPING.md)
+- [Integration](docs/INTEGRATION.md)
+- [Project Status](docs/PROJECT_STATUS.md)
+- [Technical Details](docs/technical-details.md)
## Contributing
-We welcome contributions! To contribute:
-
-1. **Fork** the repository
-2. **Create** a feature branch: `git checkout -b feature/my-feature`
-3. **Commit** your changes: `git commit -am 'Add new feature'`
-4. **Push** to the branch: `git push origin feature/my-feature`
-5. **Submit** a pull request
-
-### Contribution Guidelines
-
-- ✅ All tests must pass (`mvn test`)
-- ✅ Follow existing code style and conventions
-- ✅ Add unit tests for new features
-- ✅ Update documentation for API changes
-- ✅ Use meaningful commit messages
-- ✅ Keep pull requests focused and atomic
+Contributions are welcome. Please read the [CONTRIBUTING.md](CONTRIBUTING.md) guide for details on our code of conduct, development process, and how to submit pull requests.
## License
-```
-Copyright 2024-2026 Firefly Software Solutions Inc
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-```
-
-## Additional Documentation
-
-Comprehensive documentation is available in the [docs/](docs/) directory:
-
-| Document | Description |
-|----------|-------------|
-| **[Integration Guide](docs/INTEGRATION.md)** | Complete guide for integrating with Firefly Security Center |
-| **[API Documentation](docs/API.md)** | Full API reference with request/response examples |
-| **[DTO Field Mapping](docs/DTO_FIELD_MAPPING.md)** | Field mappings between DTOs and entities |
-| **[Technical Details](docs/technical-details.md)** | Implementation details and architecture diagrams |
-| **[Project Status](docs/PROJECT_STATUS.md)** | Current project status and feature completeness |
-
-## Support & Contact
-
-### Getting Help
-
-- 🐛 **Bug Reports**: [Create an issue](https://github.org/fireflyframework-oss/fireflyframework-idp-internal-db-impl/issues)
-- 💬 **Questions**: Use GitHub Discussions
-- 📧 **Email**: support@firefly-platform.com
-- 📚 **Documentation**: See [Firefly Platform Docs](https://docs.firefly-platform.com)
-
-### Community
-
-- **GitHub**: [firefly-oss/fireflyframework-idp-internal-db-impl](https://github.org/fireflyframework-oss/fireflyframework-idp-internal-db-impl)
-- **Organization**: [Firefly OSS](https://github.org/fireflyframework-oss)
-
-## Related Projects
-
-- **[fireflyframework-idp-adapter](https://github.org/fireflyframework-oss/fireflyframework-idp-adapter)** - Core IDP adapter interface
-- **[common-platform-security-center](https://github.org/fireflyframework-oss/common-platform-security-center)** - Firefly Security Center
-- **[fireflyframework-idp-keycloak-impl](https://github.org/fireflyframework-oss/fireflyframework-idp-keycloak-impl)** - Keycloak IDP implementation
-- **[fireflyframework-idp-aws-cognito-impl](https://github.org/fireflyframework-oss/fireflyframework-idp-aws-cognito-impl)** - AWS Cognito IDP implementation
-
----
+Copyright 2024-2026 Firefly Software Solutions Inc.
-**Made with ❤️ by the Firefly Platform Team**
+Licensed under the Apache License, Version 2.0. See [LICENSE](LICENSE) for details.