-
Notifications
You must be signed in to change notification settings - Fork 74
fix: Enable/disable ecosystem #1550
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
fix: Enable/disable ecosystem #1550
Conversation
…g table Signed-off-by: pranalidhanavade <pranali.dhanavade@ayanworks.com>
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the You can disable this status message by setting the
📝 WalkthroughWalkthroughAdds an ecosystem feature-flag: API DTO and platform endpoint to toggle it, NATS propagation to ecosystem microservice, DB migration and seed for the flag, a request-scoped guard and Swagger filter to hide/deny ecosystem endpoints when disabled, and updates to ecosystem intent/get flows and repository methods. Changes
Sequence Diagram(s)sequenceDiagram
participant Client
participant PlatformController
participant PlatformService
participant NATS
participant EcosystemController
participant EcosystemService
participant EcosystemRepository
participant Database
Client->>PlatformController: PUT /config/ecosystem (EnableEcosystemDto)
PlatformController->>PlatformService: updateEcosystemConfig(isEcosystemEnabled, adminId)
PlatformService->>NATS: publish "update-ecosystem-config" {isEcosystemEnabled, platformAdminId}
NATS->>EcosystemController: deliver "update-ecosystem-config"
EcosystemController->>EcosystemService: updateEcosystemConfig(payload)
EcosystemService->>EcosystemService: validate payload
EcosystemService->>EcosystemRepository: upsertEcosystemConfig({isEcosystemEnabled, userId})
EcosystemRepository->>Database: select/update platform_config
Database-->>EcosystemRepository: ack
EcosystemRepository-->>EcosystemService: ack
EcosystemService-->>EcosystemController: { message }
EcosystemController-->>NATS: response
PlatformController-->>Client: 200 OK { message }
Estimated code review effort🎯 4 (Complex) | ⏱️ ~45 minutes Possibly related PRs
Suggested labels
Suggested reviewers
Poem
🚥 Pre-merge checks | ✅ 2 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
@coderabbitai full review |
✅ Actions performedFull review triggered. |
|
@coderabbitai full review |
✅ Actions performedFull review triggered. |
Signed-off-by: pranalidhanavade <pranali.dhanavade@ayanworks.com>
|
@coderabbitai full review |
✅ Actions performedFull review triggered. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 2
🤖 Fix all issues with AI agents
In `@apps/api-gateway/src/authz/guards/ecosystem-feature-guard.ts`:
- Around line 1-19: Replace the hardcoded ForbiddenException message in
EcosystemFeatureGuard.canActivate with the existing constant
ResponseMessages.ecosystem.error.ecosystemNotEnabled: import ResponseMessages
and throw new
ForbiddenException(ResponseMessages.ecosystem.error.ecosystemNotEnabled) in the
same location where the current string is used so the guard uses the
standardized message.
In `@apps/api-gateway/src/main.ts`:
- Around line 85-89: Wrap the call to ecosystemFilter.filterDocument(document)
in a try/catch so a thrown error doesn't stop bootstrap: after creating the
Swagger document with SwaggerModule.createDocument and retrieving
EcosystemSwaggerFilter via app.get(EcosystemSwaggerFilter), call
filterDocument(document) inside a try block and on error log a warning
(including the error) and continue using the original unfiltered document
variable as the fallback; ensure the variable name document is preserved so
subsequent code uses the fallback when filtering fails.
🧹 Nitpick comments (4)
apps/api-gateway/src/authz/guards/ecosystem-feature-guard.ts (1)
5-5: Consider caching or default scope for performance.
Scope.REQUESTcreates a new guard instance per request, which means a database call viagetPlatformConfig()on every protected route. If the ecosystem enabled/disabled state changes infrequently, consider:
- Using default singleton scope with a short TTL cache, or
- Leveraging NestJS
CacheModule(already imported inAppModule) to cache the config.This would reduce database load on high-traffic routes.
apps/ecosystem/repositories/ecosystem.repository.ts (2)
1149-1169: UnuseduserIdparameter indeleteIntent.The
userIdfield is included in the data parameter but is never used in the method body. If it's intended for future audit logging (e.g.,deletedBy), consider implementing it now or removing the parameter to avoid confusion.
1171-1190: Method nameupsertEcosystemConfigis misleading - it only performs update.The method throws an exception when no config exists rather than creating one, which contradicts the "upsert" semantics. Consider:
- Renaming to
updateEcosystemConfigto accurately reflect behavior- Or implementing true upsert behavior using Prisma's
upsertAdditionally, the
userIdparameter is destructured but never used in the update operation.♻️ Option 1: Rename to updateEcosystemConfig
- async upsertEcosystemConfig(payload: { isEcosystemEnabled: boolean; userId: string }): Promise<void> { + async updateEcosystemConfig(payload: { isEcosystemEnabled: boolean }): Promise<void> { const { isEcosystemEnabled } = payload;♻️ Option 2: Implement true upsert with audit trail
async upsertEcosystemConfig(payload: { isEcosystemEnabled: boolean; userId: string }): Promise<void> { - const { isEcosystemEnabled } = payload; - - const existingConfig = await this.prisma.platform_config.findFirst(); - - if (!existingConfig) { - throw new RpcException({ - statusCode: 500, - message: 'Platform config not found' - }); - } - - await this.prisma.platform_config.update({ - where: { id: existingConfig.id }, - data: { isEcosystemEnabled } - }); + const { isEcosystemEnabled, userId } = payload; + + const existingConfig = await this.prisma.platform_config.findFirst(); + + if (existingConfig) { + await this.prisma.platform_config.update({ + where: { id: existingConfig.id }, + data: { isEcosystemEnabled, lastChangedBy: userId } + }); + } else { + await this.prisma.platform_config.create({ + data: { isEcosystemEnabled, createdBy: userId, lastChangedBy: userId } + }); + } }apps/ecosystem/src/ecosystem.service.ts (1)
682-700: Consider using theuserIdparameter for audit trail tracking in the platform config updates.The
platformAdminIdis passed toupsertEcosystemConfigasuserId, but examining the repository implementation (lines 1174-1190), this parameter is destructured but never used in the update operation. Theplatform_configmodel haslastChangedByandlastChangedDateTimefields available for audit tracking, but they currently default to static values. Consider updating the implementation to track who made configuration changes:♻️ Suggested fix to use userId for audit trail
async upsertEcosystemConfig(payload: { isEcosystemEnabled: boolean; userId: string }): Promise<void> { - const { isEcosystemEnabled } = payload; + const { isEcosystemEnabled, userId } = payload; const existingConfig = await this.prisma.platform_config.findFirst(); if (!existingConfig) { throw new RpcException({ statusCode: 500, message: 'Platform config not found' }); } await this.prisma.platform_config.update({ where: { id: existingConfig.id }, - data: { isEcosystemEnabled } + data: { isEcosystemEnabled, lastChangedBy: userId } }); }
Signed-off-by: pranalidhanavade <pranali.dhanavade@ayanworks.com>
Signed-off-by: pranalidhanavade <pranali.dhanavade@ayanworks.com>
|
@coderabbitai review |
✅ Actions performedReview triggered.
|
|
@coderabbitai full review |
✅ Actions performedFull review triggered. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
apps/api-gateway/src/platform/platform.module.ts (1)
14-26:⚠️ Potential issue | 🟠 MajorExtract a provider-only module from the ecosystem module to prevent controller registration in the API gateway.
The importedEcosystemServiceModuledeclaresEcosystemController, which will be mounted in the API gateway when the module is imported. This exposes internal endpoints and may bypass gateway guards. Extract the service and repository into a separate, provider-only module and import that instead.
🧹 Nitpick comments (1)
apps/ecosystem/repositories/ecosystem.repository.ts (1)
1171-1190: Consider aligning method name with behavior (update vs upsert).
This throws if the config is missing, so “upsert” may mislead callers. Either rename to an update-only name or implement a real upsert with a create fallback.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 5
🤖 Fix all issues with AI agents
In `@apps/api-gateway/src/authz/guards/ecosystem-swagger.filter.ts`:
- Around line 12-26: The iteration over document.paths can throw when
document.paths is undefined; add a guard at the top of the block that checks
whether document.paths exists (and is an object) before calling
Object.keys(document.paths) — i.e., when enabled is false, return/skip if
!document.paths; keep the existing logic that inspects operation.tags
(operation.tags?.includes('ecosystem')) and deletes methods/paths as before so
only proceed when document.paths is present.
In `@apps/ecosystem/repositories/ecosystem.repository.ts`:
- Around line 1171-1189: The upsertEcosystemConfig function updates
isEcosystemEnabled but doesn't persist audit fields; modify the
prisma.platform_config.update call in upsertEcosystemConfig to also set
lastChangedBy to payload.userId and lastChangedDateTime to the current timestamp
(e.g., new Date()), so the update includes data: { isEcosystemEnabled,
lastChangedBy: userId, lastChangedDateTime: new Date() } and ensure you
import/format Date in a way compatible with Prisma.
In `@apps/ecosystem/src/ecosystem.service.ts`:
- Around line 687-704: The updateEcosystemConfig method currently allows missing
or invalid platformAdminId which can cause upsertEcosystemConfig to record an
invalid userId; add validation in updateEcosystemConfig to ensure
platformAdminId is a non-empty string (e.g., typeof platformAdminId === 'string'
&& platformAdminId.trim() !== '') and throw a BadRequestException with an
appropriate ResponseMessages.ecosystem error if it fails, then pass the
validated platformAdminId into ecosystemRepository.upsertEcosystemConfig
(referencing updateEcosystemConfig and
ecosystemRepository.upsertEcosystemConfig).
- Around line 674-681: In deleteIntent, validate that ecosystemId, intentId and
userId are present and non-empty before calling
ecosystemRepository.deleteIntent; in the deleteIntent method perform guards
(e.g., check for undefined/null/empty string) on the parameters and throw a
descriptive error or return a structured validation error if any are missing, so
the repository is never called with incomplete identifiers.
- Around line 283-290: Add a defensive userId guard at the top of getEcosystems:
if userId is falsy throw the same validation error used elsewhere (e.g., match
pattern from getInvitationsByUserId/createNewEcosystem). Then resolve behavior
by role: fetch the user's roles (or call the existing user/role helper) and if
the user is PLATFORM_ADMIN return this.ecosystemRepository.getAllEcosystems(),
if the user is ECOSYSTEM_LEAD return
this.ecosystemRepository.getEcosystemsForEcosystemLead(userId), otherwise return
an empty list or a forbidden error per the service convention; ensure you
reference getEcosystemsForEcosystemLead and getAllEcosystems when implementing
the role-based branching.
🧹 Nitpick comments (2)
apps/api-gateway/src/ecosystem/dtos/enable-ecosystem.ts (1)
4-11: Consider adding@IsDefined()for explicit required field validation.While
@IsBoolean()will fail if the field is omitted, adding@IsDefined()makes the required nature explicit and provides a clearer validation error message.♻️ Suggested improvement
import { ApiProperty } from '@nestjs/swagger'; -import { IsBoolean } from 'class-validator'; +import { IsBoolean, IsDefined } from 'class-validator'; export class EnableEcosystemDto { `@ApiProperty`({ example: true, description: 'Enable or disable ecosystem creation' }) + `@IsDefined`() `@IsBoolean`() isEcosystemEnabled: boolean; }apps/api-gateway/src/platform/platform.controller.ts (1)
285-310: Consider adding@ApiTagsdecorator for Swagger organization.The new
updateEcosystemConfigendpoint lacks an@ApiTagsdecorator. Other endpoints in this controller use@ApiTags(e.g.,'schemas','credential-definitions','ledgers'). Adding a tag like'platform-config'or'ecosystem'would improve Swagger documentation organization.♻️ Suggested improvement
`@Put`('/config/ecosystem') `@Roles`(OrgRoles.PLATFORM_ADMIN) + `@ApiTags`('platform-config') `@ApiOperation`({ summary: 'Enable or disable ecosystem feature',
Signed-off-by: pranalidhanavade <pranali.dhanavade@ayanworks.com>
Signed-off-by: pranalidhanavade <pranali.dhanavade@ayanworks.com>
|
d24ac37
into
feat/platform_admin_and_ecosystem
* refactor: added isEcosystemEnabled flag in database in platform_config table Signed-off-by: pranalidhanavade <pranali.dhanavade@ayanworks.com> * refactor: enable/disable ecosystem feature from database Signed-off-by: pranalidhanavade <pranali.dhanavade@ayanworks.com> * fix: coderabbit suggestions Signed-off-by: pranalidhanavade <pranali.dhanavade@ayanworks.com> * refactor: enable/disable ecosystem feature and delete intent API issue Signed-off-by: pranalidhanavade <pranali.dhanavade@ayanworks.com> * comments on PR Signed-off-by: pranalidhanavade <pranali.dhanavade@ayanworks.com> * coderabbit comments on PR Signed-off-by: pranalidhanavade <pranali.dhanavade@ayanworks.com> --------- Signed-off-by: pranalidhanavade <pranali.dhanavade@ayanworks.com>
* refactor: added isEcosystemEnabled flag in database in platform_config table Signed-off-by: pranalidhanavade <pranali.dhanavade@ayanworks.com> * refactor: enable/disable ecosystem feature from database Signed-off-by: pranalidhanavade <pranali.dhanavade@ayanworks.com> * fix: coderabbit suggestions Signed-off-by: pranalidhanavade <pranali.dhanavade@ayanworks.com> * refactor: enable/disable ecosystem feature and delete intent API issue Signed-off-by: pranalidhanavade <pranali.dhanavade@ayanworks.com> * comments on PR Signed-off-by: pranalidhanavade <pranali.dhanavade@ayanworks.com> * coderabbit comments on PR Signed-off-by: pranalidhanavade <pranali.dhanavade@ayanworks.com> --------- Signed-off-by: pranalidhanavade <pranali.dhanavade@ayanworks.com>
* feat: ecosystem service and create ecosystem invitation API route (#1540) * feat/add script to add platform admin keycloak and role Signed-off-by: sujitaw <sujit.sutar@ayanworks.com> * fix/eslint issue Signed-off-by: sujitaw <sujit.sutar@ayanworks.com> * fix/coderabbit comments Signed-off-by: sujitaw <sujit.sutar@ayanworks.com> * fix/changes to fetch value from db Signed-off-by: sujitaw <sujit.sutar@ayanworks.com> * feat: ecosystem service and create ecosystem invitation API route Signed-off-by: pranalidhanavade <pranali.dhanavade@ayanworks.com> * fix: coderabbit issues Signed-off-by: pranalidhanavade <pranali.dhanavade@ayanworks.com> * fix: coderabbit warnings Signed-off-by: pranalidhanavade <pranali.dhanavade@ayanworks.com> * feat: get all invitations api Signed-off-by: pranalidhanavade <pranali.dhanavade@ayanworks.com> * refactor: removed userId parameter from send invitation and get invitation api Signed-off-by: pranalidhanavade <pranali.dhanavade@ayanworks.com> * feat: create and get ecosystem api routes Signed-off-by: pranalidhanavade <pranali.dhanavade@ayanworks.com> * fix: coderabbit warning Signed-off-by: pranalidhanavade <pranali.dhanavade@ayanworks.com> * fix: coderabbit warnings and suggestions Signed-off-by: pranalidhanavade <pranali.dhanavade@ayanworks.com> * fix: coderabbit warnings resolved Signed-off-by: pranalidhanavade <pranali.dhanavade@ayanworks.com> * fix: coderabbit issues Signed-off-by: pranalidhanavade <pranali.dhanavade@ayanworks.com> * resolved comments on PR Signed-off-by: pranalidhanavade <pranali.dhanavade@ayanworks.com> * resolve comments on PR Signed-off-by: pranalidhanavade <pranali.dhanavade@ayanworks.com> * resolve comments on PR Signed-off-by: pranalidhanavade <pranali.dhanavade@ayanworks.com> --------- Signed-off-by: sujitaw <sujit.sutar@ayanworks.com> Signed-off-by: pranalidhanavade <pranali.dhanavade@ayanworks.com> Co-authored-by: sujitaw <sujit.sutar@ayanworks.com> * feat: Add script to add platform admin to keycloak and create user org roles (#1538) * feat/add script to add platform admin keycloak and role Signed-off-by: sujitaw <sujit.sutar@ayanworks.com> * fix/eslint issue Signed-off-by: sujitaw <sujit.sutar@ayanworks.com> * fix/coderabbit comments Signed-off-by: sujitaw <sujit.sutar@ayanworks.com> * fix/changes to fetch value from db Signed-off-by: sujitaw <sujit.sutar@ayanworks.com> * fix pr comments Signed-off-by: sujitaw <sujit.sutar@ayanworks.com> * fix pr comments Signed-off-by: sujitaw <sujit.sutar@ayanworks.com> --------- Signed-off-by: sujitaw <sujit.sutar@ayanworks.com> * feat: ecosystem member invitation and management API's (#1545) * feat/add script to add platform admin keycloak and role Signed-off-by: sujitaw <sujit.sutar@ayanworks.com> * fix/eslint issue Signed-off-by: sujitaw <sujit.sutar@ayanworks.com> * fix/coderabbit comments Signed-off-by: sujitaw <sujit.sutar@ayanworks.com> * feat: ecosystem service and create ecosystem invitation API route Signed-off-by: pranalidhanavade <pranali.dhanavade@ayanworks.com> * fix: coderabbit issues Signed-off-by: pranalidhanavade <pranali.dhanavade@ayanworks.com> * fix: coderabbit warnings Signed-off-by: pranalidhanavade <pranali.dhanavade@ayanworks.com> * feat: get all invitations api Signed-off-by: pranalidhanavade <pranali.dhanavade@ayanworks.com> * wip Signed-off-by: sujitaw <sujit.sutar@ayanworks.com> * wip completed invite member and update status for invitation Signed-off-by: sujitaw <sujit.sutar@ayanworks.com> * wip Signed-off-by: sujitaw <sujit.sutar@ayanworks.com> * wip Signed-off-by: sujitaw <sujit.sutar@ayanworks.com> * feat/added ecosystem invitation workflow apis Signed-off-by: sujitaw <sujit.sutar@ayanworks.com> * fix/code rabbit comments Signed-off-by: sujitaw <sujit.sutar@ayanworks.com> * fix/minor typo issue Signed-off-by: sujitaw <sujit.sutar@ayanworks.com> * fix/ pr comments Signed-off-by: sujitaw <sujit.sutar@ayanworks.com> * fix/pr comments Signed-off-by: sujitaw <sujit.sutar@ayanworks.com> --------- Signed-off-by: sujitaw <sujit.sutar@ayanworks.com> Signed-off-by: pranalidhanavade <pranali.dhanavade@ayanworks.com> Co-authored-by: pranalidhanavade <pranali.dhanavade@ayanworks.com> * fix/version for nest-cli Signed-off-by: sujitaw <sujit.sutar@ayanworks.com> * feat: add dockerfile for ecosystem Signed-off-by: sahil.kamble@ayanworks.com <sahil.kamble@ayanworks.com> * feat: add ecosystemt in github actions workflow Signed-off-by: sahil.kamble@ayanworks.com <sahil.kamble@ayanworks.com> * feat: create intent API endpoints and intent template mapping APIs (#1547) * feat: create intent APIs Signed-off-by: pranalidhanavade <pranali.dhanavade@ayanworks.com> * feat: create intent mapping and create intent APIs Signed-off-by: pranalidhanavade <pranali.dhanavade@ayanworks.com> * fix: sonarlint issues Signed-off-by: pranalidhanavade <pranali.dhanavade@ayanworks.com> * refactor: move validations from ecosystem repository to ecosystem service Signed-off-by: pranalidhanavade <pranali.dhanavade@ayanworks.com> * fix: sonarlint issues Signed-off-by: pranalidhanavade <pranali.dhanavade@ayanworks.com> * fix: sonarlint issues Signed-off-by: pranalidhanavade <pranali.dhanavade@ayanworks.com> * fix: sonarlint issues Signed-off-by: pranalidhanavade <pranali.dhanavade@ayanworks.com> * fix: coderabbit suggestions Signed-off-by: pranalidhanavade <pranali.dhanavade@ayanworks.com> * fix: comments on PR Signed-off-by: pranalidhanavade <pranali.dhanavade@ayanworks.com> --------- Signed-off-by: pranalidhanavade <pranali.dhanavade@ayanworks.com> * fix: resloved issue for docker build (#1549) Signed-off-by: pranalidhanavade <pranali.dhanavade@ayanworks.com> * fix: Enable/disable ecosystem (#1550) * refactor: added isEcosystemEnabled flag in database in platform_config table Signed-off-by: pranalidhanavade <pranali.dhanavade@ayanworks.com> * refactor: enable/disable ecosystem feature from database Signed-off-by: pranalidhanavade <pranali.dhanavade@ayanworks.com> * fix: coderabbit suggestions Signed-off-by: pranalidhanavade <pranali.dhanavade@ayanworks.com> * refactor: enable/disable ecosystem feature and delete intent API issue Signed-off-by: pranalidhanavade <pranali.dhanavade@ayanworks.com> * comments on PR Signed-off-by: pranalidhanavade <pranali.dhanavade@ayanworks.com> * coderabbit comments on PR Signed-off-by: pranalidhanavade <pranali.dhanavade@ayanworks.com> --------- Signed-off-by: pranalidhanavade <pranali.dhanavade@ayanworks.com> * fix/code rabbit issue Signed-off-by: sujitaw <sujit.sutar@ayanworks.com> * fix/code rabbit issue Signed-off-by: sujitaw <sujit.sutar@ayanworks.com> --------- Signed-off-by: sujitaw <sujit.sutar@ayanworks.com> Signed-off-by: pranalidhanavade <pranali.dhanavade@ayanworks.com> Signed-off-by: sahil.kamble@ayanworks.com <sahil.kamble@ayanworks.com> Co-authored-by: sujitaw <sujit.sutar@ayanworks.com> Co-authored-by: sahil.kamble@ayanworks.com <sahil.kamble@ayanworks.com>
* feat: ecosystem service and create ecosystem invitation API route (#1540) * feat/add script to add platform admin keycloak and role Signed-off-by: sujitaw <sujit.sutar@ayanworks.com> * fix/eslint issue Signed-off-by: sujitaw <sujit.sutar@ayanworks.com> * fix/coderabbit comments Signed-off-by: sujitaw <sujit.sutar@ayanworks.com> * fix/changes to fetch value from db Signed-off-by: sujitaw <sujit.sutar@ayanworks.com> * feat: ecosystem service and create ecosystem invitation API route Signed-off-by: pranalidhanavade <pranali.dhanavade@ayanworks.com> * fix: coderabbit issues Signed-off-by: pranalidhanavade <pranali.dhanavade@ayanworks.com> * fix: coderabbit warnings Signed-off-by: pranalidhanavade <pranali.dhanavade@ayanworks.com> * feat: get all invitations api Signed-off-by: pranalidhanavade <pranali.dhanavade@ayanworks.com> * refactor: removed userId parameter from send invitation and get invitation api Signed-off-by: pranalidhanavade <pranali.dhanavade@ayanworks.com> * feat: create and get ecosystem api routes Signed-off-by: pranalidhanavade <pranali.dhanavade@ayanworks.com> * fix: coderabbit warning Signed-off-by: pranalidhanavade <pranali.dhanavade@ayanworks.com> * fix: coderabbit warnings and suggestions Signed-off-by: pranalidhanavade <pranali.dhanavade@ayanworks.com> * fix: coderabbit warnings resolved Signed-off-by: pranalidhanavade <pranali.dhanavade@ayanworks.com> * fix: coderabbit issues Signed-off-by: pranalidhanavade <pranali.dhanavade@ayanworks.com> * resolved comments on PR Signed-off-by: pranalidhanavade <pranali.dhanavade@ayanworks.com> * resolve comments on PR Signed-off-by: pranalidhanavade <pranali.dhanavade@ayanworks.com> * resolve comments on PR Signed-off-by: pranalidhanavade <pranali.dhanavade@ayanworks.com> --------- Signed-off-by: sujitaw <sujit.sutar@ayanworks.com> Signed-off-by: pranalidhanavade <pranali.dhanavade@ayanworks.com> Co-authored-by: sujitaw <sujit.sutar@ayanworks.com> * feat: Add script to add platform admin to keycloak and create user org roles (#1538) * feat/add script to add platform admin keycloak and role Signed-off-by: sujitaw <sujit.sutar@ayanworks.com> * fix/eslint issue Signed-off-by: sujitaw <sujit.sutar@ayanworks.com> * fix/coderabbit comments Signed-off-by: sujitaw <sujit.sutar@ayanworks.com> * fix/changes to fetch value from db Signed-off-by: sujitaw <sujit.sutar@ayanworks.com> * fix pr comments Signed-off-by: sujitaw <sujit.sutar@ayanworks.com> * fix pr comments Signed-off-by: sujitaw <sujit.sutar@ayanworks.com> --------- Signed-off-by: sujitaw <sujit.sutar@ayanworks.com> * feat: ecosystem member invitation and management API's (#1545) * feat/add script to add platform admin keycloak and role Signed-off-by: sujitaw <sujit.sutar@ayanworks.com> * fix/eslint issue Signed-off-by: sujitaw <sujit.sutar@ayanworks.com> * fix/coderabbit comments Signed-off-by: sujitaw <sujit.sutar@ayanworks.com> * feat: ecosystem service and create ecosystem invitation API route Signed-off-by: pranalidhanavade <pranali.dhanavade@ayanworks.com> * fix: coderabbit issues Signed-off-by: pranalidhanavade <pranali.dhanavade@ayanworks.com> * fix: coderabbit warnings Signed-off-by: pranalidhanavade <pranali.dhanavade@ayanworks.com> * feat: get all invitations api Signed-off-by: pranalidhanavade <pranali.dhanavade@ayanworks.com> * wip Signed-off-by: sujitaw <sujit.sutar@ayanworks.com> * wip completed invite member and update status for invitation Signed-off-by: sujitaw <sujit.sutar@ayanworks.com> * wip Signed-off-by: sujitaw <sujit.sutar@ayanworks.com> * wip Signed-off-by: sujitaw <sujit.sutar@ayanworks.com> * feat/added ecosystem invitation workflow apis Signed-off-by: sujitaw <sujit.sutar@ayanworks.com> * fix/code rabbit comments Signed-off-by: sujitaw <sujit.sutar@ayanworks.com> * fix/minor typo issue Signed-off-by: sujitaw <sujit.sutar@ayanworks.com> * fix/ pr comments Signed-off-by: sujitaw <sujit.sutar@ayanworks.com> * fix/pr comments Signed-off-by: sujitaw <sujit.sutar@ayanworks.com> --------- Signed-off-by: sujitaw <sujit.sutar@ayanworks.com> Signed-off-by: pranalidhanavade <pranali.dhanavade@ayanworks.com> Co-authored-by: pranalidhanavade <pranali.dhanavade@ayanworks.com> * fix/version for nest-cli Signed-off-by: sujitaw <sujit.sutar@ayanworks.com> * feat: add dockerfile for ecosystem Signed-off-by: sahil.kamble@ayanworks.com <sahil.kamble@ayanworks.com> * feat: add ecosystemt in github actions workflow Signed-off-by: sahil.kamble@ayanworks.com <sahil.kamble@ayanworks.com> * feat: create intent API endpoints and intent template mapping APIs (#1547) * feat: create intent APIs Signed-off-by: pranalidhanavade <pranali.dhanavade@ayanworks.com> * feat: create intent mapping and create intent APIs Signed-off-by: pranalidhanavade <pranali.dhanavade@ayanworks.com> * fix: sonarlint issues Signed-off-by: pranalidhanavade <pranali.dhanavade@ayanworks.com> * refactor: move validations from ecosystem repository to ecosystem service Signed-off-by: pranalidhanavade <pranali.dhanavade@ayanworks.com> * fix: sonarlint issues Signed-off-by: pranalidhanavade <pranali.dhanavade@ayanworks.com> * fix: sonarlint issues Signed-off-by: pranalidhanavade <pranali.dhanavade@ayanworks.com> * fix: sonarlint issues Signed-off-by: pranalidhanavade <pranali.dhanavade@ayanworks.com> * fix: coderabbit suggestions Signed-off-by: pranalidhanavade <pranali.dhanavade@ayanworks.com> * fix: comments on PR Signed-off-by: pranalidhanavade <pranali.dhanavade@ayanworks.com> --------- Signed-off-by: pranalidhanavade <pranali.dhanavade@ayanworks.com> * fix: resloved issue for docker build (#1549) Signed-off-by: pranalidhanavade <pranali.dhanavade@ayanworks.com> * fix: Enable/disable ecosystem (#1550) * refactor: added isEcosystemEnabled flag in database in platform_config table Signed-off-by: pranalidhanavade <pranali.dhanavade@ayanworks.com> * refactor: enable/disable ecosystem feature from database Signed-off-by: pranalidhanavade <pranali.dhanavade@ayanworks.com> * fix: coderabbit suggestions Signed-off-by: pranalidhanavade <pranali.dhanavade@ayanworks.com> * refactor: enable/disable ecosystem feature and delete intent API issue Signed-off-by: pranalidhanavade <pranali.dhanavade@ayanworks.com> * comments on PR Signed-off-by: pranalidhanavade <pranali.dhanavade@ayanworks.com> * coderabbit comments on PR Signed-off-by: pranalidhanavade <pranali.dhanavade@ayanworks.com> --------- Signed-off-by: pranalidhanavade <pranali.dhanavade@ayanworks.com> * fix/code rabbit issue Signed-off-by: sujitaw <sujit.sutar@ayanworks.com> * fix/code rabbit issue Signed-off-by: sujitaw <sujit.sutar@ayanworks.com> --------- Signed-off-by: sujitaw <sujit.sutar@ayanworks.com> Signed-off-by: pranalidhanavade <pranali.dhanavade@ayanworks.com> Signed-off-by: sahil.kamble@ayanworks.com <sahil.kamble@ayanworks.com> Co-authored-by: sujitaw <sujit.sutar@ayanworks.com> Co-authored-by: sahil.kamble@ayanworks.com <sahil.kamble@ayanworks.com>



What
Summary by CodeRabbit
New Features
Other Changes
✏️ Tip: You can customize this high-level summary in your review settings.