Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
71 commits
Select commit Hold shift + click to select a range
e9cf645
Issue #251045 feat: Hierarchical Categories Implementation
vaivk369 Jan 8, 2026
554d27a
added details API
vaivk369 Jan 8, 2026
030f146
Issue #000 fix: metainformation added
vaivk369 Jan 8, 2026
ceb9598
Issue #000 fix: parent_id is not defined
vaivk369 Jan 8, 2026
173caa3
Issue #000 fix: parent_id is not defined
vaivk369 Jan 8, 2026
5aa79a8
Coderabbit comments resolved
vaivk369 Jan 8, 2026
a77b037
Resolving commnets
vaivk369 Jan 9, 2026
a6b6f27
Resolving commnets
vaivk369 Jan 9, 2026
785dbe9
Resolving commnets
vaivk369 Jan 9, 2026
28fe71d
Update .env.sample
AbhilashKD Jan 10, 2026
567f3fd
Merge pull request #1 from vaivk369/new-dev
vaivk369 Jan 10, 2026
be237cf
Create brac-dev-deployment.yaml
AbhilashKD Jan 10, 2026
4883172
Explicitly export AWS variables in deployment script
AbhilashKD Jan 10, 2026
73288b4
Update brac-dev-deployment.yaml
AbhilashKD Jan 10, 2026
c6880eb
Issue #000 fix: if entityId is passed to the importFromLibray, error …
vaivk369 Jan 12, 2026
119f728
Issue #000 fix: if entityId is passed to the importFromLibray, error …
vaivk369 Jan 12, 2026
3c71067
Merge pull request #2 from vaivk369/import-lib-entityID
vaivk369 Jan 12, 2026
ee6f92b
Issue #000 fix: ProgramUser mapping
vaivk369 Jan 20, 2026
09709aa
Merge pull request #3 from vaivk369/vk-idp-mt
vaivk369 Jan 20, 2026
df605d8
Routes added
vaivk369 Jan 20, 2026
90ab393
Routes added
vaivk369 Jan 20, 2026
567600d
Merge branch 'develop' into vk-idp-mt
vaivk369 Jan 20, 2026
d05b050
Merge pull request #4 from vaivk369/vk-idp-mt
vaivk369 Jan 20, 2026
af22646
Issue#252622 Feat: Importing project from multiple templates
Sachintechjoomla Jan 20, 2026
f381ced
Issue#252622 Feat: Importing project from multiple templates
Sachintechjoomla Jan 20, 2026
e4489a1
Issue#252622 Feat: Importing project from multiple templates
Sachintechjoomla Jan 20, 2026
91ec872
Routes added
vaivk369 Jan 20, 2026
8a3a639
Merge branch 'vk-idp-mt' of github.com:vaivk369/sl-project-service in…
vaivk369 Jan 20, 2026
7507135
Merge pull request #5 from vaivk369/vk-idp-mt
vaivk369 Jan 20, 2026
07f7e35
filter by search and status
vaivk369 Jan 20, 2026
92cf1ed
Merge pull request #6 from vaivk369/vk-idp-mt
vaivk369 Jan 20, 2026
31c6edd
Issue #000 fix: limit and page not working
vaivk369 Jan 21, 2026
38354e4
Merge pull request #7 from vaivk369/vk-idp-mt
vaivk369 Jan 21, 2026
73cada4
Issue#252622 Feat: Importing project from multiple templates
Sachintechjoomla Jan 21, 2026
f630f70
Merge pull request #8 from Sachintechjoomla/Issue#252622
vaivk369 Jan 21, 2026
79d5a80
Issue #000 fix: getEntities by entityId
vaivk369 Jan 21, 2026
38974d3
Merge pull request #9 from vaivk369/vk-idp-mt
vaivk369 Jan 21, 2026
60906ab
Feat: API to update the specific entity of the LC entities
vaivk369 Jan 21, 2026
fd02bfa
Merge pull request #11 from vaivk369/vk-idp-mt
vaivk369 Jan 21, 2026
3d62845
Feat: API to update the specific entity of the LC entities
vaivk369 Jan 21, 2026
77cfb22
Merge pull request #12 from vaivk369/vk-idp-mt
vaivk369 Jan 21, 2026
bee293d
Issue #000 fix: updating overview count on craeteOrUpdate and updateE…
vaivk369 Jan 21, 2026
d8944a5
Merge pull request #13 from vaivk369/vk-idp-mt
vaivk369 Jan 21, 2026
7ae4667
Issue #000 fix: fetching user profile from user service directly inst…
vaivk369 Jan 22, 2026
e66f7f5
Issue #000 update user entity status when idp is assignned, and creat…
vaivk369 Jan 22, 2026
643cafb
Merge pull request #14 from vaivk369/vk-createProjectPlan
vaivk369 Jan 22, 2026
86b2021
Issue #000 fix: user activity kafka consumer added which will listen …
vaivk369 Jan 22, 2026
b5c84b8
Merge pull request #15 from vaivk369/vk-createProjectPlan
vaivk369 Jan 22, 2026
2951691
Issue #000 fix: user activity kafka consumer removed as it was async
vaivk369 Jan 22, 2026
a44c198
Merge pull request #16 from vaivk369/vk-createProjectPlan
vaivk369 Jan 22, 2026
c659189
Issue #000 fix: check for program reference
vaivk369 Jan 23, 2026
a47316e
Merge pull request #17 from vaivk369/vk-createProjectPlan
vaivk369 Jan 23, 2026
4c3287d
Merge pull request #18 from vaivk369/vk-merge-upstream
vaivk369 Jan 23, 2026
08b2def
Merge branch 'develop' of github.com:ELEVATE-Project/project-service …
Sachintechjoomla Jan 23, 2026
9650f12
Issue #000 fix: remove timestamp from the name of the child observation
vaivk369 Jan 23, 2026
3615dd2
Merge pull request #19 from vaivk369/vk-23Jan
vaivk369 Jan 23, 2026
1c17d80
Issue#252622 Feat: Importing project from multiple templates
Sachintechjoomla Jan 23, 2026
2f6f100
Merge pull request #20 from Sachintechjoomla/Issue#252622
vaivk369 Jan 27, 2026
28830cd
Issue #000 fix: add templates and acl to the project plan
vaivk369 Jan 27, 2026
44520df
Merge pull request #21 from vaivk369/vk-23Jan
vaivk369 Jan 27, 2026
cf6ff14
Issue #000 fix: no overview count is sent if assigned users with spec…
vaivk369 Jan 27, 2026
6730c44
Merge pull request #22 from vaivk369/vk-programUsers
vaivk369 Jan 27, 2026
5a7aff7
Issue#253042 Fix: Update task status for observation type task complete
Sachintechjoomla Jan 28, 2026
6cb8c13
Merge pull request #24 from Sachintechjoomla/Issue#253042
vaivk369 Jan 28, 2026
625dd01
Updated the Dev Pipeline and Added The QA Pipeline
Jan 29, 2026
7772b1b
Issue#233138 Fix: Replace import from pdf function to the detailsv2 f…
Sachintechjoomla Jan 30, 2026
3fdbe4b
Issue#233138 Fix: Replace import from pdf function to the detailsv2 f…
Sachintechjoomla Jan 30, 2026
4884e5e
Issue#253202 Feat:Functionality for create project from template use …
Sachintechjoomla Jan 30, 2026
5979947
Merge pull request #26 from Sachintechjoomla/Issue#253202
vaivk369 Feb 2, 2026
2b091ef
Merge pull request #25 from Sachintechjoomla/Issue#253138
vaivk369 Feb 2, 2026
7f1cbe6
Issue#253202 Feat: userId is not explicitly provided in the request
Sachintechjoomla Feb 2, 2026
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
2 changes: 1 addition & 1 deletion .env.sample
Original file line number Diff line number Diff line change
Expand Up @@ -98,4 +98,4 @@ ORG_UPDATES_TOPIC = elevate_project_org_extension_event_listener

USER_ACCOUNT_EVENT_TOPIC = elevate_user_account_event_listener // Kafka topic to listen user account events
SESSION_VERIFICATION_METHOD = user_service_authenticated // session verification method
USER_SERVICE_INTERNAL_ACCESS_TOKEN_HEADER_KEY = internal_access_token // user service's internal access token header key
USER_SERVICE_INTERNAL_ACCESS_TOKEN_HEADER_KEY = internal_access_token // user service's internal access token header key.
81 changes: 81 additions & 0 deletions .github/workflows/brac-dev-deployment.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
name: Dev Build & Deploy Project Service (BRAC)

on:
push:
branches:
- develop

env:
AWS_REGION: ${{ secrets.AWS_REGION }}
ECR_REPOSITORY: ${{ secrets.ECR_REPOSITORY_BRAC }}
AWS_ACCOUNT_ID: ${{ secrets.AWS_ACCOUNT_ID }}

jobs:
build-and-deploy:
runs-on: ubuntu-latest

permissions:
contents: read

steps:
- name: Checkout code
uses: actions/checkout@v4

# =========================
# AWS Authentication
# =========================
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v4
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: ${{ env.AWS_REGION }}

# =========================
# Login to Amazon ECR
# =========================
- name: Login to Amazon ECR
uses: aws-actions/amazon-ecr-login@v2

# =========================
# Build & Push Image
# =========================
- name: Build and Push Docker Image to ECR
uses: docker/build-push-action@v5
with:
context: .
push: true
tags: |
${{ env.AWS_ACCOUNT_ID }}.dkr.ecr.${{ env.AWS_REGION }}.amazonaws.com/${{ env.ECR_REPOSITORY }}:latest-brac
${{ env.AWS_ACCOUNT_ID }}.dkr.ecr.${{ env.AWS_REGION }}.amazonaws.com/${{ env.ECR_REPOSITORY }}:${{ github.sha }}

# =========================
# Deploy on Server
# =========================
- name: Deploy Stack
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.HOST_NAME_DEV }}
username: ${{ secrets.USERNAME }}
key: ${{ secrets.SSH_KEY }}
port: ${{ secrets.PORT }}
script: |
set -e

# Export AWS variables explicitly
export AWS_REGION="${{ secrets.AWS_REGION }}"
export AWS_ACCOUNT_ID="${{ secrets.AWS_ACCOUNT_ID }}"

cd ${{ secrets.TARGET_DIR_DEV }}

if [ -f .env ]; then
mv .env .env-bkp
fi

echo '${{ secrets.DEV_ENV_BRAC }}' > .env

aws ecr get-login-password --region "$AWS_REGION" \
| docker login --username AWS \
--password-stdin "$AWS_ACCOUNT_ID.dkr.ecr.$AWS_REGION.amazonaws.com"

./deploy.sh
87 changes: 87 additions & 0 deletions .github/workflows/brac-qa-deplyment.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
name: Tag Build & Deploy User Service (BRAC)

on:
push:
tags:
- "v*"

env:
AWS_REGION: ${{ secrets.AWS_REGION }}
AWS_ACCOUNT_ID: ${{ secrets.AWS_ACCOUNT_ID }}
ECR_REPOSITORY: ${{ secrets.ECR_REPOSITORY_BRAC }}
TAG: ${{ github.ref_name }}

jobs:
build-and-deploy:
runs-on: ubuntu-latest

permissions:
contents: read

steps:
- name: Checkout code
uses: actions/checkout@v4

# =========================
# AWS Authentication
# =========================
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v4
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: ${{ env.AWS_REGION }}

# =========================
# Login to Amazon ECR
# =========================
- name: Login to Amazon ECR
uses: aws-actions/amazon-ecr-login@v2

# =========================
# Build & Push Docker Image
# =========================
- name: Build and Push Docker Image to ECR
uses: docker/build-push-action@v5
with:
context: .
push: true
tags: |
${{ env.AWS_ACCOUNT_ID }}.dkr.ecr.${{ env.AWS_REGION }}.amazonaws.com/${{ env.ECR_REPOSITORY }}:${{ env.TAG }}

# =========================
# Deploy on QA Server
# =========================
- name: Deploy Stack to QA
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.HOST_NAME_QA }}
username: ${{ secrets.USERNAME }}
key: ${{ secrets.SSH_KEY }}
port: ${{ secrets.PORT }}
script: |
set -e

export AWS_ACCESS_KEY_ID=${{ secrets.AWS_ACCESS_KEY_ID }}
export AWS_SECRET_ACCESS_KEY=${{ secrets.AWS_SECRET_ACCESS_KEY }}
export AWS_REGION=${{ env.AWS_REGION }}

cd ${{ secrets.TARGET_DIR_QA }}

# Backup old env if exists
if [ -f .env ]; then
mv .env .env-bkp
fi

# Write env safely (MULTILINE SAFE)
cat << 'EOF' > .env
${{ secrets.QA_ENV_BRAC }}
EOF

aws ecr get-login-password --region ${AWS_REGION} \
| docker login \
--username AWS \
--password-stdin \
${{ env.AWS_ACCOUNT_ID }}.dkr.ecr.${AWS_REGION}.amazonaws.com

./deploy.sh ${{ env.TAG }}
21 changes: 17 additions & 4 deletions config/kafka.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ const USER_DELETE_ON_OFF = process.env.USER_DELETE_ON_OFF
const COURSES_TOPIC = process.env.USER_COURSES_SUBMISSION_TOPIC
const ORG_EXTENSION_TOPIC = process.env.ORG_UPDATES_TOPIC
const USER_ACCOUNT_EVENT_TOPIC = process.env.USER_ACCOUNT_EVENT_TOPIC
const USER_ACTIVITY_TOPIC = process.env.USER_ACTIVITY_TOPIC

/**
* Kafka configurations.
Expand Down Expand Up @@ -59,6 +60,9 @@ const connect = function () {

// consume event that produced by the user service
_sendToKafkaConsumers(USER_ACCOUNT_EVENT_TOPIC, process.env.KAFKA_URL)

_sendToKafkaConsumers(USER_ACTIVITY_TOPIC, process.env.KAFKA_URL)

return {
kafkaProducer: producer,
kafkaClient: client,
Expand All @@ -85,10 +89,10 @@ var _sendToKafkaConsumers = function (topic, host) {
)

consumer.on('message', async function (message) {
console.log('-------Kafka consumer log starts here------------------')
console.log('Topic Name: ', topic)
console.log('Message: ', JSON.stringify(message))
console.log('-------Kafka consumer log ends here------------------')
// console.log('-------Kafka consumer log starts here------------------')
// console.log('Topic Name: ', topic)
// console.log('Message: ', JSON.stringify(message))
// console.log('-------Kafka consumer log ends here------------------')

if (message && message.topic === SUBMISSION_TOPIC) {
submissionsConsumer.messageReceived(message)
Expand Down Expand Up @@ -117,6 +121,11 @@ var _sendToKafkaConsumers = function (topic, host) {
if (message && message.topic === USER_ACCOUNT_EVENT_TOPIC) {
userExtensionConsumer.messageReceived(message)
}

// call projectActivity consumer
if (message && message.topic === USER_ACTIVITY_TOPIC) {
userActivitiesConsumer.messageReceived(message)
}
})

consumer.on('error', async function (error) {
Expand All @@ -143,6 +152,10 @@ var _sendToKafkaConsumers = function (topic, host) {
if (error.topics && error.topics[0] === USER_ACCOUNT_EVENT_TOPIC) {
userExtensionConsumer.errorTriggered(error)
}

if (error.topics && error.topics[0] === USER_ACTIVITY_TOPIC) {
userActivitiesConsumer.errorTriggered(error)
}
})
}
}
Expand Down
70 changes: 70 additions & 0 deletions constants/interface-routes/elevate-project/configs.json
Original file line number Diff line number Diff line change
Expand Up @@ -905,6 +905,62 @@
],
"service": "project"
},
{
"sourceRoute": "/project/v1/library/categories/delete/:id",
"type": "DELETE",
"priority": "MUST_HAVE",
"inSequence": false,
"orchestrated": false,
"targetPackages": [
{
"basePackageName": "project",
"packageName": "elevate-project"
}
],
"service": "project"
},
{
"sourceRoute": "/project/v1/library/categories/details/:id",
"type": "GET",
"priority": "MUST_HAVE",
"inSequence": false,
"orchestrated": false,
"targetPackages": [
{
"basePackageName": "project",
"packageName": "elevate-project"
}
],
"service": "project"
},
{
"sourceRoute": "/project/v1/programUsers/createOrUpdate",
"type": "POST",
"priority": "MUST_HAVE",
"inSequence": false,
"orchestrated": false,
"targetPackages": [
{
"basePackageName": "project",
"packageName": "elevate-project"
}
],
"service": "project"
},
{
"sourceRoute": "/project/v1/programUsers/getEntities",
"type": "GET",
"priority": "MUST_HAVE",
"inSequence": false,
"orchestrated": false,
"targetPackages": [
{
"basePackageName": "project",
"packageName": "elevate-project"
}
],
"service": "project"
},
{
"sourceRoute": "/project/v1/programs/create",
"type": "POST",
Expand Down Expand Up @@ -1521,6 +1577,20 @@
],
"service": "project"
},
{
"sourceRoute": "/project/v1/userProjects/createProjectPlan",
"type": "POST",
"priority": "MUST_HAVE",
"inSequence": false,
"orchestrated": false,
"targetPackages": [
{
"basePackageName": "project",
"packageName": "elevate-project"
}
],
"service": "project"
},
{
"sourceRoute": "/project/v1/userProjects/update",
"type": "POST",
Expand Down
Loading