mirror of
https://github.com/hcengineering/platform.git
synced 2026-08-17 18:05:42 +02:00
Update sanity DB restore (#2836)
Signed-off-by: Andrey Sobolev <haiodo@gmail.com>
This commit is contained in:
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
name: CI
|
name: CI
|
||||||
|
|
||||||
concurrency:
|
concurrency:
|
||||||
group: ${{ github.workflow }}-${{ github.ref }}
|
group: ${{ github.workflow }}-${{ github.ref }}
|
||||||
cancel-in-progress: true
|
cancel-in-progress: true
|
||||||
|
|
||||||
@@ -14,7 +14,7 @@ on:
|
|||||||
tags:
|
tags:
|
||||||
- v*
|
- v*
|
||||||
pull_request:
|
pull_request:
|
||||||
branches: [main, develop]
|
branches: [main, develop]
|
||||||
|
|
||||||
# Allows you to run this workflow manually from the Actions tab
|
# Allows you to run this workflow manually from the Actions tab
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
@@ -60,6 +60,9 @@ jobs:
|
|||||||
- name: Building...
|
- name: Building...
|
||||||
run: node common/scripts/install-run-rush.js build
|
run: node common/scripts/install-run-rush.js build
|
||||||
|
|
||||||
|
- name: Bundle
|
||||||
|
run: node common/scripts/install-run-rush.js bundle --verbose
|
||||||
|
|
||||||
- name: Cache build results for next jobs
|
- name: Cache build results for next jobs
|
||||||
uses: actions/cache@v3
|
uses: actions/cache@v3
|
||||||
env:
|
env:
|
||||||
@@ -245,15 +248,18 @@ jobs:
|
|||||||
|
|
||||||
- name: Installing...
|
- name: Installing...
|
||||||
run: node common/scripts/install-run-rush.js install
|
run: node common/scripts/install-run-rush.js install
|
||||||
|
|
||||||
|
- name: Setting model version from git release...
|
||||||
|
run: node common/scripts/install-run-rush.js bump-model-version
|
||||||
|
|
||||||
|
- name: Building...
|
||||||
|
run: node common/scripts/install-run-rush.js build
|
||||||
|
|
||||||
- name: Bundle
|
- name: Bundle
|
||||||
run: node common/scripts/install-run-rush.js bundle --verbose
|
run: node common/scripts/install-run-rush.js bundle
|
||||||
|
|
||||||
- name: Docker build
|
- name: Docker build
|
||||||
run: node common/scripts/install-run-rush.js docker:build --verbose
|
run: node common/scripts/install-run-rush.js docker:build
|
||||||
- name: Login to Docker Hub
|
|
||||||
uses: docker/login-action@v2
|
|
||||||
with:
|
|
||||||
username: hardcoreeng
|
|
||||||
password: ${{ secrets.DOCKER_ACCESS_TOKEN }}
|
|
||||||
- name: Prepare server
|
- name: Prepare server
|
||||||
run: |
|
run: |
|
||||||
cd ./tests
|
cd ./tests
|
||||||
@@ -266,12 +272,22 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
cd ./tests/sanity
|
cd ./tests/sanity
|
||||||
node ../../common/scripts/install-run-rushx.js uitest
|
node ../../common/scripts/install-run-rushx.js uitest
|
||||||
|
# - name: Archive DB
|
||||||
|
# run: |
|
||||||
|
# cd ./tests
|
||||||
|
# ./update-snapshot-ci.sh ./tests/db_dump
|
||||||
- name: Upload test results
|
- name: Upload test results
|
||||||
if: always()
|
if: always()
|
||||||
uses: actions/upload-artifact@v3
|
uses: actions/upload-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: playwright-results
|
name: playwright-results
|
||||||
path: ./tests/sanity/playwright-report/
|
path: ./tests/sanity/playwright-report/
|
||||||
|
- name: Upload DB snapshot
|
||||||
|
if: always()
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: db-snapshot
|
||||||
|
path: ./tests/db_dump
|
||||||
docker-build:
|
docker-build:
|
||||||
if: ${{ github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/v') }}
|
if: ${{ github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/v') }}
|
||||||
needs: [build, uitest, test, svelte-check]
|
needs: [build, uitest, test, svelte-check]
|
||||||
|
|||||||
@@ -82,3 +82,4 @@ pods/front/dist
|
|||||||
*.pyc
|
*.pyc
|
||||||
metrics.txt
|
metrics.txt
|
||||||
dev/tool/report*.csv
|
dev/tool/report*.csv
|
||||||
|
tests/db_dump
|
||||||
|
|||||||
Executable
+4
@@ -0,0 +1,4 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
version=$(git describe --all --long)
|
||||||
|
echo \"$version\"
|
||||||
@@ -9,11 +9,11 @@
|
|||||||
"build:watch": "tsc",
|
"build:watch": "tsc",
|
||||||
"lint:fix": "eslint --fix src",
|
"lint:fix": "eslint --fix src",
|
||||||
"start": "ts-node src/__start.ts",
|
"start": "ts-node src/__start.ts",
|
||||||
"bundle": "esbuild src/__start.ts --bundle --minify --platform=node > bundle.js",
|
"bundle": "esbuild src/__start.ts --bundle --minify --platform=node --define:process.env.MODEL_VERSION=$(node ../../models/all/lib/__showversion.js) --define:process.env.GIT_REVISION=$(../../common/scripts/git_version.sh) > bundle.js",
|
||||||
"docker:build": "docker build -t hardcoreeng/tool .",
|
"docker:build": "docker build -t hardcoreeng/tool .",
|
||||||
"docker:staging": "../../common/scripts/docker_tag.sh hardcoreeng/tool staging",
|
"docker:staging": "../../common/scripts/docker_tag.sh hardcoreeng/tool staging",
|
||||||
"docker:push": "../../common/scripts/docker_tag.sh hardcoreeng/tool",
|
"docker:push": "../../common/scripts/docker_tag.sh hardcoreeng/tool",
|
||||||
"run-local": "cross-env SERVER_SECRET=secret MINIO_ACCESS_KEY=minioadmin MINIO_SECRET_KEY=minioadmin MINIO_ENDPOINT=localhost MONGO_URL=mongodb://localhost:27017 TRANSACTOR_URL=ws:/localhost:3333 TELEGRAM_DATABASE=telegram-service ELASTIC_URL=http://localhost:9200 REKONI_URL=http://localhost:4004 node -r ts-node/register --max-old-space-size=18000 ./src/__start.ts",
|
"run-local": "cross-env SERVER_SECRET=secret MINIO_ACCESS_KEY=minioadmin MINIO_SECRET_KEY=minioadmin MINIO_ENDPOINT=localhost MONGO_URL=mongodb://localhost:27017 TRANSACTOR_URL=ws:/localhost:3333 TELEGRAM_DATABASE=telegram-service ELASTIC_URL=http://localhost:9200 REKONI_URL=http://localhost:4004 MODEL_VERSION=$(node ../../models/all/lib/__showversion.js) GIT_REVISION=$(git describe --all --long) node -r ts-node/register --max-old-space-size=18000 ./src/__start.ts",
|
||||||
"run": "cross-env node -r ts-node/register --max-old-space-size=8000 ./src/__start.ts",
|
"run": "cross-env node -r ts-node/register --max-old-space-size=8000 ./src/__start.ts",
|
||||||
"upgrade": "rushx run-local upgrade",
|
"upgrade": "rushx run-local upgrade",
|
||||||
"lint": "eslint src",
|
"lint": "eslint src",
|
||||||
|
|||||||
@@ -70,4 +70,6 @@ function prepareTools (): {
|
|||||||
return { ...prepareToolsRaw(builder(enabled, disabled).getTxes()), version, migrateOperations }
|
return { ...prepareToolsRaw(builder(enabled, disabled).getTxes()), version, migrateOperations }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
console.log(`tools git_version: ${process.env.GIT_REVISION ?? ''} model_version: ${process.env.MODEL_VERSION ?? ''}`)
|
||||||
|
|
||||||
devTool(prepareTools, '')
|
devTool(prepareTools, '')
|
||||||
|
|||||||
+1
-46
@@ -45,7 +45,7 @@ import toolPlugin from '@hcengineering/server-tool'
|
|||||||
import { program } from 'commander'
|
import { program } from 'commander'
|
||||||
import { Db, MongoClient } from 'mongodb'
|
import { Db, MongoClient } from 'mongodb'
|
||||||
import { clearTelegramHistory } from './telegram'
|
import { clearTelegramHistory } from './telegram'
|
||||||
import { diffWorkspace, dumpWorkspace, restoreWorkspace } from './workspace'
|
import { diffWorkspace } from './workspace'
|
||||||
|
|
||||||
import { Data, getWorkspaceId, Tx, Version } from '@hcengineering/core'
|
import { Data, getWorkspaceId, Tx, Version } from '@hcengineering/core'
|
||||||
import { MinioService } from '@hcengineering/minio'
|
import { MinioService } from '@hcengineering/minio'
|
||||||
@@ -54,7 +54,6 @@ import { openAIConfigDefaults } from '@hcengineering/openai'
|
|||||||
import { benchmark } from './benchmark'
|
import { benchmark } from './benchmark'
|
||||||
import { cleanArchivedSpaces, cleanRemovedTransactions, cleanWorkspace } from './clean'
|
import { cleanArchivedSpaces, cleanRemovedTransactions, cleanWorkspace } from './clean'
|
||||||
import { changeConfiguration } from './configuration'
|
import { changeConfiguration } from './configuration'
|
||||||
import { rebuildElastic } from './elastic'
|
|
||||||
import { openAIConfig } from './openai'
|
import { openAIConfig } from './openai'
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -293,14 +292,6 @@ export function devTool (
|
|||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
program
|
|
||||||
.command('dump-workspace <workspace> <dirName>')
|
|
||||||
.description('dump workspace transactions and minio resources')
|
|
||||||
.action(async (workspace: string, dirName: string, cmd) => {
|
|
||||||
const { mongodbUri, minio } = prepareTools()
|
|
||||||
return await dumpWorkspace(mongodbUri, getWorkspaceId(workspace, productId), dirName, minio)
|
|
||||||
})
|
|
||||||
|
|
||||||
program
|
program
|
||||||
.command('backup <dirName> <workspace>')
|
.command('backup <dirName> <workspace>')
|
||||||
.description('dump workspace transactions and minio resources')
|
.description('dump workspace transactions and minio resources')
|
||||||
@@ -360,23 +351,6 @@ export function devTool (
|
|||||||
return await backupList(storage)
|
return await backupList(storage)
|
||||||
})
|
})
|
||||||
|
|
||||||
program
|
|
||||||
.command('restore-workspace <workspace> <dirName>')
|
|
||||||
.description('restore workspace transactions and minio resources from previous dump.')
|
|
||||||
.action(async (workspace: string, dirName: string, cmd) => {
|
|
||||||
const { mongodbUri, minio, txes, migrateOperations } = prepareTools()
|
|
||||||
return await restoreWorkspace(
|
|
||||||
mongodbUri,
|
|
||||||
getWorkspaceId(workspace, productId),
|
|
||||||
dirName,
|
|
||||||
minio,
|
|
||||||
getElasticUrl(),
|
|
||||||
transactorUrl,
|
|
||||||
txes,
|
|
||||||
migrateOperations
|
|
||||||
)
|
|
||||||
})
|
|
||||||
|
|
||||||
program
|
program
|
||||||
.command('confirm-email <email>')
|
.command('confirm-email <email>')
|
||||||
.description('confirm user email')
|
.description('confirm user email')
|
||||||
@@ -434,25 +408,6 @@ export function devTool (
|
|||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
program
|
|
||||||
.command('rebuild-elastic [workspace]')
|
|
||||||
.description('rebuild elastic index')
|
|
||||||
.action(async (workspace: string, cmd) => {
|
|
||||||
const { mongodbUri, minio } = prepareTools()
|
|
||||||
return await withDatabase(mongodbUri, async (db) => {
|
|
||||||
if (workspace === undefined) {
|
|
||||||
const workspaces = await listWorkspaces(db, productId)
|
|
||||||
|
|
||||||
for (const w of workspaces) {
|
|
||||||
await rebuildElastic(mongodbUri, getWorkspaceId(w.workspace, productId), minio, getElasticUrl())
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
await rebuildElastic(mongodbUri, getWorkspaceId(workspace, productId), minio, getElasticUrl())
|
|
||||||
console.log('rebuild end')
|
|
||||||
}
|
|
||||||
})
|
|
||||||
})
|
|
||||||
|
|
||||||
program
|
program
|
||||||
.command('generate-token <name> <workspace> <productId>')
|
.command('generate-token <name> <workspace> <productId>')
|
||||||
.description('generate token')
|
.description('generate token')
|
||||||
|
|||||||
+1
-146
@@ -16,155 +16,10 @@
|
|||||||
|
|
||||||
import contact from '@hcengineering/contact'
|
import contact from '@hcengineering/contact'
|
||||||
import core, { DOMAIN_TX, Tx, WorkspaceId } from '@hcengineering/core'
|
import core, { DOMAIN_TX, Tx, WorkspaceId } from '@hcengineering/core'
|
||||||
import { MinioService, MinioWorkspaceItem } from '@hcengineering/minio'
|
|
||||||
import { MigrateOperation } from '@hcengineering/model'
|
|
||||||
import { getWorkspaceDB } from '@hcengineering/mongo'
|
import { getWorkspaceDB } from '@hcengineering/mongo'
|
||||||
import { upgradeModel } from '@hcengineering/server-tool'
|
import { MongoClient } from 'mongodb'
|
||||||
import { existsSync } from 'fs'
|
|
||||||
import { mkdir, open, readFile, writeFile } from 'fs/promises'
|
|
||||||
import { Document, MongoClient } from 'mongodb'
|
|
||||||
import { join } from 'path'
|
|
||||||
import { rebuildElastic } from './elastic'
|
|
||||||
import { generateModelDiff, printDiff } from './mdiff'
|
import { generateModelDiff, printDiff } from './mdiff'
|
||||||
|
|
||||||
interface CollectionInfo {
|
|
||||||
name: string
|
|
||||||
file: string
|
|
||||||
}
|
|
||||||
|
|
||||||
interface WorkspaceInfo {
|
|
||||||
version: string
|
|
||||||
collections: CollectionInfo[]
|
|
||||||
minioData: MinioWorkspaceItem[]
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @public
|
|
||||||
*/
|
|
||||||
export async function dumpWorkspace (
|
|
||||||
mongoUrl: string,
|
|
||||||
workspaceId: WorkspaceId,
|
|
||||||
fileName: string,
|
|
||||||
minio: MinioService
|
|
||||||
): Promise<void> {
|
|
||||||
const client = new MongoClient(mongoUrl)
|
|
||||||
try {
|
|
||||||
await client.connect()
|
|
||||||
const db = getWorkspaceDB(client, workspaceId)
|
|
||||||
|
|
||||||
console.log('dumping transactions...')
|
|
||||||
|
|
||||||
if (!existsSync(fileName)) {
|
|
||||||
await mkdir(fileName, { recursive: true })
|
|
||||||
}
|
|
||||||
|
|
||||||
const workspaceInfo: WorkspaceInfo = {
|
|
||||||
version: '0.0.0',
|
|
||||||
collections: [],
|
|
||||||
minioData: []
|
|
||||||
}
|
|
||||||
const collections = await db.collections()
|
|
||||||
for (const c of collections) {
|
|
||||||
const docs = await c.find().toArray()
|
|
||||||
workspaceInfo.collections.push({ name: c.collectionName, file: c.collectionName + '.json' })
|
|
||||||
await writeFile(fileName + c.collectionName + '.json', JSON.stringify(docs, undefined, 2))
|
|
||||||
}
|
|
||||||
|
|
||||||
console.log('Dump minio objects')
|
|
||||||
if (await minio.exists(workspaceId)) {
|
|
||||||
workspaceInfo.minioData.push(...(await minio.list(workspaceId)))
|
|
||||||
const minioDbLocation = fileName + '.minio'
|
|
||||||
if (!existsSync(minioDbLocation)) {
|
|
||||||
await mkdir(minioDbLocation)
|
|
||||||
}
|
|
||||||
for (const d of workspaceInfo.minioData) {
|
|
||||||
const stat = await minio.stat(workspaceId, d.name)
|
|
||||||
d.metaData = stat.metaData
|
|
||||||
|
|
||||||
const fileHandle = await open(join(minioDbLocation, d.name), 'w')
|
|
||||||
|
|
||||||
const chunks: Buffer[] = await minio.read(workspaceId, d.name)
|
|
||||||
for (const b of chunks) {
|
|
||||||
await fileHandle.write(b)
|
|
||||||
}
|
|
||||||
await fileHandle.close()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
await writeFile(fileName + '.workspace.json', JSON.stringify(workspaceInfo, undefined, 2))
|
|
||||||
} finally {
|
|
||||||
await client.close()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
export async function restoreWorkspace (
|
|
||||||
mongoUrl: string,
|
|
||||||
workspaceId: WorkspaceId,
|
|
||||||
fileName: string,
|
|
||||||
minio: MinioService,
|
|
||||||
elasticUrl: string,
|
|
||||||
transactorUrl: string,
|
|
||||||
rawTxes: Tx[],
|
|
||||||
migrateOperations: [string, MigrateOperation][]
|
|
||||||
): Promise<void> {
|
|
||||||
console.log('Restoring workspace', mongoUrl, workspaceId, fileName)
|
|
||||||
const client = new MongoClient(mongoUrl)
|
|
||||||
try {
|
|
||||||
await client.connect()
|
|
||||||
const db = getWorkspaceDB(client, workspaceId)
|
|
||||||
|
|
||||||
const workspaceInfo = JSON.parse((await readFile(fileName + '.workspace.json')).toString()) as WorkspaceInfo
|
|
||||||
|
|
||||||
// Drop existing collections
|
|
||||||
|
|
||||||
const cols = await db.collections()
|
|
||||||
for (const c of cols) {
|
|
||||||
console.log('dropping existing table', c.collectionName)
|
|
||||||
await db.dropCollection(c.collectionName)
|
|
||||||
}
|
|
||||||
// Restore collections.
|
|
||||||
for (const c of workspaceInfo.collections) {
|
|
||||||
const collection = db.collection(c.name)
|
|
||||||
await collection.deleteMany({})
|
|
||||||
const data = JSON.parse((await readFile(fileName + c.name + '.json')).toString()) as Document[]
|
|
||||||
if (data.length > 0) {
|
|
||||||
console.log('restore existing collection', c.name, data.length)
|
|
||||||
await collection.insertMany(data)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (await minio.exists(workspaceId)) {
|
|
||||||
const objectNames = (await minio.list(workspaceId)).map((i) => i.name)
|
|
||||||
await minio.remove(workspaceId, objectNames)
|
|
||||||
await minio.delete(workspaceId)
|
|
||||||
}
|
|
||||||
await minio.make(workspaceId)
|
|
||||||
|
|
||||||
const minioDbLocation = fileName + '.minio'
|
|
||||||
console.log('Restore minio objects', workspaceInfo.minioData.length)
|
|
||||||
let promises: Promise<void>[] = []
|
|
||||||
for (const d of workspaceInfo.minioData) {
|
|
||||||
const file = await open(join(minioDbLocation, d.name), 'r')
|
|
||||||
const stream = file.createReadStream()
|
|
||||||
promises.push(
|
|
||||||
minio.put(workspaceId, d.name, stream, d.size, d.metaData).then(async () => {
|
|
||||||
await file.close()
|
|
||||||
})
|
|
||||||
)
|
|
||||||
if (promises.length > 10) {
|
|
||||||
await Promise.all(promises)
|
|
||||||
promises = []
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
await upgradeModel(transactorUrl, workspaceId, rawTxes, migrateOperations)
|
|
||||||
|
|
||||||
await rebuildElastic(mongoUrl, workspaceId, minio, elasticUrl)
|
|
||||||
} finally {
|
|
||||||
await client.close()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
export async function diffWorkspace (mongoUrl: string, workspace: WorkspaceId, rawTxes: Tx[]): Promise<void> {
|
export async function diffWorkspace (mongoUrl: string, workspace: WorkspaceId, rawTxes: Tx[]): Promise<void> {
|
||||||
const client = new MongoClient(mongoUrl)
|
const client = new MongoClient(mongoUrl)
|
||||||
try {
|
try {
|
||||||
|
|||||||
@@ -5,10 +5,10 @@
|
|||||||
"author": "Anticrm Platform Contributors",
|
"author": "Anticrm Platform Contributors",
|
||||||
"license": "EPL-2.0",
|
"license": "EPL-2.0",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"start": "cross-env MONGO_URL=mongodb://localhost:27017 ELASTIC_URL=http://localhost:9200 MINIO_ENDPOINT=localhost MINIO_ACCESS_KEY=minioadmin MINIO_SECRET_KEY=minioadmin METRICS_CONSOLE=false SERVER_SECRET=secret REKONI_URL=http://localhost:4004 FRONT_URL=http://localhost:8080 MODEL_VERSION=$(node ../../models/all/lib/__showversion.js) node --nolazy -r ts-node/register src/__start.ts",
|
"start": "cross-env MONGO_URL=mongodb://localhost:27017 ELASTIC_URL=http://localhost:9200 MINIO_ENDPOINT=localhost MINIO_ACCESS_KEY=minioadmin MINIO_SECRET_KEY=minioadmin METRICS_CONSOLE=false SERVER_SECRET=secret REKONI_URL=http://localhost:4004 FRONT_URL=http://localhost:8080 MODEL_VERSION=$(node ../../models/all/lib/__showversion.js) GIT_REVISION=$(git describe --all --long) node --nolazy -r ts-node/register src/__start.ts",
|
||||||
"build": "heft build",
|
"build": "heft build",
|
||||||
"lint:fix": "eslint --fix src",
|
"lint:fix": "eslint --fix src",
|
||||||
"bundle": "esbuild src/__start.ts --bundle --sourcemap=inline --minify --platform=node --external:bufferutil --define:process.env.MODEL_VERSION=$(node ../../models/all/lib/__showversion.js) > bundle.js",
|
"bundle": "esbuild src/__start.ts --bundle --sourcemap=inline --minify --platform=node --external:bufferutil --define:process.env.MODEL_VERSION=$(node ../../models/all/lib/__showversion.js) --define:process.env.GIT_REVISION=$(../../common/scripts/git_version.sh) > bundle.js",
|
||||||
"bundle:u": "esbuild src/__start.ts --bundle --sourcemap=inline --minify --platform=node > bundle.js && mkdir -p ./dist && cp -r ./node_modules/uWebSockets.js/*.node ./dist",
|
"bundle:u": "esbuild src/__start.ts --bundle --sourcemap=inline --minify --platform=node > bundle.js && mkdir -p ./dist && cp -r ./node_modules/uWebSockets.js/*.node ./dist",
|
||||||
"docker:build": "docker build -t hardcoreeng/transactor .",
|
"docker:build": "docker build -t hardcoreeng/transactor .",
|
||||||
"docker:staging": "../../common/scripts/docker_tag.sh hardcoreeng/transactor staging",
|
"docker:staging": "../../common/scripts/docker_tag.sh hardcoreeng/transactor staging",
|
||||||
|
|||||||
@@ -85,7 +85,11 @@ setMetadata(serverCore.metadata.FrontUrl, frontUrl)
|
|||||||
setMetadata(serverToken.metadata.Secret, serverSecret)
|
setMetadata(serverToken.metadata.Secret, serverSecret)
|
||||||
|
|
||||||
// eslint-disable-next-line @typescript-eslint/no-floating-promises
|
// eslint-disable-next-line @typescript-eslint/no-floating-promises
|
||||||
console.log(`starting server on ${serverPort}`)
|
console.log(
|
||||||
|
`starting server on ${serverPort} git_version: ${process.env.GIT_REVISION ?? ''} model_version: ${
|
||||||
|
process.env.MODEL_VERSION ?? ''
|
||||||
|
}`
|
||||||
|
)
|
||||||
const shutdown = start(url, {
|
const shutdown = start(url, {
|
||||||
fullTextUrl: elasticUrl,
|
fullTextUrl: elasticUrl,
|
||||||
minioConf,
|
minioConf,
|
||||||
|
|||||||
@@ -1503,6 +1503,6 @@
|
|||||||
"packageName": "@hcengineering/server-view-resources",
|
"packageName": "@hcengineering/server-view-resources",
|
||||||
"projectFolder": "server-plugins/view-resources",
|
"projectFolder": "server-plugins/view-resources",
|
||||||
"shouldPublish": false
|
"shouldPublish": false
|
||||||
},
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -68,59 +68,67 @@ class ElasticDataAdapter implements DbAdapter {
|
|||||||
let finished = false
|
let finished = false
|
||||||
return {
|
return {
|
||||||
next: async () => {
|
next: async () => {
|
||||||
if (!listRecieved) {
|
try {
|
||||||
const q = {
|
if (!listRecieved) {
|
||||||
index: toWorkspaceString(this.workspaceId),
|
const q = {
|
||||||
type: '_doc',
|
index: toWorkspaceString(this.workspaceId),
|
||||||
scroll: '23h',
|
type: '_doc',
|
||||||
// search_type: 'scan', //if I use search_type then it requires size otherwise it shows 0 result
|
scroll: '23h',
|
||||||
size: 2500,
|
// search_type: 'scan', //if I use search_type then it requires size otherwise it shows 0 result
|
||||||
body: {
|
size: 2500,
|
||||||
query: {
|
body: {
|
||||||
match_all: {}
|
query: {
|
||||||
|
match_all: {}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
resp = await this.client.search(q)
|
||||||
|
if (resp.statusCode !== 200) {
|
||||||
|
console.error('failed elastic query', q, resp)
|
||||||
|
throw new PlatformError(unknownStatus(`failed to elastic query ${JSON.stringify(resp)}`))
|
||||||
|
}
|
||||||
|
buffer = resp.body.hits.hits.map((hit: any) => ({ _id: hit._id, data: hit._source }))
|
||||||
|
if (buffer.length === 0) {
|
||||||
|
finished = true
|
||||||
|
}
|
||||||
|
listRecieved = true
|
||||||
}
|
}
|
||||||
resp = await this.client.search(q)
|
if (pos === buffer.length && !finished) {
|
||||||
if (resp.statusCode !== 200) {
|
const params = {
|
||||||
console.error('failed elastic query', q, resp)
|
scrollId: resp.body._scroll_id as string,
|
||||||
throw new PlatformError(unknownStatus(`failed to elastic query ${JSON.stringify(resp)}`))
|
scroll: '23h'
|
||||||
|
}
|
||||||
|
resp = await this.client.scroll(params, { maxRetries: 5 })
|
||||||
|
if (resp.statusCode !== 200) {
|
||||||
|
console.error('failed elastic query scroll', params, resp)
|
||||||
|
throw new PlatformError(unknownStatus(`failed to elastic query ${JSON.stringify(resp)}`))
|
||||||
|
}
|
||||||
|
buffer = resp.body.hits.hits.map((hit: any) => ({ _id: hit._id, data: hit._source }))
|
||||||
|
if (buffer.length === 0) {
|
||||||
|
finished = true
|
||||||
|
}
|
||||||
|
pos = 0
|
||||||
}
|
}
|
||||||
buffer = resp.body.hits.hits.map((hit: any) => ({ _id: hit._id, data: hit._source }))
|
if (pos < buffer.length) {
|
||||||
if (buffer.length === 0) {
|
const item = buffer[pos]
|
||||||
finished = true
|
const hash = createHash('sha256')
|
||||||
|
const json = JSON.stringify(item.data)
|
||||||
|
hash.update(json)
|
||||||
|
const digest = hash.digest('base64')
|
||||||
|
const result = {
|
||||||
|
id: item._id,
|
||||||
|
hash: digest,
|
||||||
|
size: json.length
|
||||||
|
}
|
||||||
|
pos++
|
||||||
|
return result
|
||||||
}
|
}
|
||||||
listRecieved = true
|
} catch (e: any) {
|
||||||
}
|
if (e?.meta?.body?.error?.type === 'index_not_found_exception') {
|
||||||
if (pos === buffer.length && !finished) {
|
return undefined
|
||||||
const params = {
|
|
||||||
scrollId: resp.body._scroll_id as string,
|
|
||||||
scroll: '23h'
|
|
||||||
}
|
}
|
||||||
resp = await this.client.scroll(params, { maxRetries: 5 })
|
console.error(e)
|
||||||
if (resp.statusCode !== 200) {
|
throw new PlatformError(e)
|
||||||
console.error('failed elastic query scroll', params, resp)
|
|
||||||
throw new PlatformError(unknownStatus(`failed to elastic query ${JSON.stringify(resp)}`))
|
|
||||||
}
|
|
||||||
buffer = resp.body.hits.hits.map((hit: any) => ({ _id: hit._id, data: hit._source }))
|
|
||||||
if (buffer.length === 0) {
|
|
||||||
finished = true
|
|
||||||
}
|
|
||||||
pos = 0
|
|
||||||
}
|
|
||||||
if (pos < buffer.length) {
|
|
||||||
const item = buffer[pos]
|
|
||||||
const hash = createHash('sha256')
|
|
||||||
const json = JSON.stringify(item.data)
|
|
||||||
hash.update(json)
|
|
||||||
const digest = hash.digest('base64')
|
|
||||||
const result = {
|
|
||||||
id: item._id,
|
|
||||||
hash: digest,
|
|
||||||
size: json.length
|
|
||||||
}
|
|
||||||
pos++
|
|
||||||
return result
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
close: async () => {}
|
close: async () => {}
|
||||||
@@ -162,22 +170,29 @@ class ElasticDataAdapter implements DbAdapter {
|
|||||||
async upload (domain: Domain, docs: Doc[]): Promise<void> {
|
async upload (domain: Domain, docs: Doc[]): Promise<void> {
|
||||||
while (docs.length > 0) {
|
while (docs.length > 0) {
|
||||||
const part = docs.splice(0, 10000)
|
const part = docs.splice(0, 10000)
|
||||||
await this.client.deleteByQuery(
|
try {
|
||||||
{
|
await this.client.deleteByQuery(
|
||||||
type: '_doc',
|
{
|
||||||
index: toWorkspaceString(this.workspaceId),
|
type: '_doc',
|
||||||
body: {
|
index: toWorkspaceString(this.workspaceId),
|
||||||
query: {
|
body: {
|
||||||
terms: {
|
query: {
|
||||||
_id: Array.from(part.map((it) => it._id)),
|
terms: {
|
||||||
boost: 1.0
|
_id: Array.from(part.map((it) => it._id)),
|
||||||
}
|
boost: 1.0
|
||||||
},
|
}
|
||||||
size: part.length
|
},
|
||||||
}
|
size: part.length
|
||||||
},
|
}
|
||||||
undefined
|
},
|
||||||
)
|
undefined
|
||||||
|
)
|
||||||
|
} catch (e: any) {
|
||||||
|
if (e?.meta?.body?.error?.type !== 'index_not_found_exception') {
|
||||||
|
console.error(e)
|
||||||
|
throw new PlatformError(e)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
const operations = part.flatMap((doc) => [
|
const operations = part.flatMap((doc) => [
|
||||||
{ index: { _index: toWorkspaceString(this.workspaceId), _id: doc._id } },
|
{ index: { _index: toWorkspaceString(this.workspaceId), _id: doc._id } },
|
||||||
|
|||||||
@@ -8,7 +8,9 @@ export ELASTIC_URL=http://localhost:9200
|
|||||||
export SERVER_SECRET=secret
|
export SERVER_SECRET=secret
|
||||||
|
|
||||||
# Restore workspace contents in mongo/elastic
|
# Restore workspace contents in mongo/elastic
|
||||||
node ../dev/tool/bundle.js restore-workspace sanity-ws sanity-ws/
|
node ../dev/tool/bundle.js backup-restore ./sanity-ws sanity-ws
|
||||||
|
|
||||||
|
node ../dev/tool/bundle.js upgrade-workspace sanity-ws
|
||||||
|
|
||||||
# Re-assign user to workspace.
|
# Re-assign user to workspace.
|
||||||
node ../dev/tool/bundle.js assign-workspace user1 sanity-ws
|
node ../dev/tool/bundle.js assign-workspace user1 sanity-ws
|
||||||
|
|||||||
@@ -1,7 +1,9 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
# Restore workspace contents in mongo/elastic
|
# Restore workspace contents in mongo/elastic
|
||||||
./tool.sh restore-workspace sanity-ws sanity-ws/
|
./tool.sh backup-restore ./sanity-ws sanity-ws
|
||||||
|
|
||||||
|
./tool.sh upgrade-workspace sanity-ws
|
||||||
|
|
||||||
# Re-assign user to workspace.
|
# Re-assign user to workspace.
|
||||||
./tool.sh assign-workspace user1 sanity-ws
|
./tool.sh assign-workspace user1 sanity-ws
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
Before Width: | Height: | Size: 100 KiB |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
Before Width: | Height: | Size: 100 KiB |
@@ -1,146 +0,0 @@
|
|||||||
{
|
|
||||||
"version": "0.6.6",
|
|
||||||
"collections": [
|
|
||||||
{
|
|
||||||
"name": "inventory",
|
|
||||||
"file": "inventory.json"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "templates",
|
|
||||||
"file": "templates.json"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "channel",
|
|
||||||
"file": "channel.json"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "notification",
|
|
||||||
"file": "notification.json"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "gmail",
|
|
||||||
"file": "gmail.json"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "state",
|
|
||||||
"file": "state.json"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "tags",
|
|
||||||
"file": "tags.json"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "contact",
|
|
||||||
"file": "contact.json"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "setting",
|
|
||||||
"file": "setting.json"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "telegram",
|
|
||||||
"file": "telegram.json"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "recruit",
|
|
||||||
"file": "recruit.json"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "comment",
|
|
||||||
"file": "comment.json"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "calendar",
|
|
||||||
"file": "calendar.json"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "chunter",
|
|
||||||
"file": "chunter.json"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "space",
|
|
||||||
"file": "space.json"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "attachment",
|
|
||||||
"file": "attachment.json"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "kanban",
|
|
||||||
"file": "kanban.json"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "task",
|
|
||||||
"file": "task.json"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "tx",
|
|
||||||
"file": "tx.json"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"minioData": [
|
|
||||||
{
|
|
||||||
"name": "0b9ad789-47a8-4d5a-ab5f-c8f1c01fd283",
|
|
||||||
"lastModified": "2022-03-29T10:47:10.580Z",
|
|
||||||
"etag": "569f23247d1c037713b66d9ba9ae4e9c",
|
|
||||||
"size": 19315,
|
|
||||||
"metaData": {
|
|
||||||
"content-type": "application/pdf"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "2c6e90a4-c191-46c4-aa9f-921b67b4abc9",
|
|
||||||
"lastModified": "2022-03-29T10:47:10.580Z",
|
|
||||||
"etag": "569f23247d1c037713b66d9ba9ae4e9c",
|
|
||||||
"size": 19315,
|
|
||||||
"metaData": {
|
|
||||||
"content-type": "application/pdf"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "85b2dd5f-23cd-4c20-84df-98b58ffbc120",
|
|
||||||
"lastModified": "2022-03-29T10:47:10.610Z",
|
|
||||||
"etag": "1f110617c0cb670ab0dbf56cd64600d2",
|
|
||||||
"size": 102673,
|
|
||||||
"metaData": {
|
|
||||||
"content-type": "image/png"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "97a572d1-70b3-4898-8998-412e0117b15c",
|
|
||||||
"lastModified": "2022-03-29T10:47:10.590Z",
|
|
||||||
"etag": "569f23247d1c037713b66d9ba9ae4e9c",
|
|
||||||
"size": 19315,
|
|
||||||
"metaData": {
|
|
||||||
"content-type": "application/pdf"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "b1acc1f0-349c-461a-a022-2b04ff39fe32",
|
|
||||||
"lastModified": "2022-03-29T10:47:10.610Z",
|
|
||||||
"etag": "569f23247d1c037713b66d9ba9ae4e9c",
|
|
||||||
"size": 19315,
|
|
||||||
"metaData": {
|
|
||||||
"content-type": "application/pdf"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "c9e3ed06-a0cc-4920-8eed-2ef227f73b9d",
|
|
||||||
"lastModified": "2022-03-29T10:47:10.610Z",
|
|
||||||
"etag": "569f23247d1c037713b66d9ba9ae4e9c",
|
|
||||||
"size": 19315,
|
|
||||||
"metaData": {
|
|
||||||
"content-type": "application/pdf"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "e9c764ea-6d56-4773-83ff-fe485caadb11",
|
|
||||||
"lastModified": "2022-03-29T10:47:10.640Z",
|
|
||||||
"etag": "1f110617c0cb670ab0dbf56cd64600d2",
|
|
||||||
"size": 102673,
|
|
||||||
"metaData": {
|
|
||||||
"content-type": "image/png"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,47 +0,0 @@
|
|||||||
[
|
|
||||||
{
|
|
||||||
"_id": "61f108bd3a1b1a24cfdef3ff",
|
|
||||||
"_class": "attachment:class:Attachment",
|
|
||||||
"space": "recruit:space:CandidatesPublic",
|
|
||||||
"modifiedBy": "61f1031c1badffab2bb33861",
|
|
||||||
"modifiedOn": 1643186365934,
|
|
||||||
"name": "Markdown.pdf",
|
|
||||||
"file": "c9e3ed06-a0cc-4920-8eed-2ef227f73b9d",
|
|
||||||
"type": "application/pdf",
|
|
||||||
"size": 19315,
|
|
||||||
"lastModified": 1570042625000,
|
|
||||||
"attachedTo": "61f1031cff96c329e8f3d68f",
|
|
||||||
"attachedToClass": "contact:class:Person",
|
|
||||||
"collection": "attachments"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "61f109353a1b1a24cfdef402",
|
|
||||||
"_class": "attachment:class:Attachment",
|
|
||||||
"space": "contact:space:Contacts",
|
|
||||||
"modifiedBy": "61f1031c1badffab2bb33861",
|
|
||||||
"modifiedOn": 1643186485133,
|
|
||||||
"name": "Markdown.png",
|
|
||||||
"file": "85b2dd5f-23cd-4c20-84df-98b58ffbc120",
|
|
||||||
"type": "image/png",
|
|
||||||
"size": 102673,
|
|
||||||
"lastModified": 1570041924000,
|
|
||||||
"attachedTo": "61f104ba25355d019917dbf8",
|
|
||||||
"attachedToClass": "contact:class:Person",
|
|
||||||
"collection": "attachments"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "61f1096f3a1b1a24cfdef417",
|
|
||||||
"_class": "attachment:class:Photo",
|
|
||||||
"space": "inventory:space:Products",
|
|
||||||
"modifiedBy": "61f1031c1badffab2bb33861",
|
|
||||||
"modifiedOn": 1643186543952,
|
|
||||||
"name": "Markdown.png",
|
|
||||||
"file": "e9c764ea-6d56-4773-83ff-fe485caadb11",
|
|
||||||
"type": "image/png",
|
|
||||||
"size": 102673,
|
|
||||||
"lastModified": 1570041924000,
|
|
||||||
"attachedTo": "61f109603a1b1a24cfdef414",
|
|
||||||
"attachedToClass": "inventory:class:Product",
|
|
||||||
"collection": "photos"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
Binary file not shown.
@@ -1 +0,0 @@
|
|||||||
[]
|
|
||||||
@@ -1,38 +0,0 @@
|
|||||||
[
|
|
||||||
{
|
|
||||||
"_id": "6242e3ae1308858e112f9e52",
|
|
||||||
"_class": "contact:class:Channel",
|
|
||||||
"attachedToClass": "contact:class:Person",
|
|
||||||
"attachedTo": "61f1031cff96c329e8f3d68c",
|
|
||||||
"space": "recruit:space:CandidatesPublic",
|
|
||||||
"modifiedBy": "61f1031bff96c329e8f3d61d",
|
|
||||||
"modifiedOn": 1643184924073,
|
|
||||||
"collection": "channels",
|
|
||||||
"value": "andrey@hc.engineering",
|
|
||||||
"provider": "contact:channelProvider:Email"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "6242e3ae1308858e112f9e54",
|
|
||||||
"_class": "contact:class:Channel",
|
|
||||||
"attachedToClass": "contact:class:Person",
|
|
||||||
"attachedTo": "61f1031cff96c329e8f3d68f",
|
|
||||||
"space": "recruit:space:CandidatesPublic",
|
|
||||||
"modifiedBy": "61f1031bff96c329e8f3d61d",
|
|
||||||
"modifiedOn": 1643184924157,
|
|
||||||
"collection": "channels",
|
|
||||||
"value": "marina@hc.engineering",
|
|
||||||
"provider": "contact:channelProvider:Email"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "6242e3ae1308858e112f9e56",
|
|
||||||
"_class": "contact:class:Channel",
|
|
||||||
"attachedToClass": "contact:class:Person",
|
|
||||||
"attachedTo": "61f1031cff96c329e8f3d692",
|
|
||||||
"space": "recruit:space:CandidatesPublic",
|
|
||||||
"modifiedBy": "61f1031bff96c329e8f3d61d",
|
|
||||||
"modifiedOn": 1643184924178,
|
|
||||||
"collection": "channels",
|
|
||||||
"value": "alex@hc.engineering",
|
|
||||||
"provider": "contact:channelProvider:Email"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
[
|
|
||||||
{
|
|
||||||
"_id": "61f1049225355d019917dbda",
|
|
||||||
"_class": "chunter:class:Message",
|
|
||||||
"space": "chunter:space:General",
|
|
||||||
"modifiedBy": "61f1031c1badffab2bb33861",
|
|
||||||
"modifiedOn": 1643185298546,
|
|
||||||
"content": "<p>Hi Sanity</p>"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "61f1049a25355d019917dbdc",
|
|
||||||
"_class": "chunter:class:Message",
|
|
||||||
"space": "chunter:space:Random",
|
|
||||||
"modifiedBy": "61f1031c1badffab2bb33861",
|
|
||||||
"modifiedOn": 1643185306155,
|
|
||||||
"content": "<p>Hi <span data-type=\"reference\" class=\"reference\" data-id=\"61f1031c1badffab2bb3385f\" data-label=\"John Appleseed\" data-objectclass=\"contact:class:Employee\">@John Appleseed</span> </p>"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
@@ -1,52 +0,0 @@
|
|||||||
[
|
|
||||||
{
|
|
||||||
"_id": "61f1049a25355d019917dbde",
|
|
||||||
"_class": "chunter:class:Backlink",
|
|
||||||
"space": "chunter:space:Backlinks",
|
|
||||||
"modifiedBy": "61f1031c1badffab2bb33861",
|
|
||||||
"modifiedOn": 1643185306184,
|
|
||||||
"backlinkId": "chunter:space:Random",
|
|
||||||
"backlinkClass": "chunter:class:Channel",
|
|
||||||
"message": "<p>Hi <span data-type=\"reference\" class=\"reference\" data-id=\"61f1031c1badffab2bb3385f\" data-label=\"John Appleseed\" data-objectclass=\"contact:class:Employee\">@John Appleseed</span> </p>",
|
|
||||||
"attachedDocId": "61f1049a25355d019917dbdc",
|
|
||||||
"attachedTo": "61f1031c1badffab2bb3385f",
|
|
||||||
"attachedToClass": "contact:class:Employee",
|
|
||||||
"collection": "backlinks"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "61f1097a3a1b1a24cfdef41a",
|
|
||||||
"_class": "chunter:class:Comment",
|
|
||||||
"space": "61f104b625355d019917dbe9",
|
|
||||||
"modifiedBy": "61f1031c1badffab2bb33861",
|
|
||||||
"modifiedOn": 1643186554243,
|
|
||||||
"message": "<p>Some some stuff</p>",
|
|
||||||
"attachedTo": "61f104eb25355d019917dc0a",
|
|
||||||
"attachedToClass": "recruit:class:Applicant",
|
|
||||||
"collection": "comments"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "61f1097f3a1b1a24cfdef41d",
|
|
||||||
"_class": "chunter:class:Comment",
|
|
||||||
"space": "61f104b625355d019917dbe9",
|
|
||||||
"modifiedBy": "61f1031c1badffab2bb33861",
|
|
||||||
"modifiedOn": 1643186559510,
|
|
||||||
"message": "<p>Please talk to <span data-type=\"reference\" class=\"reference\" data-id=\"61f1031c1badffab2bb3385f\" data-label=\"John Appleseed\" data-objectclass=\"contact:class:Employee\">@John Appleseed</span> </p>",
|
|
||||||
"attachedTo": "61f104eb25355d019917dc0a",
|
|
||||||
"attachedToClass": "recruit:class:Applicant",
|
|
||||||
"collection": "comments"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "61f1097f3a1b1a24cfdef420",
|
|
||||||
"_class": "chunter:class:Backlink",
|
|
||||||
"space": "chunter:space:Backlinks",
|
|
||||||
"modifiedBy": "61f1031c1badffab2bb33861",
|
|
||||||
"modifiedOn": 1643186559571,
|
|
||||||
"backlinkId": "61f104eb25355d019917dc0a",
|
|
||||||
"backlinkClass": "recruit:class:Applicant",
|
|
||||||
"message": "<p>Please talk to <span data-type=\"reference\" class=\"reference\" data-id=\"61f1031c1badffab2bb3385f\" data-label=\"John Appleseed\" data-objectclass=\"contact:class:Employee\">@John Appleseed</span> </p>",
|
|
||||||
"attachedDocId": "61f1097f3a1b1a24cfdef41d",
|
|
||||||
"attachedTo": "61f1031c1badffab2bb3385f",
|
|
||||||
"attachedToClass": "contact:class:Employee",
|
|
||||||
"collection": "backlinks"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
@@ -1,115 +0,0 @@
|
|||||||
[
|
|
||||||
{
|
|
||||||
"_id": "61f1031bff96c329e8f3d61c",
|
|
||||||
"_class": "contact:class:Employee",
|
|
||||||
"space": "contact:space:Employee",
|
|
||||||
"modifiedBy": "61f1031bff96c329e8f3d61d",
|
|
||||||
"modifiedOn": 1643184924040,
|
|
||||||
"name": "Chen,Rosamund",
|
|
||||||
"city": "Mountain View",
|
|
||||||
"channels": 0,
|
|
||||||
"active": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "61f1031cff96c329e8f3d68c",
|
|
||||||
"_class": "contact:class:Person",
|
|
||||||
"space": "recruit:space:CandidatesPublic",
|
|
||||||
"modifiedBy": "61f1031bff96c329e8f3d61d",
|
|
||||||
"modifiedOn": 1643184924079,
|
|
||||||
"name": "P.,Andrey",
|
|
||||||
"city": "Monte Carlo",
|
|
||||||
"channels": 1,
|
|
||||||
"recruit:mixin:Candidate": {
|
|
||||||
"title": "Chief Architect"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "61f1031cff96c329e8f3d68f",
|
|
||||||
"_class": "contact:class:Person",
|
|
||||||
"space": "recruit:space:CandidatesPublic",
|
|
||||||
"modifiedBy": "61f1031c1badffab2bb33861",
|
|
||||||
"modifiedOn": 1643186365949,
|
|
||||||
"name": "M.,Marina",
|
|
||||||
"city": "Los Angeles",
|
|
||||||
"channels": 1,
|
|
||||||
"recruit:mixin:Candidate": {
|
|
||||||
"title": "Chief Designer",
|
|
||||||
"applications": 1
|
|
||||||
},
|
|
||||||
"attachments": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "61f1031cff96c329e8f3d692",
|
|
||||||
"_class": "contact:class:Person",
|
|
||||||
"space": "recruit:space:CandidatesPublic",
|
|
||||||
"modifiedBy": "61f1031c1badffab2bb33861",
|
|
||||||
"modifiedOn": 1643186502419,
|
|
||||||
"name": "P.,Alex",
|
|
||||||
"city": "Krasnodar, Russia",
|
|
||||||
"channels": 1,
|
|
||||||
"recruit:mixin:Candidate": {
|
|
||||||
"title": "Frontend Engineer",
|
|
||||||
"applications": 1
|
|
||||||
},
|
|
||||||
"lead:mixin:Customer": {
|
|
||||||
"__mixin": "true",
|
|
||||||
"leads": 1
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "61f1031c1badffab2bb3385f",
|
|
||||||
"_class": "contact:class:Employee",
|
|
||||||
"space": "contact:space:Employee",
|
|
||||||
"modifiedBy": "61f1031c1badffab2bb33861",
|
|
||||||
"modifiedOn": 1643186559576,
|
|
||||||
"name": "Appleseed,John",
|
|
||||||
"city": "",
|
|
||||||
"channels": 0,
|
|
||||||
"backlinks": 2
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "61f1047625355d019917dbd4",
|
|
||||||
"_class": "contact:class:Person",
|
|
||||||
"space": "contact:space:Contacts",
|
|
||||||
"modifiedBy": "61f1031c1badffab2bb33861",
|
|
||||||
"modifiedOn": 1643185270660,
|
|
||||||
"name": "Delete1,Person",
|
|
||||||
"city": null,
|
|
||||||
"channels": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "61f1047e25355d019917dbd6",
|
|
||||||
"_class": "contact:class:Organization",
|
|
||||||
"space": "contact:space:Contacts",
|
|
||||||
"modifiedBy": "61f1031c1badffab2bb33861",
|
|
||||||
"modifiedOn": 1643185278589,
|
|
||||||
"name": "Apple",
|
|
||||||
"channels": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "61f1048a25355d019917dbd8",
|
|
||||||
"_class": "contact:class:Organization",
|
|
||||||
"space": "contact:space:Contacts",
|
|
||||||
"modifiedBy": "61f1031c1badffab2bb33861",
|
|
||||||
"modifiedOn": 1643185290358,
|
|
||||||
"name": "DeleteOrg",
|
|
||||||
"channels": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "61f104ba25355d019917dbf8",
|
|
||||||
"_class": "contact:class:Person",
|
|
||||||
"space": "contact:space:Contacts",
|
|
||||||
"modifiedBy": "61f1031c1badffab2bb33861",
|
|
||||||
"modifiedOn": 1643186485137,
|
|
||||||
"name": "Multiseed,John",
|
|
||||||
"city": null,
|
|
||||||
"channels": 0,
|
|
||||||
"recruit:mixin:Candidate": {
|
|
||||||
"onsite": null,
|
|
||||||
"remote": null,
|
|
||||||
"title": null,
|
|
||||||
"applications": 1
|
|
||||||
},
|
|
||||||
"attachments": 1
|
|
||||||
}
|
|
||||||
]
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
[]
|
|
||||||
@@ -1,37 +0,0 @@
|
|||||||
[
|
|
||||||
{
|
|
||||||
"_id": "61f1094e3a1b1a24cfdef40b",
|
|
||||||
"_class": "inventory:class:Category",
|
|
||||||
"space": "inventory:space:Category",
|
|
||||||
"modifiedBy": "61f1031c1badffab2bb33861",
|
|
||||||
"modifiedOn": 1643186528693,
|
|
||||||
"name": "Mandatory",
|
|
||||||
"attachedTo": "inventory:global:Category",
|
|
||||||
"attachedToClass": "inventory:class:Category",
|
|
||||||
"collection": "categories",
|
|
||||||
"products": 2
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "61f1095e3a1b1a24cfdef410",
|
|
||||||
"_class": "inventory:class:Product",
|
|
||||||
"space": "inventory:space:Products",
|
|
||||||
"modifiedBy": "61f1031c1badffab2bb33861",
|
|
||||||
"modifiedOn": 1643186526130,
|
|
||||||
"name": "Chair",
|
|
||||||
"attachedTo": "61f1094e3a1b1a24cfdef40b",
|
|
||||||
"attachedToClass": "inventory:class:Category",
|
|
||||||
"collection": "products"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "61f109603a1b1a24cfdef414",
|
|
||||||
"_class": "inventory:class:Product",
|
|
||||||
"space": "inventory:space:Products",
|
|
||||||
"modifiedBy": "61f1031c1badffab2bb33861",
|
|
||||||
"modifiedOn": 1643186543957,
|
|
||||||
"name": "Table",
|
|
||||||
"attachedTo": "61f1094e3a1b1a24cfdef40b",
|
|
||||||
"attachedToClass": "inventory:class:Category",
|
|
||||||
"collection": "products",
|
|
||||||
"photos": 1
|
|
||||||
}
|
|
||||||
]
|
|
||||||
@@ -1,527 +0,0 @@
|
|||||||
[
|
|
||||||
{
|
|
||||||
"_id": "61f1031bff96c329e8f3d621",
|
|
||||||
"_class": "task:class:Sequence",
|
|
||||||
"space": "task:space:Sequence",
|
|
||||||
"modifiedBy": "61f1031c1badffab2bb33861",
|
|
||||||
"modifiedOn": 1643185322297,
|
|
||||||
"attachedTo": "task:class:Issue",
|
|
||||||
"sequence": 2
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "task:template:DefaultProject",
|
|
||||||
"_class": "task:class:KanbanTemplate",
|
|
||||||
"space": "task:space:ProjectTemplates",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1643184923832,
|
|
||||||
"doneStatesC": 2,
|
|
||||||
"statesC": 5,
|
|
||||||
"title": "Default project"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "61f1031bff96c329e8f3d624",
|
|
||||||
"_class": "task:class:WonStateTemplate",
|
|
||||||
"space": "task:space:ProjectTemplates",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1643184923772,
|
|
||||||
"rank": "0|900000:",
|
|
||||||
"title": "Won",
|
|
||||||
"attachedTo": "task:template:DefaultProject",
|
|
||||||
"attachedToClass": "task:class:KanbanTemplate",
|
|
||||||
"collection": "doneStatesC"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "61f1031bff96c329e8f3d627",
|
|
||||||
"_class": "task:class:LostStateTemplate",
|
|
||||||
"space": "task:space:ProjectTemplates",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1643184923773,
|
|
||||||
"rank": "0|i00000:",
|
|
||||||
"title": "Lost",
|
|
||||||
"attachedTo": "task:template:DefaultProject",
|
|
||||||
"attachedToClass": "task:class:KanbanTemplate",
|
|
||||||
"collection": "doneStatesC"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "61f1031bff96c329e8f3d62a",
|
|
||||||
"_class": "task:class:StateTemplate",
|
|
||||||
"space": "task:space:ProjectTemplates",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1643184923816,
|
|
||||||
"rank": "0|555555:",
|
|
||||||
"title": "Open",
|
|
||||||
"color": 9,
|
|
||||||
"attachedTo": "task:template:DefaultProject",
|
|
||||||
"attachedToClass": "task:class:KanbanTemplate",
|
|
||||||
"collection": "statesC"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "61f1031bff96c329e8f3d62d",
|
|
||||||
"_class": "task:class:StateTemplate",
|
|
||||||
"space": "task:space:ProjectTemplates",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1643184923816,
|
|
||||||
"rank": "0|aaaaaa:",
|
|
||||||
"title": "In Progress",
|
|
||||||
"color": 10,
|
|
||||||
"attachedTo": "task:template:DefaultProject",
|
|
||||||
"attachedToClass": "task:class:KanbanTemplate",
|
|
||||||
"collection": "statesC"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "61f1031bff96c329e8f3d630",
|
|
||||||
"_class": "task:class:StateTemplate",
|
|
||||||
"space": "task:space:ProjectTemplates",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1643184923816,
|
|
||||||
"rank": "0|ffffff:",
|
|
||||||
"title": "Under review",
|
|
||||||
"color": 1,
|
|
||||||
"attachedTo": "task:template:DefaultProject",
|
|
||||||
"attachedToClass": "task:class:KanbanTemplate",
|
|
||||||
"collection": "statesC"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "61f1031bff96c329e8f3d636",
|
|
||||||
"_class": "task:class:StateTemplate",
|
|
||||||
"space": "task:space:ProjectTemplates",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1643184923817,
|
|
||||||
"rank": "0|pppppp:",
|
|
||||||
"title": "Invalid",
|
|
||||||
"color": 11,
|
|
||||||
"attachedTo": "task:template:DefaultProject",
|
|
||||||
"attachedToClass": "task:class:KanbanTemplate",
|
|
||||||
"collection": "statesC"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "61f1031bff96c329e8f3d633",
|
|
||||||
"_class": "task:class:StateTemplate",
|
|
||||||
"space": "task:space:ProjectTemplates",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1643184923816,
|
|
||||||
"rank": "0|kkkkkk:",
|
|
||||||
"title": "Done",
|
|
||||||
"color": 0,
|
|
||||||
"attachedTo": "task:template:DefaultProject",
|
|
||||||
"attachedToClass": "task:class:KanbanTemplate",
|
|
||||||
"collection": "statesC"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "61f1031bff96c329e8f3d647",
|
|
||||||
"_class": "task:class:Kanban",
|
|
||||||
"space": "task:space:TasksPublic",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1643184923936,
|
|
||||||
"attachedTo": "task:space:TasksPublic"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "61f1031bff96c329e8f3d649",
|
|
||||||
"_class": "task:class:Sequence",
|
|
||||||
"space": "task:space:Sequence",
|
|
||||||
"modifiedBy": "61f1031c1badffab2bb33861",
|
|
||||||
"modifiedOn": 1643186502404,
|
|
||||||
"attachedTo": "lead:class:Lead",
|
|
||||||
"sequence": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "lead:template:DefaultFunnel",
|
|
||||||
"_class": "task:class:KanbanTemplate",
|
|
||||||
"space": "lead:space:FunnelTemplates",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1643184923975,
|
|
||||||
"doneStatesC": 2,
|
|
||||||
"statesC": 6,
|
|
||||||
"title": "Default funnel"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "61f1031bff96c329e8f3d64c",
|
|
||||||
"_class": "task:class:WonStateTemplate",
|
|
||||||
"space": "lead:space:FunnelTemplates",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1643184923948,
|
|
||||||
"rank": "0|900000:",
|
|
||||||
"title": "Won",
|
|
||||||
"attachedTo": "lead:template:DefaultFunnel",
|
|
||||||
"attachedToClass": "task:class:KanbanTemplate",
|
|
||||||
"collection": "doneStatesC"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "61f1031bff96c329e8f3d64f",
|
|
||||||
"_class": "task:class:LostStateTemplate",
|
|
||||||
"space": "lead:space:FunnelTemplates",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1643184923949,
|
|
||||||
"rank": "0|i00000:",
|
|
||||||
"title": "Lost",
|
|
||||||
"attachedTo": "lead:template:DefaultFunnel",
|
|
||||||
"attachedToClass": "task:class:KanbanTemplate",
|
|
||||||
"collection": "doneStatesC"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "61f1031bff96c329e8f3d652",
|
|
||||||
"_class": "task:class:StateTemplate",
|
|
||||||
"space": "lead:space:FunnelTemplates",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1643184923959,
|
|
||||||
"rank": "0|4i0000:",
|
|
||||||
"title": "Incoming",
|
|
||||||
"color": 9,
|
|
||||||
"attachedTo": "lead:template:DefaultFunnel",
|
|
||||||
"attachedToClass": "task:class:KanbanTemplate",
|
|
||||||
"collection": "statesC"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "61f1031bff96c329e8f3d655",
|
|
||||||
"_class": "task:class:StateTemplate",
|
|
||||||
"space": "lead:space:FunnelTemplates",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1643184923959,
|
|
||||||
"rank": "0|900000:",
|
|
||||||
"title": "Negotation",
|
|
||||||
"color": 10,
|
|
||||||
"attachedTo": "lead:template:DefaultFunnel",
|
|
||||||
"attachedToClass": "task:class:KanbanTemplate",
|
|
||||||
"collection": "statesC"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "61f1031bff96c329e8f3d658",
|
|
||||||
"_class": "task:class:StateTemplate",
|
|
||||||
"space": "lead:space:FunnelTemplates",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1643184923959,
|
|
||||||
"rank": "0|di0000:",
|
|
||||||
"title": "Offer preparing",
|
|
||||||
"color": 1,
|
|
||||||
"attachedTo": "lead:template:DefaultFunnel",
|
|
||||||
"attachedToClass": "task:class:KanbanTemplate",
|
|
||||||
"collection": "statesC"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "61f1031bff96c329e8f3d65b",
|
|
||||||
"_class": "task:class:StateTemplate",
|
|
||||||
"space": "lead:space:FunnelTemplates",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1643184923959,
|
|
||||||
"rank": "0|i00000:",
|
|
||||||
"title": "Make a decision",
|
|
||||||
"color": 0,
|
|
||||||
"attachedTo": "lead:template:DefaultFunnel",
|
|
||||||
"attachedToClass": "task:class:KanbanTemplate",
|
|
||||||
"collection": "statesC"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "61f1031bff96c329e8f3d65e",
|
|
||||||
"_class": "task:class:StateTemplate",
|
|
||||||
"space": "lead:space:FunnelTemplates",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1643184923959,
|
|
||||||
"rank": "0|mi0000:",
|
|
||||||
"title": "Contract conclusion",
|
|
||||||
"color": 11,
|
|
||||||
"attachedTo": "lead:template:DefaultFunnel",
|
|
||||||
"attachedToClass": "task:class:KanbanTemplate",
|
|
||||||
"collection": "statesC"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "61f1031bff96c329e8f3d661",
|
|
||||||
"_class": "task:class:StateTemplate",
|
|
||||||
"space": "lead:space:FunnelTemplates",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1643184923959,
|
|
||||||
"rank": "0|r00000:",
|
|
||||||
"title": "Done",
|
|
||||||
"color": 9,
|
|
||||||
"attachedTo": "lead:template:DefaultFunnel",
|
|
||||||
"attachedToClass": "task:class:KanbanTemplate",
|
|
||||||
"collection": "statesC"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "61f1031cff96c329e8f3d674",
|
|
||||||
"_class": "task:class:Kanban",
|
|
||||||
"space": "lead:space:DefaultFunnel",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1643184924008,
|
|
||||||
"attachedTo": "lead:space:DefaultFunnel"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "61f1031cff96c329e8f3d676",
|
|
||||||
"_class": "task:class:Sequence",
|
|
||||||
"space": "task:space:Sequence",
|
|
||||||
"modifiedBy": "61f1031c1badffab2bb33861",
|
|
||||||
"modifiedOn": 1643185387864,
|
|
||||||
"attachedTo": "recruit:class:Applicant",
|
|
||||||
"sequence": 3
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "recruit:template:DefaultVacancy",
|
|
||||||
"_class": "task:class:KanbanTemplate",
|
|
||||||
"space": "recruit:space:VacancyTemplates",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1643184924034,
|
|
||||||
"doneStatesC": 2,
|
|
||||||
"statesC": 4,
|
|
||||||
"title": "Default vacancy"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "61f1031cff96c329e8f3d679",
|
|
||||||
"_class": "task:class:WonStateTemplate",
|
|
||||||
"space": "recruit:space:VacancyTemplates",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1643184924017,
|
|
||||||
"rank": "0|900000:",
|
|
||||||
"title": "Won",
|
|
||||||
"attachedTo": "recruit:template:DefaultVacancy",
|
|
||||||
"attachedToClass": "task:class:KanbanTemplate",
|
|
||||||
"collection": "doneStatesC"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "61f1031cff96c329e8f3d67c",
|
|
||||||
"_class": "task:class:LostStateTemplate",
|
|
||||||
"space": "recruit:space:VacancyTemplates",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1643184924017,
|
|
||||||
"rank": "0|i00000:",
|
|
||||||
"title": "Lost",
|
|
||||||
"attachedTo": "recruit:template:DefaultVacancy",
|
|
||||||
"attachedToClass": "task:class:KanbanTemplate",
|
|
||||||
"collection": "doneStatesC"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "61f1031cff96c329e8f3d67f",
|
|
||||||
"_class": "task:class:StateTemplate",
|
|
||||||
"space": "recruit:space:VacancyTemplates",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1643184924026,
|
|
||||||
"rank": "0|600000:",
|
|
||||||
"title": "HR Interview",
|
|
||||||
"color": 9,
|
|
||||||
"attachedTo": "recruit:template:DefaultVacancy",
|
|
||||||
"attachedToClass": "task:class:KanbanTemplate",
|
|
||||||
"collection": "statesC"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "61f1031cff96c329e8f3d682",
|
|
||||||
"_class": "task:class:StateTemplate",
|
|
||||||
"space": "recruit:space:VacancyTemplates",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1643184924026,
|
|
||||||
"rank": "0|c00000:",
|
|
||||||
"title": "Technical Interview",
|
|
||||||
"color": 10,
|
|
||||||
"attachedTo": "recruit:template:DefaultVacancy",
|
|
||||||
"attachedToClass": "task:class:KanbanTemplate",
|
|
||||||
"collection": "statesC"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "61f1031cff96c329e8f3d685",
|
|
||||||
"_class": "task:class:StateTemplate",
|
|
||||||
"space": "recruit:space:VacancyTemplates",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1643184924026,
|
|
||||||
"rank": "0|i00000:",
|
|
||||||
"title": "Test task",
|
|
||||||
"color": 1,
|
|
||||||
"attachedTo": "recruit:template:DefaultVacancy",
|
|
||||||
"attachedToClass": "task:class:KanbanTemplate",
|
|
||||||
"collection": "statesC"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "61f1031cff96c329e8f3d688",
|
|
||||||
"_class": "task:class:StateTemplate",
|
|
||||||
"space": "recruit:space:VacancyTemplates",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1643184924026,
|
|
||||||
"rank": "0|o00000:",
|
|
||||||
"title": "Offer",
|
|
||||||
"color": 0,
|
|
||||||
"attachedTo": "recruit:template:DefaultVacancy",
|
|
||||||
"attachedToClass": "task:class:KanbanTemplate",
|
|
||||||
"collection": "statesC"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "61f104b625355d019917dbf7",
|
|
||||||
"_class": "task:class:Kanban",
|
|
||||||
"space": "61f104b625355d019917dbe9",
|
|
||||||
"modifiedBy": "61f1031c1badffab2bb33861",
|
|
||||||
"modifiedOn": 1643185334637,
|
|
||||||
"attachedTo": "61f104b625355d019917dbe9"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "recruit:template:Interview",
|
|
||||||
"_class": "task:class:KanbanTemplate",
|
|
||||||
"space": "recruit:space:ReviewTemplates",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1648550835883,
|
|
||||||
"doneStatesC": 2,
|
|
||||||
"statesC": 3,
|
|
||||||
"title": "Interview"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "6242e3b31308858e112f9e75",
|
|
||||||
"_class": "task:class:WonStateTemplate",
|
|
||||||
"space": "recruit:space:ReviewTemplates",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1648550835826,
|
|
||||||
"rank": "0|900000:",
|
|
||||||
"title": "Pass",
|
|
||||||
"attachedTo": "recruit:template:Interview",
|
|
||||||
"attachedToClass": "task:class:KanbanTemplate",
|
|
||||||
"collection": "doneStatesC"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "6242e3b31308858e112f9e78",
|
|
||||||
"_class": "task:class:LostStateTemplate",
|
|
||||||
"space": "recruit:space:ReviewTemplates",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1648550835826,
|
|
||||||
"rank": "0|i00000:",
|
|
||||||
"title": "Failed",
|
|
||||||
"attachedTo": "recruit:template:Interview",
|
|
||||||
"attachedToClass": "task:class:KanbanTemplate",
|
|
||||||
"collection": "doneStatesC"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "6242e3b31308858e112f9e7b",
|
|
||||||
"_class": "task:class:StateTemplate",
|
|
||||||
"space": "recruit:space:ReviewTemplates",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1648550835882,
|
|
||||||
"rank": "0|777777:",
|
|
||||||
"title": "Prepare",
|
|
||||||
"color": 9,
|
|
||||||
"attachedTo": "recruit:template:Interview",
|
|
||||||
"attachedToClass": "task:class:KanbanTemplate",
|
|
||||||
"collection": "statesC"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "6242e3b31308858e112f9e7e",
|
|
||||||
"_class": "task:class:StateTemplate",
|
|
||||||
"space": "recruit:space:ReviewTemplates",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1648550835882,
|
|
||||||
"rank": "0|eeeeee:",
|
|
||||||
"title": "Appointment",
|
|
||||||
"color": 10,
|
|
||||||
"attachedTo": "recruit:template:Interview",
|
|
||||||
"attachedToClass": "task:class:KanbanTemplate",
|
|
||||||
"collection": "statesC"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "6242e3b31308858e112f9e81",
|
|
||||||
"_class": "task:class:StateTemplate",
|
|
||||||
"space": "recruit:space:ReviewTemplates",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1648550835883,
|
|
||||||
"rank": "0|llllll:",
|
|
||||||
"title": "Opinions",
|
|
||||||
"color": 1,
|
|
||||||
"attachedTo": "recruit:template:Interview",
|
|
||||||
"attachedToClass": "task:class:KanbanTemplate",
|
|
||||||
"collection": "statesC"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "recruit:template:Task",
|
|
||||||
"_class": "task:class:KanbanTemplate",
|
|
||||||
"space": "recruit:space:ReviewTemplates",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1648550836060,
|
|
||||||
"doneStatesC": 2,
|
|
||||||
"statesC": 4,
|
|
||||||
"title": "Test task"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "6242e3b41308858e112f9e85",
|
|
||||||
"_class": "task:class:WonStateTemplate",
|
|
||||||
"space": "recruit:space:ReviewTemplates",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1648550836002,
|
|
||||||
"rank": "0|900000:",
|
|
||||||
"title": "Pass",
|
|
||||||
"attachedTo": "recruit:template:Task",
|
|
||||||
"attachedToClass": "task:class:KanbanTemplate",
|
|
||||||
"collection": "doneStatesC"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "6242e3b41308858e112f9e88",
|
|
||||||
"_class": "task:class:LostStateTemplate",
|
|
||||||
"space": "recruit:space:ReviewTemplates",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1648550836002,
|
|
||||||
"rank": "0|i00000:",
|
|
||||||
"title": "Failed",
|
|
||||||
"attachedTo": "recruit:template:Task",
|
|
||||||
"attachedToClass": "task:class:KanbanTemplate",
|
|
||||||
"collection": "doneStatesC"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "6242e3b41308858e112f9e8b",
|
|
||||||
"_class": "task:class:StateTemplate",
|
|
||||||
"space": "recruit:space:ReviewTemplates",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1648550836059,
|
|
||||||
"rank": "0|600000:",
|
|
||||||
"title": "Prepare",
|
|
||||||
"color": 9,
|
|
||||||
"attachedTo": "recruit:template:Task",
|
|
||||||
"attachedToClass": "task:class:KanbanTemplate",
|
|
||||||
"collection": "statesC"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "6242e3b41308858e112f9e8e",
|
|
||||||
"_class": "task:class:StateTemplate",
|
|
||||||
"space": "recruit:space:ReviewTemplates",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1648550836059,
|
|
||||||
"rank": "0|c00000:",
|
|
||||||
"title": "Assigned",
|
|
||||||
"color": 10,
|
|
||||||
"attachedTo": "recruit:template:Task",
|
|
||||||
"attachedToClass": "task:class:KanbanTemplate",
|
|
||||||
"collection": "statesC"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "6242e3b41308858e112f9e91",
|
|
||||||
"_class": "task:class:StateTemplate",
|
|
||||||
"space": "recruit:space:ReviewTemplates",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1648550836059,
|
|
||||||
"rank": "0|i00000:",
|
|
||||||
"title": "Review",
|
|
||||||
"color": 1,
|
|
||||||
"attachedTo": "recruit:template:Task",
|
|
||||||
"attachedToClass": "task:class:KanbanTemplate",
|
|
||||||
"collection": "statesC"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "6242e3b41308858e112f9e94",
|
|
||||||
"_class": "task:class:StateTemplate",
|
|
||||||
"space": "recruit:space:ReviewTemplates",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1648550836059,
|
|
||||||
"rank": "0|o00000:",
|
|
||||||
"title": "Opinions",
|
|
||||||
"color": 4,
|
|
||||||
"attachedTo": "recruit:template:Task",
|
|
||||||
"attachedToClass": "task:class:KanbanTemplate",
|
|
||||||
"collection": "statesC"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "6242e3b41308858e112f9e97",
|
|
||||||
"_class": "task:class:Sequence",
|
|
||||||
"space": "task:space:Sequence",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1648550836377,
|
|
||||||
"attachedTo": "recruit:class:Review",
|
|
||||||
"sequence": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "6242e3b41308858e112f9e99",
|
|
||||||
"_class": "task:class:Sequence",
|
|
||||||
"space": "task:space:Sequence",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1648550836388,
|
|
||||||
"attachedTo": "recruit:class:Opinion",
|
|
||||||
"sequence": 0
|
|
||||||
}
|
|
||||||
]
|
|
||||||
@@ -1,410 +0,0 @@
|
|||||||
[
|
|
||||||
{
|
|
||||||
"_id": "6242e3b29238293ff4fe079a",
|
|
||||||
"_class": "notification:class:LastView",
|
|
||||||
"space": "notification:space:Notifications",
|
|
||||||
"modifiedBy": "61f1031c1badffab2bb33861",
|
|
||||||
"modifiedOn": 1648550834739,
|
|
||||||
"user": "61f1031c1badffab2bb33861",
|
|
||||||
"lastView": 1643185334518,
|
|
||||||
"attachedTo": "61f104b625355d019917dbe9",
|
|
||||||
"attachedToClass": "recruit:class:Vacancy",
|
|
||||||
"collection": "lastViews"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "6242e3b39238293ff4fe079c",
|
|
||||||
"_class": "notification:class:LastView",
|
|
||||||
"space": "notification:space:Notifications",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1648550835093,
|
|
||||||
"user": "core:account:System",
|
|
||||||
"lastView": 1648550835069,
|
|
||||||
"attachedTo": "chunter:space:General",
|
|
||||||
"attachedToClass": "chunter:class:Channel",
|
|
||||||
"collection": "lastViews"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "6242e3b39238293ff4fe079e",
|
|
||||||
"_class": "notification:class:LastView",
|
|
||||||
"space": "notification:space:Notifications",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1648550835154,
|
|
||||||
"user": "core:account:System",
|
|
||||||
"lastView": 1648550835135,
|
|
||||||
"attachedTo": "chunter:space:Random",
|
|
||||||
"attachedToClass": "chunter:class:Channel",
|
|
||||||
"collection": "lastViews"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "6242e3b39238293ff4fe07a0",
|
|
||||||
"_class": "notification:class:LastView",
|
|
||||||
"space": "notification:space:Notifications",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1648550835203,
|
|
||||||
"user": "core:account:System",
|
|
||||||
"lastView": 1648550835185,
|
|
||||||
"attachedTo": "gmail:space:Gmail",
|
|
||||||
"attachedToClass": "core:class:Space",
|
|
||||||
"collection": "lastViews"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "6242e3b39238293ff4fe07a2",
|
|
||||||
"_class": "notification:class:LastView",
|
|
||||||
"space": "notification:space:Notifications",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1648550835252,
|
|
||||||
"user": "core:account:System",
|
|
||||||
"lastView": 1648550835233,
|
|
||||||
"attachedTo": "templates:space:Templates",
|
|
||||||
"attachedToClass": "core:class:Space",
|
|
||||||
"collection": "lastViews"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "6242e3b39238293ff4fe07a4",
|
|
||||||
"_class": "notification:class:LastView",
|
|
||||||
"space": "notification:space:Notifications",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1648550835300,
|
|
||||||
"user": "core:account:System",
|
|
||||||
"lastView": 1648550835281,
|
|
||||||
"attachedTo": "telegram:space:Telegram",
|
|
||||||
"attachedToClass": "core:class:Space",
|
|
||||||
"collection": "lastViews"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "6242e3b39238293ff4fe07a6",
|
|
||||||
"_class": "notification:class:LastView",
|
|
||||||
"space": "notification:space:Notifications",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1648550835352,
|
|
||||||
"user": "core:account:System",
|
|
||||||
"lastView": 1648550835334,
|
|
||||||
"attachedTo": "task:space:Sequence",
|
|
||||||
"attachedToClass": "core:class:Space",
|
|
||||||
"collection": "lastViews"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "6242e3b39238293ff4fe07a8",
|
|
||||||
"_class": "notification:class:LastView",
|
|
||||||
"space": "notification:space:Notifications",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1648550835408,
|
|
||||||
"user": "core:account:System",
|
|
||||||
"lastView": 1648550835389,
|
|
||||||
"attachedTo": "task:space:TasksPublic",
|
|
||||||
"attachedToClass": "task:class:Project",
|
|
||||||
"collection": "lastViews"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "6242e3b39238293ff4fe07aa",
|
|
||||||
"_class": "notification:class:LastView",
|
|
||||||
"space": "notification:space:Notifications",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1648550835467,
|
|
||||||
"user": "core:account:System",
|
|
||||||
"lastView": 1648550835447,
|
|
||||||
"attachedTo": "lead:space:DefaultFunnel",
|
|
||||||
"attachedToClass": "lead:class:Funnel",
|
|
||||||
"collection": "lastViews"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "6242e3b39238293ff4fe07ac",
|
|
||||||
"_class": "notification:class:LastView",
|
|
||||||
"space": "notification:space:Notifications",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1648550835517,
|
|
||||||
"user": "core:account:System",
|
|
||||||
"lastView": 1648550835499,
|
|
||||||
"attachedTo": "recruit:space:CandidatesPublic",
|
|
||||||
"attachedToClass": "recruit:class:Candidates",
|
|
||||||
"collection": "lastViews"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "6242e3b39238293ff4fe07ae",
|
|
||||||
"_class": "notification:class:LastView",
|
|
||||||
"space": "notification:space:Notifications",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1648550835576,
|
|
||||||
"user": "core:account:System",
|
|
||||||
"lastView": 1648550835554,
|
|
||||||
"attachedTo": "recruit:category:Other",
|
|
||||||
"attachedToClass": "tags:class:TagCategory",
|
|
||||||
"collection": "lastViews"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "6242e3b39238293ff4fe07b0",
|
|
||||||
"_class": "notification:class:LastView",
|
|
||||||
"space": "notification:space:Notifications",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1648550835588,
|
|
||||||
"user": "core:account:System",
|
|
||||||
"lastView": 1648550835569,
|
|
||||||
"attachedTo": "recruit:category:Category.skills:backend",
|
|
||||||
"attachedToClass": "tags:class:TagCategory",
|
|
||||||
"collection": "lastViews"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "6242e3b39238293ff4fe07b2",
|
|
||||||
"_class": "notification:class:LastView",
|
|
||||||
"space": "notification:space:Notifications",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1648550835598,
|
|
||||||
"user": "core:account:System",
|
|
||||||
"lastView": 1648550835579,
|
|
||||||
"attachedTo": "recruit:category:Category.skills:bussines-analytics",
|
|
||||||
"attachedToClass": "tags:class:TagCategory",
|
|
||||||
"collection": "lastViews"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "6242e3b39238293ff4fe07b4",
|
|
||||||
"_class": "notification:class:LastView",
|
|
||||||
"space": "notification:space:Notifications",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1648550835613,
|
|
||||||
"user": "core:account:System",
|
|
||||||
"lastView": 1648550835592,
|
|
||||||
"attachedTo": "recruit:category:Category.skills:datastructures",
|
|
||||||
"attachedToClass": "tags:class:TagCategory",
|
|
||||||
"collection": "lastViews"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "6242e3b39238293ff4fe07b6",
|
|
||||||
"_class": "notification:class:LastView",
|
|
||||||
"space": "notification:space:Notifications",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1648550835628,
|
|
||||||
"user": "core:account:System",
|
|
||||||
"lastView": 1648550835607,
|
|
||||||
"attachedTo": "recruit:category:Category.skills:design",
|
|
||||||
"attachedToClass": "tags:class:TagCategory",
|
|
||||||
"collection": "lastViews"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "6242e3b39238293ff4fe07b8",
|
|
||||||
"_class": "notification:class:LastView",
|
|
||||||
"space": "notification:space:Notifications",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1648550835639,
|
|
||||||
"user": "core:account:System",
|
|
||||||
"lastView": 1648550835621,
|
|
||||||
"attachedTo": "recruit:category:Category.skills:devops",
|
|
||||||
"attachedToClass": "tags:class:TagCategory",
|
|
||||||
"collection": "lastViews"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "6242e3b39238293ff4fe07ba",
|
|
||||||
"_class": "notification:class:LastView",
|
|
||||||
"space": "notification:space:Notifications",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1648550835651,
|
|
||||||
"user": "core:account:System",
|
|
||||||
"lastView": 1648550835631,
|
|
||||||
"attachedTo": "recruit:category:Category.skills:webdev",
|
|
||||||
"attachedToClass": "tags:class:TagCategory",
|
|
||||||
"collection": "lastViews"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "6242e3b39238293ff4fe07bc",
|
|
||||||
"_class": "notification:class:LastView",
|
|
||||||
"space": "notification:space:Notifications",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1648550835662,
|
|
||||||
"user": "core:account:System",
|
|
||||||
"lastView": 1648550835644,
|
|
||||||
"attachedTo": "recruit:category:Category.skills:hard",
|
|
||||||
"attachedToClass": "tags:class:TagCategory",
|
|
||||||
"collection": "lastViews"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "6242e3b39238293ff4fe07be",
|
|
||||||
"_class": "notification:class:LastView",
|
|
||||||
"space": "notification:space:Notifications",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1648550835671,
|
|
||||||
"user": "core:account:System",
|
|
||||||
"lastView": 1648550835653,
|
|
||||||
"attachedTo": "recruit:category:Category.skills:management",
|
|
||||||
"attachedToClass": "tags:class:TagCategory",
|
|
||||||
"collection": "lastViews"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "6242e3b39238293ff4fe07c0",
|
|
||||||
"_class": "notification:class:LastView",
|
|
||||||
"space": "notification:space:Notifications",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1648550835684,
|
|
||||||
"user": "core:account:System",
|
|
||||||
"lastView": 1648550835664,
|
|
||||||
"attachedTo": "recruit:category:Category.skills:marketing",
|
|
||||||
"attachedToClass": "tags:class:TagCategory",
|
|
||||||
"collection": "lastViews"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "6242e3b39238293ff4fe07c2",
|
|
||||||
"_class": "notification:class:LastView",
|
|
||||||
"space": "notification:space:Notifications",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1648550835695,
|
|
||||||
"user": "core:account:System",
|
|
||||||
"lastView": 1648550835676,
|
|
||||||
"attachedTo": "recruit:category:Category.skills:mobile",
|
|
||||||
"attachedToClass": "tags:class:TagCategory",
|
|
||||||
"collection": "lastViews"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "6242e3b39238293ff4fe07c4",
|
|
||||||
"_class": "notification:class:LastView",
|
|
||||||
"space": "notification:space:Notifications",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1648550835705,
|
|
||||||
"user": "core:account:System",
|
|
||||||
"lastView": 1648550835687,
|
|
||||||
"attachedTo": "recruit:category:Category.skills:networking",
|
|
||||||
"attachedToClass": "tags:class:TagCategory",
|
|
||||||
"collection": "lastViews"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "6242e3b39238293ff4fe07c6",
|
|
||||||
"_class": "notification:class:LastView",
|
|
||||||
"space": "notification:space:Notifications",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1648550835717,
|
|
||||||
"user": "core:account:System",
|
|
||||||
"lastView": 1648550835696,
|
|
||||||
"attachedTo": "recruit:category:Category.skills:programming-languages",
|
|
||||||
"attachedToClass": "tags:class:TagCategory",
|
|
||||||
"collection": "lastViews"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "6242e3b39238293ff4fe07c8",
|
|
||||||
"_class": "notification:class:LastView",
|
|
||||||
"space": "notification:space:Notifications",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1648550835730,
|
|
||||||
"user": "core:account:System",
|
|
||||||
"lastView": 1648550835711,
|
|
||||||
"attachedTo": "recruit:category:Category.skills:quality",
|
|
||||||
"attachedToClass": "tags:class:TagCategory",
|
|
||||||
"collection": "lastViews"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "6242e3b39238293ff4fe07ca",
|
|
||||||
"_class": "notification:class:LastView",
|
|
||||||
"space": "notification:space:Notifications",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1648550835744,
|
|
||||||
"user": "core:account:System",
|
|
||||||
"lastView": 1648550835726,
|
|
||||||
"attachedTo": "recruit:category:Category.skills:sales",
|
|
||||||
"attachedToClass": "tags:class:TagCategory",
|
|
||||||
"collection": "lastViews"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "6242e3b39238293ff4fe07cc",
|
|
||||||
"_class": "notification:class:LastView",
|
|
||||||
"space": "notification:space:Notifications",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1648550835755,
|
|
||||||
"user": "core:account:System",
|
|
||||||
"lastView": 1648550835737,
|
|
||||||
"attachedTo": "recruit:category:Category.skills:soft",
|
|
||||||
"attachedToClass": "tags:class:TagCategory",
|
|
||||||
"collection": "lastViews"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "6242e3b39238293ff4fe07ce",
|
|
||||||
"_class": "notification:class:LastView",
|
|
||||||
"space": "notification:space:Notifications",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1648550835772,
|
|
||||||
"user": "core:account:System",
|
|
||||||
"lastView": 1648550835754,
|
|
||||||
"attachedTo": "recruit:category:Category.skills:databases",
|
|
||||||
"attachedToClass": "tags:class:TagCategory",
|
|
||||||
"collection": "lastViews"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "6242e3b39238293ff4fe07d0",
|
|
||||||
"_class": "notification:class:LastView",
|
|
||||||
"space": "notification:space:Notifications",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1648550835782,
|
|
||||||
"user": "core:account:System",
|
|
||||||
"lastView": 1648550835764,
|
|
||||||
"attachedTo": "recruit:category:Category.skills:desktop",
|
|
||||||
"attachedToClass": "tags:class:TagCategory",
|
|
||||||
"collection": "lastViews"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "6242e3b39238293ff4fe07d2",
|
|
||||||
"_class": "notification:class:LastView",
|
|
||||||
"space": "notification:space:Notifications",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1648550835937,
|
|
||||||
"user": "core:account:System",
|
|
||||||
"lastView": 1648550835883,
|
|
||||||
"attachedTo": "recruit:template:Interview",
|
|
||||||
"attachedToClass": "task:class:KanbanTemplate",
|
|
||||||
"collection": "lastViews"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "6242e3b39238293ff4fe07de",
|
|
||||||
"_class": "notification:class:LastView",
|
|
||||||
"space": "notification:space:Notifications",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1648550836150,
|
|
||||||
"user": "core:account:System",
|
|
||||||
"lastView": 1648550836059,
|
|
||||||
"attachedTo": "recruit:template:Task",
|
|
||||||
"attachedToClass": "task:class:KanbanTemplate",
|
|
||||||
"collection": "lastViews"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "6242e3b49238293ff4fe07ec",
|
|
||||||
"_class": "notification:class:LastView",
|
|
||||||
"space": "notification:space:Notifications",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1648550836395,
|
|
||||||
"user": "core:account:System",
|
|
||||||
"lastView": 1648550836377,
|
|
||||||
"attachedTo": "6242e3b41308858e112f9e97",
|
|
||||||
"attachedToClass": "task:class:Sequence",
|
|
||||||
"collection": "lastViews"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "6242e3b49238293ff4fe07ee",
|
|
||||||
"_class": "notification:class:LastView",
|
|
||||||
"space": "notification:space:Notifications",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1648550836406,
|
|
||||||
"user": "core:account:System",
|
|
||||||
"lastView": 1648550836388,
|
|
||||||
"attachedTo": "6242e3b41308858e112f9e99",
|
|
||||||
"attachedToClass": "task:class:Sequence",
|
|
||||||
"collection": "lastViews"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "6242e3b49238293ff4fe07f0",
|
|
||||||
"_class": "notification:class:LastView",
|
|
||||||
"space": "notification:space:Notifications",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1648550836419,
|
|
||||||
"user": "core:account:System",
|
|
||||||
"lastView": 1648550836399,
|
|
||||||
"attachedTo": "contact:space:Employee",
|
|
||||||
"attachedToClass": "core:class:Space",
|
|
||||||
"collection": "lastViews"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "6242e3b49238293ff4fe07f2",
|
|
||||||
"_class": "notification:class:LastView",
|
|
||||||
"space": "notification:space:Notifications",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1648550836463,
|
|
||||||
"user": "core:account:System",
|
|
||||||
"lastView": 1648550836444,
|
|
||||||
"attachedTo": "tags:space:Tags",
|
|
||||||
"attachedToClass": "core:class:Space",
|
|
||||||
"collection": "lastViews"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
[]
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
[]
|
|
||||||
@@ -1,146 +0,0 @@
|
|||||||
[
|
|
||||||
{
|
|
||||||
"_id": "61f104b625355d019917dbe9",
|
|
||||||
"_class": "recruit:class:Vacancy",
|
|
||||||
"space": "core:space:Space",
|
|
||||||
"modifiedBy": "61f1031c1badffab2bb33861",
|
|
||||||
"modifiedOn": 1643185334518,
|
|
||||||
"name": "Software Engineer",
|
|
||||||
"description": "",
|
|
||||||
"private": false,
|
|
||||||
"archived": false,
|
|
||||||
"members": []
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "chunter:space:General",
|
|
||||||
"_class": "chunter:class:Channel",
|
|
||||||
"space": "core:space:Space",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1648550835069,
|
|
||||||
"name": "general",
|
|
||||||
"description": "General Channel",
|
|
||||||
"private": false,
|
|
||||||
"archived": false,
|
|
||||||
"members": []
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "chunter:space:Random",
|
|
||||||
"_class": "chunter:class:Channel",
|
|
||||||
"space": "core:space:Space",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1648550835135,
|
|
||||||
"name": "random",
|
|
||||||
"description": "Random Talks",
|
|
||||||
"private": false,
|
|
||||||
"archived": false,
|
|
||||||
"members": []
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "gmail:space:Gmail",
|
|
||||||
"_class": "core:class:Space",
|
|
||||||
"space": "core:space:Space",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1648550835185,
|
|
||||||
"name": "Gmail",
|
|
||||||
"description": "Space for all gmail messages",
|
|
||||||
"private": false,
|
|
||||||
"archived": false,
|
|
||||||
"members": []
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "templates:space:Templates",
|
|
||||||
"_class": "core:class:Space",
|
|
||||||
"space": "core:space:Space",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1648550835233,
|
|
||||||
"name": "Templates",
|
|
||||||
"description": "Space for all templates",
|
|
||||||
"private": true,
|
|
||||||
"archived": false,
|
|
||||||
"members": []
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "telegram:space:Telegram",
|
|
||||||
"_class": "core:class:Space",
|
|
||||||
"space": "core:space:Space",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1648550835281,
|
|
||||||
"name": "Telegram",
|
|
||||||
"description": "Space for all telegram messages",
|
|
||||||
"private": false,
|
|
||||||
"archived": false,
|
|
||||||
"members": []
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "task:space:Sequence",
|
|
||||||
"_class": "core:class:Space",
|
|
||||||
"space": "core:space:Space",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1648550835334,
|
|
||||||
"name": "Sequences",
|
|
||||||
"description": "Internal space to store sequence numbers",
|
|
||||||
"members": [],
|
|
||||||
"private": false,
|
|
||||||
"archived": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "task:space:TasksPublic",
|
|
||||||
"_class": "task:class:Project",
|
|
||||||
"space": "core:space:Space",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1648550835389,
|
|
||||||
"name": "public",
|
|
||||||
"description": "Public tasks",
|
|
||||||
"private": false,
|
|
||||||
"archived": false,
|
|
||||||
"members": []
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "lead:space:DefaultFunnel",
|
|
||||||
"_class": "lead:class:Funnel",
|
|
||||||
"space": "core:space:Space",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1648550835447,
|
|
||||||
"name": "Funnel",
|
|
||||||
"description": "Default funnel",
|
|
||||||
"private": false,
|
|
||||||
"archived": false,
|
|
||||||
"members": []
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "recruit:space:CandidatesPublic",
|
|
||||||
"_class": "recruit:class:Candidates",
|
|
||||||
"space": "core:space:Space",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1648550835499,
|
|
||||||
"name": "public",
|
|
||||||
"description": "Public Candidates",
|
|
||||||
"private": false,
|
|
||||||
"members": [],
|
|
||||||
"archived": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "contact:space:Employee",
|
|
||||||
"_class": "core:class:Space",
|
|
||||||
"space": "core:space:Space",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1648550836399,
|
|
||||||
"name": "Employees",
|
|
||||||
"description": "Employees",
|
|
||||||
"private": false,
|
|
||||||
"archived": false,
|
|
||||||
"members": []
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "tags:space:Tags",
|
|
||||||
"_class": "core:class:Space",
|
|
||||||
"space": "core:space:Space",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1648550836444,
|
|
||||||
"name": "Tags",
|
|
||||||
"description": "Space for all tags",
|
|
||||||
"private": true,
|
|
||||||
"archived": false,
|
|
||||||
"members": []
|
|
||||||
}
|
|
||||||
]
|
|
||||||
@@ -1,206 +0,0 @@
|
|||||||
[
|
|
||||||
{
|
|
||||||
"_id": "61f1031bff96c329e8f3d639",
|
|
||||||
"_class": "task:class:State",
|
|
||||||
"space": "task:space:TasksPublic",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1643184923868,
|
|
||||||
"color": 9,
|
|
||||||
"title": "Open",
|
|
||||||
"rank": "0|555555:"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "61f1031bff96c329e8f3d641",
|
|
||||||
"_class": "task:class:State",
|
|
||||||
"space": "task:space:TasksPublic",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1643184923869,
|
|
||||||
"color": 0,
|
|
||||||
"title": "Done",
|
|
||||||
"rank": "0|kkkkkk:"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "61f1031bff96c329e8f3d63b",
|
|
||||||
"_class": "task:class:State",
|
|
||||||
"space": "task:space:TasksPublic",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1643184923868,
|
|
||||||
"color": 10,
|
|
||||||
"title": "In Progress",
|
|
||||||
"rank": "0|aaaaaa:"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "61f1031bff96c329e8f3d63d",
|
|
||||||
"_class": "task:class:State",
|
|
||||||
"space": "task:space:TasksPublic",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1643184923869,
|
|
||||||
"color": 1,
|
|
||||||
"title": "Under review",
|
|
||||||
"rank": "0|ffffff:"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "61f1031bff96c329e8f3d63f",
|
|
||||||
"_class": "task:class:State",
|
|
||||||
"space": "task:space:TasksPublic",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1643184923869,
|
|
||||||
"color": 11,
|
|
||||||
"title": "Invalid",
|
|
||||||
"rank": "0|pppppp:"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "61f1031bff96c329e8f3d643",
|
|
||||||
"_class": "task:class:WonState",
|
|
||||||
"space": "task:space:TasksPublic",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1643184923928,
|
|
||||||
"title": "Won",
|
|
||||||
"rank": "0|900000:"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "61f1031bff96c329e8f3d645",
|
|
||||||
"_class": "task:class:LostState",
|
|
||||||
"space": "task:space:TasksPublic",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1643184923928,
|
|
||||||
"title": "Lost",
|
|
||||||
"rank": "0|i00000:"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "61f1031bff96c329e8f3d664",
|
|
||||||
"_class": "task:class:State",
|
|
||||||
"space": "lead:space:DefaultFunnel",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1643184923984,
|
|
||||||
"color": 9,
|
|
||||||
"title": "Incoming",
|
|
||||||
"rank": "0|4i0000:"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "61f1031bff96c329e8f3d666",
|
|
||||||
"_class": "task:class:State",
|
|
||||||
"space": "lead:space:DefaultFunnel",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1643184923984,
|
|
||||||
"color": 10,
|
|
||||||
"title": "Negotation",
|
|
||||||
"rank": "0|900000:"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "61f1031bff96c329e8f3d668",
|
|
||||||
"_class": "task:class:State",
|
|
||||||
"space": "lead:space:DefaultFunnel",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1643184923984,
|
|
||||||
"color": 1,
|
|
||||||
"title": "Offer preparing",
|
|
||||||
"rank": "0|di0000:"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "61f1031bff96c329e8f3d66a",
|
|
||||||
"_class": "task:class:State",
|
|
||||||
"space": "lead:space:DefaultFunnel",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1643184923984,
|
|
||||||
"color": 0,
|
|
||||||
"title": "Make a decision",
|
|
||||||
"rank": "0|i00000:"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "61f1031bff96c329e8f3d66c",
|
|
||||||
"_class": "task:class:State",
|
|
||||||
"space": "lead:space:DefaultFunnel",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1643184923984,
|
|
||||||
"color": 11,
|
|
||||||
"title": "Contract conclusion",
|
|
||||||
"rank": "0|mi0000:"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "61f1031bff96c329e8f3d66e",
|
|
||||||
"_class": "task:class:State",
|
|
||||||
"space": "lead:space:DefaultFunnel",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1643184923984,
|
|
||||||
"color": 9,
|
|
||||||
"title": "Done",
|
|
||||||
"rank": "0|r00000:"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "61f1031bff96c329e8f3d670",
|
|
||||||
"_class": "task:class:WonState",
|
|
||||||
"space": "lead:space:DefaultFunnel",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1643184923998,
|
|
||||||
"title": "Won",
|
|
||||||
"rank": "0|900000:"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "61f1031bff96c329e8f3d672",
|
|
||||||
"_class": "task:class:LostState",
|
|
||||||
"space": "lead:space:DefaultFunnel",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1643184923999,
|
|
||||||
"title": "Lost",
|
|
||||||
"rank": "0|i00000:"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "61f104b625355d019917dbeb",
|
|
||||||
"_class": "task:class:State",
|
|
||||||
"space": "61f104b625355d019917dbe9",
|
|
||||||
"modifiedBy": "61f1031c1badffab2bb33861",
|
|
||||||
"modifiedOn": 1643185334582,
|
|
||||||
"color": 9,
|
|
||||||
"title": "HR Interview",
|
|
||||||
"rank": "0|600000:"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "61f104b625355d019917dbed",
|
|
||||||
"_class": "task:class:State",
|
|
||||||
"space": "61f104b625355d019917dbe9",
|
|
||||||
"modifiedBy": "61f1031c1badffab2bb33861",
|
|
||||||
"modifiedOn": 1643185334582,
|
|
||||||
"color": 10,
|
|
||||||
"title": "Technical Interview",
|
|
||||||
"rank": "0|c00000:"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "61f104b625355d019917dbef",
|
|
||||||
"_class": "task:class:State",
|
|
||||||
"space": "61f104b625355d019917dbe9",
|
|
||||||
"modifiedBy": "61f1031c1badffab2bb33861",
|
|
||||||
"modifiedOn": 1643185334582,
|
|
||||||
"color": 1,
|
|
||||||
"title": "Test task",
|
|
||||||
"rank": "0|i00000:"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "61f104b625355d019917dbf1",
|
|
||||||
"_class": "task:class:State",
|
|
||||||
"space": "61f104b625355d019917dbe9",
|
|
||||||
"modifiedBy": "61f1031c1badffab2bb33861",
|
|
||||||
"modifiedOn": 1643185334582,
|
|
||||||
"color": 0,
|
|
||||||
"title": "Offer",
|
|
||||||
"rank": "0|o00000:"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "61f104b625355d019917dbf5",
|
|
||||||
"_class": "task:class:LostState",
|
|
||||||
"space": "61f104b625355d019917dbe9",
|
|
||||||
"modifiedBy": "61f1031c1badffab2bb33861",
|
|
||||||
"modifiedOn": 1643185334627,
|
|
||||||
"title": "Lost",
|
|
||||||
"rank": "0|i00000:"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "61f104b625355d019917dbf3",
|
|
||||||
"_class": "task:class:WonState",
|
|
||||||
"space": "61f104b625355d019917dbe9",
|
|
||||||
"modifiedBy": "61f1031c1badffab2bb33861",
|
|
||||||
"modifiedOn": 1643185334627,
|
|
||||||
"title": "Won",
|
|
||||||
"rank": "0|900000:"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
@@ -1,737 +0,0 @@
|
|||||||
[
|
|
||||||
{
|
|
||||||
"_id": "recruit:category:Other",
|
|
||||||
"_class": "tags:class:TagCategory",
|
|
||||||
"space": "tags:space:Tags",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1648550835554,
|
|
||||||
"icon": "tags:icon:Tags",
|
|
||||||
"label": "Other",
|
|
||||||
"targetClass": "recruit:mixin:Candidate",
|
|
||||||
"tags": [],
|
|
||||||
"default": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "recruit:category:Category.skills:backend",
|
|
||||||
"_class": "tags:class:TagCategory",
|
|
||||||
"space": "tags:space:Tags",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1648550835569,
|
|
||||||
"icon": "tags:icon:Tags",
|
|
||||||
"label": "Backend development",
|
|
||||||
"targetClass": "recruit:mixin:Candidate",
|
|
||||||
"tags": [
|
|
||||||
"Spring",
|
|
||||||
"Java",
|
|
||||||
"JavaSE",
|
|
||||||
"Hibernate",
|
|
||||||
"Server",
|
|
||||||
"Kubernetes",
|
|
||||||
"Websocket",
|
|
||||||
"Docker",
|
|
||||||
"RabbitMQ",
|
|
||||||
"Kafka",
|
|
||||||
"Zookeeper",
|
|
||||||
"Go",
|
|
||||||
"Apache",
|
|
||||||
"Httpd",
|
|
||||||
"Nginx",
|
|
||||||
"SSL",
|
|
||||||
"HTTPS",
|
|
||||||
"HTTP",
|
|
||||||
"GWT",
|
|
||||||
"AWS",
|
|
||||||
"AWS Lambda",
|
|
||||||
"Websphere",
|
|
||||||
"Java EE",
|
|
||||||
"Cloud Computing",
|
|
||||||
"MicroServices",
|
|
||||||
"API",
|
|
||||||
"XML",
|
|
||||||
"JSON",
|
|
||||||
"REST",
|
|
||||||
"NodeJS",
|
|
||||||
"Kibana",
|
|
||||||
"Cluster",
|
|
||||||
"Datacenter",
|
|
||||||
"K8s",
|
|
||||||
"Azure",
|
|
||||||
"Google Cloud",
|
|
||||||
"Node.js",
|
|
||||||
"Oracle",
|
|
||||||
"Maven",
|
|
||||||
"Log4j",
|
|
||||||
"J2SE",
|
|
||||||
"J2EE",
|
|
||||||
"Tomcat",
|
|
||||||
"Jetty",
|
|
||||||
"Wicket",
|
|
||||||
"Ant",
|
|
||||||
"Ivy",
|
|
||||||
"ASP.NET",
|
|
||||||
"Unix",
|
|
||||||
"Services",
|
|
||||||
"JSP",
|
|
||||||
"Amazon",
|
|
||||||
"Django",
|
|
||||||
"Servlets",
|
|
||||||
"JVM",
|
|
||||||
"CUDA",
|
|
||||||
"OpenCL",
|
|
||||||
"Vaadin",
|
|
||||||
"RESTful",
|
|
||||||
"ProtoBuf",
|
|
||||||
"Memcached",
|
|
||||||
"Glassfish",
|
|
||||||
"SOAP Services"
|
|
||||||
],
|
|
||||||
"default": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "recruit:category:Category.skills:bussines-analytics",
|
|
||||||
"_class": "tags:class:TagCategory",
|
|
||||||
"space": "tags:space:Tags",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1648550835579,
|
|
||||||
"icon": "tags:icon:Tags",
|
|
||||||
"label": "Bussines analytics",
|
|
||||||
"targetClass": "recruit:mixin:Candidate",
|
|
||||||
"tags": [
|
|
||||||
"Hive",
|
|
||||||
"HBase",
|
|
||||||
"Matlab",
|
|
||||||
"STATA",
|
|
||||||
"SPSS",
|
|
||||||
"SAS",
|
|
||||||
"Data Mapping",
|
|
||||||
"Entity Relationship Diagrams",
|
|
||||||
"Wireframes",
|
|
||||||
"Big Data tools ",
|
|
||||||
"Microsoft Visio",
|
|
||||||
"Agile Business Analysis",
|
|
||||||
"Machine learning",
|
|
||||||
"System Context Diagrams",
|
|
||||||
"Business Process Modeling",
|
|
||||||
"Technical and non-technical communication"
|
|
||||||
],
|
|
||||||
"default": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "recruit:category:Category.skills:datastructures",
|
|
||||||
"_class": "tags:class:TagCategory",
|
|
||||||
"space": "tags:space:Tags",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1648550835592,
|
|
||||||
"icon": "tags:icon:Tags",
|
|
||||||
"label": "Data Structures",
|
|
||||||
"targetClass": "recruit:mixin:Candidate",
|
|
||||||
"tags": [
|
|
||||||
"Algorithms",
|
|
||||||
"Hashmap",
|
|
||||||
"TreeMap",
|
|
||||||
"ООП",
|
|
||||||
"OOP",
|
|
||||||
"Multithreading",
|
|
||||||
"Multithreaded",
|
|
||||||
"Methodologies",
|
|
||||||
"Patterns",
|
|
||||||
"Optimization",
|
|
||||||
"Performance",
|
|
||||||
"Science",
|
|
||||||
"Modeling",
|
|
||||||
"Compilers",
|
|
||||||
"OpenMP",
|
|
||||||
"Mathematical",
|
|
||||||
"Framework",
|
|
||||||
"STL",
|
|
||||||
"Mining",
|
|
||||||
"Bitcoin",
|
|
||||||
"Криптовалюта",
|
|
||||||
"Cryptocurrency",
|
|
||||||
"Block chain",
|
|
||||||
"Recognition",
|
|
||||||
"CQRS",
|
|
||||||
"Eventsourcing",
|
|
||||||
"Design Patterns"
|
|
||||||
],
|
|
||||||
"default": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "recruit:category:Category.skills:design",
|
|
||||||
"_class": "tags:class:TagCategory",
|
|
||||||
"space": "tags:space:Tags",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1648550835607,
|
|
||||||
"icon": "tags:icon:Tags",
|
|
||||||
"label": "Design",
|
|
||||||
"targetClass": "recruit:mixin:Candidate",
|
|
||||||
"tags": [
|
|
||||||
"3D",
|
|
||||||
"3dsMax",
|
|
||||||
"Active listening",
|
|
||||||
"Ad design",
|
|
||||||
"Attention to detail & aesthetics",
|
|
||||||
"AutoCAD",
|
|
||||||
"Blender",
|
|
||||||
"Color sense & theory",
|
|
||||||
"Creativity",
|
|
||||||
"CSS",
|
|
||||||
"Digital printing",
|
|
||||||
"Dreamweaver",
|
|
||||||
"HTML",
|
|
||||||
"HTML5",
|
|
||||||
"Illustrator",
|
|
||||||
"InDesign",
|
|
||||||
"Infographics",
|
|
||||||
"Integration of visual communication in social media platforms",
|
|
||||||
"Interactive media design",
|
|
||||||
"Logo creation",
|
|
||||||
"Maya",
|
|
||||||
"Photo editing ",
|
|
||||||
"Photoshop",
|
|
||||||
"Storyboarding",
|
|
||||||
"SVG",
|
|
||||||
"Targeting and marketing through visual communications",
|
|
||||||
"Typography: spacing, line height, layout, choosing fonts",
|
|
||||||
"Usability",
|
|
||||||
"Vector",
|
|
||||||
"Adobe Creative Suite",
|
|
||||||
"Bootstrap",
|
|
||||||
"Graphics",
|
|
||||||
"Image"
|
|
||||||
],
|
|
||||||
"default": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "recruit:category:Category.skills:devops",
|
|
||||||
"_class": "tags:class:TagCategory",
|
|
||||||
"space": "tags:space:Tags",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1648550835621,
|
|
||||||
"icon": "tags:icon:Tags",
|
|
||||||
"label": "DevOps",
|
|
||||||
"targetClass": "recruit:mixin:Candidate",
|
|
||||||
"tags": [
|
|
||||||
"Ansible",
|
|
||||||
"Automation QA",
|
|
||||||
"Automation",
|
|
||||||
"Bamboo",
|
|
||||||
"Bash",
|
|
||||||
"BitBucket",
|
|
||||||
"Chef",
|
|
||||||
"Continuous Deployment",
|
|
||||||
"Continuous Integration",
|
|
||||||
"CVS",
|
|
||||||
"Deployment",
|
|
||||||
"Docker Compose",
|
|
||||||
"GIT",
|
|
||||||
"GitLab",
|
|
||||||
"Jenkins",
|
|
||||||
"JMeter",
|
|
||||||
"Linux",
|
|
||||||
"Live Deployment",
|
|
||||||
"Microsoft SQL Server",
|
|
||||||
"Puppet",
|
|
||||||
"Salt",
|
|
||||||
"Subversion",
|
|
||||||
"SVN",
|
|
||||||
"Terraform",
|
|
||||||
"CI/CD",
|
|
||||||
"Mercurial",
|
|
||||||
"Администрирование",
|
|
||||||
"Scripting",
|
|
||||||
"Ubuntu",
|
|
||||||
"Tortoise",
|
|
||||||
"Debian",
|
|
||||||
"FreeBSD",
|
|
||||||
"Unix",
|
|
||||||
"GitHub",
|
|
||||||
"Vagrant",
|
|
||||||
"TeamCity"
|
|
||||||
],
|
|
||||||
"default": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "recruit:category:Category.skills:webdev",
|
|
||||||
"_class": "tags:class:TagCategory",
|
|
||||||
"space": "tags:space:Tags",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1648550835631,
|
|
||||||
"icon": "tags:icon:Tags",
|
|
||||||
"label": "Web Development",
|
|
||||||
"targetClass": "recruit:mixin:Candidate",
|
|
||||||
"tags": [
|
|
||||||
"Adobe",
|
|
||||||
"Angular",
|
|
||||||
"ASP.Net Web API",
|
|
||||||
"Babel",
|
|
||||||
"CMS",
|
|
||||||
"Content Management Systems",
|
|
||||||
"CSS",
|
|
||||||
"CSS3",
|
|
||||||
"sass",
|
|
||||||
"Debugging",
|
|
||||||
"Eslint",
|
|
||||||
"Graphic User Interfaces",
|
|
||||||
"GUI",
|
|
||||||
"HTML",
|
|
||||||
"InDesign",
|
|
||||||
"Javascript",
|
|
||||||
"JQuery",
|
|
||||||
"JS",
|
|
||||||
"Json",
|
|
||||||
"Photoshop",
|
|
||||||
"React",
|
|
||||||
"Responsive design principles",
|
|
||||||
"Rush",
|
|
||||||
"SCSS",
|
|
||||||
"Search Engine Optimization",
|
|
||||||
"SEO",
|
|
||||||
"Svelte",
|
|
||||||
"Testing",
|
|
||||||
"TS",
|
|
||||||
"Typescript",
|
|
||||||
"Vue",
|
|
||||||
"Wordpress",
|
|
||||||
"AJAX",
|
|
||||||
"AngularJS",
|
|
||||||
"vue.js",
|
|
||||||
"Webpack",
|
|
||||||
"es6",
|
|
||||||
"npm",
|
|
||||||
"DOM",
|
|
||||||
"Wicket",
|
|
||||||
"Redux"
|
|
||||||
],
|
|
||||||
"default": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "recruit:category:Category.skills:hard",
|
|
||||||
"_class": "tags:class:TagCategory",
|
|
||||||
"space": "tags:space:Tags",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1648550835644,
|
|
||||||
"icon": "tags:icon:Tags",
|
|
||||||
"label": "Hard Skills",
|
|
||||||
"targetClass": "recruit:mixin:Candidate",
|
|
||||||
"tags": [
|
|
||||||
"Agile Development",
|
|
||||||
"Analysis",
|
|
||||||
"Backend",
|
|
||||||
"Cloud Management",
|
|
||||||
"Data Structures",
|
|
||||||
"Database",
|
|
||||||
"Debugging",
|
|
||||||
"DevOps",
|
|
||||||
"Frontend",
|
|
||||||
"Machine Learning",
|
|
||||||
"Open Source Experience",
|
|
||||||
"Programming Languages",
|
|
||||||
"Project Management",
|
|
||||||
"QA",
|
|
||||||
"Security",
|
|
||||||
"Testng",
|
|
||||||
"UI",
|
|
||||||
"UX",
|
|
||||||
"Web design",
|
|
||||||
"Web Development",
|
|
||||||
"Design",
|
|
||||||
"Engineering",
|
|
||||||
"Programming",
|
|
||||||
"Programming languages",
|
|
||||||
"Разработка",
|
|
||||||
"Databases",
|
|
||||||
"Architecture",
|
|
||||||
"Networking",
|
|
||||||
"Software",
|
|
||||||
"Design",
|
|
||||||
"Web",
|
|
||||||
"Embedded",
|
|
||||||
"Development",
|
|
||||||
"Software Development"
|
|
||||||
],
|
|
||||||
"default": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "recruit:category:Category.skills:management",
|
|
||||||
"_class": "tags:class:TagCategory",
|
|
||||||
"space": "tags:space:Tags",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1648550835653,
|
|
||||||
"icon": "tags:icon:Tags",
|
|
||||||
"label": "Management",
|
|
||||||
"targetClass": "recruit:mixin:Candidate",
|
|
||||||
"tags": [
|
|
||||||
"Agile",
|
|
||||||
"Business Development",
|
|
||||||
"Charisma",
|
|
||||||
"Dealing with work-related stress",
|
|
||||||
"ERP",
|
|
||||||
"Feature Definition",
|
|
||||||
"Financial Modelling",
|
|
||||||
"Forecasting",
|
|
||||||
"Ideation Leadership",
|
|
||||||
"Innovation",
|
|
||||||
"Management",
|
|
||||||
"Managerial Skills",
|
|
||||||
"Managing Cross-Functional Teams",
|
|
||||||
"Meeting Facilitation",
|
|
||||||
"Motivation",
|
|
||||||
"Negotiation",
|
|
||||||
"Organizing Skills",
|
|
||||||
"People management",
|
|
||||||
"Performance Tracking",
|
|
||||||
"Planning",
|
|
||||||
"Problem-solving",
|
|
||||||
"Profit and Loss",
|
|
||||||
"Project Lifecycle Management",
|
|
||||||
"Proposal writing",
|
|
||||||
"Requirements Analysis",
|
|
||||||
"Scope Management",
|
|
||||||
"Scrum",
|
|
||||||
"Strategic Management",
|
|
||||||
"Task delegation",
|
|
||||||
"Technological savviness",
|
|
||||||
"Emotional Intelligence",
|
|
||||||
"Управление проектами",
|
|
||||||
"Проектирование",
|
|
||||||
"UML",
|
|
||||||
"JIRA",
|
|
||||||
"Requirements",
|
|
||||||
"Kanban",
|
|
||||||
"Работа в команде",
|
|
||||||
"Управление",
|
|
||||||
"Agile Project Management",
|
|
||||||
"Team management"
|
|
||||||
],
|
|
||||||
"default": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "recruit:category:Category.skills:marketing",
|
|
||||||
"_class": "tags:class:TagCategory",
|
|
||||||
"space": "tags:space:Tags",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1648550835664,
|
|
||||||
"icon": "tags:icon:Tags",
|
|
||||||
"label": "Marketing",
|
|
||||||
"targetClass": "recruit:mixin:Candidate",
|
|
||||||
"tags": [
|
|
||||||
"A/B Testing",
|
|
||||||
"B2B Marketing",
|
|
||||||
"Brand management",
|
|
||||||
"CMS Tools",
|
|
||||||
"Consumer Behavior Drivers",
|
|
||||||
"Copywriting",
|
|
||||||
"Creativity",
|
|
||||||
"CRO",
|
|
||||||
"Data visualization & pattern-finding through critical thinking",
|
|
||||||
"Email marketing",
|
|
||||||
"Paid social media advertisements",
|
|
||||||
"Project/campaign management",
|
|
||||||
"Sales",
|
|
||||||
"Search Engine and Keyword Optimization",
|
|
||||||
"SEM",
|
|
||||||
"SEO",
|
|
||||||
"Social media and mobile marketing",
|
|
||||||
"Storytelling",
|
|
||||||
"The 4 P-s of Marketing",
|
|
||||||
"Web analytics",
|
|
||||||
"Web scraping",
|
|
||||||
"Wordpress",
|
|
||||||
"Data analysis",
|
|
||||||
"Sass",
|
|
||||||
"Маркетинговый анализ",
|
|
||||||
"Маркетинговые мероприятия",
|
|
||||||
"Анализ рынка",
|
|
||||||
"Анализ конкурентов",
|
|
||||||
"Вывод новых продуктов на рынок",
|
|
||||||
"Ведение переговоров с контрагентами",
|
|
||||||
"Ведение и расширение клиентской базы",
|
|
||||||
"Владение техникой продаж",
|
|
||||||
"Banking Software"
|
|
||||||
],
|
|
||||||
"default": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "recruit:category:Category.skills:mobile",
|
|
||||||
"_class": "tags:class:TagCategory",
|
|
||||||
"space": "tags:space:Tags",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1648550835676,
|
|
||||||
"icon": "tags:icon:Tags",
|
|
||||||
"label": "Mobile Development",
|
|
||||||
"targetClass": "recruit:mixin:Candidate",
|
|
||||||
"tags": [
|
|
||||||
"Android",
|
|
||||||
"Android Developer",
|
|
||||||
"ARM",
|
|
||||||
"iOS",
|
|
||||||
"Cocoa Touch",
|
|
||||||
"UIKit",
|
|
||||||
"MapKit",
|
|
||||||
"iPadOS",
|
|
||||||
"Mobile Applications",
|
|
||||||
"WatchOS",
|
|
||||||
"Windows mobile"
|
|
||||||
],
|
|
||||||
"default": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "recruit:category:Category.skills:networking",
|
|
||||||
"_class": "tags:class:TagCategory",
|
|
||||||
"space": "tags:space:Tags",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1648550835687,
|
|
||||||
"icon": "tags:icon:Tags",
|
|
||||||
"label": "Networking",
|
|
||||||
"targetClass": "recruit:mixin:Candidate",
|
|
||||||
"tags": [
|
|
||||||
"GRE",
|
|
||||||
"L2",
|
|
||||||
"L3",
|
|
||||||
"SOAP",
|
|
||||||
"TCP",
|
|
||||||
"UDP",
|
|
||||||
"WebSocket",
|
|
||||||
"WireGuard",
|
|
||||||
"Wireshark",
|
|
||||||
"WXLan",
|
|
||||||
"SNTP",
|
|
||||||
"SNMP",
|
|
||||||
"Cisco",
|
|
||||||
"TCP/IP",
|
|
||||||
"Network",
|
|
||||||
"DNS",
|
|
||||||
"JAX-RPC",
|
|
||||||
"RPC"
|
|
||||||
],
|
|
||||||
"default": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "recruit:category:Category.skills:programming-languages",
|
|
||||||
"_class": "tags:class:TagCategory",
|
|
||||||
"space": "tags:space:Tags",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1648550835696,
|
|
||||||
"icon": "tags:icon:Tags",
|
|
||||||
"label": "Programming Languages",
|
|
||||||
"targetClass": "recruit:mixin:Candidate",
|
|
||||||
"tags": [
|
|
||||||
"Python",
|
|
||||||
"C",
|
|
||||||
"C/C++",
|
|
||||||
".NET",
|
|
||||||
"Java",
|
|
||||||
"C++",
|
|
||||||
"C#",
|
|
||||||
"Visual Basic",
|
|
||||||
"JavaScript",
|
|
||||||
"PHP",
|
|
||||||
"Assembly",
|
|
||||||
"SQL",
|
|
||||||
"Go",
|
|
||||||
"Swift",
|
|
||||||
"R",
|
|
||||||
"MATLAB",
|
|
||||||
"Delphi",
|
|
||||||
"Object Pascal",
|
|
||||||
"Ruby",
|
|
||||||
"Classic Visual Basic",
|
|
||||||
"Objective-C",
|
|
||||||
"Perl",
|
|
||||||
"Groovy",
|
|
||||||
"SAS",
|
|
||||||
"Scratch",
|
|
||||||
"Fortran",
|
|
||||||
"Rust",
|
|
||||||
"(Visual) FoxPro",
|
|
||||||
"COBOL",
|
|
||||||
"Dart",
|
|
||||||
"Kotlin",
|
|
||||||
"Lua",
|
|
||||||
"Julia",
|
|
||||||
"Prolog",
|
|
||||||
"Ada",
|
|
||||||
"PL/SQL",
|
|
||||||
"ABAP",
|
|
||||||
"Lisp",
|
|
||||||
"D",
|
|
||||||
"Scala",
|
|
||||||
"TypeScript",
|
|
||||||
"VBScript",
|
|
||||||
"LabVIEW",
|
|
||||||
"Scheme",
|
|
||||||
"Awk",
|
|
||||||
"Ladder Logic",
|
|
||||||
"Apex",
|
|
||||||
"PowerShell",
|
|
||||||
"Logo",
|
|
||||||
"Haskell",
|
|
||||||
"Bash",
|
|
||||||
"RPG",
|
|
||||||
"ML",
|
|
||||||
"Oracle PL/SQL",
|
|
||||||
"XSLT",
|
|
||||||
"Erlang",
|
|
||||||
"Golang"
|
|
||||||
],
|
|
||||||
"default": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "recruit:category:Category.skills:quality",
|
|
||||||
"_class": "tags:class:TagCategory",
|
|
||||||
"space": "tags:space:Tags",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1648550835711,
|
|
||||||
"icon": "tags:icon:Tags",
|
|
||||||
"label": "Quality Assurance",
|
|
||||||
"targetClass": "recruit:mixin:Candidate",
|
|
||||||
"tags": [
|
|
||||||
"Bug reporting",
|
|
||||||
"Bug tracking systems",
|
|
||||||
"Bug tracking",
|
|
||||||
"Functional testing",
|
|
||||||
"JUnit",
|
|
||||||
"Playwright",
|
|
||||||
"pytest",
|
|
||||||
"Regression testing",
|
|
||||||
"SelenIDE",
|
|
||||||
"Selenium",
|
|
||||||
"Test Automation",
|
|
||||||
"Test case",
|
|
||||||
"Test cases",
|
|
||||||
"TestRail",
|
|
||||||
"Регресcионное тестирование",
|
|
||||||
"Функциональное тестирование",
|
|
||||||
"Test",
|
|
||||||
"Quality",
|
|
||||||
"Selenium IDE"
|
|
||||||
],
|
|
||||||
"default": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "recruit:category:Category.skills:sales",
|
|
||||||
"_class": "tags:class:TagCategory",
|
|
||||||
"space": "tags:space:Tags",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1648550835726,
|
|
||||||
"icon": "tags:icon:Tags",
|
|
||||||
"label": "Sales",
|
|
||||||
"targetClass": "recruit:mixin:Candidate",
|
|
||||||
"tags": [
|
|
||||||
"Buyer engagement",
|
|
||||||
"Buyer-Responsive selling",
|
|
||||||
"Closing",
|
|
||||||
"Cold-calling",
|
|
||||||
"CRM",
|
|
||||||
"Digital Communication",
|
|
||||||
"Effective communication and sociability",
|
|
||||||
"Empathy",
|
|
||||||
"Lead generation",
|
|
||||||
"Negotiation",
|
|
||||||
"Persuasion",
|
|
||||||
"Product knowledge",
|
|
||||||
"Public speaking",
|
|
||||||
"Social media",
|
|
||||||
"Teamwork",
|
|
||||||
"Time management",
|
|
||||||
"Customer Relationship Management (CRM)"
|
|
||||||
],
|
|
||||||
"default": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "recruit:category:Category.skills:soft",
|
|
||||||
"_class": "tags:class:TagCategory",
|
|
||||||
"space": "tags:space:Tags",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1648550835737,
|
|
||||||
"icon": "tags:icon:Tags",
|
|
||||||
"label": "Soft Skills",
|
|
||||||
"targetClass": "recruit:mixin:Candidate",
|
|
||||||
"tags": [
|
|
||||||
"Adaptability",
|
|
||||||
"Attention to detail",
|
|
||||||
"Conflict management",
|
|
||||||
"Critical thinking",
|
|
||||||
"Effective communication",
|
|
||||||
"Emotional intelligence",
|
|
||||||
"Problem-solving",
|
|
||||||
"Productivity & organization",
|
|
||||||
"Stress management",
|
|
||||||
"Teamwork skills",
|
|
||||||
"Time management",
|
|
||||||
"Ответственность",
|
|
||||||
"Leadership",
|
|
||||||
"Ведение переговоров"
|
|
||||||
],
|
|
||||||
"default": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "recruit:category:Category.skills:databases",
|
|
||||||
"_class": "tags:class:TagCategory",
|
|
||||||
"space": "tags:space:Tags",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1648550835754,
|
|
||||||
"icon": "tags:icon:Tags",
|
|
||||||
"label": "Database development",
|
|
||||||
"targetClass": "recruit:mixin:Candidate",
|
|
||||||
"tags": [
|
|
||||||
"Hibernate",
|
|
||||||
"MongoDB",
|
|
||||||
"ElasticSearch",
|
|
||||||
"LogStash",
|
|
||||||
"PostgreSQL",
|
|
||||||
"Redis",
|
|
||||||
"MYSQL",
|
|
||||||
"Oracle",
|
|
||||||
"SQLite",
|
|
||||||
"MS SQL",
|
|
||||||
"JDBC",
|
|
||||||
"ODBC",
|
|
||||||
"NoSQL",
|
|
||||||
"FirebirdSQL",
|
|
||||||
"NHibernate",
|
|
||||||
"JPQL",
|
|
||||||
"HQL"
|
|
||||||
],
|
|
||||||
"default": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "recruit:category:Category.skills:desktop",
|
|
||||||
"_class": "tags:class:TagCategory",
|
|
||||||
"space": "tags:space:Tags",
|
|
||||||
"modifiedBy": "core:account:System",
|
|
||||||
"modifiedOn": 1648550835764,
|
|
||||||
"icon": "tags:icon:Tags",
|
|
||||||
"label": "Desktop Application Development",
|
|
||||||
"targetClass": "recruit:mixin:Candidate",
|
|
||||||
"tags": [
|
|
||||||
"Windows",
|
|
||||||
"WPF",
|
|
||||||
"COM",
|
|
||||||
"Cocoa",
|
|
||||||
"Qt",
|
|
||||||
"MVC",
|
|
||||||
"Eclipse",
|
|
||||||
"OpenGL",
|
|
||||||
"Vulkane",
|
|
||||||
"DirectX",
|
|
||||||
"Direct3D",
|
|
||||||
"Game",
|
|
||||||
"Games",
|
|
||||||
"Win32",
|
|
||||||
"Xcode",
|
|
||||||
"DirectShow",
|
|
||||||
"Swing",
|
|
||||||
"SWT",
|
|
||||||
"Unity3D",
|
|
||||||
"Unity",
|
|
||||||
"WinForms",
|
|
||||||
"Visual Studio",
|
|
||||||
"WTL",
|
|
||||||
"MacOS",
|
|
||||||
"MFC"
|
|
||||||
],
|
|
||||||
"default": false
|
|
||||||
}
|
|
||||||
]
|
|
||||||
@@ -1,98 +0,0 @@
|
|||||||
[
|
|
||||||
{
|
|
||||||
"_id": "61f1049e25355d019917dbe0",
|
|
||||||
"_class": "task:class:Issue",
|
|
||||||
"space": "task:space:TasksPublic",
|
|
||||||
"modifiedBy": "61f1031c1badffab2bb33861",
|
|
||||||
"modifiedOn": 1643185318327,
|
|
||||||
"name": "Do boring stuff",
|
|
||||||
"description": "",
|
|
||||||
"assignee": null,
|
|
||||||
"number": 1,
|
|
||||||
"doneState": null,
|
|
||||||
"state": "61f1031bff96c329e8f3d639",
|
|
||||||
"rank": "0|hzzzzz:",
|
|
||||||
"attachedTo": "task:global:Task",
|
|
||||||
"attachedToClass": "task:class:Issue",
|
|
||||||
"collection": "tasks"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "61f104a725355d019917dbe4",
|
|
||||||
"_class": "task:class:Issue",
|
|
||||||
"space": "task:space:TasksPublic",
|
|
||||||
"modifiedBy": "61f1031c1badffab2bb33861",
|
|
||||||
"modifiedOn": 1643185322305,
|
|
||||||
"name": "To delete",
|
|
||||||
"description": "",
|
|
||||||
"assignee": null,
|
|
||||||
"number": 2,
|
|
||||||
"doneState": null,
|
|
||||||
"state": "61f1031bff96c329e8f3d639",
|
|
||||||
"rank": "0|qzzzzz:",
|
|
||||||
"attachedTo": "task:global:Task",
|
|
||||||
"attachedToClass": "task:class:Issue",
|
|
||||||
"collection": "tasks"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "61f104cf25355d019917dbfe",
|
|
||||||
"_class": "recruit:class:Applicant",
|
|
||||||
"space": "61f104b625355d019917dbe9",
|
|
||||||
"modifiedBy": "61f1031c1badffab2bb33861",
|
|
||||||
"modifiedOn": 1643185379701,
|
|
||||||
"state": "61f104b625355d019917dbed",
|
|
||||||
"doneState": null,
|
|
||||||
"number": 1,
|
|
||||||
"assignee": "61f1031c1badffab2bb3385f",
|
|
||||||
"rank": "0|hzzzzz:",
|
|
||||||
"attachedTo": "61f104ba25355d019917dbf8",
|
|
||||||
"attachedToClass": "recruit:mixin:Candidate",
|
|
||||||
"collection": "applications"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "61f104e125355d019917dc03",
|
|
||||||
"_class": "recruit:class:Applicant",
|
|
||||||
"space": "61f104b625355d019917dbe9",
|
|
||||||
"modifiedBy": "61f1031c1badffab2bb33861",
|
|
||||||
"modifiedOn": 1643185377223,
|
|
||||||
"state": "61f104b625355d019917dbeb",
|
|
||||||
"doneState": null,
|
|
||||||
"number": 2,
|
|
||||||
"assignee": "61f1031c1badffab2bb3385f",
|
|
||||||
"rank": "0|qzzzzz:",
|
|
||||||
"attachedTo": "61f1031cff96c329e8f3d68f",
|
|
||||||
"attachedToClass": "recruit:mixin:Candidate",
|
|
||||||
"collection": "applications"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "61f104eb25355d019917dc0a",
|
|
||||||
"_class": "recruit:class:Applicant",
|
|
||||||
"space": "61f104b625355d019917dbe9",
|
|
||||||
"modifiedBy": "61f1031c1badffab2bb33861",
|
|
||||||
"modifiedOn": 1643186559515,
|
|
||||||
"state": "61f104b625355d019917dbef",
|
|
||||||
"doneState": null,
|
|
||||||
"number": 3,
|
|
||||||
"assignee": null,
|
|
||||||
"rank": "0|vhzzzz:",
|
|
||||||
"attachedTo": "61f1031cff96c329e8f3d692",
|
|
||||||
"attachedToClass": "recruit:mixin:Candidate",
|
|
||||||
"collection": "applications",
|
|
||||||
"comments": 2
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"_id": "61f1093d3a1b1a24cfdef404",
|
|
||||||
"_class": "lead:class:Lead",
|
|
||||||
"space": "lead:space:DefaultFunnel",
|
|
||||||
"modifiedBy": "61f1031c1badffab2bb33861",
|
|
||||||
"modifiedOn": 1643186506087,
|
|
||||||
"state": "61f1031bff96c329e8f3d666",
|
|
||||||
"doneState": null,
|
|
||||||
"number": 1,
|
|
||||||
"title": "Sell chain",
|
|
||||||
"rank": "0|hzzzzz:",
|
|
||||||
"assignee": null,
|
|
||||||
"attachedTo": "61f1031cff96c329e8f3d692",
|
|
||||||
"attachedToClass": "lead:mixin:Customer",
|
|
||||||
"collection": "leads"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
[]
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
[]
|
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -53,7 +53,7 @@ test.describe('contact tests', () => {
|
|||||||
await page.click('.antiNav-element:has-text("Person")')
|
await page.click('.antiNav-element:has-text("Person")')
|
||||||
|
|
||||||
await expect(page.locator('text=M. Marina')).toBeVisible()
|
await expect(page.locator('text=M. Marina')).toBeVisible()
|
||||||
expect(await page.locator('.antiTable-body__row').count()).toBeGreaterThan(5)
|
expect(await page.locator('.antiTable-body__row').count()).toBeGreaterThanOrEqual(5)
|
||||||
|
|
||||||
await fillSearch(page, 'Marina')
|
await fillSearch(page, 'Marina')
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,16 @@
|
|||||||
|
import { test, expect } from '@playwright/test'
|
||||||
|
import { PlatformSetting, PlatformURI } from './utils'
|
||||||
|
test.use({
|
||||||
|
storageState: PlatformSetting
|
||||||
|
})
|
||||||
|
|
||||||
|
test('check-status-loading', async ({ page }) => {
|
||||||
|
await (
|
||||||
|
await page.goto(`${PlatformURI}/workbench/sanity-ws/tracker/tracker%3Aproject%3ADefaultProject/issues`)
|
||||||
|
)?.finished()
|
||||||
|
|
||||||
|
await expect(page.locator('.categoryHeader :text-is("In Progress")').first()).toBeVisible()
|
||||||
|
await expect(page.locator('.categoryHeader :text-is("Backlog")').first()).toBeVisible()
|
||||||
|
await expect(page.locator('.categoryHeader :text-is("Todo")').first()).toBeVisible()
|
||||||
|
await expect(page.locator('.categoryHeader :text-is("Done")').first()).toBeVisible()
|
||||||
|
})
|
||||||
Executable
+4
@@ -0,0 +1,4 @@
|
|||||||
|
location="${1:-./sanity-ws}"
|
||||||
|
|
||||||
|
# Restore workspace contents in mongo/elastic
|
||||||
|
./tool.sh backup ${location} sanity-ws
|
||||||
Executable
+13
@@ -0,0 +1,13 @@
|
|||||||
|
|
||||||
|
export MINIO_ACCESS_KEY=minioadmin
|
||||||
|
export MINIO_SECRET_KEY=minioadmin
|
||||||
|
export MINIO_ENDPOINT=localhost:9000
|
||||||
|
export MONGO_URL=mongodb://localhost:27017
|
||||||
|
export TRANSACTOR_URL=ws:/localhost:3333
|
||||||
|
export ELASTIC_URL=http://localhost:9200
|
||||||
|
export SERVER_SECRET=secret
|
||||||
|
|
||||||
|
location="${1:-./sanity-ws}"
|
||||||
|
|
||||||
|
# Restore workspace contents in mongo/elastic
|
||||||
|
node ../dev/tool/bundle.js backup ${location} sanity-ws
|
||||||
Reference in New Issue
Block a user