1
0
mirror of https://github.com/Unleash/unleash.git synced 2025-10-18 11:14:57 +02:00
unleash.unleash/src/lib/events/index.ts

412 lines
16 KiB
TypeScript

import type { ITag } from '../tags/index.js';
export const APPLICATION_CREATED = 'application-created' as const;
// feature event types
export const FEATURE_CREATED = 'feature-created' as const;
export const FEATURE_DELETED = 'feature-deleted' as const;
export const FEATURE_UPDATED = 'feature-updated' as const;
export const FEATURE_DEPENDENCY_ADDED = 'feature-dependency-added' as const;
export const FEATURE_DEPENDENCY_REMOVED = 'feature-dependency-removed' as const;
export const FEATURE_DEPENDENCIES_REMOVED =
'feature-dependencies-removed' as const;
export const FEATURE_METADATA_UPDATED = 'feature-metadata-updated' as const;
export const FEATURE_VARIANTS_UPDATED = 'feature-variants-updated' as const;
export const FEATURE_ENVIRONMENT_VARIANTS_UPDATED =
'feature-environment-variants-updated' as const;
export const FEATURE_PROJECT_CHANGE = 'feature-project-change' as const;
export const FEATURE_ARCHIVED = 'feature-archived' as const;
export const FEATURE_REVIVED = 'feature-revived' as const;
export const FEATURE_IMPORT = 'feature-import' as const;
export const FEATURE_LINK_ADDED = 'feature-link-added' as const;
export const FEATURE_LINK_REMOVED = 'feature-link-removed' as const;
export const FEATURE_LINK_UPDATED = 'feature-link-updated' as const;
export const FEATURE_TAGGED = 'feature-tagged' as const;
export const FEATURE_TAG_IMPORT = 'feature-tag-import' as const;
export const FEATURE_STRATEGY_UPDATE = 'feature-strategy-update' as const;
export const FEATURE_STRATEGY_ADD = 'feature-strategy-add' as const;
export const FEATURE_STRATEGY_REMOVE = 'feature-strategy-remove' as const;
export const DROP_FEATURE_TAGS = 'drop-feature-tags' as const;
export const FEATURE_UNTAGGED = 'feature-untagged' as const;
export const FEATURE_STALE_ON = 'feature-stale-on' as const;
export const FEATURE_COMPLETED = 'feature-completed' as const;
export const FEATURE_UNCOMPLETED = 'feature-uncompleted' as const;
export const FEATURE_STALE_OFF = 'feature-stale-off' as const;
export const DROP_FEATURES = 'drop-features' as const;
export const FEATURE_ENVIRONMENT_ENABLED =
'feature-environment-enabled' as const;
export const FEATURE_ENVIRONMENT_DISABLED =
'feature-environment-disabled' as const;
export const STRATEGY_ORDER_CHANGED = 'strategy-order-changed';
export const STRATEGY_CREATED = 'strategy-created' as const;
export const STRATEGY_DELETED = 'strategy-deleted' as const;
export const STRATEGY_DEPRECATED = 'strategy-deprecated' as const;
export const STRATEGY_REACTIVATED = 'strategy-reactivated' as const;
export const STRATEGY_UPDATED = 'strategy-updated' as const;
export const STRATEGY_IMPORT = 'strategy-import' as const;
export const DROP_STRATEGIES = 'drop-strategies' as const;
export const CONTEXT_FIELD_CREATED = 'context-field-created' as const;
export const CONTEXT_FIELD_UPDATED = 'context-field-updated' as const;
export const CONTEXT_FIELD_DELETED = 'context-field-deleted' as const;
export const PROJECT_ACCESS_ADDED = 'project-access-added' as const;
export const FEATURE_TYPE_UPDATED = 'feature-type-updated' as const;
export const PROJECT_ACCESS_USER_ROLES_UPDATED =
'project-access-user-roles-updated';
export const PROJECT_ACCESS_GROUP_ROLES_UPDATED =
'project-access-group-roles-updated';
export const PROJECT_ACCESS_UPDATED = 'project-access-updated' as const;
export const PROJECT_ACCESS_USER_ROLES_DELETED =
'project-access-user-roles-deleted';
export const PROJECT_ACCESS_GROUP_ROLES_DELETED =
'project-access-group-roles-deleted';
export const ROLE_CREATED = 'role-created';
export const ROLE_UPDATED = 'role-updated';
export const ROLE_DELETED = 'role-deleted';
export const PROJECT_CREATED = 'project-created' as const;
export const PROJECT_UPDATED = 'project-updated' as const;
export const PROJECT_DELETED = 'project-deleted' as const;
export const PROJECT_ARCHIVED = 'project-archived' as const;
export const PROJECT_REVIVED = 'project-revived' as const;
export const PROJECT_IMPORT = 'project-import' as const;
export const PROJECT_USER_ADDED = 'project-user-added' as const;
export const PROJECT_USER_REMOVED = 'project-user-removed' as const;
export const PROJECT_USER_ROLE_CHANGED = 'project-user-role-changed' as const;
export const PROJECT_GROUP_ADDED = 'project-group-added' as const;
export const DROP_PROJECTS = 'drop-projects' as const;
export const TAG_CREATED = 'tag-created' as const;
export const TAG_DELETED = 'tag-deleted' as const;
export const TAG_IMPORT = 'tag-import' as const;
export const DROP_TAGS = 'drop-tags' as const;
export const TAG_TYPE_CREATED = 'tag-type-created' as const;
export const TAG_TYPE_DELETED = 'tag-type-deleted' as const;
export const TAG_TYPE_UPDATED = 'tag-type-updated' as const;
export const TAG_TYPE_IMPORT = 'tag-type-import' as const;
export const DROP_TAG_TYPES = 'drop-tag-types' as const;
export const ADDON_CONFIG_CREATED = 'addon-config-created' as const;
export const ADDON_CONFIG_UPDATED = 'addon-config-updated' as const;
export const ADDON_CONFIG_DELETED = 'addon-config-deleted' as const;
export const DB_POOL_UPDATE = 'db-pool-update' as const;
export const USER_CREATED = 'user-created' as const;
export const USER_UPDATED = 'user-updated' as const;
export const USER_DELETED = 'user-deleted' as const;
export const DROP_ENVIRONMENTS = 'drop-environments' as const;
export const ENVIRONMENT_IMPORT = 'environment-import' as const;
export const ENVIRONMENT_CREATED = 'environment-created' as const;
export const ENVIRONMENT_UPDATED = 'environment-updated' as const;
export const ENVIRONMENT_DELETED = 'environment-deleted' as const;
export const SEGMENT_CREATED = 'segment-created' as const;
export const SEGMENT_UPDATED = 'segment-updated' as const;
export const SEGMENT_DELETED = 'segment-deleted' as const;
export const SEGMENT_IMPORT = 'segment-import' as const;
export const GROUP_CREATED = 'group-created' as const;
export const GROUP_UPDATED = 'group-updated' as const;
export const GROUP_DELETED = 'group-deleted' as const;
export const GROUP_USER_ADDED = 'group-user-added' as const;
export const GROUP_USER_REMOVED = 'group-user-removed' as const;
export const SETTING_CREATED = 'setting-created' as const;
export const SETTING_UPDATED = 'setting-updated' as const;
export const SETTING_DELETED = 'setting-deleted' as const;
export const PROJECT_ENVIRONMENT_ADDED = 'project-environment-added' as const;
export const PROJECT_ENVIRONMENT_REMOVED =
'project-environment-removed' as const;
export const DEFAULT_STRATEGY_UPDATED = 'default-strategy-updated' as const;
export const CLIENT_METRICS = 'client-metrics' as const;
export const CLIENT_METRICS_ADDED = 'client-metrics-added' as const;
export const CLIENT_REGISTER = 'client-register' as const;
export const PAT_CREATED = 'pat-created' as const;
export const PAT_DELETED = 'pat-deleted' as const;
export const PUBLIC_SIGNUP_TOKEN_CREATED =
'public-signup-token-created' as const;
export const PUBLIC_SIGNUP_TOKEN_USER_ADDED =
'public-signup-token-user-added' as const;
export const PUBLIC_SIGNUP_TOKEN_TOKEN_UPDATED =
'public-signup-token-updated' as const;
export const CHANGE_REQUEST_CREATED = 'change-request-created' as const;
export const CHANGE_REQUEST_DISCARDED = 'change-request-discarded' as const;
export const CHANGE_ADDED = 'change-added' as const;
export const CHANGE_DISCARDED = 'change-discarded' as const;
export const CHANGE_EDITED = 'change-edited' as const;
export const CHANGE_REQUEST_APPROVED = 'change-request-approved' as const;
export const CHANGE_REQUEST_REJECTED = 'change-request-rejected' as const;
export const CHANGE_REQUEST_APPROVAL_ADDED =
'change-request-approval-added' as const;
export const CHANGE_REQUEST_CANCELLED = 'change-request-cancelled' as const;
export const CHANGE_REQUEST_SENT_TO_REVIEW =
'change-request-sent-to-review' as const;
export const CHANGE_REQUEST_APPLIED = 'change-request-applied' as const;
export const CHANGE_REQUEST_SCHEDULE_SUSPENDED =
'change-request-schedule-suspended' as const;
export const CHANGE_REQUEST_SCHEDULED = 'change-request-scheduled' as const;
export const CHANGE_REQUEST_SCHEDULED_APPLICATION_SUCCESS =
'change-request-scheduled-application-success' as const;
export const CHANGE_REQUEST_SCHEDULED_APPLICATION_FAILURE =
'change-request-scheduled-application-failure' as const;
export const CHANGE_REQUEST_CONFIGURATION_UPDATED =
'change-request-configuration-updated' as const;
export const CHANGE_REQUEST_REQUESTED_APPROVERS_UPDATED =
'change-request-requested-approvers-updated' as const;
export const API_TOKEN_CREATED = 'api-token-created' as const;
export const API_TOKEN_UPDATED = 'api-token-updated' as const;
export const API_TOKEN_DELETED = 'api-token-deleted' as const;
export const FEATURE_FAVORITED = 'feature-favorited' as const;
export const FEATURE_UNFAVORITED = 'feature-unfavorited' as const;
export const PROJECT_FAVORITED = 'project-favorited' as const;
export const PROJECT_UNFAVORITED = 'project-unfavorited' as const;
export const FEATURES_EXPORTED = 'features-exported' as const;
export const FEATURES_IMPORTED = 'features-imported' as const;
export const SERVICE_ACCOUNT_CREATED = 'service-account-created' as const;
export const SERVICE_ACCOUNT_UPDATED = 'service-account-updated' as const;
export const SERVICE_ACCOUNT_DELETED = 'service-account-deleted' as const;
export const FEATURE_POTENTIALLY_STALE_ON =
'feature-potentially-stale-on' as const;
export const BANNER_CREATED = 'banner-created' as const;
export const BANNER_UPDATED = 'banner-updated' as const;
export const BANNER_DELETED = 'banner-deleted' as const;
export const SIGNAL_ENDPOINT_CREATED = 'signal-endpoint-created' as const;
export const SIGNAL_ENDPOINT_UPDATED = 'signal-endpoint-updated' as const;
export const SIGNAL_ENDPOINT_DELETED = 'signal-endpoint-deleted' as const;
export const SIGNAL_ENDPOINT_TOKEN_CREATED =
'signal-endpoint-token-created' as const;
export const SIGNAL_ENDPOINT_TOKEN_UPDATED =
'signal-endpoint-token-updated' as const;
export const SIGNAL_ENDPOINT_TOKEN_DELETED =
'signal-endpoint-token-deleted' as const;
export const ACTIONS_CREATED = 'actions-created' as const;
export const ACTIONS_UPDATED = 'actions-updated' as const;
export const ACTIONS_DELETED = 'actions-deleted' as const;
export const RELEASE_PLAN_TEMPLATE_CREATED =
'release-plan-template-created' as const;
export const RELEASE_PLAN_TEMPLATE_UPDATED =
'release-plan-template-updated' as const;
export const RELEASE_PLAN_TEMPLATE_DELETED =
'release-plan-template-deleted' as const;
export const RELEASE_PLAN_TEMPLATE_ARCHIVED =
'release-plan-template-archived' as const;
export const RELEASE_PLAN_ADDED = 'release-plan-added' as const;
export const RELEASE_PLAN_REMOVED = 'release-plan-removed' as const;
export const RELEASE_PLAN_MILESTONE_STARTED =
'release-plan-milestone-started' as const;
export const USER_PREFERENCE_UPDATED = 'user-preference-updated' as const;
export const SCIM_USERS_DELETED = 'scim-users-deleted' as const;
export const SCIM_GROUPS_DELETED = 'scim-groups-deleted' as const;
export const CDN_TOKEN_CREATED = 'cdn-token-created' as const;
export const IEventTypes = [
APPLICATION_CREATED,
FEATURE_CREATED,
FEATURE_DELETED,
FEATURE_UPDATED,
FEATURE_METADATA_UPDATED,
FEATURE_VARIANTS_UPDATED,
FEATURE_ENVIRONMENT_VARIANTS_UPDATED,
FEATURE_PROJECT_CHANGE,
FEATURE_ARCHIVED,
FEATURE_REVIVED,
FEATURE_IMPORT,
FEATURE_TAGGED,
FEATURE_TAG_IMPORT,
FEATURE_STRATEGY_UPDATE,
FEATURE_STRATEGY_ADD,
FEATURE_STRATEGY_REMOVE,
FEATURE_TYPE_UPDATED,
FEATURE_COMPLETED,
FEATURE_UNCOMPLETED,
FEATURE_LINK_ADDED,
FEATURE_LINK_REMOVED,
FEATURE_LINK_UPDATED,
STRATEGY_ORDER_CHANGED,
DROP_FEATURE_TAGS,
FEATURE_UNTAGGED,
FEATURE_STALE_ON,
FEATURE_STALE_OFF,
DROP_FEATURES,
FEATURE_ENVIRONMENT_ENABLED,
FEATURE_ENVIRONMENT_DISABLED,
STRATEGY_CREATED,
STRATEGY_DELETED,
STRATEGY_DEPRECATED,
STRATEGY_REACTIVATED,
STRATEGY_UPDATED,
STRATEGY_IMPORT,
DROP_STRATEGIES,
CONTEXT_FIELD_CREATED,
CONTEXT_FIELD_UPDATED,
CONTEXT_FIELD_DELETED,
PROJECT_ACCESS_ADDED,
PROJECT_ACCESS_USER_ROLES_UPDATED,
PROJECT_ACCESS_GROUP_ROLES_UPDATED,
PROJECT_ACCESS_USER_ROLES_DELETED,
PROJECT_ACCESS_GROUP_ROLES_DELETED,
PROJECT_ACCESS_UPDATED,
PROJECT_CREATED,
PROJECT_UPDATED,
PROJECT_DELETED,
PROJECT_ARCHIVED,
PROJECT_REVIVED,
PROJECT_IMPORT,
PROJECT_USER_ADDED,
PROJECT_USER_REMOVED,
PROJECT_USER_ROLE_CHANGED,
PROJECT_GROUP_ADDED,
ROLE_CREATED,
ROLE_UPDATED,
ROLE_DELETED,
DROP_PROJECTS,
TAG_CREATED,
TAG_DELETED,
TAG_IMPORT,
DROP_TAGS,
TAG_TYPE_CREATED,
TAG_TYPE_DELETED,
TAG_TYPE_UPDATED,
TAG_TYPE_IMPORT,
DROP_TAG_TYPES,
ADDON_CONFIG_CREATED,
ADDON_CONFIG_UPDATED,
ADDON_CONFIG_DELETED,
DB_POOL_UPDATE,
USER_CREATED,
USER_UPDATED,
USER_DELETED,
DROP_ENVIRONMENTS,
ENVIRONMENT_IMPORT,
ENVIRONMENT_CREATED,
ENVIRONMENT_UPDATED,
ENVIRONMENT_DELETED,
SEGMENT_CREATED,
SEGMENT_UPDATED,
SEGMENT_DELETED,
GROUP_CREATED,
GROUP_UPDATED,
GROUP_DELETED,
GROUP_USER_ADDED,
GROUP_USER_REMOVED,
SETTING_CREATED,
SETTING_UPDATED,
SETTING_DELETED,
CLIENT_METRICS,
CLIENT_REGISTER,
PAT_CREATED,
PAT_DELETED,
PUBLIC_SIGNUP_TOKEN_CREATED,
PUBLIC_SIGNUP_TOKEN_USER_ADDED,
PUBLIC_SIGNUP_TOKEN_TOKEN_UPDATED,
CHANGE_REQUEST_CREATED,
CHANGE_REQUEST_DISCARDED,
CHANGE_ADDED,
CHANGE_DISCARDED,
CHANGE_EDITED,
CHANGE_REQUEST_REJECTED,
CHANGE_REQUEST_APPROVED,
CHANGE_REQUEST_APPROVAL_ADDED,
CHANGE_REQUEST_CANCELLED,
CHANGE_REQUEST_SENT_TO_REVIEW,
CHANGE_REQUEST_SCHEDULE_SUSPENDED,
CHANGE_REQUEST_APPLIED,
CHANGE_REQUEST_SCHEDULED,
CHANGE_REQUEST_SCHEDULED_APPLICATION_SUCCESS,
CHANGE_REQUEST_SCHEDULED_APPLICATION_FAILURE,
CHANGE_REQUEST_CONFIGURATION_UPDATED,
API_TOKEN_CREATED,
API_TOKEN_UPDATED,
API_TOKEN_DELETED,
FEATURE_FAVORITED,
FEATURE_UNFAVORITED,
PROJECT_FAVORITED,
PROJECT_UNFAVORITED,
FEATURES_EXPORTED,
FEATURES_IMPORTED,
SERVICE_ACCOUNT_CREATED,
SERVICE_ACCOUNT_DELETED,
SERVICE_ACCOUNT_UPDATED,
FEATURE_POTENTIALLY_STALE_ON,
FEATURE_DEPENDENCY_ADDED,
FEATURE_DEPENDENCY_REMOVED,
FEATURE_DEPENDENCIES_REMOVED,
BANNER_CREATED,
BANNER_UPDATED,
BANNER_DELETED,
PROJECT_ENVIRONMENT_ADDED,
PROJECT_ENVIRONMENT_REMOVED,
DEFAULT_STRATEGY_UPDATED,
SEGMENT_IMPORT,
SIGNAL_ENDPOINT_CREATED,
SIGNAL_ENDPOINT_UPDATED,
SIGNAL_ENDPOINT_DELETED,
SIGNAL_ENDPOINT_TOKEN_CREATED,
SIGNAL_ENDPOINT_TOKEN_UPDATED,
SIGNAL_ENDPOINT_TOKEN_DELETED,
ACTIONS_CREATED,
ACTIONS_UPDATED,
ACTIONS_DELETED,
RELEASE_PLAN_TEMPLATE_CREATED,
RELEASE_PLAN_TEMPLATE_UPDATED,
RELEASE_PLAN_TEMPLATE_DELETED,
RELEASE_PLAN_TEMPLATE_ARCHIVED,
RELEASE_PLAN_ADDED,
RELEASE_PLAN_REMOVED,
RELEASE_PLAN_MILESTONE_STARTED,
USER_PREFERENCE_UPDATED,
SCIM_USERS_DELETED,
SCIM_GROUPS_DELETED,
CDN_TOKEN_CREATED,
CHANGE_REQUEST_REQUESTED_APPROVERS_UPDATED,
] as const;
export type IEventType = (typeof IEventTypes)[number];
// this represents the write model for events
export interface IBaseEvent {
type: IEventType;
createdBy: string;
createdByUserId: number;
project?: string;
environment?: string;
featureName?: string;
ip: string;
data?: any;
preData?: any;
tags?: ITag[];
}
// This represents the read model for events
export interface IEvent extends Omit<IBaseEvent, 'ip'> {
id: number;
createdAt: Date;
ip?: string;
}
export interface IEnrichedEvent extends IEvent {
label: string;
summary: string;
}
export interface IEventList {
totalEvents: number;
events: IEvent[];
}
export const AccountTypes = ['User', 'Service Account'] as const;