Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: implemented multi-cluster NATS client #804

Merged
merged 18 commits into from
Jun 24, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
17bb07b
wip: nats configuration
bhavanakarwade Jun 19, 2024
0e02c79
Merge branch 'develop' of https://github.com/credebl/platform into fe…
bhavanakarwade Jun 19, 2024
cb44956
refactor: nats config function
bhavanakarwade Jun 20, 2024
e9d51be
Merge branch 'develop' of https://github.com/credebl/platform into fe…
bhavanakarwade Jun 20, 2024
6db7eea
Merge branch 'develop' of https://github.com/credebl/platform into fe…
bhavanakarwade Jun 20, 2024
c265b01
wip: implemented nats queue functionality
bhavanakarwade Jun 20, 2024
5f5f1c0
wip: implemented nats queue functionality
bhavanakarwade Jun 20, 2024
b90ea3e
Merge branch 'develop' of https://github.com/credebl/platform into fe…
bhavanakarwade Jun 20, 2024
f830fff
wip: nats queue configurations
bhavanakarwade Jun 21, 2024
2110a6b
Merge branch 'develop' of https://github.com/credebl/platform into fe…
bhavanakarwade Jun 21, 2024
e8ef9b0
Merge branch 'develop' of https://github.com/credebl/platform into fe…
bhavanakarwade Jun 21, 2024
c0255d4
feat: support nats queue
bhavanakarwade Jun 21, 2024
7731b36
fix: add logger
bhavanakarwade Jun 21, 2024
f10f152
refactor: added logger
bhavanakarwade Jun 21, 2024
1efbb4d
fix: remove unnecessary logs
bhavanakarwade Jun 21, 2024
8d9fe69
fix: added optional parameter
bhavanakarwade Jun 21, 2024
781ed9f
feat: implement nats queue
bhavanakarwade Jun 22, 2024
e620eb1
Merge branch 'develop' of https://github.com/credebl/platform into fe…
bhavanakarwade Jun 24, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion apps/agent-provisioning/src/agent-provisioning.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,15 @@ import { AgentProvisioningService } from './agent-provisioning.service';
import { ClientsModule, Transport } from '@nestjs/microservices';
import { ConfigModule } from '@nestjs/config';
import { getNatsOptions } from '@credebl/common/nats.config';
import { CommonConstants } from '@credebl/common/common.constant';
@Module({
imports: [
ConfigModule.forRoot(),
ClientsModule.register([
{
name: 'NATS_CLIENT',
transport: Transport.NATS,
options: getNatsOptions(process.env.AGENT_PROVISIONING_NKEY_SEED)
options: getNatsOptions(CommonConstants.AGENT_PROVISIONING, process.env.AGENT_PROVISIONING_NKEY_SEED)

}
])
Expand Down
3 changes: 2 additions & 1 deletion apps/agent-provisioning/src/main.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,14 @@ import { Logger } from '@nestjs/common';
import { MicroserviceOptions, Transport } from '@nestjs/microservices';
import { AgentProvisioningModule } from './agent-provisioning.module';
import { getNatsOptions } from '@credebl/common/nats.config';
import { CommonConstants } from '@credebl/common/common.constant';
const logger = new Logger();

async function bootstrap(): Promise<void> {

const app = await NestFactory.createMicroservice<MicroserviceOptions>(AgentProvisioningModule, {
transport: Transport.NATS,
options: getNatsOptions(process.env.AGENT_PROVISIONING_NKEY_SEED)
options: getNatsOptions(CommonConstants.AGENT_PROVISIONING, process.env.AGENT_PROVISIONING_NKEY_SEED)
});
app.useGlobalFilters(new HttpExceptionFilter());

Expand Down
3 changes: 2 additions & 1 deletion apps/agent-service/src/agent-service.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import { ConnectionRepository } from 'apps/connection/src/connection.repository'
import { CacheModule } from '@nestjs/cache-manager';
import { getNatsOptions } from '@credebl/common/nats.config';
import { UserActivityRepository } from 'libs/user-activity/repositories';
import { CommonConstants } from '@credebl/common/common.constant';

@Module({
imports: [
Expand All @@ -19,7 +20,7 @@ import { UserActivityRepository } from 'libs/user-activity/repositories';
{
name: 'NATS_CLIENT',
transport: Transport.NATS,
options: getNatsOptions(process.env.AGENT_SERVICE_NKEY_SEED)
options: getNatsOptions(CommonConstants.AGENT_SERVICE, process.env.AGENT_SERVICE_NKEY_SEED)
}
]),
CommonModule,
Expand Down
2 changes: 1 addition & 1 deletion apps/agent-service/src/main.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ async function bootstrap(): Promise<void> {

const app = await NestFactory.createMicroservice<MicroserviceOptions>(AgentServiceModule, {
transport: Transport.NATS,
options: getNatsOptions(process.env.AGENT_SERVICE_NKEY_SEED)
options: getNatsOptions(CommonConstants.AGENT_SERVICE, process.env.AGENT_SERVICE_NKEY_SEED)

});
app.useGlobalFilters(new HttpExceptionFilter());
Expand Down
3 changes: 2 additions & 1 deletion apps/api-gateway/src/agent-service/agent-service.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import { ConfigModule } from '@nestjs/config';
import { AgentController } from './agent-service.controller';
import { AgentService } from './agent-service.service';
import { getNatsOptions } from '@credebl/common/nats.config';
import { CommonConstants } from '@credebl/common/common.constant';

@Module({
imports: [
Expand All @@ -16,7 +17,7 @@ import { getNatsOptions } from '@credebl/common/nats.config';
{
name: 'NATS_CLIENT',
transport: Transport.NATS,
options: getNatsOptions(process.env.API_GATEWAY_NKEY_SEED)
options: getNatsOptions(CommonConstants.AGENT_SERVICE, process.env.API_GATEWAY_NKEY_SEED)

},
CommonModule
Expand Down
3 changes: 2 additions & 1 deletion apps/api-gateway/src/app.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ import * as redisStore from 'cache-manager-redis-store';
import { WebhookModule } from './webhook/webhook.module';
import { UtilitiesModule } from './utilities/utilities.module';
import { NotificationModule } from './notification/notification.module';
import { CommonConstants } from '@credebl/common/common.constant';

@Module({
imports: [
Expand All @@ -34,7 +35,7 @@ import { NotificationModule } from './notification/notification.module';
{
name: 'NATS_CLIENT',
transport: Transport.NATS,
options: getNatsOptions(process.env.API_GATEWAY_NKEY_SEED)
options: getNatsOptions(CommonConstants.API_GATEWAY_SERVICE, process.env.API_GATEWAY_NKEY_SEED)
}
]),
AgentModule,
Expand Down
3 changes: 2 additions & 1 deletion apps/api-gateway/src/authz/authz.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ import { VerificationService } from '../verification/verification.service';
import { EcosystemService } from '../ecosystem/ecosystem.service';
import { getNatsOptions } from '@credebl/common/nats.config';
import { OrganizationService } from '../organization/organization.service';
import { CommonConstants } from '@credebl/common/common.constant';

@Module({
imports: [
Expand All @@ -31,7 +32,7 @@ import { OrganizationService } from '../organization/organization.service';
{
name: 'NATS_CLIENT',
transport: Transport.NATS,
options: getNatsOptions(process.env.API_GATEWAY_NKEY_SEED)
options: getNatsOptions(CommonConstants.AUTH_SERVICE, process.env.API_GATEWAY_NKEY_SEED)
},
CommonModule
]),
Expand Down
3 changes: 2 additions & 1 deletion apps/api-gateway/src/connection/connection.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import { ConnectionController } from './connection.controller';
import { ConnectionService } from './connection.service';
import { Module } from '@nestjs/common';
import { ClientsModule, Transport } from '@nestjs/microservices';
import { CommonConstants } from '@credebl/common/common.constant';

@Module({
imports: [
Expand All @@ -11,7 +12,7 @@ import { ClientsModule, Transport } from '@nestjs/microservices';
{
name: 'NATS_CLIENT',
transport: Transport.NATS,
options: getNatsOptions(process.env.API_GATEWAY_NKEY_SEED)
options: getNatsOptions(CommonConstants.CONNECTION_SERVICE, process.env.API_GATEWAY_NKEY_SEED)
}
])
],
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,15 @@ import { Logger, Module } from '@nestjs/common';
import { CredentialDefinitionController } from './credential-definition.controller';
import { CredentialDefinitionService } from './credential-definition.service';
import { getNatsOptions } from '@credebl/common/nats.config';
import { CommonConstants } from '@credebl/common/common.constant';

@Module({
imports:[
ClientsModule.register([
{
name: 'NATS_CLIENT',
transport: Transport.NATS,
options: getNatsOptions(process.env.API_GATEWAY_NKEY_SEED)
options: getNatsOptions(CommonConstants.CREDENTIAL_DEFINITION_SERVICE, process.env.API_GATEWAY_NKEY_SEED)
}
])
],
Expand Down
3 changes: 2 additions & 1 deletion apps/api-gateway/src/ecosystem/ecosystem.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import { Module } from '@nestjs/common';
import { EcosystemController } from './ecosystem.controller';
import { EcosystemService } from './ecosystem.service';
import { getNatsOptions } from '@credebl/common/nats.config';
import { CommonConstants } from '@credebl/common/common.constant';

@Module({
imports: [
Expand All @@ -16,7 +17,7 @@ import { getNatsOptions } from '@credebl/common/nats.config';
{
name: 'NATS_CLIENT',
transport: Transport.NATS,
options: getNatsOptions(process.env.API_GATEWAY_NKEY_SEED)
options: getNatsOptions(CommonConstants.ECOSYSTEM_SERVICE, process.env.API_GATEWAY_NKEY_SEED)
},
CommonModule
])
Expand Down
3 changes: 2 additions & 1 deletion apps/api-gateway/src/fido/fido.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,15 @@ import { ClientsModule, Transport } from '@nestjs/microservices';
import { FidoController } from './fido.controller';
import { FidoService } from './fido.service';
import { getNatsOptions } from '@credebl/common/nats.config';
import { CommonConstants } from '@credebl/common/common.constant';

@Module({
imports:[
ClientsModule.register([
{
name: 'NATS_CLIENT',
transport: Transport.NATS,
options: getNatsOptions(process.env.API_GATEWAY_NKEY_SEED)
options: getNatsOptions(CommonConstants.FIDO_SERVICE, process.env.API_GATEWAY_NKEY_SEED)

}
])
Expand Down
3 changes: 2 additions & 1 deletion apps/api-gateway/src/issuance/issuance.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import { HttpModule } from '@nestjs/axios';
import { getNatsOptions } from '@credebl/common/nats.config';
import { ImageServiceService } from '@credebl/image-service';
import { AwsService } from '@credebl/aws';
import { CommonConstants } from '@credebl/common/common.constant';

@Module({
imports: [
Expand All @@ -15,7 +16,7 @@ import { AwsService } from '@credebl/aws';
{
name: 'NATS_CLIENT',
transport: Transport.NATS,
options: getNatsOptions(process.env.API_GATEWAY_NKEY_SEED)
options: getNatsOptions(CommonConstants.ISSUANCE_SERVICE, process.env.API_GATEWAY_NKEY_SEED)
}
])
],
Expand Down
3 changes: 2 additions & 1 deletion apps/api-gateway/src/main.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import { getNatsOptions } from '@credebl/common/nats.config';

import helmet from 'helmet';
import { NodeEnvironment } from '@credebl/enum/enum';
import { CommonConstants } from '@credebl/common/common.constant';
dotenv.config();

async function bootstrap(): Promise<void> {
Expand All @@ -24,7 +25,7 @@ async function bootstrap(): Promise<void> {

app.connectMicroservice<MicroserviceOptions>({
transport: Transport.NATS,
options: getNatsOptions(process.env.API_GATEWAY_NKEY_SEED)
options: getNatsOptions(CommonConstants.API_GATEWAY_SERVICE, process.env.API_GATEWAY_NKEY_SEED)
});

const expressApp = app.getHttpAdapter().getInstance();
Expand Down
3 changes: 2 additions & 1 deletion apps/api-gateway/src/notification/notification.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import { Module } from '@nestjs/common';
import { getNatsOptions } from '@credebl/common/nats.config';
import { NotificationController } from './notification.controller';
import { NotificationService } from './notification.service';
import { CommonConstants } from '@credebl/common/common.constant';

@Module({
imports: [
Expand All @@ -16,7 +17,7 @@ import { NotificationService } from './notification.service';
{
name: 'NATS_CLIENT',
transport: Transport.NATS,
options: getNatsOptions(process.env.API_GATEWAY_NKEY_SEED)
options: getNatsOptions(CommonConstants.NOTIFICATION_SERVICE, process.env.API_GATEWAY_NKEY_SEED)

},
CommonModule
Expand Down
3 changes: 2 additions & 1 deletion apps/api-gateway/src/organization/organization.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import { OrganizationService } from './organization.service';
import { getNatsOptions } from '@credebl/common/nats.config';
import { ImageServiceService } from '@credebl/image-service';
import { AwsService } from '@credebl/aws';
import { CommonConstants } from '@credebl/common/common.constant';
@Module({
imports: [
HttpModule,
Expand All @@ -17,7 +18,7 @@ import { AwsService } from '@credebl/aws';
{
name: 'NATS_CLIENT',
transport: Transport.NATS,
options: getNatsOptions(process.env.API_GATEWAY_NKEY_SEED)
options: getNatsOptions(CommonConstants.ORGANIZATION_SERVICE, process.env.API_GATEWAY_NKEY_SEED)

},
CommonModule
Expand Down
3 changes: 2 additions & 1 deletion apps/api-gateway/src/platform/platform.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import { PlatformService } from './platform.service';
import { ClientsModule, Transport } from '@nestjs/microservices';
import { ConfigModule } from '@nestjs/config';
import { getNatsOptions } from '@credebl/common/nats.config';
import { CommonConstants } from '@credebl/common/common.constant';

@Module({
imports: [
Expand All @@ -12,7 +13,7 @@ import { getNatsOptions } from '@credebl/common/nats.config';
{
name: 'NATS_CLIENT',
transport: Transport.NATS,
options: getNatsOptions(process.env.API_GATEWAY_NKEY_SEED)
options: getNatsOptions(CommonConstants.PLATFORM_SERVICE, process.env.API_GATEWAY_NKEY_SEED)
}
])
],
Expand Down
3 changes: 2 additions & 1 deletion apps/api-gateway/src/schema/schema.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import { Module } from '@nestjs/common';
import { SchemaController } from './schema.controller';
import { SchemaService } from './schema.service';
import { getNatsOptions } from '@credebl/common/nats.config';
import { CommonConstants } from '@credebl/common/common.constant';

@Module({
imports: [
Expand All @@ -13,7 +14,7 @@ import { getNatsOptions } from '@credebl/common/nats.config';
{
name: 'NATS_CLIENT',
transport: Transport.NATS,
options: getNatsOptions(process.env.API_GATEWAY_NKEY_SEED)
options: getNatsOptions(CommonConstants.SCHEMA_SERVICE, process.env.API_GATEWAY_NKEY_SEED)

}
])
Expand Down
3 changes: 2 additions & 1 deletion apps/api-gateway/src/user/user.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import { UserController } from './user.controller';
import { UserService } from './user.service';
import { getNatsOptions } from '@credebl/common/nats.config';
import { AwsService } from '@credebl/aws';
import { CommonConstants } from '@credebl/common/common.constant';

@Module({
imports: [
Expand All @@ -16,7 +17,7 @@ import { AwsService } from '@credebl/aws';
{
name: 'NATS_CLIENT',
transport: Transport.NATS,
options: getNatsOptions(process.env.API_GATEWAY_NKEY_SEED)
options: getNatsOptions(CommonConstants.USER_SERVICE, process.env.API_GATEWAY_NKEY_SEED)

}
])
Expand Down
3 changes: 2 additions & 1 deletion apps/api-gateway/src/utilities/utilities.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import { getNatsOptions } from '@credebl/common/nats.config';
import { ImageServiceService } from '@credebl/image-service';
import { UtilitiesController } from './utilities.controller';
import { UtilitiesService } from './utilities.service';
import { CommonConstants } from '@credebl/common/common.constant';

@Module({
imports: [
Expand All @@ -17,7 +18,7 @@ import { UtilitiesService } from './utilities.service';
{
name: 'NATS_CLIENT',
transport: Transport.NATS,
options: getNatsOptions(process.env.API_GATEWAY_NKEY_SEED)
options: getNatsOptions(CommonConstants.UTILITY_SERVICE, process.env.API_GATEWAY_NKEY_SEED)

},
CommonModule
Expand Down
3 changes: 2 additions & 1 deletion apps/api-gateway/src/verification/verification.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import { VerificationController } from './verification.controller';
import { VerificationService } from './verification.service';
import { getNatsOptions } from '@credebl/common/nats.config';
import { ImageServiceService } from '@credebl/image-service';
import { CommonConstants } from '@credebl/common/common.constant';

@Module({
imports: [
Expand All @@ -14,7 +15,7 @@ import { ImageServiceService } from '@credebl/image-service';
{
name: 'NATS_CLIENT',
transport: Transport.NATS,
options: getNatsOptions(process.env.API_GATEWAY_NKEY_SEED)
options: getNatsOptions(CommonConstants.VERIFICATION_SERVICE, process.env.API_GATEWAY_NKEY_SEED)
}
])
],
Expand Down
3 changes: 2 additions & 1 deletion apps/api-gateway/src/webhook/webhook.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import { CommonService } from '@credebl/common';
import { HttpModule } from '@nestjs/axios';
import { getNatsOptions } from '@credebl/common/nats.config';
import { AwsService } from '@credebl/aws';
import { CommonConstants } from '@credebl/common/common.constant';

@Module({
imports: [
Expand All @@ -14,7 +15,7 @@ import { AwsService } from '@credebl/aws';
{
name: 'NATS_CLIENT',
transport: Transport.NATS,
options: getNatsOptions(process.env.API_GATEWAY_NKEY_SEED)
options: getNatsOptions(CommonConstants.WEBHOOK_SERVICE, process.env.API_GATEWAY_NKEY_SEED)
}
])
],
Expand Down
3 changes: 2 additions & 1 deletion apps/connection/src/connection.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import { PrismaService } from '@credebl/prisma-service';
import { CacheModule } from '@nestjs/cache-manager';
import { getNatsOptions } from '@credebl/common/nats.config';
import { UserActivityRepository } from 'libs/user-activity/repositories';
import { CommonConstants } from '@credebl/common/common.constant';
// import { nkeyAuthenticator } from 'nats';

@Module({
Expand All @@ -17,7 +18,7 @@ import { UserActivityRepository } from 'libs/user-activity/repositories';
{
name: 'NATS_CLIENT',
transport: Transport.NATS,
options: getNatsOptions(process.env.CONNECTION_NKEY_SEED)
options: getNatsOptions(CommonConstants.CONNECTION_SERVICE, process.env.CONNECTION_NKEY_SEED)
}
]),

Expand Down
3 changes: 2 additions & 1 deletion apps/connection/src/main.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,15 @@ import { HttpExceptionFilter } from 'libs/http-exception.filter';
import { Logger } from '@nestjs/common';
import { MicroserviceOptions, Transport } from '@nestjs/microservices';
import { getNatsOptions } from '@credebl/common/nats.config';
import { CommonConstants } from '@credebl/common/common.constant';

const logger = new Logger();

async function bootstrap(): Promise<void> {

const app = await NestFactory.createMicroservice<MicroserviceOptions>(ConnectionModule, {
transport: Transport.NATS,
options: getNatsOptions(process.env.CONNECTION_NKEY_SEED)
options: getNatsOptions(CommonConstants.CONNECTION_SERVICE, process.env.CONNECTION_NKEY_SEED)
});

app.useGlobalFilters(new HttpExceptionFilter());
Expand Down
3 changes: 2 additions & 1 deletion apps/ecosystem/src/ecosystem.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,15 @@ import { PrismaService } from '@credebl/prisma-service';
import { CacheModule } from '@nestjs/cache-manager';
import { getNatsOptions } from '@credebl/common/nats.config';
import { UserActivityRepository } from 'libs/user-activity/repositories';
import { CommonConstants } from '@credebl/common/common.constant';

@Module({
imports: [
ClientsModule.register([
{
name: 'NATS_CLIENT',
transport: Transport.NATS,
options: getNatsOptions(process.env.ECOSYSTEM_NKEY_SEED)
options: getNatsOptions(CommonConstants.ECOSYSTEM_SERVICE, process.env.ECOSYSTEM_NKEY_SEED)
}
]),

Expand Down
Loading