Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

UBERF-9015: Remove confusing SYSTEM_EMAIL env #7548

Merged
merged 1 commit into from
Dec 25, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 0 additions & 3 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
Expand Up @@ -441,7 +441,6 @@
"CLIENT_SECRET": "${env:POD_GITHUB_CLIENT_SECRET}",
"PRIVATE_KEY": "${env:POD_GITHUB_PRIVATE_KEY}",
"COLLABORATOR_URL": "ws://localhost:3078",
"SYSTEM_EMAIL": "[email protected]",
"MINIO_ENDPOINT": "localhost",
"MINIO_ACCESS_KEY": "minioadmin",
"MINIO_SECRET_KEY": "minioadmin",
Expand All @@ -463,7 +462,6 @@
"args": ["src/index.ts"],
"env": {
"ACCOUNTS_URL": "http://localhost:3000",
"SYSTEM_EMAIL": "[email protected]",
"SECRET": "secret",
"DOCS_RELEASE_INTERVAL": "10000",
"DOCS_IN_REVIEW_CHECK_INTERVAL": "10000",
Expand Down Expand Up @@ -523,7 +521,6 @@
"MINIO_ACCESS_KEY": "minioadmin",
"MINIO_SECRET_KEY": "minioadmin",
"SERVICE_ID": "sign-service",
"SYSTEM_EMAIL": "",
"ACCOUNTS_URL": "http://localhost:3000",
"BRANDING_PATH": "${workspaceRoot}/services/sign/pod-sign/debug/branding.json"
},
Expand Down
3 changes: 1 addition & 2 deletions server/account/src/operations.ts
Original file line number Diff line number Diff line change
Expand Up @@ -761,8 +761,7 @@ export async function createAcc (
const salt = randomBytes(32)
const hash = password !== null ? hashWithSalt(password, salt) : null

const systemEmails = [systemAccountEmail]
if (systemEmails.includes(email)) {
if (systemAccountEmail === email) {
ctx.error('system email used for account', { email })
throw new PlatformError(new Status(Severity.ERROR, platform.status.AccountAlreadyExists, { account: email }))
}
Expand Down
3 changes: 0 additions & 3 deletions services/calendar/pod-calendar/src/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@ interface Config {
Secret: string
Credentials: string
WATCH_URL: string
SystemEmail: string
InitLimit: number
}

Expand All @@ -37,7 +36,6 @@ const envMap: { [key in keyof Config]: string } = {
ServiceID: 'SERVICE_ID',
Secret: 'SECRET',
Credentials: 'Credentials',
SystemEmail: 'SYSTEM_EMAIL',
WATCH_URL: 'WATCH_URL',
InitLimit: 'INIT_LIMIT'
}
Expand All @@ -52,7 +50,6 @@ const config: Config = (() => {
AccountsURL: process.env[envMap.AccountsURL],
ServiceID: process.env[envMap.ServiceID] ?? 'calendar-service',
Secret: process.env[envMap.Secret],
SystemEmail: process.env[envMap.SystemEmail] ?? '[email protected]',
Credentials: process.env[envMap.Credentials],
InitLimit: parseNumber(process.env[envMap.InitLimit]) ?? 50,
WATCH_URL: process.env[envMap.WATCH_URL]
Expand Down
4 changes: 2 additions & 2 deletions services/calendar/pod-calendar/src/workspaceClient.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ import contact, { Channel, Contact, type Employee, type PersonAccount } from '@h
import core, {
TxOperations,
TxProcessor,
systemAccountEmail,
toIdMap,
type Account,
type Client,
Expand All @@ -34,7 +35,6 @@ import { Collection, type Db } from 'mongodb'
import { CalendarClient } from './calendar'
import { CalendarController } from './calendarController'
import { getClient } from './client'
import config from './config'
import { SyncHistory, type ProjectCredentials, type User } from './types'

export class WorkspaceClient {
Expand Down Expand Up @@ -159,7 +159,7 @@ export class WorkspaceClient {
}

private async initClient (workspace: string): Promise<Client> {
const token = generateToken(config.SystemEmail, { name: workspace })
const token = generateToken(systemAccountEmail, { name: workspace })
const client = await getClient(token)
client.notify = (...tx: Tx[]) => {
void this.txHandler(...tx)
Expand Down
4 changes: 2 additions & 2 deletions services/github/pod-github/src/client.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

import client, { ClientSocket } from '@hcengineering/client'
import clientResources from '@hcengineering/client-resources'
import { Client, ClientConnectEvent } from '@hcengineering/core'
import { Client, ClientConnectEvent, systemAccountEmail } from '@hcengineering/core'
import { setMetadata } from '@hcengineering/platform'
import { getTransactorEndpoint } from '@hcengineering/server-client'
import serverToken, { generateToken } from '@hcengineering/server-token'
Expand All @@ -30,7 +30,7 @@ export async function createPlatformClient (

setMetadata(serverToken.metadata.Secret, config.ServerSecret)
const token = generateToken(
config.SystemEmail,
systemAccountEmail,
{
name: workspace
},
Expand Down
4 changes: 2 additions & 2 deletions services/github/pod-github/src/collaborator.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,14 @@
//

import { CollaboratorClient, getClient as getCollaboratorClient } from '@hcengineering/collaborator-client'
import { WorkspaceId } from '@hcengineering/core'
import { systemAccountEmail, WorkspaceId } from '@hcengineering/core'
import { generateToken } from '@hcengineering/server-token'
import config from './config'

/**
* @public
*/
export function createCollaboratorClient (workspaceId: WorkspaceId): CollaboratorClient {
const token = generateToken(config.SystemEmail, workspaceId, { mode: 'github' })
const token = generateToken(systemAccountEmail, workspaceId, { mode: 'github' })
return getCollaboratorClient(workspaceId, token, config.CollaboratorURL)
}
6 changes: 0 additions & 6 deletions services/github/pod-github/src/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,10 @@
// Copyright © 2023 Hardcore Engineering Inc.
//

import { systemAccountEmail } from '@hcengineering/core'

interface Config {
AccountsURL: string
ServiceID: string
ServerSecret: string
SystemEmail: string
FrontURL: string

// '*' means all workspaces
Expand Down Expand Up @@ -36,7 +33,6 @@ const envMap: { [key in keyof Config]: string } = {
AccountsURL: 'ACCOUNTS_URL',
ServiceID: 'SERVICE_ID',
ServerSecret: 'SERVER_SECRET',
SystemEmail: 'SYSTEM_EMAIL',
FrontURL: 'FRONT_URL',

AppID: 'APP_ID',
Expand All @@ -62,7 +58,6 @@ const required: Array<keyof Config> = [
'AccountsURL',
'ServerSecret',
'ServiceID',
'SystemEmail',
'FrontURL',
'AppID',
'ClientID',
Expand All @@ -82,7 +77,6 @@ const config: Config = (() => {
AccountsURL: process.env[envMap.AccountsURL],
ServerSecret: process.env[envMap.ServerSecret],
ServiceID: process.env[envMap.ServiceID] ?? 'github-service',
SystemEmail: process.env[envMap.SystemEmail] ?? systemAccountEmail,
AllowedWorkspaces: process.env[envMap.AllowedWorkspaces]?.split(',') ?? ['*'],
FrontURL: process.env[envMap.FrontURL] ?? '',

Expand Down
3 changes: 2 additions & 1 deletion services/github/pod-github/src/platform.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ import core, {
MeasureContext,
RateLimiter,
Ref,
systemAccountEmail,
TxOperations
} from '@hcengineering/core'
import github, { GithubAuthentication, makeQuery, type GithubIntegration } from '@hcengineering/github'
Expand Down Expand Up @@ -730,7 +731,7 @@ export class PlatformWorker {
}
await rateLimiter.add(async () => {
const token = generateToken(
config.SystemEmail,
systemAccountEmail,
{
name: workspace
},
Expand Down
3 changes: 0 additions & 3 deletions services/gmail/pod-gmail/src/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@ interface Config {
Secret: string
Credentials: string
WATCH_TOPIC_NAME: string
SystemEmail: string
FooterMessage: string
InitLimit: number
}
Expand All @@ -39,7 +38,6 @@ const envMap: { [key in keyof Config]: string } = {
ServiceID: 'SERVICE_ID',
Secret: 'SECRET',
Credentials: 'Credentials',
SystemEmail: 'SYSTEM_EMAIL',
WATCH_TOPIC_NAME: 'WATCH_TOPIC_NAME',
FooterMessage: 'FOOTER_MESSAGE',
InitLimit: 'INIT_LIMIT'
Expand All @@ -55,7 +53,6 @@ const config: Config = (() => {
AccountsURL: process.env[envMap.AccountsURL],
ServiceID: process.env[envMap.ServiceID] ?? 'gmail-service',
Secret: process.env[envMap.Secret],
SystemEmail: process.env[envMap.SystemEmail] ?? '[email protected]',
Credentials: process.env[envMap.Credentials],
WATCH_TOPIC_NAME: process.env[envMap.WATCH_TOPIC_NAME],
InitLimit: parseNumber(process.env[envMap.InitLimit]) ?? 50,
Expand Down
4 changes: 2 additions & 2 deletions services/gmail/pod-gmail/src/workspaceClient.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ import core, {
type Doc,
MeasureContext,
type Ref,
systemAccountEmail,
type Tx,
type TxCreateDoc,
TxProcessor,
Expand All @@ -31,7 +32,6 @@ import type { StorageAdapter } from '@hcengineering/server-core'
import { generateToken } from '@hcengineering/server-token'
import { type Db } from 'mongodb'
import { getClient } from './client'
import config from './config'
import { GmailClient } from './gmail'
import { type Channel, type ProjectCredentials, type User } from './types'

Expand Down Expand Up @@ -121,7 +121,7 @@ export class WorkspaceClient {
}

private async initClient (workspace: string): Promise<Client> {
const token = generateToken(config.SystemEmail, { name: workspace })
const token = generateToken(systemAccountEmail, { name: workspace })
console.log('token', token, workspace)
const client = await getClient(token)
client.notify = (...tx: Tx[]) => {
Expand Down
3 changes: 0 additions & 3 deletions services/love/src/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@
interface Config {
AccountsURL: string
Port: number
SystemEmail: string
ServiceID: string

LiveKitHost: string
Expand All @@ -42,7 +41,6 @@ const envMap: { [key in keyof Config]: string } = {
StorageProviderName: 'STORAGE_PROVIDER_NAME',
Secret: 'SECRET',
ServiceID: 'SERVICE_ID',
SystemEmail: 'SYSTEM_EMAIL',
MongoUrl: 'MONGO_URL'
}

Expand All @@ -59,7 +57,6 @@ const config: Config = (() => {
StorageProviderName: process.env[envMap.StorageProviderName] ?? 's3',
Secret: process.env[envMap.Secret],
ServiceID: process.env[envMap.ServiceID] ?? 'love-service',
SystemEmail: process.env[envMap.SystemEmail] ?? '[email protected]',
MongoUrl: process.env[envMap.MongoUrl]
}

Expand Down
15 changes: 11 additions & 4 deletions services/love/src/workspaceClient.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,20 @@
// See the License for the specific language governing permissions and
// limitations under the License.

import core, { Client, Ref, TxOperations, type Blob, Data, MeasureContext } from '@hcengineering/core'
import attachment, { Attachment } from '@hcengineering/attachment'
import core, {
Client,
Data,
MeasureContext,
Ref,
systemAccountEmail,
TxOperations,
type Blob
} from '@hcengineering/core'
import drive, { createFile } from '@hcengineering/drive'
import love, { MeetingMinutes } from '@hcengineering/love'
import { generateToken } from '@hcengineering/server-token'
import attachment, { Attachment } from '@hcengineering/attachment'
import { getClient } from './client'
import config from './config'

export class WorkspaceClient {
private client!: TxOperations
Expand All @@ -39,7 +46,7 @@ export class WorkspaceClient {
}

private async initClient (workspace: string): Promise<Client> {
const token = generateToken(config.SystemEmail, { name: workspace })
const token = generateToken(systemAccountEmail, { name: workspace })
const client = await getClient(token)
this.client = new TxOperations(client, core.account.System)
return this.client
Expand Down
2 changes: 0 additions & 2 deletions services/sign/pod-sign/src/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@ export interface Config {
Port: number
Secret: string
ServiceID: string
SystemEmail: string
BrandingPath: string
}

Expand All @@ -25,7 +24,6 @@ const config: Config = (() => {
Port: parseNumber(process.env.PORT) ?? 4006,
Secret: process.env.SECRET,
ServiceID: process.env.SERVICE_ID,
SystemEmail: process.env.SYSTEM_EMAIL ?? '[email protected]',
BrandingPath: process.env.BRANDING_PATH ?? ''
}

Expand Down
4 changes: 2 additions & 2 deletions services/sign/pod-sign/src/sign.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import { P12Signer } from '@signpdf/signer-p12'
import signpdf from '@signpdf/signpdf'
import { PDFDocument, StandardFonts, degrees, degreesToRadians, rgb } from 'pdf-lib'

import config from './config'
import { systemAccountEmail } from '@hcengineering/core'

interface Rect {
x: number
Expand Down Expand Up @@ -50,7 +50,7 @@ export async function signPDF (file: Buffer, certp12: Buffer, pwd: string, ctx:
// Make it configurable when will be needed to allow signing for different reasons.
const options: Options = {
name: ctx.title,
contactInfo: config.SystemEmail,
contactInfo: systemAccountEmail,
appName: ctx.title,
reason: 'Export from the system',
location: 'N/A'
Expand Down
5 changes: 2 additions & 3 deletions services/sign/pod-sign/src/signController.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,10 @@
// limitations under the License.
//

import { type Client } from '@hcengineering/core'
import { systemAccountEmail, type Client } from '@hcengineering/core'
import { generateToken, type Token } from '@hcengineering/server-token'

import { createClient, getTransactorEndpoint } from '@hcengineering/server-client'
import config from './config'

export class SignController {
private readonly clients: Map<string, Client> = new Map<string, Client>()
Expand Down Expand Up @@ -50,7 +49,7 @@ export class SignController {
}

private async createPlatformClient (workspace: string): Promise<Client> {
const token = generateToken(config.SystemEmail, {
const token = generateToken(systemAccountEmail, {
name: workspace
})
const endpoint = await getTransactorEndpoint(token)
Expand Down
6 changes: 1 addition & 5 deletions services/telegram/pod-telegram/src/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ interface Config {
AccountsURL: string
ServiceID: string
Secret: string
SystemEmail: string
}

const envMap: { [key in keyof Config]: string } = {
Expand All @@ -28,8 +27,7 @@ const envMap: { [key in keyof Config]: string } = {

AccountsURL: 'ACCOUNTS_URL',
ServiceID: 'SERVICE_ID',
Secret: 'SECRET',
SystemEmail: 'SYSTEM_EMAIL'
Secret: 'SECRET'
}

const defaults: Partial<Config> = {
Expand All @@ -45,7 +43,6 @@ const defaults: Partial<Config> = {

AccountsURL: undefined,
ServiceID: 'telegram-service',
SystemEmail: '[email protected]',

Secret: undefined
}
Expand Down Expand Up @@ -76,7 +73,6 @@ const config = (() => {
MongoURI: process.env[envMap.MongoURI],
AccountsURL: process.env[envMap.AccountsURL],
ServiceID: process.env[envMap.ServiceID],
SystemEmail: process.env[envMap.SystemEmail],
Secret: process.env[envMap.Secret]
}

Expand Down
4 changes: 2 additions & 2 deletions services/telegram/pod-telegram/src/workspace.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ import core, {
Hierarchy,
MeasureContext,
Ref,
systemAccountEmail,
Tx,
TxCreateDoc,
TxCUD,
Expand All @@ -31,7 +32,6 @@ import telegramP, { NewTelegramMessage } from '@hcengineering/telegram'
import type { Collection } from 'mongodb'
import { Api } from 'telegram'
import { v4 as uuid } from 'uuid'
import config from './config'
import { platformToTelegram, telegramToPlatform } from './markup'
import { MsgQueue } from './queue'
import type { TelegramConnectionInterface } from './telegram'
Expand Down Expand Up @@ -151,7 +151,7 @@ export class WorkspaceWorker {
lastMsgStorage: Collection<LastMsgRecord>,
channelsStorage: Collection<WorkspaceChannel>
): Promise<WorkspaceWorker> {
const token = generateToken(config.SystemEmail, { name: workspace })
const token = generateToken(systemAccountEmail, { name: workspace })
const client = await createPlatformClient(token)

const worker = new WorkspaceWorker(
Expand Down
Loading