mirror of
https://github.com/simstudioai/sim.git
synced 2026-01-30 09:18:01 -05:00
Compare commits
2 Commits
improvemen
...
feat/ee
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1e9394706f | ||
|
|
c426fd4d4c |
@@ -9,7 +9,7 @@ import { hasAccessControlAccess } from '@/lib/billing'
|
|||||||
import {
|
import {
|
||||||
type PermissionGroupConfig,
|
type PermissionGroupConfig,
|
||||||
parsePermissionGroupConfig,
|
parsePermissionGroupConfig,
|
||||||
} from '@/lib/permission-groups/types'
|
} from '@/ee/access-control/lib/types'
|
||||||
|
|
||||||
const logger = createLogger('PermissionGroup')
|
const logger = createLogger('PermissionGroup')
|
||||||
|
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ import {
|
|||||||
DEFAULT_PERMISSION_GROUP_CONFIG,
|
DEFAULT_PERMISSION_GROUP_CONFIG,
|
||||||
type PermissionGroupConfig,
|
type PermissionGroupConfig,
|
||||||
parsePermissionGroupConfig,
|
parsePermissionGroupConfig,
|
||||||
} from '@/lib/permission-groups/types'
|
} from '@/ee/access-control/lib/types'
|
||||||
|
|
||||||
const logger = createLogger('PermissionGroups')
|
const logger = createLogger('PermissionGroups')
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import { and, eq } from 'drizzle-orm'
|
|||||||
import { NextResponse } from 'next/server'
|
import { NextResponse } from 'next/server'
|
||||||
import { getSession } from '@/lib/auth'
|
import { getSession } from '@/lib/auth'
|
||||||
import { isOrganizationOnEnterprisePlan } from '@/lib/billing'
|
import { isOrganizationOnEnterprisePlan } from '@/lib/billing'
|
||||||
import { parsePermissionGroupConfig } from '@/lib/permission-groups/types'
|
import { parsePermissionGroupConfig } from '@/ee/access-control/lib/types'
|
||||||
|
|
||||||
export async function GET(req: Request) {
|
export async function GET(req: Request) {
|
||||||
const session = await getSession()
|
const session = await getSession()
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
export { AccessControl } from './access-control/access-control'
|
|
||||||
export { ApiKeys } from './api-keys/api-keys'
|
export { ApiKeys } from './api-keys/api-keys'
|
||||||
export { BYOK } from './byok/byok'
|
export { BYOK } from './byok/byok'
|
||||||
export { Copilot } from './copilot/copilot'
|
export { Copilot } from './copilot/copilot'
|
||||||
@@ -10,7 +9,6 @@ export { Files as FileUploads } from './files/files'
|
|||||||
export { General } from './general/general'
|
export { General } from './general/general'
|
||||||
export { Integrations } from './integrations/integrations'
|
export { Integrations } from './integrations/integrations'
|
||||||
export { MCP } from './mcp/mcp'
|
export { MCP } from './mcp/mcp'
|
||||||
export { SSO } from './sso/sso'
|
|
||||||
export { Subscription } from './subscription/subscription'
|
export { Subscription } from './subscription/subscription'
|
||||||
export { TeamManagement } from './team-management/team-management'
|
export { TeamManagement } from './team-management/team-management'
|
||||||
export { WorkflowMcpServers } from './workflow-mcp-servers/workflow-mcp-servers'
|
export { WorkflowMcpServers } from './workflow-mcp-servers/workflow-mcp-servers'
|
||||||
|
|||||||
@@ -41,7 +41,6 @@ import { getEnv, isTruthy } from '@/lib/core/config/env'
|
|||||||
import { isHosted } from '@/lib/core/config/feature-flags'
|
import { isHosted } from '@/lib/core/config/feature-flags'
|
||||||
import { getUserRole } from '@/lib/workspaces/organization'
|
import { getUserRole } from '@/lib/workspaces/organization'
|
||||||
import {
|
import {
|
||||||
AccessControl,
|
|
||||||
ApiKeys,
|
ApiKeys,
|
||||||
BYOK,
|
BYOK,
|
||||||
Copilot,
|
Copilot,
|
||||||
@@ -53,15 +52,15 @@ import {
|
|||||||
General,
|
General,
|
||||||
Integrations,
|
Integrations,
|
||||||
MCP,
|
MCP,
|
||||||
SSO,
|
|
||||||
Subscription,
|
Subscription,
|
||||||
TeamManagement,
|
TeamManagement,
|
||||||
WorkflowMcpServers,
|
WorkflowMcpServers,
|
||||||
} from '@/app/workspace/[workspaceId]/w/components/sidebar/components/settings-modal/components'
|
} from '@/app/workspace/[workspaceId]/w/components/sidebar/components/settings-modal/components'
|
||||||
import { TemplateProfile } from '@/app/workspace/[workspaceId]/w/components/sidebar/components/settings-modal/components/template-profile/template-profile'
|
import { TemplateProfile } from '@/app/workspace/[workspaceId]/w/components/sidebar/components/settings-modal/components/template-profile/template-profile'
|
||||||
|
import { AccessControl } from '@/ee/access-control'
|
||||||
|
import { SSO, ssoKeys, useSSOProviders } from '@/ee/sso'
|
||||||
import { generalSettingsKeys, useGeneralSettings } from '@/hooks/queries/general-settings'
|
import { generalSettingsKeys, useGeneralSettings } from '@/hooks/queries/general-settings'
|
||||||
import { organizationKeys, useOrganizations } from '@/hooks/queries/organization'
|
import { organizationKeys, useOrganizations } from '@/hooks/queries/organization'
|
||||||
import { ssoKeys, useSSOProviders } from '@/hooks/queries/sso'
|
|
||||||
import { subscriptionKeys, useSubscriptionData } from '@/hooks/queries/subscription'
|
import { subscriptionKeys, useSubscriptionData } from '@/hooks/queries/subscription'
|
||||||
import { usePermissionConfig } from '@/hooks/use-permission-config'
|
import { usePermissionConfig } from '@/hooks/use-permission-config'
|
||||||
import { useSettingsModalStore } from '@/stores/modals/settings/store'
|
import { useSettingsModalStore } from '@/stores/modals/settings/store'
|
||||||
|
|||||||
46
apps/sim/ee/LICENSE
Normal file
46
apps/sim/ee/LICENSE
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
The Sim Enterprise License (the "Enterprise License")
|
||||||
|
Copyright (c) 2026-present Sim Studio, Inc.
|
||||||
|
|
||||||
|
With regard to the Sim Software:
|
||||||
|
|
||||||
|
This software and associated documentation files (the "Software") may only be
|
||||||
|
used in production, if you (and any entity that you represent) have agreed to,
|
||||||
|
and are in compliance with, the Sim Terms of Service available at
|
||||||
|
https://sim.ai/terms (or other agreement governing the use of the Software,
|
||||||
|
as mutually agreed by you and Sim Studio, Inc. ("Sim")), and otherwise
|
||||||
|
have a valid Sim Enterprise subscription ("Enterprise Subscription")
|
||||||
|
for the correct number of seats as defined in your agreement.
|
||||||
|
|
||||||
|
Subject to the foregoing sentence, you are free to modify this Software and
|
||||||
|
publish patches to the Software. You agree that Sim and/or its licensors
|
||||||
|
(as applicable) retain all right, title and interest in and to all such
|
||||||
|
modifications and/or patches, and all such modifications and/or patches may
|
||||||
|
only be used, copied, modified, displayed, distributed, or otherwise exploited
|
||||||
|
with a valid Enterprise Subscription.
|
||||||
|
|
||||||
|
Notwithstanding the foregoing, you may copy and modify the Software for
|
||||||
|
development and testing purposes, without requiring a subscription. You agree
|
||||||
|
that Sim and/or its licensors (as applicable) retain all right, title
|
||||||
|
and interest in and to all such modifications.
|
||||||
|
|
||||||
|
You are not granted any other rights beyond what is expressly stated herein.
|
||||||
|
Subject to the foregoing, it is forbidden to copy, merge, publish, distribute,
|
||||||
|
sublicense, and/or sell the Software.
|
||||||
|
|
||||||
|
This Enterprise License applies only to the part of this Software that is not
|
||||||
|
distributed under the Apache License 2.0. Any part of this Software distributed
|
||||||
|
under the Apache License 2.0 is copyrighted under that license. The full text
|
||||||
|
of this Enterprise License shall be included in all copies or substantial
|
||||||
|
portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
||||||
|
|
||||||
|
For all third party components incorporated into the Sim Software, those
|
||||||
|
components are licensed under the original license provided by the owner of the
|
||||||
|
applicable component.
|
||||||
69
apps/sim/ee/README.md
Normal file
69
apps/sim/ee/README.md
Normal file
@@ -0,0 +1,69 @@
|
|||||||
|
# Sim Enterprise Edition
|
||||||
|
|
||||||
|
This directory contains enterprise features that require a valid Sim Enterprise license for production use.
|
||||||
|
|
||||||
|
## Features
|
||||||
|
|
||||||
|
- **SSO**: SAML and OIDC single sign-on authentication
|
||||||
|
- **Access Control**: Permission groups and role-based access control
|
||||||
|
|
||||||
|
## Structure
|
||||||
|
|
||||||
|
```
|
||||||
|
ee/
|
||||||
|
├── LICENSE
|
||||||
|
├── README.md
|
||||||
|
├── index.ts # Main barrel export
|
||||||
|
├── sso/
|
||||||
|
│ ├── index.ts
|
||||||
|
│ ├── components/ # SSO settings UI
|
||||||
|
│ ├── hooks/ # React Query hooks
|
||||||
|
│ └── lib/ # Utilities and constants
|
||||||
|
└── access-control/
|
||||||
|
├── index.ts
|
||||||
|
├── components/ # Access control settings UI
|
||||||
|
├── hooks/ # React Query hooks
|
||||||
|
└── lib/ # Types and utilities
|
||||||
|
```
|
||||||
|
|
||||||
|
**Note:** API routes remain in `app/api/` as required by Next.js routing conventions:
|
||||||
|
- SSO API: `app/api/auth/sso/`
|
||||||
|
- Permission Groups API: `app/api/permission-groups/`
|
||||||
|
|
||||||
|
## Licensing
|
||||||
|
|
||||||
|
Code in this directory is **NOT** covered by the Apache 2.0 license. See [LICENSE](./LICENSE) for the Sim Enterprise License terms.
|
||||||
|
|
||||||
|
The rest of the Sim codebase outside this directory is licensed under Apache 2.0.
|
||||||
|
|
||||||
|
## For Open Source Users
|
||||||
|
|
||||||
|
You may delete this directory to use Sim under the Apache 2.0 license only. The application will continue to function without enterprise features.
|
||||||
|
|
||||||
|
## Development & Testing
|
||||||
|
|
||||||
|
You may copy and modify this software for development and testing purposes without requiring an Enterprise subscription. Production use requires a valid license.
|
||||||
|
|
||||||
|
## Enabling Enterprise Features
|
||||||
|
|
||||||
|
Enterprise features are controlled by environment variables and subscription status:
|
||||||
|
|
||||||
|
- `NEXT_PUBLIC_SSO_ENABLED` - Enable SSO for self-hosted instances
|
||||||
|
- `NEXT_PUBLIC_ACCESS_CONTROL_ENABLED` - Enable access control for self-hosted instances
|
||||||
|
|
||||||
|
On the hosted platform (sim.ai), these features are automatically available with an Enterprise subscription.
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
```typescript
|
||||||
|
// Import enterprise components
|
||||||
|
import { SSO, AccessControl } from '@/ee'
|
||||||
|
|
||||||
|
// Or import specific features
|
||||||
|
import { SSO, useSSOProviders } from '@/ee/sso'
|
||||||
|
import { AccessControl, usePermissionGroups } from '@/ee/access-control'
|
||||||
|
```
|
||||||
|
|
||||||
|
## Contact
|
||||||
|
|
||||||
|
For Enterprise licensing inquiries, contact [sales@sim.ai](mailto:sales@sim.ai).
|
||||||
@@ -25,11 +25,9 @@ import {
|
|||||||
import { Input as BaseInput, Skeleton } from '@/components/ui'
|
import { Input as BaseInput, Skeleton } from '@/components/ui'
|
||||||
import { useSession } from '@/lib/auth/auth-client'
|
import { useSession } from '@/lib/auth/auth-client'
|
||||||
import { getSubscriptionStatus } from '@/lib/billing/client'
|
import { getSubscriptionStatus } from '@/lib/billing/client'
|
||||||
import type { PermissionGroupConfig } from '@/lib/permission-groups/types'
|
|
||||||
import { getUserColor } from '@/lib/workspaces/colors'
|
import { getUserColor } from '@/lib/workspaces/colors'
|
||||||
import { getUserRole } from '@/lib/workspaces/organization'
|
import { getUserRole } from '@/lib/workspaces/organization'
|
||||||
import { getAllBlocks } from '@/blocks'
|
import { getAllBlocks } from '@/blocks'
|
||||||
import { useOrganization, useOrganizations } from '@/hooks/queries/organization'
|
|
||||||
import {
|
import {
|
||||||
type PermissionGroup,
|
type PermissionGroup,
|
||||||
useBulkAddPermissionGroupMembers,
|
useBulkAddPermissionGroupMembers,
|
||||||
@@ -39,7 +37,9 @@ import {
|
|||||||
usePermissionGroups,
|
usePermissionGroups,
|
||||||
useRemovePermissionGroupMember,
|
useRemovePermissionGroupMember,
|
||||||
useUpdatePermissionGroup,
|
useUpdatePermissionGroup,
|
||||||
} from '@/hooks/queries/permission-groups'
|
} from '@/ee/access-control/hooks/permission-groups'
|
||||||
|
import type { PermissionGroupConfig } from '@/ee/access-control/lib/types'
|
||||||
|
import { useOrganization, useOrganizations } from '@/hooks/queries/organization'
|
||||||
import { useSubscriptionData } from '@/hooks/queries/subscription'
|
import { useSubscriptionData } from '@/hooks/queries/subscription'
|
||||||
import { PROVIDER_DEFINITIONS } from '@/providers/models'
|
import { PROVIDER_DEFINITIONS } from '@/providers/models'
|
||||||
import { getAllProviderIds } from '@/providers/utils'
|
import { getAllProviderIds } from '@/providers/utils'
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
import { useMutation, useQuery, useQueryClient } from '@tanstack/react-query'
|
import { useMutation, useQuery, useQueryClient } from '@tanstack/react-query'
|
||||||
import type { PermissionGroupConfig } from '@/lib/permission-groups/types'
|
import type { PermissionGroupConfig } from '@/ee/access-control/lib/types'
|
||||||
import { fetchJson } from '@/hooks/selectors/helpers'
|
import { fetchJson } from '@/hooks/selectors/helpers'
|
||||||
|
|
||||||
export interface PermissionGroup {
|
export interface PermissionGroup {
|
||||||
26
apps/sim/ee/access-control/index.ts
Normal file
26
apps/sim/ee/access-control/index.ts
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
export { AccessControl } from './components/access-control'
|
||||||
|
export {
|
||||||
|
type BulkAddMembersData,
|
||||||
|
type CreatePermissionGroupData,
|
||||||
|
type DeletePermissionGroupParams,
|
||||||
|
type PermissionGroup,
|
||||||
|
type PermissionGroupMember,
|
||||||
|
permissionGroupKeys,
|
||||||
|
type UpdatePermissionGroupData,
|
||||||
|
type UserPermissionConfig,
|
||||||
|
useAddPermissionGroupMember,
|
||||||
|
useBulkAddPermissionGroupMembers,
|
||||||
|
useCreatePermissionGroup,
|
||||||
|
useDeletePermissionGroup,
|
||||||
|
usePermissionGroup,
|
||||||
|
usePermissionGroupMembers,
|
||||||
|
usePermissionGroups,
|
||||||
|
useRemovePermissionGroupMember,
|
||||||
|
useUpdatePermissionGroup,
|
||||||
|
useUserPermissionConfig,
|
||||||
|
} from './hooks/permission-groups'
|
||||||
|
export type { PermissionGroupConfig } from './lib/types'
|
||||||
|
export {
|
||||||
|
DEFAULT_PERMISSION_GROUP_CONFIG,
|
||||||
|
parsePermissionGroupConfig,
|
||||||
|
} from './lib/types'
|
||||||
34
apps/sim/ee/index.ts
Normal file
34
apps/sim/ee/index.ts
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
/**
|
||||||
|
* Sim Enterprise Edition
|
||||||
|
*
|
||||||
|
* This module contains enterprise features that require a valid
|
||||||
|
* Sim Enterprise license for production use.
|
||||||
|
*
|
||||||
|
* See LICENSE in this directory for terms.
|
||||||
|
*/
|
||||||
|
|
||||||
|
export type { PermissionGroupConfig } from './access-control'
|
||||||
|
// Access Control (Permission Groups)
|
||||||
|
export {
|
||||||
|
AccessControl,
|
||||||
|
type BulkAddMembersData,
|
||||||
|
type CreatePermissionGroupData,
|
||||||
|
type DeletePermissionGroupParams,
|
||||||
|
type PermissionGroup,
|
||||||
|
type PermissionGroupMember,
|
||||||
|
permissionGroupKeys,
|
||||||
|
type UpdatePermissionGroupData,
|
||||||
|
type UserPermissionConfig,
|
||||||
|
useAddPermissionGroupMember,
|
||||||
|
useBulkAddPermissionGroupMembers,
|
||||||
|
useCreatePermissionGroup,
|
||||||
|
useDeletePermissionGroup,
|
||||||
|
usePermissionGroup,
|
||||||
|
usePermissionGroupMembers,
|
||||||
|
usePermissionGroups,
|
||||||
|
useRemovePermissionGroupMember,
|
||||||
|
useUpdatePermissionGroup,
|
||||||
|
useUserPermissionConfig,
|
||||||
|
} from './access-control'
|
||||||
|
// SSO (Single Sign-On)
|
||||||
|
export { SSO, ssoKeys, useConfigureSSO, useDeleteSSO, useSSOProviders } from './sso'
|
||||||
@@ -11,55 +11,13 @@ import { isBillingEnabled } from '@/lib/core/config/feature-flags'
|
|||||||
import { cn } from '@/lib/core/utils/cn'
|
import { cn } from '@/lib/core/utils/cn'
|
||||||
import { getBaseUrl } from '@/lib/core/utils/urls'
|
import { getBaseUrl } from '@/lib/core/utils/urls'
|
||||||
import { getUserRole } from '@/lib/workspaces/organization/utils'
|
import { getUserRole } from '@/lib/workspaces/organization/utils'
|
||||||
|
import { useConfigureSSO, useSSOProviders } from '@/ee/sso/hooks/sso'
|
||||||
|
import { SSO_TRUSTED_PROVIDERS } from '@/ee/sso/lib/constants'
|
||||||
import { useOrganizations } from '@/hooks/queries/organization'
|
import { useOrganizations } from '@/hooks/queries/organization'
|
||||||
import { useConfigureSSO, useSSOProviders } from '@/hooks/queries/sso'
|
|
||||||
import { useSubscriptionData } from '@/hooks/queries/subscription'
|
import { useSubscriptionData } from '@/hooks/queries/subscription'
|
||||||
|
|
||||||
const logger = createLogger('SSO')
|
const logger = createLogger('SSO')
|
||||||
|
|
||||||
const TRUSTED_SSO_PROVIDERS = [
|
|
||||||
'okta',
|
|
||||||
'okta-saml',
|
|
||||||
'okta-prod',
|
|
||||||
'okta-dev',
|
|
||||||
'okta-staging',
|
|
||||||
'okta-test',
|
|
||||||
'azure-ad',
|
|
||||||
'azure-active-directory',
|
|
||||||
'azure-corp',
|
|
||||||
'azure-enterprise',
|
|
||||||
'adfs',
|
|
||||||
'adfs-company',
|
|
||||||
'adfs-corp',
|
|
||||||
'adfs-enterprise',
|
|
||||||
'auth0',
|
|
||||||
'auth0-prod',
|
|
||||||
'auth0-dev',
|
|
||||||
'auth0-staging',
|
|
||||||
'onelogin',
|
|
||||||
'onelogin-prod',
|
|
||||||
'onelogin-corp',
|
|
||||||
'jumpcloud',
|
|
||||||
'jumpcloud-prod',
|
|
||||||
'jumpcloud-corp',
|
|
||||||
'ping-identity',
|
|
||||||
'ping-federate',
|
|
||||||
'pingone',
|
|
||||||
'shibboleth',
|
|
||||||
'shibboleth-idp',
|
|
||||||
'google-workspace',
|
|
||||||
'google-sso',
|
|
||||||
'saml',
|
|
||||||
'saml2',
|
|
||||||
'saml-sso',
|
|
||||||
'oidc',
|
|
||||||
'oidc-sso',
|
|
||||||
'openid-connect',
|
|
||||||
'custom-sso',
|
|
||||||
'enterprise-sso',
|
|
||||||
'company-sso',
|
|
||||||
]
|
|
||||||
|
|
||||||
interface SSOProvider {
|
interface SSOProvider {
|
||||||
id: string
|
id: string
|
||||||
providerId: string
|
providerId: string
|
||||||
@@ -565,7 +523,7 @@ export function SSO() {
|
|||||||
<Combobox
|
<Combobox
|
||||||
value={formData.providerId}
|
value={formData.providerId}
|
||||||
onChange={(value: string) => handleInputChange('providerId', value)}
|
onChange={(value: string) => handleInputChange('providerId', value)}
|
||||||
options={TRUSTED_SSO_PROVIDERS.map((id) => ({
|
options={SSO_TRUSTED_PROVIDERS.map((id) => ({
|
||||||
label: id,
|
label: id,
|
||||||
value: id,
|
value: id,
|
||||||
}))}
|
}))}
|
||||||
8
apps/sim/ee/sso/index.ts
Normal file
8
apps/sim/ee/sso/index.ts
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
export { SSO } from './components/sso'
|
||||||
|
export {
|
||||||
|
ssoKeys,
|
||||||
|
useConfigureSSO,
|
||||||
|
useDeleteSSO,
|
||||||
|
useSSOProviders,
|
||||||
|
} from './hooks/sso'
|
||||||
|
export * from './lib/constants'
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
import type { TraceSpan } from '@/lib/logs/types'
|
import type { TraceSpan } from '@/lib/logs/types'
|
||||||
import type { PermissionGroupConfig } from '@/lib/permission-groups/types'
|
|
||||||
import type { BlockOutput } from '@/blocks/types'
|
import type { BlockOutput } from '@/blocks/types'
|
||||||
|
import type { PermissionGroupConfig } from '@/ee/access-control/lib/types'
|
||||||
import type { RunFromBlockContext } from '@/executor/utils/run-from-block'
|
import type { RunFromBlockContext } from '@/executor/utils/run-from-block'
|
||||||
import type { SerializedBlock, SerializedWorkflow } from '@/serializer/types'
|
import type { SerializedBlock, SerializedWorkflow } from '@/serializer/types'
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import { isAccessControlEnabled, isHosted } from '@/lib/core/config/feature-flag
|
|||||||
import {
|
import {
|
||||||
type PermissionGroupConfig,
|
type PermissionGroupConfig,
|
||||||
parsePermissionGroupConfig,
|
parsePermissionGroupConfig,
|
||||||
} from '@/lib/permission-groups/types'
|
} from '@/ee/access-control/lib/types'
|
||||||
import type { ExecutionContext } from '@/executor/types'
|
import type { ExecutionContext } from '@/executor/types'
|
||||||
import { getProviderFromModel } from '@/providers/utils'
|
import { getProviderFromModel } from '@/providers/utils'
|
||||||
|
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
import { useMemo } from 'react'
|
import { useMemo } from 'react'
|
||||||
import { getEnv, isTruthy } from '@/lib/core/config/env'
|
import { getEnv, isTruthy } from '@/lib/core/config/env'
|
||||||
import { isAccessControlEnabled, isHosted } from '@/lib/core/config/feature-flags'
|
import { isAccessControlEnabled, isHosted } from '@/lib/core/config/feature-flags'
|
||||||
|
import { useUserPermissionConfig } from '@/ee/access-control/hooks/permission-groups'
|
||||||
import {
|
import {
|
||||||
DEFAULT_PERMISSION_GROUP_CONFIG,
|
DEFAULT_PERMISSION_GROUP_CONFIG,
|
||||||
type PermissionGroupConfig,
|
type PermissionGroupConfig,
|
||||||
} from '@/lib/permission-groups/types'
|
} from '@/ee/access-control/lib/types'
|
||||||
import { useOrganizations } from '@/hooks/queries/organization'
|
import { useOrganizations } from '@/hooks/queries/organization'
|
||||||
import { useUserPermissionConfig } from '@/hooks/queries/permission-groups'
|
|
||||||
|
|
||||||
export interface PermissionConfigResult {
|
export interface PermissionConfigResult {
|
||||||
config: PermissionGroupConfig
|
config: PermissionGroupConfig
|
||||||
|
|||||||
@@ -59,8 +59,8 @@ import { sendEmail } from '@/lib/messaging/email/mailer'
|
|||||||
import { getFromEmailAddress, getPersonalEmailFrom } from '@/lib/messaging/email/utils'
|
import { getFromEmailAddress, getPersonalEmailFrom } from '@/lib/messaging/email/utils'
|
||||||
import { quickValidateEmail } from '@/lib/messaging/email/validation'
|
import { quickValidateEmail } from '@/lib/messaging/email/validation'
|
||||||
import { syncAllWebhooksForCredentialSet } from '@/lib/webhooks/utils.server'
|
import { syncAllWebhooksForCredentialSet } from '@/lib/webhooks/utils.server'
|
||||||
|
import { SSO_TRUSTED_PROVIDERS } from '@/ee/sso/lib/constants'
|
||||||
import { createAnonymousSession, ensureAnonymousUserExists } from './anonymous'
|
import { createAnonymousSession, ensureAnonymousUserExists } from './anonymous'
|
||||||
import { SSO_TRUSTED_PROVIDERS } from './sso/constants'
|
|
||||||
|
|
||||||
const logger = createLogger('Auth')
|
const logger = createLogger('Auth')
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ import { createLogger } from '@sim/logger'
|
|||||||
import { eq } from 'drizzle-orm'
|
import { eq } from 'drizzle-orm'
|
||||||
import type { BaseServerTool } from '@/lib/copilot/tools/server/base-tool'
|
import type { BaseServerTool } from '@/lib/copilot/tools/server/base-tool'
|
||||||
import { validateSelectorIds } from '@/lib/copilot/validation/selector-validator'
|
import { validateSelectorIds } from '@/lib/copilot/validation/selector-validator'
|
||||||
import type { PermissionGroupConfig } from '@/lib/permission-groups/types'
|
|
||||||
import { getBlockOutputs } from '@/lib/workflows/blocks/block-outputs'
|
import { getBlockOutputs } from '@/lib/workflows/blocks/block-outputs'
|
||||||
import { extractAndPersistCustomTools } from '@/lib/workflows/persistence/custom-tools-persistence'
|
import { extractAndPersistCustomTools } from '@/lib/workflows/persistence/custom-tools-persistence'
|
||||||
import { loadWorkflowFromNormalizedTables } from '@/lib/workflows/persistence/utils'
|
import { loadWorkflowFromNormalizedTables } from '@/lib/workflows/persistence/utils'
|
||||||
@@ -15,6 +14,7 @@ import { buildCanonicalIndex, isCanonicalPair } from '@/lib/workflows/subblocks/
|
|||||||
import { TriggerUtils } from '@/lib/workflows/triggers/triggers'
|
import { TriggerUtils } from '@/lib/workflows/triggers/triggers'
|
||||||
import { getAllBlocks, getBlock } from '@/blocks/registry'
|
import { getAllBlocks, getBlock } from '@/blocks/registry'
|
||||||
import type { BlockConfig, SubBlockConfig } from '@/blocks/types'
|
import type { BlockConfig, SubBlockConfig } from '@/blocks/types'
|
||||||
|
import type { PermissionGroupConfig } from '@/ee/access-control/lib/types'
|
||||||
import { EDGE, normalizeName, RESERVED_BLOCK_NAMES } from '@/executor/constants'
|
import { EDGE, normalizeName, RESERVED_BLOCK_NAMES } from '@/executor/constants'
|
||||||
import { getUserPermissionConfig } from '@/executor/utils/permission-check'
|
import { getUserPermissionConfig } from '@/executor/utils/permission-check'
|
||||||
import { generateLoopBlocks, generateParallelBlocks } from '@/stores/workflows/workflow/utils'
|
import { generateLoopBlocks, generateParallelBlocks } from '@/stores/workflows/workflow/utils'
|
||||||
|
|||||||
Reference in New Issue
Block a user