Sim 企业版(Enterprise Edition)功能架构与自托管配置指南
Sim 企业版Enterprise Edition功能架构与自托管配置指南【免费下载链接】simSim is the collaborative workspace to build, deploy, and monitor AI agents and workflows. Used by 100,000 builders.项目地址: https://gitcode.com/GitHub_Trending/sim16/sim本指南基于 Sim 开源仓库的apps/sim/ee目录系统讲解企业版的功能组成SSO 单点登录、权限组访问控制、白标定制等、许可证边界、运行时功能开关环境变量机制以及各功能模块的源码组织方式。读完本文你将掌握如何在自托管部署中开启企业特性、如何理解服务端开关 前端展示开关的双环境变量约定以及每个企业功能背后的实现模块与测试位置可直接用于生产部署的规划与排障。一、企业版目录定位ee/是什么在 apps/sim/ee 目录中Sim 集中存放了需要Sim Enterprise 订阅才能在生产环境使用的企业级功能。该目录在构建期是必需的——代码库中各处直接 import 企业功能模块删除ee/目录会导致构建失败而功能的可见性是否对用户开放则在运行时由环境变量控制。从目录结构看企业版功能分为以下主要模块目录功能核心文件ssoOIDC / SAML 单点登录集成sso-form.tsx、sso-settings.tsx、sso-auth.tsxaccess-control权限组Permission Groups细粒度访问控制access-control.tsx、permission-check.tswhitelabeling企业部署的自定义品牌与主题branding-provider.tsx、inject-theme.tsaudit-logs审计日志audit-logs.tsx、constants.tscredential-groups企业托管 OAuth 凭据集合credential-groups-settings.tsx等custom-blocks组织级可复用自定义块custom-blocks.tsxdata-drains数据导出流Export streamsdata-drains-settings.tsx、destinations/registry.tsxdata-retention运行数据保留与删除data-retention-settings.tsxsession-policy会话策略session-policy-settings.tsxorganization-usage组织用量监控usage-summary.tsx、usage-monitoring.tsxworkspace-forking工作区 Fork复制/同步/提升create-fork.ts、fork-sync/、promote/等说明ee/README.md正文只列举了 SSO、Access Control、Whitelabeling 三项代表特性但实际仓库中企业模块远不止这三个——audit-logs、credential-groups、custom-blocks、data-drains、data-retention、session-policy、organization-usage、workspace-forking 均位于同一目录下构成完整的企业能力矩阵。二、许可证边界开发可用生产需订阅企业版使用独立的 EE LICENSESim Enterprise LicenseCopyright © 2025 Sim Studio, Inc.与仓库根目录的 LICENSE 相互独立。许可要点允许开发、测试、评估用途以及内部非生产使用禁止未经有效企业订阅在生产环境使用、修改/适配/创建衍生作品、再分发/再许可/转让、移除或篡改专有声明生产要求企业功能的生产部署必须持有有效的 Sim Enterprise 订阅官方许可证文本中提供了联系 salessim.ai 的渠道。部署规划时应据此区分自托管测试环境可免费启用全部企业功能与生产环境需订阅合规两类场景。三、运行时开关机制环境变量控制功能可见性ee/README.md明确功能可见性在运行时由环境变量控制例如NEXT_PUBLIC_ACCESS_CONTROL_ENABLED、NEXT_PUBLIC_SSO_ENABLED。仓库中的 .env.example 给出了完整的官方约定其核心规则是One switch enables organizations, SSO, permission groups, audit logs, custom blocks, whitelabeling, session policies, data retention, data drains, forks, and the inbox. Set both —the server value grants access, the NEXT_PUBLIC_ value decides what the settings UI shows.即每一个企业特性通常有一对环境变量且含义不同环境变量作用ENTERPRISE_ENABLED/NEXT_PUBLIC_ENTERPRISE_ENABLED总开关同时打开组织、SSO、权限组、审计日志、自定义块、白标、会话策略、数据保留、数据导出、Fork、InboxACCESS_CONTROL_ENABLED/NEXT_PUBLIC_ACCESS_CONTROL_ENABLED权限组SSO_ENABLED/NEXT_PUBLIC_SSO_ENABLEDSAML 与 OIDC 登录WHITELABELING_ENABLED/NEXT_PUBLIC_WHITELABELING_ENABLED自定义品牌AUDIT_LOGS_ENABLED/NEXT_PUBLIC_AUDIT_LOGS_ENABLED审计日志CUSTOM_BLOCKS_ENABLED/NEXT_PUBLIC_CUSTOM_BLOCKS_ENABLED组织级可复用块SESSION_POLICIES_ENABLED/NEXT_PUBLIC_SESSION_POLICIES_ENABLED会话策略DATA_RETENTION_ENABLED/NEXT_PUBLIC_DATA_RETENTION_ENABLED运行数据保留删除默认关闭DATA_DRAINS_ENABLED/NEXT_PUBLIC_DATA_DRAINS_ENABLED数据导出流ORGANIZATIONS_ENABLED/NEXT_PUBLIC_ORGANIZATIONS_ENABLED仅组织功能FORKING_ENABLED工作区 Fork无前端开关服务端控制CREDENTIAL_GROUPS企业托管 OAuth 凭据集合无前端开关配置要点来自 .env.example 的官方注释成对设置服务端值如SSO_ENABLED负责授予访问权NEXT_PUBLIC_前缀值负责设置页 UI 是否展示该功能两者应同时设置。显式覆盖优先单个特性的显式开关会覆盖ENTERPRISE_ENABLED总开关。因此可以用ENTERPRISE_ENABLEDtrue批量开启后再单独关闭某一项也可以只开启某一个特性。组织是前提大多数企业功能从拥有该工作区的组织读取配置因此部署时需要存在组织才能生效。设置INSTANCE_ORGANIZATION实例组织名后注册时所有用户会被放入同一个共享组织其工作区归组织所有留空则由你自己通过 Admin API 管理组织。部分开关无前端对应FORKING_ENABLED、CREDENTIAL_GROUPS等只有服务端开关说明其功能面在服务端执行路径上而非设置 UI。3.1 从源码看开关如何被消费以权限组为例服务端开关在授权漏斗中消费 ee/access-control/utils/permission-check.ts 汇聚了来自/lib/permission-groups的解析层getUserPermissionConfig、resolveWorkspaceGroup、resolveVerifiedUserAccessControlContext等并通过getAllowedIntegrationsFromEnv、isInvitationsDisabled等 env-flags 判断环境开关当用户请求的 Provider/模型不在其权限组允许列表时会抛出ProviderNotAllowedError/ModelNotAllowedError并携带权限组原因信息。这印证了 README 所说的构建期必需、运行时由环境变量控制可见性——开关决定解析层是否放行而模块代码始终随构建打进产物。此外仓库还存在一套更精细的AppConfig 驱动的特性开关lib/core/config/feature-flags.ts用于 hosted 部署按 workspace/org/user/admin 维度做灰度门控每个 flag 都有唯一的fallback密钥如CREDENTIAL_GROUPS、TABLE_ROW_TTL、KNOWLEDGE_MEMBER_ACCESS在未启用 AWS AppConfig 时退化为环境变量为真即开启fallbackFlags()启用时则从 AppConfigfeature-flagsprofile 拉取门控规则约 30s 缓存并按全局 enabled → 工作区/组织/用户白名单 → adminEnabled的短路顺序求值。这一机制与ee/的企业模块叠加使用例如credential-groupsflag 依赖CREDENTIAL_GROUPS环境变量做回退同时 hosted 工作区还要求持有 Enterprise 订阅。四、三大代表特性详解4.1 SSOOIDC 与 SAML 单点登录企业版的 SSO 模块apps/sim/ee/sso提供 OIDC 与 SAML 两类协议集成前端由三个主要组件构成sso-settings.tsx管理员配置 SSO 的入口页面sso-form.tsx具体的 SSO 配置表单协议、Issuer、证书、域名绑定等sso-auth.tsx登录侧的 SSO 认证交互。模块在 constants.ts 中维护了一份可信 SSO Provider 标识符白名单SSO_TRUSTED_PROVIDERS用于配置表单中的校验与自动补全覆盖 Okta含 okta-saml / okta-prod / okta-staging 等、Azure ADazure-ad / azure-active-directory / azure-enterprise、ADFS、Auth0、OneLogin、JumpCloud、Ping Identity / PingFederate / PingOne、Shibboleth、Google Workspace 以及通用的saml/saml2/oidc/openid-connect/custom-sso/enterprise-sso等标识。这意味着企业管理员可以基于主流 IdP 或任意符合 OIDC/SAML 标准的自定义 IdP 接入。配置时需设置SSO_ENABLEDtrue与NEXT_PUBLIC_SSO_ENABLEDtrue服务端放行 设置 UI 展示。SSO 相关的 hooks 与测试位于 ee/sso/hooks含domains.ts、sso.ts及对应测试域名管理通过verified-domains-section.tsx完成。4.2 Access Control基于权限组的细粒度访问控制访问控制模块apps/sim/ee/access-control提供**权限组Permission Groups**机制用于对用户访问做细粒度管理典型能力包括模型 / Provider 级限制如 permission-check.ts 中的ProviderNotAllowedErrorProvider X is not allowed for model Y based on your permission group settings与ModelNotAllowedErrorModel Z is not allowed based on your permission group settings说明权限组可以精确到某个用户/组能用哪些 Provider 与模型集成白名单Integration allowlist通过 integration-allowlist-rows.ts 及其测试管理允许使用的集成列表并可结合环境变量getAllowedIntegrationsFromEnv合并环境级白名单能力规则Capability rules通过CAPABILITY_RULES/refuseCapability对用户的操作能力做静态规则判定操作访问门控Operation accesscreateToolAccessGate可对工具调用等操作做访问门控块类型豁免isBlockTypeAccessControlExempt用于判断哪些块类型不受访问控制约束。UI 侧由 access-control.tsx、group-detail.tsx、workspace-select.tsx组成并配套 permission-groups.test.tsx、access-control.test.tsx、permission-check.test.ts、permission-gate-subject.test.ts 等测试用例。需要强调的是权限组的核心解析逻辑并不都在ee/目录如permission-check.ts顶部注释所述解析层位于/lib/permission-groups约 24 个领域模块的operations.ts会经由授权漏斗调用它ee/access-control只是做**转发导出re-export**并承载 UI 与校验器。这种分层把 Provider 注册表、块注册表、计费等重依赖隔离在lib/permission-groups之外避免领域模块被拉入重依赖。因此研究权限组机制时应同时查看 lib/permission-groups含resolve.server.ts、capabilities.ts、integration-allowlist.ts、operation-access.ts、config-scope.server.ts等。开启方式设置ACCESS_CONTROL_ENABLEDtrue与NEXT_PUBLIC_ACCESS_CONTROL_ENABLEDtrue或在总开关ENTERPRISE_ENABLEDtrue基础上显式保留/覆盖该项。4.3 Whitelabeling自定义品牌与主题白标模块apps/sim/ee/whitelabeling用于企业部署的自定义品牌与主题化核心文件包括branding-provider.tsx向应用注入品牌配置的 React Provider含测试 branding-provider.test.tsxwhitelabeling-settings.tsx品牌设置管理页含测试inject-theme.ts主题注入逻辑metadata.ts与品牌相关的页面元数据org-branding.ts / org-branding-utils.ts组织级品牌信息的读取与工具函数branding.ts 与 index.ts品牌配置模型与统一出口hooks 侧为 whitelabel.ts。从模块拆分可以推断白标能力覆盖**品牌配置模型branding→ 主题注入inject-theme→ 运行时 Provider 下发branding-provider→ 设置页管理whitelabeling-settings**的完整链路并支持按组织维度读取品牌信息。开启方式WHITELABELING_ENABLEDtrue与NEXT_PUBLIC_WHITELABELING_ENABLEDtrue。五、其余企业模块速览除 README 点名的三项外ee/内还有多个企业能力各自配有组件、hooks 与测试简要速览如下审计日志audit-logsaudit-logs.tsx constants.ts search-params.tshooks 侧 audit-logs.ts配套 UI 与 hooks 测试凭据组credential-groups企业托管 OAuth 凭据集合含 credential-groups-settings.tsx、成员/工作流绑定credential-group-invite-modal.tsx、credential-group-add-workflow-modal.tsx、credential-group-access.tsx以及 Slack 托管用户、Databricks MCP 连接器等垂直场景组件自定义块custom-blockscustom-blocks.tsx 与 custom-block-detail.tsx实现组织级可复用块数据导出data-drains导出流配置 contenteditable="false">【免费下载链接】simSim is the collaborative workspace to build, deploy, and monitor AI agents and workflows. Used by 100,000 builders.项目地址: https://gitcode.com/GitHub_Trending/sim16/sim创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
上一篇/下一篇内容由系统自动关联
返回资讯列表 →