{"id":18965814,"url":"https://github.com/wso2/integration-control-plane","last_synced_at":"2026-04-23T07:00:48.520Z","repository":{"id":257723527,"uuid":"851535321","full_name":"wso2/integration-control-plane","owner":"wso2","description":"Monitor, troubleshoot and control integration deployments","archived":false,"fork":false,"pushed_at":"2026-04-17T12:13:53.000Z","size":92019,"stargazers_count":4,"open_issues_count":6,"forks_count":21,"subscribers_count":60,"default_branch":"main","last_synced_at":"2026-04-17T13:10:55.479Z","etag":null,"topics":["control-plane","dashboard","integration","monitoring","observability"],"latest_commit_sha":null,"homepage":"https://wso2.com/integration-control-plane/","language":"Ballerina","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/wso2.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2024-09-03T09:18:23.000Z","updated_at":"2026-04-17T12:13:58.000Z","dependencies_parsed_at":"2025-12-15T09:06:41.611Z","dependency_job_id":null,"html_url":"https://github.com/wso2/integration-control-plane","commit_stats":null,"previous_names":["wso2/integration-control-plane"],"tags_count":15,"template":false,"template_full_name":null,"purl":"pkg:github/wso2/integration-control-plane","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wso2%2Fintegration-control-plane","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wso2%2Fintegration-control-plane/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wso2%2Fintegration-control-plane/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wso2%2Fintegration-control-plane/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wso2","download_url":"https://codeload.github.com/wso2/integration-control-plane/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wso2%2Fintegration-control-plane/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32169657,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-23T02:19:40.750Z","status":"ssl_error","status_checked_at":"2026-04-23T02:17:55.737Z","response_time":53,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["control-plane","dashboard","integration","monitoring","observability"],"created_at":"2024-11-08T14:32:28.573Z","updated_at":"2026-04-23T07:00:48.514Z","avatar_url":"https://github.com/wso2.png","language":"Ballerina","funding_links":[],"categories":[],"sub_categories":[],"readme":"# WSO2 Integration Control Plane\n\nMonitor, troubleshoot, and control integration deployments with a modern GraphQL API and real-time observability.\n\n## Architecture\n\nThe Integration Control Plane consists of:\n\n- **Backend (ICP Server)**: Ballerina-based GraphQL API service with authentication, runtime management, and observability\n- **Frontend**: Modern React + TypeScript application with Vite and Oxygen UI components\n- **Database Support**: MySQL, PostgreSQL, Microsoft SQL Server, or H2 (in-memory)\n\n## Quick Start\n\n### Prerequisites\n\n- **Java 17+** (for Gradle)\n- **Ballerina** (latest stable version)\n- **Node.js 20+** and **pnpm 10+**\n- **Docker \u0026 Docker Compose** (recommended for local development)\n\n### Running with Docker Compose\n\nThe easiest way to get started is using Docker Compose, which sets up the complete stack:\n\n```bash\n# With MySQL database\ndocker-compose -f icp_server/docker-compose.mysql.yml up --build\n\n# With PostgreSQL database\ndocker-compose -f icp_server/docker-compose.postgresql.yml up --build\n\n# With MSSQL database\ndocker-compose -f icp_server/docker-compose.mssql.yml up --build\n```\n\nThe services will be available at:\n\n- **Frontend**: http://localhost:5173\n- **GraphQL API**: https://localhost:9446/graphql\n- **Authentication API**: https://localhost:9446/auth\n- **Observability API**: https://localhost:9446/icp/observability\n\nDefault credentials: `admin` / `admin`\n\n## Building from Source\n\n### Complete Build\n\nBuild the entire project using Gradle:\n\n```bash\n./gradlew build\n```\n\nOr use the build script:\n\n```bash\n./build.sh\n```\n\nThe distribution package will be created as:\n\n```text\nbuild/distribution/wso2-integration-control-plane-\u003cversion\u003e.zip\n```\n\n### Running the Distribution\n\nAfter building, extract and run the packaged distribution:\n\n```bash\n# Extract the distribution\nunzip build/distribution/wso2-integration-control-plane-\u003cversion\u003e.zip -d build/distribution\n\n# Navigate to the bin directory\ncd build/distribution/wso2-integration-control-plane-\u003cversion\u003e/bin\n\n# Start the server\n./icp.sh    # Linux/macOS\nicp.bat    # Windows\n```\n\n## Development Setup\n\n### Backend Development\n\nNavigate to the backend directory:\n\n```bash\ncd icp_server\n```\n\n#### Using Docker Compose (Recommended)\n\n```bash\n# Start with local configuration (H2 database)\ndocker-compose -f docker-compose.local.yml up --build\n\n# Start with MySQL\ndocker-compose -f docker-compose.mysql.yml up --build\n\n# Start with observability stack (Prometheus, Grafana)\ndocker-compose -f docker-compose.observability.yml up --build\n```\n\n#### Running Locally with Ballerina\n\n1. Configure the database in `icp_server/Config.toml`\n2. Run the service:\n\n```bash\nbal run\n```\n\nThe server will start on port 9446\n\n### Frontend Development\n\nNavigate to the frontend directory:\n\n```bash\ncd frontend\n```\n\n#### Install Dependencies\n\n```bash\npnpm install\n```\n\n#### Configure Backend URLs\n\nEdit `frontend/public/config.json`:\n\n```json\n{\n  \"VITE_GRAPHQL_URL\": \"https://localhost:9446/graphql\",\n  \"VITE_AUTH_BASE_URL\": \"https://localhost:9446/auth\",\n  \"VITE_OBSERVABILITY_URL\": \"https://localhost:9446/icp/observability\"\n}\n```\n\n#### Start Development Server\n\n```bash\npnpm dev\n```\n\nThe frontend will be available at http://localhost:5173\n\n#### Build for Production\n\n```bash\npnpm build\n```\n\nThe production build will be in `frontend/dist/`\n\n## Database Configuration\n\nThe ICP Server supports multiple database backends:\n\n### MySQL\n\n```toml\n# icp_server/Config.toml\n[icp_server.storage]\ndbType = \"mysql\"\nhost = \"localhost\"\nport = 3306\nname = \"icp_db\"\nusername = \"root\"\npassword = \"root\"\n```\n\n### PostgreSQL\n\n```toml\n[icp_server.storage]\ndbType = \"postgresql\"\nhost = \"localhost\"\nport = 5432\nname = \"icp_db\"\nusername = \"postgres\"\npassword = \"postgres\"\n```\n\n### Microsoft SQL Server\n\n```toml\n[icp_server.storage]\ndbType = \"mssql\"\nhost = \"localhost\"\nport = 1433\nname = \"icp_db\"\nusername = \"SA\"\npassword = \"YourStrong@Passw0rd\"\n```\n\n### H2 (In-Memory)\n\n```toml\n[icp_server.storage]\ndbType = \"h2\"\n```\n\n## Testing\n\n### Backend Tests\n\n```bash\ncd icp_server\n\n# Run all tests\nbal test\n\n# Run tests with Docker Compose\ndocker-compose -f docker-compose.test.yml up --build\n```\n\n### Frontend Tests\n\n```bash\ncd frontend\npnpm test\n```\n\n## Authentication\n\nThe ICP supports multiple authentication methods:\n\n- **Default User Backend**: Built-in user management with JWT tokens\n- **Custom Auth Backend**: Integration with external OAuth2/OIDC providers\n- **LDAP**: Enterprise directory integration\n\nSee [icp_server/custom_auth/AUTH_BACKEND_IMPLEMENTATION.md](icp_server/custom_auth/AUTH_BACKEND_IMPLEMENTATION.md) for details.\n\n## Observability\n\nThe ICP Server integrates with:\n\n- **OpenSearch**: For log aggregation and search\n- **Prometheus**: For metrics collection\n- **Grafana**: For visualization\n\nStart the observability stack:\n\n```bash\ncd icp_server\ndocker-compose -f docker-compose.observability.yml up\n```\n\n## Documentation\n\n- [Backend Documentation](icp_server/README.md)\n- [Frontend Documentation](frontend/README.md)\n- [Runtime Configuration](frontend/RUNTIME_CONFIG.md)\n- [RBAC v2 Implementation](icp_server/rbac_v2_implementation.md)\n- [Kubernetes Deployment](kubernetes/SETUP.md)\n\n## Project Structure\n\n```\nintegration-control-plane/\n├── icp_server/              # Ballerina backend service\n│   ├── modules/             # Ballerina modules (auth, storage, observability)\n│   ├── tests/               # Backend tests\n│   ├── database/            # Database schemas and migrations\n│   └── docker-compose.*.yml # Docker Compose configurations\n├── frontend/                # React TypeScript frontend\n│   ├── src/                 # Source code\n│   ├── public/              # Static assets and runtime config\n│   └── dist/                # Production build output\n├── distribution/            # Distribution scripts\n├── kubernetes/              # Kubernetes deployment manifests\n└── build.gradle             # Gradle build configuration\n```\n\n## License\n\nThis project is licensed under the Apache License 2.0. See the [LICENSE](LICENSE) file for details.\n\n## Support\n\n- [Issue Tracker](https://github.com/wso2/integration-control-plane/issues)\n- [WSO2 Support](https://wso2.com/support/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwso2%2Fintegration-control-plane","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwso2%2Fintegration-control-plane","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwso2%2Fintegration-control-plane/lists"}