OS Core Lib Azure merge requestshttps://community.opengroup.org/osdu/platform/system/lib/cloud/azure/os-core-lib-azure/-/merge_requests2024-01-02T08:34:57Zhttps://community.opengroup.org/osdu/platform/system/lib/cloud/azure/os-core-lib-azure/-/merge_requests/281fix broken use of RequestMappingHandlerMapping in filter2024-01-02T08:34:57ZNeelesh Thakurfix broken use of RequestMappingHandlerMapping in filterAddresses issue: #30
On investigation, we found it's an [issue ](https://github.com/spring-projects/spring-boot/issues/28874) caused by Spring boot upgrade.
The fix applied in this MR are based on the resolution in the [comment](http...Addresses issue: #30
On investigation, we found it's an [issue ](https://github.com/spring-projects/spring-boot/issues/28874) caused by Spring boot upgrade.
The fix applied in this MR are based on the resolution in the [comment](https://github.com/spring-projects/spring-boot/issues/28874#issuecomment-1002008250).
We have also added cache on api handlers, so we don't have to do it every single request.
## All Submissions:
-------------------------------------
* [YES] I have added an explanation of what changes in this merge do and why we should include it?
* [YES] I have updated the documentation accordingly.
* [NA] I have added tests to cover my changes.
* [YES] All new and existing tests passed.
* [YES] My code follows the code style of this project.
* [YES] I ran lint checks locally prior to submission.M17 - Release 0.20https://community.opengroup.org/osdu/platform/system/lib/cloud/azure/os-core-lib-azure/-/merge_requests/279Upgrade First Party Library Dependencies for Release 0.192023-02-18T07:31:15ZDavid Diederichd.diederich@opengroup.orgUpgrade First Party Library Dependencies for Release 0.19This automated MR upgrades the first party libraries (other OSDU libraries) to utilize the latest release.
The intent is to keep the OSDU projects utilizing the latest available code to ensure widespread usage and stability.
However, any...This automated MR upgrades the first party libraries (other OSDU libraries) to utilize the latest release.
The intent is to keep the OSDU projects utilizing the latest available code to ensure widespread usage and stability.
However, any library that is older than the previous release will be left as-is, since the upgrade is likely to be more complicated.
Furthermore, the upgrade should only be merged in the CI pipeline reports success.
If this MR has failed, we can spend a little time investigating to see if a trivial upgrade could achieve compatiblity to the new library.
But significant upgrade efforts should not occur on this MR, as part of the release tagging process.
Instead, significant work should be scheduled for a subsequent milestone.
### Dependency Information Before the Upgrade
```
Branch: master
SHA: 51f8fc3f2b620753ef879f36d73d150e0124b690
Maven: 0.19.0-SNAPSHOT
```
| Maven Dependencies | _Root_ |
| ------------------------------------------------------- | ---------- |
| os-core-common | 0.19.0-rc5 |
| (3rd Party) com.fasterxml.jackson.core.jackson-databind | 2.14.1 |
| (3rd Party) org.springframework.spring-webmvc | 5.3.24 |
### Dependency Information After the Upgrade
```
Branch: dependency-upgrade-2
SHA: bb9add9128a68cfae975880264956f39c0d381a0
Maven: 0.19.0-SNAPSHOT
```
| Maven Dependencies | _Root_ |
| ------------------------------------------------------- | ------ |
| os-core-common | 0.19.0 |
| (3rd Party) com.fasterxml.jackson.core.jackson-databind | 2.14.1 |
| (3rd Party) org.springframework.spring-webmvc | 5.3.24 |M16 - Release 0.19https://community.opengroup.org/osdu/platform/system/lib/cloud/azure/os-core-lib-azure/-/merge_requests/278increase version of os-core-common to 0.19.0-rc52023-07-13T03:28:14ZYauheni Lesnikauincrease version of os-core-common to 0.19.0-rc5Increase version of os-core-common to 0.19.0-rc5Increase version of os-core-common to 0.19.0-rc5M16 - Release 0.19Yauheni LesnikauYauheni Lesnikauhttps://community.opengroup.org/osdu/platform/system/lib/cloud/azure/os-core-lib-azure/-/merge_requests/277M14 upgrade2023-05-31T10:43:02ZAnkur RawatM14 upgradeM14 upgradeM14 upgradeAnkur RawatAnkur Rawathttps://community.opengroup.org/osdu/platform/system/lib/cloud/azure/os-core-lib-azure/-/merge_requests/275Add missing calculation of requestCharge for CosmosStore#queryItemsPageAsync ...2023-01-13T15:43:24ZYurii KondakovAdd missing calculation of requestCharge for CosmosStore#queryItemsPageAsync methodThis MR is an addition to just merged https://community.opengroup.org/osdu/platform/system/lib/cloud/azure/os-core-lib-azure/-/merge_requests/273
It calculates requestCharge of the request (for logging and diagnostics purposes).This MR is an addition to just merged https://community.opengroup.org/osdu/platform/system/lib/cloud/azure/os-core-lib-azure/-/merge_requests/273
It calculates requestCharge of the request (for logging and diagnostics purposes).M16 - Release 0.19Yurii KondakovYurii Kondakovhttps://community.opengroup.org/osdu/platform/system/lib/cloud/azure/os-core-lib-azure/-/merge_requests/273add async version of QUERY_ITEMS_API (CosmosAsyncClient)2023-01-12T10:38:20ZYurii Kondakovadd async version of QUERY_ITEMS_API (CosmosAsyncClient)Currently, using the existing client (Sync API), a certain number of extra (prefetch) queries are performed when retrieve records from the database page by page. This increases the consumption of Cosmos DB Requests Units (RUs).
To preven...Currently, using the existing client (Sync API), a certain number of extra (prefetch) queries are performed when retrieve records from the database page by page. This increases the consumption of Cosmos DB Requests Units (RUs).
To prevent this, an asynchronous client and an appropriate method for retrieving records from the database using this asynchronous client have been added.
[Issue](https://community.opengroup.org/osdu/platform/system/lib/cloud/azure/os-core-lib-azure/-/issues/29)M16 - Release 0.19Yurii KondakovYurii Kondakovhttps://community.opengroup.org/osdu/platform/system/lib/cloud/azure/os-core-lib-azure/-/merge_requests/271Update format of x-collaboration header2022-12-22T16:36:40ZMina OtgonboldUpdate format of x-collaboration header## Type of change
- [x] Bug Fix
- [ ] Feature
## Does this introduce a change in the core logic?
- [NO]
## Does this introduce a change in the cloud provider implementation, if so which cloud?
- [ ] AWS
- [x] Azure
- [ ] GCP
- [ ] IB...## Type of change
- [x] Bug Fix
- [ ] Feature
## Does this introduce a change in the core logic?
- [NO]
## Does this introduce a change in the cloud provider implementation, if so which cloud?
- [ ] AWS
- [x] Azure
- [ ] GCP
- [ ] IBM
## Does this introduce a breaking change?
- [NO]
## What is the current behavior?
The format of x-collaboration header is:
"x-collaboration": "x-collaboration:id=1e1c4e74-3b9b-4b17-a0d5-67766558ec65,application=Test App"
## What is the new/expected behavior?
The format of x-collaboration header will be:
"x-collaboration": "id=1e1c4e74-3b9b-4b17-a0d5-67766558ec65,application=Test App"
## Have you added/updated Unit Tests and Integration Tests?
YesM16 - Release 0.19https://community.opengroup.org/osdu/platform/system/lib/cloud/azure/os-core-lib-azure/-/merge_requests/269Adding reverted changes2023-01-12T23:53:24ZSrishti SharmaAdding reverted changes## All Submissions:
-------------------------------------
* [YES/NO] I have added an explanation of what changes in this merge do and why we should include it?
* [YES/NO] I have updated the documentation accordingly.
* [YES/NO/NA] I have...## All Submissions:
-------------------------------------
* [YES/NO] I have added an explanation of what changes in this merge do and why we should include it?
* [YES/NO] I have updated the documentation accordingly.
* [YES/NO/NA] I have added tests to cover my changes.
* [YES/NO/NA] All new and existing tests passed.
* [YES/NO/NA] My code follows the code style of this project.
* [YES/NO/NA] I ran lint checks locally prior to submission.
## What is the issue or story related to the change?
-------------------------------------
Updating changes in MR:
High level design:
Issue: <!-- Link any __GitLab__ workitem(s) to this pull request. -->
<!-- Please add implementation details of current set of changes and how the code changes are
doing what they are expected to do. Are there any complex loops or designated code blocks that
should be elaborated? Is there some contextual knowledge that the reviewer should be aware of? -->
Change details:
## Test coverage:
------------------
<!-- Mention unit test coverage of changes. -->
## Does this introduce a breaking change?
-------------------------------------
- [YES/NO]
<!-- If this introduces a breaking change, please describe the impact and migration path for existing applications below. -->
## Pending items
----------------
<!-- Are there changes that you'll introduce in upcoming MRs and hence did not add in this one? Next steps of your
feature can also be mentioned here. -->
## Reviewer request
-------------------
- Please provide an ETA when you plan to review this MR. Write a comment to decline or provide an ETA.
- Block the MR if you feel there is less testing or no details in the MR
- Please cover the following aspects in the MR
-- Coding design: _\<Reviewer1>_
-- Backward Compatibility: _\<Reviewer2>_
-- Feature Logic: _\<Logic design\>_
-- _\<Any other context mention here>_
OR
-- _\<Component 1>_: _\<Reviewer1>_
-- _\<CosmosDB>_: _\<Reviewer2>_
-- _\<ServiceBus>_ _\<Reviewer3>_
-- _\<Mention any other component and owner>_
## Other information
-------------------------------------
<!-- Any other information that is important to this MR such as screenshots of how the component looks before and after the change. -->M16 - Release 0.19https://community.opengroup.org/osdu/platform/system/lib/cloud/azure/os-core-lib-azure/-/merge_requests/267Added CORS Feature Flag2022-12-22T15:07:26ZSrishti SharmaAdded CORS Feature Flag1. Tested CORS Feature Flag and updated code
2. Removed checkStyle issues
3. Updated appropriate variables names in Test class
4. PBI: 14514 E2E integration CORS1. Tested CORS Feature Flag and updated code
2. Removed checkStyle issues
3. Updated appropriate variables names in Test class
4. PBI: 14514 E2E integration CORSM16 - Release 0.19Vineeth Guna [Microsoft]Vineeth Guna [Microsoft]https://community.opengroup.org/osdu/platform/system/lib/cloud/azure/os-core-lib-azure/-/merge_requests/270Cherry-pick 'Upgrade com.azure:azure-core to latest version 1.34.0' into rele...2022-12-15T17:58:21ZChad LeongCherry-pick 'Upgrade com.azure:azure-core to latest version 1.34.0' into release/0.18**Original MR**: !268
### This MR is a Cherry Pick into a Release Branch.
After the release branch is first created, any subsequent changes use this process to update the release (often resulting in a new patch tag) without incorporati...**Original MR**: !268
### This MR is a Cherry Pick into a Release Branch.
After the release branch is first created, any subsequent changes use this process to update the release (often resulting in a new patch tag) without incorporating all changes in the default branch.
These MRs must be approved by the PMC before they are merged, since they alter the scope of the release.
To see more details about the change itself, look at the Original MR listed above.
#### Skipped Pipeline
Normally, pipelines are not executed on the cherry pick branch/MR prior to merging.
This optimization is accepted because the code was tested when it merged into the default branch, and will be tested again in the release branch prior to tagging.
However, if anybody feels that the MR requires further scrutiny -- whether because it had conflicts in the cherry-picking, it interfaces with some drastically altered logic between the branches, or any other reason -- we can run the pipeline here prior to merging.
#### If There's Reason to Run a Pipeline
If you want to see a pipeline result before this merges, first add a comment explaining why you'd like to see the pipeline results so the PMC and others know your thinking.
Then, mark the MR as a Draft MR (using the vertical ellipsis above, choose 'Mark as Draft').
This prevents the MR from being approved & merged accidentally by a busy release coordinator who didn't see your comment.
Finally, if you are a maintainer on the project, launch a pipeline on this branch.
Since this branch is a protected branch and the MR has ~no-detached-pipeline set, all integration tests will run and there's no need for any `trusted-*` branches.
[Launch a Pipeline for this Branch](https://community.opengroup.org/osdu/platform/system/lib/cloud/azure/os-core-lib-azure/-/pipelines/new?ref=cherry-pick-for-268)M15 - Release 0.18David Diederichd.diederich@opengroup.orgChad LeongSrinivasan NarayananDavid Diederichd.diederich@opengroup.orghttps://community.opengroup.org/osdu/platform/system/lib/cloud/azure/os-core-lib-azure/-/merge_requests/268Upgrade com.azure:azure-core to latest version 1.34.02022-12-15T17:57:07ZThulasi Dass SubramanianUpgrade com.azure:azure-core to latest version 1.34.0- Upgrade com.azure:azure-core to latest version 1.34.0- Upgrade com.azure:azure-core to latest version 1.34.0M15 - Release 0.18Thulasi Dass SubramanianThulasi Dass Subramanianhttps://community.opengroup.org/osdu/platform/system/lib/cloud/azure/os-core-lib-azure/-/merge_requests/264Cherry-pick 'Expose Collaboration Context in message for new topic (recordsev...2022-12-08T17:28:59ZDavid Diederichd.diederich@opengroup.orgCherry-pick 'Expose Collaboration Context in message for new topic (recordsevent topic)' into release/0.18**Original MR**: !257
### This MR is a Cherry Pick into a Release Branch.
After the release branch is first created, any subsequent changes use this process to update the release (often resulting in a new patch tag) without incorporati...**Original MR**: !257
### This MR is a Cherry Pick into a Release Branch.
After the release branch is first created, any subsequent changes use this process to update the release (often resulting in a new patch tag) without incorporating all changes in the default branch.
These MRs must be approved by the PMC before they are merged, since they alter the scope of the release.
To see more details about the change itself, look at the Original MR listed above.
#### Skipped Pipeline
Normally, pipelines are not executed on the cherry pick branch/MR prior to merging.
This optimization is accepted because the code was tested when it merged into the default branch, and will be tested again in the release branch prior to tagging.
However, if anybody feels that the MR requires further scrutiny -- whether because it had conflicts in the cherry-picking, it interfaces with some drastically altered logic between the branches, or any other reason -- we can run the pipeline here prior to merging.
#### If There's Reason to Run a Pipeline
If you want to see a pipeline result before this merges, first add a comment explaining why you'd like to see the pipeline results so the PMC and others know your thinking.
Then, mark the MR as a Draft MR (using the vertical ellipsis above, choose 'Mark as Draft').
This prevents the MR from being approved & merged accidentally by a busy release coordinator who didn't see your comment.
Finally, if you are a maintainer on the project, launch a pipeline on this branch.
Since this branch is a protected branch and the MR has ~no-detached-pipeline set, all integration tests will run and there's no need for any `trusted-*` branches.
[Launch a Pipeline for this Branch](https://community.opengroup.org/osdu/platform/system/lib/cloud/azure/os-core-lib-azure/-/pipelines/new?ref=cherry-pick-for-257)M15 - Release 0.18David Diederichd.diederich@opengroup.orgDavid Diederichd.diederich@opengroup.orghttps://community.opengroup.org/osdu/platform/system/lib/cloud/azure/os-core-lib-azure/-/merge_requests/263Upgrade First Party Library Dependencies for Release 0.182022-12-08T08:36:39ZDavid Diederichd.diederich@opengroup.orgUpgrade First Party Library Dependencies for Release 0.18This automated MR upgrades the first party libraries (other OSDU libraries) to utilize the latest release.
The intent is to keep the OSDU projects utilizing the latest available code to ensure widespread usage and stability.
However, any...This automated MR upgrades the first party libraries (other OSDU libraries) to utilize the latest release.
The intent is to keep the OSDU projects utilizing the latest available code to ensure widespread usage and stability.
However, any library that is older than the previous release will be left as-is, since the upgrade is likely to be more complicated.
Furthermore, the upgrade should only be merged in the CI pipeline reports success.
If this MR has failed, we can spend a little time investigating to see if a trivial upgrade could achieve compatiblity to the new library.
But significant upgrade efforts should not occur on this MR, as part of the release tagging process.
Instead, significant work should be scheduled for a subsequent milestone.
### Dependency Information Before the Upgrade
```
Branch: release/0.18
SHA: eb79ab42caf333e3acc0756f6c5803f474ff21df
Maven: 0.18.0-SNAPSHOT
```
| Maven Dependencies | _Root_ |
| ------------------------------------------------------- | ---------- |
| os-core-common | 0.18.0-rc3 |
| (3rd Party) com.fasterxml.jackson.core.jackson-databind | 2.13.4 |
| (3rd Party) org.springframework.spring-webmvc | 5.3.22 |
### Dependency Information After the Upgrade
```
Branch: dependency-upgrade
SHA: c3d208a06ab1865292173916fa9decbe7b83e0c0
Maven: 0.19.0-SNAPSHOT
```
| Maven Dependencies | _Root_ |
| ------------------------------------------------------- | ------ |
| os-core-common | 0.18.0 |
| (3rd Party) com.fasterxml.jackson.core.jackson-databind | 2.13.4 |
| (3rd Party) org.springframework.spring-webmvc | 5.3.22 |
# Why is this a direct patch?
The default branch has already moved on to os-core-common `0.19.0-rc1`.
So, there's no benefit in merging this to the default branch (and it would undo work already started towards the next release), but we need it here for the 0.18 release.M15 - Release 0.18David Diederichd.diederich@opengroup.orgDavid Diederichd.diederich@opengroup.orghttps://community.opengroup.org/osdu/platform/system/lib/cloud/azure/os-core-lib-azure/-/merge_requests/261CORS | Send back null headers from all services so that istio CORS policy hon...2023-08-18T12:42:33ZSrishti SharmaCORS | Send back null headers from all services so that istio CORS policy honored* Feature: Implement CORS
* We update CORS policy in istio
* Currently all services send back hardcoded response headers due to which istio's CORS is not implemented.
* Created a new class in core-lib-azure which implements Filter. It se...* Feature: Implement CORS
* We update CORS policy in istio
* Currently all services send back hardcoded response headers due to which istio's CORS is not implemented.
* Created a new class in core-lib-azure which implements Filter. It sends back null headers from all services so that istio CORS policy honored.
**Response: 403 - CORS Error for different origin - Expected**
![image](/uploads/e457c1bbe79b6124980e6bb7af8cb461/image.png)
![image](/uploads/3d7b122e8aa984ea401a6178e3a6960a/image.png)
**Console:** Access to XMLHttpRequest at 'https://mstest3338.oep.ppe.azure-int.net/api/file/v2/files/uploadURL' from origin 'https://www.test-cors.org' has been blocked by CORS policy: **Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource**.
**Response: 200 response for valid origin – Expected Result** \*\*Updated istio CORS to allow origin https://www.test-cors.org
![image](/uploads/1fff10bde7f547be73e7c271d3c04fa0/image.png)M16 - Release 0.19https://community.opengroup.org/osdu/platform/system/lib/cloud/azure/os-core-lib-azure/-/merge_requests/257Expose Collaboration Context in message for new topic (recordsevent topic)2022-12-08T08:03:44ZMina OtgonboldExpose Collaboration Context in message for new topic (recordsevent topic)## All Submissions:
-------------------------------------
* [YES] I have added an explanation of what changes in this merge do and why we should include it?
* [NA] I have updated the documentation accordingly.
* [YES] I have added tests ...## All Submissions:
-------------------------------------
* [YES] I have added an explanation of what changes in this merge do and why we should include it?
* [NA] I have updated the documentation accordingly.
* [YES] I have added tests to cover my changes.
* [YES] All new and existing tests passed.
* [YES] My code follows the code style of this project.
* [NA] I ran lint checks locally prior to submission.
## What is the issue or story related to the change?
-------------------------------------
[ADR](https://community.opengroup.org/osdu/platform/system/storage/-/issues/149)
Change details:
The message for the new topic (recordsevent) contains collaboration context if provided
## Test coverage:
------------------
Added unit test to verify that the new message contains collaboration context if provided
## Does this introduce a breaking change?
-------------------------------------
- [NO]M15 - Release 0.18https://community.opengroup.org/osdu/platform/system/lib/cloud/azure/os-core-lib-azure/-/merge_requests/262Update FOSSA NOTICE2022-12-04T08:35:22ZDavid Diederichd.diederich@opengroup.orgUpdate FOSSA NOTICEThis MR updates the attribution file for the project (also known as the `NOTICE` file).
It is important to keep this up to date to satisfy legal requirements of dependency licenses.
We use FOSSA as the tool to scan for and detect these ...This MR updates the attribution file for the project (also known as the `NOTICE` file).
It is important to keep this up to date to satisfy legal requirements of dependency licenses.
We use FOSSA as the tool to scan for and detect these changes.M15 - Release 0.18https://community.opengroup.org/osdu/platform/system/lib/cloud/azure/os-core-lib-azure/-/merge_requests/260Remove private links code2022-12-22T15:07:54ZHarsheet ShahRemove private links code## All Submissions:
-------------------------------------
* [YES/NO] I have added an explanation of what changes in this merge do and why we should include it?
* [YES/NO] I have updated the documentation accordingly.
* [YES/NO/NA] I have...## All Submissions:
-------------------------------------
* [YES/NO] I have added an explanation of what changes in this merge do and why we should include it?
* [YES/NO] I have updated the documentation accordingly.
* [YES/NO/NA] I have added tests to cover my changes.
* [YES/NO/NA] All new and existing tests passed.
* [YES/NO/NA] My code follows the code style of this project.
* [YES/NO/NA] I ran lint checks locally prior to submission.
## What is the issue or story related to the change?
-------------------------------------
<!-- Please describe the current behavior that you are modifying, 'or' link to a relevant issue.
Feel free to add references to any design documents you might have shared with the team or any
related MR that you are building on top of. -->
High level design:
Issue: <!-- Link any __GitLab__ workitem(s) to this pull request. -->
<!-- Please add implementation details of current set of changes and how the code changes are
doing what they are expected to do. Are there any complex loops or designated code blocks that
should be elaborated? Is there some contextual knowledge that the reviewer should be aware of? -->
Change details:
## Test coverage:
------------------
<!-- Mention unit test coverage of changes. -->
## Does this introduce a breaking change?
-------------------------------------
- [YES/NO]
<!-- If this introduces a breaking change, please describe the impact and migration path for existing applications below. -->
## Pending items
----------------
<!-- Are there changes that you'll introduce in upcoming MRs and hence did not add in this one? Next steps of your
feature can also be mentioned here. -->
## Reviewer request
-------------------
- Please provide an ETA when you plan to review this MR. Write a comment to decline or provide an ETA.
- Block the MR if you feel there is less testing or no details in the MR
- Please cover the following aspects in the MR
-- Coding design: _\<Reviewer1>_
-- Backward Compatibility: _\<Reviewer2>_
-- Feature Logic: _\<Logic design\>_
-- _\<Any other context mention here>_
OR
-- _\<Component 1>_: _\<Reviewer1>_
-- _\<CosmosDB>_: _\<Reviewer2>_
-- _\<ServiceBus>_ _\<Reviewer3>_
-- _\<Mention any other component and owner>_
## Other information
-------------------------------------
<!-- Any other information that is important to this MR such as screenshots of how the component looks before and after the change. -->M16 - Release 0.19Harsheet ShahHarsheet Shahhttps://community.opengroup.org/osdu/platform/system/lib/cloud/azure/os-core-lib-azure/-/merge_requests/259Merge branch 'ankurrawat/ErrorMessageFix' into 'release/0.17'2022-12-22T15:08:57ZAnkur RawatMerge branch 'ankurrawat/ErrorMessageFix' into 'release/0.17'4xx error handling for bulkUpdate Operation4xx error handling for bulkUpdate OperationM15 - Release 0.18Ankur RawatAnkur Rawathttps://community.opengroup.org/osdu/platform/system/lib/cloud/azure/os-core-lib-azure/-/merge_requests/258Handling 4xx in CosmosBulkOperations2022-12-22T18:58:04ZAnkur RawatHandling 4xx in CosmosBulkOperationsWhen CosmosDb throws 4xx, it is logged and not thrown. With this API returns 201 in response.
Catching exception from CosmosDB and throwing it to return correct response.When CosmosDb throws 4xx, it is logged and not thrown. With this API returns 201 in response.
Catching exception from CosmosDB and throwing it to return correct response.Ankur RawatAnkur Rawathttps://community.opengroup.org/osdu/platform/system/lib/cloud/azure/os-core-lib-azure/-/merge_requests/256Coreservicesupgradev12022-11-15T16:30:48ZNishant VidyasagarCoreservicesupgradev1Adding path matching strategy so, that other dependent services can use this.Adding path matching strategy so, that other dependent services can use this.M15 - Release 0.18Nishant VidyasagarNishant Vidyasagar