Version Summary
Version Number : v5.5.0 [tag: v5.5.0]
Date: 03-April-2024
Projects / Repos Included in this release: IUDX Resource Server, IUDX Deployment and installation, IUDX's Documentation
Release Summary :
India Urban Data Exchange (IUDX) | Resource Server v5.5.0 is released with enhanced features.
Highlights:
- Streaming Data Monitoring:
- Resource Server will update the data consumed via "streaming"
- Consumers can now refresh their "active" subscription using APIs
- End to End encryption
- Updated Software Client libraries
- Updated Auditing Flow
- Updated Software Testing
- Updated Postman Collection
- Included REST Assured based integration testing
- Improved test coverage
- Software License:
- With this release, all IUDX Softwares will be distributed under Apache 2.0 License
Test Reports:
Please find the release test details and reports here
API Docs
The api docs can be found here.
How to use the Release:
External Dependencies Installation
The Resource Server connects with various external dependencies namely
- ELK stack
- PostgreSQL
- RabbitMQ
- Redis
- AWS S3
Once the above setup is ready as mentioned in the deployment, you can install the IUDX Resource Server.
Docker based Installation
- Install docker and docker-compose
- Clone this repo
- Build the images
./docker/build.sh
- Modify the
docker-compose.yml
file to map the config file you just created - Start the server in production (prod) or development (dev) mode using docker-compose
docker-compose up prod
Maven based Installation
- Install java 11 and maven
- Use the maven exec plugin based starter to start the server
mvn clean compile exec:java@resource-server
JAR based Installation
- Install java 11 and maven
- Set Environment variables
export RS_URL=https://<rs-domain-name>
export LOG_LEVEL=INFO
- Use maven to package the application as a JAR
mvn clean package -Dmaven.test.skip=true
- 2 JAR files would be generated in the
target/
directoryiudx.resource.server-cluster-0.0.1-SNAPSHOT-fat.jar
- clustered vert.x containing micrometer metricsiudx.resource.server-dev-0.0.1-SNAPSHOT-fat.jar
- non-clustered vert.x and does not contain micrometer metrics
Running the clustered JAR
Note: The clustered JAR requires Zookeeper to be installed. Refer here to learn more about how to set up Zookeeper. Additionally, the zookeepers
key in the config being used needs to be updated with the IP address/domain of the system running Zookeeper.
The JAR requires 3 runtime arguments when running:
- --config/-c : path to the config file
- --hostname/-i : the hostname for clustering
- --modules/-m : comma separated list of module names to deploy
e.g. java -jar target/iudx.resource.server-cluster-0.0.1-SNAPSHOT-fat.jar --host $(hostname) -c configs/config.json -m iudx.resource.server.database.archives.DatabaseVerticle,iudx.resource.server.authenticator.AuthenticationVerticle ,iudx.resource.server.metering.MeteringVerticle,iudx.resource.server.database.postgres.PostgresVerticle
Use the --help/-h
argument for more information. You may additionally append an RS_JAVA_OPTS
environment variable containing any Java options to pass to the application.
e.g.
$ export RS_JAVA_OPTS="-Xmx4096m"
$ java $RS_JAVA_OPTS -jar target/iudx.resource.server-cluster-0.0.1-SNAPSHOT-fat.jar ...
Running the non-clustered JAR
The JAR requires 1 runtime argument when running:
- --config/-c : path to the config file
e.g. java -Dvertx.logger-delegate-factory-class-name=io.vertx.core.logging.Log4j2LogDelegateFactory -jar target/iudx.resource.server-dev-0.0.1-SNAPSHOT-fat.jar -c configs/config.json
Use the --help/-h
argument for more information. You may additionally append an RS_JAVA_OPTS
environment variable containing any Java options to pass to the application.
e.g.
$ export RS_JAVA_OPTS="-Xmx1024m"
$ java $RS_JAVA_OPTS -jar target/iudx.resource.server-dev-0.0.1-SNAPSHOT-fat.jar ...
Enabling Data Encryption in transit
All the count and search APIs have a feature to get encrypted data.
To get the data in encrypted format, the user could provide a publicKey
in the header, with the value that is generated from lazySodium sealed box.
The header value should be in url-safe base64 format.
The encrypted data could be decrypted using the lazysodium sealed box by supplying the private and public key.
License
With this release, all IUDX Softwares will be distributed under Apache 2.0 License
Issues and Suggestions
Any Release related issues/suggestions, please raise here
For all other issues/suggestions related specific projects, please raise them to the respective project repo/issues.
What's Changed
- modify append subscription & subscription auditing flow by @ananjaykumar2 in #456
- auditing consent log by @ankitmashu in #463
- fix: attribute query logic, fix: temporal params for async by @pranavrd in #464
- Jenkins CI image tag update by @karun-singh in #459
- Create DMP Audit table by @shreelakshmijoshi in #469
- Schema/async request details by @ananjaykumar2 in #471
- SDM_code_change by @ankitmashu in #467
- Add Rest-Assured integration tests for Spatial Search APIs in the Resource Server along with the Rest Assure config file. by @Kranthi-Guribilli in #461
- Rest Assured Tests for Resource Server by @DivyaSreeMunagavalasa in #474
- Alterschema by @ankitmashu in #475
- Update delete subscription script to fetch the actual exchange from db by @Kranthi-Guribilli in #476
- Resolve issue while appending subscritptions when there is only 1 bin… by @Kranthi-Guribilli in #477
- Software Updates and Update RestAssured testHost on depl by fetching from config by @DivyaSreeMunagavalasa in #478
- License information update by @sushanthakumar in #480
- Solved bug and corrected pmd and checkstyle by @ankitmashu in #481
New Contributors
- @Kranthi-Guribilli made their first contribution in #461
- @sushanthakumar made their first contribution in #480
Full Changelog: v5.0.0...v5.5.0