Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
76 commits
Select commit Hold shift + click to select a range
f498c5d
added: removeDefaultOrgEntityTypes to readAllSystemEntityTypes
nevil-mathew Jul 16, 2025
510cde2
added: foreign keys and join queries to fetch entity types along with…
nevil-mathew Jul 16, 2025
17d7c70
fix organization code
adithyadinesh0412 Jul 28, 2025
42126ec
final
adithyadinesh0412 Jul 28, 2025
d7d1fd5
Converted file to migration
adithyadinesh0412 Jul 29, 2025
2b3a44d
minor fixes
adithyadinesh0412 Jul 29, 2025
9d1494e
review comments addressed
adithyadinesh0412 Jul 29, 2025
0317a0b
review comments addressed
adithyadinesh0412 Jul 29, 2025
5708441
review comments addressed
adithyadinesh0412 Jul 29, 2025
c29c5af
updated: entity type and entities flows
nevil-mathew Jul 29, 2025
1c9708e
coderabit review comments addressed
adithyadinesh0412 Jul 30, 2025
7da1e65
add: default config
nevil-mathew Jul 30, 2025
33fe6c8
update: coderabbit config
nevil-mathew Jul 30, 2025
16eb153
removed: tools
nevil-mathew Jul 30, 2025
231a573
Merge pull request #772 from ELEVATE-Project/coderabbit
nevil-mathew Jul 30, 2025
7858cda
Merge pull request #768 from adithyadinesh0412/org-code-fix
nevil-mathew Jul 30, 2025
1705806
fixed: an issue with func param name
nevil-mathew Jul 31, 2025
f2a82be
fixed: return in db queries
nevil-mathew Jul 31, 2025
e538889
fix: issue with app url in role req email
nevil-mathew Jul 31, 2025
558e469
Merge branch 'develop' of https://github.com/ELEVATE-Project/user int…
nevil-mathew Jul 31, 2025
5596b7a
Merge pull request #775 from ELEVATE-Project/role-req-email-fix
aks30 Jul 31, 2025
7378387
Merge branch 'develop' of https://github.com/ELEVATE-Project/user int…
nevil-mathew Jul 31, 2025
59606a3
added: await to bcryptJs
nevil-mathew Jul 31, 2025
11ff426
updated: Align parameter ordering across entityTypeService methods
nevil-mathew Jul 31, 2025
eb47e49
updated: the transitional dual‐identifier strategy in the EntityType …
nevil-mathew Jul 31, 2025
f2cb602
added: organization_code in the unique index on entities
nevil-mathew Jul 31, 2025
728ebc7
fixed: incorrect string comparison with numeric value
nevil-mathew Jul 31, 2025
b7d11d5
updated: inheritEntityType endpoint
nevil-mathew Aug 1, 2025
c5a8d3f
updated: entity_types unique index
nevil-mathew Aug 1, 2025
6b551b6
minor fix for QA DB
adithyadinesh0412 Aug 1, 2025
19854f6
Merge branch 'develop' of https://github.com/ELEVATE-Project/user int…
adithyadinesh0412 Aug 1, 2025
867e222
added Script to hard - delete organization and related data
adithyadinesh0412 Aug 1, 2025
7f101d7
added Script to hard - delete organization and related data
adithyadinesh0412 Aug 1, 2025
21c0aa2
Merge pull request #776 from ELEVATE-Project/feat/verify-entity-type-…
nevil-mathew Aug 1, 2025
7928702
minod changes
adithyadinesh0412 Aug 1, 2025
6e61a4b
refactor: AdminHelper.create for improved admin user creation workflow
nevil-mathew Aug 4, 2025
214a8d9
removed: defaultOrganizationCode validation
nevil-mathew Aug 4, 2025
911bccc
updated: admin create to use transaction
nevil-mathew Aug 4, 2025
2a8b00e
added: options to create queries
nevil-mathew Aug 4, 2025
52b1cfd
minor fixes
adithyadinesh0412 Aug 4, 2025
0a96739
fixed: inconsistent error handling patterns across functions
nevil-mathew Aug 4, 2025
7a3d85d
minor fixes
adithyadinesh0412 Aug 4, 2025
31c3b7e
Merge pull request #778 from adithyadinesh0412/org-code-fix
nevil-mathew Aug 4, 2025
8116b44
Merge pull request #779 from ELEVATE-Project/admin-create-api
nevil-mathew Aug 4, 2025
1306701
updated: acceptTermsAndCondition to work with tenant code
nevil-mathew Aug 4, 2025
e13d2e1
Merge pull request #780 from ELEVATE-Project/admin-create-api
nevil-mathew Aug 4, 2025
2f4fd26
added: tenant code to generateToken
nevil-mathew Aug 4, 2025
32ea386
Tenant code filter added to organization/read internal api
adithyadinesh0412 Aug 4, 2025
8f4df7e
Merge pull request #781 from adithyadinesh0412/org-read-fix
nevil-mathew Aug 4, 2025
785daa3
updated: getBulkInvitesFilesList to work with tenant_code
nevil-mathew Aug 6, 2025
fd0833b
feat: add 'theming' column to organizations and 'configs' column to u…
nevil-mathew Aug 6, 2025
bbbf733
feat: add tenant code to role apis
nevil-mathew Aug 6, 2025
939cd3b
Merge pull request #785 from ELEVATE-Project/config-column-theme-column
aks30 Aug 6, 2025
6697f56
Merge pull request #783 from ELEVATE-Project/admin-create-api
aks30 Aug 6, 2025
28f75e8
Merge pull request #786 from ELEVATE-Project/user-role-fix
aks30 Aug 6, 2025
f8c9a77
update: search api to work with tenant code and new FKs
nevil-mathew Aug 6, 2025
4af2bff
add: role id as optional param
nevil-mathew Aug 7, 2025
011713b
Merge pull request #788 from ELEVATE-Project/account-search-api
aks30 Aug 7, 2025
d9a6e20
feat(org-admin): update deactivateUser endpoint to support tenant code
nevil-mathew Aug 8, 2025
fc8f3d0
improved validation
nevil-mathew Aug 8, 2025
a9538e3
add: await to removeAllUserSessions
nevil-mathew Aug 8, 2025
908ef73
add: tenantCode to user query
nevil-mathew Aug 8, 2025
8e2c8f0
fix: deactivateUserInOrg
nevil-mathew Aug 8, 2025
bce9b4f
fix: password policy message
nevil-mathew Aug 12, 2025
a96b870
feat: deactivateOrg to work with tenant code
nevil-mathew Aug 12, 2025
3a745fc
Merge pull request #790 from ELEVATE-Project/deactivate-user
nevil-mathew Aug 12, 2025
5dad396
Merge branch 'develop' of https://github.com/ELEVATE-Project/user int…
nevil-mathew Aug 12, 2025
ad49496
Merge pull request #792 from ELEVATE-Project/deactivate-org
nevil-mathew Aug 12, 2025
ee0c855
fix: admin login to work with tenant flow
nevil-mathew Aug 12, 2025
5d6117e
fix: issue with createUserSession
nevil-mathew Aug 12, 2025
4cfd655
feat: Remove all 'admin' roles from user.user_organizations
nevil-mathew Aug 12, 2025
c238455
removed: hardcoded admin value
nevil-mathew Aug 12, 2025
9303a85
change status code
rakeshSgr Aug 13, 2025
87058dc
Merge pull request #797 from ELEVATE-Project/userReadResponse
aks30 Aug 13, 2025
c9e5c47
Merge pull request #796 from ELEVATE-Project/login-admin-role-remove
aks30 Aug 13, 2025
e0a5fab
Merge pull request #795 from ELEVATE-Project/admin-login
aks30 Aug 14, 2025
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
152 changes: 152 additions & 0 deletions .coderabbit.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,152 @@
# yaml-language-server: $schema=https://storage.googleapis.com/coderabbit_public_assets/schema.v2.json

language: en-US
tone_instructions: ''
early_access: false
enable_free_tier: true
reviews:
profile: chill
request_changes_workflow: false
high_level_summary: true
high_level_summary_placeholder: '@coderabbitai summary'
high_level_summary_in_walkthrough: false
auto_title_placeholder: '@coderabbitai'
auto_title_instructions: ''
review_status: true
commit_status: true
fail_commit_status: false
collapse_walkthrough: false
changed_files_summary: true
sequence_diagrams: true
estimate_code_review_effort: true
assess_linked_issues: true
related_issues: true
related_prs: true
suggested_labels: true
auto_apply_labels: false
suggested_reviewers: true
auto_assign_reviewers: false
poem: true
labeling_instructions: []

#Exclude non-source code directories from reviews.
path_filters:
- "!deployment/**"
- "!dev-ops/**"
- "!release-notes/**"
- "!src/api-doc/**"
- "!src/assets/**"
- "!src/configs/**"
- "!src/public/**"
- "!src/temp/**"
- "!**/*.md"

# Add specific review instructions for critical paths.
path_instructions:
- path: "src/services/**"
instructions: "This is core business logic. Please check for correctness, efficiency, and potential edge cases."
- path: "src/controllers/**"
instructions: "These are API controllers. Focus on request/response handling, security (auth middleware usage), and proper status codes."
- path: "src/database/queries/**"
instructions: "Review database queries for performance. Check for N+1 problems and ensure indexes can be used."
- path: "src/validators/**"
instructions: "Validate all incoming data thoroughly. Check for missing or incomplete validation rules."
- path: "src/middlewares/**"
instructions: "This is security-sensitive middleware. Scrutinize for potential vulnerabilities."

abort_on_close: true
disable_cache: false
auto_review:
enabled: true
auto_incremental_review: true
ignore_title_keywords: ["WIP", "skip-review"]
labels: []
drafts: false
# Target reviews to development branches.
base_branches:
- "develop"

finishing_touches:
docstrings:
enabled: true
unit_tests:
enabled: true
pre_merge_checks:
docstrings:
mode: warning
threshold: 80
title:
mode: warning
requirements: ''
description:
mode: warning
issue_assessment:
mode: warning
tools:
eslint:
enabled: true
semgrep:
enabled: true
dotenvLint:
enabled: true
sqlfluff:
enabled: true
checkov:
enabled: true
gitleaks:
enabled: true
hadolint:
enabled: true
shellcheck:
enabled: true
actionlint:
enabled: true
circleci:
enabled: true
github-checks:
enabled: true
markdownlint:
enabled: true
yamllint:
enabled: true
biome:
enabled: true
languagetool:
enabled: false # optional
ast-grep:
essential_rules: true
rule_dirs: []
util_dirs: []
packages: []
chat:
auto_reply: true
integrations:
jira:
usage: auto
linear:
usage: auto
knowledge_base:
opt_out: false
web_search:
enabled: true
code_guidelines:
enabled: true
filePatterns: []
learnings:
scope: auto
issues:
scope: auto
jira:
usage: auto
project_keys: []
linear:
usage: auto
team_keys: []
pull_requests:
scope: auto
code_generation:
docstrings:
language: en-US
path_instructions: []
unit_tests:
path_instructions: []
2 changes: 1 addition & 1 deletion src/controllers/v1/account.js
Original file line number Diff line number Diff line change
Expand Up @@ -184,7 +184,7 @@ module.exports = class Account {
try {
const result = await accountService.acceptTermsAndCondition(
req.decodedToken.id,
req.decodedToken.organization_id
req.decodedToken.tenant_code
)
return result
} catch (error) {
Expand Down
32 changes: 26 additions & 6 deletions src/controllers/v1/admin.js
Original file line number Diff line number Diff line change
Expand Up @@ -120,12 +120,28 @@ module.exports = class Admin {
}

/**
* Deactivate Org
* @method
* @name deactivateOrg
* @param {String} req.params.id - org Id.
* @returns {JSON} - deactivated org response
* Deactivate an organization by its ID.
*
* Validates that the requesting user has admin access before deactivating
* the specified organization and all associated users.
*
* @async
* @method deactivateOrg
* @param {Object} req - Express request object.
* @param {string} req.params.id - The unique identifier (ID or code) of the organization to deactivate.
* @param {Object} req.decodedToken - Decoded JWT token of the authenticated user.
* @param {string[]} req.decodedToken.roles - Roles assigned to the logged-in user.
* @param {number} req.decodedToken.id - ID of the logged-in user.
* @param {Object} req.headers - HTTP request headers.
* @param {string} req.headers.tenant-id - Tenant code associated with the request.
* @returns {Promise<Object>} Response object from `adminService.deactivateOrg`,
* containing status, message, and deactivated user count.
*
* @throws {Object} Failure response if:
* - The user is not an admin.
* - The organization cannot be deactivated.
*/

async deactivateOrg(req) {
try {
if (!utilsHelper.validateRoleAccess(req.decodedToken.roles, common.ADMIN_ROLE)) {
Expand All @@ -136,7 +152,11 @@ module.exports = class Admin {
})
}

const result = await adminService.deactivateOrg(req.params.id, req.decodedToken.id)
const result = await adminService.deactivateOrg(
req.params.id,
req.headers?.['tenant-id'],
req.decodedToken.id
)
return result
} catch (error) {
return error
Expand Down
16 changes: 9 additions & 7 deletions src/controllers/v1/entity-type.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ module.exports = class Entity {
return await entityTypeService.create(
req.body,
req.decodedToken.id,
req.decodedToken.organization_code,
req.decodedToken.organization_id,
req.decodedToken.tenant_code
)
Expand All @@ -37,7 +38,7 @@ module.exports = class Entity {
req.body,
req.params.id,
req.decodedToken.id,
req.decodedToken.organization_id,
req.decodedToken.organization_code,
req.decodedToken.tenant_code
)
} catch (error) {
Expand All @@ -58,14 +59,15 @@ module.exports = class Entity {
if (req.body.value) {
return await entityTypeService.readUserEntityTypes(
req.body,
req.decodedToken.id,
req.decodedToken.organization_id,
req.decodedToken.tenant_code
req.decodedToken.organization_code,
req.decodedToken.tenant_code,
req.decodedToken.organization_id
)
}
return await entityTypeService.readAllSystemEntityTypes(
req.decodedToken.organization_id,
req.decodedToken.tenant_code
req.decodedToken.organization_code,
req.decodedToken.tenant_code,
req.decodedToken.organization_id
)
} catch (error) {
return error
Expand All @@ -82,7 +84,7 @@ module.exports = class Entity {

async delete(req) {
try {
return await entityTypeService.delete(req.params.id, req.decodedToken.organization_id)
return await entityTypeService.delete(req.params.id, req.decodedToken.organization_code)
} catch (error) {
return error
}
Expand Down
15 changes: 10 additions & 5 deletions src/controllers/v1/entity.js
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,8 @@ module.exports = class Entity {
const createdEntity = await entityService.create(
req.body,
req.decodedToken.id,
req.decodedToken.tenant_code
req.decodedToken.tenant_code,
req.decodedToken.organization_code
)
return createdEntity
} catch (error) {
Expand All @@ -44,7 +45,8 @@ module.exports = class Entity {
req.body,
req.params.id,
req.decodedToken.id,
req.decodedToken.roles
req.decodedToken.organization_code,
req.decodedToken.tenant_code
)
return updatedEntity
} catch (error) {
Expand All @@ -63,9 +65,8 @@ module.exports = class Entity {
async read(req) {
try {
if (req.query.id || req.query.value) {
return await entityService.read(req.query, req.decodedToken.id)
return await entityService.read(req.query, req.decodedToken.tenant_code)
}
return await entityService.readAll(req.query, null)
} catch (error) {
return error
}
Expand All @@ -81,7 +82,11 @@ module.exports = class Entity {

async delete(req) {
try {
const updatedEntity = await entityService.delete(req.params.id, req.decodedToken.id)
const updatedEntity = await entityService.delete(
req.params.id,
req.decodedToken.organization_code,
req.decodedToken.tenant_code
)
return updatedEntity
} catch (error) {
return error
Expand Down
11 changes: 2 additions & 9 deletions src/controllers/v1/org-admin.js
Original file line number Diff line number Diff line change
Expand Up @@ -161,14 +161,6 @@ module.exports = class OrgAdmin {
})
}

if (!req.body.id && !req.body.email) {
throw responses.failureResponse({
message: 'EMAIL_OR_ID_REQUIRED',
statusCode: httpStatusCode.bad_request,
responseCode: 'CLIENT_ERROR',
})
}

const result = await orgAdminService.deactivateUser(req.body, req.decodedToken)

return result
Expand All @@ -193,9 +185,10 @@ module.exports = class OrgAdmin {
responseCode: 'CLIENT_ERROR',
})
}
let entityTypeDetails = orgAdminService.inheritEntityType(
let entityTypeDetails = await orgAdminService.inheritEntityType(
req.body.entity_type_value,
req.body.target_entity_type_label,
req.decodedToken.organization_code,
req.decodedToken.organization_id,
req.decodedToken.id
)
Expand Down
3 changes: 2 additions & 1 deletion src/controllers/v1/organization.js
Original file line number Diff line number Diff line change
Expand Up @@ -153,7 +153,8 @@ module.exports = class Organization {
try {
const result = await orgService.read(
req.query.organisation_id ? req.query.organisation_id : '',
req.query.organisation_code ? req.query.organisation_code : ''
req.query.organisation_code ? req.query.organisation_code : '',
req.query.tenant_code ? req.query.tenant_code : ''
)
return result
} catch (error) {
Expand Down
Loading