@camunda/ccma-api 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +97 -0
- package/dist/index.js +153 -0
- package/dist/index.js.map +7 -0
- package/dist/services/accounts/accounts.data-export.service.d.ts +13 -0
- package/dist/services/accounts/accounts.data-export.service.js +41 -0
- package/dist/services/accounts/accounts.data-export.service.js.map +7 -0
- package/dist/services/accounts/accounts.valuemetrics.service.d.ts +8 -0
- package/dist/services/accounts/accounts.valuemetrics.service.js +1 -0
- package/dist/services/accounts/accounts.valuemetrics.service.js.map +7 -0
- package/dist/services/accounts/bot.service.d.ts +21 -0
- package/dist/services/accounts/bot.service.js +74 -0
- package/dist/services/accounts/bot.service.js.map +7 -0
- package/dist/services/accounts/challenge.service.d.ts +296 -0
- package/dist/services/accounts/challenge.service.js +475 -0
- package/dist/services/accounts/challenge.service.js.map +7 -0
- package/dist/services/accounts/connections.service.d.ts +27 -0
- package/dist/services/accounts/connections.service.js +41 -0
- package/dist/services/accounts/connections.service.js.map +7 -0
- package/dist/services/accounts/dashboards.service.d.ts +8 -0
- package/dist/services/accounts/dashboards.service.js +42 -0
- package/dist/services/accounts/dashboards.service.js.map +7 -0
- package/dist/services/accounts/early-access-features.service.d.ts +34 -0
- package/dist/services/accounts/early-access-features.service.js +67 -0
- package/dist/services/accounts/early-access-features.service.js.map +7 -0
- package/dist/services/accounts/genericCache.service.d.ts +13 -0
- package/dist/services/accounts/genericCache.service.js +80 -0
- package/dist/services/accounts/genericCache.service.js.map +7 -0
- package/dist/services/accounts/hdp.service.d.ts +52 -0
- package/dist/services/accounts/hdp.service.js +180 -0
- package/dist/services/accounts/hdp.service.js.map +7 -0
- package/dist/services/accounts/offboarding.service.d.ts +18 -0
- package/dist/services/accounts/offboarding.service.js +48 -0
- package/dist/services/accounts/offboarding.service.js.map +7 -0
- package/dist/services/accounts/organization-members.service.d.ts +68 -0
- package/dist/services/accounts/organization-members.service.js +216 -0
- package/dist/services/accounts/organization-members.service.js.map +7 -0
- package/dist/services/accounts/orgs.service.d.ts +273 -0
- package/dist/services/accounts/orgs.service.js +978 -0
- package/dist/services/accounts/orgs.service.js.map +7 -0
- package/dist/services/accounts/salesplan.service.d.ts +7 -0
- package/dist/services/accounts/salesplan.service.js +40 -0
- package/dist/services/accounts/salesplan.service.js.map +7 -0
- package/dist/services/accounts/spam-detection.service.d.ts +8 -0
- package/dist/services/accounts/spam-detection.service.js +72 -0
- package/dist/services/accounts/spam-detection.service.js.map +7 -0
- package/dist/services/accounts/stats.service.d.ts +7 -0
- package/dist/services/accounts/stats.service.js +40 -0
- package/dist/services/accounts/stats.service.js.map +7 -0
- package/dist/services/accounts/teams.service.d.ts +85 -0
- package/dist/services/accounts/teams.service.js +516 -0
- package/dist/services/accounts/teams.service.js.map +7 -0
- package/dist/services/accounts/usage-alerts.service.d.ts +34 -0
- package/dist/services/accounts/usage-alerts.service.js +112 -0
- package/dist/services/accounts/usage-alerts.service.js.map +7 -0
- package/dist/services/accounts/users.service.d.ts +101 -0
- package/dist/services/accounts/users.service.js +444 -0
- package/dist/services/accounts/users.service.js.map +7 -0
- package/dist/services/alerts/alerts.service.d.ts +59 -0
- package/dist/services/alerts/alerts.service.js +234 -0
- package/dist/services/alerts/alerts.service.js.map +7 -0
- package/dist/services/analytic-bridge/analytic-bridge.service.d.ts +23 -0
- package/dist/services/analytic-bridge/analytic-bridge.service.js +86 -0
- package/dist/services/analytic-bridge/analytic-bridge.service.js.map +7 -0
- package/dist/services/audit-logger/audit-logger.service.d.ts +27 -0
- package/dist/services/audit-logger/audit-logger.service.js +108 -0
- package/dist/services/audit-logger/audit-logger.service.js.map +7 -0
- package/dist/services/auth0/auth0.service.d.ts +15 -0
- package/dist/services/auth0/auth0.service.js +40 -0
- package/dist/services/auth0/auth0.service.js.map +7 -0
- package/dist/services/comm-bridge/comm-bridge.service.d.ts +33 -0
- package/dist/services/comm-bridge/comm-bridge.service.js +40 -0
- package/dist/services/comm-bridge/comm-bridge.service.js.map +7 -0
- package/dist/services/console/console.admin.service.d.ts +328 -0
- package/dist/services/console/console.admin.service.js +1526 -0
- package/dist/services/console/console.admin.service.js.map +7 -0
- package/dist/services/console/console.alerts.service.d.ts +69 -0
- package/dist/services/console/console.alerts.service.js +160 -0
- package/dist/services/console/console.alerts.service.js.map +7 -0
- package/dist/services/console/console.api-clients.service.d.ts +48 -0
- package/dist/services/console/console.api-clients.service.js +123 -0
- package/dist/services/console/console.api-clients.service.js.map +7 -0
- package/dist/services/console/console.backup-schedule.service.d.ts +21 -0
- package/dist/services/console/console.backup-schedule.service.js +67 -0
- package/dist/services/console/console.backup-schedule.service.js.map +7 -0
- package/dist/services/console/console.byok-scripts.service.d.ts +12 -0
- package/dist/services/console/console.byok-scripts.service.js +92 -0
- package/dist/services/console/console.byok-scripts.service.js.map +7 -0
- package/dist/services/console/console.byom-monitoring.service.d.ts +58 -0
- package/dist/services/console/console.byom-monitoring.service.js +177 -0
- package/dist/services/console/console.byom-monitoring.service.js.map +7 -0
- package/dist/services/console/console.cluster-clients.service.d.ts +55 -0
- package/dist/services/console/console.cluster-clients.service.js +123 -0
- package/dist/services/console/console.cluster-clients.service.js.map +7 -0
- package/dist/services/console/console.cluster-parameters.service.d.ts +64 -0
- package/dist/services/console/console.cluster-parameters.service.js +39 -0
- package/dist/services/console/console.cluster-parameters.service.js.map +7 -0
- package/dist/services/console/console.cluster.service.d.ts +114 -0
- package/dist/services/console/console.cluster.service.js +271 -0
- package/dist/services/console/console.cluster.service.js.map +7 -0
- package/dist/services/console/console.clusterBulkOperation.service.d.ts +20 -0
- package/dist/services/console/console.clusterBulkOperation.service.js +199 -0
- package/dist/services/console/console.clusterBulkOperation.service.js.map +7 -0
- package/dist/services/console/console.clusterplan.modification.service.d.ts +33 -0
- package/dist/services/console/console.clusterplan.modification.service.js +231 -0
- package/dist/services/console/console.clusterplan.modification.service.js.map +7 -0
- package/dist/services/console/console.clusterplan.service.d.ts +21 -0
- package/dist/services/console/console.clusterplan.service.js +64 -0
- package/dist/services/console/console.clusterplan.service.js.map +7 -0
- package/dist/services/console/console.connector-secrets.service.d.ts +30 -0
- package/dist/services/console/console.connector-secrets.service.js +125 -0
- package/dist/services/console/console.connector-secrets.service.js.map +7 -0
- package/dist/services/console/console.custommetrics.service.d.ts +10 -0
- package/dist/services/console/console.custommetrics.service.js +43 -0
- package/dist/services/console/console.custommetrics.service.js.map +7 -0
- package/dist/services/console/console.hotbackups.service.d.ts +34 -0
- package/dist/services/console/console.hotbackups.service.js +120 -0
- package/dist/services/console/console.hotbackups.service.js.map +7 -0
- package/dist/services/console/console.ip-whitelist.service.d.ts +15 -0
- package/dist/services/console/console.ip-whitelist.service.js +36 -0
- package/dist/services/console/console.ip-whitelist.service.js.map +7 -0
- package/dist/services/console/console.jobs.saas.service.d.ts +70 -0
- package/dist/services/console/console.jobs.saas.service.js +139 -0
- package/dist/services/console/console.jobs.saas.service.js.map +7 -0
- package/dist/services/console/console.jobs.sm.service.d.ts +57 -0
- package/dist/services/console/console.jobs.sm.service.js +208 -0
- package/dist/services/console/console.jobs.sm.service.js.map +7 -0
- package/dist/services/console/console.m2m.service.d.ts +23 -0
- package/dist/services/console/console.m2m.service.js +94 -0
- package/dist/services/console/console.m2m.service.js.map +7 -0
- package/dist/services/console/console.secure-connectivity.service.d.ts +41 -0
- package/dist/services/console/console.secure-connectivity.service.js +129 -0
- package/dist/services/console/console.secure-connectivity.service.js.map +7 -0
- package/dist/services/console/console.valuemetrics.service.d.ts +17 -0
- package/dist/services/console/console.valuemetrics.service.js +110 -0
- package/dist/services/console/console.valuemetrics.service.js.map +7 -0
- package/dist/services/console/generation.service.d.ts +21 -0
- package/dist/services/console/generation.service.js +106 -0
- package/dist/services/console/generation.service.js.map +7 -0
- package/dist/services/github/github.service.d.ts +73 -0
- package/dist/services/github/github.service.js +272 -0
- package/dist/services/github/github.service.js.map +7 -0
- package/dist/services/hibob/hibob.service.d.ts +74 -0
- package/dist/services/hibob/hibob.service.js +125 -0
- package/dist/services/hibob/hibob.service.js.map +7 -0
- package/dist/services/hubspot/hubspot.service.d.ts +50 -0
- package/dist/services/hubspot/hubspot.service.js +119 -0
- package/dist/services/hubspot/hubspot.service.js.map +7 -0
- package/dist/services/litellm/litellm.service.d.ts +290 -0
- package/dist/services/litellm/litellm.service.js +392 -0
- package/dist/services/litellm/litellm.service.js.map +7 -0
- package/dist/services/login/login.service.d.ts +15 -0
- package/dist/services/login/login.service.js +66 -0
- package/dist/services/login/login.service.js.map +7 -0
- package/dist/services/mixpanel/mixpanel.service.d.ts +16 -0
- package/dist/services/mixpanel/mixpanel.service.js +86 -0
- package/dist/services/mixpanel/mixpanel.service.js.map +7 -0
- package/dist/services/notifications/notifications.service.d.ts +7 -0
- package/dist/services/notifications/notifications.service.js +38 -0
- package/dist/services/notifications/notifications.service.js.map +7 -0
- package/dist/services/slack/slack-blockkit.service.d.ts +28 -0
- package/dist/services/slack/slack-blockkit.service.js +45 -0
- package/dist/services/slack/slack-blockkit.service.js.map +7 -0
- package/dist/services/slack/slack.service.d.ts +31 -0
- package/dist/services/slack/slack.service.js +118 -0
- package/dist/services/slack/slack.service.js.map +7 -0
- package/dist/services/telemetry/telemetry.service.d.ts +16 -0
- package/dist/services/telemetry/telemetry.service.js +85 -0
- package/dist/services/telemetry/telemetry.service.js.map +7 -0
- package/dist/services/token-issuer/token-issuer.jwks.service.d.ts +13 -0
- package/dist/services/token-issuer/token-issuer.jwks.service.js +76 -0
- package/dist/services/token-issuer/token-issuer.jwks.service.js.map +7 -0
- package/dist/services/wordpress/wordpress.service.d.ts +15 -0
- package/dist/services/wordpress/wordpress.service.js +111 -0
- package/dist/services/wordpress/wordpress.service.js.map +7 -0
- package/dist/types/general.types.d.ts +61 -0
- package/dist/types/general.types.js +1 -0
- package/dist/types/general.types.js.map +7 -0
- package/dist/utils/api.d.ts +31 -0
- package/dist/utils/api.js +400 -0
- package/dist/utils/api.js.map +7 -0
- package/dist/utils/cache.d.ts +7 -0
- package/dist/utils/cache.js +25 -0
- package/dist/utils/cache.js.map +7 -0
- package/dist/utils/ccma-metrics.d.ts +18 -0
- package/dist/utils/ccma-metrics.js +37 -0
- package/dist/utils/ccma-metrics.js.map +7 -0
- package/dist/utils/environments.d.ts +11 -0
- package/dist/utils/environments.js +148 -0
- package/dist/utils/environments.js.map +7 -0
- package/dist/utils/errors.d.ts +5 -0
- package/dist/utils/errors.js +11 -0
- package/dist/utils/errors.js.map +7 -0
- package/dist/utils/frontendCache.d.ts +26 -0
- package/dist/utils/frontendCache.js +121 -0
- package/dist/utils/frontendCache.js.map +7 -0
- package/dist/utils/token-issuer.utils.d.ts +8 -0
- package/dist/utils/token-issuer.utils.js +19 -0
- package/dist/utils/token-issuer.utils.js.map +7 -0
- package/package.json +57 -0
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/services/accounts/users.service.ts"],
|
|
4
|
+
"sourcesContent": ["/*\n * Copyright Camunda Services GmbH and/or licensed to Camunda Services GmbH\n * under one or more contributor license agreements. Licensed under a commercial license.\n * You may not use this file except in compliance with the commercial license.\n */\n\nimport {\n MINUTE,\n type OrganizationRole,\n type User,\n} from '@camunda/ccma-shared-types'\nimport type {\n RequestBaseParams,\n RequestBaseServiceContext,\n} from '../../types/general.types.js'\nimport { request } from '../../utils/api.js'\nimport { Cache } from '../../utils/cache.js'\nimport { HttpError } from '../../utils/errors.js'\nimport type { HibobSearchResponse } from '../hibob/hibob.service.js'\n\nconst userCache = new Cache<string, User>(5 * MINUTE)\nconst REGEX_EMAIL =\n // eslint-disable-next-line prefer-named-capture-group, no-useless-escape\n /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/u\n\nexport interface SearchParams extends RequestBaseParams {\n params: {\n q: {\n organization?: {\n uuid: string\n member: boolean\n }\n name?: string\n userId?: string\n roleId?: string\n email?: string\n signUpStatus?: {\n verified: boolean\n tokenExpired?: boolean\n }\n created?: {\n after?: Date\n before?: Date\n }\n }\n onBehalfOf?: string\n }\n}\n\nexport interface SimpleSearchParams extends RequestBaseParams {\n params: {\n query: string\n type: 'by-email' | 'by-id' | 'fuzzy' | 'lucene'\n }\n}\n\nexport interface AddUserToOrganizationRequest extends RequestBaseParams {\n params: {\n userId: string\n orgId: string\n orgRoles: OrganizationRole[]\n byEmail?: boolean\n }\n}\n\nexport interface RemoveUserFromOrganizationRequest extends RequestBaseParams {\n params: {\n userId: string\n orgId: string\n byEmail?: boolean\n }\n}\n\nexport interface UpdateUserRoleRequest extends RequestBaseParams {\n params: {\n userId: string\n roleToAdd?: string\n roleToRemove?: string\n }\n headers?: {\n 'x-camunda-email'?: string\n }\n}\n\nexport class UsersService {\n public static async search(params: SearchParams): Promise<User[]> {\n const queryParams = new URLSearchParams()\n const urlParts: string[] = []\n if (params.params.q.roleId) {\n // API route different if roleId is present\n // eslint-disable-next-line id-length\n const q = {\n roleId: params.params.q.roleId,\n name: params.params.q.name || '',\n email: params.params.q.email || '',\n }\n queryParams.append('q', JSON.stringify(q))\n urlParts.push(...['api', 'users', `?${queryParams.toString()}`])\n } else {\n if (params.params.onBehalfOf) {\n queryParams.append(\n 'onBehalfOf',\n encodeURI(JSON.stringify(params.params.onBehalfOf)),\n )\n }\n queryParams.append('q', encodeURI(JSON.stringify(params.params.q)))\n urlParts.push(...['api', 'users', 'search', `?${queryParams.toString()}`])\n }\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `UsersService.search`,\n url: urlParts.join(`/`),\n normalizedUrl: `api/users/search`,\n type: 'get',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n\n // Validation\n if (params.params.q.userId) {\n UsersService.validateUserId(serviceContext, params.params.q.userId)\n }\n\n const response = await request<User[]>({\n config: params.config,\n base: {\n id: 'accounts',\n },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n })\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n return response.body!\n }\n\n public static async simpleSearch(\n params: SimpleSearchParams,\n ): Promise<{ users: User[] }> {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `UsersService.simpleSearch`,\n url: `api/users/search`,\n normalizedUrl: `api/users/search`,\n type: 'post',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n\n switch (params.params.type) {\n case 'by-email':\n UsersService.validateEmail(serviceContext, params.params.query)\n break\n case 'by-id':\n UsersService.validateUserId(serviceContext, params.params.query)\n break\n case 'lucene':\n UsersService.validateLuceneQuery(serviceContext, params.params.query)\n break\n }\n\n const response = await request<{ users: User[] }>({\n config: params.config,\n base: {\n id: 'accounts',\n },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n body: {\n query: params.params.query,\n type: params.params.type,\n },\n metricsDetails: serviceContext,\n })\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n return response.body!\n }\n\n public static async getUserInfo(\n params: { userId: string; basic?: boolean } & RequestBaseParams,\n ): Promise<User | undefined> {\n const cacheKey =\n params.basic === true ? `basic-${params.userId}` : params.userId\n if (!params.cacheControl?.ignoreCache) {\n const inCache = userCache.get(cacheKey)\n if (inCache) {\n return inCache\n }\n }\n\n let queryParams: string = ''\n if (params.basic === true) {\n const searchParams = new URLSearchParams()\n searchParams.append('basic', 'true')\n queryParams = `?${searchParams.toString()}`\n }\n\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `UsersService.getUserInfo`,\n url: `api/users/${params.userId}${queryParams}`,\n normalizedUrl: `api/users/:userId`,\n type: 'get',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n\n // Validation\n UsersService.validateUserId(serviceContext, params.userId)\n\n const response = await request<User>({\n ...params,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n })\n\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n userCache.set(cacheKey, response.body!)\n return response.body\n }\n\n public static async addUserToOrganization(\n params: AddUserToOrganizationRequest,\n ) {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `UsersService.addUserToOrganization`,\n url: `api/users/${params.params.userId}/organization/${params.params.orgId}`,\n normalizedUrl: `api/users/:userId/organization/:orgId`,\n type: 'put',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n\n const response = await request({\n config: params.config,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n body: {\n orgRoles: params.params.orgRoles,\n byEmail: params.params.byEmail,\n },\n responseType: 'none',\n })\n\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n }\n\n public static async removeUserFromOrganization(\n params: RemoveUserFromOrganizationRequest,\n ) {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `UsersService.removeUserFromOrganization`,\n url: `api/users/${params.params.userId}/organization/${params.params.orgId}`,\n normalizedUrl: `api/users/:userId/organization/:orgId`,\n type: 'delete',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n\n const response = await request({\n config: params.config,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n body: {\n byEmail: params.params.byEmail,\n },\n responseType: 'none',\n })\n\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n }\n\n /**\n * Update a user's role by adding or removing a single role.\n * This uses the PATCH /api/users/:userId/roles endpoint.\n * Supports email-based auth middleware via the x-camunda-email header.\n */\n public static async updateUserRole(\n params: UpdateUserRoleRequest,\n ): Promise<void> {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `UsersService.updateUserRole`,\n url: `api/users/${encodeURIComponent(params.params.userId)}/roles`,\n normalizedUrl: `api/users/:userId/roles`,\n type: 'patch',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n\n // Validation\n UsersService.validateUserId(serviceContext, params.params.userId)\n\n if (!params.params.roleToAdd && !params.params.roleToRemove) {\n throw new HttpError(\n `${serviceContext.method.name}: 400 - Validation Error in API Package - either roleToAdd or roleToRemove must be specified`,\n 400,\n `Validation Error in API Package - either roleToAdd or roleToRemove must be specified`,\n )\n }\n\n const body: { roleToAdd?: string; roleToRemove?: string } = {}\n if (params.params.roleToAdd) {\n body.roleToAdd = params.params.roleToAdd\n }\n if (params.params.roleToRemove) {\n body.roleToRemove = params.params.roleToRemove\n }\n\n const response = await request({\n config: params.config,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n body,\n headers: params.headers,\n responseType: 'none',\n })\n\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n }\n\n /**\n * Get all Hibob users (for bulk ghost account checks).\n * This fetches all active Hibob employees in a single request.\n */\n public static async getAllHibobUsers(\n params: RequestBaseParams,\n ): Promise<HibobSearchResponse> {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: 'UsersService.getAllHibobUsers',\n url: 'api/users/hibob/all',\n normalizedUrl: 'api/users/hibob/all',\n type: 'get',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n\n const response = await request<HibobSearchResponse>({\n ...params,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n })\n\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n\n return response.body!\n }\n\n /**\n * Get Hibob details for a specific user by their Auth0 user ID.\n */\n public static async getUserHibobDetails(\n params: { userId: string } & RequestBaseParams,\n ): Promise<HibobSearchResponse> {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: 'UsersService.getUserHibobDetails',\n url: `api/users/${encodeURIComponent(params.userId)}/hibob`,\n normalizedUrl: 'api/users/:userId/hibob',\n type: 'get',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n\n const response = await request<HibobSearchResponse>({\n ...params,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n })\n\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n\n return response.body!\n }\n\n private static validateUserId(\n serviceContext: RequestBaseServiceContext,\n userId: string,\n ) {\n if (!userId || !userId.includes('|')) {\n throw new HttpError(\n `${serviceContext.method.name}: 400 - Validation Error in API Package - missing pipe '|'`,\n 400,\n `Validation Error in API Package - missing pipe '|'`,\n )\n }\n }\n\n private static validateEmail(\n serviceContext: RequestBaseServiceContext,\n email: string,\n ) {\n if (!email || !REGEX_EMAIL.test(email)) {\n throw new HttpError(\n `${serviceContext.method.name}: 400 - Validation Error in API Package - invalid email format`,\n 400,\n `Validation Error in API Package - invalid email format`,\n )\n }\n }\n\n /**\n * Validates a Lucene query string for Auth0 user search.\n * Auth0 supports Lucene query syntax including:\n * - Field queries: field:value (e.g., email:john@example.com)\n * - Wildcards: field:*value*, field:value*\n * - Boolean operators: AND, OR, NOT\n * - Grouping: (field:value OR field:value)\n * - Range queries: field:[min TO max]\n * - Exact phrase: field:\"exact phrase\"\n *\n * @see https://auth0.com/docs/manage-users/user-search/user-search-query-syntax\n */\n private static validateLuceneQuery(\n serviceContext: RequestBaseServiceContext,\n query: string,\n ) {\n if (!query || query.trim().length === 0) {\n throw new HttpError(\n `${serviceContext.method.name}: 400 - Validation Error in API Package - empty Lucene query`,\n 400,\n `Validation Error in API Package - empty Lucene query`,\n )\n }\n\n // Basic validation: query should contain at least a field:value pattern or be a valid search term\n // Auth0 Lucene syntax requires queries to have field:value format for structured searches\n const trimmedQuery = query.trim()\n\n // Check for unbalanced parentheses\n let parenCount = 0\n for (const char of trimmedQuery) {\n if (char === '(') parenCount++\n if (char === ')') parenCount--\n if (parenCount < 0) {\n throw new HttpError(\n `${serviceContext.method.name}: 400 - Validation Error in API Package - unbalanced parentheses in Lucene query`,\n 400,\n `Validation Error in API Package - unbalanced parentheses in Lucene query`,\n )\n }\n }\n if (parenCount !== 0) {\n throw new HttpError(\n `${serviceContext.method.name}: 400 - Validation Error in API Package - unbalanced parentheses in Lucene query`,\n 400,\n `Validation Error in API Package - unbalanced parentheses in Lucene query`,\n )\n }\n\n // Check for unbalanced square brackets (range queries)\n let bracketCount = 0\n for (const char of trimmedQuery) {\n if (char === '[') bracketCount++\n if (char === ']') bracketCount--\n if (bracketCount < 0) {\n throw new HttpError(\n `${serviceContext.method.name}: 400 - Validation Error in API Package - unbalanced brackets in Lucene query`,\n 400,\n `Validation Error in API Package - unbalanced brackets in Lucene query`,\n )\n }\n }\n if (bracketCount !== 0) {\n throw new HttpError(\n `${serviceContext.method.name}: 400 - Validation Error in API Package - unbalanced brackets in Lucene query`,\n 400,\n `Validation Error in API Package - unbalanced brackets in Lucene query`,\n )\n }\n\n // Check for unbalanced quotes\n const quoteCount = (trimmedQuery.match(/\"/gu) || []).length\n if (quoteCount % 2 !== 0) {\n throw new HttpError(\n `${serviceContext.method.name}: 400 - Validation Error in API Package - unbalanced quotes in Lucene query`,\n 400,\n `Validation Error in API Package - unbalanced quotes in Lucene query`,\n )\n }\n\n // Validate that query contains at least one valid field:value pattern or search term\n // A valid Lucene query for Auth0 should have field:value syntax\n // Use word boundary to match field:value patterns anywhere in the query\n const hasFieldValue = /\\b\\w+:/u.test(trimmedQuery)\n if (!hasFieldValue) {\n throw new HttpError(\n `${serviceContext.method.name}: 400 - Validation Error in API Package - Lucene query must contain field:value syntax (e.g., email:john@example.com)`,\n 400,\n `Validation Error in API Package - Lucene query must contain field:value syntax (e.g., email:john@example.com)`,\n )\n }\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import type { AlertSubscriptionDto, AlertSubscriptionEntryDto, AlertSubscriptionReportType, AlertSubscriptionType, AlertSubscriptionWebhookAuth } from '@camunda/ccma-shared-types';
|
|
2
|
+
import type { RequestBaseParams } from '../../types/general.types.js';
|
|
3
|
+
export interface GetAlertSubscriptions extends RequestBaseParams {
|
|
4
|
+
params: {
|
|
5
|
+
clusterUuid: string;
|
|
6
|
+
};
|
|
7
|
+
}
|
|
8
|
+
export interface CreateAlertSubscription extends RequestBaseParams {
|
|
9
|
+
params: {
|
|
10
|
+
creator: string;
|
|
11
|
+
clusterUuid: string;
|
|
12
|
+
userIdOrWebhook: string;
|
|
13
|
+
type: AlertSubscriptionType;
|
|
14
|
+
report: AlertSubscriptionReportType;
|
|
15
|
+
options?: {
|
|
16
|
+
webhookAuth?: AlertSubscriptionWebhookAuth;
|
|
17
|
+
ignoreHead?: boolean;
|
|
18
|
+
};
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
export interface UpdateAlertSubscription extends RequestBaseParams {
|
|
22
|
+
params: {
|
|
23
|
+
alertSubscriptionUuid: string;
|
|
24
|
+
updater: string;
|
|
25
|
+
clusterUuid: string;
|
|
26
|
+
userIdOrWebhook: string;
|
|
27
|
+
type: AlertSubscriptionType;
|
|
28
|
+
report: AlertSubscriptionReportType;
|
|
29
|
+
options?: {
|
|
30
|
+
webhookAuth?: AlertSubscriptionWebhookAuth;
|
|
31
|
+
ignoreHead?: boolean;
|
|
32
|
+
};
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
export interface DeleteAlertSubscription extends RequestBaseParams {
|
|
36
|
+
params: {
|
|
37
|
+
alertSubscriptionUuid: string;
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
export interface DeleteAlertSubscriptionForCluster extends RequestBaseParams {
|
|
41
|
+
params: {
|
|
42
|
+
clusterUuid: string;
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
export interface PushAlert extends RequestBaseParams {
|
|
46
|
+
params: {
|
|
47
|
+
clusterUuid: string;
|
|
48
|
+
alerts: AlertSubscriptionEntryDto[];
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
export declare class AlertsService {
|
|
52
|
+
static getSubscriptions(params: GetAlertSubscriptions): Promise<AlertSubscriptionDto[]>;
|
|
53
|
+
static createNewSubscription(params: CreateAlertSubscription): Promise<AlertSubscriptionDto>;
|
|
54
|
+
static update(params: UpdateAlertSubscription): Promise<AlertSubscriptionDto>;
|
|
55
|
+
static delete(params: DeleteAlertSubscription): Promise<AlertSubscriptionDto>;
|
|
56
|
+
static deleteForCluster(params: DeleteAlertSubscriptionForCluster): Promise<AlertSubscriptionDto>;
|
|
57
|
+
static pushWorkflowAlerts(params: PushAlert): Promise<void>;
|
|
58
|
+
static pushClusterAlerts(params: PushAlert): Promise<void>;
|
|
59
|
+
}
|
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
import { request } from "../../utils/api.js";
|
|
2
|
+
import { HttpError } from "../../utils/errors.js";
|
|
3
|
+
class AlertsService {
|
|
4
|
+
static async getSubscriptions(params) {
|
|
5
|
+
const serviceContext = {
|
|
6
|
+
method: {
|
|
7
|
+
name: `AlertsService.getSubscriptions`,
|
|
8
|
+
url: `api/subscriptions/cluster/${params.params.clusterUuid}`,
|
|
9
|
+
normalizedUrl: `api/subscriptions/cluster/:clusterUuid`,
|
|
10
|
+
type: "get"
|
|
11
|
+
},
|
|
12
|
+
source: params.config.metrics?.source || "unset",
|
|
13
|
+
target: {
|
|
14
|
+
name: "alert-distributor",
|
|
15
|
+
type: "internal"
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
const response = await request({
|
|
19
|
+
...params,
|
|
20
|
+
base: {
|
|
21
|
+
id: "alert-distributor"
|
|
22
|
+
},
|
|
23
|
+
url: serviceContext.method.url,
|
|
24
|
+
method: serviceContext.method.type,
|
|
25
|
+
metricsDetails: serviceContext
|
|
26
|
+
});
|
|
27
|
+
if (!response.ok) {
|
|
28
|
+
throw new HttpError(
|
|
29
|
+
`${serviceContext.method.name}: ${response.status} ${response.statusText}`,
|
|
30
|
+
response.status,
|
|
31
|
+
response.statusText
|
|
32
|
+
);
|
|
33
|
+
}
|
|
34
|
+
return response.body;
|
|
35
|
+
}
|
|
36
|
+
static async createNewSubscription(params) {
|
|
37
|
+
const serviceContext = {
|
|
38
|
+
method: {
|
|
39
|
+
name: `AlertsService.createSubscription`,
|
|
40
|
+
url: `api/subscriptions/cluster/${params.params.clusterUuid}`,
|
|
41
|
+
normalizedUrl: `api/subscriptions/cluster/:clusterUuid`,
|
|
42
|
+
type: "post"
|
|
43
|
+
},
|
|
44
|
+
source: params.config.metrics?.source || "unset",
|
|
45
|
+
target: {
|
|
46
|
+
name: "alert-distributor",
|
|
47
|
+
type: "internal"
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
const response = await request({
|
|
51
|
+
config: params.config,
|
|
52
|
+
base: {
|
|
53
|
+
id: "alert-distributor"
|
|
54
|
+
},
|
|
55
|
+
url: serviceContext.method.url,
|
|
56
|
+
method: serviceContext.method.type,
|
|
57
|
+
metricsDetails: serviceContext,
|
|
58
|
+
body: params.params
|
|
59
|
+
});
|
|
60
|
+
if (!response.ok) {
|
|
61
|
+
throw new HttpError(
|
|
62
|
+
`${serviceContext.method.name}: ${response.status} ${response.statusText}`,
|
|
63
|
+
response.status,
|
|
64
|
+
response.statusText
|
|
65
|
+
);
|
|
66
|
+
}
|
|
67
|
+
return response.body;
|
|
68
|
+
}
|
|
69
|
+
static async update(params) {
|
|
70
|
+
const serviceContext = {
|
|
71
|
+
method: {
|
|
72
|
+
name: `AlertsService.updateSubscription`,
|
|
73
|
+
url: `api/subscriptions/${params.params.alertSubscriptionUuid}`,
|
|
74
|
+
normalizedUrl: `api/subscriptions/:alertSubscriptionUuid`,
|
|
75
|
+
type: "put"
|
|
76
|
+
},
|
|
77
|
+
source: params.config.metrics?.source || "unset",
|
|
78
|
+
target: {
|
|
79
|
+
name: "alert-distributor",
|
|
80
|
+
type: "internal"
|
|
81
|
+
}
|
|
82
|
+
};
|
|
83
|
+
const response = await request({
|
|
84
|
+
config: params.config,
|
|
85
|
+
base: {
|
|
86
|
+
id: "alert-distributor"
|
|
87
|
+
},
|
|
88
|
+
url: serviceContext.method.url,
|
|
89
|
+
method: serviceContext.method.type,
|
|
90
|
+
metricsDetails: serviceContext,
|
|
91
|
+
body: params.params
|
|
92
|
+
});
|
|
93
|
+
if (!response.ok) {
|
|
94
|
+
throw new HttpError(
|
|
95
|
+
`${serviceContext.method.name}: ${response.status} ${response.statusText}`,
|
|
96
|
+
response.status,
|
|
97
|
+
response.statusText
|
|
98
|
+
);
|
|
99
|
+
}
|
|
100
|
+
return response.body;
|
|
101
|
+
}
|
|
102
|
+
static async delete(params) {
|
|
103
|
+
const serviceContext = {
|
|
104
|
+
method: {
|
|
105
|
+
name: `AlertsService.updateSubscription`,
|
|
106
|
+
url: `api/subscriptions/${params.params.alertSubscriptionUuid}`,
|
|
107
|
+
normalizedUrl: `api/subscriptions/:alertSubscriptionUuid`,
|
|
108
|
+
type: "delete"
|
|
109
|
+
},
|
|
110
|
+
source: params.config.metrics?.source || "unset",
|
|
111
|
+
target: {
|
|
112
|
+
name: "alert-distributor",
|
|
113
|
+
type: "internal"
|
|
114
|
+
}
|
|
115
|
+
};
|
|
116
|
+
const response = await request({
|
|
117
|
+
config: params.config,
|
|
118
|
+
base: {
|
|
119
|
+
id: "alert-distributor"
|
|
120
|
+
},
|
|
121
|
+
url: serviceContext.method.url,
|
|
122
|
+
method: serviceContext.method.type,
|
|
123
|
+
metricsDetails: serviceContext
|
|
124
|
+
});
|
|
125
|
+
if (!response.ok) {
|
|
126
|
+
throw new HttpError(
|
|
127
|
+
`${serviceContext.method.name}: ${response.status} ${response.statusText}`,
|
|
128
|
+
response.status,
|
|
129
|
+
response.statusText
|
|
130
|
+
);
|
|
131
|
+
}
|
|
132
|
+
return response.body;
|
|
133
|
+
}
|
|
134
|
+
static async deleteForCluster(params) {
|
|
135
|
+
const serviceContext = {
|
|
136
|
+
method: {
|
|
137
|
+
name: `AlertsService.updateSubscription`,
|
|
138
|
+
url: `api/subscriptions/cluster/${params.params.clusterUuid}`,
|
|
139
|
+
normalizedUrl: `api/subscriptions/cluster/:clusterUuid`,
|
|
140
|
+
type: "delete"
|
|
141
|
+
},
|
|
142
|
+
source: params.config.metrics?.source || "unset",
|
|
143
|
+
target: {
|
|
144
|
+
name: "alert-distributor",
|
|
145
|
+
type: "internal"
|
|
146
|
+
}
|
|
147
|
+
};
|
|
148
|
+
const response = await request({
|
|
149
|
+
config: params.config,
|
|
150
|
+
base: {
|
|
151
|
+
id: "alert-distributor"
|
|
152
|
+
},
|
|
153
|
+
url: serviceContext.method.url,
|
|
154
|
+
method: serviceContext.method.type,
|
|
155
|
+
metricsDetails: serviceContext
|
|
156
|
+
});
|
|
157
|
+
if (!response.ok) {
|
|
158
|
+
throw new HttpError(
|
|
159
|
+
`${serviceContext.method.name}: ${response.status} ${response.statusText}`,
|
|
160
|
+
response.status,
|
|
161
|
+
response.statusText
|
|
162
|
+
);
|
|
163
|
+
}
|
|
164
|
+
return response.body;
|
|
165
|
+
}
|
|
166
|
+
static async pushWorkflowAlerts(params) {
|
|
167
|
+
const serviceContext = {
|
|
168
|
+
method: {
|
|
169
|
+
name: `AlertsService.pushWorkflowAlerts`,
|
|
170
|
+
url: `api/alert/workflow/cluster/${params.params.clusterUuid}`,
|
|
171
|
+
normalizedUrl: `api/alert/workflow/cluster/:clusterUuid`,
|
|
172
|
+
type: "post"
|
|
173
|
+
},
|
|
174
|
+
source: params.config.metrics?.source || "unset",
|
|
175
|
+
target: {
|
|
176
|
+
name: "alert-distributor",
|
|
177
|
+
type: "internal"
|
|
178
|
+
}
|
|
179
|
+
};
|
|
180
|
+
const response = await request({
|
|
181
|
+
config: params.config,
|
|
182
|
+
base: {
|
|
183
|
+
id: "alert-distributor"
|
|
184
|
+
},
|
|
185
|
+
url: serviceContext.method.url,
|
|
186
|
+
method: serviceContext.method.type,
|
|
187
|
+
metricsDetails: serviceContext,
|
|
188
|
+
body: params.params
|
|
189
|
+
});
|
|
190
|
+
if (!response.ok) {
|
|
191
|
+
throw new HttpError(
|
|
192
|
+
`${serviceContext.method.name}: ${response.status} ${response.statusText}`,
|
|
193
|
+
response.status,
|
|
194
|
+
response.statusText
|
|
195
|
+
);
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
static async pushClusterAlerts(params) {
|
|
199
|
+
const serviceContext = {
|
|
200
|
+
method: {
|
|
201
|
+
name: `AlertsService.pushClusterAlerts`,
|
|
202
|
+
url: `api/alert/cluster/cluster/${params.params.clusterUuid}`,
|
|
203
|
+
normalizedUrl: `api/alert/cluster/cluster/:clusterUuid`,
|
|
204
|
+
type: "post"
|
|
205
|
+
},
|
|
206
|
+
source: params.config.metrics?.source || "unset",
|
|
207
|
+
target: {
|
|
208
|
+
name: "alert-distributor",
|
|
209
|
+
type: "internal"
|
|
210
|
+
}
|
|
211
|
+
};
|
|
212
|
+
const response = await request({
|
|
213
|
+
config: params.config,
|
|
214
|
+
base: {
|
|
215
|
+
id: "alert-distributor"
|
|
216
|
+
},
|
|
217
|
+
url: serviceContext.method.url,
|
|
218
|
+
method: serviceContext.method.type,
|
|
219
|
+
metricsDetails: serviceContext,
|
|
220
|
+
body: params.params
|
|
221
|
+
});
|
|
222
|
+
if (!response.ok) {
|
|
223
|
+
throw new HttpError(
|
|
224
|
+
`${serviceContext.method.name}: ${response.status} ${response.statusText}`,
|
|
225
|
+
response.status,
|
|
226
|
+
response.statusText
|
|
227
|
+
);
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
export {
|
|
232
|
+
AlertsService
|
|
233
|
+
};
|
|
234
|
+
//# sourceMappingURL=alerts.service.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/services/alerts/alerts.service.ts"],
|
|
4
|
+
"sourcesContent": ["/*\n * Copyright Camunda Services GmbH and/or licensed to Camunda Services GmbH\n * under one or more contributor license agreements. Licensed under a commercial license.\n * You may not use this file except in compliance with the commercial license.\n */\n\nimport type {\n AlertSubscriptionDto,\n AlertSubscriptionEntryDto,\n AlertSubscriptionReportType,\n AlertSubscriptionType,\n AlertSubscriptionWebhookAuth,\n} from '@camunda/ccma-shared-types'\nimport type {\n RequestBaseParams,\n RequestBaseServiceContext,\n} from '../../types/general.types.js'\nimport { request } from '../../utils/api.js'\nimport { HttpError } from '../../utils/errors.js'\n\nexport interface GetAlertSubscriptions extends RequestBaseParams {\n params: {\n clusterUuid: string\n }\n}\n\nexport interface CreateAlertSubscription extends RequestBaseParams {\n params: {\n creator: string\n clusterUuid: string\n userIdOrWebhook: string\n type: AlertSubscriptionType\n report: AlertSubscriptionReportType\n options?: {\n webhookAuth?: AlertSubscriptionWebhookAuth\n ignoreHead?: boolean\n }\n }\n}\n\nexport interface UpdateAlertSubscription extends RequestBaseParams {\n params: {\n alertSubscriptionUuid: string\n updater: string\n clusterUuid: string\n userIdOrWebhook: string\n type: AlertSubscriptionType\n report: AlertSubscriptionReportType\n options?: {\n webhookAuth?: AlertSubscriptionWebhookAuth\n ignoreHead?: boolean\n }\n }\n}\n\nexport interface DeleteAlertSubscription extends RequestBaseParams {\n params: {\n alertSubscriptionUuid: string\n }\n}\n\nexport interface DeleteAlertSubscriptionForCluster extends RequestBaseParams {\n params: {\n clusterUuid: string\n }\n}\n\nexport interface PushAlert extends RequestBaseParams {\n params: {\n clusterUuid: string\n alerts: AlertSubscriptionEntryDto[]\n }\n}\n\nexport class AlertsService {\n public static async getSubscriptions(\n params: GetAlertSubscriptions,\n ): Promise<AlertSubscriptionDto[]> {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `AlertsService.getSubscriptions`,\n url: `api/subscriptions/cluster/${params.params.clusterUuid}`,\n normalizedUrl: `api/subscriptions/cluster/:clusterUuid`,\n type: 'get',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'alert-distributor',\n type: 'internal',\n },\n }\n const response = await request<AlertSubscriptionDto[]>({\n ...params,\n base: {\n id: 'alert-distributor',\n },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n })\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n return response.body!\n }\n\n public static async createNewSubscription(\n params: CreateAlertSubscription,\n ): Promise<AlertSubscriptionDto> {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `AlertsService.createSubscription`,\n url: `api/subscriptions/cluster/${params.params.clusterUuid}`,\n normalizedUrl: `api/subscriptions/cluster/:clusterUuid`,\n type: 'post',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'alert-distributor',\n type: 'internal',\n },\n }\n const response = await request({\n config: params.config,\n base: {\n id: 'alert-distributor',\n },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n body: params.params,\n })\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n return response.body as AlertSubscriptionDto\n }\n\n public static async update(\n params: UpdateAlertSubscription,\n ): Promise<AlertSubscriptionDto> {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `AlertsService.updateSubscription`,\n url: `api/subscriptions/${params.params.alertSubscriptionUuid}`,\n normalizedUrl: `api/subscriptions/:alertSubscriptionUuid`,\n type: 'put',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'alert-distributor',\n type: 'internal',\n },\n }\n const response = await request({\n config: params.config,\n base: {\n id: 'alert-distributor',\n },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n body: params.params,\n })\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n return response.body as AlertSubscriptionDto\n }\n\n public static async delete(\n params: DeleteAlertSubscription,\n ): Promise<AlertSubscriptionDto> {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `AlertsService.updateSubscription`,\n url: `api/subscriptions/${params.params.alertSubscriptionUuid}`,\n normalizedUrl: `api/subscriptions/:alertSubscriptionUuid`,\n type: 'delete',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'alert-distributor',\n type: 'internal',\n },\n }\n const response = await request({\n config: params.config,\n base: {\n id: 'alert-distributor',\n },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n })\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n return response.body as AlertSubscriptionDto\n }\n\n public static async deleteForCluster(\n params: DeleteAlertSubscriptionForCluster,\n ): Promise<AlertSubscriptionDto> {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `AlertsService.updateSubscription`,\n url: `api/subscriptions/cluster/${params.params.clusterUuid}`,\n normalizedUrl: `api/subscriptions/cluster/:clusterUuid`,\n type: 'delete',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'alert-distributor',\n type: 'internal',\n },\n }\n const response = await request({\n config: params.config,\n base: {\n id: 'alert-distributor',\n },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n })\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n return response.body as AlertSubscriptionDto\n }\n\n public static async pushWorkflowAlerts(params: PushAlert) {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `AlertsService.pushWorkflowAlerts`,\n url: `api/alert/workflow/cluster/${params.params.clusterUuid}`,\n normalizedUrl: `api/alert/workflow/cluster/:clusterUuid`,\n type: 'post',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'alert-distributor',\n type: 'internal',\n },\n }\n const response = await request({\n config: params.config,\n base: {\n id: 'alert-distributor',\n },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n body: params.params,\n })\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n }\n\n public static async pushClusterAlerts(params: PushAlert) {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `AlertsService.pushClusterAlerts`,\n url: `api/alert/cluster/cluster/${params.params.clusterUuid}`,\n normalizedUrl: `api/alert/cluster/cluster/:clusterUuid`,\n type: 'post',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'alert-distributor',\n type: 'internal',\n },\n }\n const response = await request({\n config: params.config,\n base: {\n id: 'alert-distributor',\n },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n body: params.params,\n })\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { RequestBaseParams } from '../../types/general.types.js';
|
|
2
|
+
export interface AddAnalyticBridgeRequest extends RequestBaseParams {
|
|
3
|
+
body: {
|
|
4
|
+
eventType: any;
|
|
5
|
+
attributes: any;
|
|
6
|
+
accessToken?: string | undefined;
|
|
7
|
+
};
|
|
8
|
+
}
|
|
9
|
+
export interface AddClusterAnalyticBridgeRequest extends RequestBaseParams {
|
|
10
|
+
body: {
|
|
11
|
+
clusterId: string;
|
|
12
|
+
eventType: any;
|
|
13
|
+
userAgent?: string;
|
|
14
|
+
internalClient?: boolean;
|
|
15
|
+
properties?: {
|
|
16
|
+
[key: string]: string | number;
|
|
17
|
+
};
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
export declare class AnalyticBridgeService {
|
|
21
|
+
static add(params: AddAnalyticBridgeRequest): Promise<boolean>;
|
|
22
|
+
static addCluster(params: AddClusterAnalyticBridgeRequest): Promise<boolean>;
|
|
23
|
+
}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { request } from "../../utils/api.js";
|
|
2
|
+
import { HttpError } from "../../utils/errors.js";
|
|
3
|
+
class AnalyticBridgeService {
|
|
4
|
+
static async add(params) {
|
|
5
|
+
const serviceContext = {
|
|
6
|
+
method: {
|
|
7
|
+
name: `AnalyticService.add`,
|
|
8
|
+
url: "",
|
|
9
|
+
normalizedUrl: "",
|
|
10
|
+
type: "post"
|
|
11
|
+
},
|
|
12
|
+
source: params.config.metrics?.source || "unset",
|
|
13
|
+
target: {
|
|
14
|
+
name: "analytic-bridge",
|
|
15
|
+
type: "internal"
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
const attributes = params.body.attributes;
|
|
19
|
+
const reqBody = {
|
|
20
|
+
...{
|
|
21
|
+
eventType: params.body.eventType,
|
|
22
|
+
accessToken: params.body.accessToken
|
|
23
|
+
},
|
|
24
|
+
...attributes
|
|
25
|
+
};
|
|
26
|
+
const response = await request({
|
|
27
|
+
config: params.config,
|
|
28
|
+
base: { id: "analytic-bridge" },
|
|
29
|
+
url: serviceContext.method.url,
|
|
30
|
+
method: serviceContext.method.type,
|
|
31
|
+
metricsDetails: serviceContext,
|
|
32
|
+
body: reqBody,
|
|
33
|
+
responseType: "none"
|
|
34
|
+
});
|
|
35
|
+
if (!response.ok) {
|
|
36
|
+
throw new HttpError(
|
|
37
|
+
`${serviceContext.method.name}: ${response.status} ${response.statusText}`,
|
|
38
|
+
response.status,
|
|
39
|
+
response.statusText
|
|
40
|
+
);
|
|
41
|
+
}
|
|
42
|
+
return response.status === 200;
|
|
43
|
+
}
|
|
44
|
+
static async addCluster(params) {
|
|
45
|
+
const serviceContext = {
|
|
46
|
+
method: {
|
|
47
|
+
name: `AnalyticService.addCluster`,
|
|
48
|
+
url: `cluster/${params.body.clusterId}`,
|
|
49
|
+
normalizedUrl: `/cluster/:clusterId`,
|
|
50
|
+
type: "post"
|
|
51
|
+
},
|
|
52
|
+
source: params.config.metrics?.source || "unset",
|
|
53
|
+
target: {
|
|
54
|
+
name: "analytic-bridge",
|
|
55
|
+
type: "internal"
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
const reqBody = {
|
|
59
|
+
eventType: params.body.eventType,
|
|
60
|
+
userAgent: params.body.userAgent,
|
|
61
|
+
internalClient: params.body.internalClient,
|
|
62
|
+
properties: params.body.properties
|
|
63
|
+
};
|
|
64
|
+
const response = await request({
|
|
65
|
+
config: params.config,
|
|
66
|
+
base: { id: "analytic-bridge" },
|
|
67
|
+
url: serviceContext.method.url,
|
|
68
|
+
method: serviceContext.method.type,
|
|
69
|
+
metricsDetails: serviceContext,
|
|
70
|
+
body: reqBody,
|
|
71
|
+
responseType: "none"
|
|
72
|
+
});
|
|
73
|
+
if (!response.ok) {
|
|
74
|
+
throw new HttpError(
|
|
75
|
+
`${serviceContext.method.name}: ${response.status} ${response.statusText}`,
|
|
76
|
+
response.status,
|
|
77
|
+
response.statusText
|
|
78
|
+
);
|
|
79
|
+
}
|
|
80
|
+
return response.status === 200;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
export {
|
|
84
|
+
AnalyticBridgeService
|
|
85
|
+
};
|
|
86
|
+
//# sourceMappingURL=analytic-bridge.service.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/services/analytic-bridge/analytic-bridge.service.ts"],
|
|
4
|
+
"sourcesContent": ["/*\n * Copyright Camunda Services GmbH and/or licensed to Camunda Services GmbH\n * under one or more contributor license agreements. Licensed under a commercial license.\n * You may not use this file except in compliance with the commercial license.\n */\n\nimport type {\n RequestBaseParams,\n RequestBaseServiceContext,\n} from '../../types/general.types.js'\nimport { request } from '../../utils/api.js'\nimport { HttpError } from '../../utils/errors.js'\n\nexport interface AddAnalyticBridgeRequest extends RequestBaseParams {\n body: {\n eventType: any\n attributes: any\n accessToken?: string | undefined\n }\n}\n\nexport interface AddClusterAnalyticBridgeRequest extends RequestBaseParams {\n body: {\n clusterId: string\n eventType: any\n userAgent?: string\n internalClient?: boolean\n properties?: {\n [key: string]: string | number\n }\n }\n}\n\nexport class AnalyticBridgeService {\n public static async add(params: AddAnalyticBridgeRequest): Promise<boolean> {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `AnalyticService.add`,\n url: '',\n normalizedUrl: '',\n type: 'post',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'analytic-bridge',\n type: 'internal',\n },\n }\n const attributes = params.body.attributes\n const reqBody = {\n ...{\n eventType: params.body.eventType,\n accessToken: params.body.accessToken,\n },\n ...attributes,\n }\n const response = await request({\n config: params.config,\n base: { id: 'analytic-bridge' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n body: reqBody,\n responseType: 'none',\n })\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n return response.status === 200\n }\n\n public static async addCluster(\n params: AddClusterAnalyticBridgeRequest,\n ): Promise<boolean> {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `AnalyticService.addCluster`,\n url: `cluster/${params.body.clusterId}`,\n normalizedUrl: `/cluster/:clusterId`,\n type: 'post',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'analytic-bridge',\n type: 'internal',\n },\n }\n const reqBody = {\n eventType: params.body.eventType,\n userAgent: params.body.userAgent,\n internalClient: params.body.internalClient,\n properties: params.body.properties,\n }\n const response = await request({\n config: params.config,\n base: { id: 'analytic-bridge' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n body: reqBody,\n responseType: 'none',\n })\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n return response.status === 200\n }\n}\n"],
|
|
5
|
+
"mappings": "AAUA,SAAS,eAAe;AACxB,SAAS,iBAAiB;AAsBnB,MAAM,sBAAsB;AAAA,EACjC,aAAoB,IAAI,QAAoD;AAC1E,UAAM,iBAA4C;AAAA,MAChD,QAAQ;AAAA,QACN,MAAM;AAAA,QACN,KAAK;AAAA,QACL,eAAe;AAAA,QACf,MAAM;AAAA,MACR;AAAA,MACA,QAAQ,OAAO,OAAO,SAAS,UAAU;AAAA,MACzC,QAAQ;AAAA,QACN,MAAM;AAAA,QACN,MAAM;AAAA,MACR;AAAA,IACF;AACA,UAAM,aAAa,OAAO,KAAK;AAC/B,UAAM,UAAU;AAAA,MACd,GAAG;AAAA,QACD,WAAW,OAAO,KAAK;AAAA,QACvB,aAAa,OAAO,KAAK;AAAA,MAC3B;AAAA,MACA,GAAG;AAAA,IACL;AACA,UAAM,WAAW,MAAM,QAAQ;AAAA,MAC7B,QAAQ,OAAO;AAAA,MACf,MAAM,EAAE,IAAI,kBAAkB;AAAA,MAC9B,KAAK,eAAe,OAAO;AAAA,MAC3B,QAAQ,eAAe,OAAO;AAAA,MAC9B,gBAAgB;AAAA,MAChB,MAAM;AAAA,MACN,cAAc;AAAA,IAChB,CAAC;AACD,QAAI,CAAC,SAAS,IAAI;AAChB,YAAM,IAAI;AAAA,QACR,GAAG,eAAe,OAAO,IAAI,KAAK,SAAS,MAAM,IAAI,SAAS,UAAU;AAAA,QACxE,SAAS;AAAA,QACT,SAAS;AAAA,MACX;AAAA,IACF;AACA,WAAO,SAAS,WAAW;AAAA,EAC7B;AAAA,EAEA,aAAoB,WAClB,QACkB;AAClB,UAAM,iBAA4C;AAAA,MAChD,QAAQ;AAAA,QACN,MAAM;AAAA,QACN,KAAK,WAAW,OAAO,KAAK,SAAS;AAAA,QACrC,eAAe;AAAA,QACf,MAAM;AAAA,MACR;AAAA,MACA,QAAQ,OAAO,OAAO,SAAS,UAAU;AAAA,MACzC,QAAQ;AAAA,QACN,MAAM;AAAA,QACN,MAAM;AAAA,MACR;AAAA,IACF;AACA,UAAM,UAAU;AAAA,MACd,WAAW,OAAO,KAAK;AAAA,MACvB,WAAW,OAAO,KAAK;AAAA,MACvB,gBAAgB,OAAO,KAAK;AAAA,MAC5B,YAAY,OAAO,KAAK;AAAA,IAC1B;AACA,UAAM,WAAW,MAAM,QAAQ;AAAA,MAC7B,QAAQ,OAAO;AAAA,MACf,MAAM,EAAE,IAAI,kBAAkB;AAAA,MAC9B,KAAK,eAAe,OAAO;AAAA,MAC3B,QAAQ,eAAe,OAAO;AAAA,MAC9B,gBAAgB;AAAA,MAChB,MAAM;AAAA,MACN,cAAc;AAAA,IAChB,CAAC;AACD,QAAI,CAAC,SAAS,IAAI;AAChB,YAAM,IAAI;AAAA,QACR,GAAG,eAAe,OAAO,IAAI,KAAK,SAAS,MAAM,IAAI,SAAS,UAAU;AAAA,QACxE,SAAS;AAAA,QACT,SAAS;AAAA,MACX;AAAA,IACF;AACA,WAAO,SAAS,WAAW;AAAA,EAC7B;AACF;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { AuditDto } from '@camunda/ccma-shared-types';
|
|
2
|
+
import type { RequestBaseParams } from '../../types/general.types.js';
|
|
3
|
+
export interface AddAuditRequest extends RequestBaseParams {
|
|
4
|
+
params: {
|
|
5
|
+
audit: AuditDto;
|
|
6
|
+
};
|
|
7
|
+
}
|
|
8
|
+
export interface GetAuditRequest extends RequestBaseParams {
|
|
9
|
+
params: {
|
|
10
|
+
orgId: string;
|
|
11
|
+
pagination?: {
|
|
12
|
+
page: number;
|
|
13
|
+
perPage: number;
|
|
14
|
+
};
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
export interface GetClusterAuditRequest extends RequestBaseParams {
|
|
18
|
+
params: {
|
|
19
|
+
orgId: string;
|
|
20
|
+
clusterId: string;
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
export declare class AuditLoggerService {
|
|
24
|
+
static addAudit(params: AddAuditRequest): Promise<boolean>;
|
|
25
|
+
static getAudit(params: GetAuditRequest): Promise<AuditDto[]>;
|
|
26
|
+
static getClusterAudit(params: GetClusterAuditRequest): Promise<AuditDto[]>;
|
|
27
|
+
}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { request } from "../../utils/api.js";
|
|
2
|
+
import { HttpError } from "../../utils/errors.js";
|
|
3
|
+
class AuditLoggerService {
|
|
4
|
+
static async addAudit(params) {
|
|
5
|
+
const serviceContext = {
|
|
6
|
+
method: {
|
|
7
|
+
name: `AuditLoggerService.addAudit`,
|
|
8
|
+
url: `api/audit/orgs`,
|
|
9
|
+
normalizedUrl: `api/audit/orgs`,
|
|
10
|
+
type: "post"
|
|
11
|
+
},
|
|
12
|
+
source: params.config.metrics?.source || "unset",
|
|
13
|
+
target: {
|
|
14
|
+
name: "audit-logger",
|
|
15
|
+
type: "internal"
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
const response = await request({
|
|
19
|
+
config: params.config,
|
|
20
|
+
base: { id: "audit-logger" },
|
|
21
|
+
url: serviceContext.method.url,
|
|
22
|
+
method: serviceContext.method.type,
|
|
23
|
+
metricsDetails: serviceContext,
|
|
24
|
+
body: params.params,
|
|
25
|
+
responseType: "none"
|
|
26
|
+
});
|
|
27
|
+
if (!response.ok) {
|
|
28
|
+
throw new HttpError(
|
|
29
|
+
`${serviceContext.method.name}: ${response.status} ${response.statusText}`,
|
|
30
|
+
response.status,
|
|
31
|
+
response.statusText
|
|
32
|
+
);
|
|
33
|
+
}
|
|
34
|
+
return response.status === 200;
|
|
35
|
+
}
|
|
36
|
+
static async getAudit(params) {
|
|
37
|
+
let url = `api/audit/orgs/${params.params.orgId}`;
|
|
38
|
+
if (params.params.pagination) {
|
|
39
|
+
url = url.concat(
|
|
40
|
+
`?per_page=${params.params.pagination.perPage}&page=${params.params.pagination.page}`
|
|
41
|
+
);
|
|
42
|
+
}
|
|
43
|
+
const serviceContext = {
|
|
44
|
+
method: {
|
|
45
|
+
name: `AuditLoggerService.getAudit`,
|
|
46
|
+
url,
|
|
47
|
+
normalizedUrl: url,
|
|
48
|
+
type: "get"
|
|
49
|
+
},
|
|
50
|
+
source: params.config.metrics?.source || "unset",
|
|
51
|
+
target: {
|
|
52
|
+
name: "audit-logger",
|
|
53
|
+
type: "internal"
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
const response = await request({
|
|
57
|
+
...params,
|
|
58
|
+
base: { id: "audit-logger" },
|
|
59
|
+
url: serviceContext.method.url,
|
|
60
|
+
method: serviceContext.method.type,
|
|
61
|
+
metricsDetails: serviceContext,
|
|
62
|
+
responseType: "json"
|
|
63
|
+
});
|
|
64
|
+
if (!response.ok) {
|
|
65
|
+
throw new HttpError(
|
|
66
|
+
`${serviceContext.method.name}: ${response.status} ${response.statusText}`,
|
|
67
|
+
response.status,
|
|
68
|
+
response.statusText
|
|
69
|
+
);
|
|
70
|
+
}
|
|
71
|
+
return response.body;
|
|
72
|
+
}
|
|
73
|
+
static async getClusterAudit(params) {
|
|
74
|
+
const serviceContext = {
|
|
75
|
+
method: {
|
|
76
|
+
name: `AuditLoggerService.getClusterAudit`,
|
|
77
|
+
url: `api/audit/orgs/${params.params.orgId}/cluster/${params.params.clusterId}`,
|
|
78
|
+
normalizedUrl: `api/audit/orgs/:orgId/cluster/:clusterId`,
|
|
79
|
+
type: "get"
|
|
80
|
+
},
|
|
81
|
+
source: params.config.metrics?.source || "unset",
|
|
82
|
+
target: {
|
|
83
|
+
name: "audit-logger",
|
|
84
|
+
type: "internal"
|
|
85
|
+
}
|
|
86
|
+
};
|
|
87
|
+
const response = await request({
|
|
88
|
+
...params,
|
|
89
|
+
base: { id: "audit-logger" },
|
|
90
|
+
url: serviceContext.method.url,
|
|
91
|
+
method: serviceContext.method.type,
|
|
92
|
+
metricsDetails: serviceContext,
|
|
93
|
+
responseType: "json"
|
|
94
|
+
});
|
|
95
|
+
if (!response.ok) {
|
|
96
|
+
throw new HttpError(
|
|
97
|
+
`${serviceContext.method.name}: ${response.status} ${response.statusText}`,
|
|
98
|
+
response.status,
|
|
99
|
+
response.statusText
|
|
100
|
+
);
|
|
101
|
+
}
|
|
102
|
+
return response.body ?? [];
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
export {
|
|
106
|
+
AuditLoggerService
|
|
107
|
+
};
|
|
108
|
+
//# sourceMappingURL=audit-logger.service.js.map
|