Compare commits

...

17 Commits

Author SHA1 Message Date
standardci
c99334889c chore(release): publish new version
- @standardnotes/analytics@2.32.1
 - @standardnotes/api-gateway@1.79.14
 - @standardnotes/auth-server@1.159.2
 - @standardnotes/domain-events-infra@1.20.1
 - @standardnotes/event-store@1.13.14
 - @standardnotes/files-server@1.31.1
 - @standardnotes/home-server@1.17.17
 - @standardnotes/revisions-server@1.46.1
 - @standardnotes/scheduler-server@1.26.1
 - @standardnotes/syncing-server@1.118.1
 - @standardnotes/websockets-server@1.17.1
2023-10-18 08:41:21 +00:00
Karol Sójko
7ce9aba517 fix: remove ip attributes in opentelemetry http instrumentation (#874) 2023-10-18 10:21:35 +02:00
Karol Sójko
46257a058b chore: allow only direct updates for dependabot: 2023-10-18 09:32:25 +02:00
dependabot[bot]
979dc35cfc chore(deps): bump actions/checkout from 3 to 4 (#817)
Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-17 14:02:56 +02:00
standardci
c99a447a04 chore(release): publish new version
- @standardnotes/auth-server@1.159.1
 - @standardnotes/home-server@1.17.16
2023-10-17 11:58:49 +00:00
Karol Sójko
6dd9fd5abd fix: remove secrets from e2e test suites 2023-10-17 13:40:52 +02:00
Karol Sójko
0d37cb293c fix(auth): traversing through users in transition 2023-10-17 13:25:20 +02:00
standardci
27d04c95a1 chore(release): publish new version
- @standardnotes/analytics@2.32.0
 - @standardnotes/api-gateway@1.79.13
 - @standardnotes/auth-server@1.159.0
 - @standardnotes/domain-events-infra@1.20.0
 - @standardnotes/event-store@1.13.13
 - @standardnotes/files-server@1.31.0
 - @standardnotes/home-server@1.17.15
 - @standardnotes/revisions-server@1.46.0
 - @standardnotes/scheduler-server@1.26.0
 - @standardnotes/syncing-server@1.118.0
 - @standardnotes/websockets-server@1.17.0
2023-10-17 09:03:21 +00:00
Karol Sójko
cd830cdf25 fix: allow mutable yarn install on PR for dependabot purposes 2023-10-17 10:47:32 +02:00
Karol Sójko
5b06ea94f9 fix(syncing-server): binding 2023-10-17 10:41:55 +02:00
Karol Sójko
aba4f90485 feat: add wrapping sqs receive message with open telemetry 2023-10-17 10:14:26 +02:00
Karol Sójko
350621ed52 fix: remove secondary db from docker ci setup 2023-10-16 12:26:57 +02:00
Karol Sójko
69b4324c78 fix: remove unused variables in ci 2023-10-16 12:26:07 +02:00
Karol Sójko
b2be0a7c0b fix: remove secondary db from e2e test suites 2023-10-16 12:24:17 +02:00
Karol Sójko
cab0dfba39 fix: scheduled test suite to run only base tests 2023-10-16 12:04:34 +02:00
standardci
296ca47d63 chore(release): publish new version
- @standardnotes/auth-server@1.158.8
 - @standardnotes/home-server@1.17.14
2023-10-16 06:35:52 +00:00
Karol Sójko
1cad18a681 fix(auth): logs for triggering transition 2023-10-16 08:15:53 +02:00
99 changed files with 1098 additions and 852 deletions

6
.github/ci.env vendored
View File

@@ -23,12 +23,6 @@ MYSQL_USER=std_notes_user
MYSQL_PASSWORD=changeme123
MYSQL_ROOT_PASSWORD=changeme123
MONGO_HOST=secondary_db
MONGO_PORT=27017
MONGO_USERNAME=standardnotes
MONGO_PASSWORD=standardnotes
MONGO_DATABASE=standardnotes
AUTH_JWT_SECRET=f95259c5e441f5a4646d76422cfb3df4c4488842901aa50b6c51b8be2e0040e9
AUTH_SERVER_ENCRYPTION_SERVER_KEY=1087415dfde3093797f9a7ca93a49e7d7aa1861735eb0d32aae9c303b8c3d060
VALET_TOKEN_SECRET=4b886819ebe1e908077c6cae96311b48a8416bd60cc91c03060e15bdf6b30d1f

View File

@@ -9,101 +9,141 @@ updates:
directory: "/"
schedule:
interval: "daily"
allow:
- dependency-type: "direct"
- package-ecosystem: "npm"
directory: "/packages/analytics"
schedule:
interval: "daily"
allow:
- dependency-type: "direct"
- package-ecosystem: "npm"
directory: "/packages/api-gateway"
schedule:
interval: "daily"
allow:
- dependency-type: "direct"
- package-ecosystem: "npm"
directory: "/packages/auth"
schedule:
interval: "daily"
allow:
- dependency-type: "direct"
- package-ecosystem: "npm"
directory: "/packages/common"
schedule:
interval: "daily"
allow:
- dependency-type: "direct"
- package-ecosystem: "npm"
directory: "/packages/domain-core"
schedule:
interval: "daily"
allow:
- dependency-type: "direct"
- package-ecosystem: "npm"
directory: "/packages/domain-events"
schedule:
interval: "daily"
allow:
- dependency-type: "direct"
- package-ecosystem: "npm"
directory: "/packages/domain-events-infra"
schedule:
interval: "daily"
allow:
- dependency-type: "direct"
- package-ecosystem: "npm"
directory: "/packages/event-store"
schedule:
interval: "daily"
allow:
- dependency-type: "direct"
- package-ecosystem: "npm"
directory: "/packages/files"
schedule:
interval: "daily"
allow:
- dependency-type: "direct"
- package-ecosystem: "npm"
directory: "/packages/home-server"
schedule:
interval: "daily"
allow:
- dependency-type: "direct"
- package-ecosystem: "npm"
directory: "/packages/predicates"
schedule:
interval: "daily"
allow:
- dependency-type: "direct"
- package-ecosystem: "npm"
directory: "/packages/revisions"
schedule:
interval: "daily"
allow:
- dependency-type: "direct"
- package-ecosystem: "npm"
directory: "/packages/scheduler"
schedule:
interval: "daily"
allow:
- dependency-type: "direct"
- package-ecosystem: "npm"
directory: "/packages/security"
schedule:
interval: "daily"
allow:
- dependency-type: "direct"
- package-ecosystem: "npm"
directory: "/packages/settings"
schedule:
interval: "daily"
allow:
- dependency-type: "direct"
- package-ecosystem: "npm"
directory: "/packages/sncrypto-node"
schedule:
interval: "daily"
allow:
- dependency-type: "direct"
- package-ecosystem: "npm"
directory: "/packages/syncing-server"
schedule:
interval: "daily"
allow:
- dependency-type: "direct"
- package-ecosystem: "npm"
directory: "/packages/time"
schedule:
interval: "daily"
allow:
- dependency-type: "direct"
- package-ecosystem: "npm"
directory: "/packages/websockets"
schedule:
interval: "daily"
allow:
- dependency-type: "direct"
- package-ecosystem: "github-actions"
directory: "/"

View File

@@ -27,7 +27,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- uses: actions/setup-python@v4
with:

View File

@@ -11,15 +11,6 @@ on:
type: string
default: all
description: The test suite to run
secrets:
DOCKER_USERNAME:
required: true
DOCKER_PASSWORD:
required: true
AWS_ACCESS_KEY_ID:
required: true
AWS_SECRET_ACCESS_KEY:
required: true
jobs:
e2e-self-hosted:
@@ -27,11 +18,9 @@ jobs:
with:
snjs_image_tag: ${{ inputs.snjs_image_tag }}
suite: ${{ inputs.suite }}
secrets: inherit
e2e-home-server:
uses: standardnotes/server/.github/workflows/e2e-home-server.yml@main
with:
snjs_image_tag: ${{ inputs.snjs_image_tag }}
suite: ${{ inputs.suite }}
secrets: inherit

View File

@@ -17,7 +17,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Login to Docker Hub
uses: docker/login-action@v2

View File

@@ -11,15 +11,6 @@ on:
type: string
default: all
description: The test suite to run
secrets:
DOCKER_USERNAME:
required: true
DOCKER_PASSWORD:
required: true
AWS_ACCESS_KEY_ID:
required: true
AWS_SECRET_ACCESS_KEY:
required: true
jobs:
e2e-home-server:
@@ -29,7 +20,6 @@ jobs:
matrix:
db_type: [mysql, sqlite]
cache_type: [redis, memory]
secondary_db_enabled: [true, false]
runs-on: ubuntu-latest
@@ -51,17 +41,9 @@ jobs:
MYSQL_DATABASE: standardnotes
MYSQL_USER: standardnotes
MYSQL_PASSWORD: standardnotes
secondary_db:
image: mongo:5.0
ports:
- 27017:27017
env:
MONGO_INITDB_ROOT_USERNAME: standardnotes
MONGO_INITDB_ROOT_PASSWORD: standardnotes
MONGO_INITDB_DATABASE: standardnotes
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Set up Node
uses: actions/setup-node@v3
@@ -98,12 +80,6 @@ jobs:
echo "DB_DEBUG_LEVEL=all" >> packages/home-server/.env
echo "REDIS_URL=redis://localhost:6379" >> packages/home-server/.env
echo "CACHE_TYPE=${{ matrix.cache_type }}" >> packages/home-server/.env
echo "SECONDARY_DB_ENABLED=${{ matrix.secondary_db_enabled }}" >> packages/home-server/.env
echo "MONGO_HOST=localhost" >> packages/home-server/.env
echo "MONGO_PORT=27017" >> packages/home-server/.env
echo "MONGO_DATABASE=standardnotes" >> packages/home-server/.env
echo "MONGO_USERNAME=standardnotes" >> packages/home-server/.env
echo "MONGO_PASSWORD=standardnotes" >> packages/home-server/.env
echo "FILES_SERVER_URL=http://localhost:3123" >> packages/home-server/.env
echo "E2E_TESTING=true" >> packages/home-server/.env
@@ -122,7 +98,7 @@ jobs:
if: ${{ failure() }}
uses: actions/upload-artifact@v3
with:
name: home-server-failure-logs-${{ inputs.suite }}-${{ matrix.db_type }}-${{ matrix.cache_type }}-${{ matrix.secondary_db_enabled }}
name: home-server-failure-logs-${{ inputs.suite }}-${{ matrix.db_type }}-${{ matrix.cache_type }}
retention-days: 5
path: |
logs/output.log

View File

@@ -11,23 +11,12 @@ on:
type: string
default: all
description: The test suite to run
secrets:
DOCKER_USERNAME:
required: true
DOCKER_PASSWORD:
required: true
AWS_ACCESS_KEY_ID:
required: true
AWS_SECRET_ACCESS_KEY:
required: true
jobs:
e2e:
name: (Self Hosting) E2E Test Suite
strategy:
fail-fast: false
matrix:
secondary_db_enabled: [true, false]
runs-on: ubuntu-latest
services:
@@ -37,7 +26,7 @@ jobs:
- 9001:9001
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Set up Node
uses: actions/setup-node@v3
@@ -53,7 +42,6 @@ jobs:
env:
DB_TYPE: mysql
CACHE_TYPE: redis
SECONDARY_DB_ENABLED: ${{ matrix.secondary_db_enabled }}
- name: Wait for server to start
run: docker/is-available.sh http://localhost:3123 $(pwd)/logs
@@ -65,7 +53,7 @@ jobs:
if: ${{ failure() }}
uses: actions/upload-artifact@v3
with:
name: self-hosted-failure-logs-${{ inputs.suite }}-${{ matrix.secondary_db_enabled }}
name: self-hosted-failure-logs-${{ inputs.suite }}
retention-days: 5
path: |
logs/*.err

View File

@@ -31,4 +31,3 @@ jobs:
with:
snjs_image_tag: ${{ inputs.snjs_image_tag || 'latest' }}
suite: ${{ inputs.suite || 'all' }}
secrets: inherit

View File

@@ -9,7 +9,7 @@ jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Cache build
id: cache-build
@@ -26,7 +26,7 @@ jobs:
node-version-file: '.nvmrc'
- name: Install
run: yarn install --immutable
run: yarn install
- name: Build
run: yarn build
@@ -37,7 +37,7 @@ jobs:
needs: build
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Cache build
id: cache-build
@@ -54,7 +54,7 @@ jobs:
node-version-file: '.nvmrc'
- name: Install
run: yarn install --immutable
run: yarn install
- name: Build
if: steps.cache-build.outputs.cache-hit != 'true'
@@ -69,7 +69,7 @@ jobs:
needs: build
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Cache build
id: cache-build
@@ -86,7 +86,7 @@ jobs:
node-version-file: '.nvmrc'
- name: Install
run: yarn install --immutable
run: yarn install
- name: Build
if: steps.cache-build.outputs.cache-hit != 'true'
@@ -102,7 +102,6 @@ jobs:
with:
snjs_image_tag: 'latest'
suite: 'base'
secrets: inherit
# e2e-vaults:
# needs: build
@@ -111,4 +110,3 @@ jobs:
# with:
# snjs_image_tag: 'latest'
# suite: 'vaults'
# secrets: inherit

View File

@@ -9,7 +9,7 @@ jobs:
if: contains(github.event.head_commit.message, 'chore(release)') == false
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Cache build
id: cache-build
@@ -37,7 +37,7 @@ jobs:
needs: build
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Cache build
id: cache-build
@@ -69,7 +69,7 @@ jobs:
needs: build
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Cache build
id: cache-build
@@ -102,7 +102,6 @@ jobs:
with:
snjs_image_tag: 'latest'
suite: 'base'
secrets: inherit
# e2e-vaults:
# needs: build
@@ -111,7 +110,6 @@ jobs:
# with:
# snjs_image_tag: 'latest'
# suite: 'vaults'
# secrets: inherit
publish-self-hosting:
needs: [ test, lint, e2e-base ]
@@ -126,7 +124,7 @@ jobs:
steps:
- name: Checkout code
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
token: ${{ secrets.CI_PAT_TOKEN }}
fetch-depth: 0

659
.pnp.cjs generated

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@@ -22,7 +22,6 @@ services:
environment:
DB_TYPE: "${DB_TYPE}"
CACHE_TYPE: "${CACHE_TYPE}"
SECONDARY_DB_ENABLED: "${SECONDARY_DB_ENABLED}"
container_name: server-ci
ports:
- 3123:3000
@@ -61,21 +60,6 @@ services:
networks:
- standardnotes_self_hosted
secondary_db:
image: mongo:5.0
container_name: secondary_db-ci
ports:
- 27017
restart: unless-stopped
volumes:
- ./data/mongo:/data/db
environment:
MONGO_INITDB_ROOT_USERNAME: standardnotes
MONGO_INITDB_ROOT_PASSWORD: standardnotes
MONGO_INITDB_DATABASE: standardnotes
networks:
- standardnotes_self_hosted
cache:
image: redis:6.0-alpine
container_name: cache-ci

View File

@@ -3,6 +3,16 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## [2.32.1](https://github.com/standardnotes/server/compare/@standardnotes/analytics@2.32.0...@standardnotes/analytics@2.32.1) (2023-10-18)
**Note:** Version bump only for package @standardnotes/analytics
# [2.32.0](https://github.com/standardnotes/server/compare/@standardnotes/analytics@2.31.7...@standardnotes/analytics@2.32.0) (2023-10-17)
### Features
* add wrapping sqs receive message with open telemetry ([aba4f90](https://github.com/standardnotes/server/commit/aba4f90485e1b40baac34561321a5381945aa27e))
## [2.31.7](https://github.com/standardnotes/server/compare/@standardnotes/analytics@2.31.6...@standardnotes/analytics@2.31.7) (2023-10-13)
### Bug Fixes

View File

@@ -7,7 +7,7 @@ const sdk = new OpenTelemetrySDK({ serviceName: ServiceIdentifier.NAMES.Analytic
sdk.start()
import { Logger } from 'winston'
import { DomainEventSubscriberFactoryInterface } from '@standardnotes/domain-events'
import { DomainEventSubscriberInterface } from '@standardnotes/domain-events'
import * as dayjs from 'dayjs'
import * as utc from 'dayjs/plugin/utc'
@@ -26,6 +26,7 @@ void container.load().then((container) => {
logger.info('Starting worker...')
const subscriberFactory: DomainEventSubscriberFactoryInterface = container.get(TYPES.DomainEventSubscriberFactory)
subscriberFactory.create().start()
const subscriber = container.get<DomainEventSubscriberInterface>(TYPES.DomainEventSubscriber)
subscriber.start()
})

View File

@@ -1,6 +1,6 @@
{
"name": "@standardnotes/analytics",
"version": "2.31.7",
"version": "2.32.1",
"engines": {
"node": ">=18.0.0 <21.0.0"
},

View File

@@ -5,9 +5,9 @@ import {
DomainEventHandlerInterface,
DomainEventMessageHandlerInterface,
DomainEventPublisherInterface,
DomainEventSubscriberFactoryInterface,
DomainEventSubscriberInterface,
} from '@standardnotes/domain-events'
import { MapperInterface } from '@standardnotes/domain-core'
import { MapperInterface, ServiceIdentifier } from '@standardnotes/domain-core'
// eslint-disable-next-line @typescript-eslint/no-var-requires
const Mixpanel = require('mixpanel')
@@ -17,8 +17,8 @@ import { AppDataSource } from './DataSource'
import { DomainEventFactory } from '../Domain/Event/DomainEventFactory'
import {
SNSOpenTelemetryDomainEventPublisher,
SQSDomainEventSubscriberFactory,
SQSEventMessageHandler,
SQSOpenTelemetryDomainEventSubscriber,
} from '@standardnotes/domain-events-infra'
import { Timer, TimerInterface } from '@standardnotes/time'
import { PeriodKeyGeneratorInterface } from '../Domain/Time/PeriodKeyGeneratorInterface'
@@ -240,12 +240,14 @@ export class ContainerConfigLoader {
.bind<DomainEventMessageHandlerInterface>(TYPES.DomainEventMessageHandler)
.toConstantValue(new SQSEventMessageHandler(eventHandlers, container.get(TYPES.Logger)))
container
.bind<DomainEventSubscriberFactoryInterface>(TYPES.DomainEventSubscriberFactory)
.bind<DomainEventSubscriberInterface>(TYPES.DomainEventSubscriber)
.toConstantValue(
new SQSDomainEventSubscriberFactory(
container.get(TYPES.SQS),
container.get(TYPES.SQS_QUEUE_URL),
container.get(TYPES.DomainEventMessageHandler),
new SQSOpenTelemetryDomainEventSubscriber(
ServiceIdentifier.NAMES.AnalyticsWorker,
container.get<SQSClient>(TYPES.SQS),
container.get<string>(TYPES.SQS_QUEUE_URL),
container.get<DomainEventMessageHandlerInterface>(TYPES.DomainEventMessageHandler),
container.get<winston.Logger>(TYPES.Logger),
),
)

View File

@@ -42,7 +42,7 @@ const TYPES = {
RevenueModificationMap: Symbol.for('RevenueModificationMap'),
// Services
DomainEventPublisher: Symbol.for('DomainEventPublisher'),
DomainEventSubscriberFactory: Symbol.for('DomainEventSubscriberFactory'),
DomainEventSubscriber: Symbol.for('DomainEventSubscriber'),
DomainEventFactory: Symbol.for('DomainEventFactory'),
DomainEventMessageHandler: Symbol.for('DomainEventMessageHandler'),
AnalyticsStore: Symbol.for('AnalyticsStore'),

View File

@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## [1.79.14](https://github.com/standardnotes/api-gateway/compare/@standardnotes/api-gateway@1.79.13...@standardnotes/api-gateway@1.79.14) (2023-10-18)
**Note:** Version bump only for package @standardnotes/api-gateway
## [1.79.13](https://github.com/standardnotes/api-gateway/compare/@standardnotes/api-gateway@1.79.12...@standardnotes/api-gateway@1.79.13) (2023-10-17)
**Note:** Version bump only for package @standardnotes/api-gateway
## [1.79.12](https://github.com/standardnotes/api-gateway/compare/@standardnotes/api-gateway@1.79.11...@standardnotes/api-gateway@1.79.12) (2023-10-13)
### Bug Fixes

View File

@@ -1,6 +1,6 @@
{
"name": "@standardnotes/api-gateway",
"version": "1.79.12",
"version": "1.79.14",
"engines": {
"node": ">=18.0.0 <21.0.0"
},

View File

@@ -3,6 +3,28 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## [1.159.2](https://github.com/standardnotes/server/compare/@standardnotes/auth-server@1.159.1...@standardnotes/auth-server@1.159.2) (2023-10-18)
**Note:** Version bump only for package @standardnotes/auth-server
## [1.159.1](https://github.com/standardnotes/server/compare/@standardnotes/auth-server@1.159.0...@standardnotes/auth-server@1.159.1) (2023-10-17)
### Bug Fixes
* **auth:** traversing through users in transition ([0d37cb2](https://github.com/standardnotes/server/commit/0d37cb293c3f8c1fa798a3c847a1f76c18a8c3aa))
# [1.159.0](https://github.com/standardnotes/server/compare/@standardnotes/auth-server@1.158.8...@standardnotes/auth-server@1.159.0) (2023-10-17)
### Features
* add wrapping sqs receive message with open telemetry ([aba4f90](https://github.com/standardnotes/server/commit/aba4f90485e1b40baac34561321a5381945aa27e))
## [1.158.8](https://github.com/standardnotes/server/compare/@standardnotes/auth-server@1.158.7...@standardnotes/auth-server@1.158.8) (2023-10-16)
### Bug Fixes
* **auth:** logs for triggering transition ([1cad18a](https://github.com/standardnotes/server/commit/1cad18a681d933c67244d43dd6f3c2ec405149be))
## [1.158.7](https://github.com/standardnotes/server/compare/@standardnotes/auth-server@1.158.6...@standardnotes/auth-server@1.158.7) (2023-10-13)
### Bug Fixes

View File

@@ -35,78 +35,87 @@ const requestTransition = async (
const startDate = new Date(startDateString)
const endDate = new Date(endDateString)
const users = await userRepository.findAllCreatedBetween(startDate, endDate)
const usersCount = await userRepository.countAllCreatedBetween(startDate, endDate)
const timestamp = timer.getTimestampInMicroseconds()
logger.info(
`[TRANSITION ${timestamp}] Found ${users.length} users created between ${startDateString} and ${endDateString}`,
`[TRANSITION ${timestamp}] Found ${usersCount} users created between ${startDateString} and ${endDateString}`,
)
let usersTriggered = 0
let itemTransitionsTriggered = 0
let revisionTransitionsTriggered = 0
const forceRun = forceRunParam === 'true'
for (const user of users) {
const itemsTransitionStatus = await transitionStatusRepository.getStatus(user.uuid, 'items')
const revisionsTransitionStatus = await transitionStatusRepository.getStatus(user.uuid, 'revisions')
const userRoles = await user.roles
const pageLimit = 100
const totalPages = Math.ceil(usersCount / pageLimit)
for (let currentPage = 1; currentPage <= totalPages; currentPage++) {
const users = await userRepository.findAllCreatedBetween({
start: startDate,
end: endDate,
offset: (currentPage - 1) * pageLimit,
limit: pageLimit,
})
const userHasTransitionRole = userRoles.some((role) => role.name === RoleName.NAMES.TransitionUser)
const bothTransitionStatusesAreVerified =
itemsTransitionStatus?.value === TransitionStatus.STATUSES.Verified &&
revisionsTransitionStatus?.value === TransitionStatus.STATUSES.Verified
for (const user of users) {
const itemsTransitionStatus = await transitionStatusRepository.getStatus(user.uuid, 'items')
const revisionsTransitionStatus = await transitionStatusRepository.getStatus(user.uuid, 'revisions')
if (!userHasTransitionRole && bothTransitionStatusesAreVerified) {
continue
}
const userRoles = await user.roles
let wasTransitionRequested = false
const userHasTransitionRole = userRoles.some((role) => role.name === RoleName.NAMES.TransitionUser)
const bothTransitionStatusesAreVerified =
itemsTransitionStatus?.value === TransitionStatus.STATUSES.Verified &&
revisionsTransitionStatus?.value === TransitionStatus.STATUSES.Verified
if (
itemsTransitionStatus === null ||
itemsTransitionStatus.value === TransitionStatus.STATUSES.Failed ||
(itemsTransitionStatus.value === TransitionStatus.STATUSES.InProgress && forceRun)
) {
wasTransitionRequested = true
await transitionStatusRepository.remove(user.uuid, 'items')
if (!userHasTransitionRole && bothTransitionStatusesAreVerified) {
continue
}
await domainEventPublisher.publish(
domainEventFactory.createTransitionRequestedEvent({
userUuid: user.uuid,
type: 'items',
timestamp,
}),
)
}
if (
revisionsTransitionStatus === null ||
revisionsTransitionStatus.value === TransitionStatus.STATUSES.Failed ||
(revisionsTransitionStatus.value === TransitionStatus.STATUSES.InProgress && forceRun)
) {
wasTransitionRequested = true
await transitionStatusRepository.remove(user.uuid, 'revisions')
await domainEventPublisher.publish(
domainEventFactory.createTransitionRequestedEvent({
userUuid: user.uuid,
type: 'revisions',
timestamp,
}),
)
}
usersTriggered += 1
if (wasTransitionRequested) {
logger.info(
`[TRANSITION ${timestamp}] Transition requested for user ${user.uuid} - items status: ${itemsTransitionStatus?.value}, revisions status: ${revisionsTransitionStatus?.value}, has transition role: ${userHasTransitionRole}`,
`[TRANSITION ${timestamp}] Transition status for user ${user.uuid} - items status: ${itemsTransitionStatus?.value}, revisions status: ${revisionsTransitionStatus?.value}, has transition role: ${userHasTransitionRole}`,
)
if (
itemsTransitionStatus === null ||
itemsTransitionStatus.value === TransitionStatus.STATUSES.Failed ||
(itemsTransitionStatus.value === TransitionStatus.STATUSES.InProgress && forceRun)
) {
await transitionStatusRepository.remove(user.uuid, 'items')
await domainEventPublisher.publish(
domainEventFactory.createTransitionRequestedEvent({
userUuid: user.uuid,
type: 'items',
timestamp,
}),
)
itemTransitionsTriggered++
}
if (
revisionsTransitionStatus === null ||
revisionsTransitionStatus.value === TransitionStatus.STATUSES.Failed ||
(revisionsTransitionStatus.value === TransitionStatus.STATUSES.InProgress && forceRun)
) {
await transitionStatusRepository.remove(user.uuid, 'revisions')
await domainEventPublisher.publish(
domainEventFactory.createTransitionRequestedEvent({
userUuid: user.uuid,
type: 'revisions',
timestamp,
}),
)
revisionTransitionsTriggered++
}
}
}
logger.info(
`[TRANSITION ${timestamp}] Triggered transition for ${usersTriggered} users created between ${startDateString} and ${endDateString}`,
`[TRANSITION ${timestamp}] Triggered ${itemTransitionsTriggered} item transitions and ${revisionTransitionsTriggered} revision transitions for users created between ${startDateString} and ${endDateString}`,
)
}

View File

@@ -11,7 +11,7 @@ import { Logger } from 'winston'
import { ContainerConfigLoader } from '../src/Bootstrap/Container'
import TYPES from '../src/Bootstrap/Types'
import { Env } from '../src/Bootstrap/Env'
import { DomainEventSubscriberFactoryInterface } from '@standardnotes/domain-events'
import { DomainEventSubscriberInterface } from '@standardnotes/domain-events'
import * as dayjs from 'dayjs'
import * as utc from 'dayjs/plugin/utc'
@@ -26,8 +26,7 @@ void container.load().then((container) => {
logger.info('Starting worker...')
const subscriberFactory: DomainEventSubscriberFactoryInterface = container.get(
TYPES.Auth_DomainEventSubscriberFactory,
)
subscriberFactory.create().start()
const subscriber = container.get<DomainEventSubscriberInterface>(TYPES.Auth_DomainEventSubscriber)
subscriber.start()
})

View File

@@ -1,6 +1,6 @@
{
"name": "@standardnotes/auth-server",
"version": "1.158.7",
"version": "1.159.2",
"engines": {
"node": ">=18.0.0 <21.0.0"
},

View File

@@ -7,7 +7,7 @@ import {
DomainEventHandlerInterface,
DomainEventMessageHandlerInterface,
DomainEventPublisherInterface,
DomainEventSubscriberFactoryInterface,
DomainEventSubscriberInterface,
} from '@standardnotes/domain-events'
import { TimerInterface, Timer } from '@standardnotes/time'
import { UAParser } from 'ua-parser-js'
@@ -90,8 +90,8 @@ import {
DirectCallDomainEventPublisher,
DirectCallEventMessageHandler,
SNSOpenTelemetryDomainEventPublisher,
SQSDomainEventSubscriberFactory,
SQSEventMessageHandler,
SQSOpenTelemetryDomainEventSubscriber,
} from '@standardnotes/domain-events-infra'
import { GetUserSubscription } from '../Domain/UseCase/GetUserSubscription/GetUserSubscription'
import { ChangeCredentials } from '../Domain/UseCase/ChangeCredentials/ChangeCredentials'
@@ -188,6 +188,7 @@ import {
ControllerContainer,
ControllerContainerInterface,
MapperInterface,
ServiceIdentifier,
SharedVaultUser,
} from '@standardnotes/domain-core'
import { SessionTracePersistenceMapper } from '../Mapping/SessionTracePersistenceMapper'
@@ -1262,12 +1263,14 @@ export class ContainerConfigLoader {
.toConstantValue(new SQSEventMessageHandler(eventHandlers, container.get(TYPES.Auth_Logger)))
container
.bind<DomainEventSubscriberFactoryInterface>(TYPES.Auth_DomainEventSubscriberFactory)
.bind<DomainEventSubscriberInterface>(TYPES.Auth_DomainEventSubscriber)
.toConstantValue(
new SQSDomainEventSubscriberFactory(
container.get(TYPES.Auth_SQS),
container.get(TYPES.Auth_SQS_QUEUE_URL),
container.get(TYPES.Auth_DomainEventMessageHandler),
new SQSOpenTelemetryDomainEventSubscriber(
ServiceIdentifier.NAMES.AuthWorker,
container.get<SQSClient>(TYPES.Auth_SQS),
container.get<string>(TYPES.Auth_SQS_QUEUE_URL),
container.get<DomainEventMessageHandlerInterface>(TYPES.Auth_DomainEventMessageHandler),
container.get<winston.Logger>(TYPES.Auth_Logger),
),
)
}

View File

@@ -218,7 +218,7 @@ const TYPES = {
Auth_WebSocketConnectionTokenDecoder: Symbol.for('Auth_WebSocketConnectionTokenDecoder'),
Auth_AuthenticationMethodResolver: Symbol.for('Auth_AuthenticationMethodResolver'),
Auth_DomainEventPublisher: Symbol.for('Auth_DomainEventPublisher'),
Auth_DomainEventSubscriberFactory: Symbol.for('Auth_DomainEventSubscriberFactory'),
Auth_DomainEventSubscriber: Symbol.for('Auth_DomainEventSubscriber'),
Auth_DomainEventFactory: Symbol.for('Auth_DomainEventFactory'),
Auth_DomainEventMessageHandler: Symbol.for('Auth_DomainEventMessageHandler'),
Auth_HTTPClient: Symbol.for('Auth_HTTPClient'),

View File

@@ -8,7 +8,8 @@ export interface UserRepositoryInterface {
streamTeam(memberEmail?: Email): Promise<ReadStream>
findOneByUuid(uuid: Uuid): Promise<User | null>
findOneByUsernameOrEmail(usernameOrEmail: Email | Username): Promise<User | null>
findAllCreatedBetween(start: Date, end: Date): Promise<User[]>
findAllCreatedBetween(dto: { start: Date; end: Date; offset: number; limit: number }): Promise<User[]>
countAllCreatedBetween(start: Date, end: Date): Promise<number>
save(user: User): Promise<User>
remove(user: User): Promise<User>
}

View File

@@ -14,11 +14,21 @@ export class TypeORMUserRepository implements UserRepositoryInterface {
private ormRepository: Repository<User>,
) {}
async findAllCreatedBetween(start: Date, end: Date): Promise<User[]> {
async findAllCreatedBetween(dto: { start: Date; end: Date; offset: number; limit: number }): Promise<User[]> {
return this.ormRepository
.createQueryBuilder('user')
.where('user.created_at BETWEEN :start AND :end', { start: dto.start, end: dto.end })
.orderBy('user.created_at', 'ASC')
.take(dto.limit)
.skip(dto.offset)
.getMany()
}
async countAllCreatedBetween(start: Date, end: Date): Promise<number> {
return this.ormRepository
.createQueryBuilder('user')
.where('user.created_at BETWEEN :start AND :end', { start, end })
.getMany()
.getCount()
}
async save(user: User): Promise<User> {

View File

@@ -3,6 +3,18 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## [1.20.1](https://github.com/standardnotes/server/compare/@standardnotes/domain-events-infra@1.20.0...@standardnotes/domain-events-infra@1.20.1) (2023-10-18)
### Bug Fixes
* remove ip attributes in opentelemetry http instrumentation ([#874](https://github.com/standardnotes/server/issues/874)) ([7ce9aba](https://github.com/standardnotes/server/commit/7ce9aba517435034f491c9f080f671285fb91b91))
# [1.20.0](https://github.com/standardnotes/server/compare/@standardnotes/domain-events-infra@1.19.7...@standardnotes/domain-events-infra@1.20.0) (2023-10-17)
### Features
* add wrapping sqs receive message with open telemetry ([aba4f90](https://github.com/standardnotes/server/commit/aba4f90485e1b40baac34561321a5381945aa27e))
## [1.19.7](https://github.com/standardnotes/server/compare/@standardnotes/domain-events-infra@1.19.6...@standardnotes/domain-events-infra@1.19.7) (2023-10-13)
### Bug Fixes

View File

@@ -1,6 +1,6 @@
{
"name": "@standardnotes/domain-events-infra",
"version": "1.19.7",
"version": "1.20.1",
"engines": {
"node": ">=18.0.0 <21.0.0"
},
@@ -27,23 +27,23 @@
"@aws-sdk/client-sns": "^3.427.0",
"@aws-sdk/client-sqs": "^3.427.0",
"@opentelemetry/api": "^1.6.0",
"@opentelemetry/exporter-metrics-otlp-proto": "^0.43.0",
"@opentelemetry/exporter-trace-otlp-grpc": "^0.43.0",
"@opentelemetry/exporter-metrics-otlp-proto": "^0.44.0",
"@opentelemetry/exporter-trace-otlp-grpc": "^0.44.0",
"@opentelemetry/id-generator-aws-xray": "^1.2.1",
"@opentelemetry/instrumentation-aws-sdk": "^0.36.0",
"@opentelemetry/instrumentation-express": "^0.33.1",
"@opentelemetry/instrumentation-http": "^0.43.0",
"@opentelemetry/instrumentation-ioredis": "^0.35.1",
"@opentelemetry/instrumentation-winston": "^0.32.1",
"@opentelemetry/instrumentation-aws-sdk": "^0.36.1",
"@opentelemetry/instrumentation-express": "^0.33.2",
"@opentelemetry/instrumentation-http": "^0.44.0",
"@opentelemetry/instrumentation-ioredis": "^0.35.2",
"@opentelemetry/instrumentation-winston": "^0.32.2",
"@opentelemetry/propagator-aws-xray": "^1.3.1",
"@opentelemetry/resource-detector-aws": "^1.3.1",
"@opentelemetry/sdk-node": "^0.43.0",
"@opentelemetry/semantic-conventions": "^1.17.0",
"@opentelemetry/resource-detector-aws": "^1.3.2",
"@opentelemetry/sdk-node": "^0.44.0",
"@opentelemetry/semantic-conventions": "^1.17.1",
"@standardnotes/domain-events": "workspace:*",
"ioredis": "^5.2.4",
"opentelemetry-instrumentation-typeorm": "^0.39.1",
"reflect-metadata": "^0.1.13",
"sqs-consumer": "^7.3.0",
"sqs-consumer": "7.4.0-canary.0",
"winston": "^3.8.1"
},
"devDependencies": {

View File

@@ -1,5 +1,5 @@
import * as OpenTelemetrySDKNode from '@opentelemetry/sdk-node'
import { SemanticResourceAttributes } from '@opentelemetry/semantic-conventions'
import { SemanticAttributes, SemanticResourceAttributes } from '@opentelemetry/semantic-conventions'
import { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-grpc'
import { AWSXRayIdGenerator } from '@opentelemetry/id-generator-aws-xray'
import * as AwsResourceDetectors from '@opentelemetry/resource-detector-aws'
@@ -10,9 +10,11 @@ import { AwsInstrumentation } from '@opentelemetry/instrumentation-aws-sdk'
import { OTLPMetricExporter } from '@opentelemetry/exporter-metrics-otlp-proto'
import { WinstonInstrumentation } from '@opentelemetry/instrumentation-winston'
import { IORedisInstrumentation } from '@opentelemetry/instrumentation-ioredis'
import { ExpressInstrumentation } from '@opentelemetry/instrumentation-express'
import { IncomingMessage } from 'http'
import { Attributes } from '@opentelemetry/api'
import { OpenTelemetrySDKInterface } from './OpenTelemetrySDKInterface'
import { ExpressInstrumentation } from '@opentelemetry/instrumentation-express'
export class OpenTelemetrySDK implements OpenTelemetrySDKInterface {
private declare sdk: OpenTelemetrySDKNode.NodeSDK
@@ -63,6 +65,11 @@ export class OpenTelemetrySDK implements OpenTelemetrySDKInterface {
return isHealthCheckUrl
},
startIncomingSpanHook: (_request: IncomingMessage): Attributes => {
return {
[SemanticAttributes.HTTP_CLIENT_IP]: undefined,
}
},
}),
new ExpressInstrumentation(),
new AwsInstrumentation({

View File

@@ -0,0 +1,58 @@
import { Consumer } from 'sqs-consumer'
import * as OpenTelemetryApi from '@opentelemetry/api'
import { Message, SQSClient } from '@aws-sdk/client-sqs'
import { DomainEventSubscriberInterface, DomainEventMessageHandlerInterface } from '@standardnotes/domain-events'
import { Logger } from 'winston'
export class SQSOpenTelemetryDomainEventSubscriber implements DomainEventSubscriberInterface {
private currentSpan: OpenTelemetryApi.Span | undefined
constructor(
private serviceName: string,
private sqs: SQSClient,
private queueUrl: string,
private domainEventMessageHandler: DomainEventMessageHandlerInterface,
private logger: Logger,
) {}
start(): void {
const sqsConsumer = Consumer.create({
attributeNames: ['All'],
messageAttributeNames: ['All'],
queueUrl: this.queueUrl,
sqs: this.sqs,
preReceiveMessageCallback: this.startParentSpan.bind(this),
handleMessage: this.handleMessage.bind(this),
})
sqsConsumer.on('error', this.handleError.bind(this))
sqsConsumer.on('processing_error', this.handleError.bind(this))
sqsConsumer.start()
}
async startParentSpan(): Promise<void> {
const tracer = OpenTelemetryApi.trace.getTracer(`${this.serviceName}-domain-event-subscriber`)
this.currentSpan = tracer.startSpan(this.serviceName, { kind: OpenTelemetryApi.SpanKind.CONSUMER })
}
async handleMessage(message: Message): Promise<void> {
await this.domainEventMessageHandler.handleMessage(<string>message.Body)
if (this.currentSpan) {
this.currentSpan.end()
this.currentSpan = undefined
}
}
handleError(error: Error): void {
this.logger.error('Error occured while handling SQS message: %O', error)
if (this.currentSpan) {
this.currentSpan.recordException(error)
this.currentSpan.end()
this.currentSpan = undefined
}
}
}

View File

@@ -1,56 +0,0 @@
import { Logger } from 'winston'
import * as zlib from 'zlib'
import {
DomainEventHandlerInterface,
DomainEventInterface,
DomainEventMessageHandlerInterface,
} from '@standardnotes/domain-events'
import { OpenTelemetryTracer } from '../OpenTelemetry/OpenTelemetryTracer'
import { OpenTelemetryTracerInterface } from '../OpenTelemetry/OpenTelemetryTracerInterface'
export class SQSOpenTelemetryEventMessageHandler implements DomainEventMessageHandlerInterface {
private tracer: OpenTelemetryTracerInterface | undefined
constructor(
private serviceName: string,
private handlers: Map<string, DomainEventHandlerInterface>,
private logger: Logger,
) {}
async handleMessage(message: string): Promise<void> {
const messageParsed = JSON.parse(message)
const domainEventJson = zlib.unzipSync(Buffer.from(messageParsed.Message, 'base64')).toString()
const domainEvent: DomainEventInterface = JSON.parse(domainEventJson)
domainEvent.createdAt = new Date(domainEvent.createdAt)
const handler = this.handlers.get(domainEvent.type)
if (!handler) {
this.logger.debug(`Event handler for event type ${domainEvent.type} does not exist`)
return
}
this.logger.debug(`Received event: ${domainEvent.type}`)
this.tracer = new OpenTelemetryTracer()
this.tracer.startSpan(this.serviceName, domainEvent.type)
try {
await handler.handle(domainEvent)
} catch (error) {
this.tracer.stopSpanWithError(error as Error)
throw error
}
this.tracer.stopSpan()
}
async handleError(error: Error): Promise<void> {
this.logger.error('Error occured while handling SQS message: %O', error)
}
}

View File

@@ -17,4 +17,4 @@ export * from './SNS/SNSOpenTelemetryDomainEventPublisher'
export * from './SQS/SQSBounceNotificiationHandler'
export * from './SQS/SQSDomainEventSubscriberFactory'
export * from './SQS/SQSEventMessageHandler'
export * from './SQS/SQSOpenTelemetryEventMessageHandler'
export * from './SQS/SQSOpenTelemetryDomainEventSubscriber'

View File

@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## [1.13.14](https://github.com/standardnotes/server/compare/@standardnotes/event-store@1.13.13...@standardnotes/event-store@1.13.14) (2023-10-18)
**Note:** Version bump only for package @standardnotes/event-store
## [1.13.13](https://github.com/standardnotes/server/compare/@standardnotes/event-store@1.13.12...@standardnotes/event-store@1.13.13) (2023-10-17)
**Note:** Version bump only for package @standardnotes/event-store
## [1.13.12](https://github.com/standardnotes/server/compare/@standardnotes/event-store@1.13.11...@standardnotes/event-store@1.13.12) (2023-10-13)
**Note:** Version bump only for package @standardnotes/event-store

View File

@@ -1,6 +1,6 @@
{
"name": "@standardnotes/event-store",
"version": "1.13.12",
"version": "1.13.14",
"description": "Event Store Service",
"private": true,
"main": "dist/src/index.js",

View File

@@ -3,6 +3,16 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## [1.31.1](https://github.com/standardnotes/files/compare/@standardnotes/files-server@1.31.0...@standardnotes/files-server@1.31.1) (2023-10-18)
**Note:** Version bump only for package @standardnotes/files-server
# [1.31.0](https://github.com/standardnotes/files/compare/@standardnotes/files-server@1.30.7...@standardnotes/files-server@1.31.0) (2023-10-17)
### Features
* add wrapping sqs receive message with open telemetry ([aba4f90](https://github.com/standardnotes/files/commit/aba4f90485e1b40baac34561321a5381945aa27e))
## [1.30.7](https://github.com/standardnotes/files/compare/@standardnotes/files-server@1.30.6...@standardnotes/files-server@1.30.7) (2023-10-13)
### Bug Fixes

View File

@@ -11,7 +11,7 @@ import { Logger } from 'winston'
import { ContainerConfigLoader } from '../src/Bootstrap/Container'
import TYPES from '../src/Bootstrap/Types'
import { Env } from '../src/Bootstrap/Env'
import { DomainEventSubscriberFactoryInterface } from '@standardnotes/domain-events'
import { DomainEventSubscriberInterface } from '@standardnotes/domain-events'
import * as dayjs from 'dayjs'
import * as utc from 'dayjs/plugin/utc'
@@ -26,8 +26,7 @@ void container.load().then((container) => {
logger.info('Starting worker...')
const subscriberFactory: DomainEventSubscriberFactoryInterface = container.get(
TYPES.Files_DomainEventSubscriberFactory,
)
subscriberFactory.create().start()
const subscriber = container.get<DomainEventSubscriberInterface>(TYPES.Files_DomainEventSubscriber)
subscriber.start()
})

View File

@@ -1,6 +1,6 @@
{
"name": "@standardnotes/files-server",
"version": "1.30.7",
"version": "1.31.1",
"engines": {
"node": ">=18.0.0 <21.0.0"
},

View File

@@ -17,8 +17,8 @@ import {
DirectCallDomainEventPublisher,
DirectCallEventMessageHandler,
SNSOpenTelemetryDomainEventPublisher,
SQSDomainEventSubscriberFactory,
SQSEventMessageHandler,
SQSOpenTelemetryDomainEventSubscriber,
} from '@standardnotes/domain-events-infra'
import { StreamDownloadFile } from '../Domain/UseCase/StreamDownloadFile/StreamDownloadFile'
import { FileDownloaderInterface } from '../Domain/Services/FileDownloaderInterface'
@@ -40,7 +40,7 @@ import {
DomainEventHandlerInterface,
DomainEventMessageHandlerInterface,
DomainEventPublisherInterface,
DomainEventSubscriberFactoryInterface,
DomainEventSubscriberInterface,
} from '@standardnotes/domain-events'
import { MarkFilesToBeRemoved } from '../Domain/UseCase/MarkFilesToBeRemoved/MarkFilesToBeRemoved'
import { AccountDeletionRequestedEventHandler } from '../Domain/Handler/AccountDeletionRequestedEventHandler'
@@ -52,6 +52,7 @@ import { S3FileMover } from '../Infra/S3/S3FileMover'
import { FSFileMover } from '../Infra/FS/FSFileMover'
import { MoveFile } from '../Domain/UseCase/MoveFile/MoveFile'
import { SharedVaultValetTokenAuthMiddleware } from '../Infra/InversifyExpress/Middleware/SharedVaultValetTokenAuthMiddleware'
import { ServiceIdentifier } from '@standardnotes/domain-core'
export class ContainerConfigLoader {
async load(configuration?: {
@@ -298,12 +299,14 @@ export class ContainerConfigLoader {
.bind<DomainEventMessageHandlerInterface>(TYPES.Files_DomainEventMessageHandler)
.toConstantValue(new SQSEventMessageHandler(eventHandlers, container.get(TYPES.Files_Logger)))
container
.bind<DomainEventSubscriberFactoryInterface>(TYPES.Files_DomainEventSubscriberFactory)
.bind<DomainEventSubscriberInterface>(TYPES.Files_DomainEventSubscriber)
.toConstantValue(
new SQSDomainEventSubscriberFactory(
container.get(TYPES.Files_SQS),
container.get(TYPES.Files_SQS_QUEUE_URL),
container.get(TYPES.Files_DomainEventMessageHandler),
new SQSOpenTelemetryDomainEventSubscriber(
ServiceIdentifier.NAMES.FilesWorker,
container.get<SQSClient>(TYPES.Files_SQS),
container.get<string>(TYPES.Files_SQS_QUEUE_URL),
container.get<DomainEventMessageHandlerInterface>(TYPES.Files_DomainEventMessageHandler),
container.get<winston.Logger>(TYPES.Files_Logger),
),
)
}

View File

@@ -52,7 +52,7 @@ const TYPES = {
// Handlers
Files_DomainEventMessageHandler: Symbol.for('Files_DomainEventMessageHandler'),
Files_DomainEventSubscriberFactory: Symbol.for('Files_DomainEventSubscriberFactory'),
Files_DomainEventSubscriber: Symbol.for('Files_DomainEventSubscriber'),
Files_AccountDeletionRequestedEventHandler: Symbol.for('Files_AccountDeletionRequestedEventHandler'),
Files_SharedSubscriptionInvitationCanceledEventHandler: Symbol.for(
'Files_SharedSubscriptionInvitationCanceledEventHandler',

View File

@@ -3,6 +3,22 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## [1.17.17](https://github.com/standardnotes/server/compare/@standardnotes/home-server@1.17.16...@standardnotes/home-server@1.17.17) (2023-10-18)
**Note:** Version bump only for package @standardnotes/home-server
## [1.17.16](https://github.com/standardnotes/server/compare/@standardnotes/home-server@1.17.15...@standardnotes/home-server@1.17.16) (2023-10-17)
**Note:** Version bump only for package @standardnotes/home-server
## [1.17.15](https://github.com/standardnotes/server/compare/@standardnotes/home-server@1.17.14...@standardnotes/home-server@1.17.15) (2023-10-17)
**Note:** Version bump only for package @standardnotes/home-server
## [1.17.14](https://github.com/standardnotes/server/compare/@standardnotes/home-server@1.17.13...@standardnotes/home-server@1.17.14) (2023-10-16)
**Note:** Version bump only for package @standardnotes/home-server
## [1.17.13](https://github.com/standardnotes/server/compare/@standardnotes/home-server@1.17.12...@standardnotes/home-server@1.17.13) (2023-10-13)
**Note:** Version bump only for package @standardnotes/home-server

View File

@@ -1,6 +1,6 @@
{
"name": "@standardnotes/home-server",
"version": "1.17.13",
"version": "1.17.17",
"engines": {
"node": ">=18.0.0 <21.0.0"
},

View File

@@ -3,6 +3,16 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## [1.46.1](https://github.com/standardnotes/server/compare/@standardnotes/revisions-server@1.46.0...@standardnotes/revisions-server@1.46.1) (2023-10-18)
**Note:** Version bump only for package @standardnotes/revisions-server
# [1.46.0](https://github.com/standardnotes/server/compare/@standardnotes/revisions-server@1.45.7...@standardnotes/revisions-server@1.46.0) (2023-10-17)
### Features
* add wrapping sqs receive message with open telemetry ([aba4f90](https://github.com/standardnotes/server/commit/aba4f90485e1b40baac34561321a5381945aa27e))
## [1.45.7](https://github.com/standardnotes/server/compare/@standardnotes/revisions-server@1.45.6...@standardnotes/revisions-server@1.45.7) (2023-10-13)
### Bug Fixes

View File

@@ -10,7 +10,7 @@ import { Logger } from 'winston'
import TYPES from '../src/Bootstrap/Types'
import { Env } from '../src/Bootstrap/Env'
import { DomainEventSubscriberFactoryInterface } from '@standardnotes/domain-events'
import { DomainEventSubscriberInterface } from '@standardnotes/domain-events'
import { ContainerConfigLoader } from '../src/Bootstrap/Container'
const container = new ContainerConfigLoader('worker')
@@ -22,8 +22,7 @@ void container.load().then((container) => {
logger.info('Starting worker...')
const subscriberFactory: DomainEventSubscriberFactoryInterface = container.get(
TYPES.Revisions_DomainEventSubscriberFactory,
)
subscriberFactory.create().start()
const subscriber = container.get<DomainEventSubscriberInterface>(TYPES.Revisions_DomainEventSubscriber)
subscriber.start()
})

View File

@@ -1,6 +1,6 @@
{
"name": "@standardnotes/revisions-server",
"version": "1.45.7",
"version": "1.46.1",
"engines": {
"node": ">=18.0.0 <21.0.0"
},

View File

@@ -1,4 +1,9 @@
import { ControllerContainer, ControllerContainerInterface, MapperInterface } from '@standardnotes/domain-core'
import {
ControllerContainer,
ControllerContainerInterface,
MapperInterface,
ServiceIdentifier,
} from '@standardnotes/domain-core'
import Redis from 'ioredis'
import { Container, interfaces } from 'inversify'
import { MongoRepository, Repository } from 'typeorm'
@@ -26,15 +31,15 @@ import { SQSClient, SQSClientConfig } from '@aws-sdk/client-sqs'
import {
DomainEventMessageHandlerInterface,
DomainEventHandlerInterface,
DomainEventSubscriberFactoryInterface,
DomainEventPublisherInterface,
DomainEventSubscriberInterface,
} from '@standardnotes/domain-events'
import {
SQSEventMessageHandler,
SQSDomainEventSubscriberFactory,
DirectCallEventMessageHandler,
DirectCallDomainEventPublisher,
SNSOpenTelemetryDomainEventPublisher,
SQSOpenTelemetryDomainEventSubscriber,
} from '@standardnotes/domain-events-infra'
import { DumpRepositoryInterface } from '../Domain/Dump/DumpRepositoryInterface'
import { AccountDeletionRequestedEventHandler } from '../Domain/Handler/AccountDeletionRequestedEventHandler'
@@ -507,14 +512,16 @@ export class ContainerConfigLoader {
.toConstantValue(new SQSEventMessageHandler(eventHandlers, container.get(TYPES.Revisions_Logger)))
container
.bind<DomainEventSubscriberFactoryInterface>(TYPES.Revisions_DomainEventSubscriberFactory)
.toDynamicValue((context: interfaces.Context) => {
return new SQSDomainEventSubscriberFactory(
context.container.get(TYPES.Revisions_SQS),
context.container.get(TYPES.Revisions_SQS_QUEUE_URL),
context.container.get(TYPES.Revisions_DomainEventMessageHandler),
)
})
.bind<DomainEventSubscriberInterface>(TYPES.Revisions_DomainEventSubscriber)
.toConstantValue(
new SQSOpenTelemetryDomainEventSubscriber(
ServiceIdentifier.NAMES.RevisionsWorker,
container.get<SQSClient>(TYPES.Revisions_SQS),
container.get<string>(TYPES.Revisions_SQS_QUEUE_URL),
container.get<DomainEventMessageHandlerInterface>(TYPES.Revisions_DomainEventMessageHandler),
container.get<winston.Logger>(TYPES.Revisions_Logger),
),
)
}
// Inversify Controllers

View File

@@ -65,7 +65,7 @@ const TYPES = {
Revisions_SharedVaultRemovedEventHandler: Symbol.for('Revisions_SharedVaultRemovedEventHandler'),
// Services
Revisions_CrossServiceTokenDecoder: Symbol.for('Revisions_CrossServiceTokenDecoder'),
Revisions_DomainEventSubscriberFactory: Symbol.for('Revisions_DomainEventSubscriberFactory'),
Revisions_DomainEventSubscriber: Symbol.for('Revisions_DomainEventSubscriber'),
Revisions_DomainEventMessageHandler: Symbol.for('Revisions_DomainEventMessageHandler'),
Revisions_DomainEventPublisher: Symbol.for('Revisions_DomainEventPublisher'),
Revisions_DomainEventFactory: Symbol.for('Revisions_DomainEventFactory'),

View File

@@ -3,6 +3,16 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## [1.26.1](https://github.com/standardnotes/server/compare/@standardnotes/scheduler-server@1.26.0...@standardnotes/scheduler-server@1.26.1) (2023-10-18)
**Note:** Version bump only for package @standardnotes/scheduler-server
# [1.26.0](https://github.com/standardnotes/server/compare/@standardnotes/scheduler-server@1.25.7...@standardnotes/scheduler-server@1.26.0) (2023-10-17)
### Features
* add wrapping sqs receive message with open telemetry ([aba4f90](https://github.com/standardnotes/server/commit/aba4f90485e1b40baac34561321a5381945aa27e))
## [1.25.7](https://github.com/standardnotes/server/compare/@standardnotes/scheduler-server@1.25.6...@standardnotes/scheduler-server@1.25.7) (2023-10-13)
### Bug Fixes

View File

@@ -7,7 +7,7 @@ const sdk = new OpenTelemetrySDK({ serviceName: ServiceIdentifier.NAMES.Schedule
sdk.start()
import { Logger } from 'winston'
import { DomainEventSubscriberFactoryInterface } from '@standardnotes/domain-events'
import { DomainEventSubscriberInterface } from '@standardnotes/domain-events'
import * as dayjs from 'dayjs'
import * as utc from 'dayjs/plugin/utc'
@@ -26,6 +26,7 @@ void container.load().then((container) => {
logger.info('Starting worker...')
const subscriberFactory: DomainEventSubscriberFactoryInterface = container.get(TYPES.DomainEventSubscriberFactory)
subscriberFactory.create().start()
const subscriber = container.get<DomainEventSubscriberInterface>(TYPES.DomainEventSubscriber)
subscriber.start()
})

View File

@@ -1,6 +1,6 @@
{
"name": "@standardnotes/scheduler-server",
"version": "1.25.7",
"version": "1.26.1",
"engines": {
"node": ">=18.0.0 <21.0.0"
},

View File

@@ -7,7 +7,7 @@ import {
DomainEventHandlerInterface,
DomainEventMessageHandlerInterface,
DomainEventPublisherInterface,
DomainEventSubscriberFactoryInterface,
DomainEventSubscriberInterface,
} from '@standardnotes/domain-events'
import { Env } from './Env'
@@ -16,8 +16,8 @@ import { AppDataSource } from './DataSource'
import { DomainEventFactory } from '../Domain/Event/DomainEventFactory'
import {
SNSOpenTelemetryDomainEventPublisher,
SQSDomainEventSubscriberFactory,
SQSEventMessageHandler,
SQSOpenTelemetryDomainEventSubscriber,
} from '@standardnotes/domain-events-infra'
import { Timer, TimerInterface } from '@standardnotes/time'
import { PredicateRepositoryInterface } from '../Domain/Predicate/PredicateRepositoryInterface'
@@ -35,6 +35,7 @@ import { VerifyPredicates } from '../Domain/UseCase/VerifyPredicates/VerifyPredi
import { UserRegisteredEventHandler } from '../Domain/Handler/UserRegisteredEventHandler'
import { SubscriptionCancelledEventHandler } from '../Domain/Handler/SubscriptionCancelledEventHandler'
import { ExitDiscountAppliedEventHandler } from '../Domain/Handler/ExitDiscountAppliedEventHandler'
import { ServiceIdentifier } from '@standardnotes/domain-core'
export class ContainerConfigLoader {
async load(): Promise<Container> {
@@ -150,12 +151,14 @@ export class ContainerConfigLoader {
.bind<DomainEventMessageHandlerInterface>(TYPES.DomainEventMessageHandler)
.toConstantValue(new SQSEventMessageHandler(eventHandlers, container.get(TYPES.Logger)))
container
.bind<DomainEventSubscriberFactoryInterface>(TYPES.DomainEventSubscriberFactory)
.bind<DomainEventSubscriberInterface>(TYPES.DomainEventSubscriber)
.toConstantValue(
new SQSDomainEventSubscriberFactory(
container.get(TYPES.SQS),
container.get(TYPES.SQS_QUEUE_URL),
container.get(TYPES.DomainEventMessageHandler),
new SQSOpenTelemetryDomainEventSubscriber(
ServiceIdentifier.NAMES.SchedulerWorker,
container.get<SQSClient>(TYPES.SQS),
container.get<string>(TYPES.SQS_QUEUE_URL),
container.get<DomainEventMessageHandlerInterface>(TYPES.DomainEventMessageHandler),
container.get<winston.Logger>(TYPES.Logger),
),
)

View File

@@ -25,7 +25,7 @@ const TYPES = {
ExitDiscountAppliedEventHandler: Symbol.for('ExitDiscountAppliedEventHandler'),
// Services
DomainEventPublisher: Symbol.for('DomainEventPublisher'),
DomainEventSubscriberFactory: Symbol.for('DomainEventSubscriberFactory'),
DomainEventSubscriber: Symbol.for('DomainEventSubscriber'),
DomainEventFactory: Symbol.for('DomainEventFactory'),
DomainEventMessageHandler: Symbol.for('DomainEventMessageHandler'),
Timer: Symbol.for('Timer'),

View File

@@ -3,6 +3,20 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## [1.118.1](https://github.com/standardnotes/syncing-server-js/compare/@standardnotes/syncing-server@1.118.0...@standardnotes/syncing-server@1.118.1) (2023-10-18)
**Note:** Version bump only for package @standardnotes/syncing-server
# [1.118.0](https://github.com/standardnotes/syncing-server-js/compare/@standardnotes/syncing-server@1.117.7...@standardnotes/syncing-server@1.118.0) (2023-10-17)
### Bug Fixes
* **syncing-server:** binding ([5b06ea9](https://github.com/standardnotes/syncing-server-js/commit/5b06ea94f9734c1a82549235058b7f63c7665fb7))
### Features
* add wrapping sqs receive message with open telemetry ([aba4f90](https://github.com/standardnotes/syncing-server-js/commit/aba4f90485e1b40baac34561321a5381945aa27e))
## [1.117.7](https://github.com/standardnotes/syncing-server-js/compare/@standardnotes/syncing-server@1.117.6...@standardnotes/syncing-server@1.117.7) (2023-10-13)
### Bug Fixes

View File

@@ -10,7 +10,7 @@ import { Logger } from 'winston'
import TYPES from '../src/Bootstrap/Types'
import { Env } from '../src/Bootstrap/Env'
import { DomainEventSubscriberFactoryInterface } from '@standardnotes/domain-events'
import { DomainEventSubscriberInterface } from '@standardnotes/domain-events'
import { ContainerConfigLoader } from '../src/Bootstrap/Container'
const container = new ContainerConfigLoader('worker')
@@ -20,11 +20,9 @@ void container.load().then((container) => {
const logger: Logger = container.get(TYPES.Sync_Logger)
const subscriberFactory: DomainEventSubscriberFactoryInterface = container.get(
TYPES.Sync_DomainEventSubscriberFactory,
)
logger.info('Starting worker...')
subscriberFactory.create().start()
const subscriber = container.get<DomainEventSubscriberInterface>(TYPES.Sync_DomainEventSubscriber)
subscriber.start()
})

View File

@@ -1,6 +1,6 @@
{
"name": "@standardnotes/syncing-server",
"version": "1.117.7",
"version": "1.118.1",
"engines": {
"node": ">=18.0.0 <21.0.0"
},

View File

@@ -14,8 +14,8 @@ import {
DirectCallDomainEventPublisher,
DirectCallEventMessageHandler,
SNSOpenTelemetryDomainEventPublisher,
SQSDomainEventSubscriberFactory,
SQSEventMessageHandler,
SQSOpenTelemetryDomainEventSubscriber,
} from '@standardnotes/domain-events-infra'
import { DomainEventFactoryInterface } from '../Domain/Event/DomainEventFactoryInterface'
import { DomainEventFactory } from '../Domain/Event/DomainEventFactory'
@@ -43,8 +43,8 @@ import { ContentDecoder, ContentDecoderInterface } from '@standardnotes/common'
import {
DomainEventMessageHandlerInterface,
DomainEventHandlerInterface,
DomainEventSubscriberFactoryInterface,
DomainEventPublisherInterface,
DomainEventSubscriberInterface,
} from '@standardnotes/domain-events'
import axios, { AxiosInstance } from 'axios'
import { ExtensionsHttpService } from '../Domain/Extension/ExtensionsHttpService'
@@ -60,6 +60,7 @@ import {
ControllerContainer,
ControllerContainerInterface,
MapperInterface,
ServiceIdentifier,
SharedVaultUser,
} from '@standardnotes/domain-core'
import { BaseItemsController } from '../Infra/InversifyExpressUtils/Base/BaseItemsController'
@@ -288,24 +289,20 @@ export class ContainerConfigLoader {
)
})
container.bind<SQSClient>(TYPES.Sync_SQS).toDynamicValue((context: interfaces.Context) => {
const env: Env = context.container.get(TYPES.Sync_Env)
const sqsConfig: SQSClientConfig = {
region: env.get('SQS_AWS_REGION'),
const sqsConfig: SQSClientConfig = {
region: env.get('SQS_AWS_REGION', true),
}
if (env.get('SQS_ENDPOINT', true)) {
sqsConfig.endpoint = env.get('SQS_ENDPOINT', true)
}
if (env.get('SQS_ACCESS_KEY_ID', true) && env.get('SQS_SECRET_ACCESS_KEY', true)) {
sqsConfig.credentials = {
accessKeyId: env.get('SQS_ACCESS_KEY_ID', true),
secretAccessKey: env.get('SQS_SECRET_ACCESS_KEY', true),
}
if (env.get('SQS_ENDPOINT', true)) {
sqsConfig.endpoint = env.get('SQS_ENDPOINT', true)
}
if (env.get('SQS_ACCESS_KEY_ID', true) && env.get('SQS_SECRET_ACCESS_KEY', true)) {
sqsConfig.credentials = {
accessKeyId: env.get('SQS_ACCESS_KEY_ID', true),
secretAccessKey: env.get('SQS_SECRET_ACCESS_KEY', true),
}
}
return new SQSClient(sqsConfig)
})
}
const sqsClient = new SQSClient(sqsConfig)
container.bind<SQSClient>(TYPES.Sync_SQS).toConstantValue(sqsClient)
container.bind<S3Client | undefined>(TYPES.Sync_S3).toDynamicValue((context: interfaces.Context) => {
const env: Env = context.container.get(TYPES.Sync_Env)
@@ -1137,17 +1134,19 @@ export class ContainerConfigLoader {
container
.bind<DomainEventMessageHandlerInterface>(TYPES.Sync_DomainEventMessageHandler)
.toConstantValue(new SQSEventMessageHandler(eventHandlers, container.get(TYPES.Sync_Logger)))
}
container
.bind<DomainEventSubscriberFactoryInterface>(TYPES.Sync_DomainEventSubscriberFactory)
.toDynamicValue((context: interfaces.Context) => {
return new SQSDomainEventSubscriberFactory(
context.container.get(TYPES.Sync_SQS),
context.container.get(TYPES.Sync_SQS_QUEUE_URL),
context.container.get(TYPES.Sync_DomainEventMessageHandler),
container
.bind<DomainEventSubscriberInterface>(TYPES.Sync_DomainEventSubscriber)
.toConstantValue(
new SQSOpenTelemetryDomainEventSubscriber(
ServiceIdentifier.NAMES.SyncingServerWorker,
container.get<SQSClient>(TYPES.Sync_SQS),
container.get<string>(TYPES.Sync_SQS_QUEUE_URL),
container.get<DomainEventMessageHandlerInterface>(TYPES.Sync_DomainEventMessageHandler),
container.get<Logger>(TYPES.Sync_Logger),
),
)
})
}
container
.bind<ControllerContainerInterface>(TYPES.Sync_ControllerContainer)

View File

@@ -105,7 +105,7 @@ const TYPES = {
// Services
Sync_ContentDecoder: Symbol.for('Sync_ContentDecoder'),
Sync_DomainEventPublisher: Symbol.for('Sync_DomainEventPublisher'),
Sync_DomainEventSubscriberFactory: Symbol.for('Sync_DomainEventSubscriberFactory'),
Sync_DomainEventSubscriber: Symbol.for('Sync_DomainEventSubscriber'),
Sync_DomainEventFactory: Symbol.for('Sync_DomainEventFactory'),
Sync_DomainEventMessageHandler: Symbol.for('Sync_DomainEventMessageHandler'),
Sync_HTTPClient: Symbol.for('Sync_HTTPClient'),

View File

@@ -3,6 +3,16 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## [1.17.1](https://github.com/standardnotes/server/compare/@standardnotes/websockets-server@1.17.0...@standardnotes/websockets-server@1.17.1) (2023-10-18)
**Note:** Version bump only for package @standardnotes/websockets-server
# [1.17.0](https://github.com/standardnotes/server/compare/@standardnotes/websockets-server@1.16.7...@standardnotes/websockets-server@1.17.0) (2023-10-17)
### Features
* add wrapping sqs receive message with open telemetry ([aba4f90](https://github.com/standardnotes/server/commit/aba4f90485e1b40baac34561321a5381945aa27e))
## [1.16.7](https://github.com/standardnotes/server/compare/@standardnotes/websockets-server@1.16.6...@standardnotes/websockets-server@1.16.7) (2023-10-13)
### Bug Fixes

View File

@@ -11,7 +11,7 @@ import { Logger } from 'winston'
import { ContainerConfigLoader } from '../src/Bootstrap/Container'
import TYPES from '../src/Bootstrap/Types'
import { Env } from '../src/Bootstrap/Env'
import { DomainEventSubscriberFactoryInterface } from '@standardnotes/domain-events'
import { DomainEventSubscriberInterface } from '@standardnotes/domain-events'
const container = new ContainerConfigLoader()
void container.load().then((container) => {
@@ -22,6 +22,7 @@ void container.load().then((container) => {
logger.info('Starting worker...')
const subscriberFactory: DomainEventSubscriberFactoryInterface = container.get(TYPES.DomainEventSubscriberFactory)
subscriberFactory.create().start()
const subscriber = container.get<DomainEventSubscriberInterface>(TYPES.DomainEventSubscriber)
subscriber.start()
})

View File

@@ -1,6 +1,6 @@
{
"name": "@standardnotes/websockets-server",
"version": "1.16.7",
"version": "1.17.1",
"engines": {
"node": ">=18.0.0 <21.0.0"
},

View File

@@ -9,7 +9,7 @@ import { Container } from 'inversify'
import {
DomainEventHandlerInterface,
DomainEventMessageHandlerInterface,
DomainEventSubscriberFactoryInterface,
DomainEventSubscriberInterface,
} from '@standardnotes/domain-events'
import { Env } from './Env'
import TYPES from './Types'
@@ -18,7 +18,7 @@ import { RedisWebSocketsConnectionRepository } from '../Infra/Redis/RedisWebSock
import { AddWebSocketsConnection } from '../Domain/UseCase/AddWebSocketsConnection/AddWebSocketsConnection'
import { RemoveWebSocketsConnection } from '../Domain/UseCase/RemoveWebSocketsConnection/RemoveWebSocketsConnection'
import { WebSocketsClientMessenger } from '../Infra/WebSockets/WebSocketsClientMessenger'
import { SQSDomainEventSubscriberFactory, SQSEventMessageHandler } from '@standardnotes/domain-events-infra'
import { SQSEventMessageHandler, SQSOpenTelemetryDomainEventSubscriber } from '@standardnotes/domain-events-infra'
import { ApiGatewayAuthMiddleware } from '../Controller/ApiGatewayAuthMiddleware'
import {
@@ -34,6 +34,7 @@ import { WebSocketsController } from '../Controller/WebSocketsController'
import { WebSocketServerInterface } from '@standardnotes/api'
import { ClientMessengerInterface } from '../Client/ClientMessengerInterface'
import { WebSocketMessageRequestedEventHandler } from '../Domain/Handler/WebSocketMessageRequestedEventHandler'
import { ServiceIdentifier } from '@standardnotes/domain-core'
export class ContainerConfigLoader {
async load(): Promise<Container> {
@@ -142,12 +143,14 @@ export class ContainerConfigLoader {
.bind<DomainEventMessageHandlerInterface>(TYPES.DomainEventMessageHandler)
.toConstantValue(new SQSEventMessageHandler(eventHandlers, container.get(TYPES.Logger)))
container
.bind<DomainEventSubscriberFactoryInterface>(TYPES.DomainEventSubscriberFactory)
.bind<DomainEventSubscriberInterface>(TYPES.DomainEventSubscriber)
.toConstantValue(
new SQSDomainEventSubscriberFactory(
container.get(TYPES.SQS),
container.get(TYPES.SQS_QUEUE_URL),
container.get(TYPES.DomainEventMessageHandler),
new SQSOpenTelemetryDomainEventSubscriber(
ServiceIdentifier.NAMES.WebsocketsWorker,
container.get<SQSClient>(TYPES.SQS),
container.get<string>(TYPES.SQS_QUEUE_URL),
container.get<DomainEventMessageHandlerInterface>(TYPES.DomainEventMessageHandler),
container.get<winston.Logger>(TYPES.Logger),
),
)

View File

@@ -27,7 +27,7 @@ const TYPES = {
// Services
CrossServiceTokenDecoder: Symbol.for('CrossServiceTokenDecoder'),
WebSocketConnectionTokenEncoder: Symbol.for('WebSocketConnectionTokenEncoder'),
DomainEventSubscriberFactory: Symbol.for('DomainEventSubscriberFactory'),
DomainEventSubscriber: Symbol.for('DomainEventSubscriber'),
DomainEventMessageHandler: Symbol.for('DomainEventMessageHandler'),
HTTPClient: Symbol.for('HTTPClient'),
WebSocketsClientMessenger: Symbol.for('WebSocketsClientMessenger'),

470
yarn.lock
View File

@@ -2832,12 +2832,12 @@ __metadata:
languageName: node
linkType: hard
"@opentelemetry/api-logs@npm:0.43.0":
version: 0.43.0
resolution: "@opentelemetry/api-logs@npm:0.43.0"
"@opentelemetry/api-logs@npm:0.44.0":
version: 0.44.0
resolution: "@opentelemetry/api-logs@npm:0.44.0"
dependencies:
"@opentelemetry/api": "npm:^1.0.0"
checksum: d6c34d8abb1142395fa22b04adbb4cf6558c069436bccd9ba1334a86bbe5900f56e1ee3b2d6bbe66d562aeeab682c1afafbd53e577269747a7bb5da9e226db95
checksum: 58fb110a4b4ad9700dbd9f4bcb96c9a8685da5e2eb94c8e6a117ed0afeee4cb5d0bd1538f14fad43e63b27ea1862df64aae9a3e6af3080886e06ed57f8291d90
languageName: node
linkType: hard
@@ -2848,12 +2848,12 @@ __metadata:
languageName: node
linkType: hard
"@opentelemetry/context-async-hooks@npm:1.17.0":
version: 1.17.0
resolution: "@opentelemetry/context-async-hooks@npm:1.17.0"
"@opentelemetry/context-async-hooks@npm:1.17.1":
version: 1.17.1
resolution: "@opentelemetry/context-async-hooks@npm:1.17.1"
peerDependencies:
"@opentelemetry/api": ">=1.0.0 <1.7.0"
checksum: 74688bdbe1390ee1bb49a5a6e9f33f7d8aa23e77be8d1ac2b6ccc1bfa15bf4a20bc059a42ff06636dee3b520a4abb985728e77c536077acca49c3faa90cbabba
checksum: c0e77552551d9e179adb2eea4a8e5ac16a8e0564992790fb57382e70e23f4e6c7f1f0d46f5a626cc4f847ee53b7af07e46828cb28f22c0edf7faa71fd156ca36
languageName: node
linkType: hard
@@ -2868,110 +2868,121 @@ __metadata:
languageName: node
linkType: hard
"@opentelemetry/exporter-jaeger@npm:1.17.0":
version: 1.17.0
resolution: "@opentelemetry/exporter-jaeger@npm:1.17.0"
"@opentelemetry/core@npm:1.17.1":
version: 1.17.1
resolution: "@opentelemetry/core@npm:1.17.1"
dependencies:
"@opentelemetry/core": "npm:1.17.0"
"@opentelemetry/sdk-trace-base": "npm:1.17.0"
"@opentelemetry/semantic-conventions": "npm:1.17.0"
"@opentelemetry/semantic-conventions": "npm:1.17.1"
peerDependencies:
"@opentelemetry/api": ">=1.0.0 <1.7.0"
checksum: c0be1257b7c7fce2f66d75aae15b7d20a5a6d73f1285ccf92704b6912f26f6c5133e67933ee8ee3d313cf26857b7f5a33facabc4352169bb93f9b2c06ed668b2
languageName: node
linkType: hard
"@opentelemetry/exporter-jaeger@npm:1.17.1":
version: 1.17.1
resolution: "@opentelemetry/exporter-jaeger@npm:1.17.1"
dependencies:
"@opentelemetry/core": "npm:1.17.1"
"@opentelemetry/sdk-trace-base": "npm:1.17.1"
"@opentelemetry/semantic-conventions": "npm:1.17.1"
jaeger-client: "npm:^3.15.0"
peerDependencies:
"@opentelemetry/api": ^1.0.0
checksum: 00a92253bca09e5ccfea5ceaf06ee686f2cb7e56ce7dae89a7cfe579053d4d215685a918c1c2aed32d1f9ac6d5cc8b266ff7f5743d7319bda086a254761826e8
checksum: 0f24736c70f922b5c25b47be4019b06e1edd105ade572594d02f95d693e71537d1c6188c35fae40c65680cc4e967c1bfd978748f42f0e27e5fea34d265f709de
languageName: node
linkType: hard
"@opentelemetry/exporter-metrics-otlp-http@npm:0.43.0":
version: 0.43.0
resolution: "@opentelemetry/exporter-metrics-otlp-http@npm:0.43.0"
"@opentelemetry/exporter-metrics-otlp-http@npm:0.44.0":
version: 0.44.0
resolution: "@opentelemetry/exporter-metrics-otlp-http@npm:0.44.0"
dependencies:
"@opentelemetry/core": "npm:1.17.0"
"@opentelemetry/otlp-exporter-base": "npm:0.43.0"
"@opentelemetry/otlp-transformer": "npm:0.43.0"
"@opentelemetry/resources": "npm:1.17.0"
"@opentelemetry/sdk-metrics": "npm:1.17.0"
"@opentelemetry/core": "npm:1.17.1"
"@opentelemetry/otlp-exporter-base": "npm:0.44.0"
"@opentelemetry/otlp-transformer": "npm:0.44.0"
"@opentelemetry/resources": "npm:1.17.1"
"@opentelemetry/sdk-metrics": "npm:1.17.1"
peerDependencies:
"@opentelemetry/api": ^1.3.0
checksum: 6ceff0681c1d172a22026d4db6da5989384add2734623afcaaf12ccfea172f847e7c6caa3cc2a9e94f99541591540ac5bcfac39ff1cd0b364c82d9e90cc84bba
checksum: 4d0810d2d52de25419618860b92949890274bb9d62f334fcfb752b4d91600de65dc5fb0e1da97b095dfa85c273090152dbf2729fb9624a542aa368d7b02aa348
languageName: node
linkType: hard
"@opentelemetry/exporter-metrics-otlp-proto@npm:^0.43.0":
version: 0.43.0
resolution: "@opentelemetry/exporter-metrics-otlp-proto@npm:0.43.0"
"@opentelemetry/exporter-metrics-otlp-proto@npm:^0.44.0":
version: 0.44.0
resolution: "@opentelemetry/exporter-metrics-otlp-proto@npm:0.44.0"
dependencies:
"@opentelemetry/core": "npm:1.17.0"
"@opentelemetry/exporter-metrics-otlp-http": "npm:0.43.0"
"@opentelemetry/otlp-exporter-base": "npm:0.43.0"
"@opentelemetry/otlp-proto-exporter-base": "npm:0.43.0"
"@opentelemetry/otlp-transformer": "npm:0.43.0"
"@opentelemetry/resources": "npm:1.17.0"
"@opentelemetry/sdk-metrics": "npm:1.17.0"
"@opentelemetry/core": "npm:1.17.1"
"@opentelemetry/exporter-metrics-otlp-http": "npm:0.44.0"
"@opentelemetry/otlp-exporter-base": "npm:0.44.0"
"@opentelemetry/otlp-proto-exporter-base": "npm:0.44.0"
"@opentelemetry/otlp-transformer": "npm:0.44.0"
"@opentelemetry/resources": "npm:1.17.1"
"@opentelemetry/sdk-metrics": "npm:1.17.1"
peerDependencies:
"@opentelemetry/api": ^1.3.0
checksum: b1aa317e99ddba431f4972efc4203f766696d867e6862944e268ee4b8e02044b18b357ef2ae8cf20556326886ec4109054c67efa05a1728480daec5abe2b2425
checksum: 6a90adc5f492b82acdf981c4705a8218ea68114a2d3186863d2197a55604353f654c5d5b3b30f45540dbe9405c1668c770aeddba4bf0cb43ad424ea12ede9616
languageName: node
linkType: hard
"@opentelemetry/exporter-trace-otlp-grpc@npm:0.43.0, @opentelemetry/exporter-trace-otlp-grpc@npm:^0.43.0":
version: 0.43.0
resolution: "@opentelemetry/exporter-trace-otlp-grpc@npm:0.43.0"
"@opentelemetry/exporter-trace-otlp-grpc@npm:0.44.0, @opentelemetry/exporter-trace-otlp-grpc@npm:^0.44.0":
version: 0.44.0
resolution: "@opentelemetry/exporter-trace-otlp-grpc@npm:0.44.0"
dependencies:
"@grpc/grpc-js": "npm:^1.7.1"
"@opentelemetry/core": "npm:1.17.0"
"@opentelemetry/otlp-grpc-exporter-base": "npm:0.43.0"
"@opentelemetry/otlp-transformer": "npm:0.43.0"
"@opentelemetry/resources": "npm:1.17.0"
"@opentelemetry/sdk-trace-base": "npm:1.17.0"
"@opentelemetry/core": "npm:1.17.1"
"@opentelemetry/otlp-grpc-exporter-base": "npm:0.44.0"
"@opentelemetry/otlp-transformer": "npm:0.44.0"
"@opentelemetry/resources": "npm:1.17.1"
"@opentelemetry/sdk-trace-base": "npm:1.17.1"
peerDependencies:
"@opentelemetry/api": ^1.0.0
checksum: 82f58b0451d79356e6a9dae3d3bff1a7ea0bbac6726f831971783563c7b9599270f8afcb73e9757dce20202982142593246ff54153c27c92b51cf972ad31ca93
checksum: c2957ecfc2f97009311b7ed5b9f9d30a63135a6ab7175c7b90ea160143f20e1b3a24f2e13ce66d7b73ec4717c3b5c420361e7485870c06fed708423515d939f4
languageName: node
linkType: hard
"@opentelemetry/exporter-trace-otlp-http@npm:0.43.0":
version: 0.43.0
resolution: "@opentelemetry/exporter-trace-otlp-http@npm:0.43.0"
"@opentelemetry/exporter-trace-otlp-http@npm:0.44.0":
version: 0.44.0
resolution: "@opentelemetry/exporter-trace-otlp-http@npm:0.44.0"
dependencies:
"@opentelemetry/core": "npm:1.17.0"
"@opentelemetry/otlp-exporter-base": "npm:0.43.0"
"@opentelemetry/otlp-transformer": "npm:0.43.0"
"@opentelemetry/resources": "npm:1.17.0"
"@opentelemetry/sdk-trace-base": "npm:1.17.0"
"@opentelemetry/core": "npm:1.17.1"
"@opentelemetry/otlp-exporter-base": "npm:0.44.0"
"@opentelemetry/otlp-transformer": "npm:0.44.0"
"@opentelemetry/resources": "npm:1.17.1"
"@opentelemetry/sdk-trace-base": "npm:1.17.1"
peerDependencies:
"@opentelemetry/api": ^1.0.0
checksum: f90faf5b14f9e3c299d504889357ff84977c70c7a34d581e84040d66574cd297b26d3401df803ab2d1235305bd3e2a571453b611a75b25fa60510c7be7e1eb46
checksum: 9b451a49bf13b6ff2e7d382cb95d0c0a14d71df4fc77b2c366c00c5fb5b371e1fb8cbeaa79b29ffec0eb32d6f00581d305b4250cf2db823a9c1aa60dd8c11954
languageName: node
linkType: hard
"@opentelemetry/exporter-trace-otlp-proto@npm:0.43.0":
version: 0.43.0
resolution: "@opentelemetry/exporter-trace-otlp-proto@npm:0.43.0"
"@opentelemetry/exporter-trace-otlp-proto@npm:0.44.0":
version: 0.44.0
resolution: "@opentelemetry/exporter-trace-otlp-proto@npm:0.44.0"
dependencies:
"@opentelemetry/core": "npm:1.17.0"
"@opentelemetry/otlp-exporter-base": "npm:0.43.0"
"@opentelemetry/otlp-proto-exporter-base": "npm:0.43.0"
"@opentelemetry/otlp-transformer": "npm:0.43.0"
"@opentelemetry/resources": "npm:1.17.0"
"@opentelemetry/sdk-trace-base": "npm:1.17.0"
"@opentelemetry/core": "npm:1.17.1"
"@opentelemetry/otlp-exporter-base": "npm:0.44.0"
"@opentelemetry/otlp-proto-exporter-base": "npm:0.44.0"
"@opentelemetry/otlp-transformer": "npm:0.44.0"
"@opentelemetry/resources": "npm:1.17.1"
"@opentelemetry/sdk-trace-base": "npm:1.17.1"
peerDependencies:
"@opentelemetry/api": ^1.0.0
checksum: a1e00a9bf5dec07d3cdde96fe9e762a2373ca8926a5d5fde443b137898edf5d4954626c5da1d1d94723a896ddbe9b6dd6a3d563bfff2c08ec8fe009a6aae6705
checksum: 19c869d8d9ad09ac2bddba5bac1364b5a4217302c7beeea894fc8269905b18824992e969b3deb0e554a53fb370254bf60eada76644f359874484d90be6cf4776
languageName: node
linkType: hard
"@opentelemetry/exporter-zipkin@npm:1.17.0":
version: 1.17.0
resolution: "@opentelemetry/exporter-zipkin@npm:1.17.0"
"@opentelemetry/exporter-zipkin@npm:1.17.1":
version: 1.17.1
resolution: "@opentelemetry/exporter-zipkin@npm:1.17.1"
dependencies:
"@opentelemetry/core": "npm:1.17.0"
"@opentelemetry/resources": "npm:1.17.0"
"@opentelemetry/sdk-trace-base": "npm:1.17.0"
"@opentelemetry/semantic-conventions": "npm:1.17.0"
"@opentelemetry/core": "npm:1.17.1"
"@opentelemetry/resources": "npm:1.17.1"
"@opentelemetry/sdk-trace-base": "npm:1.17.1"
"@opentelemetry/semantic-conventions": "npm:1.17.1"
peerDependencies:
"@opentelemetry/api": ^1.0.0
checksum: 4728abe86096351f49b83bb9d603f2400f9b2be39d615ac027b85839d02366f9b1c537538c3446be31606418fbd8ca767ac80e64b1252d389b41bedd8ddbc01b
checksum: a3978ff372d68486d519b9d543610623aa8c9b07561894c5b0147ba1c72377a16e4f64d78c78f5fb0f0512fb18fdeae2aac384d0393929f3a4ec8aee80af9f04
languageName: node
linkType: hard
@@ -2986,76 +2997,76 @@ __metadata:
languageName: node
linkType: hard
"@opentelemetry/instrumentation-aws-sdk@npm:^0.36.0":
version: 0.36.0
resolution: "@opentelemetry/instrumentation-aws-sdk@npm:0.36.0"
"@opentelemetry/instrumentation-aws-sdk@npm:^0.36.1":
version: 0.36.1
resolution: "@opentelemetry/instrumentation-aws-sdk@npm:0.36.1"
dependencies:
"@opentelemetry/core": "npm:^1.8.0"
"@opentelemetry/instrumentation": "npm:^0.41.2"
"@opentelemetry/propagation-utils": "npm:^0.30.1"
"@opentelemetry/instrumentation": "npm:^0.44.0"
"@opentelemetry/propagation-utils": "npm:^0.30.2"
"@opentelemetry/semantic-conventions": "npm:^1.0.0"
peerDependencies:
"@opentelemetry/api": ^1.3.0
checksum: b0128963a3705f3c73630aad4a04a7ae043fca644d4cf706a494c146a365b61d49059e77db06cd0fba32f672bd2cbd69150be830256e8d05bf0521387e0043b0
checksum: 62afff194c72d717f8884f784e58deec4abb79628b83907d2551cea11be2afbe180c8e000c3e1a93b3a077f6b6be9a82012fd885971074a3bac98033632ff6f6
languageName: node
linkType: hard
"@opentelemetry/instrumentation-express@npm:^0.33.1":
version: 0.33.1
resolution: "@opentelemetry/instrumentation-express@npm:0.33.1"
"@opentelemetry/instrumentation-express@npm:^0.33.2":
version: 0.33.2
resolution: "@opentelemetry/instrumentation-express@npm:0.33.2"
dependencies:
"@opentelemetry/core": "npm:^1.8.0"
"@opentelemetry/instrumentation": "npm:^0.41.2"
"@opentelemetry/instrumentation": "npm:^0.44.0"
"@opentelemetry/semantic-conventions": "npm:^1.0.0"
"@types/express": "npm:4.17.17"
"@types/express": "npm:4.17.18"
peerDependencies:
"@opentelemetry/api": ^1.3.0
checksum: 17dfb5ba508380a855a136553b5cc1f0abbe0220b272e358b6753870cd979bad5e1b7c45dad36b2d3b6e04247687f3d54cb295d3fb8e62b1f82c6947e70f4caf
checksum: 9edad514935185dbd49da0ff79a7b0faf529dc027168a07e4458b335ae5f01571bd8509edd69957a75866841f3a7a1f7012db5dadca6ab2002dab6584aa58c3e
languageName: node
linkType: hard
"@opentelemetry/instrumentation-http@npm:^0.43.0":
version: 0.43.0
resolution: "@opentelemetry/instrumentation-http@npm:0.43.0"
"@opentelemetry/instrumentation-http@npm:^0.44.0":
version: 0.44.0
resolution: "@opentelemetry/instrumentation-http@npm:0.44.0"
dependencies:
"@opentelemetry/core": "npm:1.17.0"
"@opentelemetry/instrumentation": "npm:0.43.0"
"@opentelemetry/semantic-conventions": "npm:1.17.0"
"@opentelemetry/core": "npm:1.17.1"
"@opentelemetry/instrumentation": "npm:0.44.0"
"@opentelemetry/semantic-conventions": "npm:1.17.1"
semver: "npm:^7.5.2"
peerDependencies:
"@opentelemetry/api": ^1.3.0
checksum: 04f8be1648ade69d500e0cb4d67c8fe0b5f0d4099e6fafa9e77e3e7072bcdf102a303983bb1b1f30849dfc07971fe943005364796390bd8a28000f128baa8187
checksum: be8dd2dadab0f84090fca5fffc0a5b137f90db56f7a4df05a8d52528c2a2b17f3d5bdb900826659cafde1034b3c6b348c60bf87976bc8f35d5a26af638013f90
languageName: node
linkType: hard
"@opentelemetry/instrumentation-ioredis@npm:^0.35.1":
version: 0.35.1
resolution: "@opentelemetry/instrumentation-ioredis@npm:0.35.1"
"@opentelemetry/instrumentation-ioredis@npm:^0.35.2":
version: 0.35.2
resolution: "@opentelemetry/instrumentation-ioredis@npm:0.35.2"
dependencies:
"@opentelemetry/instrumentation": "npm:^0.41.2"
"@opentelemetry/instrumentation": "npm:^0.44.0"
"@opentelemetry/redis-common": "npm:^0.36.1"
"@opentelemetry/semantic-conventions": "npm:^1.0.0"
"@types/ioredis4": "npm:@types/ioredis@^4.28.10"
peerDependencies:
"@opentelemetry/api": ^1.3.0
checksum: 8345ef7567128d674a1262ed64c03e6b7f7442564622ce680a98ebea038822209b1e829134df07eadf0cfdd3a368880e43ea7e3c9117980fc378c31a4bc044fd
checksum: 5f7f0400c1518cffc235a50963fd1749ed8bbc85f6f5b0b5b7029db72761443d8a1ae7177355e6da38a9a3e116a06b3b4ce0dc43ae6c0edf66097cbc0bee9e00
languageName: node
linkType: hard
"@opentelemetry/instrumentation-winston@npm:^0.32.1":
version: 0.32.1
resolution: "@opentelemetry/instrumentation-winston@npm:0.32.1"
"@opentelemetry/instrumentation-winston@npm:^0.32.2":
version: 0.32.2
resolution: "@opentelemetry/instrumentation-winston@npm:0.32.2"
dependencies:
"@opentelemetry/instrumentation": "npm:^0.41.2"
"@opentelemetry/instrumentation": "npm:^0.44.0"
peerDependencies:
"@opentelemetry/api": ^1.3.0
checksum: 2292411336811689815165a2299d4c2cc1fb77c7f9b8d044ff77fb17a29d0be850472c7a9d4be4c6bee2f4c2bd49a66d34cde1875d0c59f7727a0480e6f1143c
checksum: c54871cce71cd31a49d68031a9e44cd0591e81c1d765d280b6c0d76498897dada4cff12315188374f110d9c69427709edf680acefc66da6618be5af7ed71989e
languageName: node
linkType: hard
"@opentelemetry/instrumentation@npm:0.43.0":
version: 0.43.0
resolution: "@opentelemetry/instrumentation@npm:0.43.0"
"@opentelemetry/instrumentation@npm:0.44.0, @opentelemetry/instrumentation@npm:^0.44.0":
version: 0.44.0
resolution: "@opentelemetry/instrumentation@npm:0.44.0"
dependencies:
"@types/shimmer": "npm:^1.0.2"
import-in-the-middle: "npm:1.4.2"
@@ -3064,11 +3075,11 @@ __metadata:
shimmer: "npm:^1.2.1"
peerDependencies:
"@opentelemetry/api": ^1.3.0
checksum: 776d566dc42154b9161797d7489c5e3697abe761537a103fd19d9e2221931076fbbe9c6ddd16696fa39c16feae2e75deedc2d3ed75d82abc0506ef1299557992
checksum: 05bbbbfc56acc295909955789daca07a22a62c436f2bd54c40f8749584254e1b6d1f1f886a043e5a4579827c6feea483a768a8e9d8cc8f3d0706a3cb6fd2ab21
languageName: node
linkType: hard
"@opentelemetry/instrumentation@npm:^0.41.0, @opentelemetry/instrumentation@npm:^0.41.2":
"@opentelemetry/instrumentation@npm:^0.41.0":
version: 0.41.2
resolution: "@opentelemetry/instrumentation@npm:0.41.2"
dependencies:
@@ -3083,66 +3094,66 @@ __metadata:
languageName: node
linkType: hard
"@opentelemetry/otlp-exporter-base@npm:0.43.0":
version: 0.43.0
resolution: "@opentelemetry/otlp-exporter-base@npm:0.43.0"
"@opentelemetry/otlp-exporter-base@npm:0.44.0":
version: 0.44.0
resolution: "@opentelemetry/otlp-exporter-base@npm:0.44.0"
dependencies:
"@opentelemetry/core": "npm:1.17.0"
"@opentelemetry/core": "npm:1.17.1"
peerDependencies:
"@opentelemetry/api": ^1.0.0
checksum: 9565c55fedcd66cf3a43a0a63bb02f89d956bd9955552d008a1ce71eec38424d4fdccc43e9f502898bb4e36a7368a6e344d3432c5dcd307da75c5bbbc93406eb
checksum: 4967a6157b48412ed56488fd019f43135f94592f9be88a13fac606567983ba61ae2bf345ae0395ab068552b7b65d761c7d32bdc6323c1d05362eb9e015f6dbb6
languageName: node
linkType: hard
"@opentelemetry/otlp-grpc-exporter-base@npm:0.43.0":
version: 0.43.0
resolution: "@opentelemetry/otlp-grpc-exporter-base@npm:0.43.0"
"@opentelemetry/otlp-grpc-exporter-base@npm:0.44.0":
version: 0.44.0
resolution: "@opentelemetry/otlp-grpc-exporter-base@npm:0.44.0"
dependencies:
"@grpc/grpc-js": "npm:^1.7.1"
"@opentelemetry/core": "npm:1.17.0"
"@opentelemetry/otlp-exporter-base": "npm:0.43.0"
"@opentelemetry/core": "npm:1.17.1"
"@opentelemetry/otlp-exporter-base": "npm:0.44.0"
protobufjs: "npm:^7.2.3"
peerDependencies:
"@opentelemetry/api": ^1.0.0
checksum: 1310f59ca0dfc59d2d04545fb6bd8732784bc6fa81360fb20c0e95c4224024e6d290803b781a766ebbc8a8e1172e2821970f40dcc2b71a244ac54a0fd5b5fd87
checksum: d276aa06bd5ab00203b4cfe976079d5380913e7337e5e8df1337ab2d88f7c11b180f7e4ec66575805439bf52da3732780134560ea656f38e10bf89601f9110c4
languageName: node
linkType: hard
"@opentelemetry/otlp-proto-exporter-base@npm:0.43.0":
version: 0.43.0
resolution: "@opentelemetry/otlp-proto-exporter-base@npm:0.43.0"
"@opentelemetry/otlp-proto-exporter-base@npm:0.44.0":
version: 0.44.0
resolution: "@opentelemetry/otlp-proto-exporter-base@npm:0.44.0"
dependencies:
"@opentelemetry/core": "npm:1.17.0"
"@opentelemetry/otlp-exporter-base": "npm:0.43.0"
"@opentelemetry/core": "npm:1.17.1"
"@opentelemetry/otlp-exporter-base": "npm:0.44.0"
protobufjs: "npm:^7.2.3"
peerDependencies:
"@opentelemetry/api": ^1.0.0
checksum: 28399c5512361797cfff891f3fd1e8aaf977a220f9c99b9edb38a085b2992ce459c8174d875067e9d2130307735fee4341ab1ed6e59b99fc3325151b22a8f0d5
checksum: c661d785865d32351b3c8205eaf21ae619129a03ab7470ede885d5e3155dfae3f8cec4a3613d090e1c3182440d84d34361688f843294d62420f8735e2dbad07a
languageName: node
linkType: hard
"@opentelemetry/otlp-transformer@npm:0.43.0":
version: 0.43.0
resolution: "@opentelemetry/otlp-transformer@npm:0.43.0"
"@opentelemetry/otlp-transformer@npm:0.44.0":
version: 0.44.0
resolution: "@opentelemetry/otlp-transformer@npm:0.44.0"
dependencies:
"@opentelemetry/api-logs": "npm:0.43.0"
"@opentelemetry/core": "npm:1.17.0"
"@opentelemetry/resources": "npm:1.17.0"
"@opentelemetry/sdk-logs": "npm:0.43.0"
"@opentelemetry/sdk-metrics": "npm:1.17.0"
"@opentelemetry/sdk-trace-base": "npm:1.17.0"
"@opentelemetry/api-logs": "npm:0.44.0"
"@opentelemetry/core": "npm:1.17.1"
"@opentelemetry/resources": "npm:1.17.1"
"@opentelemetry/sdk-logs": "npm:0.44.0"
"@opentelemetry/sdk-metrics": "npm:1.17.1"
"@opentelemetry/sdk-trace-base": "npm:1.17.1"
peerDependencies:
"@opentelemetry/api": ">=1.3.0 <1.7.0"
checksum: 5c9e3ebc2b03266e591214939b792c744e9bd64e7d585cb3ebd6b6aa01edccf4716cef8e455e81d7253fcc57db2a87379796d058ad75e7601e5397b0fad3ed0b
checksum: a22be3278390003ca39f85e515b4806bb2910d3f7e465ac71e0a8ca296d334ef679fc7e70590e2a7b3dde03220ed803fc28ceaf71c06242c32a1bfc379f74df9
languageName: node
linkType: hard
"@opentelemetry/propagation-utils@npm:^0.30.1":
version: 0.30.1
resolution: "@opentelemetry/propagation-utils@npm:0.30.1"
"@opentelemetry/propagation-utils@npm:^0.30.2":
version: 0.30.2
resolution: "@opentelemetry/propagation-utils@npm:0.30.2"
peerDependencies:
"@opentelemetry/api": ^1.0.0
checksum: cd44cf502ba5599f89966daf7c86c0d6f6d668b1c387498c7836774f98b75b982f7ecd74a1e169929efe5b49b3fd160ffc3ae7f8bcd3c3ba7dad97fdb6ac80ac
checksum: e64d8f1fa997d4831c6c305edad462b81062971ee8a935cfc749fc89ae6fc2e0edf28210d3a969b4e7b4089e995f79d6b62cb659db0464a61ce94ce8f7f9a1f9
languageName: node
linkType: hard
@@ -3157,25 +3168,25 @@ __metadata:
languageName: node
linkType: hard
"@opentelemetry/propagator-b3@npm:1.17.0":
version: 1.17.0
resolution: "@opentelemetry/propagator-b3@npm:1.17.0"
"@opentelemetry/propagator-b3@npm:1.17.1":
version: 1.17.1
resolution: "@opentelemetry/propagator-b3@npm:1.17.1"
dependencies:
"@opentelemetry/core": "npm:1.17.0"
"@opentelemetry/core": "npm:1.17.1"
peerDependencies:
"@opentelemetry/api": ">=1.0.0 <1.7.0"
checksum: f07d8c50a6ec80338cfb9d332d80ccc3b4031768b17cc17e37978fa71fda05755c40accaebc2b160ff8e4cb53d3c5e26f93eb014e08976e953401b387e12d5fc
checksum: c469d3f256abb96f515920f891d1a4532cc9f5acfca75a373aecb6bebf5288e63670ceb4e5aebe84810307bcee7748dd027902ac456a2c74805f0cf2e4619a3c
languageName: node
linkType: hard
"@opentelemetry/propagator-jaeger@npm:1.17.0":
version: 1.17.0
resolution: "@opentelemetry/propagator-jaeger@npm:1.17.0"
"@opentelemetry/propagator-jaeger@npm:1.17.1":
version: 1.17.1
resolution: "@opentelemetry/propagator-jaeger@npm:1.17.1"
dependencies:
"@opentelemetry/core": "npm:1.17.0"
"@opentelemetry/core": "npm:1.17.1"
peerDependencies:
"@opentelemetry/api": ">=1.0.0 <1.7.0"
checksum: 7603eb4415fadad0e3fe29ae11bb1bf2a1cd45ee3c44e5921821425bd647d7fcca8f4e0c2046e62630acacb7a7ef040c6a7bcaa64538cc3afaf3fc5854188329
checksum: ddae97cf9f1af188186f9196f96dd9e2f20faf16c5781bf98a866f5463ac7af0f1e1db19a07a10a0dbe4b0c2bf6af81e210ed84f687d53321ae5adf347aab708
languageName: node
linkType: hard
@@ -3186,20 +3197,32 @@ __metadata:
languageName: node
linkType: hard
"@opentelemetry/resource-detector-aws@npm:^1.3.1":
version: 1.3.1
resolution: "@opentelemetry/resource-detector-aws@npm:1.3.1"
"@opentelemetry/resource-detector-aws@npm:^1.3.2":
version: 1.3.2
resolution: "@opentelemetry/resource-detector-aws@npm:1.3.2"
dependencies:
"@opentelemetry/core": "npm:^1.0.0"
"@opentelemetry/resources": "npm:^1.0.0"
"@opentelemetry/semantic-conventions": "npm:^1.0.0"
peerDependencies:
"@opentelemetry/api": ^1.0.0
checksum: 05bcfda5a10e6a671606c2f4c4c0bef2060bbf85239b27173da2c4e18dff684ff333c925baa7dc2f1bae6df4e098749e6f6310cd735b58d5c6e1fc538dc140ec
checksum: 9ad2e1a3fa4ddff12e74c705f05565d22f56147992328c231150c5ed4fa0ee49444efe87ab06e6c635031f8dd60b5412f85ed2010f8e915686627811ce566d01
languageName: node
linkType: hard
"@opentelemetry/resources@npm:1.17.0, @opentelemetry/resources@npm:^1.0.0":
"@opentelemetry/resources@npm:1.17.1":
version: 1.17.1
resolution: "@opentelemetry/resources@npm:1.17.1"
dependencies:
"@opentelemetry/core": "npm:1.17.1"
"@opentelemetry/semantic-conventions": "npm:1.17.1"
peerDependencies:
"@opentelemetry/api": ">=1.0.0 <1.7.0"
checksum: 4acd00237a0ac1d3bdfae6aaca45f2e73f1ad937046da5fa488c8a07dbc76ed9ec6a36a27abb09e5688c67b87276ef1d8c75ab2bf1c8e7ae94381a00ff42271c
languageName: node
linkType: hard
"@opentelemetry/resources@npm:^1.0.0":
version: 1.17.0
resolution: "@opentelemetry/resources@npm:1.17.0"
dependencies:
@@ -3211,92 +3234,99 @@ __metadata:
languageName: node
linkType: hard
"@opentelemetry/sdk-logs@npm:0.43.0":
version: 0.43.0
resolution: "@opentelemetry/sdk-logs@npm:0.43.0"
"@opentelemetry/sdk-logs@npm:0.44.0":
version: 0.44.0
resolution: "@opentelemetry/sdk-logs@npm:0.44.0"
dependencies:
"@opentelemetry/core": "npm:1.17.0"
"@opentelemetry/resources": "npm:1.17.0"
"@opentelemetry/core": "npm:1.17.1"
"@opentelemetry/resources": "npm:1.17.1"
peerDependencies:
"@opentelemetry/api": ">=1.4.0 <1.7.0"
"@opentelemetry/api-logs": ">=0.39.1"
checksum: 13e14091279f416d460a11c31848bcb526911de8f1f9cca3c102a929e0d9c21c1d75c2b6128671e9797fde656099edc7d559bd7738a92fa9058b76f7d2174d13
checksum: f59198225548507b878e62bbf4b24494b5c7b1519bb61ed594e18050e09e3dff0b2a91705fc15eeee08c5d5abf56e42de215b50709c9615cb1a2ab1152c43d49
languageName: node
linkType: hard
"@opentelemetry/sdk-metrics@npm:1.17.0":
version: 1.17.0
resolution: "@opentelemetry/sdk-metrics@npm:1.17.0"
"@opentelemetry/sdk-metrics@npm:1.17.1":
version: 1.17.1
resolution: "@opentelemetry/sdk-metrics@npm:1.17.1"
dependencies:
"@opentelemetry/core": "npm:1.17.0"
"@opentelemetry/resources": "npm:1.17.0"
"@opentelemetry/core": "npm:1.17.1"
"@opentelemetry/resources": "npm:1.17.1"
lodash.merge: "npm:^4.6.2"
peerDependencies:
"@opentelemetry/api": ">=1.3.0 <1.7.0"
checksum: 45876ed27d564a64f2b0cc7f63699c5a5a91192cb20f124b15fb12a0e346aec1e5f65f19eb18031977e1a8119972b815573b750f4953dbc5eef150fe4d9eefc3
checksum: 205472776d63b67c78b41ef93b89869a890c4134e514fcd68f056010a1b71415732ef45d934acd892d28072288ae34f912747a0af87e475c048cbec805b1dbe5
languageName: node
linkType: hard
"@opentelemetry/sdk-node@npm:^0.43.0":
version: 0.43.0
resolution: "@opentelemetry/sdk-node@npm:0.43.0"
"@opentelemetry/sdk-node@npm:^0.44.0":
version: 0.44.0
resolution: "@opentelemetry/sdk-node@npm:0.44.0"
dependencies:
"@opentelemetry/api-logs": "npm:0.43.0"
"@opentelemetry/core": "npm:1.17.0"
"@opentelemetry/exporter-jaeger": "npm:1.17.0"
"@opentelemetry/exporter-trace-otlp-grpc": "npm:0.43.0"
"@opentelemetry/exporter-trace-otlp-http": "npm:0.43.0"
"@opentelemetry/exporter-trace-otlp-proto": "npm:0.43.0"
"@opentelemetry/exporter-zipkin": "npm:1.17.0"
"@opentelemetry/instrumentation": "npm:0.43.0"
"@opentelemetry/resources": "npm:1.17.0"
"@opentelemetry/sdk-logs": "npm:0.43.0"
"@opentelemetry/sdk-metrics": "npm:1.17.0"
"@opentelemetry/sdk-trace-base": "npm:1.17.0"
"@opentelemetry/sdk-trace-node": "npm:1.17.0"
"@opentelemetry/semantic-conventions": "npm:1.17.0"
"@opentelemetry/api-logs": "npm:0.44.0"
"@opentelemetry/core": "npm:1.17.1"
"@opentelemetry/exporter-jaeger": "npm:1.17.1"
"@opentelemetry/exporter-trace-otlp-grpc": "npm:0.44.0"
"@opentelemetry/exporter-trace-otlp-http": "npm:0.44.0"
"@opentelemetry/exporter-trace-otlp-proto": "npm:0.44.0"
"@opentelemetry/exporter-zipkin": "npm:1.17.1"
"@opentelemetry/instrumentation": "npm:0.44.0"
"@opentelemetry/resources": "npm:1.17.1"
"@opentelemetry/sdk-logs": "npm:0.44.0"
"@opentelemetry/sdk-metrics": "npm:1.17.1"
"@opentelemetry/sdk-trace-base": "npm:1.17.1"
"@opentelemetry/sdk-trace-node": "npm:1.17.1"
"@opentelemetry/semantic-conventions": "npm:1.17.1"
peerDependencies:
"@opentelemetry/api": ">=1.3.0 <1.7.0"
checksum: b4b6f84afb918666b24fc349a12d2cdf717af8e01fb67e018db3748b96186e8ac1501544220e04c65733766bf91c6e502c240de1c7bccfa1a5d908cba415942f
checksum: 3be73d7abab3e97bd4bb584055f6a9abb6bf54e4f0a7c90b0238b216dac521c25fba3506b97e7749f3041f11c1f8e4241ae59ab51b65728c8c1903831232e538
languageName: node
linkType: hard
"@opentelemetry/sdk-trace-base@npm:1.17.0":
version: 1.17.0
resolution: "@opentelemetry/sdk-trace-base@npm:1.17.0"
"@opentelemetry/sdk-trace-base@npm:1.17.1":
version: 1.17.1
resolution: "@opentelemetry/sdk-trace-base@npm:1.17.1"
dependencies:
"@opentelemetry/core": "npm:1.17.0"
"@opentelemetry/resources": "npm:1.17.0"
"@opentelemetry/semantic-conventions": "npm:1.17.0"
"@opentelemetry/core": "npm:1.17.1"
"@opentelemetry/resources": "npm:1.17.1"
"@opentelemetry/semantic-conventions": "npm:1.17.1"
peerDependencies:
"@opentelemetry/api": ">=1.0.0 <1.7.0"
checksum: 5c269dd97387b5daf538288c17eee83a3623194f6184f4305fcae5e9af5eeca4313b70031587ffa4b7298944e7ef8a395fb065008179f03546f37845666b0e12
checksum: 9b659ccd7012cd97484fdd894de367010b71dd4f538df8773c07dc94482cdf95e5b1e6b3791a7e35b92e83877dafd28e50b021a5646294073bce2f71ed9c04d5
languageName: node
linkType: hard
"@opentelemetry/sdk-trace-node@npm:1.17.0":
version: 1.17.0
resolution: "@opentelemetry/sdk-trace-node@npm:1.17.0"
"@opentelemetry/sdk-trace-node@npm:1.17.1":
version: 1.17.1
resolution: "@opentelemetry/sdk-trace-node@npm:1.17.1"
dependencies:
"@opentelemetry/context-async-hooks": "npm:1.17.0"
"@opentelemetry/core": "npm:1.17.0"
"@opentelemetry/propagator-b3": "npm:1.17.0"
"@opentelemetry/propagator-jaeger": "npm:1.17.0"
"@opentelemetry/sdk-trace-base": "npm:1.17.0"
"@opentelemetry/context-async-hooks": "npm:1.17.1"
"@opentelemetry/core": "npm:1.17.1"
"@opentelemetry/propagator-b3": "npm:1.17.1"
"@opentelemetry/propagator-jaeger": "npm:1.17.1"
"@opentelemetry/sdk-trace-base": "npm:1.17.1"
semver: "npm:^7.5.2"
peerDependencies:
"@opentelemetry/api": ">=1.0.0 <1.7.0"
checksum: fac380c79b8cdcb27a805a4bcd891c37c03a9199b75ec5bc528925a8223d9dd2a32fef1d996884c932e730b70fe603ff3ca5dbd567a7c992da1f94e70336f3ba
checksum: 947e8a7cb733180ec5ea52d2b906b4b51c1ee35ad4bbccc2c1e7fd98c1ebda61c2bad791d2aebfdf643c0b38a83c46c0052c98ea35f1c8c4ea3381e469f90e33
languageName: node
linkType: hard
"@opentelemetry/semantic-conventions@npm:1.17.0, @opentelemetry/semantic-conventions@npm:^1.0.0, @opentelemetry/semantic-conventions@npm:^1.13.0, @opentelemetry/semantic-conventions@npm:^1.17.0":
"@opentelemetry/semantic-conventions@npm:1.17.0, @opentelemetry/semantic-conventions@npm:^1.0.0, @opentelemetry/semantic-conventions@npm:^1.13.0":
version: 1.17.0
resolution: "@opentelemetry/semantic-conventions@npm:1.17.0"
checksum: 1f6bbd4d543ad529ddb3f6b55e08940995b5958fa990bc54bfa50136fc0a93d12a9bfed7f3addb5d84b1afaade8bd4b9afc36d2fe2d65a3f6325511b3a29d851
languageName: node
linkType: hard
"@opentelemetry/semantic-conventions@npm:1.17.1, @opentelemetry/semantic-conventions@npm:^1.17.1":
version: 1.17.1
resolution: "@opentelemetry/semantic-conventions@npm:1.17.1"
checksum: 1abbb47c8511371372e7703eaaf4ab7639bca3a041e04351c515886b5aab4af8b0a28ae5232f1bb050d6273a470ae61aa0b3a8e783c78afaddc13e4b99c1e6a8
languageName: node
linkType: hard
"@otplib/core@npm:^12.0.1":
version: 12.0.1
resolution: "@otplib/core@npm:12.0.1"
@@ -4414,18 +4444,18 @@ __metadata:
"@aws-sdk/client-sns": "npm:^3.427.0"
"@aws-sdk/client-sqs": "npm:^3.427.0"
"@opentelemetry/api": "npm:^1.6.0"
"@opentelemetry/exporter-metrics-otlp-proto": "npm:^0.43.0"
"@opentelemetry/exporter-trace-otlp-grpc": "npm:^0.43.0"
"@opentelemetry/exporter-metrics-otlp-proto": "npm:^0.44.0"
"@opentelemetry/exporter-trace-otlp-grpc": "npm:^0.44.0"
"@opentelemetry/id-generator-aws-xray": "npm:^1.2.1"
"@opentelemetry/instrumentation-aws-sdk": "npm:^0.36.0"
"@opentelemetry/instrumentation-express": "npm:^0.33.1"
"@opentelemetry/instrumentation-http": "npm:^0.43.0"
"@opentelemetry/instrumentation-ioredis": "npm:^0.35.1"
"@opentelemetry/instrumentation-winston": "npm:^0.32.1"
"@opentelemetry/instrumentation-aws-sdk": "npm:^0.36.1"
"@opentelemetry/instrumentation-express": "npm:^0.33.2"
"@opentelemetry/instrumentation-http": "npm:^0.44.0"
"@opentelemetry/instrumentation-ioredis": "npm:^0.35.2"
"@opentelemetry/instrumentation-winston": "npm:^0.32.2"
"@opentelemetry/propagator-aws-xray": "npm:^1.3.1"
"@opentelemetry/resource-detector-aws": "npm:^1.3.1"
"@opentelemetry/sdk-node": "npm:^0.43.0"
"@opentelemetry/semantic-conventions": "npm:^1.17.0"
"@opentelemetry/resource-detector-aws": "npm:^1.3.2"
"@opentelemetry/sdk-node": "npm:^0.44.0"
"@opentelemetry/semantic-conventions": "npm:^1.17.1"
"@standardnotes/domain-events": "workspace:*"
"@types/ioredis": "npm:^5.0.0"
"@types/jest": "npm:^29.5.1"
@@ -4438,7 +4468,7 @@ __metadata:
opentelemetry-instrumentation-typeorm: "npm:^0.39.1"
prettier: "npm:^3.0.3"
reflect-metadata: "npm:^0.1.13"
sqs-consumer: "npm:^7.3.0"
sqs-consumer: "npm:7.4.0-canary.0"
ts-jest: "npm:^29.1.0"
typescript: "npm:^5.0.4"
winston: "npm:^3.8.1"
@@ -5126,7 +5156,7 @@ __metadata:
languageName: node
linkType: hard
"@types/express@npm:*, @types/express@npm:4.17.17, @types/express@npm:^4.17.14":
"@types/express@npm:*, @types/express@npm:^4.17.14":
version: 4.17.17
resolution: "@types/express@npm:4.17.17"
dependencies:
@@ -5138,6 +5168,18 @@ __metadata:
languageName: node
linkType: hard
"@types/express@npm:4.17.18":
version: 4.17.18
resolution: "@types/express@npm:4.17.18"
dependencies:
"@types/body-parser": "npm:*"
"@types/express-serve-static-core": "npm:^4.17.33"
"@types/qs": "npm:*"
"@types/serve-static": "npm:*"
checksum: b344988a35d3cae7b29e984f010ac9124de5e61fe2104c0fc541db6ba8fc4433c69d505537429d157400572c258b47afca4bd668b58de101ae879c868b81bcb1
languageName: node
linkType: hard
"@types/graceful-fs@npm:^4.1.3":
version: 4.1.6
resolution: "@types/graceful-fs@npm:4.1.6"
@@ -12735,15 +12777,15 @@ __metadata:
languageName: node
linkType: hard
"sqs-consumer@npm:^7.3.0":
version: 7.3.0
resolution: "sqs-consumer@npm:7.3.0"
"sqs-consumer@npm:7.4.0-canary.0":
version: 7.4.0-canary.0
resolution: "sqs-consumer@npm:7.4.0-canary.0"
dependencies:
"@aws-sdk/client-sqs": "npm:^3.363.0"
debug: "npm:^4.3.4"
peerDependencies:
"@aws-sdk/client-sqs": ^3.363.0
checksum: 367ea2a6f3ea5da331efbb7052e643f1657aafa138c8404f336389effbbaba734858bd4daf29c86ab0b4c8a015863ddac6b19482302324f46d45a38fae731f54
checksum: 7ecff41c977775f5e61e9f58f79a86b3939bd9ade9cecd7532d8344c454ec059267645c87544d38dbb4c4403e65c908d51c69aee3776c009310c3ba79c1172c7
languageName: node
linkType: hard