diff --git a/.vscode/launch.json b/.vscode/launch.json index e7ef0632d5..d56deb62da 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -8,19 +8,12 @@ "name": "Debug notion import", "type": "node", "request": "launch", - // "args": ["src/__start.ts", "import-notion-to-teamspace", "/home/anna/work/notion/natalya/Export-fad9ecb4-a1a5-4623-920d-df32dd423743", "-ws", "w-user1-ws1-66d8018b-ce1e0c3164-006bb0", "-ts", "notion"], - "args": ["src/__start.ts", "import-notion", "/home/anna/work/notion/natalya/Export-fad9ecb4-a1a5-4623-920d-df32dd423743", "-ws", "w-user1-ws1-66d8018b-ce1e0c3164-006bb0"], + "args": ["src/__start.ts", "import-notion-to-teamspace", "/home/anna/work/notion/natalya/Export-fad9ecb4-a1a5-4623-920d-df32dd423743", "-ws", "notion-test", "-u", "user1", "-pw", "1234", "-ts", "natalya"], + // "args": ["src/__start.ts", "import-notion-with-teamspaces", "/home/anna/work/notion/natalya/Export-fad9ecb4-a1a5-4623-920d-df32dd423743", "-ws", "ws1", "-u", "user1", "-pw", "1234"], "env": { "SERVER_SECRET": "secret", - "MINIO_ACCESS_KEY": "minioadmin", - "MINIO_SECRET_KEY": "minioadmin", - "MINIO_ENDPOINT": "localhost", - "TRANSACTOR_URL": "ws://localhost:3333", - "MONGO_URL": "mongodb://localhost:27017", + "FRONT_URL": "http://localhost:8087", "ACCOUNTS_URL": "http://localhost:3000", - "TELEGRAM_DATABASE": "telegram-service", - "ELASTIC_URL": "http://localhost:9200", - "REKONI_URL": "http://localhost:4004" }, "runtimeVersion": "20", "runtimeArgs": ["--nolazy", "-r", "ts-node/register"], diff --git a/dev/tool/README.md b/dev/tool/README.md index 76de3fb4a0..e6019d44a9 100644 --- a/dev/tool/README.md +++ b/dev/tool/README.md @@ -50,28 +50,33 @@ rushx run-local import-notion-to-teamspace /home/john/extracted-notion-docs \ --teamspace imported ``` -#### For clouds: +#### For cloud deployment: ##### Here is an example for those who's using huly.app cloud: -To import Notion workspace with teamspaces +1. Go to the root folder of the extracted archive with exported data. +2. Run import command as follow: + +* To import Notion workspace with teamspaces ``` docker run \ -e SERVER_SECRET="" \ -e ACCOUNTS_URL="https://account.huly.app" \ -e FRONT_URL="https://huly.app" \ + -v $(pwd):/data \ hardcoreeng/tool:latest \ - -- bundle.js import-notion-with-teamspaces /tmp/notion-docs \ + -- bundle.js import-notion-with-teamspaces /data \ --user jane.doe@gmail.com \ --password 4321qwe \ --workspace ws1 ``` -To import Notion workspace without teamspaces or a page with subpages. +* To import Notion workspace without teamspaces or a page with subpages. ``` docker run \ -e SERVER_SECRET="" \ -e ACCOUNTS_URL="https://account.huly.app" \ -e FRONT_URL="https://huly.app" \ + -v $(pwd):/data \ hardcoreeng/tool:latest \ - -- bundle.js import-notion-to-teamspace /tmp/notion-docs \ + -- bundle.js import-notion-to-teamspace /data \ --user jane.doe@gmail.com \ --password 4321qwe \ --workspace ws1 \ diff --git a/dev/tool/src/index.ts b/dev/tool/src/index.ts index 714fc15d6d..89f2d0c665 100644 --- a/dev/tool/src/index.ts +++ b/dev/tool/src/index.ts @@ -55,7 +55,7 @@ import serverClientPlugin, { } from '@hcengineering/server-client' import { getServerPipeline } from '@hcengineering/server-pipeline' import serverToken, { decodeToken, generateToken } from '@hcengineering/server-token' -import toolPlugin, { connect, FileModelLogger } from '@hcengineering/server-tool' +import toolPlugin, { FileModelLogger } from '@hcengineering/server-tool' import { createWorkspace, upgradeWorkspace } from '@hcengineering/workspace-service' import path from 'path' @@ -75,7 +75,6 @@ import core, { systemAccountEmail, TxOperations, versionToString, - type Client as CoreClient, type Data, type Doc, type Ref, @@ -297,17 +296,13 @@ export function devTool ( } } - const connection = (await connect( - selectedWs.endpoint, - { - name: selectedWs.workspaceId - }, - undefined, - { - mode: 'backup' - } - )) as unknown as CoreClient - const client = new TxOperations(connection, core.account.System) + const connection = await createClient(selectedWs.endpoint, selectedWs.token) + const acc = connection.getModel().getAccountByEmail(user) + if (acc === undefined) { + console.log('Account not found for email: ', user) + return + } + const client = new TxOperations(connection, acc._id) await importNotion(client, uploader(selectedWs.token), dir, teamspace) await connection.close() }