# Release notes 1.16.15 ## Feature list * [<link on issue/>] <short description/> ## Bug fixes list * [<link on issue/>] <short description/> ## Services to deploy * core service | ENV | Status | | --- | ------ | | TEST| Done | | UAT | Done | | PROD| Done | * main worker | ENV | Status | | --- | ------ | | TEST| Done | | UAT | Done | | PROD| Done | * facebook worker | ENV | Status | | --- | ------ | | TEST| Done | | UAT | Done | | PROD| Done | * user app worker | ENV | Status | | --- | ------ | | TEST| Done | | UAT | Done | | PROD| Done | * permission service | ENV | Status | | --- | ------ | | TEST| Done | | UAT | Done | | PROD| | Max * event trigger service | ENV | Status | | --- | ------ | | TEST| Done | | UAT | Done | | PROD| Done | * admin service | ENV | Status | | --- | ------ | | TEST| Done | | UAT | Done | | PROD| | Max * mongo trigger: messages | ENV | Status | | --- | ------ | | TEST| Done | | UAT | Done | | PROD| Done | * mongo trigger: sessions_2 | ENV | Status | | --- | ------ | | TEST| Done | | UAT | Done | | PROD| Done | * mongo trigger: sessions_3 | ENV | Status | | --- | ------ | | TEST| Done | | UAT | Done | | PROD| Done | * mongo trigger: entities_2_3 | ENV | Status | | --- | ------ | | TEST| Done | | UAT | Done | | PROD| | Max * mongo trigger: facebookMessenger_UserPages_2_3 | ENV | Status | | --- | ------ | | TEST| Done | | UAT | Done | | PROD| Done | * mongo trigger: twilioSMS_Users_2_3 | ENV | Status | | --- | ------ | | TEST| Done | | UAT | Done | | PROD| Done | * mongo trigger: whatsApp_Users_2_3 | ENV | Status | | --- | ------ | | TEST| Done | | UAT | Done | | PROD| Done | * mongo trigger: rakeLiveChat_Users_2_3 | ENV | Status | | --- | ------ | | TEST| | | UAT | Done | | PROD| Done | * mongo trigger: workspaceSystemUsers_2_3 | ENV | Status | | --- | ------ | | TEST| Done | | UAT | Done | | PROD| | Max * mongo trigger: organizationSystemUsers_2 Anton | ENV | Status | | --- | ------ | | TEST| Done | | UAT | Done | | PROD| Done | * mongo trigger: projectSystemUsers_2 Anton | ENV | Status | | --- | ------ | | TEST| Done | | UAT | Done | | PROD| Done | * mongo trigger: roles_2 Anton | ENV | Status | | --- | ------ | | TEST| Done | | UAT | Done | | PROD| Done | * mongo trigger: webhookMessages Anton | ENV | Status | | --- | ------ | | TEST| Done | | UAT | Done | | PROD| Done | * <service name/> | ENV | Status | | --- | ------ | | TEST| | | UAT | | | PROD| | ## DB ### Functionality outbound sessions | ENV | Status | | --- | ------ | | TEST| Done | | UAT | Done | | PROD| | ``` db.getCollection("enumerators").insert({ "name": "campaignSessionStatuses", "systemReference": "senderProfileSessionStatuses", "data": [ { "statusId": 0, "name": "initiated", "systemReference": "initiated" }, { "statusId": 1, "name": "pending", "systemReference": "pending" }, { "statusId": 2, "name": "failed", "systemReference": "failed" }, { "statusId": 3, "name": "sent", "systemReference": "sent" } ] }) db.getCollection("systemFunctions").insert({ "systemApplicationId": 0, "systemFunctionId": 653, "function": "/campaigns", "description": "Manage campaigns", "permissionLevel": "workspace", "name": "/campaigns", "parentId": 652, "availablePermissionTypeIds": [ 1, 2 ] }); db.getCollection("systemFunctions").insert({ "systemApplicationId": 0, "systemFunctionId": 652, "function": "/campaigns", "description": "Manage campaigns", "permissionLevel": "workspace", "name": "/campaigns", "availablePermissionTypeIds": [ 1, 2 ] }); db.getCollection("platformTypes").insert({ "platformTypeId": 4, "name": "TODO: sender profile", "systemReference": "senderProfile" }) db.getCollection("platforms").update( { platformId: 1 }, { $addToSet: { "platformTypeIds": 4 } }) db.getCollection("sessionTypes").insert({ sessionTypeId: 3, name: "campaign", sessionTtl: 0, isSearchCacheEnabled: false, }) db.getCollection("events").insertMany([ { "name": "campaign session started", "systemEventId": 188, "systemReference": "session.campaign.started" }, { "name": "campaign session update", "systemEventId": 189, "systemReference": "session.campaign.updated" }, { "name": "campaign session fail", "systemEventId": 190, "systemReference": "session.campaign.failed" }, { "name": "Add vcfCard on the end of the session", "systemEventId": -191, "systemReference": "session.vcfCard.init" }, { "name": "vcfCard was sended", "systemEventId": -192, "systemReference": "session.vcfCard.sended" }, { "name": "Session campaign. Platform sending started", "systemEventId": -193, "systemReference": "session.campaign.platform.started" }, { "name": "Session campaign. Platform sending success", "systemEventId": -194, "systemReference": "session.campaign.platform.success" }, { "name": "Session campaign. Platform sending failed with reason ", "systemEventId": -195, "systemReference": "session.campaign.platform.failed" }, { "name": "Platform sending success", "systemEventId": -196, "systemReference": "session.platform.success" }, { "name": "Session was ended via module", "systemEventId": -197, "systemReference": "endSessionViaModule" } ]) db.getCollection("systemFunctions").insert({ "systemApplicationId" : 0, "systemFunctionId" : 647, "function" : "/sender-profiles", "description" : "Manage sender profiles", "permissionLevel" : "workspace", "name" : "/sender-profiles", "availablePermissionTypeIds" : [ 1, 2, 3, 4 ] }) db.getCollection("systemFunctions").insert({ "systemApplicationId" : 0, "systemFunctionId" : 648, parentId: 647, "function" : "/sender-profiles", "description" : "Manage sender profiles", "permissionLevel" : "workspace", "name" : "/sender-profiles", "availablePermissionTypeIds" : [ 1, 2, 3, 4 ], "paths": [ { "id": "GET", "path": "/sender-profiles" }, { "id": "GET", "path": "/sender-profiles/:senderProfileId" }, { "id": "DELETE", "path": "/sender-profiles/:senderProfileId" }, { "id": "PATCH", "path": "/sender-profiles/:senderProfileId" }, { "id": "PUT", "path": "/sender-profiles/:senderProfileId" } ], }) db.getCollection("systemFunctions").update( { systemFunctionId: 400 }, { $set: { "availablePermissionTypeIds": [ 1, 2, 3, 4 ] } }) db.getCollection("roles").update({ roleId: 7 }, { $push: { "systemFunctionIds": { "id": 647, "availablePermissionTypeIds": [ 1, 2, 3, 4 ] } } }) db.getCollection("roles").updateMany({ roleId: { $in: [9,10] } }, { $push: { "systemFunctionIds": { "id": 647, "availablePermissionTypeIds": [ 1, 2, ] } } }) const { count } = db.identitycounters.findOneAndUpdate({ model: 'eventTriggers' }, { $inc: { count: 1 } }, { returnNewDocument: true }) db.eventTriggers.insertOne({ "eventTriggerId": count, "description": "[Campaign] Platform sending failed", "eventIds": [-195], "customFilter": "", "filters": [], "actions": [ { "id": 7, "arguments": [ { "function": "{function.get('{collection.messages.rawMessages.name}', { 'rawMessage.sessionId': {currentSessionId}, 'rawMessage.systemEventId': { $in: [188, 189] } }, 'rawMessage' ).setData(result.data.rawMessage.reduce%40%40acc, cur%41 => { if %40cur.rawMessage.systemEventId === 189%41 { acc = cur } if %40!acc && cur.rawMessage.systemEventId === 188%41 { acc = cur; } return acc;}, null%41, 'rawMessage').setData(result.data.rawMessage.rawMessage.platformConnectors.length, 'result.length').setData(result.data.rawMessage.rawMessage.platformConnectors, 'result.platformConnectors').setData(result.data.rawMessage.rawMessage.customerEntityId, 'result.customerEntityId').getValue('result').}" } ], "resultField": "result", "nextActions": [ { "filters": [ { "filterOperatorId": 0, "filterId": -1, "arguments": ["{lastResult.result.function.length}", 0] } ], "actions": [ { "id": 1, "arguments": [ { "body": { "systemEventId": 190 }, "method": "POST", "url": "{serverUrl}/sessions/{currentSessionId}/system-events", "headers": { "Authorization": "0.lo22gendj5i" } } ] } ] }, { "filters": [ { "filterOperatorId": 1, "filterId": -1, "arguments": ["{lastResult.result.function.length}", 0] } ], "actions": [ { "id": 1, "arguments": [ { "body": { "platformConnectorId": "{function.setData({lastResult.result.function.platformConnectors}[0], 'platformConnector').getValue('platformConnector.platformConnectorId')}", "platformId": "{function.setData({lastResult.result.function.platformConnectors}[0], 'platformConnector').getValue('platformConnector.platformId').}" }, "method": "PATCH", "url": "{serverUrl}/sessions/{currentSessionId}/entities/{lastResult.result.function.customerEntityId}", "headers": { "Authorization": "0.lo22gendj5i" } } ], "resultField": "resultRequest", "nextActions": [ { "filters": [ { "filterOperatorId": 0, "filterId": -1, "arguments": ["{lastResult.resultRequest.statusCode}", 200] } ], "actions": [ { "id": 3, "arguments": [ { "queueName": "core", "pack": { "event": "resend", "message": { "messageId": "{function.get('{collection.messages.name}',{ 'sessionId': {currentSessionId}, 'systemEventId': { $exists: false }, 'toEntityId': {lastResult.result.function.customerEntityId} }, 'messages').setData(result.data.messages[0], 'message').getValue('message.messageId')}" } } } ] } ] } ] }, { "id": 1, "arguments": [ { "body": { "systemEventId": -193, "data": { "platformConnector": { "platformConnectorId": "{function.setData({lastResult.result.function.platformConnectors}[0], 'platformConnector').getValue('platformConnector.platformConnectorId')}", "platformId": "{function.setData({lastResult.result.function.platformConnectors}[0], 'platformConnector').getValue('platformConnector.platformId')}" } } }, "method": "POST", "url": "{serverUrl}/sessions/{currentSessionId}/system-events", "headers": { "Authorization": "0.lo22gendj5i" } } ] }, { "id": 1, "arguments": [ { "body": { "systemEventId": 189, "data": { "platformConnectors": "{function.setData({lastResult.result.function.platformConnectors}.slice%400, -1%41, 'platformConnectors').getValue('platformConnectors')}" } }, "method": "POST", "url": "{serverUrl}/sessions/{currentSessionId}/system-events", "headers": { "Authorization": "0.lo22gendj5i" } } ] } ] } ] } ] }) ``` ``` db.getCollection("localizations").insert([ { "_id" : ObjectId("6228d24a031f31b22c96e1fb"), "errorCode" : "0_22", "systemReference" : "error.phoneWrongFormat", "languages" : [ { "code" : "en", "text" : "Phone number:{chatId} has wrong format. Required E.164 format" } ], "systemApplicationIds" : [ 0 ] }, { "_id" : ObjectId("6228d24a031f31b22c96e1fa"), "errorCode" : "0_21", "systemReference" : "error.whatsAppUserProfileNotFound", "languages" : [ { "code" : "en", "text" : "Not found whatsApp user profile by:{ chatId: {chatId} }" } ], "systemApplicationIds" : [ 0 ] }, { "_id" : ObjectId("6228d24a031f31b22c96e1f9"), "errorCode" : "0_20", "systemReference" : "error.platforConnectorNotRelateToWorkspace", "languages" : [ { "code" : "en", "text" : "{platformName} Workspace by _id:{platformConnectorId} not related to workspaceId:{workspaceId}" } ], "systemApplicationIds" : [ 0 ] }, { "_id" : ObjectId("6228d24a031f31b22c96e1f8"), "errorCode" : "0_19", "systemReference" : "error.facebookUserProfileNotFound", "languages" : [ { "code" : "en", "text" : "Not found facebook user profile by:{ chatId:{chatId}, pageId:{pageId} }" } ], "systemApplicationIds" : [ 0 ] }, { "_id" : ObjectId("6228d24a031f31b22c96e1f7"), "errorCode" : "0_18", "systemReference" : "error.platformConnectorsAlreadyInUse", "languages" : [ { "code" : "en", "text" : "Platform connectors are already in use:{platformConnectors}" } ], "systemApplicationIds" : [ 0 ] }, { "_id" : ObjectId("6228d24a031f31b22c96e1f6"), "errorCode" : "0_17", "systemReference" : "error.systemUserNotAllowedToUseProfile", "languages" : [ { "code" : "en", "text" : "System user with id:{systemUserId} not allow to use his profile" } ], "systemApplicationIds" : [ 0 ] }, { "_id" : ObjectId("6228d24a031f31b22c96e1f5"), "errorCode" : "0_16", "systemReference" : "error.workspaceSystemUserNotFound", "languages" : [ { "code" : "en", "text" : "Not found workspace system user by entityId:{entityId}t" } ], "systemApplicationIds" : [ 0 ] }, { "_id" : ObjectId("6228d24a031f31b22c96e1f4"), "errorCode" : "0_15", "systemReference" : "error.availablePermissionTypeNotAllowedWithToken", "languages" : [ { "code" : "en", "text" : "availablePermissionTypeId:{notAllowedPermissionTypeId} in systemFunctionId:{systemFunctionId} is not allowed with this user access token" } ], "systemApplicationIds" : [ 0 ] }, { "_id" : ObjectId("6228d24a031f31b22c96e1f3"), "errorCode" : "0_14", "systemReference" : "error.systemFunctionNotAllowedWithToken", "languages" : [ { "code" : "en", "text" : "systemFunctionId:{systemFunctionId} is not allowed with this user access token" } ], "systemApplicationIds" : [ 0 ] }, { "_id" : ObjectId("6228d24a031f31b22c96e1f2"), "errorCode" : "0_13", "systemReference" : "error.invalidListOfParameters", "languages" : [ { "code" : "en", "text" : "Invalid list of parameters" } ], "systemApplicationIds" : [ 0 ] }, { "_id" : ObjectId("6228d24a031f31b22c96e1f1"), "errorCode" : "0_12", "systemReference" : "error.scopeHandlerNotFound", "languages" : [ { "code" : "en", "text" : "Not found scope handler" } ], "systemApplicationIds" : [ 0 ] }, { "_id" : ObjectId("6228d24a031f31b22c96e1f0"), "errorCode" : "0_11", "systemReference" : "error.roleNotRelateToScope", "languages" : [ { "code" : "en", "text" : "This role not related to this scope" } ], "systemApplicationIds" : [ 0 ] }, { "_id" : ObjectId("6228d24a031f31b22c96e1ef"), "errorCode" : "0_10", "systemReference" : "error.roleMicmatchTypesWithScope", "languages" : [ { "code" : "en", "text" : "This role has mismatch types with selected scope" } ], "systemApplicationIds" : [ 0 ] }, { "_id" : ObjectId("6228d24a031f31b22c96e1ee"), "errorCode" : "0_09", "systemReference" : "error.scopeNotSpecified", "languages" : [ { "code" : "en", "text" : "Scope parameter was not specified" } ], "systemApplicationIds" : [ 0 ] }, { "_id" : ObjectId("6228d24a031f31b22c96e1ed"), "errorCode" : "0_08", "systemReference" : "error.noAccessToScope", "languages" : [ { "code" : "en", "text" : "You don't have access to scope {scopeName} by id {id}" } ], "systemApplicationIds" : [ 0 ] }, { "_id" : ObjectId("6228d24a031f31b22c96e1ec"), "errorCode" : "0_07", "systemReference" : "error.scopeIncludeDuplicants", "languages" : [ { "code" : "en", "text" : "Scope {scopeName} include duplications" } ], "systemApplicationIds" : [ 0 ] }, { "_id" : ObjectId("6228d24a031f31b22c96e1eb"), "errorCode" : "0_06", "systemReference" : "error.emailTypeIsIncorrect", "languages" : [ { "code" : "en", "text" : "Parameter email type is incorrect" } ], "systemApplicationIds" : [ 0 ] }, { "_id" : ObjectId("6228d24a031f31b22c96e1ea"), "errorCode" : "0_05", "systemReference" : "error.emailNotAllowed", "languages" : [ { "code" : "en", "text" : "Email {email} is not allowed by email aliases" } ], "systemApplicationIds" : [ 0 ] }, { "_id" : ObjectId("6228d24a031f31b22c96e1e9"), "errorCode" : "0_04", "systemReference" : "http.headerNotSpecified", "languages" : [ { "code" : "en", "text" : "Header {systemApplicationId} was not specified" } ], "systemApplicationIds" : [ 0 ] }, { "_id" : ObjectId("6228d24a031f31b22c96e1e8"), "errorCode" : "0_03", "systemReference" : "http.headerNotSpecified", "languages" : [ { "code" : "en", "text" : "Provided old password not equal to current" } ], "systemApplicationIds" : [ 0 ] }, { "_id" : ObjectId("6228d24a031f31b22c96e1e7"), "errorCode" : "0_02", "systemReference" : "error.systemUser.notRelatedToken", "languages" : [ { "code" : "en", "text" : "Provided authorization token not related to systemUserId: {systemUserId}" } ], "systemApplicationIds" : [ 0 ] }, ]) // CHECK BASE_URL on PROD db.getCollection("systemApplications").update({ "systemApplicationId" : 25, }, { $set: { "baseUrl": "https://facebook-worker-uat-dot-rake-system-uat.ue.r.appspot.com" } }) ``` ### Mongo triggers | ENV | Status | | --- | ------ | | TEST| done | | UAT | done | | PROD| | - workspaceSystemUsers - projectSystemUsers - organizationSystemUsers - sessions - roles - webhookMessages ### Cloud Functions | ENV | Status | | --- | ------ | | TEST| done | | UAT | | | PROD| | - message-entity-unread ### Event triggers messageEntityUnread | ENV | Status | | --- | ------ | | TEST| done | | UAT | Done | | PROD| | ``` db.eventTriggers.update({ eventTriggerId: 7 }, { $set: { "eventIds": [ -113, -115, -116, -117, -119, -120, -121, -142, -143, -144, -168, -169, -170, -171, -172, -173, -141 ], "filters": [], "customFilter": "", "actions": [ { "id": 1, "arguments": [ { "method": "PUT", "url": "{permissionUrl}/permissions/cache/system-users", "headers": { "Authorization": "0.lo22gendj5i" }, "body": { "systemUserId": "{rawMessage.systemUserId}", "systemUserIds": "{rawMessage.systemUserIds}" } } ], "nextActions": [ { "filters" : [ { "filterOperatorId" : 1, "filterId" : -1, "arguments" : [ "{rawMessage.isRolesUpdate}", true ] } ], "actions": [ { "arguments": [ { "body": [{ "systemUserId": "{rawMessage.systemUserId}", "entityId": "{rawMessage.entityId}", "status": "{rawMessage.status}", "operation": "{rawMessage.operation}", "workspaceId": "{rawMessage.workspaceId}", "projectId": "{rawMessage.projectId}", "organizationId": "{rawMessage.organizationId}", systemEventId: "{rawMessage.systemEventId}" }], "method": "POST", "url": "https://us-central1-rake-system-test.cloudfunctions.net/message-entity-unread" } ], "id": 1 } ] }, { "filters" : [ { "filterOperatorId" : 0, "filterId" : -1, "arguments" : [ "{rawMessage.isRolesUpdate}", true ] } ], "actions": [ { "arguments": [ { "body": "{rawMessage.systemUsers}", "method": "POST", "url": "https://us-central1-rake-system-test.cloudfunctions.net/message-entity-unread" } ], "id": 1 } ] } ] } ], "eventTriggerId": 7 } }) ``` ### Webhook messages | ENV | Status | | --- | ------ | | TEST| | | UAT | Done | | PROD| Done | ``` db.webhookMessages.remove({ lastResultCode: 200 }); ``` ### Localization | ENV | Status | | --- | ------ | | TEST| done | | UAT | done | | PROD| | ``` db.localizations.insert({ _id: ObjectId('62287584592dc429a94460c9'), "languages" : [ { "code" : "en", "text" : "Please provide valid email" } ], "systemReference" : "error.general.provideValidEmail", "systemApplicationIds": [10], screenshots: [ { systemApplicationId: 10, path: "src/components/chat/message/templates/form" } ], }) db.localizations.insert([ /* 1 createdAt:3/21/2022, 8:17:31 PM*/ { "_id" : ObjectId("6238c13b06e03d1f6f4a1390"), "languages" : [ { "code" : "en", "text" : "campaigns" } ], "regionCode" : [ ], "systemApplicationIds" : [ 1 ], "screenshots" : [ { "path" : "client/src/modules/Conversations/general/conversations-list/campaigns/page/campaign.component.tsx", "systemApplicationId" : 1 } ] }, /* 2 createdAt:3/21/2022, 8:13:50 PM*/ { "_id" : ObjectId("6238c05e06e03d1f6f4a138f"), "languages" : [ { "code" : "en", "text" : "complete" } ], "regionCode" : [ ], "systemApplicationIds" : [ 1 ], "screenshots" : [ { "path" : "client/src/modules/Conversations/general/conversations-list/campaigns/page/campaign-page.component.tsx", "systemApplicationId" : 1 } ] }, /* 3 createdAt:3/21/2022, 7:54:47 PM*/ { "_id" : ObjectId("6238bbe706e03d1f6f4a138e"), "languages" : [ { "code" : "en", "text" : "contacts" } ], "regionCode" : [ ], "systemApplicationIds" : [ 1 ], "screenshots" : [ { "path" : "client/src/modules/Conversations/general/conversations-list/campaigns/page/campaign-page.component.tsx", "systemApplicationId" : 1 } ] }, /* 4 createdAt:3/21/2022, 7:49:06 PM*/ { "_id" : ObjectId("6238ba9206e03d1f6f4a138d"), "languages" : [ { "code" : "en", "text" : "your message(s)" } ], "regionCode" : [ ], "systemApplicationIds" : [ 1 ], "screenshots" : [ { "path" : "client/src/modules/Conversations/general/conversations-list/campaigns/page/campaign-page.component.tsx", "systemApplicationId" : 1 } ] }, /* 5 createdAt:3/21/2022, 7:47:55 PM*/ { "_id" : ObjectId("6238ba4b06e03d1f6f4a138c"), "languages" : [ { "code" : "en", "text" : "sent at" } ], "regionCode" : [ ], "systemApplicationIds" : [ 1 ], "screenshots" : [ { "path" : "client/src/modules/Conversations/general/conversations-list/campaigns/page/campaign-page.component.tsx", "systemApplicationId" : 1 } ] }, /* 6 createdAt:3/21/2022, 7:44:07 PM*/ { "_id" : ObjectId("6238b96706e03d1f6f4a138b"), "languages" : [ { "code" : "en", "text" : "refresh" } ], "regionCode" : [ ], "systemApplicationIds" : [ 1 ], "screenshots" : [ { "path" : "client/src/modules/Conversations/general/conversations-list/campaigns/page/campaign-page.component.tsx", "systemApplicationId" : 1 } ] }, /* 7 createdAt:3/21/2022, 7:42:55 PM*/ { "_id" : ObjectId("6238b91f06e03d1f6f4a138a"), "languages" : [ { "code" : "en", "text" : "top platforms" } ], "regionCode" : [ ], "systemApplicationIds" : [ 1 ], "screenshots" : [ { "path" : "client/src/modules/Conversations/general/conversations-list/campaigns/page/campaign-page.component.tsx", "systemApplicationId" : 1 } ] }, /* 8 createdAt:3/21/2022, 7:40:46 PM*/ { "_id" : ObjectId("6238b89e06e03d1f6f4a1389"), "languages" : [ { "code" : "en", "text" : "delivered" } ], "regionCode" : [ ], "systemApplicationIds" : [ 1 ], "screenshots" : [ { "path" : "client/src/modules/Conversations/general/conversations-list/campaigns/page/campaign-page.component.tsx", "systemApplicationId" : 1 } ] }, /* 9 createdAt:3/21/2022, 7:38:51 PM*/ { "_id" : ObjectId("6238b82b06e03d1f6f4a1388"), "languages" : [ { "code" : "en", "text" : "sent to" } ], "regionCode" : [ ], "systemApplicationIds" : [ 1 ], "screenshots" : [ { "path" : "client/src/modules/Conversations/general/conversations-list/campaigns/page/campaign-page.component.tsx", "systemApplicationId" : 1 } ] }, /* 10 createdAt:3/21/2022, 7:28:10 PM*/ { "_id" : ObjectId("6238b5aa06e03d1f6f4a1387"), "languages" : [ { "code" : "en", "text" : "campaign" }, { "code" : "uk", "text" : "Кампанiя" } ], "regionCode" : [ ], "systemApplicationIds" : [ 1 ], "screenshots" : [ { "path" : "client/src/modules/Conversations/general/conversations-list/campaigns/page/campaign-page.component.tsx", "systemApplicationId" : 1 } ] }, /* 11 createdAt:3/21/2022, 7:05:16 PM*/ { "_id" : ObjectId("6238b04c06e03d1f6f4a1386"), "languages" : [ { "code" : "en", "text" : "Sender profile" }, { "code" : "uk", "text" : "Профіль відправника" } ], "regionCode" : [ ], "systemApplicationIds" : [ 1 ], "screenshots" : [ { "path" : "client/src/modules/Conversations/general/conversations-list/campaigns/page/campaign-page.component.tsx", "systemApplicationId" : 1 } ] }, ]) ``` ### Add system function to roles | ENV | Status | | --- | ------ | | TEST| Done | | UAT | Done | | PROD| | ``` db.roles.updateMany({ roleId: { $in: [10, 9, 8, 7, 6, 5, 4, 3, 2, 1] } }, { $addToSet: { systemFunctionIds: { id: 653, availablePermissionTypeIds: [1, 2] } } }) ``` ### Functionality <name/> | ENV | Status | | --- | ------ | | TEST| | | UAT | | | PROD| | ``` <noSQLBoosterCode/> <repoScripts/> ```