{"id":15272410,"url":"https://github.com/coding-hui/iam","last_synced_at":"2025-04-12T10:12:19.675Z","repository":{"id":210407368,"uuid":"535566576","full_name":"coding-hui/iam","owner":"coding-hui","description":"IAM - Identity and access management system, cloud native friendly, multiple authentication methods","archived":false,"fork":false,"pushed_at":"2024-09-19T13:48:26.000Z","size":2095,"stargazers_count":4,"open_issues_count":11,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-26T05:11:14.185Z","etag":null,"topics":["cloud","gin","golang","iam","oauth2","security"],"latest_commit_sha":null,"homepage":"","language":"Go","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/coding-hui.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}},"created_at":"2022-09-12T08:02:30.000Z","updated_at":"2025-01-03T17:46:22.000Z","dependencies_parsed_at":"2024-11-14T14:43:14.456Z","dependency_job_id":"7e62fdd2-4b38-47b8-9d25-b405b867aa99","html_url":"https://github.com/coding-hui/iam","commit_stats":null,"previous_names":["coding-hui/iam"],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coding-hui%2Fiam","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coding-hui%2Fiam/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coding-hui%2Fiam/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coding-hui%2Fiam/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/coding-hui","download_url":"https://codeload.github.com/coding-hui/iam/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248550632,"owners_count":21122934,"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":["cloud","gin","golang","iam","oauth2","security"],"created_at":"2024-09-30T09:06:31.879Z","updated_at":"2025-04-12T10:12:19.656Z","avatar_url":"https://github.com/coding-hui.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"Language : [us](./README.md) | [🇨🇳](./README_zh.md)\n\n\u003ch1 align=\"center\"\u003eWeCoding IAM\u003c/h1\u003e\n\n\u003cdiv align=\"center\"\u003e\n\nIAM = **I**dentity and **A**ccess **M**anagement\n\nAn identity and access management system developed in Go, used for authorizing resource access.\n\n\u003c/div\u003e\n\n- Preview: http://iam.wecoding.top (Default login: ADMIN/WECODING)\n- FAQ: https://github.com/coding-hui/iam/issues\n\n## ✨ Features\n\n- RBAC access control model based on Casbin, providing fine-grained permission control down to buttons.\n\n- Multiple authentication methods: JWT, Basic, SecretKey.\n\n- Built on the GIN WEB API framework, providing rich middleware support (user authentication, CORS, access logs, trace ID, etc.).\n\n- Follows RESTful API design specifications.\n\n- Supports Swagger documentation (based on swaggo).\n\n- Database storage based on GORM, extensible to multiple types of databases.\n\n- Supports dynamically loading multiple configuration files.\n\n- Multi-command mode, providing the iamctl command-line tool.\n\n- TODO: Support for multi-tenancy.\n\n- TODO: Unit tests.\n\n## 🎁 Built-in\n\n- User Management: Users are system operators, this function mainly completes system user configuration.\n\n- Organization Management: Configures system organization (company, department, group).\n\n- Resource Management: Resources are identifiers of specific resources in the business system, which can be an entity, such as a user, or a menu, button, API.\n\n- Permission Policy: Permission policies combine multiple resources, operations, and authorization effects to provide flexible access permission management and control functions for applications.\n\n- Role Management: A role is a collection of permission resources, which can authorize certain resources and operation permissions to the role. When a role is granted to a user, the user will inherit all permissions of this role.\n\n## 📦 Local Development\n\n### Environment Requirements\n\n- go 1.19\n- node v16.19.1\n- pnpm 8.5.1\n\n### Development Directory Creation\n\n```bash\nmkdir wecoding\ncd wecoding\n```\n\n### Get Code\n\n```bash\n# Get backend code\ngit clone https://github.com/coding-hui/iam.git\n\n# Get frontend code\ngit clone https://github.com/coding-hui/iam-frontend.git\n```\n\n### Start Instructions\n\n#### Server Start\n\n```bash\n# Enter iam backend project\ncd ./iam\n\n# Build\nmake build\n\n# Modify configuration\n# File path iam/configs/iam-apiserver.yaml\nvi ./configs/iam-apiserver.yaml\n\n# Start service\n# macOS or linux\ngo run ./cmd/iam-apiserver/main.go -c configs/iam-apiserver.yaml\n\n# windows\ngo run .\\cmd\\iam-apiserver\\main.go -c configs\\iam-apiserver.yaml\n```\n\nThe built binary file is saved in the `_output/platforms/linux/amd64/` directory.\n\n#### Console UI Start\n\n```bash\n# Install dependencies\ncd iam-frontend\n\nnpm install -g pnpm\n\npnpm install\n\npnpm start\n\n```\n\nVisit: http://localhost:8000 ADMIN/WECODING\n\n## User Guide\n\n[IAM Documentation](docs/guide/en)\n\n## Contributing\n\nWe welcome contributions:\n\n- Submit [issues](https://github.com/coding-hui/iam/issues) to report bugs or ask questions.\n- Propose [pull requests](https://github.com/coding-hui/iam/pulls) to improve our code.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcoding-hui%2Fiam","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcoding-hui%2Fiam","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcoding-hui%2Fiam/lists"}