{"id":21406442,"url":"https://github.com/arturoeanton/goscim","last_synced_at":"2025-07-26T12:43:14.267Z","repository":{"id":57653955,"uuid":"345863943","full_name":"arturoeanton/goscim","owner":"arturoeanton","description":" 🚀 Lightning-fast SCIM 2.0 server in Go that makes identity management simple and scalable. Built for developers who need enterprise-grade user provisioning    without the enterprise complexity.","archived":false,"fork":false,"pushed_at":"2025-07-08T04:03:12.000Z","size":5566,"stargazers_count":11,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-07-08T05:09:46.338Z","etag":null,"topics":["api","authentication","couchbase","developer-tools","docker","enterprise","go","golang","high-performance","identity-management","kubernetes","microservices","oauth","open-source","rbac","rest-api","saas","scalable","scim","user-provisioning"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/arturoeanton.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}},"created_at":"2021-03-09T02:53:37.000Z","updated_at":"2025-07-08T04:29:25.000Z","dependencies_parsed_at":"2022-08-26T06:42:05.658Z","dependency_job_id":null,"html_url":"https://github.com/arturoeanton/goscim","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/arturoeanton/goscim","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arturoeanton%2Fgoscim","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arturoeanton%2Fgoscim/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arturoeanton%2Fgoscim/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arturoeanton%2Fgoscim/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/arturoeanton","download_url":"https://codeload.github.com/arturoeanton/goscim/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arturoeanton%2Fgoscim/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265227897,"owners_count":23731059,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["api","authentication","couchbase","developer-tools","docker","enterprise","go","golang","high-performance","identity-management","kubernetes","microservices","oauth","open-source","rbac","rest-api","saas","scalable","scim","user-provisioning"],"created_at":"2024-11-22T16:39:57.939Z","updated_at":"2025-07-14T00:32:29.329Z","avatar_url":"https://github.com/arturoeanton.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🚀 GoSCIM - Lightning Fast Identity Management\n\n[![Go Report Card](https://goreportcard.com/badge/github.com/arturoeanton/goscim)](https://goreportcard.com/report/github.com/arturoeanton/goscim)\n[![MIT License](https://img.shields.io/badge/License-MIT-green.svg)](https://choosealicense.com/licenses/mit/)\n[![GitHub contributors](https://img.shields.io/github/contributors/arturoeanton/goscim.svg)](https://GitHub.com/arturoeanton/goscim/graphs/contributors/)\n[![GitHub issues](https://img.shields.io/github/issues/arturoeanton/goscim.svg)](https://GitHub.com/arturoeanton/goscim/issues/)\n[![GitHub stars](https://img.shields.io/github/stars/arturoeanton/goscim.svg?style=social\u0026label=Star\u0026maxAge=2592000)](https://GitHub.com/arturoeanton/goscim/stargazers/)\n\n\u003e **A blazingly fast, lightweight SCIM 2.0 server built in Go that makes identity management simple and scalable** 🔥\n\nGoSCIM is the **fastest** and **most flexible** open-source implementation of the SCIM 2.0 protocol. Built with Go's performance and simplicity in mind, it's designed to handle anything from small startups to enterprise-scale identity management.\n\n## ✨ Why GoSCIM?\n\n- 🚀 **Blazing Fast**: Built in Go for maximum performance and minimal resource usage\n- 🔧 **Plug \u0026 Play**: Works out of the box with dynamic schema loading\n- 🌐 **Universal**: Integrates with Active Directory, LDAP, Salesforce, Slack, and more\n- 📈 **Scalable**: From 10 users to 100,000+ with horizontal scaling\n- 🛡️ **Secure**: Enterprise-grade security with OAuth 2.0 and role-based access control\n- 🎯 **SCIM 2.0 Compliant**: Full RFC 7643/7644 implementation\n- 🔍 **Smart Filtering**: Advanced ANTLR-based filter parser for complex queries\n- 📊 **Observable**: Built-in metrics, logging, and health checks\n\n## 🎯 Perfect For\n\n- **Startups** building their first identity system\n- **Enterprises** replacing expensive identity solutions\n- **DevOps Teams** automating user provisioning\n- **SaaS Companies** needing multi-tenant identity management\n- **Developers** learning SCIM protocol implementation\n\n## ⚡ Quick Start\n\nGet GoSCIM running in under 2 minutes:\n\n```bash\n# Clone and run with Docker\ngit clone https://github.com/arturoeanton/goscim.git\ncd goscim\ndocker-compose up -d\n\n# Or build from source\ngo run main.go\n```\n\nVisit `http://localhost:8080/ServiceProviderConfig` to see your SCIM server in action! 🎉\n\n## 🌟 Features That Make Developers Happy\n\n### 🏗️ **Dynamic Schema System**\nNo code changes needed - just drop JSON schemas and restart:\n\n```json\n{\n  \"id\": \"urn:ietf:params:scim:schemas:custom:2.0:Employee\",\n  \"name\": \"Employee\",\n  \"attributes\": [\n    {\n      \"name\": \"employeeId\",\n      \"type\": \"string\",\n      \"required\": true,\n      \"uniqueness\": \"server\"\n    }\n  ]\n}\n```\n\n### 🔍 **Powerful Query Engine**\nAdvanced filtering with natural syntax:\n\n```http\nGET /Users?filter=name.familyName co \"Garcia\" and active eq true\nGET /Users?filter=emails[type eq \"work\" and value ew \"@company.com\"]\n```\n\n### 🔌 **Easy Integrations**\nConnect to any system with our flexible connector architecture:\n\n```go\n// Custom connector in just a few lines\nfunc (c *CustomConnector) SyncUsers() error {\n    users := c.externalSystem.GetUsers()\n    for _, user := range users {\n        scimUser := convertToSCIM(user)\n        c.scimClient.CreateOrUpdateUser(scimUser)\n    }\n    return nil\n}\n```\n\n## 🛠️ Real-World Examples\n\n### Create a User\n```bash\ncurl -X POST https://your-scim-server.com/scim/v2/Users \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"schemas\": [\"urn:ietf:params:scim:schemas:core:2.0:User\"],\n    \"userName\": \"jane.doe@company.com\",\n    \"name\": {\n      \"familyName\": \"Doe\",\n      \"givenName\": \"Jane\"\n    },\n    \"emails\": [{\n      \"value\": \"jane.doe@company.com\",\n      \"type\": \"work\",\n      \"primary\": true\n    }],\n    \"active\": true\n  }'\n```\n\n### Search with Filters\n```bash\ncurl \"https://your-scim-server.com/scim/v2/Users?filter=userName sw 'admin'\u0026sortBy=name.familyName\"\n```\n\n### Update User\n```bash\ncurl -X PATCH https://your-scim-server.com/scim/v2/Users/123 \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"schemas\": [\"urn:ietf:params:scim:api:messages:2.0:PatchOp\"],\n    \"Operations\": [{\n      \"op\": \"replace\",\n      \"path\": \"active\",\n      \"value\": false\n    }]\n  }'\n```\n\n## 🏗️ Architecture\n\n```\n┌─────────────────┐    ┌─────────────────┐    ┌─────────────────┐\n│   Your Apps     │    │   Identity      │    │   External      │\n│   (Consumers)   │◄──►│   Hub (GoSCIM)  │◄──►│   Systems       │\n│                 │    │                 │    │   (Providers)   │\n└─────────────────┘    └─────────────────┘    └─────────────────┘\n```\n\n- **Stateless Design**: Scale horizontally with ease\n- **Couchbase Backend**: NoSQL flexibility with ACID compliance\n- **Microservices Ready**: Deploy as containers or serverless functions\n- **Event-Driven**: Webhooks and real-time notifications\n\n## 🚀 Performance That Scales\n\n| Metric | Small Team | Growing Company | Enterprise |\n|--------|------------|-----------------|------------|\n| **Users** | \u003c 1,000 | \u003c 10,000 | 100,000+ |\n| **Requests/sec** | 500+ | 2,000+ | 10,000+ |\n| **Response Time** | \u003c 50ms | \u003c 100ms | \u003c 200ms |\n| **Memory Usage** | 256MB | 1GB | 4GB+ |\n\n*All measurements on standard cloud instances*\n\n## 🤝 Join Our Amazing Community\n\nWe're building something special, and we'd love your help! \n\n### 🌟 **Star us** if you find GoSCIM useful!\n\n### 🛠️ **Ways to Contribute**\n- 🐛 [Report bugs](https://github.com/arturoeanton/goscim/issues/new?template=bug_report.md)\n- 💡 [Suggest features](https://github.com/arturoeanton/goscim/issues/new?template=feature_request.md)\n- 📝 [Improve documentation](https://github.com/arturoeanton/goscim/tree/main/docs)\n- 🔧 [Submit pull requests](https://github.com/arturoeanton/goscim/pulls)\n- 💬 [Join discussions](https://github.com/arturoeanton/goscim/discussions)\n\n### 🎯 **Quick Contribution Ideas**\n- Add new identity provider connectors\n- Improve the web UI (coming soon!)\n- Write tutorials and blog posts\n- Create Docker images and Helm charts\n- Add support for additional databases\n- Implement advanced monitoring features\n\n### 🏆 **Hall of Fame**\nSpecial thanks to all our contributors! Every contribution matters, from bug reports to major features.\n\n## 📚 Documentation\n\n| Topic | Link |\n|-------|------|\n| 🚀 **Getting Started** | [docs/en/getting-started.md](docs/en/getting-started.md) |\n| 🔧 **Installation Guide** | [docs/en/installation.md](docs/en/installation.md) |\n| 📖 **API Reference** | [docs/en/api-reference.md](docs/en/api-reference.md) |\n| 🏗️ **Architecture** | [docs/en/architecture.md](docs/en/architecture.md) |\n| 🛡️ **Security Guide** | [docs/en/security.md](docs/en/security.md) |\n| 🔌 **Integrations** | [docs/en/integrations.md](docs/en/integrations.md) |\n| 👩‍💻 **Developer Guide** | [docs/en/development.md](docs/en/development.md) |\n| 🚀 **Operations** | [docs/en/operations.md](docs/en/operations.md) |\n\n### 🌍 **Multi-Language Docs**\n- 🇺🇸 [English](docs/en/)\n- 🇪🇸 [Español](docs/es/)\n\n## 🔧 Tech Stack\n\n- **Language**: Go 1.16+\n- **Database**: Couchbase (NoSQL)\n- **Web Framework**: Gin\n- **Query Parser**: ANTLR v4\n- **Monitoring**: Prometheus \u0026 Grafana\n- **Auth**: OAuth 2.0 / JWT\n- **Deployment**: Docker, Kubernetes\n\n## 📊 Project Status\n\n- ✅ **Core SCIM Operations**: CREATE, READ, UPDATE, DELETE, SEARCH\n- ✅ **Advanced Filtering**: Full SCIM filter expression support\n- ✅ **Schema Extensions**: Custom attributes and resource types\n- ✅ **Role-Based Access**: Granular permission system\n- 🚧 **Bulk Operations**: In development\n- 🚧 **Web UI**: Coming soon\n- 📋 **GraphQL API**: Planned\n- 📋 **Event Streaming**: Planned\n\n## 💡 Use Cases\n\n### Identity Automation\n```\nEmployee Onboarding → GoSCIM → Automatic provisioning in:\n├── Active Directory\n├── Salesforce\n├── Slack\n├── Jira\n└── Custom Apps\n```\n\n### Multi-Tenant SaaS\n```\nCustomer Signup → GoSCIM → Isolated tenant with:\n├── Custom schemas\n├── Role-based access\n├── Branded experience\n└── API access\n```\n\n### Compliance \u0026 Audit\n```\nUser Changes → GoSCIM → Automated:\n├── Audit logging\n├── Compliance reports\n├── Access reviews\n└── Webhook notifications\n```\n\n## 🌟 Why Open Source?\n\nWe believe identity management should be **accessible**, **transparent**, and **community-driven**. By open-sourcing GoSCIM, we're empowering developers worldwide to build better identity solutions.\n\n**Join us in democratizing identity management!** 🚀\n\n## 📄 License\n\nGoSCIM is released under the [MIT License](LICENSE). Feel free to use it in your projects, contribute back, and help us make identity management better for everyone!\n\n**Commercial use** is welcomed, but we'd appreciate:\n- 🌟 A star on GitHub\n- 📢 Attribution in your project\n- 🤝 Contributing improvements back to the community\n\n## 🙏 Acknowledgments\n\n- Built with ❤️ by [Arturo Anton](https://github.com/arturoeanton) and the community\n- Inspired by the SCIM protocol and the need for simple, scalable identity management\n- Special thanks to all contributors and early adopters!\n\n---\n\n\u003cdiv align=\"center\"\u003e\n\n**[⭐ Star us on GitHub](https://github.com/arturoeanton/goscim)** • **[🐛 Report Issues](https://github.com/arturoeanton/goscim/issues)** • **[💬 Join Discussions](https://github.com/arturoeanton/goscim/discussions)**\n\nMade with ❤️ for the developer community\n\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farturoeanton%2Fgoscim","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Farturoeanton%2Fgoscim","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farturoeanton%2Fgoscim/lists"}