improvement(helm): added SSO and cloud storage variables to helm charts (#2454)

* improvement(helm): added SSO and cloud storage variables to helm charts

* consolidated sf types
This commit is contained in:
Waleed
2025-12-18 13:12:21 -08:00
committed by GitHub
parent 04cd837e9c
commit f45730a89e
39 changed files with 727 additions and 909 deletions

View File

@@ -1,39 +1,13 @@
import { createLogger } from '@/lib/logs/console/logger'
import type {
SalesforceCreateAccountParams,
SalesforceCreateAccountResponse,
} from '@/tools/salesforce/types'
import { getInstanceUrl } from '@/tools/salesforce/utils'
import type { ToolConfig } from '@/tools/types'
const logger = createLogger('SalesforceCreateAccount')
export interface SalesforceCreateAccountParams {
accessToken: string
idToken?: string
instanceUrl?: string
name: string
type?: string
industry?: string
phone?: string
website?: string
billingStreet?: string
billingCity?: string
billingState?: string
billingPostalCode?: string
billingCountry?: string
description?: string
annualRevenue?: string
numberOfEmployees?: string
}
export interface SalesforceCreateAccountResponse {
success: boolean
output: {
id: string
success: boolean
created: boolean
metadata: {
operation: 'create_account'
}
}
}
export const salesforceCreateAccountTool: ToolConfig<
SalesforceCreateAccountParams,
SalesforceCreateAccountResponse

View File

@@ -1,30 +1,9 @@
import type {
SalesforceCreateCaseParams,
SalesforceCreateCaseResponse,
} from '@/tools/salesforce/types'
import { getInstanceUrl } from '@/tools/salesforce/utils'
import type { ToolConfig } from '@/tools/types'
import { getInstanceUrl } from './utils'
export interface SalesforceCreateCaseParams {
accessToken: string
idToken?: string
instanceUrl?: string
subject: string
status?: string
priority?: string
origin?: string
contactId?: string
accountId?: string
description?: string
}
export interface SalesforceCreateCaseResponse {
success: boolean
output: {
id: string
success: boolean
created: boolean
metadata: {
operation: 'create_case'
}
}
}
export const salesforceCreateCaseTool: ToolConfig<
SalesforceCreateCaseParams,

View File

@@ -1,38 +1,13 @@
import { createLogger } from '@/lib/logs/console/logger'
import type {
SalesforceCreateContactParams,
SalesforceCreateContactResponse,
} from '@/tools/salesforce/types'
import { getInstanceUrl } from '@/tools/salesforce/utils'
import type { ToolConfig } from '@/tools/types'
import { getInstanceUrl } from './utils'
const logger = createLogger('SalesforceContacts')
export interface SalesforceCreateContactParams {
accessToken: string
idToken?: string
instanceUrl?: string
lastName: string
firstName?: string
email?: string
phone?: string
accountId?: string
title?: string
department?: string
mailingStreet?: string
mailingCity?: string
mailingState?: string
mailingPostalCode?: string
mailingCountry?: string
description?: string
}
export interface SalesforceCreateContactResponse {
success: boolean
output: {
id: string
success: boolean
created: boolean
metadata: { operation: 'create_contact' }
}
}
export const salesforceCreateContactTool: ToolConfig<
SalesforceCreateContactParams,
SalesforceCreateContactResponse

View File

@@ -1,32 +1,9 @@
import type {
SalesforceCreateLeadParams,
SalesforceCreateLeadResponse,
} from '@/tools/salesforce/types'
import { getInstanceUrl } from '@/tools/salesforce/utils'
import type { ToolConfig } from '@/tools/types'
import { getInstanceUrl } from './utils'
export interface SalesforceCreateLeadParams {
accessToken: string
idToken?: string
instanceUrl?: string
lastName: string
company: string
firstName?: string
email?: string
phone?: string
status?: string
leadSource?: string
title?: string
description?: string
}
export interface SalesforceCreateLeadResponse {
success: boolean
output: {
id: string
success: boolean
created: boolean
metadata: {
operation: 'create_lead'
}
}
}
export const salesforceCreateLeadTool: ToolConfig<
SalesforceCreateLeadParams,

View File

@@ -1,30 +1,9 @@
import type {
SalesforceCreateOpportunityParams,
SalesforceCreateOpportunityResponse,
} from '@/tools/salesforce/types'
import { getInstanceUrl } from '@/tools/salesforce/utils'
import type { ToolConfig } from '@/tools/types'
import { getInstanceUrl } from './utils'
export interface SalesforceCreateOpportunityParams {
accessToken: string
idToken?: string
instanceUrl?: string
name: string
stageName: string
closeDate: string
accountId?: string
amount?: string
probability?: string
description?: string
}
export interface SalesforceCreateOpportunityResponse {
success: boolean
output: {
id: string
success: boolean
created: boolean
metadata: {
operation: 'create_opportunity'
}
}
}
export const salesforceCreateOpportunityTool: ToolConfig<
SalesforceCreateOpportunityParams,

View File

@@ -1,30 +1,9 @@
import type {
SalesforceCreateTaskParams,
SalesforceCreateTaskResponse,
} from '@/tools/salesforce/types'
import { getInstanceUrl } from '@/tools/salesforce/utils'
import type { ToolConfig } from '@/tools/types'
import { getInstanceUrl } from './utils'
export interface SalesforceCreateTaskParams {
accessToken: string
idToken?: string
instanceUrl?: string
subject: string
status?: string
priority?: string
activityDate?: string
whoId?: string
whatId?: string
description?: string
}
export interface SalesforceCreateTaskResponse {
success: boolean
output: {
id: string
success: boolean
created: boolean
metadata: {
operation: 'create_task'
}
}
}
export const salesforceCreateTaskTool: ToolConfig<
SalesforceCreateTaskParams,

View File

@@ -1,26 +1,13 @@
import { createLogger } from '@/lib/logs/console/logger'
import type {
SalesforceDeleteAccountParams,
SalesforceDeleteAccountResponse,
} from '@/tools/salesforce/types'
import { getInstanceUrl } from '@/tools/salesforce/utils'
import type { ToolConfig } from '@/tools/types'
const logger = createLogger('SalesforceDeleteAccount')
export interface SalesforceDeleteAccountParams {
accessToken: string
idToken?: string
instanceUrl?: string
accountId: string
}
export interface SalesforceDeleteAccountResponse {
success: boolean
output: {
id: string
deleted: boolean
metadata: {
operation: 'delete_account'
}
}
}
export const salesforceDeleteAccountTool: ToolConfig<
SalesforceDeleteAccountParams,
SalesforceDeleteAccountResponse

View File

@@ -1,23 +1,9 @@
import type {
SalesforceDeleteCaseParams,
SalesforceDeleteCaseResponse,
} from '@/tools/salesforce/types'
import { getInstanceUrl } from '@/tools/salesforce/utils'
import type { ToolConfig } from '@/tools/types'
import { getInstanceUrl } from './utils'
export interface SalesforceDeleteCaseParams {
accessToken: string
idToken?: string
instanceUrl?: string
caseId: string
}
export interface SalesforceDeleteCaseResponse {
success: boolean
output: {
id: string
deleted: boolean
metadata: {
operation: 'delete_case'
}
}
}
export const salesforceDeleteCaseTool: ToolConfig<
SalesforceDeleteCaseParams,

View File

@@ -1,25 +1,13 @@
import { createLogger } from '@/lib/logs/console/logger'
import type {
SalesforceDeleteContactParams,
SalesforceDeleteContactResponse,
} from '@/tools/salesforce/types'
import { getInstanceUrl } from '@/tools/salesforce/utils'
import type { ToolConfig } from '@/tools/types'
import { getInstanceUrl } from './utils'
const logger = createLogger('SalesforceContacts')
export interface SalesforceDeleteContactParams {
accessToken: string
idToken?: string
instanceUrl?: string
contactId: string
}
export interface SalesforceDeleteContactResponse {
success: boolean
output: {
id: string
deleted: boolean
metadata: { operation: 'delete_contact' }
}
}
export const salesforceDeleteContactTool: ToolConfig<
SalesforceDeleteContactParams,
SalesforceDeleteContactResponse

View File

@@ -1,23 +1,9 @@
import type {
SalesforceDeleteLeadParams,
SalesforceDeleteLeadResponse,
} from '@/tools/salesforce/types'
import { getInstanceUrl } from '@/tools/salesforce/utils'
import type { ToolConfig } from '@/tools/types'
import { getInstanceUrl } from './utils'
export interface SalesforceDeleteLeadParams {
accessToken: string
idToken?: string
instanceUrl?: string
leadId: string
}
export interface SalesforceDeleteLeadResponse {
success: boolean
output: {
id: string
deleted: boolean
metadata: {
operation: 'delete_lead'
}
}
}
export const salesforceDeleteLeadTool: ToolConfig<
SalesforceDeleteLeadParams,

View File

@@ -1,23 +1,9 @@
import type {
SalesforceDeleteOpportunityParams,
SalesforceDeleteOpportunityResponse,
} from '@/tools/salesforce/types'
import { getInstanceUrl } from '@/tools/salesforce/utils'
import type { ToolConfig } from '@/tools/types'
import { getInstanceUrl } from './utils'
export interface SalesforceDeleteOpportunityParams {
accessToken: string
idToken?: string
instanceUrl?: string
opportunityId: string
}
export interface SalesforceDeleteOpportunityResponse {
success: boolean
output: {
id: string
deleted: boolean
metadata: {
operation: 'delete_opportunity'
}
}
}
export const salesforceDeleteOpportunityTool: ToolConfig<
SalesforceDeleteOpportunityParams,

View File

@@ -1,23 +1,9 @@
import type {
SalesforceDeleteTaskParams,
SalesforceDeleteTaskResponse,
} from '@/tools/salesforce/types'
import { getInstanceUrl } from '@/tools/salesforce/utils'
import type { ToolConfig } from '@/tools/types'
import { getInstanceUrl } from './utils'
export interface SalesforceDeleteTaskParams {
accessToken: string
idToken?: string
instanceUrl?: string
taskId: string
}
export interface SalesforceDeleteTaskResponse {
success: boolean
output: {
id: string
deleted: boolean
metadata: {
operation: 'delete_task'
}
}
}
export const salesforceDeleteTaskTool: ToolConfig<
SalesforceDeleteTaskParams,

View File

@@ -1,38 +1,13 @@
import { createLogger } from '@/lib/logs/console/logger'
import type {
SalesforceDescribeObjectParams,
SalesforceDescribeObjectResponse,
} from '@/tools/salesforce/types'
import { extractErrorMessage, getInstanceUrl } from '@/tools/salesforce/utils'
import type { ToolConfig } from '@/tools/types'
import { extractErrorMessage, getInstanceUrl } from './utils'
const logger = createLogger('SalesforceQuery')
export interface SalesforceDescribeObjectParams {
accessToken: string
idToken?: string
instanceUrl?: string
objectName: string
}
export interface SalesforceDescribeObjectResponse {
success: boolean
output: {
objectName: string
label?: string
labelPlural?: string
fields?: any[]
keyPrefix?: string
queryable?: boolean
createable?: boolean
updateable?: boolean
deletable?: boolean
childRelationships?: any[]
recordTypeInfos?: any[]
metadata: {
operation: 'describe_object'
fieldCount: number
}
success: boolean
}
}
/**
* Describe a Salesforce object to get its metadata/fields
* Useful for discovering available fields for queries

View File

@@ -3,6 +3,7 @@ import type {
SalesforceGetAccountsParams,
SalesforceGetAccountsResponse,
} from '@/tools/salesforce/types'
import { getInstanceUrl } from '@/tools/salesforce/utils'
import type { ToolConfig } from '@/tools/types'
const logger = createLogger('SalesforceGetAccounts')

View File

@@ -1,34 +1,6 @@
import type { SalesforceGetCasesParams, SalesforceGetCasesResponse } from '@/tools/salesforce/types'
import { getInstanceUrl } from '@/tools/salesforce/utils'
import type { ToolConfig } from '@/tools/types'
import { getInstanceUrl } from './utils'
export interface SalesforceGetCasesParams {
accessToken: string
idToken?: string
instanceUrl?: string
caseId?: string
limit?: string
fields?: string
orderBy?: string
}
export interface SalesforceGetCasesResponse {
success: boolean
output: {
case?: any
cases?: any[]
paging?: {
nextRecordsUrl?: string
totalSize: number
done: boolean
}
metadata: {
operation: 'get_cases'
totalReturned?: number
hasMore?: boolean
}
success: boolean
}
}
export const salesforceGetCasesTool: ToolConfig<
SalesforceGetCasesParams,

View File

@@ -1,39 +1,13 @@
import { createLogger } from '@/lib/logs/console/logger'
import type {
SalesforceGetContactsParams,
SalesforceGetContactsResponse,
} from '@/tools/salesforce/types'
import { getInstanceUrl } from '@/tools/salesforce/utils'
import type { ToolConfig } from '@/tools/types'
import { getInstanceUrl } from './utils'
const logger = createLogger('SalesforceContacts')
export interface SalesforceGetContactsParams {
accessToken: string
idToken?: string
instanceUrl?: string
contactId?: string
limit?: string
fields?: string
orderBy?: string
}
export interface SalesforceGetContactsResponse {
success: boolean
output: {
contacts?: any[]
contact?: any
paging?: {
nextRecordsUrl?: string
totalSize: number
done: boolean
}
metadata: {
operation: 'get_contacts'
totalReturned?: number
hasMore?: boolean
singleContact?: boolean
}
success: boolean
}
}
export const salesforceGetContactsTool: ToolConfig<
SalesforceGetContactsParams,
SalesforceGetContactsResponse

View File

@@ -1,32 +1,13 @@
import { createLogger } from '@/lib/logs/console/logger'
import type {
SalesforceGetDashboardParams,
SalesforceGetDashboardResponse,
} from '@/tools/salesforce/types'
import { extractErrorMessage, getInstanceUrl } from '@/tools/salesforce/utils'
import type { ToolConfig } from '@/tools/types'
import { extractErrorMessage, getInstanceUrl } from './utils'
const logger = createLogger('SalesforceDashboards')
export interface SalesforceGetDashboardParams {
accessToken: string
idToken?: string
instanceUrl?: string
dashboardId: string
}
export interface SalesforceGetDashboardResponse {
success: boolean
output: {
dashboard: any
dashboardId: string
components: any[]
metadata: {
operation: 'get_dashboard'
dashboardName?: string
folderId?: string
runningUser?: any
}
success: boolean
}
}
/**
* Get details for a specific dashboard
* @see https://developer.salesforce.com/docs/atlas.en-us.api_analytics.meta/api_analytics/sforce_analytics_rest_api_dashboard_results.htm

View File

@@ -1,35 +1,6 @@
import type { SalesforceGetLeadsParams, SalesforceGetLeadsResponse } from '@/tools/salesforce/types'
import { getInstanceUrl } from '@/tools/salesforce/utils'
import type { ToolConfig } from '@/tools/types'
import { getInstanceUrl } from './utils'
export interface SalesforceGetLeadsParams {
accessToken: string
idToken?: string
instanceUrl?: string
leadId?: string
limit?: string
fields?: string
orderBy?: string
}
export interface SalesforceGetLeadsResponse {
success: boolean
output: {
lead?: any
leads?: any[]
paging?: {
nextRecordsUrl?: string
totalSize: number
done: boolean
}
metadata: {
operation: 'get_leads'
totalReturned?: number
hasMore?: boolean
singleLead?: boolean
}
success: boolean
}
}
export const salesforceGetLeadsTool: ToolConfig<
SalesforceGetLeadsParams,

View File

@@ -1,34 +1,9 @@
import type {
SalesforceGetOpportunitiesParams,
SalesforceGetOpportunitiesResponse,
} from '@/tools/salesforce/types'
import { getInstanceUrl } from '@/tools/salesforce/utils'
import type { ToolConfig } from '@/tools/types'
import { getInstanceUrl } from './utils'
export interface SalesforceGetOpportunitiesParams {
accessToken: string
idToken?: string
instanceUrl?: string
opportunityId?: string
limit?: string
fields?: string
orderBy?: string
}
export interface SalesforceGetOpportunitiesResponse {
success: boolean
output: {
opportunity?: any
opportunities?: any[]
paging?: {
nextRecordsUrl?: string
totalSize: number
done: boolean
}
metadata: {
operation: 'get_opportunities'
totalReturned?: number
hasMore?: boolean
}
success: boolean
}
}
export const salesforceGetOpportunitiesTool: ToolConfig<
SalesforceGetOpportunitiesParams,

View File

@@ -1,28 +1,13 @@
import { createLogger } from '@/lib/logs/console/logger'
import type {
SalesforceGetReportParams,
SalesforceGetReportResponse,
} from '@/tools/salesforce/types'
import { extractErrorMessage, getInstanceUrl } from '@/tools/salesforce/utils'
import type { ToolConfig } from '@/tools/types'
import { extractErrorMessage, getInstanceUrl } from './utils'
const logger = createLogger('SalesforceReports')
export interface SalesforceGetReportParams {
accessToken: string
idToken?: string
instanceUrl?: string
reportId: string
}
export interface SalesforceGetReportResponse {
success: boolean
output: {
report: any
reportId: string
metadata: {
operation: 'get_report'
}
success: boolean
}
}
/**
* Get metadata for a specific report
* @see https://developer.salesforce.com/docs/atlas.en-us.api_analytics.meta/api_analytics/sforce_analytics_rest_api_get_reportmetadata.htm

View File

@@ -1,34 +1,6 @@
import type { SalesforceGetTasksParams, SalesforceGetTasksResponse } from '@/tools/salesforce/types'
import { getInstanceUrl } from '@/tools/salesforce/utils'
import type { ToolConfig } from '@/tools/types'
import { getInstanceUrl } from './utils'
export interface SalesforceGetTasksParams {
accessToken: string
idToken?: string
instanceUrl?: string
taskId?: string
limit?: string
fields?: string
orderBy?: string
}
export interface SalesforceGetTasksResponse {
success: boolean
output: {
task?: any
tasks?: any[]
paging?: {
nextRecordsUrl?: string
totalSize: number
done: boolean
}
metadata: {
operation: 'get_tasks'
totalReturned?: number
hasMore?: boolean
}
success: boolean
}
}
export const salesforceGetTasksTool: ToolConfig<
SalesforceGetTasksParams,

View File

@@ -1,28 +1,13 @@
import { createLogger } from '@/lib/logs/console/logger'
import type {
SalesforceListDashboardsParams,
SalesforceListDashboardsResponse,
} from '@/tools/salesforce/types'
import { extractErrorMessage, getInstanceUrl } from '@/tools/salesforce/utils'
import type { ToolConfig } from '@/tools/types'
import { extractErrorMessage, getInstanceUrl } from './utils'
const logger = createLogger('SalesforceDashboards')
export interface SalesforceListDashboardsParams {
accessToken: string
idToken?: string
instanceUrl?: string
folderName?: string
}
export interface SalesforceListDashboardsResponse {
success: boolean
output: {
dashboards: any[]
metadata: {
operation: 'list_dashboards'
totalReturned: number
}
success: boolean
}
}
/**
* List all dashboards accessible by the current user
* @see https://developer.salesforce.com/docs/atlas.en-us.api_analytics.meta/api_analytics/sforce_analytics_rest_api_getbasic_dashboardlist.htm

View File

@@ -1,29 +1,13 @@
import { createLogger } from '@/lib/logs/console/logger'
import type {
SalesforceListObjectsParams,
SalesforceListObjectsResponse,
} from '@/tools/salesforce/types'
import { extractErrorMessage, getInstanceUrl } from '@/tools/salesforce/utils'
import type { ToolConfig } from '@/tools/types'
import { extractErrorMessage, getInstanceUrl } from './utils'
const logger = createLogger('SalesforceQuery')
export interface SalesforceListObjectsParams {
accessToken: string
idToken?: string
instanceUrl?: string
}
export interface SalesforceListObjectsResponse {
success: boolean
output: {
objects: any[]
encoding?: string
maxBatchSize?: number
metadata: {
operation: 'list_objects'
totalReturned: number
}
success: boolean
}
}
/**
* List all available Salesforce objects
* Useful for discovering what objects are available

View File

@@ -1,27 +1,13 @@
import { createLogger } from '@/lib/logs/console/logger'
import type {
SalesforceListReportTypesParams,
SalesforceListReportTypesResponse,
} from '@/tools/salesforce/types'
import { extractErrorMessage, getInstanceUrl } from '@/tools/salesforce/utils'
import type { ToolConfig } from '@/tools/types'
import { extractErrorMessage, getInstanceUrl } from './utils'
const logger = createLogger('SalesforceReports')
export interface SalesforceListReportTypesParams {
accessToken: string
idToken?: string
instanceUrl?: string
}
export interface SalesforceListReportTypesResponse {
success: boolean
output: {
reportTypes: any[]
metadata: {
operation: 'list_report_types'
totalReturned: number
}
success: boolean
}
}
/**
* Get list of available report types
* @see https://developer.salesforce.com/docs/atlas.en-us.api_analytics.meta/api_analytics/sforce_analytics_rest_api_list_reporttypes.htm

View File

@@ -1,29 +1,13 @@
import { createLogger } from '@/lib/logs/console/logger'
import type {
SalesforceListReportsParams,
SalesforceListReportsResponse,
} from '@/tools/salesforce/types'
import { extractErrorMessage, getInstanceUrl } from '@/tools/salesforce/utils'
import type { ToolConfig } from '@/tools/types'
import { extractErrorMessage, getInstanceUrl } from './utils'
const logger = createLogger('SalesforceReports')
export interface SalesforceListReportsParams {
accessToken: string
idToken?: string
instanceUrl?: string
folderName?: string
searchTerm?: string
}
export interface SalesforceListReportsResponse {
success: boolean
output: {
reports: any[]
metadata: {
operation: 'list_reports'
totalReturned: number
}
success: boolean
}
}
/**
* List all reports accessible by the current user
* @see https://developer.salesforce.com/docs/atlas.en-us.api_analytics.meta/api_analytics/sforce_analytics_rest_api_get_reportlist.htm

View File

@@ -1,33 +1,10 @@
import { createLogger } from '@/lib/logs/console/logger'
import type { SalesforceQueryParams, SalesforceQueryResponse } from '@/tools/salesforce/types'
import { extractErrorMessage, getInstanceUrl } from '@/tools/salesforce/utils'
import type { ToolConfig } from '@/tools/types'
import { extractErrorMessage, getInstanceUrl } from './utils'
const logger = createLogger('SalesforceQuery')
export interface SalesforceQueryParams {
accessToken: string
idToken?: string
instanceUrl?: string
query: string
}
export interface SalesforceQueryResponse {
success: boolean
output: {
records: any[]
totalSize: number
done: boolean
nextRecordsUrl?: string
query: string
metadata: {
operation: 'query'
totalReturned: number
hasMore: boolean
}
success: boolean
}
}
/**
* Execute a custom SOQL query
* @see https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/dome_query.htm

View File

@@ -1,32 +1,13 @@
import { createLogger } from '@/lib/logs/console/logger'
import type {
SalesforceQueryMoreParams,
SalesforceQueryMoreResponse,
} from '@/tools/salesforce/types'
import { extractErrorMessage, getInstanceUrl } from '@/tools/salesforce/utils'
import type { ToolConfig } from '@/tools/types'
import { extractErrorMessage, getInstanceUrl } from './utils'
const logger = createLogger('SalesforceQuery')
export interface SalesforceQueryMoreParams {
accessToken: string
idToken?: string
instanceUrl?: string
nextRecordsUrl: string
}
export interface SalesforceQueryMoreResponse {
success: boolean
output: {
records: any[]
totalSize: number
done: boolean
nextRecordsUrl?: string
metadata: {
operation: 'query_more'
totalReturned: number
hasMore: boolean
}
success: boolean
}
}
/**
* Retrieve additional query results using the nextRecordsUrl
* @see https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/dome_query.htm

View File

@@ -1,32 +1,13 @@
import { createLogger } from '@/lib/logs/console/logger'
import type {
SalesforceRefreshDashboardParams,
SalesforceRefreshDashboardResponse,
} from '@/tools/salesforce/types'
import { extractErrorMessage, getInstanceUrl } from '@/tools/salesforce/utils'
import type { ToolConfig } from '@/tools/types'
import { extractErrorMessage, getInstanceUrl } from './utils'
const logger = createLogger('SalesforceDashboards')
export interface SalesforceRefreshDashboardParams {
accessToken: string
idToken?: string
instanceUrl?: string
dashboardId: string
}
export interface SalesforceRefreshDashboardResponse {
success: boolean
output: {
dashboard: any
dashboardId: string
components: any[]
status?: any
metadata: {
operation: 'refresh_dashboard'
dashboardName?: string
refreshDate?: string
}
success: boolean
}
}
/**
* Refresh a dashboard to get latest data
* @see https://developer.salesforce.com/docs/atlas.en-us.api_analytics.meta/api_analytics/sforce_analytics_rest_api_refresh_dashboard.htm

View File

@@ -1,38 +1,13 @@
import { createLogger } from '@/lib/logs/console/logger'
import type {
SalesforceRunReportParams,
SalesforceRunReportResponse,
} from '@/tools/salesforce/types'
import { extractErrorMessage, getInstanceUrl } from '@/tools/salesforce/utils'
import type { ToolConfig } from '@/tools/types'
import { extractErrorMessage, getInstanceUrl } from './utils'
const logger = createLogger('SalesforceReports')
export interface SalesforceRunReportParams {
accessToken: string
idToken?: string
instanceUrl?: string
reportId: string
includeDetails?: string
filters?: string
}
export interface SalesforceRunReportResponse {
success: boolean
output: {
reportId: string
reportMetadata?: any
reportExtendedMetadata?: any
factMap?: any
groupingsDown?: any
groupingsAcross?: any
hasDetailRows?: boolean
allData?: boolean
metadata: {
operation: 'run_report'
reportName?: string
reportFormat?: string
}
success: boolean
}
}
/**
* Run a report and return the results
* @see https://developer.salesforce.com/docs/atlas.en-us.api_analytics.meta/api_analytics/sforce_analytics_rest_api_get_reportdata.htm

View File

@@ -1,6 +1,23 @@
import type { ToolResponse } from '@/tools/types'
// Common Salesforce types
/**
* Base parameters shared by all Salesforce operations
*/
export interface BaseSalesforceParams {
accessToken: string
idToken?: string
instanceUrl?: string
}
/**
* Common paging structure for list operations
*/
export interface SalesforcePaging {
nextRecordsUrl?: string
totalSize: number
done: boolean
}
export interface SalesforceAccount {
Id: string
Name: string
@@ -22,13 +39,12 @@ export interface SalesforceAccount {
[key: string]: any
}
export interface SalesforcePaging {
nextRecordsUrl?: string
totalSize: number
done: boolean
export interface SalesforceGetAccountsParams extends BaseSalesforceParams {
limit?: string
fields?: string
orderBy?: string
}
// Get Accounts
export interface SalesforceGetAccountsResponse extends ToolResponse {
output: {
accounts: SalesforceAccount[]
@@ -42,16 +58,22 @@ export interface SalesforceGetAccountsResponse extends ToolResponse {
}
}
export interface SalesforceGetAccountsParams {
accessToken: string
idToken?: string
instanceUrl?: string
limit?: string
fields?: string
orderBy?: string
export interface SalesforceCreateAccountParams extends BaseSalesforceParams {
name: string
type?: string
industry?: string
phone?: string
website?: string
billingStreet?: string
billingCity?: string
billingState?: string
billingPostalCode?: string
billingCountry?: string
description?: string
annualRevenue?: string
numberOfEmployees?: string
}
// Create Account
export interface SalesforceCreateAccountResponse {
success: boolean
output: {
@@ -64,7 +86,23 @@ export interface SalesforceCreateAccountResponse {
}
}
// Update Account
export interface SalesforceUpdateAccountParams extends BaseSalesforceParams {
accountId: string
name?: string
type?: string
industry?: string
phone?: string
website?: string
billingStreet?: string
billingCity?: string
billingState?: string
billingPostalCode?: string
billingCountry?: string
description?: string
annualRevenue?: string
numberOfEmployees?: string
}
export interface SalesforceUpdateAccountResponse {
success: boolean
output: {
@@ -76,7 +114,10 @@ export interface SalesforceUpdateAccountResponse {
}
}
// Delete Account
export interface SalesforceDeleteAccountParams extends BaseSalesforceParams {
accountId: string
}
export interface SalesforceDeleteAccountResponse {
success: boolean
output: {
@@ -88,17 +129,19 @@ export interface SalesforceDeleteAccountResponse {
}
}
// Contact types
export interface SalesforceGetContactsParams extends BaseSalesforceParams {
contactId?: string
limit?: string
fields?: string
orderBy?: string
}
export interface SalesforceGetContactsResponse {
success: boolean
output: {
contacts?: any[]
contact?: any
paging?: {
nextRecordsUrl?: string
totalSize: number
done: boolean
}
paging?: SalesforcePaging
metadata: {
operation: 'get_contacts'
totalReturned?: number
@@ -109,6 +152,22 @@ export interface SalesforceGetContactsResponse {
}
}
export interface SalesforceCreateContactParams extends BaseSalesforceParams {
lastName: string
firstName?: string
email?: string
phone?: string
accountId?: string
title?: string
department?: string
mailingStreet?: string
mailingCity?: string
mailingState?: string
mailingPostalCode?: string
mailingCountry?: string
description?: string
}
export interface SalesforceCreateContactResponse {
success: boolean
output: {
@@ -119,6 +178,23 @@ export interface SalesforceCreateContactResponse {
}
}
export interface SalesforceUpdateContactParams extends BaseSalesforceParams {
contactId: string
lastName?: string
firstName?: string
email?: string
phone?: string
accountId?: string
title?: string
department?: string
mailingStreet?: string
mailingCity?: string
mailingState?: string
mailingPostalCode?: string
mailingCountry?: string
description?: string
}
export interface SalesforceUpdateContactResponse {
success: boolean
output: {
@@ -128,6 +204,10 @@ export interface SalesforceUpdateContactResponse {
}
}
export interface SalesforceDeleteContactParams extends BaseSalesforceParams {
contactId: string
}
export interface SalesforceDeleteContactResponse {
success: boolean
output: {
@@ -137,7 +217,335 @@ export interface SalesforceDeleteContactResponse {
}
}
// Report types
export interface SalesforceGetLeadsParams extends BaseSalesforceParams {
leadId?: string
limit?: string
fields?: string
orderBy?: string
}
export interface SalesforceGetLeadsResponse {
success: boolean
output: {
lead?: any
leads?: any[]
paging?: SalesforcePaging
metadata: {
operation: 'get_leads'
totalReturned?: number
hasMore?: boolean
singleLead?: boolean
}
success: boolean
}
}
export interface SalesforceCreateLeadParams extends BaseSalesforceParams {
lastName: string
company: string
firstName?: string
email?: string
phone?: string
status?: string
leadSource?: string
title?: string
description?: string
}
export interface SalesforceCreateLeadResponse {
success: boolean
output: {
id: string
success: boolean
created: boolean
metadata: {
operation: 'create_lead'
}
}
}
export interface SalesforceUpdateLeadParams extends BaseSalesforceParams {
leadId: string
lastName?: string
company?: string
firstName?: string
email?: string
phone?: string
status?: string
leadSource?: string
title?: string
description?: string
}
export interface SalesforceUpdateLeadResponse {
success: boolean
output: {
id: string
updated: boolean
metadata: {
operation: 'update_lead'
}
}
}
export interface SalesforceDeleteLeadParams extends BaseSalesforceParams {
leadId: string
}
export interface SalesforceDeleteLeadResponse {
success: boolean
output: {
id: string
deleted: boolean
metadata: {
operation: 'delete_lead'
}
}
}
export interface SalesforceGetOpportunitiesParams extends BaseSalesforceParams {
opportunityId?: string
limit?: string
fields?: string
orderBy?: string
}
export interface SalesforceGetOpportunitiesResponse {
success: boolean
output: {
opportunity?: any
opportunities?: any[]
paging?: SalesforcePaging
metadata: {
operation: 'get_opportunities'
totalReturned?: number
hasMore?: boolean
}
success: boolean
}
}
export interface SalesforceCreateOpportunityParams extends BaseSalesforceParams {
name: string
stageName: string
closeDate: string
accountId?: string
amount?: string
probability?: string
description?: string
}
export interface SalesforceCreateOpportunityResponse {
success: boolean
output: {
id: string
success: boolean
created: boolean
metadata: {
operation: 'create_opportunity'
}
}
}
export interface SalesforceUpdateOpportunityParams extends BaseSalesforceParams {
opportunityId: string
name?: string
stageName?: string
closeDate?: string
accountId?: string
amount?: string
probability?: string
description?: string
}
export interface SalesforceUpdateOpportunityResponse {
success: boolean
output: {
id: string
updated: boolean
metadata: {
operation: 'update_opportunity'
}
}
}
export interface SalesforceDeleteOpportunityParams extends BaseSalesforceParams {
opportunityId: string
}
export interface SalesforceDeleteOpportunityResponse {
success: boolean
output: {
id: string
deleted: boolean
metadata: {
operation: 'delete_opportunity'
}
}
}
export interface SalesforceGetCasesParams extends BaseSalesforceParams {
caseId?: string
limit?: string
fields?: string
orderBy?: string
}
export interface SalesforceGetCasesResponse {
success: boolean
output: {
case?: any
cases?: any[]
paging?: SalesforcePaging
metadata: {
operation: 'get_cases'
totalReturned?: number
hasMore?: boolean
}
success: boolean
}
}
export interface SalesforceCreateCaseParams extends BaseSalesforceParams {
subject: string
status?: string
priority?: string
origin?: string
contactId?: string
accountId?: string
description?: string
}
export interface SalesforceCreateCaseResponse {
success: boolean
output: {
id: string
success: boolean
created: boolean
metadata: {
operation: 'create_case'
}
}
}
export interface SalesforceUpdateCaseParams extends BaseSalesforceParams {
caseId: string
subject?: string
status?: string
priority?: string
description?: string
}
export interface SalesforceUpdateCaseResponse {
success: boolean
output: {
id: string
updated: boolean
metadata: {
operation: 'update_case'
}
}
}
export interface SalesforceDeleteCaseParams extends BaseSalesforceParams {
caseId: string
}
export interface SalesforceDeleteCaseResponse {
success: boolean
output: {
id: string
deleted: boolean
metadata: {
operation: 'delete_case'
}
}
}
export interface SalesforceGetTasksParams extends BaseSalesforceParams {
taskId?: string
limit?: string
fields?: string
orderBy?: string
}
export interface SalesforceGetTasksResponse {
success: boolean
output: {
task?: any
tasks?: any[]
paging?: SalesforcePaging
metadata: {
operation: 'get_tasks'
totalReturned?: number
hasMore?: boolean
}
success: boolean
}
}
export interface SalesforceCreateTaskParams extends BaseSalesforceParams {
subject: string
status?: string
priority?: string
activityDate?: string
whoId?: string
whatId?: string
description?: string
}
export interface SalesforceCreateTaskResponse {
success: boolean
output: {
id: string
success: boolean
created: boolean
metadata: {
operation: 'create_task'
}
}
}
export interface SalesforceUpdateTaskParams extends BaseSalesforceParams {
taskId: string
subject?: string
status?: string
priority?: string
activityDate?: string
description?: string
}
export interface SalesforceUpdateTaskResponse {
success: boolean
output: {
id: string
updated: boolean
metadata: {
operation: 'update_task'
}
}
}
export interface SalesforceDeleteTaskParams extends BaseSalesforceParams {
taskId: string
}
export interface SalesforceDeleteTaskResponse {
success: boolean
output: {
id: string
deleted: boolean
metadata: {
operation: 'delete_task'
}
}
}
export interface SalesforceListReportsParams extends BaseSalesforceParams {
folderName?: string
searchTerm?: string
}
export interface SalesforceListReportsResponse {
success: boolean
output: {
@@ -150,6 +558,10 @@ export interface SalesforceListReportsResponse {
}
}
export interface SalesforceGetReportParams extends BaseSalesforceParams {
reportId: string
}
export interface SalesforceGetReportResponse {
success: boolean
output: {
@@ -162,26 +574,34 @@ export interface SalesforceGetReportResponse {
}
}
export interface SalesforceRunReportParams extends BaseSalesforceParams {
reportId: string
includeDetails?: string
filters?: string
}
export interface SalesforceRunReportResponse {
success: boolean
output: {
reportId: string
reportMetadata: any
reportExtendedMetadata: any
factMap: any
groupingsDown: any
groupingsAcross: any
hasDetailRows: boolean
allData: boolean
reportMetadata?: any
reportExtendedMetadata?: any
factMap?: any
groupingsDown?: any
groupingsAcross?: any
hasDetailRows?: boolean
allData?: boolean
metadata: {
operation: 'run_report'
reportName: string
reportFormat: string
reportName?: string
reportFormat?: string
}
success: boolean
}
}
export interface SalesforceListReportTypesParams extends BaseSalesforceParams {}
export interface SalesforceListReportTypesResponse {
success: boolean
output: {
@@ -194,7 +614,10 @@ export interface SalesforceListReportTypesResponse {
}
}
// Dashboard types
export interface SalesforceListDashboardsParams extends BaseSalesforceParams {
folderName?: string
}
export interface SalesforceListDashboardsResponse {
success: boolean
output: {
@@ -207,6 +630,10 @@ export interface SalesforceListDashboardsResponse {
}
}
export interface SalesforceGetDashboardParams extends BaseSalesforceParams {
dashboardId: string
}
export interface SalesforceGetDashboardResponse {
success: boolean
output: {
@@ -215,31 +642,38 @@ export interface SalesforceGetDashboardResponse {
components: any[]
metadata: {
operation: 'get_dashboard'
dashboardName: string
folderId: string
runningUser: any
dashboardName?: string
folderId?: string
runningUser?: any
}
success: boolean
}
}
export interface SalesforceRefreshDashboardParams extends BaseSalesforceParams {
dashboardId: string
}
export interface SalesforceRefreshDashboardResponse {
success: boolean
output: {
dashboard: any
dashboardId: string
components: any[]
status: any
status?: any
metadata: {
operation: 'refresh_dashboard'
dashboardName: string
refreshDate: string
dashboardName?: string
refreshDate?: string
}
success: boolean
}
}
// Query types
export interface SalesforceQueryParams extends BaseSalesforceParams {
query: string
}
export interface SalesforceQueryResponse {
success: boolean
output: {
@@ -257,6 +691,10 @@ export interface SalesforceQueryResponse {
}
}
export interface SalesforceQueryMoreParams extends BaseSalesforceParams {
nextRecordsUrl: string
}
export interface SalesforceQueryMoreResponse {
success: boolean
output: {
@@ -273,20 +711,24 @@ export interface SalesforceQueryMoreResponse {
}
}
export interface SalesforceDescribeObjectParams extends BaseSalesforceParams {
objectName: string
}
export interface SalesforceDescribeObjectResponse {
success: boolean
output: {
objectName: string
label: string
labelPlural: string
fields: any[]
keyPrefix: string
queryable: boolean
createable: boolean
updateable: boolean
deletable: boolean
childRelationships: any[]
recordTypeInfos: any[]
label?: string
labelPlural?: string
fields?: any[]
keyPrefix?: string
queryable?: boolean
createable?: boolean
updateable?: boolean
deletable?: boolean
childRelationships?: any[]
recordTypeInfos?: any[]
metadata: {
operation: 'describe_object'
fieldCount: number
@@ -295,12 +737,14 @@ export interface SalesforceDescribeObjectResponse {
}
}
export interface SalesforceListObjectsParams extends BaseSalesforceParams {}
export interface SalesforceListObjectsResponse {
success: boolean
output: {
objects: any[]
encoding: string
maxBatchSize: number
encoding?: string
maxBatchSize?: number
metadata: {
operation: 'list_objects'
totalReturned: number
@@ -309,7 +753,6 @@ export interface SalesforceListObjectsResponse {
}
}
// Generic Salesforce response type for the block
export type SalesforceResponse =
| SalesforceGetAccountsResponse
| SalesforceCreateAccountResponse
@@ -319,6 +762,22 @@ export type SalesforceResponse =
| SalesforceCreateContactResponse
| SalesforceUpdateContactResponse
| SalesforceDeleteContactResponse
| SalesforceGetLeadsResponse
| SalesforceCreateLeadResponse
| SalesforceUpdateLeadResponse
| SalesforceDeleteLeadResponse
| SalesforceGetOpportunitiesResponse
| SalesforceCreateOpportunityResponse
| SalesforceUpdateOpportunityResponse
| SalesforceDeleteOpportunityResponse
| SalesforceGetCasesResponse
| SalesforceCreateCaseResponse
| SalesforceUpdateCaseResponse
| SalesforceDeleteCaseResponse
| SalesforceGetTasksResponse
| SalesforceCreateTaskResponse
| SalesforceUpdateTaskResponse
| SalesforceDeleteTaskResponse
| SalesforceListReportsResponse
| SalesforceGetReportResponse
| SalesforceRunReportResponse
@@ -330,4 +789,3 @@ export type SalesforceResponse =
| SalesforceQueryMoreResponse
| SalesforceDescribeObjectResponse
| SalesforceListObjectsResponse
| { success: boolean; output: any } // Generic for leads, opportunities, cases, tasks

View File

@@ -1,39 +1,13 @@
import { createLogger } from '@/lib/logs/console/logger'
import type {
SalesforceUpdateAccountParams,
SalesforceUpdateAccountResponse,
} from '@/tools/salesforce/types'
import { getInstanceUrl } from '@/tools/salesforce/utils'
import type { ToolConfig } from '@/tools/types'
const logger = createLogger('SalesforceUpdateAccount')
export interface SalesforceUpdateAccountParams {
accessToken: string
idToken?: string
instanceUrl?: string
accountId: string
name?: string
type?: string
industry?: string
phone?: string
website?: string
billingStreet?: string
billingCity?: string
billingState?: string
billingPostalCode?: string
billingCountry?: string
description?: string
annualRevenue?: string
numberOfEmployees?: string
}
export interface SalesforceUpdateAccountResponse {
success: boolean
output: {
id: string
updated: boolean
metadata: {
operation: 'update_account'
}
}
}
export const salesforceUpdateAccountTool: ToolConfig<
SalesforceUpdateAccountParams,
SalesforceUpdateAccountResponse

View File

@@ -1,27 +1,9 @@
import type {
SalesforceUpdateCaseParams,
SalesforceUpdateCaseResponse,
} from '@/tools/salesforce/types'
import { getInstanceUrl } from '@/tools/salesforce/utils'
import type { ToolConfig } from '@/tools/types'
import { getInstanceUrl } from './utils'
export interface SalesforceUpdateCaseParams {
accessToken: string
idToken?: string
instanceUrl?: string
caseId: string
subject?: string
status?: string
priority?: string
description?: string
}
export interface SalesforceUpdateCaseResponse {
success: boolean
output: {
id: string
updated: boolean
metadata: {
operation: 'update_case'
}
}
}
export const salesforceUpdateCaseTool: ToolConfig<
SalesforceUpdateCaseParams,

View File

@@ -1,38 +1,13 @@
import { createLogger } from '@/lib/logs/console/logger'
import type {
SalesforceUpdateContactParams,
SalesforceUpdateContactResponse,
} from '@/tools/salesforce/types'
import { getInstanceUrl } from '@/tools/salesforce/utils'
import type { ToolConfig } from '@/tools/types'
import { getInstanceUrl } from './utils'
const logger = createLogger('SalesforceContacts')
export interface SalesforceUpdateContactParams {
accessToken: string
idToken?: string
instanceUrl?: string
contactId: string
lastName?: string
firstName?: string
email?: string
phone?: string
accountId?: string
title?: string
department?: string
mailingStreet?: string
mailingCity?: string
mailingState?: string
mailingPostalCode?: string
mailingCountry?: string
description?: string
}
export interface SalesforceUpdateContactResponse {
success: boolean
output: {
id: string
updated: boolean
metadata: { operation: 'update_contact' }
}
}
export const salesforceUpdateContactTool: ToolConfig<
SalesforceUpdateContactParams,
SalesforceUpdateContactResponse

View File

@@ -1,32 +1,9 @@
import type {
SalesforceUpdateLeadParams,
SalesforceUpdateLeadResponse,
} from '@/tools/salesforce/types'
import { getInstanceUrl } from '@/tools/salesforce/utils'
import type { ToolConfig } from '@/tools/types'
import { getInstanceUrl } from './utils'
export interface SalesforceUpdateLeadParams {
accessToken: string
idToken?: string
instanceUrl?: string
leadId: string
lastName?: string
company?: string
firstName?: string
email?: string
phone?: string
status?: string
leadSource?: string
title?: string
description?: string
}
export interface SalesforceUpdateLeadResponse {
success: boolean
output: {
id: string
updated: boolean
metadata: {
operation: 'update_lead'
}
}
}
export const salesforceUpdateLeadTool: ToolConfig<
SalesforceUpdateLeadParams,

View File

@@ -1,30 +1,9 @@
import type {
SalesforceUpdateOpportunityParams,
SalesforceUpdateOpportunityResponse,
} from '@/tools/salesforce/types'
import { getInstanceUrl } from '@/tools/salesforce/utils'
import type { ToolConfig } from '@/tools/types'
import { getInstanceUrl } from './utils'
export interface SalesforceUpdateOpportunityParams {
accessToken: string
idToken?: string
instanceUrl?: string
opportunityId: string
name?: string
stageName?: string
closeDate?: string
accountId?: string
amount?: string
probability?: string
description?: string
}
export interface SalesforceUpdateOpportunityResponse {
success: boolean
output: {
id: string
updated: boolean
metadata: {
operation: 'update_opportunity'
}
}
}
export const salesforceUpdateOpportunityTool: ToolConfig<
SalesforceUpdateOpportunityParams,

View File

@@ -1,28 +1,9 @@
import type {
SalesforceUpdateTaskParams,
SalesforceUpdateTaskResponse,
} from '@/tools/salesforce/types'
import { getInstanceUrl } from '@/tools/salesforce/utils'
import type { ToolConfig } from '@/tools/types'
import { getInstanceUrl } from './utils'
export interface SalesforceUpdateTaskParams {
accessToken: string
idToken?: string
instanceUrl?: string
taskId: string
subject?: string
status?: string
priority?: string
activityDate?: string
description?: string
}
export interface SalesforceUpdateTaskResponse {
success: boolean
output: {
id: string
updated: boolean
metadata: {
operation: 'update_task'
}
}
}
export const salesforceUpdateTaskTool: ToolConfig<
SalesforceUpdateTaskParams,

View File

@@ -44,9 +44,18 @@ app:
NODE_ENV: "production"
NEXT_TELEMETRY_DISABLED: "1"
# AWS-specific environment variables
# AWS S3 Cloud Storage Configuration (RECOMMENDED for production)
# Create S3 buckets in your AWS account and configure IAM permissions
AWS_REGION: "us-west-2"
AWS_ACCESS_KEY_ID: "" # AWS access key (or use IRSA for EKS)
AWS_SECRET_ACCESS_KEY: "" # AWS secret key (or use IRSA for EKS)
S3_BUCKET_NAME: "workspace-files" # Workspace files
S3_KB_BUCKET_NAME: "knowledge-base" # Knowledge base documents
S3_EXECUTION_FILES_BUCKET_NAME: "execution-files" # Workflow execution outputs
S3_CHAT_BUCKET_NAME: "chat-files" # Deployed chat assets
S3_COPILOT_BUCKET_NAME: "copilot-files" # Copilot attachments
S3_PROFILE_PICTURES_BUCKET_NAME: "profile-pictures" # User avatars
# Realtime service
realtime:

View File

@@ -42,10 +42,23 @@ app:
# Optional: API Key Encryption (RECOMMENDED for production)
# Generate 64-character hex string using: openssl rand -hex 32
API_ENCRYPTION_KEY: "your-64-char-hex-api-encryption-key-here" # Optional but recommended
NODE_ENV: "production"
NEXT_TELEMETRY_DISABLED: "1"
# Azure Blob Storage Configuration (RECOMMENDED for production)
# Create a storage account and containers in your Azure subscription
AZURE_ACCOUNT_NAME: "simstudiostorageacct" # Azure storage account name
AZURE_ACCOUNT_KEY: "" # Storage account access key
# Or use connection string instead of account name/key:
# AZURE_CONNECTION_STRING: "DefaultEndpointsProtocol=https;AccountName=...;AccountKey=...;EndpointSuffix=core.windows.net"
AZURE_STORAGE_CONTAINER_NAME: "workspace-files" # Workspace files container
AZURE_STORAGE_KB_CONTAINER_NAME: "knowledge-base" # Knowledge base documents container
AZURE_STORAGE_EXECUTION_FILES_CONTAINER_NAME: "execution-files" # Workflow execution outputs
AZURE_STORAGE_CHAT_CONTAINER_NAME: "chat-files" # Deployed chat assets container
AZURE_STORAGE_COPILOT_CONTAINER_NAME: "copilot-files" # Copilot attachments container
AZURE_STORAGE_PROFILE_PICTURES_CONTAINER_NAME: "profile-pictures" # User avatars container
# Realtime service
realtime:
enabled: true

View File

@@ -116,8 +116,37 @@ app:
# Access Control (leave empty if not restricting login)
ALLOWED_LOGIN_EMAILS: "" # Comma-separated list of allowed email addresses for login
ALLOWED_LOGIN_DOMAINS: "" # Comma-separated list of allowed email domains for login
# SSO Configuration (Enterprise Single Sign-On)
# Set to "true" AFTER running the SSO registration script
SSO_ENABLED: "" # Enable SSO authentication ("true" to enable)
NEXT_PUBLIC_SSO_ENABLED: "" # Show SSO login button in UI ("true" to enable)
# AWS S3 Cloud Storage Configuration (optional - for file storage)
# If configured, files will be stored in S3 instead of local storage
AWS_REGION: "" # AWS region (e.g., "us-east-1")
AWS_ACCESS_KEY_ID: "" # AWS access key ID
AWS_SECRET_ACCESS_KEY: "" # AWS secret access key
S3_BUCKET_NAME: "" # S3 bucket for workspace files
S3_KB_BUCKET_NAME: "" # S3 bucket for knowledge base files
S3_EXECUTION_FILES_BUCKET_NAME: "" # S3 bucket for workflow execution files
S3_CHAT_BUCKET_NAME: "" # S3 bucket for deployed chat files
S3_COPILOT_BUCKET_NAME: "" # S3 bucket for copilot files
S3_PROFILE_PICTURES_BUCKET_NAME: "" # S3 bucket for user profile pictures
# Azure Blob Storage Configuration (optional - for file storage)
# If configured, files will be stored in Azure Blob instead of local storage
# Note: Azure Blob takes precedence over S3 if both are configured
AZURE_ACCOUNT_NAME: "" # Azure storage account name
AZURE_ACCOUNT_KEY: "" # Azure storage account key
AZURE_CONNECTION_STRING: "" # Azure connection string (alternative to account name/key)
AZURE_STORAGE_CONTAINER_NAME: "" # Azure container for workspace files
AZURE_STORAGE_KB_CONTAINER_NAME: "" # Azure container for knowledge base files
AZURE_STORAGE_EXECUTION_FILES_CONTAINER_NAME: "" # Azure container for workflow execution files
AZURE_STORAGE_CHAT_CONTAINER_NAME: "" # Azure container for deployed chat files
AZURE_STORAGE_COPILOT_CONTAINER_NAME: "" # Azure container for copilot files
AZURE_STORAGE_PROFILE_PICTURES_CONTAINER_NAME: "" # Azure container for user profile pictures
# Service configuration
service:
type: ClusterIP