Skip to content

Releases: datakaveri/iudx-resource-server

v5.5.0

03 Apr 10:31
ee3e8d8
Compare
Choose a tag to compare

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:

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

  1. Install docker and docker-compose
  2. Clone this repo
  3. Build the images
    ./docker/build.sh
  4. Modify the docker-compose.yml file to map the config file you just created
  5. Start the server in production (prod) or development (dev) mode using docker-compose
    docker-compose up prod

Maven based Installation

  1. Install java 11 and maven
  2. Use the maven exec plugin based starter to start the server
    mvn clean compile exec:java@resource-server

JAR based Installation

  1. Install java 11 and maven
  2. Set Environment variables
export RS_URL=https://<rs-domain-name>
export LOG_LEVEL=INFO
  1. Use maven to package the application as a JAR
    mvn clean package -Dmaven.test.skip=true
  2. 2 JAR files would be generated in the target/ directory
    • iudx.resource.server-cluster-0.0.1-SNAPSHOT-fat.jar - clustered vert.x containing micrometer metrics
    • iudx.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

New Contributors

Full Changelog: v5.0.0...v5.5.0

Resource Server v5.0.0

23 Nov 04:24
a0d9e64
Compare
Choose a tag to compare

New Features

  • End to end data encryption extension to APIs to ensure data integrity and trust
    Multi-attribute support for search queries to support on-the-fly filtration using APIs
  • Introduced new auditing and summary APIs to enhance the User Interface
  • Added support for multiple file formats such as json and csv for file download from async API

Enhancement

  • Updated the ID structure to Universally Unique IDentifiers (UUIDs) for improved security.
  • Improved and enhanced auditing service workflow for better QOS
  • Multi-Tenant based backend

Testing

  • Improved Unit, Integration, Performance, and Security testing
    -Enhanced the testing framework with CI/CD Pipeline for automated testing

Resource Server v4.5.0

31 Mar 09:50
55314ed
Compare
Choose a tag to compare

New Features

  • End to end data encryption extension to APIs to ensure data integrity and trust
  • Multi-attribute support for search queries to support on-the-fly filtration using APIs
  • Introduced new auditing and summary APIs to enhance the User Interface

Enhancement

  • Improved and enhanced auditing service workflow for better QOS

Testing

  • Improved Unit, Integration, Performance, and Security testing
  • Enhanced the testing framework with CICD Pipeline for automated testing

Resource Server v4.0.0

30 Sep 11:26
0e04394
Compare
Choose a tag to compare

New Features

  • Asynchronous API: Introduced an asynchronous API service which can be used by consumers to search and download data which is beyond the predefined limits of IUDX search APIs
    • /async/entities: Used to search the data which is beyond the /entities search limits
    • /async/status: Used to understand the status of the request using the searchID
  • Resource Usage Limiting: This feature allows providers to define access limits for a given consumer. The resource usage is limited based on the number of API calls made on a resource.
  • Enhanced HTTP Response for large queries: To inform users about queries exceeding retrieval limits (> 50k records) via search APIs, the resource server can now respond with a new URN based status code for HTTP 400 status.

Test Reports

  • Unit tests available here
  • Coverage available here
  • Performance tests available here
  • Security tests available here
  • Integration tests available here

Resource Server v3.5.0

31 Mar 10:56
cd01d8c
Compare
Choose a tag to compare

New Features

  • Audit / Metering APIs for consumers, providers and delegates
    • /consumer/audit: This API shall allow IUDX consumer to understand their resource usage
    • /provider/audit: This API shall allow IUDX Providers to understand their resource usage
  • Admin API for resource management
    • Admin APIs for updating item-id and unique attribute of a resource and updating token invalidation
  • Broadcast Integration with RabbitMQ
  • Resource Server integration with RabbitMQ:
    • to broadcast invalid token information provided by Authorization Server
    • to broadcast Unique Attributes Information published by IUDX Admin
  • Invalidation of streaming subscription
  • With release v3.5.0, a consumer should use refresh subscription API (at least once in 12 hours) to keep their subscription live. The streaming will be cancelled automatically by the resource server if the subscription is not refreshed

Updates, bugs, and performance fixes

  • Enhanced Validation

Test Reports

  • Unit tests available here
  • Coverage available here
  • Performance tests available here
  • Security tests available here
  • Integration tests available here

What's Changed

New Contributors

Full Changelog: v3.0.0...v3.5.0

Resource Server v3.0.0

30 Sep 13:28
3a3aca4
Compare
Choose a tag to compare

New features

  • New APIs
    • Complex temporal and spatial search: /temporal/entityPostQuery
    • Data Ingestion: /ingestion
    • Reset User Credentials: /management/user/resetPassword
  • Paginated access to search APIs
    • Pagination based on optional query parameters (offset, limit)
  • Metering and Auditing Service
    • Integrated with immutable database (ImmuDB)
  • Updated Redis client flow for Latest Ingestion Pipeline
  • URN based response formats
  • Integration with JWT based tokens provided by IUDX Auth Server
  • All APIs will not require a token to access data

Updates, bugs, and performance fixes

  • Library, Security Updates, and migration from v3.9.1 to 4.0.3
  • Enhanced Validation and cache performance
  • Fully complied with IS 18003 (Part 2):2021 Doc No: LITD 28 (17249) | Unified Data Exchange Part 2: API specifications

Test Reports

  • Stress and Endurance Test Report is available here
  • Load and Performance Test Report is available here
  • Unit Test Report is available here
  • Integration Test Report is available here
  • Penetration Test Report is available here

Resource Server v2.5.0

31 Mar 15:26
d62c997
Compare
Choose a tag to compare

Features

  • Resource Group Latest Data Access APIs
  • Secure data access operations on a group level
  • REDIS based latest data cache implementation
  • Enhanced Unit and Integration testing
  • Enhanced Input parameter validations

Alpha release

30 Sep 13:00
a20c1ef
Compare
Choose a tag to compare
Alpha release Pre-release
Pre-release

Resource Server Alpha Release.
This release is to test completeness before the actual release.

Some of the highlights of the alpha release are -

  • Provides data access from available resources using standard APIs, streaming subscriptions (AMQP) and/or callbacks
  • Search and count APIs for searching through available data: Support for Spatial (Circle, Polygon, Bbox, Linestring), Temporal (Before, during, After) and Attribute searches
  • Adaptor registration endpoints and streaming endpoints for data ingestion
  • Integration with the authorization server (token introspection) to serve private data as per the access control policies set by the provider
  • Secure data access over TLS
  • Scalable, service mesh architecture based implementation using open source components: Vert.X API framework, Elasticsearch/Logstash for database and RabbitMQ for data broker.
  • Hazelcast and Zookeeper based cluster management and service discovery

Attached -

  • Newman Integration Test Report - integration-test-report.html
  • Surefire Unit Test Report - unit-test-report.html