Files
Rohit Ghumare c3f43d8b61 Expand toolkit to 135 agents, 120 plugins, 796 total files
- Add 60 new agents across all 10 categories (75 -> 135)
- Add 95 new plugins with command files (25 -> 120)
- Update all agents to use model: opus
- Update README with complete plugin/agent tables
- Update marketplace.json with all 120 plugins
2026-02-04 21:08:28 +00:00

100 lines
4.7 KiB
Markdown

# Enterprise Portal
Internal enterprise portal for employee management, compliance tracking, and reporting.
## Stack
- **Language**: Java 21 (backend), TypeScript 5.x (frontend)
- **Backend**: Spring Boot 3.3, Spring Security, Spring Data JPA
- **Frontend**: React 19, Vite 6, Ant Design 5, TanStack Query
- **Database**: Oracle 23c (primary), PostgreSQL 16 (analytics)
- **Cache**: Hazelcast (distributed session cache)
- **Queue**: Apache Kafka (event streaming)
- **Auth**: Okta SSO (SAML 2.0) + Spring Security OAuth2
- **CI/CD**: Jenkins, SonarQube, Artifactory, ArgoCD
- **Infrastructure**: Kubernetes on AWS EKS, Terraform
- **Monitoring**: Datadog APM, PagerDuty, Splunk
## Commands
- `./gradlew build` - Build backend
- `./gradlew test` - Run unit tests
- `./gradlew integrationTest` - Run integration tests (requires Docker)
- `./gradlew sonar` - Run SonarQube analysis
- `npm run dev --workspace=frontend` - Start frontend dev server
- `npm run build --workspace=frontend` - Production frontend build
- `npm run test --workspace=frontend` - Frontend unit tests
- `docker compose up -d` - Start local dependencies (Oracle, Kafka, Redis)
- `./gradlew flywayMigrate` - Apply database migrations
- `./scripts/generate-api-client.sh` - Generate TypeScript API client from OpenAPI spec
## Project Structure
```
backend/
src/main/java/com/acme/portal/
config/ - Spring configuration, security, Kafka
controller/ - REST controllers (thin, delegates to services)
service/ - Business logic layer
repository/ - JPA repositories and custom queries
model/ - JPA entities and domain objects
dto/ - Request/response DTOs with Jakarta validation
mapper/ - MapStruct mappers (entity <-> DTO)
event/ - Kafka producers and consumers
security/ - Custom security filters, authorization
exception/ - Global exception handler, error codes
src/main/resources/
db/migration/ - Flyway migration scripts
application.yml - Configuration (profiles: dev, staging, prod)
src/test/ - Unit and integration tests
frontend/
src/
pages/ - Route-level page components
components/ - Reusable UI components
hooks/ - Custom React hooks
api/ - Generated API client (OpenAPI)
store/ - Zustand state management
utils/ - Utility functions
```
## Compliance Requirements
- SOC 2 Type II: Audit logging for all data access and mutations.
- GDPR: Data export and deletion endpoints for user data.
- HIPAA: PHI fields encrypted at rest (AES-256) and in transit (TLS 1.3).
- Retain audit logs for 7 years. No hard deletes on regulated data.
- All API endpoints require authentication. No public endpoints.
- Role-based access control (RBAC) with four levels: Viewer, Editor, Admin, SuperAdmin.
## Conventions
- All REST endpoints versioned: `/api/v1/...`.
- DTOs validated with Jakarta Bean Validation annotations.
- MapStruct for all entity-to-DTO conversions. No manual mapping.
- Kafka events follow CloudEvents specification.
- Database migrations must be backward-compatible (no column drops without a 2-release window).
- Feature flags via LaunchDarkly for all new features. No code-level toggles.
- Every service method that modifies data must emit an audit event.
## Security
- Okta SSO for all authentication. No local user/password storage.
- API keys for service-to-service communication (rotated quarterly).
- Secrets stored in AWS Secrets Manager. Never in environment variables or config files.
- Dependency scanning via Snyk. Block PRs with critical vulnerabilities.
- SAST via SonarQube. Quality gate: 0 critical issues, 80% coverage on new code.
- Penetration testing quarterly via external vendor.
## Environment Variables
- `SPRING_DATASOURCE_URL` - Oracle JDBC connection string
- `SPRING_DATASOURCE_USERNAME` / `PASSWORD` - Database credentials
- `OKTA_ISSUER_URI` - Okta OIDC issuer
- `OKTA_CLIENT_ID` / `CLIENT_SECRET` - OAuth2 client credentials
- `KAFKA_BOOTSTRAP_SERVERS` - Kafka broker addresses
- `HAZELCAST_CLUSTER_NAME` - Cache cluster identifier
- `DATADOG_API_KEY` - APM and logging
- `AWS_SECRETS_MANAGER_PREFIX` - Secrets namespace
## Key Decisions
| Date | Decision | Rationale |
|------|----------|-----------|
| 2024-03-01 | Oracle over PostgreSQL | Enterprise licensing agreement, existing DBA team |
| 2024-06-15 | Kafka over RabbitMQ | Event sourcing requirement, compliance audit trail |
| 2024-09-01 | MapStruct over manual mapping | Type safety, compile-time validation |
| 2025-01-10 | Okta over Auth0 | Corporate SSO standardization |
| 2025-04-20 | Hazelcast over Redis | Distributed session replication across AZs |