Browse Source

Task/enable Bull Dashboard in admin control panel without environment variable (#6876)

* Enable Bull Dashboard without environment variable

* Update changelog
pull/6881/head
Thomas Kaul 1 week ago
committed by GitHub
parent
commit
9ed4c679b2
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 1
      CHANGELOG.md
  2. 6
      apps/api/src/app/app.module.ts
  3. 2
      apps/api/src/app/user/user.service.ts
  4. 1
      apps/api/src/services/configuration/configuration.service.ts
  5. 1
      apps/api/src/services/interfaces/environment.interface.ts
  6. 6
      apps/api/src/services/queues/data-gathering/data-gathering.module.ts
  7. 6
      apps/api/src/services/queues/portfolio-snapshot/portfolio-snapshot.module.ts
  8. 2
      apps/api/src/services/queues/statistics-gathering/statistics-gathering.module.ts

1
CHANGELOG.md

@ -9,6 +9,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Changed ### Changed
- Enabled the _Bull Dashboard_ in the admin control panel without requiring an environment variable (experimental)
- Extracted the page tabs to a reusable component - Extracted the page tabs to a reusable component
- Upgraded `bull-board` from version `7.0.0` to `7.1.5` - Upgraded `bull-board` from version `7.0.0` to `7.1.5`

6
apps/api/src/app/app.module.ts

@ -74,8 +74,6 @@ import { UserModule } from './user/user.module';
AuthDeviceModule, AuthDeviceModule,
AuthModule, AuthModule,
BenchmarksModule, BenchmarksModule,
...(process.env.ENABLE_FEATURE_BULL_BOARD === 'true'
? [
BullBoardModule.forRoot({ BullBoardModule.forRoot({
adapter: ExpressAdapter, adapter: ExpressAdapter,
boardOptions: { boardOptions: {
@ -94,9 +92,7 @@ import { UserModule } from './user/user.module';
}, },
middleware: BullBoardAuthMiddleware, middleware: BullBoardAuthMiddleware,
route: BULL_BOARD_ROUTE route: BULL_BOARD_ROUTE
}) }),
]
: []),
BullModule.forRoot({ BullModule.forRoot({
redis: { redis: {
db: parseInt(process.env.REDIS_DB ?? '0', 10), db: parseInt(process.env.REDIS_DB ?? '0', 10),

2
apps/api/src/app/user/user.service.ts

@ -532,7 +532,7 @@ export class UserService {
} }
if (hasRole(user, Role.ADMIN)) { if (hasRole(user, Role.ADMIN)) {
if (this.configurationService.get('ENABLE_FEATURE_BULL_BOARD')) { if ((user.settings.settings as UserSettings).isExperimentalFeatures) {
currentPermissions.push(permissions.accessAdminControlBullBoard); currentPermissions.push(permissions.accessAdminControlBullBoard);
} }

1
apps/api/src/services/configuration/configuration.service.ts

@ -44,7 +44,6 @@ export class ConfigurationService {
ENABLE_FEATURE_AUTH_GOOGLE: bool({ default: false }), ENABLE_FEATURE_AUTH_GOOGLE: bool({ default: false }),
ENABLE_FEATURE_AUTH_OIDC: bool({ default: false }), ENABLE_FEATURE_AUTH_OIDC: bool({ default: false }),
ENABLE_FEATURE_AUTH_TOKEN: bool({ default: true }), ENABLE_FEATURE_AUTH_TOKEN: bool({ default: true }),
ENABLE_FEATURE_BULL_BOARD: bool({ default: false }),
ENABLE_FEATURE_FEAR_AND_GREED_INDEX: bool({ default: false }), ENABLE_FEATURE_FEAR_AND_GREED_INDEX: bool({ default: false }),
ENABLE_FEATURE_GATHER_NEW_EXCHANGE_RATES: bool({ default: true }), ENABLE_FEATURE_GATHER_NEW_EXCHANGE_RATES: bool({ default: true }),
ENABLE_FEATURE_READ_ONLY_MODE: bool({ default: false }), ENABLE_FEATURE_READ_ONLY_MODE: bool({ default: false }),

1
apps/api/src/services/interfaces/environment.interface.ts

@ -20,7 +20,6 @@ export interface Environment extends CleanedEnvAccessors {
ENABLE_FEATURE_AUTH_GOOGLE: boolean; ENABLE_FEATURE_AUTH_GOOGLE: boolean;
ENABLE_FEATURE_AUTH_OIDC: boolean; ENABLE_FEATURE_AUTH_OIDC: boolean;
ENABLE_FEATURE_AUTH_TOKEN: boolean; ENABLE_FEATURE_AUTH_TOKEN: boolean;
ENABLE_FEATURE_BULL_BOARD: boolean;
ENABLE_FEATURE_FEAR_AND_GREED_INDEX: boolean; ENABLE_FEATURE_FEAR_AND_GREED_INDEX: boolean;
ENABLE_FEATURE_GATHER_NEW_EXCHANGE_RATES: boolean; ENABLE_FEATURE_GATHER_NEW_EXCHANGE_RATES: boolean;
ENABLE_FEATURE_READ_ONLY_MODE: boolean; ENABLE_FEATURE_READ_ONLY_MODE: boolean;

6
apps/api/src/services/queues/data-gathering/data-gathering.module.ts

@ -19,8 +19,6 @@ import { DataGatheringProcessor } from './data-gathering.processor';
@Module({ @Module({
imports: [ imports: [
...(process.env.ENABLE_FEATURE_BULL_BOARD === 'true'
? [
BullBoardModule.forFeature({ BullBoardModule.forFeature({
adapter: BullAdapter, adapter: BullAdapter,
name: DATA_GATHERING_QUEUE, name: DATA_GATHERING_QUEUE,
@ -28,9 +26,7 @@ import { DataGatheringProcessor } from './data-gathering.processor';
displayName: 'Data Gathering', displayName: 'Data Gathering',
readOnlyMode: process.env.BULL_BOARD_IS_READ_ONLY !== 'false' readOnlyMode: process.env.BULL_BOARD_IS_READ_ONLY !== 'false'
} }
}) }),
]
: []),
BullModule.registerQueue({ BullModule.registerQueue({
limiter: { limiter: {
duration: ms('4 seconds'), duration: ms('4 seconds'),

6
apps/api/src/services/queues/portfolio-snapshot/portfolio-snapshot.module.ts

@ -25,8 +25,6 @@ import { PortfolioSnapshotProcessor } from './portfolio-snapshot.processor';
imports: [ imports: [
AccountBalanceModule, AccountBalanceModule,
ActivitiesModule, ActivitiesModule,
...(process.env.ENABLE_FEATURE_BULL_BOARD === 'true'
? [
BullBoardModule.forFeature({ BullBoardModule.forFeature({
adapter: BullAdapter, adapter: BullAdapter,
name: PORTFOLIO_SNAPSHOT_COMPUTATION_QUEUE, name: PORTFOLIO_SNAPSHOT_COMPUTATION_QUEUE,
@ -34,9 +32,7 @@ import { PortfolioSnapshotProcessor } from './portfolio-snapshot.processor';
displayName: 'Portfolio Snapshot Computation', displayName: 'Portfolio Snapshot Computation',
readOnlyMode: process.env.BULL_BOARD_IS_READ_ONLY !== 'false' readOnlyMode: process.env.BULL_BOARD_IS_READ_ONLY !== 'false'
} }
}) }),
]
: []),
BullModule.registerQueue({ BullModule.registerQueue({
name: PORTFOLIO_SNAPSHOT_COMPUTATION_QUEUE, name: PORTFOLIO_SNAPSHOT_COMPUTATION_QUEUE,
settings: { settings: {

2
apps/api/src/services/queues/statistics-gathering/statistics-gathering.module.ts

@ -13,7 +13,7 @@ import { StatisticsGatheringService } from './statistics-gathering.service';
@Module({ @Module({
exports: [BullModule, StatisticsGatheringService], exports: [BullModule, StatisticsGatheringService],
imports: [ imports: [
...(process.env.ENABLE_FEATURE_BULL_BOARD === 'true' ...(process.env.ENABLE_FEATURE_STATISTICS === 'true'
? [ ? [
BullBoardModule.forFeature({ BullBoardModule.forFeature({
adapter: BullAdapter, adapter: BullAdapter,

Loading…
Cancel
Save