MCPcopy
hub / github.com/marmotedu/iam

github.com/marmotedu/iam @v1.6.3 sqlite

repository ↗ · DeepWiki ↗ · release v1.6.3 ↗
1,893 symbols 6,028 edges 339 files 1,162 documented · 61%
README

IAM - 身份识别与访问管理系统

IAM = Identity and Access Management

IAM 是一个基于 Go 语言开发的身份识别与访问管理系统,用于对资源访问进行授权。最新稳定版本为:v1.6.2,建议基于稳定版安装测试

这里需要注意: - 如果你是极客时间《Go 语言项目开发实战》专栏的读者,请使用 v1.1.0 版本(tag) - 如果你是图书《从零构建企业级 Go 项目》的读者,请使用 v1.6.t2 版本(tag)

更详细的版本映射请参考:版本映射

IAM 同时也具有以下能力:

  1. 配合极客时间专栏 Go 语言项目开发实战,讲解如何用 Go 做企业级应用的开发,是该项目的理论课程,包含了项目各个知识点和构建思路的讲解,也会包含我的一线研发经验和建议。

  2. 作为一个开发脚手架,供开发者克隆后二次开发,快速构建自己的应用。

IAM 项目会长期维护、定期更新,欢迎兄弟们 Star & Contribute

功能特性

本项目用到了Go企业开发的大部分核心技能点,见下图:

技术思维导图

更多请参考:marmotedu/gocollect

软件架构

IAM架构

架构解析见:IAM 架构 & 能力说明

快速开始

依赖检查

  1. 服务器能访问外网

  2. 操作系统:CentOS Linux 8.x (64-bit)

本安装脚本基于 CentOS 8.2 安装,建议你选择 CentOS 8.x 系统。其它Linux发行版、macOS也能安装,不过需要手动安装。

快速部署

快速部署请参考:IAM 部署指南

IAM 项目还提供了更详细的部署文档,请参考:手把手教你部署IAM系统

构建

如果你需要重新编译IAM项目,可以执行以下 2 步:

  1. 克隆源码
$ git clone https://github.com/marmotedu/iam $GOPATH/src/github.com/marmotedu/iam
  1. 编译
$ cd $GOPATH/src/github.com/marmotedu/iam
$ make

构建后的二进制文件保存在 _output/platforms/linux/amd64/ 目录下。

使用指南

IAM Documentation

如何贡献

欢迎贡献代码,贡献流程可以参考 developer's documentation

社区

You are encouraged to communicate most things via GitHub issues or pull requests.

关于作者

为了方便交流,我建了微信群,可以加我 微信:nightskong,拉你入群,方便交流。

谁在用

如果你有项目在使用iam系统模板,也欢迎联系作者,加入使用案例。

许可证

IAM is licensed under the MIT. See LICENSE for the full license text.

Extension points exported contracts — how you extend this code

CompleteableOptions (Interface)
CompleteableOptions abstracts options which can be completed. [27 implementers]
pkg/app/options.go
PolicyStore (Interface)
PolicyStore defines the policy storage interface. [30 implementers]
internal/authzserver/store/policy.go
Service (Interface)
Service defines functions used to return resource interface. [8 implementers]
internal/apiserver/service/v1/service.go
AuthStrategy (Interface)
AuthStrategy defines the set of methods used to do resource authentication. [5 implementers]
internal/pkg/middleware/auth.go
RESTClientGetter (Interface)
RESTClientGetter is an interface that the ConfigFlags describe to provide an easier way to mock for commands and elimina [3 …
pkg/cli/genericclioptions/config_flags.go
InfoLogger (Interface)
InfoLogger represents the ability to log non-error messages, at a particular verbosity. [2 implementers]
pkg/log/log.go
IWatcher (Interface)
IWatcher is the interface for watchers. [2 implementers]
internal/watcher/watcher/registry.go
Handler (Interface)
Handler is a standard interface to a storage backend, used by AuthorisationManager to read and write key values to the b [1 …
pkg/storage/storage.go

Core symbols most depended-on inside this repo

Error
called by 197
pkg/log/log.go
Errorf
called by 150
pkg/log/log.go
String
called by 76
pkg/app/options.go
New
called by 68
internal/pump/pumps/pump.go
Flags
called by 61
pkg/app/options.go
Errorf
called by 60
pkg/log/log.go
Debugf
called by 55
pkg/log/log.go
Get
called by 44
internal/apiserver/store/user.go

Shape

Method 1,008
Function 542
Struct 278
Interface 40
FuncType 13
TypeAlias 12

Languages

Go100%

Modules by API surface

pkg/log/log.go95 symbols
internal/apiserver/store/mock_store.go62 symbols
internal/apiserver/service/v1/mock_service.go62 symbols
pkg/storage/redis_cluster.go57 symbols
pkg/storage/storage.go45 symbols
internal/iamctl/util/templates/markdown.go37 symbols
internal/iamctl/cmd/util/helpers.go32 symbols
pkg/log/distribution/logger.go30 symbols
internal/apiserver/store/etcd/etcd.go29 symbols
pkg/shutdown/shutdown_test.go25 symbols
pkg/shutdown/shutdown.go25 symbols
internal/iamctl/util/templates/templater.go24 symbols

Dependencies from manifests, versioned

github.com/AlekSi/pointerv1.1.0 · 1×
github.com/Azure/go-ansitermv0.0.0-2021061722524 · 1×
github.com/MakeNowJust/heredoc/v2v2.0.1 · 1×
github.com/asaskevich/govalidatorv0.0.0-2021030708111 · 1×
github.com/avast/retry-gov3.0.0+incompatible · 1×
github.com/beorn7/perksv1.0.1 · 1×
github.com/bitly/go-simplejsonv0.5.0 · 1×
github.com/cespare/xxhash/v2v2.1.2 · 1×
github.com/coreos/go-semverv0.3.0 · 1×
github.com/coreos/go-systemd/v22v22.3.2 · 1×

Datastores touched

(mongodb)Database · 1 repos
iam_analyticsDatabase · 1 repos

For agents

$ claude mcp add iam \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact