{"id":46014891,"url":"https://github.com/gridatek/cloud-native-auth-platform","last_synced_at":"2026-05-02T08:35:07.316Z","repository":{"id":322469931,"uuid":"1089630317","full_name":"gridatek/cloud-native-auth-platform","owner":"gridatek","description":"Cloud-Native Authentication Platform with Angular, Spring Boot, Keycloak, and Kubernetes","archived":false,"fork":false,"pushed_at":"2025-11-04T22:13:36.000Z","size":169,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-01T01:57:25.326Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gridatek.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-11-04T15:47:28.000Z","updated_at":"2025-12-11T10:04:32.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/gridatek/cloud-native-auth-platform","commit_stats":null,"previous_names":["klagrida/cloud-native-auth-platform"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/gridatek/cloud-native-auth-platform","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gridatek%2Fcloud-native-auth-platform","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gridatek%2Fcloud-native-auth-platform/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gridatek%2Fcloud-native-auth-platform/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gridatek%2Fcloud-native-auth-platform/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gridatek","download_url":"https://codeload.github.com/gridatek/cloud-native-auth-platform/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gridatek%2Fcloud-native-auth-platform/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32528434,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-02T01:12:54.858Z","status":"online","status_checked_at":"2026-05-02T02:00:05.923Z","response_time":132,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-03-01T01:04:18.974Z","updated_at":"2026-05-02T08:35:07.311Z","avatar_url":"https://github.com/gridatek.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Cloud-Native Authentication Platform\n\nA complete authentication and authorization system using OIDC/OAuth2 with Keycloak, Angular, Spring Boot, and Kubernetes.\n\n## Architecture\n\n```\n┌────────────────────────────────────────────────────────────┐\n│                    Minikube Cluster                        │\n│                                                            │\n│  ┌─────────────┐         ┌──────────────────────────┐      │\n│  │   Angular   │◄───────►│      Keycloak            │      │\n│  │   Frontend  │  OIDC   │   Identity Provider      │      │\n│  │             │         │   - Realm: demo-realm    │      │\n│  └──────┬──────┘         │   - Users \u0026 Roles        │      │\n│         │                └──────────┬───────────────┘      │\n│         │ HTTP + JWT              │                        │\n│         │                          │ JDBC                  │\n│         ▼                          ▼                       │\n│  ┌─────────────┐         ┌──────────────────────────┐      │\n│  │ Spring Boot │         │     PostgreSQL           │      │\n│  │   REST API  │         │  - Keycloak DB           │      │\n│  │  (Resource  │         │  - App DB (optional)     │      │\n│  │   Server)   │         └──────────────────────────┘      │\n│  └─────────────┘                                           │\n│                                                            │\n│  ┌──────────────────────────────────────────────────────┐  │\n│  │              NGINX Ingress Controller                │  │\n│  │  Routes:                                             │  │\n│  │  - app.local        → Angular                        │  │\n│  │  - api.local        → Spring Boot                    │  │\n│  │  - auth.local       → Keycloak                       │  │\n│  └──────────────────────────────────────────────────────┘  │\n└────────────────────────────────────────────────────────────┘\n```\n\n## Tech Stack\n\n- **Frontend**: Angular 17+ with TypeScript\n- **Backend**: Spring Boot 3+ with Java 17+\n- **Identity Provider**: Keycloak (latest stable)\n- **Database**: PostgreSQL 15+\n- **Container Orchestration**: Kubernetes (Minikube for local)\n- **CI/CD**: GitHub Actions\n\n## Prerequisites\n\n- [Docker](https://docs.docker.com/get-docker/) 20.10+\n- [Minikube](https://minikube.sigs.k8s.io/docs/start/) 1.30+\n- [kubectl](https://kubernetes.io/docs/tasks/tools/) 1.28+\n- [Node.js](https://nodejs.org/) 20+\n- [Java](https://adoptium.net/) 17+\n- [Maven](https://maven.apache.org/) 3.8+\n\n## Quick Start\n\n### 1. Setup Minikube\n\n```bash\nchmod +x scripts/setup-minikube.sh\n./scripts/setup-minikube.sh\n```\n\n### 2. Deploy All Components\n\n```bash\nchmod +x scripts/deploy-all.sh\n./scripts/deploy-all.sh\n```\n\n### 3. Configure Keycloak\n\n```bash\nchmod +x scripts/configure-keycloak.sh\n./scripts/configure-keycloak.sh\n```\n\n### 4. Access Applications\n\n- **Angular Frontend**: http://app.local\n- **Spring Boot API**: http://api.local\n- **Keycloak Admin**: http://auth.local (admin/admin)\n\n## Test Users\n\n- **Admin User**\n  - Username: `admin`\n  - Password: `admin123`\n  - Roles: USER, ADMIN\n\n- **Regular User**\n  - Username: `user`\n  - Password: `user123`\n  - Roles: USER\n\n## Development\n\n### Frontend Development\n\n```bash\ncd frontend\nnpm install\nnpm start\n# Access at http://localhost:4200\n```\n\n### Backend Development\n\n```bash\ncd backend\nmvn spring-boot:run\n# Access at http://localhost:8080\n```\n\n## Documentation\n\n- [Setup Guide](docs/SETUP.md) - Detailed setup instructions\n- [Deployment Guide](docs/DEPLOYMENT.md) - Kubernetes deployment\n- [API Documentation](docs/API.md) - API endpoints and usage\n- [CI/CD Guide](docs/CI-CD.md) - CI/CD pipeline documentation\n\n## Troubleshooting\n\n### Debugging Failed Deployments\n\n1. **Run Preflight Checks:**\n   ```bash\n   ./scripts/preflight-check.sh\n   ```\n\n2. **Monitor Deployment:**\n   ```bash\n   ./scripts/monitor-deployment.sh auth-platform 600\n   ```\n\n3. **Check Keycloak Startup:**\n   ```bash\n   ./scripts/wait-for-keycloak.sh\n   ```\n\n4. **Debug in GitHub Actions:**\n   - Go to Actions tab\n   - Run \"Debug CI Issues\" workflow\n   - Select component to debug\n   - Review detailed logs\n\n### Common Issues\n\n**Keycloak takes too long to start:**\n- Increase memory limits in `k8s/keycloak/deployment.yaml`\n- Check PostgreSQL is ready first\n- Review Keycloak logs: `kubectl logs -n auth-platform -l app.kubernetes.io/name=keycloak`\n\n**Pods stuck in Pending:**\n- Check node resources: `kubectl describe nodes`\n- Reduce resource requests in deployment manifests\n- Check PVC status: `kubectl get pvc -n auth-platform`\n\n**Build failures:**\n- Ensure Docker daemon is accessible\n- Run `eval $(minikube docker-env)` first\n- Check build logs for specific errors\n\n## Project Structure\n\n```\nauth-platform/\n├── frontend/          # Angular application\n├── backend/           # Spring Boot API\n├── k8s/              # Kubernetes manifests\n├── keycloak/         # Keycloak configuration\n├── scripts/          # Deployment scripts\n├── .github/          # CI/CD workflows\n└── docs/             # Documentation\n```\n\n## Security\n\nThis project implements:\n- OIDC/OAuth2 Authorization Code Flow with PKCE\n- JWT token validation\n- Role-based access control (RBAC)\n- CORS protection\n- Kubernetes secrets management\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgridatek%2Fcloud-native-auth-platform","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgridatek%2Fcloud-native-auth-platform","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgridatek%2Fcloud-native-auth-platform/lists"}