## Description Tracking of certain user actions tend to pollute our Mixpanel dashboard instead of providing meaningful insights. The following Mixpanel events add very little value and hence should be removed immediately: CONSOLE_LOG_CREATED AUTO_COMPLETE_SHOW The issue mentions two more events: BINDING_SUCCESS - doesn't seem to exist anymore, maybe already removed JS_VARIABLE_MUTATED - a bit complicated to remove, will do this in a separate PR Fixes #31728 ## Automation /ok-to-test tags="@tag.Sanity, @tag.JS, @tag.Binding" ### 🔍 Cypress test results <!-- This is an auto-generated comment: Cypress test results --> > [!IMPORTANT] > Workflow run: <https://github.com/appsmithorg/appsmith/actions/runs/8281028348> > Commit: `4f1502191d03a5476473a1c911e011e3ad8ad1df` > Cypress dashboard url: <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=8281028348&attempt=1" target="_blank">Click here!</a> > All cypress tests have passed 🎉🎉🎉 <!-- end of auto-generated comment: Cypress test results --> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **Refactor** - Enhanced privacy by removing specific analytics logging for user-generated events. - **Chores** - Updated analytics event types by removing unused events. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
116 lines
2.6 KiB
TypeScript
116 lines
2.6 KiB
TypeScript
import {
|
|
addErrorLogInit,
|
|
debuggerLog,
|
|
debuggerLogInit,
|
|
deleteErrorLogsInit,
|
|
} from "actions/debuggerActions";
|
|
import type { ReduxAction } from "@appsmith/constants/ReduxActionConstants";
|
|
import type { LogActionPayload, Log } from "entities/AppsmithConsole";
|
|
import { Severity, LOG_CATEGORY } from "entities/AppsmithConsole";
|
|
import moment from "moment";
|
|
import store from "store";
|
|
import { isEmpty } from "lodash";
|
|
|
|
// * @param payload - payload of the error
|
|
// * @param severity - severity of the error
|
|
// * @param category - category of the error
|
|
export interface ErrorObject {
|
|
payload: LogActionPayload;
|
|
severity?: Severity;
|
|
category?: LOG_CATEGORY;
|
|
}
|
|
|
|
function dispatchAction(action: ReduxAction<unknown>) {
|
|
store.dispatch(action);
|
|
}
|
|
|
|
function log(ev: Log) {
|
|
dispatchAction(debuggerLogInit([ev]));
|
|
}
|
|
|
|
function getTimeStamp() {
|
|
return moment().format("HH:mm:ss");
|
|
}
|
|
|
|
function addLogs(logs: Log[]) {
|
|
dispatchAction(debuggerLog(logs));
|
|
}
|
|
|
|
function info(
|
|
ev: LogActionPayload,
|
|
timestamp = getTimeStamp(),
|
|
category = LOG_CATEGORY.PLATFORM_GENERATED,
|
|
) {
|
|
log({
|
|
...ev,
|
|
severity: Severity.INFO,
|
|
timestamp,
|
|
category,
|
|
occurrenceCount: 1,
|
|
isExpanded: false,
|
|
});
|
|
}
|
|
|
|
function warning(
|
|
ev: LogActionPayload,
|
|
timestamp = getTimeStamp(),
|
|
category = LOG_CATEGORY.PLATFORM_GENERATED,
|
|
) {
|
|
log({
|
|
...ev,
|
|
severity: Severity.WARNING,
|
|
timestamp,
|
|
category,
|
|
occurrenceCount: 1,
|
|
isExpanded: false,
|
|
});
|
|
}
|
|
|
|
// This is used to show a log as an error
|
|
// NOTE: These logs won't appear in the errors tab
|
|
// To add errors to the errors tab use the addError method.
|
|
function error(
|
|
ev: LogActionPayload,
|
|
timestamp = getTimeStamp(),
|
|
category = LOG_CATEGORY.PLATFORM_GENERATED,
|
|
) {
|
|
log({
|
|
...ev,
|
|
severity: Severity.ERROR,
|
|
timestamp,
|
|
category,
|
|
occurrenceCount: 1,
|
|
isExpanded: false,
|
|
});
|
|
}
|
|
|
|
// Function used to add errors to the error tab of the debugger
|
|
function addErrors(errors: ErrorObject[]) {
|
|
if (isEmpty(errors)) return;
|
|
const refinedErrors = errors.map((error) => ({
|
|
...error.payload,
|
|
severity: error.severity ?? Severity.ERROR,
|
|
timestamp: Date.now().toString(),
|
|
occurrenceCount: 1,
|
|
category: error.category ?? LOG_CATEGORY.PLATFORM_GENERATED,
|
|
isExpanded: false,
|
|
}));
|
|
|
|
dispatchAction(addErrorLogInit(refinedErrors));
|
|
}
|
|
|
|
// This is used to remove errors from the error tab of the debugger
|
|
function deleteErrors(errors: { id: string; analytics?: Log["analytics"] }[]) {
|
|
if (isEmpty(errors)) return;
|
|
dispatchAction(deleteErrorLogsInit(errors));
|
|
}
|
|
|
|
export default {
|
|
addLogs,
|
|
info,
|
|
warning,
|
|
error,
|
|
addErrors,
|
|
deleteErrors,
|
|
};
|