Create workspace docker compose fix (#800)

Signed-off-by: Denis Bykhov <80476319+BykhovDenis@users.noreply.github.com>
This commit is contained in:
Denis Bykhov 2022-01-12 15:03:12 +06:00 committed by GitHub
parent bc2d0339f8
commit 246b0abb13
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 50 additions and 9 deletions

View File

@ -48,7 +48,8 @@ services:
- 3000:3000 - 3000:3000
environment: environment:
- MONGO_URL=mongodb://mongodb:27017 - MONGO_URL=mongodb://mongodb:27017
- TRANSACTOR_URL=ws://localhost:3333 - TRANSACTOR_URL=ws://transactor:3333
- ENDPOINT_URL=ws://localhost:3333
- MINIO_ENDPOINT=minio - MINIO_ENDPOINT=minio
- MINIO_ACCESS_KEY=minioadmin - MINIO_ACCESS_KEY=minioadmin
- MINIO_SECRET_KEY=minioadmin - MINIO_SECRET_KEY=minioadmin

View File

@ -23,7 +23,7 @@
import workbench from '@anticrm/workbench' import workbench from '@anticrm/workbench'
import InviteLink from './InviteLink.svelte' import InviteLink from './InviteLink.svelte'
const fields = [{ name: 'workspace', i18n: login.string.Workspace, rule: /^\S+$/ }] const fields = [{ name: 'workspace', i18n: login.string.Workspace, rule: /^[0-9a-z#%&^\-@!\()]{3,63}$/ }]
const object = { const object = {
workspace: '' workspace: ''

View File

@ -159,6 +159,19 @@ export async function getWorkspaces (): Promise<Workspace[]> {
throw new Error('accounts url not specified') throw new Error('accounts url not specified')
} }
const overrideToken = getMetadata(login.metadata.OverrideLoginToken)
if (overrideToken !== undefined) {
const endpoint = getMetadata(login.metadata.OverrideEndpoint)
if (endpoint !== undefined) {
return [{
_id: '' as any,
workspace: 'DEV WORKSPACE',
organisation: '',
accounts: []
}]
}
}
const token = fetchMetadataLocalStorage(login.metadata.LoginToken) const token = fetchMetadataLocalStorage(login.metadata.LoginToken)
if (token === null) { if (token === null) {
const loc = getCurrentLocation() const loc = getCurrentLocation()
@ -197,6 +210,15 @@ export async function selectWorkspace (workspace: string): Promise<[Status, Logi
throw new Error('accounts url not specified') throw new Error('accounts url not specified')
} }
const overrideToken = getMetadata(login.metadata.OverrideLoginToken)
const email = getMetadata(login.metadata.LoginEmail) ?? ''
if (overrideToken !== undefined) {
const endpoint = getMetadata(login.metadata.OverrideEndpoint)
if (endpoint !== undefined) {
return [OK, { token: overrideToken, endpoint, email }]
}
}
const token = fetchMetadataLocalStorage(login.metadata.LoginToken) const token = fetchMetadataLocalStorage(login.metadata.LoginToken)
if (token === null) { if (token === null) {
const loc = getCurrentLocation() const loc = getCurrentLocation()

View File

@ -25,7 +25,7 @@ spec:
name: mongodb name: mongodb
key: url key: url
- name: TRANSACTOR_URL - name: TRANSACTOR_URL
value: ws://transactor/ value: wss://transactor.hc.engineering/
- name: MINIO_ENDPOINT - name: MINIO_ENDPOINT
valueFrom: valueFrom:
secretKeyRef: secretKeyRef:

View File

@ -30,12 +30,15 @@ if (dbUri === undefined) {
} }
const transactorUri = process.env.TRANSACTOR_URL const transactorUri = process.env.TRANSACTOR_URL
if (dbUri === undefined) { if (transactorUri === undefined) {
console.log('Please provide transactor url') console.log('Please provide transactor url')
process.exit(1) process.exit(1)
} }
setMetadata(accountPlugin.metadata.Endpoint, transactorUri) const endpointUri = process.env.ENDPOINT_URL ?? transactorUri
setMetadata(accountPlugin.metadata.Endpoint, endpointUri)
setMetadata(accountPlugin.metadata.Transactor, transactorUri)
let client: MongoClient let client: MongoClient

View File

@ -53,6 +53,7 @@ export const accountId = 'account' as Plugin
const accountPlugin = plugin(accountId, { const accountPlugin = plugin(accountId, {
metadata: { metadata: {
Endpoint: '' as Metadata<string>, Endpoint: '' as Metadata<string>,
Transactor: '' as Metadata<string>,
Secret: '' as Metadata<string> Secret: '' as Metadata<string>
}, },
status: { status: {
@ -69,7 +70,19 @@ const getSecret = (): string => {
} }
const getEndpoint = (): string => { const getEndpoint = (): string => {
return getMetadata(accountPlugin.metadata.Endpoint) ?? 'wss://transactor.hc.engineering/' const endpoint = getMetadata(accountPlugin.metadata.Endpoint)
if (endpoint === undefined) {
throw new Error('Please provide transactor endpoint url')
}
return endpoint
}
const getTransactor = (): string => {
const transactor = getMetadata(accountPlugin.metadata.Transactor)
if (transactor === undefined) {
throw new Error('Please provide transactor url')
}
return transactor
} }
/** /**
@ -297,7 +310,7 @@ export async function createWorkspace (db: Db, workspace: string, organisation:
organisation organisation
}) })
.then((e) => e.insertedId.toHexString()) .then((e) => e.insertedId.toHexString())
await initWorkspace(getEndpoint(), workspace) await initWorkspace(getTransactor(), workspace)
return result return result
} }
@ -378,7 +391,7 @@ export async function assignWorkspace (db: Db, email: string, workspace: string)
} }
async function createEmployeeAccount (account: Account, workspace: string): Promise<void> { async function createEmployeeAccount (account: Account, workspace: string): Promise<void> {
const connection = await connect(getEndpoint(), workspace, account.email) const connection = await connect(getTransactor(), workspace, account.email)
try { try {
const ops = new TxOperations(connection, core.account.System) const ops = new TxOperations(connection, core.account.System)

View File

@ -25,7 +25,9 @@ spec:
- name: UPLOAD_URL - name: UPLOAD_URL
value: /files value: /files
- name: TRANSACTOR_URL - name: TRANSACTOR_URL
value: ws://transactor/ value: wss://transactor.hc.engineering/
- name: GMAIL_URL
value: gmail.hc.engineering
- name: ELASTIC_URL - name: ELASTIC_URL
valueFrom: valueFrom:
secretKeyRef: secretKeyRef: