Browse Source
Merge branch 'main' into bugfix/log-context-formatting-in-perfromance-logging-service
pull/7121/head
Thomas Kaul
3 weeks ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with
62 additions and
27 deletions
-
CHANGELOG.md
-
apps/api/src/services/data-provider/data-provider.service.ts
-
apps/api/src/services/data-provider/interfaces/data-provider.interface.ts
-
apps/api/src/services/data-provider/manual/manual.service.ts
-
apps/client/src/app/components/admin-settings/admin-settings.component.scss
-
libs/common/src/lib/config.ts
|
|
|
@ -9,6 +9,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 |
|
|
|
|
|
|
|
### Fixed |
|
|
|
|
|
|
|
- Fixed an issue with hourly market data updates not refreshing prices for asset profiles with `MANUAL` data source |
|
|
|
- Fixed an issue with the log context formatting in the performance logging service |
|
|
|
|
|
|
|
## 3.15.1 - 2026-06-23 |
|
|
|
|
|
|
|
@ -662,7 +662,11 @@ export class DataProviderService implements OnModuleInit { |
|
|
|
); |
|
|
|
|
|
|
|
const promise = Promise.resolve( |
|
|
|
dataProvider.getQuotes({ requestTimeout, symbols: symbolsChunk }) |
|
|
|
dataProvider.getQuotes({ |
|
|
|
requestTimeout, |
|
|
|
useCache, |
|
|
|
symbols: symbolsChunk |
|
|
|
}) |
|
|
|
); |
|
|
|
|
|
|
|
promises.push( |
|
|
|
|
|
|
|
@ -75,6 +75,7 @@ export interface GetHistoricalParams { |
|
|
|
export interface GetQuotesParams { |
|
|
|
requestTimeout?: number; |
|
|
|
symbols: string[]; |
|
|
|
useCache?: boolean; |
|
|
|
} |
|
|
|
|
|
|
|
export interface GetSearchParams { |
|
|
|
|
|
|
|
@ -136,7 +136,8 @@ export class ManualService implements DataProviderInterface { |
|
|
|
} |
|
|
|
|
|
|
|
public async getQuotes({ |
|
|
|
symbols |
|
|
|
symbols, |
|
|
|
useCache = true |
|
|
|
}: GetQuotesParams): Promise<{ [symbol: string]: DataProviderResponse }> { |
|
|
|
const response: { [symbol: string]: DataProviderResponse } = {}; |
|
|
|
|
|
|
|
@ -164,17 +165,17 @@ export class ManualService implements DataProviderInterface { |
|
|
|
} |
|
|
|
}); |
|
|
|
|
|
|
|
const symbolProfilesWithScraperConfigurationAndInstantMode = |
|
|
|
symbolProfiles.filter(({ scraperConfiguration }) => { |
|
|
|
const symbolProfilesToScrape = symbolProfiles.filter( |
|
|
|
({ scraperConfiguration }) => { |
|
|
|
return ( |
|
|
|
scraperConfiguration?.mode === 'instant' && |
|
|
|
(scraperConfiguration?.mode === 'instant' || !useCache) && |
|
|
|
scraperConfiguration?.selector && |
|
|
|
scraperConfiguration?.url |
|
|
|
); |
|
|
|
}); |
|
|
|
} |
|
|
|
); |
|
|
|
|
|
|
|
const scraperResultPromises = |
|
|
|
symbolProfilesWithScraperConfigurationAndInstantMode.map( |
|
|
|
const scraperResultPromises = symbolProfilesToScrape.map( |
|
|
|
async ({ scraperConfiguration, symbol }) => { |
|
|
|
try { |
|
|
|
const marketPrice = await this.scrape({ |
|
|
|
|
|
|
|
@ -10,7 +10,33 @@ |
|
|
|
} |
|
|
|
|
|
|
|
.mat-mdc-card { |
|
|
|
--mat-card-outlined-container-color: whitesmoke; |
|
|
|
--gradient-opacity: 50%; |
|
|
|
--mat-card-outlined-outline-color: rgb(193, 219, 254); |
|
|
|
|
|
|
|
background-color: white; |
|
|
|
background-image: linear-gradient( |
|
|
|
109.6deg, |
|
|
|
color-mix(in srgb, rgba(255, 255, 255, 1) 100%, transparent) 11.2%, |
|
|
|
color-mix( |
|
|
|
in srgb, |
|
|
|
rgba(221, 108, 241, 0.26) var(--gradient-opacity), |
|
|
|
transparent |
|
|
|
) |
|
|
|
42%, |
|
|
|
color-mix( |
|
|
|
in srgb, |
|
|
|
rgba(229, 106, 253, 0.71) var(--gradient-opacity), |
|
|
|
transparent |
|
|
|
) |
|
|
|
71.5%, |
|
|
|
color-mix( |
|
|
|
in srgb, |
|
|
|
rgba(123, 183, 253, 1) var(--gradient-opacity), |
|
|
|
transparent |
|
|
|
) |
|
|
|
100% |
|
|
|
); |
|
|
|
color: rgb(var(--dark-primary-text)); |
|
|
|
|
|
|
|
.mat-mdc-card-actions { |
|
|
|
min-height: 0; |
|
|
|
@ -32,6 +58,6 @@ |
|
|
|
|
|
|
|
:host-context(.theme-dark) { |
|
|
|
.mat-mdc-card { |
|
|
|
--mat-card-outlined-container-color: #222222; |
|
|
|
--mat-card-outlined-outline-color: white; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
@ -90,10 +90,12 @@ export const DEFAULT_PAGE_SIZE = 50; |
|
|
|
export const DEFAULT_PORT = 3333; |
|
|
|
export const DEFAULT_PROCESSOR_GATHER_ASSET_PROFILE_CONCURRENCY = 1; |
|
|
|
export const DEFAULT_PROCESSOR_GATHER_HISTORICAL_MARKET_DATA_CONCURRENCY = 1; |
|
|
|
export const DEFAULT_PROCESSOR_GATHER_HISTORICAL_MARKET_DATA_TIMEOUT = 60000; |
|
|
|
export const DEFAULT_PROCESSOR_GATHER_HISTORICAL_MARKET_DATA_TIMEOUT = |
|
|
|
ms('1 minute'); |
|
|
|
export const DEFAULT_PROCESSOR_GATHER_STATISTICS_CONCURRENCY = 1; |
|
|
|
export const DEFAULT_PROCESSOR_PORTFOLIO_SNAPSHOT_COMPUTATION_CONCURRENCY = 1; |
|
|
|
export const DEFAULT_PROCESSOR_PORTFOLIO_SNAPSHOT_COMPUTATION_TIMEOUT = 30000; |
|
|
|
export const DEFAULT_PROCESSOR_PORTFOLIO_SNAPSHOT_COMPUTATION_TIMEOUT = |
|
|
|
ms('30 seconds'); |
|
|
|
|
|
|
|
export const DEFAULT_REDACTED_PATHS = [ |
|
|
|
'accounts[*].balance', |
|
|
|
|